@eco-incorp/sauce 0.99.3 → 0.99.5

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 (1304) hide show
  1. package/README.md +105 -63
  2. package/actions/action-program.schema.json +1810 -0
  3. package/actions/dist/abis.d.ts +167 -0
  4. package/actions/dist/abis.d.ts.map +1 -0
  5. package/actions/dist/abis.js +215 -0
  6. package/actions/dist/compile.d.ts +15 -8
  7. package/actions/dist/compile.d.ts.map +1 -1
  8. package/actions/dist/compile.js +11 -33
  9. package/actions/dist/compose.d.ts +46 -0
  10. package/actions/dist/compose.d.ts.map +1 -0
  11. package/actions/dist/compose.js +118 -0
  12. package/actions/dist/emit.d.ts +0 -35
  13. package/actions/dist/emit.d.ts.map +1 -1
  14. package/actions/dist/emit.js +15 -46
  15. package/actions/dist/index.d.ts +11 -8
  16. package/actions/dist/index.d.ts.map +1 -1
  17. package/actions/dist/index.js +6 -4
  18. package/actions/dist/program.d.ts +23 -0
  19. package/actions/dist/program.d.ts.map +1 -0
  20. package/actions/dist/program.js +358 -0
  21. package/actions/dist/registry.d.ts +37 -0
  22. package/actions/dist/registry.d.ts.map +1 -0
  23. package/actions/dist/registry.js +36 -0
  24. package/actions/dist/schema.d.ts +6 -0
  25. package/actions/dist/schema.d.ts.map +1 -0
  26. package/actions/dist/schema.js +166 -0
  27. package/actions/dist/semantics.d.ts +18 -0
  28. package/actions/dist/semantics.d.ts.map +1 -0
  29. package/actions/dist/semantics.js +164 -0
  30. package/actions/dist/spec.d.ts +97 -0
  31. package/actions/dist/spec.d.ts.map +1 -0
  32. package/actions/dist/spec.js +323 -0
  33. package/actions/dist/split-swap.d.ts +35 -0
  34. package/actions/dist/split-swap.d.ts.map +1 -0
  35. package/actions/dist/split-swap.js +175 -0
  36. package/actions/dist/to-quote.d.ts +32 -56
  37. package/actions/dist/to-quote.d.ts.map +1 -1
  38. package/actions/dist/to-quote.js +134 -141
  39. package/actions/dist/to-sauce.d.ts +48 -32
  40. package/actions/dist/to-sauce.d.ts.map +1 -1
  41. package/actions/dist/to-sauce.js +691 -753
  42. package/actions/dist/types.d.ts +227 -335
  43. package/actions/dist/types.d.ts.map +1 -1
  44. package/actions/dist/types.js +12 -3
  45. package/dev-tools/README.md +9 -9
  46. package/dev-tools/artifacts/ISauceRouter.json +1 -1
  47. package/dev-tools/artifacts/Router.json +1 -1
  48. package/dev-tools/scripts/start-fork.sh +1 -1
  49. package/dev-tools/scripts/start-local.sh +5 -1
  50. package/dev-tools/src/svm-local.ts +23 -13
  51. package/docs/README.md +45 -34
  52. package/docs/api/README.md +37 -29
  53. package/docs/api/compiler.md +116 -55
  54. package/docs/api/coverage.md +99 -48
  55. package/docs/api/routes.md +51 -22
  56. package/docs/concepts/architecture.md +83 -116
  57. package/docs/concepts/saucescript.md +27 -23
  58. package/docs/examples/README.md +18 -10
  59. package/docs/examples/action-program.ts +75 -0
  60. package/docs/examples/cross-chain-cascade.sauce.ts +21 -0
  61. package/docs/examples/cross-chain-cascade.ts +43 -0
  62. package/docs/examples/cross-chain-intent.sauce.ts +23 -0
  63. package/docs/examples/cross-chain-intent.ts +49 -0
  64. package/docs/examples/first-intent.ts +7 -10
  65. package/docs/examples/protocol-approval.ts +3 -7
  66. package/docs/guides/actions.md +395 -0
  67. package/docs/guides/builders-and-actions.md +31 -37
  68. package/docs/guides/compiling.md +97 -98
  69. package/docs/guides/intents.md +242 -24
  70. package/docs/guides/nested-intents.md +165 -5
  71. package/docs/guides/protocols-and-tokens.md +15 -7
  72. package/docs/guides/quick-start.md +51 -22
  73. package/docs/guides/solana.md +38 -39
  74. package/docs/guides/verification.md +70 -31
  75. package/package.json +7 -2
  76. package/sdk/dist/artifacts/ISauceRouter.json +1 -1
  77. package/sdk/dist/artifacts/Router.json +1 -1
  78. package/sdk/dist/artifacts/V12Deployments.json +23 -22
  79. package/sdk/dist/artifacts/V12EngineGate.json +2 -2
  80. package/sdk/dist/artifacts/V12Kitchen.json +1 -1
  81. package/sdk/dist/artifacts/V12Pot.json +1 -1
  82. package/sdk/dist/artifacts/V12RuntimeBytecode.json +1 -1
  83. package/sdk/dist/artifacts/svm/engine-devnet.so +0 -0
  84. package/sdk/dist/artifacts/svm/engine-mainnet.so +0 -0
  85. package/sdk/dist/artifacts/svm/engine-wire-devnet.json +6 -0
  86. package/sdk/dist/artifacts/svm/engine-wire-mainnet.json +6 -0
  87. package/sdk/dist/bytes.d.ts +10 -0
  88. package/sdk/dist/bytes.d.ts.map +1 -0
  89. package/sdk/dist/bytes.js +31 -0
  90. package/sdk/dist/bytes.js.map +1 -0
  91. package/sdk/dist/chains/canonical.d.ts +7 -1
  92. package/sdk/dist/chains/canonical.d.ts.map +1 -1
  93. package/sdk/dist/chains/canonical.js +6 -2
  94. package/sdk/dist/chains/canonical.js.map +1 -1
  95. package/sdk/dist/chains/index.d.ts +16 -2
  96. package/sdk/dist/chains/index.d.ts.map +1 -1
  97. package/sdk/dist/chains/index.js +51 -34
  98. package/sdk/dist/chains/index.js.map +1 -1
  99. package/sdk/dist/compact-arguments.d.ts +4 -1
  100. package/sdk/dist/compact-arguments.d.ts.map +1 -1
  101. package/sdk/dist/compact-arguments.js +25 -4
  102. package/sdk/dist/compact-arguments.js.map +1 -1
  103. package/sdk/dist/compiler.d.ts +13 -1
  104. package/sdk/dist/compiler.d.ts.map +1 -1
  105. package/sdk/dist/compiler.js +5 -6
  106. package/sdk/dist/compiler.js.map +1 -1
  107. package/sdk/dist/core/types.d.ts +18 -2
  108. package/sdk/dist/core/types.d.ts.map +1 -1
  109. package/sdk/dist/deployments/pot.d.ts +39 -0
  110. package/sdk/dist/deployments/pot.d.ts.map +1 -0
  111. package/sdk/dist/deployments/pot.js +48 -0
  112. package/sdk/dist/deployments/pot.js.map +1 -0
  113. package/sdk/dist/deployments/v12-addresses.d.ts +1 -4
  114. package/sdk/dist/deployments/v12-addresses.d.ts.map +1 -1
  115. package/sdk/dist/deployments/v12-addresses.js +7 -21
  116. package/sdk/dist/deployments/v12-addresses.js.map +1 -1
  117. package/sdk/dist/deposit/index.d.ts +5 -5
  118. package/sdk/dist/deposit/index.d.ts.map +1 -1
  119. package/sdk/dist/deposit/index.js +1 -1
  120. package/sdk/dist/deposit/index.js.map +1 -1
  121. package/sdk/dist/deposit/params.d.ts +3 -2
  122. package/sdk/dist/deposit/params.d.ts.map +1 -1
  123. package/sdk/dist/deposit/params.js +40 -3
  124. package/sdk/dist/deposit/params.js.map +1 -1
  125. package/sdk/dist/deposit/source.d.ts +0 -19
  126. package/sdk/dist/deposit/source.d.ts.map +1 -1
  127. package/sdk/dist/deposit/source.js +17 -34
  128. package/sdk/dist/deposit/source.js.map +1 -1
  129. package/sdk/dist/descriptors/accessors.d.ts +2 -2
  130. package/sdk/dist/descriptors/accessors.d.ts.map +1 -1
  131. package/sdk/dist/descriptors/accessors.js +15 -4
  132. package/sdk/dist/descriptors/accessors.js.map +1 -1
  133. package/sdk/dist/descriptors/call.d.ts +8 -13
  134. package/sdk/dist/descriptors/call.d.ts.map +1 -1
  135. package/sdk/dist/descriptors/call.js +7 -19
  136. package/sdk/dist/descriptors/call.js.map +1 -1
  137. package/sdk/dist/descriptors/derive.d.ts +1 -1
  138. package/sdk/dist/descriptors/derive.d.ts.map +1 -1
  139. package/sdk/dist/descriptors/derive.js +1 -1
  140. package/sdk/dist/descriptors/derive.js.map +1 -1
  141. package/sdk/dist/descriptors/index.d.ts +1 -1
  142. package/sdk/dist/descriptors/index.d.ts.map +1 -1
  143. package/sdk/dist/descriptors/index.js +1 -1
  144. package/sdk/dist/descriptors/index.js.map +1 -1
  145. package/sdk/dist/descriptors/links.d.ts +3 -12
  146. package/sdk/dist/descriptors/links.d.ts.map +1 -1
  147. package/sdk/dist/descriptors/links.js +2 -32
  148. package/sdk/dist/descriptors/links.js.map +1 -1
  149. package/sdk/dist/descriptors/query.d.ts +7 -3
  150. package/sdk/dist/descriptors/query.d.ts.map +1 -1
  151. package/sdk/dist/descriptors/query.js +9 -5
  152. package/sdk/dist/descriptors/query.js.map +1 -1
  153. package/sdk/dist/descriptors/registry.d.ts.map +1 -1
  154. package/sdk/dist/descriptors/registry.js +1 -0
  155. package/sdk/dist/descriptors/registry.js.map +1 -1
  156. package/sdk/dist/embedded/recipes.d.ts +3 -0
  157. package/sdk/dist/embedded/recipes.d.ts.map +1 -0
  158. package/sdk/dist/embedded/recipes.js +15 -0
  159. package/sdk/dist/embedded/recipes.js.map +1 -0
  160. package/sdk/dist/embedded/resolve.d.ts +27 -0
  161. package/sdk/dist/embedded/resolve.d.ts.map +1 -0
  162. package/sdk/dist/embedded/resolve.js +99 -0
  163. package/sdk/dist/embedded/resolve.js.map +1 -0
  164. package/sdk/dist/embedded/skills.generated.d.ts +3 -0
  165. package/sdk/dist/embedded/skills.generated.d.ts.map +1 -0
  166. package/sdk/dist/embedded/skills.generated.js +141 -0
  167. package/sdk/dist/embedded/skills.generated.js.map +1 -0
  168. package/sdk/dist/embedded/sources.generated.d.ts +7 -0
  169. package/sdk/dist/embedded/sources.generated.d.ts.map +1 -0
  170. package/sdk/dist/embedded/sources.generated.js +231 -0
  171. package/sdk/dist/embedded/sources.generated.js.map +1 -0
  172. package/sdk/dist/evm/execution-fee.d.ts +30 -0
  173. package/sdk/dist/evm/execution-fee.d.ts.map +1 -0
  174. package/sdk/dist/evm/execution-fee.js +33 -0
  175. package/sdk/dist/evm/execution-fee.js.map +1 -0
  176. package/sdk/dist/index.d.ts +7 -2
  177. package/sdk/dist/index.d.ts.map +1 -1
  178. package/sdk/dist/index.js +16 -10
  179. package/sdk/dist/index.js.map +1 -1
  180. package/sdk/dist/plugin/index.d.ts +1 -1
  181. package/sdk/dist/plugin/index.d.ts.map +1 -1
  182. package/sdk/dist/plugin/index.js +5 -22
  183. package/sdk/dist/plugin/index.js.map +1 -1
  184. package/sdk/dist/protocols/aave-v4/abis.d.ts +201 -0
  185. package/sdk/dist/protocols/aave-v4/abis.d.ts.map +1 -0
  186. package/sdk/dist/protocols/aave-v4/abis.js +139 -0
  187. package/sdk/dist/protocols/aave-v4/abis.js.map +1 -0
  188. package/sdk/dist/protocols/aave-v4/addresses.d.ts +3 -0
  189. package/sdk/dist/protocols/aave-v4/addresses.d.ts.map +1 -0
  190. package/sdk/dist/protocols/aave-v4/addresses.js +65 -0
  191. package/sdk/dist/protocols/aave-v4/addresses.js.map +1 -0
  192. package/sdk/dist/protocols/aave-v4/functions.d.ts +5 -0
  193. package/sdk/dist/protocols/aave-v4/functions.d.ts.map +1 -0
  194. package/sdk/dist/protocols/aave-v4/functions.js +37 -0
  195. package/sdk/dist/protocols/aave-v4/functions.js.map +1 -0
  196. package/sdk/dist/protocols/aave-v4/index.d.ts +5 -0
  197. package/sdk/dist/protocols/aave-v4/index.d.ts.map +1 -0
  198. package/sdk/dist/protocols/aave-v4/index.js +5 -0
  199. package/sdk/dist/protocols/aave-v4/index.js.map +1 -0
  200. package/sdk/dist/protocols/aave-v4/info.d.ts +3 -0
  201. package/sdk/dist/protocols/aave-v4/info.d.ts.map +1 -0
  202. package/sdk/dist/protocols/aave-v4/info.js +12 -0
  203. package/sdk/dist/protocols/aave-v4/info.js.map +1 -0
  204. package/sdk/dist/protocols/across/abis.d.ts +24 -12
  205. package/sdk/dist/protocols/across/abis.d.ts.map +1 -1
  206. package/sdk/dist/protocols/across/abis.js +16 -8
  207. package/sdk/dist/protocols/across/abis.js.map +1 -1
  208. package/sdk/dist/protocols/across/addresses.d.ts.map +1 -1
  209. package/sdk/dist/protocols/across/addresses.js +10 -0
  210. package/sdk/dist/protocols/across/addresses.js.map +1 -1
  211. package/sdk/dist/protocols/across/functions.d.ts +1 -1
  212. package/sdk/dist/protocols/across/functions.d.ts.map +1 -1
  213. package/sdk/dist/protocols/across/functions.js +2 -2
  214. package/sdk/dist/protocols/aerodrome-slipstream/abis.d.ts +112 -0
  215. package/sdk/dist/protocols/aerodrome-slipstream/abis.d.ts.map +1 -0
  216. package/sdk/dist/protocols/aerodrome-slipstream/abis.js +73 -0
  217. package/sdk/dist/protocols/aerodrome-slipstream/abis.js.map +1 -0
  218. package/sdk/dist/protocols/aerodrome-slipstream/addresses.d.ts +3 -0
  219. package/sdk/dist/protocols/aerodrome-slipstream/addresses.d.ts.map +1 -0
  220. package/sdk/dist/protocols/aerodrome-slipstream/addresses.js +39 -0
  221. package/sdk/dist/protocols/aerodrome-slipstream/addresses.js.map +1 -0
  222. package/sdk/dist/protocols/aerodrome-slipstream/functions.d.ts +2 -0
  223. package/sdk/dist/protocols/aerodrome-slipstream/functions.d.ts.map +1 -0
  224. package/sdk/dist/protocols/aerodrome-slipstream/functions.js +9 -0
  225. package/sdk/dist/protocols/aerodrome-slipstream/functions.js.map +1 -0
  226. package/sdk/dist/protocols/aerodrome-slipstream/index.d.ts +5 -0
  227. package/sdk/dist/protocols/aerodrome-slipstream/index.d.ts.map +1 -0
  228. package/sdk/dist/protocols/aerodrome-slipstream/index.js +5 -0
  229. package/sdk/dist/protocols/aerodrome-slipstream/index.js.map +1 -0
  230. package/sdk/dist/protocols/aerodrome-slipstream/info.d.ts +3 -0
  231. package/sdk/dist/protocols/aerodrome-slipstream/info.d.ts.map +1 -0
  232. package/sdk/dist/protocols/aerodrome-slipstream/info.js +12 -0
  233. package/sdk/dist/protocols/aerodrome-slipstream/info.js.map +1 -0
  234. package/sdk/dist/protocols/aevo/abis.d.ts +17 -2
  235. package/sdk/dist/protocols/aevo/abis.d.ts.map +1 -1
  236. package/sdk/dist/protocols/aevo/abis.js +10 -2
  237. package/sdk/dist/protocols/aevo/abis.js.map +1 -1
  238. package/sdk/dist/protocols/aevo/functions.d.ts +1 -1
  239. package/sdk/dist/protocols/aevo/functions.d.ts.map +1 -1
  240. package/sdk/dist/protocols/aevo/functions.js +2 -2
  241. package/sdk/dist/protocols/alchemix/abis.d.ts +1 -1
  242. package/sdk/dist/protocols/alchemix/abis.js +1 -1
  243. package/sdk/dist/protocols/alchemix/abis.js.map +1 -1
  244. package/sdk/dist/protocols/ambient/abis.d.ts +2 -2
  245. package/sdk/dist/protocols/ambient/abis.d.ts.map +1 -1
  246. package/sdk/dist/protocols/ambient/abis.js +3 -2
  247. package/sdk/dist/protocols/ambient/abis.js.map +1 -1
  248. package/sdk/dist/protocols/ambient/addresses.d.ts.map +1 -1
  249. package/sdk/dist/protocols/ambient/addresses.js +2 -1
  250. package/sdk/dist/protocols/ambient/addresses.js.map +1 -1
  251. package/sdk/dist/protocols/arrakis/abis.d.ts +4 -13
  252. package/sdk/dist/protocols/arrakis/abis.d.ts.map +1 -1
  253. package/sdk/dist/protocols/arrakis/abis.js +2 -11
  254. package/sdk/dist/protocols/arrakis/abis.js.map +1 -1
  255. package/sdk/dist/protocols/arrakis/functions.d.ts +1 -1
  256. package/sdk/dist/protocols/arrakis/functions.d.ts.map +1 -1
  257. package/sdk/dist/protocols/arrakis/functions.js +2 -1
  258. package/sdk/dist/protocols/arrakis/functions.js.map +1 -1
  259. package/sdk/dist/protocols/axelar/abis.d.ts +1 -1
  260. package/sdk/dist/protocols/axelar/abis.js +1 -1
  261. package/sdk/dist/protocols/balancer-v2/abis.d.ts +7 -7
  262. package/sdk/dist/protocols/balancer-v2/abis.js +7 -7
  263. package/sdk/dist/protocols/balancer-v2/abis.js.map +1 -1
  264. package/sdk/dist/protocols/cbeth/abis.d.ts +7 -1
  265. package/sdk/dist/protocols/cbeth/abis.d.ts.map +1 -1
  266. package/sdk/dist/protocols/cbeth/abis.js +6 -2
  267. package/sdk/dist/protocols/cbeth/abis.js.map +1 -1
  268. package/sdk/dist/protocols/cctp/abis.d.ts +1 -4
  269. package/sdk/dist/protocols/cctp/abis.d.ts.map +1 -1
  270. package/sdk/dist/protocols/cctp/abis.js +3 -1
  271. package/sdk/dist/protocols/cctp/abis.js.map +1 -1
  272. package/sdk/dist/protocols/cctp/addresses.d.ts.map +1 -1
  273. package/sdk/dist/protocols/cctp/addresses.js +3 -0
  274. package/sdk/dist/protocols/cctp/addresses.js.map +1 -1
  275. package/sdk/dist/protocols/chainlink/abis.d.ts +6 -6
  276. package/sdk/dist/protocols/chainlink/abis.js +6 -6
  277. package/sdk/dist/protocols/chainlink/abis.js.map +1 -1
  278. package/sdk/dist/protocols/chainlink/addresses.d.ts.map +1 -1
  279. package/sdk/dist/protocols/chainlink/addresses.js +10 -0
  280. package/sdk/dist/protocols/chainlink/addresses.js.map +1 -1
  281. package/sdk/dist/protocols/chainlink-ccip/abis.d.ts +1 -1
  282. package/sdk/dist/protocols/chainlink-ccip/abis.js +1 -1
  283. package/sdk/dist/protocols/chainlink-ccip/addresses.d.ts.map +1 -1
  284. package/sdk/dist/protocols/chainlink-ccip/addresses.js +9 -0
  285. package/sdk/dist/protocols/chainlink-ccip/addresses.js.map +1 -1
  286. package/sdk/dist/protocols/circle-gateway/abis.d.ts +114 -0
  287. package/sdk/dist/protocols/circle-gateway/abis.d.ts.map +1 -0
  288. package/sdk/dist/protocols/circle-gateway/abis.js +86 -0
  289. package/sdk/dist/protocols/circle-gateway/abis.js.map +1 -0
  290. package/sdk/dist/protocols/circle-gateway/addresses.d.ts +3 -0
  291. package/sdk/dist/protocols/circle-gateway/addresses.d.ts.map +1 -0
  292. package/sdk/dist/protocols/circle-gateway/addresses.js +37 -0
  293. package/sdk/dist/protocols/circle-gateway/addresses.js.map +1 -0
  294. package/sdk/dist/protocols/circle-gateway/functions.d.ts +4 -0
  295. package/sdk/dist/protocols/circle-gateway/functions.d.ts.map +1 -0
  296. package/sdk/dist/protocols/circle-gateway/functions.js +27 -0
  297. package/sdk/dist/protocols/circle-gateway/functions.js.map +1 -0
  298. package/sdk/dist/protocols/circle-gateway/index.d.ts +5 -0
  299. package/sdk/dist/protocols/circle-gateway/index.d.ts.map +1 -0
  300. package/sdk/dist/protocols/circle-gateway/index.js +5 -0
  301. package/sdk/dist/protocols/circle-gateway/index.js.map +1 -0
  302. package/sdk/dist/protocols/circle-gateway/info.d.ts +3 -0
  303. package/sdk/dist/protocols/circle-gateway/info.d.ts.map +1 -0
  304. package/sdk/dist/protocols/circle-gateway/info.js +12 -0
  305. package/sdk/dist/protocols/circle-gateway/info.js.map +1 -0
  306. package/sdk/dist/protocols/compound-v2/abis.d.ts +2 -2
  307. package/sdk/dist/protocols/compound-v2/abis.js +2 -2
  308. package/sdk/dist/protocols/compound-v2/abis.js.map +1 -1
  309. package/sdk/dist/protocols/connext/abis.d.ts +46 -6
  310. package/sdk/dist/protocols/connext/abis.d.ts.map +1 -1
  311. package/sdk/dist/protocols/connext/abis.js +27 -5
  312. package/sdk/dist/protocols/connext/abis.js.map +1 -1
  313. package/sdk/dist/protocols/connext/addresses.d.ts.map +1 -1
  314. package/sdk/dist/protocols/connext/addresses.js +1 -7
  315. package/sdk/dist/protocols/connext/addresses.js.map +1 -1
  316. package/sdk/dist/protocols/connext/functions.d.ts +1 -1
  317. package/sdk/dist/protocols/connext/functions.d.ts.map +1 -1
  318. package/sdk/dist/protocols/connext/functions.js +3 -2
  319. package/sdk/dist/protocols/connext/functions.js.map +1 -1
  320. package/sdk/dist/protocols/curve/abis.d.ts +119 -7
  321. package/sdk/dist/protocols/curve/abis.d.ts.map +1 -1
  322. package/sdk/dist/protocols/curve/abis.js +90 -7
  323. package/sdk/dist/protocols/curve/abis.js.map +1 -1
  324. package/sdk/dist/protocols/debridge/abis.d.ts +7 -7
  325. package/sdk/dist/protocols/debridge/abis.js +5 -5
  326. package/sdk/dist/protocols/debridge/abis.js.map +1 -1
  327. package/sdk/dist/protocols/debridge/addresses.d.ts.map +1 -1
  328. package/sdk/dist/protocols/debridge/addresses.js +11 -0
  329. package/sdk/dist/protocols/debridge/addresses.js.map +1 -1
  330. package/sdk/dist/protocols/eco-routes/abis.d.ts +463 -0
  331. package/sdk/dist/protocols/eco-routes/abis.d.ts.map +1 -0
  332. package/sdk/dist/protocols/eco-routes/abis.js +632 -0
  333. package/sdk/dist/protocols/eco-routes/abis.js.map +1 -0
  334. package/sdk/dist/protocols/eco-routes/addresses.d.ts +9 -0
  335. package/sdk/dist/protocols/eco-routes/addresses.d.ts.map +1 -0
  336. package/sdk/dist/protocols/eco-routes/addresses.generated.d.ts +585 -0
  337. package/sdk/dist/protocols/eco-routes/addresses.generated.d.ts.map +1 -0
  338. package/sdk/dist/protocols/eco-routes/addresses.generated.js +590 -0
  339. package/sdk/dist/protocols/eco-routes/addresses.generated.js.map +1 -0
  340. package/sdk/dist/protocols/eco-routes/addresses.js +21 -0
  341. package/sdk/dist/protocols/eco-routes/addresses.js.map +1 -0
  342. package/sdk/dist/protocols/eco-routes/functions.d.ts +12 -0
  343. package/sdk/dist/protocols/eco-routes/functions.d.ts.map +1 -0
  344. package/sdk/dist/protocols/eco-routes/functions.js +45 -0
  345. package/sdk/dist/protocols/eco-routes/functions.js.map +1 -0
  346. package/sdk/dist/protocols/eco-routes/index.d.ts +6 -0
  347. package/sdk/dist/protocols/eco-routes/index.d.ts.map +1 -0
  348. package/sdk/dist/protocols/eco-routes/index.js +6 -0
  349. package/sdk/dist/protocols/eco-routes/index.js.map +1 -0
  350. package/sdk/dist/protocols/eco-routes/info.d.ts +3 -0
  351. package/sdk/dist/protocols/eco-routes/info.d.ts.map +1 -0
  352. package/sdk/dist/protocols/eco-routes/info.js +12 -0
  353. package/sdk/dist/protocols/eco-routes/info.js.map +1 -0
  354. package/sdk/dist/protocols/eco-routes/lookup.d.ts +82 -0
  355. package/sdk/dist/protocols/eco-routes/lookup.d.ts.map +1 -0
  356. package/sdk/dist/protocols/eco-routes/lookup.js +148 -0
  357. package/sdk/dist/protocols/eco-routes/lookup.js.map +1 -0
  358. package/sdk/dist/protocols/eigenlayer/abis.d.ts +4 -4
  359. package/sdk/dist/protocols/eigenlayer/abis.d.ts.map +1 -1
  360. package/sdk/dist/protocols/eigenlayer/abis.js +5 -4
  361. package/sdk/dist/protocols/eigenlayer/abis.js.map +1 -1
  362. package/sdk/dist/protocols/ens/abis.d.ts +4 -4
  363. package/sdk/dist/protocols/ens/abis.js +4 -4
  364. package/sdk/dist/protocols/etherfi/abis.d.ts +1 -1
  365. package/sdk/dist/protocols/etherfi/abis.d.ts.map +1 -1
  366. package/sdk/dist/protocols/etherfi/abis.js +2 -1
  367. package/sdk/dist/protocols/etherfi/abis.js.map +1 -1
  368. package/sdk/dist/protocols/euler-v2/abis.d.ts +2 -2
  369. package/sdk/dist/protocols/euler-v2/abis.js +2 -2
  370. package/sdk/dist/protocols/euler-v2/abis.js.map +1 -1
  371. package/sdk/dist/protocols/fluid/abis.d.ts +47 -26
  372. package/sdk/dist/protocols/fluid/abis.d.ts.map +1 -1
  373. package/sdk/dist/protocols/fluid/abis.js +39 -18
  374. package/sdk/dist/protocols/fluid/abis.js.map +1 -1
  375. package/sdk/dist/protocols/fluid/functions.d.ts +4 -4
  376. package/sdk/dist/protocols/fluid/functions.d.ts.map +1 -1
  377. package/sdk/dist/protocols/fluid/functions.js +18 -16
  378. package/sdk/dist/protocols/fluid/functions.js.map +1 -1
  379. package/sdk/dist/protocols/gains-network/abis.d.ts +44 -35
  380. package/sdk/dist/protocols/gains-network/abis.d.ts.map +1 -1
  381. package/sdk/dist/protocols/gains-network/abis.js +26 -21
  382. package/sdk/dist/protocols/gains-network/abis.js.map +1 -1
  383. package/sdk/dist/protocols/gains-network/functions.d.ts +3 -3
  384. package/sdk/dist/protocols/gains-network/functions.d.ts.map +1 -1
  385. package/sdk/dist/protocols/gains-network/functions.js +6 -6
  386. package/sdk/dist/protocols/gamma/abis.d.ts +43 -0
  387. package/sdk/dist/protocols/gamma/abis.d.ts.map +1 -1
  388. package/sdk/dist/protocols/gamma/abis.js +30 -0
  389. package/sdk/dist/protocols/gamma/abis.js.map +1 -1
  390. package/sdk/dist/protocols/gamma/addresses.d.ts.map +1 -1
  391. package/sdk/dist/protocols/gamma/addresses.js +2 -7
  392. package/sdk/dist/protocols/gamma/addresses.js.map +1 -1
  393. package/sdk/dist/protocols/gamma/functions.d.ts +1 -0
  394. package/sdk/dist/protocols/gamma/functions.d.ts.map +1 -1
  395. package/sdk/dist/protocols/gamma/functions.js +9 -0
  396. package/sdk/dist/protocols/gamma/functions.js.map +1 -1
  397. package/sdk/dist/protocols/gelato/abis.d.ts +2 -2
  398. package/sdk/dist/protocols/gelato/abis.js +2 -2
  399. package/sdk/dist/protocols/gmx-v1/abis.d.ts +15 -3
  400. package/sdk/dist/protocols/gmx-v1/abis.d.ts.map +1 -1
  401. package/sdk/dist/protocols/gmx-v1/abis.js +5 -3
  402. package/sdk/dist/protocols/gmx-v1/abis.js.map +1 -1
  403. package/sdk/dist/protocols/gmx-v1/functions.d.ts +2 -2
  404. package/sdk/dist/protocols/gmx-v1/functions.d.ts.map +1 -1
  405. package/sdk/dist/protocols/gmx-v1/functions.js +2 -2
  406. package/sdk/dist/protocols/gmx-v2/abis.d.ts +11 -5
  407. package/sdk/dist/protocols/gmx-v2/abis.d.ts.map +1 -1
  408. package/sdk/dist/protocols/gmx-v2/abis.js +7 -4
  409. package/sdk/dist/protocols/gmx-v2/abis.js.map +1 -1
  410. package/sdk/dist/protocols/gmx-v2/addresses.d.ts.map +1 -1
  411. package/sdk/dist/protocols/gmx-v2/addresses.js +3 -1
  412. package/sdk/dist/protocols/gmx-v2/addresses.js.map +1 -1
  413. package/sdk/dist/protocols/gmx-v2/functions.d.ts +1 -1
  414. package/sdk/dist/protocols/gmx-v2/functions.d.ts.map +1 -1
  415. package/sdk/dist/protocols/gmx-v2/functions.js +4 -2
  416. package/sdk/dist/protocols/gmx-v2/functions.js.map +1 -1
  417. package/sdk/dist/protocols/harvest/abis.d.ts +8 -2
  418. package/sdk/dist/protocols/harvest/abis.d.ts.map +1 -1
  419. package/sdk/dist/protocols/harvest/abis.js +2 -2
  420. package/sdk/dist/protocols/harvest/abis.js.map +1 -1
  421. package/sdk/dist/protocols/hegic/abis.d.ts +5 -2
  422. package/sdk/dist/protocols/hegic/abis.d.ts.map +1 -1
  423. package/sdk/dist/protocols/hegic/abis.js +7 -2
  424. package/sdk/dist/protocols/hegic/abis.js.map +1 -1
  425. package/sdk/dist/protocols/hegic/addresses.d.ts.map +1 -1
  426. package/sdk/dist/protocols/hegic/addresses.js +1 -0
  427. package/sdk/dist/protocols/hegic/addresses.js.map +1 -1
  428. package/sdk/dist/protocols/hegic/functions.d.ts +1 -1
  429. package/sdk/dist/protocols/hegic/functions.d.ts.map +1 -1
  430. package/sdk/dist/protocols/hegic/functions.js +3 -3
  431. package/sdk/dist/protocols/hop/addresses.d.ts.map +1 -1
  432. package/sdk/dist/protocols/hop/addresses.js +5 -2
  433. package/sdk/dist/protocols/hop/addresses.js.map +1 -1
  434. package/sdk/dist/protocols/hyperlane/abis.d.ts +5 -5
  435. package/sdk/dist/protocols/hyperlane/abis.js +5 -5
  436. package/sdk/dist/protocols/hyperlane/abis.js.map +1 -1
  437. package/sdk/dist/protocols/hyperlane/addresses.d.ts.map +1 -1
  438. package/sdk/dist/protocols/hyperlane/addresses.js +9 -0
  439. package/sdk/dist/protocols/hyperlane/addresses.js.map +1 -1
  440. package/sdk/dist/protocols/index.d.ts +1 -0
  441. package/sdk/dist/protocols/index.d.ts.map +1 -1
  442. package/sdk/dist/protocols/index.js +13 -0
  443. package/sdk/dist/protocols/index.js.map +1 -1
  444. package/sdk/dist/protocols/kim/abis.d.ts +7 -20
  445. package/sdk/dist/protocols/kim/abis.d.ts.map +1 -1
  446. package/sdk/dist/protocols/kim/abis.js +6 -12
  447. package/sdk/dist/protocols/kim/abis.js.map +1 -1
  448. package/sdk/dist/protocols/kim/functions.d.ts +1 -1
  449. package/sdk/dist/protocols/kim/functions.d.ts.map +1 -1
  450. package/sdk/dist/protocols/kim/functions.js +3 -2
  451. package/sdk/dist/protocols/kim/functions.js.map +1 -1
  452. package/sdk/dist/protocols/kyberswap/abis.d.ts +41 -16
  453. package/sdk/dist/protocols/kyberswap/abis.d.ts.map +1 -1
  454. package/sdk/dist/protocols/kyberswap/abis.js +21 -8
  455. package/sdk/dist/protocols/kyberswap/abis.js.map +1 -1
  456. package/sdk/dist/protocols/kyberswap/addresses.d.ts.map +1 -1
  457. package/sdk/dist/protocols/kyberswap/addresses.js +12 -2
  458. package/sdk/dist/protocols/kyberswap/addresses.js.map +1 -1
  459. package/sdk/dist/protocols/kyberswap-aggregator/addresses.d.ts.map +1 -1
  460. package/sdk/dist/protocols/kyberswap-aggregator/addresses.js +12 -1
  461. package/sdk/dist/protocols/kyberswap-aggregator/addresses.js.map +1 -1
  462. package/sdk/dist/protocols/layerbank/abis.d.ts +81 -24
  463. package/sdk/dist/protocols/layerbank/abis.d.ts.map +1 -1
  464. package/sdk/dist/protocols/layerbank/abis.js +69 -17
  465. package/sdk/dist/protocols/layerbank/abis.js.map +1 -1
  466. package/sdk/dist/protocols/layerbank/addresses.d.ts.map +1 -1
  467. package/sdk/dist/protocols/layerbank/addresses.js +3 -1
  468. package/sdk/dist/protocols/layerbank/addresses.js.map +1 -1
  469. package/sdk/dist/protocols/layerbank/functions.d.ts +4 -4
  470. package/sdk/dist/protocols/layerbank/functions.d.ts.map +1 -1
  471. package/sdk/dist/protocols/layerbank/functions.js +18 -16
  472. package/sdk/dist/protocols/layerbank/functions.js.map +1 -1
  473. package/sdk/dist/protocols/layerzero/abis.d.ts +3 -3
  474. package/sdk/dist/protocols/layerzero/abis.js +3 -3
  475. package/sdk/dist/protocols/layerzero/addresses.d.ts.map +1 -1
  476. package/sdk/dist/protocols/layerzero/addresses.js +11 -1
  477. package/sdk/dist/protocols/layerzero/addresses.js.map +1 -1
  478. package/sdk/dist/protocols/level-finance/abis.d.ts +6 -0
  479. package/sdk/dist/protocols/level-finance/abis.d.ts.map +1 -1
  480. package/sdk/dist/protocols/level-finance/abis.js +2 -0
  481. package/sdk/dist/protocols/level-finance/abis.js.map +1 -1
  482. package/sdk/dist/protocols/level-finance/functions.d.ts +2 -2
  483. package/sdk/dist/protocols/level-finance/functions.d.ts.map +1 -1
  484. package/sdk/dist/protocols/level-finance/functions.js +4 -4
  485. package/sdk/dist/protocols/lifi/abis.d.ts +41 -4
  486. package/sdk/dist/protocols/lifi/abis.d.ts.map +1 -1
  487. package/sdk/dist/protocols/lifi/abis.js +24 -4
  488. package/sdk/dist/protocols/lifi/abis.js.map +1 -1
  489. package/sdk/dist/protocols/lifi/addresses.d.ts.map +1 -1
  490. package/sdk/dist/protocols/lifi/addresses.js +9 -0
  491. package/sdk/dist/protocols/lifi/addresses.js.map +1 -1
  492. package/sdk/dist/protocols/lifi/functions.d.ts +1 -1
  493. package/sdk/dist/protocols/lifi/functions.d.ts.map +1 -1
  494. package/sdk/dist/protocols/lifi/functions.js +5 -2
  495. package/sdk/dist/protocols/lifi/functions.js.map +1 -1
  496. package/sdk/dist/protocols/liquity-v1/abis.d.ts +6 -0
  497. package/sdk/dist/protocols/liquity-v1/abis.d.ts.map +1 -1
  498. package/sdk/dist/protocols/liquity-v1/abis.js +7 -1
  499. package/sdk/dist/protocols/liquity-v1/abis.js.map +1 -1
  500. package/sdk/dist/protocols/liquity-v1/functions.d.ts +1 -1
  501. package/sdk/dist/protocols/liquity-v1/functions.d.ts.map +1 -1
  502. package/sdk/dist/protocols/liquity-v1/functions.js +1 -1
  503. package/sdk/dist/protocols/mantle-meth/abis.d.ts +26 -25
  504. package/sdk/dist/protocols/mantle-meth/abis.d.ts.map +1 -1
  505. package/sdk/dist/protocols/mantle-meth/abis.js +22 -17
  506. package/sdk/dist/protocols/mantle-meth/abis.js.map +1 -1
  507. package/sdk/dist/protocols/mantle-meth/addresses.d.ts.map +1 -1
  508. package/sdk/dist/protocols/mantle-meth/addresses.js +3 -0
  509. package/sdk/dist/protocols/mantle-meth/addresses.js.map +1 -1
  510. package/sdk/dist/protocols/mantle-meth/functions.d.ts +1 -1
  511. package/sdk/dist/protocols/mantle-meth/functions.d.ts.map +1 -1
  512. package/sdk/dist/protocols/mantle-meth/functions.js +4 -4
  513. package/sdk/dist/protocols/maverick/abis.d.ts +9 -0
  514. package/sdk/dist/protocols/maverick/abis.d.ts.map +1 -1
  515. package/sdk/dist/protocols/maverick/abis.js +7 -1
  516. package/sdk/dist/protocols/maverick/abis.js.map +1 -1
  517. package/sdk/dist/protocols/morpho-blue/addresses.d.ts.map +1 -1
  518. package/sdk/dist/protocols/morpho-blue/addresses.js +10 -0
  519. package/sdk/dist/protocols/morpho-blue/addresses.js.map +1 -1
  520. package/sdk/dist/protocols/mux-protocol/abis.d.ts +87 -32
  521. package/sdk/dist/protocols/mux-protocol/abis.d.ts.map +1 -1
  522. package/sdk/dist/protocols/mux-protocol/abis.js +54 -21
  523. package/sdk/dist/protocols/mux-protocol/abis.js.map +1 -1
  524. package/sdk/dist/protocols/mux-protocol/functions.d.ts +2 -2
  525. package/sdk/dist/protocols/mux-protocol/functions.d.ts.map +1 -1
  526. package/sdk/dist/protocols/mux-protocol/functions.js +8 -8
  527. package/sdk/dist/protocols/olympus/abis.d.ts +5 -2
  528. package/sdk/dist/protocols/olympus/abis.d.ts.map +1 -1
  529. package/sdk/dist/protocols/olympus/abis.js +2 -2
  530. package/sdk/dist/protocols/olympus/abis.js.map +1 -1
  531. package/sdk/dist/protocols/oneinch/abis.d.ts +5 -5
  532. package/sdk/dist/protocols/oneinch/abis.d.ts.map +1 -1
  533. package/sdk/dist/protocols/oneinch/abis.js +5 -3
  534. package/sdk/dist/protocols/oneinch/abis.js.map +1 -1
  535. package/sdk/dist/protocols/oneinch/functions.d.ts +1 -1
  536. package/sdk/dist/protocols/oneinch/functions.d.ts.map +1 -1
  537. package/sdk/dist/protocols/oneinch/functions.js +2 -2
  538. package/sdk/dist/protocols/openocean/abis.d.ts +14 -1
  539. package/sdk/dist/protocols/openocean/abis.d.ts.map +1 -1
  540. package/sdk/dist/protocols/openocean/abis.js +11 -1
  541. package/sdk/dist/protocols/openocean/abis.js.map +1 -1
  542. package/sdk/dist/protocols/openocean/functions.d.ts +1 -1
  543. package/sdk/dist/protocols/openocean/functions.d.ts.map +1 -1
  544. package/sdk/dist/protocols/openocean/functions.js +1 -1
  545. package/sdk/dist/protocols/opyn/abis.d.ts +4 -1
  546. package/sdk/dist/protocols/opyn/abis.d.ts.map +1 -1
  547. package/sdk/dist/protocols/opyn/abis.js +1 -1
  548. package/sdk/dist/protocols/opyn/abis.js.map +1 -1
  549. package/sdk/dist/protocols/pancakeswap-v3/abis.d.ts +6 -6
  550. package/sdk/dist/protocols/pancakeswap-v3/abis.js +6 -6
  551. package/sdk/dist/protocols/pancakeswap-v3/abis.js.map +1 -1
  552. package/sdk/dist/protocols/paraswap/abis.d.ts +1 -1
  553. package/sdk/dist/protocols/paraswap/abis.js +1 -1
  554. package/sdk/dist/protocols/pendle/abis.d.ts +288 -6
  555. package/sdk/dist/protocols/pendle/abis.d.ts.map +1 -1
  556. package/sdk/dist/protocols/pendle/abis.js +160 -6
  557. package/sdk/dist/protocols/pendle/abis.js.map +1 -1
  558. package/sdk/dist/protocols/permit2/abis.d.ts +1 -1
  559. package/sdk/dist/protocols/permit2/abis.js +1 -1
  560. package/sdk/dist/protocols/permit2/addresses.d.ts.map +1 -1
  561. package/sdk/dist/protocols/permit2/addresses.js +9 -0
  562. package/sdk/dist/protocols/permit2/addresses.js.map +1 -1
  563. package/sdk/dist/protocols/perpetual-protocol/abis.d.ts +46 -38
  564. package/sdk/dist/protocols/perpetual-protocol/abis.d.ts.map +1 -1
  565. package/sdk/dist/protocols/perpetual-protocol/abis.js +27 -14
  566. package/sdk/dist/protocols/perpetual-protocol/abis.js.map +1 -1
  567. package/sdk/dist/protocols/premia/abis.d.ts +18 -17
  568. package/sdk/dist/protocols/premia/abis.d.ts.map +1 -1
  569. package/sdk/dist/protocols/premia/abis.js +20 -10
  570. package/sdk/dist/protocols/premia/abis.js.map +1 -1
  571. package/sdk/dist/protocols/premia/addresses.d.ts.map +1 -1
  572. package/sdk/dist/protocols/premia/addresses.js +3 -8
  573. package/sdk/dist/protocols/premia/addresses.js.map +1 -1
  574. package/sdk/dist/protocols/premia/functions.d.ts +2 -2
  575. package/sdk/dist/protocols/premia/functions.d.ts.map +1 -1
  576. package/sdk/dist/protocols/premia/functions.js +8 -8
  577. package/sdk/dist/protocols/pyth/abis.d.ts +3 -3
  578. package/sdk/dist/protocols/pyth/abis.d.ts.map +1 -1
  579. package/sdk/dist/protocols/pyth/abis.js +6 -3
  580. package/sdk/dist/protocols/pyth/abis.js.map +1 -1
  581. package/sdk/dist/protocols/reflexer/abis.d.ts +8 -5
  582. package/sdk/dist/protocols/reflexer/abis.d.ts.map +1 -1
  583. package/sdk/dist/protocols/reflexer/abis.js +10 -6
  584. package/sdk/dist/protocols/reflexer/abis.js.map +1 -1
  585. package/sdk/dist/protocols/renzo/abis.d.ts +1 -1
  586. package/sdk/dist/protocols/renzo/abis.js +1 -1
  587. package/sdk/dist/protocols/renzo/abis.js.map +1 -1
  588. package/sdk/dist/protocols/sablier/abis.d.ts +2 -2
  589. package/sdk/dist/protocols/sablier/abis.js +2 -2
  590. package/sdk/dist/protocols/safe/addresses.d.ts.map +1 -1
  591. package/sdk/dist/protocols/safe/addresses.js +10 -0
  592. package/sdk/dist/protocols/safe/addresses.js.map +1 -1
  593. package/sdk/dist/protocols/seaport/abis.d.ts +65 -5
  594. package/sdk/dist/protocols/seaport/abis.d.ts.map +1 -1
  595. package/sdk/dist/protocols/seaport/abis.js +41 -5
  596. package/sdk/dist/protocols/seaport/abis.js.map +1 -1
  597. package/sdk/dist/protocols/seaport/addresses.d.ts.map +1 -1
  598. package/sdk/dist/protocols/seaport/addresses.js +10 -0
  599. package/sdk/dist/protocols/seaport/addresses.js.map +1 -1
  600. package/sdk/dist/protocols/seaport/functions.d.ts +1 -1
  601. package/sdk/dist/protocols/seaport/functions.d.ts.map +1 -1
  602. package/sdk/dist/protocols/seaport/functions.js +1 -0
  603. package/sdk/dist/protocols/seaport/functions.js.map +1 -1
  604. package/sdk/dist/protocols/silo/abis.d.ts +3 -0
  605. package/sdk/dist/protocols/silo/abis.d.ts.map +1 -1
  606. package/sdk/dist/protocols/silo/abis.js +4 -1
  607. package/sdk/dist/protocols/silo/abis.js.map +1 -1
  608. package/sdk/dist/protocols/silo/addresses.d.ts.map +1 -1
  609. package/sdk/dist/protocols/silo/addresses.js +2 -1
  610. package/sdk/dist/protocols/silo/addresses.js.map +1 -1
  611. package/sdk/dist/protocols/silo/functions.d.ts +1 -1
  612. package/sdk/dist/protocols/silo/functions.d.ts.map +1 -1
  613. package/sdk/dist/protocols/silo/functions.js +2 -1
  614. package/sdk/dist/protocols/silo/functions.js.map +1 -1
  615. package/sdk/dist/protocols/socket/abis.d.ts +1 -13
  616. package/sdk/dist/protocols/socket/abis.d.ts.map +1 -1
  617. package/sdk/dist/protocols/socket/abis.js +3 -11
  618. package/sdk/dist/protocols/socket/abis.js.map +1 -1
  619. package/sdk/dist/protocols/socket/functions.d.ts +1 -1
  620. package/sdk/dist/protocols/socket/functions.d.ts.map +1 -1
  621. package/sdk/dist/protocols/socket/functions.js +1 -1
  622. package/sdk/dist/protocols/spookyswap/addresses.d.ts.map +1 -1
  623. package/sdk/dist/protocols/spookyswap/addresses.js +2 -1
  624. package/sdk/dist/protocols/spookyswap/addresses.js.map +1 -1
  625. package/sdk/dist/protocols/squid/abis.d.ts +33 -21
  626. package/sdk/dist/protocols/squid/abis.d.ts.map +1 -1
  627. package/sdk/dist/protocols/squid/abis.js +19 -13
  628. package/sdk/dist/protocols/squid/abis.js.map +1 -1
  629. package/sdk/dist/protocols/squid/functions.d.ts +1 -1
  630. package/sdk/dist/protocols/squid/functions.d.ts.map +1 -1
  631. package/sdk/dist/protocols/squid/functions.js +2 -2
  632. package/sdk/dist/protocols/stargate/abis.d.ts +23 -3
  633. package/sdk/dist/protocols/stargate/abis.d.ts.map +1 -1
  634. package/sdk/dist/protocols/stargate/abis.js +19 -3
  635. package/sdk/dist/protocols/stargate/abis.js.map +1 -1
  636. package/sdk/dist/protocols/superfluid/abis.d.ts +2 -2
  637. package/sdk/dist/protocols/superfluid/abis.js +2 -2
  638. package/sdk/dist/protocols/superfluid/abis.js.map +1 -1
  639. package/sdk/dist/protocols/sushiswap-v2/addresses.d.ts.map +1 -1
  640. package/sdk/dist/protocols/sushiswap-v2/addresses.js +2 -1
  641. package/sdk/dist/protocols/sushiswap-v2/addresses.js.map +1 -1
  642. package/sdk/dist/protocols/swell/abis.d.ts +2 -8
  643. package/sdk/dist/protocols/swell/abis.d.ts.map +1 -1
  644. package/sdk/dist/protocols/swell/abis.js +4 -2
  645. package/sdk/dist/protocols/swell/abis.js.map +1 -1
  646. package/sdk/dist/protocols/swell/functions.d.ts +2 -2
  647. package/sdk/dist/protocols/swell/functions.d.ts.map +1 -1
  648. package/sdk/dist/protocols/swell/functions.js +4 -2
  649. package/sdk/dist/protocols/swell/functions.js.map +1 -1
  650. package/sdk/dist/protocols/synapse/addresses.d.ts.map +1 -1
  651. package/sdk/dist/protocols/synapse/addresses.js +2 -1
  652. package/sdk/dist/protocols/synapse/addresses.js.map +1 -1
  653. package/sdk/dist/protocols/synthetix-v3/abis.d.ts +40 -5
  654. package/sdk/dist/protocols/synthetix-v3/abis.d.ts.map +1 -1
  655. package/sdk/dist/protocols/synthetix-v3/abis.js +27 -5
  656. package/sdk/dist/protocols/synthetix-v3/abis.js.map +1 -1
  657. package/sdk/dist/protocols/synthetix-v3/addresses.d.ts.map +1 -1
  658. package/sdk/dist/protocols/synthetix-v3/addresses.js +2 -1
  659. package/sdk/dist/protocols/synthetix-v3/addresses.js.map +1 -1
  660. package/sdk/dist/protocols/synthra-v3/abis.d.ts +347 -0
  661. package/sdk/dist/protocols/synthra-v3/abis.d.ts.map +1 -0
  662. package/sdk/dist/protocols/synthra-v3/abis.js +242 -0
  663. package/sdk/dist/protocols/synthra-v3/abis.js.map +1 -0
  664. package/sdk/dist/protocols/synthra-v3/addresses.d.ts +3 -0
  665. package/sdk/dist/protocols/synthra-v3/addresses.d.ts.map +1 -0
  666. package/sdk/dist/protocols/synthra-v3/addresses.js +16 -0
  667. package/sdk/dist/protocols/synthra-v3/addresses.js.map +1 -0
  668. package/sdk/dist/protocols/synthra-v3/functions.d.ts +2 -0
  669. package/sdk/dist/protocols/synthra-v3/functions.d.ts.map +1 -0
  670. package/sdk/dist/protocols/synthra-v3/functions.js +9 -0
  671. package/sdk/dist/protocols/synthra-v3/functions.js.map +1 -0
  672. package/sdk/dist/protocols/synthra-v3/index.d.ts +5 -0
  673. package/sdk/dist/protocols/synthra-v3/index.d.ts.map +1 -0
  674. package/sdk/dist/protocols/synthra-v3/index.js +5 -0
  675. package/sdk/dist/protocols/synthra-v3/index.js.map +1 -0
  676. package/sdk/dist/protocols/synthra-v3/info.d.ts +3 -0
  677. package/sdk/dist/protocols/synthra-v3/info.d.ts.map +1 -0
  678. package/sdk/dist/protocols/synthra-v3/info.js +11 -0
  679. package/sdk/dist/protocols/synthra-v3/info.js.map +1 -0
  680. package/sdk/dist/protocols/thales/abis.d.ts +53 -24
  681. package/sdk/dist/protocols/thales/abis.d.ts.map +1 -1
  682. package/sdk/dist/protocols/thales/abis.js +27 -11
  683. package/sdk/dist/protocols/thales/abis.js.map +1 -1
  684. package/sdk/dist/protocols/thales/functions.d.ts +2 -2
  685. package/sdk/dist/protocols/thales/functions.d.ts.map +1 -1
  686. package/sdk/dist/protocols/thales/functions.js +5 -6
  687. package/sdk/dist/protocols/thales/functions.js.map +1 -1
  688. package/sdk/dist/protocols/thruster/abis.d.ts +1 -1
  689. package/sdk/dist/protocols/thruster/abis.js +1 -1
  690. package/sdk/dist/protocols/trader-joe/abis.d.ts +3 -3
  691. package/sdk/dist/protocols/trader-joe/abis.js +2 -2
  692. package/sdk/dist/protocols/trader-joe/abis.js.map +1 -1
  693. package/sdk/dist/protocols/uniswap-v2/addresses.d.ts.map +1 -1
  694. package/sdk/dist/protocols/uniswap-v2/addresses.js +10 -0
  695. package/sdk/dist/protocols/uniswap-v2/addresses.js.map +1 -1
  696. package/sdk/dist/protocols/uniswap-v3/abis.d.ts +127 -8
  697. package/sdk/dist/protocols/uniswap-v3/abis.d.ts.map +1 -1
  698. package/sdk/dist/protocols/uniswap-v3/abis.js +90 -8
  699. package/sdk/dist/protocols/uniswap-v3/abis.js.map +1 -1
  700. package/sdk/dist/protocols/uniswap-v3/addresses.d.ts.map +1 -1
  701. package/sdk/dist/protocols/uniswap-v3/addresses.js +14 -0
  702. package/sdk/dist/protocols/uniswap-v3/addresses.js.map +1 -1
  703. package/sdk/dist/protocols/uniswap-v4/abis.d.ts +27 -15
  704. package/sdk/dist/protocols/uniswap-v4/abis.d.ts.map +1 -1
  705. package/sdk/dist/protocols/uniswap-v4/abis.js +25 -15
  706. package/sdk/dist/protocols/uniswap-v4/abis.js.map +1 -1
  707. package/sdk/dist/protocols/uniswap-v4/addresses.d.ts.map +1 -1
  708. package/sdk/dist/protocols/uniswap-v4/addresses.js +11 -0
  709. package/sdk/dist/protocols/uniswap-v4/addresses.js.map +1 -1
  710. package/sdk/dist/protocols/unitflow-v3/abis.d.ts +104 -0
  711. package/sdk/dist/protocols/unitflow-v3/abis.d.ts.map +1 -0
  712. package/sdk/dist/protocols/unitflow-v3/abis.js +70 -0
  713. package/sdk/dist/protocols/unitflow-v3/abis.js.map +1 -0
  714. package/sdk/dist/protocols/unitflow-v3/addresses.d.ts +3 -0
  715. package/sdk/dist/protocols/unitflow-v3/addresses.d.ts.map +1 -0
  716. package/sdk/dist/protocols/unitflow-v3/addresses.js +19 -0
  717. package/sdk/dist/protocols/unitflow-v3/addresses.js.map +1 -0
  718. package/sdk/dist/protocols/unitflow-v3/functions.d.ts +2 -0
  719. package/sdk/dist/protocols/unitflow-v3/functions.d.ts.map +1 -0
  720. package/sdk/dist/protocols/unitflow-v3/functions.js +9 -0
  721. package/sdk/dist/protocols/unitflow-v3/functions.js.map +1 -0
  722. package/sdk/dist/protocols/unitflow-v3/index.d.ts +5 -0
  723. package/sdk/dist/protocols/unitflow-v3/index.d.ts.map +1 -0
  724. package/sdk/dist/protocols/unitflow-v3/index.js +5 -0
  725. package/sdk/dist/protocols/unitflow-v3/index.js.map +1 -0
  726. package/sdk/dist/protocols/unitflow-v3/info.d.ts +3 -0
  727. package/sdk/dist/protocols/unitflow-v3/info.d.ts.map +1 -0
  728. package/sdk/dist/protocols/unitflow-v3/info.js +12 -0
  729. package/sdk/dist/protocols/unitflow-v3/info.js.map +1 -0
  730. package/sdk/dist/protocols/velodrome/addresses.d.ts.map +1 -1
  731. package/sdk/dist/protocols/velodrome/addresses.js +3 -1
  732. package/sdk/dist/protocols/velodrome/addresses.js.map +1 -1
  733. package/sdk/dist/protocols/venus/abis.d.ts +62 -1
  734. package/sdk/dist/protocols/venus/abis.d.ts.map +1 -1
  735. package/sdk/dist/protocols/venus/abis.js +48 -1
  736. package/sdk/dist/protocols/venus/abis.js.map +1 -1
  737. package/sdk/dist/protocols/vertex/abis.d.ts +16 -9
  738. package/sdk/dist/protocols/vertex/abis.d.ts.map +1 -1
  739. package/sdk/dist/protocols/vertex/abis.js +13 -4
  740. package/sdk/dist/protocols/vertex/abis.js.map +1 -1
  741. package/sdk/dist/protocols/wormhole/abis.d.ts +2 -2
  742. package/sdk/dist/protocols/wormhole/abis.js +2 -2
  743. package/sdk/dist/protocols/wormhole/addresses.d.ts.map +1 -1
  744. package/sdk/dist/protocols/wormhole/addresses.js +9 -0
  745. package/sdk/dist/protocols/wormhole/addresses.js.map +1 -1
  746. package/sdk/dist/protocols/zerolend/addresses.d.ts.map +1 -1
  747. package/sdk/dist/protocols/zerolend/addresses.js +2 -1
  748. package/sdk/dist/protocols/zerolend/addresses.js.map +1 -1
  749. package/sdk/dist/protocols/zerox/addresses.d.ts.map +1 -1
  750. package/sdk/dist/protocols/zerox/addresses.js +2 -1
  751. package/sdk/dist/protocols/zerox/addresses.js.map +1 -1
  752. package/sdk/dist/protocols/zksync-bridge/abis.d.ts +1 -1
  753. package/sdk/dist/protocols/zksync-bridge/abis.js +1 -1
  754. package/sdk/dist/recipes/cctp-transfer.d.ts +17 -6
  755. package/sdk/dist/recipes/cctp-transfer.d.ts.map +1 -1
  756. package/sdk/dist/recipes/cctp-transfer.js +7 -20
  757. package/sdk/dist/recipes/cctp-transfer.js.map +1 -1
  758. package/sdk/dist/recipes/index.d.ts +5 -15
  759. package/sdk/dist/recipes/index.d.ts.map +1 -1
  760. package/sdk/dist/recipes/index.js +19 -36
  761. package/sdk/dist/recipes/index.js.map +1 -1
  762. package/sdk/dist/recipes/settle.sauce.ts +15 -2
  763. package/sdk/dist/routes/chain-exports.generated.d.ts +97 -0
  764. package/sdk/dist/routes/chain-exports.generated.d.ts.map +1 -0
  765. package/sdk/dist/routes/chain-exports.generated.js +91 -0
  766. package/sdk/dist/routes/chain-exports.generated.js.map +1 -0
  767. package/sdk/dist/routes/compile-types.d.ts +3 -0
  768. package/sdk/dist/routes/compile-types.d.ts.map +1 -1
  769. package/sdk/dist/routes/composed.d.ts +13 -0
  770. package/sdk/dist/routes/composed.d.ts.map +1 -0
  771. package/sdk/dist/routes/composed.js +94 -0
  772. package/sdk/dist/routes/composed.js.map +1 -0
  773. package/sdk/dist/routes/encode.d.ts +6 -6
  774. package/sdk/dist/routes/globals.d.ts +19 -4
  775. package/sdk/dist/routes/globals.d.ts.map +1 -1
  776. package/sdk/dist/routes/globals.js +51 -85
  777. package/sdk/dist/routes/globals.js.map +1 -1
  778. package/sdk/dist/routes/index.d.ts +15 -6
  779. package/sdk/dist/routes/index.d.ts.map +1 -1
  780. package/sdk/dist/routes/index.js +17 -5
  781. package/sdk/dist/routes/index.js.map +1 -1
  782. package/sdk/dist/routes/intent-dsl.d.ts +60 -19
  783. package/sdk/dist/routes/intent-dsl.d.ts.map +1 -1
  784. package/sdk/dist/routes/intent-dsl.js +175 -67
  785. package/sdk/dist/routes/intent-dsl.js.map +1 -1
  786. package/sdk/dist/routes/intent-pot.d.ts +49 -0
  787. package/sdk/dist/routes/intent-pot.d.ts.map +1 -0
  788. package/sdk/dist/routes/intent-pot.js +46 -0
  789. package/sdk/dist/routes/intent-pot.js.map +1 -0
  790. package/sdk/dist/routes/intent-sugar.d.ts +97 -0
  791. package/sdk/dist/routes/intent-sugar.d.ts.map +1 -0
  792. package/sdk/dist/routes/intent-sugar.js +615 -0
  793. package/sdk/dist/routes/intent-sugar.js.map +1 -0
  794. package/sdk/dist/routes/nest-dynamic.d.ts +146 -0
  795. package/sdk/dist/routes/nest-dynamic.d.ts.map +1 -0
  796. package/sdk/dist/routes/nest-dynamic.js +308 -0
  797. package/sdk/dist/routes/nest-dynamic.js.map +1 -0
  798. package/sdk/dist/routes/nest.d.ts +16 -5
  799. package/sdk/dist/routes/nest.d.ts.map +1 -1
  800. package/sdk/dist/routes/nest.js +29 -10
  801. package/sdk/dist/routes/nest.js.map +1 -1
  802. package/sdk/dist/routes/portal.d.ts +7 -272
  803. package/sdk/dist/routes/portal.d.ts.map +1 -1
  804. package/sdk/dist/routes/portal.js +13 -92
  805. package/sdk/dist/routes/portal.js.map +1 -1
  806. package/sdk/dist/routes/protocol-rewrite.d.ts.map +1 -1
  807. package/sdk/dist/routes/protocol-rewrite.js +2 -0
  808. package/sdk/dist/routes/protocol-rewrite.js.map +1 -1
  809. package/sdk/dist/routes/rs-compile.d.ts +26 -15
  810. package/sdk/dist/routes/rs-compile.d.ts.map +1 -1
  811. package/sdk/dist/routes/rs-compile.js +57 -169
  812. package/sdk/dist/routes/rs-compile.js.map +1 -1
  813. package/sdk/dist/routes/sauce-route.d.ts +26 -1
  814. package/sdk/dist/routes/sauce-route.d.ts.map +1 -1
  815. package/sdk/dist/routes/sauce-route.js +109 -6
  816. package/sdk/dist/routes/sauce-route.js.map +1 -1
  817. package/sdk/dist/routes/source-globals.generated.d.ts +435 -20
  818. package/sdk/dist/routes/source-globals.generated.d.ts.map +1 -1
  819. package/sdk/dist/routes/template.d.ts +184 -0
  820. package/sdk/dist/routes/template.d.ts.map +1 -0
  821. package/sdk/dist/routes/template.js +338 -0
  822. package/sdk/dist/routes/template.js.map +1 -0
  823. package/sdk/dist/routes/token-registry.d.ts.map +1 -1
  824. package/sdk/dist/routes/token-registry.js +35 -0
  825. package/sdk/dist/routes/token-registry.js.map +1 -1
  826. package/sdk/dist/routes/token-rewrite.d.ts +1 -1
  827. package/sdk/dist/routes/token-rewrite.d.ts.map +1 -1
  828. package/sdk/dist/skills/loader.d.ts +2 -7
  829. package/sdk/dist/skills/loader.d.ts.map +1 -1
  830. package/sdk/dist/skills/loader.js +14 -25
  831. package/sdk/dist/skills/loader.js.map +1 -1
  832. package/sdk/dist/std/token/token.evm.js +56 -15
  833. package/sdk/dist/std/token/token.svm.js +24 -3
  834. package/sdk/dist/svm/accessors.d.ts +3 -3
  835. package/sdk/dist/svm/accessors.js +3 -3
  836. package/sdk/dist/svm/client.d.ts +1 -0
  837. package/sdk/dist/svm/client.d.ts.map +1 -1
  838. package/sdk/dist/svm/client.js +6 -0
  839. package/sdk/dist/svm/client.js.map +1 -1
  840. package/sdk/dist/svm/clusters.d.ts +6 -2
  841. package/sdk/dist/svm/clusters.d.ts.map +1 -1
  842. package/sdk/dist/svm/clusters.js +0 -2
  843. package/sdk/dist/svm/clusters.js.map +1 -1
  844. package/sdk/dist/svm/engine-artifacts.d.ts +24 -13
  845. package/sdk/dist/svm/engine-artifacts.d.ts.map +1 -1
  846. package/sdk/dist/svm/engine-artifacts.js +31 -26
  847. package/sdk/dist/svm/engine-artifacts.js.map +1 -1
  848. package/sdk/dist/svm/engine-public.d.ts.map +1 -1
  849. package/sdk/dist/svm/engine-public.js +2 -1
  850. package/sdk/dist/svm/engine-public.js.map +1 -1
  851. package/sdk/dist/svm/index.d.ts +0 -1
  852. package/sdk/dist/svm/index.d.ts.map +1 -1
  853. package/sdk/dist/svm/index.js +3 -1
  854. package/sdk/dist/svm/index.js.map +1 -1
  855. package/sdk/dist/svm/intent.d.ts.map +1 -1
  856. package/sdk/dist/svm/intent.js +4 -3
  857. package/sdk/dist/svm/intent.js.map +1 -1
  858. package/sdk/dist/svm/loader.d.ts.map +1 -1
  859. package/sdk/dist/svm/loader.js +2 -3
  860. package/sdk/dist/svm/loader.js.map +1 -1
  861. package/sdk/dist/svm/recipes/index.d.ts +57 -4
  862. package/sdk/dist/svm/recipes/index.d.ts.map +1 -1
  863. package/sdk/dist/svm/recipes/index.js +7 -9
  864. package/sdk/dist/svm/recipes/index.js.map +1 -1
  865. package/sdk/dist/svm/venues/alphaq/index.d.ts.map +1 -1
  866. package/sdk/dist/svm/venues/alphaq/index.js +4 -2
  867. package/sdk/dist/svm/venues/alphaq/index.js.map +1 -1
  868. package/sdk/dist/svm/venues/binaryfi/index.d.ts.map +1 -1
  869. package/sdk/dist/svm/venues/binaryfi/index.js +2 -1
  870. package/sdk/dist/svm/venues/binaryfi/index.js.map +1 -1
  871. package/sdk/dist/svm/venues/fluxbeam/index.d.ts.map +1 -1
  872. package/sdk/dist/svm/venues/fluxbeam/index.js +2 -7
  873. package/sdk/dist/svm/venues/fluxbeam/index.js.map +1 -1
  874. package/sdk/dist/svm/venues/jupiter-lend-earn/index.d.ts.map +1 -1
  875. package/sdk/dist/svm/venues/jupiter-lend-earn/index.js +2 -1
  876. package/sdk/dist/svm/venues/jupiter-lend-earn/index.js.map +1 -1
  877. package/sdk/dist/svm/venues/kipseli/index.d.ts.map +1 -1
  878. package/sdk/dist/svm/venues/kipseli/index.js +31 -14
  879. package/sdk/dist/svm/venues/kipseli/index.js.map +1 -1
  880. package/sdk/dist/svm/venues/mercurial/index.d.ts.map +1 -1
  881. package/sdk/dist/svm/venues/mercurial/index.js +2 -7
  882. package/sdk/dist/svm/venues/mercurial/index.js.map +1 -1
  883. package/sdk/dist/svm/venues/meteora-damm-v1-stable/index.d.ts.map +1 -1
  884. package/sdk/dist/svm/venues/meteora-damm-v1-stable/index.js +3 -2
  885. package/sdk/dist/svm/venues/meteora-damm-v1-stable/index.js.map +1 -1
  886. package/sdk/dist/svm/venues/mswap/index.d.ts.map +1 -1
  887. package/sdk/dist/svm/venues/mswap/index.js +2 -2
  888. package/sdk/dist/svm/venues/mswap/index.js.map +1 -1
  889. package/sdk/dist/svm/venues/orca-legacy-token-swap/index.d.ts.map +1 -1
  890. package/sdk/dist/svm/venues/orca-legacy-token-swap/index.js +2 -7
  891. package/sdk/dist/svm/venues/orca-legacy-token-swap/index.js.map +1 -1
  892. package/sdk/dist/svm/venues/saber-stableswap/index.d.ts.map +1 -1
  893. package/sdk/dist/svm/venues/saber-stableswap/index.js +2 -7
  894. package/sdk/dist/svm/venues/saber-stableswap/index.js.map +1 -1
  895. package/sdk/dist/svm/venues/sanctum-infinity/index.js +2 -2
  896. package/sdk/dist/svm/venues/sanctum-infinity/index.js.map +1 -1
  897. package/sdk/dist/svm/venues/sanctum-stake-pool/index.d.ts.map +1 -1
  898. package/sdk/dist/svm/venues/sanctum-stake-pool/index.js +2 -8
  899. package/sdk/dist/svm/venues/sanctum-stake-pool/index.js.map +1 -1
  900. package/sdk/dist/svm/venues/spl-token-swap-forks/index.d.ts.map +1 -1
  901. package/sdk/dist/svm/venues/spl-token-swap-forks/index.js +2 -7
  902. package/sdk/dist/svm/venues/spl-token-swap-forks/index.js.map +1 -1
  903. package/sdk/dist/svm/venues/stabble-common.d.ts.map +1 -1
  904. package/sdk/dist/svm/venues/stabble-common.js +3 -8
  905. package/sdk/dist/svm/venues/stabble-common.js.map +1 -1
  906. package/sdk/dist/svm/verify.d.ts.map +1 -1
  907. package/sdk/dist/svm/verify.js +1 -4
  908. package/sdk/dist/svm/verify.js.map +1 -1
  909. package/sdk/dist/swap/index.d.ts +4 -4
  910. package/sdk/dist/swap/index.d.ts.map +1 -1
  911. package/sdk/dist/swap/index.js +4 -4
  912. package/sdk/dist/swap/index.js.map +1 -1
  913. package/sdk/dist/swap/source.d.ts +0 -7
  914. package/sdk/dist/swap/source.d.ts.map +1 -1
  915. package/sdk/dist/swap/source.js +3 -11
  916. package/sdk/dist/swap/source.js.map +1 -1
  917. package/sdk/dist/token/api.d.ts +8 -9
  918. package/sdk/dist/token/api.d.ts.map +1 -1
  919. package/sdk/dist/token/api.js +4 -5
  920. package/sdk/dist/token/api.js.map +1 -1
  921. package/sdk/dist/token/evm.d.ts +5 -2
  922. package/sdk/dist/token/evm.d.ts.map +1 -1
  923. package/sdk/dist/token/evm.js +24 -13
  924. package/sdk/dist/token/evm.js.map +1 -1
  925. package/sdk/dist/token/index.d.ts +4 -4
  926. package/sdk/dist/token/index.js +4 -4
  927. package/sdk/dist/token/safe.d.ts +17 -0
  928. package/sdk/dist/token/safe.d.ts.map +1 -0
  929. package/sdk/dist/token/safe.js +211 -0
  930. package/sdk/dist/token/safe.js.map +1 -0
  931. package/sdk/dist/token/source.d.ts +0 -4
  932. package/sdk/dist/token/source.d.ts.map +1 -1
  933. package/sdk/dist/token/source.js +7 -10
  934. package/sdk/dist/token/source.js.map +1 -1
  935. package/sdk/dist/verify/decode.d.ts +6 -6
  936. package/sdk/dist/verify/decode.js +7 -7
  937. package/sdk/dist/verify/decode.js.map +1 -1
  938. package/sdk/dist/verify/index.js +2 -2
  939. package/sdk/dist/verify/intent.js +2 -2
  940. package/sdk/dist/verify/vectors.d.ts +1 -1
  941. package/sdk/dist/verify/vectors.d.ts.map +1 -1
  942. package/sdk/dist/verify/vectors.js +2 -2
  943. package/sdk/dist/verify/vectors.js.map +1 -1
  944. package/sdk/dist/verify/wire.d.ts +21 -4
  945. package/sdk/dist/verify/wire.d.ts.map +1 -1
  946. package/sdk/dist/verify/wire.js +21 -4
  947. package/sdk/dist/verify/wire.js.map +1 -1
  948. package/sdk/dist/wasm-compiler.d.ts +31 -0
  949. package/sdk/dist/wasm-compiler.d.ts.map +1 -0
  950. package/sdk/dist/wasm-compiler.js +52 -0
  951. package/sdk/dist/wasm-compiler.js.map +1 -0
  952. package/sdk/src/protocols/aave-v4/AaveV4HubABI.json +67 -0
  953. package/sdk/src/protocols/aave-v4/AaveV4SpokeABI.json +215 -0
  954. package/sdk/src/protocols/aave-v4/abis.ts +139 -0
  955. package/sdk/src/protocols/aave-v4/addresses.ts +66 -0
  956. package/sdk/src/protocols/aave-v4/functions.ts +39 -0
  957. package/sdk/src/protocols/aave-v4/index.ts +4 -0
  958. package/sdk/src/protocols/aave-v4/info.ts +14 -0
  959. package/sdk/src/protocols/across/AcrossHubPoolABI.json +2 -2
  960. package/sdk/src/protocols/across/AcrossSpokePoolABI.json +27 -11
  961. package/sdk/src/protocols/across/abis.ts +16 -8
  962. package/sdk/src/protocols/across/addresses.ts +10 -0
  963. package/sdk/src/protocols/across/functions.ts +2 -2
  964. package/sdk/src/protocols/aerodrome-slipstream/AeroMetarouterABI.json +24 -0
  965. package/sdk/src/protocols/aerodrome-slipstream/SlipstreamCLFactoryABI.json +58 -0
  966. package/sdk/src/protocols/aerodrome-slipstream/SlipstreamPositionManagerABI.json +77 -0
  967. package/sdk/src/protocols/aerodrome-slipstream/abis.ts +74 -0
  968. package/sdk/src/protocols/aerodrome-slipstream/addresses.ts +40 -0
  969. package/sdk/src/protocols/aerodrome-slipstream/functions.ts +8 -0
  970. package/sdk/src/protocols/aerodrome-slipstream/index.ts +4 -0
  971. package/sdk/src/protocols/aerodrome-slipstream/info.ts +14 -0
  972. package/sdk/src/protocols/aevo/DepositContractABI.json +23 -2
  973. package/sdk/src/protocols/aevo/abis.ts +10 -2
  974. package/sdk/src/protocols/aevo/functions.ts +2 -2
  975. package/sdk/src/protocols/alchemix/AlchemistABI.json +1 -1
  976. package/sdk/src/protocols/alchemix/abis.ts +1 -1
  977. package/sdk/src/protocols/ambient/CrocSwapDexABI.json +2 -2
  978. package/sdk/src/protocols/ambient/abis.ts +3 -2
  979. package/sdk/src/protocols/ambient/addresses.ts +2 -1
  980. package/sdk/src/protocols/arrakis/ArrakisRouterABI.json +5 -1
  981. package/sdk/src/protocols/arrakis/ArrakisVaultABI.json +0 -16
  982. package/sdk/src/protocols/arrakis/abis.ts +2 -11
  983. package/sdk/src/protocols/arrakis/functions.ts +2 -1
  984. package/sdk/src/protocols/axelar/AxelarITSABI.json +1 -1
  985. package/sdk/src/protocols/axelar/abis.ts +1 -1
  986. package/sdk/src/protocols/balancer-v2/BalancerV2VaultABI.json +7 -7
  987. package/sdk/src/protocols/balancer-v2/abis.ts +7 -7
  988. package/sdk/src/protocols/cbeth/CbETHABI.json +10 -1
  989. package/sdk/src/protocols/cbeth/abis.ts +6 -2
  990. package/sdk/src/protocols/cctp/TokenMessengerABI.json +30 -9
  991. package/sdk/src/protocols/cctp/abis.ts +3 -1
  992. package/sdk/src/protocols/cctp/addresses.ts +3 -0
  993. package/sdk/src/protocols/chainlink/AggregatorV3ABI.json +3 -3
  994. package/sdk/src/protocols/chainlink/FeedRegistryABI.json +3 -3
  995. package/sdk/src/protocols/chainlink/abis.ts +6 -6
  996. package/sdk/src/protocols/chainlink/addresses.ts +10 -0
  997. package/sdk/src/protocols/chainlink-ccip/CCIPRouterABI.json +1 -1
  998. package/sdk/src/protocols/chainlink-ccip/abis.ts +1 -1
  999. package/sdk/src/protocols/chainlink-ccip/addresses.ts +9 -0
  1000. package/sdk/src/protocols/circle-gateway/GatewayMinterABI.json +49 -0
  1001. package/sdk/src/protocols/circle-gateway/GatewayWalletABI.json +111 -0
  1002. package/sdk/src/protocols/circle-gateway/abis.ts +86 -0
  1003. package/sdk/src/protocols/circle-gateway/addresses.ts +39 -0
  1004. package/sdk/src/protocols/circle-gateway/functions.ts +28 -0
  1005. package/sdk/src/protocols/circle-gateway/index.ts +4 -0
  1006. package/sdk/src/protocols/circle-gateway/info.ts +14 -0
  1007. package/sdk/src/protocols/compound-v2/CErc20ABI.json +2 -2
  1008. package/sdk/src/protocols/compound-v2/abis.ts +2 -2
  1009. package/sdk/src/protocols/connext/EverclearSpokeABI.json +60 -6
  1010. package/sdk/src/protocols/connext/abis.ts +27 -5
  1011. package/sdk/src/protocols/connext/addresses.ts +1 -7
  1012. package/sdk/src/protocols/connext/functions.ts +3 -2
  1013. package/sdk/src/protocols/curve/CurveRouterNGABI.json +37 -0
  1014. package/sdk/src/protocols/curve/CurveStableSwapABI.json +7 -7
  1015. package/sdk/src/protocols/curve/CurveThreePoolABI.json +117 -0
  1016. package/sdk/src/protocols/curve/abis.ts +91 -7
  1017. package/sdk/src/protocols/debridge/DlnDestinationABI.json +7 -7
  1018. package/sdk/src/protocols/debridge/DlnSourceABI.json +1 -1
  1019. package/sdk/src/protocols/debridge/abis.ts +5 -5
  1020. package/sdk/src/protocols/debridge/addresses.ts +11 -0
  1021. package/sdk/src/protocols/eco-routes/abis.ts +633 -0
  1022. package/sdk/src/protocols/eco-routes/addresses.generated.ts +589 -0
  1023. package/sdk/src/protocols/eco-routes/addresses.ts +27 -0
  1024. package/sdk/src/protocols/eco-routes/functions.ts +45 -0
  1025. package/sdk/src/protocols/eco-routes/index.ts +5 -0
  1026. package/sdk/src/protocols/eco-routes/info.ts +14 -0
  1027. package/sdk/src/protocols/eco-routes/lookup.ts +215 -0
  1028. package/sdk/src/protocols/eigenlayer/DelegationManagerABI.json +2 -2
  1029. package/sdk/src/protocols/eigenlayer/StrategyManagerABI.json +2 -2
  1030. package/sdk/src/protocols/eigenlayer/abis.ts +5 -4
  1031. package/sdk/src/protocols/ens/ENSRegistryABI.json +4 -4
  1032. package/sdk/src/protocols/ens/abis.ts +4 -4
  1033. package/sdk/src/protocols/etherfi/WeETHABI.json +1 -1
  1034. package/sdk/src/protocols/etherfi/abis.ts +2 -1
  1035. package/sdk/src/protocols/euler-v2/EVCABI.json +2 -2
  1036. package/sdk/src/protocols/euler-v2/abis.ts +2 -2
  1037. package/sdk/src/protocols/fluid/FluidLendingABI.json +20 -37
  1038. package/sdk/src/protocols/fluid/FluidVaultABI.json +41 -0
  1039. package/sdk/src/protocols/fluid/abis.ts +41 -18
  1040. package/sdk/src/protocols/fluid/functions.ts +18 -16
  1041. package/sdk/src/protocols/gains-network/DiamondABI.json +49 -37
  1042. package/sdk/src/protocols/gains-network/abis.ts +26 -21
  1043. package/sdk/src/protocols/gains-network/functions.ts +6 -6
  1044. package/sdk/src/protocols/gamma/UniProxyLegacyABI.json +62 -0
  1045. package/sdk/src/protocols/gamma/abis.ts +31 -0
  1046. package/sdk/src/protocols/gamma/addresses.ts +2 -7
  1047. package/sdk/src/protocols/gamma/functions.ts +10 -0
  1048. package/sdk/src/protocols/gelato/GelatoAutomateABI.json +2 -2
  1049. package/sdk/src/protocols/gelato/abis.ts +2 -2
  1050. package/sdk/src/protocols/gmx-v1/PositionRouterABI.json +21 -3
  1051. package/sdk/src/protocols/gmx-v1/abis.ts +5 -3
  1052. package/sdk/src/protocols/gmx-v1/functions.ts +2 -2
  1053. package/sdk/src/protocols/gmx-v2/ExchangeRouterABI.json +13 -5
  1054. package/sdk/src/protocols/gmx-v2/abis.ts +7 -4
  1055. package/sdk/src/protocols/gmx-v2/addresses.ts +3 -1
  1056. package/sdk/src/protocols/gmx-v2/functions.ts +4 -2
  1057. package/sdk/src/protocols/harvest/VaultABI.json +12 -2
  1058. package/sdk/src/protocols/harvest/abis.ts +2 -2
  1059. package/sdk/src/protocols/hegic/HegicABI.json +6 -2
  1060. package/sdk/src/protocols/hegic/abis.ts +7 -2
  1061. package/sdk/src/protocols/hegic/addresses.ts +1 -0
  1062. package/sdk/src/protocols/hegic/functions.ts +3 -3
  1063. package/sdk/src/protocols/hop/addresses.ts +5 -2
  1064. package/sdk/src/protocols/hyperlane/HyperlaneMailboxABI.json +5 -5
  1065. package/sdk/src/protocols/hyperlane/abis.ts +5 -5
  1066. package/sdk/src/protocols/hyperlane/addresses.ts +9 -0
  1067. package/sdk/src/protocols/index.ts +13 -0
  1068. package/sdk/src/protocols/kim/KimRouterABI.json +8 -27
  1069. package/sdk/src/protocols/kim/abis.ts +6 -12
  1070. package/sdk/src/protocols/kim/functions.ts +3 -2
  1071. package/sdk/src/protocols/kyberswap/KyberSwapElasticRouterABI.json +1 -1
  1072. package/sdk/src/protocols/kyberswap/KyberSwapMetaAggregationRouterABI.json +52 -18
  1073. package/sdk/src/protocols/kyberswap/abis.ts +21 -8
  1074. package/sdk/src/protocols/kyberswap/addresses.ts +12 -2
  1075. package/sdk/src/protocols/kyberswap-aggregator/addresses.ts +12 -1
  1076. package/sdk/src/protocols/layerbank/LTokenABI.json +19 -29
  1077. package/sdk/src/protocols/layerbank/LayerBankCoreABI.json +87 -2
  1078. package/sdk/src/protocols/layerbank/abis.ts +69 -17
  1079. package/sdk/src/protocols/layerbank/addresses.ts +3 -1
  1080. package/sdk/src/protocols/layerbank/functions.ts +18 -16
  1081. package/sdk/src/protocols/layerzero/LayerZeroEndpointV2ABI.json +3 -3
  1082. package/sdk/src/protocols/layerzero/abis.ts +3 -3
  1083. package/sdk/src/protocols/layerzero/addresses.ts +11 -1
  1084. package/sdk/src/protocols/level-finance/LiquidityPoolABI.json +8 -0
  1085. package/sdk/src/protocols/level-finance/abis.ts +2 -0
  1086. package/sdk/src/protocols/level-finance/functions.ts +4 -4
  1087. package/sdk/src/protocols/lifi/LiFiDiamondABI.json +54 -4
  1088. package/sdk/src/protocols/lifi/abis.ts +24 -4
  1089. package/sdk/src/protocols/lifi/addresses.ts +9 -0
  1090. package/sdk/src/protocols/lifi/functions.ts +5 -2
  1091. package/sdk/src/protocols/liquity-v1/BorrowerOperationsABI.json +8 -0
  1092. package/sdk/src/protocols/liquity-v1/abis.ts +7 -1
  1093. package/sdk/src/protocols/liquity-v1/functions.ts +1 -1
  1094. package/sdk/src/protocols/mantle-meth/METHABI.json +0 -46
  1095. package/sdk/src/protocols/mantle-meth/METHStakingABI.json +50 -0
  1096. package/sdk/src/protocols/mantle-meth/abis.ts +23 -17
  1097. package/sdk/src/protocols/mantle-meth/addresses.ts +3 -0
  1098. package/sdk/src/protocols/mantle-meth/functions.ts +4 -4
  1099. package/sdk/src/protocols/maverick/MaverickV2FactoryABI.json +8 -0
  1100. package/sdk/src/protocols/maverick/MaverickV2RouterABI.json +4 -0
  1101. package/sdk/src/protocols/maverick/abis.ts +7 -1
  1102. package/sdk/src/protocols/morpho-blue/addresses.ts +10 -0
  1103. package/sdk/src/protocols/mux-protocol/LiquidityPoolABI.json +45 -11
  1104. package/sdk/src/protocols/mux-protocol/OrderBookABI.json +59 -17
  1105. package/sdk/src/protocols/mux-protocol/abis.ts +55 -22
  1106. package/sdk/src/protocols/mux-protocol/functions.ts +8 -8
  1107. package/sdk/src/protocols/olympus/StakingABI.json +8 -3
  1108. package/sdk/src/protocols/olympus/abis.ts +2 -2
  1109. package/sdk/src/protocols/oneinch/AggregationRouterV6ABI.json +5 -5
  1110. package/sdk/src/protocols/oneinch/abis.ts +5 -3
  1111. package/sdk/src/protocols/oneinch/functions.ts +2 -2
  1112. package/sdk/src/protocols/openocean/OpenOceanExchangeV2ABI.json +19 -1
  1113. package/sdk/src/protocols/openocean/abis.ts +11 -1
  1114. package/sdk/src/protocols/openocean/functions.ts +1 -1
  1115. package/sdk/src/protocols/opyn/ControllerABI.json +6 -1
  1116. package/sdk/src/protocols/opyn/abis.ts +1 -1
  1117. package/sdk/src/protocols/pancakeswap-v3/PancakeSwapV3FactoryABI.json +1 -1
  1118. package/sdk/src/protocols/pancakeswap-v3/PancakeSwapV3NFPMABI.json +3 -3
  1119. package/sdk/src/protocols/pancakeswap-v3/PancakeSwapV3SmartRouterABI.json +2 -2
  1120. package/sdk/src/protocols/pancakeswap-v3/abis.ts +6 -6
  1121. package/sdk/src/protocols/paraswap/AugustusV5ABI.json +1 -1
  1122. package/sdk/src/protocols/paraswap/abis.ts +1 -1
  1123. package/sdk/src/protocols/pendle/PendleRouterABI.json +392 -6
  1124. package/sdk/src/protocols/pendle/abis.ts +160 -6
  1125. package/sdk/src/protocols/permit2/Permit2ABI.json +1 -1
  1126. package/sdk/src/protocols/permit2/abis.ts +1 -1
  1127. package/sdk/src/protocols/permit2/addresses.ts +9 -0
  1128. package/sdk/src/protocols/perpetual-protocol/ClearingHouseABI.json +61 -49
  1129. package/sdk/src/protocols/perpetual-protocol/abis.ts +27 -14
  1130. package/sdk/src/protocols/premia/DiamondABI.json +24 -24
  1131. package/sdk/src/protocols/premia/abis.ts +20 -10
  1132. package/sdk/src/protocols/premia/addresses.ts +3 -8
  1133. package/sdk/src/protocols/premia/functions.ts +8 -8
  1134. package/sdk/src/protocols/pyth/PythOracleABI.json +3 -3
  1135. package/sdk/src/protocols/pyth/abis.ts +6 -3
  1136. package/sdk/src/protocols/reflexer/ETHJoinABI.json +5 -1
  1137. package/sdk/src/protocols/reflexer/SAFEEngineABI.json +4 -4
  1138. package/sdk/src/protocols/reflexer/abis.ts +10 -6
  1139. package/sdk/src/protocols/renzo/RestakeManagerABI.json +1 -1
  1140. package/sdk/src/protocols/renzo/abis.ts +1 -1
  1141. package/sdk/src/protocols/sablier/LockupLinearABI.json +2 -2
  1142. package/sdk/src/protocols/sablier/abis.ts +2 -2
  1143. package/sdk/src/protocols/safe/addresses.ts +10 -0
  1144. package/sdk/src/protocols/seaport/SeaportABI.json +87 -5
  1145. package/sdk/src/protocols/seaport/abis.ts +41 -5
  1146. package/sdk/src/protocols/seaport/addresses.ts +10 -0
  1147. package/sdk/src/protocols/seaport/functions.ts +1 -0
  1148. package/sdk/src/protocols/silo/SiloABI.json +4 -0
  1149. package/sdk/src/protocols/silo/abis.ts +4 -1
  1150. package/sdk/src/protocols/silo/addresses.ts +2 -1
  1151. package/sdk/src/protocols/silo/functions.ts +2 -1
  1152. package/sdk/src/protocols/socket/SocketGatewayABI.json +1 -17
  1153. package/sdk/src/protocols/socket/abis.ts +3 -11
  1154. package/sdk/src/protocols/socket/functions.ts +1 -1
  1155. package/sdk/src/protocols/spookyswap/addresses.ts +2 -1
  1156. package/sdk/src/protocols/squid/SquidRouterABI.json +42 -26
  1157. package/sdk/src/protocols/squid/abis.ts +19 -13
  1158. package/sdk/src/protocols/squid/functions.ts +2 -2
  1159. package/sdk/src/protocols/stargate/StargatePoolABI.json +31 -3
  1160. package/sdk/src/protocols/stargate/abis.ts +19 -3
  1161. package/sdk/src/protocols/superfluid/CFAForwarderABI.json +2 -2
  1162. package/sdk/src/protocols/superfluid/abis.ts +2 -2
  1163. package/sdk/src/protocols/sushiswap-v2/addresses.ts +2 -1
  1164. package/sdk/src/protocols/swell/RswETHABI.json +1 -6
  1165. package/sdk/src/protocols/swell/SwETHABI.json +1 -6
  1166. package/sdk/src/protocols/swell/abis.ts +4 -2
  1167. package/sdk/src/protocols/swell/functions.ts +4 -2
  1168. package/sdk/src/protocols/synapse/addresses.ts +2 -1
  1169. package/sdk/src/protocols/synthetix-v3/PerpsMarketProxyABI.json +54 -5
  1170. package/sdk/src/protocols/synthetix-v3/abis.ts +27 -5
  1171. package/sdk/src/protocols/synthetix-v3/addresses.ts +2 -1
  1172. package/sdk/src/protocols/synthra-v3/SynthraV3FactoryABI.json +54 -0
  1173. package/sdk/src/protocols/synthra-v3/SynthraV3NonfungiblePositionManagerABI.json +212 -0
  1174. package/sdk/src/protocols/synthra-v3/SynthraV3QuoterV2ABI.json +55 -0
  1175. package/sdk/src/protocols/synthra-v3/SynthraV3SwapRouter02ABI.json +168 -0
  1176. package/sdk/src/protocols/synthra-v3/abis.ts +244 -0
  1177. package/sdk/src/protocols/synthra-v3/addresses.ts +17 -0
  1178. package/sdk/src/protocols/synthra-v3/functions.ts +8 -0
  1179. package/sdk/src/protocols/synthra-v3/index.ts +4 -0
  1180. package/sdk/src/protocols/synthra-v3/info.ts +13 -0
  1181. package/sdk/src/protocols/thales/PositionalMarketABI.json +16 -0
  1182. package/sdk/src/protocols/thales/SpeedMarketsAMMABI.json +57 -22
  1183. package/sdk/src/protocols/thales/ThalesAMMABI.json +4 -11
  1184. package/sdk/src/protocols/thales/abis.ts +28 -11
  1185. package/sdk/src/protocols/thales/functions.ts +5 -6
  1186. package/sdk/src/protocols/thruster/ThrusterV3SwapRouterABI.json +1 -1
  1187. package/sdk/src/protocols/thruster/abis.ts +1 -1
  1188. package/sdk/src/protocols/trader-joe/LBRouterABI.json +3 -3
  1189. package/sdk/src/protocols/trader-joe/abis.ts +2 -2
  1190. package/sdk/src/protocols/uniswap-v2/addresses.ts +10 -0
  1191. package/sdk/src/protocols/uniswap-v3/UniswapV3FactoryABI.json +2 -2
  1192. package/sdk/src/protocols/uniswap-v3/UniswapV3NonfungiblePositionManagerABI.json +3 -3
  1193. package/sdk/src/protocols/uniswap-v3/UniswapV3QuoterV2ABI.json +1 -1
  1194. package/sdk/src/protocols/uniswap-v3/UniswapV3SwapRouter02ABI.json +168 -0
  1195. package/sdk/src/protocols/uniswap-v3/UniswapV3SwapRouterABI.json +2 -2
  1196. package/sdk/src/protocols/uniswap-v3/abis.ts +91 -8
  1197. package/sdk/src/protocols/uniswap-v3/addresses.ts +14 -0
  1198. package/sdk/src/protocols/uniswap-v4/UniswapV4PoolManagerABI.json +15 -15
  1199. package/sdk/src/protocols/uniswap-v4/UniswapV4UniversalRouterABI.json +16 -0
  1200. package/sdk/src/protocols/uniswap-v4/abis.ts +25 -15
  1201. package/sdk/src/protocols/uniswap-v4/addresses.ts +11 -0
  1202. package/sdk/src/protocols/unitflow-v3/UnitFlowV3FactoryABI.json +46 -0
  1203. package/sdk/src/protocols/unitflow-v3/UnitFlowV3QuoterABI.json +37 -0
  1204. package/sdk/src/protocols/unitflow-v3/UnitFlowV3RouterABI.json +67 -0
  1205. package/sdk/src/protocols/unitflow-v3/abis.ts +71 -0
  1206. package/sdk/src/protocols/unitflow-v3/addresses.ts +20 -0
  1207. package/sdk/src/protocols/unitflow-v3/functions.ts +8 -0
  1208. package/sdk/src/protocols/unitflow-v3/index.ts +4 -0
  1209. package/sdk/src/protocols/unitflow-v3/info.ts +14 -0
  1210. package/sdk/src/protocols/velodrome/addresses.ts +3 -1
  1211. package/sdk/src/protocols/venus/VBNBABI.json +86 -0
  1212. package/sdk/src/protocols/venus/VTokenABI.json +1 -1
  1213. package/sdk/src/protocols/venus/abis.ts +49 -1
  1214. package/sdk/src/protocols/vertex/ClearinghouseABI.json +20 -10
  1215. package/sdk/src/protocols/vertex/EndpointABI.json +1 -1
  1216. package/sdk/src/protocols/vertex/abis.ts +13 -4
  1217. package/sdk/src/protocols/wormhole/WormholeTokenBridgeABI.json +2 -2
  1218. package/sdk/src/protocols/wormhole/abis.ts +2 -2
  1219. package/sdk/src/protocols/wormhole/addresses.ts +9 -0
  1220. package/sdk/src/protocols/zerolend/addresses.ts +2 -1
  1221. package/sdk/src/protocols/zerox/addresses.ts +2 -1
  1222. package/sdk/src/protocols/zksync-bridge/ZkSyncDiamondProxyABI.json +1 -1
  1223. package/sdk/src/protocols/zksync-bridge/abis.ts +1 -1
  1224. package/sdk/src/skills/aave-v4.md +91 -0
  1225. package/sdk/src/skills/across.md +28 -10
  1226. package/sdk/src/skills/aerodrome-slipstream.md +57 -0
  1227. package/sdk/src/skills/aerodrome.md +1 -0
  1228. package/sdk/src/skills/aevo.md +12 -4
  1229. package/sdk/src/skills/ambient.md +2 -2
  1230. package/sdk/src/skills/arrakis.md +3 -3
  1231. package/sdk/src/skills/cbeth.md +2 -2
  1232. package/sdk/src/skills/chainlink-ccip.md +3 -2
  1233. package/sdk/src/skills/chainlink.md +1 -1
  1234. package/sdk/src/skills/circle-gateway.md +98 -0
  1235. package/sdk/src/skills/compound-v2.md +2 -2
  1236. package/sdk/src/skills/connext.md +8 -7
  1237. package/sdk/src/skills/curve.md +17 -2
  1238. package/sdk/src/skills/debridge.md +3 -2
  1239. package/sdk/src/skills/eigenlayer.md +1 -1
  1240. package/sdk/src/skills/etherfi.md +1 -1
  1241. package/sdk/src/skills/fluid.md +46 -39
  1242. package/sdk/src/skills/gains-network.md +13 -21
  1243. package/sdk/src/skills/gamma.md +12 -6
  1244. package/sdk/src/skills/gmx-v1.md +4 -2
  1245. package/sdk/src/skills/gmx-v2.md +6 -2
  1246. package/sdk/src/skills/harvest.md +2 -2
  1247. package/sdk/src/skills/hegic.md +9 -8
  1248. package/sdk/src/skills/hop.md +8 -8
  1249. package/sdk/src/skills/hyperlane.md +4 -3
  1250. package/sdk/src/skills/index.md +84 -77
  1251. package/sdk/src/skills/kim.md +11 -14
  1252. package/sdk/src/skills/kyberswap-aggregator.md +5 -3
  1253. package/sdk/src/skills/kyberswap.md +6 -6
  1254. package/sdk/src/skills/layerbank.md +41 -35
  1255. package/sdk/src/skills/layerzero.md +3 -2
  1256. package/sdk/src/skills/level-finance.md +6 -4
  1257. package/sdk/src/skills/lido.md +5 -5
  1258. package/sdk/src/skills/lifi.md +41 -23
  1259. package/sdk/src/skills/liquity-v1.md +6 -2
  1260. package/sdk/src/skills/loader.ts +15 -25
  1261. package/sdk/src/skills/mantle-meth.md +13 -5
  1262. package/sdk/src/skills/maverick.md +3 -3
  1263. package/sdk/src/skills/morpho-blue.md +1 -1
  1264. package/sdk/src/skills/mux-protocol.md +21 -17
  1265. package/sdk/src/skills/oneinch.md +4 -3
  1266. package/sdk/src/skills/openocean.md +2 -2
  1267. package/sdk/src/skills/opyn.md +1 -1
  1268. package/sdk/src/skills/permit2.md +1 -1
  1269. package/sdk/src/skills/perpetual-protocol.md +2 -2
  1270. package/sdk/src/skills/premia.md +21 -21
  1271. package/sdk/src/skills/reflexer.md +1 -1
  1272. package/sdk/src/skills/renzo.md +1 -1
  1273. package/sdk/src/skills/safe.md +1 -1
  1274. package/sdk/src/skills/seaport.md +3 -2
  1275. package/sdk/src/skills/silo.md +4 -3
  1276. package/sdk/src/skills/socket.md +4 -5
  1277. package/sdk/src/skills/spookyswap.md +2 -2
  1278. package/sdk/src/skills/squid.md +18 -10
  1279. package/sdk/src/skills/stargate.md +1 -1
  1280. package/sdk/src/skills/sushiswap-v2.md +1 -1
  1281. package/sdk/src/skills/swell.md +6 -4
  1282. package/sdk/src/skills/synapse.md +1 -1
  1283. package/sdk/src/skills/synthetix-v3.md +1 -1
  1284. package/sdk/src/skills/synthra-v3.md +57 -0
  1285. package/sdk/src/skills/thales.md +12 -10
  1286. package/sdk/src/skills/trader-joe.md +1 -1
  1287. package/sdk/src/skills/uniswap-v2.md +2 -1
  1288. package/sdk/src/skills/uniswap-v3.md +14 -4
  1289. package/sdk/src/skills/uniswap-v4.md +3 -1
  1290. package/sdk/src/skills/unitflow-v3.md +62 -0
  1291. package/sdk/src/skills/velodrome.md +2 -2
  1292. package/sdk/src/skills/venus.md +10 -2
  1293. package/sdk/src/skills/vertex.md +1 -1
  1294. package/sdk/src/skills/wormhole.md +1 -1
  1295. package/sdk/src/skills/zerolend.md +1 -1
  1296. package/sdk/src/skills/zerox.md +1 -1
  1297. package/sdk/src/skills/zksync-bridge.md +1 -1
  1298. package/actions/dist/megas-swap.d.ts +0 -97
  1299. package/actions/dist/megas-swap.d.ts.map +0 -1
  1300. package/actions/dist/megas-swap.js +0 -286
  1301. package/sdk/dist/routes/globals.generated.d.ts +0 -94
  1302. package/sdk/dist/routes/globals.generated.d.ts.map +0 -1
  1303. package/sdk/dist/routes/globals.generated.js +0 -2
  1304. package/sdk/dist/routes/globals.generated.js.map +0 -1
