@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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evm-gas-compensation-tx.js","sourceRoot":"","sources":["../../../src/helpers/evm-gas-compensation-tx.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,7 @@
1
1
  import { encodeAbiParameters, keccak256, zeroAddress, zeroHash } from "viem";
2
2
  import { SUBMIT_INTENT_ABI_PARAMS } from "./evm-intent-id-abi.js";
3
+ import { addressToHex, addressToHexByValue } from "./address.js";
4
+ import { resolveChainId } from "../whitelists/subscription-to-chain-id.js";
3
5
  export function computeIntentId(intent) {
4
6
  const struct = convertToIntentStruct(intent);
5
7
  const encoded = encodeAbiParameters(SUBMIT_INTENT_ABI_PARAMS, [struct]);
@@ -17,7 +19,7 @@ function convertToIntentStruct(intent) {
17
19
  intentTimestamp: BigInt(intent.intentTimestamp),
18
20
  srcAllowedSender: (intent.srcAllowedSender ?? []),
19
21
  executionMetadata: (intent.executionMetadata ?? zeroHash),
20
- isAnyDlnMetadataAllowed: true,
22
+ isAnyDlnMetadataAllowed: !intent.dlnMetadata,
21
23
  dlnMetadata: (intent.dlnMetadata ?? "0x"),
22
24
  externalCallHash: (intent.externalCallHash ?? zeroHash),
23
25
  combinedInteractions: "0x",
@@ -26,14 +28,22 @@ function convertToIntentStruct(intent) {
26
28
  intentAuthority: intent.intentAuthority,
27
29
  };
28
30
  }
31
+ // Encodes addresses as raw bytes — non-EVM strings can't be passed as-is.
29
32
  function convertAllowedAddresses(details) {
30
33
  if (!details)
31
34
  return [];
32
- return details.map(d => ({
33
- allowedAddress: d.address,
34
- chains: d.destinationChainIds === "any" ? [] : d.destinationChainIds,
35
- isAnyChain: d.destinationChainIds === "any",
36
- }));
35
+ return details.map(d => {
36
+ const isAnyChain = d.destinationChainIds === "any";
37
+ const chains = isAnyChain ? [] : d.destinationChainIds;
38
+ // All chains within one entry share the same address family (validated
39
+ // elsewhere), so any chainId in the list resolves the address family
40
+ // identically. For "any" / empty chains, the family is inferred from
41
+ // the address itself.
42
+ const allowedAddress = chains.length > 0
43
+ ? addressToHex(resolveChainId(chains[0]) ?? chains[0], d.address)
44
+ : addressToHexByValue(d.address);
45
+ return { allowedAddress, chains, isAnyChain };
46
+ });
37
47
  }
38
48
  function convertInputTokens(tokens) {
39
49
  if (!tokens)
@@ -55,13 +65,17 @@ function convertGiveTokens(tokens) {
55
65
  denominator: Number(t.denominator),
56
66
  }));
57
67
  }
68
+ // Encode addresses as raw bytes — non-EVM strings can't be passed as-is.
58
69
  function convertTakeTokens(tokens) {
59
- return tokens.map(t => ({
60
- giveToken: t.fromTokenAddress,
61
- takeTokenChain: t.takeTokenChainId,
62
- takeToken: t.takeTokenAddress,
63
- numerator: BigInt(t.numerator),
64
- denominator: Number(t.denominator),
65
- }));
70
+ return tokens.map(t => {
71
+ const realChainId = resolveChainId(t.takeTokenChainId) ?? t.takeTokenChainId;
72
+ return {
73
+ giveToken: t.fromTokenAddress,
74
+ takeTokenChain: t.takeTokenChainId,
75
+ takeToken: addressToHex(realChainId, t.takeTokenAddress),
76
+ numerator: BigInt(t.numerator),
77
+ denominator: Number(t.denominator),
78
+ };
79
+ });
66
80
  }
67
81
  //# sourceMappingURL=evm-intent-id.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"evm-intent-id.js","sourceRoot":"","sources":["../../../src/helpers/evm-intent-id.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"evm-intent-id.js","sourceRoot":"","sources":["../../../src/helpers/evm-intent-id.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,13 @@ import { resolveWrappedTokenAddress } from "./evm-token.js";
4
4
  // Sums srcChainTokenInAmount for trades matching a given token address.
5
5
  // Returns skip=true if any matching trade has max/auto amount.
6
6
  // Returns violations if any matching trade has an invalid (non-numeric) amount.
7
- export function sumTradeAmounts(trades, tokenAddress, realChainId) {
7
+ //
8
+ // When `responseTrades` is provided, trades with `prependOperatingExpenses=true`
9
+ // also contribute `response.trades[i].srcChainTokenIn.approximateOperatingExpense`
10
+ // to the sum. This reflects how the API computes `intent.inputToken[].constraintBudget`
11
+ // (= mutated amount with prepended expense), which is the value used for Wrap.value
12
+ // and Budget approve amount on the same input token.
13
+ export function sumTradeAmounts(trades, tokenAddress, realChainId, responseTrades) {
8
14
  let sum = 0n;
9
15
  // Resolve native → WETH so Budget for WETH matches trades with native input (and vice versa)
10
16
  const resolvedToken = resolveWrappedTokenAddress(tokenAddress, realChainId) ?? tokenAddress;
@@ -33,7 +39,36 @@ export function sumTradeAmounts(trades, tokenAddress, realChainId) {
33
39
  }],
34
40
  };
