@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
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.HookMode = void 0;
4
4
  exports.validateHooks = validateHooks;
5
5
  const types_1 = require("../types");
6
+ const request_1 = require("../types/request");
6
7
  const enums_1 = require("../types/enums");
7
8
  const address_1 = require("../helpers/address");
8
9
  const gas_compensation_1 = require("../helpers/gas-compensation");
@@ -21,17 +22,30 @@ const EVM_HOOK_OPERATIONS = [
21
22
  enums_1.EvmActionOperation.GasCompensation,
22
23
  ];
23
24
  const EVM_HOOK_OPERATIONS_SET = new Set(EVM_HOOK_OPERATIONS);
25
+ const EVM_LEGACY_V1_HOOK_OPERATIONS = [
26
+ enums_1.EvmActionOperation.Delegate,
27
+ enums_1.EvmActionOperation.Budget,
28
+ enums_1.EvmActionOperation.Hook,
29
+ enums_1.EvmActionOperation.GasCompensation,
30
+ ];
31
+ const EVM_LEGACY_V1_HOOK_OPERATIONS_SET = new Set(EVM_LEGACY_V1_HOOK_OPERATIONS);
24
32
  const SOLANA_HOOK_OPERATIONS = [
25
33
  enums_1.SolanaActionOperation.Hook,
26
34
  enums_1.SolanaActionOperation.GasCompensation,
27
35
  ];
28
36
  const SOLANA_HOOK_OPERATIONS_SET = new Set(SOLANA_HOOK_OPERATIONS);
29
- function validateHooks(request, response, quoteMode) {
37
+ const LEGACY_AMOUNT_PLACEHOLDER_REGEX = /\{amount(?:\.\d+)?\}/;
38
+ var HookShape;
39
+ (function (HookShape) {
40
+ HookShape[HookShape["LegacyV1"] = 1] = "LegacyV1";
41
+ HookShape[HookShape["CurrentV2"] = 2] = "CurrentV2";
42
+ })(HookShape || (HookShape = {}));
43
+ function validateHooks(request, response, quoteMode, envConfig, options) {
30
44
  return [
31
45
  ...validateHookAAConstraint(request, response),
32
46
  ...validateHookCounts(request, response),
33
- ...validatePreHooks(request, response, quoteMode),
34
- ...validatePostHooks(request, response, quoteMode),
47
+ ...validatePreHooks(request, response, quoteMode, envConfig, options),
48
+ ...validatePostHooks(request, response, quoteMode, envConfig, options),
35
49
  ];
36
50
  }
37
51
  // HIGH: hooks must be empty when AA=false
@@ -95,18 +109,18 @@ function validateHookCounts(request, response) {
95
109
  }
96
110
  return violations;
97
111
  }
