@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,14 +0,0 @@
1
- import { HexString, SwapInfo } from '../../../types';
2
- export declare class SwapInputDataDecoder {
3
- private decodeSingleSwapData;
4
- private decodeMultiSwapData;
5
- private decodeBatchPermitSwapData;
6
- private decodeGaslessExecuteMultiSwapData;
7
- private decodeGaslessExecuteMultiSwapWithWitnessData;
8
- private decodeGaslessExecuteSwapData;
9
- private readonly swapFunctionSignatureWithInputTokenIndex;
10
- updateSwapInfo: ({ data, eventSwapInfo, }: {
11
- eventSwapInfo?: SwapInfo[] | SwapInfo;
12
- data?: HexString;
13
- }) => SwapInfo[] | SwapInfo | undefined;
14
- }
@@ -1,124 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SwapInputDataDecoder = void 0;
4
- const utils_1 = require("viem/utils");
5
- const abis_1 = require("./abis");
6
- const tokens_1 = require("../../tokens");
7
- class SwapInputDataDecoder {
8
- constructor() {
9
- this.decodeSingleSwapData = (data) => {
10
- var _a;
11
- const decodedData = (0, utils_1.decodeFunctionData)({
12
- data,
13
- abi: abis_1.SwapAbisByFunctionName.SingleSwap,
14
- });
15
- return [(_a = decodedData === null || decodedData === void 0 ? void 0 : decodedData.args) === null || _a === void 0 ? void 0 : _a[4]];
16
- };
17
- this.decodeMultiSwapData = (data) => {
18
- var _a;
19
- const decodedData = (0, utils_1.decodeFunctionData)({
20
- data,
21
- abi: abis_1.SwapAbisByFunctionName.MultiSwapAbi,
22
- });
23
- return (_a = decodedData === null || decodedData === void 0 ? void 0 : decodedData.args) === null || _a === void 0 ? void 0 : _a[4];
24
- };
25
- this.decodeBatchPermitSwapData = (data) => {
26
- var _a, _b;
27
- const decodedData = (0, utils_1.decodeFunctionData)({
28
- data,
29
- abi: abis_1.SwapAbisByFunctionName.BatchPermitSwapAbi,
30
- });
31
- const permitData = (_b = (_a = decodedData === null || decodedData === void 0 ? void 0 : decodedData.args) === null || _a === void 0 ? void 0 : _a[5]) === null || _b === void 0 ? void 0 : _b.permitted;
32
- return permitData;
33
- };
34
- this.decodeGaslessExecuteMultiSwapData = (data) => {
35
- var _a;
36
- const decodedData = (0, utils_1.decodeFunctionData)({
37
- data,
38
- abi: abis_1.SwapAbisByFunctionName.GaslessExecuteMultiSwapAbi,
39
- });
40
- return (_a = decodedData === null || decodedData === void 0 ? void 0 : decodedData.args) === null || _a === void 0 ? void 0 : _a[7];
41
- };
42
- this.decodeGaslessExecuteMultiSwapWithWitnessData = (data) => {
43
- var _a;
44
- const decodedData = (0, utils_1.decodeFunctionData)({
45
- data,
46
- abi: abis_1.SwapAbisByFunctionName.GaslessExecuteMultiSwapWithWitnessAbi,
47
- });
48
- return (_a = decodedData === null || decodedData === void 0 ? void 0 : decodedData.args) === null || _a === void 0 ? void 0 : _a[7];
49
- };
50
- this.decodeGaslessExecuteSwapData = (data) => {
51
- var _a;
52
- const decodedData = (0, utils_1.decodeFunctionData)({
53
- data,
54
- abi: abis_1.SwapAbisByFunctionName.GaslessExecuteSwapAbi,
55
- });
56
- return [(_a = decodedData === null || decodedData === void 0 ? void 0 : decodedData.args) === null || _a === void 0 ? void 0 : _a[7]];
57
- };
58
- this.swapFunctionSignatureWithInputTokenIndex = {
59
- '0x50d52584': {
60
- name: 'singleSwap',
61
- decoder: this.decodeSingleSwapData,
62
- },
63
- '0x8de34776': {
64
- name: 'multiSwap',
65
- decoder: this.decodeMultiSwapData,
66
- },
67
- '0x8d44ea24': {
68
- name: 'batchPermitSwap',
69
- decoder: this.decodeBatchPermitSwapData,
70
- },
71
- '0xd367ada5': {
72
- name: 'gaslessExecuteMultiSwap',
73
- decoder: this.decodeGaslessExecuteMultiSwapData,
74
- },
75
- '0xdcdc6089': {
76
- name: 'gaslessExecuteMultiSwapWithWitness',
77
- decoder: this.decodeGaslessExecuteMultiSwapWithWitnessData,
78
- },
79
- '0x0d2eedd4': {
80
- name: 'gaslessExecuteSwap',
81
- decoder: this.decodeGaslessExecuteSwapData,
82
- },
83
- };
84
- this.updateSwapInfo = ({ data, eventSwapInfo, }) => {
85
- var _a;
86
- try {
87
- if (!data || !eventSwapInfo || data === '0x') {
88
- return eventSwapInfo;
89
- }
90
- const functionSignature = data.slice(0, 10);
91
- const decoder = (_a = this.swapFunctionSignatureWithInputTokenIndex[functionSignature]) === null || _a === void 0 ? void 0 : _a.decoder;
92
- if (!decoder) {
93
- return eventSwapInfo;
94
- }
95
- const inputTokenData = decoder(data);
96
- if (!inputTokenData || inputTokenData.length === 0) {
97
- return eventSwapInfo;
98
- }
99
- const tokenToAmount = inputTokenData
100
- .filter((item) => item.token && item.amount)
101
- .reduce((acc, cur) => {
102
- acc[(0, tokens_1.formatToken)(cur.token)] = cur.amount;
103
- return acc;
104
- }, {});
105
- if (Array.isArray(eventSwapInfo)) {
106
- return eventSwapInfo.map((item) => {
107
- const formattedSrcToken = (0, tokens_1.formatToken)(item.fromToken);
108
- const inputAmount = tokenToAmount[formattedSrcToken] || item.fromAmount;
109
- return Object.assign(Object.assign({}, item), { fromAmount: inputAmount });
110
- });
111
- }
112
- else {
113
- const formattedSrcToken = (0, tokens_1.formatToken)(eventSwapInfo.fromToken);
114
- const inputAmount = tokenToAmount[formattedSrcToken] || eventSwapInfo.fromAmount;
115
- return Object.assign(Object.assign({}, eventSwapInfo), { fromAmount: inputAmount });
116
- }
117
- }
118
- catch (error) {
119
- return eventSwapInfo;
120
- }
121
- };
122
- }
123
- }
124
- exports.SwapInputDataDecoder = SwapInputDataDecoder;
@@ -1,23 +0,0 @@
1
- import { StatusCodes, TxnStatus } from '../../enums';
2
- import { HexString, TokenPermitData } from '../../types';
3
- import { DefaultPermit2612Params } from '../../types/permit';
4
- export declare const eip2612DisabledChains: number[];
5
- export declare const checkEIP2612PermitSupport: ({ address, chainId, rpcUrls, owner, permit, }: {
6
- chainId: number;
7
- address: HexString;
8
- rpcUrls?: string[];
9
- owner: HexString;
10
- permit?: TokenPermitData;
11
- }) => Promise<{
12
- supportsPermit: boolean;
13
- data?: {
14
- version: string;
15
- name: string;
16
- nonce: bigint;
17
- };
18
- }>;
19
- export declare const getEIP2612PermitSignature: (params: DefaultPermit2612Params) => Promise<{
20
- status: TxnStatus;
21
- code: StatusCodes;
22
- permitData?: HexString;
23
- }>;
@@ -1,121 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getEIP2612PermitSignature = exports.checkEIP2612PermitSupport = exports.eip2612DisabledChains = void 0;
4
- const ethers_1 = require("ethers");
5
- const viem_1 = require("viem");
6
- const ERC20Permit_1 = require("../../artifacts/ERC20Permit");
7
- const config_1 = require("../../config");
8
- const constants_1 = require("../../constants");
9
- const erc20_1 = require("../../constants/erc20");
10
- const permit2_1 = require("../../constants/permit2");
11
- const enums_1 = require("../../enums");
12
- const eip_2612_1 = require("../../types/eip-2612");
13
- const date_1 = require("../date");
14
- const multicall_1 = require("../multicall");
15
- const signTypedData_1 = require("../signTypedData");
16
- exports.eip2612DisabledChains = config_1.config.getEip2612DisabledChains();
17
- const checkEIP2612PermitSupport = async ({ address, chainId, rpcUrls, owner, permit, }) => {
18
- var _a;
19
- if (((_a = permit === null || permit === void 0 ? void 0 : permit.eip2612) === null || _a === void 0 ? void 0 : _a.supported) === false || exports.eip2612DisabledChains.includes(chainId)) {
20
- return { supportsPermit: false };
21
- }
22
- const contracts = [
23
- {
24
- address: address,
25
- abi: ERC20Permit_1.erc20PermitAbi,
26
- functionName: erc20_1.erc20Functions.domainSeparator,
27
- },
28
- {
29
- address: address,
30
- abi: ERC20Permit_1.erc20PermitAbi,
31
- functionName: erc20_1.erc20Functions.nonces,
32
- args: [owner],
33
- },
34
- {
35
- address: address,
36
- abi: ERC20Permit_1.erc20PermitAbi,
37
- functionName: erc20_1.erc20Functions.version,
38
- },
39
- {
40
- address: address,
41
- abi: ERC20Permit_1.erc20PermitAbi,
42
- functionName: erc20_1.erc20Functions.name,
43
- },
44
- ];
45
- const multicallResult = await (0, multicall_1.multicall)({
46
- chainId,
47
- contracts,
48
- rpcUrls,
49
- allowFailure: true,
50
- });
51
- if (multicallResult.status !== enums_1.TxnStatus.success) {
52
- return { supportsPermit: false };
53
- }
54
- const results = multicallResult.data;
55
- const [domainSeparatorResult, nonceResult, versionResult, nameResult] = results;
56
- if (domainSeparatorResult.status !== enums_1.TxnStatus.success || nonceResult.status !== enums_1.TxnStatus.success || nameResult.status !== enums_1.TxnStatus.success) {
57
- return { supportsPermit: false };
58
- }
59
- const name = nameResult.result;
60
- const nonce = nonceResult.result;
61
- const version = versionResult.status === enums_1.TxnStatus.success ? versionResult.result : permit2_1.DEFAULT_PERMIT_VERSION;
62
- return {
63
- supportsPermit: true,
64
- data: {
65
- version,
66
- name,
67
- nonce,
68
- },
69
- };
70
- };
71
- exports.checkEIP2612PermitSupport = checkEIP2612PermitSupport;
72
- const getEIP2612PermitSignature = async (params) => {
73
- var _a, _b, _c, _d, _e, _f, _g;
74
- try {
75
- const { chainId, spender, account, token, signer, contractVersion, service, name, nonce, version, deadline = (0, date_1.generateDeadline)(permit2_1.SignatureExpiryInSecs), } = params;
76
- const { address } = token;
77
- const amount = token.amount ? BigInt(token.amount) : viem_1.maxUint256;
78
- const domain = ((_c = (_b = (_a = token === null || token === void 0 ? void 0 : token.permit) === null || _a === void 0 ? void 0 : _a.eip2612) === null || _b === void 0 ? void 0 : _b.data) === null || _c === void 0 ? void 0 : _c.domain)
79
- ? (_f = (_e = (_d = token === null || token === void 0 ? void 0 : token.permit) === null || _d === void 0 ? void 0 : _d.eip2612) === null || _e === void 0 ? void 0 : _e.data) === null || _f === void 0 ? void 0 : _f.domain
80
- : {
81
- name,
82
- version,
83
- chainId,
84
- verifyingContract: address,
85
- };
86
- const message = {
87
- owner: account,
88
- spender,
89
- value: amount,
90
- nonce,
91
- deadline,
92
- };
93
- const types = eip_2612_1.EIP2612DefaultTypes;
94
- const signature = await (0, signTypedData_1.signTypedData)({
95
- signer,
96
- domain,
97
- message,
98
- types,
99
- account,
100
- primaryType: 'Permit',
101
- });
102
- const sig = ethers_1.ethers.utils.splitSignature(signature);
103
- const dZapPermitData = contractVersion === enums_1.ContractVersion.v1 && service !== constants_1.Services.zap
104
- ? ethers_1.ethers.utils.defaultAbiCoder.encode(['address', 'address', 'uint256', 'uint256', 'uint8', 'bytes32', 'bytes32'], [account, spender, amount, deadline, sig.v, sig.r, sig.s])
105
- : ethers_1.ethers.utils.defaultAbiCoder.encode(['uint256', 'uint8', 'bytes32', 'bytes32'], [deadline, sig.v, sig.r, sig.s]);
106
- const permitData = (0, viem_1.encodeAbiParameters)((0, viem_1.parseAbiParameters)('uint8, bytes'), [enums_1.DZapPermitMode.PERMIT, dZapPermitData]);
107
- return {
108
- status: enums_1.TxnStatus.success,
109
- code: enums_1.StatusCodes.Success,
110
- permitData,
111
- };
112
- }
113
- catch (error) {
114
- console.log('Error generating permit signature:', error);
115
- if (((_g = error === null || error === void 0 ? void 0 : error.cause) === null || _g === void 0 ? void 0 : _g.code) === enums_1.StatusCodes.UserRejectedRequest || (error === null || error === void 0 ? void 0 : error.code) === enums_1.StatusCodes.UserRejectedRequest) {
116
- return { status: enums_1.TxnStatus.rejected, code: enums_1.StatusCodes.UserRejectedRequest };
117
- }
118
- return { status: enums_1.TxnStatus.error, code: enums_1.StatusCodes.Error };
119
- }
120
- };
121
- exports.getEIP2612PermitSignature = getEIP2612PermitSignature;
@@ -1,21 +0,0 @@
1
- import { type WalletClient } from 'viem';
2
- import { HexString } from '../../types';
3
- import { BatchCallParams } from './sendBatchCalls';
4
- export declare function generateApprovalBatchCalls({ tokens, chainId, sender, spender, multicallAddress, rpcUrls, }: {
5
- tokens: Array<{
6
- address: HexString;
7
- amount: string;
8
- }>;
9
- chainId: number;
10
- sender: HexString;
11
- spender: HexString;
12
- multicallAddress?: HexString;
13
- rpcUrls?: string[];
14
- }): Promise<BatchCallParams[]>;
15
- export declare function batchApproveTokens(walletClient: WalletClient, tokens: Array<{
16
- address: HexString;
17
- amount: string;
18
- }>, chainId: number, spender: HexString, sender: HexString, multicallAddress?: HexString, rpcUrls?: string[]): Promise<{
19
- success: boolean;
20
- batchId?: string;
21
- }>;
@@ -1,49 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.generateApprovalBatchCalls = generateApprovalBatchCalls;
4
- exports.batchApproveTokens = batchApproveTokens;
5
- const encodeApproveCall_1 = require("../encodeApproveCall");
6
- const erc20_1 = require("../erc20");
7
- const index_1 = require("../index");
8
- const sendBatchCalls_1 = require("./sendBatchCalls");
9
- async function generateApprovalBatchCalls({ tokens, chainId, sender, spender, multicallAddress, rpcUrls, }) {
10
- const tokensToCheck = tokens.filter((token) => !(0, index_1.isDZapNativeToken)(token.address));
11
- if (tokensToCheck.length === 0) {
12
- return [];
13
- }
14
- const { data: allowanceData } = await (0, erc20_1.getAllowance)({
15
- chainId,
16
- sender,
17
- tokens: tokensToCheck,
18
- spender,
19
- multicallAddress,
20
- rpcUrls,
21
- });
22
- const tokensNeedingApproval = tokensToCheck.filter((token) => { var _a; return (_a = allowanceData[token.address]) === null || _a === void 0 ? void 0 : _a.approvalNeeded; });
23
- return tokensNeedingApproval.map((token) => ({
24
- to: token.address,
25
- data: (0, encodeApproveCall_1.encodeApproveCallData)({
26
- spender,
27
- amount: BigInt(token.amount),
28
- }),
29
- value: BigInt(0),
30
- }));
31
- }
32
- async function batchApproveTokens(walletClient, tokens, chainId, spender, sender, multicallAddress, rpcUrls) {
33
- const approveCalls = await generateApprovalBatchCalls({
34
- tokens,
35
- chainId,
36
- sender,
37
- multicallAddress,
38
- spender,
39
- rpcUrls,
40
- });
41
- if (approveCalls.length === 0) {
42
- return { success: true };
43
- }
44
- const batchResult = await (0, sendBatchCalls_1.sendBatchCalls)(walletClient, approveCalls);
45
- return {
46
- success: Boolean(batchResult),
47
- batchId: batchResult === null || batchResult === void 0 ? void 0 : batchResult.id,
48
- };
49
- }
@@ -1,3 +0,0 @@
1
- export { batchApproveTokens } from './batchApproveTokens';
2
- export { sendBatchCalls, type BatchCallParams } from './sendBatchCalls';
3
- export { waitForBatchTransactionReceipt } from './waitForBatchTransactionReceipt';
@@ -1,9 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.waitForBatchTransactionReceipt = exports.sendBatchCalls = exports.batchApproveTokens = void 0;
4
- var batchApproveTokens_1 = require("./batchApproveTokens");
5
- Object.defineProperty(exports, "batchApproveTokens", { enumerable: true, get: function () { return batchApproveTokens_1.batchApproveTokens; } });
6
- var sendBatchCalls_1 = require("./sendBatchCalls");
7
- Object.defineProperty(exports, "sendBatchCalls", { enumerable: true, get: function () { return sendBatchCalls_1.sendBatchCalls; } });
8
- var waitForBatchTransactionReceipt_1 = require("./waitForBatchTransactionReceipt");
9
- Object.defineProperty(exports, "waitForBatchTransactionReceipt", { enumerable: true, get: function () { return waitForBatchTransactionReceipt_1.waitForBatchTransactionReceipt; } });
@@ -1,6 +0,0 @@
1
- import { Client } from 'viem';
2
- export declare function isBatchTxnSupportedByWallet({ client, chainId, skipReady, }: {
3
- client: Client;
4
- chainId: number;
5
- skipReady?: boolean;
6
- }): Promise<boolean>;
@@ -1,22 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isBatchTxnSupportedByWallet = isBatchTxnSupportedByWallet;
4
- const viem_1 = require("viem");
5
- const actions_1 = require("viem/actions");
6
- const utils_1 = require("viem/utils");
7
- async function isBatchTxnSupportedByWallet({ client, chainId, skipReady = false, }) {
8
- var _a, _b, _c;
9
- try {
10
- const capabilities = await (0, viem_1.withTimeout)(async () => await (0, utils_1.getAction)(client, actions_1.getCapabilities, 'getCapabilities')({ chainId }), {
11
- timeout: 2000,
12
- errorInstance: new Error('Timeout'),
13
- });
14
- return (((_a = capabilities === null || capabilities === void 0 ? void 0 : capabilities.atomicBatch) === null || _a === void 0 ? void 0 : _a.supported) ||
15
- ((_b = capabilities === null || capabilities === void 0 ? void 0 : capabilities.atomic) === null || _b === void 0 ? void 0 : _b.status) === 'supported' ||
16
- (!skipReady && ((_c = capabilities === null || capabilities === void 0 ? void 0 : capabilities.atomic) === null || _c === void 0 ? void 0 : _c.status) === 'ready') ||
17
- false);
18
- }
19
- catch (_d) {
20
- return false;
21
- }
22
- }
@@ -1,10 +0,0 @@
1
- import { WalletClient } from 'viem';
2
- import { HexString } from '../../types';
3
- export type BatchCallParams = {
4
- to: HexString;
5
- data: HexString;
6
- value?: bigint;
7
- };
8
- export declare function sendBatchCalls(walletClient: WalletClient, calls: BatchCallParams[]): Promise<{
9
- id: string;
10
- } | null>;
@@ -1,25 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.sendBatchCalls = sendBatchCalls;
4
- const actions_1 = require("viem/actions");
5
- const utils_1 = require("viem/utils");
6
- async function sendBatchCalls(walletClient, calls) {
7
- try {
8
- const result = await (0, utils_1.getAction)(walletClient, actions_1.sendCalls, 'sendCalls')({
9
- account: walletClient.account,
10
- calls: calls.map((call) => {
11
- var _a;
12
- return ({
13
- to: call.to,
14
- data: call.data,
15
- value: (_a = call.value) !== null && _a !== void 0 ? _a : BigInt(0),
16
- });
17
- }),
18
- });
19
- return result;
20
- }
21
- catch (error) {
22
- console.warn('EIP-5792 batch calls not supported:', error);
23
- return null;
24
- }
25
- }
@@ -1,4 +0,0 @@
1
- import { type Client } from 'viem';
2
- import { HexString } from '../../types';
3
- import { WalletCallReceipt } from '../../types/wallet';
4
- export declare const waitForBatchTransactionReceipt: (client: Client, batchHash: HexString) => Promise<WalletCallReceipt>;
@@ -1,26 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.waitForBatchTransactionReceipt = void 0;
4
- const actions_1 = require("viem/actions");
5
- const utils_1 = require("viem/utils");
6
- const enums_1 = require("../../enums");
7
- const waitForBatchTransactionReceipt = async (client, batchHash) => {
8
- const { receipts, status, statusCode } = await (0, utils_1.getAction)(client, actions_1.waitForCallsStatus, 'waitForCallsStatus')({
9
- id: batchHash,
10
- timeout: 3600000 * 24,
11
- });
12
- if (status === enums_1.TxnStatus.success) {
13
- if (!(receipts === null || receipts === void 0 ? void 0 : receipts.length) ||
14
- !receipts.every((receipt) => receipt.transactionHash) ||
15
- receipts.some((receipt) => receipt.status === enums_1.TxnStatus.reverted)) {
16
- throw new Error('Transaction was reverted.');
17
- }
18
- const transactionReceipt = receipts[receipts.length - 1];
19
- return transactionReceipt;
20
- }
21
- if (statusCode >= 400 && statusCode < 500) {
22
- throw new Error('Transaction was canceled.');
23
- }
24
- throw new Error('Transaction failed.');
25
- };
26
- exports.waitForBatchTransactionReceipt = waitForBatchTransactionReceipt;
@@ -1,6 +0,0 @@
1
- import { Address } from 'viem';
2
- import { HexString } from '../types';
3
- export declare function encodeApproveCallData({ spender, amount }: {
4
- spender: Address;
5
- amount: bigint;
6
- }): HexString;
@@ -1,13 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.encodeApproveCallData = encodeApproveCallData;
4
- const viem_1 = require("viem");
5
- const erc20_1 = require("../constants/erc20");
6
- const artifacts_1 = require("../artifacts");
7
- function encodeApproveCallData({ spender, amount }) {
8
- return (0, viem_1.encodeFunctionData)({
9
- abi: artifacts_1.erc20Abi,
10
- functionName: erc20_1.erc20Functions.approve,
11
- args: [spender, amount],
12
- });
13
- }
@@ -1,65 +0,0 @@
1
- import { Signer } from 'ethers';
2
- import { WalletClient } from 'viem';
3
- import { StatusCodes, TxnStatus } from '../enums';
4
- import { ApprovalMode, HexString, TokenPermitData } from '../types';
5
- type AllowanceParams = {
6
- chainId: number;
7
- sender: HexString;
8
- tokens: {
9
- address: HexString;
10
- amount: string;
11
- permit?: TokenPermitData;
12
- }[];
13
- spender: HexString;
14
- rpcUrls?: string[];
15
- mode?: ApprovalMode;
16
- multicallAddress?: HexString;
17
- };
18
- export declare const approveToken: ({ chainId, signer, rpcUrls, mode, tokens, approvalTxnCallback, spender, }: {
19
- chainId: number;
20
- signer: WalletClient | Signer;
21
- mode: ApprovalMode;
22
- tokens: {
23
- address: HexString;
24
- amount: string;
25
- }[];
26
- rpcUrls?: string[];
27
- approvalTxnCallback?: ({ txnDetails, address, }: {
28
- txnDetails: {
29
- txnHash: string;
30
- code: StatusCodes;
31
- status: TxnStatus;
32
- };
33
- address: HexString;
34
- }) => Promise<TxnStatus | null>;
35
- spender: HexString;
36
- }) => Promise<{
37
- status: TxnStatus;
38
- code: StatusCodes;
39
- }>;
40
- export declare const batchGetAllowances: ({ chainId, data, owner, multicallAddress, rpcUrls, }: {
41
- chainId: number;
42
- data: {
43
- token: HexString;
44
- spender: HexString;
45
- }[];
46
- owner: HexString;
47
- multicallAddress?: HexString;
48
- rpcUrls?: string[];
49
- }) => Promise<{
50
- status: TxnStatus;
51
- code: StatusCodes;
52
- data: Record<string, bigint>;
53
- }>;
54
- export declare const getAllowance: ({ chainId, sender, tokens, rpcUrls, multicallAddress, mode, spender }: AllowanceParams) => Promise<{
55
- status: TxnStatus;
56
- code: StatusCodes;
57
- data: {
58
- [key: string]: {
59
- allowance: bigint;
60
- approvalNeeded: boolean;
61
- signatureNeeded: boolean;
62
- };
63
- };
64
- }>;
65
- export {};