@debridge-finance/borderless-validation-sdk 0.3.0 → 0.4.0

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 (284) hide show
  1. package/README.md +120 -11
  2. package/dist/cjs/graylists/evm/token-permit-metadata.js +7 -1
  3. package/dist/cjs/graylists/evm/token-permit-metadata.js.map +1 -1
  4. package/dist/cjs/helpers/address.js +152 -60
  5. package/dist/cjs/helpers/address.js.map +1 -1
  6. package/dist/cjs/helpers/amount.js +8 -0
  7. package/dist/cjs/helpers/amount.js.map +1 -0
  8. package/dist/cjs/helpers/evm-dln-hook-pack.js +16 -4
  9. package/dist/cjs/helpers/evm-dln-hook-pack.js.map +1 -1
  10. package/dist/cjs/helpers/evm-gas-compensation-tx.js +11 -26
  11. package/dist/cjs/helpers/evm-gas-compensation-tx.js.map +1 -1
  12. package/dist/cjs/helpers/evm-intent-id-abi.js +8 -1
  13. package/dist/cjs/helpers/evm-intent-id-abi.js.map +1 -1
  14. package/dist/cjs/helpers/evm-trade-amounts.js +11 -3
  15. package/dist/cjs/helpers/evm-trade-amounts.js.map +1 -1
  16. package/dist/cjs/helpers/expected-delegate.js +2 -6
  17. package/dist/cjs/helpers/expected-delegate.js.map +1 -1
  18. package/dist/cjs/helpers/gas-compensation.js +8 -4
  19. package/dist/cjs/helpers/gas-compensation.js.map +1 -1
  20. package/dist/cjs/helpers/interactions.js +4 -20
  21. package/dist/cjs/helpers/interactions.js.map +1 -1
  22. package/dist/cjs/helpers/synthetic-native-wrap.js +3 -2
  23. package/dist/cjs/helpers/synthetic-native-wrap.js.map +1 -1
  24. package/dist/cjs/types/enums.js +1 -0
  25. package/dist/cjs/types/enums.js.map +1 -1
  26. package/dist/cjs/types/request.js +15 -2
  27. package/dist/cjs/types/request.js.map +1 -1
  28. package/dist/cjs/types/response.js +2 -1
  29. package/dist/cjs/types/response.js.map +1 -1
  30. package/dist/cjs/types/validation.js +21 -3
  31. package/dist/cjs/types/validation.js.map +1 -1
  32. package/dist/cjs/validations/compensation-hook.js +4 -5
  33. package/dist/cjs/validations/compensation-hook.js.map +1 -1
  34. package/dist/cjs/validations/cost-token.js +9 -1
  35. package/dist/cjs/validations/cost-token.js.map +1 -1
  36. package/dist/cjs/validations/echo-fields.js +18 -0
  37. package/dist/cjs/validations/echo-fields.js.map +1 -1
  38. package/dist/cjs/validations/evm-caveats.js +3 -0
  39. package/dist/cjs/validations/evm-caveats.js.map +1 -1
  40. package/dist/cjs/validations/evm-on-chain-intent.js +150 -0
  41. package/dist/cjs/validations/evm-on-chain-intent.js.map +1 -0
  42. package/dist/cjs/validations/evm-op-budget.js +23 -3
  43. package/dist/cjs/validations/evm-op-budget.js.map +1 -1
  44. package/dist/cjs/validations/evm-op-hook.js +6 -6
  45. package/dist/cjs/validations/evm-op-hook.js.map +1 -1
  46. package/dist/cjs/validations/evm-permit.js +17 -6
  47. package/dist/cjs/validations/evm-permit.js.map +1 -1
  48. package/dist/cjs/validations/evm-permit2.js +14 -6
  49. package/dist/cjs/validations/evm-permit2.js.map +1 -1
  50. package/dist/cjs/validations/evm-required-actions.js +26 -7
  51. package/dist/cjs/validations/evm-required-actions.js.map +1 -1
  52. package/dist/cjs/validations/evm-sign712-metamask.js +3 -126
  53. package/dist/cjs/validations/evm-sign712-metamask.js.map +1 -1
  54. package/dist/cjs/validations/evm-sign712-shared.js +127 -0
  55. package/dist/cjs/validations/evm-sign712-shared.js.map +1 -1
  56. package/dist/cjs/validations/evm-sign712.js +18 -2
  57. package/dist/cjs/validations/evm-sign712.js.map +1 -1
  58. package/dist/cjs/validations/evm-sign7702.js +2 -0
  59. package/dist/cjs/validations/evm-sign7702.js.map +1 -1
  60. package/dist/cjs/validations/evm-transaction.js +7 -1
  61. package/dist/cjs/validations/evm-transaction.js.map +1 -1
  62. package/dist/cjs/validations/external-call.js +9 -20
  63. package/dist/cjs/validations/external-call.js.map +1 -1
  64. package/dist/cjs/validations/hook-version.js +35 -0
  65. package/dist/cjs/validations/hook-version.js.map +1 -0
  66. package/dist/cjs/validations/hooks-common.js +74 -199
  67. package/dist/cjs/validations/hooks-common.js.map +1 -1
  68. package/dist/cjs/validations/intent-destinations.js +52 -50
  69. package/dist/cjs/validations/intent-destinations.js.map +1 -1
  70. package/dist/cjs/validations/intent-tokens.js +319 -79
  71. package/dist/cjs/validations/intent-tokens.js.map +1 -1
  72. package/dist/cjs/validations/intent.js +34 -26
  73. package/dist/cjs/validations/intent.js.map +1 -1
  74. package/dist/cjs/validations/max-reserved.js +54 -0
  75. package/dist/cjs/validations/max-reserved.js.map +1 -0
  76. package/dist/cjs/validations/on-chain-intent-submission.js +70 -0
  77. package/dist/cjs/validations/on-chain-intent-submission.js.map +1 -0
  78. package/dist/cjs/validations/ptp.js +9 -6
  79. package/dist/cjs/validations/ptp.js.map +1 -1
  80. package/dist/cjs/validations/refill.js +11 -5
  81. package/dist/cjs/validations/refill.js.map +1 -1
  82. package/dist/cjs/validations/solana-hook.js +12 -54
  83. package/dist/cjs/validations/solana-hook.js.map +1 -1
  84. package/dist/cjs/validations/solana-op-budget.js +1 -1
  85. package/dist/cjs/validations/solana-op-budget.js.map +1 -1
  86. package/dist/cjs/validations/solana-op-wrap.js +29 -47
  87. package/dist/cjs/validations/solana-op-wrap.js.map +1 -1
  88. package/dist/cjs/validations/solana-required-actions.js +2 -2
  89. package/dist/cjs/validations/solana-required-actions.js.map +1 -1
  90. package/dist/cjs/validations/solana-transaction.js +4 -53
  91. package/dist/cjs/validations/solana-transaction.js.map +1 -1
  92. package/dist/cjs/validations/total-dst-amount.js +19 -3
  93. package/dist/cjs/validations/total-dst-amount.js.map +1 -1
  94. package/dist/cjs/validations/trade-grouping.js +35 -9
  95. package/dist/cjs/validations/trade-grouping.js.map +1 -1
  96. package/dist/cjs/validations/trade-matching.js +1 -1
  97. package/dist/cjs/validations/trade-matching.js.map +1 -1
  98. package/dist/cjs/validations/trades.js +29 -9
  99. package/dist/cjs/validations/trades.js.map +1 -1
  100. package/dist/cjs/validator.js +28 -17
  101. package/dist/cjs/validator.js.map +1 -1
  102. package/dist/cjs/whitelists/environment-config.js +143 -182
  103. package/dist/cjs/whitelists/environment-config.js.map +1 -1
  104. package/dist/cjs/whitelists/types.js +2 -5
  105. package/dist/cjs/whitelists/types.js.map +1 -1
  106. package/dist/esm/graylists/evm/token-permit-metadata.js +7 -1
  107. package/dist/esm/graylists/evm/token-permit-metadata.js.map +1 -1
  108. package/dist/esm/helpers/address.js +146 -59
  109. package/dist/esm/helpers/address.js.map +1 -1
  110. package/dist/esm/helpers/amount.js +5 -0
  111. package/dist/esm/helpers/amount.js.map +1 -0
  112. package/dist/esm/helpers/evm-dln-hook-pack.js +15 -4
  113. package/dist/esm/helpers/evm-dln-hook-pack.js.map +1 -1
  114. package/dist/esm/helpers/evm-gas-compensation-tx.js +12 -27
  115. package/dist/esm/helpers/evm-gas-compensation-tx.js.map +1 -1
  116. package/dist/esm/helpers/evm-intent-id-abi.js +7 -0
  117. package/dist/esm/helpers/evm-intent-id-abi.js.map +1 -1
  118. package/dist/esm/helpers/evm-trade-amounts.js +12 -4
  119. package/dist/esm/helpers/evm-trade-amounts.js.map +1 -1
  120. package/dist/esm/helpers/expected-delegate.js +2 -6
  121. package/dist/esm/helpers/expected-delegate.js.map +1 -1
  122. package/dist/esm/helpers/gas-compensation.js +9 -5
  123. package/dist/esm/helpers/gas-compensation.js.map +1 -1
  124. package/dist/esm/helpers/interactions.js +5 -21
  125. package/dist/esm/helpers/interactions.js.map +1 -1
  126. package/dist/esm/helpers/synthetic-native-wrap.js +4 -3
  127. package/dist/esm/helpers/synthetic-native-wrap.js.map +1 -1
  128. package/dist/esm/types/enums.js +1 -0
  129. package/dist/esm/types/enums.js.map +1 -1
  130. package/dist/esm/types/request.js +15 -2
  131. package/dist/esm/types/request.js.map +1 -1
  132. package/dist/esm/types/response.js +3 -2
  133. package/dist/esm/types/response.js.map +1 -1
  134. package/dist/esm/types/validation.js +21 -3
  135. package/dist/esm/types/validation.js.map +1 -1
  136. package/dist/esm/validations/compensation-hook.js +4 -5
  137. package/dist/esm/validations/compensation-hook.js.map +1 -1
  138. package/dist/esm/validations/cost-token.js +9 -1
  139. package/dist/esm/validations/cost-token.js.map +1 -1
  140. package/dist/esm/validations/echo-fields.js +18 -0
  141. package/dist/esm/validations/echo-fields.js.map +1 -1
  142. package/dist/esm/validations/evm-caveats.js +3 -0
  143. package/dist/esm/validations/evm-caveats.js.map +1 -1
  144. package/dist/esm/validations/evm-on-chain-intent.js +147 -0
  145. package/dist/esm/validations/evm-on-chain-intent.js.map +1 -0
  146. package/dist/esm/validations/evm-op-budget.js +25 -5
  147. package/dist/esm/validations/evm-op-budget.js.map +1 -1
  148. package/dist/esm/validations/evm-op-hook.js +8 -8
  149. package/dist/esm/validations/evm-op-hook.js.map +1 -1
  150. package/dist/esm/validations/evm-permit.js +18 -7
  151. package/dist/esm/validations/evm-permit.js.map +1 -1
  152. package/dist/esm/validations/evm-permit2.js +15 -7
  153. package/dist/esm/validations/evm-permit2.js.map +1 -1
  154. package/dist/esm/validations/evm-required-actions.js +28 -9
  155. package/dist/esm/validations/evm-required-actions.js.map +1 -1
  156. package/dist/esm/validations/evm-sign712-metamask.js +4 -126
  157. package/dist/esm/validations/evm-sign712-metamask.js.map +1 -1
  158. package/dist/esm/validations/evm-sign712-shared.js +126 -1
  159. package/dist/esm/validations/evm-sign712-shared.js.map +1 -1
  160. package/dist/esm/validations/evm-sign712.js +17 -2
  161. package/dist/esm/validations/evm-sign712.js.map +1 -1
  162. package/dist/esm/validations/evm-sign7702.js +2 -0
  163. package/dist/esm/validations/evm-sign7702.js.map +1 -1
  164. package/dist/esm/validations/evm-transaction.js +7 -1
  165. package/dist/esm/validations/evm-transaction.js.map +1 -1
  166. package/dist/esm/validations/external-call.js +10 -21
  167. package/dist/esm/validations/external-call.js.map +1 -1
  168. package/dist/esm/validations/hook-version.js +31 -0
  169. package/dist/esm/validations/hook-version.js.map +1 -0
  170. package/dist/esm/validations/hooks-common.js +75 -200
  171. package/dist/esm/validations/hooks-common.js.map +1 -1
  172. package/dist/esm/validations/intent-destinations.js +53 -51
  173. package/dist/esm/validations/intent-destinations.js.map +1 -1
  174. package/dist/esm/validations/intent-tokens.js +320 -80
  175. package/dist/esm/validations/intent-tokens.js.map +1 -1
  176. package/dist/esm/validations/intent.js +34 -26
  177. package/dist/esm/validations/intent.js.map +1 -1
  178. package/dist/esm/validations/max-reserved.js +51 -0
  179. package/dist/esm/validations/max-reserved.js.map +1 -0
  180. package/dist/esm/validations/on-chain-intent-submission.js +67 -0
  181. package/dist/esm/validations/on-chain-intent-submission.js.map +1 -0
  182. package/dist/esm/validations/ptp.js +9 -6
  183. package/dist/esm/validations/ptp.js.map +1 -1
  184. package/dist/esm/validations/refill.js +11 -5
  185. package/dist/esm/validations/refill.js.map +1 -1
  186. package/dist/esm/validations/solana-hook.js +12 -54
  187. package/dist/esm/validations/solana-hook.js.map +1 -1
  188. package/dist/esm/validations/solana-op-budget.js +1 -1
  189. package/dist/esm/validations/solana-op-budget.js.map +1 -1
  190. package/dist/esm/validations/solana-op-wrap.js +30 -48
  191. package/dist/esm/validations/solana-op-wrap.js.map +1 -1
  192. package/dist/esm/validations/solana-required-actions.js +2 -2
  193. package/dist/esm/validations/solana-required-actions.js.map +1 -1
  194. package/dist/esm/validations/solana-transaction.js +4 -53
  195. package/dist/esm/validations/solana-transaction.js.map +1 -1
  196. package/dist/esm/validations/total-dst-amount.js +20 -4
  197. package/dist/esm/validations/total-dst-amount.js.map +1 -1
  198. package/dist/esm/validations/trade-grouping.js +35 -10
  199. package/dist/esm/validations/trade-grouping.js.map +1 -1
  200. package/dist/esm/validations/trade-matching.js +1 -1
  201. package/dist/esm/validations/trade-matching.js.map +1 -1
  202. package/dist/esm/validations/trades.js +29 -9
  203. package/dist/esm/validations/trades.js.map +1 -1
  204. package/dist/esm/validator.js +28 -17
  205. package/dist/esm/validator.js.map +1 -1
  206. package/dist/esm/whitelists/environment-config.js +144 -183
  207. package/dist/esm/whitelists/environment-config.js.map +1 -1
  208. package/dist/esm/whitelists/types.js +3 -6
  209. package/dist/esm/whitelists/types.js.map +1 -1
  210. package/dist/types/graylists/evm/token-permit-metadata.d.ts.map +1 -1
  211. package/dist/types/helpers/address.d.ts +10 -5
  212. package/dist/types/helpers/address.d.ts.map +1 -1
  213. package/dist/types/helpers/amount.d.ts +2 -0
  214. package/dist/types/helpers/amount.d.ts.map +1 -0
  215. package/dist/types/helpers/evm-dln-hook-pack.d.ts +1 -0
  216. package/dist/types/helpers/evm-dln-hook-pack.d.ts.map +1 -1
  217. package/dist/types/helpers/evm-gas-compensation-tx.d.ts +1 -3
  218. package/dist/types/helpers/evm-gas-compensation-tx.d.ts.map +1 -1
  219. package/dist/types/helpers/evm-intent-id-abi.d.ts +111 -0
  220. package/dist/types/helpers/evm-intent-id-abi.d.ts.map +1 -1
  221. package/dist/types/helpers/evm-trade-amounts.d.ts.map +1 -1
  222. package/dist/types/helpers/expected-delegate.d.ts.map +1 -1
  223. package/dist/types/helpers/gas-compensation.d.ts.map +1 -1
  224. package/dist/types/helpers/interactions.d.ts.map +1 -1
  225. package/dist/types/helpers/synthetic-native-wrap.d.ts.map +1 -1
  226. package/dist/types/types/enums.d.ts +1 -0
  227. package/dist/types/types/enums.d.ts.map +1 -1
  228. package/dist/types/types/request.d.ts +32 -23
  229. package/dist/types/types/request.d.ts.map +1 -1
  230. package/dist/types/types/response.d.ts +10 -42
  231. package/dist/types/types/response.d.ts.map +1 -1
  232. package/dist/types/types/validation.d.ts +19 -4
  233. package/dist/types/types/validation.d.ts.map +1 -1
  234. package/dist/types/validations/compensation-hook.d.ts +1 -2
  235. package/dist/types/validations/compensation-hook.d.ts.map +1 -1
  236. package/dist/types/validations/cost-token.d.ts.map +1 -1
  237. package/dist/types/validations/echo-fields.d.ts.map +1 -1
  238. package/dist/types/validations/evm-caveats.d.ts.map +1 -1
  239. package/dist/types/validations/evm-on-chain-intent.d.ts +4 -0
  240. package/dist/types/validations/evm-on-chain-intent.d.ts.map +1 -0
  241. package/dist/types/validations/evm-op-budget.d.ts.map +1 -1
  242. package/dist/types/validations/evm-op-hook.d.ts.map +1 -1
  243. package/dist/types/validations/evm-permit.d.ts.map +1 -1
  244. package/dist/types/validations/evm-permit2.d.ts.map +1 -1
  245. package/dist/types/validations/evm-required-actions.d.ts.map +1 -1
  246. package/dist/types/validations/evm-sign712-metamask.d.ts +0 -11
  247. package/dist/types/validations/evm-sign712-metamask.d.ts.map +1 -1
  248. package/dist/types/validations/evm-sign712-shared.d.ts +12 -0
  249. package/dist/types/validations/evm-sign712-shared.d.ts.map +1 -1
  250. package/dist/types/validations/evm-sign712.d.ts +1 -0
  251. package/dist/types/validations/evm-sign712.d.ts.map +1 -1
  252. package/dist/types/validations/evm-sign7702.d.ts.map +1 -1
  253. package/dist/types/validations/evm-transaction.d.ts +1 -1
  254. package/dist/types/validations/evm-transaction.d.ts.map +1 -1
  255. package/dist/types/validations/external-call.d.ts.map +1 -1
  256. package/dist/types/validations/hook-version.d.ts +7 -0
  257. package/dist/types/validations/hook-version.d.ts.map +1 -0
  258. package/dist/types/validations/hooks-common.d.ts +1 -4
  259. package/dist/types/validations/hooks-common.d.ts.map +1 -1
  260. package/dist/types/validations/intent-destinations.d.ts.map +1 -1
  261. package/dist/types/validations/intent-tokens.d.ts.map +1 -1
  262. package/dist/types/validations/max-reserved.d.ts +3 -0
  263. package/dist/types/validations/max-reserved.d.ts.map +1 -0
  264. package/dist/types/validations/on-chain-intent-submission.d.ts +3 -0
  265. package/dist/types/validations/on-chain-intent-submission.d.ts.map +1 -0
  266. package/dist/types/validations/ptp.d.ts.map +1 -1
  267. package/dist/types/validations/refill.d.ts.map +1 -1
  268. package/dist/types/validations/solana-hook.d.ts +1 -2
  269. package/dist/types/validations/solana-hook.d.ts.map +1 -1
  270. package/dist/types/validations/solana-op-wrap.d.ts +2 -2
  271. package/dist/types/validations/solana-op-wrap.d.ts.map +1 -1
  272. package/dist/types/validations/solana-required-actions.d.ts.map +1 -1
  273. package/dist/types/validations/solana-transaction.d.ts +3 -3
  274. package/dist/types/validations/solana-transaction.d.ts.map +1 -1
  275. package/dist/types/validations/total-dst-amount.d.ts.map +1 -1
  276. package/dist/types/validations/trade-grouping.d.ts +1 -0
  277. package/dist/types/validations/trade-grouping.d.ts.map +1 -1
  278. package/dist/types/validations/trades.d.ts.map +1 -1
  279. package/dist/types/validator.d.ts.map +1 -1
  280. package/dist/types/whitelists/environment-config.d.ts +9 -4
  281. package/dist/types/whitelists/environment-config.d.ts.map +1 -1
  282. package/dist/types/whitelists/types.d.ts +0 -1
  283. package/dist/types/whitelists/types.d.ts.map +1 -1
  284. package/package.json +5 -2
