@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
@@ -10,9 +10,8 @@
10
10
  * none is USDC/USDT/WETH, and the keys are roles, not tickers, sitting beside non-token roles in
11
11
  * the same map -- not a derivable symbol table. `descriptors/registry.ts` only has Compound MARKETS
12
12
  * (CometUSDC/CometWETH), not the tokens themselves. `chains/canonical.ts` is identity-only by
13
- * design (no `nativeCurrency`). `svm/venues/**` addresses are SPL base58 mints, a different address
14
- * space this registry (EVM-only) does not cover. The only in-repo pinned token addresses are
15
- * `verify/vectors.ts`'s Base USDC/WETH (Tier 0 below).
13
+ * design (no `nativeCurrency`). `svm/venues/**` carry SPL mints per venue, not a symbol table. The
14
+ * only in-repo pinned token addresses are `verify/vectors.ts`'s Base USDC/WETH (Tier 0 below).
16
15
  *
17
16
  * COVERAGE, tiered and self-describing (`knownTokenSymbols` derives from the rows below, so this
18
17
  * module can never claim more coverage than the data actually committed here):
@@ -23,9 +22,24 @@
23
22
  * contract's OWN `symbol()` string-equals "USDT" (see the note below), plus the wrapped native
24
23
  * under whatever `symbol()` actually returns where it isn't WETH (polygon's WPOL).
25
24
  *
25
+ * STOCKS (`stock-tokens.ts`): tokenized stocks on ethereum and base, each issuer's list copied
26
+ * from the issuer and held to the chain by `test/token-registry-evidence.test.ts`. A stock row
27
+ * carries `stock` (its issuer, name and ticker), and its symbol is the issuer's ticker, which is
28
+ * not always uppercase ("TSLAx", "bTSLA"), so those rows have their own shape below.
29
+ *
26
30
  * NOT CLAIMED: every other canonical chain; DAI/WBTC/USDS/cbETH/LST symbols; bridged token
27
- * variants under a plain key (see below); SVM/SPL mints; decimals-aware amount sugar; anything
28
- * auto-derived from `protocols/*\/addresses.ts` role keys.
31
+ * variants under a plain key (see below); decimals-aware amount sugar; anything auto-derived from
32
+ * `protocols/*\/addresses.ts` role keys.
33
+ *
34
+ * SOLANA (`SVM_TOKEN_REGISTRY`, below) is keyed by cluster, not by EVM chain id, and a row is a
35
+ * MINT: its base58 address and the 32-byte key a program holds it as. The symbol means the same
36
+ * thing it does on an EVM chain: a compile-time value, the mint's key, which the `@sauce/token` SVM
37
+ * arm takes first (`balanceOf(USDC, account)`) — the define a program used to be handed as
38
+ * `--define MINT=0x…`. The token SYNTAX (`USDC.transfer(...)`, `self.USDC`) stays EVM-only: an SPL
39
+ * write needs account slots the sugar has nowhere to put, so on Solana it is refused by name. A row
40
+ * records its mint's token program, legacy SPL Token or Token-2022 (PYUSD): the SVM arm reads both
41
+ * and moves both with its checked writes, and the program is the `tokenProgram` account a write
42
+ * takes and the one a token account's address derives under.
29
43
  *
30
44
  * PROVENANCE GATE: a row lands only if (a) already pinned in-repo (`verify/vectors.ts`), or (b)
31
45
  * confirmed by a real RPC probe (via the paid Alchemy key in gitignored `sdk/.env`) checking
@@ -40,8 +54,12 @@
40
54
  * `tokenDefines`, which always overrides this registry per-key). Base's USDT was not independently
41
55
  * verified in this cut and is therefore also NOT claimed.
42
56
  */
43
- import { getAddress, isAddress } from "viem";
44
- import { chainById } from "../chains/canonical.js";
57
+ import { address as solanaAddress, getAddressEncoder } from "@solana/kit";
58
+ import { bytesToHex, getAddress, isAddress } from "viem";
59
+ import { CANONICAL_CHAINS, chainById } from "../chains/canonical.js";
60
+ import { TOKEN_2022_PROGRAM_ID, TOKEN_PROGRAM_ID } from "../svm/token-program.js";
61
+ import { STOCK_TOKENS } from "./stock-tokens.generated.js";
62
+ import { STOCK_ISSUERS } from "./stock-tokens.js";
45
63
  // Mirrors token-rewrite.ts's own `REWRITABLE_METHODS` -- duplicated here rather than imported.
