@eco-incorp/sauce 0.99.5 → 0.99.7

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 (1197) hide show
  1. package/README.md +58 -16
  2. package/actions/action-program.schema.json +480 -379
  3. package/actions/dist/abis.d.ts +19 -18
  4. package/actions/dist/abis.d.ts.map +1 -1
  5. package/actions/dist/abis.js +29 -29
  6. package/actions/dist/compile.d.ts +4 -4
  7. package/actions/dist/compile.d.ts.map +1 -1
  8. package/actions/dist/compile.js +3 -1
  9. package/actions/dist/compose.d.ts +63 -6
  10. package/actions/dist/compose.d.ts.map +1 -1
  11. package/actions/dist/compose.js +100 -16
  12. package/actions/dist/index.d.ts +1 -1
  13. package/actions/dist/index.d.ts.map +1 -1
  14. package/actions/dist/names.d.ts +88 -0
  15. package/actions/dist/names.d.ts.map +1 -0
  16. package/actions/dist/names.js +324 -0
  17. package/actions/dist/program.d.ts.map +1 -1
  18. package/actions/dist/program.js +115 -5
  19. package/actions/dist/registry.d.ts +10 -8
  20. package/actions/dist/registry.d.ts.map +1 -1
  21. package/actions/dist/registry.js +10 -8
  22. package/actions/dist/schema.d.ts.map +1 -1
  23. package/actions/dist/schema.js +99 -12
  24. package/actions/dist/semantics.d.ts +12 -2
  25. package/actions/dist/semantics.d.ts.map +1 -1
  26. package/actions/dist/semantics.js +78 -8
  27. package/actions/dist/spec.d.ts +30 -0
  28. package/actions/dist/spec.d.ts.map +1 -1
  29. package/actions/dist/spec.js +151 -138
  30. package/actions/dist/split-swap.d.ts +10 -5
  31. package/actions/dist/split-swap.d.ts.map +1 -1
  32. package/actions/dist/split-swap.js +48 -7
  33. package/actions/dist/to-quote.d.ts +14 -5
  34. package/actions/dist/to-quote.d.ts.map +1 -1
  35. package/actions/dist/to-quote.js +210 -244
  36. package/actions/dist/to-sauce.d.ts +18 -4
  37. package/actions/dist/to-sauce.d.ts.map +1 -1
  38. package/actions/dist/to-sauce.js +232 -205
  39. package/actions/dist/types.d.ts +245 -147
  40. package/actions/dist/types.d.ts.map +1 -1
  41. package/actions/dist/types.js +4 -0
  42. package/docs/README.md +38 -0
  43. package/docs/api/README.md +37 -23
  44. package/docs/api/compiler.md +53 -12
  45. package/docs/api/contracts.md +105 -0
  46. package/docs/api/coverage.md +80 -57
  47. package/docs/api/router.md +238 -0
  48. package/docs/api/routes.md +31 -22
  49. package/docs/concepts/architecture.md +30 -5
  50. package/docs/concepts/saucescript.md +53 -56
  51. package/docs/examples/README.md +21 -14
  52. package/docs/examples/action-program.ts +51 -35
  53. package/docs/examples/cross-chain-cascade.sauce.ts +4 -0
  54. package/docs/examples/cross-chain-intent.sauce.ts +2 -1
  55. package/docs/examples/evm-execution.ts +2 -4
  56. package/docs/examples/first-intent.ts +7 -2
  57. package/docs/examples/pot-router.ts +19 -0
  58. package/docs/examples/registry-names.ts +52 -0
  59. package/docs/examples/router-route.sauce.ts +31 -0
  60. package/docs/examples/router-route.ts +72 -0
  61. package/docs/examples/router-swap.sauce.ts +16 -0
  62. package/docs/examples/router-swap.ts +47 -0
  63. package/docs/examples/venue-where-deployed.sauce.ts +14 -0
  64. package/docs/guides/actions.md +230 -120
  65. package/docs/guides/builders-and-actions.md +24 -15
  66. package/docs/guides/cli.md +1442 -0
  67. package/docs/guides/compiling.md +24 -10
  68. package/docs/guides/intents.md +260 -17
  69. package/docs/guides/mcp.md +539 -0
  70. package/docs/guides/nested-intents.md +21 -6
  71. package/docs/guides/protocols-and-tokens.md +235 -36
  72. package/docs/guides/quick-start.md +5 -0
  73. package/docs/guides/solana.md +199 -52
  74. package/docs/guides/verification.md +2 -2
  75. package/mcp/dist/config.js +78 -0
  76. package/mcp/dist/config.js.map +1 -0
  77. package/mcp/dist/entry.js +112 -0
  78. package/mcp/dist/entry.js.map +1 -0
  79. package/mcp/dist/files.js +64 -0
  80. package/mcp/dist/files.js.map +1 -0
  81. package/mcp/dist/guard.js +262 -0
  82. package/mcp/dist/guard.js.map +1 -0
  83. package/mcp/dist/http.js +111 -0
  84. package/mcp/dist/http.js.map +1 -0
  85. package/mcp/dist/intents.js +579 -0
  86. package/mcp/dist/intents.js.map +1 -0
  87. package/mcp/dist/prompts.js +153 -0
  88. package/mcp/dist/prompts.js.map +1 -0
  89. package/mcp/dist/reach.js +98 -0
  90. package/mcp/dist/reach.js.map +1 -0
  91. package/mcp/dist/resources.js +154 -0
  92. package/mcp/dist/resources.js.map +1 -0
  93. package/mcp/dist/sdk.js +34 -0
  94. package/mcp/dist/sdk.js.map +1 -0
  95. package/mcp/dist/server.js +119 -0
  96. package/mcp/dist/server.js.map +1 -0
  97. package/mcp/dist/setup.js +189 -0
  98. package/mcp/dist/setup.js.map +1 -0
  99. package/mcp/dist/skilltools.js +520 -0
  100. package/mcp/dist/skilltools.js.map +1 -0
  101. package/mcp/dist/terms.js +93 -0
  102. package/mcp/dist/terms.js.map +1 -0
  103. package/mcp/dist/tools.js +1497 -0
  104. package/mcp/dist/tools.js.map +1 -0
  105. package/mcp/dist/wallets.js +168 -0
  106. package/mcp/dist/wallets.js.map +1 -0
  107. package/package.json +18 -13
  108. package/sdk/dist/artifacts/V12Deployments.json +3 -1
  109. package/sdk/dist/artifacts/V12EngineGate.json +1 -2
  110. package/sdk/dist/artifacts/V12KitchenProxy.json +1 -0
  111. package/sdk/dist/chains/canonical.d.ts +15 -24
  112. package/sdk/dist/chains/canonical.d.ts.map +1 -1
  113. package/sdk/dist/chains/canonical.js +18 -29
  114. package/sdk/dist/chains/canonical.js.map +1 -1
  115. package/sdk/dist/cli/actions.d.ts +29 -0
  116. package/sdk/dist/cli/actions.d.ts.map +1 -0
  117. package/sdk/dist/cli/actions.js +122 -0
  118. package/sdk/dist/cli/actions.js.map +1 -0
  119. package/sdk/dist/cli/args.d.ts +118 -0
  120. package/sdk/dist/cli/args.d.ts.map +1 -0
  121. package/sdk/dist/cli/args.js +354 -0
  122. package/sdk/dist/cli/args.js.map +1 -0
  123. package/sdk/dist/cli/assume.d.ts +51 -0
  124. package/sdk/dist/cli/assume.d.ts.map +1 -0
  125. package/sdk/dist/cli/assume.js +207 -0
  126. package/sdk/dist/cli/assume.js.map +1 -0
  127. package/sdk/dist/cli/chain.d.ts +170 -0
  128. package/sdk/dist/cli/chain.d.ts.map +1 -0
  129. package/sdk/dist/cli/chain.js +457 -0
  130. package/sdk/dist/cli/chain.js.map +1 -0
  131. package/sdk/dist/cli/commands.d.ts +226 -0
  132. package/sdk/dist/cli/commands.d.ts.map +1 -0
  133. package/sdk/dist/cli/commands.js +637 -0
  134. package/sdk/dist/cli/commands.js.map +1 -0
  135. package/sdk/dist/cli/create.d.ts +70 -0
  136. package/sdk/dist/cli/create.d.ts.map +1 -0
  137. package/sdk/dist/cli/create.js +483 -0
  138. package/sdk/dist/cli/create.js.map +1 -0
  139. package/sdk/dist/cli/diagnostics.d.ts +12 -0
  140. package/sdk/dist/cli/diagnostics.d.ts.map +1 -0
  141. package/sdk/dist/cli/diagnostics.js +200 -0
  142. package/sdk/dist/cli/diagnostics.js.map +1 -0
  143. package/sdk/dist/cli/effects.d.ts +71 -0
  144. package/sdk/dist/cli/effects.d.ts.map +1 -0
  145. package/sdk/dist/cli/effects.js +279 -0
  146. package/sdk/dist/cli/effects.js.map +1 -0
  147. package/sdk/dist/cli/fill.d.ts +83 -0
  148. package/sdk/dist/cli/fill.d.ts.map +1 -0
  149. package/sdk/dist/cli/fill.js +734 -0
  150. package/sdk/dist/cli/fill.js.map +1 -0
  151. package/sdk/dist/cli/funding.d.ts +126 -0
  152. package/sdk/dist/cli/funding.d.ts.map +1 -0
  153. package/sdk/dist/cli/funding.js +514 -0
  154. package/sdk/dist/cli/funding.js.map +1 -0
  155. package/sdk/dist/cli/globals.d.ts +16 -0
  156. package/sdk/dist/cli/globals.d.ts.map +1 -0
  157. package/sdk/dist/cli/globals.js +197 -0
  158. package/sdk/dist/cli/globals.js.map +1 -0
  159. package/sdk/dist/cli/init.d.ts +34 -0
  160. package/sdk/dist/cli/init.d.ts.map +1 -0
  161. package/sdk/dist/cli/init.js +181 -0
  162. package/sdk/dist/cli/init.js.map +1 -0
  163. package/sdk/dist/cli/inputs.d.ts +72 -0
  164. package/sdk/dist/cli/inputs.d.ts.map +1 -0
  165. package/sdk/dist/cli/inputs.js +152 -0
  166. package/sdk/dist/cli/inputs.js.map +1 -0
  167. package/sdk/dist/cli/inspect.d.ts +48 -0
  168. package/sdk/dist/cli/inspect.d.ts.map +1 -0
  169. package/sdk/dist/cli/inspect.js +536 -0
  170. package/sdk/dist/cli/inspect.js.map +1 -0
  171. package/sdk/dist/cli/intent-commands.d.ts +71 -0
  172. package/sdk/dist/cli/intent-commands.d.ts.map +1 -0
  173. package/sdk/dist/cli/intent-commands.js +698 -0
  174. package/sdk/dist/cli/intent-commands.js.map +1 -0
  175. package/sdk/dist/cli/intent-svm.d.ts +15 -0
  176. package/sdk/dist/cli/intent-svm.d.ts.map +1 -0
  177. package/sdk/dist/cli/intent-svm.js +222 -0
  178. package/sdk/dist/cli/intent-svm.js.map +1 -0
  179. package/sdk/dist/cli/intents.d.ts +43 -0
  180. package/sdk/dist/cli/intents.d.ts.map +1 -0
  181. package/sdk/dist/cli/intents.js +89 -0
  182. package/sdk/dist/cli/intents.js.map +1 -0
  183. package/sdk/dist/cli/interactive.d.ts +11 -0
  184. package/sdk/dist/cli/interactive.d.ts.map +1 -0
  185. package/sdk/dist/cli/interactive.js +161 -0
  186. package/sdk/dist/cli/interactive.js.map +1 -0
  187. package/sdk/dist/cli/lifecycle-svm.d.ts +109 -0
  188. package/sdk/dist/cli/lifecycle-svm.d.ts.map +1 -0
  189. package/sdk/dist/cli/lifecycle-svm.js +299 -0
  190. package/sdk/dist/cli/lifecycle-svm.js.map +1 -0
  191. package/sdk/dist/cli/lifecycle.d.ts +439 -0
  192. package/sdk/dist/cli/lifecycle.d.ts.map +1 -0
  193. package/sdk/dist/cli/lifecycle.js +1721 -0
  194. package/sdk/dist/cli/lifecycle.js.map +1 -0
  195. package/sdk/dist/cli/main.d.ts +3 -0
  196. package/sdk/dist/cli/main.d.ts.map +1 -0
  197. package/sdk/dist/cli/main.js +8 -0
  198. package/sdk/dist/cli/main.js.map +1 -0
  199. package/sdk/dist/cli/mcp.d.ts +66 -0
  200. package/sdk/dist/cli/mcp.d.ts.map +1 -0
  201. package/sdk/dist/cli/mcp.js +169 -0
  202. package/sdk/dist/cli/mcp.js.map +1 -0
  203. package/sdk/dist/cli/password.d.ts +54 -0
  204. package/sdk/dist/cli/password.d.ts.map +1 -0
  205. package/sdk/dist/cli/password.js +148 -0
  206. package/sdk/dist/cli/password.js.map +1 -0
  207. package/sdk/dist/cli/policy.d.ts +130 -0
  208. package/sdk/dist/cli/policy.d.ts.map +1 -0
  209. package/sdk/dist/cli/policy.js +702 -0
  210. package/sdk/dist/cli/policy.js.map +1 -0
  211. package/sdk/dist/cli/pools.d.ts +140 -0
  212. package/sdk/dist/cli/pools.d.ts.map +1 -0
  213. package/sdk/dist/cli/pools.js +658 -0
  214. package/sdk/dist/cli/pools.js.map +1 -0
  215. package/sdk/dist/cli/price.d.ts +74 -0
  216. package/sdk/dist/cli/price.d.ts.map +1 -0
  217. package/sdk/dist/cli/price.js +321 -0
  218. package/sdk/dist/cli/price.js.map +1 -0
  219. package/sdk/dist/cli/prompt.d.ts +30 -0
  220. package/sdk/dist/cli/prompt.d.ts.map +1 -0
  221. package/sdk/dist/cli/prompt.js +53 -0
  222. package/sdk/dist/cli/prompt.js.map +1 -0
  223. package/sdk/dist/cli/publish.d.ts +48 -0
  224. package/sdk/dist/cli/publish.d.ts.map +1 -0
  225. package/sdk/dist/cli/publish.js +480 -0
  226. package/sdk/dist/cli/publish.js.map +1 -0
  227. package/sdk/dist/cli/receipt.d.ts +35 -0
  228. package/sdk/dist/cli/receipt.d.ts.map +1 -0
  229. package/sdk/dist/cli/receipt.js +63 -0
  230. package/sdk/dist/cli/receipt.js.map +1 -0
  231. package/sdk/dist/cli/rehearse.d.ts +80 -0
  232. package/sdk/dist/cli/rehearse.d.ts.map +1 -0
  233. package/sdk/dist/cli/rehearse.js +265 -0
  234. package/sdk/dist/cli/rehearse.js.map +1 -0
  235. package/sdk/dist/cli/report.d.ts +69 -0
  236. package/sdk/dist/cli/report.d.ts.map +1 -0
  237. package/sdk/dist/cli/report.js +206 -0
  238. package/sdk/dist/cli/report.js.map +1 -0
  239. package/sdk/dist/cli/returned.d.ts +16 -0
  240. package/sdk/dist/cli/returned.d.ts.map +1 -0
  241. package/sdk/dist/cli/returned.js +111 -0
  242. package/sdk/dist/cli/returned.js.map +1 -0
  243. package/sdk/dist/cli/run.d.ts +40 -0
  244. package/sdk/dist/cli/run.d.ts.map +1 -0
  245. package/sdk/dist/cli/run.js +3162 -0
  246. package/sdk/dist/cli/run.js.map +1 -0
  247. package/sdk/dist/cli/signer.d.ts +72 -0
  248. package/sdk/dist/cli/signer.d.ts.map +1 -0
  249. package/sdk/dist/cli/signer.js +243 -0
  250. package/sdk/dist/cli/signer.js.map +1 -0
  251. package/sdk/dist/cli/simulate.d.ts +11 -0
  252. package/sdk/dist/cli/simulate.d.ts.map +1 -0
  253. package/sdk/dist/cli/simulate.js +246 -0
  254. package/sdk/dist/cli/simulate.js.map +1 -0
  255. package/sdk/dist/cli/skills.d.ts +77 -0
  256. package/sdk/dist/cli/skills.d.ts.map +1 -0
  257. package/sdk/dist/cli/skills.js +527 -0
  258. package/sdk/dist/cli/skills.js.map +1 -0
  259. package/sdk/dist/cli/solana.d.ts +183 -0
  260. package/sdk/dist/cli/solana.d.ts.map +1 -0
  261. package/sdk/dist/cli/solana.js +1360 -0
  262. package/sdk/dist/cli/solana.js.map +1 -0
  263. package/sdk/dist/cli/store.d.ts +60 -0
  264. package/sdk/dist/cli/store.d.ts.map +1 -0
  265. package/sdk/dist/cli/store.js +196 -0
  266. package/sdk/dist/cli/store.js.map +1 -0
  267. package/sdk/dist/cli/support.d.ts +144 -0
  268. package/sdk/dist/cli/support.d.ts.map +1 -0
  269. package/sdk/dist/cli/support.js +217 -0
  270. package/sdk/dist/cli/support.js.map +1 -0
  271. package/sdk/dist/cli/svm-effects.d.ts +50 -0
  272. package/sdk/dist/cli/svm-effects.d.ts.map +1 -0
  273. package/sdk/dist/cli/svm-effects.js +196 -0
  274. package/sdk/dist/cli/svm-effects.js.map +1 -0
  275. package/sdk/dist/cli/terminal.d.ts +42 -0
  276. package/sdk/dist/cli/terminal.d.ts.map +1 -0
  277. package/sdk/dist/cli/terminal.js +136 -0
  278. package/sdk/dist/cli/terminal.js.map +1 -0
  279. package/sdk/dist/cli/verify.d.ts +32 -0
  280. package/sdk/dist/cli/verify.d.ts.map +1 -0
  281. package/sdk/dist/cli/verify.js +185 -0
  282. package/sdk/dist/cli/verify.js.map +1 -0
  283. package/sdk/dist/cli/wallet-commands.d.ts +59 -0
  284. package/sdk/dist/cli/wallet-commands.d.ts.map +1 -0
  285. package/sdk/dist/cli/wallet-commands.js +222 -0
  286. package/sdk/dist/cli/wallet-commands.js.map +1 -0
  287. package/sdk/dist/cli/wallet-send.d.ts +38 -0
  288. package/sdk/dist/cli/wallet-send.d.ts.map +1 -0
  289. package/sdk/dist/cli/wallet-send.js +303 -0
  290. package/sdk/dist/cli/wallet-send.js.map +1 -0
  291. package/sdk/dist/cli/wallets.d.ts +79 -0
  292. package/sdk/dist/cli/wallets.d.ts.map +1 -0
  293. package/sdk/dist/cli/wallets.js +297 -0
  294. package/sdk/dist/cli/wallets.js.map +1 -0
  295. package/sdk/dist/deployments/index.d.ts +4 -62
  296. package/sdk/dist/deployments/index.d.ts.map +1 -1
  297. package/sdk/dist/deployments/index.js +4 -84
  298. package/sdk/dist/deployments/index.js.map +1 -1
  299. package/sdk/dist/deployments/pot.d.ts +17 -7
  300. package/sdk/dist/deployments/pot.d.ts.map +1 -1
  301. package/sdk/dist/deployments/pot.js +25 -10
  302. package/sdk/dist/deployments/pot.js.map +1 -1
  303. package/sdk/dist/deployments/releases.d.ts +36 -0
  304. package/sdk/dist/deployments/releases.d.ts.map +1 -0
  305. package/sdk/dist/deployments/releases.js +61 -0
  306. package/sdk/dist/deployments/releases.js.map +1 -0
  307. package/sdk/dist/deployments/releases.json +76 -0
  308. package/sdk/dist/deployments/v12-addresses.d.ts +13 -0
  309. package/sdk/dist/deployments/v12-addresses.d.ts.map +1 -1
  310. package/sdk/dist/deployments/v12-addresses.js +16 -3
  311. package/sdk/dist/deployments/v12-addresses.js.map +1 -1
  312. package/sdk/dist/deposit/index.d.ts +6 -6
  313. package/sdk/dist/deposit/index.d.ts.map +1 -1
  314. package/sdk/dist/deposit/index.js +1 -1
  315. package/sdk/dist/deposit/index.js.map +1 -1
  316. package/sdk/dist/deposit/params.d.ts +4 -4
  317. package/sdk/dist/deposit/params.d.ts.map +1 -1
  318. package/sdk/dist/deposit/params.js +7 -4
  319. package/sdk/dist/deposit/params.js.map +1 -1
  320. package/sdk/dist/deposit/source.d.ts +3 -30
  321. package/sdk/dist/deposit/source.d.ts.map +1 -1
  322. package/sdk/dist/deposit/source.js +7 -83
  323. package/sdk/dist/deposit/source.js.map +1 -1
  324. package/sdk/dist/deposit/templates.d.ts +1 -2
  325. package/sdk/dist/deposit/templates.d.ts.map +1 -1
  326. package/sdk/dist/deposit/templates.js +10 -2
  327. package/sdk/dist/deposit/templates.js.map +1 -1
  328. package/sdk/dist/deposit/types.d.ts +14 -12
  329. package/sdk/dist/deposit/types.d.ts.map +1 -1
  330. package/sdk/dist/deposit/types.js +6 -0
  331. package/sdk/dist/deposit/types.js.map +1 -1
  332. package/sdk/dist/descriptors/accessors.d.ts +38 -35
  333. package/sdk/dist/descriptors/accessors.d.ts.map +1 -1
  334. package/sdk/dist/descriptors/accessors.js +16 -0
  335. package/sdk/dist/descriptors/accessors.js.map +1 -1
  336. package/sdk/dist/descriptors/call.d.ts +66 -14
  337. package/sdk/dist/descriptors/call.d.ts.map +1 -1
  338. package/sdk/dist/descriptors/call.js +94 -13
  339. package/sdk/dist/descriptors/call.js.map +1 -1
  340. package/sdk/dist/descriptors/contracts.generated.d.ts +3393 -0
  341. package/sdk/dist/descriptors/contracts.generated.d.ts.map +1 -0
  342. package/sdk/dist/descriptors/contracts.generated.js +728 -0
  343. package/sdk/dist/descriptors/contracts.generated.js.map +1 -0
  344. package/sdk/dist/descriptors/derive.d.ts +20 -11
  345. package/sdk/dist/descriptors/derive.d.ts.map +1 -1
  346. package/sdk/dist/descriptors/derive.js +68 -30
  347. package/sdk/dist/descriptors/derive.js.map +1 -1
  348. package/sdk/dist/descriptors/index.d.ts +6 -7
  349. package/sdk/dist/descriptors/index.d.ts.map +1 -1
  350. package/sdk/dist/descriptors/index.js +2 -2
  351. package/sdk/dist/descriptors/index.js.map +1 -1
  352. package/sdk/dist/descriptors/links.d.ts +23 -214
  353. package/sdk/dist/descriptors/links.d.ts.map +1 -1
  354. package/sdk/dist/descriptors/links.js +1 -232
  355. package/sdk/dist/descriptors/links.js.map +1 -1
  356. package/sdk/dist/descriptors/query.d.ts +1 -1
  357. package/sdk/dist/descriptors/query.d.ts.map +1 -1
  358. package/sdk/dist/descriptors/query.js +1 -1
  359. package/sdk/dist/descriptors/query.js.map +1 -1
  360. package/sdk/dist/descriptors/registry.d.ts +2 -5
  361. package/sdk/dist/descriptors/registry.d.ts.map +1 -1
  362. package/sdk/dist/descriptors/registry.js +11 -66
  363. package/sdk/dist/descriptors/registry.js.map +1 -1
  364. package/sdk/dist/embedded/resolve.d.ts +4 -4
  365. package/sdk/dist/embedded/resolve.d.ts.map +1 -1
  366. package/sdk/dist/embedded/resolve.js +12 -8
  367. package/sdk/dist/embedded/resolve.js.map +1 -1
  368. package/sdk/dist/embedded/skills.generated.d.ts +1 -1
  369. package/sdk/dist/embedded/skills.generated.d.ts.map +1 -1
  370. package/sdk/dist/embedded/skills.generated.js +137 -136
  371. package/sdk/dist/embedded/skills.generated.js.map +1 -1
  372. package/sdk/dist/embedded/sources.generated.d.ts.map +1 -1
  373. package/sdk/dist/embedded/sources.generated.js +40 -6
  374. package/sdk/dist/embedded/sources.generated.js.map +1 -1
  375. package/sdk/dist/evm/engine.d.ts +813 -10
  376. package/sdk/dist/evm/engine.d.ts.map +1 -1
  377. package/sdk/dist/evm/engine.js +127 -8
  378. package/sdk/dist/evm/engine.js.map +1 -1
  379. package/sdk/dist/index.d.ts +3 -2
  380. package/sdk/dist/index.d.ts.map +1 -1
  381. package/sdk/dist/index.js +6 -2
  382. package/sdk/dist/index.js.map +1 -1
  383. package/sdk/dist/plugin/index.d.ts +3 -2
  384. package/sdk/dist/plugin/index.d.ts.map +1 -1
  385. package/sdk/dist/plugin/index.js.map +1 -1
  386. package/sdk/dist/price.d.ts +40 -0
  387. package/sdk/dist/price.d.ts.map +1 -0
  388. package/sdk/dist/price.js +101 -0
  389. package/sdk/dist/price.js.map +1 -0
  390. package/sdk/dist/protocols/aerodrome/abis.d.ts +76 -0
  391. package/sdk/dist/protocols/aerodrome/abis.d.ts.map +1 -1
  392. package/sdk/dist/protocols/aerodrome/abis.js +61 -0
  393. package/sdk/dist/protocols/aerodrome/abis.js.map +1 -1
  394. package/sdk/dist/protocols/aerodrome-slipstream/abis.d.ts +70 -0
  395. package/sdk/dist/protocols/aerodrome-slipstream/abis.d.ts.map +1 -1
  396. package/sdk/dist/protocols/aerodrome-slipstream/abis.js +54 -0
  397. package/sdk/dist/protocols/aerodrome-slipstream/abis.js.map +1 -1
  398. package/sdk/dist/protocols/camelot/abis.d.ts +178 -0
  399. package/sdk/dist/protocols/camelot/abis.d.ts.map +1 -1
  400. package/sdk/dist/protocols/camelot/abis.js +139 -0
  401. package/sdk/dist/protocols/camelot/abis.js.map +1 -1
  402. package/sdk/dist/protocols/cbeth/functions.d.ts +2 -2
  403. package/sdk/dist/protocols/cbeth/functions.d.ts.map +1 -1
  404. package/sdk/dist/protocols/cbeth/functions.js +4 -6
  405. package/sdk/dist/protocols/cbeth/functions.js.map +1 -1
  406. package/sdk/dist/protocols/crvusd/functions.d.ts +2 -2
  407. package/sdk/dist/protocols/crvusd/functions.d.ts.map +1 -1
  408. package/sdk/dist/protocols/crvusd/functions.js +6 -6
  409. package/sdk/dist/protocols/eco-routes/abis.d.ts +792 -50
  410. package/sdk/dist/protocols/eco-routes/abis.d.ts.map +1 -1
  411. package/sdk/dist/protocols/eco-routes/abis.js +1058 -49
  412. package/sdk/dist/protocols/eco-routes/abis.js.map +1 -1
  413. package/sdk/dist/protocols/eco-routes/addresses.generated.d.ts +44 -61
  414. package/sdk/dist/protocols/eco-routes/addresses.generated.d.ts.map +1 -1
  415. package/sdk/dist/protocols/eco-routes/addresses.generated.js +45 -62
  416. package/sdk/dist/protocols/eco-routes/addresses.generated.js.map +1 -1
  417. package/sdk/dist/protocols/eco-routes/lookup.d.ts +10 -0
  418. package/sdk/dist/protocols/eco-routes/lookup.d.ts.map +1 -1
  419. package/sdk/dist/protocols/eco-routes/lookup.js +16 -0
  420. package/sdk/dist/protocols/eco-routes/lookup.js.map +1 -1
  421. package/sdk/dist/protocols/erc20/functions.d.ts +3 -3
  422. package/sdk/dist/protocols/erc20/functions.d.ts.map +1 -1
  423. package/sdk/dist/protocols/erc20/functions.js +6 -9
  424. package/sdk/dist/protocols/erc20/functions.js.map +1 -1
  425. package/sdk/dist/protocols/frax/functions.d.ts +2 -2
  426. package/sdk/dist/protocols/frax/functions.d.ts.map +1 -1
  427. package/sdk/dist/protocols/frax/functions.js +6 -6
  428. package/sdk/dist/protocols/gho/functions.d.ts +2 -2
  429. package/sdk/dist/protocols/gho/functions.d.ts.map +1 -1
  430. package/sdk/dist/protocols/gho/functions.js +4 -6
  431. package/sdk/dist/protocols/gho/functions.js.map +1 -1
  432. package/sdk/dist/protocols/liquity-v2/functions.d.ts +2 -2
  433. package/sdk/dist/protocols/liquity-v2/functions.d.ts.map +1 -1
  434. package/sdk/dist/protocols/liquity-v2/functions.js +4 -6
  435. package/sdk/dist/protocols/liquity-v2/functions.js.map +1 -1
  436. package/sdk/dist/protocols/maverick/abis.d.ts +77 -0
  437. package/sdk/dist/protocols/maverick/abis.d.ts.map +1 -1
  438. package/sdk/dist/protocols/maverick/abis.js +58 -0
  439. package/sdk/dist/protocols/maverick/abis.js.map +1 -1
  440. package/sdk/dist/protocols/maverick/addresses.d.ts.map +1 -1
  441. package/sdk/dist/protocols/maverick/addresses.js +4 -0
  442. package/sdk/dist/protocols/maverick/addresses.js.map +1 -1
  443. package/sdk/dist/protocols/pancakeswap-v2/abis.d.ts +52 -0
  444. package/sdk/dist/protocols/pancakeswap-v2/abis.d.ts.map +1 -1
  445. package/sdk/dist/protocols/pancakeswap-v2/abis.js +43 -0
  446. package/sdk/dist/protocols/pancakeswap-v2/abis.js.map +1 -1
  447. package/sdk/dist/protocols/pancakeswap-v3/abis.d.ts +73 -0
  448. package/sdk/dist/protocols/pancakeswap-v3/abis.d.ts.map +1 -1
  449. package/sdk/dist/protocols/pancakeswap-v3/abis.js +56 -0
  450. package/sdk/dist/protocols/pancakeswap-v3/abis.js.map +1 -1
  451. package/sdk/dist/protocols/permit2/abis.d.ts +113 -0
  452. package/sdk/dist/protocols/permit2/abis.d.ts.map +1 -1
  453. package/sdk/dist/protocols/permit2/abis.js +63 -0
  454. package/sdk/dist/protocols/permit2/abis.js.map +1 -1
  455. package/sdk/dist/protocols/quickswap/abis.d.ts +148 -0
  456. package/sdk/dist/protocols/quickswap/abis.d.ts.map +1 -1
  457. package/sdk/dist/protocols/quickswap/abis.js +119 -0
  458. package/sdk/dist/protocols/quickswap/abis.js.map +1 -1
  459. package/sdk/dist/protocols/sushiswap-v2/abis.d.ts +52 -0
  460. package/sdk/dist/protocols/sushiswap-v2/abis.d.ts.map +1 -1
  461. package/sdk/dist/protocols/sushiswap-v2/abis.js +42 -0
  462. package/sdk/dist/protocols/sushiswap-v2/abis.js.map +1 -1
  463. package/sdk/dist/protocols/synthra-v3/abis.d.ts +73 -0
  464. package/sdk/dist/protocols/synthra-v3/abis.d.ts.map +1 -1
  465. package/sdk/dist/protocols/synthra-v3/abis.js +55 -0
  466. package/sdk/dist/protocols/synthra-v3/abis.js.map +1 -1
  467. package/sdk/dist/protocols/trader-joe/abis.d.ts +133 -0
  468. package/sdk/dist/protocols/trader-joe/abis.d.ts.map +1 -1
  469. package/sdk/dist/protocols/trader-joe/abis.js +101 -0
  470. package/sdk/dist/protocols/trader-joe/abis.js.map +1 -1
  471. package/sdk/dist/protocols/trader-joe/addresses.d.ts.map +1 -1
  472. package/sdk/dist/protocols/trader-joe/addresses.js +5 -0
  473. package/sdk/dist/protocols/trader-joe/addresses.js.map +1 -1
  474. package/sdk/dist/protocols/uniswap-v2/abis.d.ts +52 -0
  475. package/sdk/dist/protocols/uniswap-v2/abis.d.ts.map +1 -1
  476. package/sdk/dist/protocols/uniswap-v2/abis.js +44 -0
  477. package/sdk/dist/protocols/uniswap-v2/abis.js.map +1 -1
  478. package/sdk/dist/protocols/uniswap-v3/abis.d.ts +73 -0
  479. package/sdk/dist/protocols/uniswap-v3/abis.d.ts.map +1 -1
  480. package/sdk/dist/protocols/uniswap-v3/abis.js +55 -0
  481. package/sdk/dist/protocols/uniswap-v3/abis.js.map +1 -1
  482. package/sdk/dist/protocols/uniswap-v4/abis.d.ts +247 -0
  483. package/sdk/dist/protocols/uniswap-v4/abis.d.ts.map +1 -1
  484. package/sdk/dist/protocols/uniswap-v4/abis.js +167 -0
  485. package/sdk/dist/protocols/uniswap-v4/abis.js.map +1 -1
  486. package/sdk/dist/protocols/uniswap-v4/addresses.d.ts.map +1 -1
  487. package/sdk/dist/protocols/uniswap-v4/addresses.js +50 -0
  488. package/sdk/dist/protocols/uniswap-v4/addresses.js.map +1 -1
  489. package/sdk/dist/protocols/unitflow-v3/abis.d.ts +73 -0
  490. package/sdk/dist/protocols/unitflow-v3/abis.d.ts.map +1 -1
  491. package/sdk/dist/protocols/unitflow-v3/abis.js +56 -0
  492. package/sdk/dist/protocols/unitflow-v3/abis.js.map +1 -1
  493. package/sdk/dist/protocols/velodrome/abis.d.ts +76 -0
  494. package/sdk/dist/protocols/velodrome/abis.d.ts.map +1 -1
  495. package/sdk/dist/protocols/velodrome/abis.js +61 -0
  496. package/sdk/dist/protocols/velodrome/abis.js.map +1 -1
  497. package/sdk/dist/recipes/cctp-split.sauce.ts +5 -3
  498. package/sdk/dist/recipes/plain-transfer.sauce.ts +5 -2
  499. package/sdk/dist/routes/accessor-index.d.ts +2 -2
  500. package/sdk/dist/routes/accessor-index.d.ts.map +1 -1
  501. package/sdk/dist/routes/accessor-index.js +4 -3
  502. package/sdk/dist/routes/accessor-index.js.map +1 -1
  503. package/sdk/dist/routes/ambient.d.ts +5 -0
  504. package/sdk/dist/routes/ambient.d.ts.map +1 -1
  505. package/sdk/dist/routes/ambient.js +20 -0
  506. package/sdk/dist/routes/ambient.js.map +1 -1
  507. package/sdk/dist/routes/ast-walk.d.ts +21 -3
  508. package/sdk/dist/routes/ast-walk.d.ts.map +1 -1
  509. package/sdk/dist/routes/ast-walk.js +33 -4
  510. package/sdk/dist/routes/ast-walk.js.map +1 -1
  511. package/sdk/dist/routes/available.d.ts +43 -0
  512. package/sdk/dist/routes/available.d.ts.map +1 -0
  513. package/sdk/dist/routes/available.js +230 -0
  514. package/sdk/dist/routes/available.js.map +1 -0
  515. package/sdk/dist/routes/builtins.generated.d.ts +180 -0
  516. package/sdk/dist/routes/builtins.generated.d.ts.map +1 -0
  517. package/sdk/dist/routes/builtins.generated.js +2 -0
  518. package/sdk/dist/routes/builtins.generated.js.map +1 -0
  519. package/sdk/dist/routes/chain-exports.generated.d.ts +13 -8
  520. package/sdk/dist/routes/chain-exports.generated.d.ts.map +1 -1
  521. package/sdk/dist/routes/chain-exports.generated.js.map +1 -1
  522. package/sdk/dist/routes/closure.d.ts.map +1 -1
  523. package/sdk/dist/routes/closure.js +13 -26
  524. package/sdk/dist/routes/closure.js.map +1 -1
  525. package/sdk/dist/routes/composed.d.ts.map +1 -1
  526. package/sdk/dist/routes/composed.js +20 -8
  527. package/sdk/dist/routes/composed.js.map +1 -1
  528. package/sdk/dist/routes/encode.d.ts +17 -0
  529. package/sdk/dist/routes/encode.d.ts.map +1 -1
  530. package/sdk/dist/routes/encode.js +14 -11
  531. package/sdk/dist/routes/encode.js.map +1 -1
  532. package/sdk/dist/routes/entry.d.ts +76 -0
  533. package/sdk/dist/routes/entry.d.ts.map +1 -0
  534. package/sdk/dist/routes/entry.js +478 -0
  535. package/sdk/dist/routes/entry.js.map +1 -0
  536. package/sdk/dist/routes/index.d.ts +21 -14
  537. package/sdk/dist/routes/index.d.ts.map +1 -1
  538. package/sdk/dist/routes/index.js +12 -9
  539. package/sdk/dist/routes/index.js.map +1 -1
  540. package/sdk/dist/routes/intent-body.d.ts +97 -0
  541. package/sdk/dist/routes/intent-body.d.ts.map +1 -0
  542. package/sdk/dist/routes/intent-body.js +441 -0
  543. package/sdk/dist/routes/intent-body.js.map +1 -0
  544. package/sdk/dist/routes/intent-dsl.d.ts +21 -6
  545. package/sdk/dist/routes/intent-dsl.d.ts.map +1 -1
  546. package/sdk/dist/routes/intent-dsl.js +34 -17
  547. package/sdk/dist/routes/intent-dsl.js.map +1 -1
  548. package/sdk/dist/routes/intent-sugar.d.ts +77 -4
  549. package/sdk/dist/routes/intent-sugar.d.ts.map +1 -1
  550. package/sdk/dist/routes/intent-sugar.js +358 -152
  551. package/sdk/dist/routes/intent-sugar.js.map +1 -1
  552. package/sdk/dist/routes/intent.d.ts +13 -1
  553. package/sdk/dist/routes/intent.d.ts.map +1 -1
  554. package/sdk/dist/routes/intent.js +37 -1
  555. package/sdk/dist/routes/intent.js.map +1 -1
  556. package/sdk/dist/routes/nest.d.ts +3 -2
  557. package/sdk/dist/routes/nest.d.ts.map +1 -1
  558. package/sdk/dist/routes/nest.js +5 -3
  559. package/sdk/dist/routes/nest.js.map +1 -1
  560. package/sdk/dist/routes/parse.d.ts +6 -0
  561. package/sdk/dist/routes/parse.d.ts.map +1 -0
  562. package/sdk/dist/routes/parse.js +39 -0
  563. package/sdk/dist/routes/parse.js.map +1 -0
  564. package/sdk/dist/routes/portal.d.ts +258 -4
  565. package/sdk/dist/routes/portal.d.ts.map +1 -1
  566. package/sdk/dist/routes/portal.js +588 -9
  567. package/sdk/dist/routes/portal.js.map +1 -1
  568. package/sdk/dist/routes/protocol-rewrite.d.ts +71 -1
  569. package/sdk/dist/routes/protocol-rewrite.d.ts.map +1 -1
  570. package/sdk/dist/routes/protocol-rewrite.js +178 -54
  571. package/sdk/dist/routes/protocol-rewrite.js.map +1 -1
  572. package/sdk/dist/routes/rs-compile.d.ts +25 -22
  573. package/sdk/dist/routes/rs-compile.d.ts.map +1 -1
  574. package/sdk/dist/routes/rs-compile.js +55 -49
  575. package/sdk/dist/routes/rs-compile.js.map +1 -1
  576. package/sdk/dist/routes/sauce-calls.d.ts +26 -12
  577. package/sdk/dist/routes/sauce-calls.d.ts.map +1 -1
  578. package/sdk/dist/routes/sauce-calls.js +16 -23
  579. package/sdk/dist/routes/sauce-calls.js.map +1 -1
  580. package/sdk/dist/routes/sauce-route.d.ts +74 -7
  581. package/sdk/dist/routes/sauce-route.d.ts.map +1 -1
  582. package/sdk/dist/routes/sauce-route.js +249 -96
  583. package/sdk/dist/routes/sauce-route.js.map +1 -1
  584. package/sdk/dist/routes/source-globals.d.ts +107 -0
  585. package/sdk/dist/routes/source-globals.d.ts.map +1 -0
  586. package/sdk/dist/routes/source-globals.generated.d.ts +5530 -936
  587. package/sdk/dist/routes/source-globals.generated.d.ts.map +1 -1
  588. package/sdk/dist/routes/source-globals.generated.js +3 -4
  589. package/sdk/dist/routes/source-globals.generated.js.map +1 -1
  590. package/sdk/dist/routes/source-globals.js +174 -0
  591. package/sdk/dist/routes/source-globals.js.map +1 -0
  592. package/sdk/dist/routes/stock-tokens.d.ts +69 -0
  593. package/sdk/dist/routes/stock-tokens.d.ts.map +1 -0
  594. package/sdk/dist/routes/stock-tokens.generated.d.ts +4 -0
  595. package/sdk/dist/routes/stock-tokens.generated.d.ts.map +1 -0
  596. package/sdk/dist/routes/stock-tokens.generated.js +1836 -0
  597. package/sdk/dist/routes/stock-tokens.generated.js.map +1 -0
  598. package/sdk/dist/routes/stock-tokens.js +65 -0
  599. package/sdk/dist/routes/stock-tokens.js.map +1 -0
  600. package/sdk/dist/routes/token-registry.d.ts +64 -8
  601. package/sdk/dist/routes/token-registry.d.ts.map +1 -1
  602. package/sdk/dist/routes/token-registry.js +208 -33
  603. package/sdk/dist/routes/token-registry.js.map +1 -1
  604. package/sdk/dist/routes/token-rewrite.d.ts +63 -28
  605. package/sdk/dist/routes/token-rewrite.d.ts.map +1 -1
  606. package/sdk/dist/routes/token-rewrite.js +387 -123
  607. package/sdk/dist/routes/token-rewrite.js.map +1 -1
  608. package/sdk/dist/routes/unknown-global.d.ts +32 -0
  609. package/sdk/dist/routes/unknown-global.d.ts.map +1 -0
  610. package/sdk/dist/routes/unknown-global.js +106 -0
  611. package/sdk/dist/routes/unknown-global.js.map +1 -0
  612. package/sdk/dist/routes/vault.d.ts +38 -8
  613. package/sdk/dist/routes/vault.d.ts.map +1 -1
  614. package/sdk/dist/routes/vault.js +47 -8
  615. package/sdk/dist/routes/vault.js.map +1 -1
  616. package/sdk/dist/sauce-script/builtins.d.ts +309 -0
  617. package/sdk/dist/sauce-script/declarations.d.ts +3 -0
  618. package/sdk/dist/sauce-script/declarations.d.ts.map +1 -0
  619. package/sdk/dist/sauce-script/declarations.js +229 -0
  620. package/sdk/dist/sauce-script/declarations.js.map +1 -0
  621. package/sdk/dist/sauce-script/index.d.ts +2714 -0
  622. package/sdk/dist/sauce-script/ts-plugin.cjs +85 -0
  623. package/sdk/dist/skills/loader.d.ts.map +1 -1
  624. package/sdk/dist/skills/loader.js +4 -3
  625. package/sdk/dist/skills/loader.js.map +1 -1
  626. package/sdk/dist/std/router/balancer-v2-vault.abi.json +78 -0
  627. package/sdk/dist/std/router/curve-cryptoswap.abi.json +29 -0
  628. package/sdk/dist/std/router/curve-stableswap.abi.json +29 -0
  629. package/sdk/dist/std/router/dodo-v2-pool.abi.json +39 -0
  630. package/sdk/dist/std/router/lb-pair.abi.json +55 -0
  631. package/sdk/dist/std/router/package.json +7 -0
  632. package/sdk/dist/std/router/router.evm.js +567 -0
  633. package/sdk/dist/std/router/sauce-router.abi.json +202 -0
  634. package/sdk/dist/std/router/uniswap-v2-pair.abi.json +49 -0
  635. package/sdk/dist/std/router/woo-pp-v2.abi.json +42 -0
  636. package/sdk/dist/std/token/permit2.abi.json +226 -0
  637. package/sdk/dist/std/token/token.evm.js +73 -0
  638. package/sdk/dist/std/token/token.svm.js +194 -41
  639. package/sdk/dist/svm/client.d.ts +62 -15
  640. package/sdk/dist/svm/client.d.ts.map +1 -1
  641. package/sdk/dist/svm/client.js +103 -42
  642. package/sdk/dist/svm/client.js.map +1 -1
  643. package/sdk/dist/svm/engine.d.ts +66 -5
  644. package/sdk/dist/svm/engine.d.ts.map +1 -1
  645. package/sdk/dist/svm/engine.js +73 -5
  646. package/sdk/dist/svm/engine.js.map +1 -1
  647. package/sdk/dist/svm/index.d.ts +2 -0
  648. package/sdk/dist/svm/index.d.ts.map +1 -1
  649. package/sdk/dist/svm/index.js +2 -0
  650. package/sdk/dist/svm/index.js.map +1 -1
  651. package/sdk/dist/svm/instructions.d.ts +72 -1
  652. package/sdk/dist/svm/instructions.d.ts.map +1 -1
  653. package/sdk/dist/svm/instructions.js +81 -2
  654. package/sdk/dist/svm/instructions.js.map +1 -1
  655. package/sdk/dist/svm/kitchen.d.ts +20 -1
  656. package/sdk/dist/svm/kitchen.d.ts.map +1 -1
  657. package/sdk/dist/svm/kitchen.js +47 -1
  658. package/sdk/dist/svm/kitchen.js.map +1 -1
  659. package/sdk/dist/svm/portal.d.ts +250 -0
  660. package/sdk/dist/svm/portal.d.ts.map +1 -0
  661. package/sdk/dist/svm/portal.js +462 -0
  662. package/sdk/dist/svm/portal.js.map +1 -0
  663. package/sdk/dist/svm/send.d.ts +18 -2
  664. package/sdk/dist/svm/send.d.ts.map +1 -1
  665. package/sdk/dist/svm/send.js +28 -3
  666. package/sdk/dist/svm/send.js.map +1 -1
  667. package/sdk/dist/svm/token-accounts.d.ts +49 -0
  668. package/sdk/dist/svm/token-accounts.d.ts.map +1 -0
  669. package/sdk/dist/svm/token-accounts.js +58 -0
  670. package/sdk/dist/svm/token-accounts.js.map +1 -0
  671. package/sdk/dist/svm/token-extensions.d.ts +18 -7
  672. package/sdk/dist/svm/token-extensions.d.ts.map +1 -1
  673. package/sdk/dist/svm/token-extensions.js +58 -5
  674. package/sdk/dist/svm/token-extensions.js.map +1 -1
  675. package/sdk/dist/token/api.d.ts +7 -4
  676. package/sdk/dist/token/api.d.ts.map +1 -1
  677. package/sdk/dist/token/api.js.map +1 -1
  678. package/sdk/dist/token/evm.js +2 -2
  679. package/sdk/dist/token/index.d.ts +4 -4
  680. package/sdk/dist/token/index.js +4 -4
  681. package/sdk/dist/token/params.js +1 -1
  682. package/sdk/dist/token/source.js +3 -3
  683. package/sdk/dist/token/source.js.map +1 -1
  684. package/sdk/dist/token/types.d.ts +2 -2
  685. package/sdk/dist/token/types.js +2 -2
  686. package/sdk/src/protocols/aerodrome/AerodromePoolABI.json +105 -0
  687. package/sdk/src/protocols/aerodrome/abis.ts +62 -0
  688. package/sdk/src/protocols/aerodrome-slipstream/AerodromeSlipstreamPoolABI.json +96 -0
  689. package/sdk/src/protocols/aerodrome-slipstream/abis.ts +55 -0
  690. package/sdk/src/protocols/camelot/CamelotV2FactoryABI.json +25 -0
  691. package/sdk/src/protocols/camelot/CamelotV2PairABI.json +109 -0
  692. package/sdk/src/protocols/camelot/CamelotV3FactoryABI.json +25 -0
  693. package/sdk/src/protocols/camelot/CamelotV3PoolABI.json +92 -0
  694. package/sdk/src/protocols/camelot/abis.ts +143 -0
  695. package/sdk/src/protocols/cbeth/functions.ts +4 -6
  696. package/sdk/src/protocols/crvusd/functions.ts +6 -6
  697. package/sdk/src/protocols/eco-routes/PortalABI.json +1448 -0
  698. package/sdk/src/protocols/eco-routes/ProverABI.json +162 -0
  699. package/sdk/src/protocols/eco-routes/abis.ts +1060 -51
  700. package/sdk/src/protocols/eco-routes/addresses.generated.ts +45 -62
  701. package/sdk/src/protocols/eco-routes/lookup.ts +18 -0
  702. package/sdk/src/protocols/erc20/functions.ts +6 -9
  703. package/sdk/src/protocols/frax/functions.ts +6 -6
  704. package/sdk/src/protocols/gho/functions.ts +4 -6
  705. package/sdk/src/protocols/liquity-v2/functions.ts +4 -6
  706. package/sdk/src/protocols/maverick/MaverickV2PoolABI.json +107 -0
  707. package/sdk/src/protocols/maverick/abis.ts +59 -0
  708. package/sdk/src/protocols/maverick/addresses.ts +4 -0
  709. package/sdk/src/protocols/pancakeswap-v2/PancakeSwapV2PairABI.json +72 -0
  710. package/sdk/src/protocols/pancakeswap-v2/abis.ts +44 -0
  711. package/sdk/src/protocols/pancakeswap-v3/PancakeSwapV3PoolABI.json +100 -0
  712. package/sdk/src/protocols/pancakeswap-v3/abis.ts +57 -0
  713. package/sdk/src/protocols/permit2/Permit2ABI.json +154 -0
  714. package/sdk/src/protocols/permit2/abis.ts +63 -0
  715. package/sdk/src/protocols/quickswap/QuickSwapV2FactoryABI.json +25 -0
  716. package/sdk/src/protocols/quickswap/QuickSwapV2PairABI.json +72 -0
  717. package/sdk/src/protocols/quickswap/QuickSwapV3FactoryABI.json +25 -0
  718. package/sdk/src/protocols/quickswap/QuickSwapV3PoolABI.json +88 -0
  719. package/sdk/src/protocols/quickswap/abis.ts +123 -0
  720. package/sdk/src/protocols/sushiswap-v2/SushiSwapV2PairABI.json +72 -0
  721. package/sdk/src/protocols/sushiswap-v2/abis.ts +43 -0
  722. package/sdk/src/protocols/synthra-v3/SynthraV3PoolABI.json +100 -0
  723. package/sdk/src/protocols/synthra-v3/abis.ts +56 -0
  724. package/sdk/src/protocols/trader-joe/LBPairABI.json +185 -0
  725. package/sdk/src/protocols/trader-joe/abis.ts +102 -0
  726. package/sdk/src/protocols/trader-joe/addresses.ts +5 -0
  727. package/sdk/src/protocols/uniswap-v2/UniswapV2PairABI.json +72 -0
  728. package/sdk/src/protocols/uniswap-v2/abis.ts +45 -0
  729. package/sdk/src/protocols/uniswap-v3/UniswapV3PoolABI.json +100 -0
  730. package/sdk/src/protocols/uniswap-v3/abis.ts +56 -0
  731. package/sdk/src/protocols/uniswap-v4/UniswapV4PoolManagerABI.json +38 -0
  732. package/sdk/src/protocols/uniswap-v4/UniswapV4StateViewABI.json +307 -0
  733. package/sdk/src/protocols/uniswap-v4/abis.ts +168 -0
  734. package/sdk/src/protocols/uniswap-v4/addresses.ts +50 -0
  735. package/sdk/src/protocols/unitflow-v3/UnitFlowV3PoolABI.json +100 -0
  736. package/sdk/src/protocols/unitflow-v3/abis.ts +57 -0
  737. package/sdk/src/protocols/velodrome/VelodromePoolABI.json +105 -0
  738. package/sdk/src/protocols/velodrome/abis.ts +62 -0
  739. package/skills/sauce-actions/SKILL.md +166 -0
  740. package/skills/sauce-actions/examples/swap-and-supply.json +24 -0
  741. package/skills/sauce-actions/examples/swap-by-key.json +15 -0
  742. package/skills/sauce-actions/references/actions.md +731 -0
  743. package/skills/sauce-chains/SKILL.md +137 -0
  744. package/skills/sauce-chains/examples/chains.sauce.ts +25 -0
  745. package/skills/sauce-chains/references/arbitrum.md +158 -0
  746. package/skills/sauce-chains/references/arc.md +107 -0
  747. package/skills/sauce-chains/references/aurora.md +33 -0
  748. package/skills/sauce-chains/references/avalanche.md +106 -0
  749. package/skills/sauce-chains/references/base-stocks.md +77 -0
  750. package/skills/sauce-chains/references/base.md +141 -0
  751. package/skills/sauce-chains/references/berachain.md +33 -0
  752. package/skills/sauce-chains/references/blast.md +60 -0
  753. package/skills/sauce-chains/references/boba.md +33 -0
  754. package/skills/sauce-chains/references/bsc.md +97 -0
  755. package/skills/sauce-chains/references/celo.md +57 -0
  756. package/skills/sauce-chains/references/core.md +33 -0
  757. package/skills/sauce-chains/references/cronos.md +33 -0
  758. package/skills/sauce-chains/references/ethereum-stocks.md +1741 -0
  759. package/skills/sauce-chains/references/ethereum.md +255 -0
  760. package/skills/sauce-chains/references/evmos.md +33 -0
  761. package/skills/sauce-chains/references/fantom.md +61 -0
  762. package/skills/sauce-chains/references/fuse.md +33 -0
  763. package/skills/sauce-chains/references/gnosis.md +57 -0
  764. package/skills/sauce-chains/references/index.md +58 -0
  765. package/skills/sauce-chains/references/ink.md +55 -0
  766. package/skills/sauce-chains/references/kava.md +33 -0
  767. package/skills/sauce-chains/references/klaytn.md +33 -0
  768. package/skills/sauce-chains/references/linea.md +65 -0
  769. package/skills/sauce-chains/references/manta.md +33 -0
  770. package/skills/sauce-chains/references/mantle.md +33 -0
  771. package/skills/sauce-chains/references/metis.md +54 -0
  772. package/skills/sauce-chains/references/mode.md +55 -0
  773. package/skills/sauce-chains/references/monad.md +79 -0
  774. package/skills/sauce-chains/references/moonbeam.md +33 -0
  775. package/skills/sauce-chains/references/opbnb.md +55 -0
  776. package/skills/sauce-chains/references/optimism.md +123 -0
  777. package/skills/sauce-chains/references/plasma.md +35 -0
  778. package/skills/sauce-chains/references/polygon.md +123 -0
  779. package/skills/sauce-chains/references/pulsechain.md +33 -0
  780. package/skills/sauce-chains/references/ronin.md +35 -0
  781. package/skills/sauce-chains/references/scroll.md +62 -0
  782. package/skills/sauce-chains/references/sei.md +55 -0
  783. package/skills/sauce-chains/references/solana.md +53 -0
  784. package/skills/sauce-chains/references/sonic.md +57 -0
  785. package/skills/sauce-chains/references/unichain.md +61 -0
  786. package/skills/sauce-chains/references/zetachain.md +33 -0
  787. package/skills/sauce-chains/references/zksync.md +59 -0
  788. package/skills/sauce-chains/references/zora.md +57 -0
  789. package/skills/sauce-cli/SKILL.md +366 -0
  790. package/skills/sauce-cli/examples/pay.sauce.ts +23 -0
  791. package/skills/sauce-cli/examples/split.sauce.ts +30 -0
  792. package/skills/sauce-distributed-swap/SKILL.md +392 -0
  793. package/skills/sauce-distributed-swap/examples/distributed-swap.mts +251 -0
  794. package/skills/sauce-distributed-swap/examples/distributed-swap.sauce.ts +115 -0
  795. package/skills/sauce-examples/SKILL.md +96 -0
  796. package/skills/sauce-globals/SKILL.md +175 -0
  797. package/skills/sauce-globals/examples/globals.mts +111 -0
  798. package/skills/sauce-globals/examples/globals.sauce.ts +47 -0
  799. package/skills/sauce-globals/references/chains.md +53 -0
  800. package/skills/sauce-globals/references/protocols.md +405 -0
  801. package/skills/sauce-globals/references/stocks.md +1824 -0
  802. package/skills/sauce-globals/references/tokens.md +53 -0
  803. package/skills/sauce-intents/SKILL.md +505 -0
  804. package/skills/sauce-intents/examples/cross-chain.sauce.ts +37 -0
  805. package/skills/sauce-intents/examples/fund-by-transfer.sauce.ts +54 -0
  806. package/skills/sauce-intents/examples/intents.mts +343 -0
  807. package/skills/sauce-intents/examples/swap-on-base.sauce.ts +135 -0
  808. package/skills/sauce-intents/references/portal.md +77 -0
  809. package/skills/sauce-overview/SKILL.md +161 -0
  810. package/skills/sauce-protocols/SKILL.md +118 -0
  811. package/skills/sauce-protocols/examples/protocols.mts +77 -0
  812. package/skills/sauce-protocols/examples/protocols.sauce.ts +27 -0
  813. package/{sdk/src/skills → skills/sauce-protocols/references}/aave-v2.md +35 -17
  814. package/skills/sauce-protocols/references/aave-v3.md +144 -0
  815. package/skills/sauce-protocols/references/aave-v4.md +50 -0
  816. package/skills/sauce-protocols/references/abracadabra.md +72 -0
  817. package/skills/sauce-protocols/references/across.md +73 -0
  818. package/skills/sauce-protocols/references/aerodrome-slipstream.md +50 -0
  819. package/{sdk/src/skills → skills/sauce-protocols/references}/aerodrome.md +43 -24
  820. package/skills/sauce-protocols/references/aevo.md +49 -0
  821. package/{sdk/src/skills → skills/sauce-protocols/references}/alchemix.md +10 -25
  822. package/{sdk/src/skills → skills/sauce-protocols/references}/ambient.md +14 -21
  823. package/{sdk/src/skills → skills/sauce-protocols/references}/arbitrum-bridge.md +11 -14
  824. package/{sdk/src/skills → skills/sauce-protocols/references}/arrakis.md +10 -26
  825. package/skills/sauce-protocols/references/axelar.md +56 -0
  826. package/{sdk/src/skills → skills/sauce-protocols/references}/balancer-v2.md +13 -29
  827. package/{sdk/src/skills → skills/sauce-protocols/references}/base-bridge.md +11 -16
  828. package/{sdk/src/skills → skills/sauce-protocols/references}/baseswap.md +12 -19
  829. package/{sdk/src/skills → skills/sauce-protocols/references}/beefy.md +10 -30
  830. package/{sdk/src/skills → skills/sauce-protocols/references}/benqi.md +11 -21
  831. package/{sdk/src/skills → skills/sauce-protocols/references}/camelot.md +13 -27
  832. package/skills/sauce-protocols/references/cbeth.md +48 -0
  833. package/skills/sauce-protocols/references/cctp.md +47 -0
  834. package/{sdk/src/skills → skills/sauce-protocols/references}/celer.md +11 -18
  835. package/{sdk/src/skills → skills/sauce-protocols/references}/chainlink-ccip.md +11 -21
  836. package/skills/sauce-protocols/references/chainlink.md +47 -0
  837. package/{sdk/src/skills → skills/sauce-protocols/references}/circle-gateway.md +12 -38
  838. package/{sdk/src/skills → skills/sauce-protocols/references}/compound-v2.md +11 -25
  839. package/{sdk/src/skills → skills/sauce-protocols/references}/compound-v3.md +43 -27
  840. package/{sdk/src/skills → skills/sauce-protocols/references}/connext.md +11 -15
  841. package/{sdk/src/skills → skills/sauce-protocols/references}/convex.md +10 -28
  842. package/{sdk/src/skills → skills/sauce-protocols/references}/cowswap.md +12 -19
  843. package/skills/sauce-protocols/references/crvusd.md +49 -0
  844. package/skills/sauce-protocols/references/curve.md +98 -0
  845. package/{sdk/src/skills → skills/sauce-protocols/references}/debridge.md +11 -33
  846. package/{sdk/src/skills → skills/sauce-protocols/references}/dodo.md +13 -18
  847. package/skills/sauce-protocols/references/eigenlayer.md +48 -0
  848. package/{sdk/src/skills → skills/sauce-protocols/references}/ens.md +10 -26
  849. package/{sdk/src/skills → skills/sauce-protocols/references}/erc20.md +18 -34
  850. package/{sdk/src/skills → skills/sauce-protocols/references}/erc3156.md +10 -13
  851. package/{sdk/src/skills → skills/sauce-protocols/references}/erc4626.md +11 -27
  852. package/{sdk/src/skills → skills/sauce-protocols/references}/ethena.md +10 -27
  853. package/{sdk/src/skills → skills/sauce-protocols/references}/etherfi.md +10 -32
  854. package/{sdk/src/skills → skills/sauce-protocols/references}/euler-v2.md +11 -21
  855. package/{sdk/src/skills → skills/sauce-protocols/references}/fenix.md +12 -18
  856. package/{sdk/src/skills → skills/sauce-protocols/references}/fluid.md +11 -20
  857. package/{sdk/src/skills → skills/sauce-protocols/references}/frax-ether.md +10 -26
  858. package/skills/sauce-protocols/references/frax.md +48 -0
  859. package/{sdk/src/skills → skills/sauce-protocols/references}/gains-network.md +11 -28
  860. package/skills/sauce-protocols/references/gamma.md +57 -0
  861. package/{sdk/src/skills → skills/sauce-protocols/references}/gelato.md +12 -20
  862. package/skills/sauce-protocols/references/gho.md +50 -0
  863. package/{sdk/src/skills → skills/sauce-protocols/references}/gmx-v1.md +12 -34
  864. package/{sdk/src/skills → skills/sauce-protocols/references}/gmx-v2.md +15 -28
  865. package/skills/sauce-protocols/references/harvest.md +41 -0
  866. package/{sdk/src/skills → skills/sauce-protocols/references}/hegic.md +10 -18
  867. package/{sdk/src/skills → skills/sauce-protocols/references}/hop.md +11 -21
  868. package/{sdk/src/skills → skills/sauce-protocols/references}/hyperlane.md +11 -21
  869. package/skills/sauce-protocols/references/index.md +355 -0
  870. package/{sdk/src/skills → skills/sauce-protocols/references}/instadapp.md +10 -18
  871. package/skills/sauce-protocols/references/kelp.md +46 -0
  872. package/{sdk/src/skills → skills/sauce-protocols/references}/kim.md +12 -18
  873. package/{sdk/src/skills → skills/sauce-protocols/references}/kyberswap-aggregator.md +12 -35
  874. package/skills/sauce-protocols/references/kyberswap.md +72 -0
  875. package/{sdk/src/skills → skills/sauce-protocols/references}/layerbank.md +11 -26
  876. package/{sdk/src/skills → skills/sauce-protocols/references}/layerzero.md +11 -25
  877. package/{sdk/src/skills → skills/sauce-protocols/references}/level-finance.md +10 -24
  878. package/{sdk/src/skills → skills/sauce-protocols/references}/lido.md +10 -28
  879. package/{sdk/src/skills → skills/sauce-protocols/references}/lifi.md +11 -25
  880. package/{sdk/src/skills → skills/sauce-protocols/references}/linea-bridge.md +11 -14
  881. package/{sdk/src/skills → skills/sauce-protocols/references}/liquity-v1.md +10 -21
  882. package/skills/sauce-protocols/references/liquity-v2.md +48 -0
  883. package/{sdk/src/skills → skills/sauce-protocols/references}/lynex.md +12 -18
  884. package/skills/sauce-protocols/references/maker.md +57 -0
  885. package/skills/sauce-protocols/references/mantle-meth.md +43 -0
  886. package/{sdk/src/skills → skills/sauce-protocols/references}/maverick.md +13 -25
  887. package/{sdk/src/skills → skills/sauce-protocols/references}/moonwell.md +11 -21
  888. package/{sdk/src/skills → skills/sauce-protocols/references}/morpho-blue.md +44 -21
  889. package/{sdk/src/skills → skills/sauce-protocols/references}/mux-protocol.md +10 -30
  890. package/skills/sauce-protocols/references/olympus.md +39 -0
  891. package/skills/sauce-protocols/references/oneinch.md +81 -0
  892. package/skills/sauce-protocols/references/openocean.md +69 -0
  893. package/{sdk/src/skills → skills/sauce-protocols/references}/optimism-bridge.md +11 -16
  894. package/{sdk/src/skills → skills/sauce-protocols/references}/opyn.md +10 -21
  895. package/{sdk/src/skills → skills/sauce-protocols/references}/pancakeswap-v2.md +39 -41
  896. package/skills/sauce-protocols/references/pancakeswap-v3.md +72 -0
  897. package/skills/sauce-protocols/references/paraswap.md +39 -0
  898. package/{sdk/src/skills → skills/sauce-protocols/references}/pendle.md +47 -29
  899. package/skills/sauce-protocols/references/permit2.md +101 -0
  900. package/skills/sauce-protocols/references/perpetual-protocol.md +53 -0
  901. package/{sdk/src/skills → skills/sauce-protocols/references}/polygon-bridge.md +11 -17
  902. package/{sdk/src/skills → skills/sauce-protocols/references}/premia.md +10 -19
  903. package/{sdk/src/skills → skills/sauce-protocols/references}/puffer.md +10 -21
  904. package/skills/sauce-protocols/references/pyth.md +45 -0
  905. package/{sdk/src/skills → skills/sauce-protocols/references}/quickswap.md +13 -27
  906. package/{sdk/src/skills → skills/sauce-protocols/references}/radiant.md +11 -15
  907. package/{sdk/src/skills → skills/sauce-protocols/references}/ramses.md +12 -18
  908. package/skills/sauce-protocols/references/reflexer.md +52 -0
  909. package/skills/sauce-protocols/references/registry/aave-v2.md +43 -0
  910. package/skills/sauce-protocols/references/registry/aave-v3.md +62 -0
  911. package/skills/sauce-protocols/references/registry/aave-v4.md +80 -0
  912. package/skills/sauce-protocols/references/registry/abracadabra.md +54 -0
  913. package/skills/sauce-protocols/references/registry/across.md +57 -0
  914. package/skills/sauce-protocols/references/registry/aerodrome-slipstream.md +72 -0
  915. package/skills/sauce-protocols/references/registry/aerodrome.md +58 -0
  916. package/skills/sauce-protocols/references/registry/aevo.md +39 -0
  917. package/skills/sauce-protocols/references/registry/alchemix.md +46 -0
  918. package/skills/sauce-protocols/references/registry/ambient.md +40 -0
  919. package/skills/sauce-protocols/references/registry/arbitrum-bridge.md +40 -0
  920. package/skills/sauce-protocols/references/registry/arrakis.md +49 -0
  921. package/skills/sauce-protocols/references/registry/axelar.md +65 -0
  922. package/skills/sauce-protocols/references/registry/balancer-v2.md +50 -0
  923. package/skills/sauce-protocols/references/registry/base-bridge.md +42 -0
  924. package/skills/sauce-protocols/references/registry/baseswap.md +40 -0
  925. package/skills/sauce-protocols/references/registry/beefy.md +51 -0
  926. package/skills/sauce-protocols/references/registry/benqi.md +49 -0
  927. package/skills/sauce-protocols/references/registry/camelot.md +82 -0
  928. package/skills/sauce-protocols/references/registry/cbeth.md +43 -0
  929. package/skills/sauce-protocols/references/registry/cctp.md +48 -0
  930. package/skills/sauce-protocols/references/registry/celer.md +44 -0
  931. package/skills/sauce-protocols/references/registry/chainlink-ccip.md +45 -0
  932. package/skills/sauce-protocols/references/registry/chainlink.md +49 -0
  933. package/skills/sauce-protocols/references/registry/circle-gateway.md +70 -0
  934. package/skills/sauce-protocols/references/registry/compound-v2.md +53 -0
  935. package/skills/sauce-protocols/references/registry/compound-v3.md +52 -0
  936. package/skills/sauce-protocols/references/registry/connext.md +41 -0
  937. package/skills/sauce-protocols/references/registry/convex.md +51 -0
  938. package/skills/sauce-protocols/references/registry/cowswap.md +40 -0
  939. package/skills/sauce-protocols/references/registry/crvusd.md +40 -0
  940. package/skills/sauce-protocols/references/registry/curve.md +81 -0
  941. package/skills/sauce-protocols/references/registry/debridge.md +59 -0
  942. package/skills/sauce-protocols/references/registry/dodo.md +39 -0
  943. package/skills/sauce-protocols/references/registry/eco-routes.md +65 -0
  944. package/skills/sauce-protocols/references/registry/eigenlayer.md +58 -0
  945. package/skills/sauce-protocols/references/registry/ens.md +49 -0
  946. package/skills/sauce-protocols/references/registry/erc20.md +44 -0
  947. package/skills/sauce-protocols/references/registry/erc3156.md +38 -0
  948. package/skills/sauce-protocols/references/registry/erc4626.md +51 -0
  949. package/skills/sauce-protocols/references/registry/ethena.md +50 -0
  950. package/skills/sauce-protocols/references/registry/etherfi.md +57 -0
  951. package/skills/sauce-protocols/references/registry/euler-v2.md +49 -0
  952. package/skills/sauce-protocols/references/registry/fenix.md +39 -0
  953. package/skills/sauce-protocols/references/registry/fluid.md +48 -0
  954. package/skills/sauce-protocols/references/registry/frax-ether.md +49 -0
  955. package/skills/sauce-protocols/references/registry/frax.md +40 -0
  956. package/skills/sauce-protocols/references/registry/gains-network.md +43 -0
  957. package/skills/sauce-protocols/references/registry/gamma.md +56 -0
  958. package/skills/sauce-protocols/references/registry/gelato.md +45 -0
  959. package/skills/sauce-protocols/references/registry/gho.md +40 -0
  960. package/skills/sauce-protocols/references/registry/gmx-v1.md +59 -0
  961. package/skills/sauce-protocols/references/registry/gmx-v2.md +41 -0
  962. package/skills/sauce-protocols/references/registry/harvest.md +44 -0
  963. package/skills/sauce-protocols/references/registry/hegic.md +39 -0
  964. package/skills/sauce-protocols/references/registry/hop.md +49 -0
  965. package/skills/sauce-protocols/references/registry/hyperlane.md +48 -0
  966. package/skills/sauce-protocols/references/registry/instadapp.md +39 -0
  967. package/skills/sauce-protocols/references/registry/kelp.md +47 -0
  968. package/skills/sauce-protocols/references/registry/kim.md +39 -0
  969. package/skills/sauce-protocols/references/registry/kyberswap-aggregator.md +49 -0
  970. package/skills/sauce-protocols/references/registry/kyberswap.md +63 -0
  971. package/skills/sauce-protocols/references/registry/layerbank.md +54 -0
  972. package/skills/sauce-protocols/references/registry/layerzero.md +49 -0
  973. package/skills/sauce-protocols/references/registry/level-finance.md +41 -0
  974. package/skills/sauce-protocols/references/registry/lido.md +51 -0
  975. package/skills/sauce-protocols/references/registry/lifi.md +48 -0
  976. package/skills/sauce-protocols/references/registry/linea-bridge.md +40 -0
  977. package/skills/sauce-protocols/references/registry/liquity-v1.md +42 -0
  978. package/skills/sauce-protocols/references/registry/liquity-v2.md +40 -0
  979. package/skills/sauce-protocols/references/registry/lynex.md +39 -0
  980. package/skills/sauce-protocols/references/registry/maker.md +55 -0
  981. package/skills/sauce-protocols/references/registry/mantle-meth.md +48 -0
  982. package/skills/sauce-protocols/references/registry/maverick.md +60 -0
  983. package/skills/sauce-protocols/references/registry/moonwell.md +49 -0
  984. package/skills/sauce-protocols/references/registry/morpho-blue.md +47 -0
  985. package/skills/sauce-protocols/references/registry/mux-protocol.md +49 -0
  986. package/skills/sauce-protocols/references/registry/olympus.md +42 -0
  987. package/skills/sauce-protocols/references/registry/oneinch.md +45 -0
  988. package/skills/sauce-protocols/references/registry/openocean.md +44 -0
  989. package/skills/sauce-protocols/references/registry/optimism-bridge.md +42 -0
  990. package/skills/sauce-protocols/references/registry/opyn.md +42 -0
  991. package/skills/sauce-protocols/references/registry/pancakeswap-v2.md +71 -0
  992. package/skills/sauce-protocols/references/registry/pancakeswap-v3.md +76 -0
  993. package/skills/sauce-protocols/references/registry/paraswap.md +51 -0
  994. package/skills/sauce-protocols/references/registry/pendle.md +43 -0
  995. package/skills/sauce-protocols/references/registry/permit2.md +50 -0
  996. package/skills/sauce-protocols/references/registry/perpetual-protocol.md +49 -0
  997. package/skills/sauce-protocols/references/registry/polygon-bridge.md +43 -0
  998. package/skills/sauce-protocols/references/registry/premia.md +40 -0
  999. package/skills/sauce-protocols/references/registry/puffer.md +43 -0
  1000. package/skills/sauce-protocols/references/registry/pyth.md +40 -0
  1001. package/skills/sauce-protocols/references/registry/quickswap.md +80 -0
  1002. package/skills/sauce-protocols/references/registry/radiant.md +41 -0
  1003. package/skills/sauce-protocols/references/registry/ramses.md +39 -0
  1004. package/skills/sauce-protocols/references/registry/reflexer.md +56 -0
  1005. package/skills/sauce-protocols/references/registry/renzo.md +47 -0
  1006. package/skills/sauce-protocols/references/registry/rocket-pool.md +49 -0
  1007. package/skills/sauce-protocols/references/registry/sablier.md +40 -0
  1008. package/skills/sauce-protocols/references/registry/safe.md +47 -0
  1009. package/skills/sauce-protocols/references/registry/scroll-bridge.md +48 -0
  1010. package/skills/sauce-protocols/references/registry/seamless.md +42 -0
  1011. package/skills/sauce-protocols/references/registry/seaport.md +44 -0
  1012. package/skills/sauce-protocols/references/registry/silo.md +48 -0
  1013. package/skills/sauce-protocols/references/registry/socket.md +44 -0
  1014. package/skills/sauce-protocols/references/registry/sommelier.md +43 -0
  1015. package/skills/sauce-protocols/references/registry/spark.md +42 -0
  1016. package/skills/sauce-protocols/references/registry/spookyswap.md +40 -0
  1017. package/skills/sauce-protocols/references/registry/squid.md +45 -0
  1018. package/skills/sauce-protocols/references/registry/stader.md +47 -0
  1019. package/skills/sauce-protocols/references/registry/stargate.md +45 -0
  1020. package/skills/sauce-protocols/references/registry/superfluid.md +49 -0
  1021. package/skills/sauce-protocols/references/registry/sushiswap-v2.md +71 -0
  1022. package/skills/sauce-protocols/references/registry/swell.md +49 -0
  1023. package/skills/sauce-protocols/references/registry/synapse.md +46 -0
  1024. package/skills/sauce-protocols/references/registry/syncswap.md +38 -0
  1025. package/skills/sauce-protocols/references/registry/synthetix-v3.md +48 -0
  1026. package/skills/sauce-protocols/references/registry/synthra-v3.md +77 -0
  1027. package/skills/sauce-protocols/references/registry/thales.md +51 -0
  1028. package/skills/sauce-protocols/references/registry/thena.md +39 -0
  1029. package/skills/sauce-protocols/references/registry/thruster.md +38 -0
  1030. package/skills/sauce-protocols/references/registry/tokemak.md +45 -0
  1031. package/skills/sauce-protocols/references/registry/trader-joe.md +66 -0
  1032. package/skills/sauce-protocols/references/registry/uniswap-v2.md +77 -0
  1033. package/skills/sauce-protocols/references/registry/uniswap-v3.md +113 -0
  1034. package/skills/sauce-protocols/references/registry/uniswap-v4.md +117 -0
  1035. package/skills/sauce-protocols/references/registry/unitflow-v3.md +65 -0
  1036. package/skills/sauce-protocols/references/registry/velodrome.md +58 -0
  1037. package/skills/sauce-protocols/references/registry/venus.md +62 -0
  1038. package/skills/sauce-protocols/references/registry/vertex.md +46 -0
  1039. package/skills/sauce-protocols/references/registry/wormhole.md +59 -0
  1040. package/skills/sauce-protocols/references/registry/yearn-v3.md +46 -0
  1041. package/skills/sauce-protocols/references/registry/zerolend.md +41 -0
  1042. package/skills/sauce-protocols/references/registry/zerox.md +44 -0
  1043. package/skills/sauce-protocols/references/registry/zksync-bridge.md +40 -0
  1044. package/{sdk/src/skills → skills/sauce-protocols/references}/renzo.md +10 -24
  1045. package/{sdk/src/skills → skills/sauce-protocols/references}/rocket-pool.md +10 -26
  1046. package/{sdk/src/skills → skills/sauce-protocols/references}/sablier.md +10 -27
  1047. package/skills/sauce-protocols/references/safe.md +42 -0
  1048. package/{sdk/src/skills → skills/sauce-protocols/references}/scroll-bridge.md +11 -20
  1049. package/{sdk/src/skills → skills/sauce-protocols/references}/seamless.md +11 -16
  1050. package/skills/sauce-protocols/references/seaport.md +38 -0
  1051. package/{sdk/src/skills → skills/sauce-protocols/references}/silo.md +11 -20
  1052. package/{sdk/src/skills → skills/sauce-protocols/references}/socket.md +11 -18
  1053. package/skills/sauce-protocols/references/sommelier.md +40 -0
  1054. package/{sdk/src/skills → skills/sauce-protocols/references}/spark.md +11 -16
  1055. package/{sdk/src/skills → skills/sauce-protocols/references}/spookyswap.md +12 -19
  1056. package/{sdk/src/skills → skills/sauce-protocols/references}/squid.md +11 -21
  1057. package/skills/sauce-protocols/references/stader.md +39 -0
  1058. package/{sdk/src/skills → skills/sauce-protocols/references}/stargate.md +11 -22
  1059. package/{sdk/src/skills → skills/sauce-protocols/references}/superfluid.md +10 -28
  1060. package/{sdk/src/skills → skills/sauce-protocols/references}/sushiswap-v2.md +38 -43
  1061. package/skills/sauce-protocols/references/swell.md +49 -0
  1062. package/skills/sauce-protocols/references/synapse.md +54 -0
  1063. package/{sdk/src/skills → skills/sauce-protocols/references}/syncswap.md +12 -17
  1064. package/{sdk/src/skills → skills/sauce-protocols/references}/synthetix-v3.md +10 -29
  1065. package/skills/sauce-protocols/references/synthra-v3.md +63 -0
  1066. package/skills/sauce-protocols/references/thales.md +58 -0
  1067. package/{sdk/src/skills → skills/sauce-protocols/references}/thena.md +12 -18
  1068. package/{sdk/src/skills → skills/sauce-protocols/references}/thruster.md +13 -18
  1069. package/skills/sauce-protocols/references/tokemak.md +40 -0
  1070. package/{sdk/src/skills → skills/sauce-protocols/references}/trader-joe.md +13 -26
  1071. package/{sdk/src/skills → skills/sauce-protocols/references}/uniswap-v2.md +46 -44
  1072. package/skills/sauce-protocols/references/uniswap-v3.md +188 -0
  1073. package/skills/sauce-protocols/references/uniswap-v4.md +155 -0
  1074. package/skills/sauce-protocols/references/unitflow-v3.md +63 -0
  1075. package/{sdk/src/skills → skills/sauce-protocols/references}/velodrome.md +12 -24
  1076. package/{sdk/src/skills → skills/sauce-protocols/references}/venus.md +12 -31
  1077. package/skills/sauce-protocols/references/vertex.md +42 -0
  1078. package/skills/sauce-protocols/references/wormhole.md +57 -0
  1079. package/{sdk/src/skills → skills/sauce-protocols/references}/yearn-v3.md +10 -25
  1080. package/{sdk/src/skills → skills/sauce-protocols/references}/zerolend.md +11 -15
  1081. package/skills/sauce-protocols/references/zerox.md +39 -0
  1082. package/{sdk/src/skills → skills/sauce-protocols/references}/zksync-bridge.md +11 -14
  1083. package/skills/sauce-script/SKILL.md +407 -0
  1084. package/skills/sauce-script/examples/IOracle.json +12 -0
  1085. package/skills/sauce-script/examples/saucescript.mts +167 -0
  1086. package/skills/sauce-script/examples/twap.sauce.ts +29 -0
  1087. package/skills/sauce-script/references/builtins.json +823 -0
  1088. package/skills/sauce-script/references/builtins.md +674 -0
  1089. package/skills/sauce-solana/SKILL.md +322 -0
  1090. package/skills/sauce-solana/examples/solana.mts +166 -0
  1091. package/skills/sauce-solana/examples/solana.sauce.ts +45 -0
  1092. package/skills/sauce-solana/examples/token-2022.sauce.ts +38 -0
  1093. package/skills/sauce-swaps/SKILL.md +200 -0
  1094. package/skills/sauce-swaps/examples/swap-leg.sauce.ts +50 -0
  1095. package/skills/sauce-swaps/examples/swaps.mts +124 -0
  1096. package/skills/sauce-typescript/SKILL.md +178 -0
  1097. package/skills/sauce-typescript/examples/actions.mts +100 -0
  1098. package/skills/sauce-typescript/examples/compiler.mts +69 -0
  1099. package/skills/sauce-typescript/examples/cook.mts +65 -0
  1100. package/skills/sauce-typescript/examples/verify.mts +104 -0
  1101. package/dev-tools/README.md +0 -16
  1102. package/dev-tools/artifacts/IERC20.json +0 -1
  1103. package/dev-tools/artifacts/ISauceRouter.json +0 -1
  1104. package/dev-tools/artifacts/IUniswapV3Pool.json +0 -1
  1105. package/dev-tools/artifacts/Router.json +0 -1
  1106. package/dev-tools/hardhat.config.cjs +0 -18
  1107. package/dev-tools/sauce/js/add.js +0 -4
  1108. package/dev-tools/sauce/js/call.js +0 -8
  1109. package/dev-tools/sauce/js/erc20.js +0 -18
  1110. package/dev-tools/sauce/js/example.js +0 -6
  1111. package/dev-tools/sauce/js/fibonacci.js +0 -13
  1112. package/dev-tools/sauce/ts/add.ts +0 -4
  1113. package/dev-tools/sauce/ts/call.ts +0 -8
  1114. package/dev-tools/sauce/ts/erc20.ts +0 -18
  1115. package/dev-tools/sauce/ts/example.ts +0 -6
  1116. package/dev-tools/sauce/ts/fibonacci.ts +0 -13
  1117. package/dev-tools/sauce/ts/saucescript.d.ts +0 -1
  1118. package/dev-tools/sauce/ts/tsconfig.json +0 -12
  1119. package/dev-tools/scripts/deploy.ts +0 -107
  1120. package/dev-tools/scripts/init.js +0 -132
  1121. package/dev-tools/scripts/run.ts +0 -67
  1122. package/dev-tools/scripts/start-fork.sh +0 -92
  1123. package/dev-tools/scripts/start-local.sh +0 -120
  1124. package/dev-tools/scripts/stop-local.sh +0 -40
  1125. package/dev-tools/scripts/sync-artifacts.js +0 -46
  1126. package/dev-tools/scripts/sync-price.ts +0 -58
  1127. package/dev-tools/src/contracts.ts +0 -59
  1128. package/dev-tools/src/runner.ts +0 -355
  1129. package/dev-tools/src/svm-local.ts +0 -305
  1130. package/dev-tools/src/sync-price.ts +0 -217
  1131. package/sdk/dist/deployments/v12.generated.d.ts +0 -95
  1132. package/sdk/dist/deployments/v12.generated.d.ts.map +0 -1
  1133. package/sdk/dist/deployments/v12.generated.js +0 -50
  1134. package/sdk/dist/deployments/v12.generated.js.map +0 -1
  1135. package/sdk/dist/swap/index.d.ts +0 -29
  1136. package/sdk/dist/swap/index.d.ts.map +0 -1
  1137. package/sdk/dist/swap/index.js +0 -27
  1138. package/sdk/dist/swap/index.js.map +0 -1
  1139. package/sdk/dist/swap/params.d.ts +0 -29
  1140. package/sdk/dist/swap/params.d.ts.map +0 -1
  1141. package/sdk/dist/swap/params.js +0 -123
  1142. package/sdk/dist/swap/params.js.map +0 -1
  1143. package/sdk/dist/swap/source.d.ts +0 -30
  1144. package/sdk/dist/swap/source.d.ts.map +0 -1
  1145. package/sdk/dist/swap/source.js +0 -101
  1146. package/sdk/dist/swap/source.js.map +0 -1
  1147. package/sdk/dist/swap/types.d.ts +0 -160
  1148. package/sdk/dist/swap/types.d.ts.map +0 -1
  1149. package/sdk/dist/swap/types.js +0 -106
  1150. package/sdk/dist/swap/types.js.map +0 -1
  1151. package/sdk/src/skills/aave-v3.md +0 -134
  1152. package/sdk/src/skills/aave-v4.md +0 -91
  1153. package/sdk/src/skills/abracadabra.md +0 -93
  1154. package/sdk/src/skills/across.md +0 -90
  1155. package/sdk/src/skills/aerodrome-slipstream.md +0 -57
  1156. package/sdk/src/skills/aevo.md +0 -58
  1157. package/sdk/src/skills/axelar.md +0 -80
  1158. package/sdk/src/skills/cbeth.md +0 -62
  1159. package/sdk/src/skills/chainlink.md +0 -62
  1160. package/sdk/src/skills/crvusd.md +0 -58
  1161. package/sdk/src/skills/curve.md +0 -141
  1162. package/sdk/src/skills/eigenlayer.md +0 -71
  1163. package/sdk/src/skills/frax.md +0 -57
  1164. package/sdk/src/skills/gamma.md +0 -79
  1165. package/sdk/src/skills/gho.md +0 -61
  1166. package/sdk/src/skills/harvest.md +0 -49
  1167. package/sdk/src/skills/index.md +0 -299
  1168. package/sdk/src/skills/kelp.md +0 -60
  1169. package/sdk/src/skills/kyberswap.md +0 -100
  1170. package/sdk/src/skills/liquity-v2.md +0 -59
  1171. package/sdk/src/skills/loader.ts +0 -46
  1172. package/sdk/src/skills/maker.md +0 -79
  1173. package/sdk/src/skills/mantle-meth.md +0 -60
  1174. package/sdk/src/skills/olympus.md +0 -46
  1175. package/sdk/src/skills/oneinch.md +0 -64
  1176. package/sdk/src/skills/openocean.md +0 -86
  1177. package/sdk/src/skills/pancakeswap-v3.md +0 -104
  1178. package/sdk/src/skills/paraswap.md +0 -67
  1179. package/sdk/src/skills/permit2.md +0 -73
  1180. package/sdk/src/skills/perpetual-protocol.md +0 -73
  1181. package/sdk/src/skills/pyth.md +0 -58
  1182. package/sdk/src/skills/reflexer.md +0 -73
  1183. package/sdk/src/skills/safe.md +0 -56
  1184. package/sdk/src/skills/seaport.md +0 -65
  1185. package/sdk/src/skills/sommelier.md +0 -47
  1186. package/sdk/src/skills/stader.md +0 -53
  1187. package/sdk/src/skills/swell.md +0 -65
  1188. package/sdk/src/skills/synapse.md +0 -63
  1189. package/sdk/src/skills/synthra-v3.md +0 -57
  1190. package/sdk/src/skills/thales.md +0 -74
  1191. package/sdk/src/skills/tokemak.md +0 -48
  1192. package/sdk/src/skills/uniswap-v3.md +0 -202
  1193. package/sdk/src/skills/uniswap-v4.md +0 -125
  1194. package/sdk/src/skills/unitflow-v3.md +0 -62
  1195. package/sdk/src/skills/vertex.md +0 -55
  1196. package/sdk/src/skills/wormhole.md +0 -76
  1197. package/sdk/src/skills/zerox.md +0 -51
