mirror of
https://github.com/Xahau/xahau.js.git
synced 2025-11-21 12:45:50 +00:00
Many unit tests fail under node 12. It is possible that some of these are caused by issues in node that will be fixed in the future. This also removes the dependency on 'assert-diff' since it is not necessary. It can easily be re-added in the future, if needed.
121 lines
3.4 KiB
JavaScript
121 lines
3.4 KiB
JavaScript
const _ = require('lodash');
|
|
const assert = require('assert');
|
|
const {encodeForSigning, encodeForSigningClaim, encodeForMultisigning} =
|
|
require('../src');
|
|
|
|
const tx_json = {
|
|
Account: 'r9LqNeG6qHxjeUocjvVki2XR35weJ9mZgQ',
|
|
Amount: '1000',
|
|
Destination: 'rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh',
|
|
Fee: '10',
|
|
Flags: 2147483648,
|
|
Sequence: 1,
|
|
TransactionType: 'Payment',
|
|
TxnSignature: '30440220718D264EF05CAED7C781FF6DE298DCAC68D002562C9BF3A07C1' +
|
|
'E721B420C0DAB02203A5A4779EF4D2CCC7BC3EF886676D803A9981B928D3B8ACA483B80' +
|
|
'ECA3CD7B9B',
|
|
Signature: '30440220718D264EF05CAED7C781FF6DE298DCAC68D002562C9BF3A07C1E72' +
|
|
'1B420C0DAB02203A5A4779EF4D2CCC7BC3EF886676D803A9981B928D3B8ACA483B80ECA' +
|
|
'3CD7B9B',
|
|
SigningPubKey:
|
|
'ED5F5AC8B98974A3CA843326D9B88CEBD0560177B973EE0B149F782CFAA06DC66A'
|
|
};
|
|
|
|
describe('Signing data', function() {
|
|
it('can create single signing blobs', function() {
|
|
const actual = encodeForSigning(tx_json);
|
|
assert.equal(actual,
|
|
['53545800', // signingPrefix
|
|
// TransactionType
|
|
'12',
|
|
'0000',
|
|
// Flags
|
|
'22',
|
|
'80000000',
|
|
// Sequence
|
|
'24',
|
|
'00000001',
|
|
// Amount
|
|
'61',
|
|
// native amount
|
|
'40000000000003E8',
|
|
// Fee
|
|
'68',
|
|
// native amount
|
|
'400000000000000A',
|
|
// SigningPubKey
|
|
'73',
|
|
// VLLength
|
|
'21',
|
|
'ED5F5AC8B98974A3CA843326D9B88CEBD0560177B973EE0B149F782CFAA06DC66A',
|
|
// Account
|
|
'81',
|
|
// VLLength
|
|
'14',
|
|
'5B812C9D57731E27A2DA8B1830195F88EF32A3B6',
|
|
// Destination
|
|
'83',
|
|
// VLLength
|
|
'14',
|
|
'B5F762798A53D543A014CAF8B297CFF8F2F937E8'].join('')
|
|
);
|
|
});
|
|
it('can create multi signing blobs', function() {
|
|
const signingAccount = 'rJZdUusLDtY9NEsGea7ijqhVrXv98rYBYN';
|
|
const signingJson = _.assign({}, tx_json, {SigningPubKey: ''});
|
|
const actual = encodeForMultisigning(signingJson, signingAccount);
|
|
assert.equal(actual,
|
|
['534D5400', // signingPrefix
|
|
// TransactionType
|
|
'12',
|
|
'0000',
|
|
// Flags
|
|
'22',
|
|
'80000000',
|
|
// Sequence
|
|
'24',
|
|
'00000001',
|
|
// Amount
|
|
'61',
|
|
// native amount
|
|
'40000000000003E8',
|
|
// Fee
|
|
'68',
|
|
// native amount
|
|
'400000000000000A',
|
|
// SigningPubKey
|
|
'73',
|
|
// VLLength
|
|
'00',
|
|
// '',
|
|
// Account
|
|
'81',
|
|
// VLLength
|
|
'14',
|
|
'5B812C9D57731E27A2DA8B1830195F88EF32A3B6',
|
|
// Destination
|
|
'83',
|
|
// VLLength
|
|
'14',
|
|
'B5F762798A53D543A014CAF8B297CFF8F2F937E8',
|
|
// signingAccount suffix
|
|
'C0A5ABEF242802EFED4B041E8F2D4A8CC86AE3D1'].join('')
|
|
);
|
|
});
|
|
it('can create claim blob', function() {
|
|
const channel =
|
|
'43904CBFCDCEC530B4037871F86EE90BF799DF8D2E0EA564BC8A3F332E4F5FB1'
|
|
const amount = '1000'
|
|
const json = {channel, amount}
|
|
const actual = encodeForSigningClaim(json)
|
|
assert.equal(actual, [
|
|
// hash prefix
|
|
'434C4D00',
|
|
// channel ID
|
|
'43904CBFCDCEC530B4037871F86EE90BF799DF8D2E0EA564BC8A3F332E4F5FB1',
|
|
// amount as a uint64
|
|
'00000000000003E8'
|
|
].join(''))
|
|
})
|
|
});
|