35
41
  }
42
+ if (responseTrades && (trade.prependOperatingExpenses ?? false)) {
43
+ const expenseResult = parsePrependedExpense(responseTrades, i);
44
+ if (expenseResult.violations)
45
+ return expenseResult;
46
+ sum += expenseResult.value;
47
+ }
36
48
  }
37
49
  return { sum };
38
50
  }
51
+ // Reads response.trades[i].srcChainTokenIn.approximateOperatingExpense as bigint.
52
+ // If responseTrades has no matching index, treat as 0 — the trade-count mismatch
53
+ // is reported by `validateTrades` and we should not add a duplicate violation here.
54
+ function parsePrependedExpense(responseTrades, tradeIndex) {
55
+ const responseTrade = responseTrades[tradeIndex];
56
+ if (!responseTrade)
57
+ return { value: 0n };
58
+ const raw = responseTrade.srcChainTokenIn.approximateOperatingExpense;
59
+ try {
60
+ return { value: BigInt(raw) };
61
+ }
62
+ catch (e) {
63
+ return {
64
+ violations: [{
65
+ code: ViolationCode.TradeOperatingExpenseInvalid,
66
+ message: "approximateOperatingExpense is not a valid number",
67
+ path: `response.trades[${tradeIndex}].srcChainTokenIn.approximateOperatingExpense`,
68
+ actual: raw,
69
+ details: e,
70
+ }],
71
+ };
72
+ }
73
+ }
39
74
  //# sourceMappingURL=evm-trade-amounts.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"evm-trade-amounts.js","sourceRoot":"","sources":["../../../src/helpers/evm-trade-amounts.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,aAAa,EAEb,aAAa,GAEhB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAOzD,wEAAwE;AACxE,+DAA+D;AAC/D,gFAAgF;AAChF,MAAM,UAAU,eAAe,CAC3B,MAAsB,EACtB,YAAoB,EACpB,WAAoB;IAEpB,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,6FAA6F;IAC7F,MAAM,aAAa,GAAG,0BAA0B,CAAC,YAAY,EAAE,WAAW,CAAC,IAAI,YAAY,CAAC;IAC5F,MAAM,UAAU,GAAG,gBAAgB,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IAEhE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACxB,MAAM,kBAAkB,GAAG,0BAA0B,CAAC,KAAK,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;QAC1F,MAAM,oBAAoB,GAAG,gBAAgB,CACzC,WAAW,EAAE,kBAAkB,IAAI,KAAK,CAAC,eAAe,CAC3D,CAAC;QACF,IAAI,oBAAoB,KAAK,UAAU,EAAE,CAAC;YACtC,SAAS;QACb,CAAC;QAED,MAAM,MAAM,GAAG,KAAK,CAAC,qBAAqB,CAAC;QAC3C,IAAI,MAAM,KAAK,aAAa,CAAC,GAAG,IAAI,MAAM,KAAK,aAAa,CAAC,IAAI,EAAE,CAAC;YAChE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAC1B,CAAC;QAED,IAAI,CAAC;YACD,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC;QAC1B,CAAC;QAAC,MAAM,CAAC;YACL,OAAO;gBACH,UAAU,EAAE,CAAC;wBACT,IAAI,EAAE,aAAa,CAAC,kBAAkB;wBACtC,OAAO,EAAE,mDAAmD;wBAC5D,IAAI,EAAE,kBAAkB,CAAC,yBAAyB;wBAClD,MAAM,EAAE,MAAM;qBACjB,CAAC;aACL,CAAC;QACN,CAAC;IACL,CAAC;IACD,OAAO,EAAE,GAAG,EAAE,CAAC;AACnB,CAAC"}
