UNPKG

@tatumio/tatum-v1

Version:

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

351 lines 38.2 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const model_1 = require("../model"); const one_1 = require("./one"); const erc721Provenance_abi_1 = __importDefault(require("../contracts/erc721Provenance/erc721Provenance_abi")); const PROVIDER = 'https://api.s0.b.hmny.io'; describe('ONE transactions', () => { jest.setTimeout(99999); async function processTx(txData) { const client = one_1.prepareOneClient(true, PROVIDER, '0x4cda6d2c33b0f9a041e46474a638ac59aee0734cf208aa9aa2f05ef887bd09e1'); const signedTxn = await client.eth.sendSignedTransaction(txData); console.log(signedTxn.transactionHash); } describe('Regular TX', () => { it('should test valid transaction ONE', async () => { const body = new model_1.OneTransfer(); body.fromPrivateKey = '0x4cda6d2c33b0f9a041e46474a638ac59aee0734cf208aa9aa2f05ef887bd09e1'; body.amount = '1'; body.to = 'one1yvph79875pj0pmgpxzmve87ks4sxer5u3jyfde'; const txData = await one_1.prepareOneSignedTransaction(true, body, PROVIDER); expect(txData).toContain('0x'); // await processTx(txData) }); it('should test valid transaction ONE KMS', async () => { const body = new model_1.OneTransfer(); body.signatureId = 'cf5abf42-1d3b-48c7-b761-4571c46dd45f'; body.amount = '1'; body.fromShardID = 0; body.toShardID = 0; body.to = 'one1yvph79875pj0pmgpxzmve87ks4sxer5u3jyfde'; const txData = await one_1.prepareOneSignedTransaction(true, body, PROVIDER); console.log(txData); expect(txData).toContain('0x'); }); }); describe('HRM20 TX', () => { it('should test valid Deploy 20', async () => { const body = new model_1.OneDeploy20(); body.fromPrivateKey = '0x4cda6d2c33b0f9a041e46474a638ac59aee0734cf208aa9aa2f05ef887bd09e1'; body.name = 'Tatum'; body.digits = 14; body.totalCap = '1000'; body.supply = '100'; body.symbol = 'TTM'; body.address = 'one13t9ul0yvudlk7e60fwvxr5l0azfg3kyl474xmc'; const txData = await one_1.prepareOneDeploy20SignedTransaction(true, body, PROVIDER); expect(txData).toContain('0x'); // await processTx(txData) }); it('should test valid 20 transaction', async () => { const body = new model_1.OneTransfer20(); body.fromPrivateKey = '0x4cda6d2c33b0f9a041e46474a638ac59aee0734cf208aa9aa2f05ef887bd09e1'; body.amount = '1.564'; body.contractAddress = '0xF60dE853111e0E3A1fB3E703D9Bed83b470c73D5'; body.digits = 14; body.to = 'one1yvph79875pj0pmgpxzmve87ks4sxer5u3jyfde'; const txData = await one_1.prepareOneTransfer20SignedTransaction(true, body, PROVIDER); expect(txData).toContain('0x'); // await processTx(txData) }); it('should test valid 20 burn', async () => { const body = new model_1.OneBurn20(); body.fromPrivateKey = '0x4cda6d2c33b0f9a041e46474a638ac59aee0734cf208aa9aa2f05ef887bd09e1'; body.amount = '1.564'; body.contractAddress = '0xF60dE853111e0E3A1fB3E703D9Bed83b470c73D5'; const txData = await one_1.prepareOneBurn20SignedTransaction(true, body, PROVIDER); expect(txData).toContain('0x'); // await processTx(txData) }); }); describe('HRM 721 Provenance', () => { it('should test valid Deploy 721', async () => { const body = new model_1.OneDeploy721(); body.fromPrivateKey = '0x4cda6d2c33b0f9a041e46474a638ac59aee0734cf208aa9aa2f05ef887bd09e1'; body.name = 'Tatum'; body.symbol = 'TTM'; body.chain = model_1.Currency.ONE; body.provenance = true; const txData = await one_1.prepareOneDeploy721SignedTransaction(true, body, PROVIDER); expect(txData).toContain('0x'); // await processTx(txData) }); it('should test valid 721 provenance mint', async () => { const body = new model_1.OneMint721(); body.fromPrivateKey = '0x4cda6d2c33b0f9a041e46474a638ac59aee0734cf208aa9aa2f05ef887bd09e1'; body.tokenId = '1'; body.contractAddress = '0xf12178ba442f1035eb86777d1bebba8fcc50ee8a'; body.url = '14'; body.chain = model_1.Currency.ONE; body.to = 'one13t9ul0yvudlk7e60fwvxr5l0azfg3kyl474xmc'; body.provenance = true; const txData = await one_1.prepareOneMint721ProvenanceSignedTransaction(true, body, PROVIDER); expect(txData).toContain('0x'); // await processTx(txData) }); it('should test valid 721 provenance mint with cashback', async () => { const body = new model_1.OneMint721(); body.fromPrivateKey = '0x4cda6d2c33b0f9a041e46474a638ac59aee0734cf208aa9aa2f05ef887bd09e1'; body.tokenId = '10211'; body.contractAddress = '0x27c133a613f11870fa935ecbb03c0cf55f93e5de'; body.url = '14'; body.chain = model_1.Currency.ONE; body.to = 'one13t9ul0yvudlk7e60fwvxr5l0azfg3kyl474xmc'; body.authorAddresses = ['one13t9ul0yvudlk7e60fwvxr5l0azfg3kyl474xmc']; body.provenance = true; body.cashbackValues = ['1']; body.fixedValues = ['1']; body.provenance = true; const txData = await one_1.prepareOneMint721ProvenanceSignedTransaction(true, body, PROVIDER); expect(txData).toContain('0x'); // await processTx(txData) }); it('should test valid 721 transaction', async () => { const body = new model_1.OneTransfer721(); body.fromPrivateKey = '0x4cda6d2c33b0f9a041e46474a638ac59aee0734cf208aa9aa2f05ef887bd09e1'; body.tokenId = '1021'; body.contractAddress = '0x27c133a613f11870fa935ecbb03c0cf55f93e5de'; body.chain = model_1.Currency.ONE; body.provenance = true; body.provenanceData = "test this"; body.tokenPrice = "10"; body.value = "10"; body.to = 'one1yvph79875pj0pmgpxzmve87ks4sxer5u3jyfde'; const txData = await one_1.prepareOneTransfer721SignedTransaction(true, body, PROVIDER); expect(txData).toContain('0x'); // await processTx(txData) }); it('should test valid transfer data 721 transaction', async () => { const body = new model_1.SmartContractReadMethodInvocation(); body.contractAddress = '0x27c133a613f11870fa935ecbb03c0cf55f93e5de'; body.params = ['100']; body.methodName = 'getTokenData'; body.methodABI = erc721Provenance_abi_1.default.find((a) => a.name === 'getTokenData'); const response = await one_1.sendOneSmartContractReadMethodInvocationTransaction(true, body, PROVIDER); // @ts-ignore console.log(JSON.stringify(response)); }); it('should test valid 721 mint with cashback multiple', async () => { const body = new model_1.OneMintMultiple721(); body.fromPrivateKey = '0x4cda6d2c33b0f9a041e46474a638ac59aee0734cf208aa9aa2f05ef887bd09e1'; body.tokenId = ['103212']; body.contractAddress = '0x27c133a613f11870fa935ecbb03c0cf55f93e5de'; body.url = ['14']; body.chain = model_1.Currency.ONE; body.to = ['one13t9ul0yvudlk7e60fwvxr5l0azfg3kyl474xmc']; body.authorAddresses = [['one13t9ul0yvudlk7e60fwvxr5l0azfg3kyl474xmc']]; body.cashbackValues = [['1']]; body.provenance = true; body.fixedValues = [['1']]; const txData = await one_1.prepareOneMintMultiple721ProvenanceSignedTransaction(true, body, PROVIDER); expect(txData).toContain('0x'); // await processTx(txData) }); it('should test valid 721 mint without cashback multiple', async () => { const body = new model_1.OneMintMultiple721(); body.fromPrivateKey = '0x4cda6d2c33b0f9a041e46474a638ac59aee0734cf208aa9aa2f05ef887bd09e1'; body.tokenId = ['1032121', '1032122']; body.contractAddress = '0x27c133a613f11870fa935ecbb03c0cf55f93e5de'; body.url = ['test.com', 'test1.com']; body.chain = model_1.Currency.ONE; body.to = ['one13t9ul0yvudlk7e60fwvxr5l0azfg3kyl474xmc', 'one13t9ul0yvudlk7e60fwvxr5l0azfg3kyl474xmc']; body.provenance = true; const txData = await one_1.prepareOneMintMultiple721ProvenanceSignedTransaction(true, body, PROVIDER); expect(txData).toContain('0x'); // await processTx(txData) }); }); describe('HRM 721', () => { it('should test valid Deploy 721', async () => { const body = new model_1.OneDeploy721(); body.fromPrivateKey = '0x4cda6d2c33b0f9a041e46474a638ac59aee0734cf208aa9aa2f05ef887bd09e1'; body.name = 'Tatum'; body.symbol = 'TTM'; body.chain = model_1.Currency.ONE; const txData = await one_1.prepareOneDeploy721SignedTransaction(true, body, PROVIDER); expect(txData).toContain('0x'); // await processTx(txData) }); it('should test valid 721 mint', async () => { const body = new model_1.OneMint721(); body.fromPrivateKey = '0x4cda6d2c33b0f9a041e46474a638ac59aee0734cf208aa9aa2f05ef887bd09e1'; body.tokenId = '100'; body.contractAddress = '0x3a45a4E2441a4A53e5A10bE3A15EC7Dc9eb902B7'; body.url = '14'; body.chain = model_1.Currency.ONE; body.to = 'one13t9ul0yvudlk7e60fwvxr5l0azfg3kyl474xmc'; const txData = await one_1.prepareOneMint721SignedTransaction(true, body, PROVIDER); expect(txData).toContain('0x'); // await processTx(txData) }); it('should test valid 721 transaction', async () => { const body = new model_1.OneTransfer721(); body.fromPrivateKey = '0x4cda6d2c33b0f9a041e46474a638ac59aee0734cf208aa9aa2f05ef887bd09e1'; body.tokenId = '10'; body.contractAddress = '0x3a45a4E2441a4A53e5A10bE3A15EC7Dc9eb902B7'; body.chain = model_1.Currency.ONE; body.to = 'one1yvph79875pj0pmgpxzmve87ks4sxer5u3jyfde'; const txData = await one_1.prepareOneTransfer721SignedTransaction(true, body, PROVIDER); expect(txData).toContain('0x'); // await processTx(txData) }); it('should test valid 721 mint with cashback', async () => { const body = new model_1.OneMint721(); body.fromPrivateKey = '0x4cda6d2c33b0f9a041e46474a638ac59aee0734cf208aa9aa2f05ef887bd09e1'; body.tokenId = '1021'; body.contractAddress = '0xeDB704d5d5940559C53FfB5CBCC38E6b0AdA3Bc3'; body.url = '14'; body.chain = model_1.Currency.ONE; body.to = 'one13t9ul0yvudlk7e60fwvxr5l0azfg3kyl474xmc'; body.authorAddresses = ['one13t9ul0yvudlk7e60fwvxr5l0azfg3kyl474xmc']; body.cashbackValues = ['1']; const txData = await one_1.prepareOneMintCashback721SignedTransaction(true, body, PROVIDER); expect(txData).toContain('0x'); // await processTx(txData) }); it('should test valid 721 mint with cashback multiple', async () => { const body = new model_1.OneMintMultiple721(); body.fromPrivateKey = '0x4cda6d2c33b0f9a041e46474a638ac59aee0734cf208aa9aa2f05ef887bd09e1'; body.tokenId = ['1031']; body.contractAddress = '0x3a45a4E2441a4A53e5A10bE3A15EC7Dc9eb902B7'; body.url = ['14']; body.chain = model_1.Currency.ONE; body.to = ['one13t9ul0yvudlk7e60fwvxr5l0azfg3kyl474xmc']; body.authorAddresses = [['one13t9ul0yvudlk7e60fwvxr5l0azfg3kyl474xmc']]; body.cashbackValues = [['1']]; const txData = await one_1.prepareOneMintMultipleCashback721SignedTransaction(true, body, PROVIDER); expect(txData).toContain('0x'); // await processTx(txData) }); it('should test valid 721 cashback transaction', async () => { const body = new model_1.OneTransfer721(); body.fromPrivateKey = '0x4cda6d2c33b0f9a041e46474a638ac59aee0734cf208aa9aa2f05ef887bd09e1'; body.tokenId = '1021'; body.contractAddress = '0xeDB704d5d5940559C53FfB5CBCC38E6b0AdA3Bc3'; body.chain = model_1.Currency.ONE; body.value = '1'; body.to = 'one1yvph79875pj0pmgpxzmve87ks4sxer5u3jyfde'; const txData = await one_1.prepareOneTransfer721SignedTransaction(true, body, PROVIDER); expect(txData).toContain('0x'); // await processTx(txData) }); it('should test valid 721 cashback update', async () => { const body = new model_1.OneUpdateCashback721(); body.fromPrivateKey = '0x4cda6d2c33b0f9a041e46474a638ac59aee0734cf208aa9aa2f05ef887bd09e1'; body.tokenId = '1021'; body.contractAddress = '0xeDB704d5d5940559C53FfB5CBCC38E6b0AdA3Bc3'; body.chain = model_1.Currency.ONE; body.cashbackValue = '2'; const txData = await one_1.prepareOneUpdateCashbackForAuthor721SignedTransaction(true, body, PROVIDER); expect(txData).toContain('0x'); // await processTx(txData) }); it('should test valid 721 burn', async () => { const body = new model_1.OneBurn721(); body.fromPrivateKey = '0x4cda6d2c33b0f9a041e46474a638ac59aee0734cf208aa9aa2f05ef887bd09e1'; body.tokenId = '100'; body.contractAddress = '0x3a45a4E2441a4A53e5A10bE3A15EC7Dc9eb902B7'; body.chain = model_1.Currency.ONE; const txData = await one_1.prepareOneBurn721SignedTransaction(true, body, PROVIDER); expect(txData).toContain('0x'); // await processTx(txData) }); }); describe('HRM 1155', () => { it('should test valid Deploy 1155', async () => { const body = new model_1.OneDeployMultiToken(); body.fromPrivateKey = '0x4cda6d2c33b0f9a041e46474a638ac59aee0734cf208aa9aa2f05ef887bd09e1'; body.uri = 'Tatum'; body.chain = model_1.Currency.ONE; const txData = await one_1.prepareOneDeployMultiTokenSignedTransaction(true, body, PROVIDER); expect(txData).toContain('0x'); // await processTx(txData) }); it('should test valid 1155 mint', async () => { const body = new model_1.OneMintMultiToken(); body.fromPrivateKey = '0x4cda6d2c33b0f9a041e46474a638ac59aee0734cf208aa9aa2f05ef887bd09e1'; body.tokenId = '100'; body.contractAddress = '0x3b0b77e149aF684a1a4636eb1cffEeF910845D24'; body.chain = model_1.Currency.ONE; body.amount = '100'; body.to = 'one13t9ul0yvudlk7e60fwvxr5l0azfg3kyl474xmc'; const txData = await one_1.prepareOneMintMultiTokenSignedTransaction(true, body, PROVIDER); expect(txData).toContain('0x'); // await processTx(txData) }); it('should test valid 1155 mint batch', async () => { const body = new model_1.OneMintMultiTokenBatch(); body.fromPrivateKey = '0x4cda6d2c33b0f9a041e46474a638ac59aee0734cf208aa9aa2f05ef887bd09e1'; body.tokenId = [['100']]; body.contractAddress = '0x3b0b77e149aF684a1a4636eb1cffEeF910845D24'; body.chain = model_1.Currency.ONE; body.amounts = [['100']]; body.to = ['one13t9ul0yvudlk7e60fwvxr5l0azfg3kyl474xmc']; const txData = await one_1.prepareOneMintMultiTokenBatchSignedTransaction(true, body, PROVIDER); expect(txData).toContain('0x'); // await processTx(txData) }); it('should test valid 1155 transaction', async () => { const body = new model_1.OneTransferMultiToken(); body.fromPrivateKey = '0x4cda6d2c33b0f9a041e46474a638ac59aee0734cf208aa9aa2f05ef887bd09e1'; body.tokenId = '100'; body.amount = '10'; body.contractAddress = '0x3b0b77e149aF684a1a4636eb1cffEeF910845D24'; body.chain = model_1.Currency.ONE; body.to = 'one1yvph79875pj0pmgpxzmve87ks4sxer5u3jyfde'; const txData = await one_1.prepareOneTransferMultiTokenSignedTransaction(true, body, PROVIDER); expect(txData).toContain('0x'); // await processTx(txData) }); it('should test valid 1155 batch transaction', async () => { const body = new model_1.OneTransferMultiTokenBatch(); body.fromPrivateKey = '0x4cda6d2c33b0f9a041e46474a638ac59aee0734cf208aa9aa2f05ef887bd09e1'; body.tokenId = ['100']; body.amounts = ['10']; body.contractAddress = '0x3b0b77e149aF684a1a4636eb1cffEeF910845D24'; body.chain = model_1.Currency.ONE; body.to = 'one1yvph79875pj0pmgpxzmve87ks4sxer5u3jyfde'; const txData = await one_1.prepareOneBatchTransferMultiTokenSignedTransaction(true, body, PROVIDER); expect(txData).toContain('0x'); // await processTx(txData) }); it('should test valid 1155 burn', async () => { const body = new model_1.OneBurnMultiToken(); body.fromPrivateKey = '0x4cda6d2c33b0f9a041e46474a638ac59aee0734cf208aa9aa2f05ef887bd09e1'; body.tokenId = '100'; body.amount = '10'; body.account = 'one13t9ul0yvudlk7e60fwvxr5l0azfg3kyl474xmc'; body.contractAddress = '0x3b0b77e149aF684a1a4636eb1cffEeF910845D24'; body.chain = model_1.Currency.ONE; const txData = await one_1.prepareOneBurnMultiTokenSignedTransaction(true, body, PROVIDER); expect(txData).toContain('0x'); // await processTx(txData) }); it('should test valid 1155 burn batch', async () => { const body = new model_1.OneBurnMultiTokenBatch(); body.fromPrivateKey = '0x4cda6d2c33b0f9a041e46474a638ac59aee0734cf208aa9aa2f05ef887bd09e1'; body.tokenId = ['100']; body.amounts = ['10']; body.account = 'one13t9ul0yvudlk7e60fwvxr5l0azfg3kyl474xmc'; body.contractAddress = '0x3b0b77e149aF684a1a4636eb1cffEeF910845D24'; body.chain = model_1.Currency.ONE; const txData = await one_1.prepareOneBurnMultiTokenBatchSignedTransaction(true, body, PROVIDER); expect(txData).toContain('0x'); // await processTx(txData) }); }); }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib25lLnNwZWMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdHJhbnNhY3Rpb24vb25lLnNwZWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxvQ0FvQmlCO0FBQ2pCLCtCQXVCYztBQUNkLDhHQUFzRjtBQUV0RixNQUFNLFFBQVEsR0FBRywwQkFBMEIsQ0FBQTtBQUUzQyxRQUFRLENBQUMsa0JBQWtCLEVBQUUsR0FBRyxFQUFFO0lBQzlCLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUE7SUFFdEIsS0FBSyxVQUFVLFNBQVMsQ0FBQyxNQUFjO1FBQ25DLE1BQU0sTUFBTSxHQUFHLHNCQUFnQixDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsb0VBQW9FLENBQUMsQ0FBQTtRQUNySCxNQUFNLFNBQVMsR0FBRyxNQUFNLE1BQU0sQ0FBQyxHQUFHLENBQUMscUJBQXFCLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDaEUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLENBQUE7SUFDMUMsQ0FBQztJQUVELFFBQVEsQ0FBQyxZQUFZLEVBQUUsR0FBRyxFQUFFO1FBQ3hCLEVBQUUsQ0FBQyxtQ0FBbUMsRUFBRSxLQUFLLElBQUksRUFBRTtZQUMvQyxNQUFNLElBQUksR0FBRyxJQUFJLG1CQUFXLEVBQUUsQ0FBQTtZQUM5QixJQUFJLENBQUMsY0FBYyxHQUFHLG9FQUFvRSxDQUFBO1lBQzFGLElBQUksQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFBO1lBQ2pCLElBQUksQ0FBQyxFQUFFLEdBQUcsNENBQTRDLENBQUE7WUFDdEQsTUFBTSxNQUFNLEdBQUcsTUFBTSxpQ0FBMkIsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFBO1lBQ3RFLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUE7WUFFOUIsMEJBQTBCO1FBQzlCLENBQUMs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