@dzapio/sdk 2.0.7 → 2.0.8

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 (221) hide show
  1. package/dist/api/index.d.ts +2 -1
  2. package/dist/index.js +1 -1
  3. package/dist/index.m.js +1 -1
  4. package/dist/index.umd.js +1 -1
  5. package/dist/types/zap/broadcast.d.ts +15 -0
  6. package/package.json +1 -1
  7. package/dist/examples/chain-utils.d.ts +0 -1
  8. package/dist/examples/chain-utils.js +0 -20
  9. package/dist/examples/permit-utils.d.ts +0 -1
  10. package/dist/examples/permit-utils.js +0 -90
  11. package/dist/examples/token-utils.d.ts +0 -1
  12. package/dist/examples/token-utils.js +0 -41
  13. package/dist/examples/trade-operations.d.ts +0 -1
  14. package/dist/examples/trade-operations.js +0 -89
  15. package/dist/examples/zap-operations.d.ts +0 -1
  16. package/dist/examples/zap-operations.js +0 -69
  17. package/dist/src/api/index.d.ts +0 -27
  18. package/dist/src/api/index.js +0 -146
  19. package/dist/src/artifacts/ERC20Permit.d.ts +0 -374
  20. package/dist/src/artifacts/ERC20Permit.js +0 -469
  21. package/dist/src/artifacts/Permit2.d.ts +0 -700
  22. package/dist/src/artifacts/Permit2.js +0 -904
  23. package/dist/src/artifacts/Permit2Proxy.d.ts +0 -416
  24. package/dist/src/artifacts/Permit2Proxy.js +0 -206
  25. package/dist/src/artifacts/default/DZapCoreAbi.d.ts +0 -2
  26. package/dist/src/artifacts/default/DZapCoreAbi.js +0 -3079
  27. package/dist/src/artifacts/default/DZapCoreV2Abi.d.ts +0 -2
  28. package/dist/src/artifacts/default/DZapCoreV2Abi.js +0 -3719
  29. package/dist/src/artifacts/default/DZapDcaAbi.d.ts +0 -2
  30. package/dist/src/artifacts/default/DZapDcaAbi.js +0 -1829
  31. package/dist/src/artifacts/default/Permit2Abi.d.ts +0 -700
  32. package/dist/src/artifacts/default/Permit2Abi.js +0 -904
  33. package/dist/src/artifacts/default/erc20Abi.d.ts +0 -165
  34. package/dist/src/artifacts/default/erc20Abi.js +0 -220
  35. package/dist/src/artifacts/default/index.d.ts +0 -6
  36. package/dist/src/artifacts/default/index.js +0 -13
  37. package/dist/src/artifacts/index.d.ts +0 -2
  38. package/dist/src/artifacts/index.js +0 -9
  39. package/dist/src/artifacts/staging/DZapCoreSwapAbi.d.ts +0 -2
  40. package/dist/src/artifacts/staging/DZapCoreSwapAbi.js +0 -3079
  41. package/dist/src/artifacts/staging/index.d.ts +0 -2
  42. package/dist/src/artifacts/staging/index.js +0 -5
  43. package/dist/src/axios/baseClient.d.ts +0 -2
  44. package/dist/src/axios/baseClient.js +0 -7
  45. package/dist/src/axios/index.d.ts +0 -8
  46. package/dist/src/axios/index.js +0 -34
  47. package/dist/src/chains/definitions/arthera.d.ts +0 -35
  48. package/dist/src/chains/definitions/arthera.js +0 -28
  49. package/dist/src/chains/definitions/fiveIre.d.ts +0 -35
  50. package/dist/src/chains/definitions/fiveIre.js +0 -28
  51. package/dist/src/chains/definitions/hyperEvm.d.ts +0 -35
  52. package/dist/src/chains/definitions/hyperEvm.js +0 -26
  53. package/dist/src/chains/definitions/hyperliquid.d.ts +0 -35
  54. package/dist/src/chains/definitions/hyperliquid.js +0 -26
  55. package/dist/src/chains/definitions/stable.d.ts +0 -36
  56. package/dist/src/chains/definitions/stable.js +0 -31
  57. package/dist/src/chains/index.d.ts +0 -179
  58. package/dist/src/chains/index.js +0 -24
  59. package/dist/src/config/index.d.ts +0 -36
  60. package/dist/src/config/index.js +0 -59
  61. package/dist/src/constants/address.d.ts +0 -13
  62. package/dist/src/constants/address.js +0 -29
  63. package/dist/src/constants/approval.d.ts +0 -7
  64. package/dist/src/constants/approval.js +0 -17
  65. package/dist/src/constants/axios.d.ts +0 -2
  66. package/dist/src/constants/axios.js +0 -5
  67. package/dist/src/constants/chains.d.ts +0 -31
  68. package/dist/src/constants/chains.js +0 -34
  69. package/dist/src/constants/contract.d.ts +0 -6
  70. package/dist/src/constants/contract.js +0 -18
  71. package/dist/src/constants/erc20.d.ts +0 -25
  72. package/dist/src/constants/erc20.js +0 -28
  73. package/dist/src/constants/httpMethods.d.ts +0 -2
  74. package/dist/src/constants/httpMethods.js +0 -5
  75. package/dist/src/constants/index.d.ts +0 -48
  76. package/dist/src/constants/index.js +0 -53
  77. package/dist/src/constants/permit.d.ts +0 -29
  78. package/dist/src/constants/permit.js +0 -33
  79. package/dist/src/constants/permit2.d.ts +0 -2
  80. package/dist/src/constants/permit2.js +0 -5
  81. package/dist/src/constants/rpc.d.ts +0 -2
  82. package/dist/src/constants/rpc.js +0 -5
  83. package/dist/src/constants/urlConstants.d.ts +0 -15
  84. package/dist/src/constants/urlConstants.js +0 -18
  85. package/dist/src/dZapClient/index.d.ts +0 -1015
  86. package/dist/src/dZapClient/index.js +0 -255
  87. package/dist/src/enums/index.d.ts +0 -46
  88. package/dist/src/enums/index.js +0 -57
  89. package/dist/src/index.d.ts +0 -17
  90. package/dist/src/index.js +0 -48
  91. package/dist/src/service/cache/cacheProvider.d.ts +0 -10
  92. package/dist/src/service/cache/cacheProvider.js +0 -72
  93. package/dist/src/service/cache/constant.d.ts +0 -2
  94. package/dist/src/service/cache/constant.js +0 -6
  95. package/dist/src/service/price/index.d.ts +0 -16
  96. package/dist/src/service/price/index.js +0 -80
  97. package/dist/src/service/price/provider/coingecko/config.d.ts +0 -6
  98. package/dist/src/service/price/provider/coingecko/config.js +0 -9
  99. package/dist/src/service/price/provider/coingecko/index.d.ts +0 -9
  100. package/dist/src/service/price/provider/coingecko/index.js +0 -66
  101. package/dist/src/service/price/provider/defiLlama/config.d.ts +0 -3
  102. package/dist/src/service/price/provider/defiLlama/config.js +0 -6
  103. package/dist/src/service/price/provider/defiLlama/index.d.ts +0 -9
  104. package/dist/src/service/price/provider/defiLlama/index.js +0 -60
  105. package/dist/src/service/price/provider/defiLlama/types.d.ts +0 -11
  106. package/dist/src/service/price/provider/defiLlama/types.js +0 -2
  107. package/dist/src/service/price/provider/dzap/index.d.ts +0 -6
  108. package/dist/src/service/price/provider/dzap/index.js +0 -22
  109. package/dist/src/service/price/types/IPriceProvider.d.ts +0 -14
  110. package/dist/src/service/price/types/IPriceProvider.js +0 -8
  111. package/dist/src/transactionHandlers/generic.d.ts +0 -24
  112. package/dist/src/transactionHandlers/generic.js +0 -48
  113. package/dist/src/transactionHandlers/permit.d.ts +0 -61
  114. package/dist/src/transactionHandlers/permit.js +0 -177
  115. package/dist/src/transactionHandlers/trade.d.ts +0 -24
  116. package/dist/src/transactionHandlers/trade.js +0 -263
  117. package/dist/src/transactionHandlers/zap.d.ts +0 -37
  118. package/dist/src/transactionHandlers/zap.js +0 -135
  119. package/dist/src/types/axiosClient.d.ts +0 -6
  120. package/dist/src/types/axiosClient.js +0 -2
  121. package/dist/src/types/btc.d.ts +0 -45
  122. package/dist/src/types/btc.js +0 -2
  123. package/dist/src/types/chains.d.ts +0 -3
  124. package/dist/src/types/chains.js +0 -2
  125. package/dist/src/types/contract.d.ts +0 -14
  126. package/dist/src/types/contract.js +0 -2
  127. package/dist/src/types/eip-2612.d.ts +0 -24
  128. package/dist/src/types/eip-2612.js +0 -58
  129. package/dist/src/types/index.d.ts +0 -489
  130. package/dist/src/types/index.js +0 -8
  131. package/dist/src/types/permit.d.ts +0 -191
  132. package/dist/src/types/permit.js +0 -54
  133. package/dist/src/types/wallet.d.ts +0 -2
  134. package/dist/src/types/wallet.js +0 -2
  135. package/dist/src/types/zap/build.d.ts +0 -44
  136. package/dist/src/types/zap/build.js +0 -2
  137. package/dist/src/types/zap/index.d.ts +0 -34
  138. package/dist/src/types/zap/index.js +0 -23
  139. package/dist/src/types/zap/path.d.ts +0 -33
  140. package/dist/src/types/zap/path.js +0 -2
  141. package/dist/src/types/zap/pool.d.ts +0 -39
  142. package/dist/src/types/zap/pool.js +0 -2
  143. package/dist/src/types/zap/position.d.ts +0 -27
  144. package/dist/src/types/zap/position.js +0 -2
  145. package/dist/src/types/zap/quote.d.ts +0 -7
  146. package/dist/src/types/zap/quote.js +0 -2
  147. package/dist/src/types/zap/status.d.ts +0 -28
  148. package/dist/src/types/zap/status.js +0 -2
  149. package/dist/src/types/zap/step.d.ts +0 -23
  150. package/dist/src/types/zap/step.js +0 -2
  151. package/dist/src/utils/amount.d.ts +0 -82
  152. package/dist/src/utils/amount.js +0 -71
  153. package/dist/src/utils/axios.d.ts +0 -13
  154. package/dist/src/utils/axios.js +0 -42
  155. package/dist/src/utils/date.d.ts +0 -1
  156. package/dist/src/utils/date.js +0 -8
  157. package/dist/src/utils/decoder/swap/abis.d.ts +0 -643
  158. package/dist/src/utils/decoder/swap/abis.js +0 -831
  159. package/dist/src/utils/decoder/swap/inputDataDecoder.d.ts +0 -14
  160. package/dist/src/utils/decoder/swap/inputDataDecoder.js +0 -124
  161. package/dist/src/utils/eip-2612/eip2612Permit.d.ts +0 -23
  162. package/dist/src/utils/eip-2612/eip2612Permit.js +0 -121
  163. package/dist/src/utils/eip-5792/batchApproveTokens.d.ts +0 -21
  164. package/dist/src/utils/eip-5792/batchApproveTokens.js +0 -49
  165. package/dist/src/utils/eip-5792/index.d.ts +0 -3
  166. package/dist/src/utils/eip-5792/index.js +0 -9
  167. package/dist/src/utils/eip-5792/isBatchTxnSupportedByWallet.d.ts +0 -6
  168. package/dist/src/utils/eip-5792/isBatchTxnSupportedByWallet.js +0 -22
  169. package/dist/src/utils/eip-5792/sendBatchCalls.d.ts +0 -10
  170. package/dist/src/utils/eip-5792/sendBatchCalls.js +0 -25
  171. package/dist/src/utils/eip-5792/waitForBatchTransactionReceipt.d.ts +0 -4
  172. package/dist/src/utils/eip-5792/waitForBatchTransactionReceipt.js +0 -26
  173. package/dist/src/utils/encodeApproveCall.d.ts +0 -6
  174. package/dist/src/utils/encodeApproveCall.js +0 -13
  175. package/dist/src/utils/erc20.d.ts +0 -65
  176. package/dist/src/utils/erc20.js +0 -153
  177. package/dist/src/utils/errors.d.ts +0 -17
  178. package/dist/src/utils/errors.js +0 -78
  179. package/dist/src/utils/index.d.ts +0 -4566
  180. package/dist/src/utils/index.js +0 -196
  181. package/dist/src/utils/multicall.d.ts +0 -14
  182. package/dist/src/utils/multicall.js +0 -25
  183. package/dist/src/utils/permit2/domain.d.ts +0 -2
  184. package/dist/src/utils/permit2/domain.js +0 -11
  185. package/dist/src/utils/permit2/index.d.ts +0 -4
  186. package/dist/src/utils/permit2/index.js +0 -97
  187. package/dist/src/utils/permit2/nonce.d.ts +0 -15
  188. package/dist/src/utils/permit2/nonce.js +0 -61
  189. package/dist/src/utils/permit2/permitData.d.ts +0 -23
  190. package/dist/src/utils/permit2/permitData.js +0 -85
  191. package/dist/src/utils/permit2/values.d.ts +0 -54
  192. package/dist/src/utils/permit2/values.js +0 -88
  193. package/dist/src/utils/permit2/witnessData.d.ts +0 -4
  194. package/dist/src/utils/permit2/witnessData.js +0 -48
  195. package/dist/src/utils/signIntent/custom.d.ts +0 -11
  196. package/dist/src/utils/signIntent/custom.js +0 -31
  197. package/dist/src/utils/signIntent/gasless.d.ts +0 -12
  198. package/dist/src/utils/signIntent/gasless.js +0 -101
  199. package/dist/src/utils/signTypedData.d.ts +0 -11
  200. package/dist/src/utils/signTypedData.js +0 -21
  201. package/dist/src/utils/tokens.d.ts +0 -8
  202. package/dist/src/utils/tokens.js +0 -73
  203. package/dist/src/utils/updateQuotes.d.ts +0 -3
  204. package/dist/src/utils/updateQuotes.js +0 -69
  205. package/dist/src/zap/constants/index.d.ts +0 -2
  206. package/dist/src/zap/constants/index.js +0 -18
  207. package/dist/src/zap/constants/path.d.ts +0 -8
  208. package/dist/src/zap/constants/path.js +0 -11
  209. package/dist/src/zap/constants/step.d.ts +0 -3
  210. package/dist/src/zap/constants/step.js +0 -6
  211. package/dist/src/zap/constants/urls.d.ts +0 -13
  212. package/dist/src/zap/constants/urls.js +0 -16
  213. package/dist/test/build.test.d.ts +0 -1
  214. package/dist/test/build.test.js +0 -65
  215. package/dist/test/permit/permit2Nonce.test.d.ts +0 -2
  216. package/dist/test/permit/permit2Nonce.test.js +0 -96
  217. package/dist/test/quotes.test.d.ts +0 -1
  218. package/dist/test/quotes.test.js +0 -59
  219. package/dist/test/status.test.d.ts +0 -1
  220. package/dist/test/status.test.js +0 -37
  221. package/dist/tsconfig.tsbuildinfo +0 -1
