mirror of
https://github.com/Xahau/xahau.js.git
synced 2025-11-21 20:55:48 +00:00
Checking sketch of JS libs.
This commit is contained in:
committed by
Stefan Thomas
parent
a1ca3a044b
commit
14eb853f27
34
js/ledger.js
Normal file
34
js/ledger.js
Normal file
@@ -0,0 +1,34 @@
|
||||
//
|
||||
// Tools for working with ledger entries.
|
||||
//
|
||||
// Fundamentally, we work in the more strict case of not trusting the ledger as presented. If we have a server we trust, then the
|
||||
// burden of verify the ledger entries is left to the server. But, we work in the same fundamental units of information, ledger
|
||||
// entries, to keep the code orthagonal.
|
||||
//
|
||||
|
||||
var serializer = require("./serializer");
|
||||
|
||||
exports.getLedgerEntry = function(key, done) {
|
||||
var id = (ws.id += 1);
|
||||
|
||||
ws.response[id] = done;
|
||||
|
||||
ws.send({
|
||||
'command': 'getLedgerEntry',
|
||||
'id': id,
|
||||
'ledger': ledger,
|
||||
'account': accountId,
|
||||
'proof': false // Eventually, we will want proof if the server is untrusted.
|
||||
});
|
||||
};
|
||||
|
||||
exports.getAccountRootNode = function(ledger, accountId, done) {
|
||||
var s = new Serializer();
|
||||
|
||||
s.addUInt16('a');
|
||||
s.addUInt160(accountId);
|
||||
|
||||
getLedgerEntry(s.getSHA512Half(), done);
|
||||
};
|
||||
|
||||
// vim:ts=4
|
||||
44
js/serializer.js
Normal file
44
js/serializer.js
Normal file
@@ -0,0 +1,44 @@
|
||||
//
|
||||
|
||||
var serializer = {};
|
||||
|
||||
serializer.addUInt16 = function(value) {
|
||||
switch (typeof value) {
|
||||
case 'string':
|
||||
addUInt16(value.charCodeAt(0));
|
||||
break;
|
||||
|
||||
case 'integer':
|
||||
for (i = 16/8; i; i -=1) {
|
||||
raw.push(value & 255);
|
||||
value >>= 8;
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
throw 'UNEXPECTED_TYPE';
|
||||
}
|
||||
};
|
||||
|
||||
serializer.addUInt160 = function(value) {
|
||||
switch (typeof value) {
|
||||
case 'array':
|
||||
raw.concat(value);
|
||||
break;
|
||||
|
||||
case 'integer':
|
||||
for (i = 160/8; i; i -=1) {
|
||||
raw.push(value & 255);
|
||||
value >>= 8;
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
throw 'UNEXPECTED_TYPE';
|
||||
}
|
||||
};
|
||||
|
||||
serializer.getSHA512Half = function() {
|
||||
};
|
||||
|
||||
// vim:ts=4
|
||||
38
js/transaction.js
Normal file
38
js/transaction.js
Normal file
@@ -0,0 +1,38 @@
|
||||
// Work with transactions.
|
||||
//
|
||||
// This works for both trusted and untrusted servers.
|
||||
//
|
||||
// For untrusted servers:
|
||||
// - We never send a secret to an untrusted server.
|
||||
// - Convert transactions to and from JSON.
|
||||
// - Sign and verify signatures.
|
||||
// - Encrypt and decrypt.
|
||||
//
|
||||
// For trusted servers:
|
||||
// - We need a websocket way of working with transactions as JSON.
|
||||
// - This allows us to not need to port the transaction tools to so many
|
||||
// languages.
|
||||
//
|
||||
|
||||
var commands = {};
|
||||
|
||||
commands.buildSend = function(params) {
|
||||
var srcAccountID = params.srcAccountID;
|
||||
var fee = params.fee;
|
||||
var dstAccountID = params.dstAccountID;
|
||||
var amount = params.amount;
|
||||
var sendMax = params.sendMax;
|
||||
var partial = params.partial;
|
||||
var limit = params.limit;
|
||||
};
|
||||
|
||||
|
||||
exports.trustedCreate = function() {
|
||||
|
||||
};
|
||||
|
||||
exports.untrustedCreate = function() {
|
||||
|
||||
};
|
||||
|
||||
// vim:ts=4
|
||||
Reference in New Issue
Block a user