UNPKG

@tatumio/tatum-v1

Version:

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

136 lines 14.8 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const dedent_js_1 = __importDefault(require("dedent-js")); const model_1 = require("../model"); const flow_1 = require("./flow"); const tatum_1 = require("../connector/tatum"); describe('Flow tests', () => { jest.setTimeout(199999); it('should create account from public key', async () => { const result = await flow_1.flowCreateAccountFromPublicKey(true, '968c3ce11e871cb2b7161b282655ee5fcb051f3c04894705d771bf11c6fbebfc6556ab8a0c04f45ea56281312336d0668529077c9d66891a6cad3db877acbe90', '0x955cd3f17b2fd8ad', '37afa218d41d9cd6a2c6f2b96d9eaa3ad96c598252bc50e4d45d62f9356a51f8'); console.log(result); expect(result.address).toBeDefined(); expect(result.txId).toBeDefined(); }); it('should add public key to account', async () => { const result = await flow_1.flowAddPublicKeyToAccount(true, '968c3ce11e871cb2b7161b282655ee5fcb051f3c04894705d771bf11c6fbebfc6556ab8a0c04f45ea56281312336d0668529077c9d66891a6cad3db877acbe90', '0x955cd3f17b2fd8ad', '37afa218d41d9cd6a2c6f2b96d9eaa3ad96c598252bc50e4d45d62f9356a51f8'); console.log(result); expect(result.address).toBe('0x955cd3f17b2fd8ad'); expect(result.txId).toBeDefined(); }); it('should send FLOW transaction', async () => { const body = new model_1.TransferFlow(); body.to = '0x21cbd745a4df66f1'; body.amount = '0.001'; body.account = '0x4f09d8d43e4967b7'; body.privateKey = '44179e42e147b391d3deb8a7a160b9490941cd7292936e6cc7277166a99ef058'; body.currency = model_1.Currency.FLOW; const result = await flow_1.flowSendTransaction(true, body, () => flow_1.getFlowSigner('44179e42e147b391d3deb8a7a160b9490941cd7292936e6cc7277166a99ef058', '0x4f09d8d43e4967b7', 0).signer, () => flow_1.getFlowSigner('44179e42e147b391d3deb8a7a160b9490941cd7292936e6cc7277166a99ef058', '0x4f09d8d43e4967b7').signer); expect(result.txId).toBeDefined(); console.log(result); }); it(' FLOW transaction validation mnomonic and index', async () => { const body = new model_1.TransferFlow(); body.to = '0xbf4cacdb6ef17fa7'; body.amount = '0.114'; body.account = '0x2db1c763e6466c0c'; body.mnemonic = 'marriage favorite inject forward major beef upset victory tissue coil where grant else mean tag pipe naive leg material have blue execute spend chaos'; body.index = 1; body.currency = model_1.Currency.FLOW; const result = await tatum_1.validateBody(body, model_1.TransferFlow); expect(true); }); it(' FLOW transaction validation privatekey and index', async () => { const body = new model_1.TransferFlow(); body.to = '0xbf4cacdb6ef17fa7'; body.amount = '0.114'; body.account = '0x2db1c763e6466c0c'; body.privateKey = 'deacb2978067c28a097549d37613a16b64c20ad04f300319cb601dbef0457824'; body.index = 1; body.currency = model_1.Currency.FLOW; await tatum_1.validateBody(body, model_1.TransferFlow); expect(true); }); it('should send FLOW API signer transaction', async () => { const body = new model_1.TransferFlow(); body.to = '0x21cbd745a4df66f1'; body.amount = '0.001'; body.account = '0x4f09d8d43e4967b7'; body.privateKey = '44179e42e147b391d3deb8a7a160b9490941cd7292936e6cc7277166a99ef058'; body.currency = model_1.Currency.FLOW; const result = await flow_1.flowSendTransaction(true, body); expect(result.txId).toBeDefined(); console.log(result); }); it('should mint NFT FLOW API signer transaction', async () => { const body = new model_1.FlowMintNft(); body.to = '0x10247089e55180c9'; body.contractAddress = '2d103773-50e2-4a37-ac3d-61bc6af8faee'; body.url = 'url'; body.account = '0x10247089e55180c9'; body.privateKey = '3881849dd540a0c80383c3727951d35e3e9e8c238ec82a581726c3fc2ca17bc4'; body.chain = model_1.Currency.FLOW; const result = await flow_1.sendFlowNftMintToken(true, body); expect(result.txId).toBeDefined(); console.log(result); }); it('should burn NFT FLOW API signer transaction', async () => { const body = new model_1.FlowBurnNft(); body.tokenId = '196'; body.contractAddress = '2d103773-50e2-4a37-ac3d-61bc6af8faee'; body.account = '0x10247089e55180c9'; body.privateKey = '3881849dd540a0c80383c3727951d35e3e9e8c238ec82a581726c3fc2ca17bc4'; body.chain = model_1.Currency.FLOW; const result = await flow_1.sendFlowNftBurnToken(true, body); expect(result.txId).toBeDefined(); console.log(result); }); it('should transfer NFT FLOW API signer transaction', async () => { const body = new model_1.FlowTransferNft(); body.tokenId = '199'; body.contractAddress = '2d103773-50e2-4a37-ac3d-61bc6af8faee'; body.account = '0x10247089e55180c9'; body.privateKey = '3881849dd540a0c80383c3727951d35e3e9e8c238ec82a581726c3fc2ca17bc4'; body.chain = model_1.Currency.FLOW; const result = await flow_1.sendFlowNftBurnToken(true, body); expect(result.txId).toBeDefined(); console.log(result); }); it('should mint multiple NFT FLOW API signer transaction', async () => { const body = new model_1.FlowMintMultipleNft(); body.to = ['0x10247089e55180c9']; body.contractAddress = '2d103773-50e2-4a37-ac3d-61bc6af8faee'; body.url = ['url']; body.account = '0x10247089e55180c9'; body.privateKey = '3881849dd540a0c80383c3727951d35e3e9e8c238ec82a581726c3fc2ca17bc4'; body.chain = model_1.Currency.FLOW; const result = await flow_1.sendFlowNftMintMultipleToken(true, body); expect(result.txId).toBeDefined(); console.log(result); }); it('should send FLOW custom transaction', async () => { const body = new model_1.TransferFlowCustomTx(); body.transaction = dedent_js_1.default `transaction() { prepare(signer: AuthAccount) { signer.addPublicKey("f845b840181369ec8500ddc70252c0825fba8c2914cf9f778ed67fa103ebf7f665ffb37476ccbe17ecf4115de2710aca493be06c5f592a6686805be78d55640c4ec555b6030380".decodeHex()) }}`; body.args = []; body.account = '0x955cd3f17b2fd8ad'; body.privateKey = '37afa218d41d9cd6a2c6f2b96d9eaa3ad96c598252bc50e4d45d62f9356a51f8'; const result = await flow_1.flowSendCustomTransaction(true, body); console.log(result); expect(result.txId).toBeDefined(); }); it('should get NFT token by address', async () => { const result = await flow_1.getFlowNftTokenByAddress(true, '0x2d0d7b39db4e3a08', '27320939-3087-490e-a65e-a53c8b06fcd9'); expect(result).toBeDefined(); }); it('should get NFT token metadata', async () => { const result = await flow_1.getFlowNftMetadata(true, '0x2d0d7b39db4e3a08', '8', '27320939-3087-490e-a65e-a53c8b06fcd9'); expect(result).toBeDefined(); }); }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvdy5zcGVjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3RyYW5zYWN0aW9uL2Zsb3cuc3BlYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDBEQUErQjtBQUMvQixvQ0FBc0k7QUFDdEksaUNBV2dCO0FBQ2hCLDhDQUErQztBQUUvQyxRQUFRLENBQUMsWUFBWSxFQUFFLEdBQUcsRUFBRTtJQUV4QixJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRXhCLEVBQUUsQ0FBQyx1Q0FBdUMsRUFBRSxLQUFLLElBQUksRUFBRTtRQUNuRCxNQUFNLE1BQU0sR0FBRyxNQUFNLHFDQUE4QixDQUFDLElBQUksRUFBRSxrSUFBa0ksRUFBRSxvQkFBb0IsRUFBRSxrRUFBa0UsQ0FBQyxDQUFDO1FBQ3hSLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDcEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNyQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3RDLENBQUMsQ0FBQyxDQUFBO0lBRUYsRUFBRSxDQUFDLGtDQUFrQyxFQUFFLEtBQUssSUFBSSxFQUFFO1FBQzlDLE1BQU0sTUFBTSxHQUFHLE1BQU0sZ0NBQXlCLENBQUMsSUFBSSxFQUFFLGtJQUFrSSxFQUFFLG9CQUFvQixFQUFFLGtFQUFrRSxDQUFDLENBQUM7UUFDblIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNwQixNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ2xELE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDdEMsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsOEJB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