@eco-incorp/sauce 0.99.6 → 0.99.8
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.
- package/README.md +58 -16
- package/actions/action-program.schema.json +480 -379
- package/actions/dist/abis.d.ts +19 -18
- package/actions/dist/abis.d.ts.map +1 -1
- package/actions/dist/abis.js +29 -29
- package/actions/dist/compile.d.ts +4 -4
- package/actions/dist/compile.d.ts.map +1 -1
- package/actions/dist/compile.js +3 -1
- package/actions/dist/compose.d.ts +63 -6
- package/actions/dist/compose.d.ts.map +1 -1
- package/actions/dist/compose.js +100 -16
- package/actions/dist/index.d.ts +1 -1
- package/actions/dist/index.d.ts.map +1 -1
- package/actions/dist/names.d.ts +88 -0
- package/actions/dist/names.d.ts.map +1 -0
- package/actions/dist/names.js +334 -0
- package/actions/dist/program.d.ts.map +1 -1
- package/actions/dist/program.js +115 -5
- package/actions/dist/registry.d.ts +10 -8
- package/actions/dist/registry.d.ts.map +1 -1
- package/actions/dist/registry.js +10 -8
- package/actions/dist/schema.d.ts.map +1 -1
- package/actions/dist/schema.js +99 -12
- package/actions/dist/semantics.d.ts +12 -2
- package/actions/dist/semantics.d.ts.map +1 -1
- package/actions/dist/semantics.js +78 -8
- package/actions/dist/spec.d.ts +30 -0
- package/actions/dist/spec.d.ts.map +1 -1
- package/actions/dist/spec.js +151 -138
- package/actions/dist/split-swap.d.ts +10 -5
- package/actions/dist/split-swap.d.ts.map +1 -1
- package/actions/dist/split-swap.js +48 -7
- package/actions/dist/to-quote.d.ts +14 -5
- package/actions/dist/to-quote.d.ts.map +1 -1
- package/actions/dist/to-quote.js +210 -244
- package/actions/dist/to-sauce.d.ts +18 -4
- package/actions/dist/to-sauce.d.ts.map +1 -1
- package/actions/dist/to-sauce.js +232 -205
- package/actions/dist/types.d.ts +245 -147
- package/actions/dist/types.d.ts.map +1 -1
- package/actions/dist/types.js +4 -0
- package/docs/README.md +38 -0
- package/docs/api/README.md +37 -23
- package/docs/api/compiler.md +53 -12
- package/docs/api/contracts.md +105 -0
- package/docs/api/coverage.md +96 -57
- package/docs/api/router.md +238 -0
- package/docs/api/routes.md +31 -22
- package/docs/concepts/architecture.md +26 -3
- package/docs/concepts/saucescript.md +35 -55
- package/docs/examples/README.md +21 -14
- package/docs/examples/action-program.ts +51 -35
- package/docs/examples/cross-chain-cascade.sauce.ts +4 -0
- package/docs/examples/cross-chain-intent.sauce.ts +2 -1
- package/docs/examples/evm-execution.ts +2 -4
- package/docs/examples/first-intent.ts +7 -2
- package/docs/examples/pot-router.ts +19 -0
- package/docs/examples/registry-names.ts +52 -0
- package/docs/examples/router-route.sauce.ts +31 -0
- package/docs/examples/router-route.ts +72 -0
- package/docs/examples/router-swap.sauce.ts +16 -0
- package/docs/examples/router-swap.ts +47 -0
- package/docs/examples/venue-where-deployed.sauce.ts +14 -0
- package/docs/guides/actions.md +230 -120
- package/docs/guides/builders-and-actions.md +20 -14
- package/docs/guides/cli.md +1446 -0
- package/docs/guides/compiling.md +19 -7
- package/docs/guides/intents.md +228 -15
- package/docs/guides/mcp.md +540 -0
- package/docs/guides/nested-intents.md +21 -6
- package/docs/guides/protocols-and-tokens.md +218 -39
- package/docs/guides/quick-start.md +5 -0
- package/docs/guides/solana.md +199 -52
- package/docs/guides/verification.md +2 -2
- package/mcp/dist/config.js +78 -0
- package/mcp/dist/config.js.map +1 -0
- package/mcp/dist/entry.js +112 -0
- package/mcp/dist/entry.js.map +1 -0
- package/mcp/dist/files.js +64 -0
- package/mcp/dist/files.js.map +1 -0
- package/mcp/dist/guard.js +262 -0
- package/mcp/dist/guard.js.map +1 -0
- package/mcp/dist/http.js +111 -0
- package/mcp/dist/http.js.map +1 -0
- package/mcp/dist/intents.js +579 -0
- package/mcp/dist/intents.js.map +1 -0
- package/mcp/dist/prompts.js +153 -0
- package/mcp/dist/prompts.js.map +1 -0
- package/mcp/dist/reach.js +98 -0
- package/mcp/dist/reach.js.map +1 -0
- package/mcp/dist/resources.js +154 -0
- package/mcp/dist/resources.js.map +1 -0
- package/mcp/dist/sdk.js +34 -0
- package/mcp/dist/sdk.js.map +1 -0
- package/mcp/dist/server.js +119 -0
- package/mcp/dist/server.js.map +1 -0
- package/mcp/dist/setup.js +189 -0
- package/mcp/dist/setup.js.map +1 -0
- package/mcp/dist/skilltools.js +520 -0
- package/mcp/dist/skilltools.js.map +1 -0
- package/mcp/dist/terms.js +93 -0
- package/mcp/dist/terms.js.map +1 -0
- package/mcp/dist/tools.js +1499 -0
- package/mcp/dist/tools.js.map +1 -0
- package/mcp/dist/wallets.js +168 -0
- package/mcp/dist/wallets.js.map +1 -0
- package/package.json +18 -13
- package/sdk/dist/artifacts/V12Deployments.json +3 -1
- package/sdk/dist/artifacts/V12EngineGate.json +1 -2
- package/sdk/dist/artifacts/V12KitchenProxy.json +1 -0
- package/sdk/dist/chains/canonical.d.ts +15 -24
- package/sdk/dist/chains/canonical.d.ts.map +1 -1
- package/sdk/dist/chains/canonical.js +18 -29
- package/sdk/dist/chains/canonical.js.map +1 -1
- package/sdk/dist/cli/actions.d.ts +29 -0
- package/sdk/dist/cli/actions.d.ts.map +1 -0
- package/sdk/dist/cli/actions.js +122 -0
- package/sdk/dist/cli/actions.js.map +1 -0
- package/sdk/dist/cli/args.d.ts +118 -0
- package/sdk/dist/cli/args.d.ts.map +1 -0
- package/sdk/dist/cli/args.js +354 -0
- package/sdk/dist/cli/args.js.map +1 -0
- package/sdk/dist/cli/assume.d.ts +51 -0
- package/sdk/dist/cli/assume.d.ts.map +1 -0
- package/sdk/dist/cli/assume.js +207 -0
- package/sdk/dist/cli/assume.js.map +1 -0
- package/sdk/dist/cli/chain.d.ts +173 -0
- package/sdk/dist/cli/chain.d.ts.map +1 -0
- package/sdk/dist/cli/chain.js +462 -0
- package/sdk/dist/cli/chain.js.map +1 -0
- package/sdk/dist/cli/commands.d.ts +226 -0
- package/sdk/dist/cli/commands.d.ts.map +1 -0
- package/sdk/dist/cli/commands.js +637 -0
- package/sdk/dist/cli/commands.js.map +1 -0
- package/sdk/dist/cli/create.d.ts +70 -0
- package/sdk/dist/cli/create.d.ts.map +1 -0
- package/sdk/dist/cli/create.js +483 -0
- package/sdk/dist/cli/create.js.map +1 -0
- package/sdk/dist/cli/diagnostics.d.ts +12 -0
- package/sdk/dist/cli/diagnostics.d.ts.map +1 -0
- package/sdk/dist/cli/diagnostics.js +225 -0
- package/sdk/dist/cli/diagnostics.js.map +1 -0
- package/sdk/dist/cli/effects.d.ts +71 -0
- package/sdk/dist/cli/effects.d.ts.map +1 -0
- package/sdk/dist/cli/effects.js +279 -0
- package/sdk/dist/cli/effects.js.map +1 -0
- package/sdk/dist/cli/fill.d.ts +83 -0
- package/sdk/dist/cli/fill.d.ts.map +1 -0
- package/sdk/dist/cli/fill.js +734 -0
- package/sdk/dist/cli/fill.js.map +1 -0
- package/sdk/dist/cli/funding.d.ts +126 -0
- package/sdk/dist/cli/funding.d.ts.map +1 -0
- package/sdk/dist/cli/funding.js +514 -0
- package/sdk/dist/cli/funding.js.map +1 -0
- package/sdk/dist/cli/globals.d.ts +16 -0
- package/sdk/dist/cli/globals.d.ts.map +1 -0
- package/sdk/dist/cli/globals.js +219 -0
- package/sdk/dist/cli/globals.js.map +1 -0
- package/sdk/dist/cli/init.d.ts +34 -0
- package/sdk/dist/cli/init.d.ts.map +1 -0
- package/sdk/dist/cli/init.js +181 -0
- package/sdk/dist/cli/init.js.map +1 -0
- package/sdk/dist/cli/inputs.d.ts +72 -0
- package/sdk/dist/cli/inputs.d.ts.map +1 -0
- package/sdk/dist/cli/inputs.js +152 -0
- package/sdk/dist/cli/inputs.js.map +1 -0
- package/sdk/dist/cli/inspect.d.ts +48 -0
- package/sdk/dist/cli/inspect.d.ts.map +1 -0
- package/sdk/dist/cli/inspect.js +536 -0
- package/sdk/dist/cli/inspect.js.map +1 -0
- package/sdk/dist/cli/intent-commands.d.ts +71 -0
- package/sdk/dist/cli/intent-commands.d.ts.map +1 -0
- package/sdk/dist/cli/intent-commands.js +698 -0
- package/sdk/dist/cli/intent-commands.js.map +1 -0
- package/sdk/dist/cli/intent-svm.d.ts +15 -0
- package/sdk/dist/cli/intent-svm.d.ts.map +1 -0
- package/sdk/dist/cli/intent-svm.js +222 -0
- package/sdk/dist/cli/intent-svm.js.map +1 -0
- package/sdk/dist/cli/intents.d.ts +43 -0
- package/sdk/dist/cli/intents.d.ts.map +1 -0
- package/sdk/dist/cli/intents.js +89 -0
- package/sdk/dist/cli/intents.js.map +1 -0
- package/sdk/dist/cli/interactive.d.ts +11 -0
- package/sdk/dist/cli/interactive.d.ts.map +1 -0
- package/sdk/dist/cli/interactive.js +161 -0
- package/sdk/dist/cli/interactive.js.map +1 -0
- package/sdk/dist/cli/lifecycle-svm.d.ts +109 -0
- package/sdk/dist/cli/lifecycle-svm.d.ts.map +1 -0
- package/sdk/dist/cli/lifecycle-svm.js +299 -0
- package/sdk/dist/cli/lifecycle-svm.js.map +1 -0
- package/sdk/dist/cli/lifecycle.d.ts +439 -0
- package/sdk/dist/cli/lifecycle.d.ts.map +1 -0
- package/sdk/dist/cli/lifecycle.js +1721 -0
- package/sdk/dist/cli/lifecycle.js.map +1 -0
- package/sdk/dist/cli/main.d.ts +3 -0
- package/sdk/dist/cli/main.d.ts.map +1 -0
- package/sdk/dist/cli/main.js +8 -0
- package/sdk/dist/cli/main.js.map +1 -0
- package/sdk/dist/cli/mcp.d.ts +66 -0
- package/sdk/dist/cli/mcp.d.ts.map +1 -0
- package/sdk/dist/cli/mcp.js +169 -0
- package/sdk/dist/cli/mcp.js.map +1 -0
- package/sdk/dist/cli/password.d.ts +54 -0
- package/sdk/dist/cli/password.d.ts.map +1 -0
- package/sdk/dist/cli/password.js +148 -0
- package/sdk/dist/cli/password.js.map +1 -0
- package/sdk/dist/cli/policy.d.ts +130 -0
- package/sdk/dist/cli/policy.d.ts.map +1 -0
- package/sdk/dist/cli/policy.js +702 -0
- package/sdk/dist/cli/policy.js.map +1 -0
- package/sdk/dist/cli/pools.d.ts +140 -0
- package/sdk/dist/cli/pools.d.ts.map +1 -0
- package/sdk/dist/cli/pools.js +658 -0
- package/sdk/dist/cli/pools.js.map +1 -0
- package/sdk/dist/cli/price.d.ts +74 -0
- package/sdk/dist/cli/price.d.ts.map +1 -0
- package/sdk/dist/cli/price.js +321 -0
- package/sdk/dist/cli/price.js.map +1 -0
- package/sdk/dist/cli/prompt.d.ts +30 -0
- package/sdk/dist/cli/prompt.d.ts.map +1 -0
- package/sdk/dist/cli/prompt.js +53 -0
- package/sdk/dist/cli/prompt.js.map +1 -0
- package/sdk/dist/cli/publish.d.ts +48 -0
- package/sdk/dist/cli/publish.d.ts.map +1 -0
- package/sdk/dist/cli/publish.js +480 -0
- package/sdk/dist/cli/publish.js.map +1 -0
- package/sdk/dist/cli/receipt.d.ts +35 -0
- package/sdk/dist/cli/receipt.d.ts.map +1 -0
- package/sdk/dist/cli/receipt.js +63 -0
- package/sdk/dist/cli/receipt.js.map +1 -0
- package/sdk/dist/cli/rehearse.d.ts +80 -0
- package/sdk/dist/cli/rehearse.d.ts.map +1 -0
- package/sdk/dist/cli/rehearse.js +265 -0
- package/sdk/dist/cli/rehearse.js.map +1 -0
- package/sdk/dist/cli/report.d.ts +69 -0
- package/sdk/dist/cli/report.d.ts.map +1 -0
- package/sdk/dist/cli/report.js +206 -0
- package/sdk/dist/cli/report.js.map +1 -0
- package/sdk/dist/cli/returned.d.ts +16 -0
- package/sdk/dist/cli/returned.d.ts.map +1 -0
- package/sdk/dist/cli/returned.js +111 -0
- package/sdk/dist/cli/returned.js.map +1 -0
- package/sdk/dist/cli/run.d.ts +40 -0
- package/sdk/dist/cli/run.d.ts.map +1 -0
- package/sdk/dist/cli/run.js +3163 -0
- package/sdk/dist/cli/run.js.map +1 -0
- package/sdk/dist/cli/signer.d.ts +72 -0
- package/sdk/dist/cli/signer.d.ts.map +1 -0
- package/sdk/dist/cli/signer.js +243 -0
- package/sdk/dist/cli/signer.js.map +1 -0
- package/sdk/dist/cli/simulate.d.ts +11 -0
- package/sdk/dist/cli/simulate.d.ts.map +1 -0
- package/sdk/dist/cli/simulate.js +246 -0
- package/sdk/dist/cli/simulate.js.map +1 -0
- package/sdk/dist/cli/skills.d.ts +77 -0
- package/sdk/dist/cli/skills.d.ts.map +1 -0
- package/sdk/dist/cli/skills.js +527 -0
- package/sdk/dist/cli/skills.js.map +1 -0
- package/sdk/dist/cli/solana.d.ts +184 -0
- package/sdk/dist/cli/solana.d.ts.map +1 -0
- package/sdk/dist/cli/solana.js +1370 -0
- package/sdk/dist/cli/solana.js.map +1 -0
- package/sdk/dist/cli/store.d.ts +60 -0
- package/sdk/dist/cli/store.d.ts.map +1 -0
- package/sdk/dist/cli/store.js +196 -0
- package/sdk/dist/cli/store.js.map +1 -0
- package/sdk/dist/cli/support.d.ts +144 -0
- package/sdk/dist/cli/support.d.ts.map +1 -0
- package/sdk/dist/cli/support.js +217 -0
- package/sdk/dist/cli/support.js.map +1 -0
- package/sdk/dist/cli/svm-effects.d.ts +50 -0
- package/sdk/dist/cli/svm-effects.d.ts.map +1 -0
- package/sdk/dist/cli/svm-effects.js +196 -0
- package/sdk/dist/cli/svm-effects.js.map +1 -0
- package/sdk/dist/cli/terminal.d.ts +42 -0
- package/sdk/dist/cli/terminal.d.ts.map +1 -0
- package/sdk/dist/cli/terminal.js +136 -0
- package/sdk/dist/cli/terminal.js.map +1 -0
- package/sdk/dist/cli/verify.d.ts +32 -0
- package/sdk/dist/cli/verify.d.ts.map +1 -0
- package/sdk/dist/cli/verify.js +185 -0
- package/sdk/dist/cli/verify.js.map +1 -0
- package/sdk/dist/cli/wallet-commands.d.ts +59 -0
- package/sdk/dist/cli/wallet-commands.d.ts.map +1 -0
- package/sdk/dist/cli/wallet-commands.js +222 -0
- package/sdk/dist/cli/wallet-commands.js.map +1 -0
- package/sdk/dist/cli/wallet-send.d.ts +38 -0
- package/sdk/dist/cli/wallet-send.d.ts.map +1 -0
- package/sdk/dist/cli/wallet-send.js +303 -0
- package/sdk/dist/cli/wallet-send.js.map +1 -0
- package/sdk/dist/cli/wallets.d.ts +79 -0
- package/sdk/dist/cli/wallets.d.ts.map +1 -0
- package/sdk/dist/cli/wallets.js +297 -0
- package/sdk/dist/cli/wallets.js.map +1 -0
- package/sdk/dist/deployments/index.d.ts +4 -62
- package/sdk/dist/deployments/index.d.ts.map +1 -1
- package/sdk/dist/deployments/index.js +4 -84
- package/sdk/dist/deployments/index.js.map +1 -1
- package/sdk/dist/deployments/pot.d.ts +17 -7
- package/sdk/dist/deployments/pot.d.ts.map +1 -1
- package/sdk/dist/deployments/pot.js +25 -10
- package/sdk/dist/deployments/pot.js.map +1 -1
- package/sdk/dist/deployments/releases.d.ts +36 -0
- package/sdk/dist/deployments/releases.d.ts.map +1 -0
- package/sdk/dist/deployments/releases.js +61 -0
- package/sdk/dist/deployments/releases.js.map +1 -0
- package/sdk/dist/deployments/releases.json +76 -0
- package/sdk/dist/deployments/v12-addresses.d.ts +13 -0
- package/sdk/dist/deployments/v12-addresses.d.ts.map +1 -1
- package/sdk/dist/deployments/v12-addresses.js +16 -3
- package/sdk/dist/deployments/v12-addresses.js.map +1 -1
- package/sdk/dist/deposit/index.d.ts +6 -6
- package/sdk/dist/deposit/index.d.ts.map +1 -1
- package/sdk/dist/deposit/index.js +1 -1
- package/sdk/dist/deposit/index.js.map +1 -1
- package/sdk/dist/deposit/params.d.ts +4 -4
- package/sdk/dist/deposit/params.d.ts.map +1 -1
- package/sdk/dist/deposit/params.js +7 -4
- package/sdk/dist/deposit/params.js.map +1 -1
- package/sdk/dist/deposit/source.d.ts +3 -30
- package/sdk/dist/deposit/source.d.ts.map +1 -1
- package/sdk/dist/deposit/source.js +7 -83
- package/sdk/dist/deposit/source.js.map +1 -1
- package/sdk/dist/deposit/templates.d.ts +1 -2
- package/sdk/dist/deposit/templates.d.ts.map +1 -1
- package/sdk/dist/deposit/templates.js +10 -2
- package/sdk/dist/deposit/templates.js.map +1 -1
- package/sdk/dist/deposit/types.d.ts +14 -12
- package/sdk/dist/deposit/types.d.ts.map +1 -1
- package/sdk/dist/deposit/types.js +6 -0
- package/sdk/dist/deposit/types.js.map +1 -1
- package/sdk/dist/descriptors/accessors.d.ts +38 -35
- package/sdk/dist/descriptors/accessors.d.ts.map +1 -1
- package/sdk/dist/descriptors/accessors.js +16 -0
- package/sdk/dist/descriptors/accessors.js.map +1 -1
- package/sdk/dist/descriptors/call.d.ts +66 -14
- package/sdk/dist/descriptors/call.d.ts.map +1 -1
- package/sdk/dist/descriptors/call.js +94 -13
- package/sdk/dist/descriptors/call.js.map +1 -1
- package/sdk/dist/descriptors/contracts.generated.d.ts +3393 -0
- package/sdk/dist/descriptors/contracts.generated.d.ts.map +1 -0
- package/sdk/dist/descriptors/contracts.generated.js +728 -0
- package/sdk/dist/descriptors/contracts.generated.js.map +1 -0
- package/sdk/dist/descriptors/derive.d.ts +20 -11
- package/sdk/dist/descriptors/derive.d.ts.map +1 -1
- package/sdk/dist/descriptors/derive.js +68 -30
- package/sdk/dist/descriptors/derive.js.map +1 -1
- package/sdk/dist/descriptors/index.d.ts +6 -7
- package/sdk/dist/descriptors/index.d.ts.map +1 -1
- package/sdk/dist/descriptors/index.js +2 -2
- package/sdk/dist/descriptors/index.js.map +1 -1
- package/sdk/dist/descriptors/links.d.ts +23 -214
- package/sdk/dist/descriptors/links.d.ts.map +1 -1
- package/sdk/dist/descriptors/links.js +1 -232
- package/sdk/dist/descriptors/links.js.map +1 -1
- package/sdk/dist/descriptors/query.d.ts +1 -1
- package/sdk/dist/descriptors/query.d.ts.map +1 -1
- package/sdk/dist/descriptors/query.js +1 -1
- package/sdk/dist/descriptors/query.js.map +1 -1
- package/sdk/dist/descriptors/registry.d.ts +2 -5
- package/sdk/dist/descriptors/registry.d.ts.map +1 -1
- package/sdk/dist/descriptors/registry.js +11 -66
- package/sdk/dist/descriptors/registry.js.map +1 -1
- package/sdk/dist/embedded/resolve.d.ts +4 -4
- package/sdk/dist/embedded/resolve.d.ts.map +1 -1
- package/sdk/dist/embedded/resolve.js +12 -8
- package/sdk/dist/embedded/resolve.js.map +1 -1
- package/sdk/dist/embedded/skills.generated.d.ts +1 -1
- package/sdk/dist/embedded/skills.generated.d.ts.map +1 -1
- package/sdk/dist/embedded/skills.generated.js +137 -136
- package/sdk/dist/embedded/skills.generated.js.map +1 -1
- package/sdk/dist/embedded/sources.generated.d.ts.map +1 -1
- package/sdk/dist/embedded/sources.generated.js +40 -6
- package/sdk/dist/embedded/sources.generated.js.map +1 -1
- package/sdk/dist/evm/engine.d.ts +813 -10
- package/sdk/dist/evm/engine.d.ts.map +1 -1
- package/sdk/dist/evm/engine.js +127 -8
- package/sdk/dist/evm/engine.js.map +1 -1
- package/sdk/dist/index.d.ts +3 -2
- package/sdk/dist/index.d.ts.map +1 -1
- package/sdk/dist/index.js +6 -2
- package/sdk/dist/index.js.map +1 -1
- package/sdk/dist/price.d.ts +40 -0
- package/sdk/dist/price.d.ts.map +1 -0
- package/sdk/dist/price.js +101 -0
- package/sdk/dist/price.js.map +1 -0
- package/sdk/dist/protocols/aerodrome/abis.d.ts +76 -0
- package/sdk/dist/protocols/aerodrome/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/aerodrome/abis.js +61 -0
- package/sdk/dist/protocols/aerodrome/abis.js.map +1 -1
- package/sdk/dist/protocols/aerodrome-slipstream/abis.d.ts +70 -0
- package/sdk/dist/protocols/aerodrome-slipstream/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/aerodrome-slipstream/abis.js +54 -0
- package/sdk/dist/protocols/aerodrome-slipstream/abis.js.map +1 -1
- package/sdk/dist/protocols/camelot/abis.d.ts +178 -0
- package/sdk/dist/protocols/camelot/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/camelot/abis.js +139 -0
- package/sdk/dist/protocols/camelot/abis.js.map +1 -1
- package/sdk/dist/protocols/eco-routes/abis.d.ts +792 -50
- package/sdk/dist/protocols/eco-routes/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/eco-routes/abis.js +1058 -49
- package/sdk/dist/protocols/eco-routes/abis.js.map +1 -1
- package/sdk/dist/protocols/eco-routes/addresses.generated.d.ts +44 -61
- package/sdk/dist/protocols/eco-routes/addresses.generated.d.ts.map +1 -1
- package/sdk/dist/protocols/eco-routes/addresses.generated.js +45 -62
- package/sdk/dist/protocols/eco-routes/addresses.generated.js.map +1 -1
- package/sdk/dist/protocols/eco-routes/lookup.d.ts +10 -0
- package/sdk/dist/protocols/eco-routes/lookup.d.ts.map +1 -1
- package/sdk/dist/protocols/eco-routes/lookup.js +16 -0
- package/sdk/dist/protocols/eco-routes/lookup.js.map +1 -1
- package/sdk/dist/protocols/maverick/abis.d.ts +77 -0
- package/sdk/dist/protocols/maverick/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/maverick/abis.js +58 -0
- package/sdk/dist/protocols/maverick/abis.js.map +1 -1
- package/sdk/dist/protocols/maverick/addresses.d.ts.map +1 -1
- package/sdk/dist/protocols/maverick/addresses.js +4 -0
- package/sdk/dist/protocols/maverick/addresses.js.map +1 -1
- package/sdk/dist/protocols/pancakeswap-v2/abis.d.ts +52 -0
- package/sdk/dist/protocols/pancakeswap-v2/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/pancakeswap-v2/abis.js +43 -0
- package/sdk/dist/protocols/pancakeswap-v2/abis.js.map +1 -1
- package/sdk/dist/protocols/pancakeswap-v3/abis.d.ts +73 -0
- package/sdk/dist/protocols/pancakeswap-v3/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/pancakeswap-v3/abis.js +56 -0
- package/sdk/dist/protocols/pancakeswap-v3/abis.js.map +1 -1
- package/sdk/dist/protocols/permit2/abis.d.ts +113 -0
- package/sdk/dist/protocols/permit2/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/permit2/abis.js +63 -0
- package/sdk/dist/protocols/permit2/abis.js.map +1 -1
- package/sdk/dist/protocols/quickswap/abis.d.ts +148 -0
- package/sdk/dist/protocols/quickswap/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/quickswap/abis.js +119 -0
- package/sdk/dist/protocols/quickswap/abis.js.map +1 -1
- package/sdk/dist/protocols/sushiswap-v2/abis.d.ts +52 -0
- package/sdk/dist/protocols/sushiswap-v2/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/sushiswap-v2/abis.js +42 -0
- package/sdk/dist/protocols/sushiswap-v2/abis.js.map +1 -1
- package/sdk/dist/protocols/synthra-v3/abis.d.ts +73 -0
- package/sdk/dist/protocols/synthra-v3/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/synthra-v3/abis.js +55 -0
- package/sdk/dist/protocols/synthra-v3/abis.js.map +1 -1
- package/sdk/dist/protocols/trader-joe/abis.d.ts +133 -0
- package/sdk/dist/protocols/trader-joe/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/trader-joe/abis.js +101 -0
- package/sdk/dist/protocols/trader-joe/abis.js.map +1 -1
- package/sdk/dist/protocols/trader-joe/addresses.d.ts.map +1 -1
- package/sdk/dist/protocols/trader-joe/addresses.js +5 -0
- package/sdk/dist/protocols/trader-joe/addresses.js.map +1 -1
- package/sdk/dist/protocols/uniswap-v2/abis.d.ts +52 -0
- package/sdk/dist/protocols/uniswap-v2/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/uniswap-v2/abis.js +44 -0
- package/sdk/dist/protocols/uniswap-v2/abis.js.map +1 -1
- package/sdk/dist/protocols/uniswap-v3/abis.d.ts +73 -0
- package/sdk/dist/protocols/uniswap-v3/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/uniswap-v3/abis.js +55 -0
- package/sdk/dist/protocols/uniswap-v3/abis.js.map +1 -1
- package/sdk/dist/protocols/uniswap-v4/abis.d.ts +247 -0
- package/sdk/dist/protocols/uniswap-v4/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/uniswap-v4/abis.js +167 -0
- package/sdk/dist/protocols/uniswap-v4/abis.js.map +1 -1
- package/sdk/dist/protocols/uniswap-v4/addresses.d.ts.map +1 -1
- package/sdk/dist/protocols/uniswap-v4/addresses.js +50 -0
- package/sdk/dist/protocols/uniswap-v4/addresses.js.map +1 -1
- package/sdk/dist/protocols/unitflow-v3/abis.d.ts +73 -0
- package/sdk/dist/protocols/unitflow-v3/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/unitflow-v3/abis.js +56 -0
- package/sdk/dist/protocols/unitflow-v3/abis.js.map +1 -1
- package/sdk/dist/protocols/velodrome/abis.d.ts +76 -0
- package/sdk/dist/protocols/velodrome/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/velodrome/abis.js +61 -0
- package/sdk/dist/protocols/velodrome/abis.js.map +1 -1
- package/sdk/dist/recipes/cctp-split.sauce.ts +2 -2
- package/sdk/dist/recipes/plain-transfer.sauce.ts +2 -2
- package/sdk/dist/routes/accessor-index.d.ts +2 -2
- package/sdk/dist/routes/accessor-index.d.ts.map +1 -1
- package/sdk/dist/routes/accessor-index.js +4 -3
- package/sdk/dist/routes/accessor-index.js.map +1 -1
- package/sdk/dist/routes/ambient.d.ts +5 -0
- package/sdk/dist/routes/ambient.d.ts.map +1 -1
- package/sdk/dist/routes/ambient.js +20 -0
- package/sdk/dist/routes/ambient.js.map +1 -1
- package/sdk/dist/routes/ast-walk.d.ts +17 -3
- package/sdk/dist/routes/ast-walk.d.ts.map +1 -1
- package/sdk/dist/routes/ast-walk.js +24 -2
- package/sdk/dist/routes/ast-walk.js.map +1 -1
- package/sdk/dist/routes/available.d.ts +43 -0
- package/sdk/dist/routes/available.d.ts.map +1 -0
- package/sdk/dist/routes/available.js +230 -0
- package/sdk/dist/routes/available.js.map +1 -0
- package/sdk/dist/routes/builtins.generated.d.ts +180 -0
- package/sdk/dist/routes/builtins.generated.d.ts.map +1 -0
- package/sdk/dist/routes/builtins.generated.js +2 -0
- package/sdk/dist/routes/builtins.generated.js.map +1 -0
- package/sdk/dist/routes/chain-exports.generated.d.ts +13 -8
- package/sdk/dist/routes/chain-exports.generated.d.ts.map +1 -1
- package/sdk/dist/routes/chain-exports.generated.js.map +1 -1
- package/sdk/dist/routes/closure.d.ts.map +1 -1
- package/sdk/dist/routes/closure.js +13 -26
- package/sdk/dist/routes/closure.js.map +1 -1
- package/sdk/dist/routes/composed.d.ts.map +1 -1
- package/sdk/dist/routes/composed.js +20 -8
- package/sdk/dist/routes/composed.js.map +1 -1
- package/sdk/dist/routes/encode.d.ts +17 -0
- package/sdk/dist/routes/encode.d.ts.map +1 -1
- package/sdk/dist/routes/encode.js +14 -11
- package/sdk/dist/routes/encode.js.map +1 -1
- package/sdk/dist/routes/entry.d.ts +76 -0
- package/sdk/dist/routes/entry.d.ts.map +1 -0
- package/sdk/dist/routes/entry.js +478 -0
- package/sdk/dist/routes/entry.js.map +1 -0
- package/sdk/dist/routes/index.d.ts +19 -12
- package/sdk/dist/routes/index.d.ts.map +1 -1
- package/sdk/dist/routes/index.js +11 -8
- package/sdk/dist/routes/index.js.map +1 -1
- package/sdk/dist/routes/intent-body.d.ts +97 -0
- package/sdk/dist/routes/intent-body.d.ts.map +1 -0
- package/sdk/dist/routes/intent-body.js +441 -0
- package/sdk/dist/routes/intent-body.js.map +1 -0
- package/sdk/dist/routes/intent-dsl.d.ts +21 -6
- package/sdk/dist/routes/intent-dsl.d.ts.map +1 -1
- package/sdk/dist/routes/intent-dsl.js +34 -17
- package/sdk/dist/routes/intent-dsl.js.map +1 -1
- package/sdk/dist/routes/intent-sugar.d.ts +77 -4
- package/sdk/dist/routes/intent-sugar.d.ts.map +1 -1
- package/sdk/dist/routes/intent-sugar.js +318 -129
- package/sdk/dist/routes/intent-sugar.js.map +1 -1
- package/sdk/dist/routes/intent.d.ts +13 -1
- package/sdk/dist/routes/intent.d.ts.map +1 -1
- package/sdk/dist/routes/intent.js +37 -1
- package/sdk/dist/routes/intent.js.map +1 -1
- package/sdk/dist/routes/nest.d.ts +3 -2
- package/sdk/dist/routes/nest.d.ts.map +1 -1
- package/sdk/dist/routes/nest.js +5 -3
- package/sdk/dist/routes/nest.js.map +1 -1
- package/sdk/dist/routes/parse.d.ts +6 -0
- package/sdk/dist/routes/parse.d.ts.map +1 -0
- package/sdk/dist/routes/parse.js +39 -0
- package/sdk/dist/routes/parse.js.map +1 -0
- package/sdk/dist/routes/portal.d.ts +258 -4
- package/sdk/dist/routes/portal.d.ts.map +1 -1
- package/sdk/dist/routes/portal.js +588 -9
- package/sdk/dist/routes/portal.js.map +1 -1
- package/sdk/dist/routes/protocol-rewrite.d.ts +71 -1
- package/sdk/dist/routes/protocol-rewrite.d.ts.map +1 -1
- package/sdk/dist/routes/protocol-rewrite.js +178 -54
- package/sdk/dist/routes/protocol-rewrite.js.map +1 -1
- package/sdk/dist/routes/rs-compile.d.ts +25 -22
- package/sdk/dist/routes/rs-compile.d.ts.map +1 -1
- package/sdk/dist/routes/rs-compile.js +55 -49
- package/sdk/dist/routes/rs-compile.js.map +1 -1
- package/sdk/dist/routes/sauce-calls.d.ts +26 -12
- package/sdk/dist/routes/sauce-calls.d.ts.map +1 -1
- package/sdk/dist/routes/sauce-calls.js +16 -23
- package/sdk/dist/routes/sauce-calls.js.map +1 -1
- package/sdk/dist/routes/sauce-route.d.ts +74 -7
- package/sdk/dist/routes/sauce-route.d.ts.map +1 -1
- package/sdk/dist/routes/sauce-route.js +225 -75
- package/sdk/dist/routes/sauce-route.js.map +1 -1
- package/sdk/dist/routes/source-globals.d.ts +107 -0
- package/sdk/dist/routes/source-globals.d.ts.map +1 -0
- package/sdk/dist/routes/source-globals.generated.d.ts +5601 -933
- package/sdk/dist/routes/source-globals.generated.d.ts.map +1 -1
- package/sdk/dist/routes/source-globals.generated.js +3 -4
- package/sdk/dist/routes/source-globals.generated.js.map +1 -1
- package/sdk/dist/routes/source-globals.js +175 -0
- package/sdk/dist/routes/source-globals.js.map +1 -0
- package/sdk/dist/routes/stock-tokens.d.ts +89 -0
- package/sdk/dist/routes/stock-tokens.d.ts.map +1 -0
- package/sdk/dist/routes/stock-tokens.generated.d.ts +7 -0
- package/sdk/dist/routes/stock-tokens.generated.d.ts.map +1 -0
- package/sdk/dist/routes/stock-tokens.generated.js +3664 -0
- package/sdk/dist/routes/stock-tokens.generated.js.map +1 -0
- package/sdk/dist/routes/stock-tokens.js +89 -0
- package/sdk/dist/routes/stock-tokens.js.map +1 -0
- package/sdk/dist/routes/token-registry.d.ts +68 -8
- package/sdk/dist/routes/token-registry.d.ts.map +1 -1
- package/sdk/dist/routes/token-registry.js +218 -32
- package/sdk/dist/routes/token-registry.js.map +1 -1
- package/sdk/dist/routes/token-rewrite.d.ts +1 -1
- package/sdk/dist/routes/token-rewrite.d.ts.map +1 -1
- package/sdk/dist/routes/token-rewrite.js +5 -9
- package/sdk/dist/routes/token-rewrite.js.map +1 -1
- package/sdk/dist/routes/unknown-global.d.ts +32 -0
- package/sdk/dist/routes/unknown-global.d.ts.map +1 -0
- package/sdk/dist/routes/unknown-global.js +106 -0
- package/sdk/dist/routes/unknown-global.js.map +1 -0
- package/sdk/dist/routes/vault.d.ts +38 -8
- package/sdk/dist/routes/vault.d.ts.map +1 -1
- package/sdk/dist/routes/vault.js +47 -8
- package/sdk/dist/routes/vault.js.map +1 -1
- package/sdk/dist/sauce-script/builtins.d.ts +309 -0
- package/sdk/dist/sauce-script/declarations.d.ts +3 -0
- package/sdk/dist/sauce-script/declarations.d.ts.map +1 -0
- package/sdk/dist/sauce-script/declarations.js +229 -0
- package/sdk/dist/sauce-script/declarations.js.map +1 -0
- package/sdk/dist/sauce-script/index.d.ts +2714 -0
- package/sdk/dist/sauce-script/ts-plugin.cjs +85 -0
- package/sdk/dist/skills/loader.d.ts.map +1 -1
- package/sdk/dist/skills/loader.js +4 -3
- package/sdk/dist/skills/loader.js.map +1 -1
- package/sdk/dist/std/router/balancer-v2-vault.abi.json +78 -0
- package/sdk/dist/std/router/curve-cryptoswap.abi.json +29 -0
- package/sdk/dist/std/router/curve-stableswap.abi.json +29 -0
- package/sdk/dist/std/router/dodo-v2-pool.abi.json +39 -0
- package/sdk/dist/std/router/lb-pair.abi.json +55 -0
- package/sdk/dist/std/router/package.json +7 -0
- package/sdk/dist/std/router/router.evm.js +567 -0
- package/sdk/dist/std/router/sauce-router.abi.json +202 -0
- package/sdk/dist/std/router/uniswap-v2-pair.abi.json +49 -0
- package/sdk/dist/std/router/woo-pp-v2.abi.json +42 -0
- package/sdk/dist/std/token/permit2.abi.json +226 -0
- package/sdk/dist/std/token/token.evm.js +73 -0
- package/sdk/dist/std/token/token.svm.js +194 -41
- package/sdk/dist/svm/client.d.ts +62 -15
- package/sdk/dist/svm/client.d.ts.map +1 -1
- package/sdk/dist/svm/client.js +103 -42
- package/sdk/dist/svm/client.js.map +1 -1
- package/sdk/dist/svm/engine.d.ts +66 -5
- package/sdk/dist/svm/engine.d.ts.map +1 -1
- package/sdk/dist/svm/engine.js +73 -5
- package/sdk/dist/svm/engine.js.map +1 -1
- package/sdk/dist/svm/index.d.ts +2 -0
- package/sdk/dist/svm/index.d.ts.map +1 -1
- package/sdk/dist/svm/index.js +2 -0
- package/sdk/dist/svm/index.js.map +1 -1
- package/sdk/dist/svm/instructions.d.ts +72 -1
- package/sdk/dist/svm/instructions.d.ts.map +1 -1
- package/sdk/dist/svm/instructions.js +81 -2
- package/sdk/dist/svm/instructions.js.map +1 -1
- package/sdk/dist/svm/kitchen.d.ts +20 -1
- package/sdk/dist/svm/kitchen.d.ts.map +1 -1
- package/sdk/dist/svm/kitchen.js +47 -1
- package/sdk/dist/svm/kitchen.js.map +1 -1
- package/sdk/dist/svm/portal.d.ts +250 -0
- package/sdk/dist/svm/portal.d.ts.map +1 -0
- package/sdk/dist/svm/portal.js +462 -0
- package/sdk/dist/svm/portal.js.map +1 -0
- package/sdk/dist/svm/send.d.ts +18 -2
- package/sdk/dist/svm/send.d.ts.map +1 -1
- package/sdk/dist/svm/send.js +28 -3
- package/sdk/dist/svm/send.js.map +1 -1
- package/sdk/dist/svm/token-accounts.d.ts +49 -0
- package/sdk/dist/svm/token-accounts.d.ts.map +1 -0
- package/sdk/dist/svm/token-accounts.js +58 -0
- package/sdk/dist/svm/token-accounts.js.map +1 -0
- package/sdk/dist/svm/token-extensions.d.ts +18 -7
- package/sdk/dist/svm/token-extensions.d.ts.map +1 -1
- package/sdk/dist/svm/token-extensions.js +58 -5
- package/sdk/dist/svm/token-extensions.js.map +1 -1
- package/sdk/dist/token/evm.js +1 -1
- package/sdk/dist/token/index.d.ts +1 -1
- package/sdk/dist/token/index.js +1 -1
- package/sdk/dist/token/params.js +1 -1
- package/sdk/dist/token/source.js +3 -3
- package/sdk/dist/token/source.js.map +1 -1
- package/sdk/dist/token/types.d.ts +2 -2
- package/sdk/dist/token/types.js +2 -2
- package/sdk/src/protocols/aerodrome/AerodromePoolABI.json +105 -0
- package/sdk/src/protocols/aerodrome/abis.ts +62 -0
- package/sdk/src/protocols/aerodrome-slipstream/AerodromeSlipstreamPoolABI.json +96 -0
- package/sdk/src/protocols/aerodrome-slipstream/abis.ts +55 -0
- package/sdk/src/protocols/camelot/CamelotV2FactoryABI.json +25 -0
- package/sdk/src/protocols/camelot/CamelotV2PairABI.json +109 -0
- package/sdk/src/protocols/camelot/CamelotV3FactoryABI.json +25 -0
- package/sdk/src/protocols/camelot/CamelotV3PoolABI.json +92 -0
- package/sdk/src/protocols/camelot/abis.ts +143 -0
- package/sdk/src/protocols/eco-routes/PortalABI.json +1448 -0
- package/sdk/src/protocols/eco-routes/ProverABI.json +162 -0
- package/sdk/src/protocols/eco-routes/abis.ts +1060 -51
- package/sdk/src/protocols/eco-routes/addresses.generated.ts +45 -62
- package/sdk/src/protocols/eco-routes/lookup.ts +18 -0
- package/sdk/src/protocols/maverick/MaverickV2PoolABI.json +107 -0
- package/sdk/src/protocols/maverick/abis.ts +59 -0
- package/sdk/src/protocols/maverick/addresses.ts +4 -0
- package/sdk/src/protocols/pancakeswap-v2/PancakeSwapV2PairABI.json +72 -0
- package/sdk/src/protocols/pancakeswap-v2/abis.ts +44 -0
- package/sdk/src/protocols/pancakeswap-v3/PancakeSwapV3PoolABI.json +100 -0
- package/sdk/src/protocols/pancakeswap-v3/abis.ts +57 -0
- package/sdk/src/protocols/permit2/Permit2ABI.json +154 -0
- package/sdk/src/protocols/permit2/abis.ts +63 -0
- package/sdk/src/protocols/quickswap/QuickSwapV2FactoryABI.json +25 -0
- package/sdk/src/protocols/quickswap/QuickSwapV2PairABI.json +72 -0
- package/sdk/src/protocols/quickswap/QuickSwapV3FactoryABI.json +25 -0
- package/sdk/src/protocols/quickswap/QuickSwapV3PoolABI.json +88 -0
- package/sdk/src/protocols/quickswap/abis.ts +123 -0
- package/sdk/src/protocols/sushiswap-v2/SushiSwapV2PairABI.json +72 -0
- package/sdk/src/protocols/sushiswap-v2/abis.ts +43 -0
- package/sdk/src/protocols/synthra-v3/SynthraV3PoolABI.json +100 -0
- package/sdk/src/protocols/synthra-v3/abis.ts +56 -0
- package/sdk/src/protocols/trader-joe/LBPairABI.json +185 -0
- package/sdk/src/protocols/trader-joe/abis.ts +102 -0
- package/sdk/src/protocols/trader-joe/addresses.ts +5 -0
- package/sdk/src/protocols/uniswap-v2/UniswapV2PairABI.json +72 -0
- package/sdk/src/protocols/uniswap-v2/abis.ts +45 -0
- package/sdk/src/protocols/uniswap-v3/UniswapV3PoolABI.json +100 -0
- package/sdk/src/protocols/uniswap-v3/abis.ts +56 -0
- package/sdk/src/protocols/uniswap-v4/UniswapV4PoolManagerABI.json +38 -0
- package/sdk/src/protocols/uniswap-v4/UniswapV4StateViewABI.json +307 -0
- package/sdk/src/protocols/uniswap-v4/abis.ts +168 -0
- package/sdk/src/protocols/uniswap-v4/addresses.ts +50 -0
- package/sdk/src/protocols/unitflow-v3/UnitFlowV3PoolABI.json +100 -0
- package/sdk/src/protocols/unitflow-v3/abis.ts +57 -0
- package/sdk/src/protocols/velodrome/VelodromePoolABI.json +105 -0
- package/sdk/src/protocols/velodrome/abis.ts +62 -0
- package/skills/sauce-actions/SKILL.md +166 -0
- package/skills/sauce-actions/examples/swap-and-supply.json +24 -0
- package/skills/sauce-actions/examples/swap-by-key.json +15 -0
- package/skills/sauce-actions/references/actions.md +731 -0
- package/skills/sauce-chains/SKILL.md +137 -0
- package/skills/sauce-chains/examples/chains.sauce.ts +25 -0
- package/skills/sauce-chains/references/arbitrum.md +158 -0
- package/skills/sauce-chains/references/arc.md +107 -0
- package/skills/sauce-chains/references/aurora.md +33 -0
- package/skills/sauce-chains/references/avalanche.md +106 -0
- package/skills/sauce-chains/references/base-stocks.md +77 -0
- package/skills/sauce-chains/references/base.md +141 -0
- package/skills/sauce-chains/references/berachain.md +33 -0
- package/skills/sauce-chains/references/blast.md +60 -0
- package/skills/sauce-chains/references/boba.md +33 -0
- package/skills/sauce-chains/references/bsc.md +97 -0
- package/skills/sauce-chains/references/celo.md +57 -0
- package/skills/sauce-chains/references/core.md +33 -0
- package/skills/sauce-chains/references/cronos.md +33 -0
- package/skills/sauce-chains/references/ethereum-stocks.md +1741 -0
- package/skills/sauce-chains/references/ethereum.md +255 -0
- package/skills/sauce-chains/references/evmos.md +33 -0
- package/skills/sauce-chains/references/fantom.md +61 -0
- package/skills/sauce-chains/references/fuse.md +33 -0
- package/skills/sauce-chains/references/gnosis.md +57 -0
- package/skills/sauce-chains/references/index.md +58 -0
- package/skills/sauce-chains/references/ink.md +55 -0
- package/skills/sauce-chains/references/kava.md +33 -0
- package/skills/sauce-chains/references/klaytn.md +33 -0
- package/skills/sauce-chains/references/linea.md +65 -0
- package/skills/sauce-chains/references/manta.md +33 -0
- package/skills/sauce-chains/references/mantle.md +33 -0
- package/skills/sauce-chains/references/metis.md +54 -0
- package/skills/sauce-chains/references/mode.md +55 -0
- package/skills/sauce-chains/references/monad.md +79 -0
- package/skills/sauce-chains/references/moonbeam.md +33 -0
- package/skills/sauce-chains/references/opbnb.md +55 -0
- package/skills/sauce-chains/references/optimism.md +123 -0
- package/skills/sauce-chains/references/plasma.md +35 -0
- package/skills/sauce-chains/references/polygon.md +123 -0
- package/skills/sauce-chains/references/pulsechain.md +33 -0
- package/skills/sauce-chains/references/ronin.md +35 -0
- package/skills/sauce-chains/references/scroll.md +62 -0
- package/skills/sauce-chains/references/sei.md +55 -0
- package/skills/sauce-chains/references/solana-stocks.md +1812 -0
- package/skills/sauce-chains/references/solana.md +56 -0
- package/skills/sauce-chains/references/sonic.md +57 -0
- package/skills/sauce-chains/references/unichain.md +61 -0
- package/skills/sauce-chains/references/zetachain.md +33 -0
- package/skills/sauce-chains/references/zksync.md +59 -0
- package/skills/sauce-chains/references/zora.md +57 -0
- package/skills/sauce-cli/SKILL.md +366 -0
- package/skills/sauce-cli/examples/pay.sauce.ts +23 -0
- package/skills/sauce-cli/examples/split.sauce.ts +30 -0
- package/skills/sauce-distributed-swap/SKILL.md +392 -0
- package/skills/sauce-distributed-swap/examples/distributed-swap.mts +251 -0
- package/skills/sauce-distributed-swap/examples/distributed-swap.sauce.ts +115 -0
- package/skills/sauce-examples/SKILL.md +96 -0
- package/skills/sauce-globals/SKILL.md +213 -0
- package/skills/sauce-globals/examples/globals.mts +111 -0
- package/skills/sauce-globals/examples/globals.sauce.ts +47 -0
- package/skills/sauce-globals/references/chains.md +53 -0
- package/skills/sauce-globals/references/protocols.md +405 -0
- package/skills/sauce-globals/references/stocks.md +3635 -0
- package/skills/sauce-globals/references/tokens.md +53 -0
- package/skills/sauce-intents/SKILL.md +505 -0
- package/skills/sauce-intents/examples/cross-chain.sauce.ts +37 -0
- package/skills/sauce-intents/examples/fund-by-transfer.sauce.ts +54 -0
- package/skills/sauce-intents/examples/intents.mts +343 -0
- package/skills/sauce-intents/examples/swap-on-base.sauce.ts +135 -0
- package/skills/sauce-intents/references/portal.md +77 -0
- package/skills/sauce-overview/SKILL.md +161 -0
- package/skills/sauce-protocols/SKILL.md +118 -0
- package/skills/sauce-protocols/examples/protocols.mts +77 -0
- package/skills/sauce-protocols/examples/protocols.sauce.ts +27 -0
- package/{sdk/src/skills → skills/sauce-protocols/references}/aave-v2.md +35 -17
- package/skills/sauce-protocols/references/aave-v3.md +144 -0
- package/skills/sauce-protocols/references/aave-v4.md +50 -0
- package/skills/sauce-protocols/references/abracadabra.md +72 -0
- package/skills/sauce-protocols/references/across.md +73 -0
- package/skills/sauce-protocols/references/aerodrome-slipstream.md +50 -0
- package/{sdk/src/skills → skills/sauce-protocols/references}/aerodrome.md +43 -24
- package/skills/sauce-protocols/references/aevo.md +49 -0
- package/{sdk/src/skills → skills/sauce-protocols/references}/alchemix.md +10 -25
- package/{sdk/src/skills → skills/sauce-protocols/references}/ambient.md +14 -21
- package/{sdk/src/skills → skills/sauce-protocols/references}/arbitrum-bridge.md +11 -14
- package/{sdk/src/skills → skills/sauce-protocols/references}/arrakis.md +10 -26
- package/skills/sauce-protocols/references/axelar.md +56 -0
- package/{sdk/src/skills → skills/sauce-protocols/references}/balancer-v2.md +13 -29
- package/{sdk/src/skills → skills/sauce-protocols/references}/base-bridge.md +11 -16
- package/{sdk/src/skills → skills/sauce-protocols/references}/baseswap.md +12 -19
- package/{sdk/src/skills → skills/sauce-protocols/references}/beefy.md +10 -30
- package/{sdk/src/skills → skills/sauce-protocols/references}/benqi.md +11 -21
- package/{sdk/src/skills → skills/sauce-protocols/references}/camelot.md +13 -27
- package/{sdk/src/skills → skills/sauce-protocols/references}/cbeth.md +10 -22
- package/skills/sauce-protocols/references/cctp.md +47 -0
- package/{sdk/src/skills → skills/sauce-protocols/references}/celer.md +11 -18
- package/{sdk/src/skills → skills/sauce-protocols/references}/chainlink-ccip.md +11 -21
- package/skills/sauce-protocols/references/chainlink.md +47 -0
- package/{sdk/src/skills → skills/sauce-protocols/references}/circle-gateway.md +12 -38
- package/{sdk/src/skills → skills/sauce-protocols/references}/compound-v2.md +11 -25
- package/{sdk/src/skills → skills/sauce-protocols/references}/compound-v3.md +43 -27
- package/{sdk/src/skills → skills/sauce-protocols/references}/connext.md +11 -15
- package/{sdk/src/skills → skills/sauce-protocols/references}/convex.md +10 -28
- package/{sdk/src/skills → skills/sauce-protocols/references}/cowswap.md +12 -19
- package/{sdk/src/skills → skills/sauce-protocols/references}/crvusd.md +10 -19
- package/skills/sauce-protocols/references/curve.md +98 -0
- package/{sdk/src/skills → skills/sauce-protocols/references}/debridge.md +11 -33
- package/{sdk/src/skills → skills/sauce-protocols/references}/dodo.md +13 -18
- package/skills/sauce-protocols/references/eigenlayer.md +48 -0
- package/{sdk/src/skills → skills/sauce-protocols/references}/ens.md +10 -26
- package/{sdk/src/skills → skills/sauce-protocols/references}/erc20.md +10 -24
- package/{sdk/src/skills → skills/sauce-protocols/references}/erc3156.md +10 -13
- package/{sdk/src/skills → skills/sauce-protocols/references}/erc4626.md +11 -27
- package/{sdk/src/skills → skills/sauce-protocols/references}/ethena.md +10 -27
- package/{sdk/src/skills → skills/sauce-protocols/references}/etherfi.md +10 -32
- package/{sdk/src/skills → skills/sauce-protocols/references}/euler-v2.md +11 -21
- package/{sdk/src/skills → skills/sauce-protocols/references}/fenix.md +12 -18
- package/{sdk/src/skills → skills/sauce-protocols/references}/fluid.md +11 -20
- package/{sdk/src/skills → skills/sauce-protocols/references}/frax-ether.md +10 -26
- package/{sdk/src/skills → skills/sauce-protocols/references}/frax.md +10 -19
- package/{sdk/src/skills → skills/sauce-protocols/references}/gains-network.md +11 -28
- package/skills/sauce-protocols/references/gamma.md +57 -0
- package/{sdk/src/skills → skills/sauce-protocols/references}/gelato.md +12 -20
- package/{sdk/src/skills → skills/sauce-protocols/references}/gho.md +10 -19
- package/{sdk/src/skills → skills/sauce-protocols/references}/gmx-v1.md +12 -34
- package/{sdk/src/skills → skills/sauce-protocols/references}/gmx-v2.md +15 -28
- package/skills/sauce-protocols/references/harvest.md +41 -0
- package/{sdk/src/skills → skills/sauce-protocols/references}/hegic.md +10 -18
- package/{sdk/src/skills → skills/sauce-protocols/references}/hop.md +11 -21
- package/{sdk/src/skills → skills/sauce-protocols/references}/hyperlane.md +11 -21
- package/skills/sauce-protocols/references/index.md +355 -0
- package/{sdk/src/skills → skills/sauce-protocols/references}/instadapp.md +10 -18
- package/skills/sauce-protocols/references/kelp.md +46 -0
- package/{sdk/src/skills → skills/sauce-protocols/references}/kim.md +12 -18
- package/{sdk/src/skills → skills/sauce-protocols/references}/kyberswap-aggregator.md +12 -35
- package/skills/sauce-protocols/references/kyberswap.md +72 -0
- package/{sdk/src/skills → skills/sauce-protocols/references}/layerbank.md +11 -26
- package/{sdk/src/skills → skills/sauce-protocols/references}/layerzero.md +11 -25
- package/{sdk/src/skills → skills/sauce-protocols/references}/level-finance.md +10 -24
- package/{sdk/src/skills → skills/sauce-protocols/references}/lido.md +10 -28
- package/{sdk/src/skills → skills/sauce-protocols/references}/lifi.md +11 -25
- package/{sdk/src/skills → skills/sauce-protocols/references}/linea-bridge.md +11 -14
- package/{sdk/src/skills → skills/sauce-protocols/references}/liquity-v1.md +10 -21
- package/{sdk/src/skills → skills/sauce-protocols/references}/liquity-v2.md +10 -19
- package/{sdk/src/skills → skills/sauce-protocols/references}/lynex.md +12 -18
- package/skills/sauce-protocols/references/maker.md +57 -0
- package/skills/sauce-protocols/references/mantle-meth.md +43 -0
- package/{sdk/src/skills → skills/sauce-protocols/references}/maverick.md +13 -25
- package/{sdk/src/skills → skills/sauce-protocols/references}/moonwell.md +11 -21
- package/{sdk/src/skills → skills/sauce-protocols/references}/morpho-blue.md +44 -21
- package/{sdk/src/skills → skills/sauce-protocols/references}/mux-protocol.md +10 -30
- package/skills/sauce-protocols/references/olympus.md +39 -0
- package/skills/sauce-protocols/references/oneinch.md +81 -0
- package/skills/sauce-protocols/references/openocean.md +69 -0
- package/{sdk/src/skills → skills/sauce-protocols/references}/optimism-bridge.md +11 -16
- package/{sdk/src/skills → skills/sauce-protocols/references}/opyn.md +10 -21
- package/{sdk/src/skills → skills/sauce-protocols/references}/pancakeswap-v2.md +39 -41
- package/skills/sauce-protocols/references/pancakeswap-v3.md +72 -0
- package/skills/sauce-protocols/references/paraswap.md +39 -0
- package/{sdk/src/skills → skills/sauce-protocols/references}/pendle.md +47 -29
- package/skills/sauce-protocols/references/permit2.md +101 -0
- package/skills/sauce-protocols/references/perpetual-protocol.md +53 -0
- package/{sdk/src/skills → skills/sauce-protocols/references}/polygon-bridge.md +11 -17
- package/{sdk/src/skills → skills/sauce-protocols/references}/premia.md +10 -19
- package/{sdk/src/skills → skills/sauce-protocols/references}/puffer.md +10 -21
- package/skills/sauce-protocols/references/pyth.md +45 -0
- package/{sdk/src/skills → skills/sauce-protocols/references}/quickswap.md +13 -27
- package/{sdk/src/skills → skills/sauce-protocols/references}/radiant.md +11 -15
- package/{sdk/src/skills → skills/sauce-protocols/references}/ramses.md +12 -18
- package/skills/sauce-protocols/references/reflexer.md +52 -0
- package/skills/sauce-protocols/references/registry/aave-v2.md +43 -0
- package/skills/sauce-protocols/references/registry/aave-v3.md +62 -0
- package/skills/sauce-protocols/references/registry/aave-v4.md +80 -0
- package/skills/sauce-protocols/references/registry/abracadabra.md +54 -0
- package/skills/sauce-protocols/references/registry/across.md +57 -0
- package/skills/sauce-protocols/references/registry/aerodrome-slipstream.md +72 -0
- package/skills/sauce-protocols/references/registry/aerodrome.md +58 -0
- package/skills/sauce-protocols/references/registry/aevo.md +39 -0
- package/skills/sauce-protocols/references/registry/alchemix.md +46 -0
- package/skills/sauce-protocols/references/registry/ambient.md +40 -0
- package/skills/sauce-protocols/references/registry/arbitrum-bridge.md +40 -0
- package/skills/sauce-protocols/references/registry/arrakis.md +49 -0
- package/skills/sauce-protocols/references/registry/axelar.md +65 -0
- package/skills/sauce-protocols/references/registry/balancer-v2.md +50 -0
- package/skills/sauce-protocols/references/registry/base-bridge.md +42 -0
- package/skills/sauce-protocols/references/registry/baseswap.md +40 -0
- package/skills/sauce-protocols/references/registry/beefy.md +51 -0
- package/skills/sauce-protocols/references/registry/benqi.md +49 -0
- package/skills/sauce-protocols/references/registry/camelot.md +82 -0
- package/skills/sauce-protocols/references/registry/cbeth.md +43 -0
- package/skills/sauce-protocols/references/registry/cctp.md +48 -0
- package/skills/sauce-protocols/references/registry/celer.md +44 -0
- package/skills/sauce-protocols/references/registry/chainlink-ccip.md +45 -0
- package/skills/sauce-protocols/references/registry/chainlink.md +49 -0
- package/skills/sauce-protocols/references/registry/circle-gateway.md +70 -0
- package/skills/sauce-protocols/references/registry/compound-v2.md +53 -0
- package/skills/sauce-protocols/references/registry/compound-v3.md +52 -0
- package/skills/sauce-protocols/references/registry/connext.md +41 -0
- package/skills/sauce-protocols/references/registry/convex.md +51 -0
- package/skills/sauce-protocols/references/registry/cowswap.md +40 -0
- package/skills/sauce-protocols/references/registry/crvusd.md +40 -0
- package/skills/sauce-protocols/references/registry/curve.md +81 -0
- package/skills/sauce-protocols/references/registry/debridge.md +59 -0
- package/skills/sauce-protocols/references/registry/dodo.md +39 -0
- package/skills/sauce-protocols/references/registry/eco-routes.md +65 -0
- package/skills/sauce-protocols/references/registry/eigenlayer.md +58 -0
- package/skills/sauce-protocols/references/registry/ens.md +49 -0
- package/skills/sauce-protocols/references/registry/erc20.md +44 -0
- package/skills/sauce-protocols/references/registry/erc3156.md +38 -0
- package/skills/sauce-protocols/references/registry/erc4626.md +51 -0
- package/skills/sauce-protocols/references/registry/ethena.md +50 -0
- package/skills/sauce-protocols/references/registry/etherfi.md +57 -0
- package/skills/sauce-protocols/references/registry/euler-v2.md +49 -0
- package/skills/sauce-protocols/references/registry/fenix.md +39 -0
- package/skills/sauce-protocols/references/registry/fluid.md +48 -0
- package/skills/sauce-protocols/references/registry/frax-ether.md +49 -0
- package/skills/sauce-protocols/references/registry/frax.md +40 -0
- package/skills/sauce-protocols/references/registry/gains-network.md +43 -0
- package/skills/sauce-protocols/references/registry/gamma.md +56 -0
- package/skills/sauce-protocols/references/registry/gelato.md +45 -0
- package/skills/sauce-protocols/references/registry/gho.md +40 -0
- package/skills/sauce-protocols/references/registry/gmx-v1.md +59 -0
- package/skills/sauce-protocols/references/registry/gmx-v2.md +41 -0
- package/skills/sauce-protocols/references/registry/harvest.md +44 -0
- package/skills/sauce-protocols/references/registry/hegic.md +39 -0
- package/skills/sauce-protocols/references/registry/hop.md +49 -0
- package/skills/sauce-protocols/references/registry/hyperlane.md +48 -0
- package/skills/sauce-protocols/references/registry/instadapp.md +39 -0
- package/skills/sauce-protocols/references/registry/kelp.md +47 -0
- package/skills/sauce-protocols/references/registry/kim.md +39 -0
- package/skills/sauce-protocols/references/registry/kyberswap-aggregator.md +49 -0
- package/skills/sauce-protocols/references/registry/kyberswap.md +63 -0
- package/skills/sauce-protocols/references/registry/layerbank.md +54 -0
- package/skills/sauce-protocols/references/registry/layerzero.md +49 -0
- package/skills/sauce-protocols/references/registry/level-finance.md +41 -0
- package/skills/sauce-protocols/references/registry/lido.md +51 -0
- package/skills/sauce-protocols/references/registry/lifi.md +48 -0
- package/skills/sauce-protocols/references/registry/linea-bridge.md +40 -0
- package/skills/sauce-protocols/references/registry/liquity-v1.md +42 -0
- package/skills/sauce-protocols/references/registry/liquity-v2.md +40 -0
- package/skills/sauce-protocols/references/registry/lynex.md +39 -0
- package/skills/sauce-protocols/references/registry/maker.md +55 -0
- package/skills/sauce-protocols/references/registry/mantle-meth.md +48 -0
- package/skills/sauce-protocols/references/registry/maverick.md +60 -0
- package/skills/sauce-protocols/references/registry/moonwell.md +49 -0
- package/skills/sauce-protocols/references/registry/morpho-blue.md +47 -0
- package/skills/sauce-protocols/references/registry/mux-protocol.md +49 -0
- package/skills/sauce-protocols/references/registry/olympus.md +42 -0
- package/skills/sauce-protocols/references/registry/oneinch.md +45 -0
- package/skills/sauce-protocols/references/registry/openocean.md +44 -0
- package/skills/sauce-protocols/references/registry/optimism-bridge.md +42 -0
- package/skills/sauce-protocols/references/registry/opyn.md +42 -0
- package/skills/sauce-protocols/references/registry/pancakeswap-v2.md +71 -0
- package/skills/sauce-protocols/references/registry/pancakeswap-v3.md +76 -0
- package/skills/sauce-protocols/references/registry/paraswap.md +51 -0
- package/skills/sauce-protocols/references/registry/pendle.md +43 -0
- package/skills/sauce-protocols/references/registry/permit2.md +50 -0
- package/skills/sauce-protocols/references/registry/perpetual-protocol.md +49 -0
- package/skills/sauce-protocols/references/registry/polygon-bridge.md +43 -0
- package/skills/sauce-protocols/references/registry/premia.md +40 -0
- package/skills/sauce-protocols/references/registry/puffer.md +43 -0
- package/skills/sauce-protocols/references/registry/pyth.md +40 -0
- package/skills/sauce-protocols/references/registry/quickswap.md +80 -0
- package/skills/sauce-protocols/references/registry/radiant.md +41 -0
- package/skills/sauce-protocols/references/registry/ramses.md +39 -0
- package/skills/sauce-protocols/references/registry/reflexer.md +56 -0
- package/skills/sauce-protocols/references/registry/renzo.md +47 -0
- package/skills/sauce-protocols/references/registry/rocket-pool.md +49 -0
- package/skills/sauce-protocols/references/registry/sablier.md +40 -0
- package/skills/sauce-protocols/references/registry/safe.md +47 -0
- package/skills/sauce-protocols/references/registry/scroll-bridge.md +48 -0
- package/skills/sauce-protocols/references/registry/seamless.md +42 -0
- package/skills/sauce-protocols/references/registry/seaport.md +44 -0
- package/skills/sauce-protocols/references/registry/silo.md +48 -0
- package/skills/sauce-protocols/references/registry/socket.md +44 -0
- package/skills/sauce-protocols/references/registry/sommelier.md +43 -0
- package/skills/sauce-protocols/references/registry/spark.md +42 -0
- package/skills/sauce-protocols/references/registry/spookyswap.md +40 -0
- package/skills/sauce-protocols/references/registry/squid.md +45 -0
- package/skills/sauce-protocols/references/registry/stader.md +47 -0
- package/skills/sauce-protocols/references/registry/stargate.md +45 -0
- package/skills/sauce-protocols/references/registry/superfluid.md +49 -0
- package/skills/sauce-protocols/references/registry/sushiswap-v2.md +71 -0
- package/skills/sauce-protocols/references/registry/swell.md +49 -0
- package/skills/sauce-protocols/references/registry/synapse.md +46 -0
- package/skills/sauce-protocols/references/registry/syncswap.md +38 -0
- package/skills/sauce-protocols/references/registry/synthetix-v3.md +48 -0
- package/skills/sauce-protocols/references/registry/synthra-v3.md +77 -0
- package/skills/sauce-protocols/references/registry/thales.md +51 -0
- package/skills/sauce-protocols/references/registry/thena.md +39 -0
- package/skills/sauce-protocols/references/registry/thruster.md +38 -0
- package/skills/sauce-protocols/references/registry/tokemak.md +45 -0
- package/skills/sauce-protocols/references/registry/trader-joe.md +66 -0
- package/skills/sauce-protocols/references/registry/uniswap-v2.md +77 -0
- package/skills/sauce-protocols/references/registry/uniswap-v3.md +113 -0
- package/skills/sauce-protocols/references/registry/uniswap-v4.md +117 -0
- package/skills/sauce-protocols/references/registry/unitflow-v3.md +65 -0
- package/skills/sauce-protocols/references/registry/velodrome.md +58 -0
- package/skills/sauce-protocols/references/registry/venus.md +62 -0
- package/skills/sauce-protocols/references/registry/vertex.md +46 -0
- package/skills/sauce-protocols/references/registry/wormhole.md +59 -0
- package/skills/sauce-protocols/references/registry/yearn-v3.md +46 -0
- package/skills/sauce-protocols/references/registry/zerolend.md +41 -0
- package/skills/sauce-protocols/references/registry/zerox.md +44 -0
- package/skills/sauce-protocols/references/registry/zksync-bridge.md +40 -0
- package/{sdk/src/skills → skills/sauce-protocols/references}/renzo.md +10 -24
- package/{sdk/src/skills → skills/sauce-protocols/references}/rocket-pool.md +10 -26
- package/{sdk/src/skills → skills/sauce-protocols/references}/sablier.md +10 -27
- package/skills/sauce-protocols/references/safe.md +42 -0
- package/{sdk/src/skills → skills/sauce-protocols/references}/scroll-bridge.md +11 -20
- package/{sdk/src/skills → skills/sauce-protocols/references}/seamless.md +11 -16
- package/skills/sauce-protocols/references/seaport.md +38 -0
- package/{sdk/src/skills → skills/sauce-protocols/references}/silo.md +11 -20
- package/{sdk/src/skills → skills/sauce-protocols/references}/socket.md +11 -18
- package/skills/sauce-protocols/references/sommelier.md +40 -0
- package/{sdk/src/skills → skills/sauce-protocols/references}/spark.md +11 -16
- package/{sdk/src/skills → skills/sauce-protocols/references}/spookyswap.md +12 -19
- package/{sdk/src/skills → skills/sauce-protocols/references}/squid.md +11 -21
- package/skills/sauce-protocols/references/stader.md +39 -0
- package/{sdk/src/skills → skills/sauce-protocols/references}/stargate.md +11 -22
- package/{sdk/src/skills → skills/sauce-protocols/references}/superfluid.md +10 -28
- package/{sdk/src/skills → skills/sauce-protocols/references}/sushiswap-v2.md +38 -43
- package/skills/sauce-protocols/references/swell.md +49 -0
- package/skills/sauce-protocols/references/synapse.md +54 -0
- package/{sdk/src/skills → skills/sauce-protocols/references}/syncswap.md +12 -17
- package/{sdk/src/skills → skills/sauce-protocols/references}/synthetix-v3.md +10 -29
- package/skills/sauce-protocols/references/synthra-v3.md +63 -0
- package/skills/sauce-protocols/references/thales.md +58 -0
- package/{sdk/src/skills → skills/sauce-protocols/references}/thena.md +12 -18
- package/{sdk/src/skills → skills/sauce-protocols/references}/thruster.md +13 -18
- package/skills/sauce-protocols/references/tokemak.md +40 -0
- package/{sdk/src/skills → skills/sauce-protocols/references}/trader-joe.md +13 -26
- package/{sdk/src/skills → skills/sauce-protocols/references}/uniswap-v2.md +46 -44
- package/skills/sauce-protocols/references/uniswap-v3.md +188 -0
- package/skills/sauce-protocols/references/uniswap-v4.md +155 -0
- package/skills/sauce-protocols/references/unitflow-v3.md +63 -0
- package/{sdk/src/skills → skills/sauce-protocols/references}/velodrome.md +12 -24
- package/{sdk/src/skills → skills/sauce-protocols/references}/venus.md +12 -31
- package/skills/sauce-protocols/references/vertex.md +42 -0
- package/skills/sauce-protocols/references/wormhole.md +57 -0
- package/{sdk/src/skills → skills/sauce-protocols/references}/yearn-v3.md +10 -25
- package/{sdk/src/skills → skills/sauce-protocols/references}/zerolend.md +11 -15
- package/skills/sauce-protocols/references/zerox.md +39 -0
- package/{sdk/src/skills → skills/sauce-protocols/references}/zksync-bridge.md +11 -14
- package/skills/sauce-script/SKILL.md +407 -0
- package/skills/sauce-script/examples/IOracle.json +12 -0
- package/skills/sauce-script/examples/saucescript.mts +167 -0
- package/skills/sauce-script/examples/twap.sauce.ts +29 -0
- package/skills/sauce-script/references/builtins.json +823 -0
- package/skills/sauce-script/references/builtins.md +674 -0
- package/skills/sauce-solana/SKILL.md +324 -0
- package/skills/sauce-solana/examples/solana.mts +166 -0
- package/skills/sauce-solana/examples/solana.sauce.ts +45 -0
- package/skills/sauce-solana/examples/token-2022.sauce.ts +38 -0
- package/skills/sauce-swaps/SKILL.md +200 -0
- package/skills/sauce-swaps/examples/swap-leg.sauce.ts +50 -0
- package/skills/sauce-swaps/examples/swaps.mts +124 -0
- package/skills/sauce-typescript/SKILL.md +178 -0
- package/skills/sauce-typescript/examples/actions.mts +100 -0
- package/skills/sauce-typescript/examples/compiler.mts +69 -0
- package/skills/sauce-typescript/examples/cook.mts +65 -0
- package/skills/sauce-typescript/examples/verify.mts +104 -0
- package/dev-tools/README.md +0 -16
- package/dev-tools/artifacts/IERC20.json +0 -1
- package/dev-tools/artifacts/ISauceRouter.json +0 -1
- package/dev-tools/artifacts/IUniswapV3Pool.json +0 -1
- package/dev-tools/artifacts/Router.json +0 -1
- package/dev-tools/hardhat.config.cjs +0 -18
- package/dev-tools/sauce/js/add.js +0 -4
- package/dev-tools/sauce/js/call.js +0 -8
- package/dev-tools/sauce/js/erc20.js +0 -18
- package/dev-tools/sauce/js/example.js +0 -6
- package/dev-tools/sauce/js/fibonacci.js +0 -13
- package/dev-tools/sauce/ts/add.ts +0 -4
- package/dev-tools/sauce/ts/call.ts +0 -8
- package/dev-tools/sauce/ts/erc20.ts +0 -18
- package/dev-tools/sauce/ts/example.ts +0 -6
- package/dev-tools/sauce/ts/fibonacci.ts +0 -13
- package/dev-tools/sauce/ts/saucescript.d.ts +0 -1
- package/dev-tools/sauce/ts/tsconfig.json +0 -12
- package/dev-tools/scripts/deploy.ts +0 -107
- package/dev-tools/scripts/init.js +0 -132
- package/dev-tools/scripts/run.ts +0 -67
- package/dev-tools/scripts/start-fork.sh +0 -92
- package/dev-tools/scripts/start-local.sh +0 -120
- package/dev-tools/scripts/stop-local.sh +0 -40
- package/dev-tools/scripts/sync-artifacts.js +0 -46
- package/dev-tools/scripts/sync-price.ts +0 -58
- package/dev-tools/src/contracts.ts +0 -59
- package/dev-tools/src/runner.ts +0 -355
- package/dev-tools/src/svm-local.ts +0 -305
- package/dev-tools/src/sync-price.ts +0 -217
- package/sdk/dist/deployments/v12.generated.d.ts +0 -95
- package/sdk/dist/deployments/v12.generated.d.ts.map +0 -1
- package/sdk/dist/deployments/v12.generated.js +0 -50
- package/sdk/dist/deployments/v12.generated.js.map +0 -1
- package/sdk/dist/swap/index.d.ts +0 -29
- package/sdk/dist/swap/index.d.ts.map +0 -1
- package/sdk/dist/swap/index.js +0 -27
- package/sdk/dist/swap/index.js.map +0 -1
- package/sdk/dist/swap/params.d.ts +0 -29
- package/sdk/dist/swap/params.d.ts.map +0 -1
- package/sdk/dist/swap/params.js +0 -123
- package/sdk/dist/swap/params.js.map +0 -1
- package/sdk/dist/swap/source.d.ts +0 -30
- package/sdk/dist/swap/source.d.ts.map +0 -1
- package/sdk/dist/swap/source.js +0 -101
- package/sdk/dist/swap/source.js.map +0 -1
- package/sdk/dist/swap/types.d.ts +0 -160
- package/sdk/dist/swap/types.d.ts.map +0 -1
- package/sdk/dist/swap/types.js +0 -106
- package/sdk/dist/swap/types.js.map +0 -1
- package/sdk/src/skills/aave-v3.md +0 -134
- package/sdk/src/skills/aave-v4.md +0 -91
- package/sdk/src/skills/abracadabra.md +0 -93
- package/sdk/src/skills/across.md +0 -90
- package/sdk/src/skills/aerodrome-slipstream.md +0 -57
- package/sdk/src/skills/aevo.md +0 -58
- package/sdk/src/skills/axelar.md +0 -80
- package/sdk/src/skills/chainlink.md +0 -62
- package/sdk/src/skills/curve.md +0 -141
- package/sdk/src/skills/eigenlayer.md +0 -71
- package/sdk/src/skills/gamma.md +0 -79
- package/sdk/src/skills/harvest.md +0 -49
- package/sdk/src/skills/index.md +0 -299
- package/sdk/src/skills/kelp.md +0 -60
- package/sdk/src/skills/kyberswap.md +0 -100
- package/sdk/src/skills/loader.ts +0 -46
- package/sdk/src/skills/maker.md +0 -79
- package/sdk/src/skills/mantle-meth.md +0 -60
- package/sdk/src/skills/olympus.md +0 -46
- package/sdk/src/skills/oneinch.md +0 -64
- package/sdk/src/skills/openocean.md +0 -86
- package/sdk/src/skills/pancakeswap-v3.md +0 -104
- package/sdk/src/skills/paraswap.md +0 -67
- package/sdk/src/skills/permit2.md +0 -73
- package/sdk/src/skills/perpetual-protocol.md +0 -73
- package/sdk/src/skills/pyth.md +0 -58
- package/sdk/src/skills/reflexer.md +0 -73
- package/sdk/src/skills/safe.md +0 -56
- package/sdk/src/skills/seaport.md +0 -65
- package/sdk/src/skills/sommelier.md +0 -47
- package/sdk/src/skills/stader.md +0 -53
- package/sdk/src/skills/swell.md +0 -65
- package/sdk/src/skills/synapse.md +0 -63
- package/sdk/src/skills/synthra-v3.md +0 -57
- package/sdk/src/skills/thales.md +0 -74
- package/sdk/src/skills/tokemak.md +0 -48
- package/sdk/src/skills/uniswap-v3.md +0 -202
- package/sdk/src/skills/uniswap-v4.md +0 -125
- package/sdk/src/skills/unitflow-v3.md +0 -62
- package/sdk/src/skills/vertex.md +0 -55
- package/sdk/src/skills/wormhole.md +0 -76
- package/sdk/src/skills/zerox.md +0 -51
package/docs/README.md
CHANGED
|
@@ -8,6 +8,37 @@ tokens and protocols a program calls by name; you write the program, not a contr
|
|
|
8
8
|
**Routes** are the layer above: a route packages a program as an Eco intent, so it can be executed
|
|
9
9
|
on another chain in exchange for a reward escrowed on this one. Everything cross-chain lives there.
|
|
10
10
|
|
|
11
|
+
## Supported chains
|
|
12
|
+
|
|
13
|
+
For the initial release, Sauce supports transactions on three chains: **Ethereum**, **Base** and
|
|
14
|
+
**Solana**.
|
|
15
|
+
|
|
16
|
+
Every other chain in the registry is a **preview chain**. Programs compile for it, and the
|
|
17
|
+
[`sauce` command](guides/cli.md#supported-and-preview-chains) and the
|
|
18
|
+
[MCP server](guides/mcp.md#supported-and-preview-chains) rehearse and read there as anywhere:
|
|
19
|
+
`sauce simulate`, `sauce intent publish --dry-run`, `sauce intent fill` without `--send`, and every
|
|
20
|
+
read. What they do not do on a preview chain is build or send a transaction. `tx`, `run`,
|
|
21
|
+
`pot --deploy` (and the deployment `pot` prints), `intent publish`, `intent fill --send`, `prove`,
|
|
22
|
+
`claim`, `refund` and `cancel` are refused there before any endpoint is reached or any key is read,
|
|
23
|
+
with the supported chains and a link to request the chain. An intent publishes only when its source
|
|
24
|
+
and every destination it opens are supported; the later levels of a cascade (an intent opened inside
|
|
25
|
+
another's body) are not checked, so keep every level on a supported chain. Each step after
|
|
26
|
+
publishing is refused by the chain it is sent on: a fill, a proof or a cancellation by the
|
|
27
|
+
destination, a claim or a refund by the source.
|
|
28
|
+
|
|
29
|
+
The TypeScript SDK is not gated. Its builders take every registry chain and build its
|
|
30
|
+
transactions, and an integrator who submits one on a preview chain does so at their own risk.
|
|
31
|
+
The MCP server's `sauce_chains` gives each chain's support, and every refusal names the supported
|
|
32
|
+
chains.
|
|
33
|
+
|
|
34
|
+
To ask for a chain, first
|
|
35
|
+
[search the existing requests](https://github.com/eco-incorp/sauce/issues?q=is%3Aissue+label%3Achain-support)
|
|
36
|
+
and add your use case to the one for that chain as a comment. If there is none,
|
|
37
|
+
[open a chain-support request](https://github.com/eco-incorp/sauce/issues/new?template=chain-support.yml):
|
|
38
|
+
the chain and its id, what you want to run there, the protocols and tokens it needs, the volume you
|
|
39
|
+
expect and from when, and optionally how to reach you. A refusal links both, prefilled for the chain
|
|
40
|
+
it refused.
|
|
41
|
+
|
|
11
42
|
## First program in five minutes
|
|
12
43
|
|
|
13
44
|
1. [Install](guides/quick-start.md) the package. The compiler is inside it.
|
|
@@ -29,6 +60,10 @@ Complete programs live in the [examples](examples/README.md).
|
|
|
29
60
|
| Construct, fund, submit and inspect an intent | [Create an intent](guides/intents.md) |
|
|
30
61
|
| Chain intents — statically, or from an amount measured on chain | [Nested intents](guides/nested-intents.md) |
|
|
31
62
|
| Compile a standalone program and pass it runtime arguments | [Compiling programs](guides/compiling.md) |
|
|
63
|
+
| Compile and run a program file from a terminal | [The sauce command](guides/cli.md) |
|
|
64
|
+
| Have a coding agent write and run programs | [Agent skills](guides/cli.md#agent-skills) |
|
|
65
|
+
| Give a coding agent Sauce's tools and skills over MCP | [The MCP server](guides/mcp.md) |
|
|
66
|
+
| Give an agent a wallet of its own, with a policy that limits it | [Agent wallets](guides/cli.md#agent-wallets) |
|
|
32
67
|
| Generate programs from structured data | [Builders](guides/builders-and-actions.md) |
|
|
33
68
|
| Write protocol actions as JSON, then run them or make an intent | [Actions](guides/actions.md) |
|
|
34
69
|
| Plan accounts, stage code and execute on Solana | [Solana](guides/solana.md) |
|
|
@@ -45,6 +80,9 @@ Complete programs live in the [examples](examples/README.md).
|
|
|
45
80
|
|
|
46
81
|
- [API entry points](api/README.md) — every published import and what it contains.
|
|
47
82
|
- [Routes](api/routes.md) — chain entry points, intent options, built intents, nesting.
|
|
83
|
+
- [Contracts and tokens](api/contracts.md) — every protocol namespace and token, in a program and in TypeScript.
|
|
84
|
+
- [SauceScript reference](../skills/sauce-script/references/builtins.md) — every type, builtin, statement and limit, per target.
|
|
48
85
|
- [Compiler](api/compiler.md) — `compile()` options and result, and the compact argument codec.
|
|
86
|
+
- [`@sauce/router`](api/router.md) — the SauceScript swap library: one function per venue.
|
|
49
87
|
- [Coverage](api/coverage.md) — which protocols, tokens and chains are actually registered.
|
|
50
88
|
- [Examples](examples/README.md) — complete programs, and how they are kept working.
|
package/docs/api/README.md
CHANGED
|
@@ -3,27 +3,28 @@
|
|
|
3
3
|
Install `@eco-incorp/sauce` and import through the package's public entry points. All paths below
|
|
4
4
|
are suffixes of that package name; `.` means `@eco-incorp/sauce` itself.
|
|
5
5
|
|
|
6
|
-
| Import | Contents
|
|
7
|
-
| ------------------------------ |
|
|
8
|
-
| `.` | Chain accessors (`Base`, `Solana`, …); `routes`, `token`, `
|
|
9
|
-
| `/compiler` | `compile`, `ready`, compiler types, the compact codec, and `resolveSdkModule`/`resolveSdkPackage`
|
|
10
|
-
| `/actions` | JSON action programs: validation, compilation and intents; the JSON Schema is `/actions/action-program.schema.json`
|
|
11
|
-
| `/protocols/*` | One protocol's `protocolInfo`, `deployments`, ABI exports, and named SauceScript templates
|
|
12
|
-
| `/chains` | Canonical chain identities and EVM chain metadata
|
|
13
|
-
| `/deployments` | Sauce engine/Kitchen addresses, Pot derivation inputs, and
|
|
14
|
-
| `/recipes` | EVM settlement source and CCTP/plain-transfer recipe builders and sources
|
|
15
|
-
| `/recipes/settle.sauce.ts` | EVM settlement source asset
|
|
16
|
-
| `/svm` | SVM clients, account plans, resolution, staging, Kitchen instructions, recipes, and transactions
|
|
17
|
-
| `/svm/engine` | SVM engine wire format and instruction builders
|
|
18
|
-
| `/svm/engine-artifacts` | Node-only helpers locating packaged SVM engine/Kitchen binaries and IDL
|
|
19
|
-
| `/svm/verify` | SVM program and gated engine CPI verification; separate Kitchen decoding is required
|
|
20
|
-
| `/svm/recipes/settle.sauce.ts` | SVM settlement source asset
|
|
21
|
-
| `/evm/engine` | EVM Pot and Kitchen ABIs and call encoders (`v12PotAbi`, `v12KitchenAbi`, `v12Pot`, `v12Kitchen`)
|
|
22
|
-
| `/verify` | EVM settlement encoding, structural decoding, and validation against the pinned program
|
|
23
|
-
| `/skills` |
|
|
6
|
+
| Import | Contents |
|
|
7
|
+
| ------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
8
|
+
| `.` | Chain accessors (`Base`, `Solana`, …); `routes`, `token`, `deposit`, `contracts`, `svmVenues`; protocol and chain queries; `sqrtPriceX96FromPrice`/`priceFromSqrtPriceX96`; `ready` |
|
|
9
|
+
| `/compiler` | `compile`, `ready`, compiler types, the compact codec, and `resolveSdkModule`/`resolveSdkPackage` |
|
|
10
|
+
| `/actions` | JSON action programs by names and pool keys: validation, compilation for a chain, and intents; the JSON Schema is `/actions/action-program.schema.json` |
|
|
11
|
+
| `/protocols/*` | One protocol's `protocolInfo`, `deployments`, ABI exports, and named SauceScript templates |
|
|
12
|
+
| `/chains` | Canonical chain identities and EVM chain metadata |
|
|
13
|
+
| `/deployments` | Sauce engine/Kitchen addresses, Pot derivation inputs, and which engine runs which compiler's programs |
|
|
14
|
+
| `/recipes` | EVM settlement source and CCTP/plain-transfer recipe builders and sources |
|
|
15
|
+
| `/recipes/settle.sauce.ts` | EVM settlement source asset |
|
|
16
|
+
| `/svm` | SVM clients, account plans, resolution, staging, Kitchen instructions, recipes, and transactions |
|
|
17
|
+
| `/svm/engine` | SVM engine wire format and instruction builders |
|
|
18
|
+
| `/svm/engine-artifacts` | Node-only helpers locating packaged SVM engine/Kitchen binaries and IDL |
|
|
19
|
+
| `/svm/verify` | SVM program and gated engine CPI verification; separate Kitchen decoding is required |
|
|
20
|
+
| `/svm/recipes/settle.sauce.ts` | SVM settlement source asset |
|
|
21
|
+
| `/evm/engine` | EVM Pot and Kitchen ABIs and call encoders (`v12PotAbi`, `v12KitchenAbi`, `v12Pot`, `v12Kitchen`), and `potRouterUpdate` |
|
|
22
|
+
| `/verify` | EVM settlement encoding, structural decoding, and validation against the pinned program |
|
|
23
|
+
| `/skills` | The per-protocol documents (the `sauce-protocols` agent skill's references) and their index, as text |
|
|
24
|
+
| `/sauce-script` | Types only: SauceScript's builtins, chains and ABI modules, for an editor checking `*.sauce.ts` programs ([In an editor](../guides/cli.md#in-an-editor)) |
|
|
24
25
|
|
|
25
26
|
The [`exports` map](../../package.json) defines this list. There is no `/routes`, `/token`,
|
|
26
|
-
`/
|
|
27
|
+
`/deposit`, or `/contracts` subpath; import these namespaces from the root:
|
|
27
28
|
|
|
28
29
|
```ts
|
|
29
30
|
import { routes, token, contracts } from "@eco-incorp/sauce";
|
|
@@ -35,13 +36,21 @@ Importing the package puts nothing on `globalThis`. `chain(ref)` and the host `T
|
|
|
35
36
|
named exports too.
|
|
36
37
|
|
|
37
38
|
Bare names such as `USDC` and `Uniswap` are different: they are _program syntax_, resolved by the
|
|
38
|
-
compiler inside a route body, with no host JavaScript object behind them.
|
|
39
|
+
compiler inside a route body, with no host JavaScript object behind them. The same registry entries
|
|
40
|
+
are on the chain export in TypeScript (`Base.USDC`, `Base.Uniswap`). See
|
|
39
41
|
[protocols and tokens](../guides/protocols-and-tokens.md).
|
|
40
42
|
|
|
41
43
|
## Detailed references
|
|
42
44
|
|
|
45
|
+
- [SauceScript reference](../../skills/sauce-script/references/builtins.md): every type, operator,
|
|
46
|
+
statement, builtin and limit, per target, checked against the compiler;
|
|
47
|
+
[`builtins.json`](../../skills/sauce-script/references/builtins.json) lists the builtins with an
|
|
48
|
+
example program each. It is the `sauce-script` agent skill's reference, shipped in the package.
|
|
43
49
|
- [Compiler](compiler.md): direct compilation, result metadata, compact argument encoding.
|
|
50
|
+
- [`@sauce/router`](router.md): the SauceScript swap library a program imports — one function per
|
|
51
|
+
venue.
|
|
44
52
|
- [Routes](routes.md): compile options, intent construction, nested execution, and submission helpers.
|
|
53
|
+
- [Contracts and tokens](contracts.md): every protocol namespace and token, in a program and in TypeScript, and running a call through viem.
|
|
45
54
|
- [Coverage](coverage.md): distinguish catalog entries, callable descriptors, and available deployments.
|
|
46
55
|
|
|
47
56
|
For programs assembled from data rather than written, see [builders](../guides/builders-and-actions.md).
|
|
@@ -63,14 +72,19 @@ const aaveMarkdown = getProtocolSkill("aave-v3");
|
|
|
63
72
|
const availableSkills = listSkillSlugs();
|
|
64
73
|
```
|
|
65
74
|
|
|
66
|
-
|
|
67
|
-
|
|
75
|
+
Each document is Markdown written for coding agents; loading one reads a document and performs no
|
|
76
|
+
protocol operation. `getProtocolSkill` throws for a slug absent from `listSkillSlugs()`. The
|
|
77
|
+
documents are the `sauce-protocols` agent skill's references
|
|
78
|
+
([`skills/sauce-protocols/references/`](../../skills/sauce-protocols/references/index.md)), the same
|
|
79
|
+
files `sauce skills install` puts in a project ([Agent skills](../guides/cli.md#agent-skills)), so the
|
|
80
|
+
text this export returns is the text an agent reads.
|
|
68
81
|
|
|
69
82
|
## Where each import runs
|
|
70
83
|
|
|
71
84
|
Every import runs in Node **24 or newer** and in a browser, with one exception:
|
|
72
85
|
`/svm/engine-artifacts` returns filesystem paths to the packaged engine binaries for a local
|
|
73
|
-
LiteSVM harness, and is Node-only.
|
|
86
|
+
LiteSVM harness, and is Node-only. The [`sauce` command](../guides/cli.md) is not an import at
|
|
87
|
+
all: it is the package's executable, and Node-only too.
|
|
74
88
|
|
|
75
89
|
Anything that compiles — `/compiler`, route compilation, the builders, the recipes, `/actions`,
|
|
76
90
|
`/svm/verify` — needs one `await ready()` first in a browser, while the compiler's WebAssembly
|
package/docs/api/compiler.md
CHANGED
|
@@ -19,9 +19,11 @@ import {
|
|
|
19
19
|
} from "@eco-incorp/sauce/compiler";
|
|
20
20
|
```
|
|
21
21
|
|
|
22
|
-
This SDK pins compiler
|
|
23
|
-
and
|
|
24
|
-
|
|
22
|
+
This SDK pins one compiler and the four v12 releases its output runs on: the EVM
|
|
23
|
+
engine and Kitchen, and the SVM engine and Kitchen. `v12ReleaseSet()` names them —
|
|
24
|
+
see [Which engine runs a program](#which-engine-runs-a-program). Release addresses
|
|
25
|
+
identify this compatible set; they do not confirm it has been deployed on a chain.
|
|
26
|
+
Check deployment readiness before using it live.
|
|
25
27
|
|
|
26
28
|
Every example here is checked against the compiler version this package ships.
|
|
27
29
|
|
|
@@ -96,10 +98,11 @@ specifier and let the compiler select the arm.
|
|
|
96
98
|
### The SDK's own modules
|
|
97
99
|
|
|
98
100
|
`resolveSdkModule(path)` and `resolveSdkPackage(specifier)` serve the files the SDK
|
|
99
|
-
ships, from memory, with the contracts above: the `@sauce/token`
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
101
|
+
ships, from memory, with the contracts above: the `@sauce/token` and
|
|
102
|
+
[`@sauce/router`](router.md) libraries, the `./artifacts/IERC20.json` and
|
|
103
|
+
`./artifacts/ISauceRouter.json` ABIs, and every protocol ABI as
|
|
104
|
+
`./protocols/<slug>/<Export>.json`. Fall back to them from your own resolver to compile
|
|
105
|
+
a program the SDK's builders emit, or one that imports either library:
|
|
103
106
|
|
|
104
107
|
```ts
|
|
105
108
|
const entry = new TextEncoder().encode(`
|
|
@@ -131,11 +134,15 @@ interface CompileResult {
|
|
|
131
134
|
|
|
132
135
|
- `bytecode` is one reusable program. Per-execution argument values have not been
|
|
133
136
|
appended.
|
|
134
|
-
- `isaRevision` labels the instruction set this artifact was built for.
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
137
|
+
- `isaRevision` labels the instruction set this artifact was built for. It is a
|
|
138
|
+
label, not a compatibility check: two engine releases can report the same
|
|
139
|
+
revision while only one of them runs a given compiler's output. Pair a program
|
|
140
|
+
with an engine by exact package version — see
|
|
141
|
+
[Which engine runs a program](#which-engine-runs-a-program).
|
|
142
|
+
- `entryEncoding` selects the argument encoder: ABI arguments by default, with
|
|
143
|
+
every tuple parameter behind an offset
|
|
144
|
+
([Pass arguments with ABI-v1](../guides/compiling.md#pass-arguments-with-abi-v1)),
|
|
145
|
+
compact arguments when `compactArgs: true`. It does not describe
|
|
139
146
|
[program return encoding](../guides/compiling.md#return-values-an-abi-decoder-can-read).
|
|
140
147
|
- `entrySchema` describes compact argument structure. Pass this exact schema to
|
|
141
148
|
the compact codec; do not infer or rebuild it from example bytes.
|
|
@@ -171,6 +178,40 @@ The subpath also exports `AccountEntry`, `AccountManifest`, `AccountRole`,
|
|
|
171
178
|
`CompileOptions`, `CompileResult`, `ResolveModule`, `ResolvePackage`, and
|
|
172
179
|
`SauceTarget` as types from the compiler package.
|
|
173
180
|
|
|
181
|
+
### Which engine runs a program
|
|
182
|
+
|
|
183
|
+
Compiler output and v12 engines pair by exact package version, in both
|
|
184
|
+
directions: a compiler's programs run only on the engine releases its row names,
|
|
185
|
+
and an engine runs only the output of the compiler its row names. A new compiler
|
|
186
|
+
release can change the instructions it emits for the same source, so an engine
|
|
187
|
+
from an earlier row can misread its programs, and an earlier compiler's programs
|
|
188
|
+
can fail on a newer engine. `V12_RELEASE_SETS` (from
|
|
189
|
+
`@eco-incorp/sauce/deployments`) holds one row per compiler version: the four v12
|
|
190
|
+
releases that compiler pairs with, each asset's digest, and each engine's
|
|
191
|
+
address or program id. The SDK pins one compiler and ships the engines of that
|
|
192
|
+
compiler's row, so `v12EngineAddress()` and `v12SvmEngineProgramId()` always
|
|
193
|
+
name engines that run the SDK's own programs.
|
|
194
|
+
|
|
195
|
+
Every SDK builder that names an engine — `v12Pot.encodeCook`,
|
|
196
|
+
`routes.buildSauceEvmCall`, the SVM engine instructions and the Kitchen cook
|
|
197
|
+
instructions — calls `assertEngineRunsCompiler(target, engine)` first. It throws
|
|
198
|
+
for an engine a release set names for another compiler, saying which engine
|
|
199
|
+
this compiler's output needs instead. An engine no release set names, such as
|
|
200
|
+
one you deployed yourself, is not refused: the SDK cannot tell what it is.
|
|
201
|
+
|
|
202
|
+
```ts
|
|
203
|
+
import { assertEngineRunsCompiler, v12ReleaseSet } from "@eco-incorp/sauce/deployments";
|
|
204
|
+
|
|
205
|
+
const set = v12ReleaseSet(); // this SDK's compiler and the four releases it pairs with
|
|
206
|
+
console.log(set.compiler, set["v12-evm"].version, set["v12-svm"].version);
|
|
207
|
+
assertEngineRunsCompiler("evm", set["v12-evm"].engine!); // passes: the pinned engine
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
`v12ReleaseSet(compiler)` returns another compiler's row, and throws for a
|
|
211
|
+
compiler no row pairs with. When you run programs from a different compiler
|
|
212
|
+
version than the SDK's, pass that version as the third argument:
|
|
213
|
+
`assertEngineRunsCompiler("evm", engine, compiler)`.
|
|
214
|
+
|
|
174
215
|
## Compact argument codec
|
|
175
216
|
|
|
176
217
|
```ts
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
# Contracts and tokens API
|
|
2
|
+
|
|
3
|
+
[API reference](README.md) · [Protocols and tokens](../guides/protocols-and-tokens.md) · [Coverage](coverage.md)
|
|
4
|
+
|
|
5
|
+
Every registry protocol is a namespace and every registered token a name, with the same names in a
|
|
6
|
+
program and in TypeScript. This page lists both surfaces; the
|
|
7
|
+
[guide](../guides/protocols-and-tokens.md) shows them in use.
|
|
8
|
+
|
|
9
|
+
| Registry entry | In a program | In TypeScript |
|
|
10
|
+
| -------------------------- | ----------------------------------------------- | ---------------------------------------------------- |
|
|
11
|
+
| A token | `USDC` | `Base.USDC` |
|
|
12
|
+
| A deployed contract | `UniswapV3.QuoterV2` | `Base.UniswapV3.QuoterV2` |
|
|
13
|
+
| Its method | `UniswapV3.QuoterV2.quoteExactInputSingle(...)` | `Base.UniswapV3.QuoterV2.quoteExactInputSingle(...)` |
|
|
14
|
+
| The ABI at another address | `UniswapV3.Factory.at(address).getPool(...)` | `Base.UniswapV3.Factory.at(address).getPool(...)` |
|
|
15
|
+
| An interface | `Erc4626.Vault(vault).deposit(...)` | `Base.Erc4626.Vault.at(vault).deposit(...)` |
|
|
16
|
+
| A family alias | `Uniswap.UniversalRouter` | `Base.Uniswap.UniversalRouter` |
|
|
17
|
+
| Another chain's address | `Arbitrum.UniswapV3.Factory` | `Arbitrum.UniswapV3.Factory` |
|
|
18
|
+
| Whether the chain has it | `available(UniswapV3.Factory)` | `Base.UniswapV3.Factory.available` |
|
|
19
|
+
|
|
20
|
+
## Names
|
|
21
|
+
|
|
22
|
+
- A namespace is the protocol's registry slug in PascalCase (`aerodrome-slipstream` →
|
|
23
|
+
`AerodromeSlipstream`).
|
|
24
|
+
- A deployed contract, and an address-only one, is named by its role in the protocol's
|
|
25
|
+
`addresses.ts`, first letter upper-cased, keeping its ABI name's spelling of the role's leading
|
|
26
|
+
words (`clFactory` under `SlipstreamCLFactoryABI` → `CLFactory`).
|
|
27
|
+
- An interface is named by its ABI export without `ABI` and the protocol's prefix
|
|
28
|
+
(`contracts.deriveContractName`), as is a role that runs different ABIs on different chains.
|
|
29
|
+
- A slug ending in `-v<N>` also joins the family `PascalOf(<rest>)`. A family carries a contract
|
|
30
|
+
only where exactly one member has one by that name; an ambiguous name is absent from its type and
|
|
31
|
+
throws when read.
|
|
32
|
+
- No protocol, family, token or venue name can collide with a chain export's own `route`, `chain`,
|
|
33
|
+
or a function property: composing the export refuses it.
|
|
34
|
+
|
|
35
|
+
## TypeScript: chain exports
|
|
36
|
+
|
|
37
|
+
`import { Base } from "@eco-incorp/sauce"` — one export per canonical chain — carries:
|
|
38
|
+
|
|
39
|
+
| Property | What it is |
|
|
40
|
+
| ---------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
41
|
+
| `Base(body, options)` | Opens an intent on Base; see [routes](routes.md#chain-entry-points) |
|
|
42
|
+
| `Base.chain`, `.route` | The chain record, and the same intent entry point |
|
|
43
|
+
| `Base.<Symbol>` | A registry token: a frozen `{ address, decimals, symbol, chain }` (`routes.RegistryToken`); on `Solana`, a registered mint, its `address` the mint's 32-byte key as hex and `mint` its base58 address |
|
|
44
|
+
| `Base.<Namespace>` | A protocol or family namespace, typed by the generated `contracts.ChainContracts` |
|
|
45
|
+
|
|
46
|
+
A chain's token properties are exactly its registry rows, and the type names only those: `Base.USDT`
|
|
47
|
+
is a type error and `undefined`. `routes.registryTokens(chain)` returns the same objects for a
|
|
48
|
+
chain chosen at run time, and `contracts.on(ref)` the same namespace tree.
|
|
49
|
+
|
|
50
|
+
## TypeScript: a contract
|
|
51
|
+
|
|
52
|
+
| Member | Type | Meaning |
|
|
53
|
+
| ------------------- | ------------------------------------- | ---------------------------------------------------------------------------------- |
|
|
54
|
+
| `address` | `` `0x${string}` `` or `undefined` | The deployment on this chain; `undefined` where there is none, or for an interface |
|
|
55
|
+
| `available` | `boolean` | Whether `address` is set |
|
|
56
|
+
| `chains` | `ChainSlug[]` | Every chain the registry has an address for |
|
|
57
|
+
| `abi`, `methods` | the ABI, `DescriptorMethod[]` | What the registry declares, with signatures and selectors |
|
|
58
|
+
| `coverage` | `ContractCoverage` | `caveats`: deployments that differ from the ABI, from the registry's evidence |
|
|
59
|
+
| `descriptor` | `ContractDescriptor` | The chain-independent registry entry |
|
|
60
|
+
| `at(address)` | the same contract, bound to `address` | Required before an interface's methods |
|
|
61
|
+
| `<method>(...args)` | `ContractCall` | One per ABI function, arguments typed by viem from the ABI |
|
|
62
|
+
|
|
63
|
+
An address-only contract (`contracts.AddressOnlyContract`) has no methods, and an interface
|
|
64
|
+
(`contracts.InterfaceContract`) has them only after `.at(address)`. Calling a method of a contract
|
|
65
|
+
with no deployment on the chain throws, naming the chains that have one.
|
|
66
|
+
|
|
67
|
+
## TypeScript: a call
|
|
68
|
+
|
|
69
|
+
A `ContractCall` is built synchronously and reads nothing.
|
|
70
|
+
|
|
71
|
+
| Member | Meaning |
|
|
72
|
+
| --------------------------- | ---------------------------------------------------------------------------------------------------------- |
|
|
73
|
+
| `chain`, `address` | Where it calls |
|
|
74
|
+
| `protocol`, `contract` | The registry entry |
|
|
75
|
+
| `method`, `args` | The ABI method (the overload, by argument count) and the arguments |
|
|
76
|
+
| `data`, `encode(options?)` | The calldata |
|
|
77
|
+
| `toCall(options?)` | `{ target, data, value }` |
|
|
78
|
+
| `toSauceScript(options?)` | The same call as a program, with its ABI import |
|
|
79
|
+
| `read(client)` | An `eth_call` through viem's `readContract`, resolving to the decoded outputs; sends nothing |
|
|
80
|
+
| `simulate(client, options)` | `simulateContract` as `options.account`, with `options.value`; resolves to `{ result, request }` |
|
|
81
|
+
| `write(client, options?)` | `writeContract` from `options.account` or the client's account, with `options.value`; resolves to the hash |
|
|
82
|
+
|
|
83
|
+
`read` exists on every call: a view's value, or what a state-changing method would return. `simulate`
|
|
84
|
+
and `write` exist on a state-changing method's call only, and throw on a view or pure one. All three
|
|
85
|
+
take a viem client the caller creates; the SDK embeds no RPC endpoint. Each first checks that the
|
|
86
|
+
client is on the call's chain — from `client.chain`, or by asking a client that has none for its
|
|
87
|
+
chain id once — and refuses one on another chain. viem's actions are imported on the first call.
|
|
88
|
+
|
|
89
|
+
## Programs
|
|
90
|
+
|
|
91
|
+
In a program, a namespace member is a Sauce scalar: a deployed or address-only contract is its
|
|
92
|
+
address on the chain the program is compiled for, a method call is an ABI call there, and
|
|
93
|
+
`.at(address).method(...)` calls the same ABI at `address`. An interface, which has no address of its
|
|
94
|
+
own, is called with one: `Erc4626.Vault(vault).deposit(...)` (`.at(vault)` too). A deployed
|
|
95
|
+
contract's name is never called with an address. `<Chain>.<Namespace>.<Contract>` reads
|
|
96
|
+
another chain's address, without moving execution there. A protocol with a single deployed
|
|
97
|
+
contract also takes its methods directly (`Cctp.depositForBurn(...)`).
|
|
98
|
+
|
|
99
|
+
`available(<contract or token symbol>)` is a compile-time `boolean`: whether the chain the program
|
|
100
|
+
is compiled for has it. A branch it rules out is removed before anything in it resolves; see
|
|
101
|
+
[use a venue only where the chain has it](../guides/protocols-and-tokens.md#use-a-venue-only-where-the-chain-has-it).
|
|
102
|
+
|
|
103
|
+
The declarations a typed closure checks against, for every namespace, token and `available`, ship
|
|
104
|
+
in the package root's types. The ERC-20 syntax for tokens is in the
|
|
105
|
+
[guide](../guides/protocols-and-tokens.md#token-methods-and-balances).
|
package/docs/api/coverage.md
CHANGED
|
@@ -4,62 +4,54 @@ The SDK carries several registries, and they answer different questions. "Is thi
|
|
|
4
4
|
catalog?" is not "can I call it by name in a program?", and neither is "is it deployed on my chain?".
|
|
5
5
|
Each of the three can be true without the others.
|
|
6
6
|
|
|
7
|
-
| Registry | Current scope
|
|
8
|
-
| -------------------------------- |
|
|
9
|
-
| Protocol catalog | 135 protocols with metadata, deployments, ABI fragments, and program templates
|
|
10
|
-
| Contract descriptors |
|
|
11
|
-
| Compiled-source protocol globals |
|
|
12
|
-
| Token symbols |
|
|
13
|
-
|
|
|
14
|
-
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
|
29
|
-
|
|
|
30
|
-
|
|
|
31
|
-
|
|
|
32
|
-
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
| `CompoundV3` | `CometUSDC`, `CometWETH`, `CometUSDT` |
|
|
42
|
-
|
|
43
|
-
Every descriptor declares its contract's deployed ABI types, so its selectors are the deployed
|
|
44
|
-
ones. `compile.accessors.allowWidenedSelectors` is still accepted, and no shipped descriptor needs
|
|
45
|
-
it.
|
|
46
|
-
|
|
47
|
-
Family aliases are `Uniswap`, `Sushiswap`, `Pancakeswap`, `Aave`, and `Compound`. A family exposes
|
|
48
|
-
a contract only when exactly one member owns its name. Consequently:
|
|
7
|
+
| Registry | Current scope | Inspect it |
|
|
8
|
+
| -------------------------------- | ------------------------------------------------------------------------------ | ---------------------------------------------------------------------- |
|
|
9
|
+
| Protocol catalog | 135 protocols with metadata, deployments, ABI fragments, and program templates | `listProtocols()`, `getProtocol(slug)`, `getProtocolsByChain(id)` |
|
|
10
|
+
| Contract descriptors | 316 descriptors across 135 protocol namespaces | `contracts.listDescriptors()`, `contracts.listContracts(slug)` |
|
|
11
|
+
| Compiled-source protocol globals | The same 135 protocol namespaces, plus 13 family aliases | TypeScript completion after importing `@eco-incorp/sauce`; names below |
|
|
12
|
+
| Token symbols | 1796 symbols distributed across 7 EVM chains, 1789 of them tokenized stocks | `routes.TOKEN_REGISTRY`, `routes.knownTokenSymbols(chain)` |
|
|
13
|
+
| Solana mints | 1803 mints on mainnet-beta, 1799 of them tokenized stocks | `routes.SVM_TOKEN_REGISTRY`, `routes.knownTokenSymbols(chain)` |
|
|
14
|
+
| Canonical chain identities | 41 chains: 40 EVM and Solana | `CANONICAL_CHAINS`, `requireChain(ref)` |
|
|
15
|
+
| EVM chain metadata | 34 records with native-currency and explorer information | `chains`, `getChain(id)`, `getAllChainIds()` |
|
|
16
|
+
|
|
17
|
+
Every catalog protocol is a namespace, in a program and in TypeScript: the descriptor registry is
|
|
18
|
+
generated from the same binding of addresses to ABIs that the registry's ABI evidence is checked
|
|
19
|
+
against, so a contract is exposed exactly as it is evidenced. `contracts.listDescriptors()` lists
|
|
20
|
+
them and `contracts.listContracts(slug)` one protocol's.
|
|
21
|
+
|
|
22
|
+
## Protocol namespaces
|
|
23
|
+
|
|
24
|
+
A namespace is its protocol's slug in PascalCase, and every one has a contract per registered
|
|
25
|
+
deployment role, plus its interfaces. The [contracts reference](contracts.md) has the naming rules
|
|
26
|
+
and both surfaces.
|
|
27
|
+
|
|
28
|
+
| Contract kind | Count | What it is |
|
|
29
|
+
| ----------------- | ----- | ----------------------------------------------------------------------------- |
|
|
30
|
+
| Deployed contract | 226 | An address per chain and a verified ABI: callable, and its address as a value |
|
|
31
|
+
| Address only | 51 | An address per chain with no verified ABI: usable as an address, no methods |
|
|
32
|
+
| Interface | 39 | An ABI with no fixed address: called with one, `Erc4626.Vault(vault)` |
|
|
33
|
+
|
|
34
|
+
A name existing does not mean the contract is deployed on your chain: `available(...)` in a program
|
|
35
|
+
and `.available` in TypeScript answer that, and naming an absent contract fails at compile or call
|
|
36
|
+
construction, listing the chains that have it.
|
|
37
|
+
|
|
38
|
+
Family aliases are `Aave`, `Balancer`, `Compound`, `Euler`, `Gmx`, `Liquity`, `Pancakeswap`,
|
|
39
|
+
`Sushiswap`, `Synthetix`, `Synthra`, `Uniswap`, `Unitflow` and `Yearn`. A family exposes a contract
|
|
40
|
+
only when exactly one member owns its name. Consequently:
|
|
49
41
|
|
|
50
42
|
- `Uniswap.UniversalRouter` resolves to `UniswapV4.UniversalRouter`.
|
|
51
|
-
- `Uniswap.Factory`
|
|
43
|
+
- `Uniswap.Factory` and `Pancakeswap.Factory` are ambiguous; use a versioned namespace.
|
|
52
44
|
- `UniswapV3.UniversalRouter` is absent from this registry.
|
|
53
45
|
- A family always requires a contract name, even when it has one protocol member.
|
|
54
46
|
|
|
55
|
-
A protocol with exactly one
|
|
56
|
-
`Cctp.depositForBurn(...)` or `AaveV3.supply(...)`.
|
|
57
|
-
[protocols and tokens](../guides/protocols-and-tokens.md) for argument conventions and examples.
|
|
47
|
+
A protocol with exactly one deployed contract also supports a shortcut in programs, such as
|
|
48
|
+
`Cctp.depositForBurn(...)` or `AaveV3.supply(...)`.
|
|
58
49
|
|
|
59
|
-
|
|
60
|
-
and
|
|
61
|
-
|
|
62
|
-
|
|
50
|
+
Every registry ABI declares its contract's deployed types, so its selectors are the deployed ones,
|
|
51
|
+
and is a subset of the contract's complete API. A `coverage.caveats` entry records a deployment the
|
|
52
|
+
evidence shows differs from its ABI — a bridged token without the L1 token's functions, a function
|
|
53
|
+
whose selector is checked but whose source is not verified. `compile.accessors.allowWidenedSelectors`
|
|
54
|
+
is still accepted, and no shipped descriptor needs it.
|
|
63
55
|
|
|
64
56
|
## Tokens
|
|
65
57
|
|
|
@@ -78,6 +70,51 @@ The exported `routes.TOKEN_REGISTRY` contains:
|
|
|
78
70
|
On Arc, `USDC` is the ERC-20 face of the chain's native coin, and `WETH` is bridged ETH rather than
|
|
79
71
|
a wrapped native. See [Arc: USDC is the native coin](#arc-usdc-is-the-native-coin).
|
|
80
72
|
|
|
73
|
+
### Tokenized stocks
|
|
74
|
+
|
|
75
|
+
Ethereum, Base and Solana also register tokenized stocks, which a program names by symbol like any
|
|
76
|
+
other token (`SPCXc.balanceOf(ctx.self())` on Base, `balanceOf(TSLAx, account)` on Solana). Each list
|
|
77
|
+
is copied from its issuer's own published list and every row is checked on chain; a stock row
|
|
78
|
+
carries `stock`, its issuer, name and ticker:
|
|
79
|
+
|
|
80
|
+
| Chain | ID | Issuer | Tokens | For example |
|
|
81
|
+
| -------- | ---------- | --------------------------------- | ------ | ------------------------------- |
|
|
82
|
+
| Ethereum | 1 | Backed (xStocks, and its bTokens) | 1280 | `TSLAx`, `SPCXx`, `bTSLA` |
|
|
83
|
+
| Ethereum | 1 | Ondo Global Markets | 450 | `TSLAon`, `SPCXon`, `SPYon` |
|
|
84
|
+
| Ethereum | 1 | Mt Pelerin (its own shares) | 1 | `MPS` |
|
|
85
|
+
| Base | 8453 | Coinbase | 58 | `TSLAc`, `SPCXc`, `NVDAc` |
|
|
86
|
+
| Base | 8453 | Backed (its bTokens) | 9 | `bTSLA`, `bNVDA`, `bCOIN` |
|
|
87
|
+
| Solana | 1399811149 | Backed (xStocks) | 1271 | `TSLAx`, `SPCXx`, `BRK_Bx` |
|
|
88
|
+
| Solana | 1399811149 | Ondo Global Markets | 450 | `TSLAon`, `SPCXon`, `SPYon` |
|
|
89
|
+
| Solana | 1399811149 | Backpack Securities | 69 | `NVDA_US`, `SPCX_US`, `MSTR_US` |
|
|
90
|
+
| Solana | 1399811149 | PreStocks (private companies) | 9 | `SPACEX`, `OPENAI`, `ANTHROPIC` |
|
|
91
|
+
|
|
92
|
+
A stock's symbol is its issuer's ticker for the token, which is not always uppercase, with a `.`
|
|
93
|
+
written `_` (`BRK.Bx` is `BRK_Bx`, Backpack's `NVDA.US` is `NVDA_US`); PreStocks' is the company's
|
|
94
|
+
name (`SPACEX`). In a program and an actions document it is case-sensitive; the
|
|
95
|
+
command line matches it without regard to case. `sauce globals --chain <chain>` counts a chain's
|
|
96
|
+
stock tokens, `--stocks` lists them and `--search <text>` finds one by symbol, company name or
|
|
97
|
+
ticker (`sauce_globals` takes `stocks` and `search` too, a page of 200 tokens at a time).
|
|
98
|
+
|
|
99
|
+
Any contract, a Pot included, can hold and swap them: only minting and redeeming with the issuer
|
|
100
|
+
need KYC. An issuer can pause its token or refuse a sanctioned address. Backed's tokens rebase: a
|
|
101
|
+
balance changes between transactions, never within one, and a transfer can credit one unit less
|
|
102
|
+
than sent, so paying one into a pool that checks what it received can fail. Ondo's keep their
|
|
103
|
+
balance while dividends raise the shares each token stands for. Coinbase's are B20 tokens built into
|
|
104
|
+
the Base node, so they run on Base but not in a local EVM such as anvil: `sauce simulate` against
|
|
105
|
+
Base rehearses them, and `--assume-balance` cannot give one, since no state override reaches a B20
|
|
106
|
+
balance.
|
|
107
|
+
|
|
108
|
+
On Solana each is a Token-2022 mint, registered with `tokenProgram` set to Token-2022: the symbol is
|
|
109
|
+
the mint's 32-byte key, and a program moves one with `@sauce/token`'s checked writes
|
|
110
|
+
(`transferChecked`, `approveChecked`). Every row is checked on chain: owned by Token-2022,
|
|
111
|
+
initialized, with its decimals and its issuer's symbol in its own metadata, and no transfer hook that
|
|
112
|
+
names a program, which the token functions refuse. Amounts are raw; the issuer's multiplier (the
|
|
113
|
+
scaled UI amount) is for display and moves for corporate actions. PreStocks' mints charge a transfer
|
|
114
|
+
fee, so the recipient gets less than was sent: a program measures the balance change. Backpack lists
|
|
115
|
+
mints it has not opened yet, which are left out, as are Superstate's, which only an allowlisted
|
|
116
|
+
holder can hold.
|
|
117
|
+
|
|
81
118
|
A missing symbol means the registry has no verified row under that name. Token variants can have
|
|
82
119
|
different symbols and addresses. `IntentOptions.tokenDefines` or `SauceCompileOptions.tokens`
|
|
83
120
|
can override or add a chain-local mapping. Amounts are integer token units; the compiler does not
|
|
@@ -129,10 +166,13 @@ Arc (chain 5042) pays gas in USDC, and it has **one USDC balance with two decima
|
|
|
129
166
|
a target.
|
|
130
167
|
- **Native value can be refused.** A value transfer to the zero address, to or from a
|
|
131
168
|
blocklisted address, or to a self-destructed account reverts, including one a contract forwards.
|
|
169
|
+
- **A reward offers native value or `USDC`, not both.** Arc's eco-routes Portal treats the native
|
|
170
|
+
coin and the `USDC` ERC-20 as one asset, so an intent reward with a `nativeAmount` and a `USDC`
|
|
171
|
+
token leg reverts `RewardTokensNotUnique(USDC)` when it is published or funded. The SDK refuses
|
|
172
|
+
such a reward when it is built, before anything is signed: fold the two into one leg.
|
|
132
173
|
|
|
133
|
-
An intent to Arc
|
|
134
|
-
|
|
135
|
-
[Arc's Pot](../guides/intents.md#arcs-pot).
|
|
174
|
+
An intent to Arc uses the same Portal, Executor and derived Pot as every other chain; see
|
|
175
|
+
[One Portal, one Pot](../guides/intents.md#one-portal-one-pot).
|
|
136
176
|
|
|
137
177
|
## Host discovery and chain coverage
|
|
138
178
|
|
|
@@ -149,10 +189,9 @@ const resolved = contracts.describeContract("base", "uniswap-v4", "UniversalRout
|
|
|
149
189
|
const onBase = contracts.contractsOnChain("base");
|
|
150
190
|
```
|
|
151
191
|
|
|
152
|
-
Host accessors such as `Base.Uniswap.UniversalRouter` and `contracts.on(...)` build
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
protocol names _inside_ a compiled program are different: those do have generated ABI method types.
|
|
192
|
+
Host accessors such as `Base.Uniswap.UniversalRouter` and `contracts.on(...)` build `ContractCall`
|
|
193
|
+
objects when their methods are invoked, typed from the contract's ABI, and run them against a viem
|
|
194
|
+
client you pass; see the [contracts reference](contracts.md).
|
|
156
195
|
|
|
157
196
|
Use `requireChain` for route identities. `getChain` is a separate metadata lookup with
|
|
158
197
|
native-currency and explorer details, and it covers fewer chains: Unichain, Monad, Sonic, Ronin,
|