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