diff --git a/src/js/account.js b/src/js/account.js new file mode 100644 index 0000000000..4c84eb6cf8 --- /dev/null +++ b/src/js/account.js @@ -0,0 +1,25 @@ +// Routines for working with an account. +// +// Events: +// wallet_clean : True, iff the wallet has been updated. +// wallet_dirty : True, iff the wallet needs to be updated. +// balance : The current stamp balance. +// balance_proposed +// + +// var network = require("./network.js"); + +var EventEmitter = require('events').EventEmitter; +var Amount = require('./amount.js').Amount; +var UInt160 = require('./amount.js').UInt160; + +var Account = function (network, account) { + this._network = network; + this._account = UInt160.json_rewrite(account); + + return this; +}; + +exports.Account = Account; + +// vim:sw=2:sts=2:ts=8 diff --git a/src/js/network.js b/src/js/network.js new file mode 100644 index 0000000000..a98cee302f --- /dev/null +++ b/src/js/network.js @@ -0,0 +1,58 @@ +// +// Access to the Ripple network via multiple untrusted servers or a single trusted server. +// +// Overview: +// Network configuration. +// Can leverage local storage to remember network configuration +// Aquires the network +// events: +// online +// offline +// + +var remote = require("./remote.js"); + +var opts_default = { + DEFAULT_VALIDATORS_SITE : "redstem.com", + + ips = { + } +}; + +// +// opts : { +// cache : undefined || { +// get : function () { return cached_value; }, +// set : function (value) { cached_value = value; }, +// }, +// +// // Where to get validators.txt if needed. +// DEFAULT_VALIDATORS_SITE : _domain_, +// +// // Validator.txt to use. +// validators : _txt_, +// } +// + +var Network = function (opts) { + +}; + +// Set the network configuration. +Network.protocol.configure = function () { + +}; + +// Target state: connectted +Network.protocol.start = function () { + +}; + +// Target state: disconnectted +Network.protocol.stop = function () { + +}; + +exports.Network = Network; + +// vim:sw=2:sts=2:ts=8 diff --git a/test/monitor-test.js b/test/monitor-test.js new file mode 100644 index 0000000000..2b70072a88 --- /dev/null +++ b/test/monitor-test.js @@ -0,0 +1,54 @@ +var async = require("async"); +var buster = require("buster"); + +var Amount = require("../src/js/amount.js").Amount; +var Remote = require("../src/js/remote.js").Remote; +var Server = require("./server.js").Server; + +var testutils = require("./testutils.js"); + +require("../src/js/amount.js").config = require("./config.js"); +require("../src/js/remote.js").config = require("./config.js"); + +buster.testRunner.timeout = 5000; + +buster.testCase("Monitor account", { + 'setUp' : testutils.build_setup({ verbose: true }), + 'tearDown' : testutils.build_teardown(), + + "monitor root" : + function (done) { + var self = this; + + async.waterfall([ + function (callback) { + self.what = "Create accounts."; + + testutils.create_accounts(self.remote, "root", "10000", ["alice"], callback); + }, + function (callback) { + self.what = "Close ledger."; + + self.remote.once('ledger_closed', function (ledger_closed, ledger_index) { + callback(); + }); + + self.remote.ledger_accept(); + }, + function (callback) { + self.what = "Dumping root."; + + testutils.account_dump(self.remote, "root", function (error) { + buster.refute(error); + + callback(); + }); + }, + ], function (error) { + buster.refute(error, self.what); + done(); + }); + }, +}); + +// vim:sw=2:sts=2:ts=8