@debridge-finance/borderless-validation-sdk 0.0.6 → 0.0.8

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