@@ -0,0 +1,146 @@
1
+ import { type ByteTemplate, type PlaceholderSpec } from "./template.js";
2
+ import type { AddressInput, Hex, Intent } from "./types.js";
3
+ export { WAD } from "./template.js";
4
+ export type { AmountSource, ByteTemplate, PlaceholderSpec, TemplateSlot } from "./template.js";
5
+ /**
6
+ * The canonical 32-byte sentinels a caller writes into a child intent wherever a runtime amount
7
+ * belongs — one ABI word each, which is every amount field on the EVM path (`reward.tokens[].amount`,
8
+ * `route.tokens[].amount`, `nativeAmount`, and any `uint256` inside a `route.calls[].data` the
9
+ * caller encodes itself).
10
+ *
11
+ * The tag `0x5acef00d` in the high bytes and a one-byte discriminant in the low byte make these
12
+ * ~1.5e77 — far outside any token amount — and structurally unmistakable in a trace. They are only a
13
+ * DEFAULT, though, not a magic value the splice recognises: `splitByPlaceholders` matches whatever
14
+ * sentinel the caller declares, and every match is counted and checked, so a collision fails loudly
15
+ * rather than corrupting a field.
16
+ */
17
+ export declare const AMOUNT_IN_PLACEHOLDER: bigint;
18
+ /** @see AMOUNT_IN_PLACEHOLDER */
19
+ export declare const AMOUNT_OUT_PLACEHOLDER: bigint;
20
+ /**
21
+ * The u64-sized twins, for a child whose DESTINATION is Solana: `encodeRouteSvm` Borsh-encodes
22
+ * `route.tokens[].amount` as a `u64` and `assertU64` REJECTS the 32-byte sentinels above outright,
23
+ * so a route-side amount on that leg needs one of these plus `width: 8, littleEndian: true`. The
24
+ * reward side of the same intent still uses the 32-byte sentinels — the reward is escrowed on the
25
+ * EVM source chain and ABI-encoded, whatever the destination is. That asymmetry is `encode.ts`'s,
26
+ * not this module's: `hashIntent` already encodes route and reward for different chain kinds.
27
+ */
28
+ export declare const AMOUNT_IN_PLACEHOLDER_U64: bigint;
29
+ /** @see AMOUNT_IN_PLACEHOLDER_U64 */
30
+ export declare const AMOUNT_OUT_PLACEHOLDER_U64: bigint;
31
+ /**
32
+ * Where the one runtime number comes from.
33
+ *
34
+ * - `erc20Balance` — `IERC20.at(token).balanceOf(ctx.self())`, i.e. what the parent's earlier calls
35
+ * left in the Pot. The default shape, and `IntentChainer`'s only one.
36
+ * - `nativeBalance` — `ctx.selfBalance()`, for a native-in cascade.
37
+ * - `expression` — verbatim SauceScript, the escape hatch for a program that ALREADY holds the
38
+ * number in a local (a swap's own return value, when these statements are inlined into the
39
+ * parent's own body rather than compiled as their own `cook()`). Not validated: whatever is
40
+ * written here is what compiles.
41
+ */
42
+ export type AmountMeasurement = {
43
+ readonly kind: "erc20Balance";
44
+ readonly token: AddressInput;
45
+ } | {
46
+ readonly kind: "nativeBalance";
47
+ } | {
48
+ readonly kind: "expression";
49
+ readonly expression: string;
50
+ };
51
+ export interface DynamicChildOptions {
52
+ /** The Portal the child is published on — the parent's own `route.portal`, since the child's
53
+ * source chain IS the parent's execution chain (`nest.ts`'s module doc has the grounding). */
54
+ readonly portal: AddressInput;
55
+ readonly measure: AmountMeasurement;
56
+ /** WAD-denominated: `amountOut = ceil(amountIn * scale / WAD)`. Defaults to `WAD` (identity, so
57
+ * `amountOut === amountIn`). Carries BOTH the decimals conversion (`1e30` for 6 -> 18 decimals,
58
+ * `1e6` for 18 -> 6) and the proportional margin. */
59
+ readonly scale?: bigint;
60
+ /**
61
+ * Reject a measurement below this floor, reverting the parent's whole fulfillment. Defaults to
62
+ * `1n` — `IntentChainer.ZeroAmount`'s behaviour, and the right default: publishing a child funded
63
+ * with nothing burns the parent for nothing, and the revert is free because it unwinds the same
64
+ * transaction that produced the balance. Pass `0n` to opt out entirely.
65
+ */
66
+ readonly minAmountIn?: bigint;
67
+ /** Passed through to `publishAndFund`. Defaults to `false` — a partially funded child is a
68
+ * stalled cascade (same default as `nest.ts`'s publishAndFund mode). */
69
+ readonly allowPartial?: boolean;
70
+ /**
71
+ * Which sentinels to cut the encoded child at. Defaults to both canonical 32-byte placeholders
72
+ * with no declared occurrence count. Supply this explicitly to PIN the counts (strongly
73
+ * recommended — see `PlaceholderSpec.occurrences`), to apply a per-slot scale, or to template a
74
+ * narrower/little-endian field such as a Borsh `u64`.
75
+ */
76
+ readonly placeholders?: readonly PlaceholderSpec[];
77
+ /**
78
+ * `"auto"` (default) emits one `approve(portal, amount)` per DISTINCT reward token before the
79
+ * publish — the Portal pulls reward legs with `safeTransferFrom(funder = msg.sender)`, and
80
+ * `msg.sender` here is the Pot, so without this the funding silently moves nothing and the call
81
+ * reverts on `InsufficientFunds`. `"none"` emits nothing, for a caller that approved elsewhere.
82
+ */
83
+ readonly approve?: "auto" | "none";
84
+ /** Overrides the native value forwarded to `publishAndFund`. Defaults to `reward.nativeAmount` —
85
+ * exactly, never rounded up; see the module doc's note on `Refund.excessNative`. */
86
+ readonly value?: bigint;
87
+ }
88
+ /**
89
+ * The child's `publishAndFund` calldata, cut into literal segments and slots.
90
+ *
91
+ * Built by `portal.ts#publishAndFundTx` — the SAME encoder the static path uses, so a dynamic child
92
+ * and the concrete intent it renders to are bytes-identical by construction rather than by a second
93
+ * implementation agreeing. That is also what makes the off-chain check in `renderDynamicChild`
94
+ * meaningful: it compares this module's output against an encoder neither this module nor the test
95
+ * re-implements.
96
+ */
97
+ export declare function dynamicChildTemplate(child: Intent, opts: DynamicChildOptions): ByteTemplate;
98
+ /**
99
+ * The exact calldata the emitted program would build for a given measurement — the off-chain twin
100
+ * of the on-chain concatenation, and the only way to check this codegen without an engine. Pair it
101
+ * with `publishAndFundTx` on the equivalent CONCRETE child and the two must be byte-identical.
102
+ */
103
+ export declare function renderDynamicChild(child: Intent, opts: DynamicChildOptions, amountIn: bigint): Hex;
104
+ /**
105
+ * Asserts the child really is dynamic. `nest.ts#assertStaticChild` documents itself as "the SEAM
106
+ * where an S6 runtime-computed child will be rejected here, rather than silently mis-encoded by
107
+ * treating a placeholder as a real amount" — this is the other side of that seam, and it fails for
108
+ * the mirror-image reason: a child routed through THIS path with no sentinel anywhere would compile,
109
+ * publish, and fund a completely static intent while the program dutifully measured a balance and
110
+ * used it for nothing.
111
+ */
112
+ export declare function assertDynamicChild(child: Intent, index: number, opts: DynamicChildOptions): void;
113
+ /**
114
+ * The SauceScript statements ONE dynamic child contributes to a program: measure, floor-check,
115
+ * derive, approve, render, publish. `index` namespaces every local (`d<index>_…`) so several
116
+ * children merge into one program scope without colliding — the same discipline
117
+ * `nest.ts#nestedTransferStatements` uses.
118
+ *
119
+ * Emitted in exactly this order, and the order is load-bearing: the approve must precede the
120
+ * publish (the Portal pulls during it), and every guard must precede the approve (so a rejected
121
+ * measurement costs nothing and leaves no allowance behind).
122
+ */
123
+ export declare function dynamicChildStatements(child: Intent, index: number, opts: DynamicChildOptions): readonly string[];
124
+ /** One `{ child, opts }` pair per dynamic child, merged (in this array's order) into ONE program. */
125
+ export interface DynamicNestEntry {
126
+ readonly child: Intent;
127
+ readonly opts: DynamicChildOptions;
128
+ }
129
+ /**
130
+ * Merges every entry's `dynamicChildStatements` into ONE `function main(){...}` program, shaped
131
+ * exactly like `nest.ts#nestedTransferProgram` so `intent-dsl.ts` slots it the same way: one extra
132
+ * `cook()` call in the parent's `route.calls`. `imports` is surfaced separately so a caller
133
+ * splicing the statements into its own program merges it rather than re-deriving it.
134
+ *
135
+ * WHY A SEPARATE COOK RATHER THAN APPENDED TO THE PARENT'S OWN BODY: the measurement is the Pot's
136
+ * BALANCE, which persists across calls, so a later cook sees exactly what an earlier one earned.
137
+ * That keeps the parent's own program untouched — the caller's body is compiled from the caller's
138
+ * source, byte for byte, with nothing injected. A caller who wants the two fused (to measure a
139
+ * swap's own RETURN value instead of a balance) inlines `dynamicChildStatements` with
140
+ * `measure: { kind: "expression", … }` into their own body instead.
141
+ */
142
+ export declare function dynamicChildProgram(entries: readonly DynamicNestEntry[]): {
143
+ readonly source: string;
144
+ readonly imports: readonly string[];
145
+ };
146
+ //# sourceMappingURL=nest-dynamic.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nest-dynamic.d.ts","sourceRoot":"","sources":["../../src/routes/nest-dynamic.ts"],"names":[],"mappings":"AAiEA,OAAO,EAOL,KAAK,YAAY,EACjB,KAAK,eAAe,EACrB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,EAAoB,MAAM,YAAY,CAAC;AAE9E,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACpC,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE/F;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,qBAAqB,QAA2C,CAAC;AAC9E,iCAAiC;AACjC,eAAO,MAAM,sBAAsB,QAA2C,CAAC;AAE/E;;;;;;;GAOG;AACH,eAAO,MAAM,yBAAyB,QAA+B,CAAC;AACtE,qCAAqC;AACrC,eAAO,MAAM,0BAA0B,QAA+B,CAAC;AAEvE;;;;;;;;;;GAUG;AACH,MAAM,MAAM,iBAAiB,GACzB;IAAE,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAA;CAAE,GAC/D;IAAE,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAA;CAAE,GAClC;IAAE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjE,MAAM,WAAW,mBAAmB;IAClC;mGAC+F;IAC/F,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC;IACpC;;0DAEsD;IACtD,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB;;;;;OAKG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B;6EACyE;IACzE,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;IAChC;;;;;OAKG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,eAAe,EAAE,CAAC;IACnD;;;;;OAKG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACnC;yFACqF;IACrF,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AASD;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,GAAG,YAAY,CAG3F;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,mBAAmB,EACzB,QAAQ,EAAE,MAAM,GACf,GAAG,CAGL;AAqCD;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,GAAG,IAAI,CAiBhG;AAED;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,mBAAmB,GACxB,SAAS,MAAM,EAAE,CAsHnB;AAED,qGAAqG;AACrG,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC;CACpC;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,SAAS,gBAAgB,EAAE,GAAG;IACzE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC,CAcA"}
@@ -0,0 +1,308 @@
1
+ /**
2
+ * eco-routes V2 DYNAMIC nesting — a child intent CREATED ON-CHAIN, from an amount nobody knew when
3
+ * the parent was signed.
4
+ *
5
+ * `nest.ts` is the static twin and opens with the reason this file exists: "A STATIC child (every
6
+ * reward field known off-chain) needs no on-chain struct construction and no Sauce-program
7
+ * involvement at all". The converse is what a real cascade needs and what that path cannot express:
8
+ * the child's reward IS the output of a swap that runs earlier in the SAME fulfillment, so its
9
+ * amount does not exist until the parent is already executing. You cannot pre-encode a number you
10
+ * have not measured.
11
+ *
12
+ * WHAT THIS DOES INSTEAD, in the parent's own Sauce program, on the parent's destination chain:
13
+ *
14
+ * 1. MEASURE — read the Pot's balance of the token the earlier calls produced (`ctx.self()` is the
15
+ * Pot; see CLAUDE.md's engine notes). This is the one runtime measurement in the whole flow,
16
+ * exactly as `IntentChainer._measure` describes it.
17
+ * 2. DERIVE — `amountOut = ceil(amountIn * scale / WAD)`. A delivery obligation is generally not
18
+ * the measured input: `scale` carries both the decimals conversion and the proportional margin.
19
+ * 3. RENDER — concatenate the child's precompiled `publishAndFund` calldata around those two
20
+ * numbers (`template.ts`), which is only possible because an ABI word splice moves nothing
21
+ * after it.
22
+ * 4. CALL — `evm.call(portal, value, rendered)`. One call, no intermediary.
23
+ *
24
+ * NO CHAINER CONTRACT IS IN THE PATH, deliberately (2026-09-25 USER DIRECTIVE: "Chainer contracts in
25
+ * routes and routes-svm are just examples of how it should work. we don't need to use them. We can
26
+ * precompile sauce for nested intents and then template the bytes on the fly with numbers same way
27
+ * chainer does it."). `../eco-routes/contracts/chain/IntentChainer.sol` and `IntentTemplate.sol`
28
+ * were read as the REFERENCE DESIGN — the `Template { segments, items }` shape, the single
29
+ * measurement, the WAD-scaled `amountOut`, the ceil rounding, the `minAmountIn` floor — and none of
30
+ * it is called. There is nothing to deploy and nothing to trust beyond the Portal itself.
31
+ *
32
+ * WHY THIS IS SAFE WITHOUT ACCESS CONTROL — the same anchor `IntentChainer`'s NatSpec names, one
33
+ * layer down. The whole child (its route bytes, its `reward.creator`, its prover) is baked into the
34
+ * bytecode of a program that rides inside `parent.route.calls[k].data`, which
35
+ * `keccak256(abi.encode(route))` covers, which the `intentHash` `Inbox` re-derives covers. A solver
36
+ * choosing to fulfill the parent cannot alter the child it is publishing; it can only decline.
37
+ *
38
+ * WHAT IS DELIBERATELY NOT DEFENDED AGAINST, stated so it is a choice and not an oversight:
39
+ *
40
+ * - A DONATED BALANCE rides along. The measurement is the Pot's CURRENT balance, not a delta
41
+ * against a baseline — the same accepted property `svm/recipes/settle.sauce.ts` and
42
+ * `nest.ts`'s transfer mode already carry, and the same one `IntentChainer` accepts. Do not add
43
+ * baseline machinery here without changing those too.
44
+ * - A RESIDUAL ALLOWANCE. `IntentSource._fundToken` pulls
45
+ * `min(remaining, allowance(funder, portal), balanceOf(funder))`, so a fully funded leg consumes
46
+ * the approval exactly; a PARTIALLY funded one (`allowPartial: true`, or a short balance) leaves
47
+ * the remainder approved to the Portal. The Portal can only ever spend it into a vault, so this
48
+ * is untidy rather than dangerous, and resetting would cost a second call on every cascade.
49
+ * - NATIVE OVER-SEND. `publishAndFund` ends in `Refund.excessNative()`, which forwards the
50
+ * Portal's ENTIRE balance to `msg.sender` — here the Pot. That is the hazard that made
51
+ * `IntentChainer` refuse to be payable at all, but its `msg.sender` was a shared, solver-driven
52
+ * contract; ours is the Pot executing this very program. `Refund.excessNative` also swallows a
53
+ * failed send rather than reverting, so a Pot with no payable fallback loses the excess instead
54
+ * of bricking the fulfillment. The emitted `value` is therefore exactly `reward.nativeAmount`,
55
+ * never rounded up.
56
+ *
57
+ * Pure SOURCE text, no compiler import — same posture as `nest.ts`. `intent-dsl.ts` owns the
58
+ * `compile()` seam.
59
+ */
60
+ import { denormalizeToEvm } from "./encode.js";
61
+ import { formatBigint } from "../deposit/format.js";
62
+ import { toAddressBigint } from "../token/params.js";
63
+ import { ERC20_IMPORT_LINE } from "../token/evm.js";
64
+ import { safeApproveStatements } from "../token/safe.js";
65
+ import { publishAndFundTx } from "./portal.js";
66
+ import { emitTemplate, renderTemplate, scaleAmount, splitByPlaceholders, maxScalableBase, WAD, } from "./template.js";
67
+ export { WAD } from "./template.js";
68
+ /**
69
+ * The canonical 32-byte sentinels a caller writes into a child intent wherever a runtime amount
70
+ * belongs — one ABI word each, which is every amount field on the EVM path (`reward.tokens[].amount`,
71
+ * `route.tokens[].amount`, `nativeAmount`, and any `uint256` inside a `route.calls[].data` the
72
+ * caller encodes itself).
73
+ *
74
+ * The tag `0x5acef00d` in the high bytes and a one-byte discriminant in the low byte make these
75
+ * ~1.5e77 — far outside any token amount — and structurally unmistakable in a trace. They are only a
76
+ * DEFAULT, though, not a magic value the splice recognises: `splitByPlaceholders` matches whatever
77
+ * sentinel the caller declares, and every match is counted and checked, so a collision fails loudly
78
+ * rather than corrupting a field.
79
+ */
80
+ export const AMOUNT_IN_PLACEHOLDER = BigInt(`0x5acef00d${"00".repeat(27)}01`);
81
+ /** @see AMOUNT_IN_PLACEHOLDER */
82
+ export const AMOUNT_OUT_PLACEHOLDER = BigInt(`0x5acef00d${"00".repeat(27)}02`);
83
+ /**
84
+ * The u64-sized twins, for a child whose DESTINATION is Solana: `encodeRouteSvm` Borsh-encodes
85
+ * `route.tokens[].amount` as a `u64` and `assertU64` REJECTS the 32-byte sentinels above outright,
86
+ * so a route-side amount on that leg needs one of these plus `width: 8, littleEndian: true`. The
87
+ * reward side of the same intent still uses the 32-byte sentinels — the reward is escrowed on the
88
+ * EVM source chain and ABI-encoded, whatever the destination is. That asymmetry is `encode.ts`'s,
89
+ * not this module's: `hashIntent` already encodes route and reward for different chain kinds.
90
+ */
91
+ export const AMOUNT_IN_PLACEHOLDER_U64 = BigInt("0x5acef00d00000001");
92
+ /** @see AMOUNT_IN_PLACEHOLDER_U64 */
93
+ export const AMOUNT_OUT_PLACEHOLDER_U64 = BigInt("0x5acef00d00000002");
94
+ function defaultPlaceholders() {
95
+ return [
96
+ { value: AMOUNT_IN_PLACEHOLDER, source: "amountIn" },
97
+ { value: AMOUNT_OUT_PLACEHOLDER, source: "amountOut" },
98
+ ];
99
+ }
100
+ /**
101
+ * The child's `publishAndFund` calldata, cut into literal segments and slots.
102
+ *
103
+ * Built by `portal.ts#publishAndFundTx` — the SAME encoder the static path uses, so a dynamic child
104
+ * and the concrete intent it renders to are bytes-identical by construction rather than by a second
105
+ * implementation agreeing. That is also what makes the off-chain check in `renderDynamicChild`
106
+ * meaningful: it compares this module's output against an encoder neither this module nor the test
107
+ * re-implements.
108
+ */
109
+ export function dynamicChildTemplate(child, opts) {
110
+ const tx = publishAndFundTx(child, opts.allowPartial ?? false, { portal: opts.portal });
111
+ return splitByPlaceholders(tx.data, opts.placeholders ?? defaultPlaceholders());
112
+ }
113
+ /**
114
+ * The exact calldata the emitted program would build for a given measurement — the off-chain twin
115
+ * of the on-chain concatenation, and the only way to check this codegen without an engine. Pair it
116
+ * with `publishAndFundTx` on the equivalent CONCRETE child and the two must be byte-identical.
117
+ */
118
+ export function renderDynamicChild(child, opts, amountIn) {
119
+ const scale = opts.scale ?? WAD;
120
+ return renderTemplate(dynamicChildTemplate(child, opts), amountIn, scaleAmount(amountIn, scale));
121
+ }
122
+ function evmTokenLiteral(token) {
123
+ return formatBigint(BigInt(denormalizeToEvm(token)));
124
+ }
125
+ /** Every distinct sentinel the caller declared, so a reward leg's amount can be recognised as
126
+ * templated rather than literal. */
127
+ function placeholderIndexOf(amount, placeholders) {
128
+ const i = placeholders.findIndex((p) => p.value === amount);
129
+ return i === -1 ? undefined : i;
130
+ }
131
+ /** The local a given placeholder's value lands in, found by matching its (source, scale) against
132
+ * the slots `emitTemplate` named — never re-derived, so the approve and the reward tuple can never
133
+ * disagree about the number. */
134
+ function localForPlaceholder(spec, template, slotVars) {
135
+ const scale = spec.scale ?? WAD;
136
+ const i = template.slots.findIndex((s) => s.source === spec.source && s.scale === scale);
137
+ if (i === -1) {
138
+ // Unreachable via `dynamicChildStatements` (every slot comes from a declared placeholder), but
139
+ // a wrong local name here would approve or forward a different number than the bytes carry.
140
+ throw new Error(`nest-dynamic: no template slot renders (${spec.source}, scale ${scale}) — cannot name the local ` +
141
+ `holding that amount.`);
142
+ }
143
+ return slotVars[i];
144
+ }
145
+ /**
146
+ * Asserts the child really is dynamic. `nest.ts#assertStaticChild` documents itself as "the SEAM
147
+ * where an S6 runtime-computed child will be rejected here, rather than silently mis-encoded by
148
+ * treating a placeholder as a real amount" — this is the other side of that seam, and it fails for
149
+ * the mirror-image reason: a child routed through THIS path with no sentinel anywhere would compile,
150
+ * publish, and fund a completely static intent while the program dutifully measured a balance and
151
+ * used it for nothing.
152
+ */
153
+ export function assertDynamicChild(child, index, opts) {
154
+ // Building the template IS the check: `splitByPlaceholders` throws when a declared sentinel matched
155
+ // nothing. What it cannot know is WHY that is interesting here, so its diagnostic is wrapped rather
156
+ // than re-derived -- the cause keeps the byte-level detail (which sentinel, how long the payload
157
+ // was) while this message names the decision the caller has to revisit.
158
+ try {
159
+ dynamicChildTemplate(child, opts);
160
+ }
161
+ catch (cause) {
162
+ const placeholders = opts.placeholders ?? defaultPlaceholders();
163
+ throw new Error(`assertDynamicChild: child[${index}] does not carry all ${placeholders.length} declared ` +
164
+ `placeholder(s), so there is nothing for a measurement to fill. Either write the sentinels into ` +
165
+ `the child's amount fields, or nest it with via: "publishAndFund"/"transfer" — a fully static ` +
166
+ `child routed through here would measure a balance and use it for nothing.`, { cause });
167
+ }
168
+ }
169
+ /**
170
+ * The SauceScript statements ONE dynamic child contributes to a program: measure, floor-check,
171
+ * derive, approve, render, publish. `index` namespaces every local (`d<index>_…`) so several
172
+ * children merge into one program scope without colliding — the same discipline
173
+ * `nest.ts#nestedTransferStatements` uses.
174
+ *
175
+ * Emitted in exactly this order, and the order is load-bearing: the approve must precede the
176
+ * publish (the Portal pulls during it), and every guard must precede the approve (so a rejected
177
+ * measurement costs nothing and leaves no allowance behind).
178
+ */
179
+ export function dynamicChildStatements(child, index, opts) {
180
+ assertDynamicChild(child, index, opts);
181
+ const placeholders = opts.placeholders ?? defaultPlaceholders();
182
+ const template = dynamicChildTemplate(child, opts);
183
+ const scale = opts.scale ?? WAD;
184
+ if (scale <= 0n) {
185
+ throw new Error(`dynamicChildStatements: child[${index}] scale must be positive (a zero scale obliges the solver ` +
186
+ `to deliver nothing while collecting the whole escrow), got ${scale}`);
187
+ }
188
+ const minAmountIn = opts.minAmountIn ?? 1n;
189
+ const portalLiteral = formatBigint(toAddressBigint(opts.portal, "portal"));
190
+ const prefix = `d${index}_`;
191
+ const inVar = `${prefix}in`;
192
+ const statements = [];
193
+ // 1. MEASURE.
194
+ switch (opts.measure.kind) {
195
+ case "erc20Balance":
196
+ statements.push(`const ${inVar} = IERC20.at(${formatBigint(toAddressBigint(opts.measure.token, "measure.token"))}).balanceOf(ctx.self());`);
197
+ break;
198
+ case "nativeBalance":
199
+ statements.push(`const ${inVar} = ctx.selfBalance();`);
200
+ break;
201
+ case "expression":
202
+ statements.push(`const ${inVar} = ${opts.measure.expression};`);
203
+ break;
204
+ }
205
+ // 2. FLOOR. Before anything is derived or approved, so a rejected measurement leaves no trace.
206
+ if (minAmountIn > 0n) {
207
+ statements.push(`if (${inVar} < ${formatBigint(minAmountIn)}) { throw 'sauce: measured amount below floor'; }`);
208
+ }
209
+ // 3. DERIVE. The identity scale needs no arithmetic and no local at all -- `amountOut` IS the
210
+ // measurement -- which keeps the common case free of the overflow guard below entirely.
211
+ let outVar = inVar;
212
+ if (scale !== WAD) {
213
+ outVar = `${prefix}out`;
214
+ statements.push(`if (${inVar} > ${formatBigint(maxScalableBase(scale))}) { throw 'sauce: measured amount overflows scale'; }`, `const ${outVar} = (${inVar} * ${formatBigint(scale)} + ${formatBigint(WAD - 1n)}) / ${formatBigint(WAD)};`);
215
+ }
216
+ // 4. RENDER.
217
+ const emitted = emitTemplate(template, { prefix, amountInVar: inVar, amountOutVar: outVar });
218
+ statements.push(...emitted.statements);
219
+ // 5. APPROVE, one per DISTINCT reward token. A token whose legs are all literal approves the
220
+ // LARGEST of them, never their sum, for the reason `portal.ts#approvalTxs` states: `_fundToken`
221
+ // compares each leg against the vault's TOTAL balance and short-circuits, so the largest leg is
222
+ // the binding allowance. A token with exactly one leg, and that leg templated, approves the local
223
+ // holding the rendered amount. Anything else -- a templated leg alongside another leg in the same
224
+ // token -- has no single correct allowance to emit without runtime max arithmetic, and is
225
+ // rejected rather than guessed at.
226
+ //
227
+ // Issued through `token/safe.ts`, NOT as `IERC20.at(t).approve(...)`. The vendored IERC20
228
+ // declares a `bool` return, the compiler lowers that to call-then-decode even though nothing
229
+ // reads it, and decoding from empty returndata reverts on this engine -- so a USDT reward used to
230
+ // revert the entire parent fulfilment. The raw call avoids that decode and the emitted SafeERC20
231
+ // check then judges the result itself. A token that genuinely refuses the approve still reverts,
232
+ // because `evm.call` propagates it.
233
+ if ((opts.approve ?? "auto") === "auto") {
234
+ const byToken = new Map();
235
+ for (const t of child.reward.tokens) {
236
+ const key = evmTokenLiteral(t.token);
237
+ const group = byToken.get(key) ?? { literal: key, amounts: [] };
238
+ group.amounts.push(t.amount);
239
+ byToken.set(key, group);
240
+ }
241
+ const portalWord = { literal: toAddressBigint(opts.portal, "portal") };
242
+ let approveIndex = 0;
243
+ for (const [key, group] of byToken) {
244
+ const approvePrefix = `${prefix}${approveIndex++}`;
245
+ const templated = group.amounts
246
+ .map((a) => placeholderIndexOf(a, placeholders))
247
+ .filter((i) => i !== undefined);
248
+ if (templated.length === 0) {
249
+ const max = group.amounts.reduce((a, b) => (b > a ? b : a), 0n);
250
+ statements.push(...safeApproveStatements(approvePrefix, key, portalWord, { literal: max }));
251
+ continue;
252
+ }
253
+ if (group.amounts.length !== 1) {
254
+ throw new Error(`dynamicChildStatements: child[${index}]'s reward has ${group.amounts.length} legs in token ` +
255
+ `${key} and at least one is templated — there is no single allowance to approve without ` +
256
+ `runtime max arithmetic. Collapse them into one leg, or pass approve: "none" and emit the ` +
257
+ `approval yourself.`);
258
+ }
259
+ const local = localForPlaceholder(placeholders[templated[0]], template, emitted.slotVars);
260
+ statements.push(...safeApproveStatements(approvePrefix, key, portalWord, { local }));
261
+ }
262
+ }
263
+ // 6. PUBLISH. `value` is the reward's own declared native amount -- templated too when the caller
264
+ // made it a placeholder, so the forwarded ETH and the encoded `reward.nativeAmount` are the same
265
+ // number by construction rather than by two agreeing derivations.
266
+ let valueExpr;
267
+ if (opts.value !== undefined) {
268
+ valueExpr = formatBigint(opts.value);
269
+ }
270
+ else {
271
+ const nativeSpec = placeholderIndexOf(child.reward.nativeAmount, placeholders);
272
+ valueExpr =
273
+ nativeSpec === undefined
274
+ ? formatBigint(child.reward.nativeAmount)
275
+ : localForPlaceholder(placeholders[nativeSpec], template, emitted.slotVars);
276
+ }
277
+ statements.push(`evm.call(${portalLiteral}, ${valueExpr}, ${emitted.dataVar});`);
278
+ return statements;
279
+ }
280
+ /**
281
+ * Merges every entry's `dynamicChildStatements` into ONE `function main(){...}` program, shaped
282
+ * exactly like `nest.ts#nestedTransferProgram` so `intent-dsl.ts` slots it the same way: one extra
283
+ * `cook()` call in the parent's `route.calls`. `imports` is surfaced separately so a caller
284
+ * splicing the statements into its own program merges it rather than re-deriving it.
285
+ *
286
+ * WHY A SEPARATE COOK RATHER THAN APPENDED TO THE PARENT'S OWN BODY: the measurement is the Pot's
287
+ * BALANCE, which persists across calls, so a later cook sees exactly what an earlier one earned.
288
+ * That keeps the parent's own program untouched — the caller's body is compiled from the caller's
289
+ * source, byte for byte, with nothing injected. A caller who wants the two fused (to measure a
290
+ * swap's own RETURN value instead of a balance) inlines `dynamicChildStatements` with
291
+ * `measure: { kind: "expression", … }` into their own body instead.
292
+ */
293
+ export function dynamicChildProgram(entries) {
294
+ if (entries.length === 0) {
295
+ throw new Error("dynamicChildProgram: no entries — nothing to compile");
296
+ }
297
+ const statements = entries.flatMap((e, i) => dynamicChildStatements(e.child, i, e.opts));
298
+ // Sniffed from the emitted text rather than re-derived from the options on purpose: a caller's own
299
+ // `measure: { kind: "expression" }` may name `IERC20.at(...)` itself, and an options-derived check
300
+ // would miss that and emit a program referencing an unimported binding. The statements are what
301
+ // actually compiles, so they are what decides.
302
+ const needsErc20 = statements.some((s) => s.includes("IERC20.at("));
303
+ const imports = needsErc20 ? [ERC20_IMPORT_LINE] : [];
304
+ const body = statements.join("\n");
305
+ const source = `${imports.length > 0 ? `${imports.join("\n")}\n` : ""}function main() {\n${body}\n}`;
306
+ return { source, imports };
307
+ }
308
+ //# sourceMappingURL=nest-dynamic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nest-dynamic.js","sourceRoot":"","sources":["../../src/routes/nest-dynamic.ts"],"names":[],"mappings":"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"}
@@ -53,8 +53,13 @@ export declare function assertStaticChild(_child: Intent): void;
53
53
  * instead of splicing a runtime `publishAndFund` — see `nestedTransferStatements`/