@@ -1,7 +1,6 @@
1
1
  import { ViolationCode, } from "../types/index.js";
2
- import { isRequestHookV2, } from "../types/request.js";
3
2
  import { BundleHookType, ChainEngine, EvmActionOperation, PlaceholderType, SolanaActionOperation, } from "../types/enums.js";
4
- import { addressEquals, getChainEngine } from "../helpers/address.js";
3
+ import { addressEquals, getChainEngine, isAddressRepresentationValidForChain, } from "../helpers/address.js";
5
4
  import { extractGasCompensationGroups } from "../helpers/gas-compensation.js";
6
5
  import { HookMode, PlaceholderResolutionErrorReason, resolveEagerPlaceholders, resolveEagerValuePlaceholders, } from "../helpers/placeholder.js";
7
6
  import { validateSolanaHookActions } from "./solana-hook.js";
@@ -17,30 +16,71 @@ const EVM_HOOK_OPERATIONS = [
17
16
  EvmActionOperation.GasCompensation,
18
17
  ];
19
18
  const EVM_HOOK_OPERATIONS_SET = new Set(EVM_HOOK_OPERATIONS);
20
- const EVM_LEGACY_V1_HOOK_OPERATIONS = [
21
- EvmActionOperation.Delegate,
22
- EvmActionOperation.Budget,
23
- EvmActionOperation.Hook,
24
- EvmActionOperation.GasCompensation,
25
- ];
26
- const EVM_LEGACY_V1_HOOK_OPERATIONS_SET = new Set(EVM_LEGACY_V1_HOOK_OPERATIONS);
27
19
  const SOLANA_HOOK_OPERATIONS = [
28
20
  SolanaActionOperation.Hook,
29
21
  SolanaActionOperation.GasCompensation,
30
22
  ];