@@ -2,14 +2,17 @@
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
3
  "$id": "urn:eco-incorp:sauce:action-program:1",
4
4
  "title": "Sauce action program",
5
- "description": "A sequence of protocol actions that compiles to one Sauce program executing on one chain. Amounts are base-10 strings. Beyond this schema, a program must satisfy: every address with mixed-case hex carries a valid EIP-55 checksum; every amount fits its declared width; a first action that takes an amount sets `amount`; an amountRef names a saveOutputAs set by an earlier action, and is not combined with `amount`; argument names are unique; and the value of every balanceOf/nativeBalance/argument action is read.",
5
+ "description": "A sequence of protocol actions that compiles to one Sauce program executing on one chain. Amounts are base-10 strings. A token is a registry symbol (\"USDC\", or a tokenized stock's, its issuer's ticker: \"SPCXc\") or an address, and a protocol contract a namespace reference (\"UniswapV3.Factory\") or an address; a name resolves on the chain the program is compiled for, so a document with no chainId compiles for any chain where its names exist. Beyond this schema, a program must satisfy: every address with mixed-case hex carries a valid EIP-55 checksum; every amount fits its declared width; a first action that takes an amount sets `amount`; an amountRef names a saveOutputAs set by an earlier action, and is not combined with `amount`; argument names are unique; the value of every balanceOf/nativeBalance/argument action is read; and every token symbol and namespace reference exists on the chain it is compiled for.",
6
6
  "type": "object",
