@debridge-finance/borderless-validation-sdk 0.0.1 → 0.0.2

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 (286) hide show
  1. package/README.md +164 -0
  2. package/dist/cjs/helpers/address.js +53 -18
  3. package/dist/cjs/helpers/address.js.map +1 -1
  4. package/dist/cjs/helpers/evm-action.js +3 -3
  5. package/dist/cjs/helpers/evm-action.js.map +1 -1
  6. package/dist/cjs/helpers/evm-dln-hook-pack.js +87 -0
  7. package/dist/cjs/helpers/evm-dln-hook-pack.js.map +1 -0
  8. package/dist/cjs/helpers/evm-gas-compensation-tx.js +102 -0
  9. package/dist/cjs/helpers/evm-gas-compensation-tx.js.map +1 -0
  10. package/dist/cjs/helpers/evm-intent-id.js +27 -13
  11. package/dist/cjs/helpers/evm-intent-id.js.map +1 -1
  12. package/dist/cjs/helpers/evm-trade-amounts.js +36 -1
  13. package/dist/cjs/helpers/evm-trade-amounts.js.map +1 -1
  14. package/dist/cjs/helpers/gas-compensation.js +36 -0
  15. package/dist/cjs/helpers/gas-compensation.js.map +1 -0
  16. package/dist/cjs/helpers/hex.js +24 -0
  17. package/dist/cjs/helpers/hex.js.map +1 -0
  18. package/dist/cjs/helpers/placeholder.js +174 -0
  19. package/dist/cjs/helpers/placeholder.js.map +1 -0
  20. package/dist/cjs/helpers/sets.js +13 -0
  21. package/dist/cjs/helpers/sets.js.map +1 -0
  22. package/dist/cjs/types/enums.js +32 -2
  23. package/dist/cjs/types/enums.js.map +1 -1
  24. package/dist/cjs/types/request.js +36 -3
  25. package/dist/cjs/types/request.js.map +1 -1
  26. package/dist/cjs/types/response.js +125 -5
  27. package/dist/cjs/types/response.js.map +1 -1
  28. package/dist/cjs/types/validation.js +81 -10
  29. package/dist/cjs/types/validation.js.map +1 -1
  30. package/dist/cjs/validations/compensation-hook.js +203 -0
  31. package/dist/cjs/validations/compensation-hook.js.map +1 -0
  32. package/dist/cjs/validations/evm-caveats.js +4 -14
  33. package/dist/cjs/validations/evm-caveats.js.map +1 -1
  34. package/dist/cjs/validations/evm-op-budget.js +13 -10
  35. package/dist/cjs/validations/evm-op-budget.js.map +1 -1
  36. package/dist/cjs/validations/evm-op-hook.js +410 -3
  37. package/dist/cjs/validations/evm-op-hook.js.map +1 -1
  38. package/dist/cjs/validations/evm-op-wrap.js +10 -7
  39. package/dist/cjs/validations/evm-op-wrap.js.map +1 -1
  40. package/dist/cjs/validations/evm-required-actions.js +7 -9
  41. package/dist/cjs/validations/evm-required-actions.js.map +1 -1
  42. package/dist/cjs/validations/evm-sign712-metamask.js +17 -94
  43. package/dist/cjs/validations/evm-sign712-metamask.js.map +1 -1
  44. package/dist/cjs/validations/evm-sign712-shared.js +116 -0
  45. package/dist/cjs/validations/evm-sign712-shared.js.map +1 -0
  46. package/dist/cjs/validations/evm-sign7702.js +34 -22
  47. package/dist/cjs/validations/evm-sign7702.js.map +1 -1
  48. package/dist/cjs/validations/hooks-common.js +252 -37
  49. package/dist/cjs/validations/hooks-common.js.map +1 -1
  50. package/dist/cjs/validations/intent-destinations.js +197 -0
  51. package/dist/cjs/validations/intent-destinations.js.map +1 -0
  52. package/dist/cjs/validations/intent-tokens.js +347 -0
  53. package/dist/cjs/validations/intent-tokens.js.map +1 -0
  54. package/dist/cjs/validations/intent.js +288 -0
  55. package/dist/cjs/validations/intent.js.map +1 -0
  56. package/dist/cjs/validations/required-actions.js +7 -7
  57. package/dist/cjs/validations/required-actions.js.map +1 -1
  58. package/dist/cjs/validations/solana-hook.js +33 -22
  59. package/dist/cjs/validations/solana-hook.js.map +1 -1
  60. package/dist/cjs/validations/solana-op-budget.js +56 -18
  61. package/dist/cjs/validations/solana-op-budget.js.map +1 -1
  62. package/dist/cjs/validations/solana-op-wrap.js +46 -13
  63. package/dist/cjs/validations/solana-op-wrap.js.map +1 -1
  64. package/dist/cjs/validations/solana-required-actions.js +3 -3
  65. package/dist/cjs/validations/solana-required-actions.js.map +1 -1
  66. package/dist/cjs/validations/solana-transaction.js +5 -5
  67. package/dist/cjs/validations/solana-transaction.js.map +1 -1
  68. package/dist/cjs/validations/trade-grouping.js +139 -1
  69. package/dist/cjs/validations/trade-grouping.js.map +1 -1
  70. package/dist/cjs/validations/trades.js +168 -40
  71. package/dist/cjs/validations/trades.js.map +1 -1
  72. package/dist/cjs/validator.js +11 -16
  73. package/dist/cjs/validator.js.map +1 -1
  74. package/dist/cjs/whitelists/environment-config.js +47 -28
  75. package/dist/cjs/whitelists/environment-config.js.map +1 -1
  76. package/dist/cjs/whitelists/evm/caveat-enforcers.js +21 -5
  77. package/dist/cjs/whitelists/evm/caveat-enforcers.js.map +1 -1
  78. package/dist/cjs/whitelists/evm/delegation-manager.js +7 -2
  79. package/dist/cjs/whitelists/evm/delegation-manager.js.map +1 -1
  80. package/dist/cjs/whitelists/evm/eip7702-delegation.js +7 -2
  81. package/dist/cjs/whitelists/evm/eip7702-delegation.js.map +1 -1
  82. package/dist/cjs/whitelists/evm/index.js +14 -1
  83. package/dist/cjs/whitelists/evm/index.js.map +1 -1
  84. package/dist/cjs/whitelists/evm/metamask-delegation-chains.js +16 -0
  85. package/dist/cjs/whitelists/evm/metamask-delegation-chains.js.map +1 -0
  86. package/dist/cjs/whitelists/evm/permit2.js +16 -12
  87. package/dist/cjs/whitelists/evm/permit2.js.map +1 -1
  88. package/dist/cjs/whitelists/evm/weth.js +16 -5
  89. package/dist/cjs/whitelists/evm/weth.js.map +1 -1
  90. package/dist/cjs/whitelists/solana/intent-signature.js +0 -1
  91. package/dist/cjs/whitelists/solana/intent-signature.js.map +1 -1
  92. package/dist/cjs/whitelists/subscription-to-chain-id.js +10 -0
  93. package/dist/cjs/whitelists/subscription-to-chain-id.js.map +1 -1
  94. package/dist/cjs/whitelists/types.js +13 -3
  95. package/dist/cjs/whitelists/types.js.map +1 -1
  96. package/dist/esm/helpers/address.js +48 -17
  97. package/dist/esm/helpers/address.js.map +1 -1
  98. package/dist/esm/helpers/evm-action.js +3 -3
  99. package/dist/esm/helpers/evm-action.js.map +1 -1
  100. package/dist/esm/helpers/evm-dln-hook-pack.js +82 -0
  101. package/dist/esm/helpers/evm-dln-hook-pack.js.map +1 -0
  102. package/dist/esm/helpers/evm-gas-compensation-tx.js +99 -0
  103. package/dist/esm/helpers/evm-gas-compensation-tx.js.map +1 -0
  104. package/dist/esm/helpers/evm-intent-id.js +27 -13
  105. package/dist/esm/helpers/evm-intent-id.js.map +1 -1
  106. package/dist/esm/helpers/evm-trade-amounts.js +36 -1
  107. package/dist/esm/helpers/evm-trade-amounts.js.map +1 -1
  108. package/dist/esm/helpers/gas-compensation.js +33 -0
  109. package/dist/esm/helpers/gas-compensation.js.map +1 -0
  110. package/dist/esm/helpers/hex.js +20 -0
  111. package/dist/esm/helpers/hex.js.map +1 -0
  112. package/dist/esm/helpers/placeholder.js +168 -0
  113. package/dist/esm/helpers/placeholder.js.map +1 -0
  114. package/dist/esm/helpers/sets.js +10 -0
  115. package/dist/esm/helpers/sets.js.map +1 -0
  116. package/dist/esm/types/enums.js +31 -1
  117. package/dist/esm/types/enums.js.map +1 -1
  118. package/dist/esm/types/request.js +37 -4
  119. package/dist/esm/types/request.js.map +1 -1
  120. package/dist/esm/types/response.js +124 -4
  121. package/dist/esm/types/response.js.map +1 -1
  122. package/dist/esm/types/validation.js +81 -10
  123. package/dist/esm/types/validation.js.map +1 -1
  124. package/dist/esm/validations/compensation-hook.js +200 -0
  125. package/dist/esm/validations/compensation-hook.js.map +1 -0
  126. package/dist/esm/validations/evm-caveats.js +4 -14
  127. package/dist/esm/validations/evm-caveats.js.map +1 -1
  128. package/dist/esm/validations/evm-op-budget.js +13 -10
  129. package/dist/esm/validations/evm-op-budget.js.map +1 -1
  130. package/dist/esm/validations/evm-op-hook.js +409 -2
  131. package/dist/esm/validations/evm-op-hook.js.map +1 -1
  132. package/dist/esm/validations/evm-op-wrap.js +10 -7
  133. package/dist/esm/validations/evm-op-wrap.js.map +1 -1
  134. package/dist/esm/validations/evm-required-actions.js +7 -9
  135. package/dist/esm/validations/evm-required-actions.js.map +1 -1
  136. package/dist/esm/validations/evm-sign712-metamask.js +17 -94
  137. package/dist/esm/validations/evm-sign712-metamask.js.map +1 -1
  138. package/dist/esm/validations/evm-sign712-shared.js +110 -0
  139. package/dist/esm/validations/evm-sign712-shared.js.map +1 -0
  140. package/dist/esm/validations/evm-sign7702.js +33 -22
  141. package/dist/esm/validations/evm-sign7702.js.map +1 -1
  142. package/dist/esm/validations/hooks-common.js +251 -38
  143. package/dist/esm/validations/hooks-common.js.map +1 -1
  144. package/dist/esm/validations/intent-destinations.js +194 -0
  145. package/dist/esm/validations/intent-destinations.js.map +1 -0
  146. package/dist/esm/validations/intent-tokens.js +344 -0
  147. package/dist/esm/validations/intent-tokens.js.map +1 -0
  148. package/dist/esm/validations/intent.js +285 -0
  149. package/dist/esm/validations/intent.js.map +1 -0
  150. package/dist/esm/validations/required-actions.js +7 -7
  151. package/dist/esm/validations/required-actions.js.map +1 -1
  152. package/dist/esm/validations/solana-hook.js +35 -24
  153. package/dist/esm/validations/solana-hook.js.map +1 -1
  154. package/dist/esm/validations/solana-op-budget.js +56 -18
  155. package/dist/esm/validations/solana-op-budget.js.map +1 -1
  156. package/dist/esm/validations/solana-op-wrap.js +47 -14
  157. package/dist/esm/validations/solana-op-wrap.js.map +1 -1
  158. package/dist/esm/validations/solana-required-actions.js +3 -3
  159. package/dist/esm/validations/solana-required-actions.js.map +1 -1
  160. package/dist/esm/validations/solana-transaction.js +7 -7
  161. package/dist/esm/validations/solana-transaction.js.map +1 -1
  162. package/dist/esm/validations/trade-grouping.js +139 -1
  163. package/dist/esm/validations/trade-grouping.js.map +1 -1
  164. package/dist/esm/validations/trades.js +169 -41
  165. package/dist/esm/validations/trades.js.map +1 -1
  166. package/dist/esm/validator.js +11 -16
  167. package/dist/esm/validator.js.map +1 -1
  168. package/dist/esm/whitelists/environment-config.js +47 -28
  169. package/dist/esm/whitelists/environment-config.js.map +1 -1
  170. package/dist/esm/whitelists/evm/caveat-enforcers.js +20 -4
  171. package/dist/esm/whitelists/evm/caveat-enforcers.js.map +1 -1
  172. package/dist/esm/whitelists/evm/delegation-manager.js +6 -1
  173. package/dist/esm/whitelists/evm/delegation-manager.js.map +1 -1
  174. package/dist/esm/whitelists/evm/eip7702-delegation.js +6 -1
  175. package/dist/esm/whitelists/evm/eip7702-delegation.js.map +1 -1
  176. package/dist/esm/whitelists/evm/index.js +4 -4
  177. package/dist/esm/whitelists/evm/index.js.map +1 -1
  178. package/dist/esm/whitelists/evm/metamask-delegation-chains.js +13 -0
  179. package/dist/esm/whitelists/evm/metamask-delegation-chains.js.map +1 -0
  180. package/dist/esm/whitelists/evm/permit2.js +9 -5
  181. package/dist/esm/whitelists/evm/permit2.js.map +1 -1
  182. package/dist/esm/whitelists/evm/weth.js +16 -5
  183. package/dist/esm/whitelists/evm/weth.js.map +1 -1
  184. package/dist/esm/whitelists/solana/intent-signature.js +0 -1
  185. package/dist/esm/whitelists/solana/intent-signature.js.map +1 -1
  186. package/dist/esm/whitelists/subscription-to-chain-id.js +9 -0
  187. package/dist/esm/whitelists/subscription-to-chain-id.js.map +1 -1
  188. package/dist/esm/whitelists/types.js +14 -5
  189. package/dist/esm/whitelists/types.js.map +1 -1
  190. package/dist/types/helpers/address.d.ts +7 -7
  191. package/dist/types/helpers/address.d.ts.map +1 -1
  192. package/dist/types/helpers/evm-dln-hook-pack.d.ts +19 -0
  193. package/dist/types/helpers/evm-dln-hook-pack.d.ts.map +1 -0
  194. package/dist/types/helpers/evm-gas-compensation-tx.d.ts +13 -0
  195. package/dist/types/helpers/evm-gas-compensation-tx.d.ts.map +1 -0
  196. package/dist/types/helpers/evm-intent-id.d.ts.map +1 -1
  197. package/dist/types/helpers/evm-trade-amounts.d.ts +2 -2
  198. package/dist/types/helpers/evm-trade-amounts.d.ts.map +1 -1
  199. package/dist/types/helpers/gas-compensation.d.ts +10 -0
  200. package/dist/types/helpers/gas-compensation.d.ts.map +1 -0
  201. package/dist/types/helpers/hex.d.ts +3 -0
  202. package/dist/types/helpers/hex.d.ts.map +1 -0
  203. package/dist/types/helpers/placeholder.d.ts +41 -0
  204. package/dist/types/helpers/placeholder.d.ts.map +1 -0
  205. package/dist/types/helpers/sets.d.ts +2 -0
  206. package/dist/types/helpers/sets.d.ts.map +1 -0
  207. package/dist/types/types/enums.d.ts +24 -1
  208. package/dist/types/types/enums.d.ts.map +1 -1
  209. package/dist/types/types/request.d.ts +21 -11
  210. package/dist/types/types/request.d.ts.map +1 -1
  211. package/dist/types/types/response.d.ts +1015 -17
  212. package/dist/types/types/response.d.ts.map +1 -1
  213. package/dist/types/types/validation.d.ts +73 -11
  214. package/dist/types/types/validation.d.ts.map +1 -1
  215. package/dist/types/validations/compensation-hook.d.ts +3 -0
  216. package/dist/types/validations/compensation-hook.d.ts.map +1 -0
  217. package/dist/types/validations/evm-caveats.d.ts.map +1 -1
  218. package/dist/types/validations/evm-op-budget.d.ts +2 -2
  219. package/dist/types/validations/evm-op-budget.d.ts.map +1 -1
  220. package/dist/types/validations/evm-op-hook.d.ts +4 -2
  221. package/dist/types/validations/evm-op-hook.d.ts.map +1 -1
  222. package/dist/types/validations/evm-op-wrap.d.ts +2 -2
  223. package/dist/types/validations/evm-op-wrap.d.ts.map +1 -1
  224. package/dist/types/validations/evm-required-actions.d.ts +2 -2
  225. package/dist/types/validations/evm-required-actions.d.ts.map +1 -1
  226. package/dist/types/validations/evm-sign712-metamask.d.ts.map +1 -1
  227. package/dist/types/validations/evm-sign712-shared.d.ts +7 -0
  228. package/dist/types/validations/evm-sign712-shared.d.ts.map +1 -0
  229. package/dist/types/validations/evm-sign7702.d.ts +2 -1
  230. package/dist/types/validations/evm-sign7702.d.ts.map +1 -1
  231. package/dist/types/validations/hooks-common.d.ts +1 -0
  232. package/dist/types/validations/hooks-common.d.ts.map +1 -1
  233. package/dist/types/validations/intent-destinations.d.ts +4 -0
  234. package/dist/types/validations/intent-destinations.d.ts.map +1 -0
  235. package/dist/types/validations/intent-tokens.d.ts +4 -0
  236. package/dist/types/validations/intent-tokens.d.ts.map +1 -0
  237. package/dist/types/validations/intent.d.ts +5 -0
  238. package/dist/types/validations/intent.d.ts.map +1 -0
  239. package/dist/types/validations/required-actions.d.ts +2 -1
  240. package/dist/types/validations/required-actions.d.ts.map +1 -1
  241. package/dist/types/validations/solana-hook.d.ts +4 -2
  242. package/dist/types/validations/solana-hook.d.ts.map +1 -1
  243. package/dist/types/validations/solana-op-budget.d.ts +2 -2
  244. package/dist/types/validations/solana-op-budget.d.ts.map +1 -1
  245. package/dist/types/validations/solana-op-wrap.d.ts +2 -2
  246. package/dist/types/validations/solana-op-wrap.d.ts.map +1 -1
  247. package/dist/types/validations/solana-required-actions.d.ts +2 -2
  248. package/dist/types/validations/solana-required-actions.d.ts.map +1 -1
  249. package/dist/types/validations/solana-transaction.d.ts +3 -3
  250. package/dist/types/validations/solana-transaction.d.ts.map +1 -1
  251. package/dist/types/validations/trade-grouping.d.ts +6 -2
  252. package/dist/types/validations/trade-grouping.d.ts.map +1 -1
  253. package/dist/types/validations/trades.d.ts.map +1 -1
  254. package/dist/types/validator.d.ts.map +1 -1
  255. package/dist/types/whitelists/environment-config.d.ts.map +1 -1
  256. package/dist/types/whitelists/evm/caveat-enforcers.d.ts +8 -0
  257. package/dist/types/whitelists/evm/caveat-enforcers.d.ts.map +1 -1
  258. package/dist/types/whitelists/evm/delegation-manager.d.ts +2 -0
  259. package/dist/types/whitelists/evm/delegation-manager.d.ts.map +1 -1
  260. package/dist/types/whitelists/evm/eip7702-delegation.d.ts +2 -0
  261. package/dist/types/whitelists/evm/eip7702-delegation.d.ts.map +1 -1
  262. package/dist/types/whitelists/evm/index.d.ts +4 -4
  263. package/dist/types/whitelists/evm/index.d.ts.map +1 -1
  264. package/dist/types/whitelists/evm/metamask-delegation-chains.d.ts +3 -0
  265. package/dist/types/whitelists/evm/metamask-delegation-chains.d.ts.map +1 -0
  266. package/dist/types/whitelists/evm/permit2.d.ts +1 -0
  267. package/dist/types/whitelists/evm/permit2.d.ts.map +1 -1
  268. package/dist/types/whitelists/evm/weth.d.ts.map +1 -1
  269. package/dist/types/whitelists/solana/intent-signature.d.ts.map +1 -1
  270. package/dist/types/whitelists/subscription-to-chain-id.d.ts +1 -0
  271. package/dist/types/whitelists/subscription-to-chain-id.d.ts.map +1 -1
  272. package/dist/types/whitelists/types.d.ts +1 -1
  273. package/dist/types/whitelists/types.d.ts.map +1 -1
  274. package/package.json +4 -3
  275. package/dist/cjs/helpers/constants.js +0 -6
  276. package/dist/cjs/helpers/constants.js.map +0 -1
  277. package/dist/cjs/validations/evm-op-gas-compensation.js +0 -152
  278. package/dist/cjs/validations/evm-op-gas-compensation.js.map +0 -1
  279. package/dist/esm/helpers/constants.js +0 -3
  280. package/dist/esm/helpers/constants.js.map +0 -1
  281. package/dist/esm/validations/evm-op-gas-compensation.js +0 -149
  282. package/dist/esm/validations/evm-op-gas-compensation.js.map +0 -1
  283. package/dist/types/helpers/constants.d.ts +0 -2
  284. package/dist/types/helpers/constants.d.ts.map +0 -1
  285. package/dist/types/validations/evm-op-gas-compensation.d.ts +0 -3
  286. package/dist/types/validations/evm-op-gas-compensation.d.ts.map +0 -1