1
+ {"version":3,"file":"evm-trade-amounts.js","sourceRoot":"","sources":["../../../src/helpers/evm-trade-amounts.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,aAAa,EAGb,aAAa,GAEhB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAOzD,wEAAwE;AACxE,+DAA+D;AAC/D,gFAAgF;AAChF,EAAE;AACF,iFAAiF;AACjF,mFAAmF;AACnF,wFAAwF;AACxF,oFAAoF;AACpF,qDAAqD;AACrD,MAAM,UAAU,eAAe,CAC3B,MAAsB,EACtB,YAAoB,EACpB,WAAoB,EACpB,cAA8C;IAE9C,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,6FAA6F;IAC7F,MAAM,aAAa,GAAG,0BAA0B,CAAC,YAAY,EAAE,WAAW,CAAC,IAAI,YAAY,CAAC;IAC5F,MAAM,UAAU,GAAG,gBAAgB,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IAEhE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACxB,MAAM,kBAAkB,GAAG,0BAA0B,CAAC,KAAK,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;QAC1F,MAAM,oBAAoB,GAAG,gBAAgB,CACzC,WAAW,EAAE,kBAAkB,IAAI,KAAK,CAAC,eAAe,CAC3D,CAAC;QACF,IAAI,oBAAoB,KAAK,UAAU,EAAE,CAAC;YACtC,SAAS;QACb,CAAC;QAED,MAAM,MAAM,GAAG,KAAK,CAAC,qBAAqB,CAAC;QAC3C,IAAI,MAAM,KAAK,aAAa,CAAC,GAAG,IAAI,MAAM,KAAK,aAAa,CAAC,IAAI,EAAE,CAAC;YAChE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAC1B,CAAC;QAED,IAAI,CAAC;YACD,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC;QAC1B,CAAC;QAAC,MAAM,CAAC;YACL,OAAO;gBACH,UAAU,EAAE,CAAC;wBACT,IAAI,EAAE,aAAa,CAAC,kBAAkB;wBACtC,OAAO,EAAE,mDAAmD;wBAC5D,IAAI,EAAE,kBAAkB,CAAC,yBAAyB;wBAClD,MAAM,EAAE,MAAM;qBACjB,CAAC;aACL,CAAC;QACN,CAAC;QAED,IAAI,cAAc,IAAI,CAAC,KAAK,CAAC,wBAAwB,IAAI,KAAK,CAAC,EAAE,CAAC;YAC9D,MAAM,aAAa,GAAG,qBAAqB,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;YAC/D,IAAI,aAAa,CAAC,UAAU;gBAAE,OAAO,aAAa,CAAC;YACnD,GAAG,IAAI,aAAa,CAAC,KAAK,CAAC;QAC/B,CAAC;IACL,CAAC;IACD,OAAO,EAAE,GAAG,EAAE,CAAC;AACnB,CAAC;AAMD,kFAAkF;AAClF,iFAAiF;AACjF,oFAAoF;AACpF,SAAS,qBAAqB,CAC1B,cAA6C,EAC7C,UAAkB;IAElB,MAAM,aAAa,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC;IACjD,IAAI,CAAC,aAAa;QAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;IAEzC,MAAM,GAAG,GAAG,aAAa,CAAC,eAAe,CAAC,2BAA2B,CAAC;IACtE,IAAI,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;IAClC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,OAAO;YACH,UAAU,EAAE,CAAC;oBACT,IAAI,EAAE,aAAa,CAAC,4BAA4B;oBAChD,OAAO,EAAE,mDAAmD;oBAC5D,IAAI,EAAE,mBAAmB,UAAU,+CAA+C;oBAClF,MAAM,EAAE,GAAG;oBACX,OAAO,EAAE,CAAC;iBACb,CAAC;SACL,CAAC;IACN,CAAC;AACL,CAAC"}
@@ -0,0 +1,33 @@
1
+ import { normalizeAddress } from "./address.js";
2
+ import { resolveChainId } from "../whitelists/subscription-to-chain-id.js";
3
+ // Groups `gasCompensationInfo` entries from request.preHooks by
4
+ // (chainId, tokenAddress, sender). One compensation hook per
5
+ // unique group is expected to be appended to response.preHooks.
6
+ // Groups with an unknown subscription chainId are skipped — they'll surface as
7
+ // `UnknownSubscriptionId` via the trade-grouping pass.
8
+ export function extractGasCompensationGroups(request) {
9
+ const seen = new Set();
10
+ const groups = [];
11
+ for (const hook of request.preHooks ?? []) {
12
+ const info = hook.gasCompensationInfo;
13
+ if (!info)
14
+ continue;
15
+ const realChainId = resolveChainId(info.chainId);
16
+ if (realChainId === undefined)
17
+ continue;
18
+ const key = `${realChainId}`
19
+ + `:${normalizeAddress(realChainId, info.tokenAddress)}`
20
+ + `:${normalizeAddress(realChainId, info.sender)}`;
21
+ if (seen.has(key))
22
+ continue;
23
+ seen.add(key);
24
+ groups.push({
25
+ chainId: info.chainId,
26
+ realChainId,
27
+ tokenAddress: info.tokenAddress,
28
+ sender: info.sender,
29
+ });
30
+ }
31
+ return groups;
32
+ }
33
+ //# sourceMappingURL=gas-compensation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gas-compensation.js","sourceRoot":"","sources":["../../../src/helpers/gas-compensation.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AASxE,gEAAgE;AAChE,6DAA6D;AAC7D,gEAAgE;AAChE,+EAA+E;AAC/E,uDAAuD;AACvD,MAAM,UAAU,4BAA4B,CACxC,OAA8B;IAE9B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,MAAM,GAA2B,EAAE,CAAC;IAE1C,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;QACxC,MAAM,IAAI,GAAG,IAAI,CAAC,mBAAmB,CAAC;QACtC,IAAI,CAAC,IAAI;YAAE,SAAS;QAEpB,MAAM,WAAW,GAAG,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACjD,IAAI,WAAW,KAAK,SAAS;YAAE,SAAS;QAExC,MAAM,GAAG,GAAG,GAAG,WAAW,EAAE;cACtB,IAAI,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,EAAE;cACtD,IAAI,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAEvD,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,SAAS;QAE5B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAEd,MAAM,CAAC,IAAI,CAAC;YACR,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,WAAW;YACX,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,MAAM,EAAE,IAAI,CAAC,MAAM;SACtB,CAAC,CAAC;IACP,CAAC;IAED,OAAO,MAAM,CAAC;AAClB,CAAC"}
@@ -0,0 +1,20 @@
1
+ import { zeroHash } from "viem";
2
+ // Treats undefined, "0x" and `zeroHash` (`0x000...0`) as the same empty value.
3
+ export function isEmptyHex(value) {
4
+ if (value === undefined)
5
+ return true;
6
+ const normalized = value.toLowerCase();
7
+ return normalized === "0x" || normalized === zeroHash;
8
+ }
9
+ // Case-insensitive comparison of two hex strings, with `undefined` / `0x` /
10
+ // `zeroHash` treated as a single equivalence class. Use whenever an API field
11
+ // can be omitted, empty, or zero-padded interchangeably.
12
+ export function hexEquals(a, b) {
13
+ if (isEmptyHex(a) && isEmptyHex(b))
14
+ return true;
15
+ // If one is `undefined` and the other is not, they are not equal.
16
+ if (a === undefined || b === undefined)
17
+ return false;
18
+ return a.toLowerCase() === b.toLowerCase();
19
+ }
20
+ //# sourceMappingURL=hex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hex.js","sourceRoot":"","sources":["../../../src/helpers/hex.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAEhC,+EAA+E;AAC/E,MAAM,UAAU,UAAU,CAAC,KAAyB;IAChD,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACrC,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IACvC,OAAO,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,QAAQ,CAAC;AAC1D,CAAC;AAED,4EAA4E;AAC5E,8EAA8E;AAC9E,yDAAyD;AACzD,MAAM,UAAU,SAAS,CACrB,CAAqB,EACrB,CAAqB;IAErB,IAAI,UAAU,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAEhD,kEAAkE;IAClE,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAErD,OAAO,CAAC,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;AAC/C,CAAC"}
@@ -0,0 +1,168 @@
1
+ import { ChainEngine, PlaceholderType } from "../types/enums.js";
2
+ import { addressEquals, getChainEngine } from "./address.js";
3
+ const MIN_PLACEHOLDER_BYTE_COUNT = 1;
4
+ const MAX_PLACEHOLDER_BYTE_COUNT = 32;
5
+ export const EVM_DEFAULT_PLACEHOLDER_BYTE_COUNT = MAX_PLACEHOLDER_BYTE_COUNT;
6
+ export const SOLANA_DEFAULT_PLACEHOLDER_BYTE_COUNT = 8;
7
+ export var HookMode;
8
+ (function (HookMode) {
9
+ HookMode[HookMode["PreHooks"] = 0] = "PreHooks";
10
+ HookMode[HookMode["PostHooks"] = 1] = "PostHooks";
11
+ })(HookMode || (HookMode = {}));
12
+ export var PlaceholderResolutionErrorReason;
13
+ (function (PlaceholderResolutionErrorReason) {
14
+ PlaceholderResolutionErrorReason[PlaceholderResolutionErrorReason["MissingTokenOrAddress"] = 0] = "MissingTokenOrAddress";
15
+ PlaceholderResolutionErrorReason[PlaceholderResolutionErrorReason["NegativeAmount"] = 1] = "NegativeAmount";
16
+ PlaceholderResolutionErrorReason[PlaceholderResolutionErrorReason["Overflow"] = 2] = "Overflow";
17
+ PlaceholderResolutionErrorReason[PlaceholderResolutionErrorReason["InvalidByteCount"] = 3] = "InvalidByteCount";
18
+ PlaceholderResolutionErrorReason[PlaceholderResolutionErrorReason["InvalidAdditionalAmount"] = 4] = "InvalidAdditionalAmount";
19
+ PlaceholderResolutionErrorReason[PlaceholderResolutionErrorReason["NoMatchingTradeOrAdditional"] = 5] = "NoMatchingTradeOrAdditional";
20
+ })(PlaceholderResolutionErrorReason || (PlaceholderResolutionErrorReason = {}));
21
+ // Encodes a non-negative integer as a zero-padded hex string (no "0x" prefix),
22
+ // fitting exactly `byteCount` bytes, using the chain engine's endianness.
23
+ // Solana: little-endian. EVM/Tron: big-endian.
24
+ // `byteCount` must be an integer in
25
+ // [MIN_PLACEHOLDER_BYTE_COUNT, MAX_PLACEHOLDER_BYTE_COUNT].
26
+ export function encodePlaceholderAmount(amount, byteCount, engine) {
27
+ if (!isValidByteCount(byteCount)) {
28
+ return { ok: false, reason: PlaceholderResolutionErrorReason.InvalidByteCount };
29
+ }
30
+ if (amount < 0n) {
31
+ return { ok: false, reason: PlaceholderResolutionErrorReason.NegativeAmount };
32
+ }
33
+ const maxValue = (1n << BigInt(byteCount * 8)) - 1n;
34
+ if (amount > maxValue) {
35
+ return { ok: false, reason: PlaceholderResolutionErrorReason.Overflow };
36
+ }
37
+ if (engine === ChainEngine.Solana) { // Use little-endian for Solana
38
+ const bytes = [];
39
+ let value = amount;
40
+ for (let i = 0; i < byteCount; i++) {
41
+ bytes.push((value & 0xffn).toString(16).padStart(2, "0"));
42
+ value >>= 8n;
43
+ }
44
+ return { ok: true, hex: bytes.join("") };
45
+ }
46
+ // Use big-endian (EVM/Tron): simple hex conversion with left-padding.
47
+ return { ok: true, hex: amount.toString(16).padStart(byteCount * 2, "0") };
48
+ }
49
+ function isValidByteCount(byteCount) {
50
+ return Number.isInteger(byteCount)
51
+ && byteCount >= MIN_PLACEHOLDER_BYTE_COUNT
52
+ && byteCount <= MAX_PLACEHOLDER_BYTE_COUNT;
53
+ }
54
+ // Sums the trade amount matching the placeholder's (chainId, tokenAddress, address).
55
+ // preHooks: sums trade.srcChainTokenIn.amount across trades where
56
+ // trade.srcChainTokenIn.{chainId,address} and trade.srcChainAuthorityAddress match.
57
+ // postHooks: sums trade.dstChainTokenOut.amount across trades where
58
+ // trade.dstChainTokenOut.{chainId,address} and trade.dstChainTokenOutRecipient match.
59
+ // In quote mode authority/recipient is undefined — such trades are skipped.
60
+ export function computeCumulativeTradeAmount(trades, mode, chainId, tokenAddress, address) {
61
+ let sum = 0n;
62
+ let matchCount = 0;
63
+ for (const trade of trades) {
64
+ const tradeChainId = mode === HookMode.PreHooks
65
+ ? trade.srcChainTokenIn.chainId
66
+ : trade.dstChainTokenOut.chainId;
67
+ if (tradeChainId !== chainId)
68
+ continue;
69
+ const tradeAuthority = mode === HookMode.PreHooks
70
+ ? trade.srcChainAuthorityAddress
71
+ : trade.dstChainTokenOutRecipient;
72
+ if (tradeAuthority === undefined)
73
+ continue;
74
+ const tradeToken = mode === HookMode.PreHooks
75
+ ? trade.srcChainTokenIn.address
76
+ : trade.dstChainTokenOut.address;
77
+ if (!addressEquals(chainId, tradeToken, tokenAddress))
78
+ continue;
79
+ if (!addressEquals(chainId, tradeAuthority, address))
80
+ continue;
81
+ const amount = mode === HookMode.PreHooks
82
+ ? trade.srcChainTokenIn.amount
83
+ : trade.dstChainTokenOut.amount;
84
+ sum += BigInt(amount);
85
+ matchCount++;
86
+ }
87
+ return { cumulative: sum, matchCount };
88
+ }
89
+ // Applies eager-placeholder substitution to a hex string (calldata or value).
90
+ // Markers: `{name}` or `{name.N}` (N = byte count).
91
+ // Deferred placeholders are not touched — their markers remain in the output.
92
+ // If any eager placeholder cannot be resolved, its marker is left intact and the
93
+ // error is collected into `errors`; callers decide how to report it.
94
+ export function resolveEagerPlaceholders(data, hookChainId, placeholders, trades, mode) {
95
+ const engine = getChainEngine(hookChainId);
96
+ const defaultByteCount = engine === ChainEngine.Solana
97
+ ? SOLANA_DEFAULT_PLACEHOLDER_BYTE_COUNT
98
+ : EVM_DEFAULT_PLACEHOLDER_BYTE_COUNT;
99
+ let result = data;
100
+ const errors = [];
101
+ for (const placeholder of placeholders) {
102
+ if (placeholder.type === PlaceholderType.Deferred)
103
+ continue;
104
+ // Eager placeholder — type is either explicitly 'eager' or undefined (default).
105
+ if (placeholder.tokenAddress === undefined
106
+ || placeholder.address === undefined) {
107
+ // Zod guards this at the schema level; defensive branch for callers
108
+ // that bypass structural validation.
109
+ errors.push({
110
+ nameVariable: placeholder.nameVariable,
111
+ reason: PlaceholderResolutionErrorReason.MissingTokenOrAddress,
112
+ });
113
+ continue;
114
+ }
115
+ let additional = 0n;
116
+ if (placeholder.additionalAmount !== undefined) {
117
+ try {
118
+ additional = BigInt(placeholder.additionalAmount);
119
+ }
120
+ catch (error) {
121
+ errors.push({
122
+ nameVariable: placeholder.nameVariable,
123
+ reason: PlaceholderResolutionErrorReason.InvalidAdditionalAmount,
124
+ details: error,
125
+ });
126
+ continue;
127
+ }
128
+ }
129
+ const { cumulative, matchCount } = computeCumulativeTradeAmount(trades, mode, hookChainId, placeholder.tokenAddress, placeholder.address);
130
+ const expectedAmount = cumulative + additional;
131
+ const nameEscaped = escapeRegex(placeholder.nameVariable);
132
+ const markerRegex = new RegExp(`\\{${nameEscaped}(?:\\.(\\d+))?\\}`, "g");
133
+ // MEDIUM: when no trade matches and no `additionalAmount` is supplied,
134
+ // the API rejects the request. Here we are mirroring this logic.
135
+ if (matchCount === 0
136
+ && placeholder.additionalAmount === undefined
137
+ && markerRegex.test(result)) {
138
+ errors.push({
139
+ nameVariable: placeholder.nameVariable,
140
+ reason: PlaceholderResolutionErrorReason.NoMatchingTradeOrAdditional,
141
+ });
142
+ // Reset RegExp.lastIndex before the `replace` below.
143
+ markerRegex.lastIndex = 0;
144
+ // Skip substitution — leave marker in `result` so calldata comparison
145
+ // surfaces any mutated value as a separate violation.
146
+ continue;
147
+ }
148
+ result = result.replace(markerRegex, (match, byteCountStr) => {
149
+ const byteCount = byteCountStr
150
+ ? parseInt(byteCountStr, 10)
151
+ : defaultByteCount;
152
+ const encoded = encodePlaceholderAmount(expectedAmount, byteCount, engine);
153
+ if (!encoded.ok) {
154
+ errors.push({
155
+ nameVariable: placeholder.nameVariable,
156
+ reason: encoded.reason,
157
+ });
158
+ return match;
159
+ }
160
+ return encoded.hex;
161
+ });
162
+ }
163
+ return { resolved: result, errors };
164
+ }
165
+ function escapeRegex(s) {
166
+ return s.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
167
+ }
168
+ //# sourceMappingURL=placeholder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"placeholder.js","sourceRoot":"","sources":["../../../src/helpers/placeholder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ export function setsEqual(a, b) {
2
+ if (a.size !== b.size)
3
+ return false;
4
+ for (const item of a) {
5
+ if (!b.has(item))
6
+ return false;
7
+ }
8
+ return true;
9
+ }
10
+ //# sourceMappingURL=sets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sets.js","sourceRoot":"","sources":["../../../src/helpers/sets.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,SAAS,CAAI,CAAiB,EAAE,CAAiB;IAC7D,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IAEpC,KAAK,MAAM,IAAI,IAAI,CAAC,EAAE,CAAC;QACnB,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,OAAO,KAAK,CAAC;IACnC,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC"}
@@ -20,18 +20,40 @@ export var ApprovalMode;
20
20
  ApprovalMode["Approve"] = "approve";
