@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/actions/dist/abis.d.ts
CHANGED
|
@@ -9,7 +9,8 @@
|
|
|
9
9
|
* does not have. The registry's own suite (`sdk/test/registry-abi.test.ts`) pins each of its
|
|
10
10
|
* functions to the deployed contracts. Where the registry has no such function — the contract is
|
|
11
11
|
* not in it, or it declares another overload — the binding declares its fragment here and says why
|
|
12
|
-
* next to it.
|
|
12
|
+
* next to it. A swap at one of `@sauce/router`'s venues binds nothing here: it is a call into that
|
|
13
|
+
* library, which carries the pool and Router ABIs it calls.
|
|
13
14
|
*
|
|
14
15
|
* WHY OUTPUTS ARE DROPPED. A binding decodes every output its ABI declares, even one the program
|
|
15
16
|
* never reads, and decoding from empty return data reverts. 3pool-era Curve pools return nothing
|
|
@@ -65,21 +66,10 @@ declare const CATALOG: {
|
|
|
65
66
|
withdraw: BoundMethod;
|
|
66
67
|
deposit: BoundMethod;
|
|
67
68
|
};
|
|
68
|
-
ISwapRouter02: () => {
|
|
69
|
-
exactInputSingle: BoundMethod;
|
|
70
|
-
exactInput: BoundMethod;
|
|
71
|
-
};
|
|
72
|
-
IUniversalRouter: () => {
|
|
73
|
-
execute: BoundMethod;
|
|
74
|
-
};
|
|
75
|
-
ICurvePool: () => {
|
|
76
|
-
exchange: BoundMethod;
|
|
77
|
-
};
|
|
78
69
|
ICurveRouterNG: () => {
|
|
79
70
|
exchange: BoundMethod;
|
|
80
71
|
};
|
|
81
72
|
IBalancerV2Vault: () => {
|
|
82
|
-
swap: BoundMethod;
|
|
83
73
|
batchSwap: BoundMethod;
|
|
84
74
|
};
|
|
85
75
|
IBalancerV3Router: () => {
|
|
@@ -92,13 +82,8 @@ declare const CATALOG: {
|
|
|
92
82
|
userCmd: BoundMethod;
|
|
93
83
|
};
|
|
94
84
|
IDodoProxy: () => {
|
|
95
|
-
dodoSwapV2TokenToToken: BoundMethod;
|
|
96
85
|
dodoSwapV1: BoundMethod;
|
|
97
86
|
};
|
|
98
|
-
IMaverickV2Router: () => {
|
|
99
|
-
exactInputSingle: BoundMethod;
|
|
100
|
-
exactInputMultiHop: BoundMethod;
|
|
101
|
-
};
|
|
102
87
|
ICarbonController: () => {
|
|
103
88
|
tradeBySourceAmount: BoundMethod;
|
|
104
89
|
};
|
|
@@ -148,6 +133,22 @@ declare const CATALOG: {
|
|
|
148
133
|
quoteGasPayment: BoundMethod;
|
|
149
134
|
transferRemote: BoundMethod;
|
|
150
135
|
};
|
|
136
|
+
IUniswapV2Factory: () => {
|
|
137
|
+
getPair: BoundMethod;
|
|
138
|
+
};
|
|
139
|
+
IUniswapV3Factory: () => {
|
|
140
|
+
getPool: BoundMethod;
|
|
141
|
+
};
|
|
142
|
+
ISlipstreamFactory: () => {
|
|
143
|
+
getPool: BoundMethod;
|
|
144
|
+
};
|
|
145
|
+
ILBFactory: () => {
|
|
146
|
+
getLBPairInformation: BoundMethod;
|
|
147
|
+
};
|
|
148
|
+
ILBPair: () => {
|
|
149
|
+
getTokenX: BoundMethod;
|
|
150
|
+
getTokenY: BoundMethod;
|
|
151
|
+
};
|
|
151
152
|
IPermit2: () => {
|
|
152
153
|
approve: BoundMethod;
|
|
153
154
|
};
|
|
@@ -161,7 +162,7 @@ export declare function bindingMethods(binding: BindingName): Readonly<Record<st
|
|
|
161
162
|
export declare const BINDING_NAMES: BindingName[];
|
|
162
163
|
/** The 4-byte selector of a binding's method, from the same fragment the binding compiles with. */
|
|
163
164
|
export declare function methodSelector<B extends BindingName>(binding: B, method: MethodName<B>): Hex;
|
|
164
|
-
/** The `contracts` map a program naming `bindings` compiles with. */
|
|
165
|
+
/** The `contracts` map a program naming `bindings` compiles with — one ABI per name. */
|
|
165
166
|
export declare function contractsFor(bindings: Iterable<BindingName>): ActionContracts;
|
|
166
167
|
export {};
|
|
167
168
|
//# sourceMappingURL=abis.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abis.d.ts","sourceRoot":"","sources":["../src/abis.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"abis.d.ts","sourceRoot":"","sources":["../src/abis.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,OAAO,EAGL,KAAK,WAAW,EAEhB,KAAK,GAAG,EACT,MAAM,MAAM,CAAC;AAad,yGAAyG;AACzG,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,GAAG,EAAE,WAAW,EAAE,CAAC;CAC7B;AAED,iEAAiE;AACjE,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;AAE7D,6FAA6F;AAC7F,MAAM,MAAM,YAAY,GACpB;IAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAC/E;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAExD,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,EAAE,WAAW,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;CAC/B;AAED,gGAAgG;AAChG,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,QAAQ,CAAC,GAAG,MAAM,CAEnF;AAgBD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,SAAS,OAAO,EAAE,EACvB,SAAS,EAAE,MAAM,GAChB,WAAW,CAgBb;AAyBD;;;;GAIG;AACH,QAAA,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwNgD,CAAC;AAE9D,MAAM,MAAM,WAAW,GAAG,MAAM,OAAO,OAAO,CAAC;AAC/C,KAAK,SAAS,CAAC,CAAC,SAAS,WAAW,IAAI,UAAU,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxE,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,WAAW,IAAI,MAAM,SAAS,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;AAI5E,yEAAyE;AACzE,wBAAgB,cAAc,CAAC,OAAO,EAAE,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAQ1F;AAED,uDAAuD;AACvD,eAAO,MAAM,aAAa,EAA2B,WAAW,EAAE,CAAC;AAEnE,mGAAmG;AACnG,wBAAgB,cAAc,CAAC,CAAC,SAAS,WAAW,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,GAAG,CAE5F;AAED,wFAAwF;AACxF,wBAAgB,YAAY,CAAC,QAAQ,EAAE,QAAQ,CAAC,WAAW,CAAC,GAAG,eAAe,CAO7E"}
|
package/actions/dist/abis.js
CHANGED
|
@@ -9,7 +9,8 @@
|
|
|
9
9
|
* does not have. The registry's own suite (`sdk/test/registry-abi.test.ts`) pins each of its
|
|
10
10
|
* functions to the deployed contracts. Where the registry has no such function — the contract is
|
|
11
11
|
* not in it, or it declares another overload — the binding declares its fragment here and says why
|
|
12
|
-
* next to it.
|
|
12
|
+
* next to it. A swap at one of `@sauce/router`'s venues binds nothing here: it is a call into that
|
|
13
|
+
* library, which carries the pool and Router ABIs it calls.
|
|
13
14
|
*
|
|
14
15
|
* WHY OUTPUTS ARE DROPPED. A binding decodes every output its ABI declares, even one the program
|
|
15
16
|
* never reads, and decoding from empty return data reverts. 3pool-era Curve pools return nothing
|
|
@@ -26,11 +27,10 @@
|
|
|
26
27
|
*/
|
|
27
28
|
import { parseAbiItem, toFunctionSelector, } from "viem";
|
|
28
29
|
import { AaveV3PoolABI, AcrossSpokePoolABI, BalancerV2VaultABI, CometABI } from "./registry.js";
|
|
29
|
-
import { CrocSwapDexABI, CurveRouterNGABI,
|
|
30
|
-
import {
|
|
31
|
-
import {
|
|
32
|
-
import {
|
|
33
|
-
import { UniswapV4UniversalRouterABI, WstETHABI } from "./registry.js";
|
|
30
|
+
import { CrocSwapDexABI, CurveRouterNGABI, ERC20ABI, LidoABI } from "./registry.js";
|
|
31
|
+
import { LiquidityPoolABI, Permit2ABI, RETHABI, RocketDepositPoolABI } from "./registry.js";
|
|
32
|
+
import { StargatePoolABI, TokenMessengerABI, UniswapV2RouterABI, WstETHABI } from "./registry.js";
|
|
33
|
+
import { LBFactoryABI, SlipstreamCLFactoryABI, UniswapV2FactoryABI, UniswapV3FactoryABI, } from "./registry.js";
|
|
34
34
|
/** The canonical `name(type,...)` signature, tuples expanded — the string a selector hashes. */
|
|
35
35
|
export function canonicalSignature(fn) {
|
|
36
36
|
return `${fn.name}(${fn.inputs.map(canonicalType).join(",")})`;
|
|
@@ -89,26 +89,11 @@ const CATALOG = {
|
|
|
89
89
|
withdraw: local("function withdraw(uint256 wad)", `WETH9 is ${NOT_IN_REGISTRY}`),
|
|
90
90
|
deposit: local("function deposit() payable", `WETH9 is ${NOT_IN_REGISTRY}`),
|
|
91
91
|
}),
|
|
92
|
-
// Both return the amount they swapped out, which is the action's output.
|
|
93
|
-
ISwapRouter02: () => ({
|
|
94
|
-
exactInputSingle: sdk("uniswap-v3", "UniswapV3SwapRouter02ABI", UniswapV3SwapRouter02ABI, "exactInputSingle((address,address,uint24,address,uint256,uint256,uint160))", "keep"),
|
|
95
|
-
exactInput: sdk("uniswap-v3", "UniswapV3SwapRouter02ABI", UniswapV3SwapRouter02ABI, "exactInput((bytes,address,uint256,uint256))", "keep"),
|
|
96
|
-
}),
|
|
97
|
-
IUniversalRouter: () => ({
|
|
98
|
-
// The deadline-free overload: these actions carry no deadline. It returns nothing.
|
|
99
|
-
execute: sdk("uniswap-v4", "UniswapV4UniversalRouterABI", UniswapV4UniversalRouterABI, "execute(bytes,bytes[])", "drop"),
|
|
100
|
-
}),
|
|
101
|
-
ICurvePool: () => ({
|
|
102
|
-
// 3pool's `exchange` returns nothing, and a StableSwap-NG pool's `uint256` return is simply not
|
|
103
|
-
// decoded: this output-free spelling suits every 4-argument pool. The output is a balance delta.
|
|
104
|
-
exchange: sdk("curve", "CurveThreePoolABI", CurveThreePoolABI, "exchange(int128,int128,uint256,uint256)", "drop"),
|
|
105
|
-
}),
|
|
106
92
|
ICurveRouterNG: () => ({
|
|
107
93
|
// The six-argument overload, which takes a receiver. Its return is the amount received.
|
|
108
94
|
exchange: sdk("curve", "CurveRouterNGABI", CurveRouterNGABI, "exchange(address[11],uint256[5][5],uint256,uint256,address[5],address)", "keep"),
|
|
109
95
|
}),
|
|
110
96
|
IBalancerV2Vault: () => ({
|
|
111
|
-
swap: sdk("balancer-v2", "BalancerV2VaultABI", BalancerV2VaultABI, "swap((bytes32,uint8,address,address,uint256,bytes),(address,bool,address,bool),uint256,uint256)", "keep"),
|
|
112
97
|
// Its output is measured as a balance delta, so the `int256[]` deltas it returns are not decoded.
|
|
113
98
|
batchSwap: sdk("balancer-v2", "BalancerV2VaultABI", BalancerV2VaultABI, "batchSwap(uint8,(bytes32,uint256,uint256,uint256,bytes)[],address[],(address,bool,address,bool),int256[],uint256)", "drop"),
|
|
114
99
|
}),
|
|
@@ -116,21 +101,15 @@ const CATALOG = {
|
|
|
116
101
|
swapSingleTokenExactIn: local("function swapSingleTokenExactIn(address pool, address tokenIn, address tokenOut, uint256 exactAmountIn, uint256 minAmountOut, uint256 deadline, bool wethIsEth, bytes userData) payable returns (uint256 amountOut)", `Balancer V3 is ${NOT_IN_REGISTRY}`),
|
|
117
102
|
}),
|
|
118
103
|
IUniswapV2Router: () => ({
|
|
119
|
-
// Fraxswap's router is UniswapV2-compatible for this function
|
|
104
|
+
// `fraxswapSwap`'s: Fraxswap's router is UniswapV2-compatible for this function.
|
|
120
105
|
swapExactTokensForTokens: sdk("uniswap-v2", "UniswapV2RouterABI", UniswapV2RouterABI, "swapExactTokensForTokens(uint256,uint256,address[],address,uint256)", "drop"),
|
|
121
106
|
}),
|
|
122
107
|
ICrocSwapDex: () => ({
|
|
123
108
|
userCmd: sdk("ambient", "CrocSwapDexABI", CrocSwapDexABI, "userCmd(uint16,bytes)", "drop"),
|
|
124
109
|
}),
|
|
125
110
|
IDodoProxy: () => ({
|
|
126
|
-
dodoSwapV2TokenToToken: sdk("dodo", "DODOV2ProxyABI", DODOV2ProxyABI, "dodoSwapV2TokenToToken(address,address,uint256,uint256,address[],uint256,bool,uint256)", "keep"),
|
|
127
111
|
dodoSwapV1: local("function dodoSwapV1(address fromToken, address toToken, uint256 fromTokenAmount, uint256 minReturnAmount, address[] dodoPairs, uint256 directions, bool isIncentive, uint256 deadLine) payable returns (uint256 returnAmount)", "the registry declares only the proxy's V2 entry point"),
|
|
128
112
|
}),
|
|
129
|
-
IMaverickV2Router: () => ({
|
|
130
|
-
// The registry and the previous raw call both read the first return word as the output.
|
|
131
|
-
exactInputSingle: sdk("maverick", "MaverickV2RouterABI", MaverickV2RouterABI, "exactInputSingle(address,address,bool,uint256,uint256)", "keep"),
|
|
132
|
-
exactInputMultiHop: local("function exactInputMultiHop(address recipient, bytes path, uint256 amountIn, uint256 amountOutMinimum) payable returns (uint256 amountOut)", "the registry declares only the single-pool entry point"),
|
|
133
|
-
}),
|
|
134
113
|
ICarbonController: () => ({
|
|
135
114
|
tradeBySourceAmount: local("function tradeBySourceAmount(address sourceToken, address targetToken, (uint256 strategyId, uint128 amount)[] tradeActions, uint256 deadline, uint128 minReturn) payable returns (uint128)", `Carbon is ${NOT_IN_REGISTRY}`),
|
|
136
115
|
}),
|
|
@@ -185,6 +164,27 @@ const CATALOG = {
|
|
|
185
164
|
transferRemote: local("function transferRemote(uint32 destination, bytes32 recipient, uint256 amountOrId) payable", `${reason}; the message id it returns is never read`),
|
|
186
165
|
};
|
|
187
166
|
},
|
|
167
|
+
// A pool given by its key: the factory's lookup, called at a factory given by address. A factory
|
|
168
|
+
// given by name is called through its namespace instead, with the registry's own ABI for it.
|
|
169
|
+
IUniswapV2Factory: () => ({
|
|
170
|
+
getPair: sdk("uniswap-v2", "UniswapV2FactoryABI", UniswapV2FactoryABI, "getPair(address,address)", "keep"),
|
|
171
|
+
}),
|
|
172
|
+
IUniswapV3Factory: () => ({
|
|
173
|
+
getPool: sdk("uniswap-v3", "UniswapV3FactoryABI", UniswapV3FactoryABI, "getPool(address,address,uint24)", "keep"),
|
|
174
|
+
}),
|
|
175
|
+
ISlipstreamFactory: () => ({
|
|
176
|
+
getPool: sdk("aerodrome-slipstream", "SlipstreamCLFactoryABI", SlipstreamCLFactoryABI, "getPool(address,address,int24)", "keep"),
|
|
177
|
+
}),
|
|
178
|
+
ILBFactory: () => ({
|
|
179
|
+
getLBPairInformation: sdk("trader-joe", "LBFactoryABI", LBFactoryABI, "getLBPairInformation(address,address,uint256)", "keep"),
|
|
180
|
+
}),
|
|
181
|
+
ILBPair: () => {
|
|
182
|
+
const reason = "the registry carries Trader Joe's router and factory, not the LB pair";
|
|
183
|
+
return {
|
|
184
|
+
getTokenX: local("function getTokenX() view returns (address tokenX)", reason),
|
|
185
|
+
getTokenY: local("function getTokenY() view returns (address tokenY)", reason),
|
|
186
|
+
};
|
|
187
|
+
},
|
|
188
188
|
IPermit2: () => ({
|
|
189
189
|
approve: sdk("permit2", "Permit2ABI", Permit2ABI, "approve(address,address,uint160,uint48)", "drop"),
|
|
190
190
|
}),
|
|
@@ -205,7 +205,7 @@ export const BINDING_NAMES = Object.keys(CATALOG);
|
|
|
205
205
|
export function methodSelector(binding, method) {
|
|
206
206
|
return toFunctionSelector(bindingMethods(binding)[method].fn);
|
|
207
207
|
}
|
|
208
|
-
/** The `contracts` map a program naming `bindings` compiles with. */
|
|
208
|
+
/** The `contracts` map a program naming `bindings` compiles with — one ABI per name. */
|
|
209
209
|
export function contractsFor(bindings) {
|
|
210
210
|
const out = {};
|
|
211
211
|
for (const binding of [...new Set(bindings)].sort()) {
|
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
* compile shares the SDK's wasm instance and its `ready()`: in a browser, `await ready()` from
|
|
4
4
|
* `@eco-incorp/sauce` or `@eco-incorp/sauce/compiler` once, and every compile here works.
|
|
5
5
|
*
|
|
6
|
-
* A generated program
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
6
|
+
* A generated program's ABI bindings are handed to the compiler in memory as `inlineContracts`. The
|
|
7
|
+
* one module it may import is `@sauce/router`, for a swap at one of that library's venues, and the
|
|
8
|
+
* SDK serves it — and the `@sauce/token` and pool ABIs it imports in turn — from memory
|
|
9
|
+
* (`resolveSdkPackage`, `resolveSdkModule`), so no caller resolver and no filesystem is involved.
|
|
10
10
|
*/
|
|
11
11
|
import type { CompileResult } from "sauce-compiler";
|
|
12
12
|
import type { ActionContracts } from "./abis.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compile.d.ts","sourceRoot":"","sources":["../src/compile.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAKpD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"compile.d.ts","sourceRoot":"","sources":["../src/compile.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAKpD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAKjD,MAAM,WAAW,iBAAiB;IAChC,8DAA8D;IAC9D,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;CAChC;AAED,4FAA4F;AAC5F,wBAAgB,UAAU,CACxB,MAAM,EAAE,MAAM,EACd,SAAS,GAAE,eAAoB,EAC/B,OAAO,GAAE,iBAAsB,GAC9B,aAAa,CAcf"}
|
package/actions/dist/compile.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
// By relative path into the SDK's build, like `registry.ts`: in the published tarball `actions/dist`
|
|
2
2
|
// and `sdk/dist` are siblings.
|
|
3
3
|
import { compile } from "../../sdk/dist/wasm-compiler.js";
|
|
4
|
+
import { resolveSdkModule, resolveSdkPackage } from "./registry.js";
|
|
4
5
|
const ENTRY = "main.js";
|
|
5
6
|
/** Compiles a generated SauceScript program, and the ABI bindings it names, for the EVM. */
|
|
6
7
|
export function compileEvm(source, contracts = {}, options = {}) {
|
|
@@ -9,7 +10,8 @@ export function compileEvm(source, contracts = {}, options = {}) {
|
|
|
9
10
|
return compile({
|
|
10
11
|
target: "evm",
|
|
11
12
|
entry: ENTRY,
|
|
12
|
-
resolve: (path) => (path === ENTRY ? bytes :
|
|
13
|
+
resolve: (path) => (path === ENTRY ? bytes : resolveSdkModule(path)),
|
|
14
|
+
resolvePackage: (specifier) => resolveSdkPackage(specifier),
|
|
13
15
|
inlineContracts: inlineContracts.length > 0 ? inlineContracts : undefined,
|
|
14
16
|
compactArgs: options.compactArgs,
|
|
15
17
|
});
|
|
@@ -1,7 +1,16 @@
|
|
|
1
|
+
import { type CanonicalChain, type ChainRef } from "../../sdk/dist/chains/canonical.js";
|
|
1
2
|
import { type IntentOptions, type PendingSauceRoute } from "../../sdk/dist/routes/index.js";
|
|
2
3
|
import type { ActionContracts } from "./abis.js";
|
|
4
|
+
import { type Lowered } from "./to-sauce.js";
|
|
3
5
|
import type { ActionProgram } from "./types.js";
|
|
4
6
|
export interface CompileOptions {
|
|
7
|
+
/**
|
|
8
|
+
* The chain to compile for — a slug (`"base"`), a chain id (`8453`) or a canonical chain — whose
|
|
9
|
+
* names the program's token symbols and namespace references resolve to. Defaults to the
|
|
10
|
+
* document's `chainId`; a document without one needs it, and one with a `chainId` compiles for
|
|
11
|
+
* that chain only.
|
|
12
|
+
*/
|
|
13
|
+
readonly chain?: ChainRef;
|
|
5
14
|
/** Encode the runtime arguments compact-v1 instead of ABI-v1. Default `false`. */
|
|
6
15
|
readonly compactArgs?: boolean;
|
|
7
16
|
}
|
|
@@ -16,8 +25,13 @@ export interface ArgumentEncoding {
|
|
|
16
25
|
}
|
|
17
26
|
export interface CompiledProgram {
|
|
18
27
|
readonly bytecode: Uint8Array;
|
|
19
|
-
/**
|
|
28
|
+
/**
|
|
29
|
+
* The SauceScript the actions lowered to, with every name as written — `USDC`,
|
|
30
|
+
* `UniswapV3.Factory.getPool(...)` — which the compile resolved on its chain.
|
|
31
|
+
*/
|
|
20
32
|
readonly source: string;
|
|
33
|
+
/** The ABI bindings `source` calls through (`IErc20`, `IAaveV3Pool`), handed to its compile. */
|
|
34
|
+
readonly contracts: ActionContracts;
|
|
21
35
|
/** The `argument` names, in the order `main` takes them. Empty when there are none. */
|
|
22
36
|
readonly parameters: readonly string[];
|
|
23
37
|
readonly entryEncoding: "abi-v1" | "compact-v1";
|
|
@@ -32,15 +46,58 @@ export interface CompiledProgram {
|
|
|
32
46
|
*/
|
|
33
47
|
argumentOffset(name: string, encoding?: ArgumentEncoding): number;
|
|
34
48
|
}
|
|
35
|
-
/**
|
|
49
|
+
/** An action program checked for one chain and lowered: what both compiles start from. */
|
|
50
|
+
export interface LoweredProgram {
|
|
51
|
+
readonly chain: CanonicalChain;
|
|
52
|
+
/** The program as parsed: canonical, every name as written. */
|
|
53
|
+
readonly program: ActionProgram;
|
|
54
|
+
readonly lowered: Lowered;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Parses `program`, checks every name it uses — and the rules its resolved addresses must keep
|
|
58
|
+
* (no swap of a token for itself, a chain's native-coin rules) — on the chain it compiles for, and
|
|
59
|
+
* lowers it. Throws a `ProgramError` listing every problem with its path.
|
|
60
|
+
*/
|
|
61
|
+
export declare function lowerProgram(program: ActionProgram, chain?: ChainRef): LoweredProgram;
|
|
62
|
+
/** An action program as the SauceScript it lowers to on one chain: what `sauce actions` prints. */
|
|
63
|
+
export interface ProgramSource {
|
|
64
|
+
readonly chain: CanonicalChain;
|
|
65
|
+
/** The document as parsed: canonical, every name as written. */
|
|
66
|
+
readonly program: ActionProgram;
|
|
67
|
+
/** A standalone program, `main`'s parameters typed — the source `compileProgram` compiles. */
|
|
68
|
+
readonly source: string;
|
|
69
|
+
/** The ABI bindings `source` calls through, which its compile takes as `contracts`. */
|
|
70
|
+
readonly contracts: ActionContracts;
|
|
71
|
+
/** The `argument` names, in the order `main` takes them. */
|
|
72
|
+
readonly parameters: readonly string[];
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* The SauceScript an action program lowers to for `chain` (else its `chainId`), checked there but
|
|
76
|
+
* not compiled: with `contracts`, `routes.compileSauceProgram(chain, source, { contracts })`
|
|
77
|
+
* compiles it to the bytes `compileProgram` returns. The `sauce` command's `actions` reads this,
|
|
78
|
+
* and hands the source to the compile and cook every other program goes through.
|
|
79
|
+
*/
|
|
80
|
+
export declare function programSource(program: ActionProgram, chain?: ChainRef): ProgramSource;
|
|
81
|
+
/**
|
|
82
|
+
* Compiles an action program standalone, for `options.chain` or its own `chainId`. Its `argument`
|
|
83
|
+
* actions become runtime arguments.
|
|
84
|
+
*/
|
|
36
85
|
export declare function compileProgram(program: ActionProgram, options?: CompileOptions): CompiledProgram;
|
|
37
|
-
/** Compiles generated source into a `CompiledProgram`. */
|
|
38
|
-
export declare function compiled(source: string, contracts: ActionContracts, parameters: readonly string[], options?: CompileOptions): CompiledProgram;
|
|
39
86
|
/**
|
|
40
|
-
*
|
|
87
|
+
* Compiles generated source into a `CompiledProgram`: for `chain` with its names, through the SDK's
|
|
88
|
+
* program compile, or — a split swap with no chain, whose source holds only addresses — directly.
|
|
89
|
+
*/
|
|
90
|
+
export declare function compiled(source: string, contracts: ActionContracts, parameters: readonly string[], options?: CompileOptions, chain?: CanonicalChain): CompiledProgram;
|
|
91
|
+
/** `programIntent`'s options: an intent's, and the chain its route runs on. */
|
|
92
|
+
export type ProgramIntentOptions = IntentOptions & {
|
|
93
|
+
/** The route's chain, whose names the program resolves; defaults to the document's `chainId`. */
|
|
94
|
+
readonly chain?: ChainRef;
|
|
95
|
+
};
|
|
96
|
+
/**
|
|
97
|
+
* An action program as an Eco intent route on its chain (`options.chain`, else its `chainId`):
|
|
41
98
|
* `programIntent(program, options).reward(reward)` is `Base(body, options).reward(reward)` with the
|
|
42
99
|
* program as the body. Moving value to another chain is a bridge action inside the program, or a
|
|
43
100
|
* nested intent (`.nest(...)`) on the returned route.
|
|
44
101
|
*/
|
|
45
|
-
export declare function programIntent(program: ActionProgram, options:
|
|
102
|
+
export declare function programIntent(program: ActionProgram, options: ProgramIntentOptions): PendingSauceRoute;
|
|
46
103
|
//# sourceMappingURL=compose.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compose.d.ts","sourceRoot":"","sources":["../src/compose.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"compose.d.ts","sourceRoot":"","sources":["../src/compose.ts"],"names":[],"mappings":"AAuBA,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,QAAQ,EACd,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EAGL,KAAK,aAAa,EAClB,KAAK,iBAAiB,EAEvB,MAAM,gCAAgC,CAAC;AAExC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAKjD,OAAO,EAAgD,KAAK,OAAO,EAAE,MAAM,eAAe,CAAC;AAC3F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,MAAM,WAAW,cAAc;IAC7B;;;;;OAKG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC;IAC1B,kFAAkF;IAClF,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;CAChC;AAED,sEAAsE;AACtE,MAAM,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC;AAEhF,MAAM,WAAW,gBAAgB;IAC/B;;;OAGG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC;IAC9B;;;OAGG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,gGAAgG;IAChG,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC;IACpC,uFAAuF;IACvF,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,QAAQ,CAAC,aAAa,EAAE,QAAQ,GAAG,YAAY,CAAC;IAChD,kEAAkE;IAClE,QAAQ,CAAC,WAAW,CAAC,EAAE,UAAU,CAAC;IAClC,0GAA0G;IAC1G,OAAO,CAAC,MAAM,CAAC,EAAE,cAAc,EAAE,QAAQ,CAAC,EAAE,gBAAgB,GAAG,UAAU,CAAC;IAC1E;;;;OAIG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,gBAAgB,GAAG,MAAM,CAAC;CACnE;AAED,0FAA0F;AAC1F,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;IAC/B,+DAA+D;IAC/D,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B;AA2CD;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,aAAa,EAAE,KAAK,CAAC,EAAE,QAAQ,GAAG,cAAc,CASrF;AAED,mGAAmG;AACnG,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;IAC/B,gEAAgE;IAChE,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;IAChC,8FAA8F;IAC9F,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,uFAAuF;IACvF,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC;IACpC,4DAA4D;IAC5D,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;CACxC;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,aAAa,EAAE,KAAK,CAAC,EAAE,QAAQ,GAAG,aAAa,CAUrF;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,aAAa,EACtB,OAAO,GAAE,cAAmB,GAC3B,eAAe,CAIjB;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CACtB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,eAAe,EAC1B,UAAU,EAAE,SAAS,MAAM,EAAE,EAC7B,OAAO,GAAE,cAAmB,EAC5B,KAAK,CAAC,EAAE,cAAc,GACrB,eAAe,CA0EjB;AA8BD,+EAA+E;AAC/E,MAAM,MAAM,oBAAoB,GAAG,aAAa,GAAG;IACjD,iGAAiG;IACjG,QAAQ,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC;CAC3B,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,aAAa,EACtB,OAAO,EAAE,oBAAoB,GAC5B,iBAAiB,CAQnB"}
|
package/actions/dist/compose.js
CHANGED
|
@@ -7,26 +7,109 @@
|
|
|
7
7
|
* declared `scalarWidth` each sits at a fixed offset (`argumentOffset`), which is what lets a caller
|
|
8
8
|
* splice a number measured at runtime into an otherwise precompiled payload.
|
|
9
9
|
*
|
|
10
|
-
* INTENT (`programIntent`). The program is the route body on its
|
|
11
|
-
*
|
|
12
|
-
*
|
|
10
|
+
* INTENT (`programIntent`). The program is the route body on its chain: the SDK compiles it there,
|
|
11
|
+
* puts its cook in the route, and `.reward(...)` / `.nest(...)` work on it like on any other. A
|
|
12
|
+
* route body takes no runtime arguments, so an amount only known at execution comes from a
|
|
13
13
|
* `balanceOf` action instead — which is also how a child of a dynamic `.nest()` spends exactly what
|
|
14
14
|
* its parent delivered.
|
|
15
|
+
*
|
|
16
|
+
* THE CHAIN. Both compile for one chain: `options.chain`, else the document's `chainId`. The
|
|
17
|
+
* program's token symbols and namespace references are its globals, and that compile resolves them
|
|
18
|
+
* there — the SDK's own program compile, `routes.compileSauceProgram`, with the chain's names — so
|
|
19
|
+
* a document with no `chainId` compiles for any chain where its names exist. A name the chain lacks
|
|
20
|
+
* is refused first, with its path (`names.ts`).
|
|
15
21
|
*/
|
|
16
22
|
import { concatBytes, encodeAbiParameters, hexToBytes } from "viem";
|
|
23
|
+
import { resolveChain, } from "../../sdk/dist/chains/canonical.js";
|
|
17
24
|
import { encodeCompactArguments } from "../../sdk/dist/compact-arguments.js";
|
|
18
|
-
import { openRoute, } from "../../sdk/dist/routes/index.js";
|
|
25
|
+
import { compileSauceProgram, openRoute, } from "../../sdk/dist/routes/index.js";
|
|
19
26
|
import { compileEvm } from "./compile.js";
|
|
27
|
+
import { chainLabel, resolveNames, wrappedNativeIssues } from "./names.js";
|
|
20
28
|
import { parseProgram } from "./program.js";
|
|
29
|
+
import { ProgramError, programIssues } from "./semantics.js";
|
|
21
30
|
import { lowerActions, renderProgram, renderRouteBody } from "./to-sauce.js";
|
|
22
|
-
/**
|
|
31
|
+
/**
|
|
32
|
+
* The chain a document compiles for: `given`, else its own `chainId`. A document with a `chainId`
|
|
33
|
+
* compiles for that chain alone — its addresses are that chain's.
|
|
34
|
+
*/
|
|
35
|
+
function targetChain(documentChain, given) {
|
|
36
|
+
const ref = given ?? documentChain;
|
|
37
|
+
if (ref === undefined) {
|
|
38
|
+
throw new Error("the action program has no `chainId`, so say which chain to compile it for: pass `chain` " +
|
|
39
|
+
'(a slug such as "base", or a chain id). A document that names its tokens and ' +
|
|
40
|
+
"contracts compiles for any chain where they exist.");
|
|
41
|
+
}
|
|
42
|
+
const chain = resolveChain(ref);
|
|
43
|
+
if (chain === undefined) {
|
|
44
|
+
throw new Error(`unknown chain ${JSON.stringify(String(ref))}: the program's names resolve against one of ` +
|
|
45
|
+
'the SDK\'s canonical chains (a slug such as "base", or its chain id)');
|
|
46
|
+
}
|
|
47
|
+
if (chain.kind !== "evm") {
|
|
48
|
+
throw new Error(`action programs run on EVM chains; ${chain.slug} is ${chain.kind}`);
|
|
49
|
+
}
|
|
50
|
+
if (documentChain !== undefined && chain.id !== documentChain) {
|
|
51
|
+
throw new ProgramError([
|
|
52
|
+
{
|
|
53
|
+
path: "chainId",
|
|
54
|
+
message: `the program is written for chain ${documentChain}, not ${chainLabel(chain)}: its ` +
|
|
55
|
+
"addresses are that chain's. Leave `chainId` out to compile it for other chains — " +
|
|
56
|
+
"with every token and contract named, it compiles for any chain that has them",
|
|
57
|
+
},
|
|
58
|
+
]);
|
|
59
|
+
}
|
|
60
|
+
return chain;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Parses `program`, checks every name it uses — and the rules its resolved addresses must keep
|
|
64
|
+
* (no swap of a token for itself, a chain's native-coin rules) — on the chain it compiles for, and
|
|
65
|
+
* lowers it. Throws a `ProgramError` listing every problem with its path.
|
|
66
|
+
*/
|
|
67
|
+
export function lowerProgram(program, chain) {
|
|
68
|
+
const parsed = parseProgram(program);
|
|
69
|
+
const target = targetChain(parsed.chainId, chain);
|
|
70
|
+
const { resolved, issues } = resolveNames(parsed.actions, target);
|
|
71
|
+
issues.push(...wrappedNativeIssues(parsed.actions, target));
|
|
72
|
+
if (issues.length === 0)
|
|
73
|
+
issues.push(...programIssues(resolved, target.id));
|
|
74
|
+
if (issues.length > 0)
|
|
75
|
+
throw new ProgramError(issues, target);
|
|
76
|
+
return { chain: target, program: parsed, lowered: lowerActions(parsed.actions) };
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* The SauceScript an action program lowers to for `chain` (else its `chainId`), checked there but
|
|
80
|
+
* not compiled: with `contracts`, `routes.compileSauceProgram(chain, source, { contracts })`
|
|
81
|
+
* compiles it to the bytes `compileProgram` returns. The `sauce` command's `actions` reads this,
|
|
82
|
+
* and hands the source to the compile and cook every other program goes through.
|
|
83
|
+
*/
|
|
84
|
+
export function programSource(program, chain) {
|
|
85
|
+
const lowered = lowerProgram(program, chain);
|
|
86
|
+
return {
|
|
87
|
+
chain: lowered.chain,
|
|
88
|
+
program: lowered.program,
|
|
89
|
+
source: renderProgram(lowered.lowered),
|
|
90
|
+
contracts: lowered.lowered.contracts,
|
|
91
|
+
parameters: lowered.lowered.parameters,
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Compiles an action program standalone, for `options.chain` or its own `chainId`. Its `argument`
|
|
96
|
+
* actions become runtime arguments.
|
|
97
|
+
*/
|
|
23
98
|
export function compileProgram(program, options = {}) {
|
|
24
|
-
const lowered =
|
|
25
|
-
return compiled(renderProgram(lowered), lowered.contracts, lowered.parameters, options);
|
|
99
|
+
const { chain, lowered } = lowerProgram(program, options.chain);
|
|
100
|
+
return compiled(renderProgram(lowered), lowered.contracts, lowered.parameters, options, chain);
|
|
26
101
|
}
|
|
27
|
-
/**
|
|
28
|
-
|
|
29
|
-
|
|
102
|
+
/**
|
|
103
|
+
* Compiles generated source into a `CompiledProgram`: for `chain` with its names, through the SDK's
|
|
104
|
+
* program compile, or — a split swap with no chain, whose source holds only addresses — directly.
|
|
105
|
+
*/
|
|
106
|
+
export function compiled(source, contracts, parameters, options = {}, chain) {
|
|
107
|
+
const result = chain === undefined
|
|
108
|
+
? compileEvm(source, contracts, { compactArgs: options.compactArgs })
|
|
109
|
+
: compileSauceProgram(chain, source, {
|
|
110
|
+
contracts: contracts,
|
|
111
|
+
...(options.compactArgs === true ? { compactArgs: true } : {}),
|
|
112
|
+
});
|
|
30
113
|
const { bytecode } = result;
|
|
31
114
|
const positional = (values = {}) => {
|
|
32
115
|
const unknown = Object.keys(values).filter((name) => !parameters.includes(name));
|
|
@@ -62,6 +145,7 @@ export function compiled(source, contracts, parameters, options = {}) {
|
|
|
62
145
|
return {
|
|
63
146
|
bytecode,
|
|
64
147
|
source,
|
|
148
|
+
contracts,
|
|
65
149
|
parameters,
|
|
66
150
|
entryEncoding: result.entryEncoding,
|
|
67
151
|
entrySchema: result.entrySchema,
|
|
@@ -103,16 +187,16 @@ function withContracts(compile, contracts) {
|
|
|
103
187
|
};
|
|
104
188
|
}
|
|
105
189
|
/**
|
|
106
|
-
* An action program as an Eco intent route on
|
|
190
|
+
* An action program as an Eco intent route on its chain (`options.chain`, else its `chainId`):
|
|
107
191
|
* `programIntent(program, options).reward(reward)` is `Base(body, options).reward(reward)` with the
|
|
108
192
|
* program as the body. Moving value to another chain is a bridge action inside the program, or a
|
|
109
193
|
* nested intent (`.nest(...)`) on the returned route.
|
|
110
194
|
*/
|
|
111
195
|
export function programIntent(program, options) {
|
|
112
|
-
const {
|
|
113
|
-
const lowered =
|
|
114
|
-
return openRoute(
|
|
115
|
-
...
|
|
116
|
-
compile: withContracts(
|
|
196
|
+
const { chain: given, ...intent } = options;
|
|
197
|
+
const { chain, lowered } = lowerProgram(program, given);
|
|
198
|
+
return openRoute(chain, renderRouteBody(lowered), {
|
|
199
|
+
...intent,
|
|
200
|
+
compile: withContracts(intent.compile, lowered.contracts),
|
|
117
201
|
});
|
|
118
202
|
}
|
package/actions/dist/index.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ export type { ProgramIssue } from "./semantics.js";
|
|
|
4
4
|
export { programSchema } from "./schema.js";
|
|
5
5
|
export type { JsonSchema } from "./schema.js";
|
|
6
6
|
export { compileProgram, programIntent } from "./compose.js";
|
|
7
|
-
export type { ArgumentEncoding, ArgumentValues, CompiledProgram, CompileOptions, } from "./compose.js";
|
|
7
|
+
export type { ArgumentEncoding, ArgumentValues, CompiledProgram, CompileOptions, ProgramIntentOptions, } from "./compose.js";
|
|
8
8
|
export { quoteAction } from "./to-quote.js";
|
|
9
9
|
export type { Quote, QuoteOptions } from "./to-quote.js";
|
|
10
10
|
export { compileSplitSwap } from "./split-swap.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,YAAY,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,YAAY,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7D,YAAY,EACV,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,YAAY,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,YAAY,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7D,YAAY,EACV,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,cAAc,EACd,oBAAoB,GACrB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAEzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,YAAY,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,mBAAmB,YAAY,CAAC"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tokens and protocol contracts by name, as a Sauce program names them.
|
|
3
|
+
*
|
|
4
|
+
* A token field takes a registry symbol (`"USDC"`) and a contract field a namespace reference
|
|
5
|
+
* (`"UniswapV3.Factory"`), beside an address. The generated program carries the NAME — the program
|
|
6
|
+
* global it is — so the compile for a chain resolves it there, exactly as a hand-written program's
|
|
7
|
+
* `USDC` resolves: an action document that names everything is chain-agnostic. This module is the
|
|
8
|
+
* check made first, on the chain being compiled for, so a name that chain lacks is reported with
|
|
9
|
+
* its path, the chain and the name, rather than as the compiler's "not a declared variable".
|
|
10
|
+
*
|
|
11
|
+
* The names come from `routes.sourceGlobals(chain)` — the SDK's own list of what a program compiled
|
|
12
|
+
* for the chain may use, read from the same registries the compile reads — never a second table.
|
|
13
|
+
* The same pass also yields each name's address, for the checks that compare tokens (a swap of a
|
|
14
|
+
* token for itself) and for the quote calls, which are built here rather than compiled.
|
|
15
|
+
*/
|
|
16
|
+
import { type CanonicalChain } from "../../sdk/dist/chains/canonical.js";
|
|
17
|
+
import type { ProgramIssue } from "./semantics.js";
|
|
18
|
+
import type { Action } from "./types.js";
|
|
19
|
+
/** A registry token symbol: the registry's own ticker rule (`token-registry.ts`). */
|
|
20
|
+
export declare const TOKEN_SYMBOL_RE: RegExp;
|
|
21
|
+
/**
|
|
22
|
+
* The shape of a symbol, stocks' included: an identifier with a capital letter in it, as an
|
|
23
|
+
* issuer's ticker is ("SPCXc", "TSLAon", "bTSLA", "BRK_Bx") and `"native"` and `"usdc"` are not.
|
|
24
|
+
* What the JSON Schema accepts, since it lists no names; the parser takes only the uppercase
|
|
25
|
+
* ticker shape and the stock symbols the registry has (`isTokenSymbol`).
|
|
26
|
+
*/
|
|
27
|
+
export declare const STOCK_SYMBOL_RE: RegExp;
|
|
28
|
+
/** True for a token symbol: the uppercase ticker shape, or a tokenized stock's own symbol. */
|
|
29
|
+
export declare function isTokenSymbol(value: string): boolean;
|
|
30
|
+
/** The registry's spelling of `value` written in another case (`spcxc` is `SPCXc`), if any. */
|
|
31
|
+
export declare function registrySpelling(value: string): string | undefined;
|
|
32
|
+
/** A protocol contract by namespace: `Namespace.Contract`, as a program writes it. */
|
|
33
|
+
export declare const CONTRACT_NAME_RE: RegExp;
|
|
34
|
+
/** The native currency, where a venue trades it itself: the zero address it keys it as. */
|
|
35
|
+
export declare const NATIVE = "native";
|
|
36
|
+
export declare const ZERO_ADDRESS = "0x0000000000000000000000000000000000000000";
|
|
37
|
+
type Address = `0x${string}`;
|
|
38
|
+
/** True for a token symbol or a namespace reference — anything but an address or `"native"`. */
|
|
39
|
+
export declare function isName(value: string): boolean;
|
|
40
|
+
/** A contract a program can name on one chain. */
|
|
41
|
+
interface NamedContract {
|
|
42
|
+
readonly address: Address;
|
|
43
|
+
/** Its methods' canonical signatures, as the registry declares them. */
|
|
44
|
+
readonly signatures: ReadonlySet<string>;
|
|
45
|
+
}
|
|
46
|
+
/** What a program compiled for one chain can name. */
|
|
47
|
+
interface ChainNames {
|
|
48
|
+
readonly chain: CanonicalChain;
|
|
49
|
+
readonly tokens: ReadonlyMap<string, Address>;
|
|
50
|
+
/** Its tokenized stocks' symbols, which a refusal counts rather than lists. */
|
|
51
|
+
readonly stocks: ReadonlySet<string>;
|
|
52
|
+
/** `Namespace.Contract` -> the contract. */
|
|
53
|
+
readonly contracts: ReadonlyMap<string, NamedContract>;
|
|
54
|
+
/** Namespace -> its contracts on this chain. */
|
|
55
|
+
readonly namespaces: ReadonlyMap<string, readonly string[]>;
|
|
56
|
+
}
|
|
57
|
+
/** The names a program compiled for `chain` resolves, from `routes.sourceGlobals`. */
|
|
58
|
+
export declare function chainNames(chain: CanonicalChain): ChainNames;
|
|
59
|
+
/** `Base (base, chain 8453)`. */
|
|
60
|
+
export declare function chainLabel(chain: CanonicalChain): string;
|
|
61
|
+
/**
|
|
62
|
+
* The method a pool key reads from its factory, by action and key: what a `factory` given by name
|
|
63
|
+
* must declare, so a factory of the wrong kind is refused before it is called.
|
|
64
|
+
*/
|
|
65
|
+
export declare function poolLookup(action: Action): {
|
|
66
|
+
readonly signature: string;
|
|
67
|
+
readonly kind: string;
|
|
68
|
+
} | undefined;
|
|
69
|
+
/**
|
|
70
|
+
* Every name in `actions` checked on `chain`: the issues for the ones it lacks, each with its path,
|
|
71
|
+
* and a copy of the actions with every name replaced by its address on that chain.
|
|
72
|
+
*/
|
|
73
|
+
export declare function resolveNames(actions: readonly Action[], chain: CanonicalChain, path?: string): {
|
|
74
|
+
readonly resolved: Action[];
|
|
75
|
+
readonly issues: ProgramIssue[];
|
|
76
|
+
};
|
|
77
|
+
/**
|
|
78
|
+
* A name whose MEANING depends on the chain, refused where it means something else: `"WETH"` is
|
|
79
|
+
* the wrapped native coin only where the native coin is ETH. On Polygon the registry's WETH is
|
|
80
|
+
* bridged ETH beside the native POL, so a `wrapETH` or `unwrapETH` of `"WETH"` there would call a
|
|
81
|
+
* token that wraps nothing. (Arc, whose native coin is itself an ERC-20, refuses wrapping outright:
|
|
82
|
+
* `semantics.ts`.) An address is taken as given: it says which contract is meant.
|
|
83
|
+
*/
|
|
84
|
+
export declare function wrappedNativeIssues(actions: readonly Action[], chain: CanonicalChain, path?: string): ProgramIssue[];
|
|
85
|
+
/** True when any action names a token or a contract rather than giving its address. */
|
|
86
|
+
export declare function usesNames(actions: readonly Action[]): boolean;
|
|
87
|
+
export {};
|
|
88
|
+
//# sourceMappingURL=names.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"names.d.ts","sourceRoot":"","sources":["../src/names.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAoB,KAAK,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAM3F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEzC,qFAAqF;AACrF,eAAO,MAAM,eAAe,QAA0B,CAAC;AAEvD;;;;;GAKG;AACH,eAAO,MAAM,eAAe,QAAiD,CAAC;AAgB9E,8FAA8F;AAC9F,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED,+FAA+F;AAC/F,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAQlE;AAED,sFAAsF;AACtF,eAAO,MAAM,gBAAgB,QAA8C,CAAC;AAE5E,2FAA2F;AAC3F,eAAO,MAAM,MAAM,WAAW,CAAC;AAE/B,eAAO,MAAM,YAAY,+CAA+C,CAAC;AAEzE,KAAK,OAAO,GAAG,KAAK,MAAM,EAAE,CAAC;AAE7B,gGAAgG;AAChG,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAE7C;AAED,kDAAkD;AAClD,UAAU,aAAa;IACrB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,wEAAwE;IACxE,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CAC1C;AAED,sDAAsD;AACtD,UAAU,UAAU;IAClB,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9C,+EAA+E;IAC/E,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACrC,4CAA4C;IAC5C,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IACvD,gDAAgD;IAChD,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC;CAC7D;AAID,sFAAsF;AACtF,wBAAgB,UAAU,CAAC,KAAK,EAAE,cAAc,GAAG,UAAU,CA6B5D;AAmBD,iCAAiC;AACjC,wBAAgB,UAAU,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM,CAExD;AAwJD;;;GAGG;AACH,wBAAgB,UAAU,CACxB,MAAM,EAAE,MAAM,GACb;IAAE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAqBnE;AA0BD;;;GAGG;AACH,wBAAgB,YAAY,CAC1B,OAAO,EAAE,SAAS,MAAM,EAAE,EAC1B,KAAK,EAAE,cAAc,EACrB,IAAI,SAAY,GACf;IAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,YAAY,EAAE,CAAA;CAAE,CAclE;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,SAAS,MAAM,EAAE,EAC1B,KAAK,EAAE,cAAc,EACrB,IAAI,SAAY,GACf,YAAY,EAAE,CAiBhB;AAED,uFAAuF;AACvF,wBAAgB,SAAS,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAoB7D"}
|