UNPKG

openchain-sdk-yxl-wx-request

Version:

openchain sd YxL wx request

99 lines (77 loc) 2.39 kB
'use strict'; require('chai').should(); const BigNumber = require('bignumber.js'); const co = require('co'); const OpenChainSDK = require('../index'); const sdk = new OpenChainSDK({ host: 'nodeapitest.yuxinlink.com', // host: '192.168.1.34:36002', }); describe('Test ctp10Token Transfer Operation', function() { it('Test ctp10Token Transfer Operation', async() => { const privateKey = 'private key'; let sourceAddress = 'YxLVyL2Rr6u9nFpVdq16ycTJ3HssQBuc9BAVz'; const result = await sdk.account.getNonce(sourceAddress); if (result.errorCode !== 0) { console.log(result); return; } let nonce = result.result.nonce; nonce = new BigNumber(nonce).plus(1).toString(10); let ctp10TokenTransferOperation = await sdk.operation.ctp10TokenTransferOperation({ contractAddress: 'YxLVdxKt6FJUTXCsdjSCEdMg4dSynBqTqLSnb', destAddress: 'YxLVdxKt6FJUTXCsdjSCEdMg4dSynBqTqLSnb', tokenAmount: '3', sourceAddress, // metadata: '', }); if (ctp10TokenTransferOperation.errorCode !== 0) { console.log(ctp10TokenTransferOperation); return; } const operationItem = ctp10TokenTransferOperation.result.operation; const args = { sourceAddress, nonce, operations: [operationItem], signtureNumber: '100', // metadata: 'Test evaluation fee', }; let feeData = await sdk.transaction.evaluateFee(args); if (feeData.errorCode !== 0) { console.log(feeData); return; } let feeLimit = feeData.result.feeLimit; let gasPrice = feeData.result.gasPrice; // 2. build blob let blobInfo = sdk.transaction.buildBlob({ sourceAddress: sourceAddress, gasPrice, feeLimit, nonce: nonce, operations: [ operationItem ], }); if (blobInfo.errorCode !== 0) { console.log(blobInfo); return; } let blob = blobInfo.result.transactionBlob; // 3. sign blob let signatureInfo = sdk.transaction.sign({ privateKeys: [ privateKey ], blob, }); if (signatureInfo.errorCode !== 0) { console.log(signatureInfo); return; } let signature = signatureInfo.result.signatures; // 4. submit transaction let transactionInfo = await sdk.transaction.submit({ blob, signature: signature, }); console.log(transactionInfo); }); });