21
21
  ApprovalMode["Permit"] = "permit";
22
22
  })(ApprovalMode || (ApprovalMode = {}));
23
+ export var BundleHookType;
24
+ (function (BundleHookType) {
25
+ BundleHookType["Delegated"] = "delegated";
26
+ BundleHookType["Direct"] = "direct";
27
+ })(BundleHookType || (BundleHookType = {}));
28
+ export var PlaceholderType;
29
+ (function (PlaceholderType) {
30
+ PlaceholderType["Eager"] = "eager";
31
+ PlaceholderType["Deferred"] = "deferred";
32
+ })(PlaceholderType || (PlaceholderType = {}));
23
33
  export var SpecialAmount;
24
34
  (function (SpecialAmount) {
25
35
  SpecialAmount["Max"] = "max";
26
36
  SpecialAmount["Auto"] = "auto";
27
37
  })(SpecialAmount || (SpecialAmount = {}));
38
+ export var SpecialChainId;
39
+ (function (SpecialChainId) {
40
+ SpecialChainId["Any"] = "any";
41
+ })(SpecialChainId || (SpecialChainId = {}));
42
+ export var DlnHookType;
43
+ (function (DlnHookType) {
44
+ DlnHookType["SolanaSerializedInstructions"] = "solana_serialized_instructions";
45
+ DlnHookType["EvmTransactionCall"] = "evm_transaction_call";
46
+ DlnHookType["EvmHookV1"] = "evm_hook_data_v1";
47
+ })(DlnHookType || (DlnHookType = {}));
28
48
  // --- EVM Action enums ---
