@shapeshiftoss/swapper 17.6.9 → 17.6.11
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/LICENSE.md +21 -0
- package/dist/cjs/.tsbuildinfo +1 -1
- package/dist/cjs/constants.js +72 -43
- package/dist/cjs/cowswap-utils/constants.js +3 -0
- package/dist/cjs/cowswap-utils/index.js +6 -0
- package/dist/cjs/index.d.ts +1 -0
- package/dist/cjs/index.js +1 -0
- package/dist/cjs/swappers/AcrossSwapper/AcrossSwapper.d.ts +2 -0
- package/dist/cjs/swappers/AcrossSwapper/AcrossSwapper.js +8 -0
- package/dist/cjs/swappers/AcrossSwapper/constant.d.ts +9 -0
- package/dist/cjs/swappers/AcrossSwapper/constant.js +50 -0
- package/dist/cjs/swappers/AcrossSwapper/endpoints.d.ts +2 -0
- package/dist/cjs/swappers/AcrossSwapper/endpoints.js +113 -0
- package/dist/cjs/swappers/AcrossSwapper/getTradeQuote/getTradeQuote.d.ts +3 -0
- package/dist/cjs/swappers/AcrossSwapper/getTradeQuote/getTradeQuote.js +31 -0
- package/dist/cjs/swappers/AcrossSwapper/getTradeRate/getTradeRate.d.ts +3 -0
- package/dist/cjs/swappers/AcrossSwapper/getTradeRate/getTradeRate.js +19 -0
- package/dist/cjs/swappers/AcrossSwapper/index.d.ts +1 -0
- package/dist/cjs/swappers/AcrossSwapper/index.js +5 -0
- package/dist/cjs/swappers/AcrossSwapper/utils/acrossService.d.ts +5 -0
- package/dist/cjs/swappers/AcrossSwapper/utils/acrossService.js +17 -0
- package/dist/cjs/swappers/AcrossSwapper/utils/fetchAcrossTrade.d.ts +19 -0
- package/dist/cjs/swappers/AcrossSwapper/utils/fetchAcrossTrade.js +27 -0
- package/dist/cjs/swappers/AcrossSwapper/utils/getTrade.d.ts +11 -0
- package/dist/cjs/swappers/AcrossSwapper/utils/getTrade.js +349 -0
- package/dist/cjs/swappers/AcrossSwapper/utils/types.d.ts +177 -0
- package/dist/cjs/swappers/AcrossSwapper/utils/types.js +17 -0
- package/dist/cjs/swappers/AvnuSwapper/endpoints.js +42 -14
- package/dist/cjs/swappers/AvnuSwapper/swapperApi/getTradeQuote.js +19 -5
- package/dist/cjs/swappers/AvnuSwapper/swapperApi/getTradeRate.js +17 -4
- package/dist/cjs/swappers/BebopSwapper/BebopSwapper.js +2 -0
- package/dist/cjs/swappers/BebopSwapper/endpoints.js +35 -2
- package/dist/cjs/swappers/BebopSwapper/executeSolanaMessage.d.ts +2 -0
- package/dist/cjs/swappers/BebopSwapper/executeSolanaMessage.js +47 -0
- package/dist/cjs/swappers/BebopSwapper/getBebopSolanaTradeQuote/getBebopSolanaTradeQuote.d.ts +4 -0
- package/dist/cjs/swappers/BebopSwapper/getBebopSolanaTradeQuote/getBebopSolanaTradeQuote.js +91 -0
- package/dist/cjs/swappers/BebopSwapper/getBebopSolanaTradeRate/getBebopSolanaTradeRate.d.ts +4 -0
- package/dist/cjs/swappers/BebopSwapper/getBebopSolanaTradeRate/getBebopSolanaTradeRate.js +88 -0
- package/dist/cjs/swappers/BebopSwapper/getBebopTradeQuote/getBebopTradeQuote.js +10 -0
- package/dist/cjs/swappers/BebopSwapper/getBebopTradeRate/getBebopTradeRate.js +10 -0
- package/dist/cjs/swappers/BebopSwapper/types.d.ts +49 -1
- package/dist/cjs/swappers/BebopSwapper/types.js +9 -2
- package/dist/cjs/swappers/BebopSwapper/utils/fetchFromBebop.d.ts +19 -1
- package/dist/cjs/swappers/BebopSwapper/utils/fetchFromBebop.js +86 -1
- package/dist/cjs/swappers/BebopSwapper/utils/helpers/helpers.d.ts +14 -2
- package/dist/cjs/swappers/BebopSwapper/utils/helpers/helpers.js +47 -1
- package/dist/cjs/swappers/ButterSwap/ButterSwap.js +1 -0
- package/dist/cjs/swappers/ButterSwap/endpoints.js +56 -0
- package/dist/cjs/swappers/ButterSwap/swapperApi/checkTradeStatus.js +19 -0
- package/dist/cjs/swappers/ButterSwap/swapperApi/getTradeQuote.js +44 -15
- package/dist/cjs/swappers/ButterSwap/swapperApi/getTradeQuote.test.js +1 -0
- package/dist/cjs/swappers/ButterSwap/swapperApi/getTradeRate.js +33 -16
- package/dist/cjs/swappers/ButterSwap/swapperApi/getTradeRate.test.js +2 -0
- package/dist/cjs/swappers/ButterSwap/types.d.ts +1 -0
- package/dist/cjs/swappers/ButterSwap/utils/helpers.js +1 -0
- package/dist/cjs/swappers/ButterSwap/xhr.d.ts +2 -2
- package/dist/cjs/swappers/ButterSwap/xhr.js +7 -2
- package/dist/cjs/swappers/CetusSwapper/endpoints.js +3 -8
- package/dist/cjs/swappers/CetusSwapper/swapperApi/getTradeQuote.js +11 -1
- package/dist/cjs/swappers/CetusSwapper/swapperApi/getTradeRate.js +11 -1
- package/dist/cjs/swappers/CetusSwapper/utils/helpers.d.ts +1 -1
- package/dist/cjs/swappers/CetusSwapper/utils/helpers.js +1 -1
- package/dist/cjs/swappers/ChainflipSwapper/constants.js +7 -3
- package/dist/cjs/swappers/ChainflipSwapper/utils/getQuoteOrRate.js +28 -5
- package/dist/cjs/swappers/ChainflipSwapper/utils/helpers.js +8 -2
- package/dist/cjs/swappers/CowSwapper/CowSwapper.js +1 -1
- package/dist/cjs/swappers/CowSwapper/getCowSwapTradeQuote/getCowSwapTradeQuote.js +11 -1
- package/dist/cjs/swappers/CowSwapper/getCowSwapTradeQuote/getCowSwapTradeQuote.test.js +5 -5
- package/dist/cjs/swappers/CowSwapper/getCowSwapTradeRate/getCowSwapTradeRate.js +10 -1
- package/dist/cjs/swappers/CowSwapper/utils/helpers/helpers.js +8 -2
- package/dist/cjs/swappers/DebridgeSwapper/DebridgeSwapper.d.ts +2 -0
- package/dist/cjs/swappers/DebridgeSwapper/DebridgeSwapper.js +7 -0
- package/dist/cjs/swappers/DebridgeSwapper/constant.d.ts +5 -0
- package/dist/cjs/swappers/DebridgeSwapper/constant.js +36 -0
- package/dist/cjs/swappers/DebridgeSwapper/endpoints.d.ts +2 -0
- package/dist/cjs/swappers/DebridgeSwapper/endpoints.js +217 -0
- package/dist/cjs/swappers/DebridgeSwapper/getTradeQuote/getTradeQuote.d.ts +3 -0
- package/dist/cjs/swappers/DebridgeSwapper/getTradeQuote/getTradeQuote.js +31 -0
- package/dist/cjs/swappers/DebridgeSwapper/getTradeRate/getTradeRate.d.ts +3 -0
- package/dist/cjs/swappers/DebridgeSwapper/getTradeRate/getTradeRate.js +19 -0
- package/dist/cjs/swappers/DebridgeSwapper/index.d.ts +1 -0
- package/dist/cjs/swappers/DebridgeSwapper/index.js +5 -0
- package/dist/cjs/swappers/DebridgeSwapper/utils/debridgeService.d.ts +5 -0
- package/dist/cjs/swappers/DebridgeSwapper/utils/debridgeService.js +17 -0
- package/dist/cjs/swappers/DebridgeSwapper/utils/fetchDebridgeSingleChainTrade.d.ts +16 -0
- package/dist/cjs/swappers/DebridgeSwapper/utils/fetchDebridgeSingleChainTrade.js +23 -0
- package/dist/cjs/swappers/DebridgeSwapper/utils/fetchDebridgeTrade.d.ts +20 -0
- package/dist/cjs/swappers/DebridgeSwapper/utils/fetchDebridgeTrade.js +29 -0
- package/dist/cjs/swappers/DebridgeSwapper/utils/getTrade.d.ts +11 -0
- package/dist/cjs/swappers/DebridgeSwapper/utils/getTrade.js +369 -0
- package/dist/cjs/swappers/DebridgeSwapper/utils/types.d.ts +155 -0
- package/dist/cjs/swappers/DebridgeSwapper/utils/types.js +9 -0
- package/dist/cjs/swappers/JupiterSwapper/swapperApi/getTradeQuote.js +32 -0
- package/dist/cjs/swappers/JupiterSwapper/swapperApi/getTradeRate.js +9 -0
- package/dist/cjs/swappers/MayachainSwapper/utils/poolAssetHelpers/poolAssetHelpers.js +1 -1
- package/dist/cjs/swappers/NearIntentsSwapper/NearIntentsSwapper.js +1 -0
- package/dist/cjs/swappers/NearIntentsSwapper/endpoints.js +31 -0
- package/dist/cjs/swappers/NearIntentsSwapper/swapperApi/getTradeQuote.js +48 -1
- package/dist/cjs/swappers/NearIntentsSwapper/swapperApi/getTradeRate.js +73 -1
- package/dist/cjs/swappers/NearIntentsSwapper/types.d.ts +1 -1
- package/dist/cjs/swappers/NearIntentsSwapper/types.js +6 -0
- package/dist/cjs/swappers/NearIntentsSwapper/utils/helpers/helpers.js +23 -4
- package/dist/cjs/swappers/PortalsSwapper/getPortalsTradeQuote/getPortalsTradeQuote.js +10 -0
- package/dist/cjs/swappers/PortalsSwapper/getPortalsTradeRate/getPortalsTradeRate.js +8 -3
- package/dist/cjs/swappers/RelaySwapper/constant.js +27 -1
- package/dist/cjs/swappers/RelaySwapper/utils/getRelayDefaultUserAddress.d.ts +1 -1
- package/dist/cjs/swappers/RelaySwapper/utils/getTrade.js +57 -7
- package/dist/cjs/swappers/RelaySwapper/utils/relayTokenToAssetId.js +110 -0
- package/dist/cjs/swappers/RelaySwapper/utils/types.d.ts +15 -0
- package/dist/cjs/swappers/StonfiSwapper/StonfiSwapper.d.ts +2 -0
- package/dist/cjs/swappers/StonfiSwapper/StonfiSwapper.js +8 -0
- package/dist/cjs/swappers/StonfiSwapper/endpoints.d.ts +2 -0
- package/dist/cjs/swappers/StonfiSwapper/endpoints.js +227 -0
- package/dist/cjs/swappers/StonfiSwapper/index.d.ts +4 -0
- package/dist/cjs/swappers/StonfiSwapper/index.js +25 -0
- package/dist/cjs/swappers/StonfiSwapper/swapperApi/getTradeQuote.d.ts +2 -0
- package/dist/cjs/swappers/StonfiSwapper/swapperApi/getTradeQuote.js +129 -0
- package/dist/cjs/swappers/StonfiSwapper/swapperApi/getTradeRate.d.ts +2 -0
- package/dist/cjs/swappers/StonfiSwapper/swapperApi/getTradeRate.js +115 -0
- package/dist/cjs/swappers/StonfiSwapper/types.d.ts +60 -0
- package/dist/cjs/swappers/StonfiSwapper/types.js +5 -0
- package/dist/cjs/swappers/StonfiSwapper/utils/constants.d.ts +5 -0
- package/dist/cjs/swappers/StonfiSwapper/utils/constants.js +8 -0
- package/dist/cjs/swappers/StonfiSwapper/utils/helpers.d.ts +11 -0
- package/dist/cjs/swappers/StonfiSwapper/utils/helpers.js +135 -0
- package/dist/cjs/swappers/StonfiSwapper/utils/omnistonManager.d.ts +5 -0
- package/dist/cjs/swappers/StonfiSwapper/utils/omnistonManager.js +20 -0
- package/dist/cjs/swappers/SunioSwapper/endpoints.js +1 -1
- package/dist/cjs/swappers/SunioSwapper/utils/getQuoteOrRate.js +14 -3
- package/dist/cjs/swappers/ThorchainSwapper/ThorchainSwapper.js +3 -0
- package/dist/cjs/swappers/ThorchainSwapper/endpoints.js +2 -0
- package/dist/cjs/swappers/ThorchainSwapper/generated/generatedTradableAssetMap.json +1 -0
- package/dist/cjs/swappers/ThorchainSwapper/utils/poolAssetHelpers/poolAssetHelpers.d.ts +1 -1
- package/dist/cjs/swappers/ThorchainSwapper/utils/poolAssetHelpers/poolAssetHelpers.js +2 -1
- package/dist/cjs/swappers/ThorchainSwapper/utils/poolAssetHelpers/poolAssetHelpers.test.js +10 -0
- package/dist/cjs/swappers/ZrxSwapper/getZrxTradeQuote/getZrxTradeQuote.js +9 -0
- package/dist/cjs/swappers/ZrxSwapper/getZrxTradeRate/getZrxTradeRate.js +9 -0
- package/dist/cjs/swappers/ZrxSwapper/utils/helpers/helpers.d.ts +1 -1
- package/dist/cjs/swappers/utils/affiliateFee.d.ts +17 -0
- package/dist/cjs/swappers/utils/affiliateFee.js +43 -0
- package/dist/cjs/swappers/utils/filterBuyAssetsBySellAssetId/filterBuyAssetsBySellAssetId.js +2 -5
- package/dist/cjs/swappers/utils/helpers/helpers.js +3 -0
- package/dist/cjs/thorchain-utils/getCallDataFromQuote.d.ts +1 -1
- package/dist/cjs/thorchain-utils/getL1RateOrQuote.js +87 -9
- package/dist/cjs/thorchain-utils/getQuote.js +8 -2
- package/dist/cjs/thorchain-utils/index.d.ts +2 -1
- package/dist/cjs/thorchain-utils/index.js +2 -1
- package/dist/cjs/thorchain-utils/solana/constants.d.ts +1 -0
- package/dist/cjs/thorchain-utils/solana/constants.js +6 -0
- package/dist/cjs/thorchain-utils/solana/getSolanaTransactionFees.d.ts +2 -0
- package/dist/cjs/thorchain-utils/solana/getSolanaTransactionFees.js +41 -0
- package/dist/cjs/thorchain-utils/solana/getThorTxData.d.ts +12 -0
- package/dist/cjs/thorchain-utils/solana/getThorTxData.js +14 -0
- package/dist/cjs/thorchain-utils/solana/getUnsignedSolanaTransaction.d.ts +3 -0
- package/dist/cjs/thorchain-utils/solana/getUnsignedSolanaTransaction.js +64 -0
- package/dist/cjs/thorchain-utils/solana/index.d.ts +3 -0
- package/dist/cjs/thorchain-utils/solana/index.js +19 -0
- package/dist/cjs/tron-utils/getUnsignedTronTransaction.js +22 -2
- package/dist/cjs/types.d.ts +118 -8
- package/dist/cjs/types.js +3 -0
- package/dist/cjs/utils.d.ts +4 -3
- package/dist/cjs/utils.js +35 -7
- package/dist/esm/.tsbuildinfo +1 -1
- package/dist/esm/constants.js +42 -13
- package/dist/esm/cowswap-utils/constants.js +3 -0
- package/dist/esm/cowswap-utils/index.js +6 -0
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.js +1 -0
- package/dist/esm/swappers/AcrossSwapper/AcrossSwapper.d.ts +2 -0
- package/dist/esm/swappers/AcrossSwapper/AcrossSwapper.js +5 -0
- package/dist/esm/swappers/AcrossSwapper/constant.d.ts +9 -0
- package/dist/esm/swappers/AcrossSwapper/constant.js +44 -0
- package/dist/esm/swappers/AcrossSwapper/endpoints.d.ts +2 -0
- package/dist/esm/swappers/AcrossSwapper/endpoints.js +107 -0
- package/dist/esm/swappers/AcrossSwapper/getTradeQuote/getTradeQuote.d.ts +3 -0
- package/dist/esm/swappers/AcrossSwapper/getTradeQuote/getTradeQuote.js +27 -0
- package/dist/esm/swappers/AcrossSwapper/getTradeRate/getTradeRate.d.ts +3 -0
- package/dist/esm/swappers/AcrossSwapper/getTradeRate/getTradeRate.js +15 -0
- package/dist/esm/swappers/AcrossSwapper/index.d.ts +1 -0
- package/dist/esm/swappers/AcrossSwapper/index.js +1 -0
- package/dist/esm/swappers/AcrossSwapper/utils/acrossService.d.ts +5 -0
- package/dist/esm/swappers/AcrossSwapper/utils/acrossService.js +11 -0
- package/dist/esm/swappers/AcrossSwapper/utils/fetchAcrossTrade.d.ts +19 -0
- package/dist/esm/swappers/AcrossSwapper/utils/fetchAcrossTrade.js +23 -0
- package/dist/esm/swappers/AcrossSwapper/utils/getTrade.d.ts +11 -0
- package/dist/esm/swappers/AcrossSwapper/utils/getTrade.js +342 -0
- package/dist/esm/swappers/AcrossSwapper/utils/types.d.ts +177 -0
- package/dist/esm/swappers/AcrossSwapper/utils/types.js +13 -0
- package/dist/esm/swappers/AvnuSwapper/endpoints.js +43 -15
- package/dist/esm/swappers/AvnuSwapper/swapperApi/getTradeQuote.js +19 -5
- package/dist/esm/swappers/AvnuSwapper/swapperApi/getTradeRate.js +17 -4
- package/dist/esm/swappers/BebopSwapper/BebopSwapper.js +2 -0
- package/dist/esm/swappers/BebopSwapper/endpoints.js +36 -3
- package/dist/esm/swappers/BebopSwapper/executeSolanaMessage.d.ts +2 -0
- package/dist/esm/swappers/BebopSwapper/executeSolanaMessage.js +40 -0
- package/dist/esm/swappers/BebopSwapper/getBebopSolanaTradeQuote/getBebopSolanaTradeQuote.d.ts +4 -0
- package/dist/esm/swappers/BebopSwapper/getBebopSolanaTradeQuote/getBebopSolanaTradeQuote.js +87 -0
- package/dist/esm/swappers/BebopSwapper/getBebopSolanaTradeRate/getBebopSolanaTradeRate.d.ts +4 -0
- package/dist/esm/swappers/BebopSwapper/getBebopSolanaTradeRate/getBebopSolanaTradeRate.js +84 -0
- package/dist/esm/swappers/BebopSwapper/getBebopTradeQuote/getBebopTradeQuote.js +10 -0
- package/dist/esm/swappers/BebopSwapper/getBebopTradeRate/getBebopTradeRate.js +10 -0
- package/dist/esm/swappers/BebopSwapper/types.d.ts +49 -1
- package/dist/esm/swappers/BebopSwapper/types.js +8 -1
- package/dist/esm/swappers/BebopSwapper/utils/fetchFromBebop.d.ts +19 -1
- package/dist/esm/swappers/BebopSwapper/utils/fetchFromBebop.js +85 -2
- package/dist/esm/swappers/BebopSwapper/utils/helpers/helpers.d.ts +14 -2
- package/dist/esm/swappers/BebopSwapper/utils/helpers/helpers.js +44 -1
- package/dist/esm/swappers/ButterSwap/ButterSwap.js +2 -1
- package/dist/esm/swappers/ButterSwap/endpoints.js +56 -0
- package/dist/esm/swappers/ButterSwap/swapperApi/checkTradeStatus.js +20 -1
- package/dist/esm/swappers/ButterSwap/swapperApi/getTradeQuote.js +46 -17
- package/dist/esm/swappers/ButterSwap/swapperApi/getTradeQuote.test.js +1 -0
- package/dist/esm/swappers/ButterSwap/swapperApi/getTradeRate.js +35 -18
- package/dist/esm/swappers/ButterSwap/swapperApi/getTradeRate.test.js +2 -0
- package/dist/esm/swappers/ButterSwap/types.d.ts +1 -0
- package/dist/esm/swappers/ButterSwap/utils/helpers.js +1 -0
- package/dist/esm/swappers/ButterSwap/xhr.d.ts +2 -2
- package/dist/esm/swappers/ButterSwap/xhr.js +8 -3
- package/dist/esm/swappers/CetusSwapper/endpoints.js +3 -8
- package/dist/esm/swappers/CetusSwapper/swapperApi/getTradeQuote.js +11 -1
- package/dist/esm/swappers/CetusSwapper/swapperApi/getTradeRate.js +11 -1
- package/dist/esm/swappers/CetusSwapper/utils/helpers.d.ts +1 -1
- package/dist/esm/swappers/CetusSwapper/utils/helpers.js +1 -1
- package/dist/esm/swappers/ChainflipSwapper/constants.js +8 -4
- package/dist/esm/swappers/ChainflipSwapper/utils/getQuoteOrRate.js +29 -6
- package/dist/esm/swappers/ChainflipSwapper/utils/helpers.js +9 -3
- package/dist/esm/swappers/CowSwapper/CowSwapper.js +1 -1
- package/dist/esm/swappers/CowSwapper/getCowSwapTradeQuote/getCowSwapTradeQuote.js +11 -1
- package/dist/esm/swappers/CowSwapper/getCowSwapTradeQuote/getCowSwapTradeQuote.test.js +5 -5
- package/dist/esm/swappers/CowSwapper/getCowSwapTradeRate/getCowSwapTradeRate.js +10 -1
- package/dist/esm/swappers/CowSwapper/utils/helpers/helpers.js +9 -3
- package/dist/esm/swappers/DebridgeSwapper/DebridgeSwapper.d.ts +2 -0
- package/dist/esm/swappers/DebridgeSwapper/DebridgeSwapper.js +4 -0
- package/dist/esm/swappers/DebridgeSwapper/constant.d.ts +5 -0
- package/dist/esm/swappers/DebridgeSwapper/constant.js +30 -0
- package/dist/esm/swappers/DebridgeSwapper/endpoints.d.ts +2 -0
- package/dist/esm/swappers/DebridgeSwapper/endpoints.js +211 -0
- package/dist/esm/swappers/DebridgeSwapper/getTradeQuote/getTradeQuote.d.ts +3 -0
- package/dist/esm/swappers/DebridgeSwapper/getTradeQuote/getTradeQuote.js +27 -0
- package/dist/esm/swappers/DebridgeSwapper/getTradeRate/getTradeRate.d.ts +3 -0
- package/dist/esm/swappers/DebridgeSwapper/getTradeRate/getTradeRate.js +15 -0
- package/dist/esm/swappers/DebridgeSwapper/index.d.ts +1 -0
- package/dist/esm/swappers/DebridgeSwapper/index.js +1 -0
- package/dist/esm/swappers/DebridgeSwapper/utils/debridgeService.d.ts +5 -0
- package/dist/esm/swappers/DebridgeSwapper/utils/debridgeService.js +11 -0
- package/dist/esm/swappers/DebridgeSwapper/utils/fetchDebridgeSingleChainTrade.d.ts +16 -0
- package/dist/esm/swappers/DebridgeSwapper/utils/fetchDebridgeSingleChainTrade.js +19 -0
- package/dist/esm/swappers/DebridgeSwapper/utils/fetchDebridgeTrade.d.ts +20 -0
- package/dist/esm/swappers/DebridgeSwapper/utils/fetchDebridgeTrade.js +25 -0
- package/dist/esm/swappers/DebridgeSwapper/utils/getTrade.d.ts +11 -0
- package/dist/esm/swappers/DebridgeSwapper/utils/getTrade.js +362 -0
- package/dist/esm/swappers/DebridgeSwapper/utils/types.d.ts +155 -0
- package/dist/esm/swappers/DebridgeSwapper/utils/types.js +5 -0
- package/dist/esm/swappers/JupiterSwapper/swapperApi/getTradeQuote.js +33 -1
- package/dist/esm/swappers/JupiterSwapper/swapperApi/getTradeRate.js +9 -0
- package/dist/esm/swappers/MayachainSwapper/utils/poolAssetHelpers/poolAssetHelpers.js +1 -1
- package/dist/esm/swappers/NearIntentsSwapper/NearIntentsSwapper.js +2 -1
- package/dist/esm/swappers/NearIntentsSwapper/endpoints.js +31 -0
- package/dist/esm/swappers/NearIntentsSwapper/swapperApi/getTradeQuote.js +50 -3
- package/dist/esm/swappers/NearIntentsSwapper/swapperApi/getTradeRate.js +75 -3
- package/dist/esm/swappers/NearIntentsSwapper/types.d.ts +1 -1
- package/dist/esm/swappers/NearIntentsSwapper/types.js +6 -0
- package/dist/esm/swappers/NearIntentsSwapper/utils/helpers/helpers.js +23 -4
- package/dist/esm/swappers/PortalsSwapper/getPortalsTradeQuote/getPortalsTradeQuote.js +10 -0
- package/dist/esm/swappers/PortalsSwapper/getPortalsTradeRate/getPortalsTradeRate.js +8 -3
- package/dist/esm/swappers/RelaySwapper/constant.js +29 -3
- package/dist/esm/swappers/RelaySwapper/utils/getRelayDefaultUserAddress.d.ts +1 -1
- package/dist/esm/swappers/RelaySwapper/utils/getTrade.js +60 -10
- package/dist/esm/swappers/RelaySwapper/utils/relayTokenToAssetId.js +110 -0
- package/dist/esm/swappers/RelaySwapper/utils/types.d.ts +15 -0
- package/dist/esm/swappers/StonfiSwapper/StonfiSwapper.d.ts +2 -0
- package/dist/esm/swappers/StonfiSwapper/StonfiSwapper.js +5 -0
- package/dist/esm/swappers/StonfiSwapper/endpoints.d.ts +2 -0
- package/dist/esm/swappers/StonfiSwapper/endpoints.js +224 -0
- package/dist/esm/swappers/StonfiSwapper/index.d.ts +4 -0
- package/dist/esm/swappers/StonfiSwapper/index.js +4 -0
- package/dist/esm/swappers/StonfiSwapper/swapperApi/getTradeQuote.d.ts +2 -0
- package/dist/esm/swappers/StonfiSwapper/swapperApi/getTradeQuote.js +125 -0
- package/dist/esm/swappers/StonfiSwapper/swapperApi/getTradeRate.d.ts +2 -0
- package/dist/esm/swappers/StonfiSwapper/swapperApi/getTradeRate.js +111 -0
- package/dist/esm/swappers/StonfiSwapper/types.d.ts +60 -0
- package/dist/esm/swappers/StonfiSwapper/types.js +2 -0
- package/dist/esm/swappers/StonfiSwapper/utils/constants.d.ts +5 -0
- package/dist/esm/swappers/StonfiSwapper/utils/constants.js +5 -0
- package/dist/esm/swappers/StonfiSwapper/utils/helpers.d.ts +11 -0
- package/dist/esm/swappers/StonfiSwapper/utils/helpers.js +124 -0
- package/dist/esm/swappers/StonfiSwapper/utils/omnistonManager.d.ts +5 -0
- package/dist/esm/swappers/StonfiSwapper/utils/omnistonManager.js +17 -0
- package/dist/esm/swappers/SunioSwapper/endpoints.js +1 -1
- package/dist/esm/swappers/SunioSwapper/utils/getQuoteOrRate.js +15 -4
- package/dist/esm/swappers/ThorchainSwapper/ThorchainSwapper.js +3 -0
- package/dist/esm/swappers/ThorchainSwapper/endpoints.js +3 -1
- package/dist/esm/swappers/ThorchainSwapper/generated/generatedTradableAssetMap.json +1 -0
- package/dist/esm/swappers/ThorchainSwapper/utils/poolAssetHelpers/poolAssetHelpers.d.ts +1 -1
- package/dist/esm/swappers/ThorchainSwapper/utils/poolAssetHelpers/poolAssetHelpers.js +2 -1
- package/dist/esm/swappers/ThorchainSwapper/utils/poolAssetHelpers/poolAssetHelpers.test.js +11 -1
- package/dist/esm/swappers/ZrxSwapper/getZrxTradeQuote/getZrxTradeQuote.js +9 -0
- package/dist/esm/swappers/ZrxSwapper/getZrxTradeRate/getZrxTradeRate.js +9 -0
- package/dist/esm/swappers/ZrxSwapper/utils/helpers/helpers.d.ts +1 -1
- package/dist/esm/swappers/utils/affiliateFee.d.ts +17 -0
- package/dist/esm/swappers/utils/affiliateFee.js +39 -0
- package/dist/esm/swappers/utils/filterBuyAssetsBySellAssetId/filterBuyAssetsBySellAssetId.js +2 -5
- package/dist/esm/swappers/utils/helpers/helpers.js +4 -1
- package/dist/esm/thorchain-utils/getCallDataFromQuote.d.ts +1 -1
- package/dist/esm/thorchain-utils/getL1RateOrQuote.js +88 -10
- package/dist/esm/thorchain-utils/getQuote.js +9 -3
- package/dist/esm/thorchain-utils/index.d.ts +2 -1
- package/dist/esm/thorchain-utils/index.js +1 -0
- package/dist/esm/thorchain-utils/solana/constants.d.ts +1 -0
- package/dist/esm/thorchain-utils/solana/constants.js +3 -0
- package/dist/esm/thorchain-utils/solana/getSolanaTransactionFees.d.ts +2 -0
- package/dist/esm/thorchain-utils/solana/getSolanaTransactionFees.js +37 -0
- package/dist/esm/thorchain-utils/solana/getThorTxData.d.ts +12 -0
- package/dist/esm/thorchain-utils/solana/getThorTxData.js +10 -0
- package/dist/esm/thorchain-utils/solana/getUnsignedSolanaTransaction.d.ts +3 -0
- package/dist/esm/thorchain-utils/solana/getUnsignedSolanaTransaction.js +60 -0
- package/dist/esm/thorchain-utils/solana/index.d.ts +3 -0
- package/dist/esm/thorchain-utils/solana/index.js +3 -0
- package/dist/esm/tron-utils/getUnsignedTronTransaction.js +22 -2
- package/dist/esm/types.d.ts +118 -8
- package/dist/esm/types.js +3 -0
- package/dist/esm/utils.d.ts +4 -3
- package/dist/esm/utils.js +34 -7
- package/package.json +27 -24
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { fromAssetId, solanaChainId } from '@shapeshiftoss/caip';
|
|
1
|
+
import { fromAssetId, solanaChainId, tronChainId } from '@shapeshiftoss/caip';
|
|
2
2
|
import { chainIdToFeeAssetId } from '@shapeshiftoss/utils';
|
|
3
3
|
import { Err, Ok } from '@sniptt/monads';
|
|
4
4
|
import { zeroAddress } from 'viem';
|
|
@@ -20,7 +20,8 @@ export var ButterSwapErrorCode;
|
|
|
20
20
|
ButterSwapErrorCode[ButterSwapErrorCode["InvalidAddress"] = 2007] = "InvalidAddress";
|
|
21
21
|
})(ButterSwapErrorCode || (ButterSwapErrorCode = {}));
|
|
22
22
|
const SOLANA_NATIVE_ADDRESS = 'So11111111111111111111111111111111111111112';
|
|
23
|
-
|
|
23
|
+
const TRON_NATIVE_ADDRESS = 'T9yD14Nj9j7xAB4dbGeiX9h8unkKHxuWwb';
|
|
24
|
+
export const getButterRoute = async ({ sellAsset, buyAsset, sellAmountCryptoPrecision, slippage, affiliate, }) => {
|
|
24
25
|
const butterFromChainId = chainIdToButterSwapChainId(sellAsset.chainId);
|
|
25
26
|
const butterToChainId = chainIdToButterSwapChainId(buyAsset.chainId);
|
|
26
27
|
if (!butterFromChainId || !butterToChainId) {
|
|
@@ -37,6 +38,8 @@ export const getButterRoute = async ({ sellAsset, buyAsset, sellAmountCryptoBase
|
|
|
37
38
|
const sellAssetAddress = (() => {
|
|
38
39
|
if (sellAsset.chainId === solanaChainId && sellAssetIsNative)
|
|
39
40
|
return SOLANA_NATIVE_ADDRESS;
|
|
41
|
+
if (sellAsset.chainId === tronChainId && sellAssetIsNative)
|
|
42
|
+
return TRON_NATIVE_ADDRESS;
|
|
40
43
|
if (sellAssetIsNative)
|
|
41
44
|
return zeroAddress;
|
|
42
45
|
return sellAssetAddressRaw;
|
|
@@ -44,6 +47,8 @@ export const getButterRoute = async ({ sellAsset, buyAsset, sellAmountCryptoBase
|
|
|
44
47
|
const buyAssetAddress = (() => {
|
|
45
48
|
if (buyAsset.chainId === solanaChainId && buyAssetIsNative)
|
|
46
49
|
return SOLANA_NATIVE_ADDRESS;
|
|
50
|
+
if (buyAsset.chainId === tronChainId && buyAssetIsNative)
|
|
51
|
+
return TRON_NATIVE_ADDRESS;
|
|
47
52
|
if (buyAssetIsNative)
|
|
48
53
|
return zeroAddress;
|
|
49
54
|
return buyAssetAddressRaw;
|
|
@@ -54,7 +59,7 @@ export const getButterRoute = async ({ sellAsset, buyAsset, sellAmountCryptoBase
|
|
|
54
59
|
tokenInAddress: sellAssetAddress,
|
|
55
60
|
toChainId: butterToChainId,
|
|
56
61
|
tokenOutAddress: buyAssetAddress,
|
|
57
|
-
amount:
|
|
62
|
+
amount: sellAmountCryptoPrecision,
|
|
58
63
|
type: 'exactIn',
|
|
59
64
|
slippage,
|
|
60
65
|
entrance: 'shapeshift',
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { getProvidersExcluding } from '@cetusprotocol/aggregator-sdk';
|
|
2
|
-
import { Transaction } from '@
|
|
2
|
+
import { Transaction } from '@mysten/sui/transactions';
|
|
3
|
+
import { toAddressNList } from '@shapeshiftoss/chain-adapters';
|
|
3
4
|
import { TxStatus } from '@shapeshiftoss/unchained-client';
|
|
4
5
|
import { bnOrZero } from '@shapeshiftoss/utils';
|
|
5
6
|
import { getDefaultSlippageDecimalPercentageForSwapper } from '../../constants.js';
|
|
@@ -51,13 +52,7 @@ export const cetusApi = {
|
|
|
51
52
|
intentMessage[2] = 0;
|
|
52
53
|
intentMessage.set(transactionBytes, 3);
|
|
53
54
|
const bip44Params = adapter.getBip44Params({ accountNumber });
|
|
54
|
-
const addressNList =
|
|
55
|
-
bip44Params.purpose,
|
|
56
|
-
bip44Params.coinType,
|
|
57
|
-
bip44Params.accountNumber,
|
|
58
|
-
...(bip44Params.isChange !== undefined ? [bip44Params.isChange ? 1 : 0] : []),
|
|
59
|
-
...(bip44Params.addressIndex !== undefined ? [bip44Params.addressIndex] : []),
|
|
60
|
-
];
|
|
55
|
+
const addressNList = toAddressNList(bip44Params);
|
|
61
56
|
return {
|
|
62
57
|
addressNList,
|
|
63
58
|
intentMessageBytes: intentMessage,
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import { Transaction } from '@
|
|
1
|
+
import { Transaction } from '@mysten/sui/transactions';
|
|
2
2
|
import { bnOrZero } from '@shapeshiftoss/utils';
|
|
3
3
|
import { Err } from '@sniptt/monads';
|
|
4
4
|
import { v4 as uuid } from 'uuid';
|
|
5
5
|
import { getDefaultSlippageDecimalPercentageForSwapper } from '../../../constants.js';
|
|
6
6
|
import { SwapperName, TradeQuoteError } from '../../../types.js';
|
|
7
7
|
import { makeSwapErrorRight } from '../../../utils.js';
|
|
8
|
+
import { buildAffiliateFee } from '../../utils/affiliateFee.js';
|
|
8
9
|
import { getAggregatorClient, getSuiClient } from '../utils/helpers.js';
|
|
9
10
|
import { getCetusTradeData } from './getCetusTradeData.js';
|
|
10
11
|
export const getTradeQuote = async (input, deps) => {
|
|
@@ -78,6 +79,15 @@ export const getTradeQuote = async (input, deps) => {
|
|
|
78
79
|
sellAsset,
|
|
79
80
|
allowanceContract: '0x0',
|
|
80
81
|
estimatedExecutionTimeMs: undefined,
|
|
82
|
+
affiliateFee: buildAffiliateFee({
|
|
83
|
+
strategy: 'buy_asset',
|
|
84
|
+
affiliateBps,
|
|
85
|
+
sellAsset,
|
|
86
|
+
buyAsset,
|
|
87
|
+
sellAmountCryptoBaseUnit: sellAmount,
|
|
88
|
+
buyAmountCryptoBaseUnit: buyAmountAfterFeesCryptoBaseUnit,
|
|
89
|
+
isEstimate: true,
|
|
90
|
+
}),
|
|
81
91
|
},
|
|
82
92
|
],
|
|
83
93
|
};
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import { Transaction } from '@
|
|
1
|
+
import { Transaction } from '@mysten/sui/transactions';
|
|
2
2
|
import { bnOrZero } from '@shapeshiftoss/utils';
|
|
3
3
|
import { Err } from '@sniptt/monads';
|
|
4
4
|
import { v4 as uuid } from 'uuid';
|
|
5
5
|
import { getDefaultSlippageDecimalPercentageForSwapper } from '../../../constants.js';
|
|
6
6
|
import { SwapperName, TradeQuoteError } from '../../../types.js';
|
|
7
7
|
import { makeSwapErrorRight } from '../../../utils.js';
|
|
8
|
+
import { buildAffiliateFee } from '../../utils/affiliateFee.js';
|
|
8
9
|
import { getAggregatorClient, getSuiClient } from '../utils/helpers.js';
|
|
9
10
|
import { getCetusTradeData } from './getCetusTradeData.js';
|
|
10
11
|
export const getTradeRate = async (input, deps) => {
|
|
@@ -76,6 +77,15 @@ export const getTradeRate = async (input, deps) => {
|
|
|
76
77
|
sellAsset,
|
|
77
78
|
allowanceContract: '0x0',
|
|
78
79
|
estimatedExecutionTimeMs: undefined,
|
|
80
|
+
affiliateFee: buildAffiliateFee({
|
|
81
|
+
strategy: 'buy_asset',
|
|
82
|
+
affiliateBps,
|
|
83
|
+
sellAsset,
|
|
84
|
+
buyAsset,
|
|
85
|
+
sellAmountCryptoBaseUnit: sellAmount,
|
|
86
|
+
buyAmountCryptoBaseUnit: buyAmountAfterFeesCryptoBaseUnit,
|
|
87
|
+
isEstimate: true,
|
|
88
|
+
}),
|
|
79
89
|
},
|
|
80
90
|
],
|
|
81
91
|
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { RouterDataV3 } from '@cetusprotocol/aggregator-sdk';
|
|
2
2
|
import { AggregatorClient } from '@cetusprotocol/aggregator-sdk';
|
|
3
|
-
import { SuiClient } from '@
|
|
3
|
+
import { SuiClient } from '@mysten/sui/client';
|
|
4
4
|
import type { Asset } from '@shapeshiftoss/types';
|
|
5
5
|
export declare const getAggregatorClient: (rpcUrl: string) => AggregatorClient;
|
|
6
6
|
export declare const getSuiClient: (rpcUrl: string) => SuiClient;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { AggregatorClient, Env } from '@cetusprotocol/aggregator-sdk';
|
|
2
|
-
import { SuiClient } from '@
|
|
2
|
+
import { SuiClient } from '@mysten/sui/client';
|
|
3
3
|
import { fromAssetId } from '@shapeshiftoss/caip';
|
|
4
4
|
let suiClientInstance;
|
|
5
5
|
let aggregatorClientInstance;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { arbitrumAssetId, btcAssetId, ethAssetId, flipAssetId, solAssetId, usdcAssetId, usdcOnArbitrumOneAssetId, usdcOnSolanaAssetId, usdtAssetId, } from '@shapeshiftoss/caip';
|
|
1
|
+
import { arbitrumAssetId, btcAssetId, ethAssetId, flipAssetId, solAssetId, usdcAssetId, usdcOnArbitrumOneAssetId, usdcOnSolanaAssetId, usdtAssetId, usdtOnArbitrumOneAssetId, usdtOnSolanaAssetId, wbtcAssetId, } from '@shapeshiftoss/caip';
|
|
2
2
|
import { KnownChainIds } from '@shapeshiftoss/types';
|
|
3
3
|
import { SwapperName } from '../../types.js';
|
|
4
4
|
import { ChainflipNetwork } from './types.js';
|
|
@@ -11,10 +11,14 @@ export const ChainflipSupportedChainIds = [
|
|
|
11
11
|
KnownChainIds.SolanaMainnet,
|
|
12
12
|
];
|
|
13
13
|
export const ChainflipSupportedAssetIdsByChainId = {
|
|
14
|
-
[KnownChainIds.EthereumMainnet]: [ethAssetId, flipAssetId, usdcAssetId, usdtAssetId],
|
|
15
|
-
[KnownChainIds.ArbitrumMainnet]: [
|
|
14
|
+
[KnownChainIds.EthereumMainnet]: [ethAssetId, flipAssetId, usdcAssetId, usdtAssetId, wbtcAssetId],
|
|
15
|
+
[KnownChainIds.ArbitrumMainnet]: [
|
|
16
|
+
arbitrumAssetId,
|
|
17
|
+
usdcOnArbitrumOneAssetId,
|
|
18
|
+
usdtOnArbitrumOneAssetId,
|
|
19
|
+
],
|
|
16
20
|
[KnownChainIds.BitcoinMainnet]: [btcAssetId],
|
|
17
|
-
[KnownChainIds.SolanaMainnet]: [solAssetId, usdcOnSolanaAssetId],
|
|
21
|
+
[KnownChainIds.SolanaMainnet]: [solAssetId, usdcOnSolanaAssetId, usdtOnSolanaAssetId],
|
|
18
22
|
};
|
|
19
23
|
export const chainIdToChainflipNetwork = {
|
|
20
24
|
[KnownChainIds.EthereumMainnet]: ChainflipNetwork.Ethereum,
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { CHAIN_NAMESPACE, fromAssetId, solAssetId } from '@shapeshiftoss/caip';
|
|
2
|
-
import { assertUnreachable,
|
|
2
|
+
import { assertUnreachable, BigAmount, bnOrZero } from '@shapeshiftoss/utils';
|
|
3
3
|
import { Err, Ok } from '@sniptt/monads';
|
|
4
4
|
import { v4 as uuid } from 'uuid';
|
|
5
5
|
import { getDefaultSlippageDecimalPercentageForSwapper } from '../../../constants.js';
|
|
6
6
|
import { SwapperName, TradeQuoteError } from '../../../types.js';
|
|
7
7
|
import { createTradeAmountTooSmallErr, getInputOutputRate, makeSwapErrorRight, } from '../../../utils.js';
|
|
8
|
+
import { buildAffiliateFee } from '../../utils/affiliateFee.js';
|
|
8
9
|
import { CHAINFLIP_BOOST_SWAP_SOURCE, CHAINFLIP_DCA_BOOST_SWAP_SOURCE, CHAINFLIP_DCA_QUOTE, CHAINFLIP_DCA_SWAP_SOURCE, CHAINFLIP_REGULAR_QUOTE, CHAINFLIP_SWAP_SOURCE, usdcAsset, } from '../constants.js';
|
|
9
10
|
import { chainflipService } from './chainflipService.js';
|
|
10
11
|
import { getEvmTxFees } from './getEvmTxFees.js';
|
|
@@ -66,11 +67,11 @@ export const getQuoteOrRate = async (input, deps) => {
|
|
|
66
67
|
if (maybeQuoteResponse.isErr()) {
|
|
67
68
|
const error = maybeQuoteResponse.unwrapErr();
|
|
68
69
|
const cause = error.cause;
|
|
69
|
-
if (cause
|
|
70
|
-
cause
|
|
70
|
+
if (cause?.message?.includes('code 400') &&
|
|
71
|
+
cause?.response?.data?.detail?.includes('Amount outside asset bounds')) {
|
|
71
72
|
return Err(createTradeAmountTooSmallErr({
|
|
72
73
|
assetId: sellAsset.assetId,
|
|
73
|
-
minAmountCryptoBaseUnit: cause.response?.data
|
|
74
|
+
minAmountCryptoBaseUnit: cause.response?.data?.errors?.minimalAmountNative?.[0],
|
|
74
75
|
}));
|
|
75
76
|
}
|
|
76
77
|
return Err(makeSwapErrorRight({
|
|
@@ -199,7 +200,10 @@ export const getQuoteOrRate = async (input, deps) => {
|
|
|
199
200
|
const boostRate = getChainflipQuoteRate(singleQuoteResponse.boostQuote.ingressAmountNative, singleQuoteResponse.boostQuote.egressAmountNative);
|
|
200
201
|
// This is not really a buyAmount before fees but rather an input/output calculation to get the sell amount
|
|
201
202
|
// prorated to the buy asset price to determine price impact
|
|
202
|
-
const buyAmountBeforeFeesCryptoBaseUnit =
|
|
203
|
+
const buyAmountBeforeFeesCryptoBaseUnit = BigAmount.fromPrecision({
|
|
204
|
+
value: bnOrZero(singleQuoteResponse.boostQuote.ingressAmount).times(bnOrZero(singleQuoteResponse.estimatedPrice)),
|
|
205
|
+
precision: buyAsset.precision,
|
|
206
|
+
}).toBaseUnit();
|
|
203
207
|
const boostTradeRateOrQuote = {
|
|
204
208
|
id: uuid(),
|
|
205
209
|
rate: boostRate,
|
|
@@ -236,6 +240,14 @@ export const getQuoteOrRate = async (input, deps) => {
|
|
|
236
240
|
: undefined,
|
|
237
241
|
chainflipMaxBoostFee: getMaxBoostFee(),
|
|
238
242
|
},
|
|
243
|
+
affiliateFee: buildAffiliateFee({
|
|
244
|
+
strategy: 'buy_asset',
|
|
245
|
+
affiliateBps: commissionBps,
|
|
246
|
+
sellAsset,
|
|
247
|
+
buyAsset,
|
|
248
|
+
sellAmountCryptoBaseUnit: singleQuoteResponse.boostQuote.ingressAmountNative,
|
|
249
|
+
buyAmountCryptoBaseUnit: singleQuoteResponse.boostQuote.egressAmountNative,
|
|
250
|
+
}),
|
|
239
251
|
},
|
|
240
252
|
],
|
|
241
253
|
};
|
|
@@ -246,7 +258,10 @@ export const getQuoteOrRate = async (input, deps) => {
|
|
|
246
258
|
: '0';
|
|
247
259
|
// This is not really a buyAmount before fees but rather an input/output calculation to get the sell amount
|
|
248
260
|
// prorated to the buy asset price to determine price impact
|
|
249
|
-
const buyAmountBeforeFeesCryptoBaseUnit =
|
|
261
|
+
const buyAmountBeforeFeesCryptoBaseUnit = BigAmount.fromPrecision({
|
|
262
|
+
value: bnOrZero(singleQuoteResponse.ingressAmount).times(bnOrZero(singleQuoteResponse.estimatedPrice)),
|
|
263
|
+
precision: buyAsset.precision,
|
|
264
|
+
}).toBaseUnit();
|
|
250
265
|
const tradeRateOrQuote = {
|
|
251
266
|
id: uuid(),
|
|
252
267
|
rate,
|
|
@@ -284,6 +299,14 @@ export const getQuoteOrRate = async (input, deps) => {
|
|
|
284
299
|
: undefined,
|
|
285
300
|
chainflipMaxBoostFee: 0,
|
|
286
301
|
},
|
|
302
|
+
affiliateFee: buildAffiliateFee({
|
|
303
|
+
strategy: 'buy_asset',
|
|
304
|
+
affiliateBps: commissionBps,
|
|
305
|
+
sellAsset,
|
|
306
|
+
buyAsset,
|
|
307
|
+
sellAmountCryptoBaseUnit: singleQuoteResponse.ingressAmountNative ?? '0',
|
|
308
|
+
buyAmountCryptoBaseUnit: singleQuoteResponse.egressAmountNative ?? '0',
|
|
309
|
+
}),
|
|
287
310
|
},
|
|
288
311
|
],
|
|
289
312
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { fromAssetId } from '@shapeshiftoss/caip';
|
|
2
|
-
import { bn, bnOrZero,
|
|
2
|
+
import { BigAmount, bn, bnOrZero, isToken } from '@shapeshiftoss/utils';
|
|
3
3
|
import { Err, Ok } from '@sniptt/monads';
|
|
4
4
|
import { TradeQuoteError } from '../../../types.js';
|
|
5
5
|
import { makeSwapErrorRight } from '../../../utils.js';
|
|
@@ -15,8 +15,14 @@ export const isSupportedAssetId = (chainId, assetId) => {
|
|
|
15
15
|
return supportedAssetIds.includes(assetId);
|
|
16
16
|
};
|
|
17
17
|
export const calculateChainflipMinPrice = ({ sellAmountIncludingProtocolFeesCryptoBaseUnit, buyAmountAfterFeesCryptoBaseUnit, slippageTolerancePercentageDecimal, sellAsset, buyAsset, }) => {
|
|
18
|
-
const sellAmountCryptoPrecision = fromBaseUnit(
|
|
19
|
-
|
|
18
|
+
const sellAmountCryptoPrecision = BigAmount.fromBaseUnit({
|
|
19
|
+
value: sellAmountIncludingProtocolFeesCryptoBaseUnit,
|
|
20
|
+
precision: sellAsset.precision,
|
|
21
|
+
}).toPrecision();
|
|
22
|
+
const buyAmountCryptoPrecision = BigAmount.fromBaseUnit({
|
|
23
|
+
value: buyAmountAfterFeesCryptoBaseUnit,
|
|
24
|
+
precision: buyAsset.precision,
|
|
25
|
+
}).toPrecision();
|
|
20
26
|
const estimatedPrice = bn(buyAmountCryptoPrecision).div(sellAmountCryptoPrecision);
|
|
21
27
|
// This is called minimumPrice upstream but this really is a rate, let's not honour confusing terminology
|
|
22
28
|
const minimumRate = estimatedPrice
|
|
@@ -9,7 +9,7 @@ export const cowSwapper = {
|
|
|
9
9
|
throw Error('Missing appDataHash');
|
|
10
10
|
const signature = await signCowOrder(orderToSign, chainId, signMessage);
|
|
11
11
|
const network = assertGetCowNetwork(chainId);
|
|
12
|
-
const maybeOrdersResponse = await cowService.post(`${config.VITE_COWSWAP_BASE_URL}/${network}/api/v1/orders
|
|
12
|
+
const maybeOrdersResponse = await cowService.post(`${config.VITE_COWSWAP_BASE_URL}/${network}/api/v1/orders`, {
|
|
13
13
|
...orderToSign,
|
|
14
14
|
signingScheme: SigningScheme.EIP712,
|
|
15
15
|
signature,
|
|
@@ -8,6 +8,7 @@ import { getAffiliateAppDataFragmentByChainId, getCowNetwork, getFullAppData, }
|
|
|
8
8
|
import { COW_SWAP_NATIVE_ASSET_MARKER_ADDRESS, COW_SWAP_VAULT_RELAYER_ADDRESS, SUPPORTED_CHAIN_IDS, } from '../../../cowswap-utils/constants.js';
|
|
9
9
|
import { SwapperName, TradeQuoteError } from '../../../types.js';
|
|
10
10
|
import { createTradeAmountTooSmallErr, getInputOutputRate, makeSwapErrorRight, } from '../../../utils.js';
|
|
11
|
+
import { buildAffiliateFee } from '../../utils/affiliateFee.js';
|
|
11
12
|
import { isNativeEvmAsset } from '../../utils/helpers/helpers.js';
|
|
12
13
|
import { cowService } from '../utils/cowService.js';
|
|
13
14
|
import { assertValidTrade, getNowPlusThirtyMinutesTimestamp, getValuesFromQuoteResponse, } from '../utils/helpers/helpers.js';
|
|
@@ -39,7 +40,7 @@ export async function getCowSwapTradeQuote(input, config) {
|
|
|
39
40
|
});
|
|
40
41
|
const { appData, appDataHash } = await getFullAppData(slippageTolerancePercentageDecimal, affiliateAppDataFragment, 'market');
|
|
41
42
|
// https://api.cow.fi/docs/#/default/post_api_v1_quote
|
|
42
|
-
const maybeQuoteResponse = await cowService.post(`${config.VITE_COWSWAP_BASE_URL}/${network}/api/v1/quote
|
|
43
|
+
const maybeQuoteResponse = await cowService.post(`${config.VITE_COWSWAP_BASE_URL}/${network}/api/v1/quote`, {
|
|
43
44
|
sellToken: fromAssetId(sellAsset.assetId).assetReference,
|
|
44
45
|
buyToken,
|
|
45
46
|
receiver: receiveAddress,
|
|
@@ -113,6 +114,15 @@ export async function getCowSwapTradeQuote(input, config) {
|
|
|
113
114
|
buyAmountBeforeFeesCryptoBaseUnit,
|
|
114
115
|
buyAmountAfterFeesCryptoBaseUnit,
|
|
115
116
|
source: SwapperName.CowSwap,
|
|
117
|
+
affiliateFee: buildAffiliateFee({
|
|
118
|
+
strategy: 'buy_asset',
|
|
119
|
+
affiliateBps,
|
|
120
|
+
sellAsset,
|
|
121
|
+
buyAsset,
|
|
122
|
+
sellAmountCryptoBaseUnit: sellAmountIncludingProtocolFeesCryptoBaseUnit,
|
|
123
|
+
buyAmountCryptoBaseUnit: buyAmountAfterFeesCryptoBaseUnit,
|
|
124
|
+
isEstimate: true,
|
|
125
|
+
}),
|
|
116
126
|
buyAsset,
|
|
117
127
|
sellAsset,
|
|
118
128
|
accountNumber,
|
|
@@ -383,7 +383,7 @@ describe('getCowSwapTradeQuote', () => {
|
|
|
383
383
|
const maybeTradeQuote = await getCowSwapTradeQuote(input, MOCK_COWSWAP_CONFIG);
|
|
384
384
|
expect(maybeTradeQuote.isOk()).toBe(true);
|
|
385
385
|
expect(maybeTradeQuote.unwrap()).toEqual(expectedTradeQuoteWethToFox);
|
|
386
|
-
expect(cowService.post).toHaveBeenCalledWith('https://api.cow.fi/mainnet/api/v1/quote
|
|
386
|
+
expect(cowService.post).toHaveBeenCalledWith('https://api.cow.fi/mainnet/api/v1/quote', expectedApiInputWethToFox);
|
|
387
387
|
});
|
|
388
388
|
it('should call cowService with correct parameters, handle the fees and return the correct trade quote when buying ETH', async () => {
|
|
389
389
|
const input = {
|
|
@@ -416,7 +416,7 @@ describe('getCowSwapTradeQuote', () => {
|
|
|
416
416
|
const maybeTradeQuote = await getCowSwapTradeQuote(input, MOCK_COWSWAP_CONFIG);
|
|
417
417
|
expect(maybeTradeQuote.isOk()).toBe(true);
|
|
418
418
|
expect(maybeTradeQuote.unwrap()).toEqual(expectedTradeQuoteFoxToEth);
|
|
419
|
-
expect(cowService.post).toHaveBeenCalledWith('https://api.cow.fi/mainnet/api/v1/quote
|
|
419
|
+
expect(cowService.post).toHaveBeenCalledWith('https://api.cow.fi/mainnet/api/v1/quote', expectedApiInputFoxToEth);
|
|
420
420
|
});
|
|
421
421
|
it('should call cowService with correct parameters, handle the fees and return the correct trade quote when buying XDAI', async () => {
|
|
422
422
|
const input = {
|
|
@@ -449,7 +449,7 @@ describe('getCowSwapTradeQuote', () => {
|
|
|
449
449
|
const maybeTradeQuote = await getCowSwapTradeQuote(input, MOCK_COWSWAP_CONFIG);
|
|
450
450
|
expect(maybeTradeQuote.isOk()).toBe(true);
|
|
451
451
|
expect(maybeTradeQuote.unwrap()).toEqual(expectedTradeQuoteUsdcToXdai);
|
|
452
|
-
expect(cowService.post).toHaveBeenCalledWith('https://api.cow.fi/xdai/api/v1/quote
|
|
452
|
+
expect(cowService.post).toHaveBeenCalledWith('https://api.cow.fi/xdai/api/v1/quote', expectedApiInputUsdcGnosisToXdai);
|
|
453
453
|
});
|
|
454
454
|
it('should call cowService with correct parameters, handle the fees and return the correct trade quote when buying ETH on Arbitrum', async () => {
|
|
455
455
|
const input = {
|
|
@@ -482,7 +482,7 @@ describe('getCowSwapTradeQuote', () => {
|
|
|
482
482
|
const maybeTradeQuote = await getCowSwapTradeQuote(input, MOCK_COWSWAP_CONFIG);
|
|
483
483
|
expect(maybeTradeQuote.isOk()).toBe(true);
|
|
484
484
|
expect(maybeTradeQuote.unwrap()).toEqual(expectedTradeQuoteUsdcToEthArbitrum);
|
|
485
|
-
expect(cowService.post).toHaveBeenCalledWith('https://api.cow.fi/arbitrum_one/api/v1/quote
|
|
485
|
+
expect(cowService.post).toHaveBeenCalledWith('https://api.cow.fi/arbitrum_one/api/v1/quote', expectedApiInputUsdcToEthArbitrum);
|
|
486
486
|
});
|
|
487
487
|
it('should call cowService with correct parameters and return quote with original sellAmount when selling a very small amount of WETH', async () => {
|
|
488
488
|
const input = {
|
|
@@ -515,6 +515,6 @@ describe('getCowSwapTradeQuote', () => {
|
|
|
515
515
|
const maybeTradeQuote = await getCowSwapTradeQuote(input, MOCK_COWSWAP_CONFIG);
|
|
516
516
|
expect(maybeTradeQuote.isErr()).toBe(false);
|
|
517
517
|
expect(maybeTradeQuote.unwrap()).toEqual(expectedTradeQuoteSmallAmountWethToFox);
|
|
518
|
-
expect(cowService.post).toHaveBeenCalledWith('https://api.cow.fi/mainnet/api/v1/quote
|
|
518
|
+
expect(cowService.post).toHaveBeenCalledWith('https://api.cow.fi/mainnet/api/v1/quote', expectedApiInputSmallAmountWethToFox);
|
|
519
519
|
});
|
|
520
520
|
});
|
|
@@ -8,6 +8,7 @@ import { getAffiliateAppDataFragmentByChainId, getCowNetwork, getFullAppData, }
|
|
|
8
8
|
import { COW_SWAP_NATIVE_ASSET_MARKER_ADDRESS, COW_SWAP_VAULT_RELAYER_ADDRESS, SUPPORTED_CHAIN_IDS, } from '../../../cowswap-utils/constants.js';
|
|
9
9
|
import { SwapperName, TradeQuoteError } from '../../../types.js';
|
|
10
10
|
import { createTradeAmountTooSmallErr, getInputOutputRate, makeSwapErrorRight, } from '../../../utils.js';
|
|
11
|
+
import { buildAffiliateFee } from '../../utils/affiliateFee.js';
|
|
11
12
|
import { isNativeEvmAsset } from '../../utils/helpers/helpers.js';
|
|
12
13
|
import { cowService } from '../utils/cowService.js';
|
|
13
14
|
import { assertValidTrade, getNowPlusThirtyMinutesTimestamp, getValuesFromQuoteResponse, } from '../utils/helpers/helpers.js';
|
|
@@ -39,7 +40,7 @@ export async function getCowSwapTradeRate(input, config) {
|
|
|
39
40
|
});
|
|
40
41
|
const { appData, appDataHash } = await getFullAppData(slippageTolerancePercentageDecimal, affiliateAppDataFragment, 'market');
|
|
41
42
|
// https://api.cow.fi/docs/#/default/post_api_v1_quote
|
|
42
|
-
const maybeQuoteResponse = await cowService.post(`${config.VITE_COWSWAP_BASE_URL}/${network}/api/v1/quote
|
|
43
|
+
const maybeQuoteResponse = await cowService.post(`${config.VITE_COWSWAP_BASE_URL}/${network}/api/v1/quote`, {
|
|
43
44
|
sellToken: fromAssetId(sellAsset.assetId).assetReference,
|
|
44
45
|
buyToken,
|
|
45
46
|
receiver: receiveAddress,
|
|
@@ -113,6 +114,14 @@ export async function getCowSwapTradeRate(input, config) {
|
|
|
113
114
|
buyAmountBeforeFeesCryptoBaseUnit,
|
|
114
115
|
buyAmountAfterFeesCryptoBaseUnit,
|
|
115
116
|
source: SwapperName.CowSwap,
|
|
117
|
+
affiliateFee: buildAffiliateFee({
|
|
118
|
+
strategy: 'buy_asset',
|
|
119
|
+
affiliateBps,
|
|
120
|
+
sellAsset,
|
|
121
|
+
buyAsset,
|
|
122
|
+
sellAmountCryptoBaseUnit: sellAmountIncludingProtocolFeesCryptoBaseUnit,
|
|
123
|
+
buyAmountCryptoBaseUnit: buyAmountAfterFeesCryptoBaseUnit,
|
|
124
|
+
}),
|
|
116
125
|
buyAsset,
|
|
117
126
|
sellAsset,
|
|
118
127
|
accountNumber,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { fromAssetId } from '@shapeshiftoss/caip';
|
|
2
|
-
import { bn, bnOrZero, convertBasisPointsToDecimalPercentage, convertPrecision,
|
|
2
|
+
import { BigAmount, bn, bnOrZero, convertBasisPointsToDecimalPercentage, convertPrecision, } from '@shapeshiftoss/utils';
|
|
3
3
|
import { Err, Ok } from '@sniptt/monads';
|
|
4
4
|
import { TradeQuoteError } from '../../../../types.js';
|
|
5
5
|
import { makeSwapErrorRight } from '../../../../utils.js';
|
|
@@ -56,8 +56,14 @@ export const getValuesFromQuoteResponse = ({ buyAsset, sellAsset, response, affi
|
|
|
56
56
|
amount: buyAmountAfterAffiliateFeesCryptoBaseUnit,
|
|
57
57
|
slippageTolerancePercentageDecimal,
|
|
58
58
|
});
|
|
59
|
-
const buyAmountAfterAffiliateFeesCryptoPrecision = fromBaseUnit(
|
|
60
|
-
|
|
59
|
+
const buyAmountAfterAffiliateFeesCryptoPrecision = BigAmount.fromBaseUnit({
|
|
60
|
+
value: buyAmountAfterAffiliateFeesCryptoBaseUnit,
|
|
61
|
+
precision: buyAsset.precision,
|
|
62
|
+
}).toPrecision();
|
|
63
|
+
const sellAmountCryptoPrecision = BigAmount.fromBaseUnit({
|
|
64
|
+
value: sellAmountAfterFeesCryptoBaseUnit,
|
|
65
|
+
precision: sellAsset.precision,
|
|
66
|
+
}).toPrecision();
|
|
61
67
|
const rate = bnOrZero(buyAmountAfterAffiliateFeesCryptoPrecision)
|
|
62
68
|
.div(sellAmountCryptoPrecision)
|
|
63
69
|
.toString();
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export declare const chainIdToDebridgeChainId: Record<string, number>;
|
|
2
|
+
export declare const debridgeChainIdToChainId: import("lodash").Dictionary<string>;
|
|
3
|
+
export declare const DEBRIDGE_SUPPORTED_CHAIN_IDS: string[];
|
|
4
|
+
export declare const DEFAULT_DEBRIDGE_TOKEN_ADDRESS: "0x0000000000000000000000000000000000000000";
|
|
5
|
+
export declare const DEFAULT_DEBRIDGE_USER_ADDRESS = "0x000000000000000000000000000000000000dead";
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { arbitrumChainId, avalancheChainId, baseChainId, berachainChainId, bobChainId, bscChainId, cronosChainId, ethChainId, flowEvmChainId, gnosisChainId, hyperEvmChainId, lineaChainId, mantleChainId, megaethChainId, monadChainId, optimismChainId, plasmaChainId, polygonChainId, seiChainId, sonicChainId, storyChainId, } from '@shapeshiftoss/caip';
|
|
2
|
+
import invert from 'lodash/invert';
|
|
3
|
+
import { zeroAddress } from 'viem';
|
|
4
|
+
export const chainIdToDebridgeChainId = {
|
|
5
|
+
[ethChainId]: 1,
|
|
6
|
+
[optimismChainId]: 10,
|
|
7
|
+
[bscChainId]: 56,
|
|
8
|
+
[gnosisChainId]: 100000002,
|
|
9
|
+
[polygonChainId]: 137,
|
|
10
|
+
[monadChainId]: 100000030,
|
|
11
|
+
[hyperEvmChainId]: 100000022,
|
|
12
|
+
[seiChainId]: 100000027,
|
|
13
|
+
[baseChainId]: 8453,
|
|
14
|
+
[plasmaChainId]: 100000028,
|
|
15
|
+
[arbitrumChainId]: 42161,
|
|
16
|
+
[avalancheChainId]: 43114,
|
|
17
|
+
[mantleChainId]: 100000023,
|
|
18
|
+
[cronosChainId]: 100000019,
|
|
19
|
+
[berachainChainId]: 100000020,
|
|
20
|
+
[lineaChainId]: 59144,
|
|
21
|
+
[bobChainId]: 100000021,
|
|
22
|
+
[sonicChainId]: 100000014,
|
|
23
|
+
[storyChainId]: 100000013,
|
|
24
|
+
[flowEvmChainId]: 100000009,
|
|
25
|
+
[megaethChainId]: 100000031,
|
|
26
|
+
};
|
|
27
|
+
export const debridgeChainIdToChainId = invert(chainIdToDebridgeChainId);
|
|
28
|
+
export const DEBRIDGE_SUPPORTED_CHAIN_IDS = Object.keys(chainIdToDebridgeChainId);
|
|
29
|
+
export const DEFAULT_DEBRIDGE_TOKEN_ADDRESS = zeroAddress;
|
|
30
|
+
export const DEFAULT_DEBRIDGE_USER_ADDRESS = '0x000000000000000000000000000000000000dead';
|