98
- function validatePreHooks(request, response, quoteMode) {
112
+ function validatePreHooks(request, response, quoteMode, envConfig, options) {
99
113
  const violations = [];
100
114
  const requestHooks = request.preHooks ?? [];
101
115
  for (let i = 0; i < response.preHooks.length; i++) {
102
116
  const basePath = `response.preHooks[${i}]`;
103
117
  const hookPayload = response.preHooks[i];
104
118
  const requestHook = requestHooks[i];
105
- violations.push(...validateSingleHookPayload(hookPayload, requestHook, basePath, request, response.trades, placeholder_1.HookMode.PreHooks, quoteMode));
119
+ violations.push(...validateSingleHookPayload(hookPayload, requestHook, basePath, request, response.trades, placeholder_1.HookMode.PreHooks, quoteMode, envConfig, options));
106
120
  }
107
121
  return violations;
108
122
  }
109
- function validatePostHooks(request, response, quoteMode) {
123
+ function validatePostHooks(request, response, quoteMode, envConfig, options) {
110
124
  const violations = [];
111
125
  const requestHooks = request.postHooks ?? [];
112
126
  for (let i = 0; i < response.postHooks.length; i++) {
@@ -114,30 +128,58 @@ function validatePostHooks(request, response, quoteMode) {
114
128
  const hookPayload = response.postHooks[i];
115
129
  // User postHooks are matched by index; extra entries are compensation hooks
116
130
  const requestHook = i < requestHooks.length ? requestHooks[i] : undefined;
117
- violations.push(...validateSingleHookPayload(hookPayload, requestHook, basePath, request, response.trades, placeholder_1.HookMode.PostHooks, quoteMode));
131
+ violations.push(...validateSingleHookPayload(hookPayload, requestHook, basePath, request, response.trades, placeholder_1.HookMode.PostHooks, quoteMode, envConfig, options));
118
132
  }
119
133
  return violations;
120
134
  }
121
- function validateSingleHookPayload(hookPayload, requestHook, basePath, request, responseTrades, mode, quoteMode) {
135
+ function validateSingleHookPayload(hookPayload, requestHook, basePath, request, responseTrades, mode, quoteMode, envConfig, options) {
122
136
  const isCompensationPreHook = requestHook === undefined && mode === placeholder_1.HookMode.PreHooks;
137
+ const legacySupportViolations = validateLegacyHookV1Support(hookPayload, requestHook, basePath, options);
138
+ if (legacySupportViolations.length > 0) {
139
+ // Safe skip: when the caller disables legacy V1 hooks, one semantic
140
+ // violation is enough; continuing would emit V2-specific cascade errors.
141
+ return legacySupportViolations;
142
+ }
123
143
  return [
124
144
  ...validateHookEcho(hookPayload, requestHook, basePath, responseTrades, mode),
125
145
  ...validateHookUniqueActionIds(hookPayload, basePath),
126
- ...validateHookActionsList(hookPayload, basePath),
146
+ ...validateHookActionsList(hookPayload, basePath, requestHook, mode, quoteMode),
127
147
  ...validateHookDelegateOp(hookPayload, basePath),
128
148
  ...validateHookSolanaNotDirect(hookPayload, basePath),
129
149
  ...validateGasCompensationRequiresInfo(hookPayload, basePath, request),
130
150
  ...(isCompensationPreHook
131
- ? (0, compensation_hook_1.validateCompensationHookStructure)(hookPayload, basePath, request)
151
+ ? (0, compensation_hook_1.validateCompensationHookStructure)(hookPayload, basePath, request, envConfig)
132
152
  : []),
133
- ...dispatchChainSpecificValidation(hookPayload, requestHook, basePath, quoteMode, request, mode, responseTrades),
153
+ ...dispatchChainSpecificValidation(hookPayload, requestHook, basePath, quoteMode, request, mode, responseTrades, envConfig),
134
154
  ];
135
155
  }
156
+ // HIGH: callers can opt out of temporary legacy V1 hook tolerance.
157
+ function validateLegacyHookV1Support(hookPayload, requestHook, basePath, options) {
158
+ if (options.allowLegacyHookV1)
159
+ return [];
160
+ if (!isLegacyHookV1Pair(hookPayload, requestHook))
161
+ return [];
162
+ return [{
163
+ code: types_1.ViolationCode.LegacyHookV1Unsupported,
164
+ message: "legacy V1 hook is disabled by validator config",
165
+ path: `${basePath}.hook`,
166
+ expected: {
167
+ requestHookShape: requestHook === undefined ? undefined : HookShape.CurrentV2,
168
+ responseHookShape: HookShape.CurrentV2,
169
+ },
170
+ actual: {
171
+ requestHookShape: requestHook === undefined ? undefined : getHookShape(requestHook),
172
+ responseHookShape: getHookShape(hookPayload.hook),
173
+ },
174
+ }];
175
+ }
136
176
  // MEDIUM: Solana hooks must not be of type 'direct'.
137
177
  function validateHookSolanaNotDirect(hookPayload, basePath) {
138
178
  const realChainId = (0, subscription_to_chain_id_1.resolveChainIdOrSelf)(hookPayload.hook.chainId);
139
179
  if ((0, address_1.getChainEngine)(realChainId) !== enums_1.ChainEngine.Solana)
140
180
  return [];
181
+ if (!(0, request_1.isRequestHookV2)(hookPayload.hook))
182
+ return [];
141
183
  if (hookPayload.hook.type !== enums_1.BundleHookType.Direct)
142
184
  return [];
143
185
  return [{
@@ -178,11 +220,20 @@ function validateHookEcho(hookPayload, requestHook, basePath, responseTrades, mo
178
220
  }
179
221
  return [];
180
222
  }
223
+ const hookPath = `${basePath}.hook`;
224
+ if (!(0, request_1.isRequestHookV2)(requestHook)) {
225
+ if ((0, request_1.isRequestHookV2)(hookPayload.hook)) {
226
+ return [echoMismatch(`${hookPath}.shape`, getHookShape(requestHook), getHookShape(hookPayload.hook))];
227
+ }
228
+ return validateLegacyHookEcho(hookPayload, requestHook, basePath, responseTrades, mode);
229
+ }
230
+ if (!(0, request_1.isRequestHookV2)(hookPayload.hook)) {
231
+ return [echoMismatch(`${hookPath}.shape`, getHookShape(requestHook), getHookShape(hookPayload.hook))];
232
+ }
181
233
  const echoed = hookPayload.hook;
182
234
  const chainId = requestHook.chainId;
183
235
  const realChainId = (0, subscription_to_chain_id_1.resolveChainIdOrSelf)(chainId);
184
236
  const isSolana = (0, address_1.getChainEngine)(realChainId) === enums_1.ChainEngine.Solana;
185
- const hookPath = `${basePath}.hook`;
186
237
  const violations = [];
187
238
  // chainId — strict number equality (subscriptionId on both sides)
188
239
  if (echoed.chainId !== chainId) {
@@ -198,10 +249,11 @@ function validateHookEcho(hookPayload, requestHook, basePath, responseTrades, mo
198
249
  }
199
250
  // to, value — chain-dependent.
200
251
  // Solana: API deletes both from the echo; skip entirely.
201
- // EVM: compare as-is (value is not modified by placeholder resolution).
252
+ // EVM: API resolves eager markers in value and echoes the processed decimal
253
+ // string; deferred markers are preserved.
202
254
  if (!isSolana) {
203
255
  violations.push(...compareOptionalAddress(realChainId, `${hookPath}.to`, requestHook.to, echoed.to));
204
- violations.push(...compareOptionalString(`${hookPath}.value`, requestHook.value, echoed.value));
256
+ violations.push(...compareHookValue(requestHook, echoed.value, `${hookPath}.value`, responseTrades, mode, realChainId));
205
257
  }
206
258
  // data — eager placeholders are resolved by the API before echoing.
207
259
  const { resolved: expectedData, errors } = (0, placeholder_1.resolveEagerPlaceholders)(requestHook.data, realChainId, requestHook.placeHolders, responseTrades, mode);
@@ -239,6 +291,28 @@ function validateHookEcho(hookPayload, requestHook, basePath, responseTrades, mo
239
291
  }
240
292
  return violations;
241
293
  }
294
+ function validateLegacyHookEcho(hookPayload, requestHook, basePath, responseTrades, mode) {
295
+ const echoed = hookPayload.hook;
296
+ const hookPath = `${basePath}.hook`;
297
+ const realChainId = (0, subscription_to_chain_id_1.resolveChainIdOrSelf)(requestHook.chainId);
298
+ const violations = [];
299
+ if (echoed.chainId !== requestHook.chainId) {
300
+ violations.push(echoMismatch(`${hookPath}.chainId`, requestHook.chainId, echoed.chainId));
301
+ }
302
+ if (!(0, address_1.addressEquals)(realChainId, echoed.from, requestHook.from)) {
303
+ violations.push(echoMismatch(`${hookPath}.from`, requestHook.from, echoed.from));
304
+ }
305
+ if (echoed.isAtomic !== requestHook.isAtomic) {
306
+ violations.push(echoMismatch(`${hookPath}.isAtomic`, requestHook.isAtomic, echoed.isAtomic));
307
+ }
308
+ violations.push(...compareOptionalAddress(realChainId, `${hookPath}.to`, requestHook.to, echoed.to));
309
+ violations.push(...compareLegacyHookValue(requestHook, echoed.value, `${hookPath}.value`, responseTrades, mode, realChainId));
310
+ violations.push(...compareLegacyHookData(requestHook, echoed.data, `${hookPath}.data`, responseTrades, mode, realChainId));
311
+ if (!(0, request_1.isRequestHookV2)(requestHook) && !(0, request_1.isRequestHookV2)(echoed)) {
312
+ violations.push(...compareOptionalAddress(realChainId, `${hookPath}.tokenAddress`, requestHook.tokenAddress, echoed.tokenAddress));
313
+ }
314
+ return violations;
315
+ }
242
316
  function echoMismatch(path, expected, actual) {
243
317
  return {
244
318
  code: types_1.ViolationCode.HookEchoMismatch,
@@ -264,6 +338,38 @@ function compareOptionalAddress(chainId, path, expected, actual) {
264
338
  }
265
339
  return [];
266
340
  }
341
+ function compareLegacyHookData(requestHook, actual, path, responseTrades, mode, realChainId) {
342
+ if ((0, request_1.isRequestHookV2)(requestHook) || !LEGACY_AMOUNT_PLACEHOLDER_REGEX.test(requestHook.data)) {
343
+ return requestHook.data === actual ? [] : [echoMismatch(path, requestHook.data, actual)];
344
+ }
345
+ const { resolved, errors } = (0, placeholder_1.resolveEagerPlaceholders)(requestHook.data, realChainId, [createLegacyV1AmountPlaceholder(requestHook)], responseTrades, mode);
346
+ if (errors.length > 0) {
347
+ // Safe skip: legacy V1 placeholder expansion is temporary tolerance logic.
348
+ // Ambiguous expansion must not create a false-positive echo violation.
349
+ return [];
350
+ }
351
+ return resolved === actual ? [] : [echoMismatch(path, resolved, actual)];
352
+ }
353
+ function compareLegacyHookValue(requestHook, actual, path, responseTrades, mode, realChainId) {
354
+ if ((0, request_1.isRequestHookV2)(requestHook) || !LEGACY_AMOUNT_PLACEHOLDER_REGEX.test(requestHook.value)) {
355
+ return compareOptionalString(path, requestHook.value, actual);
356
+ }
357
+ const { resolved, errors } = (0, placeholder_1.resolveEagerValuePlaceholders)(requestHook.value, realChainId, [createLegacyV1AmountPlaceholder(requestHook)], responseTrades, mode);
358
+ if (errors.length > 0) {
359
+ // Safe skip: legacy V1 placeholder expansion is temporary tolerance logic.
360
+ // Ambiguous expansion must not create a false-positive echo violation.
361
+ return [];
362
+ }
363
+ return compareOptionalString(path, resolved, actual);
364
+ }
365
+ function createLegacyV1AmountPlaceholder(hook) {
366
+ return {
367
+ nameVariable: "amount",
368
+ tokenAddress: hook.tokenAddress,
369
+ address: hook.from,
370
+ additionalAmount: hook.additionalAmountForPlaceholder,
371
+ };
372
+ }
267
373
  // HIGH: unique actionIds within hook requiredActions
268
374
  function validateHookUniqueActionIds(hookPayload, basePath) {
269
375
  const seen = new Map();
@@ -286,12 +392,63 @@ function validateHookUniqueActionIds(hookPayload, basePath) {
286
392
  }
287
393
  return violations;
288
394
  }
289
- // HIGH: each hook required action must have exactly one operation: [Hook] or [GasCompensation]
290
- function validateHookActionsList(hookPayload, basePath) {
395
+ function compareHookValue(requestHook, actual, path, responseTrades, mode, realChainId) {
396
+ if (requestHook.value === undefined)
397
+ return compareOptionalString(path, undefined, actual);
398
+ const { resolved, errors } = (0, placeholder_1.resolveEagerValuePlaceholders)(requestHook.value, realChainId, requestHook.placeHolders, responseTrades, mode);
399
+ const violations = placeholderResolutionViolations(errors, path);
400
+ if (resolved !== actual) {
401
+ violations.push(echoMismatch(path, resolved, actual));
402
+ }
403
+ return violations;
404
+ }
405
+ function placeholderResolutionViolations(errors, path) {
406
+ return errors.map(error => {
407
+ const reasonText = placeholder_1.PlaceholderResolutionErrorReason[error.reason];
408
+ return {
409
+ code: types_1.ViolationCode.HookPlaceholderResolutionFailed,
410
+ message: `failed to resolve placeholder "${error.nameVariable}"`
411
+ + ` (${reasonText})`,
412
+ path,
413
+ actual: { nameVariable: error.nameVariable, reason: reasonText },
414
+ details: error.details,
415
+ };
416
+ });
417
+ }
418
+ function getHookAllowedOperationsSet(isSolana, isLegacyV1UserHook) {
419
+ if (isSolana)
420
+ return SOLANA_HOOK_OPERATIONS_SET;
421
+ return isLegacyV1UserHook
422
+ ? EVM_LEGACY_V1_HOOK_OPERATIONS_SET
423
+ : EVM_HOOK_OPERATIONS_SET;
424
+ }
425
+ function getHookAllowedOperationsList(isSolana, isLegacyV1UserHook) {
426
+ if (isSolana)
427
+ return SOLANA_HOOK_OPERATIONS;
428
+ return isLegacyV1UserHook ? EVM_LEGACY_V1_HOOK_OPERATIONS : EVM_HOOK_OPERATIONS;
429
+ }
430
+ function isLegacyHookV1Pair(hookPayload, requestHook) {
431
+ return !(0, request_1.isRequestHookV2)(hookPayload.hook)
432
+ || (requestHook !== undefined && !(0, request_1.isRequestHookV2)(requestHook));
433
+ }
434
+ function isUserLegacyHookV1(hookPayload, requestHook, isSolana) {
435
+ if (requestHook === undefined || isSolana)
436
+ return false;
437
+ return isLegacyHookV1Pair(hookPayload, requestHook);
438
+ }
439
+ function getHookShape(hook) {
440
+ return (0, request_1.isRequestHookV2)(hook) ? HookShape.CurrentV2 : HookShape.LegacyV1;
441
+ }
442
+ // HIGH: hook required actions must use allowed operation names. In execution
443
+ // mode there must also be exactly one primary action: [Hook] for user hooks or
444
+ // [GasCompensation] for appended compensation hooks. EVM [Delegate] may appear
445
+ // as the separate first action and is checked by `validateHookDelegateOp`.
446
+ function validateHookActionsList(hookPayload, basePath, requestHook, mode, quoteMode) {
291
447
  const realChainId = (0, subscription_to_chain_id_1.resolveChainIdOrSelf)(hookPayload.hook.chainId);
292
448
  const isSolana = (0, address_1.getChainEngine)(realChainId) === enums_1.ChainEngine.Solana;
293
- const allowedSet = isSolana ? SOLANA_HOOK_OPERATIONS_SET : EVM_HOOK_OPERATIONS_SET;
294
- const allowedList = isSolana ? SOLANA_HOOK_OPERATIONS : EVM_HOOK_OPERATIONS;
449
+ const isLegacyV1UserHook = isUserLegacyHookV1(hookPayload, requestHook, isSolana);
450
+ const allowedSet = getHookAllowedOperationsSet(isSolana, isLegacyV1UserHook);
451
+ const allowedList = getHookAllowedOperationsList(isSolana, isLegacyV1UserHook);
295
452
  const violations = [];
296
453
  for (let i = 0; i < hookPayload.requiredActions.length; i++) {
297
454
  const action = hookPayload.requiredActions[i];
@@ -309,16 +466,104 @@ function validateHookActionsList(hookPayload, basePath) {
309
466
  if (!allowedSet.has(action.actions[0])) {
310
467
  violations.push({
311
468
  code: types_1.ViolationCode.HookActionsInvalid,
312
- message: "hook required action operation must be Hook"
313
- + " or GasCompensation",
469
+ message: "hook required action operation is not allowed in hook scope",
314
470
  path: `${actionPath}.actions`,
315
471
  expected: allowedList,
316
472
  actual: action.actions,
317
473
  });
318
474
  }
319
475
  }
476
+ if (!quoteMode) {
477
+ violations.push(...validatePrimaryHookOperation(hookPayload, basePath, requestHook, mode, isSolana, isLegacyV1UserHook));
478
+ }
320
479
  return violations;
321
480
  }
481
+ function validatePrimaryHookOperation(hookPayload, basePath, requestHook, mode, isSolana, isLegacyV1UserHook) {
482
+ if (isLegacyV1UserHook) {
483
+ return validateLegacyV1PrimaryHookOperation(hookPayload, basePath, requestHook);
484
+ }
485
+ const expected = requestHook === undefined && mode === placeholder_1.HookMode.PreHooks
486
+ ? (isSolana ? enums_1.SolanaActionOperation.GasCompensation : enums_1.EvmActionOperation.GasCompensation)
487
+ : (isSolana ? enums_1.SolanaActionOperation.Hook : enums_1.EvmActionOperation.Hook);
488
+ const delegate = enums_1.EvmActionOperation.Delegate;
489
+ const primaryIndices = [];
490
+ const violations = [];
491
+ for (let i = 0; i < hookPayload.requiredActions.length; i++) {
492
+ const ops = hookPayload.requiredActions[i].actions;
493
+ if (ops.length !== 1)
494
+ continue;
495
+ if (ops[0] === delegate && !isSolana)
496
+ continue;
497
+ primaryIndices.push(i);
498
+ if (ops[0] !== expected) {
499
+ violations.push(hookOperationViolation(basePath, i, [expected], ops));
500
+ }
501
+ }
502
+ if (primaryIndices.length !== 1) {
503
+ violations.push({
504
+ code: types_1.ViolationCode.HookActionsInvalid,
505
+ message: "hook requiredActions must contain exactly one primary operation",
506
+ path: `${basePath}.requiredActions`,
507
+ expected: [expected],
508
+ actual: primaryIndices.map(i => hookPayload.requiredActions[i].actions),
509
+ });
510
+ }
511
+ return violations;
512
+ }
513
+ function validateLegacyV1PrimaryHookOperation(hookPayload, basePath, requestHook) {
514
+ const budgetAllowed = requestHook !== undefined
515
+ && !(0, request_1.isRequestHookV2)(requestHook)
516
+ && requestHook.preparePreRequiredActions !== false;
517
+ const primaryIndices = [];
518
+ const violations = [];
519
+ for (let i = 0; i < hookPayload.requiredActions.length; i++) {
520
+ const ops = hookPayload.requiredActions[i].actions;
521
+ if (ops.length !== 1)
522
+ continue;
523
+ const op = ops[0];
524
+ if (op === enums_1.EvmActionOperation.Delegate)
525
+ continue;
526
+ if (op === enums_1.EvmActionOperation.Budget && budgetAllowed)
527
+ continue;
528
+ if (op === enums_1.EvmActionOperation.Budget) {
529
+ violations.push(legacyV1BudgetOperationViolation(basePath, i, ops));
530
+ continue;
531
+ }
532
+ primaryIndices.push(i);
533
+ if (op !== enums_1.EvmActionOperation.Hook) {
534
+ violations.push(hookOperationViolation(basePath, i, [enums_1.EvmActionOperation.Hook], ops));
535
+ }
536
+ }
537
+ if (primaryIndices.length !== 1) {
538
+ violations.push({
539
+ code: types_1.ViolationCode.HookActionsInvalid,
540
+ message: "legacy V1 hook requiredActions must contain exactly one Hook operation",
541
+ path: `${basePath}.requiredActions`,
542
+ expected: [enums_1.EvmActionOperation.Hook],
543
+ actual: primaryIndices.map(i => hookPayload.requiredActions[i].actions),
544
+ });
545
+ }
546
+ return violations;
547
+ }
548
+ function legacyV1BudgetOperationViolation(basePath, index, actual) {
549
+ return {
550
+ code: types_1.ViolationCode.HookActionsInvalid,
551
+ message: "legacy V1 hook Budget operation is allowed only when"
552
+ + " preparePreRequiredActions is enabled",
553
+ path: `${basePath}.requiredActions[${index}].actions`,
554
+ expected: [enums_1.EvmActionOperation.Delegate, enums_1.EvmActionOperation.Hook],
555
+ actual,
556
+ };
557
+ }
558
+ function hookOperationViolation(basePath, index, expected, actual) {
559
+ return {
560
+ code: types_1.ViolationCode.HookActionsInvalid,
561
+ message: "hook required action operation does not match hook purpose",
562
+ path: `${basePath}.requiredActions[${index}].actions`,
563
+ expected,
564
+ actual,
565
+ };
566
+ }
322
567
  // HIGH: Delegate-op constraints for EVM hook requiredActions.
323
568
  // * `Delegate` may appear at most once.
324
569
  // * If present, it must be the first required action (the API emits
@@ -342,7 +587,7 @@ function validateHookDelegateOp(hookPayload, basePath) {
342
587
  if (indices.length === 0)
343
588
  return [];
344
589
  const violations = [];
345
- if (hookPayload.hook.type === enums_1.BundleHookType.Direct) {
590
+ if ((0, request_1.isRequestHookV2)(hookPayload.hook) && hookPayload.hook.type === enums_1.BundleHookType.Direct) {
346
591
  violations.push({
347
592
  code: types_1.ViolationCode.HookDelegateInDirect,
348
593
  message: "Direct hook must not contain a Delegate operation"
@@ -374,7 +619,7 @@ function validateHookDelegateOp(hookPayload, basePath) {
374
619
  }
375
620
  // CRITICAL: GasCompensation must only appear when gasCompensationInfo exists
376
621
  function validateGasCompensationRequiresInfo(hookPayload, basePath, request) {
377
- const hasGasCompensationInfo = (request.preHooks ?? []).some(h => h.gasCompensationInfo !== undefined);
622
+ const hasGasCompensationInfo = (request.preHooks ?? []).some(h => (0, request_1.isRequestHookV2)(h) && h.gasCompensationInfo !== undefined);
378
623
  const realChainId = (0, subscription_to_chain_id_1.resolveChainIdOrSelf)(hookPayload.hook.chainId);
379
624
  const isSolana = (0, address_1.getChainEngine)(realChainId) === enums_1.ChainEngine.Solana;
380
625
  const gasCompensationOp = isSolana
@@ -397,13 +642,22 @@ function validateGasCompensationRequiresInfo(hookPayload, basePath, request) {
397
642
  }
398
643
  return violations;
399
644
  }
400
- function dispatchChainSpecificValidation(hookPayload, requestHook, basePath, quoteMode, request, mode, responseTrades) {
645
+ function dispatchChainSpecificValidation(hookPayload, requestHook, basePath, quoteMode, request, mode, responseTrades, envConfig) {
401
646
  const realChainId = (0, subscription_to_chain_id_1.resolveChainIdOrSelf)(hookPayload.hook.chainId);
647
+ if (requestHook !== undefined && !(0, request_1.isRequestHookV2)(requestHook)) {
648
+ // Safe skip: legacy hooks use the old placeholder model, which is not
649
+ // independently reproducible by the V2 hook validators. Echo checks and
650
+ // generic action-shape checks above still run.
651
+ return [];
652
+ }
653
+ if (!(0, request_1.isRequestHookV2)(hookPayload.hook)) {
654
+ return [];
655
+ }
402
656
  if ((0, address_1.getChainEngine)(realChainId) === enums_1.ChainEngine.Solana) {
403
657
  const srcChainAuthorityAddress = findSolanaSrcChainAuthority(request);
404
- return (0, solana_hook_1.validateSolanaHookActions)(hookPayload, requestHook, basePath, quoteMode, srcChainAuthorityAddress, request, realChainId, mode, responseTrades);
658
+ return (0, solana_hook_1.validateSolanaHookActions)(hookPayload, requestHook, basePath, quoteMode, srcChainAuthorityAddress, request, realChainId, mode, responseTrades, envConfig);
405
659
  }
406
- return (0, evm_op_hook_1.validateEvmHookActions)(hookPayload, requestHook, basePath, mode, responseTrades, realChainId, request);
660
+ return (0, evm_op_hook_1.validateEvmHookActions)(hookPayload, requestHook, basePath, mode, responseTrades, realChainId, request, envConfig);
407
661
  }
408
662
  function findSolanaSrcChainAuthority(request) {
409
663
  for (const trade of request.trades) {
@@ -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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"}
@@ -6,6 +6,7 @@ const address_1 = require("../helpers/address");
6
6
  const evm_token_1 = require("../helpers/evm-token");
7
7
  const subscription_to_chain_id_1 = require("../whitelists/subscription-to-chain-id");
8
8
  const programs_1 = require("../whitelists/solana/programs");
9
+ const integer_1 = require("../helpers/integer");
9
10
  function validateIntentTokens(ctx, basePath) {
10
11
  const intent = ctx.intentPayload.intent;
11
12
  const group = ctx.tradeGroup;
@@ -128,7 +129,7 @@ function validateConstraintBudget(inputToken, ctx, normalizedAddress, basePath)
128
129
  let expectedSum = 0n;
129
130
  for (const { response, trade } of contributingResponseTrades) {
130
131
  try {
131
- expectedSum += BigInt(response.srcChainTokenIn.amount);
132
+ expectedSum += (0, integer_1.parseIntegerString)(response.srcChainTokenIn.amount);
132
133
  }
133
134
  catch (error) {
134
135
  // Safe skip: invalid response `srcChainTokenIn.amount` is reported
@@ -140,7 +141,7 @@ function validateConstraintBudget(inputToken, ctx, normalizedAddress, basePath)
140
141
  }
141
142
  let actualBudget;
142
143
  try {
143
- actualBudget = BigInt(inputToken.constraintBudget);
144
+ actualBudget = (0, integer_1.parseIntegerString)(inputToken.constraintBudget);
144
145
  }
145
146
  catch (error) {
146
147
  return [{
@@ -240,16 +241,18 @@ function collectInputAddressesForCrossChainTrades(intent, group) {
240
241
  function isCrossChain(trade) {
241
242
  return trade.srcChainId !== trade.dstChainId;
242
243
  }
243
- // CRITICAL: intent.takeToken[] must represent exactly the set of unique
244
- // (dstChainId, dstChainTokenOut) pairs from the group's trades. Missing pairs,
245
- // duplicate entries, and unknown chainId/address combinations are each reported
246
- // as specific violations.
244
+ // CRITICAL: intent.takeToken[] must cover the unique destination
245
+ // (dstChainId, dstChainTokenOut) pairs from the group's trades. The API keys
246
+ // actual take-token entries by source/from token plus destination token, so
247
+ // duplicate detection uses the full
248
+ // (fromTokenAddress, takeTokenChainId, takeTokenAddress) identity.
247
249
  // CRITICAL: fromTokenAddress must be in inputToken[] (same-chain) or giveToken[]
248
250
  // (cross-chain).
249
251
  function validateTakeTokens(intent, group, basePath) {
250
252
  const violations = [];
251
- const expectedTakeTokens = buildExpectedTakeTokens(group);
252
- const actualKeys = intent.takeToken.map(takeToken => buildTakeTokenKey(takeToken));
253
+ const expectedDestinations = buildExpectedTakeTokenDestinations(group);
254
+ const actualKeys = intent.takeToken.map(takeToken => buildTakeTokenIdentityKey(takeToken, group.realChainId));
255
+ const actualDestinations = new Set(intent.takeToken.map(takeToken => buildTakeTokenDestinationKey(takeToken)));
253
256
  const firstOccurrence = new Map();
254
257
  for (let i = 0; i < actualKeys.length; i++) {
255
258
  const key = actualKeys[i];
@@ -258,8 +261,8 @@ function validateTakeTokens(intent, group, basePath) {
258
261
  violations.push({
259
262
  code: types_1.ViolationCode.IntentTakeTokenDuplicate,
260
263
  message: `intent.takeToken[${i}] duplicates the entry at`
261
- + ` index ${earlier} — each (takeTokenChainId,`
262
- + ` takeTokenAddress) pair must appear once`,
264
+ + ` index ${earlier} — each (fromTokenAddress,`
265
+ + ` takeTokenChainId, takeTokenAddress) tuple must appear once`,
263
266
  path: `${basePath}[${i}]`,
264
267
  actual: key,
265
268
  });
@@ -268,8 +271,8 @@ function validateTakeTokens(intent, group, basePath) {
268
271
  firstOccurrence.set(key, i);
269
272
  }
270
273
  }
271
- for (const expectedTakeToken of expectedTakeTokens) {
272
- if (!firstOccurrence.has(expectedTakeToken)) {
274
+ for (const expectedTakeToken of expectedDestinations) {
275
+ if (!actualDestinations.has(expectedTakeToken)) {
273
276
  violations.push({
274
277
  code: types_1.ViolationCode.IntentTakeTokenMissing,
275
278
  message: "an expected (dstChainId, dstChainTokenOut) pair is"
@@ -281,7 +284,7 @@ function validateTakeTokens(intent, group, basePath) {
281
284
  }
282
285
  // Validate each unique entry (duplicates are already reported above)
283
286
  for (const [, i] of firstOccurrence) {
284
- violations.push(...validateSingleTakeToken(intent, intent.takeToken[i], group, expectedTakeTokens, `${basePath}[${i}]`));
287
+ violations.push(...validateSingleTakeToken(intent, intent.takeToken[i], group, expectedDestinations, `${basePath}[${i}]`));
285
288
  }
286
289
  return violations;
287
290
  }
@@ -295,10 +298,15 @@ function buildChainTokenKey(chainId, realChainId, address) {
295
298
  : address;
296
299
  return `${chainId}:${normalized}`;
297
300
  }
298
- function buildTakeTokenKey(takeToken) {
301
+ function buildTakeTokenDestinationKey(takeToken) {
299
302
  return buildChainTokenKey(takeToken.takeTokenChainId, (0, subscription_to_chain_id_1.resolveChainId)(takeToken.takeTokenChainId), takeToken.takeTokenAddress);
300
303
  }
301
- function buildExpectedTakeTokens(group) {
304
+ function buildTakeTokenIdentityKey(takeToken, sourceRealChainId) {
305
+ const fromKey = (0, address_1.normalizeAddress)(sourceRealChainId, takeToken.fromTokenAddress);
306
+ const destinationKey = buildTakeTokenDestinationKey(takeToken);
307
+ return `${fromKey}->${destinationKey}`;
308
+ }
309
+ function buildExpectedTakeTokenDestinations(group) {
302
310
  const set = new Set();
303
311
  for (const trade of group.trades) {
304
312
  const dstRealChainId = (0, subscription_to_chain_id_1.resolveChainId)(trade.dstChainId);