@0xkoaj/sdk 0.0.1-beta.1 → 0.0.1-beta.3
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 +272 -5
- package/dist/chains.d.ts +1183 -0
- package/dist/chains.js +679 -0
- package/dist/chains.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.js +21 -0
- package/dist/index.js.map +1 -0
- package/dist/sdk/builders/allowance-builder.d.ts +22 -0
- package/dist/sdk/builders/allowance-builder.js +28 -0
- package/dist/sdk/builders/allowance-builder.js.map +1 -0
- package/dist/sdk/builders/balance-builder.d.ts +30 -0
- package/dist/sdk/builders/balance-builder.js +33 -0
- package/dist/sdk/builders/balance-builder.js.map +1 -0
- package/dist/sdk/builders/blocks-builder.d.ts +22 -0
- package/dist/sdk/builders/blocks-builder.js +30 -0
- package/dist/sdk/builders/blocks-builder.js.map +1 -0
- package/dist/sdk/builders/fetch-builder.d.ts +6 -0
- package/dist/sdk/builders/fetch-builder.js +9 -0
- package/dist/sdk/builders/fetch-builder.js.map +1 -0
- package/dist/sdk/builders/gas-builder.d.ts +106 -0
- package/dist/sdk/builders/gas-builder.js +69 -0
- package/dist/sdk/builders/gas-builder.js.map +1 -0
- package/dist/sdk/builders/index.d.ts +10 -0
- package/dist/sdk/builders/index.js +3 -0
- package/dist/sdk/builders/index.js.map +1 -0
- package/dist/sdk/builders/logs-builder.d.ts +6 -0
- package/dist/sdk/builders/logs-builder.js +9 -0
- package/dist/sdk/builders/logs-builder.js.map +1 -0
- package/dist/sdk/builders/metadata-builder.d.ts +49 -0
- package/dist/sdk/builders/metadata-builder.js +37 -0
- package/dist/sdk/builders/metadata-builder.js.map +1 -0
- package/dist/sdk/builders/price-builder.d.ts +49 -0
- package/dist/sdk/builders/price-builder.js +59 -0
- package/dist/sdk/builders/price-builder.js.map +1 -0
- package/dist/sdk/builders/provider-builder.d.ts +121 -0
- package/dist/sdk/builders/provider-builder.js +88 -0
- package/dist/sdk/builders/provider-builder.js.map +1 -0
- package/dist/sdk/builders/quote-builder.d.ts +44 -0
- package/dist/sdk/builders/quote-builder.js +55 -0
- package/dist/sdk/builders/quote-builder.js.map +1 -0
- package/dist/sdk/index.d.ts +3 -0
- package/dist/sdk/index.js +21 -0
- package/dist/sdk/index.js.map +1 -0
- package/dist/sdk/sdk-builder.d.ts +24 -0
- package/dist/sdk/sdk-builder.js +39 -0
- package/dist/sdk/sdk-builder.js.map +1 -0
- package/dist/sdk/types.d.ts +24 -0
- package/dist/sdk/types.js +3 -0
- package/dist/sdk/types.js.map +1 -0
- package/dist/services/allowances/allowance-service.d.ts +29 -0
- package/dist/services/allowances/allowance-service.js +35 -0
- package/dist/services/allowances/allowance-service.js.map +1 -0
- package/dist/services/allowances/allowance-sources/cached-allowance-source.d.ts +16 -0
- package/dist/services/allowances/allowance-sources/cached-allowance-source.js +69 -0
- package/dist/services/allowances/allowance-sources/cached-allowance-source.js.map +1 -0
- package/dist/services/allowances/allowance-sources/rpc-allowance-source.d.ts +15 -0
- package/dist/services/allowances/allowance-sources/rpc-allowance-source.js +54 -0
- package/dist/services/allowances/allowance-sources/rpc-allowance-source.js.map +1 -0
- package/dist/services/allowances/index.d.ts +1 -0
- package/dist/services/allowances/index.js +3 -0
- package/dist/services/allowances/index.js.map +1 -0
- package/dist/services/allowances/types.d.ts +43 -0
- package/dist/services/allowances/types.js +3 -0
- package/dist/services/allowances/types.js.map +1 -0
- package/dist/services/balances/balance-service.d.ts +35 -0
- package/dist/services/balances/balance-service.js +36 -0
- package/dist/services/balances/balance-service.js.map +1 -0
- package/dist/services/balances/balance-sources/cached-balance-source.d.ts +16 -0
- package/dist/services/balances/balance-sources/cached-balance-source.js +56 -0
- package/dist/services/balances/balance-sources/cached-balance-source.js.map +1 -0
- package/dist/services/balances/balance-sources/fastest-balance-source.d.ts +15 -0
- package/dist/services/balances/balance-sources/fastest-balance-source.js +45 -0
- package/dist/services/balances/balance-sources/fastest-balance-source.js.map +1 -0
- package/dist/services/balances/balance-sources/rpc-balance-source.d.ts +23 -0
- package/dist/services/balances/balance-sources/rpc-balance-source.js +70 -0
- package/dist/services/balances/balance-sources/rpc-balance-source.js.map +1 -0
- package/dist/services/balances/balance-sources/utils.d.ts +15 -0
- package/dist/services/balances/balance-sources/utils.js +43 -0
- package/dist/services/balances/balance-sources/utils.js.map +1 -0
- package/dist/services/balances/index.d.ts +1 -0
- package/dist/services/balances/index.js +3 -0
- package/dist/services/balances/index.js.map +1 -0
- package/dist/services/balances/types.d.ts +48 -0
- package/dist/services/balances/types.js +3 -0
- package/dist/services/balances/types.js.map +1 -0
- package/dist/services/blocks/block-service.d.ts +28 -0
- package/dist/services/blocks/block-service.js +27 -0
- package/dist/services/blocks/block-service.js.map +1 -0
- package/dist/services/blocks/block-sources/defi-llama-block-source.d.ts +13 -0
- package/dist/services/blocks/block-sources/defi-llama-block-source.js +41 -0
- package/dist/services/blocks/block-sources/defi-llama-block-source.js.map +1 -0
- package/dist/services/blocks/block-sources/fallback-block-source.d.ts +13 -0
- package/dist/services/blocks/block-sources/fallback-block-source.js +28 -0
- package/dist/services/blocks/block-sources/fallback-block-source.js.map +1 -0
- package/dist/services/blocks/block-sources/rpc-block-source.d.ts +12 -0
- package/dist/services/blocks/block-sources/rpc-block-source.js +139 -0
- package/dist/services/blocks/block-sources/rpc-block-source.js.map +1 -0
- package/dist/services/blocks/block-sources/utils.d.ts +3 -0
- package/dist/services/blocks/block-sources/utils.js +10 -0
- package/dist/services/blocks/block-sources/utils.js.map +1 -0
- package/dist/services/blocks/index.d.ts +1 -0
- package/dist/services/blocks/index.js +3 -0
- package/dist/services/blocks/index.js.map +1 -0
- package/dist/services/blocks/types.d.ts +42 -0
- package/dist/services/blocks/types.js +3 -0
- package/dist/services/blocks/types.js.map +1 -0
- package/dist/services/fetch/fetch-service.d.ts +6 -0
- package/dist/services/fetch/fetch-service.js +58 -0
- package/dist/services/fetch/fetch-service.js.map +1 -0
- package/dist/services/fetch/index.d.ts +1 -0
- package/dist/services/fetch/index.js +3 -0
- package/dist/services/fetch/index.js.map +1 -0
- package/dist/services/fetch/types.d.ts +11 -0
- package/dist/services/fetch/types.js +3 -0
- package/dist/services/fetch/types.js.map +1 -0
- package/dist/services/gas/gas-price-sources/aggregator-gas-price-source.d.ts +19 -0
- package/dist/services/gas/gas-price-sources/aggregator-gas-price-source.js +108 -0
- package/dist/services/gas/gas-price-sources/aggregator-gas-price-source.js.map +1 -0
- package/dist/services/gas/gas-price-sources/cached-gas-price-source.d.ts +28 -0
- package/dist/services/gas/gas-price-sources/cached-gas-price-source.js +56 -0
- package/dist/services/gas/gas-price-sources/cached-gas-price-source.js.map +1 -0
- package/dist/services/gas/gas-price-sources/etherscan-gas-price-source.d.ts +19 -0
- package/dist/services/gas/gas-price-sources/etherscan-gas-price-source.js +48 -0
- package/dist/services/gas/gas-price-sources/etherscan-gas-price-source.js.map +1 -0
- package/dist/services/gas/gas-price-sources/fastest-gas-price-source-combinator.d.ts +14 -0
- package/dist/services/gas/gas-price-sources/fastest-gas-price-source-combinator.js +33 -0
- package/dist/services/gas/gas-price-sources/fastest-gas-price-source-combinator.js.map +1 -0
- package/dist/services/gas/gas-price-sources/open-ocean-gas-price-source.d.ts +18 -0
- package/dist/services/gas/gas-price-sources/open-ocean-gas-price-source.js +60 -0
- package/dist/services/gas/gas-price-sources/open-ocean-gas-price-source.js.map +1 -0
- package/dist/services/gas/gas-price-sources/owlracle-gas-price-source.d.ts +29 -0
- package/dist/services/gas/gas-price-sources/owlracle-gas-price-source.js +65 -0
- package/dist/services/gas/gas-price-sources/owlracle-gas-price-source.js.map +1 -0
- package/dist/services/gas/gas-price-sources/paraswap-gas-price-source.d.ts +18 -0
- package/dist/services/gas/gas-price-sources/paraswap-gas-price-source.js +28 -0
- package/dist/services/gas/gas-price-sources/paraswap-gas-price-source.js.map +1 -0
- package/dist/services/gas/gas-price-sources/polygon-gas-station-gas-price-source.d.ts +18 -0
- package/dist/services/gas/gas-price-sources/polygon-gas-station-gas-price-source.js +31 -0
- package/dist/services/gas/gas-price-sources/polygon-gas-station-gas-price-source.js.map +1 -0
- package/dist/services/gas/gas-price-sources/prioritized-gas-price-source-combinator.d.ts +14 -0
- package/dist/services/gas/gas-price-sources/prioritized-gas-price-source-combinator.js +33 -0
- package/dist/services/gas/gas-price-sources/prioritized-gas-price-source-combinator.js.map +1 -0
- package/dist/services/gas/gas-price-sources/rpc-gas-price-source.d.ts +18 -0
- package/dist/services/gas/gas-price-sources/rpc-gas-price-source.js +32 -0
- package/dist/services/gas/gas-price-sources/rpc-gas-price-source.js.map +1 -0
- package/dist/services/gas/gas-service.d.ts +48 -0
- package/dist/services/gas/gas-service.js +67 -0
- package/dist/services/gas/gas-service.js.map +1 -0
- package/dist/services/gas/index.d.ts +2 -0
- package/dist/services/gas/index.js +6 -0
- package/dist/services/gas/index.js.map +1 -0
- package/dist/services/gas/types.d.ts +80 -0
- package/dist/services/gas/types.js +5 -0
- package/dist/services/gas/types.js.map +1 -0
- package/dist/services/gas/utils.d.ts +11 -0
- package/dist/services/gas/utils.js +25 -0
- package/dist/services/gas/utils.js.map +1 -0
- package/dist/services/index.d.ts +10 -0
- package/dist/services/index.js +27 -0
- package/dist/services/index.js.map +1 -0
- package/dist/services/logs/index.d.ts +1 -0
- package/dist/services/logs/index.js +3 -0
- package/dist/services/logs/index.js.map +1 -0
- package/dist/services/logs/loggers/console-logger.d.ts +12 -0
- package/dist/services/logs/loggers/console-logger.js +37 -0
- package/dist/services/logs/loggers/console-logger.js.map +1 -0
- package/dist/services/logs/logs-service.d.ts +8 -0
- package/dist/services/logs/logs-service.js +14 -0
- package/dist/services/logs/logs-service.js.map +1 -0
- package/dist/services/logs/types.d.ts +13 -0
- package/dist/services/logs/types.js +3 -0
- package/dist/services/logs/types.js.map +1 -0
- package/dist/services/logs/utils.d.ts +2 -0
- package/dist/services/logs/utils.js +25 -0
- package/dist/services/logs/utils.js.map +1 -0
- package/dist/services/metadata/index.d.ts +1 -0
- package/dist/services/metadata/index.js +3 -0
- package/dist/services/metadata/index.js.map +1 -0
- package/dist/services/metadata/metadata-service.d.ts +23 -0
- package/dist/services/metadata/metadata-service.js +38 -0
- package/dist/services/metadata/metadata-service.js.map +1 -0
- package/dist/services/metadata/metadata-sources/cached-metadata-source.d.ts +17 -0
- package/dist/services/metadata/metadata-sources/cached-metadata-source.js +87 -0
- package/dist/services/metadata/metadata-sources/cached-metadata-source.js.map +1 -0
- package/dist/services/metadata/metadata-sources/defi-llama-metadata-source.d.ts +16 -0
- package/dist/services/metadata/metadata-sources/defi-llama-metadata-source.js +27 -0
- package/dist/services/metadata/metadata-sources/defi-llama-metadata-source.js.map +1 -0
- package/dist/services/metadata/metadata-sources/fallback-metadata-source.d.ts +14 -0
- package/dist/services/metadata/metadata-sources/fallback-metadata-source.js +131 -0
- package/dist/services/metadata/metadata-sources/fallback-metadata-source.js.map +1 -0
- package/dist/services/metadata/metadata-sources/rpc-metadata-source.d.ts +23 -0
- package/dist/services/metadata/metadata-sources/rpc-metadata-source.js +77 -0
- package/dist/services/metadata/metadata-sources/rpc-metadata-source.js.map +1 -0
- package/dist/services/metadata/types.d.ts +44 -0
- package/dist/services/metadata/types.js +3 -0
- package/dist/services/metadata/types.js.map +1 -0
- package/dist/services/prices/index.d.ts +1 -0
- package/dist/services/prices/index.js +3 -0
- package/dist/services/prices/index.js.map +1 -0
- package/dist/services/prices/price-service.d.ts +69 -0
- package/dist/services/prices/price-service.js +58 -0
- package/dist/services/prices/price-service.js.map +1 -0
- package/dist/services/prices/price-sources/aggregator-price-source.d.ts +41 -0
- package/dist/services/prices/price-sources/aggregator-price-source.js +128 -0
- package/dist/services/prices/price-sources/aggregator-price-source.js.map +1 -0
- package/dist/services/prices/price-sources/alchemy-price-source.d.ts +47 -0
- package/dist/services/prices/price-sources/alchemy-price-source.js +110 -0
- package/dist/services/prices/price-sources/alchemy-price-source.js.map +1 -0
- package/dist/services/prices/price-sources/batch-price-source.d.ts +44 -0
- package/dist/services/prices/price-sources/batch-price-source.js +89 -0
- package/dist/services/prices/price-sources/batch-price-source.js.map +1 -0
- package/dist/services/prices/price-sources/cached-price-source.d.ts +41 -0
- package/dist/services/prices/price-sources/cached-price-source.js +68 -0
- package/dist/services/prices/price-sources/cached-price-source.js.map +1 -0
- package/dist/services/prices/price-sources/codex-price-source.d.ts +41 -0
- package/dist/services/prices/price-sources/codex-price-source.js +124 -0
- package/dist/services/prices/price-sources/codex-price-source.js.map +1 -0
- package/dist/services/prices/price-sources/coingecko-price-source.d.ts +42 -0
- package/dist/services/prices/price-sources/coingecko-price-source.js +109 -0
- package/dist/services/prices/price-sources/coingecko-price-source.js.map +1 -0
- package/dist/services/prices/price-sources/defi-llama-price-source.d.ts +39 -0
- package/dist/services/prices/price-sources/defi-llama-price-source.js +34 -0
- package/dist/services/prices/price-sources/defi-llama-price-source.js.map +1 -0
- package/dist/services/prices/price-sources/fastest-price-source.d.ts +38 -0
- package/dist/services/prices/price-sources/fastest-price-source.js +82 -0
- package/dist/services/prices/price-sources/fastest-price-source.js.map +1 -0
- package/dist/services/prices/price-sources/odos-price-source.d.ts +40 -0
- package/dist/services/prices/price-sources/odos-price-source.js +54 -0
- package/dist/services/prices/price-sources/odos-price-source.js.map +1 -0
- package/dist/services/prices/price-sources/prioritized-price-source.d.ts +38 -0
- package/dist/services/prices/price-sources/prioritized-price-source.js +81 -0
- package/dist/services/prices/price-sources/prioritized-price-source.js.map +1 -0
- package/dist/services/prices/price-sources/utils.d.ts +10 -0
- package/dist/services/prices/price-sources/utils.js +70 -0
- package/dist/services/prices/price-sources/utils.js.map +1 -0
- package/dist/services/prices/types.d.ts +105 -0
- package/dist/services/prices/types.js +3 -0
- package/dist/services/prices/types.js.map +1 -0
- package/dist/services/providers/index.d.ts +2 -0
- package/dist/services/providers/index.js +18 -0
- package/dist/services/providers/index.js.map +1 -0
- package/dist/services/providers/provider-service.d.ts +20 -0
- package/dist/services/providers/provider-service.js +33 -0
- package/dist/services/providers/provider-service.js.map +1 -0
- package/dist/services/providers/provider-sources/alchemy-provider.d.ts +20 -0
- package/dist/services/providers/provider-sources/alchemy-provider.js +37 -0
- package/dist/services/providers/provider-sources/alchemy-provider.js.map +1 -0
- package/dist/services/providers/provider-sources/ankr-provider.d.ts +18 -0
- package/dist/services/providers/provider-sources/ankr-provider.js +52 -0
- package/dist/services/providers/provider-sources/ankr-provider.js.map +1 -0
- package/dist/services/providers/provider-sources/base/base-http-provider.d.ts +14 -0
- package/dist/services/providers/provider-sources/base/base-http-provider.js +20 -0
- package/dist/services/providers/provider-sources/base/base-http-provider.js.map +1 -0
- package/dist/services/providers/provider-sources/base/base-web-socket-provider.d.ts +10 -0
- package/dist/services/providers/provider-sources/base/base-web-socket-provider.js +17 -0
- package/dist/services/providers/provider-sources/base/base-web-socket-provider.js.map +1 -0
- package/dist/services/providers/provider-sources/blast-provider.d.ts +18 -0
- package/dist/services/providers/provider-sources/blast-provider.js +52 -0
- package/dist/services/providers/provider-sources/blast-provider.js.map +1 -0
- package/dist/services/providers/provider-sources/by-method-provider.d.ts +12 -0
- package/dist/services/providers/provider-sources/by-method-provider.js +40 -0
- package/dist/services/providers/provider-sources/by-method-provider.js.map +1 -0
- package/dist/services/providers/provider-sources/drpc-provider.d.ts +18 -0
- package/dist/services/providers/provider-sources/drpc-provider.js +60 -0
- package/dist/services/providers/provider-sources/drpc-provider.js.map +1 -0
- package/dist/services/providers/provider-sources/envio-provider.d.ts +18 -0
- package/dist/services/providers/provider-sources/envio-provider.js +72 -0
- package/dist/services/providers/provider-sources/envio-provider.js.map +1 -0
- package/dist/services/providers/provider-sources/fallback-provider.d.ts +13 -0
- package/dist/services/providers/provider-sources/fallback-provider.js +26 -0
- package/dist/services/providers/provider-sources/fallback-provider.js.map +1 -0
- package/dist/services/providers/provider-sources/get-block-provider.d.ts +15 -0
- package/dist/services/providers/provider-sources/get-block-provider.js +23 -0
- package/dist/services/providers/provider-sources/get-block-provider.js.map +1 -0
- package/dist/services/providers/provider-sources/http-provider.d.ts +13 -0
- package/dist/services/providers/provider-sources/http-provider.js +21 -0
- package/dist/services/providers/provider-sources/http-provider.js.map +1 -0
- package/dist/services/providers/provider-sources/index.d.ts +17 -0
- package/dist/services/providers/provider-sources/index.js +45 -0
- package/dist/services/providers/provider-sources/index.js.map +1 -0
- package/dist/services/providers/provider-sources/infura-provider.d.ts +18 -0
- package/dist/services/providers/provider-sources/infura-provider.js +40 -0
- package/dist/services/providers/provider-sources/infura-provider.js.map +1 -0
- package/dist/services/providers/provider-sources/llama-nodes-provider.d.ts +18 -0
- package/dist/services/providers/provider-sources/llama-nodes-provider.js +40 -0
- package/dist/services/providers/provider-sources/llama-nodes-provider.js.map +1 -0
- package/dist/services/providers/provider-sources/load-balance-provider.d.ts +23 -0
- package/dist/services/providers/provider-sources/load-balance-provider.js +163 -0
- package/dist/services/providers/provider-sources/load-balance-provider.js.map +1 -0
- package/dist/services/providers/provider-sources/moralis-provider.d.ts +25 -0
- package/dist/services/providers/provider-sources/moralis-provider.js +56 -0
- package/dist/services/providers/provider-sources/moralis-provider.js.map +1 -0
- package/dist/services/providers/provider-sources/node-real-provider.d.ts +18 -0
- package/dist/services/providers/provider-sources/node-real-provider.js +35 -0
- package/dist/services/providers/provider-sources/node-real-provider.js.map +1 -0
- package/dist/services/providers/provider-sources/on-finality-provider.d.ts +18 -0
- package/dist/services/providers/provider-sources/on-finality-provider.js +50 -0
- package/dist/services/providers/provider-sources/on-finality-provider.js.map +1 -0
- package/dist/services/providers/provider-sources/one-rpc-provider.d.ts +18 -0
- package/dist/services/providers/provider-sources/one-rpc-provider.js +56 -0
- package/dist/services/providers/provider-sources/one-rpc-provider.js.map +1 -0
- package/dist/services/providers/provider-sources/prioritized-provider-source-combinator.d.ts +10 -0
- package/dist/services/providers/provider-sources/prioritized-provider-source-combinator.js +24 -0
- package/dist/services/providers/provider-sources/prioritized-provider-source-combinator.js.map +1 -0
- package/dist/services/providers/provider-sources/public-rpcs-provider.d.ts +21 -0
- package/dist/services/providers/provider-sources/public-rpcs-provider.js +35 -0
- package/dist/services/providers/provider-sources/public-rpcs-provider.js.map +1 -0
- package/dist/services/providers/provider-sources/tenderly-provider.d.ts +18 -0
- package/dist/services/providers/provider-sources/tenderly-provider.js +48 -0
- package/dist/services/providers/provider-sources/tenderly-provider.js.map +1 -0
- package/dist/services/providers/provider-sources/third-web-provider.d.ts +15 -0
- package/dist/services/providers/provider-sources/third-web-provider.js +58 -0
- package/dist/services/providers/provider-sources/third-web-provider.js.map +1 -0
- package/dist/services/providers/provider-sources/web-sockets-provider.d.ts +9 -0
- package/dist/services/providers/provider-sources/web-sockets-provider.js +21 -0
- package/dist/services/providers/provider-sources/web-sockets-provider.js.map +1 -0
- package/dist/services/providers/types.d.ts +17 -0
- package/dist/services/providers/types.js +3 -0
- package/dist/services/providers/types.js.map +1 -0
- package/dist/services/providers/utils.d.ts +4 -0
- package/dist/services/providers/utils.js +34 -0
- package/dist/services/providers/utils.js.map +1 -0
- package/dist/services/quotes/errors.d.ts +17 -0
- package/dist/services/quotes/errors.js +38 -0
- package/dist/services/quotes/errors.js.map +1 -0
- package/dist/services/quotes/index.d.ts +5 -0
- package/dist/services/quotes/index.js +28 -0
- package/dist/services/quotes/index.js.map +1 -0
- package/dist/services/quotes/quote-compare.d.ts +9 -0
- package/dist/services/quotes/quote-compare.js +144 -0
- package/dist/services/quotes/quote-compare.js.map +1 -0
- package/dist/services/quotes/quote-service.d.ts +117 -0
- package/dist/services/quotes/quote-service.js +302 -0
- package/dist/services/quotes/quote-service.js.map +1 -0
- package/dist/services/quotes/quote-sources/0x-quote-source.d.ts +19 -0
- package/dist/services/quotes/quote-sources/0x-quote-source.js +89 -0
- package/dist/services/quotes/quote-sources/0x-quote-source.js.map +1 -0
- package/dist/services/quotes/quote-sources/1inch-quote-source.d.ts +28 -0
- package/dist/services/quotes/quote-sources/1inch-quote-source.js +102 -0
- package/dist/services/quotes/quote-sources/1inch-quote-source.js.map +1 -0
- package/dist/services/quotes/quote-sources/barter-quote-source.d.ts +28 -0
- package/dist/services/quotes/quote-sources/barter-quote-source.js +126 -0
- package/dist/services/quotes/quote-sources/barter-quote-source.js.map +1 -0
- package/dist/services/quotes/quote-sources/base/always-valid-source.d.ts +8 -0
- package/dist/services/quotes/quote-sources/base/always-valid-source.js +13 -0
- package/dist/services/quotes/quote-sources/base/always-valid-source.js.map +1 -0
- package/dist/services/quotes/quote-sources/bebop-quote-source.d.ts +21 -0
- package/dist/services/quotes/quote-sources/bebop-quote-source.js +97 -0
- package/dist/services/quotes/quote-sources/bebop-quote-source.js.map +1 -0
- package/dist/services/quotes/quote-sources/braindex-quote-source.d.ts +20 -0
- package/dist/services/quotes/quote-sources/braindex-quote-source.js +150 -0
- package/dist/services/quotes/quote-sources/braindex-quote-source.js.map +1 -0
- package/dist/services/quotes/quote-sources/changelly-quote-source.d.ts +20 -0
- package/dist/services/quotes/quote-sources/changelly-quote-source.js +71 -0
- package/dist/services/quotes/quote-sources/changelly-quote-source.js.map +1 -0
- package/dist/services/quotes/quote-sources/conveyor-quote-source.d.ts +19 -0
- package/dist/services/quotes/quote-sources/conveyor-quote-source.js +93 -0
- package/dist/services/quotes/quote-sources/conveyor-quote-source.js.map +1 -0
- package/dist/services/quotes/quote-sources/dodo-quote-source.d.ts +19 -0
- package/dist/services/quotes/quote-sources/dodo-quote-source.js +97 -0
- package/dist/services/quotes/quote-sources/dodo-quote-source.js.map +1 -0
- package/dist/services/quotes/quote-sources/enso-quote-source.d.ts +20 -0
- package/dist/services/quotes/quote-sources/enso-quote-source.js +85 -0
- package/dist/services/quotes/quote-sources/enso-quote-source.js.map +1 -0
- package/dist/services/quotes/quote-sources/fly-trade-quote-source.d.ts +20 -0
- package/dist/services/quotes/quote-sources/fly-trade-quote-source.js +99 -0
- package/dist/services/quotes/quote-sources/fly-trade-quote-source.js.map +1 -0
- package/dist/services/quotes/quote-sources/jupiter-quote-source.d.ts +50 -0
- package/dist/services/quotes/quote-sources/jupiter-quote-source.js +111 -0
- package/dist/services/quotes/quote-sources/jupiter-quote-source.js.map +1 -0
- package/dist/services/quotes/quote-sources/kyberswap-quote-source.d.ts +26 -0
- package/dist/services/quotes/quote-sources/kyberswap-quote-source.js +100 -0
- package/dist/services/quotes/quote-sources/kyberswap-quote-source.js.map +1 -0
- package/dist/services/quotes/quote-sources/li-fi-quote-source.d.ts +18 -0
- package/dist/services/quotes/quote-sources/li-fi-quote-source.js +104 -0
- package/dist/services/quotes/quote-sources/li-fi-quote-source.js.map +1 -0
- package/dist/services/quotes/quote-sources/odos-quote-source.d.ts +29 -0
- package/dist/services/quotes/quote-sources/odos-quote-source.js +130 -0
- package/dist/services/quotes/quote-sources/odos-quote-source.js.map +1 -0
- package/dist/services/quotes/quote-sources/okx-dex-quote-source.d.ts +21 -0
- package/dist/services/quotes/quote-sources/okx-dex-quote-source.js +143 -0
- package/dist/services/quotes/quote-sources/okx-dex-quote-source.js.map +1 -0
- package/dist/services/quotes/quote-sources/open-ocean-quote-source.d.ts +19 -0
- package/dist/services/quotes/quote-sources/open-ocean-quote-source.js +113 -0
- package/dist/services/quotes/quote-sources/open-ocean-quote-source.js.map +1 -0
- package/dist/services/quotes/quote-sources/paraswap-quote-source.d.ts +19 -0
- package/dist/services/quotes/quote-sources/paraswap-quote-source.js +84 -0
- package/dist/services/quotes/quote-sources/paraswap-quote-source.js.map +1 -0
- package/dist/services/quotes/quote-sources/portals-fi-quote-source.d.ts +20 -0
- package/dist/services/quotes/quote-sources/portals-fi-quote-source.js +94 -0
- package/dist/services/quotes/quote-sources/portals-fi-quote-source.js.map +1 -0
- package/dist/services/quotes/quote-sources/rango-quote-source.d.ts +21 -0
- package/dist/services/quotes/quote-sources/rango-quote-source.js +115 -0
- package/dist/services/quotes/quote-sources/rango-quote-source.js.map +1 -0
- package/dist/services/quotes/quote-sources/squid-quote-source.d.ts +20 -0
- package/dist/services/quotes/quote-sources/squid-quote-source.js +92 -0
- package/dist/services/quotes/quote-sources/squid-quote-source.js.map +1 -0
- package/dist/services/quotes/quote-sources/sushiswap-quote-source.d.ts +18 -0
- package/dist/services/quotes/quote-sources/sushiswap-quote-source.js +90 -0
- package/dist/services/quotes/quote-sources/sushiswap-quote-source.js.map +1 -0
- package/dist/services/quotes/quote-sources/swing-quote-source.d.ts +28 -0
- package/dist/services/quotes/quote-sources/swing-quote-source.js +148 -0
- package/dist/services/quotes/quote-sources/swing-quote-source.js.map +1 -0
- package/dist/services/quotes/quote-sources/types.d.ts +120 -0
- package/dist/services/quotes/quote-sources/types.js +13 -0
- package/dist/services/quotes/quote-sources/types.js.map +1 -0
- package/dist/services/quotes/quote-sources/uniswap-quote-source.d.ts +16 -0
- package/dist/services/quotes/quote-sources/uniswap-quote-source.js +119 -0
- package/dist/services/quotes/quote-sources/uniswap-quote-source.js.map +1 -0
- package/dist/services/quotes/quote-sources/utils.d.ts +9 -0
- package/dist/services/quotes/quote-sources/utils.js +37 -0
- package/dist/services/quotes/quote-sources/utils.js.map +1 -0
- package/dist/services/quotes/quote-sources/wrappers/buy-to-sell-order-wrapper.d.ts +6 -0
- package/dist/services/quotes/quote-sources/wrappers/buy-to-sell-order-wrapper.js +73 -0
- package/dist/services/quotes/quote-sources/wrappers/buy-to-sell-order-wrapper.js.map +1 -0
- package/dist/services/quotes/quote-sources/wrappers/forced-timeout-wrapper.d.ts +2 -0
- package/dist/services/quotes/quote-sources/wrappers/forced-timeout-wrapper.js +27 -0
- package/dist/services/quotes/quote-sources/wrappers/forced-timeout-wrapper.js.map +1 -0
- package/dist/services/quotes/quote-sources/xy-finance-quote-source.d.ts +16 -0
- package/dist/services/quotes/quote-sources/xy-finance-quote-source.js +87 -0
- package/dist/services/quotes/quote-sources/xy-finance-quote-source.js.map +1 -0
- package/dist/services/quotes/source-lists/batch-api-source-list.d.ts +30 -0
- package/dist/services/quotes/source-lists/batch-api-source-list.js +62 -0
- package/dist/services/quotes/source-lists/batch-api-source-list.js.map +1 -0
- package/dist/services/quotes/source-lists/index.d.ts +1 -0
- package/dist/services/quotes/source-lists/index.js +3 -0
- package/dist/services/quotes/source-lists/index.js.map +1 -0
- package/dist/services/quotes/source-lists/local-source-list.d.ts +21 -0
- package/dist/services/quotes/source-lists/local-source-list.js +157 -0
- package/dist/services/quotes/source-lists/local-source-list.js.map +1 -0
- package/dist/services/quotes/source-lists/overridable-source-list.d.ts +25 -0
- package/dist/services/quotes/source-lists/overridable-source-list.js +70 -0
- package/dist/services/quotes/source-lists/overridable-source-list.js.map +1 -0
- package/dist/services/quotes/source-lists/types.d.ts +44 -0
- package/dist/services/quotes/source-lists/types.js +3 -0
- package/dist/services/quotes/source-lists/types.js.map +1 -0
- package/dist/services/quotes/source-lists/utils.d.ts +5 -0
- package/dist/services/quotes/source-lists/utils.js +29 -0
- package/dist/services/quotes/source-lists/utils.js.map +1 -0
- package/dist/services/quotes/source-registry.d.ts +70 -0
- package/dist/services/quotes/source-registry.js +57 -0
- package/dist/services/quotes/source-registry.js.map +1 -0
- package/dist/services/quotes/types.d.ts +204 -0
- package/dist/services/quotes/types.js +3 -0
- package/dist/services/quotes/types.js.map +1 -0
- package/dist/shared/abis/erc20.d.ts +86 -0
- package/dist/shared/abis/erc20.js +116 -0
- package/dist/shared/abis/erc20.js.map +1 -0
- package/dist/shared/alchemy.d.ts +7 -0
- package/dist/shared/alchemy.js +35 -0
- package/dist/shared/alchemy.js.map +1 -0
- package/dist/shared/auto-update-cache.d.ts +23 -0
- package/dist/shared/auto-update-cache.js +38 -0
- package/dist/shared/auto-update-cache.js.map +1 -0
- package/dist/shared/concurrent-lru-cache.d.ts +66 -0
- package/dist/shared/concurrent-lru-cache.js +156 -0
- package/dist/shared/concurrent-lru-cache.js.map +1 -0
- package/dist/shared/constants.d.ts +12 -0
- package/dist/shared/constants.js +20 -0
- package/dist/shared/constants.js.map +1 -0
- package/dist/shared/contracts.d.ts +27 -0
- package/dist/shared/contracts.js +41 -0
- package/dist/shared/contracts.js.map +1 -0
- package/dist/shared/deferred.d.ts +12 -0
- package/dist/shared/deferred.js +32 -0
- package/dist/shared/deferred.js.map +1 -0
- package/dist/shared/defi-llama.d.ts +72 -0
- package/dist/shared/defi-llama.js +247 -0
- package/dist/shared/defi-llama.js.map +1 -0
- package/dist/shared/index.d.ts +10 -0
- package/dist/shared/index.js +51 -0
- package/dist/shared/index.js.map +1 -0
- package/dist/shared/requirements-and-support.d.ts +14 -0
- package/dist/shared/requirements-and-support.js +110 -0
- package/dist/shared/requirements-and-support.js.map +1 -0
- package/dist/shared/timeouts.d.ts +10 -0
- package/dist/shared/timeouts.js +41 -0
- package/dist/shared/timeouts.js.map +1 -0
- package/dist/shared/triggerable-promise.d.ts +9 -0
- package/dist/shared/triggerable-promise.js +16 -0
- package/dist/shared/triggerable-promise.js.map +1 -0
- package/dist/shared/utils.d.ts +39 -0
- package/dist/shared/utils.js +119 -0
- package/dist/shared/utils.js.map +1 -0
- package/dist/shared/viem.d.ts +5 -0
- package/dist/shared/viem.js +18 -0
- package/dist/shared/viem.js.map +1 -0
- package/dist/shared/wait.d.ts +7 -0
- package/dist/shared/wait.js +34 -0
- package/dist/shared/wait.js.map +1 -0
- package/dist/types.d.ts +99 -0
- package/dist/types.js +13 -0
- package/dist/types.js.map +1 -0
- package/dist/utility-types.d.ts +46 -0
- package/dist/utility-types.js +3 -0
- package/dist/utility-types.js.map +1 -0
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Web3 SDK
|
|
2
2
|
|
|
3
|
-
A comprehensive TypeScript SDK for interacting with the different contracts and accounts
|
|
3
|
+
A comprehensive TypeScript SDK for interacting with the different contracts and accounts across multiple networks. Supports both **EVM chains** (Ethereum, Optimism, Arbitrum, etc.) and **Solana**.
|
|
4
4
|
|
|
5
5
|
## 🧪 Installation
|
|
6
6
|
|
|
@@ -58,7 +58,7 @@ const accountAllowances = await sdk.allowanceService.getAllowances({
|
|
|
58
58
|
});
|
|
59
59
|
```
|
|
60
60
|
|
|
61
|
-
### 🔄 Getting Trade Quotes
|
|
61
|
+
### 🔄 Getting Trade Quotes (EVM)
|
|
62
62
|
|
|
63
63
|
```typescript
|
|
64
64
|
const allQuotes = await sdk.quoteService.getAllQuotesWithTxs({
|
|
@@ -84,29 +84,152 @@ const allQuotes = await sdk.quoteService.getAllQuotesWithTxs({
|
|
|
84
84
|
});
|
|
85
85
|
```
|
|
86
86
|
|
|
87
|
+
### 🌞 Getting Trade Quotes (Solana)
|
|
88
|
+
|
|
89
|
+
```typescript
|
|
90
|
+
import { SolanaChains, SolanaAddresses } from "@nchamo/sdk";
|
|
91
|
+
|
|
92
|
+
const solanaQuotes = await sdk.quoteService.getAllQuotesWithTxs({
|
|
93
|
+
request: {
|
|
94
|
+
chainId: SolanaChains.SOLANA.chainId, // 'solana'
|
|
95
|
+
sellToken: SolanaAddresses.NATIVE_SOL, // SOL
|
|
96
|
+
buyToken: SolanaAddresses.USDC, // USDC on Solana
|
|
97
|
+
order: {
|
|
98
|
+
type: "sell",
|
|
99
|
+
sellAmount: BigInt(1_000_000_000), // 1 SOL (9 decimals)
|
|
100
|
+
},
|
|
101
|
+
slippagePercentage: 1,
|
|
102
|
+
takerAddress: "YourSolanaPublicKey...", // Solana wallet public key (base58)
|
|
103
|
+
},
|
|
104
|
+
config: {
|
|
105
|
+
sourceConfig: {
|
|
106
|
+
jupiter: {
|
|
107
|
+
apiKey: process.env.JUPITER_API_KEY, // Required for Jupiter
|
|
108
|
+
},
|
|
109
|
+
},
|
|
110
|
+
},
|
|
111
|
+
});
|
|
112
|
+
```
|
|
113
|
+
|
|
87
114
|
## Overview
|
|
88
115
|
|
|
89
116
|
The Web3 SDK provides efficient tools to manage token balances, retrieve trade quotes from DEX aggregators, and check token holdings across multiple chains. It's designed to be modular, with each functionality organized into specialized services that handle specific aspects of blockchain interaction.
|
|
90
117
|
|
|
118
|
+
### Multi-Chain Support
|
|
119
|
+
|
|
120
|
+
The SDK supports two types of blockchain networks:
|
|
121
|
+
|
|
122
|
+
- **EVM Chains**: Ethereum, Optimism, Arbitrum, Polygon, Base, BNB Chain, and 40+ other EVM-compatible networks
|
|
123
|
+
- **Solana**: Full support for Solana mainnet with Jupiter DEX aggregator integration
|
|
124
|
+
|
|
91
125
|
### Available Services
|
|
92
126
|
|
|
93
127
|
The SDK is divided into the following services:
|
|
94
128
|
|
|
95
|
-
- **[Allowances Service](#allowances-service)**: Manage token approvals and permissions across
|
|
129
|
+
- **[Allowances Service](#allowances-service)**: Manage token approvals and permissions across EVM chains
|
|
96
130
|
- **[Balances Service](#balances-service)**: Query token balances across multiple chains and tokens
|
|
97
|
-
- **[Quotes Service](#quotes-service)**: Get optimized swap quotes from various DEX aggregators
|
|
98
|
-
- **[Gas Service](#gas-service)**: Optimize transaction costs and estimate gas prices
|
|
131
|
+
- **[Quotes Service](#quotes-service)**: Get optimized swap quotes from various DEX aggregators (EVM and Solana)
|
|
132
|
+
- **[Gas Service](#gas-service)**: Optimize transaction costs and estimate gas prices (EVM only)
|
|
99
133
|
- **[Prices Service](#prices-service)**: Retrieve token price information across multiple chains
|
|
100
134
|
- **[Metadata Service](#metadata-service)**: Access token metadata and information
|
|
101
135
|
|
|
102
136
|
Each service provides a focused set of functionality while maintaining a consistent interface and error handling approach. This modular design allows developers to use only the services they need while ensuring a cohesive experience across the entire SDK.
|
|
103
137
|
|
|
138
|
+
## Multi-Chain Architecture
|
|
139
|
+
|
|
140
|
+
The SDK uses a unified type system to support both EVM and Solana chains.
|
|
141
|
+
|
|
142
|
+
### Chain Types
|
|
143
|
+
|
|
144
|
+
```typescript
|
|
145
|
+
import {
|
|
146
|
+
Chains, // All chains (EVM + Solana)
|
|
147
|
+
EVMChains, // Only EVM chains
|
|
148
|
+
SolanaChains, // Only Solana chains
|
|
149
|
+
isEVMChain, // Type guard for EVM chains
|
|
150
|
+
isSolanaChain, // Type guard for Solana chains
|
|
151
|
+
} from "@nchamo/sdk";
|
|
152
|
+
|
|
153
|
+
// Access EVM chains
|
|
154
|
+
const ethereum = EVMChains.ETHEREUM; // chainId: 1 (number)
|
|
155
|
+
const optimism = EVMChains.OPTIMISM; // chainId: 10 (number)
|
|
156
|
+
|
|
157
|
+
// Access Solana chains
|
|
158
|
+
const solana = SolanaChains.SOLANA; // chainId: 'solana' (string)
|
|
159
|
+
const devnet = SolanaChains.SOLANA_DEVNET; // chainId: 'solana' (testnet)
|
|
160
|
+
|
|
161
|
+
// Combined access
|
|
162
|
+
const anyChain = Chains.ETHEREUM; // Works for both
|
|
163
|
+
const solanaChain = Chains.SOLANA; // Works for both
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
### ChainId Type
|
|
167
|
+
|
|
168
|
+
The `ChainId` type is a union that supports both EVM (numeric) and Solana (string) identifiers:
|
|
169
|
+
|
|
170
|
+
```typescript
|
|
171
|
+
type ChainId = number | string;
|
|
172
|
+
|
|
173
|
+
// EVM chainIds are numbers
|
|
174
|
+
const ethChainId: ChainId = 1;
|
|
175
|
+
const arbitrumChainId: ChainId = 42161;
|
|
176
|
+
|
|
177
|
+
// Solana chainId is a string
|
|
178
|
+
const solanaChainId: ChainId = "solana";
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
### Type Guards
|
|
182
|
+
|
|
183
|
+
Use type guards to handle chain-specific logic:
|
|
184
|
+
|
|
185
|
+
```typescript
|
|
186
|
+
import { isEVMChain, isSolanaChain, getChainByKey } from "@nchamo/sdk";
|
|
187
|
+
|
|
188
|
+
const chain = getChainByKey(chainId);
|
|
189
|
+
|
|
190
|
+
if (isEVMChain(chain)) {
|
|
191
|
+
// TypeScript knows this is EVMChain
|
|
192
|
+
console.log(chain.wToken); // 0x... (EVM address)
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
if (isSolanaChain(chain)) {
|
|
196
|
+
// TypeScript knows this is SolanaChain
|
|
197
|
+
console.log(chain.nativeCurrency.mint); // So111... (Solana mint address)
|
|
198
|
+
}
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
### Token Addresses
|
|
202
|
+
|
|
203
|
+
Token addresses differ between chains:
|
|
204
|
+
|
|
205
|
+
| Chain Type | Address Format | Example |
|
|
206
|
+
| ---------- | -------------- | ----------------------------------------------------- |
|
|
207
|
+
| EVM | Hex (0x...) | `0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48` (USDC) |
|
|
208
|
+
| Solana | Base58 | `EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v` (USDC) |
|
|
209
|
+
|
|
210
|
+
### Common Addresses
|
|
211
|
+
|
|
212
|
+
```typescript
|
|
213
|
+
import { Addresses, SolanaAddresses } from "@nchamo/sdk";
|
|
214
|
+
|
|
215
|
+
// EVM native token representation
|
|
216
|
+
Addresses.NATIVE_TOKEN; // '0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee'
|
|
217
|
+
Addresses.ZERO_ADDRESS; // '0x0000000000000000000000000000000000000000'
|
|
218
|
+
|
|
219
|
+
// Solana common tokens
|
|
220
|
+
SolanaAddresses.NATIVE_SOL; // 'So11111111111111111111111111111111111111112' (Wrapped SOL)
|
|
221
|
+
SolanaAddresses.USDC; // 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v'
|
|
222
|
+
SolanaAddresses.USDT; // 'Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB'
|
|
223
|
+
```
|
|
224
|
+
|
|
104
225
|
## Services
|
|
105
226
|
|
|
106
227
|
### Allowances Service
|
|
107
228
|
|
|
108
229
|
The Allowances Service provides functionality to check and manage token allowances across different chains.
|
|
109
230
|
|
|
231
|
+
> **Note**: The Allowances Service is only applicable to **EVM chains**. Solana uses a different authorization model where token approvals are not required for swaps through Jupiter.
|
|
232
|
+
|
|
110
233
|
#### Objective and Potential
|
|
111
234
|
|
|
112
235
|
- **Objective**: Enable efficient management of token approvals across multiple chains and protocols
|
|
@@ -273,6 +396,99 @@ The Quotes Service provides comprehensive functionality for getting trade quotes
|
|
|
273
396
|
- Automated trading systems
|
|
274
397
|
- Price impact analysis
|
|
275
398
|
|
|
399
|
+
#### Supported Quote Sources
|
|
400
|
+
|
|
401
|
+
##### EVM Quote Sources
|
|
402
|
+
|
|
403
|
+
The SDK supports multiple DEX aggregators for EVM chains including:
|
|
404
|
+
|
|
405
|
+
- 1inch, 0x, Paraswap, Kyber, OpenOcean, and more
|
|
406
|
+
|
|
407
|
+
##### Solana Quote Sources
|
|
408
|
+
|
|
409
|
+
For Solana, the SDK integrates with **Jupiter**, the leading DEX aggregator on Solana:
|
|
410
|
+
|
|
411
|
+
| Source | Chain | Buy Orders | Swap & Transfer | API Key Required |
|
|
412
|
+
| ------- | ------ | ---------- | --------------- | ---------------- |
|
|
413
|
+
| Jupiter | Solana | ✅ Yes | ❌ No | ✅ Yes |
|
|
414
|
+
|
|
415
|
+
**Jupiter Configuration:**
|
|
416
|
+
|
|
417
|
+
```typescript
|
|
418
|
+
const quotes = await sdk.quoteService.getAllQuotesWithTxs({
|
|
419
|
+
request: {
|
|
420
|
+
chainId: SolanaChains.SOLANA.chainId,
|
|
421
|
+
sellToken: SolanaAddresses.NATIVE_SOL,
|
|
422
|
+
buyToken: SolanaAddresses.USDC,
|
|
423
|
+
order: { type: "sell", sellAmount: BigInt(1_000_000_000) },
|
|
424
|
+
slippagePercentage: 1,
|
|
425
|
+
takerAddress: "YourSolanaPublicKey...",
|
|
426
|
+
},
|
|
427
|
+
config: {
|
|
428
|
+
sourceConfig: {
|
|
429
|
+
jupiter: {
|
|
430
|
+
apiKey: "your-jupiter-api-key", // Required
|
|
431
|
+
slippageBps: 100, // Optional: override slippage in basis points
|
|
432
|
+
onlyDirectRoutes: false, // Optional: only use direct routes
|
|
433
|
+
maxAccounts: 64, // Optional: max accounts in transaction
|
|
434
|
+
},
|
|
435
|
+
},
|
|
436
|
+
},
|
|
437
|
+
});
|
|
438
|
+
```
|
|
439
|
+
|
|
440
|
+
> **Note**: To obtain a Jupiter API key, visit [Jupiter's Developer Portal](https://dev.jup.ag/).
|
|
441
|
+
|
|
442
|
+
#### Transaction Types
|
|
443
|
+
|
|
444
|
+
The SDK returns different transaction formats for EVM and Solana:
|
|
445
|
+
|
|
446
|
+
##### EVM Transactions
|
|
447
|
+
|
|
448
|
+
```typescript
|
|
449
|
+
type EVMTransaction = {
|
|
450
|
+
type?: "evm"; // Optional, defaults to 'evm'
|
|
451
|
+
to: string; // Contract address
|
|
452
|
+
calldata: string; // Encoded function call
|
|
453
|
+
value?: bigint; // Native token amount (ETH, etc.)
|
|
454
|
+
};
|
|
455
|
+
```
|
|
456
|
+
|
|
457
|
+
##### Solana Transactions
|
|
458
|
+
|
|
459
|
+
```typescript
|
|
460
|
+
type SolanaTransaction = {
|
|
461
|
+
type: "solana";
|
|
462
|
+
swapTransaction: string; // Base64 encoded transaction
|
|
463
|
+
lastValidBlockHeight?: number; // Transaction validity window
|
|
464
|
+
};
|
|
465
|
+
```
|
|
466
|
+
|
|
467
|
+
##### Handling Both Transaction Types
|
|
468
|
+
|
|
469
|
+
```typescript
|
|
470
|
+
import { isEVMTransaction, isSolanaTransaction } from "@nchamo/sdk";
|
|
471
|
+
|
|
472
|
+
const quote = await sdk.quoteService.getBestQuote({ ... });
|
|
473
|
+
|
|
474
|
+
if (isEVMTransaction(quote.tx)) {
|
|
475
|
+
// Send EVM transaction
|
|
476
|
+
const txResponse = await signer.sendTransaction({
|
|
477
|
+
to: quote.tx.to,
|
|
478
|
+
data: quote.tx.calldata,
|
|
479
|
+
value: quote.tx.value,
|
|
480
|
+
});
|
|
481
|
+
}
|
|
482
|
+
|
|
483
|
+
if (isSolanaTransaction(quote.tx)) {
|
|
484
|
+
// Decode and send Solana transaction
|
|
485
|
+
const transaction = VersionedTransaction.deserialize(
|
|
486
|
+
Buffer.from(quote.tx.swapTransaction, 'base64')
|
|
487
|
+
);
|
|
488
|
+
const signature = await connection.sendTransaction(transaction);
|
|
489
|
+
}
|
|
490
|
+
```
|
|
491
|
+
|
|
276
492
|
#### Methods
|
|
277
493
|
|
|
278
494
|
##### `supportedSources()`
|
|
@@ -461,6 +677,8 @@ const allTxs = await sdk.quoteService.buildAllTxs({
|
|
|
461
677
|
|
|
462
678
|
The Gas Service provides gas price estimation and optimization across different chains.
|
|
463
679
|
|
|
680
|
+
> **Note**: The Gas Service is only applicable to **EVM chains**. Solana uses a different fee model based on **compute units** and **prioritization fees**, which are handled automatically by quote sources like Jupiter.
|
|
681
|
+
|
|
464
682
|
#### Objective and Potential
|
|
465
683
|
|
|
466
684
|
- **Objective**: Optimize transaction costs across different chains and networks
|
|
@@ -793,6 +1011,55 @@ const quotes = await sdk.quoteService.getAllQuotes({
|
|
|
793
1011
|
});
|
|
794
1012
|
```
|
|
795
1013
|
|
|
1014
|
+
### Solana Configuration
|
|
1015
|
+
|
|
1016
|
+
For Solana quotes, you need to configure the Jupiter quote source:
|
|
1017
|
+
|
|
1018
|
+
```typescript
|
|
1019
|
+
const sdk = buildSDK({
|
|
1020
|
+
// ... other config
|
|
1021
|
+
quotes: {
|
|
1022
|
+
sourceConfig: {
|
|
1023
|
+
jupiter: {
|
|
1024
|
+
apiKey: process.env.JUPITER_API_KEY,
|
|
1025
|
+
},
|
|
1026
|
+
},
|
|
1027
|
+
},
|
|
1028
|
+
});
|
|
1029
|
+
|
|
1030
|
+
// Or configure per-request:
|
|
1031
|
+
const quotes = await sdk.quoteService.getAllQuotesWithTxs({
|
|
1032
|
+
request: {
|
|
1033
|
+
chainId: SolanaChains.SOLANA.chainId,
|
|
1034
|
+
sellToken: SolanaAddresses.NATIVE_SOL,
|
|
1035
|
+
buyToken: "TokenMintAddress...",
|
|
1036
|
+
order: { type: "sell", sellAmount: BigInt(1_000_000_000) },
|
|
1037
|
+
slippagePercentage: 0.5,
|
|
1038
|
+
takerAddress: "YourSolanaPublicKey...",
|
|
1039
|
+
},
|
|
1040
|
+
config: {
|
|
1041
|
+
sourceConfig: {
|
|
1042
|
+
jupiter: {
|
|
1043
|
+
apiKey: process.env.JUPITER_API_KEY,
|
|
1044
|
+
slippageBps: 50, // 0.5% slippage
|
|
1045
|
+
onlyDirectRoutes: true, // Only direct swaps, no multi-hop
|
|
1046
|
+
maxAccounts: 32, // Limit transaction complexity
|
|
1047
|
+
},
|
|
1048
|
+
},
|
|
1049
|
+
},
|
|
1050
|
+
});
|
|
1051
|
+
```
|
|
1052
|
+
|
|
1053
|
+
#### Environment Variables
|
|
1054
|
+
|
|
1055
|
+
```bash
|
|
1056
|
+
# Required for Solana quotes
|
|
1057
|
+
JUPITER_API_KEY=your-jupiter-api-key
|
|
1058
|
+
|
|
1059
|
+
# Optional: RPC endpoints
|
|
1060
|
+
SOLANA_RPC_URL=https://api.mainnet-beta.solana.com
|
|
1061
|
+
```
|
|
1062
|
+
|
|
796
1063
|
### Multi-chain Support
|
|
797
1064
|
|
|
798
1065
|
All services support operations across multiple chains:
|