@mento-protocol/mento-sdk 2.0.0-beta.8 → 3.0.0-beta.1
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 +220 -5
- package/dist/cache/routes.42220.d.ts +3 -0
- package/dist/cache/routes.42220.d.ts.map +1 -0
- package/dist/cache/routes.42220.js +112 -0
- package/dist/cache/routes.42220.js.map +1 -0
- package/dist/cache/tokens.11142220.d.ts +3 -0
- package/dist/cache/tokens.11142220.d.ts.map +1 -0
- package/dist/cache/tokens.11142220.js +129 -0
- package/dist/cache/tokens.11142220.js.map +1 -0
- package/dist/cache/tokens.42220.d.ts +3 -0
- package/dist/cache/tokens.42220.d.ts.map +1 -0
- package/dist/cache/tokens.42220.js +129 -0
- package/dist/cache/tokens.42220.js.map +1 -0
- package/dist/core/abis/bipoolmanager.d.ts +34 -0
- package/dist/core/abis/bipoolmanager.d.ts.map +1 -0
- package/dist/core/abis/bipoolmanager.js +72 -0
- package/dist/core/abis/bipoolmanager.js.map +1 -0
- package/dist/core/abis/broker.d.ts +2 -0
- package/dist/core/abis/broker.d.ts.map +1 -0
- package/dist/{abis → core/abis}/broker.js +3 -2
- package/dist/core/abis/broker.js.map +1 -0
- package/dist/core/abis/erc20.d.ts +2 -0
- package/dist/core/abis/erc20.d.ts.map +1 -0
- package/dist/{abis → core/abis}/erc20.js +5 -2
- package/dist/core/abis/erc20.js.map +1 -0
- package/dist/core/abis/fpmm.d.ts +34 -0
- package/dist/core/abis/fpmm.d.ts.map +1 -0
- package/dist/core/abis/fpmm.js +11 -0
- package/dist/core/abis/fpmm.js.map +1 -0
- package/dist/core/abis/fpmmFactory.d.ts +21 -0
- package/dist/core/abis/fpmmFactory.d.ts.map +1 -0
- package/dist/core/abis/fpmmFactory.js +9 -0
- package/dist/core/abis/fpmmFactory.js.map +1 -0
- package/dist/core/abis/index.d.ts +10 -0
- package/dist/core/abis/index.d.ts.map +1 -0
- package/dist/{abis → core/abis}/index.js +5 -0
- package/dist/core/abis/index.js.map +1 -0
- package/dist/core/abis/pricingmodule.d.ts +2 -0
- package/dist/core/abis/pricingmodule.d.ts.map +1 -0
- package/dist/core/abis/pricingmodule.js +6 -0
- package/dist/core/abis/pricingmodule.js.map +1 -0
- package/dist/core/abis/reserve.d.ts +2 -0
- package/dist/core/abis/reserve.d.ts.map +1 -0
- package/dist/core/abis/reserve.js +10 -0
- package/dist/core/abis/reserve.js.map +1 -0
- package/dist/core/abis/router.d.ts +2 -0
- package/dist/core/abis/router.d.ts.map +1 -0
- package/dist/core/abis/router.js +10 -0
- package/dist/core/abis/router.js.map +1 -0
- package/dist/core/abis/uniswapV3.d.ts +4 -0
- package/dist/core/abis/uniswapV3.d.ts.map +1 -0
- package/dist/{abis → core/abis}/uniswapV3.js +7 -6
- package/dist/core/abis/uniswapV3.js.map +1 -0
- package/dist/core/abis/virtualPool.d.ts +10 -0
- package/dist/core/abis/virtualPool.d.ts.map +1 -0
- package/dist/core/abis/virtualPool.js +6 -0
- package/dist/core/abis/virtualPool.js.map +1 -0
- package/dist/core/abis/virtualPoolFactory.d.ts +27 -0
- package/dist/core/abis/virtualPoolFactory.d.ts.map +1 -0
- package/dist/core/abis/virtualPoolFactory.js +9 -0
- package/dist/core/abis/virtualPoolFactory.js.map +1 -0
- package/dist/core/constants/aaveConfig.d.ts.map +1 -0
- package/dist/core/constants/aaveConfig.js.map +1 -0
- package/dist/{constants → core/constants}/addresses.d.ts +4 -5
- package/dist/core/constants/addresses.d.ts.map +1 -0
- package/dist/core/constants/addresses.js +73 -0
- package/dist/core/constants/addresses.js.map +1 -0
- package/dist/core/constants/chainId.d.ts +5 -0
- package/dist/core/constants/chainId.d.ts.map +1 -0
- package/dist/{constants → core/constants}/chainId.js +1 -1
- package/dist/core/constants/chainId.js.map +1 -0
- package/dist/core/constants/contractNames.d.ts.map +1 -0
- package/dist/core/constants/contractNames.js.map +1 -0
- package/dist/{constants → core/constants}/index.d.ts +0 -2
- package/dist/core/constants/index.d.ts.map +1 -0
- package/dist/{constants → core/constants}/index.js +0 -2
- package/dist/core/constants/index.js.map +1 -0
- package/dist/{constants → core/constants}/mentoAddresses.d.ts +2 -0
- package/dist/core/constants/mentoAddresses.d.ts.map +1 -0
- package/dist/{constants → core/constants}/mentoAddresses.js +2 -0
- package/dist/core/constants/mentoAddresses.js.map +1 -0
- package/dist/core/constants/protocolAddresses.d.ts.map +1 -0
- package/dist/core/constants/protocolAddresses.js.map +1 -0
- package/dist/core/errors/base.d.ts +8 -0
- package/dist/core/errors/base.d.ts.map +1 -0
- package/dist/core/errors/base.js +17 -0
- package/dist/core/errors/base.js.map +1 -0
- package/dist/core/errors/index.d.ts +3 -0
- package/dist/core/errors/index.d.ts.map +1 -0
- package/dist/core/errors/index.js +19 -0
- package/dist/core/errors/index.js.map +1 -0
- package/dist/core/errors/router.d.ts +8 -0
- package/dist/core/errors/router.d.ts.map +1 -0
- package/dist/core/errors/router.js +14 -0
- package/dist/core/errors/router.js.map +1 -0
- package/dist/core/types/contractAddresses.d.ts +39 -0
- package/dist/core/types/contractAddresses.d.ts.map +1 -0
- package/dist/core/types/contractAddresses.js.map +1 -0
- package/dist/{types → core/types}/index.d.ts +2 -1
- package/dist/core/types/index.d.ts.map +1 -0
- package/dist/{types → core/types}/index.js +2 -1
- package/dist/core/types/index.js.map +1 -0
- package/dist/core/types/pool.d.ts +35 -0
- package/dist/core/types/pool.d.ts.map +1 -0
- package/dist/core/types/pool.js +14 -0
- package/dist/core/types/pool.js.map +1 -0
- package/dist/core/types/provider.d.ts +45 -0
- package/dist/core/types/provider.d.ts.map +1 -0
- package/dist/core/types/provider.js +4 -0
- package/dist/core/types/provider.js.map +1 -0
- package/dist/core/types/route.d.ts +62 -0
- package/dist/core/types/route.d.ts.map +1 -0
- package/dist/{types/provider.js → core/types/route.js} +1 -1
- package/dist/core/types/route.js.map +1 -0
- package/dist/{types → core/types}/token.d.ts +7 -7
- package/dist/core/types/token.d.ts.map +1 -0
- package/dist/{types → core/types}/token.js.map +1 -1
- package/dist/index.d.ts +39 -46
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +57 -81
- package/dist/index.js.map +1 -1
- package/dist/services/index.d.ts +6 -5
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/index.js +6 -5
- package/dist/services/index.js.map +1 -1
- package/dist/services/pools/PoolService.d.ts +37 -0
- package/dist/services/pools/PoolService.d.ts.map +1 -0
- package/dist/services/pools/PoolService.js +158 -0
- package/dist/services/pools/PoolService.js.map +1 -0
- package/dist/services/pools/index.d.ts +2 -0
- package/dist/services/pools/index.d.ts.map +1 -0
- package/dist/services/pools/index.js +18 -0
- package/dist/services/pools/index.js.map +1 -0
- package/dist/services/quotes/QuoteService.d.ts +41 -0
- package/dist/services/quotes/QuoteService.d.ts.map +1 -0
- package/dist/services/quotes/QuoteService.js +61 -0
- package/dist/services/quotes/QuoteService.js.map +1 -0
- package/dist/services/quotes/index.d.ts +2 -0
- package/dist/services/quotes/index.d.ts.map +1 -0
- package/dist/services/quotes/index.js +18 -0
- package/dist/services/quotes/index.js.map +1 -0
- package/dist/services/routes/RouteService.d.ts +109 -0
- package/dist/services/routes/RouteService.d.ts.map +1 -0
- package/dist/services/routes/RouteService.js +241 -0
- package/dist/services/routes/RouteService.js.map +1 -0
- package/dist/services/routes/index.d.ts +2 -0
- package/dist/services/routes/index.d.ts.map +1 -0
- package/dist/services/routes/index.js +18 -0
- package/dist/services/routes/index.js.map +1 -0
- package/dist/services/swap/SwapService.d.ts +158 -0
- package/dist/services/swap/SwapService.d.ts.map +1 -0
- package/dist/services/swap/SwapService.js +160 -0
- package/dist/services/swap/SwapService.js.map +1 -0
- package/dist/services/swap/index.d.ts +2 -0
- package/dist/services/swap/index.d.ts.map +1 -0
- package/dist/services/swap/index.js +18 -0
- package/dist/services/swap/index.js.map +1 -0
- package/dist/services/tokens/index.d.ts +2 -0
- package/dist/services/tokens/index.d.ts.map +1 -0
- package/dist/services/tokens/index.js +18 -0
- package/dist/services/tokens/index.js.map +1 -0
- package/dist/services/tokens/supply/ISupplyCalculator.d.ts.map +1 -0
- package/dist/services/tokens/supply/ISupplyCalculator.js.map +1 -0
- package/dist/services/{supply → tokens/supply}/aaveSupplyCalculator.d.ts +4 -3
- package/dist/services/tokens/supply/aaveSupplyCalculator.d.ts.map +1 -0
- package/dist/services/{supply → tokens/supply}/aaveSupplyCalculator.js +7 -7
- package/dist/services/tokens/supply/aaveSupplyCalculator.js.map +1 -0
- package/dist/services/tokens/supply/calculatorFactory.d.ts +8 -0
- package/dist/services/tokens/supply/calculatorFactory.d.ts.map +1 -0
- package/dist/services/tokens/supply/calculatorFactory.js.map +1 -0
- package/dist/services/tokens/supply/defaultCalculatorFactory.d.ts +9 -0
- package/dist/services/tokens/supply/defaultCalculatorFactory.d.ts.map +1 -0
- package/dist/services/{supply → tokens/supply}/defaultCalculatorFactory.js +12 -7
- package/dist/services/tokens/supply/defaultCalculatorFactory.js.map +1 -0
- package/dist/services/tokens/supply/index.d.ts.map +1 -0
- package/dist/services/tokens/supply/index.js.map +1 -0
- package/dist/services/tokens/supply/multisigSupplyCalculator.d.ts +9 -0
- package/dist/services/tokens/supply/multisigSupplyCalculator.d.ts.map +1 -0
- package/dist/services/tokens/supply/multisigSupplyCalculator.js +33 -0
- package/dist/services/tokens/supply/multisigSupplyCalculator.js.map +1 -0
- package/dist/services/{supply → tokens/supply}/uniV3SupplyCalculator.d.ts +3 -3
- package/dist/services/tokens/supply/uniV3SupplyCalculator.d.ts.map +1 -0
- package/dist/services/{supply → tokens/supply}/uniV3SupplyCalculator.js +11 -6
- package/dist/services/tokens/supply/uniV3SupplyCalculator.js.map +1 -0
- package/dist/services/{supplyAdjustmentService.d.ts → tokens/supplyAdjustmentService.d.ts} +7 -2
- package/dist/services/tokens/supplyAdjustmentService.d.ts.map +1 -0
- package/dist/services/{supplyAdjustmentService.js → tokens/supplyAdjustmentService.js} +14 -11
- package/dist/services/tokens/supplyAdjustmentService.js.map +1 -0
- package/dist/services/tokens/tokenService.d.ts +33 -0
- package/dist/services/tokens/tokenService.d.ts.map +1 -0
- package/dist/services/tokens/tokenService.js +136 -0
- package/dist/services/tokens/tokenService.js.map +1 -0
- package/dist/utils/chainConfig.d.ts +16 -0
- package/dist/utils/chainConfig.d.ts.map +1 -0
- package/dist/utils/chainConfig.js +62 -0
- package/dist/utils/chainConfig.js.map +1 -0
- package/dist/utils/costUtils.d.ts +12 -0
- package/dist/utils/costUtils.d.ts.map +1 -0
- package/dist/utils/costUtils.js +59 -0
- package/dist/utils/costUtils.js.map +1 -0
- package/dist/utils/index.d.ts +4 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +4 -0
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/pathEncoder.d.ts +28 -0
- package/dist/utils/pathEncoder.d.ts.map +1 -0
- package/dist/utils/pathEncoder.js +57 -0
- package/dist/utils/pathEncoder.js.map +1 -0
- package/dist/utils/routeUtils.d.ts +295 -0
- package/dist/utils/routeUtils.d.ts.map +1 -0
- package/dist/utils/routeUtils.js +371 -0
- package/dist/utils/routeUtils.js.map +1 -0
- package/dist/utils/routes.d.ts +9 -0
- package/dist/utils/routes.d.ts.map +1 -0
- package/dist/utils/routes.js +49 -0
- package/dist/utils/routes.js.map +1 -0
- package/dist/utils/sortUtils.d.ts +24 -0
- package/dist/utils/sortUtils.d.ts.map +1 -0
- package/dist/utils/sortUtils.js +39 -0
- package/dist/utils/sortUtils.js.map +1 -0
- package/dist/utils/tokens.d.ts +78 -0
- package/dist/utils/tokens.d.ts.map +1 -0
- package/dist/utils/tokens.js +181 -0
- package/dist/utils/tokens.js.map +1 -0
- package/package.json +10 -23
- package/dist/abis/bipoolmanager.d.ts +0 -15
- package/dist/abis/bipoolmanager.d.ts.map +0 -1
- package/dist/abis/bipoolmanager.js +0 -26
- package/dist/abis/bipoolmanager.js.map +0 -1
- package/dist/abis/broker.d.ts +0 -2
- package/dist/abis/broker.d.ts.map +0 -1
- package/dist/abis/broker.js.map +0 -1
- package/dist/abis/erc20.d.ts +0 -2
- package/dist/abis/erc20.d.ts.map +0 -1
- package/dist/abis/erc20.js.map +0 -1
- package/dist/abis/index.d.ts +0 -5
- package/dist/abis/index.d.ts.map +0 -1
- package/dist/abis/index.js.map +0 -1
- package/dist/abis/pricingmodule.d.ts +0 -2
- package/dist/abis/pricingmodule.d.ts.map +0 -1
- package/dist/abis/pricingmodule.js +0 -5
- package/dist/abis/pricingmodule.js.map +0 -1
- package/dist/abis/reserve.d.ts +0 -2
- package/dist/abis/reserve.d.ts.map +0 -1
- package/dist/abis/reserve.js +0 -9
- package/dist/abis/reserve.js.map +0 -1
- package/dist/abis/uniswapV3.d.ts +0 -4
- package/dist/abis/uniswapV3.d.ts.map +0 -1
- package/dist/abis/uniswapV3.js.map +0 -1
- package/dist/adapters/implementations/ethersAdapter.d.ts +0 -9
- package/dist/adapters/implementations/ethersAdapter.d.ts.map +0 -1
- package/dist/adapters/implementations/ethersAdapter.js +0 -19
- package/dist/adapters/implementations/ethersAdapter.js.map +0 -1
- package/dist/adapters/implementations/ethersV5Adapter.d.ts +0 -9
- package/dist/adapters/implementations/ethersV5Adapter.d.ts.map +0 -1
- package/dist/adapters/implementations/ethersV5Adapter.js +0 -19
- package/dist/adapters/implementations/ethersV5Adapter.js.map +0 -1
- package/dist/adapters/implementations/viemAdapter.d.ts +0 -9
- package/dist/adapters/implementations/viemAdapter.d.ts.map +0 -1
- package/dist/adapters/implementations/viemAdapter.js +0 -26
- package/dist/adapters/implementations/viemAdapter.js.map +0 -1
- package/dist/adapters/index.d.ts +0 -5
- package/dist/adapters/index.d.ts.map +0 -1
- package/dist/adapters/index.js +0 -10
- package/dist/adapters/index.js.map +0 -1
- package/dist/adapters/proxies/ethersAdapterProxy.d.ts +0 -25
- package/dist/adapters/proxies/ethersAdapterProxy.d.ts.map +0 -1
- package/dist/adapters/proxies/ethersAdapterProxy.js +0 -71
- package/dist/adapters/proxies/ethersAdapterProxy.js.map +0 -1
- package/dist/adapters/proxies/ethersV5AdapterProxy.d.ts +0 -25
- package/dist/adapters/proxies/ethersV5AdapterProxy.d.ts.map +0 -1
- package/dist/adapters/proxies/ethersV5AdapterProxy.js +0 -71
- package/dist/adapters/proxies/ethersV5AdapterProxy.js.map +0 -1
- package/dist/adapters/proxies/viemAdapterProxy.d.ts +0 -25
- package/dist/adapters/proxies/viemAdapterProxy.d.ts.map +0 -1
- package/dist/adapters/proxies/viemAdapterProxy.js +0 -71
- package/dist/adapters/proxies/viemAdapterProxy.js.map +0 -1
- package/dist/constants/aaveConfig.d.ts.map +0 -1
- package/dist/constants/aaveConfig.js.map +0 -1
- package/dist/constants/addresses.d.ts.map +0 -1
- package/dist/constants/addresses.js +0 -61
- package/dist/constants/addresses.js.map +0 -1
- package/dist/constants/chainId.d.ts +0 -5
- package/dist/constants/chainId.d.ts.map +0 -1
- package/dist/constants/chainId.js.map +0 -1
- package/dist/constants/contractNames.d.ts.map +0 -1
- package/dist/constants/contractNames.js.map +0 -1
- package/dist/constants/index.d.ts.map +0 -1
- package/dist/constants/index.js.map +0 -1
- package/dist/constants/mentoAddresses.d.ts.map +0 -1
- package/dist/constants/mentoAddresses.js.map +0 -1
- package/dist/constants/proposalState.d.ts +0 -11
- package/dist/constants/proposalState.d.ts.map +0 -1
- package/dist/constants/proposalState.js +0 -15
- package/dist/constants/proposalState.js.map +0 -1
- package/dist/constants/protocolAddresses.d.ts.map +0 -1
- package/dist/constants/protocolAddresses.js.map +0 -1
- package/dist/constants/stableTokenMetadata.d.ts +0 -12
- package/dist/constants/stableTokenMetadata.d.ts.map +0 -1
- package/dist/constants/stableTokenMetadata.js +0 -14
- package/dist/constants/stableTokenMetadata.js.map +0 -1
- package/dist/services/collateralAssetService.d.ts +0 -8
- package/dist/services/collateralAssetService.d.ts.map +0 -1
- package/dist/services/collateralAssetService.js +0 -47
- package/dist/services/collateralAssetService.js.map +0 -1
- package/dist/services/stableTokenService.d.ts +0 -9
- package/dist/services/stableTokenService.d.ts.map +0 -1
- package/dist/services/stableTokenService.js +0 -40
- package/dist/services/stableTokenService.js.map +0 -1
- package/dist/services/supply/ISupplyCalculator.d.ts.map +0 -1
- package/dist/services/supply/ISupplyCalculator.js.map +0 -1
- package/dist/services/supply/aaveSupplyCalculator.d.ts.map +0 -1
- package/dist/services/supply/aaveSupplyCalculator.js.map +0 -1
- package/dist/services/supply/calculatorFactory.d.ts +0 -8
- package/dist/services/supply/calculatorFactory.d.ts.map +0 -1
- package/dist/services/supply/calculatorFactory.js.map +0 -1
- package/dist/services/supply/defaultCalculatorFactory.d.ts +0 -9
- package/dist/services/supply/defaultCalculatorFactory.d.ts.map +0 -1
- package/dist/services/supply/defaultCalculatorFactory.js.map +0 -1
- package/dist/services/supply/index.d.ts.map +0 -1
- package/dist/services/supply/index.js.map +0 -1
- package/dist/services/supply/multisigSupplyCalculator.d.ts +0 -9
- package/dist/services/supply/multisigSupplyCalculator.d.ts.map +0 -1
- package/dist/services/supply/multisigSupplyCalculator.js +0 -21
- package/dist/services/supply/multisigSupplyCalculator.js.map +0 -1
- package/dist/services/supply/uniV3SupplyCalculator.d.ts.map +0 -1
- package/dist/services/supply/uniV3SupplyCalculator.js.map +0 -1
- package/dist/services/supplyAdjustmentService.d.ts.map +0 -1
- package/dist/services/supplyAdjustmentService.js.map +0 -1
- package/dist/services/tokenMetadataService.d.ts +0 -8
- package/dist/services/tokenMetadataService.d.ts.map +0 -1
- package/dist/services/tokenMetadataService.js +0 -44
- package/dist/services/tokenMetadataService.js.map +0 -1
- package/dist/types/contractAddresses.d.ts +0 -23
- package/dist/types/contractAddresses.d.ts.map +0 -1
- package/dist/types/contractAddresses.js.map +0 -1
- package/dist/types/exchange.d.ts +0 -6
- package/dist/types/exchange.d.ts.map +0 -1
- package/dist/types/exchange.js +0 -3
- package/dist/types/exchange.js.map +0 -1
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/index.js.map +0 -1
- package/dist/types/provider.d.ts +0 -11
- package/dist/types/provider.d.ts.map +0 -1
- package/dist/types/provider.js.map +0 -1
- package/dist/types/token.d.ts.map +0 -1
- /package/dist/{constants → core/constants}/aaveConfig.d.ts +0 -0
- /package/dist/{constants → core/constants}/aaveConfig.js +0 -0
- /package/dist/{constants → core/constants}/contractNames.d.ts +0 -0
- /package/dist/{constants → core/constants}/contractNames.js +0 -0
- /package/dist/{constants → core/constants}/protocolAddresses.d.ts +0 -0
- /package/dist/{constants → core/constants}/protocolAddresses.js +0 -0
- /package/dist/{types → core/types}/contractAddresses.js +0 -0
- /package/dist/{types → core/types}/token.js +0 -0
- /package/dist/services/{supply → tokens/supply}/ISupplyCalculator.d.ts +0 -0
- /package/dist/services/{supply → tokens/supply}/ISupplyCalculator.js +0 -0
- /package/dist/services/{supply → tokens/supply}/calculatorFactory.js +0 -0
- /package/dist/services/{supply → tokens/supply}/index.d.ts +0 -0
- /package/dist/services/{supply → tokens/supply}/index.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tokenService.d.ts","sourceRoot":"","sources":["../../../src/services/tokens/tokenService.ts"],"names":[],"mappings":"AACA,OAAO,EAAS,WAAW,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAkBtE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,MAAM,CAAA;AAExC,qBAAa,YAAY;IAGX,OAAO,CAAC,YAAY;IAAgB,OAAO,CAAC,OAAO;IAF/D,OAAO,CAAC,uBAAuB,CAAyB;gBAEpC,YAAY,EAAE,YAAY,EAAU,OAAO,EAAE,MAAM;IAQvE;;;;OAIG;YACW,gBAAgB;IAqC9B;;;;OAIG;YACW,cAAc;IAa5B;;;;OAIG;IACU,eAAe,CAAC,aAAa,UAAO,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAuC1E;;;;OAIG;IACU,mBAAmB,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;CA2C/D"}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TokenService = void 0;
|
|
4
|
+
const abis_1 = require("../../core/abis");
|
|
5
|
+
const constants_1 = require("../../core/constants");
|
|
6
|
+
const utils_1 = require("../../utils");
|
|
7
|
+
const supplyAdjustmentService_1 = require("./supplyAdjustmentService");
|
|
8
|
+
const supply_1 = require("./supply");
|
|
9
|
+
class TokenService {
|
|
10
|
+
constructor(publicClient, chainId) {
|
|
11
|
+
this.publicClient = publicClient;
|
|
12
|
+
this.chainId = chainId;
|
|
13
|
+
this.supplyAdjustmentService = new supplyAdjustmentService_1.SupplyAdjustmentService(publicClient, chainId, new supply_1.DefaultCalculatorFactory());
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Get token metadata (name, symbol, decimals)
|
|
17
|
+
* @param address - Token contract address
|
|
18
|
+
* @returns Token metadata
|
|
19
|
+
*/
|
|
20
|
+
async getTokenMetadata(address) {
|
|
21
|
+
const [name, symbol, decimals] = await Promise.all([
|
|
22
|
+
(0, utils_1.retryOperation)(() => this.publicClient.readContract({
|
|
23
|
+
address: address,
|
|
24
|
+
abi: abis_1.ERC20_ABI,
|
|
25
|
+
functionName: 'name',
|
|
26
|
+
args: [],
|
|
27
|
+
})),
|
|
28
|
+
(0, utils_1.retryOperation)(() => this.publicClient.readContract({
|
|
29
|
+
address: address,
|
|
30
|
+
abi: abis_1.ERC20_ABI,
|
|
31
|
+
functionName: 'symbol',
|
|
32
|
+
args: [],
|
|
33
|
+
})),
|
|
34
|
+
(0, utils_1.retryOperation)(() => this.publicClient.readContract({
|
|
35
|
+
address: address,
|
|
36
|
+
abi: abis_1.ERC20_ABI,
|
|
37
|
+
functionName: 'decimals',
|
|
38
|
+
args: [],
|
|
39
|
+
})),
|
|
40
|
+
]);
|
|
41
|
+
return {
|
|
42
|
+
name: name,
|
|
43
|
+
symbol: symbol,
|
|
44
|
+
decimals: Number(decimals),
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Get total supply of a token
|
|
49
|
+
* @param address - Token contract address
|
|
50
|
+
* @returns Total supply as string
|
|
51
|
+
*/
|
|
52
|
+
async getTotalSupply(address) {
|
|
53
|
+
const totalSupply = await (0, utils_1.retryOperation)(() => this.publicClient.readContract({
|
|
54
|
+
address: address,
|
|
55
|
+
abi: abis_1.ERC20_ABI,
|
|
56
|
+
functionName: 'totalSupply',
|
|
57
|
+
args: [],
|
|
58
|
+
}));
|
|
59
|
+
return totalSupply.toString();
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Get all stable tokens from the Reserve contract
|
|
63
|
+
* @param includeSupply - Whether to fetch total supply and apply adjustments
|
|
64
|
+
* @returns Array of stable tokens
|
|
65
|
+
*/
|
|
66
|
+
async getStableTokens(includeSupply = true) {
|
|
67
|
+
const reserveAddress = (0, constants_1.getContractAddress)(this.chainId, constants_1.RESERVE);
|
|
68
|
+
const tokenAddresses = (await this.publicClient.readContract({
|
|
69
|
+
address: reserveAddress,
|
|
70
|
+
abi: abis_1.RESERVE_ABI,
|
|
71
|
+
functionName: 'getTokens',
|
|
72
|
+
args: [],
|
|
73
|
+
}));
|
|
74
|
+
const tokens = [];
|
|
75
|
+
for (const address of tokenAddresses) {
|
|
76
|
+
const metadata = await this.getTokenMetadata(address);
|
|
77
|
+
let totalSupply = '0';
|
|
78
|
+
if (includeSupply) {
|
|
79
|
+
totalSupply = await this.getTotalSupply(address);
|
|
80
|
+
}
|
|
81
|
+
const token = {
|
|
82
|
+
address,
|
|
83
|
+
...metadata,
|
|
84
|
+
totalSupply,
|
|
85
|
+
};
|
|
86
|
+
if (includeSupply) {
|
|
87
|
+
const adjustedSupply = await this.supplyAdjustmentService.getAdjustedSupply(token);
|
|
88
|
+
token.totalSupply = adjustedSupply;
|
|
89
|
+
}
|
|
90
|
+
tokens.push(token);
|
|
91
|
+
}
|
|
92
|
+
return tokens;
|
|
93
|
+
}
|
|
94
|
+
// TODO: V3 - How does USD.m fit in here?
|
|
95
|
+
/**
|
|
96
|
+
* Get all collateral assets from exchanges
|
|
97
|
+
* Filters tokens that are marked as collateral in the Reserve contract
|
|
98
|
+
* @returns Array of collateral assets
|
|
99
|
+
*/
|
|
100
|
+
async getCollateralAssets() {
|
|
101
|
+
const biPoolManagerAddress = (0, constants_1.getContractAddress)(this.chainId, constants_1.BIPOOLMANAGER);
|
|
102
|
+
const reserveAddress = (0, constants_1.getContractAddress)(this.chainId, constants_1.RESERVE);
|
|
103
|
+
// TODO: V3 - Should instead use the factories.
|
|
104
|
+
// Get all exchanges to find unique token addresses
|
|
105
|
+
const exchanges = (await (0, utils_1.retryOperation)(() => this.publicClient.readContract({
|
|
106
|
+
address: biPoolManagerAddress,
|
|
107
|
+
abi: abis_1.BIPOOL_MANAGER_ABI,
|
|
108
|
+
functionName: 'getExchanges',
|
|
109
|
+
})));
|
|
110
|
+
// Extract unique token addresses from exchanges
|
|
111
|
+
const uniqueAddresses = new Set();
|
|
112
|
+
for (const exchange of exchanges) {
|
|
113
|
+
exchange.assets.forEach((address) => uniqueAddresses.add(address));
|
|
114
|
+
}
|
|
115
|
+
// Check which tokens are collateral assets and get their metadata
|
|
116
|
+
const assets = [];
|
|
117
|
+
for (const address of uniqueAddresses) {
|
|
118
|
+
const isCollateral = (await (0, utils_1.retryOperation)(() => this.publicClient.readContract({
|
|
119
|
+
address: reserveAddress,
|
|
120
|
+
abi: abis_1.RESERVE_ABI,
|
|
121
|
+
functionName: 'isCollateralAsset',
|
|
122
|
+
args: [address],
|
|
123
|
+
})));
|
|
124
|
+
if (isCollateral) {
|
|
125
|
+
const metadata = await this.getTokenMetadata(address);
|
|
126
|
+
assets.push({
|
|
127
|
+
address,
|
|
128
|
+
...metadata,
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
return assets;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
exports.TokenService = TokenService;
|
|
136
|
+
//# sourceMappingURL=tokenService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tokenService.js","sourceRoot":"","sources":["../../../src/services/tokens/tokenService.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { type Chain } from 'viem/chains';
|
|
2
|
+
/**
|
|
3
|
+
* Get the default RPC URL for a given chain ID
|
|
4
|
+
* @param chainId - The chain ID
|
|
5
|
+
* @returns The default RPC URL for the chain
|
|
6
|
+
* @throws Error if chain ID is not supported
|
|
7
|
+
*/
|
|
8
|
+
export declare function getDefaultRpcUrl(chainId: number): string;
|
|
9
|
+
/**
|
|
10
|
+
* Get the viem chain configuration for a given chain ID
|
|
11
|
+
* @param chainId - The chain ID
|
|
12
|
+
* @returns The viem chain configuration
|
|
13
|
+
* @throws Error if chain ID is not supported
|
|
14
|
+
*/
|
|
15
|
+
export declare function getChainConfig(chainId: number): Chain;
|
|
16
|
+
//# sourceMappingURL=chainConfig.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chainConfig.d.ts","sourceRoot":"","sources":["../../src/utils/chainConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,KAAK,EAAE,MAAM,aAAa,CAAA;AA2B9C;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CASxD;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,CASrD"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getDefaultRpcUrl = getDefaultRpcUrl;
|
|
4
|
+
exports.getChainConfig = getChainConfig;
|
|
5
|
+
const chains_1 = require("viem/chains");
|
|
6
|
+
const viem_1 = require("viem");
|
|
7
|
+
const chainId_1 = require("../core/constants/chainId");
|
|
8
|
+
// Celo Sepolia chain definition (not available in viem/chains yet)
|
|
9
|
+
const celoSepolia = (0, viem_1.defineChain)({
|
|
10
|
+
id: 11142220,
|
|
11
|
+
name: 'Celo Sepolia',
|
|
12
|
+
nativeCurrency: {
|
|
13
|
+
decimals: 18,
|
|
14
|
+
name: 'CELO',
|
|
15
|
+
symbol: 'CELO',
|
|
16
|
+
},
|
|
17
|
+
rpcUrls: {
|
|
18
|
+
default: {
|
|
19
|
+
http: ['https://forno.celo-sepolia.celo-testnet.org'],
|
|
20
|
+
},
|
|
21
|
+
},
|
|
22
|
+
blockExplorers: {
|
|
23
|
+
default: {
|
|
24
|
+
name: 'Celo Explorer',
|
|
25
|
+
url: 'https://sepolia.celoscan.io',
|
|
26
|
+
},
|
|
27
|
+
},
|
|
28
|
+
testnet: true,
|
|
29
|
+
});
|
|
30
|
+
/**
|
|
31
|
+
* Get the default RPC URL for a given chain ID
|
|
32
|
+
* @param chainId - The chain ID
|
|
33
|
+
* @returns The default RPC URL for the chain
|
|
34
|
+
* @throws Error if chain ID is not supported
|
|
35
|
+
*/
|
|
36
|
+
function getDefaultRpcUrl(chainId) {
|
|
37
|
+
switch (chainId) {
|
|
38
|
+
case chainId_1.ChainId.CELO:
|
|
39
|
+
return 'https://forno.celo.org';
|
|
40
|
+
case chainId_1.ChainId.CELO_SEPOLIA:
|
|
41
|
+
return 'https://forno.celo-sepolia.celo-testnet.org';
|
|
42
|
+
default:
|
|
43
|
+
throw new Error(`Unsupported chain ID: ${chainId}`);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Get the viem chain configuration for a given chain ID
|
|
48
|
+
* @param chainId - The chain ID
|
|
49
|
+
* @returns The viem chain configuration
|
|
50
|
+
* @throws Error if chain ID is not supported
|
|
51
|
+
*/
|
|
52
|
+
function getChainConfig(chainId) {
|
|
53
|
+
switch (chainId) {
|
|
54
|
+
case chainId_1.ChainId.CELO:
|
|
55
|
+
return chains_1.celo;
|
|
56
|
+
case chainId_1.ChainId.CELO_SEPOLIA:
|
|
57
|
+
return celoSepolia;
|
|
58
|
+
default:
|
|
59
|
+
throw new Error(`Unsupported chain ID: ${chainId}`);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=chainConfig.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chainConfig.js","sourceRoot":"","sources":["../../src/utils/chainConfig.ts"],"names":[],"mappings":";;AAiCA,4CASC;AAQD,wCASC;AA3DD,wCAA8C;AAC9C,+BAAkC;AAClC,uDAAmD;AAEnD,mEAAmE;AACnE,MAAM,WAAW,GAAG,IAAA,kBAAW,EAAC;IAC9B,EAAE,EAAE,QAAQ;IACZ,IAAI,EAAE,cAAc;IACpB,cAAc,EAAE;QACd,QAAQ,EAAE,EAAE;QACZ,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE,MAAM;KACf;IACD,OAAO,EAAE;QACP,OAAO,EAAE;YACP,IAAI,EAAE,CAAC,6CAA6C,CAAC;SACtD;KACF;IACD,cAAc,EAAE;QACd,OAAO,EAAE;YACP,IAAI,EAAE,eAAe;YACrB,GAAG,EAAE,6BAA6B;SACnC;KACF;IACD,OAAO,EAAE,IAAI;CACd,CAAC,CAAA;AAEF;;;;;GAKG;AACH,SAAgB,gBAAgB,CAAC,OAAe;IAC9C,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,iBAAO,CAAC,IAAI;YACf,OAAO,wBAAwB,CAAA;QACjC,KAAK,iBAAO,CAAC,YAAY;YACvB,OAAO,6CAA6C,CAAA;QACtD;YACE,MAAM,IAAI,KAAK,CAAC,yBAAyB,OAAO,EAAE,CAAC,CAAA;IACvD,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAgB,cAAc,CAAC,OAAe;IAC5C,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,iBAAO,CAAC,IAAI;YACf,OAAO,aAAI,CAAA;QACb,KAAK,iBAAO,CAAC,YAAY;YACvB,OAAO,WAAW,CAAA;QACpB;YACE,MAAM,IAAI,KAAK,CAAC,yBAAyB,OAAO,EAAE,CAAC,CAAA;IACvD,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Pool } from '../core/types';
|
|
2
|
+
import type { PublicClient } from 'viem';
|
|
3
|
+
/**
|
|
4
|
+
* Calculate cost percentage for a pool based on its type
|
|
5
|
+
* Returns cost as a percentage (e.g., 0.5 = 0.5%)
|
|
6
|
+
*
|
|
7
|
+
* @param pool - The pool to calculate cost for
|
|
8
|
+
* @param publicClient - Viem public client for RPC calls
|
|
9
|
+
* @returns Cost percentage for the pool
|
|
10
|
+
*/
|
|
11
|
+
export declare function getPoolCostPercent(pool: Pool, publicClient: PublicClient): Promise<number>;
|
|
12
|
+
//# sourceMappingURL=costUtils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"costUtils.d.ts","sourceRoot":"","sources":["../../src/utils/costUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,IAAI,EAAE,MAAM,eAAe,CAAA;AAE9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,MAAM,CAAA;AAGxC;;;;;;;GAOG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAQhG"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getPoolCostPercent = getPoolCostPercent;
|
|
4
|
+
const types_1 = require("../core/types");
|
|
5
|
+
const abis_1 = require("../core/abis");
|
|
6
|
+
const virtualPool_1 = require("../core/abis/virtualPool");
|
|
7
|
+
/**
|
|
8
|
+
* Calculate cost percentage for a pool based on its type
|
|
9
|
+
* Returns cost as a percentage (e.g., 0.5 = 0.5%)
|
|
10
|
+
*
|
|
11
|
+
* @param pool - The pool to calculate cost for
|
|
12
|
+
* @param publicClient - Viem public client for RPC calls
|
|
13
|
+
* @returns Cost percentage for the pool
|
|
14
|
+
*/
|
|
15
|
+
async function getPoolCostPercent(pool, publicClient) {
|
|
16
|
+
if (pool.poolType === types_1.PoolType.FPMM) {
|
|
17
|
+
return getFPMMCostPercent(pool.poolAddr, publicClient);
|
|
18
|
+
}
|
|
19
|
+
else if (pool.poolType === types_1.PoolType.Virtual) {
|
|
20
|
+
return getVirtualPoolCostPercent(pool.poolAddr, publicClient);
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
throw new Error('Invalid pool type');
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Calculate cost for FPMM pools
|
|
28
|
+
* FPMM pools use lpFee + protocolFee in basis points (10000 = 100%)
|
|
29
|
+
*/
|
|
30
|
+
async function getFPMMCostPercent(poolAddress, publicClient) {
|
|
31
|
+
const [lpFee, protocolFee] = await Promise.all([
|
|
32
|
+
publicClient.readContract({
|
|
33
|
+
address: poolAddress,
|
|
34
|
+
abi: abis_1.FPMM_ABI,
|
|
35
|
+
functionName: 'lpFee',
|
|
36
|
+
}),
|
|
37
|
+
publicClient.readContract({
|
|
38
|
+
address: poolAddress,
|
|
39
|
+
abi: abis_1.FPMM_ABI,
|
|
40
|
+
functionName: 'protocolFee',
|
|
41
|
+
}),
|
|
42
|
+
]);
|
|
43
|
+
// Convert from basis points to percentage
|
|
44
|
+
const totalBasisPoints = Number(lpFee) + Number(protocolFee);
|
|
45
|
+
return totalBasisPoints / 100;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Calculate cost for Virtual pools
|
|
49
|
+
*/
|
|
50
|
+
async function getVirtualPoolCostPercent(poolAddress, publicClient) {
|
|
51
|
+
const protocolFee = await publicClient.readContract({
|
|
52
|
+
address: poolAddress,
|
|
53
|
+
abi: virtualPool_1.VIRTUAL_POOL_ABI,
|
|
54
|
+
functionName: 'protocolFee',
|
|
55
|
+
});
|
|
56
|
+
//TODO: Confirim calculation
|
|
57
|
+
return Number(protocolFee) / 100;
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=costUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"costUtils.js","sourceRoot":"","sources":["../../src/utils/costUtils.ts"],"names":[],"mappings":";;AAaA,gDAQC;AArBD,yCAA8C;AAC9C,uCAAuC;AAEvC,0DAA2D;AAE3D;;;;;;;GAOG;AACI,KAAK,UAAU,kBAAkB,CAAC,IAAU,EAAE,YAA0B;IAC7E,IAAI,IAAI,CAAC,QAAQ,KAAK,gBAAQ,CAAC,IAAI,EAAE,CAAC;QACpC,OAAO,kBAAkB,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;IACxD,CAAC;SAAM,IAAI,IAAI,CAAC,QAAQ,KAAK,gBAAQ,CAAC,OAAO,EAAE,CAAC;QAC9C,OAAO,yBAAyB,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;IAC/D,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAA;IACtC,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,kBAAkB,CAAC,WAAmB,EAAE,YAA0B;IAC/E,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC7C,YAAY,CAAC,YAAY,CAAC;YACxB,OAAO,EAAE,WAA4B;YACrC,GAAG,EAAE,eAAQ;YACb,YAAY,EAAE,OAAO;SACtB,CAAoB;QACrB,YAAY,CAAC,YAAY,CAAC;YACxB,OAAO,EAAE,WAA4B;YACrC,GAAG,EAAE,eAAQ;YACb,YAAY,EAAE,aAAa;SAC5B,CAAoB;KACtB,CAAC,CAAA;IAEF,0CAA0C;IAC1C,MAAM,gBAAgB,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC,CAAA;IAC5D,OAAO,gBAAgB,GAAG,GAAG,CAAA;AAC/B,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,yBAAyB,CAAC,WAAmB,EAAE,YAA0B;IACtF,MAAM,WAAW,GAAG,MAAM,YAAY,CAAC,YAAY,CAAC;QAClD,OAAO,EAAE,WAA4B;QACrC,GAAG,EAAE,8BAAgB;QACrB,YAAY,EAAE,aAAa;KAC5B,CAAC,CAAA;IAEF,4BAA4B;IAC5B,OAAO,MAAM,CAAC,WAAW,CAAC,GAAG,GAAG,CAAA;AAClC,CAAC"}
|
package/dist/utils/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAA;AACvB,cAAc,eAAe,CAAA;AAC7B,cAAc,UAAU,CAAA;AACxB,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA"}
|
package/dist/utils/index.js
CHANGED
|
@@ -15,4 +15,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./retry"), exports);
|
|
18
|
+
__exportStar(require("./chainConfig"), exports);
|
|
19
|
+
__exportStar(require("./routes"), exports);
|
|
20
|
+
__exportStar(require("./sortUtils"), exports);
|
|
21
|
+
__exportStar(require("./pathEncoder"), exports);
|
|
18
22
|
//# sourceMappingURL=index.js.map
|
package/dist/utils/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAuB"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAuB;AACvB,gDAA6B;AAC7B,2CAAwB;AACxB,8CAA2B;AAC3B,gDAA6B"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Address } from 'viem';
|
|
2
|
+
import { Pool } from '../core/types';
|
|
3
|
+
/**
|
|
4
|
+
* Route structure expected by the Router contract's getAmountsOut and swapTokensForTokens functions
|
|
5
|
+
*/
|
|
6
|
+
export interface RouterRoute {
|
|
7
|
+
from: Address;
|
|
8
|
+
to: Address;
|
|
9
|
+
factory: Address;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Converts a route path to the format expected by the Router contract.
|
|
13
|
+
* Used by both QuoteService (getAmountsOut) and SwapService (swapTokensForTokens).
|
|
14
|
+
*
|
|
15
|
+
* @param path - The route path (array of pools)
|
|
16
|
+
* @param tokenIn - The input token address (determines swap direction)
|
|
17
|
+
* @param _tokenOut - The output token address (unused but kept for API clarity)
|
|
18
|
+
* @returns Array of RouterRoute objects for the contract call
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* ```typescript
|
|
22
|
+
* const route = await routeService.findRoute(cUSD, CELO)
|
|
23
|
+
* const routerRoutes = encodeRoutePath(route.path, cUSD, CELO)
|
|
24
|
+
* // routerRoutes can now be passed to Router.getAmountsOut or Router.swapTokensForTokens
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
export declare function encodeRoutePath(path: Pool[], tokenIn: Address, _tokenOut: Address): RouterRoute[];
|
|
28
|
+
//# sourceMappingURL=pathEncoder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pathEncoder.d.ts","sourceRoot":"","sources":["../../src/utils/pathEncoder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAC9B,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAA;AAEpC;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,OAAO,CAAA;IACb,EAAE,EAAE,OAAO,CAAA;IACX,OAAO,EAAE,OAAO,CAAA;CACjB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,GAAG,WAAW,EAAE,CA4CjG"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.encodeRoutePath = encodeRoutePath;
|
|
4
|
+
/**
|
|
5
|
+
* Converts a route path to the format expected by the Router contract.
|
|
6
|
+
* Used by both QuoteService (getAmountsOut) and SwapService (swapTokensForTokens).
|
|
7
|
+
*
|
|
8
|
+
* @param path - The route path (array of pools)
|
|
9
|
+
* @param tokenIn - The input token address (determines swap direction)
|
|
10
|
+
* @param _tokenOut - The output token address (unused but kept for API clarity)
|
|
11
|
+
* @returns Array of RouterRoute objects for the contract call
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```typescript
|
|
15
|
+
* const route = await routeService.findRoute(cUSD, CELO)
|
|
16
|
+
* const routerRoutes = encodeRoutePath(route.path, cUSD, CELO)
|
|
17
|
+
* // routerRoutes can now be passed to Router.getAmountsOut or Router.swapTokensForTokens
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
function encodeRoutePath(path, tokenIn, _tokenOut) {
|
|
21
|
+
const routes = [];
|
|
22
|
+
const tokenInLower = tokenIn.toLowerCase();
|
|
23
|
+
// Check if we need to reverse the path
|
|
24
|
+
// The path is stored in canonical order, but we may need to traverse it backwards
|
|
25
|
+
const firstPool = path[0];
|
|
26
|
+
const startsWithTokenIn = firstPool.token0.toLowerCase() === tokenInLower || firstPool.token1.toLowerCase() === tokenInLower;
|
|
27
|
+
// If tokenIn isn't in the first pool, reverse the path
|
|
28
|
+
const orderedPath = startsWithTokenIn ? path : [...path].reverse();
|
|
29
|
+
let currentTokenIn = tokenInLower;
|
|
30
|
+
for (const pool of orderedPath) {
|
|
31
|
+
const token0 = pool.token0.toLowerCase();
|
|
32
|
+
const token1 = pool.token1.toLowerCase();
|
|
33
|
+
// Determine direction: which token is the input for this hop?
|
|
34
|
+
let from;
|
|
35
|
+
let to;
|
|
36
|
+
if (currentTokenIn === token0) {
|
|
37
|
+
from = pool.token0;
|
|
38
|
+
to = pool.token1;
|
|
39
|
+
}
|
|
40
|
+
else if (currentTokenIn === token1) {
|
|
41
|
+
from = pool.token1;
|
|
42
|
+
to = pool.token0;
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
throw new Error(`Token ${currentTokenIn} not found in pool ${pool.poolAddr}`);
|
|
46
|
+
}
|
|
47
|
+
routes.push({
|
|
48
|
+
from,
|
|
49
|
+
to,
|
|
50
|
+
factory: pool.factoryAddr,
|
|
51
|
+
});
|
|
52
|
+
// The output of this hop becomes the input of the next hop
|
|
53
|
+
currentTokenIn = to.toLowerCase();
|
|
54
|
+
}
|
|
55
|
+
return routes;
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=pathEncoder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pathEncoder.js","sourceRoot":"","sources":["../../src/utils/pathEncoder.ts"],"names":[],"mappings":";;AA4BA,0CA4CC;AA5DD;;;;;;;;;;;;;;;GAeG;AACH,SAAgB,eAAe,CAAC,IAAY,EAAE,OAAgB,EAAE,SAAkB;IAChF,MAAM,MAAM,GAAkB,EAAE,CAAA;IAChC,MAAM,YAAY,GAAG,OAAO,CAAC,WAAW,EAAE,CAAA;IAE1C,uCAAuC;IACvC,kFAAkF;IAClF,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;IACzB,MAAM,iBAAiB,GACrB,SAAS,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,YAAY,IAAI,SAAS,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,YAAY,CAAA;IAEpG,uDAAuD;IACvD,MAAM,WAAW,GAAG,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO,EAAE,CAAA;IAElE,IAAI,cAAc,GAAG,YAAY,CAAA;IAEjC,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAA;QACxC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAA;QAExC,8DAA8D;QAC9D,IAAI,IAAa,CAAA;QACjB,IAAI,EAAW,CAAA;QAEf,IAAI,cAAc,KAAK,MAAM,EAAE,CAAC;YAC9B,IAAI,GAAG,IAAI,CAAC,MAAiB,CAAA;YAC7B,EAAE,GAAG,IAAI,CAAC,MAAiB,CAAA;QAC7B,CAAC;aAAM,IAAI,cAAc,KAAK,MAAM,EAAE,CAAC;YACrC,IAAI,GAAG,IAAI,CAAC,MAAiB,CAAA;YAC7B,EAAE,GAAG,IAAI,CAAC,MAAiB,CAAA;QAC7B,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,SAAS,cAAc,sBAAsB,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAA;QAC/E,CAAC;QAED,MAAM,CAAC,IAAI,CAAC;YACV,IAAI;YACJ,EAAE;YACF,OAAO,EAAE,IAAI,CAAC,WAAsB;SACrC,CAAC,CAAA;QAEF,2DAA2D;QAC3D,cAAc,GAAG,EAAE,CAAC,WAAW,EAAE,CAAA;IACnC,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC"}
|