UNPKG

@tatumio/tatum

Version:

Tatum JS SDK

165 lines 7.54 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.e2eUtil = void 0; const service_1 = require("../service"); const network_utils_1 = require("../util/network.utils"); exports.e2eUtil = { initConfig: (network, apiKey, url) => { const config = { network, verbose: exports.e2eUtil.isVerbose, retryCount: 5, retryDelay: 2000, apiKey: { v4: apiKey ?? network_utils_1.NetworkUtils.getV4ApiKeyForNetwork(network), }, }; if (url) { config.rpc = { nodes: [{ url: url, type: service_1.RpcNodeType.NORMAL }], }; } return config; }, subscriptions: { getAddress: (network) => { switch (network) { case service_1.Network.ETHEREUM_SEPOLIA: case service_1.Network.ETHEREUM_HOLESKY: case service_1.Network.FLARE: case service_1.Network.FLARE_COSTON: case service_1.Network.FLARE_COSTON_2: case service_1.Network.FLARE_SONGBIRD: case service_1.Network.CRONOS: case service_1.Network.CRONOS_TESTNET: case service_1.Network.BASE: case service_1.Network.BASE_SEPOLIA: case service_1.Network.AVALANCHE_C: case service_1.Network.AVALANCHE_C_TESTNET: case service_1.Network.FANTOM: case service_1.Network.FANTOM_TESTNET: case service_1.Network.OPTIMISM: case service_1.Network.OPTIMISM_TESTNET: case service_1.Network.BERACHAIN_MAINNET: return '0xdb4C3b4350EE869F2D0a2F43ce0292865E2Aa149'; case service_1.Network.CELO_ALFAJORES: return '0xdf083B077F1FD890fC71feCaBbd3F68F94cD21Bf'; case service_1.Network.POLYGON_AMOY: return '0xcf3c930601111c216fc0232d32cf5c2a86f107da'; case service_1.Network.KLAYTN_BAOBAB: return '0xdc7Dfb8Aa86D41b7e39441711Fe1669f2d843C06'; case service_1.Network.BINANCE_SMART_CHAIN_TESTNET: return '0xddde2061b144Be4b5921eE1F1Cd2Db4eDC9AE6aA'; case service_1.Network.SOLANA_DEVNET: return 'GwzBgrXb4PG59zjce24SF2b9JXbLEjJJTBkmytuEZj1b'; case service_1.Network.TRON_SHASTA: return 'TLduuX5NWFucPPafLbj9eab6Znwrdm72Qv'; case service_1.Network.BITCOIN_TESTNET: return 'tb1q0w3g78u9uwwpf94m3jtqen3neyge5g7y20w8mt'; case service_1.Network.BITCOIN_CASH_TESTNET: return 'bchtest:qp495cqlv22676su9hllwy58unawwsmnfvztn0p0t6'; case service_1.Network.XRP: case service_1.Network.XRP_TESTNET: return 'rpnU81snz763qoXiHwnonsuTpDNwemL6yu'; case service_1.Network.LITECOIN_TESTNET: return 'mo6gPn3Ri2c8twJGTxMX8L5p46jjYip5fT'; case service_1.Network.DOGECOIN_TESTNET: return 'npMHRfj9bdR7bBdQe7RNQNK1QM2nRAN8Sh'; case service_1.Network.ETHEREUM: return '0xd6B4Dfd10441c15e0D95a2Bce023b4F002634c72'; case service_1.Network.CELO: return '0xd5f3B4e29A6f2263a9e3F6518309C78d73E407d4'; case service_1.Network.POLYGON: return '0xdbFad06Aa5cC4a5EDB88ee63A515F8Cc31C7cA52'; case service_1.Network.KLAYTN: return '0xd8Dc7359aF648462f13e8207aff04559271DD791'; case service_1.Network.BINANCE_SMART_CHAIN: return '0x9b38ffbac4acb7a9fd15a7b3bbab5796724166ef'; case service_1.Network.SOLANA: return '5U3bH5b6XtG99aVWLqwVzYPVpQiFHytBD68Rz2eFPZd7'; case service_1.Network.TRON: return 'TLduuX5NWFucPPafLbj9eab6Znwrdm72Qv'; case service_1.Network.BITCOIN: return 'bc1qrkh27xvmekrqelnhuajfsw2ksxxwh6dnxxcpsc'; case service_1.Network.BITCOIN_CASH: return 'qz3yu2m8dzwrw5uc85a5pz78dyxnrvdhf5v8tlf8jd'; case service_1.Network.LITECOIN: return 'LSNjqFj7ddawFb2tiykRwKUPNDFbPsAVro'; case service_1.Network.DOGECOIN: return 'DKckW1iwr2tgCaLXPThMAXnPu7gbMJqBx5'; case service_1.Network.TEZOS: return 'tz1T8S68igxa6uWZbeoWWwbcuRHEDQSzknEX'; default: throw new Error(`Network ${network} not supported`); } }, testAddressBasedSubscription: async (tatum, address, func) => { await exports.e2eUtil.flushSubscriptions(tatum); const url = 'https://webhook.site/'; const { data, error } = await func({ url, address, }); if (error) { await tatum.destroy(); throw new Error(error.message.join(',')); } expect(data.id).toBeDefined(); await tatum.notification.unsubscribe(data.id); expect(error).toBeUndefined(); expect(data.address.toLowerCase()).toEqual(address.toLowerCase()); expect(url).toBeDefined(); await tatum.destroy(); return data.id; }, testContractBasedSubscription: async (tatum, contractAddress, func) => { await exports.e2eUtil.flushSubscriptions(tatum); const url = 'https://webhook.site/'; const event = '0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef'; const { data, error } = await func({ url, contractAddress, event, }); console.log(data); console.log(error); if (error) { throw new Error(error.message.join(',')); } expect(data.id).toBeDefined(); await tatum.notification.unsubscribe(data.id); expect(error).toBeUndefined(); expect(data.contractAddress.toLowerCase()).toEqual(contractAddress.toLowerCase()); expect(url).toBeDefined(); await tatum.destroy(); }, testBlockBasedSubscription: async (tatum, func) => { await exports.e2eUtil.flushSubscriptions(tatum); const url = 'https://webhook.site/'; const { data, error } = await func({ url, }); await tatum.notification.unsubscribe(data.id); expect(error).toBeUndefined(); expect(data.id).toBeDefined(); expect(url).toBeDefined(); await tatum.destroy(); }, }, isVerbose: process.env.E2E_VERBOSE === 'true', flushSubscriptions: async (tatum) => { try { const notifications = await tatum.notification.getAll(); if (notifications?.data?.length > 0) { for (const notification of notifications.data) { await tatum.notification.unsubscribe(notification.id); } } } catch (e) { console.error('Error flushing subscriptions'); console.error(e); } }, }; //# sourceMappingURL=e2e.util.js.map