46
64
  // token-rewrite.ts imports accessor-index.ts (for the balance-sugar holder-rejection checks),
47
65
  // which imports builder.ts, which imports intent-dsl.ts, which imports sauce-route.ts, which
@@ -52,9 +70,15 @@ import { chainById } from "../chains/canonical.js";
52
70
  // (confirmed reachable — this is not a hypothetical). Three well-known method names duplicated is
53
71
  // a far smaller cost than restructuring that import graph; token-rewrite.ts's own module doc cross-
54
72
  // references this list for anyone changing one who needs to remember the other.
55
- const REWRITABLE_METHODS = new Set(["transfer", "approve", "balanceOf"]);
56
- /** Keyed by canonical EVM chain id (`CanonicalChain.id`). */
57
- export const TOKEN_REGISTRY = {
73
+ const REWRITABLE_METHODS = new Set([
74
+ "transfer",
75
+ "approve",
76
+ "transferFrom",
77
+ "balanceOf",
78
+ ]);
79
+ /** Keyed by canonical EVM chain id (`CanonicalChain.id`): the rows below, then each chain's stock
80
+ * tokens. */
81
+ const TOKEN_ROWS = {
58
82
  // ethereum (1) -- probe-verified 2026-08-11 (getCode + symbol() + decimals(), via sdk/.env's ETH_RPC_URL).
59
83
  1: [
60
84
  {
@@ -204,8 +228,131 @@ export const TOKEN_REGISTRY = {
204
228
  },
205
229
  ],
206
230
  };
231
+ /** Keyed by canonical EVM chain id (`CanonicalChain.id`). */
232
+ export const TOKEN_REGISTRY = Object.fromEntries([...new Set([...Object.keys(TOKEN_ROWS), ...Object.keys(STOCK_TOKENS)])].map((id) => [
233
+ id,
234
+ [
235
+ ...(TOKEN_ROWS[Number(id)] ?? []),
236
+ ...(STOCK_TOKENS[Number(id)] ?? []).flatMap(({ issuer, decimals, tokens }) => tokens.map(([symbol, address, name, ticker]) => ({
237
+ symbol,
238
+ // Checked EIP-55 below, with every row's.
239
+ address: address,
240
+ decimals,
241
+ source: STOCK_ISSUERS[issuer].source,
242
+ stock: { issuer, name, ticker },
243
+ }))),
244
+ ],
245
+ ]));
246
+ /**
247
+ * PROVENANCE GATE for a mint: a probe of the cluster read the mint account and found it owned by the
248
+ * row's `tokenProgram` and initialized, with the row's `decimals`, and its metadata symbol (Metaplex,
249
+ * or a Token-2022 mint's TokenMetadata extension) equal to the row's `symbol`. Two rows are named by
250
+ * more than that, each saying why on the row.
251
+ */
252
+ const SVM_TOKEN_ENTRIES = {
253
+ // mainnet-beta -- probe-verified 2026-10-01 at slot 452280312.
254
+ "mainnet-beta": [
255
+ // A Token-2022 mint (slot 452422229): a transfer fee config at 0 basis points, a transfer hook
256
+ // with no program, a permanent delegate and confidential transfers, each of which a checked write
257
+ // moves as it does a legacy mint. Its symbol is its own TokenMetadata's.
258
+ {
259
+ symbol: "PYUSD",
260
+ mint: "2b1kV6DkPAnxd5ixfnxCpjxmKwqjjaYmCZfHsFu24GXo",
261
+ tokenProgram: TOKEN_2022_PROGRAM_ID,
262
+ decimals: 6,
263
+ source: "probe:solana@2026-10-01",
264
+ },
265
+ {
266
+ symbol: "USDC",
267
+ mint: "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
268
+ tokenProgram: TOKEN_PROGRAM_ID,
269
+ decimals: 6,
270
+ source: "probe:solana@2026-10-01",
271
+ },
272
+ {
273
+ symbol: "USDT",
274
+ mint: "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB",
275
+ tokenProgram: TOKEN_PROGRAM_ID,
276
+ decimals: 6,
277
+ source: "probe:solana@2026-10-01",
278
+ },
279
+ // The wrapped native (`svm/prepends.ts`'s NATIVE_MINT). Its metadata symbol is "SOL", the coin
280
+ // it wraps: registered as WSOL, as the wrapped native is WETH on an EVM chain, so the symbol never
281
+ // reads as the native lamport balance it is not.
282
+ {
283
+ symbol: "WSOL",
284
+ mint: "So11111111111111111111111111111111111111112",
285
+ tokenProgram: TOKEN_PROGRAM_ID,
286
+ decimals: 9,
287
+ source: "probe:solana@2026-10-01",
288
+ },
289
+ ],
290
+ // devnet -- probe-verified 2026-10-01 at slot 506263971. Circle's devnet USDC carries no Metaplex
291
+ // metadata: its symbol is Circle's own listing (developers.circle.com, USDC contract addresses).
292
+ // Tether publishes no devnet USDT, so none is registered.
293
+ devnet: [
294
+ {
295
+ symbol: "USDC",
296
+ mint: "4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU",
297
+ tokenProgram: TOKEN_PROGRAM_ID,
298
+ decimals: 6,
299
+ source: "probe:solana-devnet@2026-10-01; circle:usdc-contract-addresses",
300
+ },
301
+ {
302
+ symbol: "WSOL",
303
+ mint: "So11111111111111111111111111111111111111112",
304
+ tokenProgram: TOKEN_PROGRAM_ID,
305
+ decimals: 9,
306
+ source: "probe:solana-devnet@2026-10-01",
307
+ },
308
+ ],
309
+ };
310
+ const svmKey = (mint) => bytesToHex(new Uint8Array(getAddressEncoder().encode(solanaAddress(mint))));
311
+ /** Registered SPL mints, per Solana cluster. A canonical `solana` program compiles against
312
+ * `mainnet-beta`'s; a devnet program passes its mint as a define, which overrides the registry. */
313
+ export const SVM_TOKEN_REGISTRY = {
314
+ "mainnet-beta": SVM_TOKEN_ENTRIES["mainnet-beta"].map((row) => ({
315
+ ...row,
316
+ address: svmKey(row.mint),
317
+ })),
318
+ devnet: SVM_TOKEN_ENTRIES.devnet.map((row) => ({ ...row, address: svmKey(row.mint) })),
319
+ };
320
+ /** The cluster each canonical SVM chain is. */
321
+ const SVM_CLUSTER_OF = { 1399811149: "mainnet-beta" };
322
+ /** The registered mints a program compiled for `chain` resolves its symbols to: none off SVM. */
323
+ export function svmTokenRows(chain) {
324
+ if (chain.kind !== "svm")
325
+ return [];
326
+ const cluster = SVM_CLUSTER_OF[chain.id];
327
+ return cluster === undefined ? [] : SVM_TOKEN_REGISTRY[cluster];
328
+ }
207
329
  // --- module-eval invariants (fail closed, mirroring accessor-index.ts's convention) --------------
208
330
  const SYMBOL_RE = /^[A-Z][A-Z0-9]{1,10}$/;
331
+ /** A stock's symbol: its issuer's ticker as an identifier, in whatever case the issuer writes it. */
332
+ const STOCK_SYMBOL_RE = /^[A-Za-z][A-Za-z0-9_]{1,15}$/;
333
+ for (const chain of CANONICAL_CHAINS) {
334
+ if (chain.kind === "svm" && SVM_CLUSTER_OF[chain.id] === undefined) {
335
+ throw new Error(`token-registry: svm chain '${chain.slug}' names no Solana cluster`);
336
+ }
337
+ }
338
+ for (const [cluster, rows] of Object.entries(SVM_TOKEN_REGISTRY)) {
339
+ const seenSymbols = new Set();
340
+ const seenMints = new Set();
341
+ for (const row of rows) {
342
+ const collides = [...REWRITABLE_METHODS].some((method) => method.toUpperCase() === row.symbol.toUpperCase());
343
+ if (!SYMBOL_RE.test(row.symbol) || collides) {
344
+ throw new Error(`token-registry: ${cluster} row '${row.symbol}' is not a usable ticker`);
345
+ }
346
+ if (seenSymbols.has(row.symbol) || seenMints.has(row.mint)) {
347
+ throw new Error(`token-registry: ${cluster} registers '${row.symbol}' or its mint twice`);
348
+ }
349
+ if (row.tokenProgram !== TOKEN_PROGRAM_ID && row.tokenProgram !== TOKEN_2022_PROGRAM_ID) {
350
+ throw new Error(`token-registry: ${cluster} row '${row.symbol}' names no token program`);
351
+ }
352
+ seenSymbols.add(row.symbol);
353
+ seenMints.add(row.mint);
354
+ }
355
+ }
209
356
  for (const [idStr, rows] of Object.entries(TOKEN_REGISTRY)) {
210
357
  const id = Number(idStr);
211
358
  const chain = chainById(id);
@@ -215,8 +362,9 @@ for (const [idStr, rows] of Object.entries(TOKEN_REGISTRY)) {
215
362
  const seenSymbols = new Set();
216
363
  const seenAddresses = new Set();
217
364
  for (const row of rows) {
218
- if (!SYMBOL_RE.test(row.symbol)) {
219
- throw new Error(`token-registry: chain ${id} row '${row.symbol}' does not match ${SYMBOL_RE}`);
365
+ const shape = row.stock === undefined ? SYMBOL_RE : STOCK_SYMBOL_RE;
366
+ if (!shape.test(row.symbol)) {
367
+ throw new Error(`token-registry: chain ${id} row '${row.symbol}' does not match ${shape}`);
220
368
  }
221
369
  for (const method of REWRITABLE_METHODS) {
222
370
  if (row.symbol.toUpperCase() === method.toUpperCase()) {
@@ -227,10 +375,11 @@ for (const [idStr, rows] of Object.entries(TOKEN_REGISTRY)) {
227
375
  if (!isAddress(row.address, { strict: true }) || getAddress(row.address) !== row.address) {
228
376
  throw new Error(`token-registry: chain ${id} symbol '${row.symbol}' address is not EIP-55 checksummed`);
229
377
  }
230
- if (seenSymbols.has(row.symbol)) {
378
+ // Unique without regard to case: the CLI finds a symbol that way (`tslax` is `TSLAx`).
379
+ if (seenSymbols.has(row.symbol.toUpperCase())) {
231
380
  throw new Error(`token-registry: chain ${id} has a duplicate symbol '${row.symbol}'`);
232
381
  }
233
- seenSymbols.add(row.symbol);
382
+ seenSymbols.add(row.symbol.toUpperCase());
234
383
  const addrKey = row.address.toLowerCase();
235
384
  if (seenAddresses.has(addrKey)) {
236
385
  throw new Error(`token-registry: chain ${id} has a duplicate address '${row.address}'`);
@@ -242,36 +391,62 @@ for (const [idStr, rows] of Object.entries(TOKEN_REGISTRY)) {
242
391
  function toBigIntAddress(input) {
243
392
  return BigInt(input);
244
393
  }
245
- /** The registry's own address for `symbol` on `chain`, or `undefined` if unregistered. EVM-only --
246
- * an svm chain always returns `undefined` (no `TOKEN_REGISTRY` key exists for an svm chain id). */
394
+ const tokensByChain = new Map();
395
+ /** Every registry token on `chain`, by symbol, each a frozen {@link RegistryToken}: an EVM chain's
396
+ * tokens, or a Solana cluster's registered mints. The same objects on every call. Empty for a
397
+ * chain the registry has no row for. */
398
+ export function registryTokens(chain) {
399
+ let tokens = tokensByChain.get(chain.id);
400
+ if (tokens === undefined) {
401
+ const rows = chain.kind === "evm" ? (TOKEN_REGISTRY[chain.id] ?? []) : svmTokenRows(chain);
402
+ tokens = Object.freeze(Object.fromEntries(rows.map((row) => [
403
+ row.symbol,
404
+ Object.freeze({
405
+ address: row.address,
406
+ decimals: row.decimals,
407
+ symbol: row.symbol,
408
+ chain,
409
+ ...(row.mint === undefined ? {} : { mint: row.mint }),
410
+ }),
411
+ ])));
412
+ tokensByChain.set(chain.id, tokens);
413
+ }
414
+ return tokens;
415
+ }
416
+ /** The rows a program compiled for `chain` resolves its symbols from: the chain's EVM tokens, or
417
+ * on an svm chain its cluster's mints, each as the value the program gets. */
418
+ function rowsOf(chain) {
419
+ return chain.kind === "evm" ? (TOKEN_REGISTRY[chain.id] ?? []) : svmTokenRows(chain);
420
+ }
421
+ /** The registry's own value for `symbol` on `chain`, or `undefined` if unregistered: a token's
422
+ * address on an EVM chain, a mint's 32-byte key on Solana. */
247
423
  export function registryTokenAddress(chain, symbol) {
248
- if (chain.kind !== "evm")
249
- return undefined;
250
- const rows = TOKEN_REGISTRY[chain.id];
251
- const row = rows?.find((r) => r.symbol === symbol);
424
+ const row = rowsOf(chain).find((r) => r.symbol === symbol);
252
425
  return row === undefined ? undefined : BigInt(row.address);
253
426
  }
254
427
  /** Every symbol this registry knows for `chain`, sorted for stable diagnostics/tests. */
255
428
  export function knownTokenSymbols(chain) {
256
- if (chain.kind !== "evm")
257
- return [];
258
- const rows = TOKEN_REGISTRY[chain.id] ?? [];
259
- return [...rows.map((r) => r.symbol)].sort();
429
+ return [...rowsOf(chain).map((r) => r.symbol)].sort();
260
430
  }
431
+ /** Each chain's registry rows as the map `resolveTokenMap` returns, built once per chain: with the
432
+ * stock tokens, Ethereum's is over 1,700 entries, read on every compile. */
433
+ const registryMaps = new Map();
261
434
  /**
262
435
  * THE one precedence resolver every token-address consumer goes through: registry rows for `chain`
263
- * first (skipped entirely for a non-evm chain -- there are none to skip in practice, since no
264
- * `TOKEN_REGISTRY` key is ever an svm chain id, but the `chain.kind` guard makes that explicit
265
- * rather than incidental), then `callerTokens` merged PER KEY on top -- overriding one symbol (e.g.
266
- * `USDC`) never drops an unrelated registry symbol (e.g. `WETH`) for the same chain.
436
+ * first (an EVM chain's tokens, an svm chain's cluster mints as 32-byte keys), then `callerTokens`
437
+ * merged PER KEY on top -- overriding one symbol (e.g. `USDC`) never drops an unrelated registry
438
+ * symbol (e.g. `WETH`) for the same chain. With no `callerTokens`, the chain's registry map: the
439
+ * same map on every call.
267
440
  */
268
441
  export function resolveTokenMap(chain, callerTokens) {
269
- const map = new Map();
270
- if (chain.kind === "evm") {
271
- for (const row of TOKEN_REGISTRY[chain.id] ?? []) {
272
- map.set(row.symbol, BigInt(row.address));
273
- }
442
+ let registry = registryMaps.get(chain.id);
443
+ if (registry === undefined) {
444
+ registry = new Map(rowsOf(chain).map((row) => [row.symbol, BigInt(row.address)]));
445
+ registryMaps.set(chain.id, registry);
274
446
  }
447
+ if (callerTokens === undefined)
448
+ return registry;
449
+ const map = new Map(registry);
275
450
  if (callerTokens) {
276
451
  for (const [symbol, address] of Object.entries(callerTokens)) {
277
452
  map.set(symbol, toBigIntAddress(address));
@@ -1 +1 @@
1
- {"version":3,"file":"token-registry.js","sourceRoot":"","sources":["../../src/routes/token-registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"token-registry.js","sourceRoot":"","sources":["../../src/routes/token-registry.ts"],"names":[],"mappings":"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"}
@@ -1,50 +1,85 @@
1
+ /**
2
+ * The ERC-20 writes the token syntax offers: each lowers to the `@sauce/token` function of the same
3
+ * name, imported under `local`, with the token as its first argument ahead of `params`.
4
+ */
5
+ export declare const SAFE_WRITES: {
6
+ readonly transfer: {
7
+ readonly local: "__sauce_transfer";
8
+ readonly params: readonly ["to", "amount"];
9
+ };
10
+ readonly approve: {
11
+ readonly local: "__sauce_approve";
12
+ readonly params: readonly ["spender", "amount"];
13
+ };
14
+ readonly transferFrom: {
15
+ readonly local: "__sauce_transferFrom";
16
+ readonly params: readonly ["from", "to", "amount"];
17
+ };
18
+ };
19
+ export type SafeWrite = keyof typeof SAFE_WRITES;
20
+ /** Every method the SYMBOL syntax lowers: the writes, plus the one read it has always offered. */
1
21
  export declare const REWRITABLE_METHODS: ReadonlySet<string>;
2
- /** Either the full registry-resolved `symbol -> address` map (enables BOTH rewrites), or a bare set
3
- * of symbols with no addresses (U4 only -- the sugar has no address to inline, so it yields no
4
- * sites; documented, not a silent surprise -- see the module doc). */
22
+ /** What a rewritten source now needs imported. */
23
+ export interface TokenImports {
24
+ /** The `@sauce/token` writes it calls, under their `SAFE_WRITES` names. */
25
+ readonly writes: ReadonlySet<SafeWrite>;
26
+ /** Whether it names the typed `IERC20` binding, which the reads keep. */
27
+ readonly erc20: boolean;
28
+ }
29
+ /**
30
+ * The import lines a rewritten source needs, for the caller to prepend. The order is fixed, so a
31
+ * given program always gets the same text and so the same bytecode.
32
+ */
33
+ export declare function tokenImportLines({ writes, erc20 }: TokenImports): readonly string[];
34
+ /** Either the full registry-resolved `symbol -> address` map (enables every rewrite), or a bare set
35
+ * of symbols with no addresses (the call-position rewrites only -- the sugar has no address to
36
+ * inline, so it yields no sites). */
5
37
  export type TokenSymbols = ReadonlyMap<string, bigint> | ReadonlySet<string>;
6
- export interface TokenRewriteResult {
38
+ export interface TokenRewriteResult extends TokenImports {
7
39
  readonly source: string;
8
- /** True if at least one site (U4 or sugar) was rewritten -- tells the caller whether to prepend
9
- * the ERC20 import line. */
40
+ /** True if at least one site was rewritten -- tells the caller to prepend `tokenImportLines`. */
10
41
  readonly rewrote: boolean;
11
- /** Count of U4 (`<Sym>.transfer/.approve/.balanceOf(...)`) call sites rewritten. */
42
+ /** Count of `<Sym>.<method>(...)` call sites rewritten. */
12
43
  readonly memberSites: number;
13
44
  /** Count of `<holder>.<Sym>` balance-sugar sites rewritten. */
14
45
  readonly balanceSites: number;
15
46
  }
16
47
  /** The DSL's global token WRAPPER name. */
17
48
  export declare const TOKEN_FACTORY_NAME = "Token";
18
- export interface TokenFactoryResult {
49
+ export interface TokenFactoryResult extends TokenImports {
19
50
  readonly source: string;
20
51
  readonly rewrote: boolean;
21
- /** Count of `Token(...)` call sites rewritten. */
52
+ /** Count of `Token(...)` calls rewritten. */
22
53
  readonly sites: number;
23
54
  }
24
55
  /**
25
- * Rewrites every `Token(<expr>)` call to `IERC20.at(<expr>)` — the DSL's global token WRAPPER, the
26
- * `Token(addr)` sibling of the `<Sym>.transfer(...)` sugar above. This is what makes
27
- * `Token(addr).approve(spender, amt)` and `let t = Token(addr); t.approve(...)` compile in a route
28
- * body with no import: only the callee `Token` is replaced, so the result is the ordinary
29
- * `IERC20.at(addr)` binding the compiler already supports — it never sees a method call on a
30
- * `Token(...)` result (which the compiler's M1 subset rejects). Fires on ANY argument (a literal, a
31
- * variable, an ambient `USDC` define), so — unlike the symbol sugar — it does NOT depend on the
32
- * token-symbol map, and works on every EVM chain including registry-less ones.
56
+ * Lowers every `Token(<expr>)` — the DSL's global token WRAPPER, the any-address sibling of the
57
+ * symbol syntax above. It fires on ANY argument (a literal, a variable, an ambient `USDC` define),
58
+ * so it does not depend on the token-symbol map and works on every EVM chain.
59
+ *
60
+ * Two positions are lowered, and the compiler never sees a method call on a `Token(...)` result
61
+ * (which its M1 subset rejects):
62
+ *
63
+ * - `Token(a).<write>(x, y)` -> `<local>(a, x, y)`, the `@sauce/token` write; `Token(a).<read>(x)`
64
+ * -> `IERC20.at(a).<read>(x)`.
65
+ * - `const t = Token(a)` -> `const t = a`, with each `t.<method>(...)` lowered the same way, by
66
+ * name. The binding now holds the ADDRESS, evaluated once where it was, so a later change to
67
+ * whatever `a` read cannot reach the calls. See `bindingCalls` for when a binding qualifies.
68
+ *
69
+ * Any other `Token(...)` — an argument, a return value, a reassigned or passed-around binding — is
70
+ * refused rather than left as the typed binding, which would be the unchecked write again.
33
71
  *
34
- * Shadow-safe: a user who declares their own `Token` anywhere in the program owns the name, and
35
- * EVERY `Token(...)` call is then left untouched — the same conservative whole-program rule the
36
- * symbol rewrite applies. `collectDeclaredNames` decides that, and it covers every binding form,
37
- * `import { Token }` and `class Token` included: an imported `Token` is the user's own by any
38
- * reading, and rewriting past it would silently redirect their call to an ERC20 they never named.
39
- * Purely textual, acorn-range-driven, like the rest of this module.
72
+ * Shadow-safe: a user who binds `Token` anywhere in the program owns the name, and EVERY
73
+ * `Token(...)` is then left untouched — the same whole-program rule the symbol rewrite applies,
74
+ * covering every binding form, `import { Token }` and `class Token` included.
40
75
  */
41
76
  export declare function rewriteTokenFactory(source: string): TokenFactoryResult;
42
77
  /**
43
- * Rewrites every `<Sym>.transfer/.approve/.balanceOf(...)` call (U4) and every `<holder>.<Sym>`
44
- * value-position read (balance sugar) whose `<Sym>` is in `tokens` (and not shadowed anywhere in
45
- * `source`) — see the module doc for the full disjointness argument. Purely textual surgery over
46
- * the ORIGINAL source, driven by acorn ranges — never a re-print of the AST, so everything else
47
- * (formatting, comments, unrelated code) survives byte-for-byte.
78
+ * Rewrites every `<Sym>.<method>(...)` call and every `<holder>.<Sym>` value-position read whose
79
+ * `<Sym>` is in `tokens` (and not shadowed anywhere in `source`) — see the module doc for the
80
+ * lowering and the disjointness argument. Purely textual surgery over the ORIGINAL source, driven by
81
+ * parser ranges — never a re-print of the AST, so everything else (formatting, comments, unrelated
82
+ * code) survives byte-for-byte. Prepend `tokenImportLines(result)` before compiling the result.
48
83
  */
49
84
  export declare function rewriteTokenMembers(source: string, tokens: TokenSymbols): TokenRewriteResult;
50
85
  //# sourceMappingURL=token-rewrite.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"token-rewrite.d.ts","sourceRoot":"","sources":["../../src/routes/token-rewrite.ts"],"names":[],"mappings":"AAyCA,eAAO,MAAM,kBAAkB,EAAE,WAAW,CAAC,MAAM,CAIjD,CAAC;AAEH;;uEAEuE;AACvE,MAAM,MAAM,YAAY,GAAG,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;AAE7E,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB;iCAC6B;IAC7B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,oFAAoF;IACpF,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,+DAA+D;IAC/D,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAwID,2CAA2C;AAC3C,eAAO,MAAM,kBAAkB,UAAU,CAAC;AAE1C,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,kDAAkD;IAClD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,kBAAkB,CAmCtE;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,kBAAkB,CAmC5F"}
1
+ {"version":3,"file":"token-rewrite.d.ts","sourceRoot":"","sources":["../../src/routes/token-rewrite.ts"],"names":[],"mappings":"AAyDA;;;GAGG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;;CAIyD,CAAC;AAElF,MAAM,MAAM,SAAS,GAAG,MAAM,OAAO,WAAW,CAAC;AAEjD,kGAAkG;AAClG,eAAO,MAAM,kBAAkB,EAAE,WAAW,CAAC,MAAM,CAKjD,CAAC;AAOH,kDAAkD;AAClD,MAAM,WAAW,YAAY;IAC3B,2EAA2E;IAC3E,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IACxC,yEAAyE;IACzE,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,YAAY,GAAG,SAAS,MAAM,EAAE,CAUnF;AAED;;sCAEsC;AACtC,MAAM,MAAM,YAAY,GAAG,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;AAE7E,MAAM,WAAW,kBAAmB,SAAQ,YAAY;IACtD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,iGAAiG;IACjG,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,2DAA2D;IAC3D,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,+DAA+D;IAC/D,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AA4PD,2CAA2C;AAC3C,eAAO,MAAM,kBAAkB,UAAU,CAAC;AAE1C,MAAM,WAAW,kBAAmB,SAAQ,YAAY;IACtD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,6CAA6C;IAC7C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AA2FD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,kBAAkB,CA0GtE;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,kBAAkB,CAgC5F"}