@debridge-finance/borderless-validation-sdk 0.0.1 → 0.0.2
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/README.md +164 -0
- package/dist/cjs/helpers/address.js +53 -18
- package/dist/cjs/helpers/address.js.map +1 -1
- package/dist/cjs/helpers/evm-action.js +3 -3
- package/dist/cjs/helpers/evm-action.js.map +1 -1
- package/dist/cjs/helpers/evm-dln-hook-pack.js +87 -0
- package/dist/cjs/helpers/evm-dln-hook-pack.js.map +1 -0
- package/dist/cjs/helpers/evm-gas-compensation-tx.js +102 -0
- package/dist/cjs/helpers/evm-gas-compensation-tx.js.map +1 -0
- package/dist/cjs/helpers/evm-intent-id.js +27 -13
- package/dist/cjs/helpers/evm-intent-id.js.map +1 -1
- package/dist/cjs/helpers/evm-trade-amounts.js +36 -1
- package/dist/cjs/helpers/evm-trade-amounts.js.map +1 -1
- package/dist/cjs/helpers/gas-compensation.js +36 -0
- package/dist/cjs/helpers/gas-compensation.js.map +1 -0
- package/dist/cjs/helpers/hex.js +24 -0
- package/dist/cjs/helpers/hex.js.map +1 -0
- package/dist/cjs/helpers/placeholder.js +174 -0
- package/dist/cjs/helpers/placeholder.js.map +1 -0
- package/dist/cjs/helpers/sets.js +13 -0
- package/dist/cjs/helpers/sets.js.map +1 -0
- package/dist/cjs/types/enums.js +32 -2
- package/dist/cjs/types/enums.js.map +1 -1
- package/dist/cjs/types/request.js +36 -3
- package/dist/cjs/types/request.js.map +1 -1
- package/dist/cjs/types/response.js +125 -5
- package/dist/cjs/types/response.js.map +1 -1
- package/dist/cjs/types/validation.js +81 -10
- package/dist/cjs/types/validation.js.map +1 -1
- package/dist/cjs/validations/compensation-hook.js +203 -0
- package/dist/cjs/validations/compensation-hook.js.map +1 -0
- package/dist/cjs/validations/evm-caveats.js +4 -14
- package/dist/cjs/validations/evm-caveats.js.map +1 -1
- package/dist/cjs/validations/evm-op-budget.js +13 -10
- package/dist/cjs/validations/evm-op-budget.js.map +1 -1
- package/dist/cjs/validations/evm-op-hook.js +410 -3
- package/dist/cjs/validations/evm-op-hook.js.map +1 -1
- package/dist/cjs/validations/evm-op-wrap.js +10 -7
- package/dist/cjs/validations/evm-op-wrap.js.map +1 -1
- package/dist/cjs/validations/evm-required-actions.js +7 -9
- package/dist/cjs/validations/evm-required-actions.js.map +1 -1
- package/dist/cjs/validations/evm-sign712-metamask.js +17 -94
- package/dist/cjs/validations/evm-sign712-metamask.js.map +1 -1
- package/dist/cjs/validations/evm-sign712-shared.js +116 -0
- package/dist/cjs/validations/evm-sign712-shared.js.map +1 -0
- package/dist/cjs/validations/evm-sign7702.js +34 -22
- package/dist/cjs/validations/evm-sign7702.js.map +1 -1
- package/dist/cjs/validations/hooks-common.js +252 -37
- package/dist/cjs/validations/hooks-common.js.map +1 -1
- package/dist/cjs/validations/intent-destinations.js +197 -0
- package/dist/cjs/validations/intent-destinations.js.map +1 -0
- package/dist/cjs/validations/intent-tokens.js +347 -0
- package/dist/cjs/validations/intent-tokens.js.map +1 -0
- package/dist/cjs/validations/intent.js +288 -0
- package/dist/cjs/validations/intent.js.map +1 -0
- package/dist/cjs/validations/required-actions.js +7 -7
- package/dist/cjs/validations/required-actions.js.map +1 -1
- package/dist/cjs/validations/solana-hook.js +33 -22
- package/dist/cjs/validations/solana-hook.js.map +1 -1
- package/dist/cjs/validations/solana-op-budget.js +56 -18
- package/dist/cjs/validations/solana-op-budget.js.map +1 -1
- package/dist/cjs/validations/solana-op-wrap.js +46 -13
- package/dist/cjs/validations/solana-op-wrap.js.map +1 -1
- package/dist/cjs/validations/solana-required-actions.js +3 -3
- package/dist/cjs/validations/solana-required-actions.js.map +1 -1
- package/dist/cjs/validations/solana-transaction.js +5 -5
- package/dist/cjs/validations/solana-transaction.js.map +1 -1
- package/dist/cjs/validations/trade-grouping.js +139 -1
- package/dist/cjs/validations/trade-grouping.js.map +1 -1
- package/dist/cjs/validations/trades.js +168 -40
- package/dist/cjs/validations/trades.js.map +1 -1
- package/dist/cjs/validator.js +11 -16
- package/dist/cjs/validator.js.map +1 -1
- package/dist/cjs/whitelists/environment-config.js +47 -28
- package/dist/cjs/whitelists/environment-config.js.map +1 -1
- package/dist/cjs/whitelists/evm/caveat-enforcers.js +21 -5
- package/dist/cjs/whitelists/evm/caveat-enforcers.js.map +1 -1
- package/dist/cjs/whitelists/evm/delegation-manager.js +7 -2
- package/dist/cjs/whitelists/evm/delegation-manager.js.map +1 -1
- package/dist/cjs/whitelists/evm/eip7702-delegation.js +7 -2
- package/dist/cjs/whitelists/evm/eip7702-delegation.js.map +1 -1
- package/dist/cjs/whitelists/evm/index.js +14 -1
- package/dist/cjs/whitelists/evm/index.js.map +1 -1
- package/dist/cjs/whitelists/evm/metamask-delegation-chains.js +16 -0
- package/dist/cjs/whitelists/evm/metamask-delegation-chains.js.map +1 -0
- package/dist/cjs/whitelists/evm/permit2.js +16 -12
- package/dist/cjs/whitelists/evm/permit2.js.map +1 -1
- package/dist/cjs/whitelists/evm/weth.js +16 -5
- package/dist/cjs/whitelists/evm/weth.js.map +1 -1
- package/dist/cjs/whitelists/solana/intent-signature.js +0 -1
- package/dist/cjs/whitelists/solana/intent-signature.js.map +1 -1
- package/dist/cjs/whitelists/subscription-to-chain-id.js +10 -0
- package/dist/cjs/whitelists/subscription-to-chain-id.js.map +1 -1
- package/dist/cjs/whitelists/types.js +13 -3
- package/dist/cjs/whitelists/types.js.map +1 -1
- package/dist/esm/helpers/address.js +48 -17
- package/dist/esm/helpers/address.js.map +1 -1
- package/dist/esm/helpers/evm-action.js +3 -3
- package/dist/esm/helpers/evm-action.js.map +1 -1
- package/dist/esm/helpers/evm-dln-hook-pack.js +82 -0
- package/dist/esm/helpers/evm-dln-hook-pack.js.map +1 -0
- package/dist/esm/helpers/evm-gas-compensation-tx.js +99 -0
- package/dist/esm/helpers/evm-gas-compensation-tx.js.map +1 -0
- package/dist/esm/helpers/evm-intent-id.js +27 -13
- package/dist/esm/helpers/evm-intent-id.js.map +1 -1
- package/dist/esm/helpers/evm-trade-amounts.js +36 -1
- package/dist/esm/helpers/evm-trade-amounts.js.map +1 -1
- package/dist/esm/helpers/gas-compensation.js +33 -0
- package/dist/esm/helpers/gas-compensation.js.map +1 -0
- package/dist/esm/helpers/hex.js +20 -0
- package/dist/esm/helpers/hex.js.map +1 -0
- package/dist/esm/helpers/placeholder.js +168 -0
- package/dist/esm/helpers/placeholder.js.map +1 -0
- package/dist/esm/helpers/sets.js +10 -0
- package/dist/esm/helpers/sets.js.map +1 -0
- package/dist/esm/types/enums.js +31 -1
- package/dist/esm/types/enums.js.map +1 -1
- package/dist/esm/types/request.js +37 -4
- package/dist/esm/types/request.js.map +1 -1
- package/dist/esm/types/response.js +124 -4
- package/dist/esm/types/response.js.map +1 -1
- package/dist/esm/types/validation.js +81 -10
- package/dist/esm/types/validation.js.map +1 -1
- package/dist/esm/validations/compensation-hook.js +200 -0
- package/dist/esm/validations/compensation-hook.js.map +1 -0
- package/dist/esm/validations/evm-caveats.js +4 -14
- package/dist/esm/validations/evm-caveats.js.map +1 -1
- package/dist/esm/validations/evm-op-budget.js +13 -10
- package/dist/esm/validations/evm-op-budget.js.map +1 -1
- package/dist/esm/validations/evm-op-hook.js +409 -2
- package/dist/esm/validations/evm-op-hook.js.map +1 -1
- package/dist/esm/validations/evm-op-wrap.js +10 -7
- package/dist/esm/validations/evm-op-wrap.js.map +1 -1
- package/dist/esm/validations/evm-required-actions.js +7 -9
- package/dist/esm/validations/evm-required-actions.js.map +1 -1
- package/dist/esm/validations/evm-sign712-metamask.js +17 -94
- package/dist/esm/validations/evm-sign712-metamask.js.map +1 -1
- package/dist/esm/validations/evm-sign712-shared.js +110 -0
- package/dist/esm/validations/evm-sign712-shared.js.map +1 -0
- package/dist/esm/validations/evm-sign7702.js +33 -22
- package/dist/esm/validations/evm-sign7702.js.map +1 -1
- package/dist/esm/validations/hooks-common.js +251 -38
- package/dist/esm/validations/hooks-common.js.map +1 -1
- package/dist/esm/validations/intent-destinations.js +194 -0
- package/dist/esm/validations/intent-destinations.js.map +1 -0
- package/dist/esm/validations/intent-tokens.js +344 -0
- package/dist/esm/validations/intent-tokens.js.map +1 -0
- package/dist/esm/validations/intent.js +285 -0
- package/dist/esm/validations/intent.js.map +1 -0
- package/dist/esm/validations/required-actions.js +7 -7
- package/dist/esm/validations/required-actions.js.map +1 -1
- package/dist/esm/validations/solana-hook.js +35 -24
- package/dist/esm/validations/solana-hook.js.map +1 -1
- package/dist/esm/validations/solana-op-budget.js +56 -18
- package/dist/esm/validations/solana-op-budget.js.map +1 -1
- package/dist/esm/validations/solana-op-wrap.js +47 -14
- package/dist/esm/validations/solana-op-wrap.js.map +1 -1
- package/dist/esm/validations/solana-required-actions.js +3 -3
- package/dist/esm/validations/solana-required-actions.js.map +1 -1
- package/dist/esm/validations/solana-transaction.js +7 -7
- package/dist/esm/validations/solana-transaction.js.map +1 -1
- package/dist/esm/validations/trade-grouping.js +139 -1
- package/dist/esm/validations/trade-grouping.js.map +1 -1
- package/dist/esm/validations/trades.js +169 -41
- package/dist/esm/validations/trades.js.map +1 -1
- package/dist/esm/validator.js +11 -16
- package/dist/esm/validator.js.map +1 -1
- package/dist/esm/whitelists/environment-config.js +47 -28
- package/dist/esm/whitelists/environment-config.js.map +1 -1
- package/dist/esm/whitelists/evm/caveat-enforcers.js +20 -4
- package/dist/esm/whitelists/evm/caveat-enforcers.js.map +1 -1
- package/dist/esm/whitelists/evm/delegation-manager.js +6 -1
- package/dist/esm/whitelists/evm/delegation-manager.js.map +1 -1
- package/dist/esm/whitelists/evm/eip7702-delegation.js +6 -1
- package/dist/esm/whitelists/evm/eip7702-delegation.js.map +1 -1
- package/dist/esm/whitelists/evm/index.js +4 -4
- package/dist/esm/whitelists/evm/index.js.map +1 -1
- package/dist/esm/whitelists/evm/metamask-delegation-chains.js +13 -0
- package/dist/esm/whitelists/evm/metamask-delegation-chains.js.map +1 -0
- package/dist/esm/whitelists/evm/permit2.js +9 -5
- package/dist/esm/whitelists/evm/permit2.js.map +1 -1
- package/dist/esm/whitelists/evm/weth.js +16 -5
- package/dist/esm/whitelists/evm/weth.js.map +1 -1
- package/dist/esm/whitelists/solana/intent-signature.js +0 -1
- package/dist/esm/whitelists/solana/intent-signature.js.map +1 -1
- package/dist/esm/whitelists/subscription-to-chain-id.js +9 -0
- package/dist/esm/whitelists/subscription-to-chain-id.js.map +1 -1
- package/dist/esm/whitelists/types.js +14 -5
- package/dist/esm/whitelists/types.js.map +1 -1
- package/dist/types/helpers/address.d.ts +7 -7
- package/dist/types/helpers/address.d.ts.map +1 -1
- package/dist/types/helpers/evm-dln-hook-pack.d.ts +19 -0
- package/dist/types/helpers/evm-dln-hook-pack.d.ts.map +1 -0
- package/dist/types/helpers/evm-gas-compensation-tx.d.ts +13 -0
- package/dist/types/helpers/evm-gas-compensation-tx.d.ts.map +1 -0
- package/dist/types/helpers/evm-intent-id.d.ts.map +1 -1
- package/dist/types/helpers/evm-trade-amounts.d.ts +2 -2
- package/dist/types/helpers/evm-trade-amounts.d.ts.map +1 -1
- package/dist/types/helpers/gas-compensation.d.ts +10 -0
- package/dist/types/helpers/gas-compensation.d.ts.map +1 -0
- package/dist/types/helpers/hex.d.ts +3 -0
- package/dist/types/helpers/hex.d.ts.map +1 -0
- package/dist/types/helpers/placeholder.d.ts +41 -0
- package/dist/types/helpers/placeholder.d.ts.map +1 -0
- package/dist/types/helpers/sets.d.ts +2 -0
- package/dist/types/helpers/sets.d.ts.map +1 -0
- package/dist/types/types/enums.d.ts +24 -1
- package/dist/types/types/enums.d.ts.map +1 -1
- package/dist/types/types/request.d.ts +21 -11
- package/dist/types/types/request.d.ts.map +1 -1
- package/dist/types/types/response.d.ts +1015 -17
- package/dist/types/types/response.d.ts.map +1 -1
- package/dist/types/types/validation.d.ts +73 -11
- package/dist/types/types/validation.d.ts.map +1 -1
- package/dist/types/validations/compensation-hook.d.ts +3 -0
- package/dist/types/validations/compensation-hook.d.ts.map +1 -0
- package/dist/types/validations/evm-caveats.d.ts.map +1 -1
- package/dist/types/validations/evm-op-budget.d.ts +2 -2
- package/dist/types/validations/evm-op-budget.d.ts.map +1 -1
- package/dist/types/validations/evm-op-hook.d.ts +4 -2
- package/dist/types/validations/evm-op-hook.d.ts.map +1 -1
- package/dist/types/validations/evm-op-wrap.d.ts +2 -2
- package/dist/types/validations/evm-op-wrap.d.ts.map +1 -1
- package/dist/types/validations/evm-required-actions.d.ts +2 -2
- package/dist/types/validations/evm-required-actions.d.ts.map +1 -1
- package/dist/types/validations/evm-sign712-metamask.d.ts.map +1 -1
- package/dist/types/validations/evm-sign712-shared.d.ts +7 -0
- package/dist/types/validations/evm-sign712-shared.d.ts.map +1 -0
- package/dist/types/validations/evm-sign7702.d.ts +2 -1
- package/dist/types/validations/evm-sign7702.d.ts.map +1 -1
- package/dist/types/validations/hooks-common.d.ts +1 -0
- package/dist/types/validations/hooks-common.d.ts.map +1 -1
- package/dist/types/validations/intent-destinations.d.ts +4 -0
- package/dist/types/validations/intent-destinations.d.ts.map +1 -0
- package/dist/types/validations/intent-tokens.d.ts +4 -0
- package/dist/types/validations/intent-tokens.d.ts.map +1 -0
- package/dist/types/validations/intent.d.ts +5 -0
- package/dist/types/validations/intent.d.ts.map +1 -0
- package/dist/types/validations/required-actions.d.ts +2 -1
- package/dist/types/validations/required-actions.d.ts.map +1 -1
- package/dist/types/validations/solana-hook.d.ts +4 -2
- package/dist/types/validations/solana-hook.d.ts.map +1 -1
- package/dist/types/validations/solana-op-budget.d.ts +2 -2
- package/dist/types/validations/solana-op-budget.d.ts.map +1 -1
- package/dist/types/validations/solana-op-wrap.d.ts +2 -2
- package/dist/types/validations/solana-op-wrap.d.ts.map +1 -1
- package/dist/types/validations/solana-required-actions.d.ts +2 -2
- package/dist/types/validations/solana-required-actions.d.ts.map +1 -1
- package/dist/types/validations/solana-transaction.d.ts +3 -3
- package/dist/types/validations/solana-transaction.d.ts.map +1 -1
- package/dist/types/validations/trade-grouping.d.ts +6 -2
- package/dist/types/validations/trade-grouping.d.ts.map +1 -1
- package/dist/types/validations/trades.d.ts.map +1 -1
- package/dist/types/validator.d.ts.map +1 -1
- package/dist/types/whitelists/environment-config.d.ts.map +1 -1
- package/dist/types/whitelists/evm/caveat-enforcers.d.ts +8 -0
- package/dist/types/whitelists/evm/caveat-enforcers.d.ts.map +1 -1
- package/dist/types/whitelists/evm/delegation-manager.d.ts +2 -0
- package/dist/types/whitelists/evm/delegation-manager.d.ts.map +1 -1
- package/dist/types/whitelists/evm/eip7702-delegation.d.ts +2 -0
- package/dist/types/whitelists/evm/eip7702-delegation.d.ts.map +1 -1
- package/dist/types/whitelists/evm/index.d.ts +4 -4
- package/dist/types/whitelists/evm/index.d.ts.map +1 -1
- package/dist/types/whitelists/evm/metamask-delegation-chains.d.ts +3 -0
- package/dist/types/whitelists/evm/metamask-delegation-chains.d.ts.map +1 -0
- package/dist/types/whitelists/evm/permit2.d.ts +1 -0
- package/dist/types/whitelists/evm/permit2.d.ts.map +1 -1
- package/dist/types/whitelists/evm/weth.d.ts.map +1 -1
- package/dist/types/whitelists/solana/intent-signature.d.ts.map +1 -1
- package/dist/types/whitelists/subscription-to-chain-id.d.ts +1 -0
- package/dist/types/whitelists/subscription-to-chain-id.d.ts.map +1 -1
- package/dist/types/whitelists/types.d.ts +1 -1
- package/dist/types/whitelists/types.d.ts.map +1 -1
- package/package.json +4 -3
- package/dist/cjs/helpers/constants.js +0 -6
- package/dist/cjs/helpers/constants.js.map +0 -1
- package/dist/cjs/validations/evm-op-gas-compensation.js +0 -152
- package/dist/cjs/validations/evm-op-gas-compensation.js.map +0 -1
- package/dist/esm/helpers/constants.js +0 -3
- package/dist/esm/helpers/constants.js.map +0 -1
- package/dist/esm/validations/evm-op-gas-compensation.js +0 -149
- package/dist/esm/validations/evm-op-gas-compensation.js.map +0 -1
- package/dist/types/helpers/constants.d.ts +0 -2
- package/dist/types/helpers/constants.d.ts.map +0 -1
- package/dist/types/validations/evm-op-gas-compensation.d.ts +0 -3
- package/dist/types/validations/evm-op-gas-compensation.d.ts.map +0 -1
|
@@ -7,7 +7,13 @@ const evm_token_1 = require("./evm-token");
|
|
|
7
7
|
// Sums srcChainTokenInAmount for trades matching a given token address.
|
|
8
8
|
// Returns skip=true if any matching trade has max/auto amount.
|
|
9
9
|
// Returns violations if any matching trade has an invalid (non-numeric) amount.
|
|
10
|
-
|
|
10
|
+
//
|
|
11
|
+
// When `responseTrades` is provided, trades with `prependOperatingExpenses=true`
|
|
12
|
+
// also contribute `response.trades[i].srcChainTokenIn.approximateOperatingExpense`
|
|
13
|
+
// to the sum. This reflects how the API computes `intent.inputToken[].constraintBudget`
|
|
14
|
+
// (= mutated amount with prepended expense), which is the value used for Wrap.value
|
|
15
|
+
// and Budget approve amount on the same input token.
|
|
16
|
+
function sumTradeAmounts(trades, tokenAddress, realChainId, responseTrades) {
|
|
11
17
|
let sum = 0n;
|
|
12
18
|
// Resolve native → WETH so Budget for WETH matches trades with native input (and vice versa)
|
|
13
19
|
const resolvedToken = (0, evm_token_1.resolveWrappedTokenAddress)(tokenAddress, realChainId) ?? tokenAddress;
|
|
@@ -36,7 +42,36 @@ function sumTradeAmounts(trades, tokenAddress, realChainId) {
|
|
|
36
42
|
}],
|
|
37
43
|
};
|
|
38
44
|
}
|
|
45
|
+
if (responseTrades && (trade.prependOperatingExpenses ?? false)) {
|
|
46
|
+
const expenseResult = parsePrependedExpense(responseTrades, i);
|
|
47
|
+
if (expenseResult.violations)
|
|
48
|
+
return expenseResult;
|
|
49
|
+
sum += expenseResult.value;
|
|
50
|
+
}
|
|
39
51
|
}
|
|
40
52
|
return { sum };
|
|
41
53
|
}
|
|
54
|
+
// Reads response.trades[i].srcChainTokenIn.approximateOperatingExpense as bigint.
|
|
55
|
+
// If responseTrades has no matching index, treat as 0 — the trade-count mismatch
|
|
56
|
+
// is reported by `validateTrades` and we should not add a duplicate violation here.
|
|
57
|
+
function parsePrependedExpense(responseTrades, tradeIndex) {
|
|
58
|
+
const responseTrade = responseTrades[tradeIndex];
|
|
59
|
+
if (!responseTrade)
|
|
60
|
+
return { value: 0n };
|
|
61
|
+
const raw = responseTrade.srcChainTokenIn.approximateOperatingExpense;
|
|
62
|
+
try {
|
|
63
|
+
return { value: BigInt(raw) };
|
|
64
|
+
}
|
|
65
|
+
catch (e) {
|
|
66
|
+
return {
|
|
67
|
+
violations: [{
|
|
68
|
+
code: types_1.ViolationCode.TradeOperatingExpenseInvalid,
|
|
69
|
+
message: "approximateOperatingExpense is not a valid number",
|
|
70
|
+
path: `response.trades[${tradeIndex}].srcChainTokenIn.approximateOperatingExpense`,
|
|
71
|
+
actual: raw,
|
|
72
|
+
details: e,
|
|
73
|
+
}],
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
}
|
|
42
77
|
//# sourceMappingURL=evm-trade-amounts.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evm-trade-amounts.js","sourceRoot":"","sources":["../../../src/helpers/evm-trade-amounts.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"evm-trade-amounts.js","sourceRoot":"","sources":["../../../src/helpers/evm-trade-amounts.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.extractGasCompensationGroups = extractGasCompensationGroups;
|
|
4
|
+
const address_1 = require("./address");
|
|
5
|
+
const subscription_to_chain_id_1 = require("../whitelists/subscription-to-chain-id");
|
|
6
|
+
// Groups `gasCompensationInfo` entries from request.preHooks by
|
|
7
|
+
// (chainId, tokenAddress, sender). One compensation hook per
|
|
8
|
+
// unique group is expected to be appended to response.preHooks.
|
|
9
|
+
// Groups with an unknown subscription chainId are skipped — they'll surface as
|
|
10
|
+
// `UnknownSubscriptionId` via the trade-grouping pass.
|
|
11
|
+
function extractGasCompensationGroups(request) {
|
|
12
|
+
const seen = new Set();
|
|
13
|
+
const groups = [];
|
|
14
|
+
for (const hook of request.preHooks ?? []) {
|
|
15
|
+
const info = hook.gasCompensationInfo;
|
|
16
|
+
if (!info)
|
|
17
|
+
continue;
|
|
18
|
+
const realChainId = (0, subscription_to_chain_id_1.resolveChainId)(info.chainId);
|
|
19
|
+
if (realChainId === undefined)
|
|
20
|
+
continue;
|
|
21
|
+
const key = `${realChainId}`
|
|
22
|
+
+ `:${(0, address_1.normalizeAddress)(realChainId, info.tokenAddress)}`
|
|
23
|
+
+ `:${(0, address_1.normalizeAddress)(realChainId, info.sender)}`;
|
|
24
|
+
if (seen.has(key))
|
|
25
|
+
continue;
|
|
26
|
+
seen.add(key);
|
|
27
|
+
groups.push({
|
|
28
|
+
chainId: info.chainId,
|
|
29
|
+
realChainId,
|
|
30
|
+
tokenAddress: info.tokenAddress,
|
|
31
|
+
sender: info.sender,
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
return groups;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=gas-compensation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gas-compensation.js","sourceRoot":"","sources":["../../../src/helpers/gas-compensation.ts"],"names":[],"mappings":";;AAiBA,oEA8BC;AA7CD,uCAA6C;AAC7C,qFAAwE;AASxE,gEAAgE;AAChE,6DAA6D;AAC7D,gEAAgE;AAChE,+EAA+E;AAC/E,uDAAuD;AACvD,SAAgB,4BAA4B,CACxC,OAA8B;IAE9B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,MAAM,GAA2B,EAAE,CAAC;IAE1C,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;QACxC,MAAM,IAAI,GAAG,IAAI,CAAC,mBAAmB,CAAC;QACtC,IAAI,CAAC,IAAI;YAAE,SAAS;QAEpB,MAAM,WAAW,GAAG,IAAA,yCAAc,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACjD,IAAI,WAAW,KAAK,SAAS;YAAE,SAAS;QAExC,MAAM,GAAG,GAAG,GAAG,WAAW,EAAE;cACtB,IAAI,IAAA,0BAAgB,EAAC,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,EAAE;cACtD,IAAI,IAAA,0BAAgB,EAAC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAEvD,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,SAAS;QAE5B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAEd,MAAM,CAAC,IAAI,CAAC;YACR,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,WAAW;YACX,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,MAAM,EAAE,IAAI,CAAC,MAAM;SACtB,CAAC,CAAC;IACP,CAAC;IAED,OAAO,MAAM,CAAC;AAClB,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isEmptyHex = isEmptyHex;
|
|
4
|
+
exports.hexEquals = hexEquals;
|
|
5
|
+
const viem_1 = require("viem");
|
|
6
|
+
// Treats undefined, "0x" and `zeroHash` (`0x000...0`) as the same empty value.
|
|
7
|
+
function isEmptyHex(value) {
|
|
8
|
+
if (value === undefined)
|
|
9
|
+
return true;
|
|
10
|
+
const normalized = value.toLowerCase();
|
|
11
|
+
return normalized === "0x" || normalized === viem_1.zeroHash;
|
|
12
|
+
}
|
|
13
|
+
// Case-insensitive comparison of two hex strings, with `undefined` / `0x` /
|
|
14
|
+
// `zeroHash` treated as a single equivalence class. Use whenever an API field
|
|
15
|
+
// can be omitted, empty, or zero-padded interchangeably.
|
|
16
|
+
function hexEquals(a, b) {
|
|
17
|
+
if (isEmptyHex(a) && isEmptyHex(b))
|
|
18
|
+
return true;
|
|
19
|
+
// If one is `undefined` and the other is not, they are not equal.
|
|
20
|
+
if (a === undefined || b === undefined)
|
|
21
|
+
return false;
|
|
22
|
+
return a.toLowerCase() === b.toLowerCase();
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=hex.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hex.js","sourceRoot":"","sources":["../../../src/helpers/hex.ts"],"names":[],"mappings":";;AAGA,gCAIC;AAKD,8BAUC;AAtBD,+BAAgC;AAEhC,+EAA+E;AAC/E,SAAgB,UAAU,CAAC,KAAyB;IAChD,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACrC,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IACvC,OAAO,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,eAAQ,CAAC;AAC1D,CAAC;AAED,4EAA4E;AAC5E,8EAA8E;AAC9E,yDAAyD;AACzD,SAAgB,SAAS,CACrB,CAAqB,EACrB,CAAqB;IAErB,IAAI,UAAU,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAEhD,kEAAkE;IAClE,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAErD,OAAO,CAAC,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;AAC/C,CAAC"}
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PlaceholderResolutionErrorReason = exports.HookMode = exports.SOLANA_DEFAULT_PLACEHOLDER_BYTE_COUNT = exports.EVM_DEFAULT_PLACEHOLDER_BYTE_COUNT = void 0;
|
|
4
|
+
exports.encodePlaceholderAmount = encodePlaceholderAmount;
|
|
5
|
+
exports.computeCumulativeTradeAmount = computeCumulativeTradeAmount;
|
|
6
|
+
exports.resolveEagerPlaceholders = resolveEagerPlaceholders;
|
|
7
|
+
const enums_1 = require("../types/enums");
|
|
8
|
+
const address_1 = require("./address");
|
|
9
|
+
const MIN_PLACEHOLDER_BYTE_COUNT = 1;
|
|
10
|
+
const MAX_PLACEHOLDER_BYTE_COUNT = 32;
|
|
11
|
+
exports.EVM_DEFAULT_PLACEHOLDER_BYTE_COUNT = MAX_PLACEHOLDER_BYTE_COUNT;
|
|
12
|
+
exports.SOLANA_DEFAULT_PLACEHOLDER_BYTE_COUNT = 8;
|
|
13
|
+
var HookMode;
|
|
14
|
+
(function (HookMode) {
|
|
15
|
+
HookMode[HookMode["PreHooks"] = 0] = "PreHooks";
|
|
16
|
+
HookMode[HookMode["PostHooks"] = 1] = "PostHooks";
|
|
17
|
+
})(HookMode || (exports.HookMode = HookMode = {}));
|
|
18
|
+
var PlaceholderResolutionErrorReason;
|
|
19
|
+
(function (PlaceholderResolutionErrorReason) {
|
|
20
|
+
PlaceholderResolutionErrorReason[PlaceholderResolutionErrorReason["MissingTokenOrAddress"] = 0] = "MissingTokenOrAddress";
|
|
21
|
+
PlaceholderResolutionErrorReason[PlaceholderResolutionErrorReason["NegativeAmount"] = 1] = "NegativeAmount";
|
|
22
|
+
PlaceholderResolutionErrorReason[PlaceholderResolutionErrorReason["Overflow"] = 2] = "Overflow";
|
|
23
|
+
PlaceholderResolutionErrorReason[PlaceholderResolutionErrorReason["InvalidByteCount"] = 3] = "InvalidByteCount";
|
|
24
|
+
PlaceholderResolutionErrorReason[PlaceholderResolutionErrorReason["InvalidAdditionalAmount"] = 4] = "InvalidAdditionalAmount";
|
|
25
|
+
PlaceholderResolutionErrorReason[PlaceholderResolutionErrorReason["NoMatchingTradeOrAdditional"] = 5] = "NoMatchingTradeOrAdditional";
|
|
26
|
+
})(PlaceholderResolutionErrorReason || (exports.PlaceholderResolutionErrorReason = PlaceholderResolutionErrorReason = {}));
|
|
27
|
+
// Encodes a non-negative integer as a zero-padded hex string (no "0x" prefix),
|
|
28
|
+
// fitting exactly `byteCount` bytes, using the chain engine's endianness.
|
|
29
|
+
// Solana: little-endian. EVM/Tron: big-endian.
|
|
30
|
+
// `byteCount` must be an integer in
|
|
31
|
+
// [MIN_PLACEHOLDER_BYTE_COUNT, MAX_PLACEHOLDER_BYTE_COUNT].
|
|
32
|
+
function encodePlaceholderAmount(amount, byteCount, engine) {
|
|
33
|
+
if (!isValidByteCount(byteCount)) {
|
|
34
|
+
return { ok: false, reason: PlaceholderResolutionErrorReason.InvalidByteCount };
|
|
35
|
+
}
|
|
36
|
+
if (amount < 0n) {
|
|
37
|
+
return { ok: false, reason: PlaceholderResolutionErrorReason.NegativeAmount };
|
|
38
|
+
}
|
|
39
|
+
const maxValue = (1n << BigInt(byteCount * 8)) - 1n;
|
|
40
|
+
if (amount > maxValue) {
|
|
41
|
+
return { ok: false, reason: PlaceholderResolutionErrorReason.Overflow };
|
|
42
|
+
}
|
|
43
|
+
if (engine === enums_1.ChainEngine.Solana) { // Use little-endian for Solana
|
|
44
|
+
const bytes = [];
|
|
45
|
+
let value = amount;
|
|
46
|
+
for (let i = 0; i < byteCount; i++) {
|
|
47
|
+
bytes.push((value & 0xffn).toString(16).padStart(2, "0"));
|
|
48
|
+
value >>= 8n;
|
|
49
|
+
}
|
|
50
|
+
return { ok: true, hex: bytes.join("") };
|
|
51
|
+
}
|
|
52
|
+
// Use big-endian (EVM/Tron): simple hex conversion with left-padding.
|
|
53
|
+
return { ok: true, hex: amount.toString(16).padStart(byteCount * 2, "0") };
|
|
54
|
+
}
|
|
55
|
+
function isValidByteCount(byteCount) {
|
|
56
|
+
return Number.isInteger(byteCount)
|
|
57
|
+
&& byteCount >= MIN_PLACEHOLDER_BYTE_COUNT
|
|
58
|
+
&& byteCount <= MAX_PLACEHOLDER_BYTE_COUNT;
|
|
59
|
+
}
|
|
60
|
+
// Sums the trade amount matching the placeholder's (chainId, tokenAddress, address).
|
|
61
|
+
// preHooks: sums trade.srcChainTokenIn.amount across trades where
|
|
62
|
+
// trade.srcChainTokenIn.{chainId,address} and trade.srcChainAuthorityAddress match.
|
|
63
|
+
// postHooks: sums trade.dstChainTokenOut.amount across trades where
|
|
64
|
+
// trade.dstChainTokenOut.{chainId,address} and trade.dstChainTokenOutRecipient match.
|
|
65
|
+
// In quote mode authority/recipient is undefined — such trades are skipped.
|
|
66
|
+
function computeCumulativeTradeAmount(trades, mode, chainId, tokenAddress, address) {
|
|
67
|
+
let sum = 0n;
|
|
68
|
+
let matchCount = 0;
|
|
69
|
+
for (const trade of trades) {
|
|
70
|
+
const tradeChainId = mode === HookMode.PreHooks
|
|
71
|
+
? trade.srcChainTokenIn.chainId
|
|
72
|
+
: trade.dstChainTokenOut.chainId;
|
|
73
|
+
if (tradeChainId !== chainId)
|
|
74
|
+
continue;
|
|
75
|
+
const tradeAuthority = mode === HookMode.PreHooks
|
|
76
|
+
? trade.srcChainAuthorityAddress
|
|
77
|
+
: trade.dstChainTokenOutRecipient;
|
|
78
|
+
if (tradeAuthority === undefined)
|
|
79
|
+
continue;
|
|
80
|
+
const tradeToken = mode === HookMode.PreHooks
|
|
81
|
+
? trade.srcChainTokenIn.address
|
|
82
|
+
: trade.dstChainTokenOut.address;
|
|
83
|
+
if (!(0, address_1.addressEquals)(chainId, tradeToken, tokenAddress))
|
|
84
|
+
continue;
|
|
85
|
+
if (!(0, address_1.addressEquals)(chainId, tradeAuthority, address))
|
|
86
|
+
continue;
|
|
87
|
+
const amount = mode === HookMode.PreHooks
|
|
88
|
+
? trade.srcChainTokenIn.amount
|
|
89
|
+
: trade.dstChainTokenOut.amount;
|
|
90
|
+
sum += BigInt(amount);
|
|
91
|
+
matchCount++;
|
|
92
|
+
}
|
|
93
|
+
return { cumulative: sum, matchCount };
|
|
94
|
+
}
|
|
95
|
+
// Applies eager-placeholder substitution to a hex string (calldata or value).
|
|
96
|
+
// Markers: `{name}` or `{name.N}` (N = byte count).
|
|
97
|
+
// Deferred placeholders are not touched — their markers remain in the output.
|
|
98
|
+
// If any eager placeholder cannot be resolved, its marker is left intact and the
|
|
99
|
+
// error is collected into `errors`; callers decide how to report it.
|
|
100
|
+
function resolveEagerPlaceholders(data, hookChainId, placeholders, trades, mode) {
|
|
101
|
+
const engine = (0, address_1.getChainEngine)(hookChainId);
|
|
102
|
+
const defaultByteCount = engine === enums_1.ChainEngine.Solana
|
|
103
|
+
? exports.SOLANA_DEFAULT_PLACEHOLDER_BYTE_COUNT
|
|
104
|
+
: exports.EVM_DEFAULT_PLACEHOLDER_BYTE_COUNT;
|
|
105
|
+
let result = data;
|
|
106
|
+
const errors = [];
|
|
107
|
+
for (const placeholder of placeholders) {
|
|
108
|
+
if (placeholder.type === enums_1.PlaceholderType.Deferred)
|
|
109
|
+
continue;
|
|
110
|
+
// Eager placeholder — type is either explicitly 'eager' or undefined (default).
|
|
111
|
+
if (placeholder.tokenAddress === undefined
|
|
112
|
+
|| placeholder.address === undefined) {
|
|
113
|
+
// Zod guards this at the schema level; defensive branch for callers
|
|
114
|
+
// that bypass structural validation.
|
|
115
|
+
errors.push({
|
|
116
|
+
nameVariable: placeholder.nameVariable,
|
|
117
|
+
reason: PlaceholderResolutionErrorReason.MissingTokenOrAddress,
|
|
118
|
+
});
|
|
119
|
+
continue;
|
|
120
|
+
}
|
|
121
|
+
let additional = 0n;
|
|
122
|
+
if (placeholder.additionalAmount !== undefined) {
|
|
123
|
+
try {
|
|
124
|
+
additional = BigInt(placeholder.additionalAmount);
|
|
125
|
+
}
|
|
126
|
+
catch (error) {
|
|
127
|
+
errors.push({
|
|
128
|
+
nameVariable: placeholder.nameVariable,
|
|
129
|
+
reason: PlaceholderResolutionErrorReason.InvalidAdditionalAmount,
|
|
130
|
+
details: error,
|
|
131
|
+
});
|
|
132
|
+
continue;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
const { cumulative, matchCount } = computeCumulativeTradeAmount(trades, mode, hookChainId, placeholder.tokenAddress, placeholder.address);
|
|
136
|
+
const expectedAmount = cumulative + additional;
|
|
137
|
+
const nameEscaped = escapeRegex(placeholder.nameVariable);
|
|
138
|
+
const markerRegex = new RegExp(`\\{${nameEscaped}(?:\\.(\\d+))?\\}`, "g");
|
|
139
|
+
// MEDIUM: when no trade matches and no `additionalAmount` is supplied,
|
|
140
|
+
// the API rejects the request. Here we are mirroring this logic.
|
|
141
|
+
if (matchCount === 0
|
|
142
|
+
&& placeholder.additionalAmount === undefined
|
|
143
|
+
&& markerRegex.test(result)) {
|
|
144
|
+
errors.push({
|
|
145
|
+
nameVariable: placeholder.nameVariable,
|
|
146
|
+
reason: PlaceholderResolutionErrorReason.NoMatchingTradeOrAdditional,
|
|
147
|
+
});
|
|
148
|
+
// Reset RegExp.lastIndex before the `replace` below.
|
|
149
|
+
markerRegex.lastIndex = 0;
|
|
150
|
+
// Skip substitution — leave marker in `result` so calldata comparison
|
|
151
|
+
// surfaces any mutated value as a separate violation.
|
|
152
|
+
continue;
|
|
153
|
+
}
|
|
154
|
+
result = result.replace(markerRegex, (match, byteCountStr) => {
|
|
155
|
+
const byteCount = byteCountStr
|
|
156
|
+
? parseInt(byteCountStr, 10)
|
|
157
|
+
: defaultByteCount;
|
|
158
|
+
const encoded = encodePlaceholderAmount(expectedAmount, byteCount, engine);
|
|
159
|
+
if (!encoded.ok) {
|
|
160
|
+
errors.push({
|
|
161
|
+
nameVariable: placeholder.nameVariable,
|
|
162
|
+
reason: encoded.reason,
|
|
163
|
+
});
|
|
164
|
+
return match;
|
|
165
|
+
}
|
|
166
|
+
return encoded.hex;
|
|
167
|
+
});
|
|
168
|
+
}
|
|
169
|
+
return { resolved: result, errors };
|
|
170
|
+
}
|
|
171
|
+
function escapeRegex(s) {
|
|
172
|
+
return s.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
173
|
+
}
|
|
174
|
+
//# sourceMappingURL=placeholder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"placeholder.js","sourceRoot":"","sources":["../../../src/helpers/placeholder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.setsEqual = setsEqual;
|
|
4
|
+
function setsEqual(a, b) {
|
|
5
|
+
if (a.size !== b.size)
|
|
6
|
+
return false;
|
|
7
|
+
for (const item of a) {
|
|
8
|
+
if (!b.has(item))
|
|
9
|
+
return false;
|
|
10
|
+
}
|
|
11
|
+
return true;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=sets.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sets.js","sourceRoot":"","sources":["../../../src/helpers/sets.ts"],"names":[],"mappings":";;AAAA,8BAQC;AARD,SAAgB,SAAS,CAAI,CAAiB,EAAE,CAAiB;IAC7D,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IAEpC,KAAK,MAAM,IAAI,IAAI,CAAC,EAAE,CAAC;QACnB,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,OAAO,KAAK,CAAC;IACnC,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC"}
|
package/dist/cjs/types/enums.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
// --- API mode ---
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.SubscriptionId = exports.ChainId = exports.CostItemType = exports.SolanaActionOperation = exports.SolanaActionKind = exports.EvmActionOperation = exports.EvmActionKind = exports.SpecialAmount = exports.ApprovalMode = exports.ApproveAmountFlag = exports.TradingAlgorithm = exports.ApiMode = void 0;
|
|
4
|
+
exports.SubscriptionId = exports.ChainId = exports.ChainEngine = exports.CostItemType = exports.SolanaActionOperation = exports.SolanaActionKind = exports.EvmActionOperation = exports.EvmActionKind = exports.DlnHookType = exports.SpecialChainId = exports.SpecialAmount = exports.PlaceholderType = exports.BundleHookType = exports.ApprovalMode = exports.ApproveAmountFlag = exports.TradingAlgorithm = exports.ApiMode = void 0;
|
|
5
5
|
var ApiMode;
|
|
6
6
|
(function (ApiMode) {
|
|
7
7
|
ApiMode["Execution"] = "execution";
|
|
@@ -23,18 +23,40 @@ var ApprovalMode;
|
|
|
23
23
|
ApprovalMode["Approve"] = "approve";
|
|
24
24
|
ApprovalMode["Permit"] = "permit";
|
|
25
25
|
})(ApprovalMode || (exports.ApprovalMode = ApprovalMode = {}));
|
|
26
|
+
var BundleHookType;
|
|
27
|
+
(function (BundleHookType) {
|
|
28
|
+
BundleHookType["Delegated"] = "delegated";
|
|
29
|
+
BundleHookType["Direct"] = "direct";
|
|
30
|
+
})(BundleHookType || (exports.BundleHookType = BundleHookType = {}));
|
|
31
|
+
var PlaceholderType;
|
|
32
|
+
(function (PlaceholderType) {
|
|
33
|
+
PlaceholderType["Eager"] = "eager";
|
|
34
|
+
PlaceholderType["Deferred"] = "deferred";
|
|
35
|
+
})(PlaceholderType || (exports.PlaceholderType = PlaceholderType = {}));
|
|
26
36
|
var SpecialAmount;
|
|
27
37
|
(function (SpecialAmount) {
|
|
28
38
|
SpecialAmount["Max"] = "max";
|
|
29
39
|
SpecialAmount["Auto"] = "auto";
|
|
30
40
|
})(SpecialAmount || (exports.SpecialAmount = SpecialAmount = {}));
|
|
41
|
+
var SpecialChainId;
|
|
42
|
+
(function (SpecialChainId) {
|
|
43
|
+
SpecialChainId["Any"] = "any";
|
|
44
|
+
})(SpecialChainId || (exports.SpecialChainId = SpecialChainId = {}));
|
|
45
|
+
var DlnHookType;
|
|
46
|
+
(function (DlnHookType) {
|
|
47
|
+
DlnHookType["SolanaSerializedInstructions"] = "solana_serialized_instructions";
|
|
48
|
+
DlnHookType["EvmTransactionCall"] = "evm_transaction_call";
|
|
49
|
+
DlnHookType["EvmHookV1"] = "evm_hook_data_v1";
|
|
50
|
+
})(DlnHookType || (exports.DlnHookType = DlnHookType = {}));
|
|
31
51
|
// --- EVM Action enums ---
|
|
32
52
|
var EvmActionKind;
|
|
33
53
|
(function (EvmActionKind) {
|
|
34
54
|
EvmActionKind["Transaction"] = "Transaction";
|
|
35
55
|
EvmActionKind["Sign7702Authorization"] = "Sign7702Authorization";
|
|
36
56
|
EvmActionKind["Sign712"] = "Sign712";
|
|
37
|
-
EvmActionKind["
|
|
57
|
+
EvmActionKind["Sign712MetaMaskCaveats"] = "Sign712MetaMask";
|
|
58
|
+
EvmActionKind["Sign712MetaMaskCaveatsWithPlaceholders"] = "Sign712MetaMaskWithPlaceholders";
|
|
59
|
+
EvmActionKind["ProvidePlaceholders"] = "ProvidePlaceholders";
|
|
38
60
|
EvmActionKind["Permit"] = "Permit";
|
|
39
61
|
EvmActionKind["Permit2"] = "Permit2";
|
|
40
62
|
})(EvmActionKind || (exports.EvmActionKind = EvmActionKind = {}));
|
|
@@ -74,6 +96,14 @@ var CostItemType;
|
|
|
74
96
|
CostItemType["PARTNER_COST"] = "PARTNER_COST";
|
|
75
97
|
CostItemType["NETWORK_COST"] = "NETWORK_COST";
|
|
76
98
|
})(CostItemType || (exports.CostItemType = CostItemType = {}));
|
|
99
|
+
// --- Chain engines ---
|
|
100
|
+
// Categorizes chains by their VM/address-format family.
|
|
101
|
+
var ChainEngine;
|
|
102
|
+
(function (ChainEngine) {
|
|
103
|
+
ChainEngine[ChainEngine["EVM"] = 0] = "EVM";
|
|
104
|
+
ChainEngine[ChainEngine["Tron"] = 1] = "Tron";
|
|
105
|
+
ChainEngine[ChainEngine["Solana"] = 2] = "Solana";
|
|
106
|
+
})(ChainEngine || (exports.ChainEngine = ChainEngine = {}));
|
|
77
107
|
// --- Chain IDs (real, after resolving from subscriptionId) ---
|
|
78
108
|
var ChainId;
|
|
79
109
|
(function (ChainId) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enums.js","sourceRoot":"","sources":["../../../src/types/enums.ts"],"names":[],"mappings":";AAAA,mBAAmB;;;AAEnB,IAAY,OAGX;AAHD,WAAY,OAAO;IACf,kCAAuB,CAAA;IACvB,0BAAe,CAAA;AACnB,CAAC,EAHW,OAAO,uBAAP,OAAO,QAGlB;AAED,wBAAwB;AAExB,IAAY,gBAEX;AAFD,WAAY,gBAAgB;IACxB,qCAAiB,CAAA;AACrB,CAAC,EAFW,gBAAgB,gCAAhB,gBAAgB,QAE3B;AAED,IAAY,iBAIX;AAJD,WAAY,iBAAiB;IACzB,4CAAuB,CAAA;IACvB,8DAAyC,CAAA;IACzC,kCAAa,CAAA;AACjB,CAAC,EAJW,iBAAiB,iCAAjB,iBAAiB,QAI5B;AAED,IAAY,YAGX;AAHD,WAAY,YAAY;IACpB,mCAAmB,CAAA;IACnB,iCAAiB,CAAA;AACrB,CAAC,EAHW,YAAY,4BAAZ,YAAY,QAGvB;AAED,IAAY,aAGX;AAHD,WAAY,aAAa;IACrB,4BAAW,CAAA;IACX,8BAAa,CAAA;AACjB,CAAC,EAHW,aAAa,6BAAb,aAAa,QAGxB;AAED,2BAA2B;AAE3B,IAAY,
|
|
1
|
+
{"version":3,"file":"enums.js","sourceRoot":"","sources":["../../../src/types/enums.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,11 +8,32 @@ exports.RequestGasCompensationInfoSchema = zod_1.z.object({
|
|
|
8
8
|
chainId: zod_1.z.number(),
|
|
9
9
|
sender: zod_1.z.string(),
|
|
10
10
|
});
|
|
11
|
+
// tokenAddress and address are required only for eager placeholders.
|
|
12
|
+
// Deferred placeholders are filled at submit time, so trade-group fields are not needed.
|
|
11
13
|
exports.RequestPlaceholderSchema = zod_1.z.object({
|
|
12
14
|
nameVariable: zod_1.z.string(),
|
|
13
|
-
tokenAddress: zod_1.z.string(),
|
|
14
|
-
address: zod_1.z.string(),
|
|
15
|
+
tokenAddress: zod_1.z.string().optional(),
|
|
16
|
+
address: zod_1.z.string().optional(),
|
|
15
17
|
additionalAmount: zod_1.z.string().optional(),
|
|
18
|
+
type: zod_1.z.enum(enums_1.PlaceholderType).optional(),
|
|
19
|
+
}).superRefine((placeholder, ctx) => {
|
|
20
|
+
const isEager = placeholder.type === undefined || placeholder.type === enums_1.PlaceholderType.Eager;
|
|
21
|
+
if (!isEager)
|
|
22
|
+
return;
|
|
23
|
+
if (placeholder.tokenAddress === undefined) {
|
|
24
|
+
ctx.addIssue({
|
|
25
|
+
code: "custom",
|
|
26
|
+
message: "eager placeholder requires tokenAddress",
|
|
27
|
+
path: ["tokenAddress"],
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
if (placeholder.address === undefined) {
|
|
31
|
+
ctx.addIssue({
|
|
32
|
+
code: "custom",
|
|
33
|
+
message: "eager placeholder requires address",
|
|
34
|
+
path: ["address"],
|
|
35
|
+
});
|
|
36
|
+
}
|
|
16
37
|
});
|
|
17
38
|
exports.RequestHookV2Schema = zod_1.z.object({
|
|
18
39
|
chainId: zod_1.z.number(),
|
|
@@ -23,11 +44,20 @@ exports.RequestHookV2Schema = zod_1.z.object({
|
|
|
23
44
|
isAtomic: zod_1.z.boolean(),
|
|
24
45
|
placeHolders: zod_1.z.array(exports.RequestPlaceholderSchema),
|
|
25
46
|
gasCompensationInfo: exports.RequestGasCompensationInfoSchema.optional(),
|
|
47
|
+
type: zod_1.z.enum(enums_1.BundleHookType).optional(),
|
|
48
|
+
gasLimit: zod_1.z.string().optional(),
|
|
26
49
|
});
|
|
27
50
|
exports.RequestCostTokenSchema = zod_1.z.object({
|
|
28
51
|
chainId: zod_1.z.number(),
|
|
29
52
|
tokenAddress: zod_1.z.string(),
|
|
30
53
|
});
|
|
54
|
+
// `chainId` fields below use z.number() rather than a chain enum on purpose:
|
|
55
|
+
// the public API contract narrows accepted chains to a smaller subset than
|
|
56
|
+
// the SDK knows about, but the SDK uses a wider chain set elsewhere (e.g.
|
|
57
|
+
// downstream chain-engine resolution). Validating chain support is delegated
|
|
58
|
+
// to those downstream checks rather than encoded here. Same applies to `chainId`
|
|
59
|
+
// in RequestCostTokenSchema, RequestHookV2Schema, and
|
|
60
|
+
// RequestGasCompensationInfoSchema.
|
|
31
61
|
exports.RequestTradeSchema = zod_1.z.object({
|
|
32
62
|
srcChainId: zod_1.z.number(),
|
|
33
63
|
srcChainTokenIn: zod_1.z.string(),
|
|
@@ -43,8 +73,11 @@ exports.RequestTradeSchema = zod_1.z.object({
|
|
|
43
73
|
dlnHook: zod_1.z.string().optional(),
|
|
44
74
|
prependOperatingExpenses: zod_1.z.boolean().optional(),
|
|
45
75
|
ptp: zod_1.z.boolean().optional(),
|
|
46
|
-
|
|
76
|
+
dlnMetadata: zod_1.z.string().optional(),
|
|
47
77
|
srcAllowedCancelBeneficiary: zod_1.z.string().optional(),
|
|
78
|
+
// Field is intentionally absent from the public API schema but is accepted
|
|
79
|
+
// by the server and round-trips into the response intent. Security-critical
|
|
80
|
+
// for execution-mode validation.
|
|
48
81
|
srcAllowedSender: zod_1.z.string().optional(),
|
|
49
82
|
});
|
|
50
83
|
exports.BundleCreationRequestSchema = zod_1.z.object({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request.js","sourceRoot":"","sources":["../../../src/types/request.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AACxB,
|
|
1
|
+
{"version":3,"file":"request.js","sourceRoot":"","sources":["../../../src/types/request.ts"],"names":[],"mappings":"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"}
|