@debridge-finance/borderless-validation-sdk 0.0.0-dev-4a73f49 → 0.0.1

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/dist/cjs/helpers/address.js +18 -53
  2. package/dist/cjs/helpers/address.js.map +1 -1
  3. package/dist/cjs/helpers/constants.js +6 -0
  4. package/dist/cjs/helpers/constants.js.map +1 -0
  5. package/dist/cjs/helpers/evm-action.js +3 -3
  6. package/dist/cjs/helpers/evm-action.js.map +1 -1
  7. package/dist/cjs/helpers/evm-intent-id.js +13 -27
  8. package/dist/cjs/helpers/evm-intent-id.js.map +1 -1
  9. package/dist/cjs/helpers/evm-trade-amounts.js +1 -36
  10. package/dist/cjs/helpers/evm-trade-amounts.js.map +1 -1
  11. package/dist/cjs/types/enums.js +2 -32
  12. package/dist/cjs/types/enums.js.map +1 -1
  13. package/dist/cjs/types/request.js +2 -25
  14. package/dist/cjs/types/request.js.map +1 -1
  15. package/dist/cjs/types/response.js +5 -125
  16. package/dist/cjs/types/response.js.map +1 -1
  17. package/dist/cjs/types/validation.js +10 -81
  18. package/dist/cjs/types/validation.js.map +1 -1
  19. package/dist/cjs/validations/evm-caveats.js +14 -4
  20. package/dist/cjs/validations/evm-caveats.js.map +1 -1
  21. package/dist/cjs/validations/evm-op-budget.js +10 -13
  22. package/dist/cjs/validations/evm-op-budget.js.map +1 -1
  23. package/dist/cjs/validations/evm-op-gas-compensation.js +152 -0
  24. package/dist/cjs/validations/evm-op-gas-compensation.js.map +1 -0
  25. package/dist/cjs/validations/evm-op-hook.js +3 -410
  26. package/dist/cjs/validations/evm-op-hook.js.map +1 -1
  27. package/dist/cjs/validations/evm-op-wrap.js +7 -10
  28. package/dist/cjs/validations/evm-op-wrap.js.map +1 -1
  29. package/dist/cjs/validations/evm-required-actions.js +9 -7
  30. package/dist/cjs/validations/evm-required-actions.js.map +1 -1
  31. package/dist/cjs/validations/evm-sign712-metamask.js +94 -17
  32. package/dist/cjs/validations/evm-sign712-metamask.js.map +1 -1
  33. package/dist/cjs/validations/evm-sign7702.js +22 -34
  34. package/dist/cjs/validations/evm-sign7702.js.map +1 -1
  35. package/dist/cjs/validations/hooks-common.js +37 -252
  36. package/dist/cjs/validations/hooks-common.js.map +1 -1
  37. package/dist/cjs/validations/required-actions.js +7 -7
  38. package/dist/cjs/validations/required-actions.js.map +1 -1
  39. package/dist/cjs/validations/solana-hook.js +22 -33
  40. package/dist/cjs/validations/solana-hook.js.map +1 -1
  41. package/dist/cjs/validations/solana-op-budget.js +18 -56
  42. package/dist/cjs/validations/solana-op-budget.js.map +1 -1
  43. package/dist/cjs/validations/solana-op-wrap.js +13 -46
  44. package/dist/cjs/validations/solana-op-wrap.js.map +1 -1
  45. package/dist/cjs/validations/solana-required-actions.js +3 -3
  46. package/dist/cjs/validations/solana-required-actions.js.map +1 -1
  47. package/dist/cjs/validations/solana-transaction.js +5 -5
  48. package/dist/cjs/validations/solana-transaction.js.map +1 -1
  49. package/dist/cjs/validations/trade-grouping.js +1 -139
  50. package/dist/cjs/validations/trade-grouping.js.map +1 -1
  51. package/dist/cjs/validations/trades.js +40 -162
  52. package/dist/cjs/validations/trades.js.map +1 -1
  53. package/dist/cjs/validator.js +16 -11
  54. package/dist/cjs/validator.js.map +1 -1
  55. package/dist/cjs/whitelists/environment-config.js +28 -47
  56. package/dist/cjs/whitelists/environment-config.js.map +1 -1
  57. package/dist/cjs/whitelists/evm/caveat-enforcers.js +5 -21
  58. package/dist/cjs/whitelists/evm/caveat-enforcers.js.map +1 -1
  59. package/dist/cjs/whitelists/evm/delegation-manager.js +2 -7
  60. package/dist/cjs/whitelists/evm/delegation-manager.js.map +1 -1
  61. package/dist/cjs/whitelists/evm/eip7702-delegation.js +2 -7
  62. package/dist/cjs/whitelists/evm/eip7702-delegation.js.map +1 -1
  63. package/dist/cjs/whitelists/evm/index.js +1 -14
  64. package/dist/cjs/whitelists/evm/index.js.map +1 -1
  65. package/dist/cjs/whitelists/evm/permit2.js +12 -16
  66. package/dist/cjs/whitelists/evm/permit2.js.map +1 -1
  67. package/dist/cjs/whitelists/evm/weth.js +5 -16
  68. package/dist/cjs/whitelists/evm/weth.js.map +1 -1
  69. package/dist/cjs/whitelists/solana/intent-signature.js +1 -0
  70. package/dist/cjs/whitelists/solana/intent-signature.js.map +1 -1
  71. package/dist/cjs/whitelists/subscription-to-chain-id.js +0 -10
  72. package/dist/cjs/whitelists/subscription-to-chain-id.js.map +1 -1
  73. package/dist/cjs/whitelists/types.js +3 -13
  74. package/dist/cjs/whitelists/types.js.map +1 -1
  75. package/dist/esm/helpers/address.js +17 -48
  76. package/dist/esm/helpers/address.js.map +1 -1
  77. package/dist/esm/helpers/constants.js +3 -0
  78. package/dist/esm/helpers/constants.js.map +1 -0
  79. package/dist/esm/helpers/evm-action.js +3 -3
  80. package/dist/esm/helpers/evm-action.js.map +1 -1
  81. package/dist/esm/helpers/evm-intent-id.js +13 -27
  82. package/dist/esm/helpers/evm-intent-id.js.map +1 -1
  83. package/dist/esm/helpers/evm-trade-amounts.js +1 -36
  84. package/dist/esm/helpers/evm-trade-amounts.js.map +1 -1
  85. package/dist/esm/types/enums.js +1 -31
  86. package/dist/esm/types/enums.js.map +1 -1
  87. package/dist/esm/types/request.js +3 -26
  88. package/dist/esm/types/request.js.map +1 -1
  89. package/dist/esm/types/response.js +4 -124
  90. package/dist/esm/types/response.js.map +1 -1
  91. package/dist/esm/types/validation.js +10 -81
  92. package/dist/esm/types/validation.js.map +1 -1
  93. package/dist/esm/validations/evm-caveats.js +14 -4
  94. package/dist/esm/validations/evm-caveats.js.map +1 -1
  95. package/dist/esm/validations/evm-op-budget.js +10 -13
  96. package/dist/esm/validations/evm-op-budget.js.map +1 -1
  97. package/dist/esm/validations/evm-op-gas-compensation.js +149 -0
  98. package/dist/esm/validations/evm-op-gas-compensation.js.map +1 -0
  99. package/dist/esm/validations/evm-op-hook.js +2 -409
  100. package/dist/esm/validations/evm-op-hook.js.map +1 -1
  101. package/dist/esm/validations/evm-op-wrap.js +7 -10
  102. package/dist/esm/validations/evm-op-wrap.js.map +1 -1
  103. package/dist/esm/validations/evm-required-actions.js +9 -7
  104. package/dist/esm/validations/evm-required-actions.js.map +1 -1
  105. package/dist/esm/validations/evm-sign712-metamask.js +94 -17
  106. package/dist/esm/validations/evm-sign712-metamask.js.map +1 -1
  107. package/dist/esm/validations/evm-sign7702.js +22 -33
  108. package/dist/esm/validations/evm-sign7702.js.map +1 -1
  109. package/dist/esm/validations/hooks-common.js +38 -251
  110. package/dist/esm/validations/hooks-common.js.map +1 -1
  111. package/dist/esm/validations/required-actions.js +7 -7
  112. package/dist/esm/validations/required-actions.js.map +1 -1
  113. package/dist/esm/validations/solana-hook.js +24 -35
  114. package/dist/esm/validations/solana-hook.js.map +1 -1
  115. package/dist/esm/validations/solana-op-budget.js +18 -56
  116. package/dist/esm/validations/solana-op-budget.js.map +1 -1
  117. package/dist/esm/validations/solana-op-wrap.js +14 -47
  118. package/dist/esm/validations/solana-op-wrap.js.map +1 -1
  119. package/dist/esm/validations/solana-required-actions.js +3 -3
  120. package/dist/esm/validations/solana-required-actions.js.map +1 -1
  121. package/dist/esm/validations/solana-transaction.js +7 -7
  122. package/dist/esm/validations/solana-transaction.js.map +1 -1
  123. package/dist/esm/validations/trade-grouping.js +1 -139
  124. package/dist/esm/validations/trade-grouping.js.map +1 -1
  125. package/dist/esm/validations/trades.js +41 -163
  126. package/dist/esm/validations/trades.js.map +1 -1
  127. package/dist/esm/validator.js +16 -11
  128. package/dist/esm/validator.js.map +1 -1
  129. package/dist/esm/whitelists/environment-config.js +28 -47
  130. package/dist/esm/whitelists/environment-config.js.map +1 -1
  131. package/dist/esm/whitelists/evm/caveat-enforcers.js +4 -20
  132. package/dist/esm/whitelists/evm/caveat-enforcers.js.map +1 -1
  133. package/dist/esm/whitelists/evm/delegation-manager.js +1 -6
  134. package/dist/esm/whitelists/evm/delegation-manager.js.map +1 -1
  135. package/dist/esm/whitelists/evm/eip7702-delegation.js +1 -6
  136. package/dist/esm/whitelists/evm/eip7702-delegation.js.map +1 -1
  137. package/dist/esm/whitelists/evm/index.js +4 -4
  138. package/dist/esm/whitelists/evm/index.js.map +1 -1
  139. package/dist/esm/whitelists/evm/permit2.js +5 -9
  140. package/dist/esm/whitelists/evm/permit2.js.map +1 -1
  141. package/dist/esm/whitelists/evm/weth.js +5 -16
  142. package/dist/esm/whitelists/evm/weth.js.map +1 -1
  143. package/dist/esm/whitelists/solana/intent-signature.js +1 -0
  144. package/dist/esm/whitelists/solana/intent-signature.js.map +1 -1
  145. package/dist/esm/whitelists/subscription-to-chain-id.js +0 -9
  146. package/dist/esm/whitelists/subscription-to-chain-id.js.map +1 -1
  147. package/dist/esm/whitelists/types.js +5 -14
  148. package/dist/esm/whitelists/types.js.map +1 -1
  149. package/dist/types/helpers/address.d.ts +7 -7
  150. package/dist/types/helpers/address.d.ts.map +1 -1
  151. package/dist/types/helpers/constants.d.ts +2 -0
  152. package/dist/types/helpers/constants.d.ts.map +1 -0
  153. package/dist/types/helpers/evm-intent-id.d.ts.map +1 -1
  154. package/dist/types/helpers/evm-trade-amounts.d.ts +2 -2
  155. package/dist/types/helpers/evm-trade-amounts.d.ts.map +1 -1
  156. package/dist/types/types/enums.d.ts +1 -24
  157. package/dist/types/types/enums.d.ts.map +1 -1
  158. package/dist/types/types/request.d.ts +9 -19
  159. package/dist/types/types/request.d.ts.map +1 -1
  160. package/dist/types/types/response.d.ts +17 -1015
  161. package/dist/types/types/response.d.ts.map +1 -1
  162. package/dist/types/types/validation.d.ts +11 -73
  163. package/dist/types/types/validation.d.ts.map +1 -1
  164. package/dist/types/validations/evm-caveats.d.ts.map +1 -1
  165. package/dist/types/validations/evm-op-budget.d.ts +2 -2
  166. package/dist/types/validations/evm-op-budget.d.ts.map +1 -1
  167. package/dist/types/validations/evm-op-gas-compensation.d.ts +3 -0
  168. package/dist/types/validations/evm-op-gas-compensation.d.ts.map +1 -0
  169. package/dist/types/validations/evm-op-hook.d.ts +2 -4
  170. package/dist/types/validations/evm-op-hook.d.ts.map +1 -1
  171. package/dist/types/validations/evm-op-wrap.d.ts +2 -2
  172. package/dist/types/validations/evm-op-wrap.d.ts.map +1 -1
  173. package/dist/types/validations/evm-required-actions.d.ts +2 -2
  174. package/dist/types/validations/evm-required-actions.d.ts.map +1 -1
  175. package/dist/types/validations/evm-sign712-metamask.d.ts.map +1 -1
  176. package/dist/types/validations/evm-sign7702.d.ts +1 -2
  177. package/dist/types/validations/evm-sign7702.d.ts.map +1 -1
  178. package/dist/types/validations/hooks-common.d.ts +0 -1
  179. package/dist/types/validations/hooks-common.d.ts.map +1 -1
  180. package/dist/types/validations/required-actions.d.ts +1 -2
  181. package/dist/types/validations/required-actions.d.ts.map +1 -1
  182. package/dist/types/validations/solana-hook.d.ts +2 -4
  183. package/dist/types/validations/solana-hook.d.ts.map +1 -1
  184. package/dist/types/validations/solana-op-budget.d.ts +2 -2
  185. package/dist/types/validations/solana-op-budget.d.ts.map +1 -1
  186. package/dist/types/validations/solana-op-wrap.d.ts +2 -2
  187. package/dist/types/validations/solana-op-wrap.d.ts.map +1 -1
  188. package/dist/types/validations/solana-required-actions.d.ts +2 -2
  189. package/dist/types/validations/solana-required-actions.d.ts.map +1 -1
  190. package/dist/types/validations/solana-transaction.d.ts +3 -3
  191. package/dist/types/validations/solana-transaction.d.ts.map +1 -1
  192. package/dist/types/validations/trade-grouping.d.ts +2 -6
  193. package/dist/types/validations/trade-grouping.d.ts.map +1 -1
  194. package/dist/types/validations/trades.d.ts.map +1 -1
  195. package/dist/types/validator.d.ts.map +1 -1
  196. package/dist/types/whitelists/environment-config.d.ts.map +1 -1
  197. package/dist/types/whitelists/evm/caveat-enforcers.d.ts +0 -8
  198. package/dist/types/whitelists/evm/caveat-enforcers.d.ts.map +1 -1
  199. package/dist/types/whitelists/evm/delegation-manager.d.ts +0 -2
  200. package/dist/types/whitelists/evm/delegation-manager.d.ts.map +1 -1
  201. package/dist/types/whitelists/evm/eip7702-delegation.d.ts +0 -2
  202. package/dist/types/whitelists/evm/eip7702-delegation.d.ts.map +1 -1
  203. package/dist/types/whitelists/evm/index.d.ts +4 -4
  204. package/dist/types/whitelists/evm/index.d.ts.map +1 -1
  205. package/dist/types/whitelists/evm/permit2.d.ts +0 -1
  206. package/dist/types/whitelists/evm/permit2.d.ts.map +1 -1
  207. package/dist/types/whitelists/evm/weth.d.ts.map +1 -1
  208. package/dist/types/whitelists/solana/intent-signature.d.ts.map +1 -1
  209. package/dist/types/whitelists/subscription-to-chain-id.d.ts +0 -1
  210. package/dist/types/whitelists/subscription-to-chain-id.d.ts.map +1 -1
  211. package/dist/types/whitelists/types.d.ts +1 -1
  212. package/dist/types/whitelists/types.d.ts.map +1 -1
  213. package/package.json +3 -4
  214. package/README.md +0 -164
  215. package/dist/cjs/helpers/evm-dln-hook-pack.js +0 -87
  216. package/dist/cjs/helpers/evm-dln-hook-pack.js.map +0 -1
  217. package/dist/cjs/helpers/evm-gas-compensation-tx.js +0 -102
  218. package/dist/cjs/helpers/evm-gas-compensation-tx.js.map +0 -1
  219. package/dist/cjs/helpers/gas-compensation.js +0 -36
  220. package/dist/cjs/helpers/gas-compensation.js.map +0 -1
  221. package/dist/cjs/helpers/hex.js +0 -24
  222. package/dist/cjs/helpers/hex.js.map +0 -1
  223. package/dist/cjs/helpers/placeholder.js +0 -174
  224. package/dist/cjs/helpers/placeholder.js.map +0 -1
  225. package/dist/cjs/helpers/sets.js +0 -13
  226. package/dist/cjs/helpers/sets.js.map +0 -1
  227. package/dist/cjs/validations/compensation-hook.js +0 -203
  228. package/dist/cjs/validations/compensation-hook.js.map +0 -1
  229. package/dist/cjs/validations/evm-sign712-shared.js +0 -116
  230. package/dist/cjs/validations/evm-sign712-shared.js.map +0 -1
  231. package/dist/cjs/validations/intent-destinations.js +0 -197
  232. package/dist/cjs/validations/intent-destinations.js.map +0 -1
  233. package/dist/cjs/validations/intent-tokens.js +0 -347
  234. package/dist/cjs/validations/intent-tokens.js.map +0 -1
  235. package/dist/cjs/validations/intent.js +0 -288
  236. package/dist/cjs/validations/intent.js.map +0 -1
  237. package/dist/cjs/whitelists/evm/metamask-delegation-chains.js +0 -16
  238. package/dist/cjs/whitelists/evm/metamask-delegation-chains.js.map +0 -1
  239. package/dist/esm/helpers/evm-dln-hook-pack.js +0 -82
  240. package/dist/esm/helpers/evm-dln-hook-pack.js.map +0 -1
  241. package/dist/esm/helpers/evm-gas-compensation-tx.js +0 -99
  242. package/dist/esm/helpers/evm-gas-compensation-tx.js.map +0 -1
  243. package/dist/esm/helpers/gas-compensation.js +0 -33
  244. package/dist/esm/helpers/gas-compensation.js.map +0 -1
  245. package/dist/esm/helpers/hex.js +0 -20
  246. package/dist/esm/helpers/hex.js.map +0 -1
  247. package/dist/esm/helpers/placeholder.js +0 -168
  248. package/dist/esm/helpers/placeholder.js.map +0 -1
  249. package/dist/esm/helpers/sets.js +0 -10
  250. package/dist/esm/helpers/sets.js.map +0 -1
  251. package/dist/esm/validations/compensation-hook.js +0 -200
  252. package/dist/esm/validations/compensation-hook.js.map +0 -1
  253. package/dist/esm/validations/evm-sign712-shared.js +0 -110
  254. package/dist/esm/validations/evm-sign712-shared.js.map +0 -1
  255. package/dist/esm/validations/intent-destinations.js +0 -194
  256. package/dist/esm/validations/intent-destinations.js.map +0 -1
  257. package/dist/esm/validations/intent-tokens.js +0 -344
  258. package/dist/esm/validations/intent-tokens.js.map +0 -1
  259. package/dist/esm/validations/intent.js +0 -285
  260. package/dist/esm/validations/intent.js.map +0 -1
  261. package/dist/esm/whitelists/evm/metamask-delegation-chains.js +0 -13
  262. package/dist/esm/whitelists/evm/metamask-delegation-chains.js.map +0 -1
  263. package/dist/types/helpers/evm-dln-hook-pack.d.ts +0 -19
  264. package/dist/types/helpers/evm-dln-hook-pack.d.ts.map +0 -1
  265. package/dist/types/helpers/evm-gas-compensation-tx.d.ts +0 -13
  266. package/dist/types/helpers/evm-gas-compensation-tx.d.ts.map +0 -1
  267. package/dist/types/helpers/gas-compensation.d.ts +0 -10
  268. package/dist/types/helpers/gas-compensation.d.ts.map +0 -1
  269. package/dist/types/helpers/hex.d.ts +0 -3
  270. package/dist/types/helpers/hex.d.ts.map +0 -1
  271. package/dist/types/helpers/placeholder.d.ts +0 -41
  272. package/dist/types/helpers/placeholder.d.ts.map +0 -1
  273. package/dist/types/helpers/sets.d.ts +0 -2
  274. package/dist/types/helpers/sets.d.ts.map +0 -1
  275. package/dist/types/validations/compensation-hook.d.ts +0 -3
  276. package/dist/types/validations/compensation-hook.d.ts.map +0 -1
  277. package/dist/types/validations/evm-sign712-shared.d.ts +0 -7
  278. package/dist/types/validations/evm-sign712-shared.d.ts.map +0 -1
  279. package/dist/types/validations/intent-destinations.d.ts +0 -4
  280. package/dist/types/validations/intent-destinations.d.ts.map +0 -1
  281. package/dist/types/validations/intent-tokens.d.ts +0 -4
  282. package/dist/types/validations/intent-tokens.d.ts.map +0 -1
  283. package/dist/types/validations/intent.d.ts +0 -5
  284. package/dist/types/validations/intent.d.ts.map +0 -1
  285. package/dist/types/whitelists/evm/metamask-delegation-chains.d.ts +0 -3
  286. package/dist/types/whitelists/evm/metamask-delegation-chains.d.ts.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"intent.js","sourceRoot":"","sources":["../../../src/validations/intent.ts"],"names":[],"mappings":"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"}
