UNPKG

@tatumio/tatum-v1

Version:

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

274 lines 22.9 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const request_1 = require("../request"); const tatum_1 = require("../../connector/tatum"); describe('Mint721BatchBuiltInPrivateKeyValidator tests', () => { describe('Validations with PK', () => { it('should test mint CELO with private key', async () => { await tatum_1.validateBody({ 'chain': request_1.Currency.CELO, 'to': ['0xBC2eBA680EE50d685cc4Fe65f102AA70AfB27D3F'], 'url': ['https://www.seznam.cz'], 'feeCurrency': request_1.Currency.CELO, 'tokenId': [`${Date.now()}`], 'fromPrivateKey': '89f09a62c9601d660dcdbeab15fbecfc07933971465fab3ba9fe1354035d805d', 'contractAddress': '0x45871ED5F15203C0ce791eFE5f4B5044833aE10e', }, request_1.CeloMintMultipleErc721); }); it('should not test mint CELO with private key - missing tokenId', async () => { try { await tatum_1.validateBody({ 'chain': request_1.Currency.CELO, 'to': ['0xBC2eBA680EE50d685cc4Fe65f102AA70AfB27D3F'], 'url': ['https://www.seznam.cz'], 'feeCurrency': request_1.Currency.CELO, 'fromPrivateKey': '89f09a62c9601d660dcdbeab15fbecfc07933971465fab3ba9fe1354035d805d', 'contractAddress': '0x45871ED5F15203C0ce791eFE5f4B5044833aE10e', }, request_1.CeloMintMultipleErc721); fail('Wrong validation'); } catch (e) { console.log(e); } }); it('should not test mint CELO with private key - both PK and sigID are present', async () => { try { await tatum_1.validateBody({ 'chain': request_1.Currency.CELO, tokenId: ['123'], 'to': ['0xBC2eBA680EE50d685cc4Fe65f102AA70AfB27D3F'], 'url': ['https://www.seznam.cz'], 'feeCurrency': request_1.Currency.CELO, 'fromPrivateKey': '89f09a62c9601d660dcdbeab15fbecfc07933971465fab3ba9fe1354035d805d', 'signatureId': 'e23c9cb0-0650-4d41-b8c1-dfa3f9b76fad', 'contractAddress': '0x45871ED5F15203C0ce791eFE5f4B5044833aE10e', }, request_1.CeloMintMultipleErc721); fail('Wrong validation'); } catch (e) { console.log(e); } }); it('should not test mint CELO with private key - wrong contractAddress length', async () => { try { await tatum_1.validateBody({ 'chain': request_1.Currency.CELO, 'to': ['0xBC2eBA680EE50d685cc4Fe65f102AA70AfB27D3F'], 'url': ['https://www.seznam.cz'], 'feeCurrency': request_1.Currency.CELO, 'tokenId': [`1`], 'fromPrivateKey': '89f09a62c9601d660dcdbeab15fbecfc07933971465fab3ba9fe1354035d805d', 'contractAddress': '0x45871ED5F15203C0ce791eFE5f4B5044833aE10e0x45871ED5F15203C0ce791eFE5f4B5044833aE10e', }, request_1.CeloMintMultipleErc721); fail('Wrong validation'); } catch (e) { console.log(e); } }); it('should not test mint CELO with private key - wrong PK length', async () => { try { await tatum_1.validateBody({ 'chain': request_1.Currency.CELO, 'to': ['0xBC2eBA680EE50d685cc4Fe65f102AA70AfB27D3F'], 'url': ['https://www.seznam.cz'], 'feeCurrency': request_1.Currency.CELO, 'tokenId': [`1`], 'fromPrivateKey': '89f09a62c9601d660dcdbeab15fbecfc07933971465fab3ba9fe1354035d805dasdasd', 'contractAddress': '0x45871ED5F15203C0ce791eFE5f4B5044833aE10e', }, request_1.CeloMintMultipleErc721); fail('Wrong validation'); } catch (e) { console.log(e); } }); }); describe('Validations with signature ID', () => { it('should test mint CELO', async () => { await tatum_1.validateBody({ 'chain': request_1.Currency.CELO, 'to': ['0xBC2eBA680EE50d685cc4Fe65f102AA70AfB27D3F'], 'url': ['https://www.seznam.cz'], 'feeCurrency': request_1.Currency.CELO, 'tokenId': [`${Date.now()}`], 'signatureId': 'e23c9cb0-0650-4d41-b8c1-dfa3f9b76fad', 'contractAddress': '0x45871ED5F15203C0ce791eFE5f4B5044833aE10e', }, request_1.CeloMintMultipleErc721); }); it('should not test mint CELO - missing tokenId', async () => { try { await tatum_1.validateBody({ 'chain': request_1.Currency.CELO, 'to': ['0xBC2eBA680EE50d685cc4Fe65f102AA70AfB27D3F'], 'url': ['https://www.seznam.cz'], 'feeCurrency': request_1.Currency.CELO, 'signatureId': 'e23c9cb0-0650-4d41-b8c1-dfa3f9b76fad', 'contractAddress': '0x45871ED5F15203C0ce791eFE5f4B5044833aE10e', }, request_1.CeloMintMultipleErc721); fail('Wrong validation'); } catch (e) { console.log(e); } }); it('should not test mint CELO - wrong contractAddress length', async () => { try { await tatum_1.validateBody({ 'chain': request_1.Currency.CELO, 'to': ['0xBC2eBA680EE50d685cc4Fe65f102AA70AfB27D3F'], 'url': ['https://www.seznam.cz'], 'feeCurrency': request_1.Currency.CELO, 'tokenId': [`1`], 'signatureId': 'e23c9cb0-0650-4d41-b8c1-dfa3f9b76fad', 'contractAddress': '0x45871ED5F15203C0ce791eFE5f4B5044833aE10e0x45871ED5F15203C0ce791eFE5f4B5044833aE10e', }, request_1.CeloMintMultipleErc721); fail('Wrong validation'); } catch (e) { console.log(e); } }); it('should not test mint CELO - wrong signatureId format', async () => { try { await tatum_1.validateBody({ 'chain': request_1.Currency.CELO, 'to': ['0xBC2eBA680EE50d685cc4Fe65f102AA70AfB27D3F'], 'url': ['https://www.seznam.cz'], 'feeCurrency': request_1.Currency.CELO, 'tokenId': [`1`], 'signatureId': 'e23c9cb0-0650-4d41-b8c1-dfa3f9b76fada', 'contractAddress': '0x45871ED5F15203C0ce791eFE5f4B5044833aE10e', }, request_1.CeloMintMultipleErc721); fail('Wrong validation'); } catch (e) { console.log(e); } }); }); describe('Built IN contract minting', () => { it('should not mint CELO without private key or signature id', async () => { try { await tatum_1.validateBody({ 'chain': request_1.Currency.CELO, 'to': ['0xBC2eBA680EE50d685cc4Fe65f102AA70AfB27D3F'], 'tokenId': ['0xBC2eBA680EE50d685cc4Fe65f102AA70AfB27D3F'], 'contractAddress': '0xBCa2eBA680EE50d685cc4Fe65f102AA70AfB27D3F', 'url': ['https://www.seznam.cz'], 'feeCurrency': request_1.Currency.CELO, }, request_1.CeloMintMultipleErc721); fail('should not pass'); } catch (e) { console.error(e); } }); it('should not mint TRON without private key or signature id - we dont mint on tron', async () => { try { await tatum_1.validateBody({ 'chain': request_1.Currency.TRON, 'to': ['TMk4gbr7KydL52nXUR8VacmbxyUPU31Asj'], 'url': ['https://www.seznam.cz'], }, request_1.TronMintMultipleTrc721); fail('Should not pass'); } catch (e) { console.log(e); } try { await tatum_1.validateBody({ 'chain': request_1.Currency.TRON, 'to': ['TMk4gbr7KydL52nXUR8VacmbxyUPU31Asj'], 'url': ['https://www.seznam.cz'], }, request_1.MintErc721); fail('Should not pass'); } catch (e) { console.log(e); } }); }); describe('Built IN with externalMinter', () => { it('should mint without PK or signatureID', async () => { await tatum_1.validateBody({ 'chain': request_1.Currency.CELO, 'to': ['0xBC2eBA680EE50d685cc4Fe65f102AA70AfB27D3F'], 'url': ['https://www.seznam.cz'], 'feeCurrency': request_1.Currency.CELO, 'tokenId': [`${Date.now()}`], 'minter': '0xBC2eBA680EE50d685cc4Fe65f102AA70AfB27D3F', 'contractAddress': '0x45871ED5F15203C0ce791eFE5f4B5044833aE10e', }, request_1.CeloMintMultipleErc721); }); it('should not mint - PK present', async () => { try { await tatum_1.validateBody({ 'chain': request_1.Currency.CELO, 'to': ['0xBC2eBA680EE50d685cc4Fe65f102AA70AfB27D3F'], 'url': ['https://www.seznam.cz'], 'feeCurrency': request_1.Currency.CELO, 'tokenId': [`${Date.now()}`], 'minter': '0xBC2eBA680EE50d685cc4Fe65f102AA70AfB27D3F', 'fromPrivateKey': '89f09a62c9601d660dcdbeab15fbecfc07933971465fab3ba9fe1354035d805d', 'contractAddress': '0x45871ED5F15203C0ce791eFE5f4B5044833aE10e', }, request_1.CeloMintMultipleErc721); fail('Should not pass'); } catch (e) { console.log(e); } }); it('should not mint - signatureId present', async () => { try { await tatum_1.validateBody({ 'chain': request_1.Currency.CELO, 'to': ['0xBC2eBA680EE50d685cc4Fe65f102AA70AfB27D3F'], 'url': ['https://www.seznam.cz'], 'feeCurrency': request_1.Currency.CELO, 'tokenId': [`${Date.now()}`], 'minter': '0xBC2eBA680EE50d685cc4Fe65f102AA70AfB27D3F', 'signatureId': 'e23c9cb0-0650-4d41-b8c1-dfa3f9b76fad', 'contractAddress': '0x45871ED5F15203C0ce791eFE5f4B5044833aE10e', }, request_1.CeloMintMultipleErc721); fail('Should not pass'); } catch (e) { console.log(e); } }); it('should not mint - tokenId not present', async () => { try { await tatum_1.validateBody({ 'chain': request_1.Currency.CELO, 'to': ['0xBC2eBA680EE50d685cc4Fe65f102AA70AfB27D3F'], 'url': ['https://www.seznam.cz'], 'feeCurrency': request_1.Currency.CELO, 'minter': '0xBC2eBA680EE50d685cc4Fe65f102AA70AfB27D3F', 'contractAddress': '0x45871ED5F15203C0ce791eFE5f4B5044833aE10e', }, request_1.CeloMintMultipleErc721); fail('Should not pass'); } catch (e) { console.log(e); } }); it('should not mint - contractAddress not present', async () => { try { await tatum_1.validateBody({ 'chain': request_1.Currency.CELO, 'to': ['0xBC2eBA680EE50d685cc4Fe65f102AA70AfB27D3F'], 'url': ['https://www.seznam.cz'], 'feeCurrency': request_1.Currency.CELO, 'minter': '0xBC2eBA680EE50d685cc4Fe65f102AA70AfB27D3F', 'tokenId': ['1'], }, request_1.CeloMintMultipleErc721); fail('Should not pass'); } catch (e) { console.log(e); } }); }); }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWludDcyMUJhdGNoQnVpbHRJblByaXZhdGVLZXlWYWxpZGF0b3Iuc3BlYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9tb2RlbC92YWxpZGF0aW9uL21pbnQ3MjFCYXRjaEJ1aWx0SW5Qcml2YXRlS2V5VmFsaWRhdG9yLnNwZWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSx3Q0FBaUc7QUFDakcsaURBQW9EO0FBRXBELFFBQVEsQ0FBQyw4Q0FBOEMsRUFBRSxHQUFHLEVBQUU7SUFDNUQsUUFBUSxDQUFDLHFCQUFxQixFQUFFLEdBQUcsRUFBRTtRQUNuQyxFQUFFLENBQUMsd0NBQXdDLEVBQUUsS0FBSyxJQUFJLEVBQUU7WUFDdEQsTUFBTSxvQkFBWSxDQUFDO2dCQUNqQixPQUFPLEVBQUUsa0JBQVEsQ0FBQyxJQUFJO2dCQUN0QixJQUFJLEVBQUUsQ0FBQyw0Q0FBNEMsQ0FBQztnQkFDcEQsS0FBSyxFQUFFLENBQUMsdUJBQXVCLENBQUM7Z0JBQ2hDLGFBQWEsRUFBRSxrQkFBUSxDQUFDLElBQUk7Z0JBQzVCLFNBQVMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUM7Z0JBQzVCLGdCQUFnQixFQUFFLGtFQUFrRTtnQkFDcEYsaUJBQWlCLEVBQUUsNENBQTRDO2FBQ2hFLEVBQUUsZ0NBQXNCLENBQUMsQ0FBQTtRQUM1QixDQUFDLENBQUMsQ0FBQTtRQUVGLEVBQUUsQ0FBQyw4REFBOEQsRUFBRSxLQUFLLElBQUksRUFBRTtZQUM1RSxJQUFJO2dCQUNGLE1BQU0sb0JBQVksQ0FBQztvQkFDakIsT0FBTyxFQUFFLGtCQUFRLENBQUMsSUFBSTtvQkFDdEIsSUFBSSxFQUFFLENBQUMsNENBQTRDLENBQUM7b0JBQ3BELEtBQUssRUFBRSxDQUFDLHVCQUF1QixDQUFDO29CQUNoQyxhQUFhLEVBQUUsa0JBQVEsQ0FBQyxJQUFJO29CQUM1QixnQkFBZ0IsRUFBRSxrRUFBa0U7b0JB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