@debridge-finance/borderless-validation-sdk 0.0.6 → 0.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/cjs/helpers/eip712-types.js +29 -0
- package/dist/cjs/helpers/eip712-types.js.map +1 -0
- package/dist/cjs/helpers/evm-action.js +18 -2
- package/dist/cjs/helpers/evm-action.js.map +1 -1
- package/dist/cjs/helpers/evm-dln-hook-pack.js +8 -6
- package/dist/cjs/helpers/evm-dln-hook-pack.js.map +1 -1
- package/dist/cjs/helpers/evm-gas-compensation-tx.js +26 -7
- package/dist/cjs/helpers/evm-gas-compensation-tx.js.map +1 -1
- package/dist/cjs/helpers/evm-intent-id.js +6 -5
- package/dist/cjs/helpers/evm-intent-id.js.map +1 -1
- package/dist/cjs/helpers/evm-token.js +1 -1
- package/dist/cjs/helpers/evm-token.js.map +1 -1
- package/dist/cjs/helpers/evm-trade-amounts.js +2 -1
- package/dist/cjs/helpers/evm-trade-amounts.js.map +1 -1
- package/dist/cjs/helpers/expected-delegate.js +10 -11
- package/dist/cjs/helpers/expected-delegate.js.map +1 -1
- package/dist/cjs/helpers/gas-compensation.js +3 -0
- package/dist/cjs/helpers/gas-compensation.js.map +1 -1
- package/dist/cjs/helpers/hex.js +35 -0
- package/dist/cjs/helpers/hex.js.map +1 -1
- package/dist/cjs/helpers/integer.js +10 -0
- package/dist/cjs/helpers/integer.js.map +1 -0
- package/dist/cjs/helpers/placeholder.js +99 -4
- package/dist/cjs/helpers/placeholder.js.map +1 -1
- package/dist/cjs/helpers/solana-intent-id.js +6 -5
- package/dist/cjs/helpers/solana-intent-id.js.map +1 -1
- package/dist/cjs/helpers/synthetic-native-wrap.js +56 -0
- package/dist/cjs/helpers/synthetic-native-wrap.js.map +1 -0
- package/dist/cjs/types/enums.js +2 -0
- package/dist/cjs/types/enums.js.map +1 -1
- package/dist/cjs/types/request.js +25 -5
- package/dist/cjs/types/request.js.map +1 -1
- package/dist/cjs/types/response.js +10 -3
- package/dist/cjs/types/response.js.map +1 -1
- package/dist/cjs/types/validation.js +28 -1
- package/dist/cjs/types/validation.js.map +1 -1
- package/dist/cjs/validations/accumulative-token.js +5 -4
- package/dist/cjs/validations/accumulative-token.js.map +1 -1
- package/dist/cjs/validations/compensation-hook.js +14 -4
- package/dist/cjs/validations/compensation-hook.js.map +1 -1
- package/dist/cjs/validations/dln-metadata.js +63 -0
- package/dist/cjs/validations/dln-metadata.js.map +1 -0
- package/dist/cjs/validations/evm-caveats.js +12 -11
- package/dist/cjs/validations/evm-caveats.js.map +1 -1
- package/dist/cjs/validations/evm-op-budget.js +162 -53
- package/dist/cjs/validations/evm-op-budget.js.map +1 -1
- package/dist/cjs/validations/evm-op-hook.js +67 -26
- package/dist/cjs/validations/evm-op-hook.js.map +1 -1
- package/dist/cjs/validations/evm-op-wrap.js +29 -26
- package/dist/cjs/validations/evm-op-wrap.js.map +1 -1
- package/dist/cjs/validations/evm-permit.js +143 -42
- package/dist/cjs/validations/evm-permit.js.map +1 -1
- package/dist/cjs/validations/evm-permit2.js +32 -39
- package/dist/cjs/validations/evm-permit2.js.map +1 -1
- package/dist/cjs/validations/evm-required-actions.js +17 -9
- package/dist/cjs/validations/evm-required-actions.js.map +1 -1
- package/dist/cjs/validations/evm-sign712-metamask.js +126 -3
- package/dist/cjs/validations/evm-sign712-metamask.js.map +1 -1
- package/dist/cjs/validations/evm-sign712-shared.js +4 -5
- package/dist/cjs/validations/evm-sign712-shared.js.map +1 -1
- package/dist/cjs/validations/evm-sign712.js +3 -23
- package/dist/cjs/validations/evm-sign712.js.map +1 -1
- package/dist/cjs/validations/evm-sign7702.js +4 -5
- package/dist/cjs/validations/evm-sign7702.js.map +1 -1
- package/dist/cjs/validations/external-call.js +330 -0
- package/dist/cjs/validations/external-call.js.map +1 -0
- package/dist/cjs/validations/hooks-common.js +279 -25
- package/dist/cjs/validations/hooks-common.js.map +1 -1
- package/dist/cjs/validations/intent-tokens.js +23 -15
- package/dist/cjs/validations/intent-tokens.js.map +1 -1
- package/dist/cjs/validations/intent.js +194 -72
- package/dist/cjs/validations/intent.js.map +1 -1
- package/dist/cjs/validations/ptp.js +7 -6
- package/dist/cjs/validations/ptp.js.map +1 -1
- package/dist/cjs/validations/required-actions.js +6 -4
- package/dist/cjs/validations/required-actions.js.map +1 -1
- package/dist/cjs/validations/solana-hook.js +74 -9
- package/dist/cjs/validations/solana-hook.js.map +1 -1
- package/dist/cjs/validations/solana-op-budget.js +71 -2
- package/dist/cjs/validations/solana-op-budget.js.map +1 -1
- package/dist/cjs/validations/solana-op-wrap.js +32 -4
- package/dist/cjs/validations/solana-op-wrap.js.map +1 -1
- package/dist/cjs/validations/solana-sign.js +31 -15
- package/dist/cjs/validations/solana-sign.js.map +1 -1
- package/dist/cjs/validations/solana-transaction.js +29 -2
- package/dist/cjs/validations/solana-transaction.js.map +1 -1
- package/dist/cjs/validations/total-dst-amount.js +36 -22
- package/dist/cjs/validations/total-dst-amount.js.map +1 -1
- package/dist/cjs/validations/trade-grouping.js +67 -31
- package/dist/cjs/validations/trade-grouping.js.map +1 -1
- package/dist/cjs/validations/trade-matching.js +112 -0
- package/dist/cjs/validations/trade-matching.js.map +1 -0
- package/dist/cjs/validations/trades.js +53 -52
- package/dist/cjs/validations/trades.js.map +1 -1
- package/dist/cjs/validator.js +19 -7
- package/dist/cjs/validator.js.map +1 -1
- package/dist/cjs/whitelists/environment-config.js +65 -16
- package/dist/cjs/whitelists/environment-config.js.map +1 -1
- package/dist/cjs/whitelists/solana/intent-signature.js +7 -2
- package/dist/cjs/whitelists/solana/intent-signature.js.map +1 -1
- package/dist/cjs/whitelists/types.js.map +1 -1
- package/dist/esm/helpers/eip712-types.js +26 -0
- package/dist/esm/helpers/eip712-types.js.map +1 -0
- package/dist/esm/helpers/evm-action.js +16 -2
- package/dist/esm/helpers/evm-action.js.map +1 -1
- package/dist/esm/helpers/evm-dln-hook-pack.js +8 -6
- package/dist/esm/helpers/evm-dln-hook-pack.js.map +1 -1
- package/dist/esm/helpers/evm-gas-compensation-tx.js +26 -7
- package/dist/esm/helpers/evm-gas-compensation-tx.js.map +1 -1
- package/dist/esm/helpers/evm-intent-id.js +6 -5
- package/dist/esm/helpers/evm-intent-id.js.map +1 -1
- package/dist/esm/helpers/evm-token.js +3 -3
- package/dist/esm/helpers/evm-token.js.map +1 -1
- package/dist/esm/helpers/evm-trade-amounts.js +2 -1
- package/dist/esm/helpers/evm-trade-amounts.js.map +1 -1
- package/dist/esm/helpers/expected-delegate.js +10 -11
- package/dist/esm/helpers/expected-delegate.js.map +1 -1
- package/dist/esm/helpers/gas-compensation.js +3 -0
- package/dist/esm/helpers/gas-compensation.js.map +1 -1
- package/dist/esm/helpers/hex.js +29 -0
- package/dist/esm/helpers/hex.js.map +1 -1
- package/dist/esm/helpers/integer.js +7 -0
- package/dist/esm/helpers/integer.js.map +1 -0
- package/dist/esm/helpers/placeholder.js +98 -4
- package/dist/esm/helpers/placeholder.js.map +1 -1
- package/dist/esm/helpers/solana-intent-id.js +6 -5
- package/dist/esm/helpers/solana-intent-id.js.map +1 -1
- package/dist/esm/helpers/synthetic-native-wrap.js +52 -0
- package/dist/esm/helpers/synthetic-native-wrap.js.map +1 -0
- package/dist/esm/types/enums.js +2 -0
- package/dist/esm/types/enums.js.map +1 -1
- package/dist/esm/types/request.js +23 -4
- package/dist/esm/types/request.js.map +1 -1
- package/dist/esm/types/response.js +10 -3
- package/dist/esm/types/response.js.map +1 -1
- package/dist/esm/types/validation.js +28 -1
- package/dist/esm/types/validation.js.map +1 -1
- package/dist/esm/validations/accumulative-token.js +5 -4
- package/dist/esm/validations/accumulative-token.js.map +1 -1
- package/dist/esm/validations/compensation-hook.js +14 -4
- package/dist/esm/validations/compensation-hook.js.map +1 -1
- package/dist/esm/validations/dln-metadata.js +56 -0
- package/dist/esm/validations/dln-metadata.js.map +1 -0
- package/dist/esm/validations/evm-caveats.js +12 -11
- package/dist/esm/validations/evm-caveats.js.map +1 -1
- package/dist/esm/validations/evm-op-budget.js +162 -54
- package/dist/esm/validations/evm-op-budget.js.map +1 -1
- package/dist/esm/validations/evm-op-hook.js +68 -27
- package/dist/esm/validations/evm-op-hook.js.map +1 -1
- package/dist/esm/validations/evm-op-wrap.js +30 -27
- package/dist/esm/validations/evm-op-wrap.js.map +1 -1
- package/dist/esm/validations/evm-permit.js +144 -43
- package/dist/esm/validations/evm-permit.js.map +1 -1
- package/dist/esm/validations/evm-permit2.js +33 -40
- package/dist/esm/validations/evm-permit2.js.map +1 -1
- package/dist/esm/validations/evm-required-actions.js +18 -10
- package/dist/esm/validations/evm-required-actions.js.map +1 -1
- package/dist/esm/validations/evm-sign712-metamask.js +126 -3
- package/dist/esm/validations/evm-sign712-metamask.js.map +1 -1
- package/dist/esm/validations/evm-sign712-shared.js +4 -5
- package/dist/esm/validations/evm-sign712-shared.js.map +1 -1
- package/dist/esm/validations/evm-sign712.js +3 -23
- package/dist/esm/validations/evm-sign712.js.map +1 -1
- package/dist/esm/validations/evm-sign7702.js +4 -5
- package/dist/esm/validations/evm-sign7702.js.map +1 -1
- package/dist/esm/validations/external-call.js +325 -0
- package/dist/esm/validations/external-call.js.map +1 -0
- package/dist/esm/validations/hooks-common.js +280 -26
- package/dist/esm/validations/hooks-common.js.map +1 -1
- package/dist/esm/validations/intent-tokens.js +23 -15
- package/dist/esm/validations/intent-tokens.js.map +1 -1
- package/dist/esm/validations/intent.js +197 -75
- package/dist/esm/validations/intent.js.map +1 -1
- package/dist/esm/validations/ptp.js +7 -6
- package/dist/esm/validations/ptp.js.map +1 -1
- package/dist/esm/validations/required-actions.js +7 -5
- package/dist/esm/validations/required-actions.js.map +1 -1
- package/dist/esm/validations/solana-hook.js +74 -9
- package/dist/esm/validations/solana-hook.js.map +1 -1
- package/dist/esm/validations/solana-op-budget.js +71 -2
- package/dist/esm/validations/solana-op-budget.js.map +1 -1
- package/dist/esm/validations/solana-op-wrap.js +32 -4
- package/dist/esm/validations/solana-op-wrap.js.map +1 -1
- package/dist/esm/validations/solana-sign.js +31 -15
- package/dist/esm/validations/solana-sign.js.map +1 -1
- package/dist/esm/validations/solana-transaction.js +29 -2
- package/dist/esm/validations/solana-transaction.js.map +1 -1
- package/dist/esm/validations/total-dst-amount.js +36 -22
- package/dist/esm/validations/total-dst-amount.js.map +1 -1
- package/dist/esm/validations/trade-grouping.js +67 -31
- package/dist/esm/validations/trade-grouping.js.map +1 -1
- package/dist/esm/validations/trade-matching.js +109 -0
- package/dist/esm/validations/trade-matching.js.map +1 -0
- package/dist/esm/validations/trades.js +53 -52
- package/dist/esm/validations/trades.js.map +1 -1
- package/dist/esm/validator.js +19 -7
- package/dist/esm/validator.js.map +1 -1
- package/dist/esm/whitelists/environment-config.js +65 -16
- package/dist/esm/whitelists/environment-config.js.map +1 -1
- package/dist/esm/whitelists/solana/intent-signature.js +7 -2
- package/dist/esm/whitelists/solana/intent-signature.js.map +1 -1
- package/dist/esm/whitelists/types.js.map +1 -1
- package/dist/types/helpers/eip712-types.d.ts +7 -0
- package/dist/types/helpers/eip712-types.d.ts.map +1 -0
- package/dist/types/helpers/evm-action.d.ts +6 -0
- package/dist/types/helpers/evm-action.d.ts.map +1 -1
- package/dist/types/helpers/evm-dln-hook-pack.d.ts.map +1 -1
- package/dist/types/helpers/evm-gas-compensation-tx.d.ts +3 -1
- package/dist/types/helpers/evm-gas-compensation-tx.d.ts.map +1 -1
- package/dist/types/helpers/evm-intent-id.d.ts.map +1 -1
- package/dist/types/helpers/evm-token.d.ts.map +1 -1
- package/dist/types/helpers/evm-trade-amounts.d.ts.map +1 -1
- package/dist/types/helpers/expected-delegate.d.ts.map +1 -1
- package/dist/types/helpers/gas-compensation.d.ts.map +1 -1
- package/dist/types/helpers/hex.d.ts +6 -0
- package/dist/types/helpers/hex.d.ts.map +1 -1
- package/dist/types/helpers/integer.d.ts +2 -0
- package/dist/types/helpers/integer.d.ts.map +1 -0
- package/dist/types/helpers/placeholder.d.ts +3 -1
- package/dist/types/helpers/placeholder.d.ts.map +1 -1
- package/dist/types/helpers/solana-intent-id.d.ts.map +1 -1
- package/dist/types/helpers/synthetic-native-wrap.d.ts +4 -0
- package/dist/types/helpers/synthetic-native-wrap.d.ts.map +1 -0
- package/dist/types/types/enums.d.ts +4 -2
- package/dist/types/types/enums.d.ts.map +1 -1
- package/dist/types/types/request.d.ts +83 -6
- package/dist/types/types/request.d.ts.map +1 -1
- package/dist/types/types/response.d.ts +95 -12
- package/dist/types/types/response.d.ts.map +1 -1
- package/dist/types/types/validation.d.ts +29 -1
- package/dist/types/types/validation.d.ts.map +1 -1
- package/dist/types/validations/accumulative-token.d.ts.map +1 -1
- package/dist/types/validations/compensation-hook.d.ts +2 -1
- package/dist/types/validations/compensation-hook.d.ts.map +1 -1
- package/dist/types/validations/dln-metadata.d.ts +7 -0
- package/dist/types/validations/dln-metadata.d.ts.map +1 -0
- package/dist/types/validations/evm-caveats.d.ts +2 -1
- package/dist/types/validations/evm-caveats.d.ts.map +1 -1
- package/dist/types/validations/evm-op-budget.d.ts +8 -0
- package/dist/types/validations/evm-op-budget.d.ts.map +1 -1
- package/dist/types/validations/evm-op-hook.d.ts +2 -1
- package/dist/types/validations/evm-op-hook.d.ts.map +1 -1
- package/dist/types/validations/evm-op-wrap.d.ts.map +1 -1
- package/dist/types/validations/evm-permit.d.ts.map +1 -1
- package/dist/types/validations/evm-permit2.d.ts.map +1 -1
- package/dist/types/validations/evm-required-actions.d.ts +1 -1
- package/dist/types/validations/evm-required-actions.d.ts.map +1 -1
- package/dist/types/validations/evm-sign712-metamask.d.ts +2 -1
- package/dist/types/validations/evm-sign712-metamask.d.ts.map +1 -1
- package/dist/types/validations/evm-sign712-shared.d.ts +3 -2
- package/dist/types/validations/evm-sign712-shared.d.ts.map +1 -1
- package/dist/types/validations/evm-sign712.d.ts.map +1 -1
- package/dist/types/validations/evm-sign7702.d.ts +3 -2
- package/dist/types/validations/evm-sign7702.d.ts.map +1 -1
- package/dist/types/validations/external-call.d.ts +15 -0
- package/dist/types/validations/external-call.d.ts.map +1 -0
- package/dist/types/validations/hooks-common.d.ts +5 -1
- package/dist/types/validations/hooks-common.d.ts.map +1 -1
- package/dist/types/validations/intent-tokens.d.ts.map +1 -1
- package/dist/types/validations/intent.d.ts +1 -1
- package/dist/types/validations/intent.d.ts.map +1 -1
- package/dist/types/validations/ptp.d.ts.map +1 -1
- package/dist/types/validations/required-actions.d.ts +1 -1
- package/dist/types/validations/required-actions.d.ts.map +1 -1
- package/dist/types/validations/solana-hook.d.ts +2 -1
- package/dist/types/validations/solana-hook.d.ts.map +1 -1
- package/dist/types/validations/solana-op-budget.d.ts.map +1 -1
- package/dist/types/validations/solana-op-wrap.d.ts.map +1 -1
- package/dist/types/validations/solana-transaction.d.ts.map +1 -1
- package/dist/types/validations/total-dst-amount.d.ts.map +1 -1
- package/dist/types/validations/trade-grouping.d.ts +2 -1
- package/dist/types/validations/trade-grouping.d.ts.map +1 -1
- package/dist/types/validations/trade-matching.d.ts +13 -0
- package/dist/types/validations/trade-matching.d.ts.map +1 -0
- package/dist/types/validations/trades.d.ts +2 -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/solana/intent-signature.d.ts +1 -0
- package/dist/types/whitelists/solana/intent-signature.d.ts.map +1 -1
- package/dist/types/whitelists/types.d.ts +9 -0
- package/dist/types/whitelists/types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -6,6 +6,7 @@ const enums_1 = require("../types/enums");
|
|
|
6
6
|
const validation_1 = require("../types/validation");
|
|
7
7
|
const types_1 = require("./types");
|
|
8
8
|
const intent_signature_1 = require("./solana/intent-signature");
|
|
9
|
+
const evm_1 = require("./evm");
|
|
9
10
|
const programs_1 = require("./solana/programs");
|
|
10
11
|
// =============================================
|
|
11
12
|
// EVM: Allowance Holder
|
|
@@ -13,29 +14,24 @@ const programs_1 = require("./solana/programs");
|
|
|
13
14
|
const PROD_DEFAULT_EVM_ALLOWANCE_HOLDER = "0xddddddddd4B6472c5002F95610b194D1161223d0";
|
|
14
15
|
const PROD_TRON_ALLOWANCE_HOLDER = "0x873a84BfBd83f9986cb07927ac3E587979D57775";
|
|
15
16
|
const DUBAI_EVM_ALLOWANCE_HOLDER = "0xB75b7b65369aA7874FD1f0cDA020958D3491e568";
|
|
16
|
-
//
|
|
17
|
-
//
|
|
18
|
-
|
|
17
|
+
// EVM chains currently enabled for gasless intents in the Prod API config.
|
|
18
|
+
// Chains may have other gasless config, but without intentEnvironment the API
|
|
19
|
+
// should not emit gasless intent actions for them.
|
|
20
|
+
const PROD_EVM_CHAINS_ENABLED_FOR_GASLESS_INTENTS = [
|
|
19
21
|
enums_1.ChainId.Ethereum,
|
|
20
22
|
enums_1.ChainId.Optimism,
|
|
21
|
-
enums_1.ChainId.Cronos,
|
|
22
23
|
enums_1.ChainId.BNB,
|
|
23
|
-
enums_1.ChainId.Gnosis,
|
|
24
24
|
enums_1.ChainId.Polygon,
|
|
25
25
|
enums_1.ChainId.Monad,
|
|
26
|
-
enums_1.ChainId.Sonic,
|
|
27
26
|
enums_1.ChainId.Flow,
|
|
28
27
|
enums_1.ChainId.HyperEVM,
|
|
29
28
|
enums_1.ChainId.Sei,
|
|
30
29
|
enums_1.ChainId.Story,
|
|
31
|
-
enums_1.ChainId.Injective,
|
|
32
|
-
enums_1.ChainId.MegaETH,
|
|
33
30
|
enums_1.ChainId.Mantle,
|
|
34
31
|
enums_1.ChainId.Base,
|
|
35
32
|
enums_1.ChainId.Arbitrum,
|
|
36
33
|
enums_1.ChainId.Avalanche,
|
|
37
34
|
enums_1.ChainId.Linea,
|
|
38
|
-
enums_1.ChainId.Bob,
|
|
39
35
|
];
|
|
40
36
|
// EVM chains supported by the Dubai gasless API.
|
|
41
37
|
const DUBAI_EVM_CHAINS = [
|
|
@@ -49,7 +45,7 @@ const DUBAI_EVM_CHAINS = [
|
|
|
49
45
|
];
|
|
50
46
|
const ALLOWANCE_HOLDER_BY_ENVIRONMENT = {
|
|
51
47
|
[validation_1.Environment.Prod]: {
|
|
52
|
-
...(0, types_1.buildSameAddressMap)(
|
|
48
|
+
...(0, types_1.buildSameAddressMap)(PROD_EVM_CHAINS_ENABLED_FOR_GASLESS_INTENTS, PROD_DEFAULT_EVM_ALLOWANCE_HOLDER),
|
|
53
49
|
[enums_1.ChainId.Tron]: [PROD_TRON_ALLOWANCE_HOLDER],
|
|
54
50
|
},
|
|
55
51
|
[validation_1.Environment.Dubai]: (0, types_1.buildSameAddressMap)(DUBAI_EVM_CHAINS, DUBAI_EVM_ALLOWANCE_HOLDER),
|
|
@@ -63,20 +59,43 @@ const ALLOWANCE_HOLDER_BY_ENVIRONMENT = {
|
|
|
63
59
|
// =============================================
|
|
64
60
|
// Address the API uses as `intent.srcAllowedSender` on chains where its
|
|
65
61
|
// config has `solverExecutorAddress` set — independent of any request input.
|
|
66
|
-
const
|
|
62
|
+
const SHARED_EVM_SOLVER_EXECUTOR = "0xb7B10db9c7B978c48340994CB48829C4b3617B2F";
|
|
67
63
|
const PROD_EVM_CHAINS_WITH_SOLVER_EXECUTOR = [
|
|
68
64
|
enums_1.ChainId.Ethereum,
|
|
69
65
|
enums_1.ChainId.Optimism,
|
|
70
66
|
enums_1.ChainId.BNB,
|
|
71
|
-
enums_1.ChainId.Polygon,
|
|
72
67
|
enums_1.ChainId.Base,
|
|
73
68
|
enums_1.ChainId.Arbitrum,
|
|
74
69
|
enums_1.ChainId.Avalanche,
|
|
75
70
|
];
|
|
76
71
|
const EVM_SOLVER_EXECUTOR_BY_ENVIRONMENT = {
|
|
77
|
-
[validation_1.Environment.Prod]: (0, types_1.buildSameAddressMap)(PROD_EVM_CHAINS_WITH_SOLVER_EXECUTOR,
|
|
78
|
-
[validation_1.Environment.Dubai]:
|
|
79
|
-
[validation_1.Environment.Hanoi]:
|
|
72
|
+
[validation_1.Environment.Prod]: (0, types_1.buildSameAddressMap)(PROD_EVM_CHAINS_WITH_SOLVER_EXECUTOR, SHARED_EVM_SOLVER_EXECUTOR),
|
|
73
|
+
[validation_1.Environment.Dubai]: (0, types_1.buildSameAddressMap)(DUBAI_EVM_CHAINS, SHARED_EVM_SOLVER_EXECUTOR),
|
|
74
|
+
[validation_1.Environment.Hanoi]: (0, types_1.buildSameAddressMap)([enums_1.ChainId.Polygon, enums_1.ChainId.BNB], SHARED_EVM_SOLVER_EXECUTOR),
|
|
75
|
+
};
|
|
76
|
+
// =============================================
|
|
77
|
+
// EVM: delegate / MetaMask framework env scope
|
|
78
|
+
// =============================================
|
|
79
|
+
const DEFAULT_EVM_DELEGATE = "0xE547d2EeD6DD60796013b485D284C17Da1194C82";
|
|
80
|
+
const COMPENSATION_DELEGATE_BY_ENVIRONMENT = {
|
|
81
|
+
[validation_1.Environment.Prod]: (0, types_1.buildSameAddressMap)(PROD_EVM_CHAINS_ENABLED_FOR_GASLESS_INTENTS, DEFAULT_EVM_DELEGATE),
|
|
82
|
+
[validation_1.Environment.Dubai]: (0, types_1.buildSameAddressMap)(DUBAI_EVM_CHAINS, DEFAULT_EVM_DELEGATE),
|
|
83
|
+
[validation_1.Environment.Hanoi]: (0, types_1.buildSameAddressMap)([enums_1.ChainId.Polygon, enums_1.ChainId.BNB], DEFAULT_EVM_DELEGATE),
|
|
84
|
+
};
|
|
85
|
+
const PROD_METAMASK_CHAINS = [
|
|
86
|
+
enums_1.ChainId.Ethereum,
|
|
87
|
+
enums_1.ChainId.Optimism,
|
|
88
|
+
enums_1.ChainId.BNB,
|
|
89
|
+
enums_1.ChainId.Polygon,
|
|
90
|
+
enums_1.ChainId.Base,
|
|
91
|
+
enums_1.ChainId.Arbitrum,
|
|
92
|
+
];
|
|
93
|
+
const DUBAI_METAMASK_CHAINS = DUBAI_EVM_CHAINS;
|
|
94
|
+
const HANOI_METAMASK_CHAINS = [enums_1.ChainId.Polygon, enums_1.ChainId.BNB];
|
|
95
|
+
const METAMASK_CHAINS_BY_ENVIRONMENT = {
|
|
96
|
+
[validation_1.Environment.Prod]: PROD_METAMASK_CHAINS,
|
|
97
|
+
[validation_1.Environment.Dubai]: DUBAI_METAMASK_CHAINS,
|
|
98
|
+
[validation_1.Environment.Hanoi]: HANOI_METAMASK_CHAINS,
|
|
80
99
|
};
|
|
81
100
|
// =============================================
|
|
82
101
|
// EVM: Intent Manager
|
|
@@ -86,7 +105,7 @@ const PROD_TRON_INTENT_MANAGER = "0x3ACFa1FA93916C60c9e8B7C5d59b50681b705e4e";
|
|
|
86
105
|
const DUBAI_EVM_INTENT_MANAGER = "0x1266F88510e6dE4321ce5aA219ED35b5dfFD3410";
|
|
87
106
|
const INTENT_MANAGER_BY_ENVIRONMENT = {
|
|
88
107
|
[validation_1.Environment.Prod]: {
|
|
89
|
-
...(0, types_1.buildSameAddressMap)(
|
|
108
|
+
...(0, types_1.buildSameAddressMap)(PROD_EVM_CHAINS_ENABLED_FOR_GASLESS_INTENTS, PROD_DEFAULT_EVM_INTENT_MANAGER),
|
|
90
109
|
[enums_1.ChainId.Tron]: [PROD_TRON_INTENT_MANAGER],
|
|
91
110
|
},
|
|
92
111
|
[validation_1.Environment.Dubai]: (0, types_1.buildSameAddressMap)(DUBAI_EVM_CHAINS, DUBAI_EVM_INTENT_MANAGER),
|
|
@@ -107,11 +126,22 @@ const SOLANA_INTENT_PROGRAM_BY_ENVIRONMENT = {
|
|
|
107
126
|
// Solana: Allowance Holder
|
|
108
127
|
// =============================================
|
|
109
128
|
const DEFAULT_PROD_SOLANA_ALLOWANCE_HOLDER_ADDRESS = "73dUbDAWUDZRfXM3DcuRgR4q74nr97MyuBt95738JnMz";
|
|
129
|
+
const DEFAULT_SOLANA_DELEGATE_ADDRESS = "bud6cbDe3kpPaEWcRdnTnHEKZKg8YR9GaURKS9sXRGD";
|
|
110
130
|
const SOLANA_ALLOWANCE_HOLDER_BY_ENVIRONMENT = {
|
|
111
131
|
[validation_1.Environment.Prod]: DEFAULT_PROD_SOLANA_ALLOWANCE_HOLDER_ADDRESS,
|
|
112
132
|
[validation_1.Environment.Dubai]: DEFAULT_PROD_SOLANA_ALLOWANCE_HOLDER_ADDRESS,
|
|
113
133
|
[validation_1.Environment.Hanoi]: DEFAULT_PROD_SOLANA_ALLOWANCE_HOLDER_ADDRESS,
|
|
114
134
|
};
|
|
135
|
+
const SOLANA_ALLOWANCE_HOLDER_ENABLED_BY_ENVIRONMENT = {
|
|
136
|
+
[validation_1.Environment.Prod]: true,
|
|
137
|
+
[validation_1.Environment.Dubai]: false,
|
|
138
|
+
[validation_1.Environment.Hanoi]: false,
|
|
139
|
+
};
|
|
140
|
+
const SOLANA_DELEGATE_BY_ENVIRONMENT = {
|
|
141
|
+
[validation_1.Environment.Prod]: DEFAULT_SOLANA_DELEGATE_ADDRESS,
|
|
142
|
+
[validation_1.Environment.Dubai]: DEFAULT_SOLANA_DELEGATE_ADDRESS,
|
|
143
|
+
[validation_1.Environment.Hanoi]: DEFAULT_SOLANA_DELEGATE_ADDRESS,
|
|
144
|
+
};
|
|
115
145
|
// =============================================
|
|
116
146
|
// Builder
|
|
117
147
|
// =============================================
|
|
@@ -143,16 +173,35 @@ function buildSignTransactionAllowedPrograms(intentProgram) {
|
|
|
143
173
|
}
|
|
144
174
|
function buildEnvironmentConfig(environment) {
|
|
145
175
|
const solanaIntentProgram = SOLANA_INTENT_PROGRAM_BY_ENVIRONMENT[environment];
|
|
176
|
+
const metamaskChains = METAMASK_CHAINS_BY_ENVIRONMENT[environment];
|
|
146
177
|
return {
|
|
147
178
|
allowanceHolderContracts: ALLOWANCE_HOLDER_BY_ENVIRONMENT[environment],
|
|
148
179
|
intentManagerContracts: INTENT_MANAGER_BY_ENVIRONMENT[environment],
|
|
149
180
|
solverExecutorContracts: EVM_SOLVER_EXECUTOR_BY_ENVIRONMENT[environment],
|
|
181
|
+
compensationDelegateContracts: COMPENSATION_DELEGATE_BY_ENVIRONMENT[environment],
|
|
182
|
+
eip7702DelegationContracts: filterChainAddressMap(evm_1.EIP7702_DELEGATION_CONTRACTS, metamaskChains),
|
|
183
|
+
delegationManagerContracts: filterChainAddressMap(evm_1.DELEGATION_MANAGER_CONTRACTS, metamaskChains),
|
|
184
|
+
exactExecutionEnforcerContracts: filterChainAddressMap(evm_1.EXACT_EXECUTION_ENFORCER_CONTRACTS, metamaskChains),
|
|
185
|
+
exactExecutionBatchEnforcerContracts: filterChainAddressMap(evm_1.EXACT_EXECUTION_BATCH_ENFORCER_CONTRACTS, metamaskChains),
|
|
186
|
+
idEnforcerContracts: filterChainAddressMap(evm_1.ID_ENFORCER_CONTRACTS, metamaskChains),
|
|
187
|
+
timestampEnforcerContracts: filterChainAddressMap(evm_1.TIMESTAMP_ENFORCER_CONTRACTS, metamaskChains),
|
|
150
188
|
solanaIntentProgram,
|
|
151
189
|
solanaAllowanceHolder: SOLANA_ALLOWANCE_HOLDER_BY_ENVIRONMENT[environment],
|
|
190
|
+
solanaAllowanceHolderEnabled: SOLANA_ALLOWANCE_HOLDER_ENABLED_BY_ENVIRONMENT[environment],
|
|
191
|
+
solanaDelegateAddress: SOLANA_DELEGATE_BY_ENVIRONMENT[environment],
|
|
152
192
|
solanaTransactionAllowedPrograms: buildTransactionAllowedPrograms(solanaIntentProgram),
|
|
153
193
|
solanaSignTransactionAllowedPrograms: buildSignTransactionAllowedPrograms(solanaIntentProgram),
|
|
154
194
|
solanaExpectedStatePdaBase58: computeStatePdaBase58(solanaIntentProgram),
|
|
155
195
|
solanaSignatureConfig: (0, intent_signature_1.getIntentSignatureConfig)(environment),
|
|
156
196
|
};
|
|
157
197
|
}
|
|
198
|
+
function filterChainAddressMap(source, chains) {
|
|
199
|
+
const result = {};
|
|
200
|
+
for (const chainId of chains) {
|
|
201
|
+
if (source[chainId] !== undefined) {
|
|
202
|
+
result[chainId] = source[chainId];
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
return result;
|
|
206
|
+
}
|
|
158
207
|
//# sourceMappingURL=environment-config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"environment-config.js","sourceRoot":"","sources":["../../../src/whitelists/environment-config.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"environment-config.js","sourceRoot":"","sources":["../../../src/whitelists/environment-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,21 +4,26 @@ exports.getIntentSignatureConfig = getIntentSignatureConfig;
|
|
|
4
4
|
const validation_1 = require("../../types/validation");
|
|
5
5
|
const enums_1 = require("../../types/enums");
|
|
6
6
|
// Environment-specific prefix used in getBufferForIntentSignature().
|
|
7
|
-
// Must match IntentProgramSigPrefix enum in @debridge-finance/intents-client.
|
|
8
7
|
const SIG_PREFIX_BY_ENVIRONMENT = {
|
|
9
8
|
[validation_1.Environment.Prod]: "intents_program",
|
|
10
9
|
[validation_1.Environment.Dubai]: "intents_program_dubai",
|
|
11
10
|
[validation_1.Environment.Hanoi]: "intents_program_hanoi",
|
|
12
11
|
};
|
|
12
|
+
const DEFAULT_SIG_PREFIX = "intents_program";
|
|
13
13
|
// "intents" label — constant across all environments
|
|
14
14
|
const INTENTS_LABEL = new Uint8Array([105, 110, 116, 101, 110, 116, 115]);
|
|
15
15
|
function getIntentSignatureConfig(environment) {
|
|
16
16
|
const prefixStr = SIG_PREFIX_BY_ENVIRONMENT[environment];
|
|
17
17
|
const prefix = new TextEncoder().encode(prefixStr);
|
|
18
|
+
const acceptedPrefixes = uniqueStrings([prefixStr, DEFAULT_SIG_PREFIX])
|
|
19
|
+
.map(value => new TextEncoder().encode(value));
|
|
18
20
|
const chainIdBytes = new Uint8Array(4);
|
|
19
21
|
new DataView(chainIdBytes.buffer).setUint32(0, enums_1.ChainId.Solana, true);
|
|
20
22
|
// prefix + chainId(4) + label(7) + intentId(32)
|
|
21
23
|
const expectedBufferLength = prefix.length + 4 + INTENTS_LABEL.length + 32;
|
|
22
|
-
return { prefix, chainIdBytes, label: INTENTS_LABEL, expectedBufferLength };
|
|
24
|
+
return { prefix, acceptedPrefixes, chainIdBytes, label: INTENTS_LABEL, expectedBufferLength };
|
|
25
|
+
}
|
|
26
|
+
function uniqueStrings(values) {
|
|
27
|
+
return values.filter((value, index) => values.indexOf(value) === index);
|
|
23
28
|
}
|
|
24
29
|
//# sourceMappingURL=intent-signature.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"intent-signature.js","sourceRoot":"","sources":["../../../../src/whitelists/solana/intent-signature.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"intent-signature.js","sourceRoot":"","sources":["../../../../src/whitelists/solana/intent-signature.ts"],"names":[],"mappings":";;AAsBA,4DAaC;AAnCD,uDAAqD;AACrD,6CAA4C;AAE5C,qEAAqE;AACrE,MAAM,yBAAyB,GAAgC;IAC3D,CAAC,wBAAW,CAAC,IAAI,CAAC,EAAE,iBAAiB;IACrC,CAAC,wBAAW,CAAC,KAAK,CAAC,EAAE,uBAAuB;IAC5C,CAAC,wBAAW,CAAC,KAAK,CAAC,EAAE,uBAAuB;CAC/C,CAAC;AACF,MAAM,kBAAkB,GAAG,iBAAiB,CAAC;AAE7C,qDAAqD;AACrD,MAAM,aAAa,GAAG,IAAI,UAAU,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AAU1E,SAAgB,wBAAwB,CAAC,WAAwB;IAC7D,MAAM,SAAS,GAAG,yBAAyB,CAAC,WAAW,CAAC,CAAC;IACzD,MAAM,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACnD,MAAM,gBAAgB,GAAG,aAAa,CAAC,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAC;SAClE,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAEnD,MAAM,YAAY,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;IACvC,IAAI,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,eAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAErE,gDAAgD;IAChD,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,aAAa,CAAC,MAAM,GAAG,EAAE,CAAC;IAE3E,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE,oBAAoB,EAAE,CAAC;AAClG,CAAC;AAED,SAAS,aAAa,CAAC,MAAgB;IACnC,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,CAAC;AAC5E,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/whitelists/types.ts"],"names":[],"mappings":";;AAgBA,kDASC;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/whitelists/types.ts"],"names":[],"mappings":";;AAgBA,kDASC;AA8BD,sCA6BC;AApFD,gDAI4B;AAC5B,0CAAsD;AAStD,8EAA8E;AAC9E,gFAAgF;AAChF,SAAgB,mBAAmB,CAC/B,MAA0B,EAC1B,OAAe;IAEf,MAAM,GAAG,GAAoB,EAAE,CAAC;IAChC,KAAK,MAAM,OAAO,IAAI,MAAM,EAAE,CAAC;QAC3B,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;IACD,OAAO,GAAG,CAAC;AACf,CAAC;AA8BD,SAAgB,aAAa,CACzB,GAAoB,EACpB,OAAgB,EAChB,OAAe;IAEf,MAAM,MAAM,GAAG,IAAA,wBAAc,EAAC,OAAO,CAAC,CAAC;IAEvC,IAAI,MAAM,KAAK,mBAAW,CAAC,MAAM,EAAE,CAAC;QAChC,iEAAiE;QACjE,kFAAkF;QAClF,MAAM,IAAI,KAAK,CAAC,sEAAsE,CAAC,CAAC;IAC5F,CAAC;IAED,sCAAsC;IACtC,yGAAyG;IACzG,MAAM,aAAa,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC;IACnC,IAAI,aAAa,EAAE,CAAC;QAChB,MAAM,UAAU,GAAG,IAAA,0BAAgB,EAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACtD,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAA,0BAAgB,EAAC,OAAO,EAAE,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC;IAChF,CAAC;IAED,oCAAoC;IACpC,mEAAmE;IACnE,MAAM,QAAQ,GAAG,GAAG,CAAC,eAAO,CAAC,QAAQ,CAAC,CAAC;IACvC,IAAI,CAAC,QAAQ;QAAE,OAAO,KAAK,CAAC;IAE5B,MAAM,UAAU,GAAG,MAAM,KAAK,mBAAW,CAAC,IAAI,CAAC,CAAC,CAAC,IAAA,6BAAmB,EAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IACxF,MAAM,UAAU,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC;IAC5C,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,UAAU,CAAC,CAAC;AAC9D,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export function eip712TypesEqual(actual, expected) {
|
|
2
|
+
const actualKeys = Object.keys(actual).sort();
|
|
3
|
+
const expectedKeys = Object.keys(expected).sort();
|
|
4
|
+
if (actualKeys.length !== expectedKeys.length)
|
|
5
|
+
return false;
|
|
6
|
+
if (!actualKeys.every((key, i) => key === expectedKeys[i]))
|
|
7
|
+
return false;
|
|
8
|
+
for (const key of expectedKeys) {
|
|
9
|
+
if (!eip712TypeFieldsEqual(actual[key], expected[key]))
|
|
10
|
+
return false;
|
|
11
|
+
}
|
|
12
|
+
return true;
|
|
13
|
+
}
|
|
14
|
+
function eip712TypeFieldsEqual(actual, expected) {
|
|
15
|
+
if (!actual)
|
|
16
|
+
return false;
|
|
17
|
+
if (actual.length !== expected.length)
|
|
18
|
+
return false;
|
|
19
|
+
for (let i = 0; i < expected.length; i++) {
|
|
20
|
+
if (actual[i].name !== expected[i].name || actual[i].type !== expected[i].type) {
|
|
21
|
+
return false;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
return true;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=eip712-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eip712-types.js","sourceRoot":"","sources":["../../../src/helpers/eip712-types.ts"],"names":[],"mappings":"AAOA,MAAM,UAAU,gBAAgB,CAC5B,MAAmB,EACnB,QAAqB;IAErB,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9C,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;IAElD,IAAI,UAAU,CAAC,MAAM,KAAK,YAAY,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAC5D,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,YAAY,CAAC,CAAC,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IAEzE,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;QAC7B,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;IACzE,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,SAAS,qBAAqB,CAC1B,MAAqC,EACrC,QAA2B;IAE3B,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAC1B,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAEpD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAC7E,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC"}
|
|
@@ -10,9 +10,23 @@ export function actionUsesTransactionCalls(action) {
|
|
|
10
10
|
// For Sign712MetaMaskCaveats(WithPlaceholders)-type actions (AA), the calls
|
|
11
11
|
// are in details.transactionCalls.
|
|
12
12
|
export function getTransactionCalls(action) {
|
|
13
|
+
return getTransactionCallRefs(action, "").map(ref => ref.call);
|
|
14
|
+
}
|
|
15
|
+
export function getTransactionCallRefs(action, actionPath) {
|
|
13
16
|
if (action.type === EvmActionKind.Transaction) {
|
|
14
|
-
return [
|
|
17
|
+
return [{
|
|
18
|
+
call: action.data,
|
|
19
|
+
path: `${actionPath}.data`,
|
|
20
|
+
}];
|
|
15
21
|
}
|
|
16
|
-
return action.details?.transactionCalls ?? []
|
|
22
|
+
return (action.details?.transactionCalls ?? []).map((call, index) => ({
|
|
23
|
+
call,
|
|
24
|
+
path: `${actionPath}.details.transactionCalls[${index}]`,
|
|
25
|
+
}));
|
|
26
|
+
}
|
|
27
|
+
export function getTransactionCallsContainerPath(action, actionPath) {
|
|
28
|
+
return action.type === EvmActionKind.Transaction
|
|
29
|
+
? `${actionPath}.data`
|
|
30
|
+
: `${actionPath}.details.transactionCalls`;
|
|
17
31
|
}
|
|
18
32
|
//# sourceMappingURL=evm-action.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evm-action.js","sourceRoot":"","sources":["../../../src/helpers/evm-action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyC,aAAa,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"evm-action.js","sourceRoot":"","sources":["../../../src/helpers/evm-action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyC,aAAa,EAAE,MAAM,UAAU,CAAC;AAOhF,yEAAyE;AACzE,+EAA+E;AAC/E,MAAM,UAAU,0BAA0B,CAAC,MAAyB;IAChE,OAAO,MAAM,CAAC,IAAI,KAAK,aAAa,CAAC,WAAW;WACzC,MAAM,CAAC,IAAI,KAAK,aAAa,CAAC,sBAAsB;WACpD,MAAM,CAAC,IAAI,KAAK,aAAa,CAAC,sCAAsC,CAAC;AAChF,CAAC;AAED,8EAA8E;AAC9E,4EAA4E;AAC5E,mCAAmC;AACnC,MAAM,UAAU,mBAAmB,CAAC,MAAyB;IACzD,OAAO,sBAAsB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,sBAAsB,CAClC,MAAyB,EACzB,UAAkB;IAElB,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa,CAAC,WAAW,EAAE,CAAC;QAC5C,OAAO,CAAC;gBACJ,IAAI,EAAE,MAAM,CAAC,IAA0B;gBACvC,IAAI,EAAE,GAAG,UAAU,OAAO;aAC7B,CAAC,CAAC;IACP,CAAC;IAED,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,gBAAgB,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QAClE,IAAI;QACJ,IAAI,EAAE,GAAG,UAAU,6BAA6B,KAAK,GAAG;KAC3D,CAAC,CAAC,CAAC;AACR,CAAC;AAED,MAAM,UAAU,gCAAgC,CAC5C,MAAyB,EACzB,UAAkB;IAElB,OAAO,MAAM,CAAC,IAAI,KAAK,aAAa,CAAC,WAAW;QAC5C,CAAC,CAAC,GAAG,UAAU,OAAO;QACtB,CAAC,CAAC,GAAG,UAAU,2BAA2B,CAAC;AACnD,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { concatHex, encodeAbiParameters, zeroAddress } from "viem";
|
|
2
2
|
import { DlnHookType } from "../types/enums.js";
|
|
3
|
+
import { normalizeHexByteString } from "./hex.js";
|
|
3
4
|
// Hook envelope: ABI-encoded tuple prefixed with a `uint8 version=1` byte.
|
|
4
5
|
// keccak256 of these bytes is what ends up in `intent.externalCallHash`.
|
|
5
6
|
const ENVELOPE_TUPLE = {
|
|
@@ -21,7 +22,7 @@ export function packEvmHookV1(data) {
|
|
|
21
22
|
executionFee: BigInt(data.reward),
|
|
22
23
|
allowDelayedExecution: data.isNonAtomic,
|
|
23
24
|
requireSuccessfullExecution: data.isSuccessRequired,
|
|
24
|
-
payload: data.targetPayload,
|
|
25
|
+
payload: normalizeHexByteString(data.targetPayload),
|
|
25
26
|
}]);
|
|
26
27
|
return concatHex([ENVELOPE_VERSION_PREFIX, tuple]);
|
|
27
28
|
}
|
|
@@ -43,7 +44,7 @@ export function packEvmTransactionCall(data, dstChainAuthorityAddress) {
|
|
|
43
44
|
}], [{
|
|
44
45
|
to: data.to,
|
|
45
46
|
txGas: Number(data.gas ?? 0),
|
|
46
|
-
callData: data.calldata,
|
|
47
|
+
callData: normalizeHexByteString(data.calldata),
|
|
47
48
|
}]);
|
|
48
49
|
return packEvmHookV1({
|
|
49
50
|
fallbackAddress: dstChainAuthorityAddress,
|
|
@@ -54,10 +55,11 @@ export function packEvmTransactionCall(data, dstChainAuthorityAddress) {
|
|
|
54
55
|
targetPayload: inner,
|
|
55
56
|
});
|
|
56
57
|
}
|
|
57
|
-
// Parses
|
|
58
|
-
//
|
|
59
|
-
//
|
|
60
|
-
//
|
|
58
|
+
// Parses an EVM request trade's `dlnHook` JSON and returns the serialized
|
|
59
|
+
// external-call bytes used for hashing. Returns `undefined` when the trade has
|
|
60
|
+
// no hook. Throws on unknown / Solana hook types; Solana hooks are verified
|
|
61
|
+
// through response trade `externalCallData`, because their serialized bytes may
|
|
62
|
+
// depend on route-level external-call processing.
|
|
61
63
|
export function serializeDlnHook(trade) {
|
|
62
64
|
if (!trade.dlnHook)
|
|
63
65
|
return undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evm-dln-hook-pack.js","sourceRoot":"","sources":["../../../src/helpers/evm-dln-hook-pack.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"evm-dln-hook-pack.js","sourceRoot":"","sources":["../../../src/helpers/evm-dln-hook-pack.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { decodeTransferCalldata } from "./evm-calldata.js";
|
|
2
2
|
import { isNativeToken } from "./evm-token.js";
|
|
3
3
|
import { normalizeAddress } from "./address.js";
|
|
4
|
+
import { parseIntegerString } from "./integer.js";
|
|
5
|
+
import { isWhitelisted } from "../whitelists/types.js";
|
|
4
6
|
// Validates an EVM `{to, data, value}` triplet that is expected to encode a
|
|
5
7
|
// gas-compensation transfer. `groups` are the gas-compensation groups
|
|
6
8
|
// associated with this triplet's source (already filtered to the relevant
|
|
@@ -11,13 +13,13 @@ import { normalizeAddress } from "./address.js";
|
|
|
11
13
|
// and at least one group must carry a native token).
|
|
12
14
|
// - otherwise → ERC20 compensation (`triplet.to` matches some non-native
|
|
13
15
|
// group's tokenAddress, data is `transfer(...)`, value === "0").
|
|
14
|
-
export function validateEvmGasCompensationTx(triplet, groups, realChainId, basePath, codes) {
|
|
16
|
+
export function validateEvmGasCompensationTx(triplet, groups, realChainId, basePath, codes, delegateContracts) {
|
|
15
17
|
if (triplet.data === "0x") {
|
|
16
|
-
return validateNativeCompensation(triplet, groups, basePath, codes);
|
|
18
|
+
return validateNativeCompensation(triplet, groups, realChainId, basePath, codes, delegateContracts);
|
|
17
19
|
}
|
|
18
|
-
return validateErc20Compensation(triplet, groups, realChainId, basePath, codes);
|
|
20
|
+
return validateErc20Compensation(triplet, groups, realChainId, basePath, codes, delegateContracts);
|
|
19
21
|
}
|
|
20
|
-
function validateNativeCompensation(triplet, groups, basePath, codes) {
|
|
22
|
+
function validateNativeCompensation(triplet, groups, realChainId, basePath, codes, delegateContracts) {
|
|
21
23
|
const violations = [];
|
|
22
24
|
// CRITICAL: data="0x" implies native — must have at least one native group.
|
|
23
25
|
const hasNativeGroup = groups.some(g => isNativeToken(g.tokenAddress, g.realChainId));
|
|
@@ -30,13 +32,22 @@ function validateNativeCompensation(triplet, groups, basePath, codes) {
|
|
|
30
32
|
actual: "0x",
|
|
31
33
|
});
|
|
32
34
|
}
|
|
35
|
+
// CRITICAL: native compensation must transfer to the configured delegate.
|
|
36
|
+
if (!isWhitelisted(delegateContracts, realChainId, triplet.to)) {
|
|
37
|
+
violations.push({
|
|
38
|
+
code: codes.recipientMismatch,
|
|
39
|
+
message: "native compensation recipient is not whitelisted",
|
|
40
|
+
path: `${basePath}.to`,
|
|
41
|
+
actual: triplet.to,
|
|
42
|
+
});
|
|
43
|
+
}
|
|
33
44
|
// HIGH: native compensation value must parse and be > 0.
|
|
34
45
|
violations.push(...validateNativeValue(triplet.value, basePath, codes));
|
|
35
46
|
return violations;
|
|
36
47
|
}
|
|
37
48
|
function validateNativeValue(rawValue, basePath, codes) {
|
|
38
49
|
try {
|
|
39
|
-
if (
|
|
50
|
+
if (parseIntegerString(rawValue) <= 0n) {
|
|
40
51
|
return [{
|
|
41
52
|
code: codes.valueInvalid,
|
|
42
53
|
message: "native compensation must have value > 0",
|
|
@@ -56,7 +67,7 @@ function validateNativeValue(rawValue, basePath, codes) {
|
|
|
56
67
|
}];
|
|
57
68
|
}
|
|
58
69
|
}
|
|
59
|
-
function validateErc20Compensation(triplet, groups, realChainId, basePath, codes) {
|
|
70
|
+
function validateErc20Compensation(triplet, groups, realChainId, basePath, codes, delegateContracts) {
|
|
60
71
|
const violations = [];
|
|
61
72
|
// CRITICAL: `to` must equal some non-native group's tokenAddress.
|
|
62
73
|
const erc20Groups = groups.filter(g => !isNativeToken(g.tokenAddress, g.realChainId));
|
|
@@ -73,7 +84,15 @@ function validateErc20Compensation(triplet, groups, realChainId, basePath, codes
|
|
|
73
84
|
}
|
|
74
85
|
// CRITICAL: data must be a valid ERC20 transfer calldata.
|
|
75
86
|
try {
|
|
76
|
-
decodeTransferCalldata(triplet.data);
|
|
87
|
+
const decoded = decodeTransferCalldata(triplet.data);
|
|
88
|
+
if (!isWhitelisted(delegateContracts, realChainId, decoded.to)) {
|
|
89
|
+
violations.push({
|
|
90
|
+
code: codes.recipientMismatch,
|
|
91
|
+
message: "ERC20 compensation transfer recipient is not whitelisted",
|
|
92
|
+
path: `${basePath}.data`,
|
|
93
|
+
actual: decoded.to,
|
|
94
|
+
});
|
|
95
|
+
}
|
|
77
96
|
}
|
|
78
97
|
catch (error) {
|
|
79
98
|
violations.push({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evm-gas-compensation-tx.js","sourceRoot":"","sources":["../../../src/helpers/evm-gas-compensation-tx.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"evm-gas-compensation-tx.js","sourceRoot":"","sources":["../../../src/helpers/evm-gas-compensation-tx.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@ import { encodeAbiParameters, keccak256, zeroAddress, zeroHash } from "viem";
|
|
|
2
2
|
import { SUBMIT_INTENT_ABI_PARAMS } from "./evm-intent-id-abi.js";
|
|
3
3
|
import { addressToHex, addressToHexByValue } from "./address.js";
|
|
4
4
|
import { resolveChainId } from "../whitelists/subscription-to-chain-id.js";
|
|
5
|
+
import { parseIntegerString } from "./integer.js";
|
|
5
6
|
export function computeIntentId(intent) {
|
|
6
7
|
const struct = convertToIntentStruct(intent);
|
|
7
8
|
const encoded = encodeAbiParameters(SUBMIT_INTENT_ABI_PARAMS, [struct]);
|
|
@@ -50,9 +51,9 @@ function convertInputTokens(tokens) {
|
|
|
50
51
|
return [];
|
|
51
52
|
return tokens.map(t => ({
|
|
52
53
|
token: t.address,
|
|
53
|
-
minPartialAmount:
|
|
54
|
-
maxPartialAmount:
|
|
55
|
-
budget:
|
|
54
|
+
minPartialAmount: parseIntegerString(t.minPartialAmount),
|
|
55
|
+
maxPartialAmount: parseIntegerString(t.maxPartialAmount),
|
|
56
|
+
budget: parseIntegerString(t.constraintBudget),
|
|
56
57
|
}));
|
|
57
58
|
}
|
|
58
59
|
function convertGiveTokens(tokens) {
|
|
@@ -61,7 +62,7 @@ function convertGiveTokens(tokens) {
|
|
|
61
62
|
return tokens.map(t => ({
|
|
62
63
|
inputToken: t.inputTokenAddress,
|
|
63
64
|
giveToken: t.giveTokenAddress,
|
|
64
|
-
numerator:
|
|
65
|
+
numerator: parseIntegerString(t.numerator),
|
|
65
66
|
denominator: Number(t.denominator),
|
|
66
67
|
}));
|
|
67
68
|
}
|
|
@@ -73,7 +74,7 @@ function convertTakeTokens(tokens) {
|
|
|
73
74
|
giveToken: t.fromTokenAddress,
|
|
74
75
|
takeTokenChain: t.takeTokenChainId,
|
|
75
76
|
takeToken: addressToHex(realChainId, t.takeTokenAddress),
|
|
76
|
-
numerator:
|
|
77
|
+
numerator: parseIntegerString(t.numerator),
|
|
77
78
|
denominator: Number(t.denominator),
|
|
78
79
|
};
|
|
79
80
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evm-intent-id.js","sourceRoot":"","sources":["../../../src/helpers/evm-intent-id.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAE7E,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;
|
|
1
|
+
{"version":3,"file":"evm-intent-id.js","sourceRoot":"","sources":["../../../src/helpers/evm-intent-id.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { WETH_CONTRACTS } from "../whitelists/evm/index.js";
|
|
2
2
|
import { SPL_NATIVE_MINT } from "../whitelists/solana/programs.js";
|
|
3
|
-
import { ChainId } from "../types/enums.js";
|
|
4
|
-
import { isNativeToken } from "./address.js";
|
|
3
|
+
import { ChainEngine, ChainId } from "../types/enums.js";
|
|
4
|
+
import { getChainEngine, isNativeToken } from "./address.js";
|
|
5
5
|
// Re-export for convenience — callers that only need isNativeToken
|
|
6
6
|
// don't have to know about address.ts
|
|
7
7
|
export { isNativeToken } from "./address.js";
|
|
@@ -14,7 +14,7 @@ export function resolveWrappedTokenAddress(tokenAddress, realChainId) {
|
|
|
14
14
|
if (!isNativeToken(tokenAddress, realChainId)) {
|
|
15
15
|
return tokenAddress;
|
|
16
16
|
}
|
|
17
|
-
if (realChainId ===
|
|
17
|
+
if (getChainEngine(realChainId) === ChainEngine.Solana) {
|
|
18
18
|
return SPL_NATIVE_MINT;
|
|
19
19
|
}
|
|
20
20
|
const wethAddresses = WETH_CONTRACTS[realChainId] ?? WETH_CONTRACTS[ChainId.Wildcard];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evm-token.js","sourceRoot":"","sources":["../../../src/helpers/evm-token.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"evm-token.js","sourceRoot":"","sources":["../../../src/helpers/evm-token.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1D,mEAAmE;AACnE,sCAAsC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C,kGAAkG;AAClG,iEAAiE;AACjE,6DAA6D;AAC7D,wDAAwD;AACxD,iDAAiD;AACjD,MAAM,UAAU,0BAA0B,CACtC,YAAoB,EACpB,WAAoB;IAEpB,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,WAAW,CAAC,EAAE,CAAC;QAC5C,OAAO,YAAY,CAAC;IACxB,CAAC;IACD,IAAI,cAAc,CAAC,WAAW,CAAC,KAAK,WAAW,CAAC,MAAM,EAAE,CAAC;QACrD,OAAO,eAAe,CAAC;IAC3B,CAAC;IACD,MAAM,aAAa,GAAG,cAAc,CAAC,WAAW,CAAC,IAAI,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACtF,IAAI,CAAC,aAAa,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACnE,OAAO,aAAa,CAAC,CAAC,CAAC,CAAC;AAC5B,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { ViolationCode, } from "../types/index.js";
|
|
2
2
|
import { normalizeAddress } from "./address.js";
|
|
3
3
|
import { resolveWrappedTokenAddress } from "./evm-token.js";
|
|
4
|
+
import { parseIntegerString } from "./integer.js";
|
|
4
5
|
// Sums `response.trades[i].srcChainTokenIn.amount` over trades whose input
|
|
5
6
|
// token resolves to the given address. Returns `skip` only when the response
|
|
6
7
|
// has fewer trades than the request (a separate Violation is already raised
|
|
@@ -34,7 +35,7 @@ export function sumTradeAmounts(trades, tokenAddress, realChainId, responseTrade
|
|
|
34
35
|
}
|
|
35
36
|
const responseAmount = responseTrade.srcChainTokenIn.amount;
|
|
36
37
|
try {
|
|
37
|
-
sum +=
|
|
38
|
+
sum += parseIntegerString(responseAmount);
|
|
38
39
|
}
|
|
39
40
|
catch {
|
|
40
41
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evm-trade-amounts.js","sourceRoot":"","sources":["../../../src/helpers/evm-trade-amounts.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,aAAa,GAIhB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"evm-trade-amounts.js","sourceRoot":"","sources":["../../../src/helpers/evm-trade-amounts.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,aAAa,GAIhB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAO/C,2EAA2E;AAC3E,6EAA6E;AAC7E,4EAA4E;AAC5E,6EAA6E;AAC7E,EAAE;AACF,8EAA8E;AAC9E,4EAA4E;AAC5E,qEAAqE;AACrE,6EAA6E;AAC7E,6EAA6E;AAC7E,+CAA+C;AAC/C,MAAM,UAAU,eAAe,CAC3B,MAAsB,EACtB,YAAoB,EACpB,WAAoB,EACpB,cAA6C;IAE7C,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,IAAI,UAAU,GAAG,KAAK,CAAC;IACvB,6FAA6F;IAC7F,MAAM,aAAa,GAAG,0BAA0B,CAAC,YAAY,EAAE,WAAW,CAAC,IAAI,YAAY,CAAC;IAC5F,MAAM,UAAU,GAAG,gBAAgB,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IAEhE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACxB,MAAM,kBAAkB,GAAG,0BAA0B,CAAC,KAAK,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;QAC1F,MAAM,oBAAoB,GAAG,gBAAgB,CACzC,WAAW,EAAE,kBAAkB,IAAI,KAAK,CAAC,eAAe,CAC3D,CAAC;QACF,IAAI,oBAAoB,KAAK,UAAU,EAAE,CAAC;YACtC,SAAS;QACb,CAAC;QAED,UAAU,GAAG,IAAI,CAAC;QAClB,MAAM,aAAa,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;QACxC,qEAAqE;QACrE,uBAAuB;QACvB,IAAI,CAAC,aAAa,EAAE,CAAC;YACjB,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAC1B,CAAC;QAED,MAAM,cAAc,GAAG,aAAa,CAAC,eAAe,CAAC,MAAM,CAAC;QAC5D,IAAI,CAAC;YACD,GAAG,IAAI,kBAAkB,CAAC,cAAc,CAAC,CAAC;QAC9C,CAAC;QAAC,MAAM,CAAC;YACL,OAAO;gBACH,UAAU,EAAE,CAAC;wBACT,IAAI,EAAE,aAAa,CAAC,kBAAkB;wBACtC,OAAO,EACH,gEAAgE;wBACpE,IAAI,EAAE,mBAAmB,CAAC,0BAA0B;wBACpD,MAAM,EAAE,cAAc;qBACzB,CAAC;aACL,CAAC;QACN,CAAC;IACL,CAAC;IAED,oDAAoD;IACpD,IAAI,CAAC,UAAU;QAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;IAEpC,OAAO,EAAE,GAAG,EAAE,CAAC;AACnB,CAAC"}
|
|
@@ -1,14 +1,13 @@
|
|
|
1
|
-
// Helpers that derive the user-controlled
|
|
2
|
-
//
|
|
3
|
-
//
|
|
4
|
-
//
|
|
5
|
-
//
|
|
6
|
-
// the Solana
|
|
7
|
-
//
|
|
8
|
-
// request
|
|
9
|
-
//
|
|
10
|
-
//
|
|
11
|
-
// `undefined` and the caller skips the check.
|
|
1
|
+
// Helpers that derive the user-controlled delegate value from request trades.
|
|
2
|
+
// When a chain has a configured solver executor, intent.srcAllowedSender is
|
|
3
|
+
// hardcoded to that executor. Otherwise the API uses the first request
|
|
4
|
+
// srcAllowedSender as the selected delegate. The same selected delegate also
|
|
5
|
+
// appears in scoped action fields such as EVM Sign712MetaMaskCaveats
|
|
6
|
+
// data.message.delegate and the Solana SignTransaction feePayer.
|
|
7
|
+
//
|
|
8
|
+
// Without a request-side value the API substitutes its own per-chain
|
|
9
|
+
// delegateAddress from config; we have no whitelist for that fallback, so
|
|
10
|
+
// these helpers return undefined and the caller skips the check.
|
|
12
11
|
// True when the API hardcodes `intent.srcAllowedSender` to a configured
|
|
13
12
|
// solver executor on this chain.
|
|
14
13
|
export function hasSolverExecutorOverride(solverExecutorContracts, chainId) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expected-delegate.js","sourceRoot":"","sources":["../../../src/helpers/expected-delegate.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"expected-delegate.js","sourceRoot":"","sources":["../../../src/helpers/expected-delegate.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,4EAA4E;AAC5E,uEAAuE;AACvE,6EAA6E;AAC7E,qEAAqE;AACrE,iEAAiE;AACjE,EAAE;AACF,qEAAqE;AACrE,0EAA0E;AAC1E,iEAAiE;AAMjE,wEAAwE;AACxE,iCAAiC;AACjC,MAAM,UAAU,yBAAyB,CACrC,uBAAwC,EACxC,OAAgB;IAEhB,OAAO,CAAC,uBAAuB,CAAC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AAC/D,CAAC;AAED,iEAAiE;AACjE,sEAAsE;AACtE,uEAAuE;AACvE,oDAAoD;AACpD,MAAM,UAAU,yBAAyB,CACrC,MAA+B;IAE/B,OAAO,MAAM;SACR,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC;SAC5B,IAAI,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC;AACnD,CAAC;AAED,0EAA0E;AAC1E,uEAAuE;AACvE,uEAAuE;AACvE,yCAAyC;AACzC,MAAM,UAAU,6BAA6B,CACzC,MAA+B,EAC/B,kBAA0B;IAE1B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QACzB,IACI,KAAK,CAAC,UAAU,KAAK,kBAAkB;eACpC,KAAK,CAAC,gBAAgB,KAAK,SAAS,EACzC,CAAC;YACC,OAAO,KAAK,CAAC,gBAAgB,CAAC;QAClC,CAAC;IACL,CAAC;IACD,OAAO,SAAS,CAAC;AACrB,CAAC"}
|