@debridge-finance/borderless-validation-sdk 0.0.0-dev-dee2389 → 0.0.0-dev-58fb7d3

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.
Files changed (225) hide show
  1. package/README.md +164 -0
  2. package/dist/cjs/helpers/address.js +31 -18
  3. package/dist/cjs/helpers/address.js.map +1 -1
  4. package/dist/cjs/helpers/evm-action.js +3 -3
  5. package/dist/cjs/helpers/evm-action.js.map +1 -1
  6. package/dist/cjs/helpers/evm-gas-compensation-tx.js +102 -0
  7. package/dist/cjs/helpers/evm-gas-compensation-tx.js.map +1 -0
  8. package/dist/cjs/helpers/evm-intent-id.js +1 -1
  9. package/dist/cjs/helpers/evm-intent-id.js.map +1 -1
  10. package/dist/cjs/helpers/gas-compensation.js +36 -0
  11. package/dist/cjs/helpers/gas-compensation.js.map +1 -0
  12. package/dist/cjs/helpers/placeholder.js +174 -0
  13. package/dist/cjs/helpers/placeholder.js.map +1 -0
  14. package/dist/cjs/helpers/sets.js +13 -0
  15. package/dist/cjs/helpers/sets.js.map +1 -0
  16. package/dist/cjs/types/enums.js +26 -2
  17. package/dist/cjs/types/enums.js.map +1 -1
  18. package/dist/cjs/types/request.js +25 -2
  19. package/dist/cjs/types/request.js.map +1 -1
  20. package/dist/cjs/types/response.js +119 -3
  21. package/dist/cjs/types/response.js.map +1 -1
  22. package/dist/cjs/types/validation.js +72 -9
  23. package/dist/cjs/types/validation.js.map +1 -1
  24. package/dist/cjs/validations/compensation-hook.js +203 -0
  25. package/dist/cjs/validations/compensation-hook.js.map +1 -0
  26. package/dist/cjs/validations/evm-caveats.js +4 -14
  27. package/dist/cjs/validations/evm-caveats.js.map +1 -1
  28. package/dist/cjs/validations/evm-op-budget.js +3 -3
  29. package/dist/cjs/validations/evm-op-budget.js.map +1 -1
  30. package/dist/cjs/validations/evm-op-hook.js +410 -3
  31. package/dist/cjs/validations/evm-op-hook.js.map +1 -1
  32. package/dist/cjs/validations/evm-op-wrap.js +3 -3
  33. package/dist/cjs/validations/evm-op-wrap.js.map +1 -1
  34. package/dist/cjs/validations/evm-required-actions.js +4 -6
  35. package/dist/cjs/validations/evm-required-actions.js.map +1 -1
  36. package/dist/cjs/validations/evm-sign712-metamask.js +17 -94
  37. package/dist/cjs/validations/evm-sign712-metamask.js.map +1 -1
  38. package/dist/cjs/validations/evm-sign712-shared.js +116 -0
  39. package/dist/cjs/validations/evm-sign712-shared.js.map +1 -0
  40. package/dist/cjs/validations/evm-sign7702.js +34 -22
  41. package/dist/cjs/validations/evm-sign7702.js.map +1 -1
  42. package/dist/cjs/validations/hooks-common.js +247 -35
  43. package/dist/cjs/validations/hooks-common.js.map +1 -1
  44. package/dist/cjs/validations/intent-destinations.js +197 -0
  45. package/dist/cjs/validations/intent-destinations.js.map +1 -0
  46. package/dist/cjs/validations/intent-tokens.js +341 -0
  47. package/dist/cjs/validations/intent-tokens.js.map +1 -0
  48. package/dist/cjs/validations/intent.js +288 -0
  49. package/dist/cjs/validations/intent.js.map +1 -0
  50. package/dist/cjs/validations/required-actions.js +2 -5
  51. package/dist/cjs/validations/required-actions.js.map +1 -1
  52. package/dist/cjs/validations/solana-hook.js +32 -18
  53. package/dist/cjs/validations/solana-hook.js.map +1 -1
  54. package/dist/cjs/validations/trades.js +5 -0
  55. package/dist/cjs/validations/trades.js.map +1 -1
  56. package/dist/cjs/validator.js +11 -16
  57. package/dist/cjs/validator.js.map +1 -1
  58. package/dist/cjs/whitelists/environment-config.js +47 -28
  59. package/dist/cjs/whitelists/environment-config.js.map +1 -1
  60. package/dist/cjs/whitelists/evm/caveat-enforcers.js +21 -5
  61. package/dist/cjs/whitelists/evm/caveat-enforcers.js.map +1 -1
  62. package/dist/cjs/whitelists/evm/delegation-manager.js +7 -2
  63. package/dist/cjs/whitelists/evm/delegation-manager.js.map +1 -1
  64. package/dist/cjs/whitelists/evm/eip7702-delegation.js +7 -2
  65. package/dist/cjs/whitelists/evm/eip7702-delegation.js.map +1 -1
  66. package/dist/cjs/whitelists/evm/index.js +14 -1
  67. package/dist/cjs/whitelists/evm/index.js.map +1 -1
  68. package/dist/cjs/whitelists/evm/metamask-delegation-chains.js +16 -0
  69. package/dist/cjs/whitelists/evm/metamask-delegation-chains.js.map +1 -0
  70. package/dist/cjs/whitelists/evm/permit2.js +16 -12
  71. package/dist/cjs/whitelists/evm/permit2.js.map +1 -1
  72. package/dist/cjs/whitelists/evm/weth.js +16 -5
  73. package/dist/cjs/whitelists/evm/weth.js.map +1 -1
  74. package/dist/cjs/whitelists/solana/intent-signature.js +0 -1
  75. package/dist/cjs/whitelists/solana/intent-signature.js.map +1 -1
  76. package/dist/cjs/whitelists/subscription-to-chain-id.js +10 -0
  77. package/dist/cjs/whitelists/subscription-to-chain-id.js.map +1 -1
  78. package/dist/cjs/whitelists/types.js +13 -3
  79. package/dist/cjs/whitelists/types.js.map +1 -1
  80. package/dist/esm/helpers/address.js +28 -17
  81. package/dist/esm/helpers/address.js.map +1 -1
  82. package/dist/esm/helpers/evm-action.js +3 -3
  83. package/dist/esm/helpers/evm-action.js.map +1 -1
  84. package/dist/esm/helpers/evm-gas-compensation-tx.js +99 -0
  85. package/dist/esm/helpers/evm-gas-compensation-tx.js.map +1 -0
  86. package/dist/esm/helpers/evm-intent-id.js +1 -1
  87. package/dist/esm/helpers/evm-intent-id.js.map +1 -1
  88. package/dist/esm/helpers/gas-compensation.js +33 -0
  89. package/dist/esm/helpers/gas-compensation.js.map +1 -0
  90. package/dist/esm/helpers/placeholder.js +168 -0
  91. package/dist/esm/helpers/placeholder.js.map +1 -0
  92. package/dist/esm/helpers/sets.js +10 -0
  93. package/dist/esm/helpers/sets.js.map +1 -0
  94. package/dist/esm/types/enums.js +25 -1
  95. package/dist/esm/types/enums.js.map +1 -1
  96. package/dist/esm/types/request.js +26 -3
  97. package/dist/esm/types/request.js.map +1 -1
  98. package/dist/esm/types/response.js +118 -2
  99. package/dist/esm/types/response.js.map +1 -1
  100. package/dist/esm/types/validation.js +72 -9
  101. package/dist/esm/types/validation.js.map +1 -1
  102. package/dist/esm/validations/compensation-hook.js +200 -0
  103. package/dist/esm/validations/compensation-hook.js.map +1 -0
  104. package/dist/esm/validations/evm-caveats.js +4 -14
  105. package/dist/esm/validations/evm-caveats.js.map +1 -1
  106. package/dist/esm/validations/evm-op-budget.js +3 -3
  107. package/dist/esm/validations/evm-op-budget.js.map +1 -1
  108. package/dist/esm/validations/evm-op-hook.js +409 -2
  109. package/dist/esm/validations/evm-op-hook.js.map +1 -1
  110. package/dist/esm/validations/evm-op-wrap.js +3 -3
  111. package/dist/esm/validations/evm-op-wrap.js.map +1 -1
  112. package/dist/esm/validations/evm-required-actions.js +4 -6
  113. package/dist/esm/validations/evm-required-actions.js.map +1 -1
  114. package/dist/esm/validations/evm-sign712-metamask.js +17 -94
  115. package/dist/esm/validations/evm-sign712-metamask.js.map +1 -1
  116. package/dist/esm/validations/evm-sign712-shared.js +110 -0
  117. package/dist/esm/validations/evm-sign712-shared.js.map +1 -0
  118. package/dist/esm/validations/evm-sign7702.js +33 -22
  119. package/dist/esm/validations/evm-sign7702.js.map +1 -1
  120. package/dist/esm/validations/hooks-common.js +246 -36
  121. package/dist/esm/validations/hooks-common.js.map +1 -1
  122. package/dist/esm/validations/intent-destinations.js +194 -0
  123. package/dist/esm/validations/intent-destinations.js.map +1 -0
  124. package/dist/esm/validations/intent-tokens.js +338 -0
  125. package/dist/esm/validations/intent-tokens.js.map +1 -0
  126. package/dist/esm/validations/intent.js +285 -0
  127. package/dist/esm/validations/intent.js.map +1 -0
  128. package/dist/esm/validations/required-actions.js +2 -5
  129. package/dist/esm/validations/required-actions.js.map +1 -1
  130. package/dist/esm/validations/solana-hook.js +34 -20
  131. package/dist/esm/validations/solana-hook.js.map +1 -1
  132. package/dist/esm/validations/trades.js +5 -0
  133. package/dist/esm/validations/trades.js.map +1 -1
  134. package/dist/esm/validator.js +11 -16
  135. package/dist/esm/validator.js.map +1 -1
  136. package/dist/esm/whitelists/environment-config.js +47 -28
  137. package/dist/esm/whitelists/environment-config.js.map +1 -1
  138. package/dist/esm/whitelists/evm/caveat-enforcers.js +20 -4
  139. package/dist/esm/whitelists/evm/caveat-enforcers.js.map +1 -1
  140. package/dist/esm/whitelists/evm/delegation-manager.js +6 -1
  141. package/dist/esm/whitelists/evm/delegation-manager.js.map +1 -1
  142. package/dist/esm/whitelists/evm/eip7702-delegation.js +6 -1
  143. package/dist/esm/whitelists/evm/eip7702-delegation.js.map +1 -1
  144. package/dist/esm/whitelists/evm/index.js +4 -4
  145. package/dist/esm/whitelists/evm/index.js.map +1 -1
  146. package/dist/esm/whitelists/evm/metamask-delegation-chains.js +13 -0
  147. package/dist/esm/whitelists/evm/metamask-delegation-chains.js.map +1 -0
  148. package/dist/esm/whitelists/evm/permit2.js +9 -5
  149. package/dist/esm/whitelists/evm/permit2.js.map +1 -1
  150. package/dist/esm/whitelists/evm/weth.js +16 -5
  151. package/dist/esm/whitelists/evm/weth.js.map +1 -1
  152. package/dist/esm/whitelists/solana/intent-signature.js +0 -1
  153. package/dist/esm/whitelists/solana/intent-signature.js.map +1 -1
  154. package/dist/esm/whitelists/subscription-to-chain-id.js +9 -0
  155. package/dist/esm/whitelists/subscription-to-chain-id.js.map +1 -1
  156. package/dist/esm/whitelists/types.js +14 -5
  157. package/dist/esm/whitelists/types.js.map +1 -1
  158. package/dist/types/helpers/address.d.ts +5 -7
  159. package/dist/types/helpers/address.d.ts.map +1 -1
  160. package/dist/types/helpers/evm-gas-compensation-tx.d.ts +13 -0
  161. package/dist/types/helpers/evm-gas-compensation-tx.d.ts.map +1 -0
  162. package/dist/types/helpers/gas-compensation.d.ts +10 -0
  163. package/dist/types/helpers/gas-compensation.d.ts.map +1 -0
  164. package/dist/types/helpers/placeholder.d.ts +41 -0
  165. package/dist/types/helpers/placeholder.d.ts.map +1 -0
  166. package/dist/types/helpers/sets.d.ts +2 -0
  167. package/dist/types/helpers/sets.d.ts.map +1 -0
  168. package/dist/types/types/enums.d.ts +19 -1
  169. package/dist/types/types/enums.d.ts.map +1 -1
  170. package/dist/types/types/request.d.ts +19 -9
  171. package/dist/types/types/request.d.ts.map +1 -1
  172. package/dist/types/types/response.d.ts +365 -9
  173. package/dist/types/types/response.d.ts.map +1 -1
  174. package/dist/types/types/validation.d.ts +65 -10
  175. package/dist/types/types/validation.d.ts.map +1 -1
  176. package/dist/types/validations/compensation-hook.d.ts +3 -0
  177. package/dist/types/validations/compensation-hook.d.ts.map +1 -0
  178. package/dist/types/validations/evm-caveats.d.ts.map +1 -1
  179. package/dist/types/validations/evm-op-hook.d.ts +4 -2
  180. package/dist/types/validations/evm-op-hook.d.ts.map +1 -1
  181. package/dist/types/validations/evm-required-actions.d.ts.map +1 -1
  182. package/dist/types/validations/evm-sign712-metamask.d.ts.map +1 -1
  183. package/dist/types/validations/evm-sign712-shared.d.ts +7 -0
  184. package/dist/types/validations/evm-sign712-shared.d.ts.map +1 -0
  185. package/dist/types/validations/evm-sign7702.d.ts +2 -1
  186. package/dist/types/validations/evm-sign7702.d.ts.map +1 -1
  187. package/dist/types/validations/hooks-common.d.ts +1 -0
  188. package/dist/types/validations/hooks-common.d.ts.map +1 -1
  189. package/dist/types/validations/intent-destinations.d.ts +4 -0
  190. package/dist/types/validations/intent-destinations.d.ts.map +1 -0
  191. package/dist/types/validations/intent-tokens.d.ts +4 -0
  192. package/dist/types/validations/intent-tokens.d.ts.map +1 -0
  193. package/dist/types/validations/intent.d.ts +5 -0
  194. package/dist/types/validations/intent.d.ts.map +1 -0
  195. package/dist/types/validations/required-actions.d.ts +2 -1
  196. package/dist/types/validations/required-actions.d.ts.map +1 -1
  197. package/dist/types/validations/solana-hook.d.ts +4 -2
  198. package/dist/types/validations/solana-hook.d.ts.map +1 -1
  199. package/dist/types/validator.d.ts.map +1 -1
  200. package/dist/types/whitelists/environment-config.d.ts.map +1 -1
  201. package/dist/types/whitelists/evm/caveat-enforcers.d.ts +8 -0
  202. package/dist/types/whitelists/evm/caveat-enforcers.d.ts.map +1 -1
  203. package/dist/types/whitelists/evm/delegation-manager.d.ts +2 -0
  204. package/dist/types/whitelists/evm/delegation-manager.d.ts.map +1 -1
  205. package/dist/types/whitelists/evm/eip7702-delegation.d.ts +2 -0
  206. package/dist/types/whitelists/evm/eip7702-delegation.d.ts.map +1 -1
  207. package/dist/types/whitelists/evm/index.d.ts +4 -4
  208. package/dist/types/whitelists/evm/index.d.ts.map +1 -1
  209. package/dist/types/whitelists/evm/metamask-delegation-chains.d.ts +3 -0
  210. package/dist/types/whitelists/evm/metamask-delegation-chains.d.ts.map +1 -0
  211. package/dist/types/whitelists/evm/permit2.d.ts +1 -0
  212. package/dist/types/whitelists/evm/permit2.d.ts.map +1 -1
  213. package/dist/types/whitelists/evm/weth.d.ts.map +1 -1
  214. package/dist/types/whitelists/solana/intent-signature.d.ts.map +1 -1
  215. package/dist/types/whitelists/subscription-to-chain-id.d.ts +1 -0
  216. package/dist/types/whitelists/subscription-to-chain-id.d.ts.map +1 -1
  217. package/dist/types/whitelists/types.d.ts +1 -1
  218. package/dist/types/whitelists/types.d.ts.map +1 -1
  219. package/package.json +2 -2
  220. package/dist/cjs/validations/evm-op-gas-compensation.js +0 -152
  221. package/dist/cjs/validations/evm-op-gas-compensation.js.map +0 -1
  222. package/dist/esm/validations/evm-op-gas-compensation.js +0 -149
  223. package/dist/esm/validations/evm-op-gas-compensation.js.map +0 -1
  224. package/dist/types/validations/evm-op-gas-compensation.d.ts +0 -3
  225. 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
