JS: Stubs for monitoring accounts.

This commit is contained in:
Arthur Britto
2012-11-10 16:56:30 -08:00
parent 8d89fb256d
commit 8e10be2cf9
3 changed files with 137 additions and 0 deletions

25
src/js/account.js Normal file
View File

@@ -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

58
src/js/network.js Normal file
View File

@@ -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

54
test/monitor-test.js Normal file
View File

@@ -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