@@ -1,196 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getOtherAbis = exports.handleDecodeTxnData = exports.getDZapAbi = exports.isDZapNativeToken = exports.isTypeSigner = exports.estimateGasMultiplier = exports.getTrxId = exports.generateUUID = exports.isOneToMany = exports.calcTotalSrcTokenAmount = exports.writeContract = exports.readContract = exports.getPublicClient = void 0;
4
- exports.getTokensPairKey = getTokensPairKey;
5
- const viem_1 = require("viem");
6
- const ABI = require("../artifacts");
7
- const ethers_1 = require("ethers");
8
- const chains_1 = require("../chains");
9
- const constants_1 = require("../constants");
10
- const rpc_1 = require("../constants/rpc");
11
- const enums_1 = require("../enums");
12
- const inputDataDecoder_1 = require("./decoder/swap/inputDataDecoder");
13
- const tokens_1 = require("./tokens");
14
- const publicClientRpcConfig = { batch: { wait: rpc_1.RPC_BATCHING_WAIT_TIME }, retryDelay: rpc_1.RPC_RETRY_DELAY };
15
- const getPublicClient = ({ rpcUrls, chainId }) => {
16
- const rpcs = rpcUrls && Array.isArray(rpcUrls) && rpcUrls.length > 0;
17
- return (0, viem_1.createPublicClient)({
18
- chain: chains_1.viemChainsById[chainId],
19
- transport: (0, viem_1.fallback)(rpcs ? rpcUrls.map((rpc) => (0, viem_1.http)(rpc, publicClientRpcConfig)) : [(0, viem_1.http)()]),
20
- batch: {
21
- multicall: {
22
- wait: rpc_1.RPC_BATCHING_WAIT_TIME,
23
- },
24
- },
25
- });
26
- };
27
- exports.getPublicClient = getPublicClient;
28
- function getTokensPairKey({ srcToken, destToken, srcChainId, destChainId, srcChainNativeAddress = viem_1.zeroAddress, destChainNativeAddress = viem_1.zeroAddress, }) {
29
- const srcFormattedAddress = (0, tokens_1.formatToken)(srcToken, srcChainNativeAddress);
30
- const destFormattedAddress = (0, tokens_1.formatToken)(destToken, destChainNativeAddress);
31
- return `${srcChainId}_${srcFormattedAddress}-${destChainId}_${destFormattedAddress}`;
32
- }
33
- const readContract = async ({ chainId, contractAddress, abi, functionName, rpcUrls, args = [], }) => {
34
- try {
35
- const result = await (0, exports.getPublicClient)({ chainId, rpcUrls }).readContract({
36
- address: contractAddress,
37
- abi,
38
- functionName,
39
- args,
40
- });
41
- return { data: result, status: enums_1.TxnStatus.success, code: enums_1.StatusCodes.Success };
42
- }
43
- catch (e) {
44
- console.log({ e });
45
- return { status: enums_1.TxnStatus.error, code: e.code || enums_1.StatusCodes.Error };
46
- }
47
- };
48
- exports.readContract = readContract;
49
- const writeContract = async ({ chainId, contractAddress, abi, functionName, args = [], value = '0', rpcUrls = [''], signer, }) => {
50
- const publicClient = (0, exports.getPublicClient)({ chainId, rpcUrls });
51
- try {
52
- const { request } = await publicClient.simulateContract({
53
- address: contractAddress,
54
- abi,
55
- functionName,
56
- args,
57
- account: signer.account,
58
- value: BigInt(value),
59
- });
60
- const hash = await signer.writeContract(request);
61
- return { txnHash: hash, status: enums_1.TxnStatus.success, code: enums_1.StatusCodes.Success };
62
- }
63
- catch (e) {
64
- console.log({ e });
65
- if ((e === null || e === void 0 ? void 0 : e.code) === enums_1.StatusCodes.UserRejectedRequest) {
66
- return { status: enums_1.TxnStatus.rejected, code: e === null || e === void 0 ? void 0 : e.code, txnHash: '' };
67
- }
68
- return { status: enums_1.TxnStatus.error, code: e === null || e === void 0 ? void 0 : e.code, txnHash: '' };
69
- }
70
- };
71
- exports.writeContract = writeContract;
72
- const calcTotalSrcTokenAmount = (data) => {
73
- return data.reduce((acc, obj) => {
74
- return acc + BigInt(obj.amount);
75
- }, BigInt(0));
76
- };
77
- exports.calcTotalSrcTokenAmount = calcTotalSrcTokenAmount;
78
- const isOneToMany = (firstTokenAddress, secondTokenAddress) => firstTokenAddress === secondTokenAddress;
79
- exports.isOneToMany = isOneToMany;
80
- const generateUUID = () => {
81
- let d = new Date().getTime();
82
- let d2 = (typeof performance !== 'undefined' && performance.now && performance.now() * 1000) || 0;
83
- const uuid = 'xxxxxxxx-xxxx-4xxx-yxxxx-xxxxxxxxxxxx-xxxxxxxxxxxx-xxxxxx-xxxxxxxx'.replace(/[xy]/g, (c) => {
84
- let r = Math.random() * 16;
85
- if (d > 0) {
86
- r = (d + r) % 16 | 0;
87
- d = Math.floor(d / 16);
88
- }
89
- else {
90
- r = (d2 + r) % 16 | 0;
91
- d2 = Math.floor(d2 / 16);
92
- }
93
- return (c === 'x' ? r : (r & 0x3) | 0x8).toString(16);
94
- });
95
- const uuidInBytes = (0, viem_1.stringToHex)(uuid, { size: 32 });
96
- return uuidInBytes;
97
- };
98
- exports.generateUUID = generateUUID;
99
- const getTrxId = (account) => {
100
- const uuid = `${account.slice(0, 6)}...${account.slice(36, 42)}-${Date.now()}`;
101
- console.log(uuid);
102
- const uuidInBytes = (0, viem_1.stringToHex)(uuid, { size: 32 });
103
- return uuidInBytes;
104
- };
105
- exports.getTrxId = getTrxId;
106
- exports.estimateGasMultiplier = BigInt(15) / BigInt(10);
107
- const isTypeSigner = (variable) => {
108
- return variable instanceof ethers_1.Signer;
109
- };
110
- exports.isTypeSigner = isTypeSigner;
111
- const isDZapNativeToken = (srcToken) => srcToken === constants_1.dZapNativeTokenFormat;
112
- exports.isDZapNativeToken = isDZapNativeToken;
113
- const getDZapAbi = (service, version) => {
114
- switch (service) {
115
- case constants_1.Services.trade:
116
- switch (version) {
117
- case enums_1.ContractVersion.v1:
118
- return ABI[constants_1.DZapAbis.dZapCoreAbi];
119
- case enums_1.ContractVersion.v2:
120
- return ABI[constants_1.DZapAbis.dZapCoreV2Abi];
121
- default:
122
- throw new Error('Invalid Version for Trade');
123
- }
124
- case constants_1.Services.dca:
125
- return ABI[constants_1.DZapAbis.dZapDcaAbi];
126
- case constants_1.Services.zap:
127
- default:
128
- throw new Error('Invalid Service');
129
- }
130
- };
131
- exports.getDZapAbi = getDZapAbi;
132
- const handleDecodeTxnData = (transaction, receipt, service, chain) => {
133
- var _a, _b, _c, _d, _e;
134
- let events = [];
135
- const dZapAbi = (0, exports.getDZapAbi)(service, (chain === null || chain === void 0 ? void 0 : chain.version) || enums_1.ContractVersion.v1);
136
- try {
137
- events = (0, viem_1.parseEventLogs)({
138
- abi: dZapAbi,
139
- logs: receipt.logs,
140
- });
141
- }
142
- catch (e) {
143
- events = [];
144
- }
145
- events = events === null || events === void 0 ? void 0 : events.filter((item) => item !== null);
146
- const txLogArgs = (_a = events[0]) === null || _a === void 0 ? void 0 : _a.args;
147
- const swapFailPairs = [];
148
- let swapInfo = [];
149
- if (Array.isArray(txLogArgs === null || txLogArgs === void 0 ? void 0 : txLogArgs.swapInfo)) {
150
- swapInfo = txLogArgs.swapInfo.map((info) => {
151
- var _a, _b, _c, _d;
152
- if (BigInt(info.returnToAmount) === BigInt(0) || BigInt(info.fromAmount) === BigInt(0)) {
153
- swapFailPairs.push(getTokensPairKey({
154
- srcToken: info.fromToken,
155
- destToken: info.toToken,
156
- srcChainId: chain.chainId,
157
- destChainId: chain.chainId,
158
- srcChainNativeAddress: (_a = chain === null || chain === void 0 ? void 0 : chain.nativeToken) === null || _a === void 0 ? void 0 : _a.contract,
159
- destChainNativeAddress: (_b = chain === null || chain === void 0 ? void 0 : chain.nativeToken) === null || _b === void 0 ? void 0 : _b.contract,
160
- }));
161
- }
162
- return Object.assign(Object.assign({}, info), { fromToken: (0, tokens_1.formatToken)(info.fromToken, (_c = chain === null || chain === void 0 ? void 0 : chain.nativeToken) === null || _c === void 0 ? void 0 : _c.contract), toToken: (0, tokens_1.formatToken)(info.toToken, (_d = chain === null || chain === void 0 ? void 0 : chain.nativeToken) === null || _d === void 0 ? void 0 : _d.contract) });
163
- });
164
- }
165
- else if (typeof (txLogArgs === null || txLogArgs === void 0 ? void 0 : txLogArgs.swapInfo) === 'object' && Object.keys(txLogArgs === null || txLogArgs === void 0 ? void 0 : txLogArgs.swapInfo).length > 0) {
166
- const { fromAmount, returnToAmount, fromToken, toToken } = txLogArgs.swapInfo;
167
- if (BigInt(returnToAmount) === BigInt(0) || BigInt(fromAmount) === BigInt(0)) {
168
- swapFailPairs.push(getTokensPairKey({
169
- srcToken: fromToken,
170
- destToken: toToken,
171
- srcChainId: chain.chainId,
172
- destChainId: chain.chainId,
173
- srcChainNativeAddress: (_b = chain === null || chain === void 0 ? void 0 : chain.nativeToken) === null || _b === void 0 ? void 0 : _b.contract,
174
- destChainNativeAddress: (_c = chain === null || chain === void 0 ? void 0 : chain.nativeToken) === null || _c === void 0 ? void 0 : _c.contract,
175
- }));
176
- }
177
- swapInfo = Object.assign(Object.assign({}, txLogArgs.swapInfo), { fromToken: (0, tokens_1.formatToken)(txLogArgs.swapInfo.fromToken, (_d = chain === null || chain === void 0 ? void 0 : chain.nativeToken) === null || _d === void 0 ? void 0 : _d.contract), toToken: (0, tokens_1.formatToken)(txLogArgs.swapInfo.toToken, (_e = chain === null || chain === void 0 ? void 0 : chain.nativeToken) === null || _e === void 0 ? void 0 : _e.contract) });
178
- }
179
- const updatedSwapInfo = new inputDataDecoder_1.SwapInputDataDecoder().updateSwapInfo({
180
- data: transaction.input,
181
- eventSwapInfo: swapInfo,
182
- }) || swapInfo;
183
- return { swapInfo: updatedSwapInfo, swapFailPairs };
184
- };
185
- exports.handleDecodeTxnData = handleDecodeTxnData;
186
- const getOtherAbis = (name) => {
187
- switch (name) {
188
- case constants_1.OtherAbis.permit2:
189
- return ABI.permit2Abi;
190
- case constants_1.OtherAbis.erc20:
191
- return ABI.erc20Abi;
192
- default:
193
- throw new Error('Invalid Abi');
194
- }
195
- };
196
- exports.getOtherAbis = getOtherAbis;
@@ -1,14 +0,0 @@
1
- import { MulticallParameters } from 'viem';
2
- import { StatusCodes, TxnStatus } from '../enums';
3
- import { HexString } from '../types';
4
- export declare const multicall: ({ chainId, contracts, rpcUrls, multicallAddress, allowFailure, }: {
5
- chainId: number;
6
- contracts: MulticallParameters["contracts"];
7
- rpcUrls?: string[];
8
- multicallAddress?: HexString;
9
- allowFailure?: boolean;
10
- }) => Promise<{
11
- status: TxnStatus;
12
- code: StatusCodes;
13
- data: unknown[];
14
- }>;
@@ -1,25 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.multicall = void 0;
4
- const enums_1 = require("../enums");
5
- const index_1 = require("./index");
6
- const multicall = async ({ chainId, contracts, rpcUrls, multicallAddress, allowFailure = false, }) => {
7
- try {
8
- const publicClient = (0, index_1.getPublicClient)({ chainId, rpcUrls });
9
- const results = await publicClient.multicall(Object.assign(Object.assign({ contracts }, (multicallAddress && { multicallAddress })), { allowFailure }));
10
- return {
11
- status: enums_1.TxnStatus.success,
12
- code: enums_1.StatusCodes.Success,
13
- data: results,
14
- };
15
- }
16
- catch (error) {
17
- console.error('Multicall failed:', error);
18
- return {
19
- status: enums_1.TxnStatus.error,
20
- code: error.code || enums_1.StatusCodes.Error,
21
- data: [],
22
- };
23
- }
24
- };
25
- exports.multicall = multicall;
@@ -1,2 +0,0 @@
1
- import type { Address, TypedDataDomain } from 'viem';
2
- export declare function permit2Domain(permit2Address: Address, chainId: number): TypedDataDomain;
@@ -1,11 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.permit2Domain = permit2Domain;
4
- const PERMIT2_DOMAIN_NAME = 'Permit2';
5
- function permit2Domain(permit2Address, chainId) {
6
- return {
7
- name: PERMIT2_DOMAIN_NAME,
8
- chainId,
9
- verifyingContract: permit2Address,
10
- };
11
- }
@@ -1,4 +0,0 @@
1
- import { HexString } from '../../types';
2
- import { BasePermitResponse, Permit2Params } from '../../types/permit';
3
- export declare function getPermit2Address(chainId: number): HexString;
4
- export declare const getPermit2Signature: (params: Permit2Params) => Promise<BasePermitResponse>;
@@ -1,97 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getPermit2Signature = void 0;
4
- exports.getPermit2Address = getPermit2Address;
5
- const contract_1 = require("../../constants/contract");
6
- const permit_1 = require("../../constants/permit");
7
- const permit2_1 = require("../../constants/permit2");
8
- const enums_1 = require("../../enums");
9
- const viem_1 = require("viem");
10
- const permit_2 = require("../../types/permit");
11
- const date_1 = require("../date");
12
- const signTypedData_1 = require("../signTypedData");
13
- const permitData_1 = require("./permitData");
14
- const values_1 = require("./values");
15
- const witnessData_1 = require("./witnessData");
16
- const constants_1 = require("../../constants");
17
- function getPermit2Address(chainId) {
18
- var _a;
19
- return (_a = contract_1.exclusivePermit2Addresses[chainId]) !== null && _a !== void 0 ? _a : contract_1.DEFAULT_PERMIT2_ADDRESS;
20
- }
21
- const getPermit2Signature = async (params) => {
22
- var _a, _b;
23
- try {
24
- const { chainId, account, tokens, spender, rpcUrls, deadline: sigDeadline, signer, permitType, firstTokenNonce, contractVersion, service, } = params;
25
- const deadline = sigDeadline !== null && sigDeadline !== void 0 ? sigDeadline : (0, date_1.generateDeadline)(permit2_1.SignatureExpiryInSecs);
26
- const expiration = (_a = params.expiration) !== null && _a !== void 0 ? _a : viem_1.maxUint48;
27
- const permit2Address = getPermit2Address(chainId);
28
- const updatedTokens = tokens.map((token) => {
29
- return Object.assign(Object.assign({}, token), { amount: BigInt(token.amount || viem_1.maxUint256).toString() });
30
- });
31
- const { witnessData } = (0, witnessData_1.getPermit2WitnessData)(params);
32
- const { permit2Values, nonce } = await (0, values_1.getPermit2Values)({
33
- primaryType: permitType,
34
- spender,
35
- account,
36
- deadline,
37
- chainId,
38
- permit2Address,
39
- rpcUrls,
40
- tokens: updatedTokens,
41
- expiration,
42
- firstTokenNonce: firstTokenNonce !== null && firstTokenNonce !== void 0 ? firstTokenNonce : null,
43
- service,
44
- contractVersion,
45
- });
46
- const signTypedPermit2Data = (0, permitData_1.getPermit2Data)(permit2Values, permit2Address, chainId, witnessData);
47
- const signature = await (0, signTypedData_1.signTypedData)({
48
- signer,
49
- domain: signTypedPermit2Data.domain,
50
- message: signTypedPermit2Data.message,
51
- types: signTypedPermit2Data.types,
52
- account,
53
- primaryType: permitType,
54
- });
55
- let dZapDataForTransfer;
56
- if (permitType === permit_1.permit2PrimaryType.PermitBatchWitnessTransferFrom) {
57
- dZapDataForTransfer = (0, viem_1.encodeAbiParameters)(permit_2.BatchPermitAbiParams, [
58
- {
59
- permitted: updatedTokens.map((token) => ({ token: token.address, amount: BigInt(token.amount) })),
60
- nonce,
61
- deadline,
62
- },
63
- signature,
64
- ]);
65
- }
66
- else if (permitType === permit_1.permit2PrimaryType.PermitWitnessTransferFrom) {
67
- dZapDataForTransfer = (0, viem_1.encodeAbiParameters)((0, viem_1.parseAbiParameters)('uint256, uint256, bytes'), [nonce, deadline, signature]);
68
- }
69
- else if (contractVersion === enums_1.ContractVersion.v1 && service !== constants_1.Services.zap) {
70
- dZapDataForTransfer = (0, viem_1.encodeAbiParameters)((0, viem_1.parseAbiParameters)('uint160 allowanceAmount, uint48 nonce, uint48 expiration, uint256 sigDeadline, bytes signature'), [BigInt(tokens[0].amount), Number(nonce.toString()), Number(expiration.toString()), BigInt(deadline.toString()), signature]);
71
- }
72
- else {
73
- dZapDataForTransfer = (0, viem_1.encodeAbiParameters)((0, viem_1.parseAbiParameters)('uint48 nonce, uint48 expiration, uint256 sigDeadline, bytes signature'), [
74
- Number(nonce.toString()),
75
- Number(expiration.toString()),
76
- BigInt(deadline.toString()),
77
- signature,
78
- ]);
79
- }
80
- const dzapPermitMode = service !== constants_1.Services.zap && contractVersion === enums_1.ContractVersion.v1 ? enums_1.DZapV1PermitMode.PERMIT2_APPROVE : permit_1.PermitToDZapPermitMode[permitType];
81
- const permitData = (0, viem_1.encodeAbiParameters)((0, viem_1.parseAbiParameters)('uint8, bytes'), [dzapPermitMode, dZapDataForTransfer]);
82
- return {
83
- status: enums_1.TxnStatus.success,
84
- code: enums_1.StatusCodes.Success,
85
- permitData,
86
- nonce,
87
- };
88
- }
89
- catch (error) {
90
- console.log('Error generating permit2 witness transfer signature:', error);
91
- if (((_b = error === null || error === void 0 ? void 0 : error.cause) === null || _b === void 0 ? void 0 : _b.code) === enums_1.StatusCodes.UserRejectedRequest || (error === null || error === void 0 ? void 0 : error.code) === enums_1.StatusCodes.UserRejectedRequest) {
92
- return { status: enums_1.TxnStatus.rejected, code: enums_1.StatusCodes.UserRejectedRequest };
93
- }
94
- return { status: enums_1.TxnStatus.error, code: enums_1.StatusCodes.Error };
95
- }
96
- };
97
- exports.getPermit2Signature = getPermit2Signature;
@@ -1,15 +0,0 @@
1
- import { HexString } from '../../types';
2
- import { Address, PublicClient } from 'viem';
3
- export declare class NonceManager {
4
- private static readonly POSITION_BITS;
5
- private static readonly MAX_POSITION;
6
- private static readonly POSITION_MASK;
7
- private static readonly MAX_WORD_ITERATIONS;
8
- private readonly permit2Contract;
9
- constructor(publicClient: PublicClient, permit2Address: HexString);
10
- nextNonce(owner: Address): Promise<bigint>;
11
- private nonceFromWordAndPos;
12
- getNonceBitmap(owner: Address, word: bigint): Promise<bigint>;
13
- isNonceUsed(owner: Address, nonce: bigint): Promise<boolean>;
14
- }
15
- export declare const getNextPermit2Nonce: (permitAddress: HexString, account: HexString, chainId: number, rpcUrls?: string[]) => Promise<bigint>;
@@ -1,61 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getNextPermit2Nonce = exports.NonceManager = void 0;
4
- const artifacts_1 = require("../../artifacts");
5
- const viem_1 = require("viem");
6
- const __1 = require("..");
7
- class NonceManager {
8
- constructor(publicClient, permit2Address) {
9
- this.permit2Contract = (0, viem_1.getContract)({
10
- address: permit2Address,
11
- abi: artifacts_1.permit2Abi,
12
- client: publicClient,
13
- });
14
- }
15
- async nextNonce(owner) {
16
- let word = BigInt(0);
17
- let pos = 0;
18
- for (let iteration = 0; iteration < NonceManager.MAX_WORD_ITERATIONS; iteration++) {
19
- const bitmap = await this.permit2Contract.read.nonceBitmap([owner, word]);
20
- if (bitmap === viem_1.maxUint256) {
21
- ++word;
22
- pos = 0;
23
- continue;
24
- }
25
- let workingBitmap = bitmap;
26
- if (pos !== 0) {
27
- workingBitmap = workingBitmap >> BigInt(pos);
28
- }
29
- while (pos < NonceManager.MAX_POSITION && (workingBitmap & BigInt(1)) === BigInt(1)) {
30
- workingBitmap = workingBitmap >> BigInt(1);
31
- ++pos;
32
- }
33
- return this.nonceFromWordAndPos(word, pos);
34
- }
35
- throw new Error('Max iterations reached');
36
- }
37
- nonceFromWordAndPos(word, pos) {
38
- const nonce = word << NonceManager.POSITION_BITS;
39
- return nonce | BigInt(pos);
40
- }
41
- async getNonceBitmap(owner, word) {
42
- return this.permit2Contract.read.nonceBitmap([owner, word]);
43
- }
44
- async isNonceUsed(owner, nonce) {
45
- const word = nonce >> NonceManager.POSITION_BITS;
46
- const pos = Number(nonce & NonceManager.POSITION_MASK);
47
- const bitmap = await this.getNonceBitmap(owner, word);
48
- return ((bitmap >> BigInt(pos)) & BigInt(1)) === BigInt(1);
49
- }
50
- }
51
- exports.NonceManager = NonceManager;
52
- NonceManager.POSITION_BITS = BigInt(8);
53
- NonceManager.MAX_POSITION = 256;
54
- NonceManager.POSITION_MASK = BigInt(0xff);
55
- NonceManager.MAX_WORD_ITERATIONS = 1000;
56
- const getNextPermit2Nonce = async (permitAddress, account, chainId, rpcUrls) => {
57
- const publicClient = (0, __1.getPublicClient)({ chainId, rpcUrls });
58
- const nonceManager = new NonceManager(publicClient, permitAddress);
59
- return nonceManager.nextNonce(account);
60
- };
61
- exports.getNextPermit2Nonce = getNextPermit2Nonce;
@@ -1,23 +0,0 @@
1
- import { TypedDataField } from 'ethers';
2
- import { PermitBatchTransferFromValues, PermitSingleValues, PermitTransferFromValues, WitnessData } from '../../types/permit';
3
- import type { Address, TypedDataDomain } from 'viem';
4
- type PermitSingleData = {
5
- domain: TypedDataDomain;
6
- types: Record<string, Array<TypedDataField>>;
7
- message: PermitSingleValues;
8
- };
9
- type PermitTransferFromData = {
10
- domain: TypedDataDomain;
11
- types: Record<string, Array<TypedDataField>>;
12
- message: PermitTransferFromValues;
13
- };
14
- type PermitBatchTransferFromData = {
15
- domain: TypedDataDomain;
16
- types: Record<string, Array<TypedDataField>>;
17
- message: PermitBatchTransferFromValues;
18
- };
19
- export declare function getPermitSingleData(permit: PermitSingleValues, permit2Address: Address, chainId: number): PermitSingleData;
20
- export declare function getPermitTransferData(permit: PermitTransferFromValues, permit2Address: Address, chainId: number, witness: WitnessData): PermitTransferFromData;
21
- export declare function getPermitBatchTransferData(permit: PermitBatchTransferFromValues, permit2Address: Address, chainId: number, witness: WitnessData): PermitBatchTransferFromData;
22
- export declare function getPermit2Data(permit: PermitTransferFromValues | PermitBatchTransferFromValues | PermitSingleValues, permit2Address: Address, chainId: number, witness?: WitnessData): PermitTransferFromData | PermitBatchTransferFromData | PermitSingleData;
23
- export {};
@@ -1,85 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getPermitSingleData = getPermitSingleData;
4
- exports.getPermitTransferData = getPermitTransferData;
5
- exports.getPermitBatchTransferData = getPermitBatchTransferData;
6
- exports.getPermit2Data = getPermit2Data;
7
- const domain_1 = require("./domain");
8
- function isPermitSingle(permit) {
9
- return 'details' in permit && permit.details !== undefined;
10
- }
11
- function isPermitTransferFrom(permit) {
12
- return 'permitted' in permit && !Array.isArray(permit.permitted);
13
- }
14
- function getPermitSingleData(permit, permit2Address, chainId) {
15
- const domain = (0, domain_1.permit2Domain)(permit2Address, chainId);
16
- const types = {
17
- PermitSingle: [
18
- { name: 'details', type: 'PermitDetails' },
19
- { name: 'spender', type: 'address' },
20
- { name: 'sigDeadline', type: 'uint256' },
21
- ],
22
- PermitDetails: [
23
- { name: 'token', type: 'address' },
24
- { name: 'amount', type: 'uint160' },
25
- { name: 'expiration', type: 'uint48' },
26
- { name: 'nonce', type: 'uint48' },
27
- ],
28
- };
29
- const message = permit;
30
- return {
31
- domain,
32
- types,
33
- message,
34
- };
35
- }
36
- function getPermitTransferData(permit, permit2Address, chainId, witness) {
37
- const domain = (0, domain_1.permit2Domain)(permit2Address, chainId);
38
- const types = Object.assign(Object.assign({}, witness.witnessType), { TokenPermissions: [
39
- { name: 'token', type: 'address' },
40
- { name: 'amount', type: 'uint256' },
41
- ], PermitWitnessTransferFrom: [
42
- { name: 'permitted', type: 'TokenPermissions' },
43
- { name: 'spender', type: 'address' },
44
- { name: 'nonce', type: 'uint256' },
45
- { name: 'deadline', type: 'uint256' },
46
- { name: 'witness', type: witness.witnessTypeName },
47
- ] });
48
- const message = Object.assign(permit, { witness: witness.witness });
49
- return {
50
- domain,
51
- types,
52
- message,
53
- };
54
- }
55
- function getPermitBatchTransferData(permit, permit2Address, chainId, witness) {
56
- const domain = (0, domain_1.permit2Domain)(permit2Address, chainId);
57
- const types = Object.assign(Object.assign({}, witness.witnessType), { TokenPermissions: [
58
- { name: 'token', type: 'address' },
59
- { name: 'amount', type: 'uint256' },
60
- ], PermitBatchWitnessTransferFrom: [
61
- { name: 'permitted', type: 'TokenPermissions[]' },
62
- { name: 'spender', type: 'address' },
63
- { name: 'nonce', type: 'uint256' },
64
- { name: 'deadline', type: 'uint256' },
65
- { name: 'witness', type: witness.witnessTypeName },
66
- ] });
67
- const message = Object.assign(Object.assign({}, permit), { witness: witness.witness });
68
- return {
69
- domain,
70
- types,
71
- message,
72
- };
73
- }
74
- function getPermit2Data(permit, permit2Address, chainId, witness) {
75
- if (isPermitSingle(permit)) {
76
- return getPermitSingleData(permit, permit2Address, chainId);
77
- }
78
- if (!witness) {
79
- throw new Error('Witness is required for PermitTransferFrom');
80
- }
81
- if (isPermitTransferFrom(permit)) {
82
- return getPermitTransferData(permit, permit2Address, chainId, witness);
83
- }
84
- return getPermitBatchTransferData(permit, permit2Address, chainId, witness);
85
- }
@@ -1,54 +0,0 @@
1
- import { BasePermitParams, Permit2PrimaryType, PermitBatchTransferFromValues, PermitSingleValues, PermitTransferFromValues, TokenWithIndex } from '../../types/permit';
2
- import type { Address } from 'viem';
3
- import { HexString } from '../../types';
4
- type Permit2ValuesParams = {
5
- deadline: bigint;
6
- permit2Address: HexString;
7
- tokens: TokenWithIndex[];
8
- expiration?: bigint;
9
- firstTokenNonce: bigint | null;
10
- primaryType: Permit2PrimaryType;
11
- } & Omit<BasePermitParams, 'deadline' | 'signer'>;
12
- export declare const getPermitSingleValues: ({ spender, deadline, chainId, rpcUrls, account, expiration, token, permit2Address, }: {
13
- spender: Address;
14
- deadline: bigint;
15
- chainId: number;
16
- account: HexString;
17
- expiration: bigint;
18
- token: TokenWithIndex;
19
- permit2Address: HexString;
20
- rpcUrls?: string[];
21
- }) => Promise<{
22
- permit2Values: PermitSingleValues;
23
- nonce: bigint;
24
- }>;
25
- export declare const getPermitTransferFromValues: ({ spender, deadline, chainId, rpcUrls, account, token, permit2Address, firstTokenNonce, }: {
26
- spender: Address;
27
- deadline: bigint;
28
- chainId: number;
29
- account: HexString;
30
- token: TokenWithIndex;
31
- permit2Address: HexString;
32
- firstTokenNonce: bigint | null;
33
- rpcUrls?: string[];
34
- }) => Promise<{
35
- permit2Values: PermitTransferFromValues;
36
- nonce: bigint;
37
- }>;
38
- export declare const getPermitBatchTransferFromValues: ({ spender, deadline, chainId, rpcUrls, account, permit2Address, tokens, }: {
39
- spender: Address;
40
- deadline: bigint;
41
- chainId: number;
42
- account: HexString;
43
- permit2Address: HexString;
44
- tokens: TokenWithIndex[];
45
- rpcUrls?: string[];
46
- }) => Promise<{
47
- permit2Values: PermitBatchTransferFromValues;
48
- nonce: bigint;
49
- }>;
50
- export declare function getPermit2Values(params: Permit2ValuesParams): Promise<{
51
- permit2Values: PermitTransferFromValues | PermitBatchTransferFromValues | PermitSingleValues;
52
- nonce: bigint;
53
- }>;
54
- export {};