- [enums_1.ChainId.Wildcard]: ["0xdb9B1e94B5b69Df7e401DDbedE43491141047dB3"] // wildcard for any chain
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;AAG5C,yFAAyF;AAE5E,QAAA,4BAA4B,GAAoB;IACzD,CAAC,eAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,4CAA4C,CAAC,CAAC,yBAAyB;CACtF,CAAC"}
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
- [enums_1.ChainId.Wildcard]: ["0x63c0c19a282a1B52b07dD5a65b58948A07DAE32B"] // wildcard for any chain
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;AAG/B,QAAA,4BAA4B,GAAoB;IACzD,CAAC,eAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,4CAA4C,CAAC,CAAC,yBAAyB;CACtF,CAAC"}
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,2DAAoE;AAA3D,kIAAA,4BAA4B,OAAA;AACrC,2DAAoE;AAA3D,kIAAA,4BAA4B,OAAA;AACrC,uDAK4B;AAJxB,sIAAA,kCAAkC,OAAA;AAClC,4IAAA,wCAAwC,OAAA;AACxC,yHAAA,qBAAqB,OAAA;AACrB,gIAAA,4BAA4B,OAAA;AAEhC,qCAA8C;AAArC,4GAAA,iBAAiB,OAAA;AAC1B,+BAAwC;AAA/B,sGAAA,cAAc,OAAA"}
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
- const DEFAULT_PERMIT2_ADDRESS = "0x000000000022D473030F116dDEE9F6B43aC78BA3";
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.BNB]: [DEFAULT_PERMIT2_ADDRESS],
9
- [enums_1.ChainId.Polygon]: [DEFAULT_PERMIT2_ADDRESS],
10
- [enums_1.ChainId.Arbitrum]: [DEFAULT_PERMIT2_ADDRESS],
11
- [enums_1.ChainId.Avalanche]: [DEFAULT_PERMIT2_ADDRESS],
12
- [enums_1.ChainId.Linea]: [DEFAULT_PERMIT2_ADDRESS],
13
- [enums_1.ChainId.Base]: [DEFAULT_PERMIT2_ADDRESS],
14
- [enums_1.ChainId.Optimism]: [DEFAULT_PERMIT2_ADDRESS],
15
- // Gnosis: no Permit2
16
- // Sonic: no Permit2
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,MAAM,uBAAuB,GAAG,4CAA4C,CAAC;AAEhE,QAAA,iBAAiB,GAAoB;IAC9C,CAAC,eAAO,CAAC,QAAQ,CAAC,EAAG,CAAC,uBAAuB,CAAC;IAC9C,CAAC,eAAO,CAAC,GAAG,CAAC,EAAQ,CAAC,uBAAuB,CAAC;IAC9C,CAAC,eAAO,CAAC,OAAO,CAAC,EAAI,CAAC,uBAAuB,CAAC;IAC9C,CAAC,eAAO,CAAC,QAAQ,CAAC,EAAG,CAAC,uBAAuB,CAAC;IAC9C,CAAC,eAAO,CAAC,SAAS,CAAC,EAAE,CAAC,uBAAuB,CAAC;IAC9C,CAAC,eAAO,CAAC,KAAK,CAAC,EAAM,CAAC,uBAAuB,CAAC;IAC9C,CAAC,eAAO,CAAC,IAAI,CAAC,EAAO,CAAC,uBAAuB,CAAC;IAC9C,CAAC,eAAO,CAAC,QAAQ,CAAC,EAAG,CAAC,uBAAuB,CAAC;IAC9C,qBAAqB;IACrB,oBAAoB;CACd,CAAC"}
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.Base]: ["0x4200000000000000000000000000000000000006"],
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;AAG/B,QAAA,cAAc,GAAoB;IAC3C,CAAC,eAAO,CAAC,QAAQ,CAAC,EAAG,CAAC,4CAA4C,CAAC;IACnE,CAAC,eAAO,CAAC,GAAG,CAAC,EAAQ,CAAC,4CAA4C,CAAC;IACnE,CAAC,eAAO,CAAC,OAAO,CAAC,EAAI,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,IAAI,CAAC,EAAO,CAAC,4CAA4C,CAAC;IACnE,CAAC,eAAO,CAAC,QAAQ,CAAC,EAAG,CAAC,4CAA4C,CAAC;IACnE,kBAAkB;IAClB,CAAC,eAAO,CAAC,KAAK,CAAC,EAAM,CAAC,4CAA4C,CAAC;IACnE,yBAAyB;IACzB,CAAC,eAAO,CAAC,IAAI,CAAC,EAAO,CAAC,4CAA4C,CAAC;CAC7D,CAAC"}
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":";;AAsBA,4DAWC;AAjCD,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;IAC5C,CAAC,wBAAW,CAAC,MAAM,CAAC,EAAE,wBAAwB,EAAE,wCAAwC;CAC3F,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"}
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;AAhCD,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"}
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 addressFormat = (0, address_1.getAddressFormat)(chainId);
8
- if (addressFormat === address_1.AddressFormat.Solana) {
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 = addressFormat === address_1.AddressFormat.Tron ? (0, address_1.tronAddressToEvmHex)(address) : address;
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":";;AAoCA,sCA6BC;AAjED,gDAK4B;AAC5B,0CAAyC;AA8BzC,SAAgB,aAAa,CACzB,GAAoB,EACpB,OAAgB,EAChB,OAAe;IAEf,MAAM,aAAa,GAAG,IAAA,0BAAgB,EAAC,OAAO,CAAC,CAAC;IAEhD,IAAI,aAAa,KAAK,uBAAa,CAAC,MAAM,EAAE,CAAC;QACzC,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,aAAa,KAAK,uBAAa,CAAC,IAAI,CAAC,CAAC,CAAC,IAAA,6BAAmB,EAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IACjG,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
+ {"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 var AddressFormat;
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 AddressFormat.Tron;
9
+ return ChainEngine.Tron;
16
10
  if (chainId === ChainId.Solana)
17
- return AddressFormat.Solana;
18
- return AddressFormat.EVM;
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 format
35
+ // Normalizes address for comparison based on chain engine
42
36
  export function normalizeAddress(chainId, address) {
43
- const format = getAddressFormat(chainId);
44
- if (format === AddressFormat.Tron || format === AddressFormat.Solana) {
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,13 @@ 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
- // Checks if address is native token for the given chain
63
+ // Checks if address is the native token for the given chain.
54
64
  export function isNativeToken(address, chainId) {
55
- if (chainId === ChainId.Tron) {
65
+ const engine = getChainEngine(chainId);
66
+ if (engine === ChainEngine.Tron) {
56
67
  return address === TRON_NATIVE_ADDRESS;
57
68
  }
58
- if (chainId === ChainId.Solana) {
69
+ if (engine === ChainEngine.Solana) {
59
70
  return address === SYSTEM_PROGRAM;
60
71
  }
61
72
  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;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,+CAA+C;AAC/C,MAAM,CAAC,MAAM,mBAAmB,GAAG,oCAAoC,CAAC;AAExE,MAAM,CAAN,IAAY,aAIX;AAJD,WAAY,aAAa;IACrB,+CAAG,CAAA;IACH,iDAAI,CAAA;IACJ,qDAAM,CAAA;AACV,CAAC,EAJW,aAAa,KAAb,aAAa,QAIxB;AAED,MAAM,UAAU,gBAAgB,CAAC,OAAe;IAC5C,IAAI,OAAO,KAAK,OAAO,CAAC,IAAI;QAAE,OAAO,aAAa,CAAC,IAAI,CAAC;IACxD,IAAI,OAAO,KAAK,OAAO,CAAC,MAAM;QAAE,OAAO,aAAa,CAAC,MAAM,CAAC;IAC5D,OAAO,aAAa,CAAC,GAAG,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,OAAe;IACzC,IAAI,CAAC,OAAO;QAAE,OAAO,KAAK,CAAC;IAC3B,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAC3C,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAC3C,IAAI,OAAO,CAAC,MAAM,KAAK,EAAE;QAAE,OAAO,KAAK,CAAC;IACxC,4DAA4D;IAC5D,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,8DAA8D;AAC9D,4EAA4E;AAC5E,oEAAoE;AACpE,MAAM,UAAU,mBAAmB,CAAC,WAAmB;IACnD,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IACzC,4DAA4D;IAC5D,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC1C,OAAO,UAAU,CAAC,YAAY,CAAC,CAAC;AACpC,CAAC;AAED,0DAA0D;AAC1D,MAAM,UAAU,gBAAgB,CAAC,OAAe,EAAE,OAAe;IAC7D,MAAM,MAAM,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACzC,IAAI,MAAM,KAAK,aAAa,CAAC,IAAI,IAAI,MAAM,KAAK,aAAa,CAAC,MAAM,EAAE,CAAC;QACnE,OAAO,OAAO,CAAC,CAAC,iBAAiB;IACrC,CAAC;IACD,OAAO,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,wBAAwB;AAC1D,CAAC;AAED,wDAAwD;AACxD,MAAM,UAAU,aAAa,CAAC,OAAe,EAAE,CAAS,EAAE,CAAS;IAC/D,OAAO,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;AACzE,CAAC;AAED,wDAAwD;AACxD,MAAM,UAAU,aAAa,CAAC,OAAe,EAAE,OAAgB;IAC3D,IAAI,OAAO,KAAK,OAAO,CAAC,IAAI,EAAE,CAAC;QAC3B,OAAO,OAAO,KAAK,mBAAmB,CAAC;IAC3C,CAAC;IACD,IAAI,OAAO,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC;QAC7B,OAAO,OAAO,KAAK,cAAc,CAAC;IACtC,CAAC;IACD,OAAO,OAAO,CAAC,WAAW,EAAE,KAAK,WAAW,CAAC;AACjD,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 Sign712MetaMask actions carry transactionCalls;
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.Sign712MetaMask;
6
+ || action.type === EvmActionKind.Sign712MetaMaskCaveats;
7
7
  }
8
8
  // For Transaction-type actions (non-AA), the call is in action.data directly.
9
- // For Sign712MetaMask-type actions (AA), the calls are in details.transactionCalls.
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,kEAAkE;AAClE,6DAA6D;AAC7D,MAAM,UAAU,0BAA0B,CAAC,MAAyB;IAChE,OAAO,MAAM,CAAC,IAAI,KAAK,aAAa,CAAC,WAAW;WACzC,MAAM,CAAC,IAAI,KAAK,aAAa,CAAC,eAAe,CAAC;AACzD,CAAC;AAED,8EAA8E;AAC9E,oFAAoF;AACpF,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"}
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,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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evm-gas-compensation-tx.js","sourceRoot":"","sources":["../../../src/helpers/evm-gas-compensation-tx.ts"],"names":[],"mappings":"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"}
@@ -17,7 +17,7 @@ function convertToIntentStruct(intent) {
17
17
  intentTimestamp: BigInt(intent.intentTimestamp),
18
18
  srcAllowedSender: (intent.srcAllowedSender ?? []),
19
19
  executionMetadata: (intent.executionMetadata ?? zeroHash),
20
- isAnyDlnMetadataAllowed: true,
20
+ isAnyDlnMetadataAllowed: !intent.dlnMetadata,
21
21
  dlnMetadata: (intent.dlnMetadata ?? "0x"),
22
22
  externalCallHash: (intent.externalCallHash ?? zeroHash),
23
23
  combinedInteractions: "0x",
@@ -1 +1 @@
1
- {"version":3,"file":"evm-intent-id.js","sourceRoot":"","sources":["../../../src/helpers/evm-intent-id.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"evm-intent-id.js","sourceRoot":"","sources":["../../../src/helpers/evm-intent-id.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import { normalizeAddress } from "./address.js";
2
+ import { resolveChainId } from "../whitelists/subscription-to-chain-id.js";
3
+ // Groups `gasCompensationInfo` entries from request.preHooks by
4
+ // (chainId, tokenAddress, sender). One compensation hook per
5
+ // unique group is expected to be appended to response.preHooks.
6
+ // Groups with an unknown subscription chainId are skipped — they'll surface as
7
+ // `UnknownSubscriptionId` via the trade-grouping pass.
8
+ export function extractGasCompensationGroups(request) {
9
+ const seen = new Set();
10
+ const groups = [];
11
+ for (const hook of request.preHooks ?? []) {
12
+ const info = hook.gasCompensationInfo;
13
+ if (!info)
14
+ continue;
15
+ const realChainId = resolveChainId(info.chainId);
16
+ if (realChainId === undefined)
17
+ continue;
18
+ const key = `${realChainId}`
19
+ + `:${normalizeAddress(realChainId, info.tokenAddress)}`
20
+ + `:${normalizeAddress(realChainId, info.sender)}`;
21
+ if (seen.has(key))
22
+ continue;
23
+ seen.add(key);
24
+ groups.push({
25
+ chainId: info.chainId,
26
+ realChainId,
27
+ tokenAddress: info.tokenAddress,
28
+ sender: info.sender,
29
+ });
30
+ }
31
+ return groups;
32
+ }
33
+ //# sourceMappingURL=gas-compensation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gas-compensation.js","sourceRoot":"","sources":["../../../src/helpers/gas-compensation.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AASxE,gEAAgE;AAChE,6DAA6D;AAC7D,gEAAgE;AAChE,+EAA+E;AAC/E,uDAAuD;AACvD,MAAM,UAAU,4BAA4B,CACxC,OAA8B;IAE9B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,MAAM,GAA2B,EAAE,CAAC;IAE1C,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;QACxC,MAAM,IAAI,GAAG,IAAI,CAAC,mBAAmB,CAAC;QACtC,IAAI,CAAC,IAAI;YAAE,SAAS;QAEpB,MAAM,WAAW,GAAG,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACjD,IAAI,WAAW,KAAK,SAAS;YAAE,SAAS;QAExC,MAAM,GAAG,GAAG,GAAG,WAAW,EAAE;cACtB,IAAI,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,EAAE;cACtD,IAAI,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAEvD,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,SAAS;QAE5B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAEd,MAAM,CAAC,IAAI,CAAC;YACR,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,WAAW;YACX,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,MAAM,EAAE,IAAI,CAAC,MAAM;SACtB,CAAC,CAAC;IACP,CAAC;IAED,OAAO,MAAM,CAAC;AAClB,CAAC"}