@tatumio/tatum
Version:
Tatum JS SDK
261 lines • 12.5 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const service_1 = require("../service");
describe.skip('Tatum token', () => {
let tatum;
beforeAll(async () => {
tatum = await service_1.TatumSDK.init({
network: service_1.Network.ETHEREUM_SEPOLIA,
retryDelay: 1000,
retryCount: 2,
});
});
describe('token balances', () => {
it('should get token balances', async () => {
const { data: balance } = await tatum.token.getBalance({
addresses: ['0x2cbaf358c0af93096bd820ce57c26f0b7c6ec7ab'],
});
expect(balance).toBeDefined();
expect(balance.length).toBe(2);
expect(balance[0]).toStrictEqual({
address: '0x2cbaf358c0af93096bd820ce57c26f0b7c6ec7ab',
balance: '100',
chain: 'ethereum-sepolia',
lastUpdatedBlockNumber: 3582255,
tokenAddress: '0x5169fe503d6dacb7ac0495faa342ee9731892490',
type: 'fungible',
});
expect(balance[1]).toStrictEqual({
address: '0x2cbaf358c0af93096bd820ce57c26f0b7c6ec7ab',
balance: '200',
chain: 'ethereum-sepolia',
lastUpdatedBlockNumber: 3582262,
tokenAddress: '0x9b7d44c8d1f1f1bf42f596600c28431b567fcd40',
type: 'fungible',
});
});
it('should get token balances - few addresses', async () => {
const { data: balance } = await tatum.token.getBalance({
addresses: [
'0x2cbaf358c0af93096bd820ce57c26f0b7c6ec7ab',
'0xe7438d25519dcf7301238cb3ef8a824e805aa7f0',
],
});
expect(balance).toBeDefined();
expect(balance.length).toBe(3);
expect(balance[0]).toStrictEqual({
address: '0x2cbaf358c0af93096bd820ce57c26f0b7c6ec7ab',
balance: '100',
chain: 'ethereum-sepolia',
lastUpdatedBlockNumber: 3582255,
tokenAddress: '0x5169fe503d6dacb7ac0495faa342ee9731892490',
type: 'fungible',
});
expect(balance[1]).toStrictEqual({
address: '0x2cbaf358c0af93096bd820ce57c26f0b7c6ec7ab',
balance: '200',
chain: 'ethereum-sepolia',
lastUpdatedBlockNumber: 3582262,
tokenAddress: '0x9b7d44c8d1f1f1bf42f596600c28431b567fcd40',
type: 'fungible',
});
expect(balance[2]).toStrictEqual({
address: '0xe7438d25519dcf7301238cb3ef8a824e805aa7f0',
balance: '50',
chain: 'ethereum-sepolia',
lastUpdatedBlockNumber: 3582850,
tokenAddress: '0x9b7d44c8d1f1f1bf42f596600c28431b567fcd40',
type: 'fungible',
});
});
});
describe('token transactions', () => {
it('should get ERC20 transactions for address for all tokens', async () => {
const { data: txs } = await tatum.token.getAllFungibleTransactions({
addresses: ['0x2cbaf358c0af93096bd820ce57c26f0b7c6ec7ab'],
});
expect(txs).toHaveLength(2);
expect(txs[0]).toStrictEqual({
address: '0x2cbaf358c0af93096bd820ce57c26f0b7c6ec7ab',
amount: '200',
blockNumber: 3582262,
chain: 'ethereum-sepolia',
counterAddress: '0x48fa1676cfd0dfa23a71829c4c6d56874a88fa48',
hash: '0xb6a77841bc1061a9fe19c529cbe1ae39e0031c7a772e4b0cdc8d4711f78c2e42',
timestamp: 1685358648000,
tokenAddress: '0x9b7d44c8d1f1f1bf42f596600c28431b567fcd40',
transactionIndex: 0,
transactionSubtype: 'incoming',
transactionType: 'fungible',
});
expect(txs[1]).toStrictEqual({
address: '0x2cbaf358c0af93096bd820ce57c26f0b7c6ec7ab',
amount: '100',
blockNumber: 3582255,
chain: 'ethereum-sepolia',
counterAddress: '0xabfdc940d6983bafe7634dcba7db02b0d00f9d63',
hash: '0x9cf21dc47807067b55af950bc5d18637618961d0490ddc7d95a75154dcf9d37e',
timestamp: 1685358564000,
tokenAddress: '0x5169fe503d6dacb7ac0495faa342ee9731892490',
transactionIndex: 2,
transactionSubtype: 'incoming',
transactionType: 'fungible',
});
});
it('should get ERC20 transactions for address for specific token', async () => {
const { data: txs } = await tatum.token.getAllFungibleTransactions({
addresses: ['0x2cbaf358c0af93096bd820ce57c26f0b7c6ec7ab'],
tokenAddress: '0x9b7d44c8d1f1f1bf42f596600c28431b567fcd40',
});
expect(txs).toHaveLength(1);
expect(txs[0]).toStrictEqual({
address: '0x2cbaf358c0af93096bd820ce57c26f0b7c6ec7ab',
amount: '200',
blockNumber: 3582262,
chain: 'ethereum-sepolia',
counterAddress: '0x48fa1676cfd0dfa23a71829c4c6d56874a88fa48',
hash: '0xb6a77841bc1061a9fe19c529cbe1ae39e0031c7a772e4b0cdc8d4711f78c2e42',
timestamp: 1685358648000,
tokenAddress: '0x9b7d44c8d1f1f1bf42f596600c28431b567fcd40',
transactionIndex: 0,
transactionSubtype: 'incoming',
transactionType: 'fungible',
});
const { data: txs2 } = await tatum.token.getAllFungibleTransactions({
addresses: ['0x2cbaf358c0af93096bd820ce57c26f0b7c6ec7ab'],
tokenAddress: '0x5169fe503d6dacb7ac0495faa342ee9731892490',
});
expect(txs).toHaveLength(1);
expect(txs2[0]).toStrictEqual({
address: '0x2cbaf358c0af93096bd820ce57c26f0b7c6ec7ab',
amount: '100',
blockNumber: 3582255,
chain: 'ethereum-sepolia',
counterAddress: '0xabfdc940d6983bafe7634dcba7db02b0d00f9d63',
hash: '0x9cf21dc47807067b55af950bc5d18637618961d0490ddc7d95a75154dcf9d37e',
timestamp: 1685358564000,
tokenAddress: '0x5169fe503d6dacb7ac0495faa342ee9731892490',
transactionIndex: 2,
transactionSubtype: 'incoming',
transactionType: 'fungible',
});
const { data: wrongSC } = await tatum.token.getAllFungibleTransactions({
addresses: ['0x2cbaf358c0af93096bd820ce57c26f0b7c6ec7ab'],
tokenAddress: '0x2cbaf358c0af93096bd820ce57c26f0b7c6ec7ab',
});
expect(wrongSC).toHaveLength(0);
});
describe('should filter ERC20 transactions for address for all tokens', () => {
it('blockFrom', async () => {
const { data: txs } = await tatum.token.getAllFungibleTransactions({
addresses: ['0x2cbaf358c0af93096bd820ce57c26f0b7c6ec7ab'],
blockFrom: 3582256,
});
expect(txs).toHaveLength(1);
expect(txs[0]).toStrictEqual({
address: '0x2cbaf358c0af93096bd820ce57c26f0b7c6ec7ab',
amount: '200',
blockNumber: 3582262,
chain: 'ethereum-sepolia',
counterAddress: '0x48fa1676cfd0dfa23a71829c4c6d56874a88fa48',
hash: '0xb6a77841bc1061a9fe19c529cbe1ae39e0031c7a772e4b0cdc8d4711f78c2e42',
timestamp: 1685358648000,
tokenAddress: '0x9b7d44c8d1f1f1bf42f596600c28431b567fcd40',
transactionIndex: 0,
transactionSubtype: 'incoming',
transactionType: 'fungible',
});
});
it('blockTo', async () => {
const { data: txs } = await tatum.token.getAllFungibleTransactions({
addresses: ['0x2cbaf358c0af93096bd820ce57c26f0b7c6ec7ab'],
blockTo: 3582261,
});
expect(txs).toHaveLength(1);
expect(txs[0]).toStrictEqual({
address: '0x2cbaf358c0af93096bd820ce57c26f0b7c6ec7ab',
amount: '100',
blockNumber: 3582255,
chain: 'ethereum-sepolia',
counterAddress: '0xabfdc940d6983bafe7634dcba7db02b0d00f9d63',
hash: '0x9cf21dc47807067b55af950bc5d18637618961d0490ddc7d95a75154dcf9d37e',
timestamp: 1685358564000,
tokenAddress: '0x5169fe503d6dacb7ac0495faa342ee9731892490',
transactionIndex: 2,
transactionSubtype: 'incoming',
transactionType: 'fungible',
});
});
it('no txs by filter', async () => {
const { data: txs } = await tatum.token.getAllFungibleTransactions({
addresses: ['0x2cbaf358c0af93096bd820ce57c26f0b7c6ec7ab'],
blockFrom: 3582256,
blockTo: 3582261,
});
expect(txs).toHaveLength(0);
});
it('both txs by filter', async () => {
const { data: txs } = await tatum.token.getAllFungibleTransactions({
addresses: ['0x2cbaf358c0af93096bd820ce57c26f0b7c6ec7ab'],
blockFrom: 3582250,
blockTo: 3582269,
});
expect(txs).toHaveLength(2);
expect(txs[0]).toStrictEqual({
address: '0x2cbaf358c0af93096bd820ce57c26f0b7c6ec7ab',
amount: '200',
blockNumber: 3582262,
chain: 'ethereum-sepolia',
counterAddress: '0x48fa1676cfd0dfa23a71829c4c6d56874a88fa48',
hash: '0xb6a77841bc1061a9fe19c529cbe1ae39e0031c7a772e4b0cdc8d4711f78c2e42',
timestamp: 1685358648000,
tokenAddress: '0x9b7d44c8d1f1f1bf42f596600c28431b567fcd40',
transactionIndex: 0,
transactionSubtype: 'incoming',
transactionType: 'fungible',
});
expect(txs[1]).toStrictEqual({
address: '0x2cbaf358c0af93096bd820ce57c26f0b7c6ec7ab',
amount: '100',
blockNumber: 3582255,
chain: 'ethereum-sepolia',
counterAddress: '0xabfdc940d6983bafe7634dcba7db02b0d00f9d63',
hash: '0x9cf21dc47807067b55af950bc5d18637618961d0490ddc7d95a75154dcf9d37e',
timestamp: 1685358564000,
tokenAddress: '0x5169fe503d6dacb7ac0495faa342ee9731892490',
transactionIndex: 2,
transactionSubtype: 'incoming',
transactionType: 'fungible',
});
});
});
});
describe('Token metadata', () => {
it('should get ERC20 token metadata', async function () {
const { data: metadata } = await tatum.token.getTokenMetadata({
tokenAddress: '0x5169fe503d6dacb7ac0495faa342ee9731892490',
});
expect(metadata).toStrictEqual({
cap: '10000000000000',
decimals: 6,
name: 'ERC_TEST_TEST_2',
supply: '10000000000000',
symbol: 'ERC_TEST_TEST_2',
tokenType: 'fungible',
});
});
});
describe('Create token', () => {
it.skip('should create ERC20 token', async () => {
const result = await tatum.token.createNewFungibleToken({
name: 'Test Token',
symbol: 'TSTERC20_2',
initialHolder: '0x48fa1676cfd0dfa23a71829c4c6d56874a88fa48',
initialSupply: '1000000',
owner: '0x48fa1676cfd0dfa23a71829c4c6d56874a88fa48',
});
expect(result.data).toStrictEqual({ txId: expect.any(String) });
});
});
});
//# sourceMappingURL=tatum.token.spec.js.map