@eco-incorp/sauce 0.99.4 → 0.99.6
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 +105 -63
- package/actions/action-program.schema.json +1810 -0
- package/actions/dist/abis.d.ts +167 -0
- package/actions/dist/abis.d.ts.map +1 -0
- package/actions/dist/abis.js +215 -0
- package/actions/dist/compile.d.ts +15 -8
- package/actions/dist/compile.d.ts.map +1 -1
- package/actions/dist/compile.js +11 -33
- package/actions/dist/compose.d.ts +46 -0
- package/actions/dist/compose.d.ts.map +1 -0
- package/actions/dist/compose.js +118 -0
- package/actions/dist/emit.d.ts +0 -35
- package/actions/dist/emit.d.ts.map +1 -1
- package/actions/dist/emit.js +15 -46
- package/actions/dist/index.d.ts +11 -8
- package/actions/dist/index.d.ts.map +1 -1
- package/actions/dist/index.js +6 -4
- package/actions/dist/program.d.ts +23 -0
- package/actions/dist/program.d.ts.map +1 -0
- package/actions/dist/program.js +358 -0
- package/actions/dist/registry.d.ts +37 -0
- package/actions/dist/registry.d.ts.map +1 -0
- package/actions/dist/registry.js +36 -0
- package/actions/dist/schema.d.ts +6 -0
- package/actions/dist/schema.d.ts.map +1 -0
- package/actions/dist/schema.js +166 -0
- package/actions/dist/semantics.d.ts +18 -0
- package/actions/dist/semantics.d.ts.map +1 -0
- package/actions/dist/semantics.js +164 -0
- package/actions/dist/spec.d.ts +97 -0
- package/actions/dist/spec.d.ts.map +1 -0
- package/actions/dist/spec.js +323 -0
- package/actions/dist/split-swap.d.ts +35 -0
- package/actions/dist/split-swap.d.ts.map +1 -0
- package/actions/dist/split-swap.js +175 -0
- package/actions/dist/to-quote.d.ts +32 -56
- package/actions/dist/to-quote.d.ts.map +1 -1
- package/actions/dist/to-quote.js +134 -141
- package/actions/dist/to-sauce.d.ts +48 -32
- package/actions/dist/to-sauce.d.ts.map +1 -1
- package/actions/dist/to-sauce.js +691 -753
- package/actions/dist/types.d.ts +227 -335
- package/actions/dist/types.d.ts.map +1 -1
- package/actions/dist/types.js +12 -3
- package/dev-tools/README.md +9 -9
- package/dev-tools/artifacts/ISauceRouter.json +1 -1
- package/dev-tools/artifacts/Router.json +1 -1
- package/dev-tools/scripts/start-fork.sh +1 -1
- package/dev-tools/scripts/start-local.sh +5 -1
- package/dev-tools/src/svm-local.ts +23 -13
- package/docs/README.md +45 -34
- package/docs/api/README.md +37 -29
- package/docs/api/compiler.md +116 -55
- package/docs/api/coverage.md +99 -48
- package/docs/api/routes.md +51 -22
- package/docs/concepts/architecture.md +85 -116
- package/docs/concepts/saucescript.md +46 -25
- package/docs/examples/README.md +18 -10
- package/docs/examples/action-program.ts +75 -0
- package/docs/examples/cross-chain-cascade.sauce.ts +21 -0
- package/docs/examples/cross-chain-cascade.ts +43 -0
- package/docs/examples/cross-chain-intent.sauce.ts +23 -0
- package/docs/examples/cross-chain-intent.ts +49 -0
- package/docs/examples/first-intent.ts +7 -10
- package/docs/examples/protocol-approval.ts +3 -7
- package/docs/guides/actions.md +395 -0
- package/docs/guides/builders-and-actions.md +34 -37
- package/docs/guides/compiling.md +99 -98
- package/docs/guides/intents.md +273 -25
- package/docs/guides/nested-intents.md +165 -5
- package/docs/guides/protocols-and-tokens.md +36 -8
- package/docs/guides/quick-start.md +51 -22
- package/docs/guides/solana.md +38 -40
- package/docs/guides/verification.md +70 -31
- package/package.json +7 -2
- package/sdk/dist/artifacts/ISauceRouter.json +1 -1
- package/sdk/dist/artifacts/Router.json +1 -1
- package/sdk/dist/artifacts/V12Deployments.json +23 -22
- package/sdk/dist/artifacts/V12EngineGate.json +2 -2
- package/sdk/dist/artifacts/V12Kitchen.json +1 -1
- package/sdk/dist/artifacts/V12Pot.json +1 -1
- package/sdk/dist/artifacts/V12RuntimeBytecode.json +1 -1
- package/sdk/dist/artifacts/svm/engine-devnet.so +0 -0
- package/sdk/dist/artifacts/svm/engine-mainnet.so +0 -0
- package/sdk/dist/bytes.d.ts +10 -0
- package/sdk/dist/bytes.d.ts.map +1 -0
- package/sdk/dist/bytes.js +31 -0
- package/sdk/dist/bytes.js.map +1 -0
- package/sdk/dist/chains/canonical.d.ts +7 -1
- package/sdk/dist/chains/canonical.d.ts.map +1 -1
- package/sdk/dist/chains/canonical.js +6 -2
- package/sdk/dist/chains/canonical.js.map +1 -1
- package/sdk/dist/chains/index.d.ts +16 -2
- package/sdk/dist/chains/index.d.ts.map +1 -1
- package/sdk/dist/chains/index.js +51 -34
- package/sdk/dist/chains/index.js.map +1 -1
- package/sdk/dist/compact-arguments.d.ts +4 -1
- package/sdk/dist/compact-arguments.d.ts.map +1 -1
- package/sdk/dist/compact-arguments.js +25 -4
- package/sdk/dist/compact-arguments.js.map +1 -1
- package/sdk/dist/compiler.d.ts +13 -1
- package/sdk/dist/compiler.d.ts.map +1 -1
- package/sdk/dist/compiler.js +5 -6
- package/sdk/dist/compiler.js.map +1 -1
- package/sdk/dist/core/types.d.ts +18 -2
- package/sdk/dist/core/types.d.ts.map +1 -1
- package/sdk/dist/deployments/pot.d.ts +39 -0
- package/sdk/dist/deployments/pot.d.ts.map +1 -0
- package/sdk/dist/deployments/pot.js +48 -0
- package/sdk/dist/deployments/pot.js.map +1 -0
- package/sdk/dist/deployments/v12-addresses.d.ts +1 -4
- package/sdk/dist/deployments/v12-addresses.d.ts.map +1 -1
- package/sdk/dist/deployments/v12-addresses.js +7 -21
- package/sdk/dist/deployments/v12-addresses.js.map +1 -1
- package/sdk/dist/deposit/index.d.ts +5 -5
- 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 +3 -2
- package/sdk/dist/deposit/params.d.ts.map +1 -1
- package/sdk/dist/deposit/params.js +40 -3
- package/sdk/dist/deposit/params.js.map +1 -1
- package/sdk/dist/deposit/source.d.ts +0 -19
- package/sdk/dist/deposit/source.d.ts.map +1 -1
- package/sdk/dist/deposit/source.js +17 -34
- package/sdk/dist/deposit/source.js.map +1 -1
- package/sdk/dist/descriptors/accessors.d.ts +2 -2
- package/sdk/dist/descriptors/accessors.d.ts.map +1 -1
- package/sdk/dist/descriptors/accessors.js +15 -4
- package/sdk/dist/descriptors/accessors.js.map +1 -1
- package/sdk/dist/descriptors/call.d.ts +8 -13
- package/sdk/dist/descriptors/call.d.ts.map +1 -1
- package/sdk/dist/descriptors/call.js +7 -19
- package/sdk/dist/descriptors/call.js.map +1 -1
- package/sdk/dist/descriptors/derive.d.ts +1 -1
- package/sdk/dist/descriptors/derive.d.ts.map +1 -1
- package/sdk/dist/descriptors/derive.js +1 -1
- package/sdk/dist/descriptors/derive.js.map +1 -1
- package/sdk/dist/descriptors/index.d.ts +1 -1
- package/sdk/dist/descriptors/index.d.ts.map +1 -1
- package/sdk/dist/descriptors/index.js +1 -1
- package/sdk/dist/descriptors/index.js.map +1 -1
- package/sdk/dist/descriptors/links.d.ts +3 -12
- package/sdk/dist/descriptors/links.d.ts.map +1 -1
- package/sdk/dist/descriptors/links.js +2 -32
- package/sdk/dist/descriptors/links.js.map +1 -1
- package/sdk/dist/descriptors/query.d.ts +7 -3
- package/sdk/dist/descriptors/query.d.ts.map +1 -1
- package/sdk/dist/descriptors/query.js +9 -5
- package/sdk/dist/descriptors/query.js.map +1 -1
- package/sdk/dist/descriptors/registry.d.ts.map +1 -1
- package/sdk/dist/descriptors/registry.js +1 -0
- package/sdk/dist/descriptors/registry.js.map +1 -1
- package/sdk/dist/embedded/recipes.d.ts +3 -0
- package/sdk/dist/embedded/recipes.d.ts.map +1 -0
- package/sdk/dist/embedded/recipes.js +15 -0
- package/sdk/dist/embedded/recipes.js.map +1 -0
- package/sdk/dist/embedded/resolve.d.ts +27 -0
- package/sdk/dist/embedded/resolve.d.ts.map +1 -0
- package/sdk/dist/embedded/resolve.js +99 -0
- package/sdk/dist/embedded/resolve.js.map +1 -0
- package/sdk/dist/embedded/skills.generated.d.ts +3 -0
- package/sdk/dist/embedded/skills.generated.d.ts.map +1 -0
- package/sdk/dist/embedded/skills.generated.js +141 -0
- package/sdk/dist/embedded/skills.generated.js.map +1 -0
- package/sdk/dist/embedded/sources.generated.d.ts +7 -0
- package/sdk/dist/embedded/sources.generated.d.ts.map +1 -0
- package/sdk/dist/embedded/sources.generated.js +231 -0
- package/sdk/dist/embedded/sources.generated.js.map +1 -0
- package/sdk/dist/evm/execution-fee.d.ts +30 -0
- package/sdk/dist/evm/execution-fee.d.ts.map +1 -0
- package/sdk/dist/evm/execution-fee.js +33 -0
- package/sdk/dist/evm/execution-fee.js.map +1 -0
- package/sdk/dist/index.d.ts +7 -2
- package/sdk/dist/index.d.ts.map +1 -1
- package/sdk/dist/index.js +16 -10
- package/sdk/dist/index.js.map +1 -1
- package/sdk/dist/plugin/index.d.ts +4 -3
- package/sdk/dist/plugin/index.d.ts.map +1 -1
- package/sdk/dist/plugin/index.js +5 -22
- package/sdk/dist/plugin/index.js.map +1 -1
- package/sdk/dist/protocols/aave-v4/abis.d.ts +201 -0
- package/sdk/dist/protocols/aave-v4/abis.d.ts.map +1 -0
- package/sdk/dist/protocols/aave-v4/abis.js +139 -0
- package/sdk/dist/protocols/aave-v4/abis.js.map +1 -0
- package/sdk/dist/protocols/aave-v4/addresses.d.ts +3 -0
- package/sdk/dist/protocols/aave-v4/addresses.d.ts.map +1 -0
- package/sdk/dist/protocols/aave-v4/addresses.js +65 -0
- package/sdk/dist/protocols/aave-v4/addresses.js.map +1 -0
- package/sdk/dist/protocols/aave-v4/functions.d.ts +5 -0
- package/sdk/dist/protocols/aave-v4/functions.d.ts.map +1 -0
- package/sdk/dist/protocols/aave-v4/functions.js +37 -0
- package/sdk/dist/protocols/aave-v4/functions.js.map +1 -0
- package/sdk/dist/protocols/aave-v4/index.d.ts +5 -0
- package/sdk/dist/protocols/aave-v4/index.d.ts.map +1 -0
- package/sdk/dist/protocols/aave-v4/index.js +5 -0
- package/sdk/dist/protocols/aave-v4/index.js.map +1 -0
- package/sdk/dist/protocols/aave-v4/info.d.ts +3 -0
- package/sdk/dist/protocols/aave-v4/info.d.ts.map +1 -0
- package/sdk/dist/protocols/aave-v4/info.js +12 -0
- package/sdk/dist/protocols/aave-v4/info.js.map +1 -0
- package/sdk/dist/protocols/across/abis.d.ts +24 -12
- package/sdk/dist/protocols/across/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/across/abis.js +16 -8
- package/sdk/dist/protocols/across/abis.js.map +1 -1
- package/sdk/dist/protocols/across/addresses.d.ts.map +1 -1
- package/sdk/dist/protocols/across/addresses.js +10 -0
- package/sdk/dist/protocols/across/addresses.js.map +1 -1
- package/sdk/dist/protocols/across/functions.d.ts +1 -1
- package/sdk/dist/protocols/across/functions.d.ts.map +1 -1
- package/sdk/dist/protocols/across/functions.js +2 -2
- package/sdk/dist/protocols/aerodrome-slipstream/abis.d.ts +112 -0
- package/sdk/dist/protocols/aerodrome-slipstream/abis.d.ts.map +1 -0
- package/sdk/dist/protocols/aerodrome-slipstream/abis.js +73 -0
- package/sdk/dist/protocols/aerodrome-slipstream/abis.js.map +1 -0
- package/sdk/dist/protocols/aerodrome-slipstream/addresses.d.ts +3 -0
- package/sdk/dist/protocols/aerodrome-slipstream/addresses.d.ts.map +1 -0
- package/sdk/dist/protocols/aerodrome-slipstream/addresses.js +39 -0
- package/sdk/dist/protocols/aerodrome-slipstream/addresses.js.map +1 -0
- package/sdk/dist/protocols/aerodrome-slipstream/functions.d.ts +2 -0
- package/sdk/dist/protocols/aerodrome-slipstream/functions.d.ts.map +1 -0
- package/sdk/dist/protocols/aerodrome-slipstream/functions.js +9 -0
- package/sdk/dist/protocols/aerodrome-slipstream/functions.js.map +1 -0
- package/sdk/dist/protocols/aerodrome-slipstream/index.d.ts +5 -0
- package/sdk/dist/protocols/aerodrome-slipstream/index.d.ts.map +1 -0
- package/sdk/dist/protocols/aerodrome-slipstream/index.js +5 -0
- package/sdk/dist/protocols/aerodrome-slipstream/index.js.map +1 -0
- package/sdk/dist/protocols/aerodrome-slipstream/info.d.ts +3 -0
- package/sdk/dist/protocols/aerodrome-slipstream/info.d.ts.map +1 -0
- package/sdk/dist/protocols/aerodrome-slipstream/info.js +12 -0
- package/sdk/dist/protocols/aerodrome-slipstream/info.js.map +1 -0
- package/sdk/dist/protocols/aevo/abis.d.ts +17 -2
- package/sdk/dist/protocols/aevo/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/aevo/abis.js +10 -2
- package/sdk/dist/protocols/aevo/abis.js.map +1 -1
- package/sdk/dist/protocols/aevo/functions.d.ts +1 -1
- package/sdk/dist/protocols/aevo/functions.d.ts.map +1 -1
- package/sdk/dist/protocols/aevo/functions.js +2 -2
- package/sdk/dist/protocols/alchemix/abis.d.ts +1 -1
- package/sdk/dist/protocols/alchemix/abis.js +1 -1
- package/sdk/dist/protocols/alchemix/abis.js.map +1 -1
- package/sdk/dist/protocols/ambient/abis.d.ts +2 -2
- package/sdk/dist/protocols/ambient/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/ambient/abis.js +3 -2
- package/sdk/dist/protocols/ambient/abis.js.map +1 -1
- package/sdk/dist/protocols/ambient/addresses.d.ts.map +1 -1
- package/sdk/dist/protocols/ambient/addresses.js +2 -1
- package/sdk/dist/protocols/ambient/addresses.js.map +1 -1
- package/sdk/dist/protocols/arrakis/abis.d.ts +4 -13
- package/sdk/dist/protocols/arrakis/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/arrakis/abis.js +2 -11
- package/sdk/dist/protocols/arrakis/abis.js.map +1 -1
- package/sdk/dist/protocols/arrakis/functions.d.ts +1 -1
- package/sdk/dist/protocols/arrakis/functions.d.ts.map +1 -1
- package/sdk/dist/protocols/arrakis/functions.js +2 -1
- package/sdk/dist/protocols/arrakis/functions.js.map +1 -1
- package/sdk/dist/protocols/axelar/abis.d.ts +1 -1
- package/sdk/dist/protocols/axelar/abis.js +1 -1
- package/sdk/dist/protocols/balancer-v2/abis.d.ts +7 -7
- package/sdk/dist/protocols/balancer-v2/abis.js +7 -7
- package/sdk/dist/protocols/balancer-v2/abis.js.map +1 -1
- package/sdk/dist/protocols/cbeth/abis.d.ts +7 -1
- package/sdk/dist/protocols/cbeth/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/cbeth/abis.js +6 -2
- package/sdk/dist/protocols/cbeth/abis.js.map +1 -1
- package/sdk/dist/protocols/cbeth/functions.d.ts +2 -2
- package/sdk/dist/protocols/cbeth/functions.d.ts.map +1 -1
- package/sdk/dist/protocols/cbeth/functions.js +4 -6
- package/sdk/dist/protocols/cbeth/functions.js.map +1 -1
- package/sdk/dist/protocols/cctp/abis.d.ts +1 -4
- package/sdk/dist/protocols/cctp/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/cctp/abis.js +3 -1
- package/sdk/dist/protocols/cctp/abis.js.map +1 -1
- package/sdk/dist/protocols/cctp/addresses.d.ts.map +1 -1
- package/sdk/dist/protocols/cctp/addresses.js +3 -0
- package/sdk/dist/protocols/cctp/addresses.js.map +1 -1
- package/sdk/dist/protocols/chainlink/abis.d.ts +6 -6
- package/sdk/dist/protocols/chainlink/abis.js +6 -6
- package/sdk/dist/protocols/chainlink/abis.js.map +1 -1
- package/sdk/dist/protocols/chainlink/addresses.d.ts.map +1 -1
- package/sdk/dist/protocols/chainlink/addresses.js +10 -0
- package/sdk/dist/protocols/chainlink/addresses.js.map +1 -1
- package/sdk/dist/protocols/chainlink-ccip/abis.d.ts +1 -1
- package/sdk/dist/protocols/chainlink-ccip/abis.js +1 -1
- package/sdk/dist/protocols/chainlink-ccip/addresses.d.ts.map +1 -1
- package/sdk/dist/protocols/chainlink-ccip/addresses.js +9 -0
- package/sdk/dist/protocols/chainlink-ccip/addresses.js.map +1 -1
- package/sdk/dist/protocols/circle-gateway/abis.d.ts +114 -0
- package/sdk/dist/protocols/circle-gateway/abis.d.ts.map +1 -0
- package/sdk/dist/protocols/circle-gateway/abis.js +86 -0
- package/sdk/dist/protocols/circle-gateway/abis.js.map +1 -0
- package/sdk/dist/protocols/circle-gateway/addresses.d.ts +3 -0
- package/sdk/dist/protocols/circle-gateway/addresses.d.ts.map +1 -0
- package/sdk/dist/protocols/circle-gateway/addresses.js +37 -0
- package/sdk/dist/protocols/circle-gateway/addresses.js.map +1 -0
- package/sdk/dist/protocols/circle-gateway/functions.d.ts +4 -0
- package/sdk/dist/protocols/circle-gateway/functions.d.ts.map +1 -0
- package/sdk/dist/protocols/circle-gateway/functions.js +27 -0
- package/sdk/dist/protocols/circle-gateway/functions.js.map +1 -0
- package/sdk/dist/protocols/circle-gateway/index.d.ts +5 -0
- package/sdk/dist/protocols/circle-gateway/index.d.ts.map +1 -0
- package/sdk/dist/protocols/circle-gateway/index.js +5 -0
- package/sdk/dist/protocols/circle-gateway/index.js.map +1 -0
- package/sdk/dist/protocols/circle-gateway/info.d.ts +3 -0
- package/sdk/dist/protocols/circle-gateway/info.d.ts.map +1 -0
- package/sdk/dist/protocols/circle-gateway/info.js +12 -0
- package/sdk/dist/protocols/circle-gateway/info.js.map +1 -0
- package/sdk/dist/protocols/compound-v2/abis.d.ts +2 -2
- package/sdk/dist/protocols/compound-v2/abis.js +2 -2
- package/sdk/dist/protocols/compound-v2/abis.js.map +1 -1
- package/sdk/dist/protocols/connext/abis.d.ts +46 -6
- package/sdk/dist/protocols/connext/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/connext/abis.js +27 -5
- package/sdk/dist/protocols/connext/abis.js.map +1 -1
- package/sdk/dist/protocols/connext/addresses.d.ts.map +1 -1
- package/sdk/dist/protocols/connext/addresses.js +1 -7
- package/sdk/dist/protocols/connext/addresses.js.map +1 -1
- package/sdk/dist/protocols/connext/functions.d.ts +1 -1
- package/sdk/dist/protocols/connext/functions.d.ts.map +1 -1
- package/sdk/dist/protocols/connext/functions.js +3 -2
- package/sdk/dist/protocols/connext/functions.js.map +1 -1
- package/sdk/dist/protocols/crvusd/functions.d.ts +2 -2
- package/sdk/dist/protocols/crvusd/functions.d.ts.map +1 -1
- package/sdk/dist/protocols/crvusd/functions.js +6 -6
- package/sdk/dist/protocols/curve/abis.d.ts +119 -7
- package/sdk/dist/protocols/curve/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/curve/abis.js +90 -7
- package/sdk/dist/protocols/curve/abis.js.map +1 -1
- package/sdk/dist/protocols/debridge/abis.d.ts +7 -7
- package/sdk/dist/protocols/debridge/abis.js +5 -5
- package/sdk/dist/protocols/debridge/abis.js.map +1 -1
- package/sdk/dist/protocols/debridge/addresses.d.ts.map +1 -1
- package/sdk/dist/protocols/debridge/addresses.js +11 -0
- package/sdk/dist/protocols/debridge/addresses.js.map +1 -1
- package/sdk/dist/protocols/eco-routes/abis.d.ts +463 -0
- package/sdk/dist/protocols/eco-routes/abis.d.ts.map +1 -0
- package/sdk/dist/protocols/eco-routes/abis.js +632 -0
- package/sdk/dist/protocols/eco-routes/abis.js.map +1 -0
- package/sdk/dist/protocols/eco-routes/addresses.d.ts +9 -0
- package/sdk/dist/protocols/eco-routes/addresses.d.ts.map +1 -0
- package/sdk/dist/protocols/eco-routes/addresses.generated.d.ts +585 -0
- package/sdk/dist/protocols/eco-routes/addresses.generated.d.ts.map +1 -0
- package/sdk/dist/protocols/eco-routes/addresses.generated.js +590 -0
- package/sdk/dist/protocols/eco-routes/addresses.generated.js.map +1 -0
- package/sdk/dist/protocols/eco-routes/addresses.js +21 -0
- package/sdk/dist/protocols/eco-routes/addresses.js.map +1 -0
- package/sdk/dist/protocols/eco-routes/functions.d.ts +12 -0
- package/sdk/dist/protocols/eco-routes/functions.d.ts.map +1 -0
- package/sdk/dist/protocols/eco-routes/functions.js +45 -0
- package/sdk/dist/protocols/eco-routes/functions.js.map +1 -0
- package/sdk/dist/protocols/eco-routes/index.d.ts +6 -0
- package/sdk/dist/protocols/eco-routes/index.d.ts.map +1 -0
- package/sdk/dist/protocols/eco-routes/index.js +6 -0
- package/sdk/dist/protocols/eco-routes/index.js.map +1 -0
- package/sdk/dist/protocols/eco-routes/info.d.ts +3 -0
- package/sdk/dist/protocols/eco-routes/info.d.ts.map +1 -0
- package/sdk/dist/protocols/eco-routes/info.js +12 -0
- package/sdk/dist/protocols/eco-routes/info.js.map +1 -0
- package/sdk/dist/protocols/eco-routes/lookup.d.ts +82 -0
- package/sdk/dist/protocols/eco-routes/lookup.d.ts.map +1 -0
- package/sdk/dist/protocols/eco-routes/lookup.js +148 -0
- package/sdk/dist/protocols/eco-routes/lookup.js.map +1 -0
- package/sdk/dist/protocols/eigenlayer/abis.d.ts +4 -4
- package/sdk/dist/protocols/eigenlayer/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/eigenlayer/abis.js +5 -4
- package/sdk/dist/protocols/eigenlayer/abis.js.map +1 -1
- package/sdk/dist/protocols/ens/abis.d.ts +4 -4
- package/sdk/dist/protocols/ens/abis.js +4 -4
- package/sdk/dist/protocols/erc20/functions.d.ts +3 -3
- package/sdk/dist/protocols/erc20/functions.d.ts.map +1 -1
- package/sdk/dist/protocols/erc20/functions.js +6 -9
- package/sdk/dist/protocols/erc20/functions.js.map +1 -1
- package/sdk/dist/protocols/etherfi/abis.d.ts +1 -1
- package/sdk/dist/protocols/etherfi/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/etherfi/abis.js +2 -1
- package/sdk/dist/protocols/etherfi/abis.js.map +1 -1
- package/sdk/dist/protocols/euler-v2/abis.d.ts +2 -2
- package/sdk/dist/protocols/euler-v2/abis.js +2 -2
- package/sdk/dist/protocols/euler-v2/abis.js.map +1 -1
- package/sdk/dist/protocols/fluid/abis.d.ts +47 -26
- package/sdk/dist/protocols/fluid/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/fluid/abis.js +39 -18
- package/sdk/dist/protocols/fluid/abis.js.map +1 -1
- package/sdk/dist/protocols/fluid/functions.d.ts +4 -4
- package/sdk/dist/protocols/fluid/functions.d.ts.map +1 -1
- package/sdk/dist/protocols/fluid/functions.js +18 -16
- package/sdk/dist/protocols/fluid/functions.js.map +1 -1
- package/sdk/dist/protocols/frax/functions.d.ts +2 -2
- package/sdk/dist/protocols/frax/functions.d.ts.map +1 -1
- package/sdk/dist/protocols/frax/functions.js +6 -6
- package/sdk/dist/protocols/gains-network/abis.d.ts +44 -35
- package/sdk/dist/protocols/gains-network/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/gains-network/abis.js +26 -21
- package/sdk/dist/protocols/gains-network/abis.js.map +1 -1
- package/sdk/dist/protocols/gains-network/functions.d.ts +3 -3
- package/sdk/dist/protocols/gains-network/functions.d.ts.map +1 -1
- package/sdk/dist/protocols/gains-network/functions.js +6 -6
- package/sdk/dist/protocols/gamma/abis.d.ts +43 -0
- package/sdk/dist/protocols/gamma/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/gamma/abis.js +30 -0
- package/sdk/dist/protocols/gamma/abis.js.map +1 -1
- package/sdk/dist/protocols/gamma/addresses.d.ts.map +1 -1
- package/sdk/dist/protocols/gamma/addresses.js +2 -7
- package/sdk/dist/protocols/gamma/addresses.js.map +1 -1
- package/sdk/dist/protocols/gamma/functions.d.ts +1 -0
- package/sdk/dist/protocols/gamma/functions.d.ts.map +1 -1
- package/sdk/dist/protocols/gamma/functions.js +9 -0
- package/sdk/dist/protocols/gamma/functions.js.map +1 -1
- package/sdk/dist/protocols/gelato/abis.d.ts +2 -2
- package/sdk/dist/protocols/gelato/abis.js +2 -2
- package/sdk/dist/protocols/gho/functions.d.ts +2 -2
- package/sdk/dist/protocols/gho/functions.d.ts.map +1 -1
- package/sdk/dist/protocols/gho/functions.js +4 -6
- package/sdk/dist/protocols/gho/functions.js.map +1 -1
- package/sdk/dist/protocols/gmx-v1/abis.d.ts +15 -3
- package/sdk/dist/protocols/gmx-v1/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/gmx-v1/abis.js +5 -3
- package/sdk/dist/protocols/gmx-v1/abis.js.map +1 -1
- package/sdk/dist/protocols/gmx-v1/functions.d.ts +2 -2
- package/sdk/dist/protocols/gmx-v1/functions.d.ts.map +1 -1
- package/sdk/dist/protocols/gmx-v1/functions.js +2 -2
- package/sdk/dist/protocols/gmx-v2/abis.d.ts +11 -5
- package/sdk/dist/protocols/gmx-v2/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/gmx-v2/abis.js +7 -4
- package/sdk/dist/protocols/gmx-v2/abis.js.map +1 -1
- package/sdk/dist/protocols/gmx-v2/addresses.d.ts.map +1 -1
- package/sdk/dist/protocols/gmx-v2/addresses.js +3 -1
- package/sdk/dist/protocols/gmx-v2/addresses.js.map +1 -1
- package/sdk/dist/protocols/gmx-v2/functions.d.ts +1 -1
- package/sdk/dist/protocols/gmx-v2/functions.d.ts.map +1 -1
- package/sdk/dist/protocols/gmx-v2/functions.js +4 -2
- package/sdk/dist/protocols/gmx-v2/functions.js.map +1 -1
- package/sdk/dist/protocols/harvest/abis.d.ts +8 -2
- package/sdk/dist/protocols/harvest/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/harvest/abis.js +2 -2
- package/sdk/dist/protocols/harvest/abis.js.map +1 -1
- package/sdk/dist/protocols/hegic/abis.d.ts +5 -2
- package/sdk/dist/protocols/hegic/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/hegic/abis.js +7 -2
- package/sdk/dist/protocols/hegic/abis.js.map +1 -1
- package/sdk/dist/protocols/hegic/addresses.d.ts.map +1 -1
- package/sdk/dist/protocols/hegic/addresses.js +1 -0
- package/sdk/dist/protocols/hegic/addresses.js.map +1 -1
- package/sdk/dist/protocols/hegic/functions.d.ts +1 -1
- package/sdk/dist/protocols/hegic/functions.d.ts.map +1 -1
- package/sdk/dist/protocols/hegic/functions.js +3 -3
- package/sdk/dist/protocols/hop/addresses.d.ts.map +1 -1
- package/sdk/dist/protocols/hop/addresses.js +5 -2
- package/sdk/dist/protocols/hop/addresses.js.map +1 -1
- package/sdk/dist/protocols/hyperlane/abis.d.ts +5 -5
- package/sdk/dist/protocols/hyperlane/abis.js +5 -5
- package/sdk/dist/protocols/hyperlane/abis.js.map +1 -1
- package/sdk/dist/protocols/hyperlane/addresses.d.ts.map +1 -1
- package/sdk/dist/protocols/hyperlane/addresses.js +9 -0
- package/sdk/dist/protocols/hyperlane/addresses.js.map +1 -1
- package/sdk/dist/protocols/index.d.ts +1 -0
- package/sdk/dist/protocols/index.d.ts.map +1 -1
- package/sdk/dist/protocols/index.js +13 -0
- package/sdk/dist/protocols/index.js.map +1 -1
- package/sdk/dist/protocols/kim/abis.d.ts +7 -20
- package/sdk/dist/protocols/kim/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/kim/abis.js +6 -12
- package/sdk/dist/protocols/kim/abis.js.map +1 -1
- package/sdk/dist/protocols/kim/functions.d.ts +1 -1
- package/sdk/dist/protocols/kim/functions.d.ts.map +1 -1
- package/sdk/dist/protocols/kim/functions.js +3 -2
- package/sdk/dist/protocols/kim/functions.js.map +1 -1
- package/sdk/dist/protocols/kyberswap/abis.d.ts +41 -16
- package/sdk/dist/protocols/kyberswap/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/kyberswap/abis.js +21 -8
- package/sdk/dist/protocols/kyberswap/abis.js.map +1 -1
- package/sdk/dist/protocols/kyberswap/addresses.d.ts.map +1 -1
- package/sdk/dist/protocols/kyberswap/addresses.js +12 -2
- package/sdk/dist/protocols/kyberswap/addresses.js.map +1 -1
- package/sdk/dist/protocols/kyberswap-aggregator/addresses.d.ts.map +1 -1
- package/sdk/dist/protocols/kyberswap-aggregator/addresses.js +12 -1
- package/sdk/dist/protocols/kyberswap-aggregator/addresses.js.map +1 -1
- package/sdk/dist/protocols/layerbank/abis.d.ts +81 -24
- package/sdk/dist/protocols/layerbank/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/layerbank/abis.js +69 -17
- package/sdk/dist/protocols/layerbank/abis.js.map +1 -1
- package/sdk/dist/protocols/layerbank/addresses.d.ts.map +1 -1
- package/sdk/dist/protocols/layerbank/addresses.js +3 -1
- package/sdk/dist/protocols/layerbank/addresses.js.map +1 -1
- package/sdk/dist/protocols/layerbank/functions.d.ts +4 -4
- package/sdk/dist/protocols/layerbank/functions.d.ts.map +1 -1
- package/sdk/dist/protocols/layerbank/functions.js +18 -16
- package/sdk/dist/protocols/layerbank/functions.js.map +1 -1
- package/sdk/dist/protocols/layerzero/abis.d.ts +3 -3
- package/sdk/dist/protocols/layerzero/abis.js +3 -3
- package/sdk/dist/protocols/layerzero/addresses.d.ts.map +1 -1
- package/sdk/dist/protocols/layerzero/addresses.js +11 -1
- package/sdk/dist/protocols/layerzero/addresses.js.map +1 -1
- package/sdk/dist/protocols/level-finance/abis.d.ts +6 -0
- package/sdk/dist/protocols/level-finance/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/level-finance/abis.js +2 -0
- package/sdk/dist/protocols/level-finance/abis.js.map +1 -1
- package/sdk/dist/protocols/level-finance/functions.d.ts +2 -2
- package/sdk/dist/protocols/level-finance/functions.d.ts.map +1 -1
- package/sdk/dist/protocols/level-finance/functions.js +4 -4
- package/sdk/dist/protocols/lifi/abis.d.ts +41 -4
- package/sdk/dist/protocols/lifi/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/lifi/abis.js +24 -4
- package/sdk/dist/protocols/lifi/abis.js.map +1 -1
- package/sdk/dist/protocols/lifi/addresses.d.ts.map +1 -1
- package/sdk/dist/protocols/lifi/addresses.js +9 -0
- package/sdk/dist/protocols/lifi/addresses.js.map +1 -1
- package/sdk/dist/protocols/lifi/functions.d.ts +1 -1
- package/sdk/dist/protocols/lifi/functions.d.ts.map +1 -1
- package/sdk/dist/protocols/lifi/functions.js +5 -2
- package/sdk/dist/protocols/lifi/functions.js.map +1 -1
- package/sdk/dist/protocols/liquity-v1/abis.d.ts +6 -0
- package/sdk/dist/protocols/liquity-v1/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/liquity-v1/abis.js +7 -1
- package/sdk/dist/protocols/liquity-v1/abis.js.map +1 -1
- package/sdk/dist/protocols/liquity-v1/functions.d.ts +1 -1
- package/sdk/dist/protocols/liquity-v1/functions.d.ts.map +1 -1
- package/sdk/dist/protocols/liquity-v1/functions.js +1 -1
- package/sdk/dist/protocols/liquity-v2/functions.d.ts +2 -2
- package/sdk/dist/protocols/liquity-v2/functions.d.ts.map +1 -1
- package/sdk/dist/protocols/liquity-v2/functions.js +4 -6
- package/sdk/dist/protocols/liquity-v2/functions.js.map +1 -1
- package/sdk/dist/protocols/mantle-meth/abis.d.ts +26 -25
- package/sdk/dist/protocols/mantle-meth/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/mantle-meth/abis.js +22 -17
- package/sdk/dist/protocols/mantle-meth/abis.js.map +1 -1
- package/sdk/dist/protocols/mantle-meth/addresses.d.ts.map +1 -1
- package/sdk/dist/protocols/mantle-meth/addresses.js +3 -0
- package/sdk/dist/protocols/mantle-meth/addresses.js.map +1 -1
- package/sdk/dist/protocols/mantle-meth/functions.d.ts +1 -1
- package/sdk/dist/protocols/mantle-meth/functions.d.ts.map +1 -1
- package/sdk/dist/protocols/mantle-meth/functions.js +4 -4
- package/sdk/dist/protocols/maverick/abis.d.ts +9 -0
- package/sdk/dist/protocols/maverick/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/maverick/abis.js +7 -1
- package/sdk/dist/protocols/maverick/abis.js.map +1 -1
- package/sdk/dist/protocols/morpho-blue/addresses.d.ts.map +1 -1
- package/sdk/dist/protocols/morpho-blue/addresses.js +10 -0
- package/sdk/dist/protocols/morpho-blue/addresses.js.map +1 -1
- package/sdk/dist/protocols/mux-protocol/abis.d.ts +87 -32
- package/sdk/dist/protocols/mux-protocol/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/mux-protocol/abis.js +54 -21
- package/sdk/dist/protocols/mux-protocol/abis.js.map +1 -1
- package/sdk/dist/protocols/mux-protocol/functions.d.ts +2 -2
- package/sdk/dist/protocols/mux-protocol/functions.d.ts.map +1 -1
- package/sdk/dist/protocols/mux-protocol/functions.js +8 -8
- package/sdk/dist/protocols/olympus/abis.d.ts +5 -2
- package/sdk/dist/protocols/olympus/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/olympus/abis.js +2 -2
- package/sdk/dist/protocols/olympus/abis.js.map +1 -1
- package/sdk/dist/protocols/oneinch/abis.d.ts +5 -5
- package/sdk/dist/protocols/oneinch/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/oneinch/abis.js +5 -3
- package/sdk/dist/protocols/oneinch/abis.js.map +1 -1
- package/sdk/dist/protocols/oneinch/functions.d.ts +1 -1
- package/sdk/dist/protocols/oneinch/functions.d.ts.map +1 -1
- package/sdk/dist/protocols/oneinch/functions.js +2 -2
- package/sdk/dist/protocols/openocean/abis.d.ts +14 -1
- package/sdk/dist/protocols/openocean/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/openocean/abis.js +11 -1
- package/sdk/dist/protocols/openocean/abis.js.map +1 -1
- package/sdk/dist/protocols/openocean/functions.d.ts +1 -1
- package/sdk/dist/protocols/openocean/functions.d.ts.map +1 -1
- package/sdk/dist/protocols/openocean/functions.js +1 -1
- package/sdk/dist/protocols/opyn/abis.d.ts +4 -1
- package/sdk/dist/protocols/opyn/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/opyn/abis.js +1 -1
- package/sdk/dist/protocols/opyn/abis.js.map +1 -1
- package/sdk/dist/protocols/pancakeswap-v3/abis.d.ts +6 -6
- package/sdk/dist/protocols/pancakeswap-v3/abis.js +6 -6
- package/sdk/dist/protocols/pancakeswap-v3/abis.js.map +1 -1
- package/sdk/dist/protocols/paraswap/abis.d.ts +1 -1
- package/sdk/dist/protocols/paraswap/abis.js +1 -1
- package/sdk/dist/protocols/pendle/abis.d.ts +288 -6
- package/sdk/dist/protocols/pendle/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/pendle/abis.js +160 -6
- package/sdk/dist/protocols/pendle/abis.js.map +1 -1
- package/sdk/dist/protocols/permit2/abis.d.ts +1 -1
- package/sdk/dist/protocols/permit2/abis.js +1 -1
- package/sdk/dist/protocols/permit2/addresses.d.ts.map +1 -1
- package/sdk/dist/protocols/permit2/addresses.js +9 -0
- package/sdk/dist/protocols/permit2/addresses.js.map +1 -1
- package/sdk/dist/protocols/perpetual-protocol/abis.d.ts +46 -38
- package/sdk/dist/protocols/perpetual-protocol/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/perpetual-protocol/abis.js +27 -14
- package/sdk/dist/protocols/perpetual-protocol/abis.js.map +1 -1
- package/sdk/dist/protocols/premia/abis.d.ts +18 -17
- package/sdk/dist/protocols/premia/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/premia/abis.js +20 -10
- package/sdk/dist/protocols/premia/abis.js.map +1 -1
- package/sdk/dist/protocols/premia/addresses.d.ts.map +1 -1
- package/sdk/dist/protocols/premia/addresses.js +3 -8
- package/sdk/dist/protocols/premia/addresses.js.map +1 -1
- package/sdk/dist/protocols/premia/functions.d.ts +2 -2
- package/sdk/dist/protocols/premia/functions.d.ts.map +1 -1
- package/sdk/dist/protocols/premia/functions.js +8 -8
- package/sdk/dist/protocols/pyth/abis.d.ts +3 -3
- package/sdk/dist/protocols/pyth/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/pyth/abis.js +6 -3
- package/sdk/dist/protocols/pyth/abis.js.map +1 -1
- package/sdk/dist/protocols/reflexer/abis.d.ts +8 -5
- package/sdk/dist/protocols/reflexer/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/reflexer/abis.js +10 -6
- package/sdk/dist/protocols/reflexer/abis.js.map +1 -1
- package/sdk/dist/protocols/renzo/abis.d.ts +1 -1
- package/sdk/dist/protocols/renzo/abis.js +1 -1
- package/sdk/dist/protocols/renzo/abis.js.map +1 -1
- package/sdk/dist/protocols/sablier/abis.d.ts +2 -2
- package/sdk/dist/protocols/sablier/abis.js +2 -2
- package/sdk/dist/protocols/safe/addresses.d.ts.map +1 -1
- package/sdk/dist/protocols/safe/addresses.js +10 -0
- package/sdk/dist/protocols/safe/addresses.js.map +1 -1
- package/sdk/dist/protocols/seaport/abis.d.ts +65 -5
- package/sdk/dist/protocols/seaport/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/seaport/abis.js +41 -5
- package/sdk/dist/protocols/seaport/abis.js.map +1 -1
- package/sdk/dist/protocols/seaport/addresses.d.ts.map +1 -1
- package/sdk/dist/protocols/seaport/addresses.js +10 -0
- package/sdk/dist/protocols/seaport/addresses.js.map +1 -1
- package/sdk/dist/protocols/seaport/functions.d.ts +1 -1
- package/sdk/dist/protocols/seaport/functions.d.ts.map +1 -1
- package/sdk/dist/protocols/seaport/functions.js +1 -0
- package/sdk/dist/protocols/seaport/functions.js.map +1 -1
- package/sdk/dist/protocols/silo/abis.d.ts +3 -0
- package/sdk/dist/protocols/silo/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/silo/abis.js +4 -1
- package/sdk/dist/protocols/silo/abis.js.map +1 -1
- package/sdk/dist/protocols/silo/addresses.d.ts.map +1 -1
- package/sdk/dist/protocols/silo/addresses.js +2 -1
- package/sdk/dist/protocols/silo/addresses.js.map +1 -1
- package/sdk/dist/protocols/silo/functions.d.ts +1 -1
- package/sdk/dist/protocols/silo/functions.d.ts.map +1 -1
- package/sdk/dist/protocols/silo/functions.js +2 -1
- package/sdk/dist/protocols/silo/functions.js.map +1 -1
- package/sdk/dist/protocols/socket/abis.d.ts +1 -13
- package/sdk/dist/protocols/socket/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/socket/abis.js +3 -11
- package/sdk/dist/protocols/socket/abis.js.map +1 -1
- package/sdk/dist/protocols/socket/functions.d.ts +1 -1
- package/sdk/dist/protocols/socket/functions.d.ts.map +1 -1
- package/sdk/dist/protocols/socket/functions.js +1 -1
- package/sdk/dist/protocols/spookyswap/addresses.d.ts.map +1 -1
- package/sdk/dist/protocols/spookyswap/addresses.js +2 -1
- package/sdk/dist/protocols/spookyswap/addresses.js.map +1 -1
- package/sdk/dist/protocols/squid/abis.d.ts +33 -21
- package/sdk/dist/protocols/squid/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/squid/abis.js +19 -13
- package/sdk/dist/protocols/squid/abis.js.map +1 -1
- package/sdk/dist/protocols/squid/functions.d.ts +1 -1
- package/sdk/dist/protocols/squid/functions.d.ts.map +1 -1
- package/sdk/dist/protocols/squid/functions.js +2 -2
- package/sdk/dist/protocols/stargate/abis.d.ts +23 -3
- package/sdk/dist/protocols/stargate/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/stargate/abis.js +19 -3
- package/sdk/dist/protocols/stargate/abis.js.map +1 -1
- package/sdk/dist/protocols/superfluid/abis.d.ts +2 -2
- package/sdk/dist/protocols/superfluid/abis.js +2 -2
- package/sdk/dist/protocols/superfluid/abis.js.map +1 -1
- package/sdk/dist/protocols/sushiswap-v2/addresses.d.ts.map +1 -1
- package/sdk/dist/protocols/sushiswap-v2/addresses.js +2 -1
- package/sdk/dist/protocols/sushiswap-v2/addresses.js.map +1 -1
- package/sdk/dist/protocols/swell/abis.d.ts +2 -8
- package/sdk/dist/protocols/swell/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/swell/abis.js +4 -2
- package/sdk/dist/protocols/swell/abis.js.map +1 -1
- package/sdk/dist/protocols/swell/functions.d.ts +2 -2
- package/sdk/dist/protocols/swell/functions.d.ts.map +1 -1
- package/sdk/dist/protocols/swell/functions.js +4 -2
- package/sdk/dist/protocols/swell/functions.js.map +1 -1
- package/sdk/dist/protocols/synapse/addresses.d.ts.map +1 -1
- package/sdk/dist/protocols/synapse/addresses.js +2 -1
- package/sdk/dist/protocols/synapse/addresses.js.map +1 -1
- package/sdk/dist/protocols/synthetix-v3/abis.d.ts +40 -5
- package/sdk/dist/protocols/synthetix-v3/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/synthetix-v3/abis.js +27 -5
- package/sdk/dist/protocols/synthetix-v3/abis.js.map +1 -1
- package/sdk/dist/protocols/synthetix-v3/addresses.d.ts.map +1 -1
- package/sdk/dist/protocols/synthetix-v3/addresses.js +2 -1
- package/sdk/dist/protocols/synthetix-v3/addresses.js.map +1 -1
- package/sdk/dist/protocols/synthra-v3/abis.d.ts +347 -0
- package/sdk/dist/protocols/synthra-v3/abis.d.ts.map +1 -0
- package/sdk/dist/protocols/synthra-v3/abis.js +242 -0
- package/sdk/dist/protocols/synthra-v3/abis.js.map +1 -0
- package/sdk/dist/protocols/synthra-v3/addresses.d.ts +3 -0
- package/sdk/dist/protocols/synthra-v3/addresses.d.ts.map +1 -0
- package/sdk/dist/protocols/synthra-v3/addresses.js +16 -0
- package/sdk/dist/protocols/synthra-v3/addresses.js.map +1 -0
- package/sdk/dist/protocols/synthra-v3/functions.d.ts +2 -0
- package/sdk/dist/protocols/synthra-v3/functions.d.ts.map +1 -0
- package/sdk/dist/protocols/synthra-v3/functions.js +9 -0
- package/sdk/dist/protocols/synthra-v3/functions.js.map +1 -0
- package/sdk/dist/protocols/synthra-v3/index.d.ts +5 -0
- package/sdk/dist/protocols/synthra-v3/index.d.ts.map +1 -0
- package/sdk/dist/protocols/synthra-v3/index.js +5 -0
- package/sdk/dist/protocols/synthra-v3/index.js.map +1 -0
- package/sdk/dist/protocols/synthra-v3/info.d.ts +3 -0
- package/sdk/dist/protocols/synthra-v3/info.d.ts.map +1 -0
- package/sdk/dist/protocols/synthra-v3/info.js +11 -0
- package/sdk/dist/protocols/synthra-v3/info.js.map +1 -0
- package/sdk/dist/protocols/thales/abis.d.ts +53 -24
- package/sdk/dist/protocols/thales/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/thales/abis.js +27 -11
- package/sdk/dist/protocols/thales/abis.js.map +1 -1
- package/sdk/dist/protocols/thales/functions.d.ts +2 -2
- package/sdk/dist/protocols/thales/functions.d.ts.map +1 -1
- package/sdk/dist/protocols/thales/functions.js +5 -6
- package/sdk/dist/protocols/thales/functions.js.map +1 -1
- package/sdk/dist/protocols/thruster/abis.d.ts +1 -1
- package/sdk/dist/protocols/thruster/abis.js +1 -1
- package/sdk/dist/protocols/trader-joe/abis.d.ts +3 -3
- package/sdk/dist/protocols/trader-joe/abis.js +2 -2
- package/sdk/dist/protocols/trader-joe/abis.js.map +1 -1
- package/sdk/dist/protocols/uniswap-v2/addresses.d.ts.map +1 -1
- package/sdk/dist/protocols/uniswap-v2/addresses.js +10 -0
- package/sdk/dist/protocols/uniswap-v2/addresses.js.map +1 -1
- package/sdk/dist/protocols/uniswap-v3/abis.d.ts +127 -8
- package/sdk/dist/protocols/uniswap-v3/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/uniswap-v3/abis.js +90 -8
- package/sdk/dist/protocols/uniswap-v3/abis.js.map +1 -1
- package/sdk/dist/protocols/uniswap-v3/addresses.d.ts.map +1 -1
- package/sdk/dist/protocols/uniswap-v3/addresses.js +14 -0
- package/sdk/dist/protocols/uniswap-v3/addresses.js.map +1 -1
- package/sdk/dist/protocols/uniswap-v4/abis.d.ts +27 -15
- package/sdk/dist/protocols/uniswap-v4/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/uniswap-v4/abis.js +25 -15
- 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 +11 -0
- package/sdk/dist/protocols/uniswap-v4/addresses.js.map +1 -1
- package/sdk/dist/protocols/unitflow-v3/abis.d.ts +104 -0
- package/sdk/dist/protocols/unitflow-v3/abis.d.ts.map +1 -0
- package/sdk/dist/protocols/unitflow-v3/abis.js +70 -0
- package/sdk/dist/protocols/unitflow-v3/abis.js.map +1 -0
- package/sdk/dist/protocols/unitflow-v3/addresses.d.ts +3 -0
- package/sdk/dist/protocols/unitflow-v3/addresses.d.ts.map +1 -0
- package/sdk/dist/protocols/unitflow-v3/addresses.js +19 -0
- package/sdk/dist/protocols/unitflow-v3/addresses.js.map +1 -0
- package/sdk/dist/protocols/unitflow-v3/functions.d.ts +2 -0
- package/sdk/dist/protocols/unitflow-v3/functions.d.ts.map +1 -0
- package/sdk/dist/protocols/unitflow-v3/functions.js +9 -0
- package/sdk/dist/protocols/unitflow-v3/functions.js.map +1 -0
- package/sdk/dist/protocols/unitflow-v3/index.d.ts +5 -0
- package/sdk/dist/protocols/unitflow-v3/index.d.ts.map +1 -0
- package/sdk/dist/protocols/unitflow-v3/index.js +5 -0
- package/sdk/dist/protocols/unitflow-v3/index.js.map +1 -0
- package/sdk/dist/protocols/unitflow-v3/info.d.ts +3 -0
- package/sdk/dist/protocols/unitflow-v3/info.d.ts.map +1 -0
- package/sdk/dist/protocols/unitflow-v3/info.js +12 -0
- package/sdk/dist/protocols/unitflow-v3/info.js.map +1 -0
- package/sdk/dist/protocols/velodrome/addresses.d.ts.map +1 -1
- package/sdk/dist/protocols/velodrome/addresses.js +3 -1
- package/sdk/dist/protocols/velodrome/addresses.js.map +1 -1
- package/sdk/dist/protocols/venus/abis.d.ts +62 -1
- package/sdk/dist/protocols/venus/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/venus/abis.js +48 -1
- package/sdk/dist/protocols/venus/abis.js.map +1 -1
- package/sdk/dist/protocols/vertex/abis.d.ts +16 -9
- package/sdk/dist/protocols/vertex/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/vertex/abis.js +13 -4
- package/sdk/dist/protocols/vertex/abis.js.map +1 -1
- package/sdk/dist/protocols/wormhole/abis.d.ts +2 -2
- package/sdk/dist/protocols/wormhole/abis.js +2 -2
- package/sdk/dist/protocols/wormhole/addresses.d.ts.map +1 -1
- package/sdk/dist/protocols/wormhole/addresses.js +9 -0
- package/sdk/dist/protocols/wormhole/addresses.js.map +1 -1
- package/sdk/dist/protocols/zerolend/addresses.d.ts.map +1 -1
- package/sdk/dist/protocols/zerolend/addresses.js +2 -1
- package/sdk/dist/protocols/zerolend/addresses.js.map +1 -1
- package/sdk/dist/protocols/zerox/addresses.d.ts.map +1 -1
- package/sdk/dist/protocols/zerox/addresses.js +2 -1
- package/sdk/dist/protocols/zerox/addresses.js.map +1 -1
- package/sdk/dist/protocols/zksync-bridge/abis.d.ts +1 -1
- package/sdk/dist/protocols/zksync-bridge/abis.js +1 -1
- package/sdk/dist/recipes/cctp-split.sauce.ts +3 -1
- package/sdk/dist/recipes/cctp-transfer.d.ts +17 -6
- package/sdk/dist/recipes/cctp-transfer.d.ts.map +1 -1
- package/sdk/dist/recipes/cctp-transfer.js +7 -20
- package/sdk/dist/recipes/cctp-transfer.js.map +1 -1
- package/sdk/dist/recipes/index.d.ts +5 -15
- package/sdk/dist/recipes/index.d.ts.map +1 -1
- package/sdk/dist/recipes/index.js +19 -36
- package/sdk/dist/recipes/index.js.map +1 -1
- package/sdk/dist/recipes/plain-transfer.sauce.ts +3 -0
- package/sdk/dist/recipes/settle.sauce.ts +15 -2
- package/sdk/dist/routes/ast-walk.d.ts +4 -0
- package/sdk/dist/routes/ast-walk.d.ts.map +1 -1
- package/sdk/dist/routes/ast-walk.js +9 -2
- package/sdk/dist/routes/ast-walk.js.map +1 -1
- package/sdk/dist/routes/chain-exports.generated.d.ts +97 -0
- package/sdk/dist/routes/chain-exports.generated.d.ts.map +1 -0
- package/sdk/dist/routes/chain-exports.generated.js +91 -0
- package/sdk/dist/routes/chain-exports.generated.js.map +1 -0
- package/sdk/dist/routes/compile-types.d.ts +3 -0
- package/sdk/dist/routes/compile-types.d.ts.map +1 -1
- package/sdk/dist/routes/composed.d.ts +13 -0
- package/sdk/dist/routes/composed.d.ts.map +1 -0
- package/sdk/dist/routes/composed.js +94 -0
- package/sdk/dist/routes/composed.js.map +1 -0
- package/sdk/dist/routes/encode.d.ts +6 -6
- package/sdk/dist/routes/globals.d.ts +19 -4
- package/sdk/dist/routes/globals.d.ts.map +1 -1
- package/sdk/dist/routes/globals.js +51 -85
- package/sdk/dist/routes/globals.js.map +1 -1
- package/sdk/dist/routes/index.d.ts +17 -8
- package/sdk/dist/routes/index.d.ts.map +1 -1
- package/sdk/dist/routes/index.js +18 -6
- package/sdk/dist/routes/index.js.map +1 -1
- package/sdk/dist/routes/intent-dsl.d.ts +60 -19
- package/sdk/dist/routes/intent-dsl.d.ts.map +1 -1
- package/sdk/dist/routes/intent-dsl.js +175 -67
- package/sdk/dist/routes/intent-dsl.js.map +1 -1
- package/sdk/dist/routes/intent-pot.d.ts +49 -0
- package/sdk/dist/routes/intent-pot.d.ts.map +1 -0
- package/sdk/dist/routes/intent-pot.js +46 -0
- package/sdk/dist/routes/intent-pot.js.map +1 -0
- package/sdk/dist/routes/intent-sugar.d.ts +97 -0
- package/sdk/dist/routes/intent-sugar.d.ts.map +1 -0
- package/sdk/dist/routes/intent-sugar.js +632 -0
- package/sdk/dist/routes/intent-sugar.js.map +1 -0
- package/sdk/dist/routes/nest-dynamic.d.ts +146 -0
- package/sdk/dist/routes/nest-dynamic.d.ts.map +1 -0
- package/sdk/dist/routes/nest-dynamic.js +308 -0
- package/sdk/dist/routes/nest-dynamic.js.map +1 -0
- package/sdk/dist/routes/nest.d.ts +16 -5
- package/sdk/dist/routes/nest.d.ts.map +1 -1
- package/sdk/dist/routes/nest.js +29 -10
- package/sdk/dist/routes/nest.js.map +1 -1
- package/sdk/dist/routes/portal.d.ts +7 -272
- package/sdk/dist/routes/portal.d.ts.map +1 -1
- package/sdk/dist/routes/portal.js +13 -92
- package/sdk/dist/routes/portal.js.map +1 -1
- package/sdk/dist/routes/protocol-rewrite.d.ts.map +1 -1
- package/sdk/dist/routes/protocol-rewrite.js +2 -0
- package/sdk/dist/routes/protocol-rewrite.js.map +1 -1
- package/sdk/dist/routes/rs-compile.d.ts +26 -15
- package/sdk/dist/routes/rs-compile.d.ts.map +1 -1
- package/sdk/dist/routes/rs-compile.js +57 -169
- package/sdk/dist/routes/rs-compile.js.map +1 -1
- package/sdk/dist/routes/sauce-route.d.ts +26 -1
- package/sdk/dist/routes/sauce-route.d.ts.map +1 -1
- package/sdk/dist/routes/sauce-route.js +133 -27
- package/sdk/dist/routes/sauce-route.js.map +1 -1
- package/sdk/dist/routes/source-globals.generated.d.ts +442 -23
- package/sdk/dist/routes/source-globals.generated.d.ts.map +1 -1
- package/sdk/dist/routes/template.d.ts +184 -0
- package/sdk/dist/routes/template.d.ts.map +1 -0
- package/sdk/dist/routes/template.js +338 -0
- package/sdk/dist/routes/template.js.map +1 -0
- package/sdk/dist/routes/token-registry.d.ts.map +1 -1
- package/sdk/dist/routes/token-registry.js +41 -1
- package/sdk/dist/routes/token-registry.js.map +1 -1
- package/sdk/dist/routes/token-rewrite.d.ts +63 -28
- package/sdk/dist/routes/token-rewrite.d.ts.map +1 -1
- package/sdk/dist/routes/token-rewrite.js +390 -122
- package/sdk/dist/routes/token-rewrite.js.map +1 -1
- package/sdk/dist/skills/loader.d.ts +2 -7
- package/sdk/dist/skills/loader.d.ts.map +1 -1
- package/sdk/dist/skills/loader.js +14 -25
- package/sdk/dist/skills/loader.js.map +1 -1
- package/sdk/dist/std/token/token.evm.js +56 -15
- package/sdk/dist/std/token/token.svm.js +24 -3
- package/sdk/dist/svm/accessors.d.ts +3 -3
- package/sdk/dist/svm/accessors.js +3 -3
- package/sdk/dist/svm/client.d.ts +1 -0
- package/sdk/dist/svm/client.d.ts.map +1 -1
- package/sdk/dist/svm/client.js +6 -0
- package/sdk/dist/svm/client.js.map +1 -1
- package/sdk/dist/svm/clusters.d.ts +6 -2
- package/sdk/dist/svm/clusters.d.ts.map +1 -1
- package/sdk/dist/svm/clusters.js +0 -2
- package/sdk/dist/svm/clusters.js.map +1 -1
- package/sdk/dist/svm/engine-artifacts.d.ts +24 -13
- package/sdk/dist/svm/engine-artifacts.d.ts.map +1 -1
- package/sdk/dist/svm/engine-artifacts.js +31 -26
- package/sdk/dist/svm/engine-artifacts.js.map +1 -1
- package/sdk/dist/svm/engine-public.d.ts.map +1 -1
- package/sdk/dist/svm/engine-public.js +2 -1
- package/sdk/dist/svm/engine-public.js.map +1 -1
- package/sdk/dist/svm/index.d.ts +0 -1
- package/sdk/dist/svm/index.d.ts.map +1 -1
- package/sdk/dist/svm/index.js +3 -1
- package/sdk/dist/svm/index.js.map +1 -1
- package/sdk/dist/svm/intent.d.ts.map +1 -1
- package/sdk/dist/svm/intent.js +4 -3
- package/sdk/dist/svm/intent.js.map +1 -1
- package/sdk/dist/svm/loader.d.ts.map +1 -1
- package/sdk/dist/svm/loader.js +2 -3
- package/sdk/dist/svm/loader.js.map +1 -1
- package/sdk/dist/svm/recipes/index.d.ts +57 -4
- package/sdk/dist/svm/recipes/index.d.ts.map +1 -1
- package/sdk/dist/svm/recipes/index.js +7 -9
- package/sdk/dist/svm/recipes/index.js.map +1 -1
- package/sdk/dist/svm/venues/alphaq/index.d.ts.map +1 -1
- package/sdk/dist/svm/venues/alphaq/index.js +4 -2
- package/sdk/dist/svm/venues/alphaq/index.js.map +1 -1
- package/sdk/dist/svm/venues/binaryfi/index.d.ts.map +1 -1
- package/sdk/dist/svm/venues/binaryfi/index.js +2 -1
- package/sdk/dist/svm/venues/binaryfi/index.js.map +1 -1
- package/sdk/dist/svm/venues/fluxbeam/index.d.ts.map +1 -1
- package/sdk/dist/svm/venues/fluxbeam/index.js +2 -7
- package/sdk/dist/svm/venues/fluxbeam/index.js.map +1 -1
- package/sdk/dist/svm/venues/jupiter-lend-earn/index.d.ts.map +1 -1
- package/sdk/dist/svm/venues/jupiter-lend-earn/index.js +2 -1
- package/sdk/dist/svm/venues/jupiter-lend-earn/index.js.map +1 -1
- package/sdk/dist/svm/venues/kipseli/index.d.ts.map +1 -1
- package/sdk/dist/svm/venues/kipseli/index.js +31 -14
- package/sdk/dist/svm/venues/kipseli/index.js.map +1 -1
- package/sdk/dist/svm/venues/mercurial/index.d.ts.map +1 -1
- package/sdk/dist/svm/venues/mercurial/index.js +2 -7
- package/sdk/dist/svm/venues/mercurial/index.js.map +1 -1
- package/sdk/dist/svm/venues/meteora-damm-v1-stable/index.d.ts.map +1 -1
- package/sdk/dist/svm/venues/meteora-damm-v1-stable/index.js +3 -2
- package/sdk/dist/svm/venues/meteora-damm-v1-stable/index.js.map +1 -1
- package/sdk/dist/svm/venues/mswap/index.d.ts.map +1 -1
- package/sdk/dist/svm/venues/mswap/index.js +2 -2
- package/sdk/dist/svm/venues/mswap/index.js.map +1 -1
- package/sdk/dist/svm/venues/orca-legacy-token-swap/index.d.ts.map +1 -1
- package/sdk/dist/svm/venues/orca-legacy-token-swap/index.js +2 -7
- package/sdk/dist/svm/venues/orca-legacy-token-swap/index.js.map +1 -1
- package/sdk/dist/svm/venues/saber-stableswap/index.d.ts.map +1 -1
- package/sdk/dist/svm/venues/saber-stableswap/index.js +2 -7
- package/sdk/dist/svm/venues/saber-stableswap/index.js.map +1 -1
- package/sdk/dist/svm/venues/sanctum-infinity/index.js +2 -2
- package/sdk/dist/svm/venues/sanctum-infinity/index.js.map +1 -1
- package/sdk/dist/svm/venues/sanctum-stake-pool/index.d.ts.map +1 -1
- package/sdk/dist/svm/venues/sanctum-stake-pool/index.js +2 -8
- package/sdk/dist/svm/venues/sanctum-stake-pool/index.js.map +1 -1
- package/sdk/dist/svm/venues/spl-token-swap-forks/index.d.ts.map +1 -1
- package/sdk/dist/svm/venues/spl-token-swap-forks/index.js +2 -7
- package/sdk/dist/svm/venues/spl-token-swap-forks/index.js.map +1 -1
- package/sdk/dist/svm/venues/stabble-common.d.ts.map +1 -1
- package/sdk/dist/svm/venues/stabble-common.js +3 -8
- package/sdk/dist/svm/venues/stabble-common.js.map +1 -1
- package/sdk/dist/svm/verify.d.ts.map +1 -1
- package/sdk/dist/svm/verify.js +1 -4
- package/sdk/dist/svm/verify.js.map +1 -1
- package/sdk/dist/swap/index.d.ts +4 -4
- package/sdk/dist/swap/index.d.ts.map +1 -1
- package/sdk/dist/swap/index.js +4 -4
- package/sdk/dist/swap/index.js.map +1 -1
- package/sdk/dist/swap/source.d.ts +0 -7
- package/sdk/dist/swap/source.d.ts.map +1 -1
- package/sdk/dist/swap/source.js +3 -11
- package/sdk/dist/swap/source.js.map +1 -1
- package/sdk/dist/token/api.d.ts +14 -12
- package/sdk/dist/token/api.d.ts.map +1 -1
- package/sdk/dist/token/api.js +4 -5
- package/sdk/dist/token/api.js.map +1 -1
- package/sdk/dist/token/evm.d.ts +5 -2
- package/sdk/dist/token/evm.d.ts.map +1 -1
- package/sdk/dist/token/evm.js +26 -15
- package/sdk/dist/token/evm.js.map +1 -1
- package/sdk/dist/token/index.d.ts +7 -7
- package/sdk/dist/token/index.js +7 -7
- package/sdk/dist/token/safe.d.ts +17 -0
- package/sdk/dist/token/safe.d.ts.map +1 -0
- package/sdk/dist/token/safe.js +211 -0
- package/sdk/dist/token/safe.js.map +1 -0
- package/sdk/dist/token/source.d.ts +0 -4
- package/sdk/dist/token/source.d.ts.map +1 -1
- package/sdk/dist/token/source.js +7 -10
- package/sdk/dist/token/source.js.map +1 -1
- package/sdk/dist/verify/decode.d.ts +6 -6
- package/sdk/dist/verify/decode.js +7 -7
- package/sdk/dist/verify/decode.js.map +1 -1
- package/sdk/dist/verify/index.js +2 -2
- package/sdk/dist/verify/intent.js +2 -2
- package/sdk/dist/verify/vectors.d.ts +1 -1
- package/sdk/dist/verify/vectors.d.ts.map +1 -1
- package/sdk/dist/verify/vectors.js +2 -2
- package/sdk/dist/verify/vectors.js.map +1 -1
- package/sdk/dist/verify/wire.d.ts +21 -4
- package/sdk/dist/verify/wire.d.ts.map +1 -1
- package/sdk/dist/verify/wire.js +21 -4
- package/sdk/dist/verify/wire.js.map +1 -1
- package/sdk/dist/wasm-compiler.d.ts +31 -0
- package/sdk/dist/wasm-compiler.d.ts.map +1 -0
- package/sdk/dist/wasm-compiler.js +52 -0
- package/sdk/dist/wasm-compiler.js.map +1 -0
- package/sdk/src/protocols/aave-v4/AaveV4HubABI.json +67 -0
- package/sdk/src/protocols/aave-v4/AaveV4SpokeABI.json +215 -0
- package/sdk/src/protocols/aave-v4/abis.ts +139 -0
- package/sdk/src/protocols/aave-v4/addresses.ts +66 -0
- package/sdk/src/protocols/aave-v4/functions.ts +39 -0
- package/sdk/src/protocols/aave-v4/index.ts +4 -0
- package/sdk/src/protocols/aave-v4/info.ts +14 -0
- package/sdk/src/protocols/across/AcrossHubPoolABI.json +2 -2
- package/sdk/src/protocols/across/AcrossSpokePoolABI.json +27 -11
- package/sdk/src/protocols/across/abis.ts +16 -8
- package/sdk/src/protocols/across/addresses.ts +10 -0
- package/sdk/src/protocols/across/functions.ts +2 -2
- package/sdk/src/protocols/aerodrome-slipstream/AeroMetarouterABI.json +24 -0
- package/sdk/src/protocols/aerodrome-slipstream/SlipstreamCLFactoryABI.json +58 -0
- package/sdk/src/protocols/aerodrome-slipstream/SlipstreamPositionManagerABI.json +77 -0
- package/sdk/src/protocols/aerodrome-slipstream/abis.ts +74 -0
- package/sdk/src/protocols/aerodrome-slipstream/addresses.ts +40 -0
- package/sdk/src/protocols/aerodrome-slipstream/functions.ts +8 -0
- package/sdk/src/protocols/aerodrome-slipstream/index.ts +4 -0
- package/sdk/src/protocols/aerodrome-slipstream/info.ts +14 -0
- package/sdk/src/protocols/aevo/DepositContractABI.json +23 -2
- package/sdk/src/protocols/aevo/abis.ts +10 -2
- package/sdk/src/protocols/aevo/functions.ts +2 -2
- package/sdk/src/protocols/alchemix/AlchemistABI.json +1 -1
- package/sdk/src/protocols/alchemix/abis.ts +1 -1
- package/sdk/src/protocols/ambient/CrocSwapDexABI.json +2 -2
- package/sdk/src/protocols/ambient/abis.ts +3 -2
- package/sdk/src/protocols/ambient/addresses.ts +2 -1
- package/sdk/src/protocols/arrakis/ArrakisRouterABI.json +5 -1
- package/sdk/src/protocols/arrakis/ArrakisVaultABI.json +0 -16
- package/sdk/src/protocols/arrakis/abis.ts +2 -11
- package/sdk/src/protocols/arrakis/functions.ts +2 -1
- package/sdk/src/protocols/axelar/AxelarITSABI.json +1 -1
- package/sdk/src/protocols/axelar/abis.ts +1 -1
- package/sdk/src/protocols/balancer-v2/BalancerV2VaultABI.json +7 -7
- package/sdk/src/protocols/balancer-v2/abis.ts +7 -7
- package/sdk/src/protocols/cbeth/CbETHABI.json +10 -1
- package/sdk/src/protocols/cbeth/abis.ts +6 -2
- package/sdk/src/protocols/cbeth/functions.ts +4 -6
- package/sdk/src/protocols/cctp/TokenMessengerABI.json +30 -9
- package/sdk/src/protocols/cctp/abis.ts +3 -1
- package/sdk/src/protocols/cctp/addresses.ts +3 -0
- package/sdk/src/protocols/chainlink/AggregatorV3ABI.json +3 -3
- package/sdk/src/protocols/chainlink/FeedRegistryABI.json +3 -3
- package/sdk/src/protocols/chainlink/abis.ts +6 -6
- package/sdk/src/protocols/chainlink/addresses.ts +10 -0
- package/sdk/src/protocols/chainlink-ccip/CCIPRouterABI.json +1 -1
- package/sdk/src/protocols/chainlink-ccip/abis.ts +1 -1
- package/sdk/src/protocols/chainlink-ccip/addresses.ts +9 -0
- package/sdk/src/protocols/circle-gateway/GatewayMinterABI.json +49 -0
- package/sdk/src/protocols/circle-gateway/GatewayWalletABI.json +111 -0
- package/sdk/src/protocols/circle-gateway/abis.ts +86 -0
- package/sdk/src/protocols/circle-gateway/addresses.ts +39 -0
- package/sdk/src/protocols/circle-gateway/functions.ts +28 -0
- package/sdk/src/protocols/circle-gateway/index.ts +4 -0
- package/sdk/src/protocols/circle-gateway/info.ts +14 -0
- package/sdk/src/protocols/compound-v2/CErc20ABI.json +2 -2
- package/sdk/src/protocols/compound-v2/abis.ts +2 -2
- package/sdk/src/protocols/connext/EverclearSpokeABI.json +60 -6
- package/sdk/src/protocols/connext/abis.ts +27 -5
- package/sdk/src/protocols/connext/addresses.ts +1 -7
- package/sdk/src/protocols/connext/functions.ts +3 -2
- package/sdk/src/protocols/crvusd/functions.ts +6 -6
- package/sdk/src/protocols/curve/CurveRouterNGABI.json +37 -0
- package/sdk/src/protocols/curve/CurveStableSwapABI.json +7 -7
- package/sdk/src/protocols/curve/CurveThreePoolABI.json +117 -0
- package/sdk/src/protocols/curve/abis.ts +91 -7
- package/sdk/src/protocols/debridge/DlnDestinationABI.json +7 -7
- package/sdk/src/protocols/debridge/DlnSourceABI.json +1 -1
- package/sdk/src/protocols/debridge/abis.ts +5 -5
- package/sdk/src/protocols/debridge/addresses.ts +11 -0
- package/sdk/src/protocols/eco-routes/abis.ts +633 -0
- package/sdk/src/protocols/eco-routes/addresses.generated.ts +589 -0
- package/sdk/src/protocols/eco-routes/addresses.ts +27 -0
- package/sdk/src/protocols/eco-routes/functions.ts +45 -0
- package/sdk/src/protocols/eco-routes/index.ts +5 -0
- package/sdk/src/protocols/eco-routes/info.ts +14 -0
- package/sdk/src/protocols/eco-routes/lookup.ts +215 -0
- package/sdk/src/protocols/eigenlayer/DelegationManagerABI.json +2 -2
- package/sdk/src/protocols/eigenlayer/StrategyManagerABI.json +2 -2
- package/sdk/src/protocols/eigenlayer/abis.ts +5 -4
- package/sdk/src/protocols/ens/ENSRegistryABI.json +4 -4
- package/sdk/src/protocols/ens/abis.ts +4 -4
- package/sdk/src/protocols/erc20/functions.ts +6 -9
- package/sdk/src/protocols/etherfi/WeETHABI.json +1 -1
- package/sdk/src/protocols/etherfi/abis.ts +2 -1
- package/sdk/src/protocols/euler-v2/EVCABI.json +2 -2
- package/sdk/src/protocols/euler-v2/abis.ts +2 -2
- package/sdk/src/protocols/fluid/FluidLendingABI.json +20 -37
- package/sdk/src/protocols/fluid/FluidVaultABI.json +41 -0
- package/sdk/src/protocols/fluid/abis.ts +41 -18
- package/sdk/src/protocols/fluid/functions.ts +18 -16
- package/sdk/src/protocols/frax/functions.ts +6 -6
- package/sdk/src/protocols/gains-network/DiamondABI.json +49 -37
- package/sdk/src/protocols/gains-network/abis.ts +26 -21
- package/sdk/src/protocols/gains-network/functions.ts +6 -6
- package/sdk/src/protocols/gamma/UniProxyLegacyABI.json +62 -0
- package/sdk/src/protocols/gamma/abis.ts +31 -0
- package/sdk/src/protocols/gamma/addresses.ts +2 -7
- package/sdk/src/protocols/gamma/functions.ts +10 -0
- package/sdk/src/protocols/gelato/GelatoAutomateABI.json +2 -2
- package/sdk/src/protocols/gelato/abis.ts +2 -2
- package/sdk/src/protocols/gho/functions.ts +4 -6
- package/sdk/src/protocols/gmx-v1/PositionRouterABI.json +21 -3
- package/sdk/src/protocols/gmx-v1/abis.ts +5 -3
- package/sdk/src/protocols/gmx-v1/functions.ts +2 -2
- package/sdk/src/protocols/gmx-v2/ExchangeRouterABI.json +13 -5
- package/sdk/src/protocols/gmx-v2/abis.ts +7 -4
- package/sdk/src/protocols/gmx-v2/addresses.ts +3 -1
- package/sdk/src/protocols/gmx-v2/functions.ts +4 -2
- package/sdk/src/protocols/harvest/VaultABI.json +12 -2
- package/sdk/src/protocols/harvest/abis.ts +2 -2
- package/sdk/src/protocols/hegic/HegicABI.json +6 -2
- package/sdk/src/protocols/hegic/abis.ts +7 -2
- package/sdk/src/protocols/hegic/addresses.ts +1 -0
- package/sdk/src/protocols/hegic/functions.ts +3 -3
- package/sdk/src/protocols/hop/addresses.ts +5 -2
- package/sdk/src/protocols/hyperlane/HyperlaneMailboxABI.json +5 -5
- package/sdk/src/protocols/hyperlane/abis.ts +5 -5
- package/sdk/src/protocols/hyperlane/addresses.ts +9 -0
- package/sdk/src/protocols/index.ts +13 -0
- package/sdk/src/protocols/kim/KimRouterABI.json +8 -27
- package/sdk/src/protocols/kim/abis.ts +6 -12
- package/sdk/src/protocols/kim/functions.ts +3 -2
- package/sdk/src/protocols/kyberswap/KyberSwapElasticRouterABI.json +1 -1
- package/sdk/src/protocols/kyberswap/KyberSwapMetaAggregationRouterABI.json +52 -18
- package/sdk/src/protocols/kyberswap/abis.ts +21 -8
- package/sdk/src/protocols/kyberswap/addresses.ts +12 -2
- package/sdk/src/protocols/kyberswap-aggregator/addresses.ts +12 -1
- package/sdk/src/protocols/layerbank/LTokenABI.json +19 -29
- package/sdk/src/protocols/layerbank/LayerBankCoreABI.json +87 -2
- package/sdk/src/protocols/layerbank/abis.ts +69 -17
- package/sdk/src/protocols/layerbank/addresses.ts +3 -1
- package/sdk/src/protocols/layerbank/functions.ts +18 -16
- package/sdk/src/protocols/layerzero/LayerZeroEndpointV2ABI.json +3 -3
- package/sdk/src/protocols/layerzero/abis.ts +3 -3
- package/sdk/src/protocols/layerzero/addresses.ts +11 -1
- package/sdk/src/protocols/level-finance/LiquidityPoolABI.json +8 -0
- package/sdk/src/protocols/level-finance/abis.ts +2 -0
- package/sdk/src/protocols/level-finance/functions.ts +4 -4
- package/sdk/src/protocols/lifi/LiFiDiamondABI.json +54 -4
- package/sdk/src/protocols/lifi/abis.ts +24 -4
- package/sdk/src/protocols/lifi/addresses.ts +9 -0
- package/sdk/src/protocols/lifi/functions.ts +5 -2
- package/sdk/src/protocols/liquity-v1/BorrowerOperationsABI.json +8 -0
- package/sdk/src/protocols/liquity-v1/abis.ts +7 -1
- package/sdk/src/protocols/liquity-v1/functions.ts +1 -1
- package/sdk/src/protocols/liquity-v2/functions.ts +4 -6
- package/sdk/src/protocols/mantle-meth/METHABI.json +0 -46
- package/sdk/src/protocols/mantle-meth/METHStakingABI.json +50 -0
- package/sdk/src/protocols/mantle-meth/abis.ts +23 -17
- package/sdk/src/protocols/mantle-meth/addresses.ts +3 -0
- package/sdk/src/protocols/mantle-meth/functions.ts +4 -4
- package/sdk/src/protocols/maverick/MaverickV2FactoryABI.json +8 -0
- package/sdk/src/protocols/maverick/MaverickV2RouterABI.json +4 -0
- package/sdk/src/protocols/maverick/abis.ts +7 -1
- package/sdk/src/protocols/morpho-blue/addresses.ts +10 -0
- package/sdk/src/protocols/mux-protocol/LiquidityPoolABI.json +45 -11
- package/sdk/src/protocols/mux-protocol/OrderBookABI.json +59 -17
- package/sdk/src/protocols/mux-protocol/abis.ts +55 -22
- package/sdk/src/protocols/mux-protocol/functions.ts +8 -8
- package/sdk/src/protocols/olympus/StakingABI.json +8 -3
- package/sdk/src/protocols/olympus/abis.ts +2 -2
- package/sdk/src/protocols/oneinch/AggregationRouterV6ABI.json +5 -5
- package/sdk/src/protocols/oneinch/abis.ts +5 -3
- package/sdk/src/protocols/oneinch/functions.ts +2 -2
- package/sdk/src/protocols/openocean/OpenOceanExchangeV2ABI.json +19 -1
- package/sdk/src/protocols/openocean/abis.ts +11 -1
- package/sdk/src/protocols/openocean/functions.ts +1 -1
- package/sdk/src/protocols/opyn/ControllerABI.json +6 -1
- package/sdk/src/protocols/opyn/abis.ts +1 -1
- package/sdk/src/protocols/pancakeswap-v3/PancakeSwapV3FactoryABI.json +1 -1
- package/sdk/src/protocols/pancakeswap-v3/PancakeSwapV3NFPMABI.json +3 -3
- package/sdk/src/protocols/pancakeswap-v3/PancakeSwapV3SmartRouterABI.json +2 -2
- package/sdk/src/protocols/pancakeswap-v3/abis.ts +6 -6
- package/sdk/src/protocols/paraswap/AugustusV5ABI.json +1 -1
- package/sdk/src/protocols/paraswap/abis.ts +1 -1
- package/sdk/src/protocols/pendle/PendleRouterABI.json +392 -6
- package/sdk/src/protocols/pendle/abis.ts +160 -6
- package/sdk/src/protocols/permit2/Permit2ABI.json +1 -1
- package/sdk/src/protocols/permit2/abis.ts +1 -1
- package/sdk/src/protocols/permit2/addresses.ts +9 -0
- package/sdk/src/protocols/perpetual-protocol/ClearingHouseABI.json +61 -49
- package/sdk/src/protocols/perpetual-protocol/abis.ts +27 -14
- package/sdk/src/protocols/premia/DiamondABI.json +24 -24
- package/sdk/src/protocols/premia/abis.ts +20 -10
- package/sdk/src/protocols/premia/addresses.ts +3 -8
- package/sdk/src/protocols/premia/functions.ts +8 -8
- package/sdk/src/protocols/pyth/PythOracleABI.json +3 -3
- package/sdk/src/protocols/pyth/abis.ts +6 -3
- package/sdk/src/protocols/reflexer/ETHJoinABI.json +5 -1
- package/sdk/src/protocols/reflexer/SAFEEngineABI.json +4 -4
- package/sdk/src/protocols/reflexer/abis.ts +10 -6
- package/sdk/src/protocols/renzo/RestakeManagerABI.json +1 -1
- package/sdk/src/protocols/renzo/abis.ts +1 -1
- package/sdk/src/protocols/sablier/LockupLinearABI.json +2 -2
- package/sdk/src/protocols/sablier/abis.ts +2 -2
- package/sdk/src/protocols/safe/addresses.ts +10 -0
- package/sdk/src/protocols/seaport/SeaportABI.json +87 -5
- package/sdk/src/protocols/seaport/abis.ts +41 -5
- package/sdk/src/protocols/seaport/addresses.ts +10 -0
- package/sdk/src/protocols/seaport/functions.ts +1 -0
- package/sdk/src/protocols/silo/SiloABI.json +4 -0
- package/sdk/src/protocols/silo/abis.ts +4 -1
- package/sdk/src/protocols/silo/addresses.ts +2 -1
- package/sdk/src/protocols/silo/functions.ts +2 -1
- package/sdk/src/protocols/socket/SocketGatewayABI.json +1 -17
- package/sdk/src/protocols/socket/abis.ts +3 -11
- package/sdk/src/protocols/socket/functions.ts +1 -1
- package/sdk/src/protocols/spookyswap/addresses.ts +2 -1
- package/sdk/src/protocols/squid/SquidRouterABI.json +42 -26
- package/sdk/src/protocols/squid/abis.ts +19 -13
- package/sdk/src/protocols/squid/functions.ts +2 -2
- package/sdk/src/protocols/stargate/StargatePoolABI.json +31 -3
- package/sdk/src/protocols/stargate/abis.ts +19 -3
- package/sdk/src/protocols/superfluid/CFAForwarderABI.json +2 -2
- package/sdk/src/protocols/superfluid/abis.ts +2 -2
- package/sdk/src/protocols/sushiswap-v2/addresses.ts +2 -1
- package/sdk/src/protocols/swell/RswETHABI.json +1 -6
- package/sdk/src/protocols/swell/SwETHABI.json +1 -6
- package/sdk/src/protocols/swell/abis.ts +4 -2
- package/sdk/src/protocols/swell/functions.ts +4 -2
- package/sdk/src/protocols/synapse/addresses.ts +2 -1
- package/sdk/src/protocols/synthetix-v3/PerpsMarketProxyABI.json +54 -5
- package/sdk/src/protocols/synthetix-v3/abis.ts +27 -5
- package/sdk/src/protocols/synthetix-v3/addresses.ts +2 -1
- package/sdk/src/protocols/synthra-v3/SynthraV3FactoryABI.json +54 -0
- package/sdk/src/protocols/synthra-v3/SynthraV3NonfungiblePositionManagerABI.json +212 -0
- package/sdk/src/protocols/synthra-v3/SynthraV3QuoterV2ABI.json +55 -0
- package/sdk/src/protocols/synthra-v3/SynthraV3SwapRouter02ABI.json +168 -0
- package/sdk/src/protocols/synthra-v3/abis.ts +244 -0
- package/sdk/src/protocols/synthra-v3/addresses.ts +17 -0
- package/sdk/src/protocols/synthra-v3/functions.ts +8 -0
- package/sdk/src/protocols/synthra-v3/index.ts +4 -0
- package/sdk/src/protocols/synthra-v3/info.ts +13 -0
- package/sdk/src/protocols/thales/PositionalMarketABI.json +16 -0
- package/sdk/src/protocols/thales/SpeedMarketsAMMABI.json +57 -22
- package/sdk/src/protocols/thales/ThalesAMMABI.json +4 -11
- package/sdk/src/protocols/thales/abis.ts +28 -11
- package/sdk/src/protocols/thales/functions.ts +5 -6
- package/sdk/src/protocols/thruster/ThrusterV3SwapRouterABI.json +1 -1
- package/sdk/src/protocols/thruster/abis.ts +1 -1
- package/sdk/src/protocols/trader-joe/LBRouterABI.json +3 -3
- package/sdk/src/protocols/trader-joe/abis.ts +2 -2
- package/sdk/src/protocols/uniswap-v2/addresses.ts +10 -0
- package/sdk/src/protocols/uniswap-v3/UniswapV3FactoryABI.json +2 -2
- package/sdk/src/protocols/uniswap-v3/UniswapV3NonfungiblePositionManagerABI.json +3 -3
- package/sdk/src/protocols/uniswap-v3/UniswapV3QuoterV2ABI.json +1 -1
- package/sdk/src/protocols/uniswap-v3/UniswapV3SwapRouter02ABI.json +168 -0
- package/sdk/src/protocols/uniswap-v3/UniswapV3SwapRouterABI.json +2 -2
- package/sdk/src/protocols/uniswap-v3/abis.ts +91 -8
- package/sdk/src/protocols/uniswap-v3/addresses.ts +14 -0
- package/sdk/src/protocols/uniswap-v4/UniswapV4PoolManagerABI.json +15 -15
- package/sdk/src/protocols/uniswap-v4/UniswapV4UniversalRouterABI.json +16 -0
- package/sdk/src/protocols/uniswap-v4/abis.ts +25 -15
- package/sdk/src/protocols/uniswap-v4/addresses.ts +11 -0
- package/sdk/src/protocols/unitflow-v3/UnitFlowV3FactoryABI.json +46 -0
- package/sdk/src/protocols/unitflow-v3/UnitFlowV3QuoterABI.json +37 -0
- package/sdk/src/protocols/unitflow-v3/UnitFlowV3RouterABI.json +67 -0
- package/sdk/src/protocols/unitflow-v3/abis.ts +71 -0
- package/sdk/src/protocols/unitflow-v3/addresses.ts +20 -0
- package/sdk/src/protocols/unitflow-v3/functions.ts +8 -0
- package/sdk/src/protocols/unitflow-v3/index.ts +4 -0
- package/sdk/src/protocols/unitflow-v3/info.ts +14 -0
- package/sdk/src/protocols/velodrome/addresses.ts +3 -1
- package/sdk/src/protocols/venus/VBNBABI.json +86 -0
- package/sdk/src/protocols/venus/VTokenABI.json +1 -1
- package/sdk/src/protocols/venus/abis.ts +49 -1
- package/sdk/src/protocols/vertex/ClearinghouseABI.json +20 -10
- package/sdk/src/protocols/vertex/EndpointABI.json +1 -1
- package/sdk/src/protocols/vertex/abis.ts +13 -4
- package/sdk/src/protocols/wormhole/WormholeTokenBridgeABI.json +2 -2
- package/sdk/src/protocols/wormhole/abis.ts +2 -2
- package/sdk/src/protocols/wormhole/addresses.ts +9 -0
- package/sdk/src/protocols/zerolend/addresses.ts +2 -1
- package/sdk/src/protocols/zerox/addresses.ts +2 -1
- package/sdk/src/protocols/zksync-bridge/ZkSyncDiamondProxyABI.json +1 -1
- package/sdk/src/protocols/zksync-bridge/abis.ts +1 -1
- package/sdk/src/skills/aave-v4.md +91 -0
- package/sdk/src/skills/across.md +28 -10
- package/sdk/src/skills/aerodrome-slipstream.md +57 -0
- package/sdk/src/skills/aerodrome.md +1 -0
- package/sdk/src/skills/aevo.md +12 -4
- package/sdk/src/skills/ambient.md +2 -2
- package/sdk/src/skills/arrakis.md +3 -3
- package/sdk/src/skills/cbeth.md +6 -8
- package/sdk/src/skills/chainlink-ccip.md +3 -2
- package/sdk/src/skills/chainlink.md +1 -1
- package/sdk/src/skills/circle-gateway.md +98 -0
- package/sdk/src/skills/compound-v2.md +2 -2
- package/sdk/src/skills/connext.md +8 -7
- package/sdk/src/skills/crvusd.md +6 -6
- package/sdk/src/skills/curve.md +17 -2
- package/sdk/src/skills/debridge.md +3 -2
- package/sdk/src/skills/eigenlayer.md +1 -1
- package/sdk/src/skills/erc20.md +8 -10
- package/sdk/src/skills/etherfi.md +1 -1
- package/sdk/src/skills/fluid.md +46 -39
- package/sdk/src/skills/frax.md +6 -6
- package/sdk/src/skills/gains-network.md +13 -21
- package/sdk/src/skills/gamma.md +12 -6
- package/sdk/src/skills/gho.md +4 -6
- package/sdk/src/skills/gmx-v1.md +4 -2
- package/sdk/src/skills/gmx-v2.md +6 -2
- package/sdk/src/skills/harvest.md +2 -2
- package/sdk/src/skills/hegic.md +9 -8
- package/sdk/src/skills/hop.md +8 -8
- package/sdk/src/skills/hyperlane.md +4 -3
- package/sdk/src/skills/index.md +84 -77
- package/sdk/src/skills/kim.md +11 -14
- package/sdk/src/skills/kyberswap-aggregator.md +5 -3
- package/sdk/src/skills/kyberswap.md +6 -6
- package/sdk/src/skills/layerbank.md +41 -35
- package/sdk/src/skills/layerzero.md +3 -2
- package/sdk/src/skills/level-finance.md +6 -4
- package/sdk/src/skills/lido.md +5 -5
- package/sdk/src/skills/lifi.md +41 -23
- package/sdk/src/skills/liquity-v1.md +6 -2
- package/sdk/src/skills/liquity-v2.md +4 -6
- package/sdk/src/skills/loader.ts +15 -25
- package/sdk/src/skills/mantle-meth.md +13 -5
- package/sdk/src/skills/maverick.md +3 -3
- package/sdk/src/skills/morpho-blue.md +1 -1
- package/sdk/src/skills/mux-protocol.md +21 -17
- package/sdk/src/skills/oneinch.md +4 -3
- package/sdk/src/skills/openocean.md +2 -2
- package/sdk/src/skills/opyn.md +1 -1
- package/sdk/src/skills/permit2.md +1 -1
- package/sdk/src/skills/perpetual-protocol.md +2 -2
- package/sdk/src/skills/premia.md +21 -21
- package/sdk/src/skills/reflexer.md +1 -1
- package/sdk/src/skills/renzo.md +1 -1
- package/sdk/src/skills/safe.md +1 -1
- package/sdk/src/skills/seaport.md +3 -2
- package/sdk/src/skills/silo.md +4 -3
- package/sdk/src/skills/socket.md +4 -5
- package/sdk/src/skills/spookyswap.md +2 -2
- package/sdk/src/skills/squid.md +18 -10
- package/sdk/src/skills/stargate.md +1 -1
- package/sdk/src/skills/sushiswap-v2.md +1 -1
- package/sdk/src/skills/swell.md +6 -4
- package/sdk/src/skills/synapse.md +1 -1
- package/sdk/src/skills/synthetix-v3.md +1 -1
- package/sdk/src/skills/synthra-v3.md +57 -0
- package/sdk/src/skills/thales.md +12 -10
- package/sdk/src/skills/trader-joe.md +1 -1
- package/sdk/src/skills/uniswap-v2.md +2 -1
- package/sdk/src/skills/uniswap-v3.md +14 -4
- package/sdk/src/skills/uniswap-v4.md +3 -1
- package/sdk/src/skills/unitflow-v3.md +62 -0
- package/sdk/src/skills/velodrome.md +2 -2
- package/sdk/src/skills/venus.md +10 -2
- package/sdk/src/skills/vertex.md +1 -1
- package/sdk/src/skills/wormhole.md +1 -1
- package/sdk/src/skills/zerolend.md +1 -1
- package/sdk/src/skills/zerox.md +1 -1
- package/sdk/src/skills/zksync-bridge.md +1 -1
- package/actions/dist/megas-swap.d.ts +0 -97
- package/actions/dist/megas-swap.d.ts.map +0 -1
- package/actions/dist/megas-swap.js +0 -286
- package/sdk/dist/routes/globals.generated.d.ts +0 -94
- package/sdk/dist/routes/globals.generated.d.ts.map +0 -1
- package/sdk/dist/routes/globals.generated.js +0 -2
- package/sdk/dist/routes/globals.generated.js.map +0 -1
package/sdk/dist/token/evm.d.ts
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import type { TokenApproveSpec, TokenBalanceSpec, TokenTransferSpec } from "./types.js";
|
|
2
2
|
export declare const ERC20_IMPORT_LINE = "import { IERC20 } from \"./artifacts/IERC20.json\";";
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
/** `transfer`, with OpenZeppelin `SafeERC20` semantics — see `token/safe.ts` for why this is not
|
|
4
|
+
* `IERC20.at(t).transfer(...)`. `balanceOf` keeps that binding: a `uint256` return is always there. */
|
|
5
|
+
export declare function evmTransferStatements(spec: TokenTransferSpec, prefix?: string): readonly string[];
|
|
6
|
+
/** `approve`, with `SafeERC20` semantics plus `forceApprove`'s reset of a non-zero allowance. */
|
|
7
|
+
export declare function evmApproveStatements(spec: TokenApproveSpec, prefix?: string): readonly string[];
|
|
5
8
|
export declare function evmBalanceExpression(spec: TokenBalanceSpec): string;
|
|
6
9
|
//# sourceMappingURL=evm.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evm.d.ts","sourceRoot":"","sources":["../../src/token/evm.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"evm.d.ts","sourceRoot":"","sources":["../../src/token/evm.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAExF,eAAO,MAAM,iBAAiB,wDAAsD,CAAC;AA0BrF;wGACwG;AACxG,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,iBAAiB,EAAE,MAAM,SAAQ,GAAG,SAAS,MAAM,EAAE,CAMhG;AAED,iGAAiG;AACjG,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,gBAAgB,EAAE,MAAM,SAAQ,GAAG,SAAS,MAAM,EAAE,CAM9F;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,gBAAgB,GAAG,MAAM,CAGnE"}
|
package/sdk/dist/token/evm.js
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* The ERC20 arm — statement/expression builders for the universal token interface's EVM lowering.
|
|
3
|
-
*
|
|
4
|
-
* `swap/source.ts`/`deposit/source.ts` already emit
|
|
3
|
+
* The writes go through `safe.ts` (OpenZeppelin `SafeERC20`); the read is a typed call against the
|
|
4
|
+
* engine-vendored `IERC20` artifact, the shape `swap/source.ts`/`deposit/source.ts` already emit.
|
|
5
5
|
*/
|
|
6
|
-
import { formatAddressField
|
|
6
|
+
import { formatAddressField } from "../deposit/format.js";
|
|
7
7
|
import { toAddressBigint, toAmountBigint } from "./params.js";
|
|
8
|
+
import { safeApproveStatements, safeTransferStatements } from "./safe.js";
|
|
8
9
|
export const ERC20_IMPORT_LINE = `import { IERC20 } from "./artifacts/IERC20.json";`;
|
|
9
10
|
function formatOwner(owner) {
|
|
10
11
|
if (owner === undefined)
|
|
@@ -13,22 +14,32 @@ function formatOwner(owner) {
|
|
|
13
14
|
return "ctx.self()";
|
|
14
15
|
return formatAddressField(toAddressBigint(owner, "owner"));
|
|
15
16
|
}
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
17
|
+
/** A write's amount as a `token/safe.ts` word: a literal folds into the calldata, a `"balance"`
|
|
18
|
+
* read is bound to a local first so the call and any later use see one value. */
|
|
19
|
+
function amountWord(spec, tokenLiteral, label, prefix) {
|
|
20
|
+
if (spec.amount !== "balance") {
|
|
21
|
+
return { word: { literal: toAmountBigint(spec.amount, label) }, pre: [] };
|
|
22
|
+
}
|
|
23
|
+
const local = `${prefix}amt`;
|
|
24
|
+
return {
|
|
25
|
+
word: { local },
|
|
26
|
+
pre: [`const ${local} = IERC20.at(${tokenLiteral}).balanceOf(ctx.self());`],
|
|
27
|
+
};
|
|
22
28
|
}
|
|
23
|
-
|
|
29
|
+
/** `transfer`, with OpenZeppelin `SafeERC20` semantics — see `token/safe.ts` for why this is not
|
|
30
|
+
* `IERC20.at(t).transfer(...)`. `balanceOf` keeps that binding: a `uint256` return is always there. */
|
|
31
|
+
export function evmTransferStatements(spec, prefix = "t0_") {
|
|
24
32
|
const tokenLiteral = formatAddressField(toAddressBigint(spec.token, "token"));
|
|
25
|
-
const
|
|
26
|
-
|
|
33
|
+
const to = toAddressBigint(spec.to, "to");
|
|
34
|
+
const { word, pre } = amountWord(spec, tokenLiteral, "Token.transfer amount", prefix);
|
|
35
|
+
return [...pre, ...safeTransferStatements(prefix, tokenLiteral, { literal: to }, word)];
|
|
27
36
|
}
|
|
28
|
-
|
|
37
|
+
/** `approve`, with `SafeERC20` semantics plus `forceApprove`'s reset of a non-zero allowance. */
|
|
38
|
+
export function evmApproveStatements(spec, prefix = "t0_") {
|
|
29
39
|
const tokenLiteral = formatAddressField(toAddressBigint(spec.token, "token"));
|
|
30
|
-
const
|
|
31
|
-
|
|
40
|
+
const spender = toAddressBigint(spec.spender, "spender");
|
|
41
|
+
const { word, pre } = amountWord(spec, tokenLiteral, "Token.approve amount", prefix);
|
|
42
|
+
return [...pre, ...safeApproveStatements(prefix, tokenLiteral, { literal: spender }, word)];
|
|
32
43
|
}
|
|
33
44
|
export function evmBalanceExpression(spec) {
|
|
34
45
|
const tokenLiteral = formatAddressField(toAddressBigint(spec.token, "token"));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evm.js","sourceRoot":"","sources":["../../src/token/evm.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,kBAAkB,EAAE,
|
|
1
|
+
{"version":3,"file":"evm.js","sourceRoot":"","sources":["../../src/token/evm.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAG1E,MAAM,CAAC,MAAM,iBAAiB,GAAG,mDAAmD,CAAC;AAErF,SAAS,WAAW,CAAC,KAAgC;IACnD,IAAI,KAAK,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;IAChG,IAAI,KAAK,KAAK,MAAM;QAAE,OAAO,YAAY,CAAC;IAC1C,OAAO,kBAAkB,CAAC,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;AAC7D,CAAC;AAED;kFACkF;AAClF,SAAS,UAAU,CACjB,IAA6C,EAC7C,YAAoB,EACpB,KAAa,EACb,MAAc;IAEd,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC9B,OAAO,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;IAC5E,CAAC;IACD,MAAM,KAAK,GAAG,GAAG,MAAM,KAAK,CAAC;IAC7B,OAAO;QACL,IAAI,EAAE,EAAE,KAAK,EAAE;QACf,GAAG,EAAE,CAAC,SAAS,KAAK,gBAAgB,YAAY,0BAA0B,CAAC;KAC5E,CAAC;AACJ,CAAC;AAED;wGACwG;AACxG,MAAM,UAAU,qBAAqB,CAAC,IAAuB,EAAE,MAAM,GAAG,KAAK;IAC3E,MAAM,YAAY,GAAG,kBAAkB,CAAC,eAAe,CAAC,IAAI,CAAC,KAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC/E,MAAM,EAAE,GAAG,eAAe,CAAC,IAAI,CAAC,EAAG,EAAE,IAAI,CAAC,CAAC;IAC3C,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,UAAU,CAAC,IAAI,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,CAAC,CAAC;IAEtF,OAAO,CAAC,GAAG,GAAG,EAAE,GAAG,sBAAsB,CAAC,MAAM,EAAE,YAAY,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;AAC1F,CAAC;AAED,iGAAiG;AACjG,MAAM,UAAU,oBAAoB,CAAC,IAAsB,EAAE,MAAM,GAAG,KAAK;IACzE,MAAM,YAAY,GAAG,kBAAkB,CAAC,eAAe,CAAC,IAAI,CAAC,KAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC/E,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,CAAC,OAAQ,EAAE,SAAS,CAAC,CAAC;IAC1D,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,UAAU,CAAC,IAAI,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,CAAC,CAAC;IAErF,OAAO,CAAC,GAAG,GAAG,EAAE,GAAG,qBAAqB,CAAC,MAAM,EAAE,YAAY,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;AAC9F,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,IAAsB;IACzD,MAAM,YAAY,GAAG,kBAAkB,CAAC,eAAe,CAAC,IAAI,CAAC,KAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC/E,OAAO,aAAa,YAAY,eAAe,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;AAC5E,CAAC"}
|
|
@@ -2,19 +2,19 @@
|
|
|
2
2
|
* `@eco-incorp/sauce`'s `token` module — the universal token interface.
|
|
3
3
|
*
|
|
4
4
|
* One object, `Token`, exposing `transfer`/`approve`/`balanceOf` — lowered to an ERC20 call on an
|
|
5
|
-
* EVM compile target, and to an SPL Token program CPI on `svm`.
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
5
|
+
* EVM compile target, and to an SPL Token program CPI on `svm`. Re-exported from the package root
|
|
6
|
+
* as `Token` (with the `Token(addr)` call signature intersected in — see
|
|
7
|
+
* `sdk/src/routes/chain-exports.generated.ts`); this module is also importable directly as
|
|
8
|
+
* `token.Token`, or any of its named exports.
|
|
9
9
|
*
|
|
10
10
|
* Compiler-free, like `swap/` and `deposit/`: every function here returns SauceScript SOURCE (or a
|
|
11
11
|
* structured EVM `Call`); the caller runs `compile()` with explicit options. See
|
|
12
12
|
* `sdk/src/token/source.ts` for the per-target emission seam and `sdk/src/token/api.ts` for the
|
|
13
13
|
* `Token`/`TokenCall` builder shape.
|
|
14
14
|
*
|
|
15
|
-
* Two arms, chosen per call (not per accessor): the ERC20 arm (`evm.ts`) emits
|
|
16
|
-
* `
|
|
17
|
-
*
|
|
15
|
+
* Two arms, chosen per call (not per accessor): the ERC20 arm (`evm.ts`) emits the writes with
|
|
16
|
+
* OpenZeppelin `SafeERC20` semantics through `safe.ts`, and the `balanceOf` read as a typed
|
|
17
|
+
* `IERC20.at(token).balanceOf(...)` binding; the SPL arm (`svm.ts`) emits `svm.call(program, accounts,
|
|
18
18
|
* accounts)` against the SPL Token program, reusing the `svmSettleSource` idiom
|
|
19
19
|
* (`accountData`/`accountUint`, the `le8` u64 byteswap helper, `TransferChecked`/`ApproveChecked`).
|
|
20
20
|
* The two arms are NOT interchangeable at compile time — the compiler rejects a contract binding on
|
package/sdk/dist/token/index.js
CHANGED
|
@@ -2,19 +2,19 @@
|
|
|
2
2
|
* `@eco-incorp/sauce`'s `token` module — the universal token interface.
|
|
3
3
|
*
|
|
4
4
|
* One object, `Token`, exposing `transfer`/`approve`/`balanceOf` — lowered to an ERC20 call on an
|
|
5
|
-
* EVM compile target, and to an SPL Token program CPI on `svm`.
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
5
|
+
* EVM compile target, and to an SPL Token program CPI on `svm`. Re-exported from the package root
|
|
6
|
+
* as `Token` (with the `Token(addr)` call signature intersected in — see
|
|
7
|
+
* `sdk/src/routes/chain-exports.generated.ts`); this module is also importable directly as
|
|
8
|
+
* `token.Token`, or any of its named exports.
|
|
9
9
|
*
|
|
10
10
|
* Compiler-free, like `swap/` and `deposit/`: every function here returns SauceScript SOURCE (or a
|
|
11
11
|
* structured EVM `Call`); the caller runs `compile()` with explicit options. See
|
|
12
12
|
* `sdk/src/token/source.ts` for the per-target emission seam and `sdk/src/token/api.ts` for the
|
|
13
13
|
* `Token`/`TokenCall` builder shape.
|
|
14
14
|
*
|
|
15
|
-
* Two arms, chosen per call (not per accessor): the ERC20 arm (`evm.ts`) emits
|
|
16
|
-
* `
|
|
17
|
-
*
|
|
15
|
+
* Two arms, chosen per call (not per accessor): the ERC20 arm (`evm.ts`) emits the writes with
|
|
16
|
+
* OpenZeppelin `SafeERC20` semantics through `safe.ts`, and the `balanceOf` read as a typed
|
|
17
|
+
* `IERC20.at(token).balanceOf(...)` binding; the SPL arm (`svm.ts`) emits `svm.call(program, accounts,
|
|
18
18
|
* accounts)` against the SPL Token program, reusing the `svmSettleSource` idiom
|
|
19
19
|
* (`accountData`/`accountUint`, the `le8` u64 byteswap helper, `TransferChecked`/`ApproveChecked`).
|
|
20
20
|
* The two arms are NOT interchangeable at compile time — the compiler rejects a contract binding on
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/** One ABI word: a build-time constant, or the name of a SauceScript local holding it. */
|
|
2
|
+
export type WordArg = {
|
|
3
|
+
readonly literal: bigint;
|
|
4
|
+
} | {
|
|
5
|
+
readonly local: string;
|
|
6
|
+
};
|
|
7
|
+
/** `transfer(to, amount)`, checked the way `SafeERC20.safeTransfer` checks it. */
|
|
8
|
+
export declare function safeTransferStatements(prefix: string, token: string, to: WordArg, amount: WordArg): readonly string[];
|
|
9
|
+
/**
|
|
10
|
+
* `approve(spender, amount)`, checked like `SafeERC20` and reset like `forceApprove`.
|
|
11
|
+
*
|
|
12
|
+
* Emits, in order: read the current allowance from this contract to `spender`; if it is non-zero,
|
|
13
|
+
* `approve(spender, 0)` and check that; then `approve(spender, amount)` and check that. A token
|
|
14
|
+
* that refuses either call still reverts the whole execution.
|
|
15
|
+
*/
|
|
16
|
+
export declare function safeApproveStatements(prefix: string, token: string, spender: WordArg, amount: WordArg): readonly string[];
|
|
17
|
+
//# sourceMappingURL=safe.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"safe.d.ts","sourceRoot":"","sources":["../../src/token/safe.ts"],"names":[],"mappings":"AAqDA,0FAA0F;AAC1F,MAAM,MAAM,OAAO,GAAG;IAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAoJhF,kFAAkF;AAClF,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,EAAE,EAAE,OAAO,EACX,MAAM,EAAE,OAAO,GACd,SAAS,MAAM,EAAE,CAEnB;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,OAAO,GACd,SAAS,MAAM,EAAE,CAgCnB"}
|
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ERC-20 writes with OpenZeppelin `SafeERC20` semantics, in SauceScript.
|
|
3
|
+
*
|
|
4
|
+
* WHY NOT THE OBVIOUS THING. The vendored `IERC20` declares `transfer`/`approve` as returning
|
|
5
|
+
* `bool`, and compiler 2.3.0 lowers a declared output to call-THEN-DECODE even when the program
|
|
6
|
+
* discards it. Decoding from empty returndata reverts on this engine, so `IERC20.at(usdt).approve(…)`
|
|
7
|
+
* reverts on any token that returns nothing — USDT among them.
|
|
8
|
+
*
|
|
9
|
+
* The first fix here skipped the decode entirely. That cured the revert and bought two silent
|
|
10
|
+
* failures with it, both of which `SafeERC20` exists to prevent:
|
|
11
|
+
*
|
|
12
|
+
* - a token that returns `false` instead of reverting was treated as success — value lost, quietly;
|
|
13
|
+
* - a call to an address with no code "succeeded", because a call to an EOA always does.
|
|
14
|
+
*
|
|
15
|
+
* WHAT THIS EMITS is `SafeERC20`'s check: issue the call as raw bytes so nothing is decoded on the
|
|
16
|
+
* way out, then look at what came back. Empty returndata is accepted only if the target HAS code;
|
|
17
|
+
* anything else must be an ABI word equal to `1`. A callee that reverts still reverts, because
|
|
18
|
+
* `evm.call` bubbles it.
|
|
19
|
+
*
|
|
20
|
+
* ```
|
|
21
|
+
* const r = evm.call(token, 0n, calldata);
|
|
22
|
+
* if (r.length == 0) { require(ctx.codeSize(token) > 0); }
|
|
23
|
+
* else { const [rok] = abi.decode(r, ["Uint256"]); require(rok == 1n); }
|
|
24
|
+
* ```
|
|
25
|
+
*
|
|
26
|
+
* The decode is load-bearing, not ceremony. It refuses fewer than 32 bytes and reads only the first
|
|
27
|
+
* word of a longer return, which is what OpenZeppelin does. `r.toBe()`, the obvious alternative,
|
|
28
|
+
* zero-pads a 1- or 31-byte return into a `1` and accepts it, and refuses a 64-byte return whose
|
|
29
|
+
* first word is `1` — wrong in both directions, and exactly what this file emitted until the
|
|
30
|
+
* execution matrix in `test/std/token/evm.e2e.test.ts` ran it beside OpenZeppelin.
|
|
31
|
+
*
|
|
32
|
+
* APPROVE ALSO HANDLES USDT'S RULE, which is `forceApprove`'s job. USDT reverts when a non-zero
|
|
33
|
+
* allowance is changed to another non-zero value, and that is not a theoretical hazard here: every
|
|
34
|
+
* intent on a chain shares ONE Executor-owned Pot, so a residual allowance left by an earlier
|
|
35
|
+
* fulfilment breaks the next one. OZ tries the approve and falls back on catching the revert; a
|
|
36
|
+
* reverting `evm.call` cannot be caught in a Sauce program, so this READS the allowance first — a
|
|
37
|
+
* `uint256`, always safe to decode — and emits a reset to zero only when it is non-zero. Same end
|
|
38
|
+
* state, decided before the call instead of after, at the cost of one STATICCALL.
|
|
39
|
+
*
|
|
40
|
+
* The calldata itself is built off-chain by the same viem encoder every other ERC-20 call in this
|
|
41
|
+
* SDK goes through, cut at the words only known at run time, and reassembled by the program with
|
|
42
|
+
* `.concat` — the mechanism `routes/template.ts` uses to splice an intent.
|
|
43
|
+
*
|
|
44
|
+
* `@sauce/token`'s EVM writes have the same semantics, as library functions. This file does not call
|
|
45
|
+
* them, and stays INLINE on purpose: the settle recipe is compiled by partners whose resolver serves
|
|
46
|
+
* only `./artifacts/IERC20.json`, so an emitted program cannot assume the library resolves.
|
|
47
|
+
* `test/std/token/evm.e2e.test.ts` holds the two to one behaviour, running both — and OpenZeppelin's
|
|
48
|
+
* own `SafeERC20` — over the same matrix of tokens.
|
|
49
|
+
*/
|
|
50
|
+
import { encodeFunctionData, getAbiItem } from "viem";
|
|
51
|
+
import { ERC20ABI } from "../protocols/erc20/abis.js";
|
|
52
|
+
/** Distinctive values with no chance of being a real spender or amount, planted in the run-time
|
|
53
|
+
* positions so the cut points can be FOUND rather than assumed. Two of them because viem validates
|
|
54
|
+
* an `address` argument as 20 bytes and will not accept a full word there. */
|
|
55
|
+
const ADDRESS_SENTINEL = "0x5a0ce00000000000000000000000000000000ce5";
|
|
56
|
+
const UINT_SENTINEL = (1n << 255n) + 0x5a0cen;
|
|
57
|
+
function isLocal(arg) {
|
|
58
|
+
return "local" in arg;
|
|
59
|
+
}
|
|
60
|
+
/** The declared input types of `fn`, so an argument is encoded as whatever the ABI says it is
|
|
61
|
+
* rather than as whatever this file assumed. */
|
|
62
|
+
function inputTypes(fn) {
|
|
63
|
+
const item = getAbiItem({ abi: ERC20ABI, name: fn });
|
|
64
|
+
if (item === undefined)
|
|
65
|
+
throw new Error(`token/safe: ERC20ABI declares no ${fn}`);
|
|
66
|
+
return item.inputs.map((input) => input.type);
|
|
67
|
+
}
|
|
68
|
+
function encodeArg(type, arg) {
|
|
69
|
+
if (type === "address") {
|
|
70
|
+
return isLocal(arg)
|
|
71
|
+
? ADDRESS_SENTINEL
|
|
72
|
+
: `0x${arg.literal.toString(16).padStart(40, "0")}`;
|
|
73
|
+
}
|
|
74
|
+
return isLocal(arg) ? UINT_SENTINEL : arg.literal;
|
|
75
|
+
}
|
|
76
|
+
/** The 32-byte word `encodeArg`'s sentinel occupies, as lowercase hex without `0x`. */
|
|
77
|
+
function sentinelWord(type) {
|
|
78
|
+
return type === "address"
|
|
79
|
+
? ADDRESS_SENTINEL.slice(2).padStart(64, "0")
|
|
80
|
+
: UINT_SENTINEL.toString(16).padStart(64, "0");
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* `<fn>(<args>)` calldata with every LITERAL argument already encoded, returned as the byte runs
|
|
84
|
+
* either side of the run-time words.
|
|
85
|
+
*
|
|
86
|
+
* Built by encoding the real call through viem with a sentinel in each run-time position and then
|
|
87
|
+
* cutting there, rather than by concatenating a hand-written selector with hand-padded words: the
|
|
88
|
+
* selector and the padding are then the encoder's, not this file's, and cannot drift from the ABI
|
|
89
|
+
* the rest of the SDK calls with. The sentinel is checked to land where expected, so a change in
|
|
90
|
+
* argument order fails here instead of shipping a mis-ordered call.
|
|
91
|
+
*/
|
|
92
|
+
function chunksFor(fn, args) {
|
|
93
|
+
const types = inputTypes(fn);
|
|
94
|
+
if (types.length !== args.length) {
|
|
95
|
+
throw new Error(`token/safe: ERC20ABI declares ${fn} with ${types.length} argument(s), got ${args.length}`);
|
|
96
|
+
}
|
|
97
|
+
const encoded = encodeFunctionData({
|
|
98
|
+
abi: ERC20ABI,
|
|
99
|
+
functionName: fn,
|
|
100
|
+
args: args.map((arg, i) => encodeArg(types[i], arg)),
|
|
101
|
+
}).toLowerCase();
|
|
102
|
+
const body = encoded.slice(10); // strip the 4-byte selector
|
|
103
|
+
const chunks = [];
|
|
104
|
+
let cursor = 0;
|
|
105
|
+
for (const [index, arg] of args.entries()) {
|
|
106
|
+
if (!isLocal(arg))
|
|
107
|
+
continue;
|
|
108
|
+
const at = body.indexOf(sentinelWord(types[index]), cursor);
|
|
109
|
+
if (at === -1 || at % 64 !== 0 || at / 64 !== index) {
|
|
110
|
+
throw new Error(`token/safe: ${fn} argument ${index} did not encode to word ${index} — the ERC20 ABI's ` +
|
|
111
|
+
"argument order has moved and this lowering would emit a mis-ordered call.");
|
|
112
|
+
}
|
|
113
|
+
chunks.push(`0x${body.slice(cursor, at)}`);
|
|
114
|
+
cursor = at + 64;
|
|
115
|
+
}
|
|
116
|
+
chunks.push(`0x${body.slice(cursor)}`);
|
|
117
|
+
// Only the FIRST run carries the selector; every later one is a pure byte run, and the run BETWEEN
|
|
118
|
+
// two adjacent run-time words is legitimately empty (`transfer(local, local)` has one).
|
|
119
|
+
chunks[0] = `0x${encoded.slice(2, 10)}${chunks[0].slice(2)}`;
|
|
120
|
+
return chunks;
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* The statements that issue one ERC-20 write with no output decode.
|
|
124
|
+
*
|
|
125
|
+
* `prefix` namespaces the locals this introduces, the same discipline `nest.ts` and
|
|
126
|
+
* `nest-dynamic.ts` already use so several of these merge into one program scope. Each literal byte
|
|
127
|
+
* run is bound to its own `const` before `.concat` is called on it — a method call directly on a
|
|
128
|
+
* `hex` literal is outside the compiler's M1 subset.
|
|
129
|
+
*/
|
|
130
|
+
function statementsFor(fn, prefix, token, args) {
|
|
131
|
+
const chunks = chunksFor(fn, args);
|
|
132
|
+
const statements = [];
|
|
133
|
+
const names = chunks.map((chunk, i) => {
|
|
134
|
+
const name = `${prefix}${fn === "approve" ? "ap" : "tr"}${i}`;
|
|
135
|
+
statements.push(`const ${name} = hex\`${chunk.slice(2)}\`;`);
|
|
136
|
+
return name;
|
|
137
|
+
});
|
|
138
|
+
let expr = names[0];
|
|
139
|
+
let chunkIndex = 1;
|
|
140
|
+
for (const arg of args) {
|
|
141
|
+
if (!isLocal(arg))
|
|
142
|
+
continue;
|
|
143
|
+
expr += `.concat(${arg.local}.toBytesBe(32))`;
|
|
144
|
+
// The trailing run after the LAST run-time word is empty whenever that word is last; binding and
|
|
145
|
+
// concatenating it would cost bytecode for nothing.
|
|
146
|
+
if (chunks[chunkIndex] !== "0x")
|
|
147
|
+
expr += `.concat(${names[chunkIndex]})`;
|
|
148
|
+
chunkIndex++;
|
|
149
|
+
}
|
|
150
|
+
const resultVar = `${prefix}${fn === "approve" ? "ar" : "tr"}`;
|
|
151
|
+
statements.push(`const ${resultVar} = evm.call(${token}, 0n, ${expr});`);
|
|
152
|
+
statements.push(optionalReturnCheck(resultVar, token));
|
|
153
|
+
// Drop the byte-run consts that were skipped above, so the program declares nothing unused. Only
|
|
154
|
+
// the `hex` chunks are candidates: the result const is named in the check below the call, not in
|
|
155
|
+
// the concat expression, and filtering on that would delete the call itself.
|
|
156
|
+
const unused = new Set(names.filter((name) => name !== names[0] && !expr.includes(name)));
|
|
157
|
+
return statements.filter((line) => {
|
|
158
|
+
const declared = /^const (\w+) = hex`/.exec(line);
|
|
159
|
+
return declared === null || !unused.has(declared[1]);
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* The `SafeERC20` check over the result of a write already issued into `resultVar`: empty
|
|
164
|
+
* returndata is success only from an address that has code, and anything else must decode as a
|
|
165
|
+
* word equal to 1 — see the header for why it is a decode and not `toBe()`.
|
|
166
|
+
*/
|
|
167
|
+
function optionalReturnCheck(resultVar, token) {
|
|
168
|
+
return (`if (${resultVar}.length == 0) { require(ctx.codeSize(${token}) > 0); } ` +
|
|
169
|
+
`else { const [${resultVar}ok] = abi.decode(${resultVar}, ["Uint256"]); ` +
|
|
170
|
+
`require(${resultVar}ok == 1n); }`);
|
|
171
|
+
}
|
|
172
|
+
/** `transfer(to, amount)`, checked the way `SafeERC20.safeTransfer` checks it. */
|
|
173
|
+
export function safeTransferStatements(prefix, token, to, amount) {
|
|
174
|
+
return statementsFor("transfer", prefix, token, [to, amount]);
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* `approve(spender, amount)`, checked like `SafeERC20` and reset like `forceApprove`.
|
|
178
|
+
*
|
|
179
|
+
* Emits, in order: read the current allowance from this contract to `spender`; if it is non-zero,
|
|
180
|
+
* `approve(spender, 0)` and check that; then `approve(spender, amount)` and check that. A token
|
|
181
|
+
* that refuses either call still reverts the whole execution.
|
|
182
|
+
*/
|
|
183
|
+
export function safeApproveStatements(prefix, token, spender, amount) {
|
|
184
|
+
const selfVar = `${prefix}self`;
|
|
185
|
+
const allowanceVar = `${prefix}cur`;
|
|
186
|
+
const statements = [`const ${selfVar} = ctx.self();`];
|
|
187
|
+
// `allowance(owner, spender)` — a `uint256` return, so this one is safe to decode normally. The
|
|
188
|
+
// owner is the executing contract, which is only known at run time, so it is spliced like any
|
|
189
|
+
// other run-time word.
|
|
190
|
+
const query = chunksFor("allowance", [{ local: selfVar }, spender]);
|
|
191
|
+
const queryVars = query.map((chunk, i) => {
|
|
192
|
+
statements.push(`const ${prefix}q${i} = hex\`${chunk.slice(2)}\`;`);
|
|
193
|
+
return `${prefix}q${i}`;
|
|
194
|
+
});
|
|
195
|
+
let queryExpr = `${queryVars[0]}.concat(${selfVar}.toBytesBe(32))`;
|
|
196
|
+
if (query[1] !== "0x")
|
|
197
|
+
queryExpr += `.concat(${queryVars[1]})`;
|
|
198
|
+
if (isLocal(spender)) {
|
|
199
|
+
queryExpr += `.concat(${spender.local}.toBytesBe(32))`;
|
|
200
|
+
if (query[2] !== undefined && query[2] !== "0x")
|
|
201
|
+
queryExpr += `.concat(${queryVars[2]})`;
|
|
202
|
+
}
|
|
203
|
+
statements.push(`const ${prefix}qd = ${queryExpr};`, `const ${prefix}qr = evm.static(${token}, ${prefix}qd);`, `const [${allowanceVar}] = abi.decode(${prefix}qr, ["Uint256"]);`);
|
|
204
|
+
// The reset, only when there is something to reset. USDT refuses a non-zero -> non-zero change,
|
|
205
|
+
// and a shared Pot is exactly where a stale allowance is waiting.
|
|
206
|
+
const reset = statementsFor("approve", `${prefix}z`, token, [spender, { literal: 0n }]);
|
|
207
|
+
statements.push(`if (${allowanceVar} > 0n) {`, ...reset.map((line) => ` ${line}`), `}`);
|
|
208
|
+
statements.push(...statementsFor("approve", prefix, token, [spender, amount]));
|
|
209
|
+
return statements;
|
|
210
|
+
}
|
|
211
|
+
//# sourceMappingURL=safe.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"safe.js","sourceRoot":"","sources":["../../src/token/safe.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,5 @@
|
|
|
1
1
|
import { type SvmEmitState } from "./svm.js";
|
|
2
2
|
import type { TokenSpec, TokenTarget } from "./types.js";
|
|
3
|
-
/** `baseDirs` for compiling any program `tokenSource`/`tokenCallStatement` produces — resolves the
|
|
4
|
-
* generated `import { IERC20 } from "./artifacts/IERC20.json"` against this installed package's
|
|
5
|
-
* dist root. Same value/pattern as `swap/source.ts`'s `SWAP_BASE_DIRS`. */
|
|
6
|
-
export declare const TOKEN_BASE_DIRS: readonly string[];
|
|
7
3
|
/** The import lines a `tokenSource(specs, target)` program needs. On an EVM target: `IERC20`, iff
|
|
8
4
|
* any spec is `transfer`/`approve`/`balanceOf` (always — every op needs the binding). On `svm`:
|
|
9
5
|
* none (SVM ops use only the built-in `svm.sload`/`svm.call` globals). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"source.d.ts","sourceRoot":"","sources":["../../src/token/source.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"source.d.ts","sourceRoot":"","sources":["../../src/token/source.ts"],"names":[],"mappings":"AAYA,OAAO,EAQL,KAAK,YAAY,EAClB,MAAM,UAAU,CAAC;AAQlB,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAQzD;;2EAE2E;AAC3E,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,SAAS,SAAS,EAAE,EAC3B,MAAM,EAAE,WAAW,GAClB,SAAS,MAAM,EAAE,CAGnB;AAED;;;oGAGoG;AACpG,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,SAAS,EACf,MAAM,EAAE,WAAW,EACnB,KAAK,SAAI,EACT,QAAQ,CAAC,EAAE,YAAY,GACtB,MAAM,CAsBR;AAED;sEACsE;AACtE,wBAAgB,eAAe,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,GAAG,MAAM,CAQ5E;AAED;;iFAEiF;AACjF,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,GAAG,SAAS,MAAM,EAAE,CAOxF;AAED,MAAM,WAAW,kBAAkB;IACjC,4BAA4B;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iGAAiG;IACjG,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC7B;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CACzB,IAAI,EAAE,SAAS,GAAG,SAAS,SAAS,EAAE,EACtC,MAAM,EAAE,WAAW,EACnB,IAAI,GAAE,kBAAuB,GAC5B,MAAM,CAoCR"}
|
package/sdk/dist/token/source.js
CHANGED
|
@@ -1,18 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* SauceScript SOURCE emission for the universal token interface — pure string templating, no
|
|
3
3
|
* compiler import (matches `swap/source.ts`/`deposit/source.ts`'s posture: every compile option
|
|
4
|
-
* stays explicit at the call site).
|
|
4
|
+
* stays explicit at the call site). The `IERC20` ABI an EVM program imports is served by the route
|
|
5
|
+
* compiler itself (`embedded/resolve.ts`), so compiling one needs no resolver option.
|
|
5
6
|
*/
|
|
6
|
-
import {
|
|
7
|
-
import { fileURLToPath } from "node:url";
|
|
8
|
-
import { evmApproveStatement, evmBalanceExpression, evmTransferStatement, ERC20_IMPORT_LINE, } from "./evm.js";
|
|
7
|
+
import { evmApproveStatements, evmBalanceExpression, evmTransferStatements, ERC20_IMPORT_LINE, } from "./evm.js";
|
|
9
8
|
import { accountRefsForApprove, accountRefsForTransfer, newSvmEmitState, svmAccountParamList, svmApproveLines, svmBalanceExpression, svmTransferLines, } from "./svm.js";
|
|
10
9
|
import { assertNoDuplicateSvmRefs, isEvmTarget, validateApproveSpec, validateBalanceSpec, validateTransferSpec, } from "./params.js";
|
|
11
|
-
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
12
|
-
/** `baseDirs` for compiling any program `tokenSource`/`tokenCallStatement` produces — resolves the
|
|
13
|
-
* generated `import { IERC20 } from "./artifacts/IERC20.json"` against this installed package's
|
|
14
|
-
* dist root. Same value/pattern as `swap/source.ts`'s `SWAP_BASE_DIRS`. */
|
|
15
|
-
export const TOKEN_BASE_DIRS = [join(__dirname, "..")];
|
|
16
10
|
function validateSpec(spec, target) {
|
|
17
11
|
if (spec.op === "transfer")
|
|
18
12
|
validateTransferSpec(spec, target);
|
|
@@ -40,7 +34,10 @@ export function tokenCallStatement(spec, target, index = 0, svmState) {
|
|
|
40
34
|
throw new Error("tokenCallStatement: Token.balanceOf has no statement form — use tokenExpression instead");
|
|
41
35
|
}
|
|
42
36
|
if (isEvmTarget(target)) {
|
|
43
|
-
|
|
37
|
+
const prefix = `t${index}_`;
|
|
38
|
+
return (spec.op === "transfer"
|
|
39
|
+
? evmTransferStatements(spec, prefix)
|
|
40
|
+
: evmApproveStatements(spec, prefix)).join("\n");
|
|
44
41
|
}
|
|
45
42
|
const lines = spec.op === "transfer"
|
|
46
43
|
? svmTransferLines(spec, index, state)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"source.js","sourceRoot":"","sources":["../../src/token/source.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"source.js","sourceRoot":"","sources":["../../src/token/source.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
*
|
|
9
9
|
* ```
|
|
10
10
|
* payload := program , args
|
|
11
|
-
* program :=
|
|
11
|
+
* program := 435 bytes ; SETTLE_WIRE.PROGRAM_BYTES — invariant
|
|
12
12
|
* args := head , token_array
|
|
13
13
|
* head := tokens_ptr , minout , recipient ; three 32-byte big-endian words
|
|
14
14
|
* tokens_ptr := word, value = 96 ; byte offset WITHIN args of token_array
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
*
|
|
50
50
|
* WHAT THIS PROVES. `decodeSettleProgram` is STRUCTURAL: it pins the program's LENGTH and reads the
|
|
51
51
|
* tail, so it tells you which `(tokens, minOut, recipient)` a payload carries and nothing about
|
|
52
|
-
* what the
|
|
52
|
+
* what the 435 program bytes do. `validateSettleProgram` adds the authenticity half — one
|
|
53
53
|
* `keccak256` over the WHOLE program against `SETTLE_WIRE.PROGRAM_HASH` — and that is now a
|
|
54
54
|
* complete answer rather than a partial one: because the arguments left the program, a matching
|
|
55
55
|
* hash means the payload runs the audited `settle.sauce.ts` and nothing else — a statement about
|
|
@@ -163,18 +163,18 @@ export declare function bestEffortDecode(parse: SettleParse): DecodedSettleProgr
|
|
|
163
163
|
* dirty upper bytes, and a zero recipient — see §4 for why. Throws `SettleDecodeError` (carrying a
|
|
164
164
|
* stable `.code`) on any of the failures in `SettleFailureCode`.
|
|
165
165
|
*
|
|
166
|
-
* This is a STRUCTURAL decode: it proves the payload is `
|
|
167
|
-
* It does NOT prove those
|
|
166
|
+
* This is a STRUCTURAL decode: it proves the payload is `435 bytes || a canonical argument tail`.
|
|
167
|
+
* It does NOT prove those 435 bytes are the settle program you audited — any 435-byte prefix
|
|
168
168
|
* passes. Use `validateSettleProgram` when that matters, which is nearly always.
|
|
169
169
|
*/
|
|
170
170
|
export declare function decodeSettleProgram(payload: Hex, programBytes?: number): DecodedSettleProgram;
|
|
171
171
|
/**
|
|
172
|
-
* `decodeSettleProgram` plus the authenticity pin: the payload's
|
|
172
|
+
* `decodeSettleProgram` plus the authenticity pin: the payload's 435 program bytes must hash to
|
|
173
173
|
* `SETTLE_WIRE.PROGRAM_HASH`. Because the arguments no longer live inside the program, a match
|
|
174
174
|
* means the payload runs the audited `recipes/settle.sauce.ts` and nothing else — the whole
|
|
175
175
|
* question, not the structural half.
|
|
176
176
|
*
|
|
177
|
-
* Throws `SettleDecodeError` with code `PROGRAM_HASH` when the program is a different
|
|
177
|
+
* Throws `SettleDecodeError` with code `PROGRAM_HASH` when the program is a different 435 bytes,
|
|
178
178
|
* and whatever `decodeSettleProgram` would throw otherwise.
|
|
179
179
|
*
|
|
180
180
|
* `accepted` overrides the pin. The dependency is a caret range and `SETTLE_WIRE` documents that a
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
*
|
|
9
9
|
* ```
|
|
10
10
|
* payload := program , args
|
|
11
|
-
* program :=
|
|
11
|
+
* program := 435 bytes ; SETTLE_WIRE.PROGRAM_BYTES — invariant
|
|
12
12
|
* args := head , token_array
|
|
13
13
|
* head := tokens_ptr , minout , recipient ; three 32-byte big-endian words
|
|
14
14
|
* tokens_ptr := word, value = 96 ; byte offset WITHIN args of token_array
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
*
|
|
50
50
|
* WHAT THIS PROVES. `decodeSettleProgram` is STRUCTURAL: it pins the program's LENGTH and reads the
|
|
51
51
|
* tail, so it tells you which `(tokens, minOut, recipient)` a payload carries and nothing about
|
|
52
|
-
* what the
|
|
52
|
+
* what the 435 program bytes do. `validateSettleProgram` adds the authenticity half — one
|
|
53
53
|
* `keccak256` over the WHOLE program against `SETTLE_WIRE.PROGRAM_HASH` — and that is now a
|
|
54
54
|
* complete answer rather than a partial one: because the arguments left the program, a matching
|
|
55
55
|
* hash means the payload runs the audited `settle.sauce.ts` and nothing else — a statement about
|
|
@@ -290,8 +290,8 @@ export function bestEffortDecode(parse) {
|
|
|
290
290
|
* dirty upper bytes, and a zero recipient — see §4 for why. Throws `SettleDecodeError` (carrying a
|
|
291
291
|
* stable `.code`) on any of the failures in `SettleFailureCode`.
|
|
292
292
|
*
|
|
293
|
-
* This is a STRUCTURAL decode: it proves the payload is `
|
|
294
|
-
* It does NOT prove those
|
|
293
|
+
* This is a STRUCTURAL decode: it proves the payload is `435 bytes || a canonical argument tail`.
|
|
294
|
+
* It does NOT prove those 435 bytes are the settle program you audited — any 435-byte prefix
|
|
295
295
|
* passes. Use `validateSettleProgram` when that matters, which is nearly always.
|
|
296
296
|
*/
|
|
297
297
|
export function decodeSettleProgram(payload, programBytes = SETTLE_WIRE.PROGRAM_BYTES) {
|
|
@@ -307,12 +307,12 @@ export function decodeSettleProgram(payload, programBytes = SETTLE_WIRE.PROGRAM_
|
|
|
307
307
|
return decoded;
|
|
308
308
|
}
|
|
309
309
|
/**
|
|
310
|
-
* `decodeSettleProgram` plus the authenticity pin: the payload's
|
|
310
|
+
* `decodeSettleProgram` plus the authenticity pin: the payload's 435 program bytes must hash to
|
|
311
311
|
* `SETTLE_WIRE.PROGRAM_HASH`. Because the arguments no longer live inside the program, a match
|
|
312
312
|
* means the payload runs the audited `recipes/settle.sauce.ts` and nothing else — the whole
|
|
313
313
|
* question, not the structural half.
|
|
314
314
|
*
|
|
315
|
-
* Throws `SettleDecodeError` with code `PROGRAM_HASH` when the program is a different
|
|
315
|
+
* Throws `SettleDecodeError` with code `PROGRAM_HASH` when the program is a different 435 bytes,
|
|
316
316
|
* and whatever `decodeSettleProgram` would throw otherwise.
|
|
317
317
|
*
|
|
318
318
|
* `accepted` overrides the pin. The dependency is a caret range and `SETTLE_WIRE` documents that a
|
|
@@ -347,7 +347,7 @@ export function validateSettleProgram(payload, accepted = [
|
|
|
347
347
|
// That precedence is the guarantee, and it is the whole of it. Among parse errors there is no such
|
|
348
348
|
// ordering: each is an artefact of the candidate that produced it, and the FIRST supplied pin's is
|
|
349
349
|
// the one reported -- so with several pins and no match at all, the code can still differ by pin
|
|
350
|
-
// order (
|
|
350
|
+
// order (measured on v1's 588-byte payload: a 410-byte pin reports TOKENS_OFFSET, a 461-byte pin
|
|
351
351
|
// ARGS_TRUNCATED). Diagnostic only: through `intent.ts` every one of them collapses to `null`, and
|
|
352
352
|
// with a single pin -- the default and common case -- there is no order to depend on.
|
|
353
353
|
let hashMismatch = null;
|