29
49
  export var EvmActionKind;
30
50
  (function (EvmActionKind) {
31
51
  EvmActionKind["Transaction"] = "Transaction";
32
52
  EvmActionKind["Sign7702Authorization"] = "Sign7702Authorization";
33
53
  EvmActionKind["Sign712"] = "Sign712";
34
- EvmActionKind["Sign712MetaMask"] = "Sign712MetaMask";
54
+ EvmActionKind["Sign712MetaMaskCaveats"] = "Sign712MetaMask";
55
+ EvmActionKind["Sign712MetaMaskCaveatsWithPlaceholders"] = "Sign712MetaMaskWithPlaceholders";
56
+ EvmActionKind["ProvidePlaceholders"] = "ProvidePlaceholders";
35
57
  EvmActionKind["Permit"] = "Permit";
36
58
  EvmActionKind["Permit2"] = "Permit2";
37
59
  })(EvmActionKind || (EvmActionKind = {}));
@@ -71,6 +93,14 @@ export var CostItemType;
71
93
  CostItemType["PARTNER_COST"] = "PARTNER_COST";
72
94
  CostItemType["NETWORK_COST"] = "NETWORK_COST";
73
95
  })(CostItemType || (CostItemType = {}));
96
+ // --- Chain engines ---
97
+ // Categorizes chains by their VM/address-format family.
98
+ export var ChainEngine;
99
+ (function (ChainEngine) {
100
+ ChainEngine[ChainEngine["EVM"] = 0] = "EVM";
101
+ ChainEngine[ChainEngine["Tron"] = 1] = "Tron";
102
+ ChainEngine[ChainEngine["Solana"] = 2] = "Solana";
103
+ })(ChainEngine || (ChainEngine = {}));
74
104
  // --- Chain IDs (real, after resolving from subscriptionId) ---