31
23
  const SOLANA_HOOK_OPERATIONS_SET = new Set(SOLANA_HOOK_OPERATIONS);
32
- const LEGACY_AMOUNT_PLACEHOLDER_REGEX = /\{amount(?:\.\d+)?\}/;
33
- var HookShape;
34
- (function (HookShape) {
35
- HookShape[HookShape["LegacyV1"] = 1] = "LegacyV1";
36
- HookShape[HookShape["CurrentV2"] = 2] = "CurrentV2";
37
- })(HookShape || (HookShape = {}));
38
- export function validateHooks(request, response, quoteMode, envConfig, options) {
24
+ export function validateHooks(request, response, quoteMode, envConfig) {
39
25
  return [
40
26
  ...validateHookAAConstraint(request, response),
27
+ ...validateRequestHookChainFields(request),
41
28
  ...validateHookCounts(request, response),
42
- ...validatePreHooks(request, response, quoteMode, envConfig, options),
43
- ...validatePostHooks(request, response, quoteMode, envConfig, options),
29
+ ...validatePreHooks(request, response, quoteMode, envConfig),
30
+ ...validatePostHooks(request, response, quoteMode, envConfig),
31
+ ];
32
+ }
33
+ function validateRequestHookChainFields(request) {
34
+ const hookChainViolations = [];
35
+ const gasCompensationViolations = [];
36
+ const hookLists = [
37
+ { hooks: request.preHooks ?? [], path: "request.preHooks" },
38
+ { hooks: request.postHooks ?? [], path: "request.postHooks" },
39
+ ];
40
+ for (const hookList of hookLists) {
41
+ for (let i = 0; i < hookList.hooks.length; i++) {
42
+ const hook = hookList.hooks[i];
43
+ if (resolveChainId(hook.chainId) === undefined) {
44
+ hookChainViolations.push({
45
+ code: ViolationCode.UnknownSubscriptionId,
46
+ message: `chainId=${hook.chainId} is not a known subscriptionId`,
47
+ path: `${hookList.path}[${i}].chainId`,
48
+ actual: hook.chainId,
49
+ });
50
+ }
51
+ // Validate `hook.gasCompensationInfo`
52
+ if (hook.gasCompensationInfo === undefined)
53
+ continue;
54
+ const info = hook.gasCompensationInfo;
55
+ const realChainId = resolveChainId(info.chainId);
56
+ if (realChainId === undefined) {
57
+ gasCompensationViolations.push({
58
+ code: ViolationCode.UnknownSubscriptionId,
59
+ message: `chainId=${info.chainId} is not a known subscriptionId`,
60
+ path: `${hookList.path}[${i}].gasCompensationInfo.chainId`,
61
+ actual: info.chainId,
62
+ });
63
+ // Safe skip: the unknown chain is reported above and cannot
64
+ // supply a reliable address representation policy.
65
+ continue;
66
+ }
67
+ for (const field of ["tokenAddress", "sender"]) {
68
+ if (isAddressRepresentationValidForChain(realChainId, info[field]))
69
+ continue;
70
+ gasCompensationViolations.push({
71
+ code: ViolationCode.RequestHookAddressInvalid,
72
+ message: `request hook gasCompensationInfo.${field} is not a valid`
73
+ + " address for chainId",
74
+ path: `${hookList.path}[${i}].gasCompensationInfo.${field}`,
75
+ expected: { chainId: info.chainId, realChainId },
76
+ actual: info[field],
77
+ });
78
+ }
79
+ }
80
+ }
81
+ return [
82
+ ...hookChainViolations,
83
+ ...gasCompensationViolations,
44
84
  ];
45
85
  }
46
86
  // HIGH: hooks must be empty when AA=false
@@ -104,18 +144,18 @@ function validateHookCounts(request, response) {
104
144
  }
105
145
  return violations;
106
146
  }
