UNPKG

@tatumio/tatum-v1

Version:

Tatum API client allows browsers and Node.js clients to interact with Tatum API.

218 lines 24.3 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const blockchain_1 = require("../blockchain"); const token_bytecode_1 = __importDefault(require("../contracts/trc20/token_bytecode")); const model_1 = require("../model"); const tron_1 = require("./tron"); const IS_TESTNET = true; const API_KEY = '4966d428-9507-45cb-9f90-02cca00674bd'; const PRIVATE_KEY = '842E09EB40D8175979EFB0071B28163E11AED0F14BDD84090A4CEFB936EF5701'; const RECEIVER_ADDR = 'TYMwiDu22V6XG3yk6W9cTVBz48okKLRczh'; const SENDER_ADDR = 'TVAEYCmc15awaDRAjUZ1kvcHwQQaoPw2CW'; const TRC20_TOKEN = 'TWgHeettKLgq1hCdEUPaZNCM6hPg8JkG2X'; process.env.TATUM_API_KEY = API_KEY; process.env.TRON_PRO_API_KEY = 'b35409b4-7d11-491e-8760-32d2506a90b5'; describe('Tron transactions', () => { jest.setTimeout(9999); it('should test valid transaction data', async () => { const body = new model_1.TransferTron(); body.fromPrivateKey = PRIVATE_KEY; body.amount = '0.000001'; body.to = RECEIVER_ADDR; const txData = await tron_1.prepareTronSignedTransaction(IS_TESTNET, body); expect(JSON.parse(txData).raw_data.contract[0].parameter.value.amount).toBe(1); }); it('should test valid freeze transaction data', async () => { const body = new model_1.FreezeTron(); body.fromPrivateKey = PRIVATE_KEY; body.amount = '1'; body.resource = 'ENERGY'; body.duration = 3; body.receiver = SENDER_ADDR; const txData = await tron_1.prepareTronFreezeTransaction(IS_TESTNET, body); expect(JSON.parse(txData).raw_data.contract[0].parameter.value.frozen_balance).toBe(1000000); }); it('should test valid TRC20 create transaction data', async () => { const body = new model_1.CreateTronTrc20(); body.fromPrivateKey = PRIVATE_KEY; body.decimals = 18; body.symbol = 'TTM'; body.recipient = RECEIVER_ADDR; body.name = 'TatumToken'; body.totalSupply = 10; const txData = await tron_1.prepareTronCreateTrc20SignedTransaction(IS_TESTNET, body); expect(JSON.parse(txData).raw_data.contract[0].parameter.value.new_contract.bytecode).toContain(token_bytecode_1.default); }); it.skip('should test valid TRC10 transaction data', async () => { const body = new model_1.TransferTronTrc10(); body.fromPrivateKey = '842E09EB40D8175979EFB0071B28163E11AED0F14BDD84090A4CEFB936EF5701'; body.amount = '0.000001'; body.tokenId = '1000538'; body.to = 'TVAEYCmc15awaDRAjUZ1kvcHwQQaoPw2CW'; const txData = await tron_1.prepareTronTrc10SignedTransaction(true, body); expect(JSON.parse(txData).raw_data.contract[0].parameter.value.amount).toBe(1); }); it('should test valid TRC20 transaction data', async () => { const body = new model_1.TransferTronTrc20(); body.tokenAddress = TRC20_TOKEN; body.fromPrivateKey = PRIVATE_KEY; body.amount = '1'; body.feeLimit = 100; body.to = RECEIVER_ADDR; const txData = await tron_1.prepareTronTrc20SignedTransaction(IS_TESTNET, body); expect(JSON.parse(txData).raw_data.contract[0].parameter.value.data).toBe('a9059cbb000000000000000000000000f4a376310e3b26a57b30d5ff230dcbc8758b84bc00000000000000000000000000000000000000000000000000000000000f4240'); }); it.skip('should test valid trc10 create data', async () => { const body = new model_1.CreateTronTrc10(); // 1 account can issue only 1 asset body.fromPrivateKey = '842E09EB40D8175979EFB0071B28163E11AED0F14BDD84090A4CEFB936EF5701'; body.totalSupply = 1000000; body.abbreviation = 'TTM'; body.url = 'TTM'; body.name = 'TTM'; body.description = 'TTM'; body.decimals = 5; const txData = await tron_1.prepareTronCreateTrc10SignedTransaction(true, body); expect(JSON.parse(txData).raw_data.contract[0].parameter.value.amount).toBe(1); }); it('should not test valid transaction data, to private key assigned', async () => { const body = new model_1.TransferTron(); // body.amount = '0'; body.amount = '1'; body.to = 'TFnpwE8jCgtq3QpAhFfF2QpXzdBGmKvKMe'; try { await tron_1.prepareTronSignedTransaction(IS_TESTNET, body); fail('Validation did not pass.'); } catch (e) { // console.error(e); } }); // ERC-721 tests it.skip('should test valid deploy 721 transaction', async () => { process.env.TRON_PRO_API_KEY = 'b35409b4-7d11-491e-8760-32d2506a90b5'; process.env.TATUM_API_KEY = '4966d428-9507-45cb-9f90-02cca00674bd'; const body = new model_1.TronDeployTrc721(); body.fromPrivateKey = '842E09EB40D8175979EFB0071B28163E11AED0F14BDD84090A4CEFB936EF5701'; body.chain = model_1.Currency.TRON; body.name = 'Tatum'; body.symbol = 'TTM'; body.feeLimit = 600; try { const txData = await tron_1.prepareTronDeployTrc721SignedTransaction(true, body); expect(JSON.parse(txData).txID).toBeDefined(); console.log(await blockchain_1.tronBroadcast(txData)); } catch (e) { console.error(e); } }); it.skip('should test valid mint 721 transaction', async () => { process.env.TRON_PRO_API_KEY = 'b35409b4-7d11-491e-8760-32d2506a90b5'; process.env.TATUM_API_KEY = '4966d428-9507-45cb-9f90-02cca00674bd'; const body = new model_1.TronMintTrc721(); body.fromPrivateKey = '842E09EB40D8175979EFB0071B28163E11AED0F14BDD84090A4CEFB936EF5701'; body.chain = model_1.Currency.TRON; body.to = 'TFnpwE8jCgtq3QpAhFfF2QpXzdBGmKvKMe'; body.contractAddress = 'TCrmdJmvDUPy8qSTgoVStF51yWm6VUh5yQ'; body.tokenId = '3'; body.url = 'https://google.com'; body.feeLimit = 50; const txData = await tron_1.prepareTronMintTrc721SignedTransaction(true, body); expect(JSON.parse(txData).txID).toBeDefined(); console.log(await blockchain_1.tronBroadcast(txData)); }); it.skip('should test valid mint 721 with cashback transaction', async () => { process.env.TRON_PRO_API_KEY = 'b35409b4-7d11-491e-8760-32d2506a90b5'; process.env.TATUM_API_KEY = '4966d428-9507-45cb-9f90-02cca00674bd'; const body = new model_1.TronMintTrc721(); body.fromPrivateKey = '842E09EB40D8175979EFB0071B28163E11AED0F14BDD84090A4CEFB936EF5701'; body.chain = model_1.Currency.TRON; body.to = 'TYMwiDu22V6XG3yk6W9cTVBz48okKLRczh'; body.contractAddress = 'TCrmdJmvDUPy8qSTgoVStF51yWm6VUh5yQ'; body.cashbackValues = ['3']; body.authorAddresses = ['TFnpwE8jCgtq3QpAhFfF2QpXzdBGmKvKMe']; body.tokenId = '3000'; body.url = 'https://google.com'; body.feeLimit = 50; const txData = await tron_1.prepareTronMintCashbackTrc721SignedTransaction(true, body); expect(JSON.parse(txData).txID).toBeDefined(); console.log(await blockchain_1.tronBroadcast(txData)); }); it.skip('should test valid mint multiple 721 transaction', async () => { process.env.TRON_PRO_API_KEY = 'b35409b4-7d11-491e-8760-32d2506a90b5'; process.env.TATUM_API_KEY = '4966d428-9507-45cb-9f90-02cca00674bd'; const body = new model_1.TronMintMultipleTrc721(); body.fromPrivateKey = '842E09EB40D8175979EFB0071B28163E11AED0F14BDD84090A4CEFB936EF5701'; body.chain = model_1.Currency.TRON; body.to = ['TFnpwE8jCgtq3QpAhFfF2QpXzdBGmKvKMe', 'TYMwiDu22V6XG3yk6W9cTVBz48okKLRczh']; body.contractAddress = 'TCrmdJmvDUPy8qSTgoVStF51yWm6VUh5yQ'; body.tokenId = ['40', '50']; body.url = ['https://google.com', 'https://google.com']; body.feeLimit = 50; const txData = await tron_1.prepareTronMintMultipleTrc721SignedTransaction(true, body); expect(JSON.parse(txData).txID).toBeDefined(); console.log(await blockchain_1.tronBroadcast(txData)); }); it.skip('should test valid update 721 cashback transaction', async () => { process.env.TRON_PRO_API_KEY = 'b35409b4-7d11-491e-8760-32d2506a90b5'; process.env.TATUM_API_KEY = '4966d428-9507-45cb-9f90-02cca00674bd'; const body = new model_1.TronUpdateCashbackTrc721(); body.fromPrivateKey = '842E09EB40D8175979EFB0071B28163E11AED0F14BDD84090A4CEFB936EF5701'; body.chain = model_1.Currency.TRON; body.contractAddress = 'TCrmdJmvDUPy8qSTgoVStF51yWm6VUh5yQ'; body.cashbackValue = '0'; body.tokenId = '11'; body.feeLimit = 50; const txData = await tron_1.prepareTronUpdateCashbackForAuthorTrc721SignedTransaction(true, body); expect(JSON.parse(txData).txID).toBeDefined(); console.log(await blockchain_1.tronBroadcast(txData)); }); it.skip('should test valid burn 721 transaction', async () => { process.env.TRON_PRO_API_KEY = 'b35409b4-7d11-491e-8760-32d2506a90b5'; process.env.TATUM_API_KEY = '4966d428-9507-45cb-9f90-02cca00674bd'; const body = new model_1.TronBurnTrc721(); body.fromPrivateKey = '842E09EB40D8175979EFB0071B28163E11AED0F14BDD84090A4CEFB936EF5701'; body.chain = model_1.Currency.TRON; body.contractAddress = 'TCrmdJmvDUPy8qSTgoVStF51yWm6VUh5yQ'; body.tokenId = '3'; body.feeLimit = 50; const txData = await tron_1.prepareTronBurnTrc721SignedTransaction(true, body); expect(JSON.parse(txData).txID).toBeDefined(); console.log(await blockchain_1.tronBroadcast(txData)); }); it.skip('should test valid transfer 721 transaction without cashback', async () => { process.env.TRON_PRO_API_KEY = 'b35409b4-7d11-491e-8760-32d2506a90b5'; process.env.TATUM_API_KEY = '4966d428-9507-45cb-9f90-02cca00674bd'; const body = new model_1.TronTransferTrc721(); body.fromPrivateKey = '842E09EB40D8175979EFB0071B28163E11AED0F14BDD84090A4CEFB936EF5701'; body.chain = model_1.Currency.TRON; body.contractAddress = 'TCrmdJmvDUPy8qSTgoVStF51yWm6VUh5yQ'; body.to = 'TFnpwE8jCgtq3QpAhFfF2QpXzdBGmKvKMe'; body.tokenId = '50'; body.value = '0'; body.feeLimit = 50; const txData = await tron_1.prepareTronTransferTrc721SignedTransaction(true, body); expect(JSON.parse(txData).txID).toBeDefined(); console.log(await blockchain_1.tronBroadcast(txData)); }); it.skip('should test valid transfer 721 transaction with cashback', async () => { process.env.TRON_PRO_API_KEY = 'b35409b4-7d11-491e-8760-32d2506a90b5'; process.env.TATUM_API_KEY = '4966d428-9507-45cb-9f90-02cca00674bd'; const body = new model_1.TronTransferTrc721(); body.fromPrivateKey = '842E09EB40D8175979EFB0071B28163E11AED0F14BDD84090A4CEFB936EF5701'; body.chain = model_1.Currency.TRON; body.contractAddress = 'TCrmdJmvDUPy8qSTgoVStF51yWm6VUh5yQ'; body.to = 'TFnpwE8jCgtq3QpAhFfF2QpXzdBGmKvKMe'; body.tokenId = '3000'; body.value = '30'; body.feeLimit = 50; const txData = await tron_1.prepareTronTransferTrc721SignedTransaction(true, body); expect(JSON.parse(txData).txID).toBeDefined(); console.log(await blockchain_1.tronBroadcast(txData)); }); }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJvbi5zcGVjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3RyYW5zYWN0aW9uL3Ryb24uc3BlYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDhDQUEyQztBQUUzQyx1RkFBOEQ7QUFDOUQsb0NBY2lCO0FBQ2pCLGlDQWNlO0FBRWYsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFBO0FBQ3ZCLE1BQU0sT0FBTyxHQUFHLHNDQUFzQyxDQUFBO0FBQ3RELE1BQU0sV0FBVyxHQUFHLGtFQUFrRSxDQUFBO0FBQ3RGLE1BQU0sYUFBYSxHQUFHLG9DQUFvQyxDQUFBO0FBQzFELE1BQU0sV0FBVyxHQUFHLG9DQUFvQyxDQUFBO0FBQ3hELE1BQU0sV0FBVyxHQUFHLG9DQUFvQyxDQUFBO0FBRXhELE9BQU8sQ0FBQyxHQUFHLENBQUMsYUFBYSxHQUFHLE9BQU8sQ0FBQTtBQUNuQyxPQUFPLENBQUMsR0FBRyxDQUFDLGdCQUFnQixHQUFHLHNDQUFzQyxDQUFBO0FBRXJFLFFBQVEsQ0FBQyxtQkFBbUIsRUFBRSxHQUFHLEVBQUU7SUFDL0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUNyQixFQUFFLENBQUMsb0NBQW9DLEVBQUUsS0FBSyxJQUFJLEVBQUU7UUFDaEQsTUFBTSxJQUFJLEdBQUcsSUFBSSxvQkFBWSxFQUFFLENBQUE7UUFDL0IsSUFBSSxDQUFDLGNBQWMsR0FBRyxXQUFXLENBQUE7UUFDakMsSUFBSSxDQUFDLE1BQU0sR0FBRyxVQUFVLENBQUE7UUFDeEIsSUFBSSxDQUFDLEVBQUUsR0FBRyxhQUFhLENBQUE7UUFDdkIsTUFBTSxNQUFNLEdBQUcsTUFBTSxtQ0FBNEIsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUE7UUFDbkUsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENB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