@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
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { QuoteParams, QuoteSourceMetadata, SourceQuoteResponse, SourceQuoteTransaction, BuildTxParams } from './types';
|
|
2
|
+
import { AlwaysValidConfigAndContextSource } from './base/always-valid-source';
|
|
3
|
+
type XYFinanceSupport = {
|
|
4
|
+
buyOrders: false;
|
|
5
|
+
swapAndTransfer: true;
|
|
6
|
+
};
|
|
7
|
+
type XYFinanceConfig = {};
|
|
8
|
+
type XYFinanceData = {
|
|
9
|
+
tx: SourceQuoteTransaction;
|
|
10
|
+
};
|
|
11
|
+
export declare class XYFinanceQuoteSource extends AlwaysValidConfigAndContextSource<XYFinanceSupport, XYFinanceConfig, XYFinanceData> {
|
|
12
|
+
getMetadata(): QuoteSourceMetadata<XYFinanceSupport>;
|
|
13
|
+
quote({ components: { fetchService }, request: { chainId, sellToken, buyToken, order, config: { slippagePercentage, timeout }, accounts: { takeFrom, recipient }, }, config, }: QuoteParams<XYFinanceSupport>): Promise<SourceQuoteResponse<XYFinanceData>>;
|
|
14
|
+
buildTx({ request }: BuildTxParams<XYFinanceConfig, XYFinanceData>): Promise<SourceQuoteTransaction>;
|
|
15
|
+
}
|
|
16
|
+
export {};
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.XYFinanceQuoteSource = void 0;
|
|
7
|
+
const qs_1 = __importDefault(require("qs"));
|
|
8
|
+
const _chains_1 = require("../../../chains");
|
|
9
|
+
const utils_1 = require("./utils");
|
|
10
|
+
const always_valid_source_1 = require("./base/always-valid-source");
|
|
11
|
+
// https://docs.xy.finance/supported-blockchains-bridges-dexs
|
|
12
|
+
const SUPPORTED_CHAINS = [
|
|
13
|
+
_chains_1.Chains.ETHEREUM,
|
|
14
|
+
_chains_1.Chains.BNB_CHAIN,
|
|
15
|
+
_chains_1.Chains.POLYGON,
|
|
16
|
+
_chains_1.Chains.CRONOS,
|
|
17
|
+
_chains_1.Chains.AVALANCHE,
|
|
18
|
+
_chains_1.Chains.ARBITRUM,
|
|
19
|
+
_chains_1.Chains.OPTIMISM,
|
|
20
|
+
_chains_1.Chains.ASTAR,
|
|
21
|
+
_chains_1.Chains.POLYGON_ZKEVM,
|
|
22
|
+
_chains_1.Chains.LINEA,
|
|
23
|
+
_chains_1.Chains.BASE,
|
|
24
|
+
_chains_1.Chains.SCROLL,
|
|
25
|
+
_chains_1.Chains.BLAST,
|
|
26
|
+
_chains_1.Chains.MANTLE,
|
|
27
|
+
];
|
|
28
|
+
const XY_FINANCE_METADATA = {
|
|
29
|
+
name: 'XY Finance',
|
|
30
|
+
supports: {
|
|
31
|
+
chains: SUPPORTED_CHAINS.map(({ chainId }) => chainId),
|
|
32
|
+
swapAndTransfer: true,
|
|
33
|
+
buyOrders: false,
|
|
34
|
+
},
|
|
35
|
+
logoURI: 'ipfs://Qmeuf9xMFE66UBeBNb9SneyyqSNAhsiNXiHES1vCvpyrFS',
|
|
36
|
+
};
|
|
37
|
+
class XYFinanceQuoteSource extends always_valid_source_1.AlwaysValidConfigAndContextSource {
|
|
38
|
+
getMetadata() {
|
|
39
|
+
return XY_FINANCE_METADATA;
|
|
40
|
+
}
|
|
41
|
+
async quote({ components: { fetchService }, request: { chainId, sellToken, buyToken, order, config: { slippagePercentage, timeout }, accounts: { takeFrom, recipient }, }, config, }) {
|
|
42
|
+
const queryParams = {
|
|
43
|
+
srcChainId: chainId,
|
|
44
|
+
srcQuoteTokenAddress: sellToken,
|
|
45
|
+
srcQuoteTokenAmount: order.sellAmount.toString(),
|
|
46
|
+
dstChainId: chainId,
|
|
47
|
+
dstQuoteTokenAddress: buyToken,
|
|
48
|
+
slippage: slippagePercentage,
|
|
49
|
+
receiver: recipient ?? takeFrom,
|
|
50
|
+
affiliate: config.referrer?.address,
|
|
51
|
+
srcSwapProvider: 'XY DexAggregator',
|
|
52
|
+
};
|
|
53
|
+
const queryString = qs_1.default.stringify(queryParams, { skipNulls: true, arrayFormat: 'comma' });
|
|
54
|
+
const url = `https://aggregator-api.xy.finance/v1/buildTx?${queryString}`;
|
|
55
|
+
const response = await fetchService.fetch(url, { timeout });
|
|
56
|
+
if (!response.ok) {
|
|
57
|
+
(0, utils_1.failed)(XY_FINANCE_METADATA, chainId, sellToken, buyToken, await response.text());
|
|
58
|
+
}
|
|
59
|
+
const { success, ...result } = await response.json();
|
|
60
|
+
if (!success) {
|
|
61
|
+
const { errorCode, errorMsg } = result;
|
|
62
|
+
(0, utils_1.failed)(XY_FINANCE_METADATA, chainId, sellToken, buyToken, `Failed with code ${errorCode} and message '${errorMsg}'`);
|
|
63
|
+
}
|
|
64
|
+
const { route: { dstQuoteTokenAmount, minReceiveAmount, contractAddress, estimatedGas }, tx: { to, data, value }, } = result;
|
|
65
|
+
return {
|
|
66
|
+
sellAmount: order.sellAmount,
|
|
67
|
+
maxSellAmount: order.sellAmount,
|
|
68
|
+
buyAmount: BigInt(dstQuoteTokenAmount),
|
|
69
|
+
minBuyAmount: BigInt(minReceiveAmount),
|
|
70
|
+
estimatedGas: estimatedGas ?? BigInt(estimatedGas),
|
|
71
|
+
allowanceTarget: (0, utils_1.calculateAllowanceTarget)(sellToken, contractAddress),
|
|
72
|
+
type: 'sell',
|
|
73
|
+
customData: {
|
|
74
|
+
tx: {
|
|
75
|
+
calldata: data,
|
|
76
|
+
to,
|
|
77
|
+
value: BigInt(value ?? 0),
|
|
78
|
+
},
|
|
79
|
+
},
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
async buildTx({ request }) {
|
|
83
|
+
return request.customData.tx;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
exports.XYFinanceQuoteSource = XYFinanceQuoteSource;
|
|
87
|
+
//# sourceMappingURL=xy-finance-quote-source.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xy-finance-quote-source.js","sourceRoot":"","sources":["../../../../src/services/quotes/quote-sources/xy-finance-quote-source.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { TimeString } from '../../../types';
|
|
2
|
+
import { QuoteResponseRelevantForTxBuild, QuoteTransaction, SourceId, SourceMetadata } from '../types';
|
|
3
|
+
import { IQuoteSourceList, SourceListBuildTxRequest, SourceListQuoteRequest, SourceListQuoteResponse } from './types';
|
|
4
|
+
import { IFetchService } from '../../fetch/types';
|
|
5
|
+
import { SourceConfig } from '../source-registry';
|
|
6
|
+
export type URIGenerator<T> = (request: T) => string;
|
|
7
|
+
type ConstructorParameters = {
|
|
8
|
+
fetchService: IFetchService;
|
|
9
|
+
getQuotesURI: URIGenerator<BatchAPISourceListQuoteRequest>;
|
|
10
|
+
buildTxURI: URIGenerator<BatchAPISourceListBuildTxRequest>;
|
|
11
|
+
sources: Record<SourceId, SourceMetadata>;
|
|
12
|
+
};
|
|
13
|
+
export declare class BatchAPISourceList implements IQuoteSourceList {
|
|
14
|
+
private readonly fetchService;
|
|
15
|
+
private readonly getQuotesURI;
|
|
16
|
+
private readonly buildTxURI;
|
|
17
|
+
private readonly sources;
|
|
18
|
+
constructor({ fetchService, getQuotesURI, buildTxURI, sources }: ConstructorParameters);
|
|
19
|
+
supportedSources(): Record<string, SourceMetadata>;
|
|
20
|
+
getQuotes(request: SourceListQuoteRequest): Record<SourceId, Promise<SourceListQuoteResponse>>;
|
|
21
|
+
buildTxs(request: SourceListBuildTxRequest): Record<SourceId, Promise<QuoteTransaction>>;
|
|
22
|
+
private fetchTxs;
|
|
23
|
+
}
|
|
24
|
+
export type BatchAPISourceListQuoteRequest = Omit<SourceListQuoteRequest, 'external'>;
|
|
25
|
+
export type BatchAPISourceListBuildTxRequest = {
|
|
26
|
+
sourceConfig?: SourceConfig;
|
|
27
|
+
quotes: Record<SourceId, QuoteResponseRelevantForTxBuild>;
|
|
28
|
+
quoteTimeout?: TimeString;
|
|
29
|
+
};
|
|
30
|
+
export {};
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BatchAPISourceList = void 0;
|
|
4
|
+
const timeouts_1 = require("../../../shared/timeouts");
|
|
5
|
+
const utils_1 = require("./utils");
|
|
6
|
+
class BatchAPISourceList {
|
|
7
|
+
constructor({ fetchService, getQuotesURI, buildTxURI, sources }) {
|
|
8
|
+
this.fetchService = fetchService;
|
|
9
|
+
this.getQuotesURI = getQuotesURI;
|
|
10
|
+
this.buildTxURI = buildTxURI;
|
|
11
|
+
this.sources = sources;
|
|
12
|
+
}
|
|
13
|
+
supportedSources() {
|
|
14
|
+
return this.sources;
|
|
15
|
+
}
|
|
16
|
+
getQuotes(request) {
|
|
17
|
+
// We reduce the request a little bit so that the server tries to be faster that the timeout
|
|
18
|
+
const reducedTimeout = (0, timeouts_1.reduceTimeout)(request.quoteTimeout, '500');
|
|
19
|
+
const uri = this.getQuotesURI(request);
|
|
20
|
+
const response = this.fetchService.fetch(uri, {
|
|
21
|
+
method: 'POST',
|
|
22
|
+
body: JSON.stringify({
|
|
23
|
+
...request,
|
|
24
|
+
quoteTimeout: reducedTimeout,
|
|
25
|
+
}),
|
|
26
|
+
timeout: request.quoteTimeout,
|
|
27
|
+
});
|
|
28
|
+
const result = response.then((result) => result.json());
|
|
29
|
+
return Object.fromEntries(request.sources.map((sourceId) => [
|
|
30
|
+
sourceId,
|
|
31
|
+
result.then((responses) => sourceId in responses
|
|
32
|
+
? (0, utils_1.bigintifyQuote)(responses[sourceId])
|
|
33
|
+
: Promise.reject(new Error(`Failed to fins a quote for source ${sourceId}`))),
|
|
34
|
+
]));
|
|
35
|
+
}
|
|
36
|
+
buildTxs(request) {
|
|
37
|
+
const result = this.fetchTxs(request);
|
|
38
|
+
return Object.fromEntries(Object.keys(request.quotes).map((sourceId) => [sourceId, result.then((responses) => (0, utils_1.bigintifyTx)(responses[sourceId]))]));
|
|
39
|
+
}
|
|
40
|
+
async fetchTxs(request) {
|
|
41
|
+
const quotes = {};
|
|
42
|
+
const promises = Object.entries(request.quotes).map(([sourceId, quotePromise]) => quotePromise.then((quote) => (quotes[sourceId] = quote)).catch(() => { }) // If the quote fails, then do ignore it
|
|
43
|
+
);
|
|
44
|
+
await Promise.all(promises);
|
|
45
|
+
// We reduce the request a little bit so that the server tries to be faster that the timeout
|
|
46
|
+
const reducedTimeout = (0, timeouts_1.reduceTimeout)(request.quoteTimeout, '500');
|
|
47
|
+
const apiRequest = {
|
|
48
|
+
sourceConfig: request.sourceConfig,
|
|
49
|
+
quotes,
|
|
50
|
+
quoteTimeout: reducedTimeout,
|
|
51
|
+
};
|
|
52
|
+
const uri = this.buildTxURI(apiRequest);
|
|
53
|
+
const response = this.fetchService.fetch(uri, {
|
|
54
|
+
method: 'POST',
|
|
55
|
+
body: JSON.stringify(apiRequest),
|
|
56
|
+
timeout: request.quoteTimeout,
|
|
57
|
+
});
|
|
58
|
+
return response.then((result) => result.json());
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
exports.BatchAPISourceList = BatchAPISourceList;
|
|
62
|
+
//# sourceMappingURL=batch-api-source-list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"batch-api-source-list.js","sourceRoot":"","sources":["../../../../src/services/quotes/source-lists/batch-api-source-list.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { IQuoteSourceList, SourceListQuoteRequest, SourceListQuoteResponse, SourceListBuildTxRequest } from './types';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/services/quotes/source-lists/index.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { QuoteTransaction, SourceId } from '../types';
|
|
2
|
+
import { IQuoteSourceList, SourceListBuildTxRequest, SourceListQuoteRequest, SourceListQuoteResponse } from './types';
|
|
3
|
+
import { IFetchService } from '../../fetch/types';
|
|
4
|
+
import { IProviderService } from '../../providers';
|
|
5
|
+
type ConstructorParameters = {
|
|
6
|
+
providerService: IProviderService;
|
|
7
|
+
fetchService: IFetchService;
|
|
8
|
+
};
|
|
9
|
+
export declare class LocalSourceList implements IQuoteSourceList {
|
|
10
|
+
private readonly providerService;
|
|
11
|
+
private readonly fetchService;
|
|
12
|
+
private readonly sources;
|
|
13
|
+
constructor({ providerService, fetchService }: ConstructorParameters);
|
|
14
|
+
supportedSources(): any;
|
|
15
|
+
getQuotes(request: SourceListQuoteRequest): Record<SourceId, Promise<SourceListQuoteResponse>>;
|
|
16
|
+
buildTxs(request: SourceListBuildTxRequest): Record<SourceId, Promise<QuoteTransaction>>;
|
|
17
|
+
private buildTx;
|
|
18
|
+
private getQuote;
|
|
19
|
+
private getSourceForRequest;
|
|
20
|
+
}
|
|
21
|
+
export {};
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.LocalSourceList = void 0;
|
|
4
|
+
const timeouts_1 = require("../../../shared/timeouts");
|
|
5
|
+
const source_registry_1 = require("../source-registry");
|
|
6
|
+
const buy_to_sell_order_wrapper_1 = require("../quote-sources/wrappers/buy-to-sell-order-wrapper");
|
|
7
|
+
const forced_timeout_wrapper_1 = require("../quote-sources/wrappers/forced-timeout-wrapper");
|
|
8
|
+
const errors_1 = require("../errors");
|
|
9
|
+
class LocalSourceList {
|
|
10
|
+
constructor({ providerService, fetchService }) {
|
|
11
|
+
this.sources = source_registry_1.QUOTE_SOURCES;
|
|
12
|
+
this.providerService = providerService;
|
|
13
|
+
this.fetchService = fetchService;
|
|
14
|
+
}
|
|
15
|
+
supportedSources() {
|
|
16
|
+
const entries = Object.entries(this.sources).map(([sourceId, source]) => [sourceId, source.getMetadata()]);
|
|
17
|
+
return Object.fromEntries(entries);
|
|
18
|
+
}
|
|
19
|
+
getQuotes(request) {
|
|
20
|
+
return Object.fromEntries(request.sources.map((sourceId) => [sourceId, this.getQuote(request, sourceId)]));
|
|
21
|
+
}
|
|
22
|
+
buildTxs(request) {
|
|
23
|
+
const entries = Object.entries(request.quotes).map(([sourceId, quote]) => [
|
|
24
|
+
sourceId,
|
|
25
|
+
quote.then((response) => (0, timeouts_1.timeoutPromise)(this.buildTx(sourceId, request.sourceConfig, response, request.quoteTimeout), request.quoteTimeout)),
|
|
26
|
+
]);
|
|
27
|
+
return Object.fromEntries(entries);
|
|
28
|
+
}
|
|
29
|
+
async buildTx(sourceId, sourceConfig, quote, timeout) {
|
|
30
|
+
const source = this.sources[sourceId];
|
|
31
|
+
if (!source)
|
|
32
|
+
throw new errors_1.SourceNotFoundError(sourceId);
|
|
33
|
+
// Check config is valid
|
|
34
|
+
const config = { ...sourceConfig?.global, ...sourceConfig?.custom?.[sourceId] };
|
|
35
|
+
if (!source.isConfigAndContextValidForTxBuilding(config)) {
|
|
36
|
+
throw new errors_1.SourceInvalidConfigOrContextError(sourceId);
|
|
37
|
+
}
|
|
38
|
+
// Map request to source request
|
|
39
|
+
const sourceRequest = mapTxRequestToSourceRequest(quote, timeout);
|
|
40
|
+
const tx = source.buildTx({
|
|
41
|
+
components: { providerService: this.providerService, fetchService: this.fetchService },
|
|
42
|
+
config,
|
|
43
|
+
request: sourceRequest,
|
|
44
|
+
});
|
|
45
|
+
const resolvedTx = await tx;
|
|
46
|
+
// Handle both EVM and Solana transactions
|
|
47
|
+
if ('swapTransaction' in resolvedTx && resolvedTx.type === 'solana') {
|
|
48
|
+
// For Solana transactions, return a special format
|
|
49
|
+
// The consumer should check for the presence of 'swapTransaction' to handle Solana txs
|
|
50
|
+
return {
|
|
51
|
+
to: '',
|
|
52
|
+
data: resolvedTx.swapTransaction,
|
|
53
|
+
from: quote.accounts.takerAddress,
|
|
54
|
+
// Include Solana-specific fields
|
|
55
|
+
...(resolvedTx.lastValidBlockHeight !== undefined && { lastValidBlockHeight: resolvedTx.lastValidBlockHeight }),
|
|
56
|
+
isSolanaTransaction: true,
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
// EVM transaction (default)
|
|
60
|
+
const { to, calldata, value } = resolvedTx;
|
|
61
|
+
return { to, data: calldata, value, from: quote.accounts.takerAddress };
|
|
62
|
+
}
|
|
63
|
+
async getQuote(request, sourceId) {
|
|
64
|
+
if (!(sourceId in this.sources)) {
|
|
65
|
+
throw new errors_1.SourceNotFoundError(sourceId);
|
|
66
|
+
}
|
|
67
|
+
// Map request to source request
|
|
68
|
+
const sourceRequest = mapQuoteRequestToSourceRequest(request);
|
|
69
|
+
// Find and wrap source
|
|
70
|
+
const source = this.getSourceForRequest(request, sourceId);
|
|
71
|
+
// Check config is valid
|
|
72
|
+
const config = { ...request.sourceConfig?.global, ...request.sourceConfig?.custom?.[sourceId] };
|
|
73
|
+
if (!source.isConfigAndContextValidForQuoting(config)) {
|
|
74
|
+
throw new errors_1.SourceInvalidConfigOrContextError(sourceId);
|
|
75
|
+
}
|
|
76
|
+
// Ask for quote
|
|
77
|
+
const response = await source.quote({
|
|
78
|
+
components: { providerService: this.providerService, fetchService: this.fetchService },
|
|
79
|
+
config,
|
|
80
|
+
request: sourceRequest,
|
|
81
|
+
});
|
|
82
|
+
// Map to response
|
|
83
|
+
return mapSourceResponseToResponse({ request, source, response, sourceId });
|
|
84
|
+
}
|
|
85
|
+
getSourceForRequest(request, sourceId) {
|
|
86
|
+
let source = this.sources[sourceId];
|
|
87
|
+
if (request.order.type === 'buy' && !source.getMetadata().supports.buyOrders) {
|
|
88
|
+
if (request.estimateBuyOrdersWithSellOnlySources) {
|
|
89
|
+
source = (0, buy_to_sell_order_wrapper_1.buyToSellOrderWrapper)(source);
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
throw new errors_1.SourceNoBuyOrdersError(sourceId);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
// Cast so that even if the source doesn't support it, everything else types ok
|
|
96
|
+
return (0, forced_timeout_wrapper_1.forcedTimeoutWrapper)(source);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
exports.LocalSourceList = LocalSourceList;
|
|
100
|
+
function mapSourceResponseToResponse({ source, request, response, sourceId, }) {
|
|
101
|
+
const recipient = request.recipient && source.getMetadata().supports.swapAndTransfer ? request.recipient : request.takerAddress;
|
|
102
|
+
return {
|
|
103
|
+
sellAmount: response.sellAmount,
|
|
104
|
+
buyAmount: response.buyAmount,
|
|
105
|
+
maxSellAmount: response.maxSellAmount,
|
|
106
|
+
minBuyAmount: response.minBuyAmount,
|
|
107
|
+
estimatedGas: response.estimatedGas,
|
|
108
|
+
recipient,
|
|
109
|
+
source: {
|
|
110
|
+
id: sourceId,
|
|
111
|
+
allowanceTarget: response.allowanceTarget,
|
|
112
|
+
name: source.getMetadata().name,
|
|
113
|
+
logoURI: source.getMetadata().logoURI,
|
|
114
|
+
},
|
|
115
|
+
type: response.type,
|
|
116
|
+
customData: response.customData,
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
function mapOrderToBigNumber(request) {
|
|
120
|
+
return request.order.type === 'sell'
|
|
121
|
+
? { type: 'sell', sellAmount: BigInt(request.order.sellAmount) }
|
|
122
|
+
: { type: 'buy', buyAmount: BigInt(request.order.buyAmount) };
|
|
123
|
+
}
|
|
124
|
+
function mapTxRequestToSourceRequest(response, timeout) {
|
|
125
|
+
return {
|
|
126
|
+
chainId: response.chainId,
|
|
127
|
+
sellToken: response.sellToken.address,
|
|
128
|
+
buyToken: response.buyToken.address,
|
|
129
|
+
type: response.type,
|
|
130
|
+
sellAmount: response.sellAmount.amount,
|
|
131
|
+
maxSellAmount: response.maxSellAmount.amount,
|
|
132
|
+
buyAmount: response.buyAmount.amount,
|
|
133
|
+
minBuyAmount: response.minBuyAmount.amount,
|
|
134
|
+
accounts: { takeFrom: response.accounts.takerAddress, recipient: response.accounts.recipient },
|
|
135
|
+
customData: response.customData,
|
|
136
|
+
config: { timeout },
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
function mapQuoteRequestToSourceRequest(request) {
|
|
140
|
+
return {
|
|
141
|
+
chainId: request.chainId,
|
|
142
|
+
sellToken: request.sellToken,
|
|
143
|
+
buyToken: request.buyToken,
|
|
144
|
+
order: mapOrderToBigNumber(request),
|
|
145
|
+
config: {
|
|
146
|
+
slippagePercentage: request.slippagePercentage,
|
|
147
|
+
txValidFor: request.txValidFor,
|
|
148
|
+
timeout: request.quoteTimeout,
|
|
149
|
+
},
|
|
150
|
+
accounts: {
|
|
151
|
+
takeFrom: request.takerAddress,
|
|
152
|
+
recipient: request.recipient,
|
|
153
|
+
},
|
|
154
|
+
external: request.external,
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
//# sourceMappingURL=local-source-list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-source-list.js","sourceRoot":"","sources":["../../../../src/services/quotes/source-lists/local-source-list.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { QuoteTransaction, SourceId } from '../types';
|
|
2
|
+
import { IQuoteSourceList, SourceListBuildTxRequest, SourceListQuoteRequest, SourceListQuoteResponse } from './types';
|
|
3
|
+
type ConstructorParameters = {
|
|
4
|
+
default: IQuoteSourceList;
|
|
5
|
+
overrides: {
|
|
6
|
+
getQuotes?: {
|
|
7
|
+
list: IQuoteSourceList;
|
|
8
|
+
sourceIds: SourceId[];
|
|
9
|
+
}[];
|
|
10
|
+
buildTxs?: {
|
|
11
|
+
list: IQuoteSourceList;
|
|
12
|
+
sourceIds: SourceId[];
|
|
13
|
+
}[];
|
|
14
|
+
};
|
|
15
|
+
};
|
|
16
|
+
export declare class OverridableSourceList implements IQuoteSourceList {
|
|
17
|
+
private readonly getQuotesOverrides;
|
|
18
|
+
private readonly buildTxsOverrides;
|
|
19
|
+
private readonly defaultSourceList;
|
|
20
|
+
constructor({ default: defaultSourceList, overrides }: ConstructorParameters);
|
|
21
|
+
supportedSources(): Record<string, import("../types").SourceMetadata>;
|
|
22
|
+
getQuotes(request: SourceListQuoteRequest): Record<SourceId, Promise<SourceListQuoteResponse>>;
|
|
23
|
+
buildTxs(request: SourceListBuildTxRequest): Record<SourceId, Promise<QuoteTransaction>>;
|
|
24
|
+
}
|
|
25
|
+
export {};
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OverridableSourceList = void 0;
|
|
4
|
+
class OverridableSourceList {
|
|
5
|
+
constructor({ default: defaultSourceList, overrides }) {
|
|
6
|
+
this.getQuotesOverrides = {};
|
|
7
|
+
this.buildTxsOverrides = {};
|
|
8
|
+
this.defaultSourceList = defaultSourceList;
|
|
9
|
+
for (const { list, sourceIds } of overrides.getQuotes ?? []) {
|
|
10
|
+
for (const sourceId of sourceIds) {
|
|
11
|
+
if (sourceId in this.getQuotesOverrides) {
|
|
12
|
+
throw new Error(`Source with id ${sourceId} was assigned twice`);
|
|
13
|
+
}
|
|
14
|
+
this.getQuotesOverrides[sourceId] = list;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
for (const { list, sourceIds } of overrides.buildTxs ?? []) {
|
|
18
|
+
for (const sourceId of sourceIds) {
|
|
19
|
+
if (sourceId in this.buildTxsOverrides) {
|
|
20
|
+
throw new Error(`Source with id ${sourceId} was assigned twice`);
|
|
21
|
+
}
|
|
22
|
+
this.buildTxsOverrides[sourceId] = list;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
supportedSources() {
|
|
27
|
+
const sources = this.defaultSourceList.supportedSources();
|
|
28
|
+
for (const [sourceId, sourceList] of Object.entries(this.getQuotesOverrides)) {
|
|
29
|
+
sources[sourceId] = sourceList.supportedSources()[sourceId];
|
|
30
|
+
}
|
|
31
|
+
for (const [sourceId, sourceList] of Object.entries(this.buildTxsOverrides)) {
|
|
32
|
+
sources[sourceId] = sourceList.supportedSources()[sourceId];
|
|
33
|
+
}
|
|
34
|
+
return sources;
|
|
35
|
+
}
|
|
36
|
+
getQuotes(request) {
|
|
37
|
+
const result = {};
|
|
38
|
+
const sourceListSourcesId = new Map();
|
|
39
|
+
request.sources.forEach((sourceId) => {
|
|
40
|
+
const sourceList = this.getQuotesOverrides[sourceId] ?? this.defaultSourceList;
|
|
41
|
+
if (!sourceListSourcesId.has(sourceList)) {
|
|
42
|
+
sourceListSourcesId.set(sourceList, []);
|
|
43
|
+
}
|
|
44
|
+
sourceListSourcesId.get(sourceList).push(sourceId);
|
|
45
|
+
});
|
|
46
|
+
sourceListSourcesId.forEach((sourceIds, sourceList) => {
|
|
47
|
+
const responses = sourceList.getQuotes({ ...request, sources: sourceIds });
|
|
48
|
+
Object.entries(responses).forEach(([sourceId, response]) => (result[sourceId] = response));
|
|
49
|
+
});
|
|
50
|
+
return result;
|
|
51
|
+
}
|
|
52
|
+
buildTxs(request) {
|
|
53
|
+
const result = {};
|
|
54
|
+
const sourceListSourcesId = new Map();
|
|
55
|
+
Object.entries(request.quotes).forEach(([sourceId, quote]) => {
|
|
56
|
+
const sourceList = this.buildTxsOverrides[sourceId] ?? this.defaultSourceList;
|
|
57
|
+
if (!sourceListSourcesId.has(sourceList)) {
|
|
58
|
+
sourceListSourcesId.set(sourceList, {});
|
|
59
|
+
}
|
|
60
|
+
sourceListSourcesId.get(sourceList)[sourceId] = quote;
|
|
61
|
+
});
|
|
62
|
+
sourceListSourcesId.forEach((quotes, sourceList) => {
|
|
63
|
+
const responses = sourceList.buildTxs({ ...request, quotes });
|
|
64
|
+
Object.entries(responses).forEach(([sourceId, response]) => (result[sourceId] = response));
|
|
65
|
+
});
|
|
66
|
+
return result;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
exports.OverridableSourceList = OverridableSourceList;
|
|
70
|
+
//# sourceMappingURL=overridable-source-list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"overridable-source-list.js","sourceRoot":"","sources":["../../../../src/services/quotes/source-lists/overridable-source-list.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { GasPrice } from '../../gas/types';
|
|
2
|
+
import { BaseTokenMetadata } from '../../metadata/types';
|
|
3
|
+
import { ITriggerablePromise } from '../../../shared/triggerable-promise';
|
|
4
|
+
import { Address, TimeString } from '../../../types';
|
|
5
|
+
import { QuoteRequest, SourceMetadata, SourceId, QuoteTransaction, QuoteResponseRelevantForTxBuild } from '../types';
|
|
6
|
+
import { SourceConfig } from '../source-registry';
|
|
7
|
+
export type IQuoteSourceList = {
|
|
8
|
+
supportedSources(): Record<SourceId, SourceMetadata>;
|
|
9
|
+
getQuotes(request: SourceListQuoteRequest): Record<SourceId, Promise<SourceListQuoteResponse>>;
|
|
10
|
+
buildTxs(request: SourceListBuildTxRequest): Record<SourceId, Promise<QuoteTransaction>>;
|
|
11
|
+
};
|
|
12
|
+
export type SourceListBuildTxRequest = {
|
|
13
|
+
sourceConfig?: SourceConfig;
|
|
14
|
+
quotes: Record<SourceId, Promise<QuoteResponseRelevantForTxBuild>>;
|
|
15
|
+
quoteTimeout?: TimeString;
|
|
16
|
+
};
|
|
17
|
+
export type SourceListQuoteRequest = Omit<QuoteRequest, 'filters' | 'gasSpeed'> & {
|
|
18
|
+
sources: SourceId[];
|
|
19
|
+
external: {
|
|
20
|
+
tokenData: ITriggerablePromise<{
|
|
21
|
+
sellToken: BaseTokenMetadata;
|
|
22
|
+
buyToken: BaseTokenMetadata;
|
|
23
|
+
}>;
|
|
24
|
+
gasPrice: ITriggerablePromise<GasPrice>;
|
|
25
|
+
};
|
|
26
|
+
sourceConfig?: SourceConfig;
|
|
27
|
+
quoteTimeout?: TimeString;
|
|
28
|
+
};
|
|
29
|
+
export type SourceListQuoteResponse<CustomQuoteSourceData extends Record<string, any> = Record<string, any>> = {
|
|
30
|
+
sellAmount: bigint;
|
|
31
|
+
buyAmount: bigint;
|
|
32
|
+
maxSellAmount: bigint;
|
|
33
|
+
minBuyAmount: bigint;
|
|
34
|
+
estimatedGas?: bigint;
|
|
35
|
+
type: 'sell' | 'buy';
|
|
36
|
+
recipient: Address;
|
|
37
|
+
source: {
|
|
38
|
+
id: SourceId;
|
|
39
|
+
allowanceTarget: Address;
|
|
40
|
+
name: string;
|
|
41
|
+
logoURI: string;
|
|
42
|
+
};
|
|
43
|
+
customData: CustomQuoteSourceData;
|
|
44
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/services/quotes/source-lists/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { SourceListQuoteResponse } from './types';
|
|
2
|
+
import { QuoteTransaction } from '../types';
|
|
3
|
+
import { StringifyBigInt } from '../../../utility-types';
|
|
4
|
+
export declare function bigintifyQuote(quote: StringifyBigInt<SourceListQuoteResponse>): SourceListQuoteResponse;
|
|
5
|
+
export declare function bigintifyTx(tx: StringifyBigInt<QuoteTransaction>): QuoteTransaction;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.bigintifyTx = exports.bigintifyQuote = void 0;
|
|
4
|
+
function bigintifyQuote(quote) {
|
|
5
|
+
return {
|
|
6
|
+
...quote,
|
|
7
|
+
sellAmount: BigInt(quote.sellAmount),
|
|
8
|
+
buyAmount: BigInt(quote.buyAmount),
|
|
9
|
+
maxSellAmount: BigInt(quote.maxSellAmount),
|
|
10
|
+
minBuyAmount: BigInt(quote.minBuyAmount),
|
|
11
|
+
estimatedGas: toBigInt(quote.estimatedGas),
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
exports.bigintifyQuote = bigintifyQuote;
|
|
15
|
+
function bigintifyTx(tx) {
|
|
16
|
+
return {
|
|
17
|
+
...tx,
|
|
18
|
+
value: toBigInt(tx.value),
|
|
19
|
+
maxPriorityFeePerGas: toBigInt(tx.maxPriorityFeePerGas),
|
|
20
|
+
maxFeePerGas: toBigInt(tx.maxFeePerGas),
|
|
21
|
+
gasPrice: toBigInt(tx.gasPrice),
|
|
22
|
+
gasLimit: toBigInt(tx.gasLimit),
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
exports.bigintifyTx = bigintifyTx;
|
|
26
|
+
function toBigInt(value) {
|
|
27
|
+
return value === undefined ? undefined : BigInt(value);
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/services/quotes/source-lists/utils.ts"],"names":[],"mappings":";;;AAKA,SAAgB,cAAc,CAAC,KAA+C;IAC5E,OAAO;QACL,GAAG,KAAK;QACR,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC;QACpC,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC;QAClC,aAAa,EAAE,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC;QAC1C,YAAY,EAAE,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC;QACxC,YAAY,EAAE,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC;KAC3C,CAAC;AACJ,CAAC;AATD,wCASC;AAED,SAAgB,WAAW,CAAC,EAAqC;IAC/D,OAAO;QACL,GAAG,EAAE;QACL,KAAK,EAAE,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC;QACzB,oBAAoB,EAAE,QAAQ,CAAC,EAAE,CAAC,oBAAoB,CAAC;QACvD,YAAY,EAAE,QAAQ,CAAC,EAAE,CAAC,YAAY,CAAC;QACvC,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC;QAC/B,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC;KAChC,CAAC;AACJ,CAAC;AATD,kCASC;AAED,SAAS,QAAQ,CAAC,KAA4B;IAC5C,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACzD,CAAC"}
|