@@ -1,16 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.METAMASK_DEFAULT_EVM_CHAINS = void 0;
4
- const enums_1 = require("../../types/enums");
5
- // Chains where MetaMask Delegation Framework uses the "default" set of contract addresses
6
- // (DelegationManager, EIP7702StatelessDeleGatorImpl, caveat enforcers).
7
- // Avalanche has a separate, chain-specific deployment and is handled separately.
8
- exports.METAMASK_DEFAULT_EVM_CHAINS = [
9
- enums_1.ChainId.Ethereum,
10
- enums_1.ChainId.Optimism,
11
- enums_1.ChainId.BNB,
12
- enums_1.ChainId.Polygon,
13
- enums_1.ChainId.Base,
14
- enums_1.ChainId.Arbitrum,
15
- ];
16
- //# sourceMappingURL=metamask-delegation-chains.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"metamask-delegation-chains.js","sourceRoot":"","sources":["../../../../src/whitelists/evm/metamask-delegation-chains.ts"],"names":[],"mappings":";;;AAAA,6CAA4C;AAE5C,0FAA0F;AAC1F,wEAAwE;AACxE,iFAAiF;AACpE,QAAA,2BAA2B,GAAuB;IAC3D,eAAO,CAAC,QAAQ;IAChB,eAAO,CAAC,QAAQ;IAChB,eAAO,CAAC,GAAG;IACX,eAAO,CAAC,OAAO;IACf,eAAO,CAAC,IAAI;IACZ,eAAO,CAAC,QAAQ;CACV,CAAC"}
@@ -1,82 +0,0 @@
1
- import { concatHex, encodeAbiParameters, zeroAddress } from "viem";
2
- import { DlnHookType } from "../types/enums.js";
3
- // Hook envelope: ABI-encoded tuple prefixed with a `uint8 version=1` byte.
4
- // keccak256 of these bytes is what ends up in `intent.externalCallHash`.
5
- const ENVELOPE_TUPLE = {
6
- type: "tuple",
7
- components: [
8
- { name: "fallbackAddress", type: "address" },
9
- { name: "executorAddress", type: "address" },
10
- { name: "executionFee", type: "uint160" },
11
- { name: "allowDelayedExecution", type: "bool" },
12
- { name: "requireSuccessfullExecution", type: "bool" },
13
- { name: "payload", type: "bytes" },
14
- ],
15
- };
16
- const ENVELOPE_VERSION_PREFIX = "0x01";
17
- export function packEvmHookV1(data) {
18
- const tuple = encodeAbiParameters([ENVELOPE_TUPLE], [{
19
- fallbackAddress: data.fallbackAddress,
20
- executorAddress: data.target,
21
- executionFee: BigInt(data.reward),
22
- allowDelayedExecution: data.isNonAtomic,
23
- requireSuccessfullExecution: data.isSuccessRequired,
24
- payload: data.targetPayload,
25
- }]);
26
- return concatHex([ENVELOPE_VERSION_PREFIX, tuple]);
27
- }
28
- // `evm_transaction_call` wraps the user-supplied (to, gas, calldata) tuple in
29
- // the same envelope, with fixed field values:
30
- // executionFee = 0
31
- // allowDelayedExecution = false
32
- // requireSuccessfullExecution = true
33
- // fallbackAddress = dstChainAuthorityAddress
34
- // executorAddress = 0x0
35
- export function packEvmTransactionCall(data, dstChainAuthorityAddress) {
36
- const inner = encodeAbiParameters([{
37
- type: "tuple",
38
- components: [
39
- { name: "to", type: "address" },
40
- { name: "txGas", type: "uint32" },
41
- { name: "callData", type: "bytes" },
42
- ],
43
- }], [{
44
- to: data.to,
45
- txGas: Number(data.gas ?? 0),
46
- callData: data.calldata,
47
- }]);
48
- return packEvmHookV1({
49
- fallbackAddress: dstChainAuthorityAddress,
50
- target: zeroAddress,
51
- reward: "0",
52
- isNonAtomic: false,
53
- isSuccessRequired: true,
54
- targetPayload: inner,
55
- });
56
- }
57
- // Parses a request trade's `dlnHook` JSON and returns the bytes the API
58
- // hashes into `intent.externalCallHash`. Returns `undefined` when the trade
59
- // has no hook. Throws on unknown / Solana hook types — Solana hooks live in
60
- // the response under their own validator and never feed into this hash.
61
- export function serializeDlnHook(trade) {
62
- if (!trade.dlnHook)
63
- return undefined;
64
- const hook = JSON.parse(trade.dlnHook);
65
- switch (hook.type) {
66
- case DlnHookType.EvmHookV1:
67
- return packEvmHookV1(hook.data);
68
- case DlnHookType.EvmTransactionCall: {
69
- if (trade.dstChainAuthorityAddress === undefined) {
70
- throw new Error("evm_transaction_call hook requires dstChainAuthorityAddress on the trade");
71
- }
72
- return packEvmTransactionCall(hook.data, trade.dstChainAuthorityAddress);
73
- }
74
- case DlnHookType.SolanaSerializedInstructions:
75
- throw new Error("Solana hook types are not folded into externalCallHash");
76
- default: {
77
- const exhaustive = hook;
78
- throw new Error(`Unknown dlnHook type: ${JSON.stringify(exhaustive)}`);
79
- }
80
- }
81
- }
82
- //# sourceMappingURL=evm-dln-hook-pack.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"evm-dln-hook-pack.js","sourceRoot":"","sources":["../../../src/helpers/evm-dln-hook-pack.ts"],"names":[],"mappings":"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"}
@@ -1,99 +0,0 @@
1
- import { decodeTransferCalldata } from "./evm-calldata.js";
2
- import { isNativeToken } from "./evm-token.js";
3
- import { normalizeAddress } from "./address.js";
4
- // Validates an EVM `{to, data, value}` triplet that is expected to encode a
5
- // gas-compensation transfer. `groups` are the gas-compensation groups
6
- // associated with this triplet's source (already filtered to the relevant
7
- // `(chainId, sender)` pair by the caller).
8
- //
9
- // Classification: dispatched on `triplet.data`:
10
- // - `data === "0x"` → native compensation (data="0x", value > 0,
11
- // and at least one group must carry a native token).
12
- // - otherwise → ERC20 compensation (`triplet.to` matches some non-native
13
- // group's tokenAddress, data is `transfer(...)`, value === "0").
14
- export function validateEvmGasCompensationTx(triplet, groups, realChainId, basePath, codes) {
15
- if (triplet.data === "0x") {
16
- return validateNativeCompensation(triplet, groups, basePath, codes);
17
- }
18
- return validateErc20Compensation(triplet, groups, realChainId, basePath, codes);
19
- }
20
- function validateNativeCompensation(triplet, groups, basePath, codes) {
21
- const violations = [];
22
- // CRITICAL: data="0x" implies native — must have at least one native group.
23
- const hasNativeGroup = groups.some(g => isNativeToken(g.tokenAddress, g.realChainId));
24
- if (!hasNativeGroup) {
25
- violations.push({
26
- code: codes.dataInvalid,
27
- message: "data=\"0x\" implies native compensation but no group has a native token",
28
- path: `${basePath}.data`,
29
- expected: groups.map(g => g.tokenAddress),
30
- actual: "0x",
31
- });
32
- }
33
- // HIGH: native compensation value must parse and be > 0.
34
- violations.push(...validateNativeValue(triplet.value, basePath, codes));
35
- return violations;
36
- }
37
- function validateNativeValue(rawValue, basePath, codes) {
38
- try {
39
- if (BigInt(rawValue) <= 0n) {
40
- return [{
41
- code: codes.valueInvalid,
42
- message: "native compensation must have value > 0",
43
- path: `${basePath}.value`,
44
- actual: rawValue,
45
- }];
46
- }
47
- return [];
48
- }
49
- catch (error) {
50
- return [{
51
- code: codes.valueInvalid,
52
- message: "native compensation value is not a valid number",
53
- path: `${basePath}.value`,
54
- actual: rawValue,
55
- details: error,
56
- }];
57
- }
58
- }
59
- function validateErc20Compensation(triplet, groups, realChainId, basePath, codes) {
60
- const violations = [];
61
- // CRITICAL: `to` must equal some non-native group's tokenAddress.
62
- const erc20Groups = groups.filter(g => !isNativeToken(g.tokenAddress, g.realChainId));
63
- const matches = erc20Groups.some(g => normalizeAddress(g.realChainId, g.tokenAddress)
64
- === normalizeAddress(realChainId, triplet.to));
65
- if (!matches) {
66
- violations.push({
67
- code: codes.toMismatch,
68
- message: "ERC20 compensation `to` does not match any group's tokenAddress",
69
- path: `${basePath}.to`,
70
- expected: erc20Groups.map(g => g.tokenAddress),
71
- actual: triplet.to,
72
- });
73
- }
74
- // CRITICAL: data must be a valid ERC20 transfer calldata.
75
- try {
76
- decodeTransferCalldata(triplet.data);
77
- }
78
- catch (error) {
79
- violations.push({
80
- code: codes.dataInvalid,
81
- message: "ERC20 compensation data is not a valid transfer calldata",
82
- path: `${basePath}.data`,
83
- actual: triplet.data,
84
- details: error,
85
- });
86
- }
87
- // HIGH: ERC20 compensation must have value="0".
88
- if (triplet.value !== "0") {
89
- violations.push({
90
- code: codes.valueInvalid,
91
- message: "ERC20 compensation must have value=\"0\"",
92
- path: `${basePath}.value`,
93
- expected: "0",
94
- actual: triplet.value,
95
- });
96
- }
97
- return violations;
98
- }
99
- //# sourceMappingURL=evm-gas-compensation-tx.js.map
@@ -1 +0,0 @@
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,33 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,20 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,168 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"placeholder.js","sourceRoot":"","sources":["../../../src/helpers/placeholder.ts"],"names":[],"mappings":"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"}
@@ -1,10 +0,0 @@
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
@@ -1 +0,0 @@
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"}