@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.
- package/dist/api/index.d.ts +2 -1
- package/dist/index.js +1 -1
- package/dist/index.m.js +1 -1
- package/dist/index.umd.js +1 -1
- package/dist/types/zap/broadcast.d.ts +15 -0
- package/package.json +1 -1
- package/dist/examples/chain-utils.d.ts +0 -1
- package/dist/examples/chain-utils.js +0 -20
- package/dist/examples/permit-utils.d.ts +0 -1
- package/dist/examples/permit-utils.js +0 -90
- package/dist/examples/token-utils.d.ts +0 -1
- package/dist/examples/token-utils.js +0 -41
- package/dist/examples/trade-operations.d.ts +0 -1
- package/dist/examples/trade-operations.js +0 -89
- package/dist/examples/zap-operations.d.ts +0 -1
- package/dist/examples/zap-operations.js +0 -69
- package/dist/src/api/index.d.ts +0 -27
- package/dist/src/api/index.js +0 -146
- package/dist/src/artifacts/ERC20Permit.d.ts +0 -374
- package/dist/src/artifacts/ERC20Permit.js +0 -469
- package/dist/src/artifacts/Permit2.d.ts +0 -700
- package/dist/src/artifacts/Permit2.js +0 -904
- package/dist/src/artifacts/Permit2Proxy.d.ts +0 -416
- package/dist/src/artifacts/Permit2Proxy.js +0 -206
- package/dist/src/artifacts/default/DZapCoreAbi.d.ts +0 -2
- package/dist/src/artifacts/default/DZapCoreAbi.js +0 -3079
- package/dist/src/artifacts/default/DZapCoreV2Abi.d.ts +0 -2
- package/dist/src/artifacts/default/DZapCoreV2Abi.js +0 -3719
- package/dist/src/artifacts/default/DZapDcaAbi.d.ts +0 -2
- package/dist/src/artifacts/default/DZapDcaAbi.js +0 -1829
- package/dist/src/artifacts/default/Permit2Abi.d.ts +0 -700
- package/dist/src/artifacts/default/Permit2Abi.js +0 -904
- package/dist/src/artifacts/default/erc20Abi.d.ts +0 -165
- package/dist/src/artifacts/default/erc20Abi.js +0 -220
- package/dist/src/artifacts/default/index.d.ts +0 -6
- package/dist/src/artifacts/default/index.js +0 -13
- package/dist/src/artifacts/index.d.ts +0 -2
- package/dist/src/artifacts/index.js +0 -9
- package/dist/src/artifacts/staging/DZapCoreSwapAbi.d.ts +0 -2
- package/dist/src/artifacts/staging/DZapCoreSwapAbi.js +0 -3079
- package/dist/src/artifacts/staging/index.d.ts +0 -2
- package/dist/src/artifacts/staging/index.js +0 -5
- package/dist/src/axios/baseClient.d.ts +0 -2
- package/dist/src/axios/baseClient.js +0 -7
- package/dist/src/axios/index.d.ts +0 -8
- package/dist/src/axios/index.js +0 -34
- package/dist/src/chains/definitions/arthera.d.ts +0 -35
- package/dist/src/chains/definitions/arthera.js +0 -28
- package/dist/src/chains/definitions/fiveIre.d.ts +0 -35
- package/dist/src/chains/definitions/fiveIre.js +0 -28
- package/dist/src/chains/definitions/hyperEvm.d.ts +0 -35
- package/dist/src/chains/definitions/hyperEvm.js +0 -26
- package/dist/src/chains/definitions/hyperliquid.d.ts +0 -35
- package/dist/src/chains/definitions/hyperliquid.js +0 -26
- package/dist/src/chains/definitions/stable.d.ts +0 -36
- package/dist/src/chains/definitions/stable.js +0 -31
- package/dist/src/chains/index.d.ts +0 -179
- package/dist/src/chains/index.js +0 -24
- package/dist/src/config/index.d.ts +0 -36
- package/dist/src/config/index.js +0 -59
- package/dist/src/constants/address.d.ts +0 -13
- package/dist/src/constants/address.js +0 -29
- package/dist/src/constants/approval.d.ts +0 -7
- package/dist/src/constants/approval.js +0 -17
- package/dist/src/constants/axios.d.ts +0 -2
- package/dist/src/constants/axios.js +0 -5
- package/dist/src/constants/chains.d.ts +0 -31
- package/dist/src/constants/chains.js +0 -34
- package/dist/src/constants/contract.d.ts +0 -6
- package/dist/src/constants/contract.js +0 -18
- package/dist/src/constants/erc20.d.ts +0 -25
- package/dist/src/constants/erc20.js +0 -28
- package/dist/src/constants/httpMethods.d.ts +0 -2
- package/dist/src/constants/httpMethods.js +0 -5
- package/dist/src/constants/index.d.ts +0 -48
- package/dist/src/constants/index.js +0 -53
- package/dist/src/constants/permit.d.ts +0 -29
- package/dist/src/constants/permit.js +0 -33
- package/dist/src/constants/permit2.d.ts +0 -2
- package/dist/src/constants/permit2.js +0 -5
- package/dist/src/constants/rpc.d.ts +0 -2
- package/dist/src/constants/rpc.js +0 -5
- package/dist/src/constants/urlConstants.d.ts +0 -15
- package/dist/src/constants/urlConstants.js +0 -18
- package/dist/src/dZapClient/index.d.ts +0 -1015
- package/dist/src/dZapClient/index.js +0 -255
- package/dist/src/enums/index.d.ts +0 -46
- package/dist/src/enums/index.js +0 -57
- package/dist/src/index.d.ts +0 -17
- package/dist/src/index.js +0 -48
- package/dist/src/service/cache/cacheProvider.d.ts +0 -10
- package/dist/src/service/cache/cacheProvider.js +0 -72
- package/dist/src/service/cache/constant.d.ts +0 -2
- package/dist/src/service/cache/constant.js +0 -6
- package/dist/src/service/price/index.d.ts +0 -16
- package/dist/src/service/price/index.js +0 -80
- package/dist/src/service/price/provider/coingecko/config.d.ts +0 -6
- package/dist/src/service/price/provider/coingecko/config.js +0 -9
- package/dist/src/service/price/provider/coingecko/index.d.ts +0 -9
- package/dist/src/service/price/provider/coingecko/index.js +0 -66
- package/dist/src/service/price/provider/defiLlama/config.d.ts +0 -3
- package/dist/src/service/price/provider/defiLlama/config.js +0 -6
- package/dist/src/service/price/provider/defiLlama/index.d.ts +0 -9
- package/dist/src/service/price/provider/defiLlama/index.js +0 -60
- package/dist/src/service/price/provider/defiLlama/types.d.ts +0 -11
- package/dist/src/service/price/provider/defiLlama/types.js +0 -2
- package/dist/src/service/price/provider/dzap/index.d.ts +0 -6
- package/dist/src/service/price/provider/dzap/index.js +0 -22
- package/dist/src/service/price/types/IPriceProvider.d.ts +0 -14
- package/dist/src/service/price/types/IPriceProvider.js +0 -8
- package/dist/src/transactionHandlers/generic.d.ts +0 -24
- package/dist/src/transactionHandlers/generic.js +0 -48
- package/dist/src/transactionHandlers/permit.d.ts +0 -61
- package/dist/src/transactionHandlers/permit.js +0 -177
- package/dist/src/transactionHandlers/trade.d.ts +0 -24
- package/dist/src/transactionHandlers/trade.js +0 -263
- package/dist/src/transactionHandlers/zap.d.ts +0 -37
- package/dist/src/transactionHandlers/zap.js +0 -135
- package/dist/src/types/axiosClient.d.ts +0 -6
- package/dist/src/types/axiosClient.js +0 -2
- package/dist/src/types/btc.d.ts +0 -45
- package/dist/src/types/btc.js +0 -2
- package/dist/src/types/chains.d.ts +0 -3
- package/dist/src/types/chains.js +0 -2
- package/dist/src/types/contract.d.ts +0 -14
- package/dist/src/types/contract.js +0 -2
- package/dist/src/types/eip-2612.d.ts +0 -24
- package/dist/src/types/eip-2612.js +0 -58
- package/dist/src/types/index.d.ts +0 -489
- package/dist/src/types/index.js +0 -8
- package/dist/src/types/permit.d.ts +0 -191
- package/dist/src/types/permit.js +0 -54
- package/dist/src/types/wallet.d.ts +0 -2
- package/dist/src/types/wallet.js +0 -2
- package/dist/src/types/zap/build.d.ts +0 -44
- package/dist/src/types/zap/build.js +0 -2
- package/dist/src/types/zap/index.d.ts +0 -34
- package/dist/src/types/zap/index.js +0 -23
- package/dist/src/types/zap/path.d.ts +0 -33
- package/dist/src/types/zap/path.js +0 -2
- package/dist/src/types/zap/pool.d.ts +0 -39
- package/dist/src/types/zap/pool.js +0 -2
- package/dist/src/types/zap/position.d.ts +0 -27
- package/dist/src/types/zap/position.js +0 -2
- package/dist/src/types/zap/quote.d.ts +0 -7
- package/dist/src/types/zap/quote.js +0 -2
- package/dist/src/types/zap/status.d.ts +0 -28
- package/dist/src/types/zap/status.js +0 -2
- package/dist/src/types/zap/step.d.ts +0 -23
- package/dist/src/types/zap/step.js +0 -2
- package/dist/src/utils/amount.d.ts +0 -82
- package/dist/src/utils/amount.js +0 -71
- package/dist/src/utils/axios.d.ts +0 -13
- package/dist/src/utils/axios.js +0 -42
- package/dist/src/utils/date.d.ts +0 -1
- package/dist/src/utils/date.js +0 -8
- package/dist/src/utils/decoder/swap/abis.d.ts +0 -643
- package/dist/src/utils/decoder/swap/abis.js +0 -831
- package/dist/src/utils/decoder/swap/inputDataDecoder.d.ts +0 -14
- package/dist/src/utils/decoder/swap/inputDataDecoder.js +0 -124
- package/dist/src/utils/eip-2612/eip2612Permit.d.ts +0 -23
- package/dist/src/utils/eip-2612/eip2612Permit.js +0 -121
- package/dist/src/utils/eip-5792/batchApproveTokens.d.ts +0 -21
- package/dist/src/utils/eip-5792/batchApproveTokens.js +0 -49
- package/dist/src/utils/eip-5792/index.d.ts +0 -3
- package/dist/src/utils/eip-5792/index.js +0 -9
- package/dist/src/utils/eip-5792/isBatchTxnSupportedByWallet.d.ts +0 -6
- package/dist/src/utils/eip-5792/isBatchTxnSupportedByWallet.js +0 -22
- package/dist/src/utils/eip-5792/sendBatchCalls.d.ts +0 -10
- package/dist/src/utils/eip-5792/sendBatchCalls.js +0 -25
- package/dist/src/utils/eip-5792/waitForBatchTransactionReceipt.d.ts +0 -4
- package/dist/src/utils/eip-5792/waitForBatchTransactionReceipt.js +0 -26
- package/dist/src/utils/encodeApproveCall.d.ts +0 -6
- package/dist/src/utils/encodeApproveCall.js +0 -13
- package/dist/src/utils/erc20.d.ts +0 -65
- package/dist/src/utils/erc20.js +0 -153
- package/dist/src/utils/errors.d.ts +0 -17
- package/dist/src/utils/errors.js +0 -78
- package/dist/src/utils/index.d.ts +0 -4566
- package/dist/src/utils/index.js +0 -196
- package/dist/src/utils/multicall.d.ts +0 -14
- package/dist/src/utils/multicall.js +0 -25
- package/dist/src/utils/permit2/domain.d.ts +0 -2
- package/dist/src/utils/permit2/domain.js +0 -11
- package/dist/src/utils/permit2/index.d.ts +0 -4
- package/dist/src/utils/permit2/index.js +0 -97
- package/dist/src/utils/permit2/nonce.d.ts +0 -15
- package/dist/src/utils/permit2/nonce.js +0 -61
- package/dist/src/utils/permit2/permitData.d.ts +0 -23
- package/dist/src/utils/permit2/permitData.js +0 -85
- package/dist/src/utils/permit2/values.d.ts +0 -54
- package/dist/src/utils/permit2/values.js +0 -88
- package/dist/src/utils/permit2/witnessData.d.ts +0 -4
- package/dist/src/utils/permit2/witnessData.js +0 -48
- package/dist/src/utils/signIntent/custom.d.ts +0 -11
- package/dist/src/utils/signIntent/custom.js +0 -31
- package/dist/src/utils/signIntent/gasless.d.ts +0 -12
- package/dist/src/utils/signIntent/gasless.js +0 -101
- package/dist/src/utils/signTypedData.d.ts +0 -11
- package/dist/src/utils/signTypedData.js +0 -21
- package/dist/src/utils/tokens.d.ts +0 -8
- package/dist/src/utils/tokens.js +0 -73
- package/dist/src/utils/updateQuotes.d.ts +0 -3
- package/dist/src/utils/updateQuotes.js +0 -69
- package/dist/src/zap/constants/index.d.ts +0 -2
- package/dist/src/zap/constants/index.js +0 -18
- package/dist/src/zap/constants/path.d.ts +0 -8
- package/dist/src/zap/constants/path.js +0 -11
- package/dist/src/zap/constants/step.d.ts +0 -3
- package/dist/src/zap/constants/step.js +0 -6
- package/dist/src/zap/constants/urls.d.ts +0 -13
- package/dist/src/zap/constants/urls.js +0 -16
- package/dist/test/build.test.d.ts +0 -1
- package/dist/test/build.test.js +0 -65
- package/dist/test/permit/permit2Nonce.test.d.ts +0 -2
- package/dist/test/permit/permit2Nonce.test.js +0 -96
- package/dist/test/quotes.test.d.ts +0 -1
- package/dist/test/quotes.test.js +0 -59
- package/dist/test/status.test.d.ts +0 -1
- package/dist/test/status.test.js +0 -37
- 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,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,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,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;
|