openchain-sdk-yxl-wx-request
Version:
openchain sd YxL wx request
129 lines (107 loc) • 3.23 kB
JavaScript
'use strict';
require('chai').should();
const BigNumber = require('bignumber.js');
const OpenChainSDK = require('../index');
const sdk = new OpenChainSDK({
host: 'nodeapitest.yuxinlink.com',
});
describe('Test build blob', function() {
it('test transaction.buildBlob()', async () => {
const sourceAddress = 'YxLVkMLxmJEtDQEob3SvVnZGjp7XrWSDvKm7a';
const accountInfo = await sdk.account.getInfo(sourceAddress);
if (accountInfo.errorCode !== 0) {
console.log(accountInfo);
return;
}
let nonce = accountInfo.result.nonce;
nonce = new BigNumber(nonce).plus(1).toString(10);
const acountActivateOperation = {
type: 'activateAccount',
data: {
sourceAddress: 'YxLVkMLxmJEtDQEob3SvVnZGjp7XrWSDvKm7a',
destAddress: 'YxLVkMLxmJEtDQEob3SvVnZGjp7XrWSDvKm7a',
initBalance: '1000',
metadata: 'Test Account Activate',
},
};
let data = sdk.transaction.buildBlob({
sourceAddress,
gasPrice: '1234',
feeLimit: '123',
nonce: `${nonce}`,
ceilLedgerSeq: '1',
operations: [ acountActivateOperation ],
metadata: 'oh my test build blob',
});
data.errorCode.should.equal(0);
data.result.should.be.a('object');
data.result.should.have.property('transactionBlob');
// Invalid sourceAddress
data = sdk.transaction.buildBlob({
sourceAddress: '',
gasPrice: '1234',
feeLimit: '123',
nonce: `${nonce}`,
ceilLedgerSeq: '1',
operations: [ acountActivateOperation ],
metadata: 'oh my test build blob',
});
data.errorCode.should.equal(11002);
// Invalid gasPrice
data = sdk.transaction.buildBlob({
sourceAddress,
gasPrice: '-1234',
feeLimit: '123',
nonce: `${nonce}`,
ceilLedgerSeq: '1',
operations: [ acountActivateOperation ],
metadata: 'oh my test build blob',
});
data.errorCode.should.equal(11049);
// Invalid feeLimit
data = sdk.transaction.buildBlob({
sourceAddress,
gasPrice: '1234',
feeLimit: '',
nonce: `${nonce}`,
ceilLedgerSeq: '1',
operations: [ acountActivateOperation ],
metadata: 'oh my test build blob',
});
data.errorCode.should.equal(11050);
// Invalid nonce
data = sdk.transaction.buildBlob({
sourceAddress,
gasPrice: '100',
feeLimit: '1000',
nonce: '',
ceilLedgerSeq: '1',
operations: [ acountActivateOperation ],
metadata: 'oh my test build blob',
});
data.errorCode.should.equal(11048);
// Invalid metadata
data = sdk.transaction.buildBlob({
sourceAddress,
gasPrice: '100',
feeLimit: '1000',
nonce,
ceilLedgerSeq: '1',
operations: [ acountActivateOperation ],
metadata: 1234,
});
data.errorCode.should.equal(15028);
// Invalid operation
delete acountActivateOperation.type;
data = sdk.transaction.buildBlob({
sourceAddress,
gasPrice: '100',
feeLimit: '1000',
nonce,
ceilLedgerSeq: '1',
operations: [ acountActivateOperation ],
metadata: 'oh my test build blob',
});
data.errorCode.should.equal(15022);
});
});