@dzapio/sdk 2.0.6 → 2.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (216) hide show
  1. package/dist/examples/chain-utils.d.ts +1 -0
  2. package/dist/examples/chain-utils.js +20 -0
  3. package/dist/examples/permit-utils.d.ts +1 -0
  4. package/dist/examples/permit-utils.js +90 -0
  5. package/dist/examples/token-utils.d.ts +1 -0
  6. package/dist/examples/token-utils.js +41 -0
  7. package/dist/examples/trade-operations.d.ts +1 -0
  8. package/dist/examples/trade-operations.js +89 -0
  9. package/dist/examples/zap-operations.d.ts +1 -0
  10. package/dist/examples/zap-operations.js +69 -0
  11. package/dist/src/api/index.d.ts +27 -0
  12. package/dist/src/api/index.js +146 -0
  13. package/dist/src/artifacts/ERC20Permit.d.ts +374 -0
  14. package/dist/src/artifacts/ERC20Permit.js +469 -0
  15. package/dist/src/artifacts/Permit2.d.ts +700 -0
  16. package/dist/src/artifacts/Permit2.js +904 -0
  17. package/dist/src/artifacts/Permit2Proxy.d.ts +416 -0
  18. package/dist/src/artifacts/Permit2Proxy.js +206 -0
  19. package/dist/src/artifacts/default/DZapCoreAbi.d.ts +2 -0
  20. package/dist/src/artifacts/default/DZapCoreAbi.js +3079 -0
  21. package/dist/src/artifacts/default/DZapCoreV2Abi.d.ts +2 -0
  22. package/dist/src/artifacts/default/DZapCoreV2Abi.js +3719 -0
  23. package/dist/src/artifacts/default/DZapDcaAbi.d.ts +2 -0
  24. package/dist/src/artifacts/default/DZapDcaAbi.js +1829 -0
  25. package/dist/src/artifacts/default/Permit2Abi.d.ts +700 -0
  26. package/dist/src/artifacts/default/Permit2Abi.js +904 -0
  27. package/dist/src/artifacts/default/erc20Abi.d.ts +165 -0
  28. package/dist/src/artifacts/default/erc20Abi.js +220 -0
  29. package/dist/src/artifacts/default/index.d.ts +6 -0
  30. package/dist/src/artifacts/default/index.js +13 -0
  31. package/dist/src/artifacts/index.d.ts +2 -0
  32. package/dist/src/artifacts/index.js +9 -0
  33. package/dist/src/artifacts/staging/DZapCoreSwapAbi.d.ts +2 -0
  34. package/dist/src/artifacts/staging/DZapCoreSwapAbi.js +3079 -0
  35. package/dist/src/artifacts/staging/index.d.ts +2 -0
  36. package/dist/src/artifacts/staging/index.js +5 -0
  37. package/dist/src/axios/baseClient.d.ts +2 -0
  38. package/dist/src/axios/baseClient.js +7 -0
  39. package/dist/src/axios/index.d.ts +8 -0
  40. package/dist/src/axios/index.js +34 -0
  41. package/dist/src/chains/definitions/arthera.d.ts +35 -0
  42. package/dist/src/chains/definitions/arthera.js +28 -0
  43. package/dist/src/chains/definitions/fiveIre.d.ts +35 -0
  44. package/dist/src/chains/definitions/fiveIre.js +28 -0
  45. package/dist/src/chains/definitions/hyperEvm.d.ts +35 -0
  46. package/dist/src/chains/definitions/hyperEvm.js +26 -0
  47. package/dist/src/chains/definitions/hyperliquid.d.ts +35 -0
  48. package/dist/src/chains/definitions/hyperliquid.js +26 -0
  49. package/dist/src/chains/definitions/stable.d.ts +36 -0
  50. package/dist/src/chains/definitions/stable.js +31 -0
  51. package/dist/src/chains/index.d.ts +179 -0
  52. package/dist/src/chains/index.js +24 -0
  53. package/dist/src/config/index.d.ts +36 -0
  54. package/dist/src/config/index.js +59 -0
  55. package/dist/src/constants/address.d.ts +13 -0
  56. package/dist/src/constants/address.js +29 -0
  57. package/dist/src/constants/approval.d.ts +7 -0
  58. package/dist/src/constants/approval.js +17 -0
  59. package/dist/src/constants/axios.d.ts +2 -0
  60. package/dist/src/constants/axios.js +5 -0
  61. package/dist/src/constants/chains.d.ts +31 -0
  62. package/dist/src/constants/chains.js +34 -0
  63. package/dist/src/constants/contract.d.ts +6 -0
  64. package/dist/src/constants/contract.js +18 -0
  65. package/dist/src/constants/erc20.d.ts +25 -0
  66. package/dist/src/constants/erc20.js +28 -0
  67. package/dist/src/constants/httpMethods.d.ts +2 -0
  68. package/dist/src/constants/httpMethods.js +5 -0
  69. package/dist/src/constants/index.d.ts +48 -0
  70. package/dist/src/constants/index.js +53 -0
  71. package/dist/src/constants/permit.d.ts +29 -0
  72. package/dist/src/constants/permit.js +33 -0
  73. package/dist/src/constants/permit2.d.ts +2 -0
  74. package/dist/src/constants/permit2.js +5 -0
  75. package/dist/src/constants/rpc.d.ts +2 -0
  76. package/dist/src/constants/rpc.js +5 -0
  77. package/dist/src/constants/urlConstants.d.ts +15 -0
  78. package/dist/src/constants/urlConstants.js +18 -0
  79. package/dist/src/dZapClient/index.d.ts +1015 -0
  80. package/dist/src/dZapClient/index.js +255 -0
  81. package/dist/src/enums/index.d.ts +46 -0
  82. package/dist/src/enums/index.js +57 -0
  83. package/dist/src/index.d.ts +17 -0
  84. package/dist/src/index.js +48 -0
  85. package/dist/src/service/cache/cacheProvider.d.ts +10 -0
  86. package/dist/src/service/cache/cacheProvider.js +72 -0
  87. package/dist/src/service/cache/constant.d.ts +2 -0
  88. package/dist/src/service/cache/constant.js +6 -0
  89. package/dist/src/service/price/index.d.ts +16 -0
  90. package/dist/src/service/price/index.js +80 -0
  91. package/dist/src/service/price/provider/coingecko/config.d.ts +6 -0
  92. package/dist/src/service/price/provider/coingecko/config.js +9 -0
  93. package/dist/src/service/price/provider/coingecko/index.d.ts +9 -0
  94. package/dist/src/service/price/provider/coingecko/index.js +66 -0
  95. package/dist/src/service/price/provider/defiLlama/config.d.ts +3 -0
  96. package/dist/src/service/price/provider/defiLlama/config.js +6 -0
  97. package/dist/src/service/price/provider/defiLlama/index.d.ts +9 -0
  98. package/dist/src/service/price/provider/defiLlama/index.js +60 -0
  99. package/dist/src/service/price/provider/defiLlama/types.d.ts +11 -0
  100. package/dist/src/service/price/provider/defiLlama/types.js +2 -0
  101. package/dist/src/service/price/provider/dzap/index.d.ts +6 -0
  102. package/dist/src/service/price/provider/dzap/index.js +22 -0
  103. package/dist/src/service/price/types/IPriceProvider.d.ts +14 -0
  104. package/dist/src/service/price/types/IPriceProvider.js +8 -0
  105. package/dist/src/transactionHandlers/generic.d.ts +24 -0
  106. package/dist/src/transactionHandlers/generic.js +48 -0
  107. package/dist/src/transactionHandlers/permit.d.ts +61 -0
  108. package/dist/src/transactionHandlers/permit.js +177 -0
  109. package/dist/src/transactionHandlers/trade.d.ts +24 -0
  110. package/dist/src/transactionHandlers/trade.js +263 -0
  111. package/dist/src/transactionHandlers/zap.d.ts +37 -0
  112. package/dist/src/transactionHandlers/zap.js +135 -0
  113. package/dist/src/types/axiosClient.d.ts +6 -0
  114. package/dist/src/types/axiosClient.js +2 -0
  115. package/dist/src/types/btc.d.ts +45 -0
  116. package/dist/src/types/btc.js +2 -0
  117. package/dist/src/types/chains.d.ts +3 -0
  118. package/dist/src/types/chains.js +2 -0
  119. package/dist/src/types/contract.d.ts +14 -0
  120. package/dist/src/types/contract.js +2 -0
  121. package/dist/src/types/eip-2612.d.ts +24 -0
  122. package/dist/src/types/eip-2612.js +58 -0
  123. package/dist/src/types/index.d.ts +489 -0
  124. package/dist/src/types/index.js +8 -0
  125. package/dist/src/types/permit.d.ts +191 -0
  126. package/dist/src/types/permit.js +54 -0
  127. package/dist/src/types/wallet.d.ts +2 -0
  128. package/dist/src/types/wallet.js +2 -0
  129. package/dist/src/types/zap/build.d.ts +44 -0
  130. package/dist/src/types/zap/build.js +2 -0
  131. package/dist/src/types/zap/index.d.ts +34 -0
  132. package/dist/src/types/zap/index.js +23 -0
  133. package/dist/src/types/zap/path.d.ts +33 -0
  134. package/dist/src/types/zap/path.js +2 -0
  135. package/dist/src/types/zap/pool.d.ts +39 -0
  136. package/dist/src/types/zap/pool.js +2 -0
  137. package/dist/src/types/zap/position.d.ts +27 -0
  138. package/dist/src/types/zap/position.js +2 -0
  139. package/dist/src/types/zap/quote.d.ts +7 -0
  140. package/dist/src/types/zap/quote.js +2 -0
  141. package/dist/src/types/zap/status.d.ts +28 -0
  142. package/dist/src/types/zap/status.js +2 -0
  143. package/dist/src/types/zap/step.d.ts +23 -0
  144. package/dist/src/types/zap/step.js +2 -0
  145. package/dist/src/utils/amount.d.ts +82 -0
  146. package/dist/src/utils/amount.js +71 -0
  147. package/dist/src/utils/axios.d.ts +13 -0
  148. package/dist/src/utils/axios.js +42 -0
  149. package/dist/src/utils/date.d.ts +1 -0
  150. package/dist/src/utils/date.js +8 -0
  151. package/dist/src/utils/decoder/swap/abis.d.ts +643 -0
  152. package/dist/src/utils/decoder/swap/abis.js +831 -0
  153. package/dist/src/utils/decoder/swap/inputDataDecoder.d.ts +14 -0
  154. package/dist/src/utils/decoder/swap/inputDataDecoder.js +124 -0
  155. package/dist/src/utils/eip-2612/eip2612Permit.d.ts +23 -0
  156. package/dist/src/utils/eip-2612/eip2612Permit.js +121 -0
  157. package/dist/src/utils/eip-5792/batchApproveTokens.d.ts +21 -0
  158. package/dist/src/utils/eip-5792/batchApproveTokens.js +49 -0
  159. package/dist/src/utils/eip-5792/index.d.ts +3 -0
  160. package/dist/src/utils/eip-5792/index.js +9 -0
  161. package/dist/src/utils/eip-5792/isBatchTxnSupportedByWallet.d.ts +6 -0
  162. package/dist/src/utils/eip-5792/isBatchTxnSupportedByWallet.js +22 -0
  163. package/dist/src/utils/eip-5792/sendBatchCalls.d.ts +10 -0
  164. package/dist/src/utils/eip-5792/sendBatchCalls.js +25 -0
  165. package/dist/src/utils/eip-5792/waitForBatchTransactionReceipt.d.ts +4 -0
  166. package/dist/src/utils/eip-5792/waitForBatchTransactionReceipt.js +26 -0
  167. package/dist/src/utils/encodeApproveCall.d.ts +6 -0
  168. package/dist/src/utils/encodeApproveCall.js +13 -0
  169. package/dist/src/utils/erc20.d.ts +65 -0
  170. package/dist/src/utils/erc20.js +153 -0
  171. package/dist/src/utils/errors.d.ts +17 -0
  172. package/dist/src/utils/errors.js +78 -0
  173. package/dist/src/utils/index.d.ts +4566 -0
  174. package/dist/src/utils/index.js +196 -0
  175. package/dist/src/utils/multicall.d.ts +14 -0
  176. package/dist/src/utils/multicall.js +25 -0
  177. package/dist/src/utils/permit2/domain.d.ts +2 -0
  178. package/dist/src/utils/permit2/domain.js +11 -0
  179. package/dist/src/utils/permit2/index.d.ts +4 -0
  180. package/dist/src/utils/permit2/index.js +97 -0
  181. package/dist/src/utils/permit2/nonce.d.ts +15 -0
  182. package/dist/src/utils/permit2/nonce.js +61 -0
  183. package/dist/src/utils/permit2/permitData.d.ts +23 -0
  184. package/dist/src/utils/permit2/permitData.js +85 -0
  185. package/dist/src/utils/permit2/values.d.ts +54 -0
  186. package/dist/src/utils/permit2/values.js +88 -0
  187. package/dist/src/utils/permit2/witnessData.d.ts +4 -0
  188. package/dist/src/utils/permit2/witnessData.js +48 -0
  189. package/dist/src/utils/signIntent/custom.d.ts +11 -0
  190. package/dist/src/utils/signIntent/custom.js +31 -0
  191. package/dist/src/utils/signIntent/gasless.d.ts +12 -0
  192. package/dist/src/utils/signIntent/gasless.js +101 -0
  193. package/dist/src/utils/signTypedData.d.ts +11 -0
  194. package/dist/src/utils/signTypedData.js +21 -0
  195. package/dist/src/utils/tokens.d.ts +8 -0
  196. package/dist/src/utils/tokens.js +73 -0
  197. package/dist/src/utils/updateQuotes.d.ts +3 -0
  198. package/dist/src/utils/updateQuotes.js +69 -0
  199. package/dist/src/zap/constants/index.d.ts +2 -0
  200. package/dist/src/zap/constants/index.js +18 -0
  201. package/dist/src/zap/constants/path.d.ts +8 -0
  202. package/dist/src/zap/constants/path.js +11 -0
  203. package/dist/src/zap/constants/step.d.ts +3 -0
  204. package/dist/src/zap/constants/step.js +6 -0
  205. package/dist/src/zap/constants/urls.d.ts +13 -0
  206. package/dist/src/zap/constants/urls.js +16 -0
  207. package/dist/test/build.test.d.ts +1 -0
  208. package/dist/test/build.test.js +65 -0
  209. package/dist/test/permit/permit2Nonce.test.d.ts +2 -0
  210. package/dist/test/permit/permit2Nonce.test.js +96 -0
  211. package/dist/test/quotes.test.d.ts +1 -0
  212. package/dist/test/quotes.test.js +59 -0
  213. package/dist/test/status.test.d.ts +1 -0
  214. package/dist/test/status.test.js +37 -0
  215. package/dist/tsconfig.tsbuildinfo +1 -0
  216. package/package.json +1 -1
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getNextPermit2NonceFromProxy = void 0;
4
+ const Permit2Proxy_1 = require("../../src/artifacts/Permit2Proxy");
5
+ const utils_1 = require("../../src/utils");
6
+ const chains_1 = require("../../src/chains");
7
+ const permit2_1 = require("../../src/utils/permit2");
8
+ const nonce_1 = require("../../src/utils/permit2/nonce");
9
+ const permitProxy = {
10
+ 42161: '0x89c6340B1a1f4b25D36cd8B063D49045caF3f818',
11
+ 8453: '0x89c6340B1a1f4b25D36cd8B063D49045caF3f818',
12
+ 33139: '0x89c6340B1a1f4b25D36cd8B063D49045caF3f818',
13
+ 42220: '0x89c6340B1a1f4b25D36cd8B063D49045caF3f818',
14
+ 747474: '0x628d684D57c73A5D8cA77F455Fdf2CC8Bd503c16',
15
+ };
16
+ const getNextPermit2NonceFromProxy = async (permitAddress, account, chainId, rpcUrls) => {
17
+ try {
18
+ const address = permitProxy[chainId];
19
+ if (!address) {
20
+ throw new Error(`No permit2 proxy address for chainId ${chainId}`);
21
+ }
22
+ const nonce = await (0, utils_1.getPublicClient)({ chainId, rpcUrls }).readContract({
23
+ address: permitProxy[chainId],
24
+ abi: Permit2Proxy_1.permit2ProxyAbi,
25
+ functionName: 'nextNonce',
26
+ args: [account],
27
+ });
28
+ return BigInt(nonce);
29
+ }
30
+ catch (error) {
31
+ console.error('Unable to get next permit2 nonce', { error });
32
+ throw error;
33
+ }
34
+ };
35
+ exports.getNextPermit2NonceFromProxy = getNextPermit2NonceFromProxy;
36
+ describe('Permit2 Nonce Tests', () => {
37
+ const account = '0x4ab9F97585B0161f1aDa8484B209C44be54dad73';
38
+ Object.entries(permitProxy).forEach(([chainIdStr, proxyAddress]) => {
39
+ var _a;
40
+ const chainId = parseInt(chainIdStr);
41
+ const chainName = ((_a = chains_1.viemChainsById[chainId]) === null || _a === void 0 ? void 0 : _a.name) || `Chain ${chainId}`;
42
+ describe(`Testing ${chainName} (Chain ID: ${chainId})`, () => {
43
+ it(`should get next nonce from proxy and our implementation on ${chainName}`, async () => {
44
+ var _a, _b, _c;
45
+ if (!chains_1.viemChainsById[chainId]) {
46
+ console.warn(`Skipping test for chain ${chainId} - not found in viemChainsById`);
47
+ return;
48
+ }
49
+ const rpcUrls = (_c = (_b = (_a = chains_1.viemChainsById[chainId]) === null || _a === void 0 ? void 0 : _a.rpcUrls) === null || _b === void 0 ? void 0 : _b.default) === null || _c === void 0 ? void 0 : _c.http;
50
+ if (!rpcUrls || rpcUrls.length === 0) {
51
+ console.warn(`Skipping test for chain ${chainId} - no RPC URLs available`);
52
+ return;
53
+ }
54
+ try {
55
+ const urls = [...rpcUrls];
56
+ const permitAddress = (0, permit2_1.getPermit2Address)(chainId);
57
+ if (!permitAddress) {
58
+ throw new Error(`No Permit2 address found for chain ${chainId}`);
59
+ }
60
+ const proxyNonce = await (0, exports.getNextPermit2NonceFromProxy)(permitAddress, account, chainId, urls);
61
+ const ourNonce = await (0, nonce_1.getNextPermit2Nonce)(permitAddress, account, chainId, urls);
62
+ expect(proxyNonce).toBeDefined();
63
+ expect(ourNonce).toBeDefined();
64
+ expect(typeof proxyNonce).toBe('bigint');
65
+ expect(typeof ourNonce).toBe('bigint');
66
+ console.log(`${chainName}: Proxy Nonce = ${proxyNonce}, Our Nonce = ${ourNonce}`);
67
+ }
68
+ catch (error) {
69
+ fail(`Failed to get nonce for chain ${chainId}: ${error instanceof Error ? error.message : 'Unknown error'}`);
70
+ }
71
+ }, 30000);
72
+ });
73
+ it('should get consistent nonces across multiple calls', async () => {
74
+ var _a, _b, _c;
75
+ const testChainId = 42161;
76
+ const rpcUrls = (_c = (_b = (_a = chains_1.viemChainsById[testChainId]) === null || _a === void 0 ? void 0 : _a.rpcUrls) === null || _b === void 0 ? void 0 : _b.default) === null || _c === void 0 ? void 0 : _c.http;
77
+ if (!rpcUrls) {
78
+ console.warn('Skipping consistency test - no RPC URLs for Arbitrum');
79
+ return;
80
+ }
81
+ const permitAddress = (0, permit2_1.getPermit2Address)(testChainId);
82
+ const urls = [...rpcUrls];
83
+ const results = await Promise.all([
84
+ (0, nonce_1.getNextPermit2Nonce)(permitAddress, account, testChainId, urls),
85
+ (0, nonce_1.getNextPermit2Nonce)(permitAddress, account, testChainId, urls),
86
+ (0, nonce_1.getNextPermit2Nonce)(permitAddress, account, testChainId, urls),
87
+ ]);
88
+ results.forEach((nonce, index) => {
89
+ expect(nonce).toBeDefined();
90
+ if (index > 0) {
91
+ expect(nonce).toEqual(results[0]);
92
+ }
93
+ });
94
+ }, 30000);
95
+ });
96
+ });
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const dZapClient_1 = require("../src/dZapClient");
4
+ describe('DZapClient - getQuotes', () => {
5
+ let client;
6
+ beforeAll(() => {
7
+ client = dZapClient_1.default.getInstance();
8
+ });
9
+ it('should return quotes for a cross-chain swap', async () => {
10
+ const request = {
11
+ fromChain: 42161,
12
+ account: '0x99BCEBf44433E901597D9fCb16E799a4847519f6',
13
+ data: [
14
+ {
15
+ amount: '374980',
16
+ destDecimals: 18,
17
+ destToken: '0x4200000000000000000000000000000000000006',
18
+ slippage: 1,
19
+ srcDecimals: 6,
20
+ srcToken: '0xaf88d065e77c8cC2239327C5EDb3A432268e5831',
21
+ toChain: 8453,
22
+ },
23
+ ],
24
+ };
25
+ const quotes = await client.getTradeQuotes(request);
26
+ const quoteKeys = Object.keys(quotes);
27
+ expect(quoteKeys.length).toBeGreaterThan(0);
28
+ const firstQuote = quotes[quoteKeys[0]];
29
+ expect(firstQuote).toBeDefined();
30
+ expect(firstQuote.quoteRates).toBeDefined();
31
+ const quoteRatesKeys = Object.keys(firstQuote.quoteRates);
32
+ expect(quoteRatesKeys.length).toBeGreaterThan(0);
33
+ });
34
+ it('should return quotes for a same-chain swap', async () => {
35
+ const request = {
36
+ fromChain: 42161,
37
+ account: '0x99BCEBf44433E901597D9fCb16E799a4847519f6',
38
+ data: [
39
+ {
40
+ amount: '374980',
41
+ destDecimals: 18,
42
+ destToken: '0x82aF49447D8a07e3bd95BD0d56f35241523fBab1',
43
+ slippage: 1,
44
+ srcDecimals: 6,
45
+ srcToken: '0xaf88d065e77c8cC2239327C5EDb3A432268e5831',
46
+ toChain: 42161,
47
+ },
48
+ ],
49
+ };
50
+ const quotes = await client.getTradeQuotes(request);
51
+ const quoteKeys = Object.keys(quotes);
52
+ expect(quoteKeys.length).toBeGreaterThan(0);
53
+ const firstQuote = quotes[quoteKeys[0]];
54
+ expect(firstQuote).toBeDefined();
55
+ expect(firstQuote.quoteRates).toBeDefined();
56
+ const quoteRatesKeys = Object.keys(firstQuote.quoteRates);
57
+ expect(quoteRatesKeys.length).toBeGreaterThan(0);
58
+ });
59
+ });
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const dZapClient_1 = require("../src/dZapClient");
4
+ describe('DZapClient - getStatus', () => {
5
+ let client;
6
+ beforeAll(() => {
7
+ client = dZapClient_1.default.getInstance();
8
+ });
9
+ it('should fetch status for multiple transaction IDs', async () => {
10
+ const txIds = '8453-0x3c48cb39902c215e5b055235ed2d11b0190e3f4b1f73566862359e334a96b166,8453-0x3a26dc8763166b9d39db46fa1047902896e07dd2a2cb8761a6c84c17b7165ab7,10-0x320be5bbc92857806bc08a148addb72be4b60225bca3fef4374cbd60100c7f9e';
11
+ const txIdArray = txIds.split(',');
12
+ const result = await client.getTradeTxnStatus({ txIds });
13
+ expect(result).toBeDefined();
14
+ const typedResult = result;
15
+ const resultKeys = Object.keys(typedResult);
16
+ expect(resultKeys.length).toBe(txIdArray.length);
17
+ for (const txId of txIdArray) {
18
+ expect(typedResult).toHaveProperty(txId);
19
+ const statusResponse = typedResult[txId];
20
+ const statusKeys = Object.keys(statusResponse);
21
+ expect(statusKeys.length).toBeGreaterThan(0);
22
+ const firstStatus = statusResponse[statusKeys[0]];
23
+ expect(firstStatus).toHaveProperty('status');
24
+ }
25
+ });
26
+ it('should fetch status for a single transaction', async () => {
27
+ const txHash = '0x3c48cb39902c215e5b055235ed2d11b0190e3f4b1f73566862359e334a96b166';
28
+ const chainId = 8453;
29
+ const result = await client.getTradeTxnStatus({ txHash, chainId });
30
+ expect(result).toBeDefined();
31
+ const typedResult = result;
32
+ const resultKeys = Object.keys(typedResult);
33
+ expect(resultKeys.length).toBeGreaterThan(0);
34
+ const firstStatus = typedResult[resultKeys[0]];
35
+ expect(firstStatus).toHaveProperty('status');
36
+ });
37
+ });