75
105
  export var ChainId;
76
106
  (function (ChainId) {
@@ -1 +1 @@
1
- {"version":3,"file":"enums.js","sourceRoot":"","sources":["../../../src/types/enums.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"enums.js","sourceRoot":"","sources":["../../../src/types/enums.ts"],"names":[],"mappings":"AAAA,mBAAmB;AAEnB,MAAM,CAAN,IAAY,OAGX;AAHD,WAAY,OAAO;IACf,kCAAuB,CAAA;IACvB,0BAAe,CAAA;AACnB,CAAC,EAHW,OAAO,KAAP,OAAO,QAGlB;AAED,wBAAwB;AAExB,MAAM,CAAN,IAAY,gBAEX;AAFD,WAAY,gBAAgB;IACxB,qCAAiB,CAAA;AACrB,CAAC,EAFW,gBAAgB,KAAhB,gBAAgB,QAE3B;AAED,MAAM,CAAN,IAAY,iBAIX;AAJD,WAAY,iBAAiB;IACzB,4CAAuB,CAAA;IACvB,8DAAyC,CAAA;IACzC,kCAAa,CAAA;AACjB,CAAC,EAJW,iBAAiB,KAAjB,iBAAiB,QAI5B;AAED,MAAM,CAAN,IAAY,YAGX;AAHD,WAAY,YAAY;IACpB,mCAAmB,CAAA;IACnB,iCAAiB,CAAA;AACrB,CAAC,EAHW,YAAY,KAAZ,YAAY,QAGvB;AAED,MAAM,CAAN,IAAY,cAGX;AAHD,WAAY,cAAc;IACtB,yCAAuB,CAAA;IACvB,mCAAiB,CAAA;AACrB,CAAC,EAHW,cAAc,KAAd,cAAc,QAGzB;AAED,MAAM,CAAN,IAAY,eAGX;AAHD,WAAY,eAAe;IACvB,kCAAe,CAAA;IACf,wCAAqB,CAAA;AACzB,CAAC,EAHW,eAAe,KAAf,eAAe,QAG1B;AAED,MAAM,CAAN,IAAY,aAGX;AAHD,WAAY,aAAa;IACrB,4BAAW,CAAA;IACX,8BAAa,CAAA;AACjB,CAAC,EAHW,aAAa,KAAb,aAAa,QAGxB;AAED,MAAM,CAAN,IAAY,cAEX;AAFD,WAAY,cAAc;IACtB,6BAAW,CAAA;AACf,CAAC,EAFW,cAAc,KAAd,cAAc,QAEzB;AAED,MAAM,CAAN,IAAY,WAIX;AAJD,WAAY,WAAW;IACnB,8EAA+D,CAAA;IAC/D,0DAA2C,CAAA;IAC3C,6CAA8B,CAAA;AAClC,CAAC,EAJW,WAAW,KAAX,WAAW,QAItB;AAED,2BAA2B;AAE3B,MAAM,CAAN,IAAY,aASX;AATD,WAAY,aAAa;IACrB,4CAA2B,CAAA;IAC3B,gEAA+C,CAAA;IAC/C,oCAAmB,CAAA;IACnB,2DAA0C,CAAA;IAC1C,2FAA0E,CAAA;IAC1E,4DAA2C,CAAA;IAC3C,kCAAiB,CAAA;IACjB,oCAAmB,CAAA;AACvB,CAAC,EATW,aAAa,KAAb,aAAa,QASxB;AAED,MAAM,CAAN,IAAY,kBASX;AATD,WAAY,kBAAkB;IAC1B,2CAAqB,CAAA;IACrB,uCAAiB,CAAA;IACjB,uCAAiB,CAAA;IACjB,yCAAmB,CAAA;IACnB,uCAAiB,CAAA;IACjB,mCAAa,CAAA;IACb,mCAAa,CAAA;IACb,yDAAmC,CAAA;AACvC,CAAC,EATW,kBAAkB,KAAlB,kBAAkB,QAS7B;AAED,8BAA8B;AAE9B,MAAM,CAAN,IAAY,gBAIX;AAJD,WAAY,gBAAgB;IACxB,+CAA2B,CAAA;IAC3B,iCAAa,CAAA;IACb,uDAAmC,CAAA;AACvC,CAAC,EAJW,gBAAgB,KAAhB,gBAAgB,QAI3B;AAED,MAAM,CAAN,IAAY,qBAQX;AARD,WAAY,qBAAqB;IAC7B,0CAAiB,CAAA;IACjB,sDAA6B,CAAA;IAC7B,sCAAa,CAAA;IACb,gDAAuB,CAAA;IACvB,0CAAiB,CAAA;IACjB,sCAAa,CAAA;IACb,4DAAmC,CAAA;AACvC,CAAC,EARW,qBAAqB,KAArB,qBAAqB,QAQhC;AAED,yBAAyB;AAEzB,MAAM,CAAN,IAAY,YAKX;AALD,WAAY,YAAY;IACpB,+CAA+B,CAAA;IAC/B,2CAA2B,CAAA;IAC3B,6CAA6B,CAAA;IAC7B,6CAA6B,CAAA;AACjC,CAAC,EALW,YAAY,KAAZ,YAAY,QAKvB;AAED,wBAAwB;AAExB,wDAAwD;AACxD,MAAM,CAAN,IAAY,WAIX;AAJD,WAAY,WAAW;IACnB,2CAAG,CAAA;IACH,6CAAI,CAAA;IACJ,iDAAM,CAAA;AACV,CAAC,EAJW,WAAW,KAAX,WAAW,QAItB;AAED,gEAAgE;AAEhE,MAAM,CAAN,IAAY,OA6BX;AA7BD,WAAY,OAAO;IACf,yEAAyE;IACzE,+CAA+C;IAC/C,6CAAY,CAAA;IAEZ,6CAAY,CAAA;IACZ,8CAAa,CAAA;IACb,0CAAW,CAAA;IACX,oCAAQ,CAAA;IACR,2CAAY,CAAA;IACZ,6CAAa,CAAA;IACb,yCAAW,CAAA;IACX,yCAAW,CAAA;IACX,uCAAU,CAAA;IACV,+CAAc,CAAA;IACd,0CAAY,CAAA;IACZ,sCAAU,CAAA;IACV,0CAAY,CAAA;IACZ,kDAAgB,CAAA;IAChB,8CAAc,CAAA;IACd,4CAAa,CAAA;IACb,wCAAW,CAAA;IACX,2CAAa,CAAA;IACb,iDAAgB,CAAA;IAChB,mDAAiB,CAAA;IACjB,uCAAW,CAAA;IACX,6CAAgB,CAAA;IAChB,+CAAgB,CAAA;IAChB,6CAAgB,CAAA;AACpB,CAAC,EA7BW,OAAO,KAAP,OAAO,QA6BlB;AAED,gFAAgF;AAChF,mEAAmE;AAEnE,MAAM,CAAN,IAAY,cA0BX;AA1BD,WAAY,cAAc;IACtB,2DAA2B,CAAA;IAC3B,4DAA2B,CAAA;IAC3B,kDAAiB,CAAA;IACjB,2DAAyB,CAAA;IACzB,+DAA2B,CAAA;IAC3B,iEAA6B,CAAA;IAC7B,yDAAqB,CAAA;IACrB,sDAAmB,CAAA;IACnB,6DAAuB,CAAA;IAEvB,2DAAgB,CAAA;IAChB,+DAAkB,CAAA;IAClB,6DAAiB,CAAA;IACjB,2DAAgB,CAAA;IAChB,6DAAiB,CAAA;IACjB,6DAAiB,CAAA;IACjB,+DAAkB,CAAA;IAClB,yDAAe,CAAA;IACf,mEAAoB,CAAA;IACpB,+DAAkB,CAAA;IAClB,2DAAgB,CAAA;IAChB,yDAAe,CAAA;IACf,qEAAqB,CAAA;IACrB,6DAAiB,CAAA;IACjB,iEAAmB,CAAA;AACvB,CAAC,EA1BW,cAAc,KAAd,cAAc,QA0BzB"}
@@ -1,15 +1,36 @@
1
1
  import { z } from "zod";
2
- import { TradingAlgorithm, ApproveAmountFlag, ApprovalMode } from "./enums.js";
2
+ import { TradingAlgorithm, ApproveAmountFlag, ApprovalMode, BundleHookType, PlaceholderType, } from "./enums.js";
3
3
  export const RequestGasCompensationInfoSchema = z.object({
4
4
  tokenAddress: z.string(),
5
5
  chainId: z.number(),
6
6
  sender: z.string(),
7
7
  });
8
+ // tokenAddress and address are required only for eager placeholders.
9
+ // Deferred placeholders are filled at submit time, so trade-group fields are not needed.
8
10
  export const RequestPlaceholderSchema = z.object({
9
11
  nameVariable: z.string(),
10
- tokenAddress: z.string(),
11
- address: z.string(),
12
+ tokenAddress: z.string().optional(),
13
+ address: z.string().optional(),
12
14
  additionalAmount: z.string().optional(),
15
+ type: z.enum(PlaceholderType).optional(),
16
+ }).superRefine((placeholder, ctx) => {
17
+ const isEager = placeholder.type === undefined || placeholder.type === PlaceholderType.Eager;
18
+ if (!isEager)
19
+ return;
20
+ if (placeholder.tokenAddress === undefined) {
21
+ ctx.addIssue({
22
+ code: "custom",
23
+ message: "eager placeholder requires tokenAddress",
24
+ path: ["tokenAddress"],
25
+ });
26
+ }
27
+ if (placeholder.address === undefined) {
28
+ ctx.addIssue({
29
+ code: "custom",
30
+ message: "eager placeholder requires address",
31
+ path: ["address"],
32
+ });
33
+ }
13
34
  });
14
35
  export const RequestHookV2Schema = z.object({
15
36
  chainId: z.number(),
@@ -20,11 +41,20 @@ export const RequestHookV2Schema = z.object({
20
41
  isAtomic: z.boolean(),
21
42
  placeHolders: z.array(RequestPlaceholderSchema),
22
43
  gasCompensationInfo: RequestGasCompensationInfoSchema.optional(),
44
+ type: z.enum(BundleHookType).optional(),
45
+ gasLimit: z.string().optional(),
23
46
  });
24
47
  export const RequestCostTokenSchema = z.object({
25
48
  chainId: z.number(),
26
49
  tokenAddress: z.string(),
27
50
  });
51
+ // `chainId` fields below use z.number() rather than a chain enum on purpose:
52
+ // the public API contract narrows accepted chains to a smaller subset than
53
+ // the SDK knows about, but the SDK uses a wider chain set elsewhere (e.g.
54
+ // downstream chain-engine resolution). Validating chain support is delegated
55
+ // to those downstream checks rather than encoded here. Same applies to `chainId`
56
+ // in RequestCostTokenSchema, RequestHookV2Schema, and
57
+ // RequestGasCompensationInfoSchema.
28
58
  export const RequestTradeSchema = z.object({
29
59
  srcChainId: z.number(),
30
60
  srcChainTokenIn: z.string(),
@@ -40,8 +70,11 @@ export const RequestTradeSchema = z.object({
40
70
  dlnHook: z.string().optional(),
41
71
  prependOperatingExpenses: z.boolean().optional(),
42
72
  ptp: z.boolean().optional(),
43
- metadata: z.string().optional(),
73
+ dlnMetadata: z.string().optional(),
44
74
  srcAllowedCancelBeneficiary: z.string().optional(),
75
+ // Field is intentionally absent from the public API schema but is accepted
76
+ // by the server and round-trips into the response intent. Security-critical
77
+ // for execution-mode validation.
45
78
  srcAllowedSender: z.string().optional(),
46
79
  });
47
80
  export const BundleCreationRequestSchema = z.object({
@@ -1 +1 @@
1
- {"version":3,"file":"request.js","sourceRoot":"","sources":["../../../src/types/request.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"request.js","sourceRoot":"","sources":["../../../src/types/request.ts"],"names":[],"mappings":"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"}