@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
@@ -2,6 +2,8 @@ import { ViolationCode, SpecialAmount, CostItemType, } from "../types/index.js";
2
2
  import { resolveChainId } from "../whitelists/subscription-to-chain-id.js";
3
3
  import { addressEquals } from "../helpers/address.js";
4
4
  import { validateRelatedIntentIds } from "./trade-intent-consistency.js";
5
+ import { parseIntegerString } from "../helpers/integer.js";
6
+ import { matchTrades } from "./trade-matching.js";
5
7
  /**
6
8
  * Per-trade role in asset-consolidation mode. Computed once for all trades at
7
9
  * the start of validateTrades and threaded through to per-field validators.
@@ -33,7 +35,7 @@ var TradeRole;
33
35
  TradeRole[TradeRole["Balancing"] = 1] = "Balancing";
34
36
  TradeRole[TradeRole["NonBalancing"] = 2] = "NonBalancing";
35
37
  })(TradeRole || (TradeRole = {}));
36
- export function validateTrades(request, response, quoteMode) {
38
+ export function validateTrades(request, response, quoteMode, tradePairs) {
37
39
  const violations = [];
38
40
  // CRITICAL: response cannot carry more trades than the request asked for.
39
41
  // CRITICAL: response cannot carry fewer trades than the request, except when
@@ -52,17 +54,20 @@ export function validateTrades(request, response, quoteMode) {
52
54
  });
53
55
  }
54
56
  const isBalancingMode = computeIsBalancingMode(request, response);
55
- const pairCount = Math.min(request.trades.length, response.trades.length);
56
- for (let i = 0; i < pairCount; i++) {
57
- const isLastInResponse = i === response.trades.length - 1;
58
- const role = computeTradeRole(response.trades[i], isLastInResponse, consolidationMode, isBalancingMode);
59
- violations.push(...validateSingleTrade(request.trades[i], response.trades[i], i, quoteMode, role));
57
+ const pairs = tradePairs ?? matchTrades(request.trades, response.trades, quoteMode, consolidationMode).pairs;
58
+ for (const pair of pairs) {
59
+ const isLastInResponse = pair.responseIndex === response.trades.length - 1;
60
+ const role = computeTradeRole(pair.responseTrade, isLastInResponse, consolidationMode, isBalancingMode);
61
+ violations.push(...validateSingleTrade(pair.requestTrade, pair.responseTrade, pair.requestIndex, pair.responseIndex, quoteMode, role));
60
62
  }
61
63
  // Cross-trade relatedIntentId consistency (execution mode only)
62
64
  if (!quoteMode) {
63
65
  violations.push(...validateRelatedIntentIds(response));
64
66
  }
65
- violations.push(...validatePartnerCost(request, response));
67
+ const partnerCostTrades = consolidationMode
68
+ ? pairs.map(pair => pair.requestTrade)
69
+ : request.trades;
70
+ violations.push(...validatePartnerCost(response, partnerCostTrades));
66
71
  return violations;
67
72
  }
68
73
  // True if and only if the pipeline ran the balancing-trade construction path
@@ -75,7 +80,7 @@ function computeIsBalancingMode(request, response) {
75
80
  if (response.estimatedTotalDstAmount === undefined)
76
81
  return false;
77
82
  try {
78
- return BigInt(response.estimatedTotalDstAmount) === BigInt(request.totalDstAmount);
83
+ return parseIntegerString(response.estimatedTotalDstAmount) === parseIntegerString(request.totalDstAmount);
79
84
  }
80
85
  catch {
81
86
  // Safe skip: parse error is reported separately by `validateTotalDstAmount`;
@@ -99,9 +104,9 @@ function computeTradeRole(resTrade, isLastInResponse, consolidationMode, isBalan
99
104
  }
100
105
  return TradeRole.NonBalancing;
101
106
  }
102
- function validateSingleTrade(reqTrade, resTrade, tradeIndex, quoteMode, role) {
107
+ function validateSingleTrade(reqTrade, resTrade, requestIndex, responseIndex, quoteMode, role) {
103
108
  const violations = [];
104
- const basePath = `response.trades[${tradeIndex}]`;
109
+ const basePath = `response.trades[${responseIndex}]`;
105
110
  const srcRealChainId = resolveChainId(reqTrade.srcChainId);
106
111
  const dstRealChainId = resolveChainId(reqTrade.dstChainId);
107
112
  // CRITICAL: dstChainId must be a known subscriptionId
@@ -109,7 +114,7 @@ function validateSingleTrade(reqTrade, resTrade, tradeIndex, quoteMode, role) {
109
114
  violations.push({
110
115
  code: ViolationCode.UnknownSubscriptionId,
111
116
  message: `dstChainId=${reqTrade.dstChainId} is not a known subscriptionId`,
112
- path: `request.trades[${tradeIndex}].dstChainId`,
117
+ path: `request.trades[${requestIndex}].dstChainId`,
113
118
  actual: reqTrade.dstChainId,
114
119
  });
115
120
  }
@@ -204,8 +209,8 @@ function validateSrcTokenInAmount(reqTrade, src, path, role) {
204
209
  // below.
205
210
  if (prependOperatingExpenses) {
206
211
  try {
207
- const requested = BigInt(amount);
208
- const actual = BigInt(src.amount);
212
+ const requested = parseIntegerString(amount);
213
+ const actual = parseIntegerString(src.amount);
209
214
  if (actual < requested) {
210
215
  return [{
211
216
  code: ViolationCode.TradeSrcTokenInAmountBelowRequested,
@@ -213,7 +218,7 @@ function validateSrcTokenInAmount(reqTrade, src, path, role) {
213
218
  + " (with prependOperatingExpenses=true the API must add expenses, "
214
219
  + "not deduct from the requested amount)",
215
220
  path: `${path}.amount`,
216
- expected: `>= ${amount}`,
221
+ expected: { min: amount },
217
222
  actual: src.amount,
218
223
  }];
219
224
  }
@@ -223,7 +228,7 @@ function validateSrcTokenInAmount(reqTrade, src, path, role) {
223
228
  code: ViolationCode.TradeSrcTokenInAmountBelowRequested,
224
229
  message: "failed to parse amounts for comparison",
225
230
  path: `${path}.amount`,
226
- expected: `>= ${amount}`,
231
+ expected: { min: amount },
227
232
  actual: src.amount,
228
233
  details: e,
229
234
  }];
@@ -232,8 +237,8 @@ function validateSrcTokenInAmount(reqTrade, src, path, role) {
232
237
  }
233
238
  // CRITICAL: srcChainTokenIn.amount must equal request srcChainTokenInAmount
234
239
  try {
235
- const expected = BigInt(amount);
236
- const actual = BigInt(src.amount);
240
+ const expected = parseIntegerString(amount);
241
+ const actual = parseIntegerString(src.amount);
237
242
  if (actual !== expected) {
238
243
  return [{
239
244
  code: ViolationCode.TradeSrcTokenInAmountMismatch,
@@ -261,14 +266,14 @@ function validateSrcTokenInAmountAgainstUpperBound(upperBound, src, path) {
261
266
  // rebalanced down by the API to make the dst total match. It may be
262
267
  // strictly less than the requested upper bound, but never more.
263
268
  try {
264
- const bound = BigInt(upperBound);
265
- const actual = BigInt(src.amount);
269
+ const bound = parseIntegerString(upperBound);
270
+ const actual = parseIntegerString(src.amount);
266
271
  if (actual > bound) {
267
272
  return [{
268
273
  code: ViolationCode.TradeSrcTokenInAmountExceedsUpperBound,
269
274
  message: "srcChainTokenIn.amount exceeds requested upper bound on the balancing trade",
270
275
  path: `${path}.amount`,
271
- expected: `<= ${upperBound}`,
276
+ expected: { max: upperBound },
272
277
  actual: src.amount,
273
278
  }];
274
279
  }
@@ -288,7 +293,7 @@ function validateOperatingExpense(resTrade, src, basePath) {
288
293
  const expensePath = `${basePath}.srcChainTokenIn.approximateOperatingExpense`;
289
294
  let parsedExpense;
290
295
  try {
291
- parsedExpense = BigInt(src.approximateOperatingExpense);
296
+ parsedExpense = parseIntegerString(src.approximateOperatingExpense);
292
297
  }
293
298
  catch (e) {
294
299
  return [{
@@ -336,11 +341,11 @@ function checkOperatingExpensePositive(resTrade, src, parsedExpense, basePath) {
336
341
  }
337
342
  // MEDIUM: if `prependedOperatingExpenseCost` is non-zero, expense must be > 0.
338
343
  // Skip when the field is absent — secondary trades in a group don't carry
339
- // it (expenses accumulate on the primary trade); `BigInt(undefined)` would
340
- // throw and produce a misleading `TradePrependedCostInvalid`.
344
+ // it (expenses accumulate on the primary trade); parsing an absent value
345
+ // would produce a misleading `TradePrependedCostInvalid`.
341
346
  if (resTrade.prependedOperatingExpenseCost !== undefined) {
342
347
  try {
343
- if (BigInt(resTrade.prependedOperatingExpenseCost) !== 0n) {
348
+ if (parseIntegerString(resTrade.prependedOperatingExpenseCost) !== 0n) {
344
349
  violations.push({
345
350
  code: ViolationCode.TradeOperatingExpenseExpectedPositive,
346
351
  message: "approximateOperatingExpense should be > 0"
@@ -429,7 +434,7 @@ function validateSrcChainTokenOut(reqTrade, resTrade, basePath) {
429
434
  }
430
435
  // CRITICAL: amount must be non-negative
431
436
  try {
432
- if (BigInt(resTrade.srcChainTokenOut.amount) < 0n) {
437
+ if (parseIntegerString(resTrade.srcChainTokenOut.amount) < 0n) {
433
438
  return [{
434
439
  code: ViolationCode.TradeSrcTokenOutAmountNegative,
435
440
  message: "srcChainTokenOut.amount must be non-negative",
@@ -511,8 +516,8 @@ function validateDstTokenOutAmount(reqTrade, dst, path) {
511
516
  return [];
512
517
  // CRITICAL: amount must be >= requested dstChainTokenOutAmount
513
518
  try {
514
- const requested = BigInt(reqTrade.dstChainTokenOutAmount);
515
- const actual = BigInt(dst.amount);
519
+ const requested = parseIntegerString(reqTrade.dstChainTokenOutAmount);
520
+ const actual = parseIntegerString(dst.amount);
516
521
  if (actual < requested) {
517
522
  return [{
518
523
  code: ViolationCode.TradeDstTokenOutAmountBelowRequested,
@@ -549,7 +554,7 @@ function validateWithoutPartnerFeeAmount(reqTrade, resTrade, path, role) {
549
554
  }
550
555
  let withoutFee;
551
556
  try {
552
- withoutFee = BigInt(dst.withoutPartnerFeeBpsAmount);
557
+ withoutFee = parseIntegerString(dst.withoutPartnerFeeBpsAmount);
553
558
  }
554
559
  catch (e) {
555
560
  return [{
@@ -562,7 +567,7 @@ function validateWithoutPartnerFeeAmount(reqTrade, resTrade, path, role) {
562
567
  }
563
568
  let amount;
564
569
  try {
565
- amount = BigInt(dst.amount);
570
+ amount = parseIntegerString(dst.amount);
566
571
  }
567
572
  catch (e) {
568
573
  return [{
@@ -724,7 +729,7 @@ function validatePrependedOperatingExpenseCost(reqTrade, resTrade, basePath, rol
724
729
  // CRITICAL: `prependedOperatingExpenseCost` must be zero
725
730
  let parsed;
726
731
  try {
727
- parsed = BigInt(resTrade.prependedOperatingExpenseCost);
732
+ parsed = parseIntegerString(resTrade.prependedOperatingExpenseCost);
728
733
  }
729
734
  catch (error) {
730
735
  return [{
@@ -759,7 +764,7 @@ function validateBalancingTradePrependCost(reqTrade, resTrade, basePath) {
759
764
  return [];
760
765
  let parsed;
761
766
  try {
762
- parsed = BigInt(resTrade.prependedOperatingExpenseCost);
767
+ parsed = parseIntegerString(resTrade.prependedOperatingExpenseCost);
763
768
  }
764
769
  catch (error) {
765
770
  return [{
@@ -791,7 +796,7 @@ function validateBalancingTradePrependCost(reqTrade, resTrade, basePath) {
791
796
  return [];
792
797
  let parsed;
793
798
  try {
794
- parsed = BigInt(resTrade.prependedOperatingExpenseCost);
799
+ parsed = parseIntegerString(resTrade.prependedOperatingExpenseCost);
795
800
  }
796
801
  catch (error) {
797
802
  return [{
@@ -808,7 +813,6 @@ function validateBalancingTradePrependCost(reqTrade, resTrade, basePath) {
808
813
  message: "prependedOperatingExpenseCost must be > 0 on the scaled"
809
814
  + " balancing trade (request.srcChainTokenInAmount is a number)",
810
815
  path: costPath,
811
- expected: "> 0",
812
816
  actual: resTrade.prependedOperatingExpenseCost,
813
817
  }];
814
818
  }
@@ -817,12 +821,17 @@ function validateBalancingTradePrependCost(reqTrade, resTrade, basePath) {
817
821
  // =============================================
818
822
  // partnerFeeBps
819
823
  // =============================================
820
- // API aggregates per-trade partner fees into a single bundle-wide cost item:
821
- // `amount` is the sum across trades, `feeBps` is taken from the first per-trade
822
- // entry — which is always trade index 0 since the API preserves request order.
823
- function validatePartnerCost(request, response) {
824
+ // API aggregates per-trade partner fees into a single bundle-wide cost item.
825
+ // `amount` is the sum across final response trades. `feeBps` is taken from the
826
+ // first final per-trade entry, so consolidation mode must ignore skipped
827
+ // request trades when choosing the expected value.
828
+ function validatePartnerCost(response, requestTradesForCost) {
824
829
  const partnerCosts = response.bundleCosts.filter(c => c.type === CostItemType.PARTNER_COST);
830
+ const requestedFees = requestTradesForCost.map(t => t.partnerFeeBps ?? 0);
831
+ const anyNonZero = requestedFees.some(b => b > 0);
825
832
  if (partnerCosts.length === 0) {
833
+ if (!anyNonZero)
834
+ return [];
826
835
  return [{
827
836
  code: ViolationCode.PartnerCostMissing,
828
837
  message: "bundleCosts[PARTNER_COST] entry is missing",
@@ -834,7 +843,7 @@ function validatePartnerCost(request, response) {
834
843
  const path = `response.bundleCosts[PARTNER_COST]`;
835
844
  let amount;
836
845
  try {
837
- amount = BigInt(partnerCost.amount);
846
+ amount = parseIntegerString(partnerCost.amount);
838
847
  }
839
848
  catch (error) {
840
849
  return [{
@@ -862,8 +871,6 @@ function validatePartnerCost(request, response) {
862
871
  actual: feeBps,
863
872
  });
864
873
  }
865
- const requestedFees = request.trades.map(t => t.partnerFeeBps ?? 0);
866
- const anyNonZero = requestedFees.some(b => b > 0);
867
874
  // CRITICAL: when no trade has a partner fee, the aggregated amount must be zero.
868
875
  if (!anyNonZero && amount !== 0n) {
869
876
  violations.push({
@@ -874,22 +881,16 @@ function validatePartnerCost(request, response) {
874
881
  actual: partnerCost.amount,
875
882
  });
876
883
  }
877
- // CRITICAL: when at least one trade has a partner fee, the aggregated amount must be > 0.
878
- if (anyNonZero && amount === 0n) {
879
- violations.push({
880
- code: ViolationCode.PartnerCostAmountUnexpectedlyZero,
881
- message: "PARTNER_COST.amount must be > 0 when at least one trade has partnerFeeBps > 0",
882
- path: `${path}.amount`,
883
- actual: partnerCost.amount,
884
- });
885
- }
886
- // CRITICAL: feeBps must echo request.trades[0].partnerFeeBps (or 0 when omitted).
887
- if (feeBps !== undefined && request.trades.length > 0) {
884
+ // NO NEED: amount may round to zero for very small selected trades even when
885
+ // partnerFeeBps is non-zero, so a strict positive-amount check would create
886
+ // false positives. We still validate amount format and the no-fee non-zero case.
887
+ // CRITICAL: feeBps must echo the first selected request trade's partnerFeeBps (or 0 when omitted).
888
+ if (feeBps !== undefined && requestTradesForCost.length > 0) {
888
889
  const expected = requestedFees[0];
889
890
  if (feeBps !== expected) {
890
891
  violations.push({
891
892
  code: ViolationCode.PartnerCostFeeBpsMismatch,
892
- message: "PARTNER_COST.feeBps does not match request.trades[0].partnerFeeBps",
893
+ message: "PARTNER_COST.feeBps does not match the first selected trade partnerFeeBps",
893
894
  path: `${path}.feeBps`,
894
895
  expected,
895
896
  actual: feeBps,
@@ -1 +1 @@
1
- {"version":3,"file":"trades.js","sourceRoot":"","sources":["../../../src/validations/trades.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,aAAa,EAOb,aAAa,EAEb,YAAY,GACf,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAEtE;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,IAAK,SAIJ;AAJD,WAAK,SAAS;IACV,+CAAO,CAAA;IACP,mDAAS,CAAA;IACT,yDAAY,CAAA;AAChB,CAAC,EAJI,SAAS,KAAT,SAAS,QAIb;AAED,MAAM,UAAU,cAAc,CAC1B,OAA8B,EAC9B,QAAgC,EAChC,SAAkB;IAElB,MAAM,UAAU,GAAgB,EAAE,CAAC;IAEnC,0EAA0E;IAC1E,6EAA6E;IAC7E,6EAA6E;IAC7E,uEAAuE;IACvE,MAAM,iBAAiB,GAAG,OAAO,CAAC,cAAc,KAAK,SAAS,CAAC;IAC/D,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;IAC/D,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,iBAAiB,CAAC;IACpF,IAAI,OAAO,IAAI,MAAM,EAAE,CAAC;QACpB,UAAU,CAAC,IAAI,CAAC;YACZ,IAAI,EAAE,aAAa,CAAC,kBAAkB;YACtC,OAAO,EAAE,6DAA6D;YACtE,IAAI,EAAE,iBAAiB;YACvB,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM;YAC/B,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM;SACjC,CAAC,CAAC;IACP,CAAC;IAED,MAAM,eAAe,GAAG,sBAAsB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAClE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC1E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC;QACjC,MAAM,gBAAgB,GAAG,CAAC,KAAK,QAAQ,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;QAC1D,MAAM,IAAI,GAAG,gBAAgB,CACzB,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,eAAe,CAC3E,CAAC;QACF,UAAU,CAAC,IAAI,CACX,GAAG,mBAAmB,CAClB,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,CAC5D,CACJ,CAAC;IACN,CAAC;IAED,gEAAgE;IAChE,IAAI,CAAC,SAAS,EAAE,CAAC;QACb,UAAU,CAAC,IAAI,CAAC,GAAG,wBAAwB,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED,UAAU,CAAC,IAAI,CAAC,GAAG,mBAAmB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;IAE3D,OAAO,UAAU,CAAC;AACtB,CAAC;AAED,6EAA6E;AAC7E,+EAA+E;AAC/E,6EAA6E;AAC7E,sEAAsE;AACtE,SAAS,sBAAsB,CAC3B,OAA8B,EAC9B,QAAgC;IAEhC,IAAI,OAAO,CAAC,cAAc,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAEvD,IAAI,QAAQ,CAAC,uBAAuB,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAEjE,IAAI,CAAC;QACD,OAAO,MAAM,CAAC,QAAQ,CAAC,uBAAuB,CAAC,KAAK,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IACvF,CAAC;IAAC,MAAM,CAAC;QACL,6EAA6E;QAC7E,yEAAyE;QACzE,OAAO,KAAK,CAAC;IACjB,CAAC;AACL,CAAC;AAED,SAAS,gBAAgB,CACrB,QAAuB,EACvB,gBAAyB,EACzB,iBAA0B,EAC1B,eAAwB;IAExB,IAAI,CAAC,iBAAiB;QAAE,OAAO,SAAS,CAAC,OAAO,CAAC;IAEjD,IAAI,gBAAgB,IAAI,eAAe;QAAE,OAAO,SAAS,CAAC,SAAS,CAAC;IAEpE,wDAAwD;IACxD,uEAAuE;IACvE,2EAA2E;IAC3E,kEAAkE;IAClE,IACI,eAAe;WACZ,CAAC,gBAAgB;WACjB,QAAQ,CAAC,eAAe,CAAC,2BAA2B,EACzD,CAAC;QACC,OAAO,SAAS,CAAC,SAAS,CAAC;IAC/B,CAAC;IAED,OAAO,SAAS,CAAC,YAAY,CAAC;AAClC,CAAC;AAED,SAAS,mBAAmB,CACxB,QAAsB,EACtB,QAAuB,EACvB,UAAkB,EAClB,SAAkB,EAClB,IAAe;IAEf,MAAM,UAAU,GAAgB,EAAE,CAAC;IACnC,MAAM,QAAQ,GAAG,mBAAmB,UAAU,GAAG,CAAC;IAClD,MAAM,cAAc,GAAG,cAAc,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAC3D,MAAM,cAAc,GAAG,cAAc,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAE3D,sDAAsD;IACtD,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;QAC/B,UAAU,CAAC,IAAI,CAAC;YACZ,IAAI,EAAE,aAAa,CAAC,qBAAqB;YACzC,OAAO,EAAE,cAAc,QAAQ,CAAC,UAAU,gCAAgC;YAC1E,IAAI,EAAE,kBAAkB,UAAU,cAAc;YAChD,MAAM,EAAE,QAAQ,CAAC,UAAU;SAC9B,CAAC,CAAC;IACP,CAAC;IAED,+DAA+D;IAC/D,UAAU,CAAC,IAAI,CACX,GAAG,uBAAuB,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,EAC9D,GAAG,wBAAwB,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,EACzD,GAAG,wBAAwB,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,EAC/D,GAAG,qCAAqC,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,EAC5E,GAAG,qBAAqB,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CACzD,CAAC;IAEF,kGAAkG;IAClG,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;QAC/B,UAAU,CAAC,IAAI,CACX,GAAG,yBAAyB,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,CAAC,CAC7E,CAAC;QACF,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,UAAU,CAAC,IAAI,CAAC,GAAG,mBAAmB,CAClC,QAAQ,CAAC,wBAAwB,EACjC,QAAQ,CAAC,wBAAwB,EACjC,aAAa,CAAC,gCAAgC,EAC9C,GAAG,QAAQ,2BAA2B,EACtC,0BAA0B,EAC1B,cAAc,CACjB,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAED,yFAAyF;IACzF,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;QAC/B,UAAU,CAAC,IAAI,CACX,GAAG,0BAA0B,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,CAAC,CAC9E,CAAC;QAEF,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,UAAU,CAAC,IAAI,CAAC,GAAG,8BAA8B,CAC7C,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,CAC/C,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAED,OAAO,UAAU,CAAC;AACtB,CAAC;AAED,gDAAgD;AAChD,kBAAkB;AAClB,gDAAgD;AAEhD,SAAS,uBAAuB,CAC5B,QAAsB,EACtB,QAAuB,EACvB,QAAgB,EAChB,IAAe;IAEf,MAAM,UAAU,GAAgB,EAAE,CAAC;IACnC,MAAM,GAAG,GAAG,QAAQ,CAAC,eAAe,CAAC;IACrC,MAAM,IAAI,GAAG,GAAG,QAAQ,kBAAkB,CAAC;IAE3C,kDAAkD;IAClD,IAAI,GAAG,CAAC,OAAO,KAAK,QAAQ,CAAC,UAAU,EAAE,CAAC;QACtC,UAAU,CAAC,IAAI,CAAC;YACZ,IAAI,EAAE,aAAa,CAAC,8BAA8B;YAClD,OAAO,EAAE,2DAA2D;YACpE,IAAI,EAAE,GAAG,IAAI,UAAU;YACvB,QAAQ,EAAE,QAAQ,CAAC,UAAU;YAC7B,MAAM,EAAE,GAAG,CAAC,OAAO;SACtB,CAAC,CAAC;IACP,CAAC;IAED,2EAA2E;IAC3E,wEAAwE;IACxE,oEAAoE;IACpE,oDAAoD;IACpD,UAAU,CAAC,IAAI,CAAC,GAAG,wBAAwB,CAAC,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IAExE,8CAA8C;IAC9C,UAAU,CAAC,IAAI,CAAC,GAAG,wBAAwB,CAAC,QAAQ,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC;IAEtE,2EAA2E;IAC3E,wEAAwE;IACxE,mEAAmE;IACnE,UAAU,CAAC,IAAI,CAAC,GAAG,mCAAmC,CAAC,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IAEnF,4CAA4C;IAC5C,UAAU,CAAC,IAAI,CACX,GAAG,mBAAmB,CAAC,GAAG,CAAC,mBAAmB,EAAE,GAAG,IAAI,sBAAsB,CAAC,EAC9E,GAAG,mBAAmB,CAClB,GAAG,CAAC,yBAAyB,EAAE,GAAG,IAAI,4BAA4B,CACrE,CACJ,CAAC;IAEF,OAAO,UAAU,CAAC;AACtB,CAAC;AAED,SAAS,yBAAyB,CAC9B,QAAsB,EACtB,QAAuB,EACvB,QAAgB,EAChB,cAAsB;IAEtB,iEAAiE;IACjE,+FAA+F;IAC/F,kEAAkE;IAClE,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE,QAAQ,CAAC,eAAe,EAAE,QAAQ,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7F,OAAO,CAAC;gBACJ,IAAI,EAAE,aAAa,CAAC,8BAA8B;gBAClD,OAAO,EAAE,gEAAgE;gBACzE,IAAI,EAAE,GAAG,QAAQ,0BAA0B;gBAC3C,QAAQ,EAAE,QAAQ,CAAC,eAAe;gBAClC,MAAM,EAAE,QAAQ,CAAC,eAAe,CAAC,OAAO;aAC3C,CAAC,CAAC;IACP,CAAC;IAED,OAAO,EAAE,CAAC;AACd,CAAC;AAED,SAAS,wBAAwB,CAC7B,QAAsB,EACtB,GAA4B,EAC5B,IAAY,EACZ,IAAe;IAEf,2CAA2C;IAC3C,MAAM,MAAM,GAAG,QAAQ,CAAC,qBAAqB,CAAC;IAC9C,IAAI,MAAM,KAAK,aAAa,CAAC,IAAI,IAAI,MAAM,KAAK,aAAa,CAAC,GAAG;QAAE,OAAO,EAAE,CAAC;IAE7E,4EAA4E;IAC5E,sEAAsE;IACtE,kEAAkE;IAClE,yDAAyD;IACzD,IAAI,IAAI,KAAK,SAAS,CAAC,SAAS,EAAE,CAAC;QAC/B,OAAO,yCAAyC,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IACxE,CAAC;IAED,4EAA4E;IAC5E,2EAA2E;IAC3E,8EAA8E;IAC9E,4EAA4E;IAC5E,gDAAgD;IAChD,MAAM,wBAAwB,GAC1B,IAAI,KAAK,SAAS,CAAC,YAAY;QAC3B,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,CAAC,QAAQ,CAAC,wBAAwB,IAAI,KAAK,CAAC,CAAC;IAEvD,wEAAwE;IACxE,wEAAwE;IACxE,oEAAoE;IACpE,SAAS;IACT,IAAI,wBAAwB,EAAE,CAAC;QAC3B,IAAI,CAAC;YACD,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;YACjC,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAClC,IAAI,MAAM,GAAG,SAAS,EAAE,CAAC;gBACrB,OAAO,CAAC;wBACJ,IAAI,EAAE,aAAa,CAAC,mCAAmC;wBACvD,OAAO,EACH,iEAAiE;8BAC/D,kEAAkE;8BAClE,uCAAuC;wBAC7C,IAAI,EAAE,GAAG,IAAI,SAAS;wBACtB,QAAQ,EAAE,MAAM,MAAM,EAAE;wBACxB,MAAM,EAAE,GAAG,CAAC,MAAM;qBACrB,CAAC,CAAC;YACP,CAAC;QACL,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,OAAO,CAAC;oBACJ,IAAI,EAAE,aAAa,CAAC,mCAAmC;oBACvD,OAAO,EAAE,wCAAwC;oBACjD,IAAI,EAAE,GAAG,IAAI,SAAS;oBACtB,QAAQ,EAAE,MAAM,MAAM,EAAE;oBACxB,MAAM,EAAE,GAAG,CAAC,MAAM;oBAClB,OAAO,EAAE,CAAC;iBACb,CAAC,CAAC;QACP,CAAC;QACD,OAAO,EAAE,CAAC;IACd,CAAC;IAED,4EAA4E;IAC5E,IAAI,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;QAChC,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAClC,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YACtB,OAAO,CAAC;oBACJ,IAAI,EAAE,aAAa,CAAC,6BAA6B;oBACjD,OAAO,EACH,qEAAqE;oBACzE,IAAI,EAAE,GAAG,IAAI,SAAS;oBACtB,QAAQ,EAAE,MAAM;oBAChB,MAAM,EAAE,GAAG,CAAC,MAAM;iBACrB,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,OAAO,CAAC;gBACJ,IAAI,EAAE,aAAa,CAAC,6BAA6B;gBACjD,OAAO,EAAE,wCAAwC;gBACjD,IAAI,EAAE,GAAG,IAAI,SAAS;gBACtB,QAAQ,EAAE,MAAM;gBAChB,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,OAAO,EAAE,CAAC;aACb,CAAC,CAAC;IACP,CAAC;IAED,OAAO,EAAE,CAAC;AACd,CAAC;AAED,SAAS,yCAAyC,CAC9C,UAAkB,EAClB,GAA4B,EAC5B,IAAY;IAEZ,mEAAmE;IACnE,oEAAoE;IACpE,gEAAgE;IAChE,IAAI,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;QACjC,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAClC,IAAI,MAAM,GAAG,KAAK,EAAE,CAAC;YACjB,OAAO,CAAC;oBACJ,IAAI,EAAE,aAAa,CAAC,sCAAsC;oBAC1D,OAAO,EACH,6EAA6E;oBACjF,IAAI,EAAE,GAAG,IAAI,SAAS;oBACtB,QAAQ,EAAE,MAAM,UAAU,EAAE;oBAC5B,MAAM,EAAE,GAAG,CAAC,MAAM;iBACrB,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,OAAO,CAAC;gBACJ,IAAI,EAAE,aAAa,CAAC,sCAAsC;gBAC1D,OAAO,EAAE,wCAAwC;gBACjD,IAAI,EAAE,GAAG,IAAI,SAAS;gBACtB,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,OAAO,EAAE,CAAC;aACb,CAAC,CAAC;IACP,CAAC;IAED,OAAO,EAAE,CAAC;AACd,CAAC;AAED,SAAS,wBAAwB,CAC7B,QAAuB,EACvB,GAA4B,EAC5B,QAAgB;IAEhB,MAAM,WAAW,GAAG,GAAG,QAAQ,8CAA8C,CAAC;IAE9E,IAAI,aAAqB,CAAC;IAC1B,IAAI,CAAC;QACD,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;IAC5D,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,OAAO,CAAC;gBACJ,IAAI,EAAE,aAAa,CAAC,4BAA4B;gBAChD,OAAO,EAAE,mDAAmD;gBAC5D,IAAI,EAAE,WAAW;gBACjB,MAAM,EAAE,GAAG,CAAC,2BAA2B;gBACvC,OAAO,EAAE,CAAC;aACb,CAAC,CAAC;IACP,CAAC;IAED,MAAM,UAAU,GAAgB,EAAE,CAAC;IAEnC,iCAAiC;IACjC,IAAI,aAAa,GAAG,EAAE,EAAE,CAAC;QACrB,UAAU,CAAC,IAAI,CAAC;YACZ,IAAI,EAAE,aAAa,CAAC,6BAA6B;YACjD,OAAO,EAAE,kDAAkD;YAC3D,IAAI,EAAE,WAAW;YACjB,MAAM,EAAE,GAAG,CAAC,2BAA2B;SAC1C,CAAC,CAAC;IACP,CAAC;IAED,gDAAgD;IAChD,UAAU,CAAC,IAAI,CACX,GAAG,6BAA6B,CAAC,QAAQ,EAAE,GAAG,EAAE,aAAa,EAAE,QAAQ,CAAC,CAC3E,CAAC;IAEF,OAAO,UAAU,CAAC;AACtB,CAAC;AAED,SAAS,6BAA6B,CAClC,QAAuB,EACvB,GAA4B,EAC5B,aAAqB,EACrB,QAAgB;IAEhB,IAAI,aAAa,GAAG,EAAE;QAAE,OAAO,EAAE,CAAC;IAElC,MAAM,WAAW,GAAG,GAAG,QAAQ,8CAA8C,CAAC;IAC9E,MAAM,UAAU,GAAgB,EAAE,CAAC;IAEnC,yEAAyE;IACzE,2EAA2E;IAC3E,qEAAqE;IACrE,0DAA0D;IAC1D,6EAA6E;IAC7E,qEAAqE;IACrE,MAAM,kBAAkB,GAAG,QAAQ,CAAC,6BAA6B,KAAK,SAAS,CAAC;IAChF,IAAI,GAAG,CAAC,2BAA2B,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACzD,UAAU,CAAC,IAAI,CAAC;YACZ,IAAI,EAAE,aAAa,CAAC,qCAAqC;YACzD,OAAO,EACH,2CAA2C;kBACzC,2CAA2C;YACjD,IAAI,EAAE,WAAW;YACjB,MAAM,EAAE,GAAG,CAAC,2BAA2B;SAC1C,CAAC,CAAC;IACP,CAAC;IAED,+EAA+E;IAC/E,0EAA0E;IAC1E,2EAA2E;IAC3E,8DAA8D;IAC9D,IAAI,QAAQ,CAAC,6BAA6B,KAAK,SAAS,EAAE,CAAC;QACvD,IAAI,CAAC;YACD,IAAI,MAAM,CAAC,QAAQ,CAAC,6BAA6B,CAAC,KAAK,EAAE,EAAE,CAAC;gBACxD,UAAU,CAAC,IAAI,CAAC;oBACZ,IAAI,EAAE,aAAa,CAAC,qCAAqC;oBACzD,OAAO,EACH,2CAA2C;0BACzC,iDAAiD;oBACvD,IAAI,EAAE,WAAW;oBACjB,MAAM,EAAE,GAAG,CAAC,2BAA2B;iBAC1C,CAAC,CAAC;YACP,CAAC;QACL,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,UAAU,CAAC,IAAI,CAAC;gBACZ,IAAI,EAAE,aAAa,CAAC,yBAAyB;gBAC7C,OAAO,EAAE,qDAAqD;gBAC9D,IAAI,EAAE,GAAG,QAAQ,gCAAgC;gBACjD,MAAM,EAAE,QAAQ,CAAC,6BAA6B;gBAC9C,OAAO,EAAE,CAAC;aACb,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAED,OAAO,UAAU,CAAC;AACtB,CAAC;AAED,SAAS,mCAAmC,CACxC,QAAsB,EACtB,GAA4B,EAC5B,IAAY,EACZ,IAAe;IAEf,2EAA2E;IAC3E,6EAA6E;IAC7E,4EAA4E;IAC5E,mFAAmF;IACnF,IAAI,QAAQ,CAAC,qBAAqB,KAAK,aAAa,CAAC,GAAG;QAAE,OAAO,EAAE,CAAC;IAEpE,wEAAwE;IACxE,qDAAqD;IACrD,yEAAyE;IACzE,8EAA8E;IAC9E,uEAAuE;IACvE,4EAA4E;IAC5E,IAAI,IAAI,KAAK,SAAS,CAAC,SAAS,EAAE,CAAC;QAC/B,MAAM,eAAe,GAAG,QAAQ,CAAC,qBAAqB,KAAK,aAAa,CAAC,IAAI,CAAC;QAC9E,IAAI,GAAG,CAAC,2BAA2B,KAAK,eAAe,EAAE,CAAC;YACtD,OAAO,CAAC;oBACJ,IAAI,EAAE,aAAa,CAAC,wCAAwC;oBAC5D,OAAO,EACH,4DAA4D;0BAC1D,yCAAyC;oBAC/C,IAAI,EAAE,GAAG,IAAI,8BAA8B;oBAC3C,QAAQ,EAAE,eAAe;oBACzB,MAAM,EAAE,GAAG,CAAC,2BAA2B;iBAC1C,CAAC,CAAC;QACP,CAAC;QACD,OAAO,EAAE,CAAC;IACd,CAAC;IAED,4EAA4E;IAC5E,2EAA2E;IAC3E,8EAA8E;IAC9E,mDAAmD;IACnD,MAAM,eAAe,GACjB,IAAI,KAAK,SAAS,CAAC,YAAY;QAC3B,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,CAAC,QAAQ,CAAC,wBAAwB,IAAI,KAAK,CAAC,CAAC;IAEvD,MAAM,MAAM,GAAG,QAAQ,CAAC,qBAAqB,KAAK,aAAa,CAAC,IAAI,CAAC;IACrE,MAAM,eAAe,GAAG,eAAe,IAAI,MAAM,CAAC;IAElD,4CAA4C;IAC5C,IAAI,GAAG,CAAC,2BAA2B,KAAK,eAAe,EAAE,CAAC;QACtD,OAAO,CAAC;gBACJ,IAAI,EAAE,aAAa,CAAC,wCAAwC;gBAC5D,OAAO,EACH,2EAA2E;gBAC/E,IAAI,EAAE,GAAG,IAAI,8BAA8B;gBAC3C,QAAQ,EAAE,eAAe;gBACzB,MAAM,EAAE,GAAG,CAAC,2BAA2B;aAC1C,CAAC,CAAC;IACP,CAAC;IAED,OAAO,EAAE,CAAC;AACd,CAAC;AAED,gDAAgD;AAChD,mBAAmB;AACnB,gDAAgD;AAEhD,SAAS,wBAAwB,CAC7B,QAAsB,EACtB,QAAuB,EACvB,QAAgB;IAEhB,wDAAwD;IACxD,IAAI,CAAC,QAAQ,CAAC,gBAAgB;QAAE,OAAO,EAAE,CAAC;IAE1C,kDAAkD;IAClD,IAAI,QAAQ,CAAC,gBAAgB,CAAC,OAAO,KAAK,QAAQ,CAAC,UAAU,EAAE,CAAC;QAC5D,OAAO,CAAC;gBACJ,IAAI,EAAE,aAAa,CAAC,+BAA+B;gBACnD,OAAO,EAAE,4DAA4D;gBACrE,IAAI,EAAE,GAAG,QAAQ,2BAA2B;gBAC5C,QAAQ,EAAE,QAAQ,CAAC,UAAU;gBAC7B,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,OAAO;aAC5C,CAAC,CAAC;IACP,CAAC;IAED,wCAAwC;IACxC,IAAI,CAAC;QACD,IAAI,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC;YAChD,OAAO,CAAC;oBACJ,IAAI,EAAE,aAAa,CAAC,8BAA8B;oBAClD,OAAO,EAAE,8CAA8C;oBACvD,IAAI,EAAE,GAAG,QAAQ,0BAA0B;oBAC3C,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,MAAM;iBAC3C,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,OAAO,CAAC;gBACJ,IAAI,EAAE,aAAa,CAAC,8BAA8B;gBAClD,OAAO,EAAE,+CAA+C;gBACxD,IAAI,EAAE,GAAG,QAAQ,0BAA0B;gBAC3C,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,MAAM;gBACxC,OAAO,EAAE,CAAC;aACb,CAAC,CAAC;IACP,CAAC;IAED,sEAAsE;IACtE,mDAAmD;IACnD,IAAI,QAAQ,CAAC,gBAAgB,CAAC,mBAAmB,KAAK,SAAS,EAAE,CAAC;QAC9D,OAAO,mBAAmB,CACtB,QAAQ,CAAC,gBAAgB,CAAC,mBAAmB,EAC7C,GAAG,QAAQ,uCAAuC,CACrD,CAAC;IACN,CAAC;IAED,OAAO,EAAE,CAAC;AACd,CAAC;AAED,gDAAgD;AAChD,mBAAmB;AACnB,gDAAgD;AAEhD,SAAS,wBAAwB,CAC7B,QAAsB,EACtB,QAAuB,EACvB,QAAgB,EAChB,IAAe;IAEf,MAAM,UAAU,GAAgB,EAAE,CAAC;IACnC,MAAM,GAAG,GAAG,QAAQ,CAAC,gBAAgB,CAAC;IACtC,MAAM,IAAI,GAAG,GAAG,QAAQ,mBAAmB,CAAC;IAE5C,kDAAkD;IAClD,IAAI,GAAG,CAAC,OAAO,KAAK,QAAQ,CAAC,UAAU,EAAE,CAAC;QACtC,UAAU,CAAC,IAAI,CAAC;YACZ,IAAI,EAAE,aAAa,CAAC,+BAA+B;YACnD,OAAO,EAAE,4DAA4D;YACrE,IAAI,EAAE,GAAG,IAAI,UAAU;YACvB,QAAQ,EAAE,QAAQ,CAAC,UAAU;YAC7B,MAAM,EAAE,GAAG,CAAC,OAAO;SACtB,CAAC,CAAC;IACP,CAAC;IAED,gDAAgD;IAChD,UAAU,CAAC,IAAI,CACX,GAAG,yBAAyB,CAAC,QAAQ,EAAE,GAAG,EAAE,IAAI,CAAC,EACjD,GAAG,+BAA+B,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CACrE,CAAC;IAEF,4CAA4C;IAC5C,UAAU,CAAC,IAAI,CACX,GAAG,mBAAmB,CAAC,GAAG,CAAC,mBAAmB,EAAE,GAAG,IAAI,sBAAsB,CAAC,EAC9E,GAAG,mBAAmB,CAClB,GAAG,CAAC,8BAA8B,EAAE,GAAG,IAAI,iCAAiC,CAC/E,CACJ,CAAC;IAEF,mFAAmF;IACnF,IAAI,GAAG,CAAC,iCAAiC,KAAK,SAAS,EAAE,CAAC;QACtD,UAAU,CAAC,IAAI,CAAC;YACZ,IAAI,EAAE,aAAa,CAAC,qBAAqB;YACzC,OAAO,EAAE,8CAA8C;YACvD,IAAI,EAAE,GAAG,IAAI,oCAAoC;YACjD,MAAM,EAAE,SAAS;SACpB,CAAC,CAAC;IACP,CAAC;SAAM,CAAC;QACJ,4CAA4C;QAC5C,UAAU,CAAC,IAAI,CAAC,GAAG,mBAAmB,CAClC,GAAG,CAAC,iCAAiC,EACrC,GAAG,IAAI,oCAAoC,CAC9C,CAAC,CAAC;IACP,CAAC;IAED,OAAO,UAAU,CAAC;AACtB,CAAC;AAED,SAAS,0BAA0B,CAC/B,QAAsB,EACtB,QAAuB,EACvB,QAAgB,EAChB,cAAsB;IAEtB,MAAM,GAAG,GAAG,QAAQ,CAAC,gBAAgB,CAAC;IAEtC,wDAAwD;IACxD,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE,QAAQ,CAAC,gBAAgB,EAAE,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;QACzE,OAAO,CAAC;gBACJ,IAAI,EAAE,aAAa,CAAC,+BAA+B;gBACnD,OAAO,EAAE,kEAAkE;gBAC3E,IAAI,EAAE,GAAG,QAAQ,2BAA2B;gBAC5C,QAAQ,EAAE,QAAQ,CAAC,gBAAgB;gBACnC,MAAM,EAAE,GAAG,CAAC,OAAO;aACtB,CAAC,CAAC;IACP,CAAC;IAED,OAAO,EAAE,CAAC;AACd,CAAC;AAED,SAAS,yBAAyB,CAC9B,QAAsB,EACtB,GAA6B,EAC7B,IAAY;IAEZ,IAAI,QAAQ,CAAC,sBAAsB,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IAC7D,IAAI,QAAQ,CAAC,sBAAsB,KAAK,aAAa,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IAEtE,+DAA+D;IAC/D,IAAI,CAAC;QACD,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC;QAC1D,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAClC,IAAI,MAAM,GAAG,SAAS,EAAE,CAAC;YACrB,OAAO,CAAC;oBACJ,IAAI,EAAE,aAAa,CAAC,oCAAoC;oBACxD,OAAO,EACH,uEAAuE;oBAC3E,IAAI,EAAE,GAAG,IAAI,SAAS;oBACtB,QAAQ,EAAE,QAAQ,CAAC,sBAAsB;oBACzC,MAAM,EAAE,GAAG,CAAC,MAAM;iBACrB,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,OAAO,CAAC;gBACJ,IAAI,EAAE,aAAa,CAAC,oCAAoC;gBACxD,OAAO,EAAE,wCAAwC;gBACjD,IAAI,EAAE,GAAG,IAAI,SAAS;gBACtB,QAAQ,EAAE,QAAQ,CAAC,sBAAsB;gBACzC,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,OAAO,EAAE,CAAC;aACb,CAAC,CAAC;IACP,CAAC;IAED,OAAO,EAAE,CAAC;AACd,CAAC;AAED,SAAS,+BAA+B,CACpC,QAAsB,EACtB,QAAuB,EACvB,IAAY,EACZ,IAAe;IAEf,MAAM,GAAG,GAAG,QAAQ,CAAC,gBAAgB,CAAC;IACtC,MAAM,OAAO,GAAG,GAAG,IAAI,6BAA6B,CAAC;IAErD,uDAAuD;IACvD,IAAI,GAAG,CAAC,0BAA0B,KAAK,SAAS,EAAE,CAAC;QAC/C,OAAO,CAAC;gBACJ,IAAI,EAAE,aAAa,CAAC,oCAAoC;gBACxD,OAAO,EAAE,uCAAuC;gBAChD,IAAI,EAAE,OAAO;gBACb,MAAM,EAAE,SAAS;aACpB,CAAC,CAAC;IACP,CAAC;IAED,IAAI,UAAkB,CAAC;IACvB,IAAI,CAAC;QACD,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;IACxD,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,OAAO,CAAC;gBACJ,IAAI,EAAE,aAAa,CAAC,oCAAoC;gBACxD,OAAO,EAAE,kDAAkD;gBAC3D,IAAI,EAAE,OAAO;gBACb,MAAM,EAAE,GAAG,CAAC,0BAA0B;gBACtC,OAAO,EAAE,CAAC;aACb,CAAC,CAAC;IACP,CAAC;IAED,IAAI,MAAc,CAAC;IACnB,IAAI,CAAC;QACD,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,OAAO,CAAC;gBACJ,IAAI,EAAE,aAAa,CAAC,oCAAoC;gBACxD,OAAO,EAAE,+CAA+C;gBACxD,IAAI,EAAE,GAAG,IAAI,SAAS;gBACtB,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,OAAO,EAAE,CAAC;aACb,CAAC,CAAC;IACP,CAAC;IAED,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;IAEvE,IAAI,iBAAiB,EAAE,CAAC;QACpB,IAAI,UAAU,GAAG,EAAE,EAAE,CAAC;YAClB,OAAO,CAAC;oBACJ,IAAI,EAAE,aAAa,CAAC,oCAAoC;oBACxD,OAAO,EAAE,iDAAiD;oBAC1D,IAAI,EAAE,OAAO;oBACb,MAAM,EAAE,GAAG,CAAC,0BAA0B;iBACzC,CAAC,CAAC;QACP,CAAC;QACD,OAAO,EAAE,CAAC;IACd,CAAC;IAED,gFAAgF;IAChF,kFAAkF;IAClF,4EAA4E;IAC5E,4EAA4E;IAC5E,2DAA2D;IAC3D,yEAAyE;IACzE,2EAA2E;IAC3E,2CAA2C;IAC3C,IAAI,UAAU,GAAG,MAAM,EAAE,CAAC;QACtB,MAAM,aAAa,GAAG,CAAC,QAAQ,CAAC,aAAa,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACxD,OAAO,CAAC;gBACJ,IAAI,EAAE,aAAa;oBACf,CAAC,CAAC,aAAa,CAAC,kCAAkC;oBAClD,CAAC,CAAC,aAAa,CAAC,oCAAoC;gBACxD,OAAO,EAAE,aAAa;oBAClB,CAAC,CAAC,qEAAqE;oBACvE,CAAC,CAAC,8CAA8C;gBACpD,IAAI,EAAE,OAAO;gBACb,QAAQ,EAAE,GAAG,CAAC,MAAM;gBACpB,MAAM,EAAE,GAAG,CAAC,0BAA0B;aACzC,CAAC,CAAC;IACP,CAAC;IAED,OAAO,EAAE,CAAC;AACd,CAAC;AAED,SAAS,kBAAkB,CACvB,QAAsB,EACtB,QAAuB,EACvB,IAAe;IAEf,6EAA6E;IAC7E,2EAA2E;IAC3E,yEAAyE;IACzE,0EAA0E;IAC1E,OAAO,IAAI,KAAK,SAAS,CAAC,SAAS;WAC5B,QAAQ,CAAC,qBAAqB,KAAK,aAAa,CAAC,IAAI;WACrD,CACC,QAAQ,CAAC,sBAAsB,KAAK,SAAS;eAC1C,QAAQ,CAAC,sBAAsB,KAAK,aAAa,CAAC,IAAI,CAC5D;WACE,CACC,QAAQ,CAAC,eAAe,CAAC,2BAA2B;eACjD,sCAAsC,CAAC,QAAQ,EAAE,IAAI,CAAC,CAC5D,CAAC;AACV,CAAC;AAED,SAAS,sCAAsC,CAC3C,QAAsB,EACtB,IAAe;IAEf,uEAAuE;IACvE,wEAAwE;IACxE,wDAAwD;IACxD,IAAI,QAAQ,CAAC,qBAAqB,KAAK,aAAa,CAAC,GAAG;QAAE,OAAO,KAAK,CAAC;IAEvE,IAAI,IAAI,KAAK,SAAS,CAAC,SAAS,EAAE,CAAC;QAC/B,OAAO,QAAQ,CAAC,qBAAqB,KAAK,aAAa,CAAC,IAAI,CAAC;IACjE,CAAC;IAED,MAAM,eAAe,GACjB,IAAI,KAAK,SAAS,CAAC,YAAY;QAC3B,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,CAAC,QAAQ,CAAC,wBAAwB,IAAI,KAAK,CAAC,CAAC;IAEvD,MAAM,MAAM,GAAG,QAAQ,CAAC,qBAAqB,KAAK,aAAa,CAAC,IAAI,CAAC;IAErE,OAAO,eAAe,IAAI,MAAM,CAAC;AACrC,CAAC;AAED,gDAAgD;AAChD,qCAAqC;AACrC,gDAAgD;AAEhD,SAAS,8BAA8B,CACnC,QAAsB,EACtB,QAAuB,EACvB,QAAgB,EAChB,cAAsB;IAEtB,OAAO;QACH,yDAAyD;QACzD,GAAG,mBAAmB,CAClB,QAAQ,CAAC,yBAAyB,EAClC,QAAQ,CAAC,yBAAyB,EAClC,aAAa,CAAC,yBAAyB,EACvC,GAAG,QAAQ,4BAA4B,EACvC,2BAA2B,EAC3B,cAAc,CACjB;QACD,wDAAwD;QACxD,GAAG,mBAAmB,CAClB,QAAQ,CAAC,wBAAwB,EACjC,QAAQ,CAAC,wBAAwB,EACjC,aAAa,CAAC,gCAAgC,EAC9C,GAAG,QAAQ,2BAA2B,EACtC,0BAA0B,EAC1B,cAAc,CACjB;KACJ,CAAC;AACN,CAAC;AAED,SAAS,mBAAmB,CACxB,QAA4B,EAC5B,MAA0B,EAC1B,IAAmB,EACnB,IAAY,EACZ,SAAiB,EACjB,WAAoB;IAEpB,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QACzB,0EAA0E;QAC1E,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACvB,OAAO,CAAC;oBACJ,IAAI;oBACJ,OAAO,EAAE,GAAG,SAAS,gDAAgD;oBACrE,IAAI;oBACJ,QAAQ,EAAE,SAAS;oBACnB,MAAM;iBACT,CAAC,CAAC;QACP,CAAC;QACD,OAAO,EAAE,CAAC;IACd,CAAC;IAED,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO,CAAC;gBACJ,IAAI;gBACJ,OAAO,EAAE,GAAG,SAAS,gDAAgD;gBACrE,IAAI;gBACJ,QAAQ;gBACR,MAAM,EAAE,SAAS;aACpB,CAAC,CAAC;IACP,CAAC;IAED,uCAAuC;IACvC,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC;QAChD,OAAO,CAAC;gBACJ,IAAI;gBACJ,OAAO,EAAE,GAAG,SAAS,yBAAyB;gBAC9C,IAAI;gBACJ,QAAQ;gBACR,MAAM;aACT,CAAC,CAAC;IACP,CAAC;IAED,OAAO,EAAE,CAAC;AACd,CAAC;AAED,gDAAgD;AAChD,gCAAgC;AAChC,gDAAgD;AAEhD,SAAS,qCAAqC,CAC1C,QAAsB,EACtB,QAAuB,EACvB,QAAgB,EAChB,IAAe;IAEf,MAAM,KAAK,GAAG,QAAQ,CAAC,qBAAqB,KAAK,aAAa,CAAC,GAAG,CAAC;IAEnE,wEAAwE;IACxE,6BAA6B;IAC7B,IAAI,KAAK;QAAE,OAAO,EAAE,CAAC;IAErB,wEAAwE;IACxE,yBAAyB;IACzB,yEAAyE;IACzE,mEAAmE;IACnE,uEAAuE;IACvE,4EAA4E;IAC5E,IAAI,IAAI,KAAK,SAAS,CAAC,SAAS,EAAE,CAAC;QAC/B,OAAO,iCAAiC,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC3E,CAAC;IAED,4EAA4E;IAC5E,2EAA2E;IAC3E,8EAA8E;IAC9E,mDAAmD;IACnD,MAAM,eAAe,GACjB,IAAI,KAAK,SAAS,CAAC,YAAY;QAC3B,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,CAAC,QAAQ,CAAC,wBAAwB,IAAI,KAAK,CAAC,CAAC;IAEvD,MAAM,MAAM,GAAG,QAAQ,CAAC,qBAAqB,KAAK,aAAa,CAAC,IAAI,CAAC;IAErE,yEAAyE;IACzE,UAAU;IACV,0FAA0F;IAC1F,kFAAkF;IAClF,0EAA0E;IAC1E,IAAI,eAAe,IAAI,MAAM;QAAE,OAAO,EAAE,CAAC;IAEzC,wEAAwE;IACxE,wEAAwE;IACxE,wDAAwD;IACxD,IAAI,QAAQ,CAAC,6BAA6B,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IAEpE,MAAM,QAAQ,GAAG,GAAG,QAAQ,gCAAgC,CAAC;IAE7D,yDAAyD;IAEzD,IAAI,MAAc,CAAC;IACnB,IAAI,CAAC;QACD,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,6BAA6B,CAAC,CAAC;IAC5D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,OAAO,CAAC;gBACJ,IAAI,EAAE,aAAa,CAAC,yBAAyB;gBAC7C,OAAO,EAAE,qDAAqD;gBAC9D,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,QAAQ,CAAC,6BAA6B;gBAC9C,OAAO,EAAE,KAAK;aACjB,CAAC,CAAC;IACP,CAAC;IAED,IAAI,MAAM,KAAK,EAAE,EAAE,CAAC;QAChB,OAAO,CAAC;gBACJ,IAAI,EAAE,aAAa,CAAC,yBAAyB;gBAC7C,OAAO,EACH,kDAAkD;sBAChD,8DAA8D;sBAC9D,eAAe;gBACrB,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,GAAG;gBACb,MAAM,EAAE,QAAQ,CAAC,6BAA6B;aACjD,CAAC,CAAC;IACP,CAAC;IAED,OAAO,EAAE,CAAC;AACd,CAAC;AAED,SAAS,iCAAiC,CACtC,QAAsB,EACtB,QAAuB,EACvB,QAAgB;IAEhB,MAAM,QAAQ,GAAG,GAAG,QAAQ,gCAAgC,CAAC;IAC7D,MAAM,MAAM,GAAG,QAAQ,CAAC,qBAAqB,KAAK,aAAa,CAAC,IAAI,CAAC;IAErE,4EAA4E;IAC5E,yEAAyE;IACzE,8EAA8E;IAC9E,IAAI,MAAM,EAAE,CAAC;QACT,IAAI,QAAQ,CAAC,6BAA6B,KAAK,SAAS;YAAE,OAAO,EAAE,CAAC;QAEpE,IAAI,MAAc,CAAC;QACnB,IAAI,CAAC;YACD,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,6BAA6B,CAAC,CAAC;QAC5D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,CAAC;oBACJ,IAAI,EAAE,aAAa,CAAC,yBAAyB;oBAC7C,OAAO,EAAE,qDAAqD;oBAC9D,IAAI,EAAE,QAAQ;oBACd,MAAM,EAAE,QAAQ,CAAC,6BAA6B;oBAC9C,OAAO,EAAE,KAAK;iBACjB,CAAC,CAAC;QACP,CAAC;QAED,IAAI,MAAM,KAAK,EAAE,EAAE,CAAC;YAChB,OAAO,CAAC;oBACJ,IAAI,EAAE,aAAa,CAAC,yBAAyB;oBAC7C,OAAO,EACH,6DAA6D;0BAC3D,iDAAiD;oBACvD,IAAI,EAAE,QAAQ;oBACd,QAAQ,EAAE,GAAG;oBACb,MAAM,EAAE,QAAQ,CAAC,6BAA6B;iBACjD,CAAC,CAAC;QACP,CAAC;QAED,OAAO,EAAE,CAAC;IACd,CAAC;IAED,0EAA0E;IAC1E,wEAAwE;IACxE,4EAA4E;IAC5E,yEAAyE;IACzE,0EAA0E;IAC1E,IAAI,QAAQ,CAAC,6BAA6B,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IAEpE,IAAI,MAAc,CAAC;IACnB,IAAI,CAAC;QACD,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,6BAA6B,CAAC,CAAC;IAC5D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,OAAO,CAAC;gBACJ,IAAI,EAAE,aAAa,CAAC,yBAAyB;gBAC7C,OAAO,EAAE,qDAAqD;gBAC9D,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,QAAQ,CAAC,6BAA6B;gBAC9C,OAAO,EAAE,KAAK;aACjB,CAAC,CAAC;IACP,CAAC;IAED,IAAI,MAAM,IAAI,EAAE,EAAE,CAAC;QACf,OAAO,CAAC;gBACJ,IAAI,EAAE,aAAa,CAAC,yBAAyB;gBAC7C,OAAO,EACH,yDAAyD;sBACvD,8DAA8D;gBACpE,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,KAAK;gBACf,MAAM,EAAE,QAAQ,CAAC,6BAA6B;aACjD,CAAC,CAAC;IACP,CAAC;IAED,OAAO,EAAE,CAAC;AACd,CAAC;AAED,gDAAgD;AAChD,gBAAgB;AAChB,gDAAgD;AAEhD,6EAA6E;AAC7E,gFAAgF;AAChF,+EAA+E;AAC/E,SAAS,mBAAmB,CACxB,OAA8B,EAC9B,QAAgC;IAEhC,MAAM,YAAY,GAAG,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,YAAY,CAAC,CAAC;IAE5F,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,CAAC;gBACJ,IAAI,EAAE,aAAa,CAAC,kBAAkB;gBACtC,OAAO,EAAE,4CAA4C;gBACrD,IAAI,EAAE,sBAAsB;aAC/B,CAAC,CAAC;IACP,CAAC;IAED,MAAM,UAAU,GAAgB,EAAE,CAAC;IACnC,MAAM,WAAW,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;IACpC,MAAM,IAAI,GAAG,oCAAoC,CAAC;IAElD,IAAI,MAAc,CAAC;IACnB,IAAI,CAAC;QACD,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IACxC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,OAAO,CAAC;gBACJ,IAAI,EAAE,aAAa,CAAC,wBAAwB;gBAC5C,OAAO,EAAE,4CAA4C;gBACrD,IAAI,EAAE,GAAG,IAAI,SAAS;gBACtB,MAAM,EAAE,WAAW,CAAC,MAAM;gBAC1B,OAAO,EAAE,KAAK;aACjB,CAAC,CAAC;IACP,CAAC;IACD,IAAI,MAAM,GAAG,EAAE,EAAE,CAAC;QACd,UAAU,CAAC,IAAI,CAAC;YACZ,IAAI,EAAE,aAAa,CAAC,wBAAwB;YAC5C,OAAO,EAAE,0CAA0C;YACnD,IAAI,EAAE,GAAG,IAAI,SAAS;YACtB,MAAM,EAAE,WAAW,CAAC,MAAM;SAC7B,CAAC,CAAC;IACP,CAAC;IAED,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC;IAClC,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;QACrC,UAAU,CAAC,IAAI,CAAC;YACZ,IAAI,EAAE,aAAa,CAAC,wBAAwB;YAC5C,OAAO,EAAE,0CAA0C;YACnD,IAAI,EAAE,GAAG,IAAI,SAAS;YACtB,MAAM,EAAE,MAAM;SACjB,CAAC,CAAC;IACP,CAAC;IAED,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,IAAI,CAAC,CAAC,CAAC;IACpE,MAAM,UAAU,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAElD,iFAAiF;IACjF,IAAI,CAAC,UAAU,IAAI,MAAM,KAAK,EAAE,EAAE,CAAC;QAC/B,UAAU,CAAC,IAAI,CAAC;YACZ,IAAI,EAAE,aAAa,CAAC,oCAAoC;YACxD,OAAO,EAAE,mEAAmE;YAC5E,IAAI,EAAE,GAAG,IAAI,SAAS;YACtB,QAAQ,EAAE,GAAG;YACb,MAAM,EAAE,WAAW,CAAC,MAAM;SAC7B,CAAC,CAAC;IACP,CAAC;IAED,0FAA0F;IAC1F,IAAI,UAAU,IAAI,MAAM,KAAK,EAAE,EAAE,CAAC;QAC9B,UAAU,CAAC,IAAI,CAAC;YACZ,IAAI,EAAE,aAAa,CAAC,iCAAiC;YACrD,OAAO,EAAE,+EAA+E;YACxF,IAAI,EAAE,GAAG,IAAI,SAAS;YACtB,MAAM,EAAE,WAAW,CAAC,MAAM;SAC7B,CAAC,CAAC;IACP,CAAC;IAED,kFAAkF;IAClF,IAAI,MAAM,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpD,MAAM,QAAQ,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;QAClC,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YACtB,UAAU,CAAC,IAAI,CAAC;gBACZ,IAAI,EAAE,aAAa,CAAC,yBAAyB;gBAC7C,OAAO,EAAE,oEAAoE;gBAC7E,IAAI,EAAE,GAAG,IAAI,SAAS;gBACtB,QAAQ;gBACR,MAAM,EAAE,MAAM;aACjB,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAED,OAAO,UAAU,CAAC;AACtB,CAAC;AAED,6EAA6E;AAC7E,mFAAmF;AACnF,SAAS,qBAAqB,CAC1B,QAAsB,EACtB,QAAuB,EACvB,QAAgB;IAEhB,IAAI,QAAQ,CAAC,aAAa,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IACpD,IAAI,QAAQ,CAAC,aAAa,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IAEpD,6EAA6E;IAC7E,IAAI,QAAQ,CAAC,aAAa,KAAK,QAAQ,CAAC,aAAa,EAAE,CAAC;QACpD,OAAO,CAAC;gBACJ,IAAI,EAAE,aAAa,CAAC,0BAA0B;gBAC9C,OAAO,EAAE,+CAA+C;gBACxD,IAAI,EAAE,GAAG,QAAQ,gBAAgB;gBACjC,QAAQ,EAAE,QAAQ,CAAC,aAAa;gBAChC,MAAM,EAAE,QAAQ,CAAC,aAAa;aACjC,CAAC,CAAC;IACP,CAAC;IAED,OAAO,EAAE,CAAC;AACd,CAAC;AAED,gDAAgD;AAChD,UAAU;AACV,gDAAgD;AAEhD,SAAS,mBAAmB,CAAC,KAAa,EAAE,IAAY;IACpD,4CAA4C;IAC5C,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACZ,OAAO,CAAC;gBACJ,IAAI,EAAE,aAAa,CAAC,qBAAqB;gBACzC,OAAO,EAAE,gCAAgC;gBACzC,IAAI;gBACJ,MAAM,EAAE,KAAK;aAChB,CAAC,CAAC;IACP,CAAC;IACD,OAAO,EAAE,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"trades.js","sourceRoot":"","sources":["../../../src/validations/trades.ts"],"names":[],"mappings":"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"}
@@ -10,9 +10,16 @@ import { validateAccumulativeTokens } from "./validations/accumulative-token.js"
10
10
  import { validateCostToken } from "./validations/cost-token.js";
11
11
  import { validatePtp } from "./validations/ptp.js";
12
12
  import { validateTotalDstAmount } from "./validations/total-dst-amount.js";
13
+ import { validateRequestDlnMetadataFormat } from "./validations/dln-metadata.js";
14
+ import { validateExternalCalls } from "./validations/external-call.js";
15
+ import { matchTrades } from "./validations/trade-matching.js";
13
16
  import { buildEnvironmentConfig } from "./whitelists/environment-config.js";
17
+ import { isSyntheticNativeWrapBundle } from "./helpers/synthetic-native-wrap.js";
14
18
  export function createValidator(config) {
15
19
  const envConfig = buildEnvironmentConfig(config.environment);
20
+ const options = {
21
+ allowLegacyHookV1: config.allowLegacyHookV1 ?? true,
22
+ };
16
23
  return {
17
24
  validate(_url, // TODO: not validated now, enable in the future
18
25
  request, response) {
@@ -43,7 +50,7 @@ export function createValidator(config) {
43
50
  // the structure issues.
44
51
  return { ok: false, violations };
45
52
  }
46
- violations.push(...validateBundleCreation(reqResult.data, resResult.data, envConfig));
53
+ violations.push(...validateBundleCreation(reqResult.data, resResult.data, envConfig, options));
47
54
  return {
48
55
  ok: violations.length === 0,
49
56
  violations,
@@ -51,23 +58,28 @@ export function createValidator(config) {
51
58
  },
52
59
  };
53
60
  }
54
- function validateBundleCreation(request, response, envConfig) {
61
+ function validateBundleCreation(request, response, envConfig, options) {
55
62
  const quoteMode = isQuoteMode(request);
56
63
  const consolidationMode = request.totalDstAmount !== undefined;
57
- const { groups, violations: groupViolations } = groupTrades(request.trades, response.trades, quoteMode, consolidationMode);
64
+ const syntheticNativeWrapMode = isSyntheticNativeWrapBundle(request, response);
65
+ const tradeMatch = matchTrades(request.trades, response.trades, quoteMode, consolidationMode);
66
+ const { groups, violations: groupViolations } = groupTrades(request.trades, response.trades, quoteMode, consolidationMode, tradeMatch.pairs);
58
67
  const { contexts, violations: matchViolations } = matchIntentsToGroups(response.intents, groups, quoteMode);
59
68
  return [
60
69
  ...validateEchoFields(request, response),
61
- ...validateTrades(request, response, quoteMode),
70
+ ...tradeMatch.violations,
71
+ ...validateTrades(request, response, quoteMode, tradeMatch.pairs),
62
72
  ...validateAccumulativeTokens(response, quoteMode),
63
73
  ...validateTotalDstAmount(request, response),
64
74
  ...validateCostToken(request, response),
65
75
  ...validatePtp(request, response),
76
+ ...validateRequestDlnMetadataFormat(request.trades),
77
+ ...validateExternalCalls(request, response, tradeMatch.pairs),
66
78
  ...groupViolations,
67
79
  ...matchViolations,
68
- ...validateIntents(contexts, quoteMode, envConfig),
69
- ...validateRequiredActions(request, response, contexts, quoteMode, envConfig),
70
- ...validateHooks(request, response, quoteMode),
80
+ ...validateIntents(contexts, quoteMode, envConfig, syntheticNativeWrapMode),
81
+ ...validateRequiredActions(request, response, contexts, quoteMode, envConfig, syntheticNativeWrapMode),
82
+ ...validateHooks(request, response, quoteMode, envConfig, options),
71
83
  ];
72
84
  }
73
85
  function isQuoteMode(request) {
@@ -1 +1 @@
1
- {"version":3,"file":"validator.js","sourceRoot":"","sources":["../../src/validator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validator.js","sourceRoot":"","sources":["../../src/validator.ts"],"names":[],"mappings":"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"}