@tatumio/tatum-v1
Version:
Tatum API client allows browsers and Node.js clients to interact with Tatum API.
306 lines • 25.8 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const request_1 = require("../request");
const tatum_1 = require("../../connector/tatum");
describe('Mint721BuiltInPrivateKeyValidator 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.CeloMintErc721);
});
it('should test mint ALGO with private key', async () => {
await tatum_1.validateBody({
'chain': request_1.Currency.ALGO,
'tokenId': 'TEST',
'url': 'https://www.seznam.cz',
'name': request_1.Currency.CELO,
'fromPrivateKey': '72TCV5BRQPBMSAFPYO3CPWVDBYWNGAYNMTW5QHENOMQF7I6QLNMJWCJZ7A3V5YKD7QD6ZZPEHG2PV2ZVVEDDO6BCRGXWIL3DIUMSUCI',
}, request_1.MintAlgoNft);
});
it('should not test mint CELO with private key - wrong tokenId', async () => {
try {
await tatum_1.validateBody({
'chain': request_1.Currency.CELO,
'to': '0xBC2eBA680EE50d685cc4Fe65f102AA70AfB27D3F',
'url': 'https://www.seznam.cz',
'feeCurrency': request_1.Currency.CELO,
'tokenId': `89f09a62c9601d660dcdbeab15fbecfc07933971465fab3ba9fe1354035d805d89f09a62c9601d660dcdbeab15fbecfc07933971465fab3ba9fe1354035d805d89f09a62c9601d660dcdbeab15fbecfc07933971465fab3ba9fe1354035d805d89f09a62c9601d660dcdbeab15fbecfc07933971465fab3ba9fe1354035d805d89f09a62c9601d660dcdbeab15fbecfc07933971465fab3ba9fe1354035d805d89f09a62c9601d660dcdbeab15fbecfc07933971465fab3ba9fe1354035d805d89f09a62c9601d660dcdbeab15fbecfc07933971465fab3ba9fe1354035d805d89f09a62c9601d660dcdbeab15fbecfc07933971465fab3ba9fe1354035d805d`,
'fromPrivateKey': '89f09a62c9601d660dcdbeab15fbecfc07933971465fab3ba9fe1354035d805d',
'contractAddress': '0x45871ED5F15203C0ce791eFE5f4B5044833aE10e',
}, request_1.CeloMintErc721);
fail('Wrong validation');
}
catch (e) {
console.log(e);
}
});
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.CeloMintErc721);
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.CeloMintErc721);
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': '89f09a62c9601d660dcdbeab15fbecfc07933971465fab3ba9fe1354035d805dasdasd89f09a62c9601d660dcdbeab15fbecfc07933971465fab3ba9fe1354035d805dasdasd89f09a62c9601d660dcdbeab15fbecfc07933971465fab3ba9fe1354035d805dasdasd',
'contractAddress': '0x45871ED5F15203C0ce791eFE5f4B5044833aE10e',
}, request_1.CeloMintErc721);
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.CeloMintErc721);
});
it('should not test mint CELO - wrong tokenId', async () => {
try {
await tatum_1.validateBody({
'chain': request_1.Currency.CELO,
'to': '0xBC2eBA680EE50d685cc4Fe65f102AA70AfB27D3F',
'url': 'https://www.seznam.cz',
'feeCurrency': request_1.Currency.CELO,
'tokenId': `89f09a62c9601d660dcdbeab15fbecfc07933971465fab3ba9fe1354035d805d89f09a62c9601d660dcdbeab15fbecfc07933971465fab3ba9fe1354035d805d89f09a62c9601d660dcdbeab15fbecfc07933971465fab3ba9fe1354035d805d89f09a62c9601d660dcdbeab15fbecfc07933971465fab3ba9fe1354035d805d89f09a62c9601d660dcdbeab15fbecfc07933971465fab3ba9fe1354035d805d89f09a62c9601d660dcdbeab15fbecfc07933971465fab3ba9fe1354035d805d89f09a62c9601d660dcdbeab15fbecfc07933971465fab3ba9fe1354035d805d89f09a62c9601d660dcdbeab15fbecfc07933971465fab3ba9fe1354035d805d`,
'signatureId': 'e23c9cb0-0650-4d41-b8c1-dfa3f9b76fad',
'contractAddress': '0x45871ED5F15203C0ce791eFE5f4B5044833aE10e',
}, request_1.CeloMintErc721);
fail('Wrong validation');
}
catch (e) {
console.log(e);
}
});
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.CeloMintErc721);
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.CeloMintErc721);
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.CeloMintErc721);
fail('Wrong validation');
}
catch (e) {
console.log(e);
}
});
});
describe('Built IN contract minting', () => {
it('should mint CELO without private key or signature id', async () => {
await tatum_1.validateBody({
'chain': request_1.Currency.CELO,
'to': '0xBC2eBA680EE50d685cc4Fe65f102AA70AfB27D3F',
'url': 'https://www.seznam.cz',
'feeCurrency': request_1.Currency.CELO,
}, request_1.CeloMintErc721);
});
it('should mint ETH without private key or signature id', async () => {
await tatum_1.validateBody({
'chain': request_1.Currency.ETH,
'to': '0xBC2eBA680EE50d685cc4Fe65f102AA70AfB27D3F',
'url': 'https://www.seznam.cz',
}, request_1.EthMintErc721);
});
it('should mint ALGO without private key or signature id', async () => {
await tatum_1.validateBody({
'chain': request_1.Currency.ALGO,
'tokenId': 'TEST',
'url': 'https://www.seznam.cz',
'name': request_1.Currency.CELO,
}, request_1.MintAlgoNft);
});
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.TronMintTrc721);
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.CeloMintErc721);
});
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.CeloMintErc721);
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.CeloMintErc721);
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.CeloMintErc721);
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.CeloMintErc721);
fail('Should not pass');
}
catch (e) {
console.log(e);
}
});
});
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWludDcyMUJ1aWx0SW5Qcml2YXRlS2V5VmFsaWRhdG9yLnNwZWMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbW9kZWwvdmFsaWRhdGlvbi9taW50NzIxQnVpbHRJblByaXZhdGVLZXlWYWxpZGF0b3Iuc3BlYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHdDQUE2RztBQUM3RyxpREFBb0Q7QUFFcEQsUUFBUSxDQUFDLHlDQUF5QyxFQUFFLEdBQUcsRUFBRTtJQUN2RCxRQUFRLENBQUMscUJBQXFCLEVBQUUsR0FBRyxFQUFFO1FBQ25DLEVBQUUsQ0FBQyx3Q0FBd0MsRUFBRSxLQUFLLElBQUksRUFBRTtZQUN0RCxNQUFNLG9CQUFZLENBQUM7Z0JBQ2pCLE9BQU8sRUFBRSxrQkFBUSxDQUFDLElBQUk7Z0JBQ3RCLElBQUksRUFBRSw0Q0FBNEM7Z0JBQ2xELEtBQUssRUFBRSx1QkFBdUI7Z0JBQzlCLGFBQWEsRUFBRSxrQkFBUSxDQUFDLElBQUk7Z0JBQzVCLFNBQVMsRUFBRSxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDMUIsZ0JBQWdCLEVBQUUsa0VBQWtFO2dCQUNwRixpQkFBaUIsRUFBRSw0Q0FBNEM7YUFDaEUsRUFBRSx3QkFBYyxDQUFDLENBQUE7UUFDcEIsQ0FBQyxDQUFDLENBQUE7UUFFRixFQUFFLENBQUMsd0NBQXdDLEVBQUUsS0FBSyxJQUFJLEVBQUU7WUFDdEQsTUFBTSxvQkFBWSxDQUFDO2dCQUNqQixPQUFPLEVBQUUsa0JBQVEsQ0FBQyxJQUFJO2dCQUN0QixTQUFTLEVBQUUsTUFBTTtnQkFDakIsS0FBSyxFQUFFLHVCQUF1QjtnQkFDOUIsTUFBTSxFQUFFLGtCQUFRLENBQUMsSUFBSTtnQkFDckIsZ0JBQWdCLEVBQUUseUdBQXlHO2FBQzVILEVBQUUscUJBQVcsQ0FBQyxDQUFBO1FBQ2pCLENBQUMsQ0FBQyxDQUFBO1FBRUYsRUFBRSxDQUFDLDREQUE0RCxFQUFFLEtB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