@tatumio/tatum-v1
Version:
Tatum API client allows browsers and Node.js clients to interact with Tatum API.
149 lines • 13.6 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const model_1 = require("../model");
const litecoin_1 = require("./litecoin");
const TransferBtcLtcBlockchain_1 = require("../model/request/TransferBtcLtcBlockchain");
describe('LTC transactions', () => {
describe('Change address and fee support', () => {
it('Should prepare tx with change address and fee', async () => {
process.env.TATUM_API_KEY = '4966d428-9507-45cb-9f90-02cca00674bd';
const body = new TransferBtcLtcBlockchain_1.TransferBtcLtcBlockchain();
body.fromAddress = [{
address: 'mxZhDaGuFLL3jBKsxGfzd1DnRDLYQagqbo',
privateKey: 'cQ4WBAs4PvXphpV6ezUHqo5QhBPPsJKtHhaBSJy5TtJoV2qs4koP',
}];
body.to = [{
address: 'mqyiRxb4wMbTFHtgqDyLRwBT6z82tUktDF',
value: 0.1
}];
body.fee = '0.005';
body.changeAddress = 'mxZhDaGuFLL3jBKsxGfzd1DnRDLYQagqbo';
const txData = await litecoin_1.prepareLitecoinSignedTransaction(true, body);
expect(txData).toBe('0200000001d3c8db438a253cb9bdf6ff440848e79cb71c5d197f37185de3df379c3a33504f000000006b483045022100dfa3cf9e826d457f36bd622b51107bc1aa14d55d0ba6f6cc95f597a6be9c068402207ea536d16e1512d8efaa9d89cf9af10a6d068030c9f88a670aa65abcbd9e1c8201210234166c1b874af0faa08b1145ff3dbc31358c0eb35ec6d461000466f5f80b22ecffffffff0280969800000000001976a91472c0ea7cf5ab9299169798c776a14c958444875a88ace08b2901000000001976a914bafecce5010ae353c2c7d7298e14f6e5d8950d2888ac00000000');
});
it('fail - only changeAddress', async () => {
process.env.TATUM_API_KEY = '8a66adad-9e68-4f5b-a9b9-8efd971a14d3';
try {
const body = new TransferBtcLtcBlockchain_1.TransferBtcLtcBlockchain();
body.fromAddress = [{
address: 'mxZhDaGuFLL3jBKsxGfzd1DnRDLYQagqbo',
privateKey: 'cQ4WBAs4PvXphpV6ezUHqo5QhBPPsJKtHhaBSJy5TtJoV2qs4koP',
}];
body.to = [{
address: 'mqyiRxb4wMbTFHtgqDyLRwBT6z82tUktDF',
value: 0.1
}];
body.changeAddress = 'n4YQ6pLeKpzWc2nA9Zr8yMq54zetToWzKq';
await litecoin_1.prepareLitecoinSignedTransaction(true, body);
fail('Validation did not pass.');
}
catch (e) {
console.log(e);
}
});
it('fail - only fee', async () => {
process.env.TATUM_API_KEY = '8a66adad-9e68-4f5b-a9b9-8efd971a14d3';
try {
const body = new TransferBtcLtcBlockchain_1.TransferBtcLtcBlockchain();
body.fromAddress = [{
address: 'mxZhDaGuFLL3jBKsxGfzd1DnRDLYQagqbo',
privateKey: 'cQ4WBAs4PvXphpV6ezUHqo5QhBPPsJKtHhaBSJy5TtJoV2qs4koP',
}];
body.to = [{
address: 'mqyiRxb4wMbTFHtgqDyLRwBT6z82tUktDF',
value: 0.1
}];
body.fee = '0.005';
await litecoin_1.prepareLitecoinSignedTransaction(true, body);
fail('Validation did not pass.');
}
catch (e) {
console.log(e);
}
});
it('Should generate the same output for changeaddress/fee and to clause', async () => {
process.env.TATUM_API_KEY = '8a66adad-9e68-4f5b-a9b9-8efd971a14d3';
const bodyWithChangeAddressFee = new TransferBtcLtcBlockchain_1.TransferBtcLtcBlockchain();
bodyWithChangeAddressFee.fromAddress = [{
address: 'mxZhDaGuFLL3jBKsxGfzd1DnRDLYQagqbo',
privateKey: 'cQ4WBAs4PvXphpV6ezUHqo5QhBPPsJKtHhaBSJy5TtJoV2qs4koP',
}];
bodyWithChangeAddressFee.to = [{
address: 'mqyiRxb4wMbTFHtgqDyLRwBT6z82tUktDF',
value: 0.1
}];
bodyWithChangeAddressFee.fee = '0.005';
bodyWithChangeAddressFee.changeAddress = 'mxZhDaGuFLL3jBKsxGfzd1DnRDLYQagqbo';
const txDataChangeAddressFee = await litecoin_1.prepareLitecoinSignedTransaction(true, bodyWithChangeAddressFee);
const bodyWithTo = new model_1.TransferBtcBasedBlockchain();
bodyWithTo.fromAddress = [{
address: 'mxZhDaGuFLL3jBKsxGfzd1DnRDLYQagqbo',
privateKey: 'cQ4WBAs4PvXphpV6ezUHqo5QhBPPsJKtHhaBSJy5TtJoV2qs4koP',
}];
bodyWithTo.to = [{
address: 'mqyiRxb4wMbTFHtgqDyLRwBT6z82tUktDF',
value: 0.1
}, {
address: 'mxZhDaGuFLL3jBKsxGfzd1DnRDLYQagqbo',
value: 0.195
}];
const txDataToClause = await litecoin_1.prepareLitecoinSignedTransaction(true, bodyWithTo);
expect(txDataToClause).toBe(txDataChangeAddressFee);
});
});
it('should test LTC transaction data', async () => {
process.env.TATUM_API_KEY = '8a66adad-9e68-4f5b-a9b9-8efd971a14d3';
const body = new model_1.TransferBtcBasedBlockchain();
body.fromUTXO = [{
txHash: '6670c707ca96d44531846b9853fb49dd26f43ff9197722ba55e21cb40722b807',
index: 1,
privateKey: 'cVX7YtgL5muLTPncHFhP95oitV1mqUUA5VeSn8HeCRJbPqipzobf',
}];
body.to = [{
address: 'mfh8kjy36ppH7bGXTzUwhWbKGgZziq4CbF',
value: 0.2969944
}];
const txData = await litecoin_1.prepareLitecoinSignedTransaction(true, body);
expect(txData).toBe('010000000107b82207b41ce255ba227719f93ff426dd49fb53986b843145d496ca07c770660100000000ffffffff01702dc501000000001976a91401ece42befef00eb643febc32cb0764563fb4e6988ac00000000');
});
it('should test LTC send transaction', async () => {
process.env.TATUM_API_KEY = '8a66adad-9e68-4f5b-a9b9-8efd971a14d3';
const body = new model_1.TransferBtcBasedBlockchain();
body.fromUTXO = [{
txHash: '6670c707ca96d44531846b9853fb49dd26f43ff9197722ba55e21cb40722b807',
index: 1,
privateKey: 'cVX7YtgL5muLTPncHFhP95oitV1mqUUA5VeSn8HeCRJbPqipzobf',
}];
body.to = [{
address: 'mfh8kjy36ppH7bGXTzUwhWbKGgZziq4CbF',
value: 0.2969944
}];
const txData = await litecoin_1.sendLitecoinTransaction(true, body);
console.log(txData);
expect(txData).toHaveProperty('txId');
});
it('should not test LTC transaction data, fromAddress and fromUTXO present at the same time', async () => {
const body = new model_1.TransferBtcBasedBlockchain();
body.fromUTXO = [{
txHash: '53faa103e8217e1520f5149a4e8c84aeb58e55bdab11164a95e69a8ca50f8fcc',
index: 0,
privateKey: 'cVX7YtgL5muLTPncHFhP95oitV1mqUUA5VeSn8HeCRJbPqipzobf',
}];
body.fromAddress = [{
address: 'mjJotvHmzEuyXZJGJXXknS6N3PWQnw6jf5',
privateKey: 'cVX7YtgL5muLTPncHFhP95oitV1mqUUA5VeSn8HeCRJbPqipzobf',
}];
body.to = [{
address: 'mjJotvHmzEuyXZJGJXXknS6N3PWQnw6jf5',
value: 0.02969944
}];
try {
await litecoin_1.prepareLitecoinSignedTransaction(true, body);
fail('Validation did not pass.');
}
catch (e) {
console.error(e);
}
});
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGl0ZWNvaW4uc3BlYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2FjdGlvbi9saXRlY29pbi5zcGVjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsb0NBQW1EO0FBQ25ELHlDQUFvRjtBQUNwRix3RkFBbUY7QUFFbkYsUUFBUSxDQUFDLGtCQUFrQixFQUFFLEdBQUcsRUFBRTtJQUNoQyxRQUFRLENBQUMsZ0NBQWdDLEVBQUUsR0FBRyxFQUFFO1FBQzlDLEVBQUUsQ0FBQywrQ0FBK0MsRUFBRSxLQUFLLElBQUksRUFBRTtZQUM3RCxPQUFPLENBQUMsR0FBRyxDQUFDLGFBQWEsR0FBRyxzQ0FBc0MsQ0FBQTtZQUNsRSxNQUFNLElBQUksR0FBRyxJQUFJLG1EQUF3QixFQUFFLENBQUE7WUFDM0MsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDO29CQUNsQixPQUFPLEVBQUUsb0NBQW9DO29CQUM3QyxVQUFVLEVBQUUsc0RBQXNEO2lCQUNuRSxDQUFDLENBQUE7WUFDRixJQUFJLENBQUMsRUFBRSxHQUFHLENBQUM7b0JBQ1QsT0FBTyxFQUFFLG9DQUFvQztvQkFDN0MsS0FBSyxFQUFFLEdBQUc7aUJBQ1gsQ0FBQyxDQUFBO1lBQ0YsSUFBSSxDQUFDLEdBQUcsR0FBRyxPQUFPLENBQUE7WUFDbEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxvQ0FBb0MsQ0FBQTtZQUN6RCxNQUFNLE1BQU0sR0FBRyxNQUFNLDJDQUFnQyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQTtZQUNqRSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLHNjQUFzYyxDQUFDLENBQUE7UUFDN2QsQ0FBQyxDQUFDLENBQUE7UUFFRixFQUFFLENBQUMsMkJBQTJCLEVBQUUsS0FBSyxJQUFJLEVBQUU7WUFDekMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxhQUFhLEdBQUcsc0NBQXNDLENBQUE7WUFDbEUsSUFBSTtnQkFDRixNQUFNLElB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