@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
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.cetusApi = void 0;
|
|
4
4
|
const aggregator_sdk_1 = require("@cetusprotocol/aggregator-sdk");
|
|
5
|
-
const transactions_1 = require("@
|
|
5
|
+
const transactions_1 = require("@mysten/sui/transactions");
|
|
6
|
+
const chain_adapters_1 = require("@shapeshiftoss/chain-adapters");
|
|
6
7
|
const unchained_client_1 = require("@shapeshiftoss/unchained-client");
|
|
7
8
|
const utils_1 = require("@shapeshiftoss/utils");
|
|
8
9
|
const constants_1 = require("../../constants");
|
|
@@ -54,13 +55,7 @@ exports.cetusApi = {
|
|
|
54
55
|
intentMessage[2] = 0;
|
|
55
56
|
intentMessage.set(transactionBytes, 3);
|
|
56
57
|
const bip44Params = adapter.getBip44Params({ accountNumber });
|
|
57
|
-
const addressNList =
|
|
58
|
-
bip44Params.purpose,
|
|
59
|
-
bip44Params.coinType,
|
|
60
|
-
bip44Params.accountNumber,
|
|
61
|
-
...(bip44Params.isChange !== undefined ? [bip44Params.isChange ? 1 : 0] : []),
|
|
62
|
-
...(bip44Params.addressIndex !== undefined ? [bip44Params.addressIndex] : []),
|
|
63
|
-
];
|
|
58
|
+
const addressNList = (0, chain_adapters_1.toAddressNList)(bip44Params);
|
|
64
59
|
return {
|
|
65
60
|
addressNList,
|
|
66
61
|
intentMessageBytes: intentMessage,
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getTradeQuote = void 0;
|
|
4
|
-
const transactions_1 = require("@
|
|
4
|
+
const transactions_1 = require("@mysten/sui/transactions");
|
|
5
5
|
const utils_1 = require("@shapeshiftoss/utils");
|
|
6
6
|
const monads_1 = require("@sniptt/monads");
|
|
7
7
|
const uuid_1 = require("uuid");
|
|
8
8
|
const constants_1 = require("../../../constants");
|
|
9
9
|
const types_1 = require("../../../types");
|
|
10
10
|
const utils_2 = require("../../../utils");
|
|
11
|
+
const affiliateFee_1 = require("../../utils/affiliateFee");
|
|
11
12
|
const helpers_1 = require("../utils/helpers");
|
|
12
13
|
const getCetusTradeData_1 = require("./getCetusTradeData");
|
|
13
14
|
const getTradeQuote = async (input, deps) => {
|
|
@@ -81,6 +82,15 @@ const getTradeQuote = async (input, deps) => {
|
|
|
81
82
|
sellAsset,
|
|
82
83
|
allowanceContract: '0x0',
|
|
83
84
|
estimatedExecutionTimeMs: undefined,
|
|
85
|
+
affiliateFee: (0, affiliateFee_1.buildAffiliateFee)({
|
|
86
|
+
strategy: 'buy_asset',
|
|
87
|
+
affiliateBps,
|
|
88
|
+
sellAsset,
|
|
89
|
+
buyAsset,
|
|
90
|
+
sellAmountCryptoBaseUnit: sellAmount,
|
|
91
|
+
buyAmountCryptoBaseUnit: buyAmountAfterFeesCryptoBaseUnit,
|
|
92
|
+
isEstimate: true,
|
|
93
|
+
}),
|
|
84
94
|
},
|
|
85
95
|
],
|
|
86
96
|
};
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getTradeRate = void 0;
|
|
4
|
-
const transactions_1 = require("@
|
|
4
|
+
const transactions_1 = require("@mysten/sui/transactions");
|
|
5
5
|
const utils_1 = require("@shapeshiftoss/utils");
|
|
6
6
|
const monads_1 = require("@sniptt/monads");
|
|
7
7
|
const uuid_1 = require("uuid");
|
|
8
8
|
const constants_1 = require("../../../constants");
|
|
9
9
|
const types_1 = require("../../../types");
|
|
10
10
|
const utils_2 = require("../../../utils");
|
|
11
|
+
const affiliateFee_1 = require("../../utils/affiliateFee");
|
|
11
12
|
const helpers_1 = require("../utils/helpers");
|
|
12
13
|
const getCetusTradeData_1 = require("./getCetusTradeData");
|
|
13
14
|
const getTradeRate = async (input, deps) => {
|
|
@@ -79,6 +80,15 @@ const getTradeRate = async (input, deps) => {
|
|
|
79
80
|
sellAsset,
|
|
80
81
|
allowanceContract: '0x0',
|
|
81
82
|
estimatedExecutionTimeMs: undefined,
|
|
83
|
+
affiliateFee: (0, affiliateFee_1.buildAffiliateFee)({
|
|
84
|
+
strategy: 'buy_asset',
|
|
85
|
+
affiliateBps,
|
|
86
|
+
sellAsset,
|
|
87
|
+
buyAsset,
|
|
88
|
+
sellAmountCryptoBaseUnit: sellAmount,
|
|
89
|
+
buyAmountCryptoBaseUnit: buyAmountAfterFeesCryptoBaseUnit,
|
|
90
|
+
isEstimate: true,
|
|
91
|
+
}),
|
|
82
92
|
},
|
|
83
93
|
],
|
|
84
94
|
};
|
|
@@ -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;
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.findBestRoute = exports.getCoinType = exports.getSuiClient = exports.getAggregatorClient = void 0;
|
|
4
4
|
const aggregator_sdk_1 = require("@cetusprotocol/aggregator-sdk");
|
|
5
|
-
const client_1 = require("@
|
|
5
|
+
const client_1 = require("@mysten/sui/client");
|
|
6
6
|
const caip_1 = require("@shapeshiftoss/caip");
|
|
7
7
|
let suiClientInstance;
|
|
8
8
|
let aggregatorClientInstance;
|
|
@@ -14,10 +14,14 @@ exports.ChainflipSupportedChainIds = [
|
|
|
14
14
|
types_1.KnownChainIds.SolanaMainnet,
|
|
15
15
|
];
|
|
16
16
|
exports.ChainflipSupportedAssetIdsByChainId = {
|
|
17
|
-
[types_1.KnownChainIds.EthereumMainnet]: [caip_1.ethAssetId, caip_1.flipAssetId, caip_1.usdcAssetId, caip_1.usdtAssetId],
|
|
18
|
-
[types_1.KnownChainIds.ArbitrumMainnet]: [
|
|
17
|
+
[types_1.KnownChainIds.EthereumMainnet]: [caip_1.ethAssetId, caip_1.flipAssetId, caip_1.usdcAssetId, caip_1.usdtAssetId, caip_1.wbtcAssetId],
|
|
18
|
+
[types_1.KnownChainIds.ArbitrumMainnet]: [
|
|
19
|
+
caip_1.arbitrumAssetId,
|
|
20
|
+
caip_1.usdcOnArbitrumOneAssetId,
|
|
21
|
+
caip_1.usdtOnArbitrumOneAssetId,
|
|
22
|
+
],
|
|
19
23
|
[types_1.KnownChainIds.BitcoinMainnet]: [caip_1.btcAssetId],
|
|
20
|
-
[types_1.KnownChainIds.SolanaMainnet]: [caip_1.solAssetId, caip_1.usdcOnSolanaAssetId],
|
|
24
|
+
[types_1.KnownChainIds.SolanaMainnet]: [caip_1.solAssetId, caip_1.usdcOnSolanaAssetId, caip_1.usdtOnSolanaAssetId],
|
|
21
25
|
};
|
|
22
26
|
exports.chainIdToChainflipNetwork = {
|
|
23
27
|
[types_1.KnownChainIds.EthereumMainnet]: types_3.ChainflipNetwork.Ethereum,
|
|
@@ -8,6 +8,7 @@ const uuid_1 = require("uuid");
|
|
|
8
8
|
const constants_1 = require("../../../constants");
|
|
9
9
|
const types_1 = require("../../../types");
|
|
10
10
|
const utils_2 = require("../../../utils");
|
|
11
|
+
const affiliateFee_1 = require("../../utils/affiliateFee");
|
|
11
12
|
const constants_2 = require("../constants");
|
|
12
13
|
const chainflipService_1 = require("./chainflipService");
|
|
13
14
|
const getEvmTxFees_1 = require("./getEvmTxFees");
|
|
@@ -69,11 +70,11 @@ const getQuoteOrRate = async (input, deps) => {
|
|
|
69
70
|
if (maybeQuoteResponse.isErr()) {
|
|
70
71
|
const error = maybeQuoteResponse.unwrapErr();
|
|
71
72
|
const cause = error.cause;
|
|
72
|
-
if (cause
|
|
73
|
-
cause
|
|
73
|
+
if (cause?.message?.includes('code 400') &&
|
|
74
|
+
cause?.response?.data?.detail?.includes('Amount outside asset bounds')) {
|
|
74
75
|
return (0, monads_1.Err)((0, utils_2.createTradeAmountTooSmallErr)({
|
|
75
76
|
assetId: sellAsset.assetId,
|
|
76
|
-
minAmountCryptoBaseUnit: cause.response?.data
|
|
77
|
+
minAmountCryptoBaseUnit: cause.response?.data?.errors?.minimalAmountNative?.[0],
|
|
77
78
|
}));
|
|
78
79
|
}
|
|
79
80
|
return (0, monads_1.Err)((0, utils_2.makeSwapErrorRight)({
|
|
@@ -202,7 +203,10 @@ const getQuoteOrRate = async (input, deps) => {
|
|
|
202
203
|
const boostRate = getChainflipQuoteRate(singleQuoteResponse.boostQuote.ingressAmountNative, singleQuoteResponse.boostQuote.egressAmountNative);
|
|
203
204
|
// This is not really a buyAmount before fees but rather an input/output calculation to get the sell amount
|
|
204
205
|
// prorated to the buy asset price to determine price impact
|
|
205
|
-
const buyAmountBeforeFeesCryptoBaseUnit =
|
|
206
|
+
const buyAmountBeforeFeesCryptoBaseUnit = utils_1.BigAmount.fromPrecision({
|
|
207
|
+
value: (0, utils_1.bnOrZero)(singleQuoteResponse.boostQuote.ingressAmount).times((0, utils_1.bnOrZero)(singleQuoteResponse.estimatedPrice)),
|
|
208
|
+
precision: buyAsset.precision,
|
|
209
|
+
}).toBaseUnit();
|
|
206
210
|
const boostTradeRateOrQuote = {
|
|
207
211
|
id: (0, uuid_1.v4)(),
|
|
208
212
|
rate: boostRate,
|
|
@@ -239,6 +243,14 @@ const getQuoteOrRate = async (input, deps) => {
|
|
|
239
243
|
: undefined,
|
|
240
244
|
chainflipMaxBoostFee: getMaxBoostFee(),
|
|
241
245
|
},
|
|
246
|
+
affiliateFee: (0, affiliateFee_1.buildAffiliateFee)({
|
|
247
|
+
strategy: 'buy_asset',
|
|
248
|
+
affiliateBps: commissionBps,
|
|
249
|
+
sellAsset,
|
|
250
|
+
buyAsset,
|
|
251
|
+
sellAmountCryptoBaseUnit: singleQuoteResponse.boostQuote.ingressAmountNative,
|
|
252
|
+
buyAmountCryptoBaseUnit: singleQuoteResponse.boostQuote.egressAmountNative,
|
|
253
|
+
}),
|
|
242
254
|
},
|
|
243
255
|
],
|
|
244
256
|
};
|
|
@@ -249,7 +261,10 @@ const getQuoteOrRate = async (input, deps) => {
|
|
|
249
261
|
: '0';
|
|
250
262
|
// This is not really a buyAmount before fees but rather an input/output calculation to get the sell amount
|
|
251
263
|
// prorated to the buy asset price to determine price impact
|
|
252
|
-
const buyAmountBeforeFeesCryptoBaseUnit =
|
|
264
|
+
const buyAmountBeforeFeesCryptoBaseUnit = utils_1.BigAmount.fromPrecision({
|
|
265
|
+
value: (0, utils_1.bnOrZero)(singleQuoteResponse.ingressAmount).times((0, utils_1.bnOrZero)(singleQuoteResponse.estimatedPrice)),
|
|
266
|
+
precision: buyAsset.precision,
|
|
267
|
+
}).toBaseUnit();
|
|
253
268
|
const tradeRateOrQuote = {
|
|
254
269
|
id: (0, uuid_1.v4)(),
|
|
255
270
|
rate,
|
|
@@ -287,6 +302,14 @@ const getQuoteOrRate = async (input, deps) => {
|
|
|
287
302
|
: undefined,
|
|
288
303
|
chainflipMaxBoostFee: 0,
|
|
289
304
|
},
|
|
305
|
+
affiliateFee: (0, affiliateFee_1.buildAffiliateFee)({
|
|
306
|
+
strategy: 'buy_asset',
|
|
307
|
+
affiliateBps: commissionBps,
|
|
308
|
+
sellAsset,
|
|
309
|
+
buyAsset,
|
|
310
|
+
sellAmountCryptoBaseUnit: singleQuoteResponse.ingressAmountNative ?? '0',
|
|
311
|
+
buyAmountCryptoBaseUnit: singleQuoteResponse.egressAmountNative ?? '0',
|
|
312
|
+
}),
|
|
290
313
|
},
|
|
291
314
|
],
|
|
292
315
|
};
|
|
@@ -20,8 +20,14 @@ const isSupportedAssetId = (chainId, assetId) => {
|
|
|
20
20
|
};
|
|
21
21
|
exports.isSupportedAssetId = isSupportedAssetId;
|
|
22
22
|
const calculateChainflipMinPrice = ({ sellAmountIncludingProtocolFeesCryptoBaseUnit, buyAmountAfterFeesCryptoBaseUnit, slippageTolerancePercentageDecimal, sellAsset, buyAsset, }) => {
|
|
23
|
-
const sellAmountCryptoPrecision =
|
|
24
|
-
|
|
23
|
+
const sellAmountCryptoPrecision = utils_1.BigAmount.fromBaseUnit({
|
|
24
|
+
value: sellAmountIncludingProtocolFeesCryptoBaseUnit,
|
|
25
|
+
precision: sellAsset.precision,
|
|
26
|
+
}).toPrecision();
|
|
27
|
+
const buyAmountCryptoPrecision = utils_1.BigAmount.fromBaseUnit({
|
|
28
|
+
value: buyAmountAfterFeesCryptoBaseUnit,
|
|
29
|
+
precision: buyAsset.precision,
|
|
30
|
+
}).toPrecision();
|
|
25
31
|
const estimatedPrice = (0, utils_1.bn)(buyAmountCryptoPrecision).div(sellAmountCryptoPrecision);
|
|
26
32
|
// This is called minimumPrice upstream but this really is a rate, let's not honour confusing terminology
|
|
27
33
|
const minimumRate = estimatedPrice
|
|
@@ -12,7 +12,7 @@ exports.cowSwapper = {
|
|
|
12
12
|
throw Error('Missing appDataHash');
|
|
13
13
|
const signature = await (0, cowswap_utils_1.signCowOrder)(orderToSign, chainId, signMessage);
|
|
14
14
|
const network = (0, cowswap_utils_1.assertGetCowNetwork)(chainId);
|
|
15
|
-
const maybeOrdersResponse = await cowService_1.cowService.post(`${config.VITE_COWSWAP_BASE_URL}/${network}/api/v1/orders
|
|
15
|
+
const maybeOrdersResponse = await cowService_1.cowService.post(`${config.VITE_COWSWAP_BASE_URL}/${network}/api/v1/orders`, {
|
|
16
16
|
...orderToSign,
|
|
17
17
|
signingScheme: types_1.SigningScheme.EIP712,
|
|
18
18
|
signature,
|
|
@@ -11,6 +11,7 @@ const cowswap_utils_1 = require("../../../cowswap-utils");
|
|
|
11
11
|
const constants_2 = require("../../../cowswap-utils/constants");
|
|
12
12
|
const types_2 = require("../../../types");
|
|
13
13
|
const utils_2 = require("../../../utils");
|
|
14
|
+
const affiliateFee_1 = require("../../utils/affiliateFee");
|
|
14
15
|
const helpers_1 = require("../../utils/helpers/helpers");
|
|
15
16
|
const cowService_1 = require("../utils/cowService");
|
|
16
17
|
const helpers_2 = require("../utils/helpers/helpers");
|
|
@@ -42,7 +43,7 @@ async function getCowSwapTradeQuote(input, config) {
|
|
|
42
43
|
});
|
|
43
44
|
const { appData, appDataHash } = await (0, cowswap_utils_1.getFullAppData)(slippageTolerancePercentageDecimal, affiliateAppDataFragment, 'market');
|
|
44
45
|
// https://api.cow.fi/docs/#/default/post_api_v1_quote
|
|
45
|
-
const maybeQuoteResponse = await cowService_1.cowService.post(`${config.VITE_COWSWAP_BASE_URL}/${network}/api/v1/quote
|
|
46
|
+
const maybeQuoteResponse = await cowService_1.cowService.post(`${config.VITE_COWSWAP_BASE_URL}/${network}/api/v1/quote`, {
|
|
46
47
|
sellToken: (0, caip_1.fromAssetId)(sellAsset.assetId).assetReference,
|
|
47
48
|
buyToken,
|
|
48
49
|
receiver: receiveAddress,
|
|
@@ -116,6 +117,15 @@ async function getCowSwapTradeQuote(input, config) {
|
|
|
116
117
|
buyAmountBeforeFeesCryptoBaseUnit,
|
|
117
118
|
buyAmountAfterFeesCryptoBaseUnit,
|
|
118
119
|
source: types_2.SwapperName.CowSwap,
|
|
120
|
+
affiliateFee: (0, affiliateFee_1.buildAffiliateFee)({
|
|
121
|
+
strategy: 'buy_asset',
|
|
122
|
+
affiliateBps,
|
|
123
|
+
sellAsset,
|
|
124
|
+
buyAsset,
|
|
125
|
+
sellAmountCryptoBaseUnit: sellAmountIncludingProtocolFeesCryptoBaseUnit,
|
|
126
|
+
buyAmountCryptoBaseUnit: buyAmountAfterFeesCryptoBaseUnit,
|
|
127
|
+
isEstimate: true,
|
|
128
|
+
}),
|
|
119
129
|
buyAsset,
|
|
120
130
|
sellAsset,
|
|
121
131
|
accountNumber,
|
|
@@ -385,7 +385,7 @@ const expectedTradeQuoteSmallAmountWethToFox = {
|
|
|
385
385
|
const maybeTradeQuote = await (0, getCowSwapTradeQuote_1.getCowSwapTradeQuote)(input, MOCK_COWSWAP_CONFIG);
|
|
386
386
|
(0, vitest_1.expect)(maybeTradeQuote.isOk()).toBe(true);
|
|
387
387
|
(0, vitest_1.expect)(maybeTradeQuote.unwrap()).toEqual(expectedTradeQuoteWethToFox);
|
|
388
|
-
(0, vitest_1.expect)(cowService_1.cowService.post).toHaveBeenCalledWith('https://api.cow.fi/mainnet/api/v1/quote
|
|
388
|
+
(0, vitest_1.expect)(cowService_1.cowService.post).toHaveBeenCalledWith('https://api.cow.fi/mainnet/api/v1/quote', expectedApiInputWethToFox);
|
|
389
389
|
});
|
|
390
390
|
(0, vitest_1.it)('should call cowService with correct parameters, handle the fees and return the correct trade quote when buying ETH', async () => {
|
|
391
391
|
const input = {
|
|
@@ -418,7 +418,7 @@ const expectedTradeQuoteSmallAmountWethToFox = {
|
|
|
418
418
|
const maybeTradeQuote = await (0, getCowSwapTradeQuote_1.getCowSwapTradeQuote)(input, MOCK_COWSWAP_CONFIG);
|
|
419
419
|
(0, vitest_1.expect)(maybeTradeQuote.isOk()).toBe(true);
|
|
420
420
|
(0, vitest_1.expect)(maybeTradeQuote.unwrap()).toEqual(expectedTradeQuoteFoxToEth);
|
|
421
|
-
(0, vitest_1.expect)(cowService_1.cowService.post).toHaveBeenCalledWith('https://api.cow.fi/mainnet/api/v1/quote
|
|
421
|
+
(0, vitest_1.expect)(cowService_1.cowService.post).toHaveBeenCalledWith('https://api.cow.fi/mainnet/api/v1/quote', expectedApiInputFoxToEth);
|
|
422
422
|
});
|
|
423
423
|
(0, vitest_1.it)('should call cowService with correct parameters, handle the fees and return the correct trade quote when buying XDAI', async () => {
|
|
424
424
|
const input = {
|
|
@@ -451,7 +451,7 @@ const expectedTradeQuoteSmallAmountWethToFox = {
|
|
|
451
451
|
const maybeTradeQuote = await (0, getCowSwapTradeQuote_1.getCowSwapTradeQuote)(input, MOCK_COWSWAP_CONFIG);
|
|
452
452
|
(0, vitest_1.expect)(maybeTradeQuote.isOk()).toBe(true);
|
|
453
453
|
(0, vitest_1.expect)(maybeTradeQuote.unwrap()).toEqual(expectedTradeQuoteUsdcToXdai);
|
|
454
|
-
(0, vitest_1.expect)(cowService_1.cowService.post).toHaveBeenCalledWith('https://api.cow.fi/xdai/api/v1/quote
|
|
454
|
+
(0, vitest_1.expect)(cowService_1.cowService.post).toHaveBeenCalledWith('https://api.cow.fi/xdai/api/v1/quote', expectedApiInputUsdcGnosisToXdai);
|
|
455
455
|
});
|
|
456
456
|
(0, vitest_1.it)('should call cowService with correct parameters, handle the fees and return the correct trade quote when buying ETH on Arbitrum', async () => {
|
|
457
457
|
const input = {
|
|
@@ -484,7 +484,7 @@ const expectedTradeQuoteSmallAmountWethToFox = {
|
|
|
484
484
|
const maybeTradeQuote = await (0, getCowSwapTradeQuote_1.getCowSwapTradeQuote)(input, MOCK_COWSWAP_CONFIG);
|
|
485
485
|
(0, vitest_1.expect)(maybeTradeQuote.isOk()).toBe(true);
|
|
486
486
|
(0, vitest_1.expect)(maybeTradeQuote.unwrap()).toEqual(expectedTradeQuoteUsdcToEthArbitrum);
|
|
487
|
-
(0, vitest_1.expect)(cowService_1.cowService.post).toHaveBeenCalledWith('https://api.cow.fi/arbitrum_one/api/v1/quote
|
|
487
|
+
(0, vitest_1.expect)(cowService_1.cowService.post).toHaveBeenCalledWith('https://api.cow.fi/arbitrum_one/api/v1/quote', expectedApiInputUsdcToEthArbitrum);
|
|
488
488
|
});
|
|
489
489
|
(0, vitest_1.it)('should call cowService with correct parameters and return quote with original sellAmount when selling a very small amount of WETH', async () => {
|
|
490
490
|
const input = {
|
|
@@ -517,6 +517,6 @@ const expectedTradeQuoteSmallAmountWethToFox = {
|
|
|
517
517
|
const maybeTradeQuote = await (0, getCowSwapTradeQuote_1.getCowSwapTradeQuote)(input, MOCK_COWSWAP_CONFIG);
|
|
518
518
|
(0, vitest_1.expect)(maybeTradeQuote.isErr()).toBe(false);
|
|
519
519
|
(0, vitest_1.expect)(maybeTradeQuote.unwrap()).toEqual(expectedTradeQuoteSmallAmountWethToFox);
|
|
520
|
-
(0, vitest_1.expect)(cowService_1.cowService.post).toHaveBeenCalledWith('https://api.cow.fi/mainnet/api/v1/quote
|
|
520
|
+
(0, vitest_1.expect)(cowService_1.cowService.post).toHaveBeenCalledWith('https://api.cow.fi/mainnet/api/v1/quote', expectedApiInputSmallAmountWethToFox);
|
|
521
521
|
});
|
|
522
522
|
});
|
|
@@ -11,6 +11,7 @@ const cowswap_utils_1 = require("../../../cowswap-utils");
|
|
|
11
11
|
const constants_2 = require("../../../cowswap-utils/constants");
|
|
12
12
|
const types_2 = require("../../../types");
|
|
13
13
|
const utils_2 = require("../../../utils");
|
|
14
|
+
const affiliateFee_1 = require("../../utils/affiliateFee");
|
|
14
15
|
const helpers_1 = require("../../utils/helpers/helpers");
|
|
15
16
|
const cowService_1 = require("../utils/cowService");
|
|
16
17
|
const helpers_2 = require("../utils/helpers/helpers");
|
|
@@ -42,7 +43,7 @@ async function getCowSwapTradeRate(input, config) {
|
|
|
42
43
|
});
|
|
43
44
|
const { appData, appDataHash } = await (0, cowswap_utils_1.getFullAppData)(slippageTolerancePercentageDecimal, affiliateAppDataFragment, 'market');
|
|
44
45
|
// https://api.cow.fi/docs/#/default/post_api_v1_quote
|
|
45
|
-
const maybeQuoteResponse = await cowService_1.cowService.post(`${config.VITE_COWSWAP_BASE_URL}/${network}/api/v1/quote
|
|
46
|
+
const maybeQuoteResponse = await cowService_1.cowService.post(`${config.VITE_COWSWAP_BASE_URL}/${network}/api/v1/quote`, {
|
|
46
47
|
sellToken: (0, caip_1.fromAssetId)(sellAsset.assetId).assetReference,
|
|
47
48
|
buyToken,
|
|
48
49
|
receiver: receiveAddress,
|
|
@@ -116,6 +117,14 @@ async function getCowSwapTradeRate(input, config) {
|
|
|
116
117
|
buyAmountBeforeFeesCryptoBaseUnit,
|
|
117
118
|
buyAmountAfterFeesCryptoBaseUnit,
|
|
118
119
|
source: types_2.SwapperName.CowSwap,
|
|
120
|
+
affiliateFee: (0, affiliateFee_1.buildAffiliateFee)({
|
|
121
|
+
strategy: 'buy_asset',
|
|
122
|
+
affiliateBps,
|
|
123
|
+
sellAsset,
|
|
124
|
+
buyAsset,
|
|
125
|
+
sellAmountCryptoBaseUnit: sellAmountIncludingProtocolFeesCryptoBaseUnit,
|
|
126
|
+
buyAmountCryptoBaseUnit: buyAmountAfterFeesCryptoBaseUnit,
|
|
127
|
+
}),
|
|
119
128
|
buyAsset,
|
|
120
129
|
sellAsset,
|
|
121
130
|
accountNumber,
|
|
@@ -63,8 +63,14 @@ const getValuesFromQuoteResponse = ({ buyAsset, sellAsset, response, affiliateBp
|
|
|
63
63
|
amount: buyAmountAfterAffiliateFeesCryptoBaseUnit,
|
|
64
64
|
slippageTolerancePercentageDecimal,
|
|
65
65
|
});
|
|
66
|
-
const buyAmountAfterAffiliateFeesCryptoPrecision =
|
|
67
|
-
|
|
66
|
+
const buyAmountAfterAffiliateFeesCryptoPrecision = utils_1.BigAmount.fromBaseUnit({
|
|
67
|
+
value: buyAmountAfterAffiliateFeesCryptoBaseUnit,
|
|
68
|
+
precision: buyAsset.precision,
|
|
69
|
+
}).toPrecision();
|
|
70
|
+
const sellAmountCryptoPrecision = utils_1.BigAmount.fromBaseUnit({
|
|
71
|
+
value: sellAmountAfterFeesCryptoBaseUnit,
|
|
72
|
+
precision: sellAsset.precision,
|
|
73
|
+
}).toPrecision();
|
|
68
74
|
const rate = (0, utils_1.bnOrZero)(buyAmountAfterAffiliateFeesCryptoPrecision)
|
|
69
75
|
.div(sellAmountCryptoPrecision)
|
|
70
76
|
.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,36 @@
|
|
|
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.DEFAULT_DEBRIDGE_USER_ADDRESS = exports.DEFAULT_DEBRIDGE_TOKEN_ADDRESS = exports.DEBRIDGE_SUPPORTED_CHAIN_IDS = exports.debridgeChainIdToChainId = exports.chainIdToDebridgeChainId = void 0;
|
|
7
|
+
const caip_1 = require("@shapeshiftoss/caip");
|
|
8
|
+
const invert_1 = __importDefault(require("lodash/invert"));
|
|
9
|
+
const viem_1 = require("viem");
|
|
10
|
+
exports.chainIdToDebridgeChainId = {
|
|
11
|
+
[caip_1.ethChainId]: 1,
|
|
12
|
+
[caip_1.optimismChainId]: 10,
|
|
13
|
+
[caip_1.bscChainId]: 56,
|
|
14
|
+
[caip_1.gnosisChainId]: 100000002,
|
|
15
|
+
[caip_1.polygonChainId]: 137,
|
|
16
|
+
[caip_1.monadChainId]: 100000030,
|
|
17
|
+
[caip_1.hyperEvmChainId]: 100000022,
|
|
18
|
+
[caip_1.seiChainId]: 100000027,
|
|
19
|
+
[caip_1.baseChainId]: 8453,
|
|
20
|
+
[caip_1.plasmaChainId]: 100000028,
|
|
21
|
+
[caip_1.arbitrumChainId]: 42161,
|
|
22
|
+
[caip_1.avalancheChainId]: 43114,
|
|
23
|
+
[caip_1.mantleChainId]: 100000023,
|
|
24
|
+
[caip_1.cronosChainId]: 100000019,
|
|
25
|
+
[caip_1.berachainChainId]: 100000020,
|
|
26
|
+
[caip_1.lineaChainId]: 59144,
|
|
27
|
+
[caip_1.bobChainId]: 100000021,
|
|
28
|
+
[caip_1.sonicChainId]: 100000014,
|
|
29
|
+
[caip_1.storyChainId]: 100000013,
|
|
30
|
+
[caip_1.flowEvmChainId]: 100000009,
|
|
31
|
+
[caip_1.megaethChainId]: 100000031,
|
|
32
|
+
};
|
|
33
|
+
exports.debridgeChainIdToChainId = (0, invert_1.default)(exports.chainIdToDebridgeChainId);
|
|
34
|
+
exports.DEBRIDGE_SUPPORTED_CHAIN_IDS = Object.keys(exports.chainIdToDebridgeChainId);
|
|
35
|
+
exports.DEFAULT_DEBRIDGE_TOKEN_ADDRESS = viem_1.zeroAddress;
|
|
36
|
+
exports.DEFAULT_DEBRIDGE_USER_ADDRESS = '0x000000000000000000000000000000000000dead';
|
|
@@ -0,0 +1,217 @@
|
|
|
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.debridgeApi = void 0;
|
|
7
|
+
const chain_adapters_1 = require("@shapeshiftoss/chain-adapters");
|
|
8
|
+
const unchained_client_1 = require("@shapeshiftoss/unchained-client");
|
|
9
|
+
const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
|
10
|
+
const utils_1 = require("../../utils");
|
|
11
|
+
const getTradeQuote_1 = require("./getTradeQuote/getTradeQuote");
|
|
12
|
+
const getTradeRate_1 = require("./getTradeRate/getTradeRate");
|
|
13
|
+
const debridgeService_1 = require("./utils/debridgeService");
|
|
14
|
+
const DEBRIDGE_STATS_API_URL = 'https://stats-api.dln.trade';
|
|
15
|
+
exports.debridgeApi = {
|
|
16
|
+
getTradeQuote: (input, deps) => (0, getTradeQuote_1.getTradeQuote)(input, deps),
|
|
17
|
+
getTradeRate: (input, deps) => (0, getTradeRate_1.getTradeRate)(input, deps),
|
|
18
|
+
getEvmTransactionFees: async ({ from, stepIndex, tradeQuote, supportsEIP1559, assertGetEvmChainAdapter, }) => {
|
|
19
|
+
if (!(0, utils_1.isExecutableTradeQuote)(tradeQuote))
|
|
20
|
+
throw new Error('Unable to execute a trade rate quote');
|
|
21
|
+
const step = (0, utils_1.getExecutableTradeStep)(tradeQuote, stepIndex);
|
|
22
|
+
const { debridgeTransactionMetadata, sellAsset } = step;
|
|
23
|
+
if (!debridgeTransactionMetadata)
|
|
24
|
+
throw new Error('Missing deBridge transaction metadata');
|
|
25
|
+
const { to, value, data, gasLimit: gasLimitFromApi } = debridgeTransactionMetadata;
|
|
26
|
+
const adapter = assertGetEvmChainAdapter(sellAsset.chainId);
|
|
27
|
+
try {
|
|
28
|
+
const feeData = await chain_adapters_1.evm.getFees({ adapter, data, to, value, from, supportsEIP1559 });
|
|
29
|
+
return feeData.networkFeeCryptoBaseUnit;
|
|
30
|
+
}
|
|
31
|
+
catch (e) {
|
|
32
|
+
console.error('[deBridge] getEvmTransactionFees: gas estimation failed, using API fallback', {
|
|
33
|
+
error: e,
|
|
34
|
+
chainId: sellAsset.chainId,
|
|
35
|
+
to,
|
|
36
|
+
value,
|
|
37
|
+
});
|
|
38
|
+
if (!gasLimitFromApi)
|
|
39
|
+
throw new Error('Gas estimation failed and no API gas limit fallback');
|
|
40
|
+
const { average } = await adapter.getGasFeeData();
|
|
41
|
+
return chain_adapters_1.evm.calcNetworkFeeCryptoBaseUnit({
|
|
42
|
+
...average,
|
|
43
|
+
supportsEIP1559,
|
|
44
|
+
gasLimit: gasLimitFromApi,
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
getUnsignedEvmTransaction: async ({ from, stepIndex, tradeQuote, supportsEIP1559, assertGetEvmChainAdapter, }) => {
|
|
49
|
+
if (!(0, utils_1.isExecutableTradeQuote)(tradeQuote))
|
|
50
|
+
throw new Error('Unable to execute a trade rate quote');
|
|
51
|
+
const step = (0, utils_1.getExecutableTradeStep)(tradeQuote, stepIndex);
|
|
52
|
+
const { accountNumber, debridgeTransactionMetadata, sellAsset } = step;
|
|
53
|
+
if (!debridgeTransactionMetadata)
|
|
54
|
+
throw new Error('Missing deBridge transaction metadata');
|
|
55
|
+
const { to, value, data, gasLimit: gasLimitFromApi } = debridgeTransactionMetadata;
|
|
56
|
+
const adapter = assertGetEvmChainAdapter(sellAsset.chainId);
|
|
57
|
+
const feeData = await (async () => {
|
|
58
|
+
try {
|
|
59
|
+
const fees = await chain_adapters_1.evm.getFees({ adapter, data, to, value, from, supportsEIP1559 });
|
|
60
|
+
const result = {
|
|
61
|
+
...fees,
|
|
62
|
+
gasLimit: (0, bignumber_js_1.default)(fees.gasLimit).times('1.2').toFixed(0),
|
|
63
|
+
};
|
|
64
|
+
console.log('[deBridge] getUnsignedEvmTransaction feeData', JSON.stringify({
|
|
65
|
+
chainId: sellAsset.chainId,
|
|
66
|
+
to,
|
|
67
|
+
value,
|
|
68
|
+
supportsEIP1559,
|
|
69
|
+
feesFromEstimate: fees,
|
|
70
|
+
gasLimitWithBuffer: result.gasLimit,
|
|
71
|
+
}));
|
|
72
|
+
return result;
|
|
73
|
+
}
|
|
74
|
+
catch (e) {
|
|
75
|
+
console.error('[deBridge] getUnsignedEvmTransaction: gas estimation failed, using API fallback', { error: e, chainId: sellAsset.chainId, to, value });
|
|
76
|
+
if (!gasLimitFromApi)
|
|
77
|
+
throw new Error('Gas estimation failed and no API gas limit fallback');
|
|
78
|
+
const { average } = await adapter.getGasFeeData();
|
|
79
|
+
const networkFeeCryptoBaseUnit = chain_adapters_1.evm.calcNetworkFeeCryptoBaseUnit({
|
|
80
|
+
...average,
|
|
81
|
+
supportsEIP1559,
|
|
82
|
+
gasLimit: gasLimitFromApi,
|
|
83
|
+
});
|
|
84
|
+
const { gasPrice, maxFeePerGas, maxPriorityFeePerGas } = average;
|
|
85
|
+
if (supportsEIP1559 && maxFeePerGas && maxPriorityFeePerGas) {
|
|
86
|
+
return {
|
|
87
|
+
networkFeeCryptoBaseUnit,
|
|
88
|
+
gasLimit: gasLimitFromApi,
|
|
89
|
+
maxFeePerGas,
|
|
90
|
+
maxPriorityFeePerGas,
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
return { networkFeeCryptoBaseUnit, gasLimit: gasLimitFromApi, gasPrice };
|
|
94
|
+
}
|
|
95
|
+
})();
|
|
96
|
+
const unsignedTx = await adapter.buildCustomApiTx({
|
|
97
|
+
accountNumber,
|
|
98
|
+
data,
|
|
99
|
+
from,
|
|
100
|
+
to,
|
|
101
|
+
value,
|
|
102
|
+
...feeData,
|
|
103
|
+
});
|
|
104
|
+
return unsignedTx;
|
|
105
|
+
},
|
|
106
|
+
checkTradeStatus: async ({ txHash, chainId, address, swap, config, fetchIsSmartContractAddressQuery, assertGetEvmChainAdapter, }) => {
|
|
107
|
+
const isSameChainSwap = swap?.metadata.debridgeTransactionMetadata?.isSameChainSwap === true;
|
|
108
|
+
if (isSameChainSwap) {
|
|
109
|
+
return (0, utils_1.checkEvmSwapStatus)({
|
|
110
|
+
txHash,
|
|
111
|
+
chainId,
|
|
112
|
+
address,
|
|
113
|
+
assertGetEvmChainAdapter,
|
|
114
|
+
fetchIsSmartContractAddressQuery,
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
let resolvedTxHash = txHash;
|
|
118
|
+
if ((0, chain_adapters_1.isEvmChainId)(chainId)) {
|
|
119
|
+
const sourceTxStatus = await (0, utils_1.checkEvmSwapStatus)({
|
|
120
|
+
txHash,
|
|
121
|
+
chainId,
|
|
122
|
+
address,
|
|
123
|
+
assertGetEvmChainAdapter,
|
|
124
|
+
fetchIsSmartContractAddressQuery,
|
|
125
|
+
});
|
|
126
|
+
if (sourceTxStatus.status !== unchained_client_1.TxStatus.Confirmed)
|
|
127
|
+
return sourceTxStatus;
|
|
128
|
+
resolvedTxHash = sourceTxStatus.buyTxHash ?? txHash;
|
|
129
|
+
}
|
|
130
|
+
const maybeOrderIdsResponse = await debridgeService_1.debridgeService.get(`${DEBRIDGE_STATS_API_URL}/api/Transaction/${resolvedTxHash}/orderIds`);
|
|
131
|
+
if (maybeOrderIdsResponse.isErr()) {
|
|
132
|
+
console.error('[deBridge] checkTradeStatus: failed to fetch orderIds', {
|
|
133
|
+
error: maybeOrderIdsResponse.unwrapErr(),
|
|
134
|
+
txHash: resolvedTxHash,
|
|
135
|
+
chainId,
|
|
136
|
+
});
|
|
137
|
+
return {
|
|
138
|
+
buyTxHash: undefined,
|
|
139
|
+
status: unchained_client_1.TxStatus.Pending,
|
|
140
|
+
message: 'Waiting for order confirmation...',
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
const { data: orderIdsResponse } = maybeOrderIdsResponse.unwrap();
|
|
144
|
+
if (!orderIdsResponse.orderIds?.length) {
|
|
145
|
+
return {
|
|
146
|
+
buyTxHash: undefined,
|
|
147
|
+
status: unchained_client_1.TxStatus.Pending,
|
|
148
|
+
message: 'Waiting for order confirmation...',
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
const orderId = orderIdsResponse.orderIds[0].stringValue;
|
|
152
|
+
const maybeStatusResponse = await debridgeService_1.debridgeService.get(`${config.VITE_DEBRIDGE_API_URL}/dln/order/${orderId}/status`);
|
|
153
|
+
if (maybeStatusResponse.isErr()) {
|
|
154
|
+
console.error('[deBridge] checkTradeStatus: failed to fetch order status', {
|
|
155
|
+
error: maybeStatusResponse.unwrapErr(),
|
|
156
|
+
orderId,
|
|
157
|
+
txHash: resolvedTxHash,
|
|
158
|
+
chainId,
|
|
159
|
+
});
|
|
160
|
+
return {
|
|
161
|
+
buyTxHash: undefined,
|
|
162
|
+
status: unchained_client_1.TxStatus.Unknown,
|
|
163
|
+
message: undefined,
|
|
164
|
+
};
|
|
165
|
+
}
|
|
166
|
+
const { data: statusResponse } = maybeStatusResponse.unwrap();
|
|
167
|
+
const status = (() => {
|
|
168
|
+
switch (statusResponse.status) {
|
|
169
|
+
case 'Fulfilled':
|
|
170
|
+
case 'SentUnlock':
|
|
171
|
+
case 'ClaimedUnlock':
|
|
172
|
+
return unchained_client_1.TxStatus.Confirmed;
|
|
173
|
+
case 'Created':
|
|
174
|
+
case 'None':
|
|
175
|
+
return unchained_client_1.TxStatus.Pending;
|
|
176
|
+
case 'OrderCancelled':
|
|
177
|
+
case 'SentOrderCancel':
|
|
178
|
+
case 'ClaimedOrderCancel':
|
|
179
|
+
return unchained_client_1.TxStatus.Failed;
|
|
180
|
+
default:
|
|
181
|
+
return unchained_client_1.TxStatus.Unknown;
|
|
182
|
+
}
|
|
183
|
+
})();
|
|
184
|
+
const message = (() => {
|
|
185
|
+
switch (statusResponse.status) {
|
|
186
|
+
case 'Created':
|
|
187
|
+
case 'None':
|
|
188
|
+
return 'Order created, waiting for solver fulfillment...';
|
|
189
|
+
case 'Fulfilled':
|
|
190
|
+
return 'Order fulfilled, unlocking funds...';
|
|
191
|
+
case 'SentUnlock':
|
|
192
|
+
return 'Unlock transaction sent...';
|
|
193
|
+
case 'OrderCancelled':
|
|
194
|
+
return 'Order was cancelled';
|
|
195
|
+
case 'SentOrderCancel':
|
|
196
|
+
return 'Cancellation in progress...';
|
|
197
|
+
case 'ClaimedOrderCancel':
|
|
198
|
+
return 'Order cancelled and refunded';
|
|
199
|
+
default:
|
|
200
|
+
return undefined;
|
|
201
|
+
}
|
|
202
|
+
})();
|
|
203
|
+
const buyTxHash = await (async () => {
|
|
204
|
+
if (status !== unchained_client_1.TxStatus.Confirmed)
|
|
205
|
+
return undefined;
|
|
206
|
+
const maybeOrderDetail = await debridgeService_1.debridgeService.get(`${DEBRIDGE_STATS_API_URL}/api/Orders/${orderId}`);
|
|
207
|
+
if (maybeOrderDetail.isErr())
|
|
208
|
+
return undefined;
|
|
209
|
+
return maybeOrderDetail.unwrap().data.fulfilledDstEventMetadata?.transactionHash?.stringValue;
|
|
210
|
+
})();
|
|
211
|
+
return {
|
|
212
|
+
status,
|
|
213
|
+
buyTxHash,
|
|
214
|
+
message,
|
|
215
|
+
};
|
|
216
|
+
},
|
|
217
|
+
};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { Result } from '@sniptt/monads';
|
|
2
|
+
import type { CommonTradeQuoteInput, SwapErrorRight, SwapperDeps, TradeQuote } from '../../../types';
|
|
3
|
+
export declare const getTradeQuote: (input: CommonTradeQuoteInput, deps: SwapperDeps) => Promise<Result<TradeQuote[], SwapErrorRight>>;
|