sushi 2.1.0 → 3.0.0
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 +3 -0
- package/dist/abi/StargateFeeLibraryV03.d.ts +266 -0
- package/dist/abi/StargateFeeLibraryV03.d.ts.map +1 -0
- package/dist/abi/StargateFeeLibraryV03.js +176 -0
- package/dist/abi/StargateFeeLibraryV03.js.map +1 -0
- package/dist/abi/StargatePool.d.ts +1511 -0
- package/dist/abi/StargatePool.d.ts.map +1 -0
- package/dist/abi/StargatePool.js +1123 -0
- package/dist/abi/StargatePool.js.map +1 -0
- package/dist/abi/balanceOfAbi.d.ts +16 -0
- package/dist/abi/balanceOfAbi.d.ts.map +1 -0
- package/dist/abi/balanceOfAbi.js +25 -0
- package/dist/abi/balanceOfAbi.js.map +1 -0
- package/dist/abi/bentoBoxV1Abi.d.ts +899 -0
- package/dist/abi/bentoBoxV1Abi.d.ts.map +1 -0
- package/dist/abi/bentoBoxV1Abi.js +1158 -0
- package/dist/abi/bentoBoxV1Abi.js.map +1 -0
- package/dist/abi/bentoBoxV1TotalsAbi.d.ts +20 -0
- package/dist/abi/bentoBoxV1TotalsAbi.d.ts.map +1 -0
- package/dist/abi/bentoBoxV1TotalsAbi.js +30 -0
- package/dist/abi/bentoBoxV1TotalsAbi.js.map +1 -0
- package/dist/abi/cloneRewarderTime.d.ts +379 -0
- package/dist/abi/cloneRewarderTime.d.ts.map +1 -0
- package/dist/abi/cloneRewarderTime.js +298 -0
- package/dist/abi/cloneRewarderTime.js.map +1 -0
- package/dist/abi/complexRewarderTimeAbi.d.ts +417 -0
- package/dist/abi/complexRewarderTimeAbi.d.ts.map +1 -0
- package/dist/abi/complexRewarderTimeAbi.js +310 -0
- package/dist/abi/complexRewarderTimeAbi.js.map +1 -0
- package/dist/abi/erc20Abi.d.ts +185 -0
- package/dist/abi/erc20Abi.d.ts.map +1 -0
- package/dist/abi/erc20Abi.js +247 -0
- package/dist/abi/erc20Abi.js.map +1 -0
- package/dist/abi/furoStreamAbi.d.ts +796 -0
- package/dist/abi/furoStreamAbi.d.ts.map +1 -0
- package/dist/abi/furoStreamAbi.js +1027 -0
- package/dist/abi/furoStreamAbi.js.map +1 -0
- package/dist/abi/furoStreamRouterAbi.d.ts +134 -0
- package/dist/abi/furoStreamRouterAbi.d.ts.map +1 -0
- package/dist/abi/furoStreamRouterAbi.js +177 -0
- package/dist/abi/furoStreamRouterAbi.js.map +1 -0
- package/dist/abi/furoVestingAbi.d.ts +742 -0
- package/dist/abi/furoVestingAbi.d.ts.map +1 -0
- package/dist/abi/furoVestingAbi.js +955 -0
- package/dist/abi/furoVestingAbi.js.map +1 -0
- package/dist/abi/furoVestingRouterAbi.d.ts +159 -0
- package/dist/abi/furoVestingRouterAbi.d.ts.map +1 -0
- package/dist/abi/furoVestingRouterAbi.js +209 -0
- package/dist/abi/furoVestingRouterAbi.js.map +1 -0
- package/dist/abi/gasDataArbitrumAbi.d.ts +32 -0
- package/dist/abi/gasDataArbitrumAbi.d.ts.map +1 -0
- package/dist/abi/gasDataArbitrumAbi.js +44 -0
- package/dist/abi/gasDataArbitrumAbi.js.map +1 -0
- package/dist/abi/gasPriceOracleAbi.d.ts +229 -0
- package/dist/abi/gasPriceOracleAbi.d.ts.map +1 -0
- package/dist/abi/gasPriceOracleAbi.js +302 -0
- package/dist/abi/gasPriceOracleAbi.js.map +1 -0
- package/dist/abi/getPoolsAbi.d.ts +28 -0
- package/dist/abi/getPoolsAbi.d.ts.map +1 -0
- package/dist/abi/getPoolsAbi.js +40 -0
- package/dist/abi/getPoolsAbi.js.map +1 -0
- package/dist/abi/getReservesAbi.d.ts +20 -0
- package/dist/abi/getReservesAbi.d.ts.map +1 -0
- package/dist/abi/getReservesAbi.js +29 -0
- package/dist/abi/getReservesAbi.js.map +1 -0
- package/dist/abi/index.d.ts +47 -0
- package/dist/abi/index.d.ts.map +1 -0
- package/dist/abi/index.js +97 -0
- package/dist/abi/index.js.map +1 -0
- package/dist/abi/masterChefV1Abi.d.ts +421 -0
- package/dist/abi/masterChefV1Abi.d.ts.map +1 -0
- package/dist/abi/masterChefV1Abi.js +546 -0
- package/dist/abi/masterChefV1Abi.js.map +1 -0
- package/dist/abi/masterChefV2Abi.d.ts +667 -0
- package/dist/abi/masterChefV2Abi.d.ts.map +1 -0
- package/dist/abi/masterChefV2Abi.js +858 -0
- package/dist/abi/masterChefV2Abi.js.map +1 -0
- package/dist/abi/miniChefAbi.d.ts +638 -0
- package/dist/abi/miniChefAbi.d.ts.map +1 -0
- package/dist/abi/miniChefAbi.js +471 -0
- package/dist/abi/miniChefAbi.js.map +1 -0
- package/dist/abi/multicall2Abi.d.ts +237 -0
- package/dist/abi/multicall2Abi.d.ts.map +1 -0
- package/dist/abi/multicall2Abi.js +171 -0
- package/dist/abi/multicall2Abi.js.map +1 -0
- package/dist/abi/multicall3Abi.d.ts +333 -0
- package/dist/abi/multicall3Abi.d.ts.map +1 -0
- package/dist/abi/multicall3Abi.js +242 -0
- package/dist/abi/multicall3Abi.js.map +1 -0
- package/dist/abi/nonfungiblePositionManagerAbi.d.ts +948 -0
- package/dist/abi/nonfungiblePositionManagerAbi.d.ts.map +1 -0
- package/dist/abi/nonfungiblePositionManagerAbi.js +1225 -0
- package/dist/abi/nonfungiblePositionManagerAbi.js.map +1 -0
- package/dist/abi/permit2Abi.d.ts +701 -0
- package/dist/abi/permit2Abi.d.ts.map +1 -0
- package/dist/abi/permit2Abi.js +905 -0
- package/dist/abi/permit2Abi.js.map +1 -0
- package/dist/abi/poolsCountAbi.d.ts +20 -0
- package/dist/abi/poolsCountAbi.d.ts.map +1 -0
- package/dist/abi/poolsCountAbi.js +30 -0
- package/dist/abi/poolsCountAbi.js.map +1 -0
- package/dist/abi/routeProcessor2Abi.d.ts +228 -0
- package/dist/abi/routeProcessor2Abi.d.ts.map +1 -0
- package/dist/abi/routeProcessor2Abi.js +293 -0
- package/dist/abi/routeProcessor2Abi.js.map +1 -0
- package/dist/abi/routeProcessor3Abi.d.ts +228 -0
- package/dist/abi/routeProcessor3Abi.d.ts.map +1 -0
- package/dist/abi/routeProcessor3Abi.js +293 -0
- package/dist/abi/routeProcessor3Abi.js.map +1 -0
- package/dist/abi/routeProcessor3_1Abi.d.ts +228 -0
- package/dist/abi/routeProcessor3_1Abi.d.ts.map +1 -0
- package/dist/abi/routeProcessor3_1Abi.js +293 -0
- package/dist/abi/routeProcessor3_1Abi.js.map +1 -0
- package/dist/abi/routeProcessor4Abi.d.ts +228 -0
- package/dist/abi/routeProcessor4Abi.d.ts.map +1 -0
- package/dist/abi/routeProcessor4Abi.js +293 -0
- package/dist/abi/routeProcessor4Abi.js.map +1 -0
- package/dist/abi/routeProcessorAbi.d.ts +99 -0
- package/dist/abi/routeProcessorAbi.d.ts.map +1 -0
- package/dist/abi/routeProcessorAbi.js +132 -0
- package/dist/abi/routeProcessorAbi.js.map +1 -0
- package/dist/abi/slot0Abi.d.ts +36 -0
- package/dist/abi/slot0Abi.d.ts.map +1 -0
- package/dist/abi/slot0Abi.js +29 -0
- package/dist/abi/slot0Abi.js.map +1 -0
- package/dist/abi/sushiV3FactoryAbi.d.ts +184 -0
- package/dist/abi/sushiV3FactoryAbi.d.ts.map +1 -0
- package/dist/abi/sushiV3FactoryAbi.js +240 -0
- package/dist/abi/sushiV3FactoryAbi.js.map +1 -0
- package/dist/abi/sushiV3PoolAbi.d.ts +775 -0
- package/dist/abi/sushiV3PoolAbi.d.ts.map +1 -0
- package/dist/abi/sushiV3PoolAbi.js +992 -0
- package/dist/abi/sushiV3PoolAbi.js.map +1 -0
- package/dist/abi/sushiXSwapAbi.d.ts +208 -0
- package/dist/abi/sushiXSwapAbi.d.ts.map +1 -0
- package/dist/abi/sushiXSwapAbi.js +271 -0
- package/dist/abi/sushiXSwapAbi.js.map +1 -0
- package/dist/abi/swapFeeAbi.d.ts +12 -0
- package/dist/abi/swapFeeAbi.d.ts.map +1 -0
- package/dist/abi/swapFeeAbi.js +19 -0
- package/dist/abi/swapFeeAbi.js.map +1 -0
- package/dist/abi/tickLensAbi.d.ts +33 -0
- package/dist/abi/tickLensAbi.d.ts.map +1 -0
- package/dist/abi/tickLensAbi.js +27 -0
- package/dist/abi/tickLensAbi.js.map +1 -0
- package/dist/abi/totalsAbi.d.ts +20 -0
- package/dist/abi/totalsAbi.d.ts.map +1 -0
- package/dist/abi/totalsAbi.js +30 -0
- package/dist/abi/totalsAbi.js.map +1 -0
- package/dist/abi/tridentConstantPoolAbi.d.ts +658 -0
- package/dist/abi/tridentConstantPoolAbi.d.ts.map +1 -0
- package/dist/abi/tridentConstantPoolAbi.js +856 -0
- package/dist/abi/tridentConstantPoolAbi.js.map +1 -0
- package/dist/abi/tridentConstantPoolFactoryAbi.d.ts +176 -0
- package/dist/abi/tridentConstantPoolFactoryAbi.d.ts.map +1 -0
- package/dist/abi/tridentConstantPoolFactoryAbi.js +235 -0
- package/dist/abi/tridentConstantPoolFactoryAbi.js.map +1 -0
- package/dist/abi/tridentGetPoolsAbi.d.ts +28 -0
- package/dist/abi/tridentGetPoolsAbi.d.ts.map +1 -0
- package/dist/abi/tridentGetPoolsAbi.js +40 -0
- package/dist/abi/tridentGetPoolsAbi.js.map +1 -0
- package/dist/abi/tridentPoolsCountAbi.d.ts +20 -0
- package/dist/abi/tridentPoolsCountAbi.d.ts.map +1 -0
- package/dist/abi/tridentPoolsCountAbi.js +30 -0
- package/dist/abi/tridentPoolsCountAbi.js.map +1 -0
- package/dist/abi/tridentRouterAbi.d.ts +589 -0
- package/dist/abi/tridentRouterAbi.d.ts.map +1 -0
- package/dist/abi/tridentRouterAbi.js +767 -0
- package/dist/abi/tridentRouterAbi.js.map +1 -0
- package/dist/abi/tridentStablePoolAbi.d.ts +649 -0
- package/dist/abi/tridentStablePoolAbi.d.ts.map +1 -0
- package/dist/abi/tridentStablePoolAbi.js +845 -0
- package/dist/abi/tridentStablePoolAbi.js.map +1 -0
- package/dist/abi/tridentStablePoolFactoryAbi.d.ts +172 -0
- package/dist/abi/tridentStablePoolFactoryAbi.d.ts.map +1 -0
- package/dist/abi/tridentStablePoolFactoryAbi.js +230 -0
- package/dist/abi/tridentStablePoolFactoryAbi.js.map +1 -0
- package/dist/abi/tridentSwapFeeAbi.d.ts +12 -0
- package/dist/abi/tridentSwapFeeAbi.d.ts.map +1 -0
- package/dist/abi/tridentSwapFeeAbi.js +19 -0
- package/dist/abi/tridentSwapFeeAbi.js.map +1 -0
- package/dist/abi/uniswapV2PairAbi.d.ts +561 -0
- package/dist/abi/uniswapV2PairAbi.d.ts.map +1 -0
- package/dist/abi/uniswapV2PairAbi.js +711 -0
- package/dist/abi/uniswapV2PairAbi.js.map +1 -0
- package/dist/abi/uniswapV2RouterAbi.d.ts +753 -0
- package/dist/abi/uniswapV2RouterAbi.d.ts.map +1 -0
- package/dist/abi/uniswapV2RouterAbi.js +360 -0
- package/dist/abi/uniswapV2RouterAbi.js.map +1 -0
- package/dist/abi/v3baseAbi.d.ts +42 -0
- package/dist/abi/v3baseAbi.d.ts.map +1 -0
- package/dist/abi/v3baseAbi.js +34 -0
- package/dist/abi/v3baseAbi.js.map +1 -0
- package/dist/abi/weth9Abi.d.ts +214 -0
- package/dist/abi/weth9Abi.d.ts.map +1 -0
- package/dist/abi/weth9Abi.js +157 -0
- package/dist/abi/weth9Abi.js.map +1 -0
- package/dist/calculate/gasMargin.d.ts +2 -0
- package/dist/calculate/gasMargin.d.ts.map +1 -0
- package/dist/calculate/gasMargin.js +9 -0
- package/dist/calculate/gasMargin.js.map +1 -0
- package/dist/calculate/index.d.ts +2 -0
- package/dist/calculate/index.d.ts.map +1 -0
- package/dist/calculate/index.js +6 -0
- package/dist/calculate/index.js.map +1 -0
- package/dist/chain/constants.d.ts +94 -0
- package/dist/chain/constants.d.ts.map +1 -0
- package/dist/chain/constants.js +121 -0
- package/dist/chain/constants.js.map +1 -0
- package/dist/chain/generated.d.ts +687 -0
- package/dist/chain/generated.d.ts.map +1 -0
- package/dist/chain/generated.js +836 -0
- package/dist/chain/generated.js.map +1 -0
- package/dist/chain/index.d.ts +760 -0
- package/dist/chain/index.d.ts.map +1 -0
- package/dist/chain/index.js +146 -0
- package/dist/chain/index.js.map +1 -0
- package/dist/convert/index.d.ts +2 -0
- package/dist/convert/index.d.ts.map +1 -0
- package/dist/convert/index.js +6 -0
- package/dist/convert/index.js.map +1 -0
- package/dist/convert/toHex.d.ts +8 -0
- package/dist/convert/toHex.d.ts.map +1 -0
- package/dist/convert/toHex.js +18 -0
- package/dist/convert/toHex.js.map +1 -0
- package/dist/currency/AddressMapper.d.ts +8 -0
- package/dist/currency/AddressMapper.d.ts.map +1 -0
- package/dist/currency/AddressMapper.js +55 -0
- package/dist/currency/AddressMapper.js.map +1 -0
- package/dist/currency/AddressMapper.test.d.ts +2 -0
- package/dist/currency/AddressMapper.test.d.ts.map +1 -0
- package/dist/currency/AddressMapper.test.js +226 -0
- package/dist/currency/AddressMapper.test.js.map +1 -0
- package/dist/currency/Amount.d.ts +43 -0
- package/dist/currency/Amount.d.ts.map +1 -0
- package/dist/currency/Amount.js +112 -0
- package/dist/currency/Amount.js.map +1 -0
- package/dist/currency/Amount.test.d.ts +2 -0
- package/dist/currency/Amount.test.d.ts.map +1 -0
- package/dist/currency/Amount.test.js +141 -0
- package/dist/currency/Amount.test.js.map +1 -0
- package/dist/currency/Currency.d.ts +56 -0
- package/dist/currency/Currency.d.ts.map +1 -0
- package/dist/currency/Currency.js +48 -0
- package/dist/currency/Currency.js.map +1 -0
- package/dist/currency/Native.d.ts +24 -0
- package/dist/currency/Native.d.ts.map +1 -0
- package/dist/currency/Native.js +72 -0
- package/dist/currency/Native.js.map +1 -0
- package/dist/currency/Native.test.d.ts +2 -0
- package/dist/currency/Native.test.d.ts.map +1 -0
- package/dist/currency/Native.test.js +38 -0
- package/dist/currency/Native.test.js.map +1 -0
- package/dist/currency/Price.d.ts +40 -0
- package/dist/currency/Price.d.ts.map +1 -0
- package/dist/currency/Price.js +80 -0
- package/dist/currency/Price.js.map +1 -0
- package/dist/currency/Price.test.d.ts +2 -0
- package/dist/currency/Price.test.d.ts.map +1 -0
- package/dist/currency/Price.test.js +59 -0
- package/dist/currency/Price.test.js.map +1 -0
- package/dist/currency/Share.d.ts +28 -0
- package/dist/currency/Share.d.ts.map +1 -0
- package/dist/currency/Share.js +75 -0
- package/dist/currency/Share.js.map +1 -0
- package/dist/currency/Token.d.ts +44 -0
- package/dist/currency/Token.d.ts.map +1 -0
- package/dist/currency/Token.js +93 -0
- package/dist/currency/Token.js.map +1 -0
- package/dist/currency/Token.test.d.ts +2 -0
- package/dist/currency/Token.test.d.ts.map +1 -0
- package/dist/currency/Token.test.js +66 -0
- package/dist/currency/Token.test.js.map +1 -0
- package/dist/currency/Type.d.ts +4 -0
- package/dist/currency/Type.d.ts.map +1 -0
- package/dist/currency/Type.js +3 -0
- package/dist/currency/Type.js.map +1 -0
- package/dist/currency/constants/default-quote.d.ts +38 -0
- package/dist/currency/constants/default-quote.d.ts.map +1 -0
- package/dist/currency/constants/default-quote.js +68 -0
- package/dist/currency/constants/default-quote.js.map +1 -0
- package/dist/currency/constants/governance.d.ts +4 -0
- package/dist/currency/constants/governance.d.ts.map +1 -0
- package/dist/currency/constants/governance.js +9 -0
- package/dist/currency/constants/governance.js.map +1 -0
- package/dist/currency/constants/index.d.ts +10 -0
- package/dist/currency/constants/index.d.ts.map +1 -0
- package/dist/currency/constants/index.js +26 -0
- package/dist/currency/constants/index.js.map +1 -0
- package/dist/currency/constants/lsds.d.ts +4 -0
- package/dist/currency/constants/lsds.d.ts.map +1 -0
- package/dist/currency/constants/lsds.js +8 -0
- package/dist/currency/constants/lsds.js.map +1 -0
- package/dist/currency/constants/native-ids.d.ts +46 -0
- package/dist/currency/constants/native-ids.d.ts.map +1 -0
- package/dist/currency/constants/native-ids.js +55 -0
- package/dist/currency/constants/native-ids.js.map +1 -0
- package/dist/currency/constants/short-name-to-currency.d.ts +221 -0
- package/dist/currency/constants/short-name-to-currency.d.ts.map +1 -0
- package/dist/currency/constants/short-name-to-currency.js +267 -0
- package/dist/currency/constants/short-name-to-currency.js.map +1 -0
- package/dist/currency/constants/stables.d.ts +4 -0
- package/dist/currency/constants/stables.d.ts.map +1 -0
- package/dist/currency/constants/stables.js +14 -0
- package/dist/currency/constants/stables.js.map +1 -0
- package/dist/currency/constants/token-addresses.d.ts +476 -0
- package/dist/currency/constants/token-addresses.d.ts.map +1 -0
- package/dist/currency/constants/token-addresses.js +494 -0
- package/dist/currency/constants/token-addresses.js.map +1 -0
- package/dist/currency/constants/token-map.d.ts +5 -0
- package/dist/currency/constants/token-map.d.ts.map +1 -0
- package/dist/currency/constants/token-map.js +91 -0
- package/dist/currency/constants/token-map.js.map +1 -0
- package/dist/currency/constants/tokens.d.ts +99 -0
- package/dist/currency/constants/tokens.d.ts.map +1 -0
- package/dist/currency/constants/tokens.js +511 -0
- package/dist/currency/constants/tokens.js.map +1 -0
- package/dist/currency/functions/address-map-to-token-map.d.ts +9 -0
- package/dist/currency/functions/address-map-to-token-map.d.ts.map +1 -0
- package/dist/currency/functions/address-map-to-token-map.js +18 -0
- package/dist/currency/functions/address-map-to-token-map.js.map +1 -0
- package/dist/currency/functions/index.d.ts +4 -0
- package/dist/currency/functions/index.d.ts.map +1 -0
- package/dist/currency/functions/index.js +20 -0
- package/dist/currency/functions/index.js.map +1 -0
- package/dist/currency/functions/try-parse-amount.d.ts +4 -0
- package/dist/currency/functions/try-parse-amount.d.ts.map +1 -0
- package/dist/currency/functions/try-parse-amount.js +25 -0
- package/dist/currency/functions/try-parse-amount.js.map +1 -0
- package/dist/currency/functions/unwrap.d.ts +3 -0
- package/dist/currency/functions/unwrap.d.ts.map +1 -0
- package/dist/currency/functions/unwrap.js +12 -0
- package/dist/currency/functions/unwrap.js.map +1 -0
- package/dist/currency/index.d.ts +11 -0
- package/dist/currency/index.d.ts.map +1 -0
- package/dist/currency/index.js +29 -0
- package/dist/currency/index.js.map +1 -0
- package/dist/currency/zod.d.ts +121 -0
- package/dist/currency/zod.d.ts.map +1 -0
- package/dist/currency/zod.js +27 -0
- package/dist/currency/zod.js.map +1 -0
- package/dist/format/address.d.ts +2 -0
- package/dist/format/address.d.ts.map +1 -0
- package/dist/format/address.js +16 -0
- package/dist/format/address.js.map +1 -0
- package/dist/format/index.d.ts +5 -0
- package/dist/format/index.d.ts.map +1 -0
- package/dist/format/index.js +21 -0
- package/dist/format/index.js.map +1 -0
- package/dist/format/number.d.ts +2 -0
- package/dist/format/number.d.ts.map +1 -0
- package/dist/format/number.js +12 -0
- package/dist/format/number.js.map +1 -0
- package/dist/format/percent.d.ts +2 -0
- package/dist/format/percent.d.ts.map +1 -0
- package/dist/format/percent.js +12 -0
- package/dist/format/percent.js.map +1 -0
- package/dist/format/price.d.ts +2 -0
- package/dist/format/price.d.ts.map +1 -0
- package/dist/format/price.js +24 -0
- package/dist/format/price.js.map +1 -0
- package/dist/gas/calculateGasMargin.d.ts +2 -0
- package/dist/gas/calculateGasMargin.d.ts.map +1 -0
- package/dist/gas/calculateGasMargin.js +9 -0
- package/dist/gas/calculateGasMargin.js.map +1 -0
- package/dist/gas/index.d.ts +2 -0
- package/dist/gas/index.d.ts.map +1 -0
- package/dist/gas/index.js +6 -0
- package/dist/gas/index.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +23 -0
- package/dist/index.js.map +1 -0
- package/dist/log/index.d.ts +2 -0
- package/dist/log/index.d.ts.map +1 -0
- package/dist/log/index.js +6 -0
- package/dist/log/index.js.map +1 -0
- package/dist/log/log.d.ts +2 -0
- package/dist/log/log.d.ts.map +1 -0
- package/dist/log/log.js +9 -0
- package/dist/log/log.js.map +1 -0
- package/dist/log/log.test.d.ts +2 -0
- package/dist/log/log.test.d.ts.map +1 -0
- package/dist/log/log.test.js +12 -0
- package/dist/log/log.test.js.map +1 -0
- package/dist/math/Big.d.ts +3 -0
- package/dist/math/Big.d.ts.map +1 -0
- package/dist/math/Big.js +10 -0
- package/dist/math/Big.js.map +1 -0
- package/dist/math/BigintIsh.d.ts +2 -0
- package/dist/math/BigintIsh.d.ts.map +1 -0
- package/dist/math/BigintIsh.js +3 -0
- package/dist/math/BigintIsh.js.map +1 -0
- package/dist/math/Decimal.d.ts +3 -0
- package/dist/math/Decimal.d.ts.map +1 -0
- package/dist/math/Decimal.js +9 -0
- package/dist/math/Decimal.js.map +1 -0
- package/dist/math/Fraction.d.ts +30 -0
- package/dist/math/Fraction.d.ts.map +1 -0
- package/dist/math/Fraction.js +123 -0
- package/dist/math/Fraction.js.map +1 -0
- package/dist/math/Fraction.test.d.ts +2 -0
- package/dist/math/Fraction.test.d.ts.map +1 -0
- package/dist/math/Fraction.test.js +88 -0
- package/dist/math/Fraction.test.js.map +1 -0
- package/dist/math/Percent.d.ts +18 -0
- package/dist/math/Percent.d.ts.map +1 -0
- package/dist/math/Percent.js +47 -0
- package/dist/math/Percent.js.map +1 -0
- package/dist/math/Percent.test.d.ts +2 -0
- package/dist/math/Percent.test.d.ts.map +1 -0
- package/dist/math/Percent.test.js +57 -0
- package/dist/math/Percent.test.js.map +1 -0
- package/dist/math/Rounding.d.ts +7 -0
- package/dist/math/Rounding.d.ts.map +1 -0
- package/dist/math/Rounding.js +10 -0
- package/dist/math/Rounding.js.map +1 -0
- package/dist/math/constants/index.d.ts +2 -0
- package/dist/math/constants/index.d.ts.map +1 -0
- package/dist/math/constants/index.js +18 -0
- package/dist/math/constants/index.js.map +1 -0
- package/dist/math/constants/numbers.d.ts +22 -0
- package/dist/math/constants/numbers.d.ts.map +1 -0
- package/dist/math/constants/numbers.js +29 -0
- package/dist/math/constants/numbers.js.map +1 -0
- package/dist/math/functions/abs.d.ts +2 -0
- package/dist/math/functions/abs.d.ts.map +1 -0
- package/dist/math/functions/abs.js +8 -0
- package/dist/math/functions/abs.js.map +1 -0
- package/dist/math/functions/difference.d.ts +2 -0
- package/dist/math/functions/difference.d.ts.map +1 -0
- package/dist/math/functions/difference.js +11 -0
- package/dist/math/functions/difference.js.map +1 -0
- package/dist/math/functions/index.d.ts +6 -0
- package/dist/math/functions/index.d.ts.map +1 -0
- package/dist/math/functions/index.js +14 -0
- package/dist/math/functions/index.js.map +1 -0
- package/dist/math/functions/maximum.d.ts +7 -0
- package/dist/math/functions/maximum.d.ts.map +1 -0
- package/dist/math/functions/maximum.js +20 -0
- package/dist/math/functions/maximum.js.map +1 -0
- package/dist/math/functions/minimum.d.ts +4 -0
- package/dist/math/functions/minimum.d.ts.map +1 -0
- package/dist/math/functions/minimum.js +20 -0
- package/dist/math/functions/minimum.js.map +1 -0
- package/dist/math/functions/sqrt.d.ts +6 -0
- package/dist/math/functions/sqrt.d.ts.map +1 -0
- package/dist/math/functions/sqrt.js +30 -0
- package/dist/math/functions/sqrt.js.map +1 -0
- package/dist/math/index.d.ts +9 -0
- package/dist/math/index.d.ts.map +1 -0
- package/dist/math/index.js +33 -0
- package/dist/math/index.js.map +1 -0
- package/dist/types/contract.d.ts +3 -0
- package/dist/types/contract.d.ts.map +1 -0
- package/dist/types/contract.js +3 -0
- package/dist/types/contract.js.map +1 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +18 -0
- package/dist/types/index.js.map +1 -0
- package/dist/validate/index.d.ts +4 -0
- package/dist/validate/index.d.ts.map +1 -0
- package/dist/validate/index.js +20 -0
- package/dist/validate/index.js.map +1 -0
- package/dist/validate/isPromiseFulfilled.d.ts +2 -0
- package/dist/validate/isPromiseFulfilled.d.ts.map +1 -0
- package/dist/validate/isPromiseFulfilled.js +6 -0
- package/dist/validate/isPromiseFulfilled.js.map +1 -0
- package/dist/validate/isPromiseRejected.d.ts +2 -0
- package/dist/validate/isPromiseRejected.d.ts.map +1 -0
- package/dist/validate/isPromiseRejected.js +6 -0
- package/dist/validate/isPromiseRejected.js.map +1 -0
- package/dist/validate/isZero.d.ts +6 -0
- package/dist/validate/isZero.d.ts.map +1 -0
- package/dist/validate/isZero.js +12 -0
- package/dist/validate/isZero.js.map +1 -0
- package/package.json +99 -26
- package/License.md +0 -21
- package/Readme.md +0 -182
- package/index.js +0 -116
|
@@ -0,0 +1,112 @@
|
|
|
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.Amount = void 0;
|
|
7
|
+
const tiny_invariant_1 = __importDefault(require("tiny-invariant"));
|
|
8
|
+
const index_js_1 = require("../math/index.js");
|
|
9
|
+
const Native_js_1 = require("./Native.js");
|
|
10
|
+
const Share_js_1 = require("./Share.js");
|
|
11
|
+
const Token_js_1 = require("./Token.js");
|
|
12
|
+
const zod_js_1 = require("./zod.js");
|
|
13
|
+
class Amount extends index_js_1.Fraction {
|
|
14
|
+
currency;
|
|
15
|
+
scale;
|
|
16
|
+
/**
|
|
17
|
+
* Returns a new currency amount instance from the unitless amount of token, i.e. the raw amount
|
|
18
|
+
* @param currency the currency in the amount
|
|
19
|
+
* @param rawAmount the raw token or ether amount
|
|
20
|
+
*/
|
|
21
|
+
static fromRawAmount(currency, rawAmount) {
|
|
22
|
+
return new Amount(currency, rawAmount);
|
|
23
|
+
}
|
|
24
|
+
static fromShare(currency, shares, rebase, roundUp = false) {
|
|
25
|
+
if (rebase.base === index_js_1.ZERO)
|
|
26
|
+
return new Amount(currency, shares);
|
|
27
|
+
const sharesBI = typeof shares === 'bigint' ? shares : BigInt(shares.toString());
|
|
28
|
+
const elastic = (sharesBI * rebase.elastic) / rebase.base;
|
|
29
|
+
if (roundUp && (elastic * rebase.base) / rebase.elastic < sharesBI) {
|
|
30
|
+
return new Amount(currency, elastic + 1n);
|
|
31
|
+
}
|
|
32
|
+
return new Amount(currency, elastic);
|
|
33
|
+
}
|
|
34
|
+
toShare(rebase, roundUp = false) {
|
|
35
|
+
if (rebase.elastic === index_js_1.ZERO)
|
|
36
|
+
return Share_js_1.Share.fromRawShare(this.currency, this.quotient);
|
|
37
|
+
const base = (this.quotient * rebase.base) / rebase.elastic;
|
|
38
|
+
if (roundUp && (base * rebase.elastic) / rebase.base < this.quotient) {
|
|
39
|
+
return Share_js_1.Share.fromRawShare(this.currency, base + 1n);
|
|
40
|
+
}
|
|
41
|
+
return Share_js_1.Share.fromRawShare(this.currency, base);
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Construct a currency amount with a denominator that is not equal to 1
|
|
45
|
+
* @param currency the currency
|
|
46
|
+
* @param numerator the numerator of the fractional token amount
|
|
47
|
+
* @param denominator the denominator of the fractional token amount
|
|
48
|
+
*/
|
|
49
|
+
static fromFractionalAmount(currency, numerator, denominator) {
|
|
50
|
+
return new Amount(currency, numerator, denominator);
|
|
51
|
+
}
|
|
52
|
+
constructor(currency, numerator, denominator) {
|
|
53
|
+
super(numerator, denominator);
|
|
54
|
+
(0, tiny_invariant_1.default)(this.quotient <= index_js_1.MAX_UINT256, 'AMOUNT');
|
|
55
|
+
this.currency = currency;
|
|
56
|
+
this.scale = 10n ** BigInt(currency.decimals);
|
|
57
|
+
}
|
|
58
|
+
add(other) {
|
|
59
|
+
(0, tiny_invariant_1.default)(this.currency.equals(other.currency), 'CURRENCY');
|
|
60
|
+
const added = super.add(other);
|
|
61
|
+
return Amount.fromFractionalAmount(this.currency, added.numerator, added.denominator);
|
|
62
|
+
}
|
|
63
|
+
subtract(other) {
|
|
64
|
+
(0, tiny_invariant_1.default)(this.currency.equals(other.currency), 'CURRENCY');
|
|
65
|
+
const subtracted = super.subtract(other);
|
|
66
|
+
return Amount.fromFractionalAmount(this.currency, subtracted.numerator, subtracted.denominator);
|
|
67
|
+
}
|
|
68
|
+
multiply(other) {
|
|
69
|
+
const multiplied = super.multiply(other);
|
|
70
|
+
return Amount.fromFractionalAmount(this.currency, multiplied.numerator, multiplied.denominator);
|
|
71
|
+
}
|
|
72
|
+
divide(other) {
|
|
73
|
+
const divided = super.divide(other);
|
|
74
|
+
return Amount.fromFractionalAmount(this.currency, divided.numerator, divided.denominator);
|
|
75
|
+
}
|
|
76
|
+
toSignificant(significantDigits = 6, format, rounding = index_js_1.Rounding.ROUND_DOWN) {
|
|
77
|
+
return super
|
|
78
|
+
.divide(this.scale)
|
|
79
|
+
.toSignificant(significantDigits, format, rounding);
|
|
80
|
+
}
|
|
81
|
+
toFixed(decimalPlaces = this.currency.decimals, format, rounding = index_js_1.Rounding.ROUND_DOWN) {
|
|
82
|
+
(0, tiny_invariant_1.default)(decimalPlaces <= this.currency.decimals, 'DECIMALS');
|
|
83
|
+
return super.divide(this.scale).toFixed(decimalPlaces, format, rounding);
|
|
84
|
+
}
|
|
85
|
+
toHex() {
|
|
86
|
+
return `0x${this.quotient.toString(16)}`;
|
|
87
|
+
}
|
|
88
|
+
toExact(format = { groupSeparator: '' }) {
|
|
89
|
+
index_js_1.Big.DP = this.currency.decimals;
|
|
90
|
+
return new index_js_1.Big(this.quotient.toString())
|
|
91
|
+
.div(this.scale.toString())
|
|
92
|
+
.toFormat(format);
|
|
93
|
+
}
|
|
94
|
+
get wrapped() {
|
|
95
|
+
if (this.currency.isToken)
|
|
96
|
+
return this;
|
|
97
|
+
return Amount.fromFractionalAmount(this.currency.wrapped, this.numerator, this.denominator);
|
|
98
|
+
}
|
|
99
|
+
serialize() {
|
|
100
|
+
return zod_js_1.amountSchema.parse({
|
|
101
|
+
amount: this.quotient.toString(),
|
|
102
|
+
currency: this.currency.serialize(),
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
static deserialize(amount) {
|
|
106
|
+
if (amount.currency.isNative)
|
|
107
|
+
return Amount.fromRawAmount(Native_js_1.Native.deserialize(amount.currency), amount.amount);
|
|
108
|
+
return Amount.fromRawAmount(Token_js_1.Token.deserialize(amount.currency), amount.amount);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
exports.Amount = Amount;
|
|
112
|
+
//# sourceMappingURL=Amount.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Amount.js","sourceRoot":"","sources":["../../src/currency/Amount.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Amount.test.d.ts","sourceRoot":"","sources":["../../src/currency/Amount.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const vitest_1 = require("vitest");
|
|
4
|
+
const Amount_js_1 = require("./Amount.js");
|
|
5
|
+
const Native_js_1 = require("./Native.js");
|
|
6
|
+
const Token_js_1 = require("./Token.js");
|
|
7
|
+
const index_js_1 = require("../math/index.js");
|
|
8
|
+
(0, vitest_1.describe)('Amount', () => {
|
|
9
|
+
const ADDRESS_ONE = '0x0000000000000000000000000000000000000001';
|
|
10
|
+
(0, vitest_1.describe)('constructor', () => {
|
|
11
|
+
(0, vitest_1.it)('works', () => {
|
|
12
|
+
const token = new Token_js_1.Token({
|
|
13
|
+
chainId: 1,
|
|
14
|
+
address: ADDRESS_ONE,
|
|
15
|
+
decimals: 18,
|
|
16
|
+
});
|
|
17
|
+
const amount = Amount_js_1.Amount.fromRawAmount(token, 100);
|
|
18
|
+
(0, vitest_1.expect)(amount.quotient).toEqual(100n);
|
|
19
|
+
});
|
|
20
|
+
});
|
|
21
|
+
(0, vitest_1.describe)('#quotient', () => {
|
|
22
|
+
(0, vitest_1.it)('returns the amount after multiplication', () => {
|
|
23
|
+
const token = new Token_js_1.Token({
|
|
24
|
+
chainId: 1,
|
|
25
|
+
address: ADDRESS_ONE,
|
|
26
|
+
decimals: 18,
|
|
27
|
+
});
|
|
28
|
+
const amount = Amount_js_1.Amount.fromRawAmount(token, 100).multiply(new index_js_1.Percent(15, 100));
|
|
29
|
+
(0, vitest_1.expect)(amount.quotient).toEqual(15n);
|
|
30
|
+
});
|
|
31
|
+
});
|
|
32
|
+
(0, vitest_1.describe)('#ether', () => {
|
|
33
|
+
(0, vitest_1.it)('produces ether amount', () => {
|
|
34
|
+
const amount = Amount_js_1.Amount.fromRawAmount(Native_js_1.Native.onChain(1), 100);
|
|
35
|
+
(0, vitest_1.expect)(amount.quotient).toEqual(100n);
|
|
36
|
+
(0, vitest_1.expect)(amount.currency).toEqual(Native_js_1.Native.onChain(1));
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
(0, vitest_1.it)('token amount can be max uint256', () => {
|
|
40
|
+
const amount = Amount_js_1.Amount.fromRawAmount(new Token_js_1.Token({ chainId: 1, address: ADDRESS_ONE, decimals: 18 }), index_js_1.MAX_UINT256);
|
|
41
|
+
(0, vitest_1.expect)(amount.quotient).toEqual(index_js_1.MAX_UINT256);
|
|
42
|
+
});
|
|
43
|
+
(0, vitest_1.it)('token amount cannot exceed max uint256', () => {
|
|
44
|
+
(0, vitest_1.expect)(() => Amount_js_1.Amount.fromRawAmount(new Token_js_1.Token({ chainId: 1, address: ADDRESS_ONE, decimals: 18 }), index_js_1.MAX_UINT256 + 1n)).toThrow('AMOUNT');
|
|
45
|
+
});
|
|
46
|
+
(0, vitest_1.it)('token amount quotient cannot exceed max uint256', () => {
|
|
47
|
+
(0, vitest_1.expect)(() => Amount_js_1.Amount.fromFractionalAmount(new Token_js_1.Token({ chainId: 1, address: ADDRESS_ONE, decimals: 18 }), index_js_1.MAX_UINT256 * 2n + 2n, 2n)).toThrow('AMOUNT');
|
|
48
|
+
});
|
|
49
|
+
(0, vitest_1.it)('token amount numerator can be gt. uint256 if denominator is gt. 1', () => {
|
|
50
|
+
const amount = Amount_js_1.Amount.fromFractionalAmount(new Token_js_1.Token({ chainId: 1, address: ADDRESS_ONE, decimals: 18 }), index_js_1.MAX_UINT256 + 2n, 2);
|
|
51
|
+
(0, vitest_1.expect)(amount.numerator).toEqual(2n + index_js_1.MAX_UINT256);
|
|
52
|
+
});
|
|
53
|
+
(0, vitest_1.describe)('#toFixed', () => {
|
|
54
|
+
(0, vitest_1.it)('throws for decimals > currency.decimals', () => {
|
|
55
|
+
const token = new Token_js_1.Token({
|
|
56
|
+
chainId: 1,
|
|
57
|
+
address: ADDRESS_ONE,
|
|
58
|
+
decimals: 0,
|
|
59
|
+
});
|
|
60
|
+
const amount = Amount_js_1.Amount.fromRawAmount(token, 1000);
|
|
61
|
+
(0, vitest_1.expect)(() => amount.toFixed(3)).toThrow('DECIMALS');
|
|
62
|
+
});
|
|
63
|
+
(0, vitest_1.it)('is correct for 0 decimals', () => {
|
|
64
|
+
const token = new Token_js_1.Token({
|
|
65
|
+
chainId: 1,
|
|
66
|
+
address: ADDRESS_ONE,
|
|
67
|
+
decimals: 0,
|
|
68
|
+
});
|
|
69
|
+
const amount = Amount_js_1.Amount.fromRawAmount(token, 123456);
|
|
70
|
+
(0, vitest_1.expect)(amount.toFixed(0)).toEqual('123456');
|
|
71
|
+
});
|
|
72
|
+
(0, vitest_1.it)('is correct for 18 decimals', () => {
|
|
73
|
+
const token = new Token_js_1.Token({
|
|
74
|
+
chainId: 1,
|
|
75
|
+
address: ADDRESS_ONE,
|
|
76
|
+
decimals: 18,
|
|
77
|
+
});
|
|
78
|
+
const amount = Amount_js_1.Amount.fromRawAmount(token, 1e15);
|
|
79
|
+
(0, vitest_1.expect)(amount.toFixed(9)).toEqual('0.001000000');
|
|
80
|
+
});
|
|
81
|
+
});
|
|
82
|
+
(0, vitest_1.describe)('#toSignificant', () => {
|
|
83
|
+
(0, vitest_1.it)('does not throw for sig figs > currency.decimals', () => {
|
|
84
|
+
const token = new Token_js_1.Token({
|
|
85
|
+
chainId: 1,
|
|
86
|
+
address: ADDRESS_ONE,
|
|
87
|
+
decimals: 0,
|
|
88
|
+
});
|
|
89
|
+
const amount = Amount_js_1.Amount.fromRawAmount(token, 1000);
|
|
90
|
+
(0, vitest_1.expect)(amount.toSignificant(3)).toEqual('1000');
|
|
91
|
+
});
|
|
92
|
+
(0, vitest_1.it)('is correct for 0 decimals', () => {
|
|
93
|
+
const token = new Token_js_1.Token({
|
|
94
|
+
chainId: 1,
|
|
95
|
+
address: ADDRESS_ONE,
|
|
96
|
+
decimals: 0,
|
|
97
|
+
});
|
|
98
|
+
const amount = Amount_js_1.Amount.fromRawAmount(token, 123456);
|
|
99
|
+
(0, vitest_1.expect)(amount.toSignificant(4)).toEqual('123400');
|
|
100
|
+
});
|
|
101
|
+
(0, vitest_1.it)('is correct for 18 decimals', () => {
|
|
102
|
+
const token = new Token_js_1.Token({
|
|
103
|
+
chainId: 1,
|
|
104
|
+
address: ADDRESS_ONE,
|
|
105
|
+
decimals: 18,
|
|
106
|
+
});
|
|
107
|
+
const amount = Amount_js_1.Amount.fromRawAmount(token, 1e15);
|
|
108
|
+
(0, vitest_1.expect)(amount.toSignificant(9)).toEqual('0.001');
|
|
109
|
+
});
|
|
110
|
+
});
|
|
111
|
+
(0, vitest_1.describe)('#toExact', () => {
|
|
112
|
+
(0, vitest_1.it)('does not throw for sig figs > currency.decimals', () => {
|
|
113
|
+
const token = new Token_js_1.Token({
|
|
114
|
+
chainId: 1,
|
|
115
|
+
address: ADDRESS_ONE,
|
|
116
|
+
decimals: 0,
|
|
117
|
+
});
|
|
118
|
+
const amount = Amount_js_1.Amount.fromRawAmount(token, 1000);
|
|
119
|
+
(0, vitest_1.expect)(amount.toExact()).toEqual('1000');
|
|
120
|
+
});
|
|
121
|
+
(0, vitest_1.it)('is correct for 0 decimals', () => {
|
|
122
|
+
const token = new Token_js_1.Token({
|
|
123
|
+
chainId: 1,
|
|
124
|
+
address: ADDRESS_ONE,
|
|
125
|
+
decimals: 0,
|
|
126
|
+
});
|
|
127
|
+
const amount = Amount_js_1.Amount.fromRawAmount(token, 123456);
|
|
128
|
+
(0, vitest_1.expect)(amount.toExact()).toEqual('123456');
|
|
129
|
+
});
|
|
130
|
+
(0, vitest_1.it)('is correct for 18 decimals', () => {
|
|
131
|
+
const token = new Token_js_1.Token({
|
|
132
|
+
chainId: 1,
|
|
133
|
+
address: ADDRESS_ONE,
|
|
134
|
+
decimals: 18,
|
|
135
|
+
});
|
|
136
|
+
const amount = Amount_js_1.Amount.fromRawAmount(token, 123e13);
|
|
137
|
+
(0, vitest_1.expect)(amount.toExact()).toEqual('0.00123');
|
|
138
|
+
});
|
|
139
|
+
});
|
|
140
|
+
});
|
|
141
|
+
//# sourceMappingURL=Amount.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Amount.test.js","sourceRoot":"","sources":["../../src/currency/Amount.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { ChainId } from '../chain/index.js';
|
|
2
|
+
import { Native } from './Native.js';
|
|
3
|
+
import { Token } from './Token.js';
|
|
4
|
+
/**
|
|
5
|
+
* A currency is any fungible financial instrument, including Ether, all ERC20 tokens, and other chain-native currencies
|
|
6
|
+
*/
|
|
7
|
+
export declare abstract class Currency {
|
|
8
|
+
/**
|
|
9
|
+
* Returns whether the currency is native to the chain and must be wrapped (e.g. Ether)
|
|
10
|
+
*/
|
|
11
|
+
abstract readonly isNative: boolean;
|
|
12
|
+
/**
|
|
13
|
+
* Returns whether the currency is a token that is usable in Uniswap without wrapping
|
|
14
|
+
*/
|
|
15
|
+
abstract readonly isToken: boolean;
|
|
16
|
+
/**
|
|
17
|
+
* The chain ID on which this currency resides
|
|
18
|
+
*/
|
|
19
|
+
readonly chainId: ChainId;
|
|
20
|
+
/**
|
|
21
|
+
* The decimals used in representing currency amounts
|
|
22
|
+
*/
|
|
23
|
+
readonly decimals: number;
|
|
24
|
+
/**
|
|
25
|
+
* The symbol of the currency, i.e. a short textual non-unique identifier
|
|
26
|
+
*/
|
|
27
|
+
readonly symbol?: string | undefined;
|
|
28
|
+
/**
|
|
29
|
+
* The name of the currency, i.e. a descriptive textual non-unique identifier
|
|
30
|
+
*/
|
|
31
|
+
readonly name?: string | undefined;
|
|
32
|
+
/**
|
|
33
|
+
* Constructs an instance of the abstract class `Currency`.
|
|
34
|
+
* @param chainId the chain ID on which this currency resides
|
|
35
|
+
* @param decimals decimals of the currency
|
|
36
|
+
* @param symbol symbol of the currency
|
|
37
|
+
* @param name of the currency
|
|
38
|
+
* @param rebase of the currency
|
|
39
|
+
*/
|
|
40
|
+
protected constructor({ chainId: _chainId, decimals: _decimals, symbol, name, }: {
|
|
41
|
+
chainId: number | string;
|
|
42
|
+
decimals: number | string;
|
|
43
|
+
symbol?: string | undefined;
|
|
44
|
+
name?: string | undefined;
|
|
45
|
+
});
|
|
46
|
+
/**
|
|
47
|
+
* Returns whether this currency is functionally equivalent to the other currency
|
|
48
|
+
* @param other the other currency
|
|
49
|
+
*/
|
|
50
|
+
abstract equals(other: Native | Token): boolean;
|
|
51
|
+
/**
|
|
52
|
+
* Return the wrapped version of this currency
|
|
53
|
+
*/
|
|
54
|
+
abstract get wrapped(): Token;
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=Currency.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Currency.d.ts","sourceRoot":"","sources":["../../src/currency/Currency.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAE3C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAElC;;GAEG;AACH,8BAAsB,QAAQ;IAC5B;;OAEG;IACH,kBAAyB,QAAQ,EAAE,OAAO,CAAA;IAC1C;;OAEG;IACH,kBAAyB,OAAO,EAAE,OAAO,CAAA;IACzC;;OAEG;IACH,SAAgB,OAAO,EAAE,OAAO,CAAA;IAChC;;OAEG;IACH,SAAgB,QAAQ,EAAE,MAAM,CAAA;IAChC;;OAEG;IACH,SAAgB,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC3C;;OAEG;IACH,SAAgB,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAEzC;;;;;;;OAOG;IACH,SAAS,aAAa,EACpB,OAAO,EAAE,QAAQ,EACjB,QAAQ,EAAE,SAAS,EACnB,MAAM,EACN,IAAI,GACL,EAAE;QACD,OAAO,EAAE,MAAM,GAAG,MAAM,CAAA;QACxB,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAA;QACzB,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAC3B,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAC1B;IAeD;;;OAGG;aACa,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,GAAG,OAAO;IAEtD;;OAEG;IACH,aAAoB,OAAO,IAAI,KAAK,CAAA;CACrC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
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.Currency = void 0;
|
|
7
|
+
const tiny_invariant_1 = __importDefault(require("tiny-invariant"));
|
|
8
|
+
/**
|
|
9
|
+
* A currency is any fungible financial instrument, including Ether, all ERC20 tokens, and other chain-native currencies
|
|
10
|
+
*/
|
|
11
|
+
class Currency {
|
|
12
|
+
/**
|
|
13
|
+
* The chain ID on which this currency resides
|
|
14
|
+
*/
|
|
15
|
+
chainId;
|
|
16
|
+
/**
|
|
17
|
+
* The decimals used in representing currency amounts
|
|
18
|
+
*/
|
|
19
|
+
decimals;
|
|
20
|
+
/**
|
|
21
|
+
* The symbol of the currency, i.e. a short textual non-unique identifier
|
|
22
|
+
*/
|
|
23
|
+
symbol;
|
|
24
|
+
/**
|
|
25
|
+
* The name of the currency, i.e. a descriptive textual non-unique identifier
|
|
26
|
+
*/
|
|
27
|
+
name;
|
|
28
|
+
/**
|
|
29
|
+
* Constructs an instance of the abstract class `Currency`.
|
|
30
|
+
* @param chainId the chain ID on which this currency resides
|
|
31
|
+
* @param decimals decimals of the currency
|
|
32
|
+
* @param symbol symbol of the currency
|
|
33
|
+
* @param name of the currency
|
|
34
|
+
* @param rebase of the currency
|
|
35
|
+
*/
|
|
36
|
+
constructor({ chainId: _chainId, decimals: _decimals, symbol, name, }) {
|
|
37
|
+
const chainId = Number(_chainId);
|
|
38
|
+
const decimals = Number(_decimals);
|
|
39
|
+
(0, tiny_invariant_1.default)(Number.isSafeInteger(chainId), 'CHAIN_ID');
|
|
40
|
+
(0, tiny_invariant_1.default)(decimals >= 0 && decimals < 255 && Number.isInteger(decimals), 'DECIMALS');
|
|
41
|
+
this.chainId = chainId;
|
|
42
|
+
this.decimals = decimals;
|
|
43
|
+
this.symbol = symbol;
|
|
44
|
+
this.name = name;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
exports.Currency = Currency;
|
|
48
|
+
//# sourceMappingURL=Currency.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Currency.js","sourceRoot":"","sources":["../../src/currency/Currency.ts"],"names":[],"mappings":";;;;;;AAAA,oEAAsC;AAMtC;;GAEG;AACH,MAAsB,QAAQ;IAS5B;;OAEG;IACa,OAAO,CAAS;IAChC;;OAEG;IACa,QAAQ,CAAQ;IAChC;;OAEG;IACa,MAAM,CAAqB;IAC3C;;OAEG;IACa,IAAI,CAAqB;IAEzC;;;;;;;OAOG;IACH,YAAsB,EACpB,OAAO,EAAE,QAAQ,EACjB,QAAQ,EAAE,SAAS,EACnB,MAAM,EACN,IAAI,GAML;QACC,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAY,CAAA;QAC3C,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,CAAA;QAClC,IAAA,wBAAS,EAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,UAAU,CAAC,CAAA;QACpD,IAAA,wBAAS,EACP,QAAQ,IAAI,CAAC,IAAI,QAAQ,GAAG,GAAG,IAAI,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,EAC7D,UAAU,CACX,CAAA;QAED,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;IAClB,CAAC;CAYF;AArED,4BAqEC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { Currency } from './Currency.js';
|
|
2
|
+
import { Token } from './Token.js';
|
|
3
|
+
import { type Type } from './Type.js';
|
|
4
|
+
import { type SerializedNative } from './zod.js';
|
|
5
|
+
export declare class Native extends Currency {
|
|
6
|
+
readonly id: string;
|
|
7
|
+
readonly isNative: true;
|
|
8
|
+
readonly isToken: false;
|
|
9
|
+
readonly symbol: string;
|
|
10
|
+
readonly name: string;
|
|
11
|
+
protected constructor(native: {
|
|
12
|
+
chainId: number;
|
|
13
|
+
decimals: number;
|
|
14
|
+
symbol: string;
|
|
15
|
+
name: string;
|
|
16
|
+
});
|
|
17
|
+
get wrapped(): Token;
|
|
18
|
+
private static cache;
|
|
19
|
+
static onChain(chainId: number): Native;
|
|
20
|
+
equals(other: Type): boolean;
|
|
21
|
+
serialize(): SerializedNative;
|
|
22
|
+
static deserialize(native: SerializedNative): Native;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=Native.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Native.d.ts","sourceRoot":"","sources":["../../src/currency/Native.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,WAAW,CAAA;AAErC,OAAO,EAAE,KAAK,gBAAgB,EAAgB,MAAM,UAAU,CAAA;AAE9D,qBAAa,MAAO,SAAQ,QAAQ;IAClC,SAAgB,EAAE,EAAE,MAAM,CAAA;IAC1B,SAAgB,QAAQ,OAAgB;IACxC,SAAgB,OAAO,QAAiB;IACxC,SAAyB,MAAM,EAAE,MAAM,CAAA;IACvC,SAAyB,IAAI,EAAE,MAAM,CAAA;IACrC,SAAS,aAAa,MAAM,EAAE;QAC5B,OAAO,EAAE,MAAM,CAAA;QACf,QAAQ,EAAE,MAAM,CAAA;QAChB,MAAM,EAAE,MAAM,CAAA;QACd,IAAI,EAAE,MAAM,CAAA;KACb;IAMD,IAAW,OAAO,IAAI,KAAK,CAI1B;IAMD,OAAO,CAAC,MAAM,CAAC,KAAK,CAA6B;WAEnC,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IA8BvC,MAAM,CAAC,KAAK,EAAE,IAAI,GAAG,OAAO;IAI5B,SAAS,IAAI,gBAAgB;WAUtB,WAAW,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM;CAG5D"}
|
|
@@ -0,0 +1,72 @@
|
|
|
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.Native = void 0;
|
|
7
|
+
const tiny_invariant_1 = __importDefault(require("tiny-invariant"));
|
|
8
|
+
const index_js_1 = require("../chain/index.js");
|
|
9
|
+
const Currency_js_1 = require("./Currency.js");
|
|
10
|
+
const tokens_js_1 = require("./constants/tokens.js");
|
|
11
|
+
const zod_js_1 = require("./zod.js");
|
|
12
|
+
class Native extends Currency_js_1.Currency {
|
|
13
|
+
id;
|
|
14
|
+
isNative = true;
|
|
15
|
+
isToken = false;
|
|
16
|
+
symbol;
|
|
17
|
+
name;
|
|
18
|
+
constructor(native) {
|
|
19
|
+
super(native);
|
|
20
|
+
this.id = `${native.chainId}:NATIVE`;
|
|
21
|
+
this.symbol = native.symbol;
|
|
22
|
+
this.name = native.name;
|
|
23
|
+
}
|
|
24
|
+
get wrapped() {
|
|
25
|
+
const wnative = tokens_js_1.WNATIVE[this.chainId];
|
|
26
|
+
(0, tiny_invariant_1.default)(!!wnative, 'WRAPPED');
|
|
27
|
+
return wnative;
|
|
28
|
+
}
|
|
29
|
+
// public get tokenURI(): string {
|
|
30
|
+
// return `native-currency/${this.symbol.toLowerCase()}.svg`
|
|
31
|
+
// }
|
|
32
|
+
static cache = {};
|
|
33
|
+
static onChain(chainId) {
|
|
34
|
+
const cached = this.cache[chainId];
|
|
35
|
+
if (typeof cached !== 'undefined') {
|
|
36
|
+
return cached;
|
|
37
|
+
}
|
|
38
|
+
const nativeCurrency = index_js_1.natives?.[chainId];
|
|
39
|
+
(0, tiny_invariant_1.default)(!!nativeCurrency, 'NATIVE_CURRENCY');
|
|
40
|
+
const { decimals, name, symbol } = nativeCurrency;
|
|
41
|
+
const native = new Native({
|
|
42
|
+
chainId,
|
|
43
|
+
decimals,
|
|
44
|
+
name,
|
|
45
|
+
symbol,
|
|
46
|
+
});
|
|
47
|
+
this.cache[chainId] = new Native({
|
|
48
|
+
chainId,
|
|
49
|
+
decimals,
|
|
50
|
+
name,
|
|
51
|
+
symbol,
|
|
52
|
+
});
|
|
53
|
+
return native;
|
|
54
|
+
}
|
|
55
|
+
equals(other) {
|
|
56
|
+
return other.isNative && other.chainId === this.chainId;
|
|
57
|
+
}
|
|
58
|
+
serialize() {
|
|
59
|
+
return zod_js_1.nativeSchema.parse({
|
|
60
|
+
isNative: this.isNative,
|
|
61
|
+
name: this.name,
|
|
62
|
+
symbol: this.symbol,
|
|
63
|
+
decimals: this.decimals,
|
|
64
|
+
chainId: this.chainId,
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
static deserialize(native) {
|
|
68
|
+
return Native.onChain(native.chainId);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
exports.Native = Native;
|
|
72
|
+
//# sourceMappingURL=Native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Native.js","sourceRoot":"","sources":["../../src/currency/Native.ts"],"names":[],"mappings":";;;;;;AAAA,oEAAsC;AACtC,gDAA2C;AAE3C,+CAAwC;AAGxC,qDAA+C;AAC/C,qCAA8D;AAE9D,MAAa,MAAO,SAAQ,sBAAQ;IAClB,EAAE,CAAQ;IACV,QAAQ,GAAG,IAAa,CAAA;IACxB,OAAO,GAAG,KAAc,CAAA;IACf,MAAM,CAAQ;IACd,IAAI,CAAQ;IACrC,YAAsB,MAKrB;QACC,KAAK,CAAC,MAAM,CAAC,CAAA;QACb,IAAI,CAAC,EAAE,GAAG,GAAG,MAAM,CAAC,OAAO,SAAS,CAAA;QACpC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAA;QAC3B,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAA;IACzB,CAAC;IACD,IAAW,OAAO;QAChB,MAAM,OAAO,GAAG,mBAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACrC,IAAA,wBAAS,EAAC,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;QAC/B,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,kCAAkC;IAClC,8DAA8D;IAC9D,IAAI;IAEI,MAAM,CAAC,KAAK,GAA2B,EAAE,CAAA;IAE1C,MAAM,CAAC,OAAO,CAAC,OAAe;QACnC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAElC,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;YACjC,OAAO,MAAM,CAAA;SACd;QAED,MAAM,cAAc,GAAG,kBAAO,EAAE,CAAC,OAAO,CAAC,CAAA;QAEzC,IAAA,wBAAS,EAAC,CAAC,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAA;QAE9C,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,cAAc,CAAA;QAEjD,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC;YACxB,OAAO;YACP,QAAQ;YACR,IAAI;YACJ,MAAM;SACP,CAAC,CAAA;QAEF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI,MAAM,CAAC;YAC/B,OAAO;YACP,QAAQ;YACR,IAAI;YACJ,MAAM;SACP,CAAC,CAAA;QAEF,OAAO,MAAM,CAAA;IACf,CAAC;IAEM,MAAM,CAAC,KAAW;QACvB,OAAO,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO,CAAA;IACzD,CAAC;IAEM,SAAS;QACd,OAAO,qBAAY,CAAC,KAAK,CAAC;YACxB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC,CAAA;IACJ,CAAC;IAEM,MAAM,CAAC,WAAW,CAAC,MAAwB;QAChD,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IACvC,CAAC;;AA3EH,wBA4EC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Native.test.d.ts","sourceRoot":"","sources":["../../src/currency/Native.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const vitest_1 = require("vitest");
|
|
4
|
+
const Native_js_1 = require("./Native.js");
|
|
5
|
+
const Token_js_1 = require("./Token.js");
|
|
6
|
+
(0, vitest_1.describe)('Currency', () => {
|
|
7
|
+
const ADDRESS_ZERO = '0x0000000000000000000000000000000000000000';
|
|
8
|
+
const ADDRESS_ONE = '0x0000000000000000000000000000000000000001';
|
|
9
|
+
const t0 = new Token_js_1.Token({ chainId: 1, address: ADDRESS_ZERO, decimals: 18 });
|
|
10
|
+
const t1 = new Token_js_1.Token({ chainId: 1, address: ADDRESS_ONE, decimals: 18 });
|
|
11
|
+
(0, vitest_1.describe)('#equals', () => {
|
|
12
|
+
(0, vitest_1.it)('ether on same chains is ether', () => {
|
|
13
|
+
(0, vitest_1.expect)(Native_js_1.Native.onChain(1).equals(Native_js_1.Native.onChain(1)));
|
|
14
|
+
});
|
|
15
|
+
(0, vitest_1.it)('ether is not token0', () => {
|
|
16
|
+
(0, vitest_1.expect)(Native_js_1.Native.onChain(1).equals(t0)).toStrictEqual(false);
|
|
17
|
+
});
|
|
18
|
+
(0, vitest_1.it)('token1 is not token0', () => {
|
|
19
|
+
(0, vitest_1.expect)(t1.equals(t0)).toStrictEqual(false);
|
|
20
|
+
});
|
|
21
|
+
(0, vitest_1.it)('token0 is token0', () => {
|
|
22
|
+
(0, vitest_1.expect)(t0.equals(t0)).toStrictEqual(true);
|
|
23
|
+
});
|
|
24
|
+
(0, vitest_1.it)('token0 is equal to another token0', () => {
|
|
25
|
+
(0, vitest_1.expect)(t0.equals(new Token_js_1.Token({
|
|
26
|
+
chainId: 1,
|
|
27
|
+
address: ADDRESS_ZERO,
|
|
28
|
+
decimals: 18,
|
|
29
|
+
symbol: 'symbol',
|
|
30
|
+
name: 'name',
|
|
31
|
+
}))).toStrictEqual(true);
|
|
32
|
+
});
|
|
33
|
+
(0, vitest_1.it)('throws if chain id is not known', () => {
|
|
34
|
+
(0, vitest_1.expect)(() => Native_js_1.Native.onChain(Number.MAX_SAFE_INTEGER)).toThrow('NATIVE_CURRENCY');
|
|
35
|
+
});
|
|
36
|
+
});
|
|
37
|
+
});
|
|
38
|
+
//# sourceMappingURL=Native.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Native.test.js","sourceRoot":"","sources":["../../src/currency/Native.test.ts"],"names":[],"mappings":";;AAAA,mCAA6C;AAE7C,2CAAoC;AACpC,yCAAkC;AAElC,IAAA,iBAAQ,EAAC,UAAU,EAAE,GAAG,EAAE;IACxB,MAAM,YAAY,GAAG,4CAA4C,CAAA;IACjE,MAAM,WAAW,GAAG,4CAA4C,CAAA;IAEhE,MAAM,EAAE,GAAG,IAAI,gBAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAA;IACzE,MAAM,EAAE,GAAG,IAAI,gBAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAA;IAExE,IAAA,iBAAQ,EAAC,SAAS,EAAE,GAAG,EAAE;QACvB,IAAA,WAAE,EAAC,+BAA+B,EAAE,GAAG,EAAE;YACvC,IAAA,eAAM,EAAC,kBAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,kBAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QACrD,CAAC,CAAC,CAAA;QACF,IAAA,WAAE,EAAC,qBAAqB,EAAE,GAAG,EAAE;YAC7B,IAAA,eAAM,EAAC,kBAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;QAC3D,CAAC,CAAC,CAAA;QACF,IAAA,WAAE,EAAC,sBAAsB,EAAE,GAAG,EAAE;YAC9B,IAAA,eAAM,EAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;QAC5C,CAAC,CAAC,CAAA;QACF,IAAA,WAAE,EAAC,kBAAkB,EAAE,GAAG,EAAE;YAC1B,IAAA,eAAM,EAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;QAC3C,CAAC,CAAC,CAAA;QACF,IAAA,WAAE,EAAC,mCAAmC,EAAE,GAAG,EAAE;YAC3C,IAAA,eAAM,EACJ,EAAE,CAAC,MAAM,CACP,IAAI,gBAAK,CAAC;gBACR,OAAO,EAAE,CAAC;gBACV,OAAO,EAAE,YAAY;gBACrB,QAAQ,EAAE,EAAE;gBACZ,MAAM,EAAE,QAAQ;gBAChB,IAAI,EAAE,MAAM;aACb,CAAC,CACH,CACF,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;QACvB,CAAC,CAAC,CAAA;QACF,IAAA,WAAE,EAAC,iCAAiC,EAAE,GAAG,EAAE;YACzC,IAAA,eAAM,EAAC,GAAG,EAAE,CAAC,kBAAM,CAAC,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAC3D,iBAAiB,CAClB,CAAA;QACH,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { type BigintIsh, Fraction, Rounding } from '../math/index.js';
|
|
2
|
+
import { Amount } from './Amount.js';
|
|
3
|
+
import { type Type } from './Type.js';
|
|
4
|
+
export declare class Price<TBase extends Type, TQuote extends Type> extends Fraction {
|
|
5
|
+
readonly baseCurrency: TBase;
|
|
6
|
+
readonly quoteCurrency: TQuote;
|
|
7
|
+
readonly scalar: Fraction;
|
|
8
|
+
/**
|
|
9
|
+
* Construct a price, either with the base and quote currency amount, or the
|
|
10
|
+
* @param args
|
|
11
|
+
*/
|
|
12
|
+
constructor(...args: [TBase, TQuote, BigintIsh, BigintIsh] | [
|
|
13
|
+
{
|
|
14
|
+
baseAmount: Amount<TBase>;
|
|
15
|
+
quoteAmount: Amount<TQuote>;
|
|
16
|
+
}
|
|
17
|
+
]);
|
|
18
|
+
/**
|
|
19
|
+
* Flip the price, switching the base and quote currency
|
|
20
|
+
*/
|
|
21
|
+
invert(): Price<TQuote, TBase>;
|
|
22
|
+
/**
|
|
23
|
+
* Multiply the price by another price, returning a new price. The other price must have the same base currency as this price's quote currency
|
|
24
|
+
* @param other the other price
|
|
25
|
+
*/
|
|
26
|
+
multiply<TOtherQuote extends Type>(other: Price<TQuote, TOtherQuote>): Price<TBase, TOtherQuote>;
|
|
27
|
+
/**
|
|
28
|
+
* Return the amount of quote currency corresponding to a given amount of the base currency
|
|
29
|
+
* @param currencyAmount the amount of base currency to quote against the price
|
|
30
|
+
*/
|
|
31
|
+
quote(currencyAmount: Amount<TBase>): Amount<TQuote>;
|
|
32
|
+
/**
|
|
33
|
+
* Get the value scaled by decimals for formatting
|
|
34
|
+
* @private
|
|
35
|
+
*/
|
|
36
|
+
private get adjustedForDecimals();
|
|
37
|
+
toSignificant(significantDigits?: number, format?: object, rounding?: Rounding): string;
|
|
38
|
+
toFixed(decimalPlaces?: number, format?: object, rounding?: Rounding): string;
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=Price.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Price.d.ts","sourceRoot":"","sources":["../../src/currency/Price.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAErE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,WAAW,CAAA;AAErC,qBAAa,KAAK,CAAC,KAAK,SAAS,IAAI,EAAE,MAAM,SAAS,IAAI,CAAE,SAAQ,QAAQ;IAC1E,SAAgB,YAAY,EAAE,KAAK,CAAA;IACnC,SAAgB,aAAa,EAAE,MAAM,CAAA;IACrC,SAAgB,MAAM,EAAE,QAAQ,CAAA;IAEhC;;;OAGG;gBAED,GAAG,IAAI,EACH,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC,GACrC;QACE;YACE,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;YACzB,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;SAC5B;KACF;IA4BP;;OAEG;IACa,MAAM,IAAI,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC;IAS9C;;;OAGG;IACa,QAAQ,CAAC,WAAW,SAAS,IAAI,EAC/C,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,WAAW,CAAC,GAChC,KAAK,CAAC,KAAK,EAAE,WAAW,CAAC;IAW5B;;;OAGG;IACI,KAAK,CAAC,cAAc,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;IAU3D;;;OAGG;IACH,OAAO,KAAK,mBAAmB,GAE9B;IAEe,aAAa,CAC3B,iBAAiB,SAAI,EACrB,MAAM,CAAC,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,QAAQ,GAClB,MAAM;IAQO,OAAO,CACrB,aAAa,SAAI,EACjB,MAAM,CAAC,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,QAAQ,GAClB,MAAM;CAGV"}
|