54
54
  * `nestedTransferProgram` below for the codegen, and this file's module doc for the on-chain grounding
55
55
  * (balance-based payout, no funded-flag gate, no publication requirement).
56
+ *
57
+ * `"dynamic"` is the one mode whose child is NOT static: its amounts are placeholders until the
58
+ * parent runs, and `nest-dynamic.ts` (not this file) emits the program that measures, derives and
59
+ * splices them. Everything here still applies to it EXCEPT the two invariants that read a child's
60
+ * amounts as numbers — see `assertNestingInvariants`'s 3 and 5.
56
61
  */
57
- export type NestVia = "transfer" | "publishAndFund";
62
+ export type NestVia = "transfer" | "publishAndFund" | "dynamic";
58
63
  export interface NestChild {
59
64
  readonly intent: Intent;
60
65
  /** Opt-out of invariant 5's funding-coverage check for this one child: the legitimate case where
@@ -107,7 +112,11 @@ export interface AssertNestingInvariantsArgs {
107
112
  * 1. EVM parent — `parentChain.kind === "evm"`. The Solana Portal PROGRAM is not in eco-routes on
108
113
  * `main` (zero `.rs`); a child's OWN destination may still be `svm`.
109
114
  * 2. Source match — every child's `sourceChainId` equals the parent's destination chain id.
110
- * 3. Static child — `assertStaticChild` per child (the S6 seam).
115
+ * 3. Static child — `assertStaticChild` per child (the S6 seam). SKIPPED for a `via: "dynamic"`
116
+ * child, which is the case that seam was reserved for: its reward amounts are deliberately
117
+ * placeholders. `nest-dynamic.ts#assertDynamicChild` is its mirror-image check (a child routed
118
+ * there with NO placeholder is the error), and it runs at codegen time, where the options that
119
+ * say which sentinels to look for are in scope.
111
120
  * 4. Deadlines INCREASE with depth — `child.route.deadline >= parentRoute.deadline` AND
112
121
  * `child.reward.deadline >= parentRoute.deadline`. The child publishes DURING the parent's
113
122
  * fulfillment, which `Inbox._fulfill` allows right up to the parent's own `route.deadline`
@@ -120,6 +129,9 @@ export interface AssertNestingInvariantsArgs {
120
129
  * the (balance-based) funding, so there is nothing static left to compare against
121
130
  * `parentRoute.tokens`/`nativeAmount`. See `intent-dsl.ts`'s T5 for the one native-only coverage
122
131
  * check that DOES still apply to a transfer child (only when it opts into `fundNativeFromRoute`).
132
+ * A `via: "dynamic"` child is skipped for a STRONGER reason than a transfer one: its reward
133
+ * amount is a ~1.5e77 sentinel, so summing it would not merely be uninformative, it would fail
134
+ * every parent. The funding is the runtime measurement, bounded by the Pot's own balance.
123
135
  * 6. No duplicate intent hash — `normalizeRoute` defaults `salt` to 32 zero bytes, so two
124
136
  * structurally identical children silently collapse into the SAME intent. A repeat `intentHash`
125
137
  * anywhere in `children` throws, pointing at `options.salt`.
@@ -142,13 +154,12 @@ export interface TransferNestEntry {
142
154
  /**
143
155
  * Merges every entry's `nestedTransferStatements` into ONE `function main(){...}` Sauce program —
144
156
  * `intent-dsl.ts` is the only caller that ever `compile()`s this text, keeping the compiler
145
- * dependency out of this pure module entirely. `imports`/`baseDirs` are surfaced separately so a
146
- * caller with its own `baseDirs`/compile options can merge them rather than re-deriving what this
157
+ * dependency out of this pure module entirely. `imports` is surfaced separately so a caller
158
+ * splicing these statements into its own program can merge them rather than re-deriving what this
147
159
  * program needs.
148
160
  */
149
161
  export declare function nestedTransferProgram(entries: readonly TransferNestEntry[]): {
150
162
  readonly source: string;
151
163
  readonly imports: readonly string[];
152
- readonly baseDirs: readonly string[];
153
164
  };
154
165
  //# sourceMappingURL=nest.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"nest.d.ts","sourceRoot":"","sources":["../../src/routes/nest.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAO7D,OAAO,EAAuB,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AACnE,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAoB,MAAM,YAAY,CAAC;AAE3F,qGAAqG;AACrG,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;CAChC;AAMD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,kBAAkB,GAAG,SAAS,SAAS,EAAE,CAK9F;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAEtD;AAED;;;;;;;;;GASG;AACH,MAAM,MAAM,OAAO,GAAG,UAAU,GAAG,gBAAgB,CAAC;AAEpD,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB;;;;oFAIgF;IAChF,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;IAChC,8FAA8F;IAC9F,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;8FAC8F;AAC9F,MAAM,MAAM,oBAAoB,GAC5B;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAA;CAAE,GAC3D;IAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAA;CAAE,GAC5D;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAA;CAAE,CAAC;AAEhE,wDAAwD;AACxD,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,eAAe,EAAE,oBAAoB,CAAC;IAC/C;uGACmG;IACnG,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACzB;6EACyE;IACzE,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAC9B;iGAC6F;IAC7F,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;CACtC;AAED,MAAM,WAAW,2BAA2B;IAC1C;wBACoB;IACpB,QAAQ,CAAC,WAAW,EAAE,cAAc,CAAC;IACrC;qDACiD;IACjD,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,SAAS,SAAS,EAAE,CAAC;CACzC;AAMD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,2BAA2B,GAAG,IAAI,CAmG/E;AA2DD;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,oBAAoB,GACzB,SAAS,MAAM,EAAE,CA6DnB;AAED;0CAC0C;AAC1C,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC;CACrC;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,SAAS,iBAAiB,EAAE,GAAG;IAC5E,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC,CAOA"}
1
+ {"version":3,"file":"nest.d.ts","sourceRoot":"","sources":["../../src/routes/nest.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAO7D,OAAO,EAAuB,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AACnE,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAoB,MAAM,YAAY,CAAC;AAE3F,qGAAqG;AACrG,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;CAChC;AAMD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,kBAAkB,GAAG,SAAS,SAAS,EAAE,CAK9F;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAEtD;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,OAAO,GAAG,UAAU,GAAG,gBAAgB,GAAG,SAAS,CAAC;AAEhE,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB;;;;oFAIgF;IAChF,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;IAChC,8FAA8F;IAC9F,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;8FAC8F;AAC9F,MAAM,MAAM,oBAAoB,GAC5B;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAA;CAAE,GAC3D;IAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAA;CAAE,GAC5D;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAA;CAAE,CAAC;AAEhE,wDAAwD;AACxD,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,eAAe,EAAE,oBAAoB,CAAC;IAC/C;uGACmG;IACnG,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACzB;6EACyE;IACzE,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAC9B;iGAC6F;IAC7F,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;CACtC;AAED,MAAM,WAAW,2BAA2B;IAC1C;wBACoB;IACpB,QAAQ,CAAC,WAAW,EAAE,cAAc,CAAC;IACrC;qDACiD;IACjD,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,SAAS,SAAS,EAAE,CAAC;CACzC;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,2BAA2B,GAAG,IAAI,CAoG/E;AA2DD;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,oBAAoB,GACzB,SAAS,MAAM,EAAE,CA0EnB;AAED;0CAC0C;AAC1C,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC;CACrC;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,SAAS,iBAAiB,EAAE,GAAG;IAC5E,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC,CAOA"}
@@ -24,7 +24,7 @@
24
24
  import { formatAddressField, formatBigint } from "../deposit/format.js";
25
25
  import { toAddressBigint } from "../token/params.js";
26
26
  import { ERC20_IMPORT_LINE } from "../token/evm.js";
27
- import { TOKEN_BASE_DIRS } from "../token/source.js";
27
+ import { safeTransferStatements } from "../token/safe.js";
28
28
  import { denormalizeToEvm, hashIntent } from "./encode.js";
29
29
  import { approvalTxs, intentVaultAddressCall, publishAndFundTx } from "./portal.js";
30
30
  import { predictVaultAddress } from "./vault.js";
@@ -61,7 +61,11 @@ function tokenKey(token) {
61
61
  * 1. EVM parent — `parentChain.kind === "evm"`. The Solana Portal PROGRAM is not in eco-routes on
62
62
  * `main` (zero `.rs`); a child's OWN destination may still be `svm`.
63
63
  * 2. Source match — every child's `sourceChainId` equals the parent's destination chain id.
64
- * 3. Static child — `assertStaticChild` per child (the S6 seam).
64
+ * 3. Static child — `assertStaticChild` per child (the S6 seam). SKIPPED for a `via: "dynamic"`
65
+ * child, which is the case that seam was reserved for: its reward amounts are deliberately
66
+ * placeholders. `nest-dynamic.ts#assertDynamicChild` is its mirror-image check (a child routed
67
+ * there with NO placeholder is the error), and it runs at codegen time, where the options that
68
+ * say which sentinels to look for are in scope.
65
69
  * 4. Deadlines INCREASE with depth — `child.route.deadline >= parentRoute.deadline` AND
66
70
  * `child.reward.deadline >= parentRoute.deadline`. The child publishes DURING the parent's
67
71
  * fulfillment, which `Inbox._fulfill` allows right up to the parent's own `route.deadline`
@@ -74,6 +78,9 @@ function tokenKey(token) {
74
78
  * the (balance-based) funding, so there is nothing static left to compare against
75
79
  * `parentRoute.tokens`/`nativeAmount`. See `intent-dsl.ts`'s T5 for the one native-only coverage
76
80
  * check that DOES still apply to a transfer child (only when it opts into `fundNativeFromRoute`).
81
+ * A `via: "dynamic"` child is skipped for a STRONGER reason than a transfer one: its reward
82
+ * amount is a ~1.5e77 sentinel, so summing it would not merely be uninformative, it would fail
83
+ * every parent. The funding is the runtime measurement, bounded by the Pot's own balance.
77
84
  * 6. No duplicate intent hash — `normalizeRoute` defaults `salt` to 32 zero bytes, so two
78
85
  * structurally identical children silently collapse into the SAME intent. A repeat `intentHash`
79
86
  * anywhere in `children` throws, pointing at `options.salt`.
@@ -103,8 +110,11 @@ export function assertNestingInvariants(args) {
103
110
  `the parent's destination chain id (${parentDestinationId}) — a child's source chain is always ` +
104
111
  `the parent's execution chain.`);
105
112
  }
106
- // 3. Static child (the S6 seam).
107
- assertStaticChild(intent);
113
+ // 3. Static child (the S6 seam) — the `"dynamic"` child is exactly what that seam was held
114
+ // open for, so it is the one mode that skips it rather than being rejected by it.
115
+ const via = child.via ?? "publishAndFund";
116
+ if (via !== "dynamic")
117
+ assertStaticChild(intent);
108
118
  // 4. Deadlines increase with depth.
109
119
  if (intent.route.deadline < parentRoute.deadline) {
110
120
  throw new Error(`assertNestingInvariants: child[${i}].route.deadline (${intent.route.deadline}) is earlier than ` +
@@ -117,9 +127,8 @@ export function assertNestingInvariants(args) {
117
127
  `the parent's route.deadline (${parentRoute.deadline}) — see the route.deadline check above for why.`);
118
128
  }
119
129
  // 5. Funding coverage (accumulate; checked after the loop) — dropped entirely for a
120
- // "transfer"-mode child (see the doc comment above); `fundedByBody` remains the
130
+ // "transfer"- or "dynamic"-mode child (see the doc comment above); `fundedByBody` remains the
121
131
  // publishAndFund-only opt-out it always was.
122
- const via = child.via ?? "publishAndFund";
123
132
  if (via === "publishAndFund" && !child.fundedByBody) {
124
133
  childNativeTotal += intent.reward.nativeAmount;
125
134
  for (const t of intent.reward.tokens) {
@@ -234,7 +243,17 @@ export function nestedTransferStatements(child, index, opts) {
234
243
  if (clamp) {
235
244
  stmts.push(`const ${amtVar} = ${balVar} > ${capLit} ? ${capLit} : ${balVar};`);
236
245
  }
237
- stmts.push(`if (${amtExpr} > 0n) { IERC20.at(${tokenLit}).transfer(${vaultVar}, ${amtExpr}); }`);
246
+ // Written with OpenZeppelin `SafeERC20` semantics rather than `IERC20.at(t).transfer(...)`:
247
+ // the vendored IERC20 declares a `bool` the compiler decodes even when discarded, which reverts
248
+ // on a no-return token (USDT). `token/safe.ts` issues the call raw and then CHECKS what came
249
+ // back -- so a token returning `false`, or an address with no code, fails rather than passing
250
+ // silently. `balanceOf` above keeps its binding; a `uint256` return is always there.
251
+ const transferStmts = safeTransferStatements(`n${index}_${i}_`, tokenLit, { local: vaultVar }, { local: amtExpr });
252
+ // The calldata consts are hoisted out of the zero-guard; the call AND its SafeERC20 check go
253
+ // inside it, since checking a call that never happened would read a stale result.
254
+ const firstCall = transferStmts.findIndex((line) => line.includes("evm.call("));
255
+ stmts.push(...transferStmts.slice(0, firstCall));
256
+ stmts.push(`if (${amtExpr} > 0n) { ${transferStmts.slice(firstCall).join(" ")} }`);
238
257
  });
239
258
  if (willTransferNative) {
240
259
  const capLit = formatBigint(child.reward.nativeAmount);
@@ -260,8 +279,8 @@ export function nestedTransferStatements(child, index, opts) {
260
279
  /**
261
280
  * Merges every entry's `nestedTransferStatements` into ONE `function main(){...}` Sauce program —
262
281
  * `intent-dsl.ts` is the only caller that ever `compile()`s this text, keeping the compiler
263
- * dependency out of this pure module entirely. `imports`/`baseDirs` are surfaced separately so a
264
- * caller with its own `baseDirs`/compile options can merge them rather than re-deriving what this
282
+ * dependency out of this pure module entirely. `imports` is surfaced separately so a caller
283
+ * splicing these statements into its own program can merge them rather than re-deriving what this
265
284
  * program needs.
266
285
  */
267
286
  export function nestedTransferProgram(entries) {
@@ -270,6 +289,6 @@ export function nestedTransferProgram(entries) {
270
289
  const imports = needsErc20 ? [ERC20_IMPORT_LINE] : [];
271
290
  const body = statements.join("\n");
272
291
  const source = `${imports.length > 0 ? `${imports.join("\n")}\n` : ""}function main() {\n${body}\n}`;
273
- return { source, imports, baseDirs: needsErc20 ? [...TOKEN_BASE_DIRS] : [] };
292
+ return { source, imports };
274
293
  }
275
294
  //# sourceMappingURL=nest.js.map