@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
@@ -52,7 +52,7 @@ export const ResponseSrcChainTokenOutSchema = z.object({
52
52
  decimals: z.number(),
53
53
  amount: z.string(),
54
54
  maxRefundAmount: z.string().optional(),
55
- approximateUsdValue: z.number(),
55
+ approximateUsdValue: z.number().optional(),
56
56
  });
57
57
  export const ResponseDstChainTokenOutSchema = z.object({
58
58
  chainId: z.number(),
@@ -80,7 +80,7 @@ export const ResponseTradeSchema = z.object({
80
80
  dstChainTokenOutRecipient: z.string().optional(),
81
81
  dstChainAuthorityAddress: z.string().optional(),
82
82
  relatedIntentId: z.string().optional(),
83
- prependedOperatingExpenseCost: z.string(),
83
+ prependedOperatingExpenseCost: z.string().optional(),
84
84
  userPoints: z.number(),
85
85
  integratorPoints: z.number(),
86
86
  actualUserPoints: z.number().optional(),
@@ -132,15 +132,54 @@ export const ResponseIntentSchema = z.object({
132
132
  dstAuthorityAddress: z.array(ResponseDestinationDetailsSchema).optional(),
133
133
  });
134
134
  // --- Required Actions (EVM) ---
135
+ /**
136
+ * Intent-scope only — payload for `Transaction` actions inside
137
+ * `response.trades[].intents[].requiredActions[]`. The chain is implicit
138
+ * (it equals the parent intent's chainId), so no `chainId` field is present.
139
+ * The hook-scope counterpart carries an explicit `chainId` —
140
+ * see {@link EvmDirectTransactionDataSchema}.
141
+ */
135
142
  export const EvmTransactionDataSchema = z.object({
136
143
  to: z.string(),
137
144
  data: z.string(),
138
145
  value: z.string(),
139
146
  });
147
+ /**
148
+ * Hook-scope only — payload for `Transaction` actions inside
149
+ * `response.preHooks[].requiredActions[]` and
150
+ * `response.postHooks[].requiredActions[]` (Direct hooks with eager-only
151
+ * placeholders), and the inner `transaction` field of
152
+ * `EvmProvidePlaceholdersData`. Carries `chainId` explicitly because hooks
153
+ * are not bound to a single intent's chain.
154
+ */
155
+ export const EvmDirectTransactionDataSchema = z.object({
156
+ to: z.string(),
157
+ data: z.string(),
158
+ value: z.string(),
159
+ chainId: z.number(),
160
+ });
161
+ /**
162
+ * Both scopes (intent and hook) — payload for `Sign7702Authorization`
163
+ * actions. Encodes the EIP-7702 delegation parameters that the user signs
164
+ * to delegate their EOA to a smart-contract wallet implementation.
165
+ */
140
166
  export const EvmSign7702AuthorizationDataSchema = z.object({
141
167
  contractAddress: z.string(),
142
168
  nonce: z.number(),
143
169
  });
170
+ /**
171
+ * Generic EIP-712 typed-data payload. Reused by several action types:
172
+ * - `Sign712MetaMaskCaveats` — both intent-scope and hook-scope (Delegated
173
+ * hooks with eager-only placeholders). Encodes the MetaMask delegation
174
+ * message, including caveats inside `message`.
175
+ * - `Sign712` — intent-scope only. Encodes the user's intent signature.
176
+ * - `Permit` / `Permit2` — intent-scope only. Encodes the EIP-2612 / Permit2
177
+ * approval payload.
178
+ *
179
+ * The hook-scope variant with deferred placeholders extends this shape with
180
+ * an extra `placeholders[]` field — see
181
+ * {@link EvmCaveatsWithPlaceholdersDataSchema}.
182
+ */
144
183
  export const EvmSign712DataSchema = z.object({
145
184
  domain: z.object({
146
185
  name: z.string(),
@@ -152,6 +191,49 @@ export const EvmSign712DataSchema = z.object({
152
191
  primaryType: z.string(),
153
192
  message: z.record(z.string(), z.unknown()),
154
193
  });
194
+ /**
195
+ * Deferred-placeholder descriptor used inside hook-scope action payloads
196
+ * ({@link EvmCaveatsWithPlaceholdersDataSchema} and
197
+ * {@link EvmProvidePlaceholdersDataSchema}). Each item names a placeholder
198
+ * whose value the client must supply at submit time.
199
+ */
200
+ export const EvmActionPlaceholderItemSchema = z.object({
201
+ nameVariable: z.string(),
202
+ });
203
+ /**
204
+ * Hook-scope only — payload for `Sign712MetaMaskCaveatsWithPlaceholders`
205
+ * actions emitted for Delegated EVM hooks that declare deferred
206
+ * placeholders. Extends the standard EIP-712 typed-data shape with a
207
+ * `placeholders[]` list whose values the client supplies at submit time;
208
+ * the corresponding markers remain in place inside the typed data until
209
+ * substitution.
210
+ */
211
+ export const EvmCaveatsWithPlaceholdersDataSchema = EvmSign712DataSchema.extend({
212
+ placeholders: z.array(EvmActionPlaceholderItemSchema),
213
+ });
214
+ /**
215
+ * Hook-scope only — payload for `ProvidePlaceholders` actions emitted for
216
+ * Direct EVM hooks that declare deferred placeholders. Carries the embedded
217
+ * transaction (with explicit `chainId`) and a `placeholders[]` list whose
218
+ * values the client must supply at submit time. No off-chain signature is
219
+ * required — the client substitutes the placeholders into the transaction
220
+ * data and broadcasts the resulting transaction on-chain.
221
+ */
222
+ export const EvmProvidePlaceholdersDataSchema = z.object({
223
+ transaction: EvmDirectTransactionDataSchema,
224
+ placeholders: z.array(EvmActionPlaceholderItemSchema),
225
+ });
226
+ /**
227
+ * Optional `details` payload that supplements an EVM action's `data`.
228
+ * Different action types populate different subsets:
229
+ * - `Sign712MetaMaskCaveats` / `Sign712MetaMaskCaveatsWithPlaceholders` —
230
+ * `transactionCalls` lists the underlying transaction(s) wrapped by the
231
+ * delegation. In hook-scope this is always exactly one entry — the hook
232
+ * transaction itself.
233
+ * - `Transaction` with `actions: [Budget]`, `Permit`, `Permit2` —
234
+ * `allowanceHolder`, `tokenAddress`, `permit2Contract` describe the
235
+ * approved spender / token / Permit2 router.
236
+ */
155
237
  export const EvmActionDetailsSchema = z.object({
156
238
  transactionCalls: z.array(EvmTransactionDataSchema).optional(),
157
239
  allowanceHolder: z.string().optional(),
@@ -179,22 +261,56 @@ export const CostItemSchema = z.object({
179
261
  export const EvmCostItemSchema = CostItemSchema.extend({
180
262
  networkDetails: NetworkDetailsSchema.optional(),
181
263
  });
264
+ /**
265
+ * Single EVM `requiredAction` element. The same shape is used in both
266
+ * intent-scope (`response.trades[].intents[].requiredActions[]`) and
267
+ * hook-scope (`response.preHooks[].requiredActions[]`,
268
+ * `response.postHooks[].requiredActions[]`); the action `type` and `data`
269
+ * shape determine which scope a given action belongs to.
270
+ */
182
271
  export const EvmRequiredActionSchema = z.object({
183
272
  actionId: z.string(),
184
273
  type: z.enum(EvmActionKind),
185
274
  actions: z.array(z.enum(EvmActionOperation)),
186
- data: z.union([EvmTransactionDataSchema, EvmSign7702AuthorizationDataSchema, EvmSign712DataSchema]),
275
+ // Order matters: z.union picks the first matching schema, and z.object
276
+ // strips unknown keys silently. List the more specific (with extra required
277
+ // fields) shapes before their less specific counterparts so chainId /
278
+ // placeholders / transaction are not lost when both schemas would accept the input.
279
+ data: z.union([
280
+ EvmDirectTransactionDataSchema,
281
+ EvmTransactionDataSchema,
282
+ EvmSign7702AuthorizationDataSchema,
283
+ EvmCaveatsWithPlaceholdersDataSchema,
284
+ EvmSign712DataSchema,
285
+ EvmProvidePlaceholdersDataSchema,
286
+ ]),
187
287
  details: EvmActionDetailsSchema.optional(),
188
288
  actionCosts: z.array(EvmCostItemSchema),
189
289
  description: z.string(),
190
290
  });
191
291
  // --- Required Actions (Solana) ---
292
+ /**
293
+ * Both scopes (intent and hook) — payload for `Transaction` and
294
+ * `SignTransaction` actions. Carries a base64-encoded Solana transaction.
295
+ * The shape is identical in intent-scope and hook-scope for Solana: there
296
+ * is no Direct/Delegated split for Solana hooks.
297
+ */
192
298
  export const SolanaTransactionDataSchema = z.object({
193
299
  data: z.string(),
194
300
  });
301
+ /**
302
+ * Intent-scope only — payload for `Sign` actions. Carries a UTF-8 string
303
+ * the user signs to authorize the intent.
304
+ */
195
305
  export const SolanaSignDataSchema = z.object({
196
306
  data: z.string(),
197
307
  });
308
+ /**
309
+ * Single Solana `requiredAction` element. The same shape is used in both
310
+ * intent-scope (`response.trades[].intents[].requiredActions[]`) and
311
+ * hook-scope (`response.preHooks[].requiredActions[]`,
312
+ * `response.postHooks[].requiredActions[]`).
313
+ */
198
314
  export const SolanaRequiredActionSchema = z.object({
199
315
  actionId: z.string(),
200
316
  type: z.enum(SolanaActionKind),
@@ -230,7 +346,11 @@ export const AccumulativeTokenOutputSchema = z.object({
230
346
  });
231
347
  // --- Response Hooks ---
232
348
  export const ResponseHookPayloadSchema = z.object({
233
- requiredActions: z.array(ResponseRequiredActionSchema),
349
+ // In quote mode the API omits requiredActions entirely. Default to an
350
+ // empty array here so downstream hook validators can iterate without
351
+ // null checks at every call site.
352
+ requiredActions: z.array(ResponseRequiredActionSchema).optional()
353
+ .transform(value => value ?? []),
234
354
  hook: RequestHookV2Schema,
235
355
  });
236
356
  // --- Top-level response ---
@@ -1 +1 @@
1
- {"version":3,"file":"response.js","sourceRoot":"","sources":["../../../src/types/response.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"response.js","sourceRoot":"","sources":["../../../src/types/response.ts"],"names":[],"mappings":"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"}
@@ -15,7 +15,6 @@ export var ViolationCode;
15
15
  ViolationCode["ForbiddenSign712MetaMaskWithoutAA"] = "FORBIDDEN_SIGN712_METAMASK_WITHOUT_AA";
16
16
  ViolationCode["ForbiddenDelegateWithoutAA"] = "FORBIDDEN_DELEGATE_WITHOUT_AA";
17
17
  ViolationCode["ForbiddenTransactionCallsWithoutAA"] = "FORBIDDEN_TRANSACTION_CALLS_WITHOUT_AA";
18
- ViolationCode["NonEmptyPreHooksWithoutAA"] = "NON_EMPTY_PRE_HOOKS_WITHOUT_AA";
19
18
  // Required actions — Sign7702Authorization
20
19
  ViolationCode["Sign7702ActionsNotSingleDelegate"] = "SIGN7702_ACTIONS_NOT_SINGLE_DELEGATE";
21
20
  ViolationCode["Sign7702ContractAddressNotWhitelisted"] = "SIGN7702_CONTRACT_ADDRESS_NOT_WHITELISTED";
@@ -105,13 +104,6 @@ export var ViolationCode;
105
104
  ViolationCode["WrapToNotWeth"] = "WRAP_TO_NOT_WETH";
106
105
  ViolationCode["WrapCalldataInvalid"] = "WRAP_CALLDATA_INVALID";
107
106
  ViolationCode["WrapAmountMismatch"] = "WRAP_AMOUNT_MISMATCH";
108
- // Operations — GasCompensation
109
- ViolationCode["GasCompensationTransactionCallsMissing"] = "GAS_COMPENSATION_TRANSACTION_CALLS_MISSING";
110
- ViolationCode["GasCompensationTooManyTransactionCalls"] = "GAS_COMPENSATION_TOO_MANY_TRANSACTION_CALLS";
111
- ViolationCode["GasCompensationNoMatchingPreHook"] = "GAS_COMPENSATION_NO_MATCHING_PRE_HOOK";
112
- ViolationCode["GasCompensationToMismatch"] = "GAS_COMPENSATION_TO_MISMATCH";
113
- ViolationCode["GasCompensationCalldataInvalid"] = "GAS_COMPENSATION_CALLDATA_INVALID";
114
- ViolationCode["GasCompensationNativeValueZero"] = "GAS_COMPENSATION_NATIVE_VALUE_ZERO";
115
107
  // Required actions — approval mutual exclusivity
116
108
  ViolationCode["ApprovalMutualExclusivity"] = "APPROVAL_MUTUAL_EXCLUSIVITY";
117
109
  // Trade validation — amount parsing (used by Budget/Wrap)
@@ -151,8 +143,51 @@ export var ViolationCode;
151
143
  ViolationCode["TradeIntentChainIdMismatch"] = "TRADE_INTENT_CHAIN_ID_MISMATCH";
152
144
  // Trade validation — partnerFeeBps
153
145
  ViolationCode["TradePartnerFeeBpsMismatch"] = "TRADE_PARTNER_FEE_BPS_MISMATCH";
146
+ // bundleCosts[PARTNER_COST] validation
147
+ ViolationCode["PartnerCostMissing"] = "PARTNER_COST_MISSING";
148
+ ViolationCode["PartnerCostAmountInvalid"] = "PARTNER_COST_AMOUNT_INVALID";
149
+ ViolationCode["PartnerCostFeeBpsInvalid"] = "PARTNER_COST_FEE_BPS_INVALID";
150
+ ViolationCode["PartnerCostAmountUnexpectedlyZero"] = "PARTNER_COST_AMOUNT_UNEXPECTEDLY_ZERO";
151
+ ViolationCode["PartnerCostAmountUnexpectedlyNonZero"] = "PARTNER_COST_AMOUNT_UNEXPECTEDLY_NON_ZERO";
152
+ ViolationCode["PartnerCostFeeBpsMismatch"] = "PARTNER_COST_FEE_BPS_MISMATCH";
154
153
  // Trade grouping
155
154
  ViolationCode["IntentNotMatchedToTradeGroup"] = "INTENT_NOT_MATCHED_TO_TRADE_GROUP";
155
+ ViolationCode["TradeGroupHasNoIntent"] = "TRADE_GROUP_HAS_NO_INTENT";
156
+ ViolationCode["DuplicateIntentsInTradeGroup"] = "DUPLICATE_INTENTS_IN_TRADE_GROUP";
157
+ // Intent field validation
158
+ ViolationCode["IntentIdMismatch"] = "INTENT_ID_MISMATCH";
159
+ ViolationCode["IntentOwnerMismatch"] = "INTENT_OWNER_MISMATCH";
160
+ ViolationCode["IntentAuthorityMismatch"] = "INTENT_AUTHORITY_MISMATCH";
161
+ ViolationCode["IntentAllowedCancelBeneficiaryMismatch"] = "INTENT_ALLOWED_CANCEL_BENEFICIARY_MISMATCH";
162
+ ViolationCode["IntentSrcAllowedSenderMismatch"] = "INTENT_SRC_ALLOWED_SENDER_MISMATCH";
163
+ ViolationCode["IntentInputTokenAddressMismatch"] = "INTENT_INPUT_TOKEN_ADDRESS_MISMATCH";
164
+ ViolationCode["IntentInputTokenMissing"] = "INTENT_INPUT_TOKEN_MISSING";
165
+ ViolationCode["IntentInputTokenDuplicate"] = "INTENT_INPUT_TOKEN_DUPLICATE";
166
+ ViolationCode["IntentInputTokenWrappedAddressUnknown"] = "INTENT_INPUT_TOKEN_WRAPPED_ADDRESS_UNKNOWN";
167
+ ViolationCode["IntentConstraintBudgetMismatch"] = "INTENT_CONSTRAINT_BUDGET_MISMATCH";
168
+ ViolationCode["IntentGiveTokenNotEmptyForSameChain"] = "INTENT_GIVE_TOKEN_NOT_EMPTY_FOR_SAME_CHAIN";
169
+ ViolationCode["IntentGiveTokenInputAddressMismatch"] = "INTENT_GIVE_TOKEN_INPUT_ADDRESS_MISMATCH";
170
+ ViolationCode["IntentGiveTokenAddressFormatMismatch"] = "INTENT_GIVE_TOKEN_ADDRESS_FORMAT_MISMATCH";
171
+ ViolationCode["IntentTakeTokenFromAddressInvalid"] = "INTENT_TAKE_TOKEN_FROM_ADDRESS_INVALID";
172
+ ViolationCode["IntentTakeTokenMissing"] = "INTENT_TAKE_TOKEN_MISSING";
173
+ ViolationCode["IntentTakeTokenDuplicate"] = "INTENT_TAKE_TOKEN_DUPLICATE";
174
+ ViolationCode["IntentTakeTokenAddressMismatch"] = "INTENT_TAKE_TOKEN_ADDRESS_MISMATCH";
175
+ ViolationCode["IntentReceiverDetailsAddressInvalid"] = "INTENT_RECEIVER_DETAILS_ADDRESS_INVALID";
176
+ ViolationCode["IntentReceiverDetailsChainIdsMismatch"] = "INTENT_RECEIVER_DETAILS_CHAIN_IDS_MISMATCH";
177
+ ViolationCode["IntentReceiverDetailsMissing"] = "INTENT_RECEIVER_DETAILS_MISSING";
178
+ ViolationCode["IntentReceiverDetailsDuplicate"] = "INTENT_RECEIVER_DETAILS_DUPLICATE";
179
+ ViolationCode["IntentReceiverDetailsAddressChainMismatch"] = "INTENT_RECEIVER_DETAILS_ADDRESS_CHAIN_MISMATCH";
180
+ ViolationCode["IntentDstAuthorityAddressInvalid"] = "INTENT_DST_AUTHORITY_ADDRESS_INVALID";
181
+ ViolationCode["IntentDstAuthorityChainIdsMismatch"] = "INTENT_DST_AUTHORITY_CHAIN_IDS_MISMATCH";
182
+ ViolationCode["IntentDstAuthorityMissing"] = "INTENT_DST_AUTHORITY_MISSING";
183
+ ViolationCode["IntentDstAuthorityDuplicate"] = "INTENT_DST_AUTHORITY_DUPLICATE";
184
+ ViolationCode["IntentDstAuthorityAddressChainMismatch"] = "INTENT_DST_AUTHORITY_ADDRESS_CHAIN_MISMATCH";
185
+ ViolationCode["IntentExecutionMetadataMismatch"] = "INTENT_EXECUTION_METADATA_MISMATCH";
186
+ ViolationCode["IntentDlnMetadataMismatch"] = "INTENT_DLN_METADATA_MISMATCH";
187
+ ViolationCode["IntentExternalCallHashMismatch"] = "INTENT_EXTERNAL_CALL_HASH_MISMATCH";
188
+ ViolationCode["IntentNumericValueNegative"] = "INTENT_NUMERIC_VALUE_NEGATIVE";
189
+ ViolationCode["IntentNumericValueInvalid"] = "INTENT_NUMERIC_VALUE_INVALID";
190
+ ViolationCode["IntentIdComputeError"] = "INTENT_ID_COMPUTE_ERROR";
156
191
  // Required actions — kind consistency
157
192
  ViolationCode["RequiredActionKindInconsistent"] = "REQUIRED_ACTION_KIND_INCONSISTENT";
158
193
  // Solana — general required actions
@@ -215,6 +250,44 @@ export var ViolationCode;
215
250
  ViolationCode["HookActionsInvalid"] = "HOOK_ACTIONS_INVALID";
216
251
  ViolationCode["HookGasCompensationWithoutInfo"] = "HOOK_GAS_COMPENSATION_WITHOUT_INFO";
217
252
  ViolationCode["HookDuplicateActionId"] = "HOOK_DUPLICATE_ACTION_ID";
253
+ ViolationCode["HookPlaceholderResolutionFailed"] = "HOOK_PLACEHOLDER_RESOLUTION_FAILED";
254
+ ViolationCode["UnexpectedPostHook"] = "UNEXPECTED_POST_HOOK";
255
+ // Hooks — compensation hook structure (response.preHooks[i >= request.preHooks.length])
256
+ ViolationCode["CompensationHookPlaceHoldersNotEmpty"] = "COMPENSATION_HOOK_PLACE_HOLDERS_NOT_EMPTY";
257
+ ViolationCode["CompensationHookIsAtomicInvalid"] = "COMPENSATION_HOOK_IS_ATOMIC_INVALID";
258
+ ViolationCode["CompensationHookTypeInvalid"] = "COMPENSATION_HOOK_TYPE_INVALID";
259
+ ViolationCode["CompensationHookFromMismatch"] = "COMPENSATION_HOOK_FROM_MISMATCH";
260
+ ViolationCode["CompensationHookEvmGasCompensationInfoPresent"] = "COMPENSATION_HOOK_EVM_GAS_COMPENSATION_INFO_PRESENT";
261
+ ViolationCode["CompensationHookEvmToMissing"] = "COMPENSATION_HOOK_EVM_TO_MISSING";
262
+ ViolationCode["CompensationHookEvmToMismatch"] = "COMPENSATION_HOOK_EVM_TO_MISMATCH";
263
+ ViolationCode["CompensationHookEvmDataInvalid"] = "COMPENSATION_HOOK_EVM_DATA_INVALID";
264
+ ViolationCode["CompensationHookEvmValueInvalid"] = "COMPENSATION_HOOK_EVM_VALUE_INVALID";
265
+ ViolationCode["CompensationHookSolanaToOrValuePresent"] = "COMPENSATION_HOOK_SOLANA_TO_OR_VALUE_PRESENT";
266
+ ViolationCode["CompensationHookSolanaGasCompensationInfoMissing"] = "COMPENSATION_HOOK_SOLANA_GAS_COMPENSATION_INFO_MISSING";
267
+ ViolationCode["CompensationHookSolanaGasCompensationInfoMismatch"] = "COMPENSATION_HOOK_SOLANA_GAS_COMPENSATION_INFO_MISMATCH";
268
+ ViolationCode["CompensationHookRequiredActionsInvalid"] = "COMPENSATION_HOOK_REQUIRED_ACTIONS_INVALID";
269
+ // Hooks — Delegate operation (EVM Delegated hooks only)
270
+ ViolationCode["HookDelegateNotFirst"] = "HOOK_DELEGATE_NOT_FIRST";
271
+ ViolationCode["HookMultipleDelegate"] = "HOOK_MULTIPLE_DELEGATE";
272
+ ViolationCode["HookDelegateInDirect"] = "HOOK_DELEGATE_IN_DIRECT";
273
+ // Hooks — Direct hook (EVM Direct hooks only) and chain-engine constraints
274
+ ViolationCode["HookSolanaCannotBeDirect"] = "HOOK_SOLANA_CANNOT_BE_DIRECT";
275
+ ViolationCode["HookDirectActionTypeInvalid"] = "HOOK_DIRECT_ACTION_TYPE_INVALID";
276
+ ViolationCode["HookDirectChainIdMismatch"] = "HOOK_DIRECT_CHAIN_ID_MISMATCH";
277
+ ViolationCode["HookDirectPlaceholdersMismatch"] = "HOOK_DIRECT_PLACEHOLDERS_MISMATCH";
278
+ // Hooks — calldata placeholder substitution (EVM hook actions)
279
+ ViolationCode["HookActionCalldataMismatch"] = "HOOK_ACTION_CALLDATA_MISMATCH";
280
+ // Hooks — Delegated hook (EVM Delegated hooks only)
281
+ ViolationCode["HookDelegatedActionTypeInvalid"] = "HOOK_DELEGATED_ACTION_TYPE_INVALID";
282
+ ViolationCode["HookDelegatedPlaceholdersMismatch"] = "HOOK_DELEGATED_PLACEHOLDERS_MISMATCH";
283
+ // Hooks — Sign712MetaMaskCaveats / WithPlaceholders structure (hook-scope)
284
+ ViolationCode["HookSign712TransactionCallsEmpty"] = "HOOK_SIGN712_TRANSACTION_CALLS_EMPTY";
285
+ ViolationCode["HookSign712TransactionCallsTooMany"] = "HOOK_SIGN712_TRANSACTION_CALLS_TOO_MANY";
286
+ // Hooks — Sign7702Authorization↔Delegate binding (hook-scope)
287
+ ViolationCode["HookDelegateOpWrongType"] = "HOOK_DELEGATE_OP_WRONG_TYPE";
288
+ // Hooks — transactionCalls[0] consistency with hook fields
289
+ ViolationCode["HookActionTransactionToMismatch"] = "HOOK_ACTION_TRANSACTION_TO_MISMATCH";
290
+ ViolationCode["HookActionTransactionValueMismatch"] = "HOOK_ACTION_TRANSACTION_VALUE_MISMATCH";
218
291
  // Hooks — Solana
219
292
  ViolationCode["SolanaHookDataMismatch"] = "SOLANA_HOOK_DATA_MISMATCH";
220
293
  ViolationCode["SolanaHookDecodeError"] = "SOLANA_HOOK_DECODE_ERROR";
@@ -226,13 +299,11 @@ export var ViolationCode;
226
299
  ViolationCode["SolanaGasCompensationTokenMismatch"] = "SOLANA_GAS_COMPENSATION_TOKEN_MISMATCH";
227
300
  ViolationCode["SolanaGasCompensationFeePayerIsUser"] = "SOLANA_GAS_COMPENSATION_FEE_PAYER_IS_USER";
228
301
  ViolationCode["SolanaGasCompensationUnexpectedInstruction"] = "SOLANA_GAS_COMPENSATION_UNEXPECTED_INSTRUCTION";
229
- ViolationCode["UrlNotWhitelisted"] = "URL_NOT_WHITELISTED";
230
302
  })(ViolationCode || (ViolationCode = {}));
231
303
  export var Environment;
232
304
  (function (Environment) {
233
305
  Environment[Environment["Prod"] = 0] = "Prod";
234
306
  Environment[Environment["Hanoi"] = 1] = "Hanoi";
235
307
  Environment[Environment["Dubai"] = 2] = "Dubai";
236
- Environment[Environment["Madrid"] = 3] = "Madrid";
237
308
  })(Environment || (Environment = {}));
238
309
  //# sourceMappingURL=validation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../src/types/validation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../src/types/validation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,200 @@
1
+ import { ViolationCode, BundleHookType, ChainEngine, EvmActionOperation, SolanaActionOperation, } from "../types/index.js";
2
+ import { addressEquals, getChainEngine } from "../helpers/address.js";
3
+ import { extractGasCompensationGroups, } from "../helpers/gas-compensation.js";
4
+ import { validateEvmGasCompensationTx } from "../helpers/evm-gas-compensation-tx.js";
5
+ import { resolveChainIdOrSelf } from "../whitelists/subscription-to-chain-id.js";
6
+ // Validates `response.preHooks[i].hook` for a compensation hook
7
+ // (i.e. `i >= request.preHooks.length`). This is the primary MITM defense for
8
+ // surplus preHooks — `validateHookEcho` cannot help here because there is no
9
+ // matching request entry to compare against.
10
+ export function validateCompensationHookStructure(hookPayload, basePath, request) {
11
+ const hook = hookPayload.hook;
12
+ const hookPath = `${basePath}.hook`;
13
+ // Resolve the hook's subscriptionId into a real chainId once; every
14
+ // chain-aware helper downstream takes real. Fall back to the subscriptionId
15
+ // value for unknown chains.
16
+ const realHookChainId = resolveChainIdOrSelf(hook.chainId);
17
+ const violations = [
18
+ ...validateCommonFields(hook, hookPath),
19
+ ...validateCompensationRequiredActionsOps(hookPayload, basePath, realHookChainId),
20
+ ];
21
+ const allGroups = extractGasCompensationGroups(request);
22
+ const matchingGroups = findGroupsMatchingFrom(hook, realHookChainId, allGroups);
23
+ if (matchingGroups.length === 0) {
24
+ violations.push({
25
+ code: ViolationCode.CompensationHookFromMismatch,
26
+ message: "compensation hook.from does not match any request"
27
+ + " gasCompensationInfo.sender on the same chain",
28
+ path: `${hookPath}.from`,
29
+ expected: allGroups.map(g => ({ chainId: g.chainId, sender: g.sender })),
30
+ actual: { chainId: hook.chainId, from: hook.from },
31
+ });
32
+ // Without a matching group we cannot meaningfully run chain-specific
33
+ // structural checks (token address comparison, etc.).
34
+ return violations;
35
+ }
36
+ const isSolana = getChainEngine(realHookChainId) === ChainEngine.Solana;
37
+ violations.push(...(isSolana
38
+ ? validateSolanaCompensationStructure(hook, matchingGroups, hookPath)
39
+ : validateEvmCompensationStructure(hook, matchingGroups, realHookChainId, hookPath)));
40
+ return violations;
41
+ }
42
+ function validateCommonFields(hook, hookPath) {
43
+ const violations = [];
44
+ // HIGH: compensation hooks always carry empty placeHolders.
45
+ if (hook.placeHolders.length !== 0) {
46
+ violations.push({
47
+ code: ViolationCode.CompensationHookPlaceHoldersNotEmpty,
48
+ message: "compensation hook must have empty placeHolders",
49
+ path: `${hookPath}.placeHolders`,
50
+ expected: [],
51
+ actual: hook.placeHolders,
52
+ });
53
+ }
54
+ // HIGH: API always emits isAtomic=false for compensation hooks.
55
+ if (hook.isAtomic !== false) {
56
+ violations.push({
57
+ code: ViolationCode.CompensationHookIsAtomicInvalid,
58
+ message: "compensation hook must have isAtomic=false",
59
+ path: `${hookPath}.isAtomic`,
60
+ expected: false,
61
+ actual: hook.isAtomic,
62
+ });
63
+ }
64
+ // MEDIUM: API never sets hook.type='direct' for compensation; delegated or
65
+ // omitted is allowed.
66
+ if (hook.type !== undefined && hook.type !== BundleHookType.Delegated) {
67
+ violations.push({
68
+ code: ViolationCode.CompensationHookTypeInvalid,
69
+ message: "compensation hook must have type=delegated (or omitted)",
70
+ path: `${hookPath}.type`,
71
+ expected: BundleHookType.Delegated,
72
+ actual: hook.type,
73
+ });
74
+ }
75
+ return violations;
76
+ }
77
+ function findGroupsMatchingFrom(hook, realHookChainId, groups) {
78
+ return groups.filter(g => g.realChainId === realHookChainId
79
+ && addressEquals(realHookChainId, g.sender, hook.from));
80
+ }
81
+ // CRITICAL: a compensation hook must emit GasCompensation ops and must not
82
+ // emit Hook ops. `validateHookActionsList` already enforces that each action
83
+ // carries exactly one op from {Hook, GasCompensation}; this rule narrows further.
84
+ function validateCompensationRequiredActionsOps(hookPayload, basePath, realHookChainId) {
85
+ const isSolana = getChainEngine(realHookChainId) === ChainEngine.Solana;
86
+ const hookOp = isSolana
87
+ ? SolanaActionOperation.Hook
88
+ : EvmActionOperation.Hook;
89
+ const gasCompensationOp = isSolana
90
+ ? SolanaActionOperation.GasCompensation
91
+ : EvmActionOperation.GasCompensation;
92
+ const ops = hookPayload.requiredActions
93
+ .flatMap(a => a.actions);
94
+ const violations = [];
95
+ if (ops.includes(hookOp)) {
96
+ violations.push({
97
+ code: ViolationCode.CompensationHookRequiredActionsInvalid,
98
+ message: "compensation hook requiredActions must not contain"
99
+ + " the `Hook` operation",
100
+ path: `${basePath}.requiredActions`,
101
+ actual: ops,
102
+ });
103
+ }
104
+ if (!ops.includes(gasCompensationOp)) {
105
+ violations.push({
106
+ code: ViolationCode.CompensationHookRequiredActionsInvalid,
107
+ message: "compensation hook requiredActions must contain at least one"
108
+ + " `GasCompensation` operation",
109
+ path: `${basePath}.requiredActions`,
110
+ actual: ops,
111
+ });
112
+ }
113
+ return violations;
114
+ }
115
+ // =============================================
116
+ // EVM compensation hook structure
117
+ // =============================================
118
+ function validateEvmCompensationStructure(hook, groups, realHookChainId, hookPath) {
119
+ const violations = [];
120
+ // MEDIUM: API builds EVM compensation hooks without gasCompensationInfo
121
+ // (only Solana compensation hooks carry it for two-pass grouping).
122
+ if (hook.gasCompensationInfo !== undefined) {
123
+ violations.push({
124
+ code: ViolationCode.CompensationHookEvmGasCompensationInfoPresent,
125
+ message: "EVM compensation hook must not include gasCompensationInfo",
126
+ path: `${hookPath}.gasCompensationInfo`,
127
+ actual: hook.gasCompensationInfo,
128
+ });
129
+ }
130
+ // HIGH: `to` is required for EVM hooks.
131
+ if (hook.to === undefined) {
132
+ violations.push({
133
+ code: ViolationCode.CompensationHookEvmToMissing,
134
+ message: "EVM compensation hook must have `to`",
135
+ path: `${hookPath}.to`,
136
+ });
137
+ return violations;
138
+ }
139
+ // Native vs ERC20 classification + value/data form is shared with
140
+ // hook-scope `transactionCalls[0]` validation; the helper handles both.
141
+ violations.push(...validateEvmGasCompensationTx({ to: hook.to, data: hook.data, value: hook.value ?? "0" }, groups, realHookChainId, hookPath, {
142
+ toMismatch: ViolationCode.CompensationHookEvmToMismatch,
143
+ dataInvalid: ViolationCode.CompensationHookEvmDataInvalid,
144
+ valueInvalid: ViolationCode.CompensationHookEvmValueInvalid,
145
+ }));
146
+ return violations;
147
+ }
148
+ // =============================================
149
+ // Solana compensation hook structure
150
+ // =============================================
151
+ function validateSolanaCompensationStructure(hook, groups, hookPath) {
152
+ const violations = [];
153
+ // LOW: API deletes `to` and `value` from Solana hook echoes.
154
+ if (hook.to !== undefined) {
155
+ violations.push({
156
+ code: ViolationCode.CompensationHookSolanaToOrValuePresent,
157
+ message: "Solana compensation hook must not include `to`",
158
+ path: `${hookPath}.to`,
159
+ actual: hook.to,
160
+ });
161
+ }
162
+ if (hook.value !== undefined) {
163
+ violations.push({
164
+ code: ViolationCode.CompensationHookSolanaToOrValuePresent,
165
+ message: "Solana compensation hook must not include `value`",
166
+ path: `${hookPath}.value`,
167
+ actual: hook.value,
168
+ });
169
+ }
170
+ // HIGH: Solana compensation hooks must carry gasCompensationInfo (API uses
171
+ // it for two-pass grouping to include the comp transaction's own cost).
172
+ const info = hook.gasCompensationInfo;
173
+ if (info === undefined) {
174
+ violations.push({
175
+ code: ViolationCode.CompensationHookSolanaGasCompensationInfoMissing,
176
+ message: "Solana compensation hook must include gasCompensationInfo",
177
+ path: `${hookPath}.gasCompensationInfo`,
178
+ });
179
+ return violations;
180
+ }
181
+ // CRITICAL: all three fields must match some request group.
182
+ const matches = groups.some(g => g.chainId === info.chainId
183
+ && addressEquals(g.realChainId, g.tokenAddress, info.tokenAddress)
184
+ && addressEquals(g.realChainId, g.sender, info.sender));
185
+ if (!matches) {
186
+ violations.push({
187
+ code: ViolationCode.CompensationHookSolanaGasCompensationInfoMismatch,
188
+ message: "Solana compensation hook.gasCompensationInfo does not match"
189
+ + " any request group",
190
+ path: `${hookPath}.gasCompensationInfo`,
191
+ expected: groups,
192
+ actual: info,
193
+ });
194
+ }
195
+ // Note: the compensation transaction's inner bytes (programs, transfer,
196
+ // fee-payer, etc.) are already validated by validateSolanaGasCompensationAction
197
+ // running against the single [GasCompensation] required action in this hook.
198
+ return violations;
199
+ }
200
+ //# sourceMappingURL=compensation-hook.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compensation-hook.js","sourceRoot":"","sources":["../../../src/validations/compensation-hook.ts"],"names":[],"mappings":"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"}