7
7
  "additionalProperties": false,
8
- "required": ["version", "chainId", "actions"],
8
+ "required": ["version", "actions"],
9
9
  "properties": {
10
10
  "$schema": { "type": "string", "description": "The schema this document declares; ignored." },
11
11
  "version": { "const": 1 },
12
- "chainId": { "$ref": "#/$defs/chainId", "description": "The chain every action executes on." },
12
+ "chainId": {
13
+ "$ref": "#/$defs/chainId",
14
+ "description": "The chain the document is written for; compiling it for another is refused. Leave it out of a document that names its tokens and contracts: it then compiles for any chain where those names exist, the chain chosen when it is compiled."
15
+ },
13
16
  "actions": {
14
17
  "type": "array",
15
18
  "minItems": 1,
@@ -23,6 +26,40 @@
23
26
  "pattern": "^0x[0-9a-fA-F]{40}$",
24
27
  "description": "An address: 0x + 40 hex digits. A mixed-case address must carry a valid EIP-55 checksum."
25
28
  },
29
+ "tokenSymbol": {
30
+ "type": "string",
31
+ "pattern": "^(?=[^A-Z]*[A-Z])[A-Za-z][A-Za-z0-9_]{1,15}$",
32
+ "description": "A registry token symbol, as a Sauce program writes it: \"USDC\", \"WETH\", or a tokenized stock's, which is its issuer's ticker (\"SPCXc\", \"TSLAon\", \"bTSLA\"). It resolves on the chain the program is compiled for; a chain that does not register it refuses the program, naming the chain and the symbol. `sauce globals --chain <chain> --tokens` lists them, and `--stocks` the chain's stock tokens."
33
+ },
34
+ "contractName": {
35
+ "type": "string",
36
+ "pattern": "^[A-Z][A-Za-z0-9]*\\.[A-Za-z][A-Za-z0-9]*$",
37
+ "description": "A protocol contract by namespace, as a Sauce program writes it: \"UniswapV3.Factory\", \"BalancerV2.Vault\", \"UniswapV4.PoolManager\". It resolves on the chain the program is compiled for; a chain without it refuses the program. `sauce globals --chain <chain> --protocols` lists them."
38
+ },
39
+ "token": {
40
+ "description": "A token: a registry symbol, or an address.",
41
+ "oneOf": [{ "$ref": "#/$defs/tokenSymbol" }, { "$ref": "#/$defs/address" }]
42
+ },
43
+ "tokenOrNative": {
44
+ "description": "A token: a registry symbol, an address, or \"native\" for the native currency, which the venue keys as the zero address.",
45
+ "oneOf": [
46
+ { "$ref": "#/$defs/tokenSymbol" },
47
+ { "$ref": "#/$defs/address" },
48
+ { "const": "native" }
49
+ ]
50
+ },
51
+ "contract": {
52
+ "description": "A protocol contract: a namespace reference, or an address.",
53
+ "oneOf": [{ "$ref": "#/$defs/contractName" }, { "$ref": "#/$defs/address" }]
54
+ },
55
+ "tokenContract": {
56
+ "description": "A contract that is also a token (WETH, wstETH): a registry symbol, a namespace reference, or an address.",
57
+ "oneOf": [
58
+ { "$ref": "#/$defs/tokenSymbol" },
59
+ { "$ref": "#/$defs/contractName" },
60
+ { "$ref": "#/$defs/address" }
61
+ ]
62
+ },
26
63
  "recipient": {
27
64
  "description": "An address, or \"self\" for the executing Pot.",
28
65
  "oneOf": [{ "$ref": "#/$defs/address" }, { "const": "self" }]
@@ -49,20 +86,20 @@
49
86
  "chainId": { "type": "integer", "minimum": 1, "maximum": 9007199254740991 },
50
87
  "action": {
51
88
  "oneOf": [
52
- { "$ref": "#/$defs/action_uniswapV3ExactInput" },
53
- { "$ref": "#/$defs/action_uniswapV3ExactInputMultiHop" },
54
- { "$ref": "#/$defs/action_uniswapV4ExactInput" },
55
- { "$ref": "#/$defs/action_uniswapV4ExactInputMultiHop" },
89
+ { "$ref": "#/$defs/action_uniswapV2Swap" },
90
+ { "$ref": "#/$defs/action_uniswapV3Swap" },
91
+ { "$ref": "#/$defs/action_uniswapV4Swap" },
56
92
  { "$ref": "#/$defs/action_curveSwap" },
57
- { "$ref": "#/$defs/action_curveRouterNGSwap" },
58
93
  { "$ref": "#/$defs/action_balancerV2Swap" },
94
+ { "$ref": "#/$defs/action_dodoV2Swap" },
95
+ { "$ref": "#/$defs/action_traderJoeLBSwap" },
96
+ { "$ref": "#/$defs/action_woofiSwap" },
97
+ { "$ref": "#/$defs/action_maverickV2Swap" },
98
+ { "$ref": "#/$defs/action_curveRouterNGSwap" },
59
99
  { "$ref": "#/$defs/action_balancerV2BatchSwap" },
60
100
  { "$ref": "#/$defs/action_balancerV3Swap" },
61
- { "$ref": "#/$defs/action_uniswapV2Swap" },
62
101
  { "$ref": "#/$defs/action_ambientSwap" },
63
- { "$ref": "#/$defs/action_dodoSwap" },
64
- { "$ref": "#/$defs/action_maverickSwap" },
65
- { "$ref": "#/$defs/action_maverickMultiHopSwap" },
102
+ { "$ref": "#/$defs/action_dodoV1Swap" },
66
103
  { "$ref": "#/$defs/action_carbonSwap" },
67
104
  { "$ref": "#/$defs/action_fraxswapSwap" },
68
105
  { "$ref": "#/$defs/action_fluidDexT1Swap" },
@@ -93,26 +130,104 @@
93
130
  { "$ref": "#/$defs/action_argument" }
94
131
  ]
95
132
  },
96
- "action_uniswapV3ExactInput": {
97
- "title": "uniswapV3ExactInput",
98
- "description": "Swaps an exact input through one Uniswap V3 pool. Calls SwapRouter02.exactInputSingle.",
133
+ "action_uniswapV2Swap": {
134
+ "title": "uniswapV2Swap",
135
+ "description": "Swaps through one Uniswap V2 pair (or a fork's), priced from its reserves and paid by a push. Calls @sauce/router uniswapV2: pair.getReserves, an ERC-20 transfer to the pair, pair.swap. Give exactly one of: pool; factory.",
136
+ "type": "object",
137
+ "additionalProperties": false,
138
+ "required": ["type", "tokenIn", "tokenOut", "amountOutMin", "recipient"],
139
+ "properties": {
140
+ "type": { "const": "uniswapV2Swap" },
141
+ "amount": {
142
+ "type": "string",
143
+ "pattern": "^(0|[1-9][0-9]*)$",
144
+ "maxLength": 78,
145
+ "description": "The amount this action spends. Omit it (and amountRef) to spend the previous action's output."
146
+ },
147
+ "pool": {
148
+ "$ref": "#/$defs/contract",
149
+ "description": "the pair; or leave it out and give `factory`"
150
+ },
151
+ "factory": {
152
+ "$ref": "#/$defs/contract",
153
+ "description": "instead of `pool`: a Uniswap V2-style factory (\"UniswapV2.Factory\"), whose getPair(tokenIn, tokenOut) is the pair; the program reads it from the factory on chain and reverts if there is none"
154
+ },
155
+ "tokenIn": { "$ref": "#/$defs/token", "description": "the token sold, pushed to the pair" },
156
+ "tokenOut": {
157
+ "$ref": "#/$defs/token",
158
+ "description": "the token bought; the direction is the pair's sort order"
159
+ },
160
+ "feePpm": {
161
+ "type": "integer",
162
+ "minimum": 0,
163
+ "maximum": 999999,
164
+ "description": "the pair's LP fee in parts per million; absent or 0 is 3000 (0.30%), PancakeSwap V2 is 2500"
165
+ },
166
+ "amountOutMin": {
167
+ "type": "string",
168
+ "pattern": "^(0|[1-9][0-9]*)$",
169
+ "maxLength": 78,
170
+ "description": "the least output accepted; the venue reverts below it"
171
+ },
172
+ "recipient": {
173
+ "$ref": "#/$defs/recipient",
174
+ "description": "receives the output when no later action spends it; `\"self\"` keeps it in the Pot"
175
+ },
176
+ "amountRef": {
177
+ "$ref": "#/$defs/identifier",
178
+ "description": "Spend the output an earlier action saved under this name."
179
+ },
180
+ "saveOutputAs": {
181
+ "$ref": "#/$defs/identifier",
182
+ "description": "Save this action's output under a name later actions can reference."
183
+ }
184
+ },
185
+ "oneOf": [
186
+ { "required": ["pool"], "properties": { "pool": true, "factory": false } },
187
+ { "required": ["factory"], "properties": { "pool": false, "factory": true } }
188
+ ]
189
+ },
190
+ "action_uniswapV3Swap": {
191
+ "title": "uniswapV3Swap",
192
+ "description": "Swaps through one Uniswap V3 pool (or a fork's), through the Pot's Router, which answers its callback. Calls @sauce/router uniswapV3: Router.swapV3. Give exactly one of: pool; factory + fee; factory + tickSpacing.",
99
193
  "type": "object",
100
194
  "additionalProperties": false,
101
- "required": ["type", "router", "tokenIn", "tokenOut", "fee", "amountOutMin", "recipient"],
195
+ "required": ["type", "tokenIn", "tokenOut", "amountOutMin", "recipient"],
102
196
  "properties": {
103
- "type": { "const": "uniswapV3ExactInput" },
197
+ "type": { "const": "uniswapV3Swap" },
104
198
  "amount": {
105
199
  "type": "string",
106
200
  "pattern": "^(0|[1-9][0-9]*)$",
107
201
  "maxLength": 78,
108
202
  "description": "The amount this action spends. Omit it (and amountRef) to spend the previous action's output."
109
203
  },
110
- "router": { "$ref": "#/$defs/address", "description": "the SwapRouter02" },
111
- "tokenIn": { "$ref": "#/$defs/address", "description": "the token sold" },
112
- "tokenOut": { "$ref": "#/$defs/address", "description": "the token bought" },
204
+ "pool": {
205
+ "$ref": "#/$defs/contract",
206
+ "description": "the pool; or leave it out and give `factory` with `fee` or `tickSpacing`"
207
+ },
208
+ "factory": {
209
+ "$ref": "#/$defs/contract",
210
+ "description": "instead of `pool`: the factory whose getPool(tokenIn, tokenOut, key) is the pool — a Uniswap V3-style factory with `fee` (\"UniswapV3.Factory\", \"PancakeswapV3.Factory\"), or Aerodrome Slipstream's with `tickSpacing` (\"AerodromeSlipstream.CLFactory\"); the program reads it from the factory on chain and reverts if there is none"
211
+ },
113
212
  "fee": {
114
- "enum": [100, 500, 3000, 10000],
115
- "description": "the pool's fee tier, in hundredths of a bip"
213
+ "type": "integer",
214
+ "minimum": 0,
215
+ "maximum": 16777215,
216
+ "description": "with `factory`: the pool's fee tier, in hundredths of a bip (500 is 0.05%)"
217
+ },
218
+ "tickSpacing": {
219
+ "type": "integer",
220
+ "minimum": 1,
221
+ "maximum": 8388607,
222
+ "description": "with a Slipstream `factory`: the pool's tick spacing"
223
+ },
224
+ "tokenIn": { "$ref": "#/$defs/token", "description": "the token sold" },
225
+ "tokenOut": { "$ref": "#/$defs/token", "description": "the token bought" },
226
+ "sqrtPriceLimitX96": {
227
+ "type": "string",
228
+ "pattern": "^(0|[1-9][0-9]*)$",
229
+ "maxLength": 49,
230
+ "description": "a price at which the swap stops, leaving the rest of the input in the Pot; absent or 0 for none"
116
231
  },
117
232
  "amountOutMin": {
118
233
  "type": "string",
@@ -120,11 +235,96 @@
120
235
  "maxLength": 78,
121
236
  "description": "the least output accepted; the venue reverts below it"
122
237
  },
238
+ "recipient": {
239
+ "$ref": "#/$defs/recipient",
240
+ "description": "receives the output when no later action spends it; `\"self\"` keeps it in the Pot"
241
+ },
242
+ "amountRef": {
243
+ "$ref": "#/$defs/identifier",
244
+ "description": "Spend the output an earlier action saved under this name."
245
+ },
246
+ "saveOutputAs": {
247
+ "$ref": "#/$defs/identifier",
248
+ "description": "Save this action's output under a name later actions can reference."
249
+ }
250
+ },
251
+ "oneOf": [
252
+ {
253
+ "required": ["pool"],
254
+ "properties": { "pool": true, "factory": false, "fee": false, "tickSpacing": false }
255
+ },
256
+ {
257
+ "required": ["factory", "fee"],
258
+ "properties": { "pool": false, "factory": true, "fee": true, "tickSpacing": false }
259
+ },
260
+ {
261
+ "required": ["factory", "tickSpacing"],
262
+ "properties": { "pool": false, "factory": true, "fee": false, "tickSpacing": true }
263
+ }
264
+ ]
265
+ },
266
+ "action_uniswapV4Swap": {
267
+ "title": "uniswapV4Swap",
268
+ "description": "Swaps through one Uniswap V4 pool, named by its key, through the Pot's Router, which settles with the PoolManager. Calls @sauce/router uniswapV4: Router.swapV4.",
269
+ "type": "object",
270
+ "additionalProperties": false,
271
+ "required": [
272
+ "type",
273
+ "poolManager",
274
+ "tokenIn",
275
+ "tokenOut",
276
+ "fee",
277
+ "tickSpacing",
278
+ "amountOutMin",
279
+ "recipient"
280
+ ],
281
+ "properties": {
282
+ "type": { "const": "uniswapV4Swap" },
283
+ "amount": {
284
+ "type": "string",
285
+ "pattern": "^(0|[1-9][0-9]*)$",
286
+ "maxLength": 78,
287
+ "description": "The amount this action spends. Omit it (and amountRef) to spend the previous action's output."
288
+ },
289
+ "poolManager": {
290
+ "$ref": "#/$defs/contract",
291
+ "description": "the PoolManager (\"UniswapV4.PoolManager\")"
292
+ },
293
+ "tokenIn": {
294
+ "$ref": "#/$defs/tokenOrNative",
295
+ "description": "the token sold; \"native\" is the native currency"
296
+ },
297
+ "tokenOut": {
298
+ "$ref": "#/$defs/tokenOrNative",
299
+ "description": "the token bought; \"native\" is the native currency"
300
+ },
301
+ "fee": {
302
+ "type": "integer",
303
+ "minimum": 0,
304
+ "maximum": 16777215,
305
+ "description": "the pool key's fee, in hundredths of a bip"
306
+ },
307
+ "tickSpacing": {
308
+ "type": "integer",
309
+ "minimum": 1,
310
+ "maximum": 32767,
311
+ "description": "the pool key's tick spacing"
312
+ },
313
+ "hooks": {
314
+ "$ref": "#/$defs/contract",
315
+ "description": "the pool key's hooks contract; absent for a pool with none"
316
+ },
123
317
  "sqrtPriceLimitX96": {
124
318
  "type": "string",
125
319
  "pattern": "^(0|[1-9][0-9]*)$",
126
320
  "maxLength": 49,
127
- "description": "a price limit; absent or 0 for none"
321
+ "description": "a price at which the swap stops, leaving the rest of the input in the Pot; absent or 0 for none"
322
+ },
323
+ "amountOutMin": {
324
+ "type": "string",
325
+ "pattern": "^(0|[1-9][0-9]*)$",
326
+ "maxLength": 78,
327
+ "description": "the least output accepted; the venue reverts below it"
128
328
  },
129
329
  "recipient": {
130
330
  "$ref": "#/$defs/recipient",
@@ -140,24 +340,54 @@
140
340
  }
141
341
  }
142
342
  },
143
- "action_uniswapV3ExactInputMultiHop": {
144
- "title": "uniswapV3ExactInputMultiHop",
145
- "description": "Swaps an exact input along a packed Uniswap V3 path. Calls SwapRouter02.exactInput.",
343
+ "action_curveSwap": {
344
+ "title": "curveSwap",
345
+ "description": "Swaps through a Curve pool's 4-argument `exchange`, approving exactly the input; the output is a balance delta. Calls @sauce/router curve: an exact ERC-20 approval, then pool.exchange(int128|uint256 i, j, dx, min_dy).",
146
346
  "type": "object",
147
347
  "additionalProperties": false,
148
- "required": ["type", "router", "path", "amountOutMin", "recipient"],
348
+ "required": [
349
+ "type",
350
+ "pool",
351
+ "tokenIn",
352
+ "tokenOut",
353
+ "i",
354
+ "j",
355
+ "indexType",
356
+ "amountOutMin",
357
+ "recipient"
358
+ ],
149
359
  "properties": {
150
- "type": { "const": "uniswapV3ExactInputMultiHop" },
360
+ "type": { "const": "curveSwap" },
151
361
  "amount": {
152
362
  "type": "string",
153
363
  "pattern": "^(0|[1-9][0-9]*)$",
154
364
  "maxLength": 78,
155
365
  "description": "The amount this action spends. Omit it (and amountRef) to spend the previous action's output."
156
366
  },
157
- "router": { "$ref": "#/$defs/address", "description": "the SwapRouter02" },
158
- "path": {
159
- "$ref": "#/$defs/bytes",
160
- "description": "the packed path: token ++ fee (3 bytes) ++ token ++ …"
367
+ "pool": { "$ref": "#/$defs/contract", "description": "the Curve pool" },
368
+ "tokenIn": {
369
+ "$ref": "#/$defs/token",
370
+ "description": "the token sold, approved to the pool for exactly the amount"
371
+ },
372
+ "tokenOut": {
373
+ "$ref": "#/$defs/token",
374
+ "description": "the token bought, whose balance delta is the output"
375
+ },
376
+ "i": {
377
+ "type": "integer",
378
+ "minimum": 0,
379
+ "maximum": 7,
380
+ "description": "the pool index of the coin sold"
381
+ },
382
+ "j": {
383
+ "type": "integer",
384
+ "minimum": 0,
385
+ "maximum": 7,
386
+ "description": "the pool index of the coin bought"
387
+ },
388
+ "indexType": {
389
+ "enum": ["int128", "uint256"],
390
+ "description": "the pool's index type: int128 for StableSwap and NG pools, uint256 for CryptoSwap"
161
391
  },
162
392
  "amountOutMin": {
163
393
  "type": "string",
@@ -167,7 +397,7 @@
167
397
  },
168
398
  "recipient": {
169
399
  "$ref": "#/$defs/recipient",
170
- "description": "receives the output when no later action spends it; `\"self\"` keeps it in the Pot"
400
+ "description": "receives the output when no later action spends it; `\"self\"` keeps it in the Pot; the pool pays the Pot, which forwards it with a transfer"
171
401
  },
172
402
  "amountRef": {
173
403
  "$ref": "#/$defs/identifier",
@@ -179,53 +409,32 @@
179
409
  }
180
410
  }
181
411
  },
182
- "action_uniswapV4ExactInput": {
183
- "title": "uniswapV4ExactInput",
184
- "description": "Swaps an exact ERC-20 input through one Uniswap V4 pool via the Universal Router. Calls an ERC-20 transfer to the router, then UniversalRouter.execute (V4_SWAP: swap, settle, take).",
412
+ "action_balancerV2Swap": {
413
+ "title": "balancerV2Swap",
414
+ "description": "Swaps through one Balancer V2 pool, approving the Vault for exactly the input. Calls @sauce/router balancerV2: an exact ERC-20 approval, then Vault.swap (GIVEN_IN).",
185
415
  "type": "object",
186
416
  "additionalProperties": false,
187
- "required": ["type", "router", "poolKey", "zeroForOne", "amountOutMin", "recipient"],
417
+ "required": ["type", "vault", "poolId", "tokenIn", "tokenOut", "amountOutMin", "recipient"],
188
418
  "properties": {
189
- "type": { "const": "uniswapV4ExactInput" },
419
+ "type": { "const": "balancerV2Swap" },
190
420
  "amount": {
191
421
  "type": "string",
192
422
  "pattern": "^(0|[1-9][0-9]*)$",
193
423
  "maxLength": 78,
194
424
  "description": "The amount this action spends. Omit it (and amountRef) to spend the previous action's output."
195
425
  },
196
- "router": { "$ref": "#/$defs/address", "description": "the Universal Router" },
197
- "poolKey": {
198
- "type": "object",
199
- "additionalProperties": false,
200
- "required": ["currency0", "currency1", "fee", "tickSpacing", "hooks"],
201
- "properties": {
202
- "currency0": { "$ref": "#/$defs/address", "description": "the pool's lower currency" },
203
- "currency1": { "$ref": "#/$defs/address", "description": "the pool's higher currency" },
204
- "fee": {
205
- "type": "integer",
206
- "minimum": 0,
207
- "maximum": 16777215,
208
- "description": "the pool fee, in hundredths of a bip"
209
- },
210
- "tickSpacing": {
211
- "type": "integer",
212
- "minimum": 1,
213
- "maximum": 32767,
214
- "description": "the pool's tick spacing"
215
- },
216
- "hooks": {
217
- "$ref": "#/$defs/address",
218
- "description": "the pool's hooks contract, or the zero address"
219
- }
220
- },
221
- "description": "the V4 pool key"
426
+ "vault": { "$ref": "#/$defs/contract", "description": "the Balancer V2 Vault" },
427
+ "poolId": { "$ref": "#/$defs/bytes32", "description": "the pool id" },
428
+ "tokenIn": {
429
+ "$ref": "#/$defs/token",
430
+ "description": "the token sold, approved to the Vault for exactly the amount"
222
431
  },
223
- "zeroForOne": { "type": "boolean", "description": "true sells currency0 for currency1" },
432
+ "tokenOut": { "$ref": "#/$defs/token", "description": "the token bought" },
224
433
  "amountOutMin": {
225
434
  "type": "string",
226
435
  "pattern": "^(0|[1-9][0-9]*)$",
227
- "maxLength": 39,
228
- "description": "the least output accepted; the router reverts below it"
436
+ "maxLength": 78,
437
+ "description": "the least output accepted; the venue reverts below it"
229
438
  },
230
439
  "recipient": {
231
440
  "$ref": "#/$defs/recipient",
@@ -241,59 +450,42 @@
241
450
  }
242
451
  }
243
452
  },
244
- "action_uniswapV4ExactInputMultiHop": {
245
- "title": "uniswapV4ExactInputMultiHop",
246
- "description": "Swaps an exact ERC-20 input along a Uniswap V4 path via the Universal Router. Calls an ERC-20 transfer to the router, then UniversalRouter.execute (V4_SWAP: swap, settle, take).",
453
+ "action_dodoV2Swap": {
454
+ "title": "dodoV2Swap",
455
+ "description": "Swaps through one DODO V2 pool (DVM, DPP or DSP), paid by a push. Calls @sauce/router dodoV2: an ERC-20 transfer to the pool, then sellBase(to) or sellQuote(to).",
247
456
  "type": "object",
248
457
  "additionalProperties": false,
249
- "required": ["type", "router", "currencyIn", "path", "amountOutMin", "recipient"],
458
+ "required": [
459
+ "type",
460
+ "pool",
461
+ "tokenIn",
462
+ "tokenOut",
463
+ "baseToken",
464
+ "quoteToken",
465
+ "amountOutMin",
466
+ "recipient"
467
+ ],
250
468
  "properties": {
251
- "type": { "const": "uniswapV4ExactInputMultiHop" },
469
+ "type": { "const": "dodoV2Swap" },
252
470
  "amount": {
253
471
  "type": "string",
254
472
  "pattern": "^(0|[1-9][0-9]*)$",
255
473
  "maxLength": 78,
256
474
  "description": "The amount this action spends. Omit it (and amountRef) to spend the previous action's output."
257
475
  },
258
- "router": { "$ref": "#/$defs/address", "description": "the Universal Router" },
259
- "currencyIn": { "$ref": "#/$defs/address", "description": "the currency sold" },
260
- "path": {
261
- "type": "array",
262
- "items": {
263
- "type": "object",
264
- "additionalProperties": false,
265
- "required": ["intermediateCurrency", "fee", "tickSpacing", "hooks"],
266
- "properties": {
267
- "intermediateCurrency": {
268
- "$ref": "#/$defs/address",
269
- "description": "the currency this hop buys"
270
- },
271
- "fee": {
272
- "type": "integer",
273
- "minimum": 0,
274
- "maximum": 16777215,
275
- "description": "the hop's pool fee"
276
- },
277
- "tickSpacing": {
278
- "type": "integer",
279
- "minimum": 1,
280
- "maximum": 32767,
281
- "description": "the hop's pool tick spacing"
282
- },
283
- "hooks": {
284
- "$ref": "#/$defs/address",
285
- "description": "the hop's pool hooks, or the zero address"
286
- }
287
- }
288
- },
289
- "minItems": 1,
290
- "description": "the hops, in order; the last hop's currency is the output"
476
+ "pool": { "$ref": "#/$defs/contract", "description": "the pool" },
477
+ "tokenIn": { "$ref": "#/$defs/token", "description": "the token sold, pushed to the pool" },
478
+ "tokenOut": { "$ref": "#/$defs/token", "description": "the token bought" },
479
+ "baseToken": {
480
+ "$ref": "#/$defs/token",
481
+ "description": "the pool's base token; tokenIn and tokenOut must be base and quote"
291
482
  },
483
+ "quoteToken": { "$ref": "#/$defs/token", "description": "the pool's quote token" },
292
484
  "amountOutMin": {
293
485
  "type": "string",
294
486
  "pattern": "^(0|[1-9][0-9]*)$",
295
- "maxLength": 39,
296
- "description": "the least output accepted; the router reverts below it"
487
+ "maxLength": 78,
488
+ "description": "the least output accepted; the venue reverts below it"
297
489
  },
298
490
  "recipient": {
299
491
  "$ref": "#/$defs/recipient",
@@ -309,37 +501,41 @@
309
501
  }
310
502
  }
311
503
  },
312
- "action_curveSwap": {
313
- "title": "curveSwap",
314
- "description": "Swaps through a Curve pool's 4-argument `exchange`; the output is a balance delta. Calls pool.exchange(int128,int128,uint256,uint256).",
504
+ "action_traderJoeLBSwap": {
505
+ "title": "traderJoeLBSwap",
506
+ "description": "Swaps through one Trader Joe Liquidity Book pair, paid by a push. Calls @sauce/router traderJoeLB: an ERC-20 transfer to the pair, then pair.swap(swapForY, to). Give exactly one of: pool; factory + binStep. Give tokenX + tokenY together or not at all.",
315
507
  "type": "object",
316
508
  "additionalProperties": false,
317
- "required": ["type", "pool", "tokenOut", "i", "j", "amountOutMin", "recipient"],
509
+ "required": ["type", "tokenIn", "tokenOut", "amountOutMin", "recipient"],
318
510
  "properties": {
319
- "type": { "const": "curveSwap" },
511
+ "type": { "const": "traderJoeLBSwap" },
320
512
  "amount": {
321
513
  "type": "string",
322
514
  "pattern": "^(0|[1-9][0-9]*)$",
323
515
  "maxLength": 78,
324
516
  "description": "The amount this action spends. Omit it (and amountRef) to spend the previous action's output."
325
517
  },
326
- "pool": { "$ref": "#/$defs/address", "description": "the Curve pool" },
327
- "tokenOut": {
328
- "$ref": "#/$defs/address",
329
- "description": "the token bought, whose balance delta is the output"
518
+ "pool": {
519
+ "$ref": "#/$defs/contract",
520
+ "description": "the pair; or leave it out and give `factory` with `binStep`"
330
521
  },
331
- "i": {
332
- "type": "integer",
333
- "minimum": 0,
334
- "maximum": 7,
335
- "description": "the pool index of the coin sold"
522
+ "factory": {
523
+ "$ref": "#/$defs/contract",
524
+ "description": "instead of `pool`: the LBFactory (\"TraderJoe.LBFactory\"), whose getLBPairInformation(tokenIn, tokenOut, binStep) names the pair; the program reads it from the factory on chain and reverts if there is none"
336
525
  },
337
- "j": {
526
+ "binStep": {
338
527
  "type": "integer",
339
- "minimum": 0,
340
- "maximum": 7,
341
- "description": "the pool index of the coin bought"
528
+ "minimum": 1,
529
+ "maximum": 65535,
530
+ "description": "with `factory`: the pair's bin step"
342
531
  },
532
+ "tokenIn": { "$ref": "#/$defs/token", "description": "the token sold, pushed to the pair" },
533
+ "tokenOut": { "$ref": "#/$defs/token", "description": "the token bought" },
534
+ "tokenX": {
535
+ "$ref": "#/$defs/token",
536
+ "description": "the pair's token X; tokenIn and tokenOut must be X and Y. Leave tokenX and tokenY out to read them from the pair"
537
+ },
538
+ "tokenY": { "$ref": "#/$defs/token", "description": "the pair's token Y" },
343
539
  "amountOutMin": {
344
540
  "type": "string",
345
541
  "pattern": "^(0|[1-9][0-9]*)$",
@@ -348,7 +544,95 @@
348
544
  },
349
545
  "recipient": {
350
546
  "$ref": "#/$defs/recipient",
351
- "description": "receives the output when no later action spends it; `\"self\"` keeps it in the Pot; the pool pays the Pot, which forwards it with a transfer"
547
+ "description": "receives the output when no later action spends it; `\"self\"` keeps it in the Pot"
548
+ },
549
+ "amountRef": {
550
+ "$ref": "#/$defs/identifier",
551
+ "description": "Spend the output an earlier action saved under this name."
552
+ },
553
+ "saveOutputAs": {
554
+ "$ref": "#/$defs/identifier",
555
+ "description": "Save this action's output under a name later actions can reference."
556
+ }
557
+ },
558
+ "oneOf": [
559
+ {
560
+ "required": ["pool"],
561
+ "properties": { "pool": true, "factory": false, "binStep": false }
562
+ },
563
+ {
564
+ "required": ["factory", "binStep"],
565
+ "properties": { "pool": false, "factory": true, "binStep": true }
566
+ }
567
+ ],
568
+ "dependentRequired": { "tokenX": ["tokenY"], "tokenY": ["tokenX"] }
569
+ },
570
+ "action_woofiSwap": {
571
+ "title": "woofiSwap",
572
+ "description": "Swaps through WOOFi's WooPPV2, paid by a push. Calls @sauce/router woofi: an ERC-20 transfer to the pool, then WooPPV2.swap.",
573
+ "type": "object",
574
+ "additionalProperties": false,
575
+ "required": ["type", "pool", "tokenIn", "tokenOut", "amountOutMin", "recipient"],
576
+ "properties": {
577
+ "type": { "const": "woofiSwap" },
578
+ "amount": {
579
+ "type": "string",
580
+ "pattern": "^(0|[1-9][0-9]*)$",
581
+ "maxLength": 78,
582
+ "description": "The amount this action spends. Omit it (and amountRef) to spend the previous action's output."
583
+ },
584
+ "pool": {
585
+ "$ref": "#/$defs/contract",
586
+ "description": "the WooPPV2 itself, not the WooRouterV2"
587
+ },
588
+ "tokenIn": { "$ref": "#/$defs/token", "description": "the token sold, pushed to the pool" },
589
+ "tokenOut": { "$ref": "#/$defs/token", "description": "the token bought" },
590
+ "amountOutMin": {
591
+ "type": "string",
592
+ "pattern": "^(0|[1-9][0-9]*)$",
593
+ "maxLength": 78,
594
+ "description": "the least output accepted, as the pool's own minToAmount; required and positive, because the pool prices from an oracle"
595
+ },
596
+ "recipient": {
597
+ "$ref": "#/$defs/recipient",
598
+ "description": "receives the output when no later action spends it; `\"self\"` keeps it in the Pot"
599
+ },
600
+ "amountRef": {
601
+ "$ref": "#/$defs/identifier",
602
+ "description": "Spend the output an earlier action saved under this name."
603
+ },
604
+ "saveOutputAs": {
605
+ "$ref": "#/$defs/identifier",
606
+ "description": "Save this action's output under a name later actions can reference."
607
+ }
608
+ }
609
+ },
610
+ "action_maverickV2Swap": {
611
+ "title": "maverickV2Swap",
612
+ "description": "Swaps through one Maverick V2 pool, through the Pot's Router, which pays what the pool asks for. Calls @sauce/router maverickV2: Router.swap.",
613
+ "type": "object",
614
+ "additionalProperties": false,
615
+ "required": ["type", "pool", "tokenIn", "tokenOut", "amountOutMin", "recipient"],
616
+ "properties": {
617
+ "type": { "const": "maverickV2Swap" },
618
+ "amount": {
619
+ "type": "string",
620
+ "pattern": "^(0|[1-9][0-9]*)$",
621
+ "maxLength": 78,
622
+ "description": "The amount this action spends. Omit it (and amountRef) to spend the previous action's output."
623
+ },
624
+ "pool": { "$ref": "#/$defs/contract", "description": "the pool" },
625
+ "tokenIn": { "$ref": "#/$defs/token", "description": "the token sold" },
626
+ "tokenOut": { "$ref": "#/$defs/token", "description": "the token bought" },
627
+ "amountOutMin": {
628
+ "type": "string",
629
+ "pattern": "^(0|[1-9][0-9]*)$",
630
+ "maxLength": 78,
631
+ "description": "the least output accepted; the venue reverts below it"
632
+ },
633
+ "recipient": {
634
+ "$ref": "#/$defs/recipient",
635
+ "description": "receives the output when no later action spends it; `\"self\"` keeps it in the Pot"
352
636
  },
353
637
  "amountRef": {
354
638
  "$ref": "#/$defs/identifier",
@@ -374,13 +658,13 @@
374
658
  "maxLength": 78,
375
659
  "description": "The amount this action spends. Omit it (and amountRef) to spend the previous action's output."
376
660
  },
377
- "router": { "$ref": "#/$defs/address", "description": "the Curve RouterNG" },
661
+ "router": { "$ref": "#/$defs/contract", "description": "the Curve RouterNG" },
378
662
  "route": {
379
663
  "type": "array",
380
- "items": { "$ref": "#/$defs/address" },
664
+ "items": { "$ref": "#/$defs/tokenContract" },
381
665
  "minItems": 1,
382
666
  "maxItems": 11,
383
- "description": "the route; padded to 11 with zero addresses"
667
+ "description": "the route, tokens and pools alternating; padded to 11 with zero addresses"
384
668
  },
385
669
  "swapParams": {
386
670
  "type": "array",
@@ -402,7 +686,7 @@
402
686
  },
403
687
  "pools": {
404
688
  "type": "array",
405
- "items": { "$ref": "#/$defs/address" },
689
+ "items": { "$ref": "#/$defs/contract" },
406
690
  "maxItems": 5,
407
691
  "description": "a zap pool where a hop needs one; padded to 5"
408
692
  },
@@ -426,59 +710,6 @@
426
710
  }
427
711
  }
428
712
  },
429
- "action_balancerV2Swap": {
430
- "title": "balancerV2Swap",
431
- "description": "Swaps through one Balancer V2 pool. Calls Vault.swap.",
432
- "type": "object",
433
- "additionalProperties": false,
434
- "required": [
435
- "type",
436
- "vault",
437
- "poolId",
438
- "tokenIn",
439
- "tokenOut",
440
- "amountOutMin",
441
- "recipient",
442
- "deadline"
443
- ],
444
- "properties": {
445
- "type": { "const": "balancerV2Swap" },
446
- "amount": {
447
- "type": "string",
448
- "pattern": "^(0|[1-9][0-9]*)$",
449
- "maxLength": 78,
450
- "description": "The amount this action spends. Omit it (and amountRef) to spend the previous action's output."
451
- },
452
- "vault": { "$ref": "#/$defs/address", "description": "the Balancer V2 Vault" },
453
- "poolId": { "$ref": "#/$defs/bytes32", "description": "the pool id" },
454
- "tokenIn": { "$ref": "#/$defs/address", "description": "the token sold" },
455
- "tokenOut": { "$ref": "#/$defs/address", "description": "the token bought" },
456
- "amountOutMin": {
457
- "type": "string",
458
- "pattern": "^(0|[1-9][0-9]*)$",
459
- "maxLength": 78,
460
- "description": "the least output accepted; the venue reverts below it"
461
- },
462
- "recipient": {
463
- "$ref": "#/$defs/recipient",
464
- "description": "receives the output when no later action spends it; `\"self\"` keeps it in the Pot"
465
- },
466
- "deadline": {
467
- "type": "integer",
468
- "minimum": 0,
469
- "maximum": 9007199254740991,
470
- "description": "Unix seconds after which the venue reverts"
471
- },
472
- "amountRef": {
473
- "$ref": "#/$defs/identifier",
474
- "description": "Spend the output an earlier action saved under this name."
475
- },
476
- "saveOutputAs": {
477
- "$ref": "#/$defs/identifier",
478
- "description": "Save this action's output under a name later actions can reference."
479
- }
480
- }
481
- },
482
713
  "action_balancerV2BatchSwap": {
483
714
  "title": "balancerV2BatchSwap",
484
715
  "description": "Swaps along Balancer V2 pools in one batch; the output is a balance delta. Calls Vault.batchSwap.",
@@ -487,7 +718,7 @@
487
718
  "required": ["type", "vault", "steps", "assets", "amountOutMin", "recipient", "deadline"],
488
719
  "properties": {
489
720
  "type": { "const": "balancerV2BatchSwap" },
490
- "vault": { "$ref": "#/$defs/address", "description": "the Balancer V2 Vault" },
721
+ "vault": { "$ref": "#/$defs/contract", "description": "the Balancer V2 Vault" },
491
722
  "steps": {
492
723
  "type": "array",
493
724
  "items": {
@@ -521,9 +752,9 @@
521
752
  },
522
753
  "assets": {
523
754
  "type": "array",
524
- "items": { "$ref": "#/$defs/address" },
755
+ "items": { "$ref": "#/$defs/tokenOrNative" },
525
756
  "minItems": 2,
526
- "description": "every asset the steps index"
757
+ "description": "every asset the steps index; \"native\" is the native currency"
527
758
  },
528
759
  "amountOutMin": {
529
760
  "type": "string",
@@ -570,10 +801,10 @@
570
801
  "maxLength": 78,
571
802
  "description": "The amount this action spends. Omit it (and amountRef) to spend the previous action's output."
572
803
  },
573
- "router": { "$ref": "#/$defs/address", "description": "the Balancer V3 Router" },
574
- "pool": { "$ref": "#/$defs/address", "description": "the pool" },
575
- "tokenIn": { "$ref": "#/$defs/address", "description": "the token sold" },
576
- "tokenOut": { "$ref": "#/$defs/address", "description": "the token bought" },
804
+ "router": { "$ref": "#/$defs/contract", "description": "the Balancer V3 Router" },
805
+ "pool": { "$ref": "#/$defs/contract", "description": "the pool" },
806
+ "tokenIn": { "$ref": "#/$defs/token", "description": "the token sold" },
807
+ "tokenOut": { "$ref": "#/$defs/token", "description": "the token bought" },
577
808
  "amountOutMin": {
578
809
  "type": "string",
579
810
  "pattern": "^(0|[1-9][0-9]*)$",
@@ -600,53 +831,6 @@
600
831
  }
601
832
  }
602
833
  },
603
- "action_uniswapV2Swap": {
604
- "title": "uniswapV2Swap",
605
- "description": "Swaps an exact input along a Uniswap V2 path; the output is a balance delta. Calls UniswapV2Router.swapExactTokensForTokens.",
606
- "type": "object",
607
- "additionalProperties": false,
608
- "required": ["type", "router", "path", "amountOutMin", "recipient", "deadline"],
609
- "properties": {
610
- "type": { "const": "uniswapV2Swap" },
611
- "amount": {
612
- "type": "string",
613
- "pattern": "^(0|[1-9][0-9]*)$",
614
- "maxLength": 78,
615
- "description": "The amount this action spends. Omit it (and amountRef) to spend the previous action's output."
616
- },
617
- "router": { "$ref": "#/$defs/address", "description": "the V2 router" },
618
- "path": {
619
- "type": "array",
620
- "items": { "$ref": "#/$defs/address" },
621
- "minItems": 2,
622
- "description": "the token path; the last token is the output"
623
- },
624
- "amountOutMin": {
625
- "type": "string",
626
- "pattern": "^(0|[1-9][0-9]*)$",
627
- "maxLength": 78,
628
- "description": "the least output accepted; the venue reverts below it"
629
- },
630
- "recipient": {
631
- "$ref": "#/$defs/recipient",
632
- "description": "receives the output when no later action spends it; `\"self\"` keeps it in the Pot"
633
- },
634
- "deadline": {
635
- "type": "integer",
636
- "minimum": 0,
637
- "maximum": 9007199254740991,
638
- "description": "Unix seconds after which the venue reverts"
639
- },
640
- "amountRef": {
641
- "$ref": "#/$defs/identifier",
642
- "description": "Spend the output an earlier action saved under this name."
643
- },
644
- "saveOutputAs": {
645
- "$ref": "#/$defs/identifier",
646
- "description": "Save this action's output under a name later actions can reference."
647
- }
648
- }
649
- },
650
834
  "action_ambientSwap": {
651
835
  "title": "ambientSwap",
652
836
  "description": "Swaps through an Ambient (CrocSwap) pool; the dex pays the Pot, and the output is a balance delta. Calls CrocSwapDex.userCmd(1, abi.encode(...)).",
@@ -673,12 +857,12 @@
673
857
  "maxLength": 78,
674
858
  "description": "The amount this action spends. Omit it (and amountRef) to spend the previous action's output."
675
859
  },
676
- "dex": { "$ref": "#/$defs/address", "description": "the CrocSwapDex" },
860
+ "dex": { "$ref": "#/$defs/contract", "description": "the CrocSwapDex" },
677
861
  "base": {
678
- "$ref": "#/$defs/address",
862
+ "$ref": "#/$defs/tokenOrNative",
679
863
  "description": "the pool's base token (numerically lower)"
680
864
  },
681
- "quote": { "$ref": "#/$defs/address", "description": "the pool's quote token" },
865
+ "quote": { "$ref": "#/$defs/token", "description": "the pool's quote token" },
682
866
  "poolIdx": {
683
867
  "type": "integer",
684
868
  "minimum": 0,
@@ -724,23 +908,23 @@
724
908
  }
725
909
  }
726
910
  },
727
- "action_dodoSwap": {
728
- "title": "dodoSwap",
729
- "description": "Swaps through DODO pairs via the DODO proxy, which pays the Pot. Calls DODOProxy.dodoSwapV2TokenToToken (or dodoSwapV1).",
911
+ "action_dodoV1Swap": {
912
+ "title": "dodoV1Swap",
913
+ "description": "Swaps through legacy DODO V1 (Classical) pairs via the DODO proxy, which pays the Pot. Calls DODOProxy.dodoSwapV1.",
730
914
  "type": "object",
731
915
  "additionalProperties": false,
732
916
  "required": [
733
917
  "type",
734
918
  "proxy",
735
- "fromToken",
736
- "toToken",
919
+ "tokenIn",
920
+ "tokenOut",
737
921
  "pairs",
738
922
  "directions",
739
923
  "amountOutMin",
740
924
  "deadline"
741
925
  ],
742
926
  "properties": {
743
- "type": { "const": "dodoSwap" },
927
+ "type": { "const": "dodoV1Swap" },
744
928
  "amount": {
745
929
  "type": "string",
746
930
  "pattern": "^(0|[1-9][0-9]*)$",
@@ -748,16 +932,16 @@
748
932
  "description": "The amount this action spends. Omit it (and amountRef) to spend the previous action's output."
749
933
  },
750
934
  "proxy": {
751
- "$ref": "#/$defs/address",
935
+ "$ref": "#/$defs/contract",
752
936
  "description": "the DODO proxy; approvals go to DODOApprove, not to it"
753
937
  },
754
- "fromToken": { "$ref": "#/$defs/address", "description": "the token sold" },
755
- "toToken": { "$ref": "#/$defs/address", "description": "the token bought" },
938
+ "tokenIn": { "$ref": "#/$defs/token", "description": "the token sold" },
939
+ "tokenOut": { "$ref": "#/$defs/token", "description": "the token bought" },
756
940
  "pairs": {
757
941
  "type": "array",
758
- "items": { "$ref": "#/$defs/address" },
942
+ "items": { "$ref": "#/$defs/contract" },
759
943
  "minItems": 1,
760
- "description": "the pairs to route through"
944
+ "description": "the V1 pairs to route through"
761
945
  },
762
946
  "directions": {
763
947
  "type": "integer",
@@ -777,86 +961,6 @@
777
961
  "maximum": 9007199254740991,
778
962
  "description": "Unix seconds after which the venue reverts"
779
963
  },
780
- "version": {
781
- "enum": ["v1", "v2"],
782
- "description": "\"v1\" routes legacy Classical pairs through `dodoSwapV1`; default \"v2\""
783
- },
784
- "amountRef": {
785
- "$ref": "#/$defs/identifier",
786
- "description": "Spend the output an earlier action saved under this name."
787
- },
788
- "saveOutputAs": {
789
- "$ref": "#/$defs/identifier",
790
- "description": "Save this action's output under a name later actions can reference."
791
- }
792
- }
793
- },
794
- "action_maverickSwap": {
795
- "title": "maverickSwap",
796
- "description": "Swaps an exact input through one Maverick V2 pool. Calls MaverickV2Router.exactInputSingle.",
797
- "type": "object",
798
- "additionalProperties": false,
799
- "required": ["type", "router", "pool", "tokenAIn", "amountOutMin", "recipient"],
800
- "properties": {
801
- "type": { "const": "maverickSwap" },
802
- "amount": {
803
- "type": "string",
804
- "pattern": "^(0|[1-9][0-9]*)$",
805
- "maxLength": 78,
806
- "description": "The amount this action spends. Omit it (and amountRef) to spend the previous action's output."
807
- },
808
- "router": { "$ref": "#/$defs/address", "description": "the Maverick V2 router" },
809
- "pool": { "$ref": "#/$defs/address", "description": "the pool" },
810
- "tokenAIn": { "type": "boolean", "description": "true sells the pool's token A" },
811
- "amountOutMin": {
812
- "type": "string",
813
- "pattern": "^(0|[1-9][0-9]*)$",
814
- "maxLength": 78,
815
- "description": "the least output accepted; the venue reverts below it"
816
- },
817
- "recipient": {
818
- "$ref": "#/$defs/recipient",
819
- "description": "receives the output when no later action spends it; `\"self\"` keeps it in the Pot"
820
- },
821
- "amountRef": {
822
- "$ref": "#/$defs/identifier",
823
- "description": "Spend the output an earlier action saved under this name."
824
- },
825
- "saveOutputAs": {
826
- "$ref": "#/$defs/identifier",
827
- "description": "Save this action's output under a name later actions can reference."
828
- }
829
- }
830
- },
831
- "action_maverickMultiHopSwap": {
832
- "title": "maverickMultiHopSwap",
833
- "description": "Swaps an exact input along a packed Maverick V2 path. Calls MaverickV2Router.exactInputMultiHop.",
834
- "type": "object",
835
- "additionalProperties": false,
836
- "required": ["type", "router", "path", "amountOutMin", "recipient"],
837
- "properties": {
838
- "type": { "const": "maverickMultiHopSwap" },
839
- "amount": {
840
- "type": "string",
841
- "pattern": "^(0|[1-9][0-9]*)$",
842
- "maxLength": 78,
843
- "description": "The amount this action spends. Omit it (and amountRef) to spend the previous action's output."
844
- },
845
- "router": { "$ref": "#/$defs/address", "description": "the Maverick V2 router" },
846
- "path": {
847
- "$ref": "#/$defs/bytes",
848
- "description": "per hop, the pool's 20 bytes then one byte: 1 sells token A, 0 token B"
849
- },
850
- "amountOutMin": {
851
- "type": "string",
852
- "pattern": "^(0|[1-9][0-9]*)$",
853
- "maxLength": 78,
854
- "description": "the least output accepted; the venue reverts below it"
855
- },
856
- "recipient": {
857
- "$ref": "#/$defs/recipient",
858
- "description": "receives the output when no later action spends it; `\"self\"` keeps it in the Pot"
859
- },
860
964
  "amountRef": {
861
965
  "$ref": "#/$defs/identifier",
862
966
  "description": "Spend the output an earlier action saved under this name."
@@ -883,9 +987,9 @@
883
987
  ],
884
988
  "properties": {
885
989
  "type": { "const": "carbonSwap" },
886
- "controller": { "$ref": "#/$defs/address", "description": "the CarbonController" },
887
- "sourceToken": { "$ref": "#/$defs/address", "description": "the token sold" },
888
- "targetToken": { "$ref": "#/$defs/address", "description": "the token bought" },
990
+ "controller": { "$ref": "#/$defs/contract", "description": "the CarbonController" },
991
+ "sourceToken": { "$ref": "#/$defs/token", "description": "the token sold" },
992
+ "targetToken": { "$ref": "#/$defs/token", "description": "the token bought" },
889
993
  "tradeActions": {
890
994
  "type": "array",
891
995
  "items": {
@@ -942,10 +1046,10 @@
942
1046
  "maxLength": 78,
943
1047
  "description": "The amount this action spends. Omit it (and amountRef) to spend the previous action's output."
944
1048
  },
945
- "router": { "$ref": "#/$defs/address", "description": "the Fraxswap router" },
1049
+ "router": { "$ref": "#/$defs/contract", "description": "the Fraxswap router" },
946
1050
  "path": {
947
1051
  "type": "array",
948
- "items": { "$ref": "#/$defs/address" },
1052
+ "items": { "$ref": "#/$defs/token" },
949
1053
  "minItems": 2,
950
1054
  "description": "the token path; the last token is the output"
951
1055
  },
@@ -989,7 +1093,7 @@
989
1093
  "maxLength": 78,
990
1094
  "description": "The amount this action spends. Omit it (and amountRef) to spend the previous action's output."
991
1095
  },
992
- "pool": { "$ref": "#/$defs/address", "description": "the pool" },
1096
+ "pool": { "$ref": "#/$defs/contract", "description": "the pool" },
993
1097
  "swap0to1": { "type": "boolean", "description": "true sells token0" },
994
1098
  "amountOutMin": {
995
1099
  "type": "string",
@@ -1037,13 +1141,10 @@
1037
1141
  "description": "The amount this action spends. Omit it (and amountRef) to spend the previous action's output."
1038
1142
  },
1039
1143
  "spokePool": {
1040
- "$ref": "#/$defs/address",
1144
+ "$ref": "#/$defs/contract",
1041
1145
  "description": "the origin SpokePool; it pulls the token, so approve it first"
1042
1146
  },
1043
- "token": {
1044
- "$ref": "#/$defs/address",
1045
- "description": "the token bridged (input and output)"
1046
- },
1147
+ "token": { "$ref": "#/$defs/token", "description": "the token bridged (input and output)" },
1047
1148
  "destChainId": {
1048
1149
  "type": "integer",
1049
1150
  "minimum": 1,
@@ -1104,7 +1205,7 @@
1104
1205
  "description": "The amount this action spends. Omit it (and amountRef) to spend the previous action's output."
1105
1206
  },
1106
1207
  "pool": {
1107
- "$ref": "#/$defs/address",
1208
+ "$ref": "#/$defs/contract",
1108
1209
  "description": "the StargatePool; it pulls the token, so approve it first"
1109
1210
  },
1110
1211
  "dstEid": {
@@ -1148,10 +1249,10 @@
1148
1249
  "description": "The amount this action spends. Omit it (and amountRef) to spend the previous action's output."
1149
1250
  },
1150
1251
  "tokenMessenger": {
1151
- "$ref": "#/$defs/address",
1252
+ "$ref": "#/$defs/contract",
1152
1253
  "description": "the CCTP V2 TokenMessenger; it pulls the token, so approve it first"
1153
1254
  },
1154
- "token": { "$ref": "#/$defs/address", "description": "the burned token (USDC)" },
1255
+ "token": { "$ref": "#/$defs/token", "description": "the burned token (USDC)" },
1155
1256
  "destinationDomain": {
1156
1257
  "type": "integer",
1157
1258
  "minimum": 0,
@@ -1199,7 +1300,7 @@
1199
1300
  "description": "The amount this action spends. Omit it (and amountRef) to spend the previous action's output."
1200
1301
  },
1201
1302
  "router": {
1202
- "$ref": "#/$defs/address",
1303
+ "$ref": "#/$defs/contract",
1203
1304
  "description": "the warp route; it pulls the amount plus any fee it charges"
1204
1305
  },
1205
1306
  "destinationDomain": {
@@ -1236,7 +1337,7 @@
1236
1337
  "maxLength": 78,
1237
1338
  "description": "The amount this action spends. Omit it (and amountRef) to spend the previous action's output."
1238
1339
  },
1239
- "weth": { "$ref": "#/$defs/address", "description": "the WETH contract" },
1340
+ "weth": { "$ref": "#/$defs/tokenContract", "description": "the WETH contract (\"WETH\")" },
1240
1341
  "amountRef": {
1241
1342
  "$ref": "#/$defs/identifier",
1242
1343
  "description": "Spend the output an earlier action saved under this name."
@@ -1261,7 +1362,7 @@
1261
1362
  "maxLength": 78,
1262
1363
  "description": "The amount this action spends. Omit it (and amountRef) to spend the previous action's output."
1263
1364
  },
1264
- "weth": { "$ref": "#/$defs/address", "description": "the WETH contract" },
1365
+ "weth": { "$ref": "#/$defs/tokenContract", "description": "the WETH contract (\"WETH\")" },
1265
1366
  "amountRef": {
1266
1367
  "$ref": "#/$defs/identifier",
1267
1368
  "description": "Spend the output an earlier action saved under this name."
@@ -1287,7 +1388,7 @@
1287
1388
  "description": "The amount this action spends. Omit it (and amountRef) to spend the previous action's output."
1288
1389
  },
1289
1390
  "wstETH": {
1290
- "$ref": "#/$defs/address",
1391
+ "$ref": "#/$defs/tokenContract",
1291
1392
  "description": "the wstETH contract; it pulls the stETH, so approve it first"
1292
1393
  },
1293
1394
  "amountRef": {
@@ -1314,7 +1415,7 @@
1314
1415
  "maxLength": 78,
1315
1416
  "description": "The amount this action spends. Omit it (and amountRef) to spend the previous action's output."
1316
1417
  },
1317
- "wstETH": { "$ref": "#/$defs/address", "description": "the wstETH contract" },
1418
+ "wstETH": { "$ref": "#/$defs/tokenContract", "description": "the wstETH contract" },
1318
1419
  "amountRef": {
1319
1420
  "$ref": "#/$defs/identifier",
1320
1421
  "description": "Spend the output an earlier action saved under this name."
@@ -1339,7 +1440,7 @@
1339
1440
  "maxLength": 78,
1340
1441
  "description": "The amount this action spends. Omit it (and amountRef) to spend the previous action's output."
1341
1442
  },
1342
- "stETH": { "$ref": "#/$defs/address", "description": "the stETH contract" },
1443
+ "stETH": { "$ref": "#/$defs/tokenContract", "description": "the stETH contract" },
1343
1444
  "referral": {
1344
1445
  "$ref": "#/$defs/address",
1345
1446
  "description": "Lido's referral; default the zero address"
@@ -1369,7 +1470,7 @@
1369
1470
  "description": "The amount this action spends. Omit it (and amountRef) to spend the previous action's output."
1370
1471
  },
1371
1472
  "withdrawalQueue": {
1372
- "$ref": "#/$defs/address",
1473
+ "$ref": "#/$defs/contract",
1373
1474
  "description": "Lido's withdrawal queue; it pulls the stETH, so approve it first"
1374
1475
  },
1375
1476
  "owner": {
@@ -1401,11 +1502,11 @@
1401
1502
  "description": "The amount this action spends. Omit it (and amountRef) to spend the previous action's output."
1402
1503
  },
1403
1504
  "depositPool": {
1404
- "$ref": "#/$defs/address",
1505
+ "$ref": "#/$defs/contract",
1405
1506
  "description": "the live RocketDepositPool, which upgrades move; read it from RocketStorage"
1406
1507
  },
1407
1508
  "rETH": {
1408
- "$ref": "#/$defs/address",
1509
+ "$ref": "#/$defs/tokenContract",
1409
1510
  "description": "the rETH token, whose balance delta is the output"
1410
1511
  },
1411
1512
  "amountRef": {
@@ -1432,7 +1533,7 @@
1432
1533
  "maxLength": 78,
1433
1534
  "description": "The amount this action spends. Omit it (and amountRef) to spend the previous action's output."
1434
1535
  },
1435
- "rETH": { "$ref": "#/$defs/address", "description": "the rETH token" },
1536
+ "rETH": { "$ref": "#/$defs/tokenContract", "description": "the rETH token" },
1436
1537
  "amountRef": {
1437
1538
  "$ref": "#/$defs/identifier",
1438
1539
  "description": "Spend the output an earlier action saved under this name."
@@ -1457,9 +1558,12 @@
1457
1558
  "maxLength": 78,
1458
1559
  "description": "The amount this action spends. Omit it (and amountRef) to spend the previous action's output."
1459
1560
  },
1460
- "liquidityPool": { "$ref": "#/$defs/address", "description": "the ether.fi LiquidityPool" },
1561
+ "liquidityPool": {
1562
+ "$ref": "#/$defs/contract",
1563
+ "description": "the ether.fi LiquidityPool"
1564
+ },
1461
1565
  "eETH": {
1462
- "$ref": "#/$defs/address",
1566
+ "$ref": "#/$defs/tokenContract",
1463
1567
  "description": "the eETH token, whose balance delta is the output"
1464
1568
  },
1465
1569
  "amountRef": {
@@ -1487,10 +1591,10 @@
1487
1591
  "description": "The amount this action spends. Omit it (and amountRef) to spend the previous action's output."
1488
1592
  },
1489
1593
  "pool": {
1490
- "$ref": "#/$defs/address",
1594
+ "$ref": "#/$defs/contract",
1491
1595
  "description": "the Aave V3 Pool; it pulls the token, so approve it first"
1492
1596
  },
1493
- "token": { "$ref": "#/$defs/address", "description": "the asset supplied" },
1597
+ "token": { "$ref": "#/$defs/token", "description": "the asset supplied" },
1494
1598
  "onBehalfOf": {
1495
1599
  "$ref": "#/$defs/recipient",
1496
1600
  "description": "credited with the position; `\"self\"` is the Pot"
@@ -1525,8 +1629,8 @@
1525
1629
  "maxLength": 78,
1526
1630
  "description": "The amount this action spends. Omit it (and amountRef) to spend the previous action's output."
1527
1631
  },
1528
- "pool": { "$ref": "#/$defs/address", "description": "the Aave V3 Pool" },
1529
- "token": { "$ref": "#/$defs/address", "description": "the asset withdrawn" },
1632
+ "pool": { "$ref": "#/$defs/contract", "description": "the Aave V3 Pool" },
1633
+ "token": { "$ref": "#/$defs/token", "description": "the asset withdrawn" },
1530
1634
  "recipient": {
1531
1635
  "$ref": "#/$defs/recipient",
1532
1636
  "description": "receives the asset; `\"self\"` is the Pot"
@@ -1555,8 +1659,8 @@
1555
1659
  "maxLength": 78,
1556
1660
  "description": "The amount this action spends. Omit it (and amountRef) to spend the previous action's output."
1557
1661
  },
1558
- "pool": { "$ref": "#/$defs/address", "description": "the Aave V3 Pool" },
1559
- "token": { "$ref": "#/$defs/address", "description": "the asset borrowed" },
1662
+ "pool": { "$ref": "#/$defs/contract", "description": "the Aave V3 Pool" },
1663
+ "token": { "$ref": "#/$defs/token", "description": "the asset borrowed" },
1560
1664
  "onBehalfOf": {
1561
1665
  "$ref": "#/$defs/recipient",
1562
1666
  "description": "whose collateral backs the debt; `\"self\"` is the Pot"
@@ -1592,10 +1696,10 @@
1592
1696
  "description": "The amount this action spends. Omit it (and amountRef) to spend the previous action's output."
1593
1697
  },
1594
1698
  "pool": {
1595
- "$ref": "#/$defs/address",
1699
+ "$ref": "#/$defs/contract",
1596
1700
  "description": "the Aave V3 Pool; it pulls the token, so approve it first"
1597
1701
  },
1598
- "token": { "$ref": "#/$defs/address", "description": "the asset repaid" },
1702
+ "token": { "$ref": "#/$defs/token", "description": "the asset repaid" },
1599
1703
  "onBehalfOf": {
1600
1704
  "$ref": "#/$defs/recipient",
1601
1705
  "description": "whose debt is repaid; `\"self\"` is the Pot"
@@ -1625,10 +1729,10 @@
1625
1729
  "description": "The amount this action spends. Omit it (and amountRef) to spend the previous action's output."
1626
1730
  },
1627
1731
  "comet": {
1628
- "$ref": "#/$defs/address",
1732
+ "$ref": "#/$defs/contract",
1629
1733
  "description": "the Comet market; it pulls the token, so approve it first"
1630
1734
  },
1631
- "token": { "$ref": "#/$defs/address", "description": "the asset supplied" },
1735
+ "token": { "$ref": "#/$defs/token", "description": "the asset supplied" },
1632
1736
  "amountRef": {
1633
1737
  "$ref": "#/$defs/identifier",
1634
1738
  "description": "Spend the output an earlier action saved under this name."
@@ -1653,8 +1757,8 @@
1653
1757
  "maxLength": 78,
1654
1758
  "description": "The amount this action spends. Omit it (and amountRef) to spend the previous action's output."
1655
1759
  },
1656
- "comet": { "$ref": "#/$defs/address", "description": "the Comet market" },
1657
- "token": { "$ref": "#/$defs/address", "description": "the asset withdrawn" },
1760
+ "comet": { "$ref": "#/$defs/contract", "description": "the Comet market" },
1761
+ "token": { "$ref": "#/$defs/token", "description": "the asset withdrawn" },
1658
1762
  "amountRef": {
1659
1763
  "$ref": "#/$defs/identifier",
1660
1764
  "description": "Spend the output an earlier action saved under this name."
@@ -1679,7 +1783,7 @@
1679
1783
  "maxLength": 78,
1680
1784
  "description": "The amount this action spends. Omit it (and amountRef) to spend the previous action's output."
1681
1785
  },
1682
- "token": { "$ref": "#/$defs/address", "description": "the token" },
1786
+ "token": { "$ref": "#/$defs/token", "description": "the token" },
1683
1787
  "recipient": {
1684
1788
  "$ref": "#/$defs/recipient",
1685
1789
  "description": "the receiver; `\"self\"` is the Pot"
@@ -1708,8 +1812,8 @@
1708
1812
  "maxLength": 78,
1709
1813
  "description": "The amount this action spends. Omit it (and amountRef) to spend the previous action's output."
1710
1814
  },
1711
- "token": { "$ref": "#/$defs/address", "description": "the token" },
1712
- "spender": { "$ref": "#/$defs/address", "description": "the spender" },
1815
+ "token": { "$ref": "#/$defs/token", "description": "the token" },
1816
+ "spender": { "$ref": "#/$defs/contract", "description": "the spender" },
1713
1817
  "amountRef": {
1714
1818
  "$ref": "#/$defs/identifier",
1715
1819
  "description": "Spend the output an earlier action saved under this name."
@@ -1734,13 +1838,10 @@
1734
1838
  "maxLength": 78,
1735
1839
  "description": "The amount this action spends. Omit it (and amountRef) to spend the previous action's output."
1736
1840
  },
1737
- "permit2": {
1738
- "$ref": "#/$defs/address",
1739
- "description": "Permit2 (0x000000000022D473030F116dDEE9F6B43aC78BA3)"
1740
- },
1741
- "token": { "$ref": "#/$defs/address", "description": "the token" },
1841
+ "permit2": { "$ref": "#/$defs/contract", "description": "Permit2 (\"Permit2.Permit2\")" },
1842
+ "token": { "$ref": "#/$defs/token", "description": "the token" },
1742
1843
  "spender": {
1743
- "$ref": "#/$defs/address",
1844
+ "$ref": "#/$defs/contract",
1744
1845
  "description": "the spender, such as Balancer V3's router"
1745
1846
  },
1746
1847
  "expiration": {
@@ -1767,7 +1868,7 @@
1767
1868
  "required": ["type", "token"],
1768
1869
  "properties": {
1769
1870
  "type": { "const": "balanceOf" },
1770
- "token": { "$ref": "#/$defs/address", "description": "the token" },
1871
+ "token": { "$ref": "#/$defs/token", "description": "the token" },
1771
1872
  "saveOutputAs": {
1772
1873
  "$ref": "#/$defs/identifier",
1773
1874
  "description": "Save this action's output under a name later actions can reference."