@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
|
@@ -1,9 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DELEGATION_MANAGER_CONTRACTS = void 0;
|
|
3
|
+
exports.DELEGATION_MANAGER_CONTRACTS = exports.AVALANCHE_DELEGATION_MANAGER = exports.DEFAULT_DELEGATION_MANAGER = void 0;
|
|
4
4
|
const enums_1 = require("../../types/enums");
|
|
5
|
+
const types_1 = require("../types");
|
|
6
|
+
const metamask_delegation_chains_1 = require("./metamask-delegation-chains");
|
|
5
7
|
// See: https://docs.metamask.io/smart-accounts-kit/changelog/0.13.0#delegation-framework
|
|
8
|
+
exports.DEFAULT_DELEGATION_MANAGER = "0xdb9B1e94B5b69Df7e401DDbedE43491141047dB3";
|
|
9
|
+
exports.AVALANCHE_DELEGATION_MANAGER = "0xAe210fcd400801CFd06F2Ae831571363634F673A";
|
|
6
10
|
exports.DELEGATION_MANAGER_CONTRACTS = {
|
|
7
|
-
|
|
11
|
+
...(0, types_1.buildSameAddressMap)(metamask_delegation_chains_1.METAMASK_DEFAULT_EVM_CHAINS, exports.DEFAULT_DELEGATION_MANAGER),
|
|
12
|
+
[enums_1.ChainId.Avalanche]: [exports.AVALANCHE_DELEGATION_MANAGER],
|
|
8
13
|
};
|
|
9
14
|
//# sourceMappingURL=delegation-manager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delegation-manager.js","sourceRoot":"","sources":["../../../../src/whitelists/evm/delegation-manager.ts"],"names":[],"mappings":";;;AAAA,6CAA4C;
|
|
1
|
+
{"version":3,"file":"delegation-manager.js","sourceRoot":"","sources":["../../../../src/whitelists/evm/delegation-manager.ts"],"names":[],"mappings":";;;AAAA,6CAA4C;AAC5C,oCAAgE;AAChE,6EAA2E;AAE3E,yFAAyF;AAE5E,QAAA,0BAA0B,GAAG,4CAA4C,CAAC;AAC1E,QAAA,4BAA4B,GAAG,4CAA4C,CAAC;AAE5E,QAAA,4BAA4B,GAAoB;IACzD,GAAG,IAAA,2BAAmB,EAAC,wDAA2B,EAAE,kCAA0B,CAAC;IAC/E,CAAC,eAAO,CAAC,SAAS,CAAC,EAAE,CAAC,oCAA4B,CAAC;CAC7C,CAAC"}
|
|
@@ -1,8 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.EIP7702_DELEGATION_CONTRACTS = void 0;
|
|
3
|
+
exports.EIP7702_DELEGATION_CONTRACTS = exports.AVALANCHE_EIP7702_STATELESS_DELEGATOR_IMPL = exports.DEFAULT_EIP7702_STATELESS_DELEGATOR_IMPL = void 0;
|
|
4
4
|
const enums_1 = require("../../types/enums");
|
|
5
|
+
const types_1 = require("../types");
|
|
6
|
+
const metamask_delegation_chains_1 = require("./metamask-delegation-chains");
|
|
7
|
+
exports.DEFAULT_EIP7702_STATELESS_DELEGATOR_IMPL = "0x63c0c19a282a1B52b07dD5a65b58948A07DAE32B";
|
|
8
|
+
exports.AVALANCHE_EIP7702_STATELESS_DELEGATOR_IMPL = "0x5E52D56A42320997aD2F89512a62cCA5C90d181d";
|
|
5
9
|
exports.EIP7702_DELEGATION_CONTRACTS = {
|
|
6
|
-
|
|
10
|
+
...(0, types_1.buildSameAddressMap)(metamask_delegation_chains_1.METAMASK_DEFAULT_EVM_CHAINS, exports.DEFAULT_EIP7702_STATELESS_DELEGATOR_IMPL),
|
|
11
|
+
[enums_1.ChainId.Avalanche]: [exports.AVALANCHE_EIP7702_STATELESS_DELEGATOR_IMPL],
|
|
7
12
|
};
|
|
8
13
|
//# sourceMappingURL=eip7702-delegation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eip7702-delegation.js","sourceRoot":"","sources":["../../../../src/whitelists/evm/eip7702-delegation.ts"],"names":[],"mappings":";;;AAAA,6CAA4C;
|
|
1
|
+
{"version":3,"file":"eip7702-delegation.js","sourceRoot":"","sources":["../../../../src/whitelists/evm/eip7702-delegation.ts"],"names":[],"mappings":";;;AAAA,6CAA4C;AAC5C,oCAAgE;AAChE,6EAA2E;AAE9D,QAAA,wCAAwC,GAAG,4CAA4C,CAAC;AACxF,QAAA,0CAA0C,GAAG,4CAA4C,CAAC;AAE1F,QAAA,4BAA4B,GAAoB;IACzD,GAAG,IAAA,2BAAmB,EAAC,wDAA2B,EAAE,gDAAwC,CAAC;IAC7F,CAAC,eAAO,CAAC,SAAS,CAAC,EAAE,CAAC,kDAA0C,CAAC;CAC3D,CAAC"}
|
|
@@ -1,17 +1,30 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.WETH_CONTRACTS = exports.PERMIT2_CONTRACTS = exports.TIMESTAMP_ENFORCER_CONTRACTS = exports.ID_ENFORCER_CONTRACTS = exports.EXACT_EXECUTION_BATCH_ENFORCER_CONTRACTS = exports.EXACT_EXECUTION_ENFORCER_CONTRACTS = exports.DELEGATION_MANAGER_CONTRACTS = exports.EIP7702_DELEGATION_CONTRACTS = void 0;
|
|
3
|
+
exports.WETH_CONTRACTS = exports.DEFAULT_PERMIT2_ADDRESS = exports.PERMIT2_CONTRACTS = exports.AVALANCHE_TIMESTAMP_ENFORCER = exports.AVALANCHE_ID_ENFORCER = exports.AVALANCHE_EXACT_EXECUTION_BATCH_ENFORCER = exports.AVALANCHE_EXACT_EXECUTION_ENFORCER = exports.DEFAULT_TIMESTAMP_ENFORCER = exports.DEFAULT_ID_ENFORCER = exports.DEFAULT_EXACT_EXECUTION_BATCH_ENFORCER = exports.DEFAULT_EXACT_EXECUTION_ENFORCER = exports.TIMESTAMP_ENFORCER_CONTRACTS = exports.ID_ENFORCER_CONTRACTS = exports.EXACT_EXECUTION_BATCH_ENFORCER_CONTRACTS = exports.EXACT_EXECUTION_ENFORCER_CONTRACTS = exports.AVALANCHE_DELEGATION_MANAGER = exports.DEFAULT_DELEGATION_MANAGER = exports.DELEGATION_MANAGER_CONTRACTS = exports.AVALANCHE_EIP7702_STATELESS_DELEGATOR_IMPL = exports.DEFAULT_EIP7702_STATELESS_DELEGATOR_IMPL = exports.EIP7702_DELEGATION_CONTRACTS = void 0;
|
|
4
4
|
var eip7702_delegation_1 = require("./eip7702-delegation");
|
|
5
5
|
Object.defineProperty(exports, "EIP7702_DELEGATION_CONTRACTS", { enumerable: true, get: function () { return eip7702_delegation_1.EIP7702_DELEGATION_CONTRACTS; } });
|
|
6
|
+
Object.defineProperty(exports, "DEFAULT_EIP7702_STATELESS_DELEGATOR_IMPL", { enumerable: true, get: function () { return eip7702_delegation_1.DEFAULT_EIP7702_STATELESS_DELEGATOR_IMPL; } });
|
|
7
|
+
Object.defineProperty(exports, "AVALANCHE_EIP7702_STATELESS_DELEGATOR_IMPL", { enumerable: true, get: function () { return eip7702_delegation_1.AVALANCHE_EIP7702_STATELESS_DELEGATOR_IMPL; } });
|
|
6
8
|
var delegation_manager_1 = require("./delegation-manager");
|
|
7
9
|
Object.defineProperty(exports, "DELEGATION_MANAGER_CONTRACTS", { enumerable: true, get: function () { return delegation_manager_1.DELEGATION_MANAGER_CONTRACTS; } });
|
|
10
|
+
Object.defineProperty(exports, "DEFAULT_DELEGATION_MANAGER", { enumerable: true, get: function () { return delegation_manager_1.DEFAULT_DELEGATION_MANAGER; } });
|
|
11
|
+
Object.defineProperty(exports, "AVALANCHE_DELEGATION_MANAGER", { enumerable: true, get: function () { return delegation_manager_1.AVALANCHE_DELEGATION_MANAGER; } });
|
|
8
12
|
var caveat_enforcers_1 = require("./caveat-enforcers");
|
|
9
13
|
Object.defineProperty(exports, "EXACT_EXECUTION_ENFORCER_CONTRACTS", { enumerable: true, get: function () { return caveat_enforcers_1.EXACT_EXECUTION_ENFORCER_CONTRACTS; } });
|
|
10
14
|
Object.defineProperty(exports, "EXACT_EXECUTION_BATCH_ENFORCER_CONTRACTS", { enumerable: true, get: function () { return caveat_enforcers_1.EXACT_EXECUTION_BATCH_ENFORCER_CONTRACTS; } });
|
|
11
15
|
Object.defineProperty(exports, "ID_ENFORCER_CONTRACTS", { enumerable: true, get: function () { return caveat_enforcers_1.ID_ENFORCER_CONTRACTS; } });
|
|
12
16
|
Object.defineProperty(exports, "TIMESTAMP_ENFORCER_CONTRACTS", { enumerable: true, get: function () { return caveat_enforcers_1.TIMESTAMP_ENFORCER_CONTRACTS; } });
|
|
17
|
+
Object.defineProperty(exports, "DEFAULT_EXACT_EXECUTION_ENFORCER", { enumerable: true, get: function () { return caveat_enforcers_1.DEFAULT_EXACT_EXECUTION_ENFORCER; } });
|
|
18
|
+
Object.defineProperty(exports, "DEFAULT_EXACT_EXECUTION_BATCH_ENFORCER", { enumerable: true, get: function () { return caveat_enforcers_1.DEFAULT_EXACT_EXECUTION_BATCH_ENFORCER; } });
|
|
19
|
+
Object.defineProperty(exports, "DEFAULT_ID_ENFORCER", { enumerable: true, get: function () { return caveat_enforcers_1.DEFAULT_ID_ENFORCER; } });
|
|
20
|
+
Object.defineProperty(exports, "DEFAULT_TIMESTAMP_ENFORCER", { enumerable: true, get: function () { return caveat_enforcers_1.DEFAULT_TIMESTAMP_ENFORCER; } });
|
|
21
|
+
Object.defineProperty(exports, "AVALANCHE_EXACT_EXECUTION_ENFORCER", { enumerable: true, get: function () { return caveat_enforcers_1.AVALANCHE_EXACT_EXECUTION_ENFORCER; } });
|
|
22
|
+
Object.defineProperty(exports, "AVALANCHE_EXACT_EXECUTION_BATCH_ENFORCER", { enumerable: true, get: function () { return caveat_enforcers_1.AVALANCHE_EXACT_EXECUTION_BATCH_ENFORCER; } });
|
|
23
|
+
Object.defineProperty(exports, "AVALANCHE_ID_ENFORCER", { enumerable: true, get: function () { return caveat_enforcers_1.AVALANCHE_ID_ENFORCER; } });
|
|
24
|
+
Object.defineProperty(exports, "AVALANCHE_TIMESTAMP_ENFORCER", { enumerable: true, get: function () { return caveat_enforcers_1.AVALANCHE_TIMESTAMP_ENFORCER; } });
|
|
13
25
|
var permit2_1 = require("./permit2");
|
|
14
26
|
Object.defineProperty(exports, "PERMIT2_CONTRACTS", { enumerable: true, get: function () { return permit2_1.PERMIT2_CONTRACTS; } });
|
|
27
|
+
Object.defineProperty(exports, "DEFAULT_PERMIT2_ADDRESS", { enumerable: true, get: function () { return permit2_1.DEFAULT_PERMIT2_ADDRESS; } });
|
|
15
28
|
var weth_1 = require("./weth");
|
|
16
29
|
Object.defineProperty(exports, "WETH_CONTRACTS", { enumerable: true, get: function () { return weth_1.WETH_CONTRACTS; } });
|
|
17
30
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/whitelists/evm/index.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/whitelists/evm/index.ts"],"names":[],"mappings":";;;AAAA,2DAI8B;AAH1B,kIAAA,4BAA4B,OAAA;AAC5B,8IAAA,wCAAwC,OAAA;AACxC,gJAAA,0CAA0C,OAAA;AAE9C,2DAI8B;AAH1B,kIAAA,4BAA4B,OAAA;AAC5B,gIAAA,0BAA0B,OAAA;AAC1B,kIAAA,4BAA4B,OAAA;AAEhC,uDAa4B;AAZxB,sIAAA,kCAAkC,OAAA;AAClC,4IAAA,wCAAwC,OAAA;AACxC,yHAAA,qBAAqB,OAAA;AACrB,gIAAA,4BAA4B,OAAA;AAC5B,oIAAA,gCAAgC,OAAA;AAChC,0IAAA,sCAAsC,OAAA;AACtC,uHAAA,mBAAmB,OAAA;AACnB,8HAAA,0BAA0B,OAAA;AAC1B,sIAAA,kCAAkC,OAAA;AAClC,4IAAA,wCAAwC,OAAA;AACxC,yHAAA,qBAAqB,OAAA;AACrB,gIAAA,4BAA4B,OAAA;AAEhC,qCAAuE;AAA9D,4GAAA,iBAAiB,OAAA;AAAE,kHAAA,uBAAuB,OAAA;AACnD,+BAAwC;AAA/B,sGAAA,cAAc,OAAA"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.METAMASK_DEFAULT_EVM_CHAINS = void 0;
|
|
4
|
+
const enums_1 = require("../../types/enums");
|
|
5
|
+
// Chains where MetaMask Delegation Framework uses the "default" set of contract addresses
|
|
6
|
+
// (DelegationManager, EIP7702StatelessDeleGatorImpl, caveat enforcers).
|
|
7
|
+
// Avalanche has a separate, chain-specific deployment and is handled separately.
|
|
8
|
+
exports.METAMASK_DEFAULT_EVM_CHAINS = [
|
|
9
|
+
enums_1.ChainId.Ethereum,
|
|
10
|
+
enums_1.ChainId.Optimism,
|
|
11
|
+
enums_1.ChainId.BNB,
|
|
12
|
+
enums_1.ChainId.Polygon,
|
|
13
|
+
enums_1.ChainId.Base,
|
|
14
|
+
enums_1.ChainId.Arbitrum,
|
|
15
|
+
];
|
|
16
|
+
//# sourceMappingURL=metamask-delegation-chains.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metamask-delegation-chains.js","sourceRoot":"","sources":["../../../../src/whitelists/evm/metamask-delegation-chains.ts"],"names":[],"mappings":";;;AAAA,6CAA4C;AAE5C,0FAA0F;AAC1F,wEAAwE;AACxE,iFAAiF;AACpE,QAAA,2BAA2B,GAAuB;IAC3D,eAAO,CAAC,QAAQ;IAChB,eAAO,CAAC,QAAQ;IAChB,eAAO,CAAC,GAAG;IACX,eAAO,CAAC,OAAO;IACf,eAAO,CAAC,IAAI;IACZ,eAAO,CAAC,QAAQ;CACV,CAAC"}
|
|
@@ -1,18 +1,22 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.PERMIT2_CONTRACTS = void 0;
|
|
3
|
+
exports.PERMIT2_CONTRACTS = exports.DEFAULT_PERMIT2_ADDRESS = void 0;
|
|
4
4
|
const enums_1 = require("../../types/enums");
|
|
5
|
-
|
|
5
|
+
// Canonical Permit2 contract address (same on every chain it is deployed on).
|
|
6
|
+
exports.DEFAULT_PERMIT2_ADDRESS = "0x000000000022D473030F116dDEE9F6B43aC78BA3";
|
|
6
7
|
exports.PERMIT2_CONTRACTS = {
|
|
7
|
-
[enums_1.ChainId.Ethereum]: [DEFAULT_PERMIT2_ADDRESS],
|
|
8
|
-
[enums_1.ChainId.
|
|
9
|
-
[enums_1.ChainId.
|
|
10
|
-
[enums_1.ChainId.
|
|
11
|
-
[enums_1.ChainId.
|
|
12
|
-
[enums_1.ChainId.
|
|
13
|
-
[enums_1.ChainId.Base]: [DEFAULT_PERMIT2_ADDRESS],
|
|
14
|
-
[enums_1.ChainId.
|
|
15
|
-
|
|
16
|
-
|
|
8
|
+
[enums_1.ChainId.Ethereum]: [exports.DEFAULT_PERMIT2_ADDRESS],
|
|
9
|
+
[enums_1.ChainId.Optimism]: [exports.DEFAULT_PERMIT2_ADDRESS],
|
|
10
|
+
[enums_1.ChainId.BNB]: [exports.DEFAULT_PERMIT2_ADDRESS],
|
|
11
|
+
[enums_1.ChainId.Polygon]: [exports.DEFAULT_PERMIT2_ADDRESS],
|
|
12
|
+
[enums_1.ChainId.Monad]: [exports.DEFAULT_PERMIT2_ADDRESS],
|
|
13
|
+
[enums_1.ChainId.MegaETH]: [exports.DEFAULT_PERMIT2_ADDRESS],
|
|
14
|
+
[enums_1.ChainId.Base]: [exports.DEFAULT_PERMIT2_ADDRESS],
|
|
15
|
+
[enums_1.ChainId.Arbitrum]: [exports.DEFAULT_PERMIT2_ADDRESS],
|
|
16
|
+
[enums_1.ChainId.Avalanche]: [exports.DEFAULT_PERMIT2_ADDRESS],
|
|
17
|
+
[enums_1.ChainId.Linea]: [exports.DEFAULT_PERMIT2_ADDRESS],
|
|
18
|
+
// No Permit2 deployment on:
|
|
19
|
+
// Cronos, Gnosis, Sonic, Flow, HyperEVM, Sei, Story, Injective, Mantle,
|
|
20
|
+
// Bob, Tron.
|
|
17
21
|
};
|
|
18
22
|
//# sourceMappingURL=permit2.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permit2.js","sourceRoot":"","sources":["../../../../src/whitelists/evm/permit2.ts"],"names":[],"mappings":";;;AAAA,6CAA4C;AAG5C,
|
|
1
|
+
{"version":3,"file":"permit2.js","sourceRoot":"","sources":["../../../../src/whitelists/evm/permit2.ts"],"names":[],"mappings":";;;AAAA,6CAA4C;AAG5C,8EAA8E;AACjE,QAAA,uBAAuB,GAAG,4CAA4C,CAAC;AAEvE,QAAA,iBAAiB,GAAoB;IAC9C,CAAC,eAAO,CAAC,QAAQ,CAAC,EAAG,CAAC,+BAAuB,CAAC;IAC9C,CAAC,eAAO,CAAC,QAAQ,CAAC,EAAG,CAAC,+BAAuB,CAAC;IAC9C,CAAC,eAAO,CAAC,GAAG,CAAC,EAAQ,CAAC,+BAAuB,CAAC;IAC9C,CAAC,eAAO,CAAC,OAAO,CAAC,EAAI,CAAC,+BAAuB,CAAC;IAC9C,CAAC,eAAO,CAAC,KAAK,CAAC,EAAM,CAAC,+BAAuB,CAAC;IAC9C,CAAC,eAAO,CAAC,OAAO,CAAC,EAAI,CAAC,+BAAuB,CAAC;IAC9C,CAAC,eAAO,CAAC,IAAI,CAAC,EAAO,CAAC,+BAAuB,CAAC;IAC9C,CAAC,eAAO,CAAC,QAAQ,CAAC,EAAG,CAAC,+BAAuB,CAAC;IAC9C,CAAC,eAAO,CAAC,SAAS,CAAC,EAAE,CAAC,+BAAuB,CAAC;IAC9C,CAAC,eAAO,CAAC,KAAK,CAAC,EAAM,CAAC,+BAAuB,CAAC;IAC9C,4BAA4B;IAC5B,2EAA2E;IAC3E,gBAAgB;CACV,CAAC"}
|
|
@@ -2,18 +2,29 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.WETH_CONTRACTS = void 0;
|
|
4
4
|
const enums_1 = require("../../types/enums");
|
|
5
|
+
// Wrapped native token ("WETH") addresses for chains where deBridge intent contracts are deployed.
|
|
5
6
|
exports.WETH_CONTRACTS = {
|
|
6
7
|
[enums_1.ChainId.Ethereum]: ["0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"],
|
|
8
|
+
[enums_1.ChainId.Optimism]: ["0x4200000000000000000000000000000000000006"],
|
|
9
|
+
[enums_1.ChainId.Cronos]: ["0x5c7f8a570d578ed84e63fdfa7b1ee72deae1ae23"],
|
|
7
10
|
[enums_1.ChainId.BNB]: ["0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c"],
|
|
11
|
+
[enums_1.ChainId.Gnosis]: ["0x6A023CCd1ff6F2045C3309768eAd9E68F978f6e1"],
|
|
8
12
|
[enums_1.ChainId.Polygon]: ["0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270"],
|
|
13
|
+
[enums_1.ChainId.Monad]: ["0x3bd359c1119da7da1d913d1c4d2b7c461115433a"],
|
|
14
|
+
[enums_1.ChainId.Sonic]: ["0x039e2fB66102314Ce7b64Ce5Ce3E5183bc94aD38"],
|
|
15
|
+
[enums_1.ChainId.Flow]: ["0xd3bf53dac106a0290b0483ecbc89d40fcc961f3e"],
|
|
16
|
+
[enums_1.ChainId.HyperEVM]: ["0x5555555555555555555555555555555555555555"],
|
|
17
|
+
[enums_1.ChainId.Sei]: ["0xE30feDd158A2e3b13e9badaeABaFc5516e95e8C7"],
|
|
18
|
+
[enums_1.ChainId.Story]: ["0x1514000000000000000000000000000000000000"],
|
|
19
|
+
[enums_1.ChainId.Injective]: ["0x0000000088827d2d103ee2d9A6b781773AE03FfB"],
|
|
20
|
+
[enums_1.ChainId.MegaETH]: ["0x4200000000000000000000000000000000000006"],
|
|
21
|
+
[enums_1.ChainId.Mantle]: ["0x78c1b0C915c4FAA5FffA6CAbf0219DA63d7f4cb8"],
|
|
22
|
+
[enums_1.ChainId.Base]: ["0x4200000000000000000000000000000000000006"],
|
|
9
23
|
[enums_1.ChainId.Arbitrum]: ["0x82aF49447D8a07e3bd95BD0d56f35241523fBab1"],
|
|
10
24
|
[enums_1.ChainId.Avalanche]: ["0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7"],
|
|
11
25
|
[enums_1.ChainId.Linea]: ["0xe5D7C2a44FfDDf6b295A15c148167daaAf5Cf34f"],
|
|
12
|
-
[enums_1.ChainId.
|
|
13
|
-
[enums_1.ChainId.Optimism]: ["0x4200000000000000000000000000000000000006"],
|
|
14
|
-
// Gnosis: no WETH
|
|
15
|
-
[enums_1.ChainId.Sonic]: ["0x039e2fB66102314Ce7b64Ce5Ce3E5183bc94aD38"],
|
|
16
|
-
// TODO: add other chains
|
|
26
|
+
[enums_1.ChainId.Bob]: ["0x4200000000000000000000000000000000000006"],
|
|
17
27
|
[enums_1.ChainId.Tron]: ["0x891cdb91d149f23B1a45D9c5Ca78a88d0cB44C18"],
|
|
28
|
+
// No WETH deployment on: Neon, Metis
|
|
18
29
|
};
|
|
19
30
|
//# sourceMappingURL=weth.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"weth.js","sourceRoot":"","sources":["../../../../src/whitelists/evm/weth.ts"],"names":[],"mappings":";;;AAAA,6CAA4C;
|
|
1
|
+
{"version":3,"file":"weth.js","sourceRoot":"","sources":["../../../../src/whitelists/evm/weth.ts"],"names":[],"mappings":";;;AAAA,6CAA4C;AAG5C,mGAAmG;AAEtF,QAAA,cAAc,GAAoB;IAC3C,CAAC,eAAO,CAAC,QAAQ,CAAC,EAAG,CAAC,4CAA4C,CAAC;IACnE,CAAC,eAAO,CAAC,QAAQ,CAAC,EAAG,CAAC,4CAA4C,CAAC;IACnE,CAAC,eAAO,CAAC,MAAM,CAAC,EAAK,CAAC,4CAA4C,CAAC;IACnE,CAAC,eAAO,CAAC,GAAG,CAAC,EAAQ,CAAC,4CAA4C,CAAC;IACnE,CAAC,eAAO,CAAC,MAAM,CAAC,EAAK,CAAC,4CAA4C,CAAC;IACnE,CAAC,eAAO,CAAC,OAAO,CAAC,EAAI,CAAC,4CAA4C,CAAC;IACnE,CAAC,eAAO,CAAC,KAAK,CAAC,EAAM,CAAC,4CAA4C,CAAC;IACnE,CAAC,eAAO,CAAC,KAAK,CAAC,EAAM,CAAC,4CAA4C,CAAC;IACnE,CAAC,eAAO,CAAC,IAAI,CAAC,EAAO,CAAC,4CAA4C,CAAC;IACnE,CAAC,eAAO,CAAC,QAAQ,CAAC,EAAG,CAAC,4CAA4C,CAAC;IACnE,CAAC,eAAO,CAAC,GAAG,CAAC,EAAQ,CAAC,4CAA4C,CAAC;IACnE,CAAC,eAAO,CAAC,KAAK,CAAC,EAAM,CAAC,4CAA4C,CAAC;IACnE,CAAC,eAAO,CAAC,SAAS,CAAC,EAAE,CAAC,4CAA4C,CAAC;IACnE,CAAC,eAAO,CAAC,OAAO,CAAC,EAAI,CAAC,4CAA4C,CAAC;IACnE,CAAC,eAAO,CAAC,MAAM,CAAC,EAAK,CAAC,4CAA4C,CAAC;IACnE,CAAC,eAAO,CAAC,IAAI,CAAC,EAAO,CAAC,4CAA4C,CAAC;IACnE,CAAC,eAAO,CAAC,QAAQ,CAAC,EAAG,CAAC,4CAA4C,CAAC;IACnE,CAAC,eAAO,CAAC,SAAS,CAAC,EAAE,CAAC,4CAA4C,CAAC;IACnE,CAAC,eAAO,CAAC,KAAK,CAAC,EAAM,CAAC,4CAA4C,CAAC;IACnE,CAAC,eAAO,CAAC,GAAG,CAAC,EAAQ,CAAC,4CAA4C,CAAC;IACnE,CAAC,eAAO,CAAC,IAAI,CAAC,EAAO,CAAC,4CAA4C,CAAC;IACnE,qCAAqC;CAC/B,CAAC"}
|
|
@@ -9,7 +9,6 @@ const SIG_PREFIX_BY_ENVIRONMENT = {
|
|
|
9
9
|
[validation_1.Environment.Prod]: "intents_program",
|
|
10
10
|
[validation_1.Environment.Dubai]: "intents_program_dubai",
|
|
11
11
|
[validation_1.Environment.Hanoi]: "intents_program_hanoi",
|
|
12
|
-
[validation_1.Environment.Madrid]: "intents_program_madrid", // TODO: placeholder — update when known
|
|
13
12
|
};
|
|
14
13
|
// "intents" label — constant across all environments
|
|
15
14
|
const INTENTS_LABEL = new Uint8Array([105, 110, 116, 101, 110, 116, 115]);
|
|
@@ -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":";;AAqBA,4DAWC;AAhCD,uDAAqD;AACrD,6CAA4C;AAE5C,qEAAqE;AACrE,8EAA8E;AAC9E,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;AAEF,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;AAS1E,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;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,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE,oBAAoB,EAAE,CAAC;AAChF,CAAC"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.SUBSCRIPTION_TO_CHAIN_ID = void 0;
|
|
4
4
|
exports.resolveChainId = resolveChainId;
|
|
5
|
+
exports.resolveChainIdOrSelf = resolveChainIdOrSelf;
|
|
5
6
|
const enums_1 = require("../types/enums");
|
|
6
7
|
exports.SUBSCRIPTION_TO_CHAIN_ID = {
|
|
7
8
|
[enums_1.SubscriptionId.Ethereum]: enums_1.ChainId.Ethereum,
|
|
@@ -33,4 +34,13 @@ function resolveChainId(subscriptionId) {
|
|
|
33
34
|
// Cast is safe: unknown subscriptionIds simply return undefined
|
|
34
35
|
return exports.SUBSCRIPTION_TO_CHAIN_ID[subscriptionId];
|
|
35
36
|
}
|
|
37
|
+
// Best-effort resolver: returns the real `ChainId` for known subscriptions,
|
|
38
|
+
// otherwise falls back to the input value cast to `ChainId`. Use this only
|
|
39
|
+
// where chain-aware helpers (whose signature requires `ChainId`) need a
|
|
40
|
+
// best-effort answer; for callers that must surface unknown subscriptionIds
|
|
41
|
+
// to the user, call `resolveChainId` directly and emit `UnknownSubscriptionId`
|
|
42
|
+
// on `undefined`.
|
|
43
|
+
function resolveChainIdOrSelf(subscriptionId) {
|
|
44
|
+
return resolveChainId(subscriptionId) ?? subscriptionId;
|
|
45
|
+
}
|
|
36
46
|
//# sourceMappingURL=subscription-to-chain-id.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subscription-to-chain-id.js","sourceRoot":"","sources":["../../../src/whitelists/subscription-to-chain-id.ts"],"names":[],"mappings":";;;AA6BA,wCAGC;
|
|
1
|
+
{"version":3,"file":"subscription-to-chain-id.js","sourceRoot":"","sources":["../../../src/whitelists/subscription-to-chain-id.ts"],"names":[],"mappings":";;;AA6BA,wCAGC;AAQD,oDAEC;AA1CD,0CAAyD;AAE5C,QAAA,wBAAwB,GAAoC;IACrE,CAAC,sBAAc,CAAC,QAAQ,CAAC,EAAE,eAAO,CAAC,QAAQ;IAC3C,CAAC,sBAAc,CAAC,QAAQ,CAAC,EAAE,eAAO,CAAC,QAAQ;IAC3C,CAAC,sBAAc,CAAC,GAAG,CAAC,EAAE,eAAO,CAAC,GAAG;IACjC,CAAC,sBAAc,CAAC,OAAO,CAAC,EAAE,eAAO,CAAC,OAAO;IACzC,CAAC,sBAAc,CAAC,QAAQ,CAAC,EAAE,eAAO,CAAC,QAAQ;IAC3C,CAAC,sBAAc,CAAC,SAAS,CAAC,EAAE,eAAO,CAAC,SAAS;IAC7C,CAAC,sBAAc,CAAC,KAAK,CAAC,EAAE,eAAO,CAAC,KAAK;IACrC,CAAC,sBAAc,CAAC,IAAI,CAAC,EAAE,eAAO,CAAC,IAAI;IACnC,CAAC,sBAAc,CAAC,MAAM,CAAC,EAAE,eAAO,CAAC,MAAM;IACvC,CAAC,sBAAc,CAAC,IAAI,CAAC,EAAE,eAAO,CAAC,IAAI;IACnC,CAAC,sBAAc,CAAC,MAAM,CAAC,EAAE,eAAO,CAAC,MAAM;IACvC,CAAC,sBAAc,CAAC,KAAK,CAAC,EAAE,eAAO,CAAC,KAAK;IACrC,CAAC,sBAAc,CAAC,KAAK,CAAC,EAAE,eAAO,CAAC,KAAK;IACrC,CAAC,sBAAc,CAAC,KAAK,CAAC,EAAE,eAAO,CAAC,KAAK;IACrC,CAAC,sBAAc,CAAC,QAAQ,CAAC,EAAE,eAAO,CAAC,QAAQ;IAC3C,CAAC,sBAAc,CAAC,IAAI,CAAC,EAAE,eAAO,CAAC,IAAI;IACnC,CAAC,sBAAc,CAAC,GAAG,CAAC,EAAE,eAAO,CAAC,GAAG;IACjC,CAAC,sBAAc,CAAC,GAAG,CAAC,EAAE,eAAO,CAAC,GAAG;IACjC,CAAC,sBAAc,CAAC,MAAM,CAAC,EAAE,eAAO,CAAC,MAAM;IACvC,CAAC,sBAAc,CAAC,KAAK,CAAC,EAAE,eAAO,CAAC,KAAK;IACrC,CAAC,sBAAc,CAAC,SAAS,CAAC,EAAE,eAAO,CAAC,SAAS;IAC7C,CAAC,sBAAc,CAAC,OAAO,CAAC,EAAE,eAAO,CAAC,OAAO;IACzC,CAAC,sBAAc,CAAC,MAAM,CAAC,EAAE,eAAO,CAAC,MAAM;IACvC,CAAC,sBAAc,CAAC,IAAI,CAAC,EAAE,eAAO,CAAC,IAAI;CAC7B,CAAC;AAEX,SAAgB,cAAc,CAAC,cAAsB;IACjD,gEAAgE;IAChE,OAAO,gCAAwB,CAAC,cAAgC,CAAC,CAAC;AACtE,CAAC;AAED,4EAA4E;AAC5E,2EAA2E;AAC3E,wEAAwE;AACxE,4EAA4E;AAC5E,+EAA+E;AAC/E,kBAAkB;AAClB,SAAgB,oBAAoB,CAAC,cAAsB;IACvD,OAAO,cAAc,CAAC,cAAc,CAAC,IAAK,cAA0B,CAAC;AACzE,CAAC"}
|
|
@@ -1,11 +1,21 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.buildSameAddressMap = buildSameAddressMap;
|
|
3
4
|
exports.isWhitelisted = isWhitelisted;
|
|
4
5
|
const address_1 = require("../helpers/address");
|
|
5
6
|
const enums_1 = require("../types/enums");
|
|
7
|
+
// Builds a ChainAddressMap with the same address for every chain in the list.
|
|
8
|
+
// Useful for whitelists where one canonical address is deployed on many chains.
|
|
9
|
+
function buildSameAddressMap(chains, address) {
|
|
10
|
+
const map = {};
|
|
11
|
+
for (const chainId of chains) {
|
|
12
|
+
map[chainId] = [address];
|
|
13
|
+
}
|
|
14
|
+
return map;
|
|
15
|
+
}
|
|
6
16
|
function isWhitelisted(map, chainId, address) {
|
|
7
|
-
const
|
|
8
|
-
if (
|
|
17
|
+
const engine = (0, address_1.getChainEngine)(chainId);
|
|
18
|
+
if (engine === enums_1.ChainEngine.Solana) {
|
|
9
19
|
// This function is not supposed to be used for Solana addresses.
|
|
10
20
|
// If it was called with a Solana address, it's likely a bug in the caller's code.
|
|
11
21
|
throw new Error("isWhitelisted() does not support Solana addresses — compare directly");
|
|
@@ -22,7 +32,7 @@ function isWhitelisted(map, chainId, address) {
|
|
|
22
32
|
const wildcard = map[enums_1.ChainId.Wildcard];
|
|
23
33
|
if (!wildcard)
|
|
24
34
|
return false;
|
|
25
|
-
const evmAddress =
|
|
35
|
+
const evmAddress = engine === enums_1.ChainEngine.Tron ? (0, address_1.tronAddressToEvmHex)(address) : address;
|
|
26
36
|
const normalized = evmAddress.toLowerCase();
|
|
27
37
|
return wildcard.some(a => a.toLowerCase() === normalized);
|
|
28
38
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/whitelists/types.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/whitelists/types.ts"],"names":[],"mappings":";;AAgBA,kDASC;AAoBD,sCA6BC;AA1ED,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;AAoBD,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"}
|
|
@@ -1,21 +1,15 @@
|
|
|
1
1
|
import { bytesToHex, zeroAddress } from "viem";
|
|
2
2
|
import bs58 from "bs58";
|
|
3
|
-
import { ChainId } from "../types/enums.js";
|
|
3
|
+
import { ChainEngine, ChainId } from "../types/enums.js";
|
|
4
4
|
import { SYSTEM_PROGRAM } from "../whitelists/solana/index.js";
|
|
5
5
|
// Tron-specific addresses (Base58Check format)
|
|
6
6
|
export const TRON_NATIVE_ADDRESS = "T9yD14Nj9j7xAB4dbGeiX9h8unkKHxuWwb";
|
|
7
|
-
export
|
|
8
|
-
(function (AddressFormat) {
|
|
9
|
-
AddressFormat[AddressFormat["EVM"] = 0] = "EVM";
|
|
10
|
-
AddressFormat[AddressFormat["Tron"] = 1] = "Tron";
|
|
11
|
-
AddressFormat[AddressFormat["Solana"] = 2] = "Solana";
|
|
12
|
-
})(AddressFormat || (AddressFormat = {}));
|
|
13
|
-
export function getAddressFormat(chainId) {
|
|
7
|
+
export function getChainEngine(chainId) {
|
|
14
8
|
if (chainId === ChainId.Tron)
|
|
15
|
-
return
|
|
9
|
+
return ChainEngine.Tron;
|
|
16
10
|
if (chainId === ChainId.Solana)
|
|
17
|
-
return
|
|
18
|
-
return
|
|
11
|
+
return ChainEngine.Solana;
|
|
12
|
+
return ChainEngine.EVM;
|
|
19
13
|
}
|
|
20
14
|
export function isTronAddress(address) {
|
|
21
15
|
if (!address)
|
|
@@ -38,10 +32,26 @@ export function tronAddressToEvmHex(tronAddress) {
|
|
|
38
32
|
const addressBytes = decoded.slice(1, 21);
|
|
39
33
|
return bytesToHex(addressBytes);
|
|
40
34
|
}
|
|
41
|
-
// Normalizes address for comparison based on chain
|
|
35
|
+
// Normalizes address for comparison based on chain engine
|
|
42
36
|
export function normalizeAddress(chainId, address) {
|
|
43
|
-
const
|
|
44
|
-
|
|
37
|
+
const engine = getChainEngine(chainId);
|
|
38
|
+
return applyEngineNormalization(address, engine);
|
|
39
|
+
}
|
|
40
|
+
// Detects the chain engine from the address value alone (no chainId required).
|
|
41
|
+
// Useful when a chain is not fixed (e.g. destinationChainIds = "any").
|
|
42
|
+
export function detectChainEngine(address) {
|
|
43
|
+
if (address.startsWith("0x"))
|
|
44
|
+
return ChainEngine.EVM;
|
|
45
|
+
if (isTronAddress(address))
|
|
46
|
+
return ChainEngine.Tron;
|
|
47
|
+
return ChainEngine.Solana;
|
|
48
|
+
}
|
|
49
|
+
// Normalizes an address using only its own value — no chainId needed.
|
|
50
|
+
export function normalizeAddressByValue(address) {
|
|
51
|
+
return applyEngineNormalization(address, detectChainEngine(address));
|
|
52
|
+
}
|
|
53
|
+
function applyEngineNormalization(address, engine) {
|
|
54
|
+
if (engine === ChainEngine.Tron || engine === ChainEngine.Solana) {
|
|
45
55
|
return address; // case-sensitive
|
|
46
56
|
}
|
|
47
57
|
return address.toLowerCase(); // EVM: case-insensitive
|
|
@@ -50,12 +60,33 @@ export function normalizeAddress(chainId, address) {
|
|
|
50
60
|
export function addressEquals(chainId, a, b) {
|
|
51
61
|
return normalizeAddress(chainId, a) === normalizeAddress(chainId, b);
|
|
52
62
|
}
|
|
53
|
-
//
|
|
63
|
+
// Raw byte representation, used when an address flows into the intent ID
|
|
64
|
+
// keccak256 hash. EVM → 20 bytes, Tron → 20 bytes (after stripping 0x41
|
|
65
|
+
// prefix and checksum), Solana → 32 bytes (base58, no checksum).
|
|
66
|
+
export function addressToHex(chainId, address) {
|
|
67
|
+
return applyEngineToHex(address, getChainEngine(chainId));
|
|
68
|
+
}
|
|
69
|
+
// Same as addressToHex but infers the engine from the address value alone.
|
|
70
|
+
// Use when the chainId is unknown (e.g. destinationChainIds = "any").
|
|
71
|
+
export function addressToHexByValue(address) {
|
|
72
|
+
return applyEngineToHex(address, detectChainEngine(address));
|
|
73
|
+
}
|
|
74
|
+
function applyEngineToHex(address, engine) {
|
|
75
|
+
if (engine === ChainEngine.EVM) {
|
|
76
|
+
return address.toLowerCase();
|
|
77
|
+
}
|
|
78
|
+
if (engine === ChainEngine.Tron) {
|
|
79
|
+
return tronAddressToEvmHex(address);
|
|
80
|
+
}
|
|
81
|
+
return bytesToHex(bs58.decode(address));
|
|
82
|
+
}
|
|
83
|
+
// Checks if address is the native token for the given chain.
|
|
54
84
|
export function isNativeToken(address, chainId) {
|
|
55
|
-
|
|
85
|
+
const engine = getChainEngine(chainId);
|
|
86
|
+
if (engine === ChainEngine.Tron) {
|
|
56
87
|
return address === TRON_NATIVE_ADDRESS;
|
|
57
88
|
}
|
|
58
|
-
if (
|
|
89
|
+
if (engine === ChainEngine.Solana) {
|
|
59
90
|
return address === SYSTEM_PROGRAM;
|
|
60
91
|
}
|
|
61
92
|
return address.toLowerCase() === zeroAddress;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"address.js","sourceRoot":"","sources":["../../../src/helpers/address.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC;AAC/C,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"address.js","sourceRoot":"","sources":["../../../src/helpers/address.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { EvmActionKind } from "../types/index.js";
|
|
2
|
-
// Transaction and
|
|
2
|
+
// Transaction and Sign712MetaMaskCaveats actions carry transactionCalls;
|
|
3
3
|
// Sign712 (Permit/Permit2) and Sign7702Authorization do not.
|
|
4
4
|
export function actionUsesTransactionCalls(action) {
|
|
5
5
|
return action.type === EvmActionKind.Transaction
|
|
6
|
-
|| action.type === EvmActionKind.
|
|
6
|
+
|| action.type === EvmActionKind.Sign712MetaMaskCaveats;
|
|
7
7
|
}
|
|
8
8
|
// For Transaction-type actions (non-AA), the call is in action.data directly.
|
|
9
|
-
// For
|
|
9
|
+
// For Sign712MetaMaskCaveats-type actions (AA), the calls are in details.transactionCalls.
|
|
10
10
|
export function getTransactionCalls(action) {
|
|
11
11
|
if (action.type === EvmActionKind.Transaction) {
|
|
12
12
|
return [action.data];
|
|
@@ -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;AAEhF,
|
|
1
|
+
{"version":3,"file":"evm-action.js","sourceRoot":"","sources":["../../../src/helpers/evm-action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyC,aAAa,EAAE,MAAM,UAAU,CAAC;AAEhF,yEAAyE;AACzE,6DAA6D;AAC7D,MAAM,UAAU,0BAA0B,CAAC,MAAyB;IAChE,OAAO,MAAM,CAAC,IAAI,KAAK,aAAa,CAAC,WAAW;WACzC,MAAM,CAAC,IAAI,KAAK,aAAa,CAAC,sBAAsB,CAAC;AAChE,CAAC;AAED,8EAA8E;AAC9E,2FAA2F;AAC3F,MAAM,UAAU,mBAAmB,CAAC,MAAyB;IACzD,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa,CAAC,WAAW,EAAE,CAAC;QAC5C,OAAO,CAAC,MAAM,CAAC,IAA0B,CAAC,CAAC;IAC/C,CAAC;IACD,OAAO,MAAM,CAAC,OAAO,EAAE,gBAAgB,IAAI,EAAE,CAAC;AAClD,CAAC"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { concatHex, encodeAbiParameters, zeroAddress } from "viem";
|
|
2
|
+
import { DlnHookType } from "../types/enums.js";
|
|
3
|
+
// Hook envelope: ABI-encoded tuple prefixed with a `uint8 version=1` byte.
|
|
4
|
+
// keccak256 of these bytes is what ends up in `intent.externalCallHash`.
|
|
5
|
+
const ENVELOPE_TUPLE = {
|
|
6
|
+
type: "tuple",
|
|
7
|
+
components: [
|
|
8
|
+
{ name: "fallbackAddress", type: "address" },
|
|
9
|
+
{ name: "executorAddress", type: "address" },
|
|
10
|
+
{ name: "executionFee", type: "uint160" },
|
|
11
|
+
{ name: "allowDelayedExecution", type: "bool" },
|
|
12
|
+
{ name: "requireSuccessfullExecution", type: "bool" },
|
|
13
|
+
{ name: "payload", type: "bytes" },
|
|
14
|
+
],
|
|
15
|
+
};
|
|
16
|
+
const ENVELOPE_VERSION_PREFIX = "0x01";
|
|
17
|
+
export function packEvmHookV1(data) {
|
|
18
|
+
const tuple = encodeAbiParameters([ENVELOPE_TUPLE], [{
|
|
19
|
+
fallbackAddress: data.fallbackAddress,
|
|
20
|
+
executorAddress: data.target,
|
|
21
|
+
executionFee: BigInt(data.reward),
|
|
22
|
+
allowDelayedExecution: data.isNonAtomic,
|
|
23
|
+
requireSuccessfullExecution: data.isSuccessRequired,
|
|
24
|
+
payload: data.targetPayload,
|
|
25
|
+
}]);
|
|
26
|
+
return concatHex([ENVELOPE_VERSION_PREFIX, tuple]);
|
|
27
|
+
}
|
|
28
|
+
// `evm_transaction_call` wraps the user-supplied (to, gas, calldata) tuple in
|
|
29
|
+
// the same envelope, with fixed field values:
|
|
30
|
+
// executionFee = 0
|
|
31
|
+
// allowDelayedExecution = false
|
|
32
|
+
// requireSuccessfullExecution = true
|
|
33
|
+
// fallbackAddress = dstChainAuthorityAddress
|
|
34
|
+
// executorAddress = 0x0
|
|
35
|
+
export function packEvmTransactionCall(data, dstChainAuthorityAddress) {
|
|
36
|
+
const inner = encodeAbiParameters([{
|
|
37
|
+
type: "tuple",
|
|
38
|
+
components: [
|
|
39
|
+
{ name: "to", type: "address" },
|
|
40
|
+
{ name: "txGas", type: "uint32" },
|
|
41
|
+
{ name: "callData", type: "bytes" },
|
|
42
|
+
],
|
|
43
|
+
}], [{
|
|
44
|
+
to: data.to,
|
|
45
|
+
txGas: Number(data.gas ?? 0),
|
|
46
|
+
callData: data.calldata,
|
|
47
|
+
}]);
|
|
48
|
+
return packEvmHookV1({
|
|
49
|
+
fallbackAddress: dstChainAuthorityAddress,
|
|
50
|
+
target: zeroAddress,
|
|
51
|
+
reward: "0",
|
|
52
|
+
isNonAtomic: false,
|
|
53
|
+
isSuccessRequired: true,
|
|
54
|
+
targetPayload: inner,
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
// Parses a request trade's `dlnHook` JSON and returns the bytes the API
|
|
58
|
+
// hashes into `intent.externalCallHash`. Returns `undefined` when the trade
|
|
59
|
+
// has no hook. Throws on unknown / Solana hook types — Solana hooks live in
|
|
60
|
+
// the response under their own validator and never feed into this hash.
|
|
61
|
+
export function serializeDlnHook(trade) {
|
|
62
|
+
if (!trade.dlnHook)
|
|
63
|
+
return undefined;
|
|
64
|
+
const hook = JSON.parse(trade.dlnHook);
|
|
65
|
+
switch (hook.type) {
|
|
66
|
+
case DlnHookType.EvmHookV1:
|
|
67
|
+
return packEvmHookV1(hook.data);
|
|
68
|
+
case DlnHookType.EvmTransactionCall: {
|
|
69
|
+
if (trade.dstChainAuthorityAddress === undefined) {
|
|
70
|
+
throw new Error("evm_transaction_call hook requires dstChainAuthorityAddress on the trade");
|
|
71
|
+
}
|
|
72
|
+
return packEvmTransactionCall(hook.data, trade.dstChainAuthorityAddress);
|
|
73
|
+
}
|
|
74
|
+
case DlnHookType.SolanaSerializedInstructions:
|
|
75
|
+
throw new Error("Solana hook types are not folded into externalCallHash");
|
|
76
|
+
default: {
|
|
77
|
+
const exhaustive = hook;
|
|
78
|
+
throw new Error(`Unknown dlnHook type: ${JSON.stringify(exhaustive)}`);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=evm-dln-hook-pack.js.map
|
|
@@ -0,0 +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;AAG7C,2EAA2E;AAC3E,yEAAyE;AACzE,MAAM,cAAc,GAAG;IACnB,IAAI,EAAE,OAAO;IACb,UAAU,EAAE;QACR,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,SAAS,EAAE;QAC5C,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,SAAS,EAAE;QAC5C,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,SAAS,EAAE;QACzC,EAAE,IAAI,EAAE,uBAAuB,EAAE,IAAI,EAAE,MAAM,EAAE;QAC/C,EAAE,IAAI,EAAE,6BAA6B,EAAE,IAAI,EAAE,MAAM,EAAE;QACrD,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE;KACrC;CACK,CAAC;AAEX,MAAM,uBAAuB,GAAkB,MAAM,CAAC;AAsBtD,MAAM,UAAU,aAAa,CAAC,IAAmB;IAC7C,MAAM,KAAK,GAAG,mBAAmB,CAC7B,CAAC,cAAc,CAAC,EAChB,CAAC;YACG,eAAe,EAAE,IAAI,CAAC,eAAgC;YACtD,eAAe,EAAE,IAAI,CAAC,MAAuB;YAC7C,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;YACjC,qBAAqB,EAAE,IAAI,CAAC,WAAW;YACvC,2BAA2B,EAAE,IAAI,CAAC,iBAAiB;YACnD,OAAO,EAAE,IAAI,CAAC,aAA8B;SAC/C,CAAC,CACL,CAAC;IACF,OAAO,SAAS,CAAC,CAAC,uBAAuB,EAAE,KAAK,CAAC,CAAC,CAAC;AACvD,CAAC;AAED,8EAA8E;AAC9E,8CAA8C;AAC9C,qBAAqB;AACrB,kCAAkC;AAClC,uCAAuC;AACvC,+CAA+C;AAC/C,0BAA0B;AAC1B,MAAM,UAAU,sBAAsB,CAClC,IAA4B,EAC5B,wBAAgC;IAEhC,MAAM,KAAK,GAAG,mBAAmB,CAC7B,CAAC;YACG,IAAI,EAAE,OAAO;YACb,UAAU,EAAE;gBACR,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE;gBAC/B,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACjC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE;aACtC;SACJ,CAAC,EACF,CAAC;YACG,EAAE,EAAE,IAAI,CAAC,EAAmB;YAC5B,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;YAC5B,QAAQ,EAAE,IAAI,CAAC,QAAyB;SAC3C,CAAC,CACL,CAAC;IAEF,OAAO,aAAa,CAAC;QACjB,eAAe,EAAE,wBAAwB;QACzC,MAAM,EAAE,WAAW;QACnB,MAAM,EAAE,GAAG;QACX,WAAW,EAAE,KAAK;QAClB,iBAAiB,EAAE,IAAI;QACvB,aAAa,EAAE,KAAK;KACvB,CAAC,CAAC;AACP,CAAC;AAED,wEAAwE;AACxE,4EAA4E;AAC5E,4EAA4E;AAC5E,wEAAwE;AACxE,MAAM,UAAU,gBAAgB,CAAC,KAAmB;IAChD,IAAI,CAAC,KAAK,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAErC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAgB,CAAC;IAEtD,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAChB,KAAK,WAAW,CAAC,SAAS;YACtB,OAAO,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpC,KAAK,WAAW,CAAC,kBAAkB,CAAC,CAAC,CAAC;YAClC,IAAI,KAAK,CAAC,wBAAwB,KAAK,SAAS,EAAE,CAAC;gBAC/C,MAAM,IAAI,KAAK,CACX,0EAA0E,CAC7E,CAAC;YACN,CAAC;YACD,OAAO,sBAAsB,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC7E,CAAC;QACD,KAAK,WAAW,CAAC,4BAA4B;YACzC,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;QAC9E,OAAO,CAAC,CAAC,CAAC;YACN,MAAM,UAAU,GAAU,IAAI,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,yBAAyB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QAC3E,CAAC;IACL,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { decodeTransferCalldata } from "./evm-calldata.js";
|
|
2
|
+
import { isNativeToken } from "./evm-token.js";
|
|
3
|
+
import { normalizeAddress } from "./address.js";
|
|
4
|
+
// Validates an EVM `{to, data, value}` triplet that is expected to encode a
|
|
5
|
+
// gas-compensation transfer. `groups` are the gas-compensation groups
|
|
6
|
+
// associated with this triplet's source (already filtered to the relevant
|
|
7
|
+
// `(chainId, sender)` pair by the caller).
|
|
8
|
+
//
|
|
9
|
+
// Classification: dispatched on `triplet.data`:
|
|
10
|
+
// - `data === "0x"` → native compensation (data="0x", value > 0,
|
|
11
|
+
// and at least one group must carry a native token).
|
|
12
|
+
// - otherwise → ERC20 compensation (`triplet.to` matches some non-native
|
|
13
|
+
// group's tokenAddress, data is `transfer(...)`, value === "0").
|
|
14
|
+
export function validateEvmGasCompensationTx(triplet, groups, realChainId, basePath, codes) {
|
|
15
|
+
if (triplet.data === "0x") {
|
|
16
|
+
return validateNativeCompensation(triplet, groups, basePath, codes);
|
|
17
|
+
}
|
|
18
|
+
return validateErc20Compensation(triplet, groups, realChainId, basePath, codes);
|
|
19
|
+
}
|
|
20
|
+
function validateNativeCompensation(triplet, groups, basePath, codes) {
|
|
21
|
+
const violations = [];
|
|
22
|
+
// CRITICAL: data="0x" implies native — must have at least one native group.
|
|
23
|
+
const hasNativeGroup = groups.some(g => isNativeToken(g.tokenAddress, g.realChainId));
|
|
24
|
+
if (!hasNativeGroup) {
|
|
25
|
+
violations.push({
|
|
26
|
+
code: codes.dataInvalid,
|
|
27
|
+
message: "data=\"0x\" implies native compensation but no group has a native token",
|
|
28
|
+
path: `${basePath}.data`,
|
|
29
|
+
expected: groups.map(g => g.tokenAddress),
|
|
30
|
+
actual: "0x",
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
// HIGH: native compensation value must parse and be > 0.
|
|
34
|
+
violations.push(...validateNativeValue(triplet.value, basePath, codes));
|
|
35
|
+
return violations;
|
|
36
|
+
}
|
|
37
|
+
function validateNativeValue(rawValue, basePath, codes) {
|
|
38
|
+
try {
|
|
39
|
+
if (BigInt(rawValue) <= 0n) {
|
|
40
|
+
return [{
|
|
41
|
+
code: codes.valueInvalid,
|
|
42
|
+
message: "native compensation must have value > 0",
|
|
43
|
+
path: `${basePath}.value`,
|
|
44
|
+
actual: rawValue,
|
|
45
|
+
}];
|
|
46
|
+
}
|
|
47
|
+
return [];
|
|
48
|
+
}
|
|
49
|
+
catch (error) {
|
|
50
|
+
return [{
|
|
51
|
+
code: codes.valueInvalid,
|
|
52
|
+
message: "native compensation value is not a valid number",
|
|
53
|
+
path: `${basePath}.value`,
|
|
54
|
+
actual: rawValue,
|
|
55
|
+
details: error,
|
|
56
|
+
}];
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
function validateErc20Compensation(triplet, groups, realChainId, basePath, codes) {
|
|
60
|
+
const violations = [];
|
|
61
|
+
// CRITICAL: `to` must equal some non-native group's tokenAddress.
|
|
62
|
+
const erc20Groups = groups.filter(g => !isNativeToken(g.tokenAddress, g.realChainId));
|
|
63
|
+
const matches = erc20Groups.some(g => normalizeAddress(g.realChainId, g.tokenAddress)
|
|
64
|
+
=== normalizeAddress(realChainId, triplet.to));
|
|
65
|
+
if (!matches) {
|
|
66
|
+
violations.push({
|
|
67
|
+
code: codes.toMismatch,
|
|
68
|
+
message: "ERC20 compensation `to` does not match any group's tokenAddress",
|
|
69
|
+
path: `${basePath}.to`,
|
|
70
|
+
expected: erc20Groups.map(g => g.tokenAddress),
|
|
71
|
+
actual: triplet.to,
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
// CRITICAL: data must be a valid ERC20 transfer calldata.
|
|
75
|
+
try {
|
|
76
|
+
decodeTransferCalldata(triplet.data);
|
|
77
|
+
}
|
|
78
|
+
catch (error) {
|
|
79
|
+
violations.push({
|
|
80
|
+
code: codes.dataInvalid,
|
|
81
|
+
message: "ERC20 compensation data is not a valid transfer calldata",
|
|
82
|
+
path: `${basePath}.data`,
|
|
83
|
+
actual: triplet.data,
|
|
84
|
+
details: error,
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
// HIGH: ERC20 compensation must have value="0".
|
|
88
|
+
if (triplet.value !== "0") {
|
|
89
|
+
violations.push({
|
|
90
|
+
code: codes.valueInvalid,
|
|
91
|
+
message: "ERC20 compensation must have value=\"0\"",
|
|
92
|
+
path: `${basePath}.value`,
|
|
93
|
+
expected: "0",
|
|
94
|
+
actual: triplet.value,
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
return violations;
|
|
98
|
+
}
|
|
99
|
+
//# sourceMappingURL=evm-gas-compensation-tx.js.map
|