mirror of
https://github.com/Xahau/xahau.js.git
synced 2025-11-21 04:35:49 +00:00
Cleanup
This commit is contained in:
@@ -3,6 +3,7 @@ var sjcl = require('./utils').sjcl;
|
|||||||
var extend = require('extend');
|
var extend = require('extend');
|
||||||
var stypes = require('./serializedtypes');
|
var stypes = require('./serializedtypes');
|
||||||
var UInt256 = require('./uint256').UInt256;
|
var UInt256 = require('./uint256').UInt256;
|
||||||
|
var assert = require('assert');
|
||||||
|
|
||||||
var TRANSACTION_TYPES = {
|
var TRANSACTION_TYPES = {
|
||||||
0: 'Payment',
|
0: 'Payment',
|
||||||
@@ -52,6 +53,12 @@ var TRANSACTION_RESULTS = {
|
|||||||
132: 'tecOWNERS'
|
132: 'tecOWNERS'
|
||||||
};
|
};
|
||||||
|
|
||||||
|
var TX_ID_MAP = { };
|
||||||
|
|
||||||
|
Object.keys(binformat.tx).forEach(function(key) {
|
||||||
|
TX_ID_MAP[key[0]] = key;
|
||||||
|
});
|
||||||
|
|
||||||
function SerializedObject(buf) {
|
function SerializedObject(buf) {
|
||||||
if (Array.isArray(buf) || (Buffer && Buffer.isBuffer(buf)) ) {
|
if (Array.isArray(buf) || (Buffer && Buffer.isBuffer(buf)) ) {
|
||||||
this.buffer = buf;
|
this.buffer = buf;
|
||||||
@@ -152,7 +159,7 @@ SerializedObject.prototype.to_json = function() {
|
|||||||
var key_and_value = stypes.parse_whatever(this);
|
var key_and_value = stypes.parse_whatever(this);
|
||||||
var key = key_and_value[0];
|
var key = key_and_value[0];
|
||||||
var value = key_and_value[1];
|
var value = key_and_value[1];
|
||||||
output[key] = jsonify_structure(value, key);
|
output[key] = SerializedObject.jsonify_structure(value, key);
|
||||||
}
|
}
|
||||||
|
|
||||||
this.pointer = old_pointer;
|
this.pointer = old_pointer;
|
||||||
@@ -160,7 +167,7 @@ SerializedObject.prototype.to_json = function() {
|
|||||||
return output;
|
return output;
|
||||||
}
|
}
|
||||||
|
|
||||||
function jsonify_structure(structure, field_name) {
|
SerializedObject.jsonify_structure = function(structure, field_name) {
|
||||||
var output;
|
var output;
|
||||||
|
|
||||||
switch (typeof structure) {
|
switch (typeof structure) {
|
||||||
@@ -188,7 +195,7 @@ function jsonify_structure(structure, field_name) {
|
|||||||
var keys = Object.keys(structure);
|
var keys = Object.keys(structure);
|
||||||
for (var i=0, l=keys.length; i<l; i++) {
|
for (var i=0, l=keys.length; i<l; i++) {
|
||||||
var key = keys[i];
|
var key = keys[i];
|
||||||
output[key] = jsonify_structure(structure[key], key);
|
output[key] = SerializedObject.jsonify_structure(structure[key], key);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -199,11 +206,9 @@ function jsonify_structure(structure, field_name) {
|
|||||||
return output;
|
return output;
|
||||||
};
|
};
|
||||||
|
|
||||||
SerializedObject.jsonify_structure = jsonify_structure; //So that we can access it from elsewhere.
|
|
||||||
|
|
||||||
SerializedObject.prototype.serialize = function (typedef, obj) {
|
SerializedObject.prototype.serialize = function (typedef, obj) {
|
||||||
// Ensure canonical order
|
// Ensure canonical order
|
||||||
var typedef = SerializedObject._sort_typedef(typedef);
|
var typedef = SerializedObject.sort_typedef(typedef);
|
||||||
|
|
||||||
// Serialize fields
|
// Serialize fields
|
||||||
for (var i=0, l=typedef.length; i<l; i++) {
|
for (var i=0, l=typedef.length; i<l; i++) {
|
||||||
@@ -262,28 +267,20 @@ SerializedObject.get_field_header = function (type_id, field_id) {
|
|||||||
return buffer;
|
return buffer;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
SerializedObject.sort_typedef = function (typedef) {
|
||||||
|
assert(Array.isArray(typedef));
|
||||||
|
|
||||||
function sort_field_compare(a, b) {
|
function sort_field_compare(a, b) {
|
||||||
// Sort by type id first, then by field id
|
// Sort by type id first, then by field id
|
||||||
return a[3].id !== b[3].id ? a[3].id - b[3].id : a[2] - b[2];
|
return a[3].id !== b[3].id ? a[3].id - b[3].id : a[2] - b[2];
|
||||||
};
|
};
|
||||||
|
|
||||||
SerializedObject._sort_typedef = function (typedef) {
|
|
||||||
return typedef.sort(sort_field_compare);
|
return typedef.sort(sort_field_compare);
|
||||||
};
|
};
|
||||||
|
|
||||||
SerializedObject.lookup_type_tx = function (id) {
|
SerializedObject.lookup_type_tx = function (id) {
|
||||||
var keys = Object.keys(binformat.tx);
|
assert(typeof id === 'string');
|
||||||
var result = null;
|
return TX_ID_MAP[id];
|
||||||
|
|
||||||
for (var i=0, l=keys.length; i<l; i++) {
|
|
||||||
var key = keys[i];
|
|
||||||
if (binformat.tx[key][0] === id) {
|
|
||||||
result = key;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return result;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
exports.SerializedObject = SerializedObject;
|
exports.SerializedObject = SerializedObject;
|
||||||
|
|||||||
Reference in New Issue
Block a user