@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,66 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CoingeckoPriceProvider = void 0;
4
- const httpMethods_1 = require("../../../../constants/httpMethods");
5
- const axios_1 = require("../../../../utils/axios");
6
- const tokens_1 = require("../../../../utils/tokens");
7
- const IPriceProvider_1 = require("../../types/IPriceProvider");
8
- const config_1 = require("./config");
9
- class CoingeckoPriceProvider {
10
- constructor() {
11
- this.id = IPriceProvider_1.priceProviders.coingecko;
12
- this.requiresChainConfig = true;
13
- this.fetchNativePrice = async (chainId, chainConfig) => {
14
- var _a;
15
- if (!chainConfig || !chainConfig[chainId].isEnabled)
16
- return 0;
17
- const { coingecko } = chainConfig[chainId];
18
- if (!coingecko)
19
- return 0;
20
- const response = await (0, axios_1.invoke)({
21
- endpoint: config_1.coingeckoConfig.urls.nativeTokenPrice(coingecko === null || coingecko === void 0 ? void 0 : coingecko.nativeTokenKey),
22
- method: httpMethods_1.GET,
23
- });
24
- return ((_a = response[coingecko === null || coingecko === void 0 ? void 0 : coingecko.nativeTokenKey]) === null || _a === void 0 ? void 0 : _a.usd) || null;
25
- };
26
- this.fetchERC20Prices = async (chainId, addresses, chainConfig) => {
27
- if (!addresses.length || !chainConfig || !chainConfig[chainId].isEnabled)
28
- return {};
29
- const { coingecko } = chainConfig[chainId];
30
- if (!coingecko)
31
- return {};
32
- const requests = addresses.map((address) => (0, axios_1.invoke)({ endpoint: config_1.coingeckoConfig.urls.ecr20TokenPrice(address, coingecko.chainKey), method: httpMethods_1.GET }));
33
- const responses = await Promise.allSettled(requests);
34
- return responses.reduce((acc, result, index) => {
35
- var _a;
36
- const address = addresses[index];
37
- if (result.status === 'fulfilled') {
38
- const tokenPrice = (_a = result.value[address.toLowerCase()]) === null || _a === void 0 ? void 0 : _a.usd;
39
- acc[address] = tokenPrice === undefined ? null : tokenPrice.toString();
40
- }
41
- else {
42
- acc[address] = null;
43
- console.error(`Error fetching data for address ${address}:`, result.reason);
44
- }
45
- return acc;
46
- }, {});
47
- };
48
- this.fetchPrices = async (chainId, tokenAddresses, chainConfig) => {
49
- try {
50
- const addressesWithoutNativeToken = tokenAddresses.filter((address) => !(0, tokens_1.isNativeCurrency)(address, chainConfig));
51
- const [erc20Prices, nativePrice] = await Promise.all([
52
- this.fetchERC20Prices(chainId, addressesWithoutNativeToken, chainConfig),
53
- addressesWithoutNativeToken.length !== tokenAddresses.length ? this.fetchNativePrice(chainId, chainConfig) : undefined,
54
- ]);
55
- if (chainConfig[chainId].isEnabled && nativePrice) {
56
- erc20Prices[chainConfig[chainId].nativeToken.contract] = nativePrice.toString();
57
- }
58
- return erc20Prices;
59
- }
60
- catch (e) {
61
- return {};
62
- }
63
- };
64
- }
65
- }
66
- exports.CoingeckoPriceProvider = CoingeckoPriceProvider;
@@ -1,3 +0,0 @@
1
- export declare const defiLlamaConfig: {
2
- url: (tokens: string[]) => string;
3
- };
@@ -1,6 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.defiLlamaConfig = void 0;
4
- exports.defiLlamaConfig = {
5
- url: (tokens) => `https://coins.llama.fi/prices/current/${tokens.join(',')}`,
6
- };
@@ -1,9 +0,0 @@
1
- import { ChainData } from '../../../../types';
2
- import { IPriceProvider } from '../../types/IPriceProvider';
3
- export declare class DefiLlamaPriceProvider implements IPriceProvider {
4
- id: "defiLlama";
5
- requiresChainConfig: boolean;
6
- private preProcess;
7
- private postProcess;
8
- fetchPrices: (chainId: number, tokenAddresses: string[], chainConfig: ChainData) => Promise<Record<string, string | null>>;
9
- }
@@ -1,60 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DefiLlamaPriceProvider = void 0;
4
- const httpMethods_1 = require("../../../../constants/httpMethods");
5
- const axios_1 = require("../../../../utils/axios");
6
- const tokens_1 = require("../../../../utils/tokens");
7
- const IPriceProvider_1 = require("../../types/IPriceProvider");
8
- const config_1 = require("./config");
9
- class DefiLlamaPriceProvider {
10
- constructor() {
11
- this.id = IPriceProvider_1.priceProviders.defiLlama;
12
- this.requiresChainConfig = true;
13
- this.postProcess = (chainId, tokenAddresses, chainConfig, respose) => {
14
- const { name } = chainConfig[chainId];
15
- if (!name)
16
- return {};
17
- return tokenAddresses.reduce((acc, address) => {
18
- const token = respose.coins[`${name}:${address}`];
19
- if (!token) {
20
- acc[address] = null;
21
- return acc;
22
- }
23
- acc[address] = token.price.toString();
24
- return acc;
25
- }, {});
26
- };
27
- this.fetchPrices = async (chainId, tokenAddresses, chainConfig) => {
28
- try {
29
- const requestTokens = this.preProcess(chainId, tokenAddresses, chainConfig);
30
- if (!requestTokens.length)
31
- return {};
32
- const response = await (0, axios_1.invoke)({
33
- endpoint: config_1.defiLlamaConfig.url(requestTokens),
34
- method: httpMethods_1.GET,
35
- });
36
- return this.postProcess(chainId, tokenAddresses, chainConfig, response);
37
- }
38
- catch (e) {
39
- return {};
40
- }
41
- };
42
- }
43
- preProcess(chainId, tokenAddresses, chainConfig) {
44
- const chainInfo = chainConfig[chainId];
45
- if (!chainInfo.isEnabled || !(chainInfo === null || chainInfo === void 0 ? void 0 : chainInfo.name)) {
46
- return [];
47
- }
48
- const { name, defiLlama } = chainInfo;
49
- return tokenAddresses.map((address) => {
50
- if (defiLlama === null || defiLlama === void 0 ? void 0 : defiLlama.chainKey) {
51
- if ((0, tokens_1.isNativeCurrency)(address, chainConfig)) {
52
- return `${defiLlama.chainKey}:${defiLlama.nativeTokenKey}`;
53
- }
54
- return `${defiLlama.chainKey}:${address}`;
55
- }
56
- return `${name}:${address}`;
57
- });
58
- }
59
- }
60
- exports.DefiLlamaPriceProvider = DefiLlamaPriceProvider;
@@ -1,11 +0,0 @@
1
- export type DefiLlamaCoin = {
2
- price: number;
3
- symbol: string;
4
- timestamp: number;
5
- confidence: number;
6
- };
7
- export type DefiLlamaResponse = {
8
- coins: {
9
- [key: string]: DefiLlamaCoin;
10
- };
11
- };
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,6 +0,0 @@
1
- import { IPriceProvider } from '../../types/IPriceProvider';
2
- export declare class DZapPriceProvider implements IPriceProvider {
3
- id: "dZap";
4
- requiresChainConfig: boolean;
5
- fetchPrices: (chainId: number, tokenAddresses: string[]) => Promise<Record<string, string | null>>;
6
- }
@@ -1,22 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DZapPriceProvider = void 0;
4
- const api_1 = require("../../../../api");
5
- const IPriceProvider_1 = require("../../types/IPriceProvider");
6
- class DZapPriceProvider {
7
- constructor() {
8
- this.id = IPriceProvider_1.priceProviders.dZap;
9
- this.requiresChainConfig = false;
10
- this.fetchPrices = async (chainId, tokenAddresses) => {
11
- try {
12
- const tokenPrices = await (0, api_1.fetchTokenPrice)(tokenAddresses, chainId);
13
- return tokenPrices;
14
- }
15
- catch (e) {
16
- console.error('Failed to fetch token price', e);
17
- return {};
18
- }
19
- };
20
- }
21
- }
22
- exports.DZapPriceProvider = DZapPriceProvider;
@@ -1,14 +0,0 @@
1
- import { ChainData } from '../../../types';
2
- export declare const priceProviders: {
3
- readonly dZap: "dZap";
4
- readonly defiLlama: "defiLlama";
5
- readonly coingecko: "coingecko";
6
- };
7
- export type PriceProvider = (typeof priceProviders)[keyof typeof priceProviders];
8
- export type IPriceProvider = {
9
- id: PriceProvider;
10
- requiresChainConfig: boolean;
11
- fetchPrices(chainId: number, tokenAddresses: string[], chainConfig: ChainData | null): Promise<Record<string, string | null>>;
12
- allowedSources?: PriceProvider[];
13
- notAllowedSources?: PriceProvider[];
14
- };
@@ -1,8 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.priceProviders = void 0;
4
- exports.priceProviders = {
5
- dZap: 'dZap',
6
- defiLlama: 'defiLlama',
7
- coingecko: 'coingecko',
8
- };
@@ -1,24 +0,0 @@
1
- import { Signer } from 'ethers';
2
- import { WalletClient } from 'viem';
3
- import { StatusCodes, TxnStatus } from '../enums';
4
- import { HexString } from '../types';
5
- declare class GenericTxnHandler {
6
- static sendTransaction: ({ chainId, signer, from, to, data, value, }: {
7
- chainId: number;
8
- signer: Signer | WalletClient;
9
- from: HexString;
10
- to: HexString;
11
- data: HexString;
12
- value: string;
13
- }) => Promise<{
14
- status: TxnStatus;
15
- error: any;
16
- errorMsg: any;
17
- code: StatusCodes;
18
- } | {
19
- status: TxnStatus;
20
- code: StatusCodes;
21
- txnHash: HexString;
22
- }>;
23
- }
24
- export default GenericTxnHandler;
@@ -1,48 +0,0 @@
1
- "use strict";
2
- var _a;
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- const enums_1 = require("../enums");
5
- const utils_1 = require("../utils");
6
- const chains_1 = require("../chains");
7
- const errors_1 = require("../utils/errors");
8
- class GenericTxnHandler {
9
- }
10
- _a = GenericTxnHandler;
11
- GenericTxnHandler.sendTransaction = async ({ chainId, signer, from, to, data, value, }) => {
12
- try {
13
- if ((0, utils_1.isTypeSigner)(signer)) {
14
- console.log('Using ethers signer.');
15
- const txnRes = await signer.sendTransaction({
16
- from,
17
- to,
18
- data,
19
- value,
20
- });
21
- return {
22
- status: enums_1.TxnStatus.success,
23
- code: enums_1.StatusCodes.Success,
24
- txnHash: txnRes.hash,
25
- };
26
- }
27
- else {
28
- console.log('Using viem walletClient.');
29
- const txnHash = await signer.sendTransaction({
30
- chain: chains_1.viemChainsById[chainId],
31
- account: from,
32
- to: to,
33
- data: data,
34
- value: BigInt(value),
35
- });
36
- return {
37
- status: enums_1.TxnStatus.success,
38
- code: enums_1.StatusCodes.Success,
39
- txnHash,
40
- };
41
- }
42
- }
43
- catch (error) {
44
- console.log({ error });
45
- return (0, errors_1.handleViemTransactionError)({ error });
46
- }
47
- };
48
- exports.default = GenericTxnHandler;
@@ -1,61 +0,0 @@
1
- import { PermitTypes } from '../constants/permit';
2
- import { ContractVersion, StatusCodes, TxnStatus } from '../enums';
3
- import { AvailableDZapServices, GaslessSignatureParams, GasSignatureParams, HexString, PermitMode, SignPermitResponse } from '../types';
4
- import { BatchPermitResponse, GaslessBridgeParams, GaslessSwapParams, PermitParams, PermitResponse, TokenWithPermitData } from '../types/permit';
5
- type BasePermitDataParams = {
6
- oneToMany: boolean;
7
- token: TokenWithPermitData;
8
- totalSrcAmount: bigint;
9
- permitType: PermitMode;
10
- firstTokenNonce?: bigint;
11
- } & Omit<PermitParams, 'permitType'>;
12
- type PermitDataParams = BasePermitDataParams & ({
13
- gasless: false;
14
- } | GaslessSwapParams | GaslessBridgeParams);
15
- type BaseBatchPermitParams = {
16
- tokens: TokenWithPermitData[];
17
- permitType: typeof PermitTypes.PermitBatchWitnessTransferFrom;
18
- } & Omit<PermitParams, 'permitType'>;
19
- type BatchPermitParams = BaseBatchPermitParams & ({
20
- gasless: false;
21
- } | GaslessSwapParams | GaslessBridgeParams);
22
- declare class PermitTxnHandler {
23
- static generateBatchPermitDataForTokens: (params: BatchPermitParams) => Promise<BatchPermitResponse>;
24
- static generatePermitDataForToken: (params: PermitDataParams) => Promise<PermitResponse>;
25
- static signGaslessUserIntent: (signPermitReq: GaslessSignatureParams) => Promise<{
26
- status: TxnStatus;
27
- code: StatusCodes;
28
- data: {
29
- type: "EIP2612Permit";
30
- signature: HexString;
31
- nonce: bigint;
32
- deadline: bigint;
33
- batchPermitData?: undefined;
34
- } | undefined;
35
- } | {
36
- status: TxnStatus;
37
- code: StatusCodes;
38
- data: {
39
- type: "PermitSingle" | "PermitWitnessTransferFrom" | "PermitBatchWitnessTransferFrom";
40
- batchPermitData: `0x${string}`;
41
- } | undefined;
42
- }>;
43
- static v1PermitSupport: ({ contractVersion, service }: {
44
- contractVersion: ContractVersion;
45
- service: AvailableDZapServices;
46
- }) => boolean;
47
- static shouldUseBatchPermit: ({ permitType, isBatchPermitAllowed, tokens, oneToMany, contractVersion, service, }: {
48
- permitType: PermitMode;
49
- isBatchPermitAllowed?: boolean;
50
- tokens: {
51
- address: HexString;
52
- permitData?: HexString | undefined;
53
- amount: string;
54
- }[];
55
- oneToMany: boolean;
56
- contractVersion: ContractVersion;
57
- service: AvailableDZapServices;
58
- }) => boolean;
59
- static signPermit: (signPermitReq: GasSignatureParams) => Promise<SignPermitResponse>;
60
- }
61
- export default PermitTxnHandler;
@@ -1,177 +0,0 @@
1
- "use strict";
2
- var _a;
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- const constants_1 = require("../constants");
5
- const permit_1 = require("../constants/permit");
6
- const enums_1 = require("../enums");
7
- const utils_1 = require("../utils");
8
- const gasless_1 = require("../utils/signIntent/gasless");
9
- const eip2612Permit_1 = require("../utils/eip-2612/eip2612Permit");
10
- const permit2_1 = require("../utils/permit2");
11
- class PermitTxnHandler {
12
- }
13
- _a = PermitTxnHandler;
14
- PermitTxnHandler.generateBatchPermitDataForTokens = async (params) => {
15
- const resp = await (0, permit2_1.getPermit2Signature)(params);
16
- return Object.assign(Object.assign({}, resp), { permitType: permit_1.PermitTypes.PermitBatchWitnessTransferFrom });
17
- };
18
- PermitTxnHandler.generatePermitDataForToken = async (params) => {
19
- const { token, oneToMany, totalSrcAmount, chainId, rpcUrls, permitType, account } = params;
20
- const isFirstToken = token.index === 0;
21
- if ((0, utils_1.isDZapNativeToken)(token.address)) {
22
- return {
23
- status: enums_1.TxnStatus.success,
24
- code: enums_1.StatusCodes.Success,
25
- permitData: constants_1.DEFAULT_PERMIT_DATA,
26
- nonce: BigInt(0),
27
- permitType: permit_1.PermitTypes.EIP2612Permit,
28
- };
29
- }
30
- const amount = oneToMany && isFirstToken ? totalSrcAmount : BigInt(token.amount);
31
- const eip2612PermitData = await (0, eip2612Permit_1.checkEIP2612PermitSupport)({
32
- address: token.address,
33
- chainId,
34
- rpcUrls,
35
- owner: account,
36
- permit: token.permit,
37
- });
38
- if (permitType === permit_1.PermitTypes.EIP2612Permit || (permitType === permit_1.PermitTypes.AutoPermit && eip2612PermitData.supportsPermit)) {
39
- if (!eip2612PermitData.supportsPermit || !eip2612PermitData.data) {
40
- throw new Error('Token does not support EIP-2612 permits');
41
- }
42
- if (oneToMany && !isFirstToken) {
43
- return {
44
- status: enums_1.TxnStatus.success,
45
- code: enums_1.StatusCodes.Success,
46
- permitData: constants_1.DEFAULT_PERMIT_DATA,
47
- nonce: BigInt(0),
48
- permitType: permit_1.PermitTypes.EIP2612Permit,
49
- };
50
- }
51
- const { permitData, status, code } = await (0, eip2612Permit_1.getEIP2612PermitSignature)(Object.assign(Object.assign({}, params), { token: {
52
- address: token.address,
53
- amount: amount.toString(),
54
- index: 0,
55
- permit: token.permit,
56
- }, gasless: false, version: eip2612PermitData.data.version, name: eip2612PermitData.data.name, nonce: eip2612PermitData.data.nonce }));
57
- return {
58
- status,
59
- code,
60
- permitData: permitData,
61
- nonce: BigInt(0),
62
- permitType: permit_1.PermitTypes.EIP2612Permit,
63
- };
64
- }
65
- else {
66
- const normalizedPermitType = permitType === permit_1.PermitTypes.AutoPermit ? permit_1.PermitTypes.PermitWitnessTransferFrom : permitType;
67
- if (oneToMany && !isFirstToken) {
68
- return {
69
- status: enums_1.TxnStatus.success,
70
- code: enums_1.StatusCodes.Success,
71
- permitData: constants_1.DEFAULT_PERMIT2_DATA,
72
- nonce: BigInt(0),
73
- permitType: normalizedPermitType,
74
- };
75
- }
76
- else {
77
- const resp = await (0, permit2_1.getPermit2Signature)(Object.assign(Object.assign({}, params), { tokens: [token], permitType: normalizedPermitType }));
78
- return Object.assign(Object.assign({}, resp), { permitType: normalizedPermitType });
79
- }
80
- }
81
- };
82
- PermitTxnHandler.signGaslessUserIntent = async (signPermitReq) => {
83
- const { tokens, sender, permitType } = signPermitReq;
84
- const type = permitType === permit_1.PermitTypes.AutoPermit ? permit_1.PermitTypes.PermitBatchWitnessTransferFrom : permitType;
85
- if (type === permit_1.PermitTypes.EIP2612Permit) {
86
- const resp = await (0, gasless_1.signGaslessDzapUserIntent)(Object.assign(Object.assign({}, signPermitReq), { account: sender }));
87
- return {
88
- status: resp.status,
89
- code: resp.code,
90
- data: (resp === null || resp === void 0 ? void 0 : resp.data) && Object.assign(Object.assign({}, resp.data), { type }),
91
- };
92
- }
93
- const resp = await (0, permit2_1.getPermit2Signature)(Object.assign(Object.assign({}, signPermitReq), { tokens: tokens.map((token, index) => (Object.assign(Object.assign({}, token), { index }))), account: sender, permitType: type }));
94
- return {
95
- status: resp.status,
96
- code: resp.code,
97
- data: resp.permitData && {
98
- type: type,
99
- batchPermitData: resp.permitData,
100
- },
101
- };
102
- };
103
- PermitTxnHandler.v1PermitSupport = ({ contractVersion, service }) => {
104
- return contractVersion === enums_1.ContractVersion.v1 && service !== constants_1.Services.zap;
105
- };
106
- PermitTxnHandler.shouldUseBatchPermit = ({ permitType, isBatchPermitAllowed = true, tokens, oneToMany, contractVersion, service, }) => {
107
- const isBatchPermitRequested = permitType === permit_1.PermitTypes.PermitBatchWitnessTransferFrom;
108
- const shouldAutoBatch = permitType === permit_1.PermitTypes.AutoPermit && (tokens === null || tokens === void 0 ? void 0 : tokens.length) > 1 && !oneToMany;
109
- const isContractSupport = !_a.v1PermitSupport({ contractVersion, service });
110
- return isBatchPermitAllowed && (isBatchPermitRequested || shouldAutoBatch) && isContractSupport;
111
- };
112
- PermitTxnHandler.signPermit = async (signPermitReq) => {
113
- var _b;
114
- const { tokens } = signPermitReq;
115
- if (tokens.length === 0) {
116
- return { status: enums_1.TxnStatus.success, code: enums_1.StatusCodes.Success, tokens, permitType: signPermitReq.permitType };
117
- }
118
- const oneToMany = tokens.length > 1 && (0, utils_1.isOneToMany)(tokens[0].address, tokens[1].address);
119
- const shouldUseBatchPermit = _a.shouldUseBatchPermit({
120
- permitType: signPermitReq.permitType,
121
- isBatchPermitAllowed: signPermitReq.isBatchPermitAllowed,
122
- tokens,
123
- oneToMany,
124
- contractVersion: signPermitReq.contractVersion,
125
- service: signPermitReq.service,
126
- });
127
- if (shouldUseBatchPermit) {
128
- const resp = await _a.generateBatchPermitDataForTokens(Object.assign(Object.assign({}, signPermitReq), { tokens: tokens.map((token, index) => (Object.assign(Object.assign({}, token), { index }))), account: signPermitReq.sender, permitType: permit_1.PermitTypes.PermitBatchWitnessTransferFrom }));
129
- if (resp.status !== enums_1.TxnStatus.success) {
130
- return { status: resp.status, code: resp.code, permitType: permit_1.PermitTypes.PermitBatchWitnessTransferFrom };
131
- }
132
- if (signPermitReq.signatureCallback) {
133
- await signPermitReq.signatureCallback({
134
- batchPermitData: resp.permitData,
135
- tokens,
136
- permitType: resp.permitType,
137
- });
138
- }
139
- return {
140
- status: enums_1.TxnStatus.success,
141
- code: enums_1.StatusCodes.Success,
142
- batchPermitData: resp.permitData,
143
- permitType: resp.permitType,
144
- };
145
- }
146
- else {
147
- const totalSrcAmount = (0, utils_1.calcTotalSrcTokenAmount)(tokens);
148
- let firstTokenNonce = null;
149
- let permitType = _a.v1PermitSupport({ contractVersion: signPermitReq.contractVersion, service: signPermitReq.service })
150
- ? permit_1.PermitTypes.PermitSingle
151
- : signPermitReq.permitType;
152
- for (let dataIdx = 0; dataIdx < tokens.length; dataIdx++) {
153
- const isFirstToken = dataIdx === 0;
154
- const res = await _a.generatePermitDataForToken(Object.assign(Object.assign({}, signPermitReq), { token: Object.assign(Object.assign({}, tokens[dataIdx]), { index: dataIdx }), firstTokenNonce: firstTokenNonce !== null && firstTokenNonce !== void 0 ? firstTokenNonce : undefined, oneToMany,
155
- totalSrcAmount, account: signPermitReq.sender, permitType }));
156
- permitType = res.permitType;
157
- if (res.status !== enums_1.TxnStatus.success) {
158
- return { status: res.status, code: res.code, permitType: res.permitType };
159
- }
160
- tokens[dataIdx].permitData = res.permitData;
161
- if (isFirstToken && !(0, utils_1.isDZapNativeToken)(tokens[dataIdx].address)) {
162
- firstTokenNonce = (_b = res.nonce) !== null && _b !== void 0 ? _b : null;
163
- }
164
- if (signPermitReq.signatureCallback && !(0, utils_1.isDZapNativeToken)(tokens[dataIdx].address)) {
165
- const amount = oneToMany && isFirstToken ? totalSrcAmount : BigInt(tokens[dataIdx].amount);
166
- await signPermitReq.signatureCallback({
167
- permitData: res.permitData,
168
- srcToken: tokens[dataIdx].address,
169
- amount: amount.toString(),
170
- permitType: res.permitType,
171
- });
172
- }
173
- }
174
- return { status: enums_1.TxnStatus.success, tokens, code: enums_1.StatusCodes.Success, permitType };
175
- }
176
- };
177
- exports.default = PermitTxnHandler;
@@ -1,24 +0,0 @@
1
- import { Signer } from 'ethers';
2
- import { WalletClient } from 'viem';
3
- import { DZapTransactionResponse, GaslessTradeBuildTxnResponse, HexString, TradeBuildTxnRequest, TradeBuildTxnResponse } from '../types';
4
- declare class TradeTxnHandler {
5
- private static sendTransaction;
6
- private static sendTxnWithBatch;
7
- private static sendHyperLiquidTransaction;
8
- static buildAndSendTransaction: ({ request, signer, txnData, multicallAddress, batchTransaction, rpcUrls, }: {
9
- request: TradeBuildTxnRequest;
10
- signer: Signer | WalletClient;
11
- txnData?: TradeBuildTxnResponse;
12
- batchTransaction: boolean;
13
- multicallAddress?: HexString;
14
- rpcUrls?: string[];
15
- }) => Promise<DZapTransactionResponse>;
16
- static buildGaslessTxAndSignPermit: ({ request, signer, rpcUrls, spender, txnData, }: {
17
- request: TradeBuildTxnRequest;
18
- signer: Signer | WalletClient;
19
- rpcUrls: string[];
20
- spender: HexString;
21
- txnData?: GaslessTradeBuildTxnResponse;
22
- }) => Promise<DZapTransactionResponse>;
23
- }
24
- export default TradeTxnHandler;