@tatumio/tatum-v1
Version:
Tatum API client allows browsers and Node.js clients to interact with Tatum API.
274 lines • 22.9 kB
JavaScript
;
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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