107
- function validatePreHooks(request, response, quoteMode, envConfig, options) {
147
+ function validatePreHooks(request, response, quoteMode, envConfig) {
108
148
  const violations = [];
109
149
  const requestHooks = request.preHooks ?? [];
110
150
  for (let i = 0; i < response.preHooks.length; i++) {
111
151
  const basePath = `response.preHooks[${i}]`;
112
152
  const hookPayload = response.preHooks[i];
113
153
  const requestHook = requestHooks[i];
114
- violations.push(...validateSingleHookPayload(hookPayload, requestHook, basePath, request, response.trades, getBundleIntentExpirationTimestamp(response), HookMode.PreHooks, quoteMode, envConfig, options));
154
+ violations.push(...validateSingleHookPayload(hookPayload, requestHook, basePath, request, response.trades, getBundleIntentExpirationTimestamp(response), HookMode.PreHooks, quoteMode, envConfig));
115
155
  }
116
156
  return violations;
117
157
  }
118
- function validatePostHooks(request, response, quoteMode, envConfig, options) {
158
+ function validatePostHooks(request, response, quoteMode, envConfig) {
119
159
  const violations = [];
120
160
  const requestHooks = request.postHooks ?? [];
121
161
  for (let i = 0; i < response.postHooks.length; i++) {
@@ -123,7 +163,7 @@ function validatePostHooks(request, response, quoteMode, envConfig, options) {
123
163
  const hookPayload = response.postHooks[i];
124
164
  // User postHooks are matched by index; extra entries are compensation hooks
125
165
  const requestHook = i < requestHooks.length ? requestHooks[i] : undefined;
126
- violations.push(...validateSingleHookPayload(hookPayload, requestHook, basePath, request, response.trades, getBundleIntentExpirationTimestamp(response), HookMode.PostHooks, quoteMode, envConfig, options));
166
+ violations.push(...validateSingleHookPayload(hookPayload, requestHook, basePath, request, response.trades, getBundleIntentExpirationTimestamp(response), HookMode.PostHooks, quoteMode, envConfig));
127
167
  }
128
168
  return violations;
129
169
  }
@@ -133,14 +173,8 @@ function getBundleIntentExpirationTimestamp(response) {
133
173
  // expiration across all intents, so the first intent is the canonical source.
134
174
  return response.intents[0]?.intent.expirationTimestamp;
135
175
  }
136
- function validateSingleHookPayload(hookPayload, requestHook, basePath, request, responseTrades, bundleIntentExpirationTimestamp, mode, quoteMode, envConfig, options) {
176
+ function validateSingleHookPayload(hookPayload, requestHook, basePath, request, responseTrades, bundleIntentExpirationTimestamp, mode, quoteMode, envConfig) {
137
177
  const isCompensationPreHook = requestHook === undefined && mode === HookMode.PreHooks;
138
- const legacySupportViolations = validateLegacyHookV1Support(hookPayload, requestHook, basePath, options);
139
- if (legacySupportViolations.length > 0) {
140
- // Safe skip: disabled legacy V1 tolerance needs one semantic violation;
141
- // continuing would emit V2-specific cascade errors.
142
- return legacySupportViolations;
143
- }
144
178
  return [
145
179
  ...validateHookEcho(hookPayload, requestHook, basePath, responseTrades, mode, quoteMode),
146
180
  ...validateRequiredActionChainFamily(hookPayload.requiredActions, basePath, resolveChainIdOrSelf(hookPayload.hook.chainId)),
@@ -149,31 +183,11 @@ function validateSingleHookPayload(hookPayload, requestHook, basePath, request,
149
183
  ...validateHookDelegateOp(hookPayload, basePath),
150
184
  ...validateGasCompensationRequiresInfo(hookPayload, basePath, request),
151
185
  ...(isCompensationPreHook
152
- ? validateCompensationHookStructure(hookPayload, basePath, request, envConfig)
186
+ ? validateCompensationHookStructure(hookPayload, basePath, request)
153
187
  : []),
154
188
  ...dispatchChainSpecificValidation(hookPayload, requestHook, basePath, quoteMode, request, mode, responseTrades, bundleIntentExpirationTimestamp, envConfig),
155
189
  ];
156
190
  }
157
- // HIGH: legacy V1 hook tolerance is temporary and configurable.
158
- function validateLegacyHookV1Support(hookPayload, requestHook, basePath, options) {
159
- if (options.allowLegacyHookV1)
160
- return [];
161
- if (!isLegacyHookV1Pair(hookPayload, requestHook))
162
- return [];
163
- return [{
164
- code: ViolationCode.LegacyHookV1Unsupported,
165
- message: "legacy V1 hook is disabled by validator config",
166
- path: `${basePath}.hook`,
167
- expected: {
168
- requestHookShape: requestHook === undefined ? undefined : HookShape.CurrentV2,
169
- responseHookShape: HookShape.CurrentV2,
170
- },
171
- actual: {
172
- requestHookShape: requestHook === undefined ? undefined : getHookShape(requestHook),
173
- responseHookShape: getHookShape(hookPayload.hook),
174
- },
175
- }];
176
- }
177
191
  // CRITICAL: response hook must echo back the request hook field-by-field.
178
192
  // Notes:
179
193
  // - hook.data in the response has eager placeholders resolved (deferred markers kept).
@@ -205,15 +219,6 @@ function validateHookEcho(hookPayload, requestHook, basePath, responseTrades, mo
205
219
  return [];
206
220
  }
207
221
  const hookPath = `${basePath}.hook`;
208
- if (!isRequestHookV2(requestHook)) {
209
- if (isRequestHookV2(hookPayload.hook)) {
210
- return [echoMismatch(`${hookPath}.shape`, getHookShape(requestHook), getHookShape(hookPayload.hook))];
211
- }
212
- return validateLegacyHookEcho(hookPayload, requestHook, basePath, responseTrades, mode);
213
- }
214
- if (!isRequestHookV2(hookPayload.hook)) {
215
- return [echoMismatch(`${hookPath}.shape`, getHookShape(requestHook), getHookShape(hookPayload.hook))];
216
- }
217
222
  const echoed = hookPayload.hook;
218
223
  const chainId = requestHook.chainId;
219
224
  const realChainId = resolveChainIdOrSelf(chainId);
@@ -260,28 +265,6 @@ function validateHookEcho(hookPayload, requestHook, basePath, responseTrades, mo
260
265
  }
261
266
  return violations;
262
267
  }
263
- function validateLegacyHookEcho(hookPayload, requestHook, basePath, responseTrades, mode) {
264
- const echoed = hookPayload.hook;
265
- const hookPath = `${basePath}.hook`;
266
- const realChainId = resolveChainIdOrSelf(requestHook.chainId);
267
- const violations = [];
268
- if (echoed.chainId !== requestHook.chainId) {
269
- violations.push(echoMismatch(`${hookPath}.chainId`, requestHook.chainId, echoed.chainId));
270
- }
271
- if (!addressEquals(realChainId, echoed.from, requestHook.from)) {
272
- violations.push(echoMismatch(`${hookPath}.from`, requestHook.from, echoed.from));
273
- }
274
- if (echoed.isAtomic !== requestHook.isAtomic) {
275
- violations.push(echoMismatch(`${hookPath}.isAtomic`, requestHook.isAtomic, echoed.isAtomic));
276
- }
277
- violations.push(...compareOptionalAddress(realChainId, `${hookPath}.to`, requestHook.to, echoed.to));
278
- violations.push(...compareLegacyHookValue(requestHook, echoed.value, `${hookPath}.value`, responseTrades, mode, realChainId));
279
- violations.push(...compareLegacyHookData(requestHook, echoed.data, `${hookPath}.data`, responseTrades, mode, realChainId));
280
- if (!isRequestHookV2(requestHook) && !isRequestHookV2(echoed)) {
281
- violations.push(...compareOptionalAddress(realChainId, `${hookPath}.tokenAddress`, requestHook.tokenAddress, echoed.tokenAddress));
282
- }
283
- return violations;
284
- }
285
268
  function echoMismatch(path, expected, actual) {
286
269
  return {
287
270
  code: ViolationCode.HookEchoMismatch,
@@ -307,38 +290,6 @@ function compareOptionalAddress(chainId, path, expected, actual) {
307
290
  }
308
291
  return [];
309
292
  }
310
- function compareLegacyHookData(requestHook, actual, path, responseTrades, mode, realChainId) {
311
- if (isRequestHookV2(requestHook) || !LEGACY_AMOUNT_PLACEHOLDER_REGEX.test(requestHook.data)) {
312
- return requestHook.data === actual ? [] : [echoMismatch(path, requestHook.data, actual)];
313
- }
314
- const { resolved, errors } = resolveEagerPlaceholders(requestHook.data, realChainId, [createLegacyV1AmountPlaceholder(requestHook)], responseTrades, mode);
315
- if (errors.length > 0) {
316
- // Safe skip: legacy V1 placeholder expansion is temporary tolerance logic.
317
- // Ambiguous expansion must not create a false-positive echo violation.
318
- return [];
319
- }
320
- return resolved === actual ? [] : [echoMismatch(path, resolved, actual)];
321
- }
322
- function compareLegacyHookValue(requestHook, actual, path, responseTrades, mode, realChainId) {
323
- if (isRequestHookV2(requestHook) || !LEGACY_AMOUNT_PLACEHOLDER_REGEX.test(requestHook.value)) {
324
- return compareOptionalString(path, requestHook.value, actual);
325
- }
326
- const { resolved, errors } = resolveEagerValuePlaceholders(requestHook.value, realChainId, [createLegacyV1AmountPlaceholder(requestHook)], responseTrades, mode);
327
- if (errors.length > 0) {
328
- // Safe skip: legacy V1 placeholder expansion is temporary tolerance logic.
329
- // Ambiguous expansion must not create a false-positive echo violation.
330
- return [];
331
- }
332
- return compareOptionalString(path, resolved, actual);
333
- }
334
- function createLegacyV1AmountPlaceholder(hook) {
335
- return {
336
- nameVariable: "amount",
337
- tokenAddress: hook.tokenAddress,
338
- address: hook.from,
339
- additionalAmount: hook.additionalAmountForPlaceholder,
340
- };
341
- }
342
293
  // HIGH: unique actionIds within hook requiredActions
343
294
  function validateHookUniqueActionIds(hookPayload, basePath) {
344
295
  const seen = new Map();
@@ -456,29 +407,11 @@ function placeholderResolutionViolations(errors, path) {
456
407
  };
457
408
  });
458
409
  }
459
- function getHookAllowedOperationsSet(isSolana, isLegacyV1UserHook) {
460
- if (isSolana)
461
- return SOLANA_HOOK_OPERATIONS_SET;
462
- return isLegacyV1UserHook
463
- ? EVM_LEGACY_V1_HOOK_OPERATIONS_SET
464
- : EVM_HOOK_OPERATIONS_SET;
465
- }
466
- function getHookAllowedOperationsList(isSolana, isLegacyV1UserHook) {
467
- if (isSolana)
468
- return SOLANA_HOOK_OPERATIONS;
469
- return isLegacyV1UserHook ? EVM_LEGACY_V1_HOOK_OPERATIONS : EVM_HOOK_OPERATIONS;
470
- }
471
- function isLegacyHookV1Pair(hookPayload, requestHook) {
472
- return !isRequestHookV2(hookPayload.hook)
473
- || (requestHook !== undefined && !isRequestHookV2(requestHook));
474
- }
475
- function isUserLegacyHookV1(hookPayload, requestHook, isSolana) {
476
- if (requestHook === undefined || isSolana)
477
- return false;
478
- return isLegacyHookV1Pair(hookPayload, requestHook);
410
+ function getHookAllowedOperationsSet(isSolana) {
411
+ return isSolana ? SOLANA_HOOK_OPERATIONS_SET : EVM_HOOK_OPERATIONS_SET;
479
412
  }
480
- function getHookShape(hook) {
481
- return isRequestHookV2(hook) ? HookShape.CurrentV2 : HookShape.LegacyV1;
413
+ function getHookAllowedOperationsList(isSolana) {
414
+ return isSolana ? SOLANA_HOOK_OPERATIONS : EVM_HOOK_OPERATIONS;
482
415
  }
483
416
  // HIGH: hook required actions must use allowed operation names. In execution
484
417
  // mode there must also be exactly one primary action: [Hook] for user hooks or
@@ -487,9 +420,8 @@ function getHookShape(hook) {
487
420
  function validateHookActionsList(hookPayload, basePath, requestHook, mode, quoteMode) {
488
421
  const realChainId = resolveChainIdOrSelf(hookPayload.hook.chainId);
489
422
  const isSolana = getChainEngine(realChainId) === ChainEngine.Solana;
490
- const isLegacyV1UserHook = isUserLegacyHookV1(hookPayload, requestHook, isSolana);
491
- const allowedSet = getHookAllowedOperationsSet(isSolana, isLegacyV1UserHook);
492
- const allowedList = getHookAllowedOperationsList(isSolana, isLegacyV1UserHook);
423
+ const allowedSet = getHookAllowedOperationsSet(isSolana);
424
+ const allowedList = getHookAllowedOperationsList(isSolana);
493
425
  const violations = [];
494
426
  for (let i = 0; i < hookPayload.requiredActions.length; i++) {
495
427
  const action = hookPayload.requiredActions[i];
@@ -515,14 +447,11 @@ function validateHookActionsList(hookPayload, basePath, requestHook, mode, quote
515
447
  }
516
448
  }
517
449
  if (!quoteMode) {
518
- violations.push(...validatePrimaryHookOperation(hookPayload, basePath, requestHook, mode, isSolana, isLegacyV1UserHook));
450
+ violations.push(...validatePrimaryHookOperation(hookPayload, basePath, requestHook, mode, isSolana));
519
451
  }
520
452
  return violations;
521
453
  }
522
- function validatePrimaryHookOperation(hookPayload, basePath, requestHook, mode, isSolana, isLegacyV1UserHook) {
523
- if (isLegacyV1UserHook) {
524
- return validateLegacyV1PrimaryHookOperation(hookPayload, basePath, requestHook);
525
- }
454
+ function validatePrimaryHookOperation(hookPayload, basePath, requestHook, mode, isSolana) {
526
455
  const expected = requestHook === undefined && mode === HookMode.PreHooks
527
456
  ? (isSolana ? SolanaActionOperation.GasCompensation : EvmActionOperation.GasCompensation)
528
457
  : (isSolana ? SolanaActionOperation.Hook : EvmActionOperation.Hook);
@@ -551,51 +480,6 @@ function validatePrimaryHookOperation(hookPayload, basePath, requestHook, mode,
551
480
  }
552
481
  return violations;
553
482
  }
554
- function validateLegacyV1PrimaryHookOperation(hookPayload, basePath, requestHook) {
555
- const budgetAllowed = requestHook !== undefined
556
- && !isRequestHookV2(requestHook)
557
- && requestHook.preparePreRequiredActions !== false;
558
- const primaryIndices = [];
559
- const violations = [];
560
- for (let i = 0; i < hookPayload.requiredActions.length; i++) {
561
- const ops = hookPayload.requiredActions[i].actions;
562
- if (ops.length !== 1)
563
- continue;
564
- const op = ops[0];
565
- if (op === EvmActionOperation.Delegate)
566
- continue;
567
- if (op === EvmActionOperation.Budget && budgetAllowed)
568
- continue;
569
- if (op === EvmActionOperation.Budget) {
570
- violations.push(legacyV1BudgetOperationViolation(basePath, i, ops));
571
- continue;
572
- }
573
- primaryIndices.push(i);
574
- if (op !== EvmActionOperation.Hook) {
575
- violations.push(hookOperationViolation(basePath, i, [EvmActionOperation.Hook], ops));
576
- }
577
- }
578
- if (primaryIndices.length !== 1) {
579
- violations.push({
580
- code: ViolationCode.HookActionsInvalid,
581
- message: "legacy V1 hook requiredActions must contain exactly one Hook operation",
582
- path: `${basePath}.requiredActions`,
583
- expected: [EvmActionOperation.Hook],
584
- actual: primaryIndices.map(i => hookPayload.requiredActions[i].actions),
585
- });
586
- }
587
- return violations;
588
- }
589
- function legacyV1BudgetOperationViolation(basePath, index, actual) {
590
- return {
591
- code: ViolationCode.HookActionsInvalid,
592
- message: "legacy V1 hook Budget operation is allowed only when"
593
- + " preparePreRequiredActions is enabled",
594
- path: `${basePath}.requiredActions[${index}].actions`,
595
- expected: [EvmActionOperation.Delegate, EvmActionOperation.Hook],
596
- actual,
597
- };
598
- }
599
483
  function hookOperationViolation(basePath, index, expected, actual) {
600
484
  return {
601
485
  code: ViolationCode.HookActionsInvalid,
@@ -628,7 +512,7 @@ function validateHookDelegateOp(hookPayload, basePath) {
628
512
  if (indices.length === 0)
629
513
  return [];
630
514
  const violations = [];
631
- if (isRequestHookV2(hookPayload.hook) && hookPayload.hook.type === BundleHookType.Direct) {
515
+ if (hookPayload.hook.type === BundleHookType.Direct) {
632
516
  violations.push({
633
517
  code: ViolationCode.HookDelegateInDirect,
634
518
  message: "Direct hook must not contain a Delegate operation"
@@ -660,7 +544,7 @@ function validateHookDelegateOp(hookPayload, basePath) {
660
544
  }
661
545
  // CRITICAL: GasCompensation must only appear when gasCompensationInfo exists
662
546
  function validateGasCompensationRequiresInfo(hookPayload, basePath, request) {
663
- const hasGasCompensationInfo = (request.preHooks ?? []).some(h => isRequestHookV2(h) && h.gasCompensationInfo !== undefined);
547
+ const hasGasCompensationInfo = (request.preHooks ?? []).some(h => h.gasCompensationInfo !== undefined);
664
548
  const realChainId = resolveChainIdOrSelf(hookPayload.hook.chainId);
665
549
  const isSolana = getChainEngine(realChainId) === ChainEngine.Solana;
666
550
  const gasCompensationOp = isSolana
@@ -685,18 +569,9 @@ function validateGasCompensationRequiresInfo(hookPayload, basePath, request) {
685
569
  }
686
570
  function dispatchChainSpecificValidation(hookPayload, requestHook, basePath, quoteMode, request, mode, responseTrades, bundleIntentExpirationTimestamp, envConfig) {
687
571
  const realChainId = resolveChainIdOrSelf(hookPayload.hook.chainId);
688
- if (requestHook !== undefined && !isRequestHookV2(requestHook)) {
689
- // Safe skip: legacy hooks use the old placeholder model, which is not
690
- // independently reproducible by the V2 hook validators. Echo checks and
691
- // generic action-shape checks above still run.
692
- return [];
693
- }
694
- if (!isRequestHookV2(hookPayload.hook)) {
695
- return [];
696
- }
697
572
  if (getChainEngine(realChainId) === ChainEngine.Solana) {
698
573
  const srcChainAuthorityAddress = findSolanaSrcChainAuthority(request);
699
- return validateSolanaHookActions(hookPayload, requestHook, basePath, quoteMode, srcChainAuthorityAddress, request, realChainId, mode, responseTrades, envConfig);
574
+ return validateSolanaHookActions(hookPayload, requestHook, basePath, quoteMode, srcChainAuthorityAddress, request, realChainId, mode, responseTrades);
700
575
  }
701
576
  return validateEvmHookActions(hookPayload, requestHook, basePath, mode, responseTrades, realChainId, request, bundleIntentExpirationTimestamp, envConfig);
702
577
  }
@@ -1 +1 @@
1
- {"version":3,"file":"hooks-common.js","sourceRoot":"","sources":["../../../src/validations/hooks-common.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hooks-common.js","sourceRoot":"","sources":["../../../src/validations/hooks-common.ts"],"names":[],"mappings":"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"}