@@ -24,6 +24,7 @@ function validateTrades(request, response, quoteMode) {
24
24
  if (!quoteMode) {
25
25
  violations.push(...(0, trade_intent_consistency_1.validateRelatedIntentIds)(response));
26
26
  }
27
+ violations.push(...validatePartnerCost(request, response));
27
28
  return violations;
28
29
  }
29
30
  function validateSingleTrade(reqTrade, resTrade, tradeIndex, quoteMode) {
@@ -168,8 +169,14 @@ function checkOperatingExpensePositive(resTrade, src, parsedExpense, basePath) {
168
169
  return [];
169
170
  const expensePath = `${basePath}.srcChainTokenIn.approximateOperatingExpense`;
170
171
  const violations = [];
171
- // MEDIUM: if mutatedWithOperatingExpense is true, expense must be > 0
172
- if (src.mutatedWithOperatingExpense) {
172
+ // MEDIUM: if `mutatedWithOperatingExpense` is true, expense must be > 0.
173
+ // Exception: secondary trades in a group share `constraintBudget`/expenses
174
+ // with the primary trade — the API marks them mutated (because their
175
+ // amount IS part of the mutated group budget) but reports
176
+ // `approximateOperatingExpense=0` and omits `prependedOperatingExpenseCost`.
177
+ // We detect this case by the absent `prependedOperatingExpenseCost`.
178
+ const isSecondaryInGroup = resTrade.prependedOperatingExpenseCost === undefined;
179
+ if (src.mutatedWithOperatingExpense && !isSecondaryInGroup) {
173
180
  violations.push({
174
181
  code: types_1.ViolationCode.TradeOperatingExpenseExpectedPositive,
175
182
  message: "approximateOperatingExpense should be > 0"
@@ -178,30 +185,41 @@ function checkOperatingExpensePositive(resTrade, src, parsedExpense, basePath) {
178
185
  actual: src.approximateOperatingExpense,
179
186
  });
180
187
  }
181
- // MEDIUM: if prependedOperatingExpenseCost is non-zero, expense must be > 0
182
- try {
183
- if (BigInt(resTrade.prependedOperatingExpenseCost) !== 0n) {
188
+ // MEDIUM: if `prependedOperatingExpenseCost` is non-zero, expense must be > 0.
189
+ // Skip when the field is absent — secondary trades in a group don't carry
190
+ // it (expenses accumulate on the primary trade); `BigInt(undefined)` would
191
+ // throw and produce a misleading `TradePrependedCostInvalid`.
192
+ if (resTrade.prependedOperatingExpenseCost !== undefined) {
193
+ try {
194
+ if (BigInt(resTrade.prependedOperatingExpenseCost) !== 0n) {
195
+ violations.push({
196
+ code: types_1.ViolationCode.TradeOperatingExpenseExpectedPositive,
197
+ message: "approximateOperatingExpense should be > 0"
198
+ + " when prependedOperatingExpenseCost is non-zero",
199
+ path: expensePath,
200
+ actual: src.approximateOperatingExpense,
201
+ });
202
+ }
203
+ }
204
+ catch (e) {
184
205
  violations.push({
185
- code: types_1.ViolationCode.TradeOperatingExpenseExpectedPositive,
186
- message: "approximateOperatingExpense should be > 0"
187
- + " when prependedOperatingExpenseCost is non-zero",
188
- path: expensePath,
189
- actual: src.approximateOperatingExpense,
206
+ code: types_1.ViolationCode.TradePrependedCostInvalid,
207
+ message: "prependedOperatingExpenseCost is not a valid number",
208
+ path: `${basePath}.prependedOperatingExpenseCost`,
209
+ actual: resTrade.prependedOperatingExpenseCost,
210
+ details: e,
190
211
  });
191
212
  }
192
213
  }
193
- catch (e) {
194
- violations.push({
195
- code: types_1.ViolationCode.TradePrependedCostInvalid,
196
- message: "prependedOperatingExpenseCost is not a valid number",
197
- path: `${basePath}.prependedOperatingExpenseCost`,
198
- actual: resTrade.prependedOperatingExpenseCost,
199
- details: e,
200
- });
201
- }
202
214
  return violations;
203
215
  }
204
216
  function validateMutatedWithOperatingExpense(reqTrade, src, path) {
217
+ // Safe skip: in `max` mode the API forces `prependOperatingExpenses=false`
218
+ // internally (operating expenses are already deducted from the max balance),
219
+ // so `mutatedWithOperatingExpense` is unpredictable from the request alone.
220
+ // Validating mutated amount is also impossible (we don't know the user's balance).
221
+ if (reqTrade.srcChainTokenInAmount === types_1.SpecialAmount.Max)
222
+ return [];
205
223
  const prependExpenses = reqTrade.prependOperatingExpenses ?? false;
206
224
  const isAuto = reqTrade.srcChainTokenInAmount === types_1.SpecialAmount.Auto;
207
225
  const expectedMutated = prependExpenses || isAuto;
@@ -254,6 +272,11 @@ function validateSrcChainTokenOut(reqTrade, resTrade, basePath) {
254
272
  details: e,
255
273
  }];
256
274
  }
275
+ // CRITICAL: USD value must be non-negative when present. API may omit
276
+ // the field entirely if its price-feed call fails.
277
+ if (resTrade.srcChainTokenOut.approximateUsdValue !== undefined) {
278
+ return checkNonNegativeUsd(resTrade.srcChainTokenOut.approximateUsdValue, `${basePath}.srcChainTokenOut.approximateUsdValue`);
279
+ }
257
280
  return [];
258
281
  }
259
282
  // =============================================
@@ -374,22 +397,37 @@ function validateWithoutPartnerFeeAmount(reqTrade, dst, path) {
374
397
  details: e,
375
398
  }];
376
399
  }
377
- const hasPartnerFee = (reqTrade.partnerFeeBps ?? 0) > 0;
378
- // CRITICAL: with partner fee — withoutPartnerFeeBpsAmount must be >= amount
379
- if (hasPartnerFee && withoutFee < amount) {
380
- return [{
381
- code: types_1.ViolationCode.TradeWithoutPartnerFeeAmountTooLow,
382
- message: "withoutPartnerFeeBpsAmount must be >= amount when partnerFeeBps > 0",
383
- path: feePath,
384
- expected: dst.amount,
385
- actual: dst.withoutPartnerFeeBpsAmount,
386
- }];
400
+ const isExactOutputMode = reqTrade.srcChainTokenInAmount === types_1.SpecialAmount.Auto
401
+ || (reqTrade.dstChainTokenOutAmount !== undefined
402
+ && reqTrade.dstChainTokenOutAmount !== types_1.SpecialAmount.Auto);
403
+ if (isExactOutputMode) {
404
+ if (withoutFee < 0n) {
405
+ return [{
406
+ code: types_1.ViolationCode.TradeWithoutPartnerFeeAmountMismatch,
407
+ message: "withoutPartnerFeeBpsAmount must be non-negative",
408
+ path: feePath,
409
+ actual: dst.withoutPartnerFeeBpsAmount,
410
+ }];
411
+ }
412
+ return [];
387
413
  }
388
- // CRITICAL: without partner fee — must equal amount
389
- if (!hasPartnerFee && withoutFee !== amount) {
414
+ // CRITICAL: `withoutPartnerFeeBpsAmount` must be >= amount in non-exact-output.
415
+ // Semantics: `withoutPartnerFee` = "what we'd get without partner fee deduction".
416
+ // - With partner fee > 0: strictly greater (the fee is deducted from this).
417
+ // - With partner fee = 0: nominally equal, but API recalculation introduces
418
+ // sub-wei rounding when bigints divide unevenly. We thus
419
+ // accept any `withoutFee >= amount`. A tampered value above amount has
420
+ // no economic gain because `withoutPartnerFeeBpsAmount` is not what user
421
+ // signs, it's just an informative field.
422
+ if (withoutFee < amount) {
423
+ const hasPartnerFee = (reqTrade.partnerFeeBps ?? 0) > 0;
390
424
  return [{
391
- code: types_1.ViolationCode.TradeWithoutPartnerFeeAmountMismatch,
392
- message: "withoutPartnerFeeBpsAmount must equal amount when no partner fee",
425
+ code: hasPartnerFee
426
+ ? types_1.ViolationCode.TradeWithoutPartnerFeeAmountTooLow
427
+ : types_1.ViolationCode.TradeWithoutPartnerFeeAmountMismatch,
428
+ message: hasPartnerFee
429
+ ? "withoutPartnerFeeBpsAmount must be >= amount when partnerFeeBps > 0"
430
+ : "withoutPartnerFeeBpsAmount must be >= amount",
393
431
  path: feePath,
394
432
  expected: dst.amount,
395
433
  actual: dst.withoutPartnerFeeBpsAmount,
@@ -449,22 +487,28 @@ function validateAddressEcho(expected, actual, code, path, fieldName, realChainI
449
487
  function validatePrependedOperatingExpenseCost(reqTrade, resTrade, basePath) {
450
488
  const prependExpenses = reqTrade.prependOperatingExpenses ?? false;
451
489
  const isAuto = reqTrade.srcChainTokenInAmount === types_1.SpecialAmount.Auto;
452
- // Only check: when prependOperatingExpenses is false AND not auto → must be zero
453
- if (prependExpenses || isAuto)
490
+ const isMax = reqTrade.srcChainTokenInAmount === types_1.SpecialAmount.Max;
491
+ // Only check: when prependOperatingExpenses is false AND not auto/max → must be zero
492
+ if (prependExpenses || isAuto || isMax)
493
+ return [];
494
+ // Treat absent field as "0" — the API omits it on secondary trades in a
495
+ // group (expenses accumulate on the primary trade). For `prepend=false`
496
+ // requests we still expect zero, and absent means zero.
497
+ if (resTrade.prependedOperatingExpenseCost === undefined)
454
498
  return [];
455
499
  const costPath = `${basePath}.prependedOperatingExpenseCost`;
456
- // CRITICAL: prependedOperatingExpenseCost must be zero
500
+ // CRITICAL: `prependedOperatingExpenseCost` must be zero
457
501
  let parsed;
458
502
  try {
459
503
  parsed = BigInt(resTrade.prependedOperatingExpenseCost);
460
504
  }
461
- catch (e) {
505
+ catch (error) {
462
506
  return [{
463
507
  code: types_1.ViolationCode.TradePrependedCostInvalid,
464
508
  message: "prependedOperatingExpenseCost is not a valid number",
465
509
  path: costPath,
466
510
  actual: resTrade.prependedOperatingExpenseCost,
467
- details: e,
511
+ details: error,
468
512
  }];
469
513
  }
470
514
  if (parsed !== 0n) {
@@ -483,11 +527,95 @@ function validatePrependedOperatingExpenseCost(reqTrade, resTrade, basePath) {
483
527
  // =============================================
484
528
  // partnerFeeBps
485
529
  // =============================================
530
+ // API aggregates per-trade partner fees into a single bundle-wide cost item:
531
+ // `amount` is the sum across trades, `feeBps` is taken from the first per-trade
532
+ // entry — which is always trade index 0 since the API preserves request order.
533
+ function validatePartnerCost(request, response) {
534
+ const partnerCosts = response.bundleCosts.filter(c => c.type === types_1.CostItemType.PARTNER_COST);
535
+ if (partnerCosts.length === 0) {
536
+ return [{
537
+ code: types_1.ViolationCode.PartnerCostMissing,
538
+ message: "bundleCosts[PARTNER_COST] entry is missing",
539
+ path: "response.bundleCosts",
540
+ }];
541
+ }
542
+ const violations = [];
543
+ const partnerCost = partnerCosts[0];
544
+ const path = `response.bundleCosts[PARTNER_COST]`;
545
+ let amount;
546
+ try {
547
+ amount = BigInt(partnerCost.amount);
548
+ }
549
+ catch (error) {
550
+ return [{
551
+ code: types_1.ViolationCode.PartnerCostAmountInvalid,
552
+ message: "PARTNER_COST.amount is not a valid integer",
553
+ path: `${path}.amount`,
554
+ actual: partnerCost.amount,
555
+ details: error,
556
+ }];
557
+ }
558
+ if (amount < 0n) {
559
+ violations.push({
560
+ code: types_1.ViolationCode.PartnerCostAmountInvalid,
561
+ message: "PARTNER_COST.amount must be non-negative",
562
+ path: `${path}.amount`,
563
+ actual: partnerCost.amount,
564
+ });
565
+ }
566
+ const feeBps = partnerCost.feeBps;
567
+ if (feeBps !== undefined && feeBps < 0) {
568
+ violations.push({
569
+ code: types_1.ViolationCode.PartnerCostFeeBpsInvalid,
570
+ message: "PARTNER_COST.feeBps must be non-negative",
571
+ path: `${path}.feeBps`,
572
+ actual: feeBps,
573
+ });
574
+ }
575
+ const requestedFees = request.trades.map(t => t.partnerFeeBps ?? 0);
576
+ const anyNonZero = requestedFees.some(b => b > 0);
577
+ // CRITICAL: when no trade has a partner fee, the aggregated amount must be zero.
578
+ if (!anyNonZero && amount !== 0n) {
579
+ violations.push({
580
+ code: types_1.ViolationCode.PartnerCostAmountUnexpectedlyNonZero,
581
+ message: "PARTNER_COST.amount must be 0 when no trade has partnerFeeBps > 0",
582
+ path: `${path}.amount`,
583
+ expected: "0",
584
+ actual: partnerCost.amount,
585
+ });
586
+ }
587
+ // CRITICAL: when at least one trade has a partner fee, the aggregated amount must be > 0.
588
+ if (anyNonZero && amount === 0n) {
589
+ violations.push({
590
+ code: types_1.ViolationCode.PartnerCostAmountUnexpectedlyZero,
591
+ message: "PARTNER_COST.amount must be > 0 when at least one trade has partnerFeeBps > 0",
592
+ path: `${path}.amount`,
593
+ actual: partnerCost.amount,
594
+ });
595
+ }
596
+ // CRITICAL: feeBps must echo request.trades[0].partnerFeeBps (or 0 when omitted).
597
+ if (feeBps !== undefined && request.trades.length > 0) {
598
+ const expected = requestedFees[0];
599
+ if (feeBps !== expected) {
600
+ violations.push({
601
+ code: types_1.ViolationCode.PartnerCostFeeBpsMismatch,
602
+ message: "PARTNER_COST.feeBps does not match request.trades[0].partnerFeeBps",
603
+ path: `${path}.feeBps`,
604
+ expected,
605
+ actual: feeBps,
606
+ });
607
+ }
608
+ }
609
+ return violations;
610
+ }
611
+ // Soft-check: API does not currently echo `response.trades[].partnerFeeBps`.
612
+ // Authoritative source is `bundleCosts[PARTNER_COST]` (see `validatePartnerCost`).
486
613
  function validatePartnerFeeBps(reqTrade, resTrade, basePath) {
487
- // Only check if partnerFeeBps is specified in request.
488
614
  if (reqTrade.partnerFeeBps === undefined)
489
615
  return [];
490
- // CRITICAL: partnerFeeBps must match request value
616
+ if (resTrade.partnerFeeBps === undefined)
617
+ return [];
618
+ // LOW: forward-compat — if API ever starts echoing the field, it must match.
491
619
  if (resTrade.partnerFeeBps !== reqTrade.partnerFeeBps) {
492
620
  return [{
493
621
  code: types_1.ViolationCode.TradePartnerFeeBpsMismatch,
@@ -1 +1 @@
1
- {"version":3,"file":"trades.js","sourceRoot":"","sources":["../../../src/validations/trades.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"trades.js","sourceRoot":"","sources":["../../../src/validations/trades.ts"],"names":[],"mappings":"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"}
@@ -7,21 +7,15 @@ const echo_fields_1 = require("./validations/echo-fields");
7
7
  const required_actions_1 = require("./validations/required-actions");
8
8
  const hooks_common_1 = require("./validations/hooks-common");
9
9
  const trades_1 = require("./validations/trades");
10
+ const intent_1 = require("./validations/intent");
11
+ const trade_grouping_1 = require("./validations/trade-grouping");
10
12
  const environment_config_1 = require("./whitelists/environment-config");
11
13
  function createValidator(config) {
12
14
  const envConfig = (0, environment_config_1.buildEnvironmentConfig)(config.environment);
13
15
  return {
14
- validate(url, request, response) {
16
+ validate(_url, // currently unused but kept for future use
17
+ request, response) {
15
18
  const violations = [];
16
- // MEDIUM: URL must match an allowed URL for the configured environment
17
- if (!envConfig.allowedUrls.some(allowed => urlsEqual(url, allowed))) {
18
- violations.push({
19
- code: types_1.ViolationCode.UrlNotWhitelisted,
20
- message: "URL does not match any allowed URL for this environment",
21
- path: "url",
22
- actual: url,
23
- });
24
- }
25
19
  const reqResult = types_1.BundleCreationRequestSchema.safeParse(request);
26
20
  const resResult = types_1.BundleCreationResponseSchema.safeParse(response);
27
21
  if (!reqResult.success) {
@@ -43,7 +37,7 @@ function createValidator(config) {
43
37
  if (!reqResult.success || !resResult.success) {
44
38
  // If the structure is invalid, we can't do any meaningful validation,
45
39
  // so we do not continue with field validations and just report
46
- // the structure issues (+ URL violation if any).
40
+ // the structure issues.
47
41
  return { ok: false, violations };
48
42
  }
49
43
  violations.push(...validateBundleCreation(reqResult.data, resResult.data, envConfig));
@@ -56,17 +50,18 @@ function createValidator(config) {
56
50
  }
57
51
  function validateBundleCreation(request, response, envConfig) {
58
52
  const quoteMode = isQuoteMode(request);
53
+ const { groups, violations: groupViolations } = (0, trade_grouping_1.groupTrades)(request.trades, response.trades, quoteMode);
54
+ const { contexts, violations: matchViolations } = (0, trade_grouping_1.matchIntentsToGroups)(response.intents, groups, quoteMode);
59
55
  return [
60
56
  ...(0, echo_fields_1.validateEchoFields)(request, response),
61
57
  ...(0, trades_1.validateTrades)(request, response, quoteMode),
62
- ...(0, required_actions_1.validateRequiredActions)(request, response, quoteMode, envConfig),
58
+ ...groupViolations,
59
+ ...matchViolations,
60
+ ...(0, intent_1.validateIntents)(contexts, quoteMode, envConfig),
61
+ ...(0, required_actions_1.validateRequiredActions)(request, response, contexts, quoteMode, envConfig),
63
62
  ...(0, hooks_common_1.validateHooks)(request, response, quoteMode),
64
63
  ];
65
64
  }
66
- // Compares URLs ignoring a trailing slash
67
- function urlsEqual(a, b) {
68
- return a.replace(/\/$/, "") === b.replace(/\/$/, "");
69
- }
70
65
  function isQuoteMode(request) {
71
66
  return request.trades.every(t => t.srcChainAuthorityAddress === undefined &&
72
67
  t.dstChainTokenOutRecipient === undefined &&
@@ -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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"}
@@ -4,41 +4,76 @@ exports.buildEnvironmentConfig = buildEnvironmentConfig;
4
4
  const web3_js_1 = require("@solana/web3.js");
5
5
  const enums_1 = require("../types/enums");
6
6
  const validation_1 = require("../types/validation");
7
+ const types_1 = require("./types");
7
8
  const intent_signature_1 = require("./solana/intent-signature");
8
9
  const programs_1 = require("./solana/programs");
9
10
  // =============================================
10
11
  // EVM: Allowance Holder
11
12
  // =============================================
12
- const DEFAULT_PROD_EVM_ALLOWANCE_HOLDER_ADDRESS = "0xddddddddd4B6472c5002F95610b194D1161223d0";
13
+ const PROD_DEFAULT_EVM_ALLOWANCE_HOLDER = "0xddddddddd4B6472c5002F95610b194D1161223d0";
14
+ const PROD_TRON_ALLOWANCE_HOLDER = "0x873a84BfBd83f9986cb07927ac3E587979D57775";
15
+ const DUBAI_EVM_ALLOWANCE_HOLDER = "0xB75b7b65369aA7874FD1f0cDA020958D3491e568";
16
+ // All EVM chains where the deBridge intent contracts are deployed in Prod.
17
+ // Excludes Neon and Metis: contracts are not yet deployed there.
18
+ const PROD_EVM_CHAINS_WITH_INTENT_DEPLOYMENT = [
19
+ enums_1.ChainId.Ethereum,
20
+ enums_1.ChainId.Optimism,
21
+ enums_1.ChainId.Cronos,
22
+ enums_1.ChainId.BNB,
23
+ enums_1.ChainId.Gnosis,
24
+ enums_1.ChainId.Polygon,
25
+ enums_1.ChainId.Monad,
26
+ enums_1.ChainId.Sonic,
27
+ enums_1.ChainId.Flow,
28
+ enums_1.ChainId.HyperEVM,
29
+ enums_1.ChainId.Sei,
30
+ enums_1.ChainId.Story,
31
+ enums_1.ChainId.Injective,
32
+ enums_1.ChainId.MegaETH,
33
+ enums_1.ChainId.Mantle,
34
+ enums_1.ChainId.Base,
35
+ enums_1.ChainId.Arbitrum,
36
+ enums_1.ChainId.Avalanche,
37
+ enums_1.ChainId.Linea,
38
+ enums_1.ChainId.Bob,
39
+ ];
40
+ // EVM chains supported by the Dubai gasless API.
41
+ const DUBAI_EVM_CHAINS = [
42
+ enums_1.ChainId.Ethereum,
43
+ enums_1.ChainId.Optimism,
44
+ enums_1.ChainId.BNB,
45
+ enums_1.ChainId.Polygon,
46
+ enums_1.ChainId.Avalanche,
47
+ enums_1.ChainId.Base,
48
+ enums_1.ChainId.Arbitrum,
49
+ ];
13
50
  const ALLOWANCE_HOLDER_BY_ENVIRONMENT = {
14
51
  [validation_1.Environment.Prod]: {
15
- [enums_1.ChainId.Wildcard]: [DEFAULT_PROD_EVM_ALLOWANCE_HOLDER_ADDRESS], // TODO: replace wildcard with actual chain-specific list
16
- },
17
- [validation_1.Environment.Dubai]: {
18
- [enums_1.ChainId.Wildcard]: ["0xB75b7b65369aA7874FD1f0cDA020958D3491e568"], // TODO: replace wildcard with actual chain-specific list
52
+ ...(0, types_1.buildSameAddressMap)(PROD_EVM_CHAINS_WITH_INTENT_DEPLOYMENT, PROD_DEFAULT_EVM_ALLOWANCE_HOLDER),
53
+ [enums_1.ChainId.Tron]: [PROD_TRON_ALLOWANCE_HOLDER],
19
54
  },
55
+ [validation_1.Environment.Dubai]: (0, types_1.buildSameAddressMap)(DUBAI_EVM_CHAINS, DUBAI_EVM_ALLOWANCE_HOLDER),
20
56
  [validation_1.Environment.Hanoi]: {
21
57
  [enums_1.ChainId.Polygon]: ["0x1Baa3D24E5e5eBaF876CA1BC86be1636E3EA7F51"],
22
58
  [enums_1.ChainId.BNB]: ["0x6e8D9768B3D5e70881F00411e6DFa72c3D59Ea1a"],
23
59
  },
24
- [validation_1.Environment.Madrid]: {}, // TODO: placeholder — update when known
25
60
  };
26
61
  // =============================================
27
62
  // EVM: Intent Manager
28
63
  // =============================================
29
- const DEFAULT_PROD_EVM_INTENT_MANAGER_ADDRESS = "0xDDDDDDDdeB2E68Ee19832e356FCB5537124A9708";
64
+ const PROD_DEFAULT_EVM_INTENT_MANAGER = "0xDDDDDDDdeB2E68Ee19832e356FCB5537124A9708";
65
+ const PROD_TRON_INTENT_MANAGER = "0x3ACFa1FA93916C60c9e8B7C5d59b50681b705e4e";
66
+ const DUBAI_EVM_INTENT_MANAGER = "0x1266F88510e6dE4321ce5aA219ED35b5dfFD3410";
30
67
  const INTENT_MANAGER_BY_ENVIRONMENT = {
31
68
  [validation_1.Environment.Prod]: {
32
- [enums_1.ChainId.Wildcard]: [DEFAULT_PROD_EVM_INTENT_MANAGER_ADDRESS], // TODO: replace wildcard with actual chain-specific list
33
- },
34
- [validation_1.Environment.Dubai]: {
35
- [enums_1.ChainId.Wildcard]: ["0x1266F88510e6dE4321ce5aA219ED35b5dfFD3410"], // TODO: replace wildcard with actual chain-specific list
69
+ ...(0, types_1.buildSameAddressMap)(PROD_EVM_CHAINS_WITH_INTENT_DEPLOYMENT, PROD_DEFAULT_EVM_INTENT_MANAGER),
70
+ [enums_1.ChainId.Tron]: [PROD_TRON_INTENT_MANAGER],
36
71
  },
72
+ [validation_1.Environment.Dubai]: (0, types_1.buildSameAddressMap)(DUBAI_EVM_CHAINS, DUBAI_EVM_INTENT_MANAGER),
37
73
  [validation_1.Environment.Hanoi]: {
38
74
  [enums_1.ChainId.Polygon]: ["0x9d8421Cc205195b55E2aBa5fdE5C54e952053773"],
39
75
  [enums_1.ChainId.BNB]: ["0x62Cd6f0ccE48a229865686CB6796cDeba439a846"],
40
76
  },
41
- [validation_1.Environment.Madrid]: {}, // TODO: placeholder — update when known
42
77
  };
43
78
  // =============================================
44
79
  // Solana: Intent Program
@@ -47,7 +82,6 @@ const SOLANA_INTENT_PROGRAM_BY_ENVIRONMENT = {
47
82
  [validation_1.Environment.Prod]: "DeintXmrdZFgSKzEWcJWhK793HuqnfDydAPvHmayY5Xz",
48
83
  [validation_1.Environment.Dubai]: "intueneJjzHttKp83gWH3GX1h1Uwuixuusj4T8vGDzk",
49
84
  [validation_1.Environment.Hanoi]: "intV2u5xDE8T2ZMFP3W3X6sVqGHBT7zvYtTW3rRLmvE",
50
- [validation_1.Environment.Madrid]: "", // TODO: placeholder — update when known
51
85
  };
52
86
  // =============================================
53
87
  // Solana: Allowance Holder
@@ -57,20 +91,6 @@ const SOLANA_ALLOWANCE_HOLDER_BY_ENVIRONMENT = {
57
91
  [validation_1.Environment.Prod]: DEFAULT_PROD_SOLANA_ALLOWANCE_HOLDER_ADDRESS,
58
92
  [validation_1.Environment.Dubai]: DEFAULT_PROD_SOLANA_ALLOWANCE_HOLDER_ADDRESS,
59
93
  [validation_1.Environment.Hanoi]: DEFAULT_PROD_SOLANA_ALLOWANCE_HOLDER_ADDRESS,
60
- [validation_1.Environment.Madrid]: "", // TODO: placeholder — update when known
61
- };
62
- // =============================================
63
- // Allowed URLs
64
- // =============================================
65
- const ALLOWED_URLS_BY_ENVIRONMENT = {
66
- [validation_1.Environment.Prod]: [
67
- // TODO: add Prod URL
68
- "https://cross-chain-api-stage.stage.debridge.io", // Stage
69
- ],
70
- // TODO: update the allowed URLs for non-prod environments when known
71
- [validation_1.Environment.Dubai]: [],
72
- [validation_1.Environment.Hanoi]: [],
73
- [validation_1.Environment.Madrid]: [],
74
94
  };
75
95
  // =============================================
76
96
  // Builder
@@ -112,7 +132,6 @@ function buildEnvironmentConfig(environment) {
112
132
  solanaSignTransactionAllowedPrograms: buildSignTransactionAllowedPrograms(solanaIntentProgram),
113
133
  solanaExpectedStatePdaBase58: computeStatePdaBase58(solanaIntentProgram),
114
134
  solanaSignatureConfig: (0, intent_signature_1.getIntentSignatureConfig)(environment),
115
- allowedUrls: ALLOWED_URLS_BY_ENVIRONMENT[environment],
116
135
  };
117
136
  }
118
137
  //# sourceMappingURL=environment-config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"environment-config.js","sourceRoot":"","sources":["../../../src/whitelists/environment-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"environment-config.js","sourceRoot":"","sources":["../../../src/whitelists/environment-config.ts"],"names":[],"mappings":"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"}
@@ -1,18 +1,34 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TIMESTAMP_ENFORCER_CONTRACTS = exports.ID_ENFORCER_CONTRACTS = exports.EXACT_EXECUTION_BATCH_ENFORCER_CONTRACTS = exports.EXACT_EXECUTION_ENFORCER_CONTRACTS = void 0;
3
+ exports.TIMESTAMP_ENFORCER_CONTRACTS = exports.ID_ENFORCER_CONTRACTS = exports.EXACT_EXECUTION_BATCH_ENFORCER_CONTRACTS = exports.EXACT_EXECUTION_ENFORCER_CONTRACTS = exports.AVALANCHE_TIMESTAMP_ENFORCER = exports.AVALANCHE_ID_ENFORCER = exports.AVALANCHE_EXACT_EXECUTION_BATCH_ENFORCER = exports.AVALANCHE_EXACT_EXECUTION_ENFORCER = exports.DEFAULT_TIMESTAMP_ENFORCER = exports.DEFAULT_ID_ENFORCER = exports.DEFAULT_EXACT_EXECUTION_BATCH_ENFORCER = exports.DEFAULT_EXACT_EXECUTION_ENFORCER = void 0;
4
4
  const enums_1 = require("../../types/enums");
5
+ const types_1 = require("../types");
6
+ const metamask_delegation_chains_1 = require("./metamask-delegation-chains");
5
7
  // See: https://docs.metamask.io/smart-accounts-kit/changelog/0.13.0#caveat-enforcers
8
+ // Avalanche has its own deployment with different addresses; everything else uses the
9
+ // "default" set of addresses deployed by MetaMask.
10
+ exports.DEFAULT_EXACT_EXECUTION_ENFORCER = "0x146713078D39eCC1F5338309c28405ccf85Abfbb";
11
+ exports.DEFAULT_EXACT_EXECUTION_BATCH_ENFORCER = "0x1e141e455d08721Dd5BCDA1BaA6Ea5633Afd5017";
12
+ exports.DEFAULT_ID_ENFORCER = "0xC8B5D93463c893401094cc70e66A206fb5987997";
13
+ exports.DEFAULT_TIMESTAMP_ENFORCER = "0x1046bb45C8d673d4ea75321280DB34899413c069";
14
+ exports.AVALANCHE_EXACT_EXECUTION_ENFORCER = "0xA8F31338Bf2dadE38719eC1E5291Ca1eBBA3956f";
15
+ exports.AVALANCHE_EXACT_EXECUTION_BATCH_ENFORCER = "0x421edBd31b161679A85A24fd4634ac508d9A7205";
16
+ exports.AVALANCHE_ID_ENFORCER = "0x60bAF091cADA81FEA4009627EaC8F6FD4e6AF5A9";
17
+ exports.AVALANCHE_TIMESTAMP_ENFORCER = "0xDBA423E48E011006b93149f33E44CfF9C0D23602";
6
18
  exports.EXACT_EXECUTION_ENFORCER_CONTRACTS = {
7
- [enums_1.ChainId.Wildcard]: ["0x146713078D39eCC1F5338309c28405ccf85Abfbb"] // wildcard for any chain
19
+ ...(0, types_1.buildSameAddressMap)(metamask_delegation_chains_1.METAMASK_DEFAULT_EVM_CHAINS, exports.DEFAULT_EXACT_EXECUTION_ENFORCER),
20
+ [enums_1.ChainId.Avalanche]: [exports.AVALANCHE_EXACT_EXECUTION_ENFORCER],
8
21
  };
9
22
  exports.EXACT_EXECUTION_BATCH_ENFORCER_CONTRACTS = {
10
- [enums_1.ChainId.Wildcard]: ["0x1e141e455d08721Dd5BCDA1BaA6Ea5633Afd5017"] // wildcard for any chain
23
+ ...(0, types_1.buildSameAddressMap)(metamask_delegation_chains_1.METAMASK_DEFAULT_EVM_CHAINS, exports.DEFAULT_EXACT_EXECUTION_BATCH_ENFORCER),
24
+ [enums_1.ChainId.Avalanche]: [exports.AVALANCHE_EXACT_EXECUTION_BATCH_ENFORCER],
11
25
  };
12
26
  exports.ID_ENFORCER_CONTRACTS = {
13
- [enums_1.ChainId.Wildcard]: ["0xC8B5D93463c893401094cc70e66A206fb5987997"] // wildcard for any chain
27
+ ...(0, types_1.buildSameAddressMap)(metamask_delegation_chains_1.METAMASK_DEFAULT_EVM_CHAINS, exports.DEFAULT_ID_ENFORCER),
28
+ [enums_1.ChainId.Avalanche]: [exports.AVALANCHE_ID_ENFORCER],
14
29
  };
15
30
  exports.TIMESTAMP_ENFORCER_CONTRACTS = {
16
- [enums_1.ChainId.Wildcard]: ["0x1046bb45C8d673d4ea75321280DB34899413c069"] // wildcard for any chain
31
+ ...(0, types_1.buildSameAddressMap)(metamask_delegation_chains_1.METAMASK_DEFAULT_EVM_CHAINS, exports.DEFAULT_TIMESTAMP_ENFORCER),
32
+ [enums_1.ChainId.Avalanche]: [exports.AVALANCHE_TIMESTAMP_ENFORCER],
17
33
  };
18
34
  //# sourceMappingURL=caveat-enforcers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"caveat-enforcers.js","sourceRoot":"","sources":["../../../../src/whitelists/evm/caveat-enforcers.ts"],"names":[],"mappings":";;;AAAA,6CAA4C;AAG5C,qFAAqF;AAExE,QAAA,kCAAkC,GAAoB;IAC/D,CAAC,eAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,4CAA4C,CAAC,CAAC,yBAAyB;CACtF,CAAC;AAEE,QAAA,wCAAwC,GAAoB;IACrE,CAAC,eAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,4CAA4C,CAAC,CAAC,yBAAyB;CACtF,CAAC;AAEE,QAAA,qBAAqB,GAAoB;IAClD,CAAC,eAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,4CAA4C,CAAC,CAAC,yBAAyB;CACtF,CAAC;AAEE,QAAA,4BAA4B,GAAoB;IACzD,CAAC,eAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,4CAA4C,CAAC,CAAC,yBAAyB;CACtF,CAAC"}
1
+ {"version":3,"file":"caveat-enforcers.js","sourceRoot":"","sources":["../../../../src/whitelists/evm/caveat-enforcers.ts"],"names":[],"mappings":";;;AAAA,6CAA4C;AAC5C,oCAAgE;AAChE,6EAA2E;AAE3E,qFAAqF;AACrF,sFAAsF;AACtF,mDAAmD;AAEtC,QAAA,gCAAgC,GAAG,4CAA4C,CAAC;AAChF,QAAA,sCAAsC,GAAG,4CAA4C,CAAC;AACtF,QAAA,mBAAmB,GAAG,4CAA4C,CAAC;AACnE,QAAA,0BAA0B,GAAG,4CAA4C,CAAC;AAE1E,QAAA,kCAAkC,GAAG,4CAA4C,CAAC;AAClF,QAAA,wCAAwC,GAAG,4CAA4C,CAAC;AACxF,QAAA,qBAAqB,GAAG,4CAA4C,CAAC;AACrE,QAAA,4BAA4B,GAAG,4CAA4C,CAAC;AAE5E,QAAA,kCAAkC,GAAoB;IAC/D,GAAG,IAAA,2BAAmB,EAAC,wDAA2B,EAAE,wCAAgC,CAAC;IACrF,CAAC,eAAO,CAAC,SAAS,CAAC,EAAE,CAAC,0CAAkC,CAAC;CACnD,CAAC;AAEE,QAAA,wCAAwC,GAAoB;IACrE,GAAG,IAAA,2BAAmB,EAAC,wDAA2B,EAAE,8CAAsC,CAAC;IAC3F,CAAC,eAAO,CAAC,SAAS,CAAC,EAAE,CAAC,gDAAwC,CAAC;CACzD,CAAC;AAEE,QAAA,qBAAqB,GAAoB;IAClD,GAAG,IAAA,2BAAmB,EAAC,wDAA2B,EAAE,2BAAmB,CAAC;IACxE,CAAC,eAAO,CAAC,SAAS,CAAC,EAAE,CAAC,6BAAqB,CAAC;CACtC,CAAC;AAEE,QAAA,4BAA4B,GAAoB;IACzD,GAAG,IAAA,2BAAmB,EAAC,wDAA2B,EAAE,kCAA0B,CAAC;IAC/E,CAAC,eAAO,CAAC,SAAS,CAAC,EAAE,CAAC,oCAA4B,CAAC;CAC7C,CAAC"}