@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
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getTradeQuote = void 0;
|
|
4
|
+
const monads_1 = require("@sniptt/monads");
|
|
5
|
+
const omniston_sdk_1 = require("@ston-fi/omniston-sdk");
|
|
6
|
+
const types_1 = require("../../../types");
|
|
7
|
+
const utils_1 = require("../../../utils");
|
|
8
|
+
const affiliateFee_1 = require("../../utils/affiliateFee");
|
|
9
|
+
const helpers_1 = require("../../utils/helpers/helpers");
|
|
10
|
+
const constants_1 = require("../utils/constants");
|
|
11
|
+
const helpers_2 = require("../utils/helpers");
|
|
12
|
+
const omnistonManager_1 = require("../utils/omnistonManager");
|
|
13
|
+
const buildStonfiSpecific = (quote, bidAssetAddress, askAssetAddress) => ({
|
|
14
|
+
quoteId: quote.quoteId,
|
|
15
|
+
resolverId: quote.resolverId,
|
|
16
|
+
resolverName: quote.resolverName,
|
|
17
|
+
tradeStartDeadline: quote.tradeStartDeadline,
|
|
18
|
+
gasBudget: quote.gasBudget,
|
|
19
|
+
bidAssetAddress: quote.bidAssetAddress ?? bidAssetAddress,
|
|
20
|
+
askAssetAddress: quote.askAssetAddress ?? askAssetAddress,
|
|
21
|
+
bidUnits: quote.bidUnits,
|
|
22
|
+
askUnits: quote.askUnits,
|
|
23
|
+
referrerAddress: quote.referrerAddress,
|
|
24
|
+
referrerFeeAsset: quote.referrerFeeAsset,
|
|
25
|
+
referrerFeeUnits: quote.referrerFeeUnits,
|
|
26
|
+
protocolFeeAsset: quote.protocolFeeAsset,
|
|
27
|
+
protocolFeeUnits: quote.protocolFeeUnits,
|
|
28
|
+
quoteTimestamp: quote.quoteTimestamp,
|
|
29
|
+
estimatedGasConsumption: quote.estimatedGasConsumption,
|
|
30
|
+
params: quote.params,
|
|
31
|
+
});
|
|
32
|
+
const getTradeQuote = async (input) => {
|
|
33
|
+
const { sellAsset, buyAsset, sellAmountIncludingProtocolFeesCryptoBaseUnit, receiveAddress, accountNumber, slippageTolerancePercentageDecimal, affiliateBps, } = input;
|
|
34
|
+
const validation = (0, helpers_2.validateTonAssets)(sellAsset, buyAsset);
|
|
35
|
+
if (!validation.isValid) {
|
|
36
|
+
return validation.error;
|
|
37
|
+
}
|
|
38
|
+
const { bidAssetAddress, askAssetAddress } = validation;
|
|
39
|
+
const omniston = omnistonManager_1.omnistonManager.getInstance();
|
|
40
|
+
try {
|
|
41
|
+
const slippageBps = (0, helpers_2.slippageDecimalToBps)(slippageTolerancePercentageDecimal, constants_1.STONFI_DEFAULT_SLIPPAGE_BPS);
|
|
42
|
+
const referrerFeeBps = (0, helpers_2.affiliateBpsToNumber)(affiliateBps);
|
|
43
|
+
const tonTreasuryAddress = (0, helpers_1.getTreasuryAddressFromChainId)(sellAsset.chainId);
|
|
44
|
+
const referrerAddress = (0, helpers_2.tonAddressToOmnistonAddress)(tonTreasuryAddress);
|
|
45
|
+
const quoteResult = await (0, helpers_2.waitForQuote)(omniston, {
|
|
46
|
+
settlementMethods: [omniston_sdk_1.SettlementMethod.SETTLEMENT_METHOD_SWAP],
|
|
47
|
+
bidAssetAddress,
|
|
48
|
+
askAssetAddress,
|
|
49
|
+
amount: { bidUnits: sellAmountIncludingProtocolFeesCryptoBaseUnit },
|
|
50
|
+
referrerAddress,
|
|
51
|
+
referrerFeeBps,
|
|
52
|
+
settlementParams: {
|
|
53
|
+
maxPriceSlippageBps: slippageBps,
|
|
54
|
+
gaslessSettlement: 'GASLESS_SETTLEMENT_PROHIBITED',
|
|
55
|
+
flexibleReferrerFee: true,
|
|
56
|
+
},
|
|
57
|
+
}, constants_1.STONFI_QUOTE_TIMEOUT_MS);
|
|
58
|
+
if (quoteResult.type === 'error') {
|
|
59
|
+
console.error('[Stonfi] Quote request error:', quoteResult.error);
|
|
60
|
+
return (0, monads_1.Err)((0, utils_1.makeSwapErrorRight)({
|
|
61
|
+
message: `[Stonfi] Connection error while fetching quote`,
|
|
62
|
+
code: types_1.TradeQuoteError.QueryFailed,
|
|
63
|
+
cause: quoteResult.error,
|
|
64
|
+
}));
|
|
65
|
+
}
|
|
66
|
+
if (quoteResult.type === 'timeout') {
|
|
67
|
+
return (0, monads_1.Err)((0, utils_1.makeSwapErrorRight)({
|
|
68
|
+
message: `[Stonfi] Quote request timed out`,
|
|
69
|
+
code: types_1.TradeQuoteError.QueryFailed,
|
|
70
|
+
}));
|
|
71
|
+
}
|
|
72
|
+
if (quoteResult.type === 'noQuote') {
|
|
73
|
+
return (0, monads_1.Err)((0, utils_1.makeSwapErrorRight)({
|
|
74
|
+
message: `[Stonfi] No quote available for this pair`,
|
|
75
|
+
code: types_1.TradeQuoteError.NoRouteFound,
|
|
76
|
+
}));
|
|
77
|
+
}
|
|
78
|
+
const quote = quoteResult.quote;
|
|
79
|
+
const buyAmountCryptoBaseUnit = quote.askUnits;
|
|
80
|
+
const networkFeeCryptoBaseUnit = quote.gasBudget;
|
|
81
|
+
const rate = (0, helpers_2.calculateRate)(buyAmountCryptoBaseUnit, sellAmountIncludingProtocolFeesCryptoBaseUnit, buyAsset.precision, sellAsset.precision);
|
|
82
|
+
const tradeQuote = {
|
|
83
|
+
id: quote.quoteId,
|
|
84
|
+
rate,
|
|
85
|
+
receiveAddress,
|
|
86
|
+
affiliateBps,
|
|
87
|
+
slippageTolerancePercentageDecimal: slippageTolerancePercentageDecimal ?? String(constants_1.STONFI_DEFAULT_SLIPPAGE_BPS / 10000),
|
|
88
|
+
quoteOrRate: 'quote',
|
|
89
|
+
swapperName: types_1.SwapperName.Stonfi,
|
|
90
|
+
steps: [
|
|
91
|
+
{
|
|
92
|
+
buyAmountBeforeFeesCryptoBaseUnit: buyAmountCryptoBaseUnit,
|
|
93
|
+
buyAmountAfterFeesCryptoBaseUnit: buyAmountCryptoBaseUnit,
|
|
94
|
+
sellAmountIncludingProtocolFeesCryptoBaseUnit,
|
|
95
|
+
feeData: {
|
|
96
|
+
networkFeeCryptoBaseUnit,
|
|
97
|
+
protocolFees: undefined,
|
|
98
|
+
},
|
|
99
|
+
rate,
|
|
100
|
+
source: types_1.SwapperName.Stonfi,
|
|
101
|
+
buyAsset,
|
|
102
|
+
sellAsset,
|
|
103
|
+
accountNumber,
|
|
104
|
+
allowanceContract: '0x0',
|
|
105
|
+
estimatedExecutionTimeMs: 30000,
|
|
106
|
+
stonfiSpecific: buildStonfiSpecific(quote, bidAssetAddress, askAssetAddress),
|
|
107
|
+
affiliateFee: (0, affiliateFee_1.buildAffiliateFee)({
|
|
108
|
+
strategy: 'buy_asset',
|
|
109
|
+
affiliateBps,
|
|
110
|
+
sellAsset,
|
|
111
|
+
buyAsset,
|
|
112
|
+
sellAmountCryptoBaseUnit: sellAmountIncludingProtocolFeesCryptoBaseUnit,
|
|
113
|
+
buyAmountCryptoBaseUnit,
|
|
114
|
+
isEstimate: true,
|
|
115
|
+
}),
|
|
116
|
+
},
|
|
117
|
+
],
|
|
118
|
+
};
|
|
119
|
+
return (0, monads_1.Ok)([tradeQuote]);
|
|
120
|
+
}
|
|
121
|
+
catch (err) {
|
|
122
|
+
return (0, monads_1.Err)((0, utils_1.makeSwapErrorRight)({
|
|
123
|
+
message: `[Stonfi] Error getting quote: ${err}`,
|
|
124
|
+
code: types_1.TradeQuoteError.QueryFailed,
|
|
125
|
+
cause: err,
|
|
126
|
+
}));
|
|
127
|
+
}
|
|
128
|
+
};
|
|
129
|
+
exports.getTradeQuote = getTradeQuote;
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getTradeRate = void 0;
|
|
4
|
+
const monads_1 = require("@sniptt/monads");
|
|
5
|
+
const omniston_sdk_1 = require("@ston-fi/omniston-sdk");
|
|
6
|
+
const types_1 = require("../../../types");
|
|
7
|
+
const utils_1 = require("../../../utils");
|
|
8
|
+
const affiliateFee_1 = require("../../utils/affiliateFee");
|
|
9
|
+
const helpers_1 = require("../../utils/helpers/helpers");
|
|
10
|
+
const constants_1 = require("../utils/constants");
|
|
11
|
+
const helpers_2 = require("../utils/helpers");
|
|
12
|
+
const omnistonManager_1 = require("../utils/omnistonManager");
|
|
13
|
+
const buildStonfiSpecific = (quote, bidAssetAddress, askAssetAddress) => ({
|
|
14
|
+
quoteId: quote.quoteId,
|
|
15
|
+
resolverId: quote.resolverId,
|
|
16
|
+
resolverName: quote.resolverName,
|
|
17
|
+
tradeStartDeadline: quote.tradeStartDeadline,
|
|
18
|
+
gasBudget: quote.gasBudget,
|
|
19
|
+
bidAssetAddress: quote.bidAssetAddress ?? bidAssetAddress,
|
|
20
|
+
askAssetAddress: quote.askAssetAddress ?? askAssetAddress,
|
|
21
|
+
bidUnits: quote.bidUnits,
|
|
22
|
+
askUnits: quote.askUnits,
|
|
23
|
+
referrerAddress: quote.referrerAddress,
|
|
24
|
+
referrerFeeAsset: quote.referrerFeeAsset,
|
|
25
|
+
referrerFeeUnits: quote.referrerFeeUnits,
|
|
26
|
+
protocolFeeAsset: quote.protocolFeeAsset,
|
|
27
|
+
protocolFeeUnits: quote.protocolFeeUnits,
|
|
28
|
+
quoteTimestamp: quote.quoteTimestamp,
|
|
29
|
+
estimatedGasConsumption: quote.estimatedGasConsumption,
|
|
30
|
+
params: quote.params,
|
|
31
|
+
});
|
|
32
|
+
const getTradeRate = async (input) => {
|
|
33
|
+
const { sellAsset, buyAsset, sellAmountIncludingProtocolFeesCryptoBaseUnit, receiveAddress, slippageTolerancePercentageDecimal, affiliateBps, } = input;
|
|
34
|
+
const validation = (0, helpers_2.validateTonAssets)(sellAsset, buyAsset);
|
|
35
|
+
if (!validation.isValid) {
|
|
36
|
+
return validation.error;
|
|
37
|
+
}
|
|
38
|
+
const { bidAssetAddress, askAssetAddress } = validation;
|
|
39
|
+
const omniston = omnistonManager_1.omnistonManager.getInstance();
|
|
40
|
+
try {
|
|
41
|
+
const slippageBps = (0, helpers_2.slippageDecimalToBps)(slippageTolerancePercentageDecimal, constants_1.STONFI_DEFAULT_SLIPPAGE_BPS);
|
|
42
|
+
const referrerFeeBps = (0, helpers_2.affiliateBpsToNumber)(affiliateBps);
|
|
43
|
+
const tonTreasuryAddress = (0, helpers_1.getTreasuryAddressFromChainId)(sellAsset.chainId);
|
|
44
|
+
const referrerAddress = (0, helpers_2.tonAddressToOmnistonAddress)(tonTreasuryAddress);
|
|
45
|
+
const quoteResult = await (0, helpers_2.waitForQuote)(omniston, {
|
|
46
|
+
settlementMethods: [omniston_sdk_1.SettlementMethod.SETTLEMENT_METHOD_SWAP],
|
|
47
|
+
bidAssetAddress,
|
|
48
|
+
askAssetAddress,
|
|
49
|
+
amount: { bidUnits: sellAmountIncludingProtocolFeesCryptoBaseUnit },
|
|
50
|
+
referrerAddress,
|
|
51
|
+
referrerFeeBps,
|
|
52
|
+
settlementParams: {
|
|
53
|
+
maxPriceSlippageBps: slippageBps,
|
|
54
|
+
gaslessSettlement: 'GASLESS_SETTLEMENT_PROHIBITED',
|
|
55
|
+
flexibleReferrerFee: true,
|
|
56
|
+
},
|
|
57
|
+
}, constants_1.STONFI_QUOTE_TIMEOUT_MS);
|
|
58
|
+
if (quoteResult.type !== 'success') {
|
|
59
|
+
return (0, monads_1.Err)((0, utils_1.makeSwapErrorRight)({
|
|
60
|
+
message: `[Stonfi] No quote available for this pair`,
|
|
61
|
+
code: types_1.TradeQuoteError.NoRouteFound,
|
|
62
|
+
}));
|
|
63
|
+
}
|
|
64
|
+
const quote = quoteResult.quote;
|
|
65
|
+
const buyAmountCryptoBaseUnit = quote.askUnits;
|
|
66
|
+
const networkFeeCryptoBaseUnit = quote.gasBudget;
|
|
67
|
+
const rate = (0, helpers_2.calculateRate)(buyAmountCryptoBaseUnit, sellAmountIncludingProtocolFeesCryptoBaseUnit, buyAsset.precision, sellAsset.precision);
|
|
68
|
+
const tradeRate = {
|
|
69
|
+
id: quote.quoteId,
|
|
70
|
+
rate,
|
|
71
|
+
receiveAddress,
|
|
72
|
+
affiliateBps,
|
|
73
|
+
slippageTolerancePercentageDecimal: slippageTolerancePercentageDecimal ?? String(constants_1.STONFI_DEFAULT_SLIPPAGE_BPS / 10000),
|
|
74
|
+
quoteOrRate: 'rate',
|
|
75
|
+
swapperName: types_1.SwapperName.Stonfi,
|
|
76
|
+
steps: [
|
|
77
|
+
{
|
|
78
|
+
buyAmountBeforeFeesCryptoBaseUnit: buyAmountCryptoBaseUnit,
|
|
79
|
+
buyAmountAfterFeesCryptoBaseUnit: buyAmountCryptoBaseUnit,
|
|
80
|
+
sellAmountIncludingProtocolFeesCryptoBaseUnit,
|
|
81
|
+
feeData: {
|
|
82
|
+
networkFeeCryptoBaseUnit,
|
|
83
|
+
protocolFees: undefined,
|
|
84
|
+
},
|
|
85
|
+
rate,
|
|
86
|
+
source: types_1.SwapperName.Stonfi,
|
|
87
|
+
buyAsset,
|
|
88
|
+
sellAsset,
|
|
89
|
+
accountNumber: undefined,
|
|
90
|
+
allowanceContract: '0x0000000000000000000000000000000000000000',
|
|
91
|
+
estimatedExecutionTimeMs: 30000,
|
|
92
|
+
stonfiSpecific: buildStonfiSpecific(quote, bidAssetAddress, askAssetAddress),
|
|
93
|
+
affiliateFee: (0, affiliateFee_1.buildAffiliateFee)({
|
|
94
|
+
strategy: 'buy_asset',
|
|
95
|
+
affiliateBps,
|
|
96
|
+
sellAsset,
|
|
97
|
+
buyAsset,
|
|
98
|
+
sellAmountCryptoBaseUnit: sellAmountIncludingProtocolFeesCryptoBaseUnit,
|
|
99
|
+
buyAmountCryptoBaseUnit,
|
|
100
|
+
isEstimate: true,
|
|
101
|
+
}),
|
|
102
|
+
},
|
|
103
|
+
],
|
|
104
|
+
};
|
|
105
|
+
return (0, monads_1.Ok)([tradeRate]);
|
|
106
|
+
}
|
|
107
|
+
catch (err) {
|
|
108
|
+
return (0, monads_1.Err)((0, utils_1.makeSwapErrorRight)({
|
|
109
|
+
message: `[Stonfi] Error getting rate: ${err}`,
|
|
110
|
+
code: types_1.TradeQuoteError.QueryFailed,
|
|
111
|
+
cause: err,
|
|
112
|
+
}));
|
|
113
|
+
}
|
|
114
|
+
};
|
|
115
|
+
exports.getTradeRate = getTradeRate;
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { KnownChainIds } from '@shapeshiftoss/types';
|
|
2
|
+
import type { Result } from '@sniptt/monads';
|
|
3
|
+
import type { Quote } from '@ston-fi/omniston-sdk';
|
|
4
|
+
import type { SwapErrorRight } from '../../types';
|
|
5
|
+
export type StonfiSupportedChainId = typeof KnownChainIds.TonMainnet;
|
|
6
|
+
export declare const stonfiSupportedChainIds: readonly [KnownChainIds.TonMainnet];
|
|
7
|
+
export type OmnistonAssetAddress = {
|
|
8
|
+
blockchain: number;
|
|
9
|
+
address: string;
|
|
10
|
+
};
|
|
11
|
+
export type TonAssetValidationResult = {
|
|
12
|
+
isValid: true;
|
|
13
|
+
bidAssetAddress: OmnistonAssetAddress;
|
|
14
|
+
askAssetAddress: OmnistonAssetAddress;
|
|
15
|
+
} | {
|
|
16
|
+
isValid: false;
|
|
17
|
+
error: Result<never, SwapErrorRight>;
|
|
18
|
+
};
|
|
19
|
+
export type QuoteResult = {
|
|
20
|
+
type: 'success';
|
|
21
|
+
quote: Quote;
|
|
22
|
+
} | {
|
|
23
|
+
type: 'noQuote';
|
|
24
|
+
} | {
|
|
25
|
+
type: 'timeout';
|
|
26
|
+
} | {
|
|
27
|
+
type: 'error';
|
|
28
|
+
error: unknown;
|
|
29
|
+
};
|
|
30
|
+
export type StonfiQuote = {
|
|
31
|
+
quoteId: string;
|
|
32
|
+
resolverId: string;
|
|
33
|
+
resolverName: string;
|
|
34
|
+
bidAssetAddress: string;
|
|
35
|
+
askAssetAddress: string;
|
|
36
|
+
bidUnits: string;
|
|
37
|
+
askUnits: string;
|
|
38
|
+
gasBudget: string;
|
|
39
|
+
estimatedGasConsumption: string;
|
|
40
|
+
tradeStartDeadline: number;
|
|
41
|
+
};
|
|
42
|
+
export type StonfiTradeSpecific = {
|
|
43
|
+
quoteId: string;
|
|
44
|
+
resolverId: string;
|
|
45
|
+
resolverName: string;
|
|
46
|
+
tradeStartDeadline: number;
|
|
47
|
+
gasBudget: string;
|
|
48
|
+
bidAssetAddress: OmnistonAssetAddress;
|
|
49
|
+
askAssetAddress: OmnistonAssetAddress;
|
|
50
|
+
bidUnits: string;
|
|
51
|
+
askUnits: string;
|
|
52
|
+
referrerAddress?: OmnistonAssetAddress;
|
|
53
|
+
referrerFeeAsset?: OmnistonAssetAddress;
|
|
54
|
+
referrerFeeUnits: string;
|
|
55
|
+
protocolFeeAsset?: OmnistonAssetAddress;
|
|
56
|
+
protocolFeeUnits: string;
|
|
57
|
+
quoteTimestamp: number;
|
|
58
|
+
estimatedGasConsumption: string;
|
|
59
|
+
params?: unknown;
|
|
60
|
+
};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { KnownChainIds } from '@shapeshiftoss/types';
|
|
2
|
+
export declare const STONFI_SUPPORTED_CHAIN_IDS: readonly [KnownChainIds.TonMainnet];
|
|
3
|
+
export declare const STONFI_WEBSOCKET_URL = "wss://omni-ws.ston.fi";
|
|
4
|
+
export declare const STONFI_DEFAULT_SLIPPAGE_BPS = 100;
|
|
5
|
+
export declare const STONFI_QUOTE_TIMEOUT_MS = 30000;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.STONFI_QUOTE_TIMEOUT_MS = exports.STONFI_DEFAULT_SLIPPAGE_BPS = exports.STONFI_WEBSOCKET_URL = exports.STONFI_SUPPORTED_CHAIN_IDS = void 0;
|
|
4
|
+
const types_1 = require("@shapeshiftoss/types");
|
|
5
|
+
exports.STONFI_SUPPORTED_CHAIN_IDS = [types_1.KnownChainIds.TonMainnet];
|
|
6
|
+
exports.STONFI_WEBSOCKET_URL = 'wss://omni-ws.ston.fi';
|
|
7
|
+
exports.STONFI_DEFAULT_SLIPPAGE_BPS = 100;
|
|
8
|
+
exports.STONFI_QUOTE_TIMEOUT_MS = 30000;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Asset } from '@shapeshiftoss/types';
|
|
2
|
+
import type { Omniston, QuoteRequest } from '@ston-fi/omniston-sdk';
|
|
3
|
+
import type { OmnistonAssetAddress, QuoteResult, TonAssetValidationResult } from '../types';
|
|
4
|
+
export declare const isTonAsset: (asset: Asset) => boolean;
|
|
5
|
+
export declare const assetToOmnistonAddress: (asset: Asset) => OmnistonAssetAddress | null;
|
|
6
|
+
export declare const validateTonAssets: (sellAsset: Asset, buyAsset: Asset) => TonAssetValidationResult;
|
|
7
|
+
export declare const calculateRate: (buyAmountCryptoBaseUnit: string, sellAmountCryptoBaseUnit: string, buyAssetPrecision: number, sellAssetPrecision: number) => string;
|
|
8
|
+
export declare const slippageDecimalToBps: (slippageTolerancePercentageDecimal: string | undefined, defaultSlippageBps: number) => number;
|
|
9
|
+
export declare const tonAddressToOmnistonAddress: (address: string) => OmnistonAssetAddress;
|
|
10
|
+
export declare const affiliateBpsToNumber: (affiliateBps: string | undefined) => number;
|
|
11
|
+
export declare const waitForQuote: (omniston: Omniston, request: QuoteRequest, timeoutMs: number) => Promise<QuoteResult>;
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.waitForQuote = exports.affiliateBpsToNumber = exports.tonAddressToOmnistonAddress = exports.slippageDecimalToBps = exports.calculateRate = exports.validateTonAssets = exports.assetToOmnistonAddress = exports.isTonAsset = void 0;
|
|
4
|
+
const caip_1 = require("@shapeshiftoss/caip");
|
|
5
|
+
const types_1 = require("@shapeshiftoss/types");
|
|
6
|
+
const utils_1 = require("@shapeshiftoss/utils");
|
|
7
|
+
const monads_1 = require("@sniptt/monads");
|
|
8
|
+
const omniston_sdk_1 = require("@ston-fi/omniston-sdk");
|
|
9
|
+
const types_2 = require("../../../types");
|
|
10
|
+
const utils_2 = require("../../../utils");
|
|
11
|
+
const isTonAsset = (asset) => {
|
|
12
|
+
return asset.chainId === types_1.KnownChainIds.TonMainnet;
|
|
13
|
+
};
|
|
14
|
+
exports.isTonAsset = isTonAsset;
|
|
15
|
+
const assetToOmnistonAddress = (asset) => {
|
|
16
|
+
if (!(0, exports.isTonAsset)(asset))
|
|
17
|
+
return null;
|
|
18
|
+
const { assetNamespace, assetReference } = (0, caip_1.fromAssetId)(asset.assetId);
|
|
19
|
+
if (assetNamespace === 'slip44') {
|
|
20
|
+
return {
|
|
21
|
+
blockchain: omniston_sdk_1.Blockchain.TON,
|
|
22
|
+
address: 'EQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM9c',
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
if (assetNamespace === 'jetton') {
|
|
26
|
+
return { blockchain: omniston_sdk_1.Blockchain.TON, address: assetReference };
|
|
27
|
+
}
|
|
28
|
+
return null;
|
|
29
|
+
};
|
|
30
|
+
exports.assetToOmnistonAddress = assetToOmnistonAddress;
|
|
31
|
+
const validateTonAssets = (sellAsset, buyAsset) => {
|
|
32
|
+
if (sellAsset.chainId !== types_1.KnownChainIds.TonMainnet) {
|
|
33
|
+
return {
|
|
34
|
+
isValid: false,
|
|
35
|
+
error: (0, monads_1.Err)((0, utils_2.makeSwapErrorRight)({
|
|
36
|
+
message: `[Stonfi] Unsupported sell asset chain: ${sellAsset.chainId}`,
|
|
37
|
+
code: types_2.TradeQuoteError.UnsupportedChain,
|
|
38
|
+
})),
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
if (buyAsset.chainId !== types_1.KnownChainIds.TonMainnet) {
|
|
42
|
+
return {
|
|
43
|
+
isValid: false,
|
|
44
|
+
error: (0, monads_1.Err)((0, utils_2.makeSwapErrorRight)({
|
|
45
|
+
message: `[Stonfi] Cross-chain swaps not supported`,
|
|
46
|
+
code: types_2.TradeQuoteError.CrossChainNotSupported,
|
|
47
|
+
})),
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
const bidAssetAddress = (0, exports.assetToOmnistonAddress)(sellAsset);
|
|
51
|
+
const askAssetAddress = (0, exports.assetToOmnistonAddress)(buyAsset);
|
|
52
|
+
if (!bidAssetAddress || !askAssetAddress) {
|
|
53
|
+
return {
|
|
54
|
+
isValid: false,
|
|
55
|
+
error: (0, monads_1.Err)((0, utils_2.makeSwapErrorRight)({
|
|
56
|
+
message: `[Stonfi] Unable to convert assets to Omniston addresses`,
|
|
57
|
+
code: types_2.TradeQuoteError.UnsupportedTradePair,
|
|
58
|
+
})),
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
return {
|
|
62
|
+
isValid: true,
|
|
63
|
+
bidAssetAddress,
|
|
64
|
+
askAssetAddress,
|
|
65
|
+
};
|
|
66
|
+
};
|
|
67
|
+
exports.validateTonAssets = validateTonAssets;
|
|
68
|
+
const calculateRate = (buyAmountCryptoBaseUnit, sellAmountCryptoBaseUnit, buyAssetPrecision, sellAssetPrecision) => {
|
|
69
|
+
if ((0, utils_1.bn)(buyAmountCryptoBaseUnit).gt(0) && (0, utils_1.bn)(sellAmountCryptoBaseUnit).gt(0)) {
|
|
70
|
+
return (0, utils_1.convertPrecision)({
|
|
71
|
+
value: buyAmountCryptoBaseUnit,
|
|
72
|
+
inputExponent: buyAssetPrecision,
|
|
73
|
+
outputExponent: sellAssetPrecision,
|
|
74
|
+
})
|
|
75
|
+
.dividedBy((0, utils_1.bn)(sellAmountCryptoBaseUnit))
|
|
76
|
+
.toFixed();
|
|
77
|
+
}
|
|
78
|
+
return '0';
|
|
79
|
+
};
|
|
80
|
+
exports.calculateRate = calculateRate;
|
|
81
|
+
const slippageDecimalToBps = (slippageTolerancePercentageDecimal, defaultSlippageBps) => {
|
|
82
|
+
if (!slippageTolerancePercentageDecimal) {
|
|
83
|
+
return defaultSlippageBps;
|
|
84
|
+
}
|
|
85
|
+
const parsed = parseFloat(slippageTolerancePercentageDecimal);
|
|
86
|
+
if (Number.isNaN(parsed) || !Number.isFinite(parsed) || parsed < 0) {
|
|
87
|
+
return defaultSlippageBps;
|
|
88
|
+
}
|
|
89
|
+
return Math.round(parsed * 10000);
|
|
90
|
+
};
|
|
91
|
+
exports.slippageDecimalToBps = slippageDecimalToBps;
|
|
92
|
+
const tonAddressToOmnistonAddress = (address) => {
|
|
93
|
+
return {
|
|
94
|
+
blockchain: omniston_sdk_1.Blockchain.TON,
|
|
95
|
+
address,
|
|
96
|
+
};
|
|
97
|
+
};
|
|
98
|
+
exports.tonAddressToOmnistonAddress = tonAddressToOmnistonAddress;
|
|
99
|
+
const affiliateBpsToNumber = (affiliateBps) => {
|
|
100
|
+
if (!affiliateBps)
|
|
101
|
+
return 0;
|
|
102
|
+
const parsed = parseInt(affiliateBps, 10);
|
|
103
|
+
if (Number.isNaN(parsed) || !Number.isFinite(parsed) || parsed < 0)
|
|
104
|
+
return 0;
|
|
105
|
+
return parsed;
|
|
106
|
+
};
|
|
107
|
+
exports.affiliateBpsToNumber = affiliateBpsToNumber;
|
|
108
|
+
const waitForQuote = (omniston, request, timeoutMs) => {
|
|
109
|
+
return new Promise(resolve => {
|
|
110
|
+
const timer = setTimeout(() => {
|
|
111
|
+
subscription.unsubscribe();
|
|
112
|
+
resolve({ type: 'timeout' });
|
|
113
|
+
}, timeoutMs);
|
|
114
|
+
const subscription = omniston.requestForQuote(request).subscribe({
|
|
115
|
+
next: (event) => {
|
|
116
|
+
if (event.type === 'quoteUpdated' && event.quote) {
|
|
117
|
+
clearTimeout(timer);
|
|
118
|
+
subscription.unsubscribe();
|
|
119
|
+
resolve({ type: 'success', quote: event.quote });
|
|
120
|
+
}
|
|
121
|
+
else if (event.type === 'noQuote') {
|
|
122
|
+
clearTimeout(timer);
|
|
123
|
+
subscription.unsubscribe();
|
|
124
|
+
resolve({ type: 'noQuote' });
|
|
125
|
+
}
|
|
126
|
+
},
|
|
127
|
+
error: err => {
|
|
128
|
+
clearTimeout(timer);
|
|
129
|
+
subscription.unsubscribe();
|
|
130
|
+
resolve({ type: 'error', error: err });
|
|
131
|
+
},
|
|
132
|
+
});
|
|
133
|
+
});
|
|
134
|
+
};
|
|
135
|
+
exports.waitForQuote = waitForQuote;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.omnistonManager = void 0;
|
|
4
|
+
const omniston_sdk_1 = require("@ston-fi/omniston-sdk");
|
|
5
|
+
const constants_1 = require("./constants");
|
|
6
|
+
let cachedOmniston = null;
|
|
7
|
+
exports.omnistonManager = {
|
|
8
|
+
getInstance: () => {
|
|
9
|
+
if (!cachedOmniston) {
|
|
10
|
+
cachedOmniston = new omniston_sdk_1.Omniston({ apiUrl: constants_1.STONFI_WEBSOCKET_URL });
|
|
11
|
+
}
|
|
12
|
+
return cachedOmniston;
|
|
13
|
+
},
|
|
14
|
+
disconnect: () => {
|
|
15
|
+
if (cachedOmniston) {
|
|
16
|
+
cachedOmniston.close();
|
|
17
|
+
cachedOmniston = null;
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
};
|
|
@@ -46,7 +46,7 @@ exports.sunioApi = {
|
|
|
46
46
|
const tronWeb = new tronweb_1.TronWeb({
|
|
47
47
|
fullHost: rpcUrl,
|
|
48
48
|
});
|
|
49
|
-
const routeParams = (0, buildSwapRouteParameters_1.buildSwapRouteParameters)(sunioMetadata.route, step.sellAmountIncludingProtocolFeesCryptoBaseUnit, step.buyAmountAfterFeesCryptoBaseUnit,
|
|
49
|
+
const routeParams = (0, buildSwapRouteParameters_1.buildSwapRouteParameters)(sunioMetadata.route, step.sellAmountIncludingProtocolFeesCryptoBaseUnit, step.buyAmountAfterFeesCryptoBaseUnit, tradeQuote.receiveAddress, slippageTolerancePercentageDecimal);
|
|
50
50
|
const parameters = [
|
|
51
51
|
{ type: 'address[]', value: routeParams.path },
|
|
52
52
|
{ type: 'string[]', value: routeParams.poolVersion },
|
|
@@ -7,6 +7,7 @@ const monads_1 = require("@sniptt/monads");
|
|
|
7
7
|
const tronweb_1 = require("tronweb");
|
|
8
8
|
const types_1 = require("../../../types");
|
|
9
9
|
const utils_2 = require("../../../utils");
|
|
10
|
+
const affiliateFee_1 = require("../../utils/affiliateFee");
|
|
10
11
|
const constants_1 = require("./constants");
|
|
11
12
|
const fetchFromSunio_1 = require("./fetchFromSunio");
|
|
12
13
|
const helpers_1 = require("./helpers/helpers");
|
|
@@ -136,9 +137,10 @@ async function getQuoteOrRate(input, deps) {
|
|
|
136
137
|
}
|
|
137
138
|
}
|
|
138
139
|
}
|
|
139
|
-
const buyAmountCryptoBaseUnit =
|
|
140
|
-
.
|
|
141
|
-
.
|
|
140
|
+
const buyAmountCryptoBaseUnit = utils_1.BigAmount.fromPrecision({
|
|
141
|
+
value: bestRoute.amountOut,
|
|
142
|
+
precision: buyAsset.precision,
|
|
143
|
+
}).toBaseUnit();
|
|
142
144
|
// Calculate protocol fees only for quotes
|
|
143
145
|
const protocolFeeCryptoBaseUnit = isQuote
|
|
144
146
|
? (0, utils_1.bn)(bestRoute.fee).times(sellAmountIncludingProtocolFeesCryptoBaseUnit).toFixed(0)
|
|
@@ -186,6 +188,15 @@ async function getQuoteOrRate(input, deps) {
|
|
|
186
188
|
route: bestRoute,
|
|
187
189
|
},
|
|
188
190
|
}),
|
|
191
|
+
affiliateFee: (0, affiliateFee_1.buildAffiliateFee)({
|
|
192
|
+
strategy: 'buy_asset',
|
|
193
|
+
affiliateBps,
|
|
194
|
+
sellAsset,
|
|
195
|
+
buyAsset,
|
|
196
|
+
sellAmountCryptoBaseUnit: sellAmountIncludingProtocolFeesCryptoBaseUnit,
|
|
197
|
+
buyAmountCryptoBaseUnit: buyAmountAfterFeesCryptoBaseUnit,
|
|
198
|
+
isEstimate: true,
|
|
199
|
+
}),
|
|
189
200
|
},
|
|
190
201
|
],
|
|
191
202
|
swapperName: types_1.SwapperName.Sunio,
|
|
@@ -10,6 +10,9 @@ exports.thorchainSwapper = {
|
|
|
10
10
|
executeUtxoTransaction: (txToSign, { signAndBroadcastTransaction }) => {
|
|
11
11
|
return signAndBroadcastTransaction(txToSign);
|
|
12
12
|
},
|
|
13
|
+
executeSolanaTransaction: (txToSign, { signAndBroadcastTransaction }) => {
|
|
14
|
+
return signAndBroadcastTransaction(txToSign);
|
|
15
|
+
},
|
|
13
16
|
executeTronTransaction: (txToSign, { signAndBroadcastTransaction }) => {
|
|
14
17
|
return signAndBroadcastTransaction(txToSign);
|
|
15
18
|
},
|
|
@@ -15,6 +15,8 @@ exports.thorchainApi = {
|
|
|
15
15
|
getEvmTransactionFees: input => thorchain_utils_1.evm.getEvmTransactionFees(input, swapperName),
|
|
16
16
|
getUnsignedUtxoTransaction: input => thorchain_utils_1.utxo.getUnsignedUtxoTransaction(input, swapperName),
|
|
17
17
|
getUtxoTransactionFees: input => thorchain_utils_1.utxo.getUtxoTransactionFees(input, swapperName),
|
|
18
|
+
getUnsignedSolanaTransaction: input => thorchain_utils_1.solana.getUnsignedSolanaTransaction(input, swapperName),
|
|
19
|
+
getSolanaTransactionFees: input => thorchain_utils_1.solana.getSolanaTransactionFees(input, swapperName),
|
|
18
20
|
getUnsignedTronTransaction: input => thorchain_utils_1.tron.getUnsignedTronTransaction(input, swapperName),
|
|
19
21
|
getTronTransactionFees: input => thorchain_utils_1.tron.getTronTransactionFees(input, swapperName),
|
|
20
22
|
getUnsignedCosmosSdkTransaction: async ({ tradeQuote, stepIndex, from, config, assertGetCosmosSdkChainAdapter, }) => {
|
|
@@ -37,6 +37,7 @@
|
|
|
37
37
|
"ETH.YFI-0X0BC529C00C6401AEF6D220BE8C6EA1667F6AD93E": "eip155:1/erc20:0x0bc529c00c6401aef6d220be8c6ea1667f6ad93e",
|
|
38
38
|
"GAIA.ATOM": "cosmos:cosmoshub-4/slip44:118",
|
|
39
39
|
"LTC.LTC": "bip122:12a765e31ffd4059bada1e25190f6e98/slip44:2",
|
|
40
|
+
"SOL.SOL": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp/slip44:501",
|
|
40
41
|
"THOR.RUJI": "cosmos:thorchain-1/slip44:ruji",
|
|
41
42
|
"THOR.TCY": "cosmos:thorchain-1/slip44:tcy",
|
|
42
43
|
"TRON.TRX": "tron:0x2b6653dc/slip44:195",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { AssetId } from '@shapeshiftoss/caip';
|
|
2
|
-
export declare const assetIdToThorPoolAssetIdMap:
|
|
2
|
+
export declare const assetIdToThorPoolAssetIdMap: Record<string, string>;
|
|
3
3
|
export declare const thorPoolAssetIdToAssetId: (id: string) => AssetId | undefined;
|
|
4
4
|
export declare const assetIdToThorPoolAssetId: ({ assetId }: {
|
|
5
5
|
assetId: AssetId;
|
|
@@ -8,7 +8,8 @@ const invert_1 = __importDefault(require("lodash/invert"));
|
|
|
8
8
|
const generatedTradableAssetMap_json_1 = __importDefault(require("../../generated/generatedTradableAssetMap.json"));
|
|
9
9
|
const thorPoolIdAssetIdSymbolMap = generatedTradableAssetMap_json_1.default;
|
|
10
10
|
exports.assetIdToThorPoolAssetIdMap = (0, invert_1.default)(thorPoolIdAssetIdSymbolMap);
|
|
11
|
+
const assetIdToThorPoolAssetIdMapLower = Object.fromEntries(Object.entries(exports.assetIdToThorPoolAssetIdMap).map(([k, v]) => [k.toLowerCase(), v]));
|
|
11
12
|
const thorPoolAssetIdToAssetId = (id) => thorPoolIdAssetIdSymbolMap[id.toUpperCase()];
|
|
12
13
|
exports.thorPoolAssetIdToAssetId = thorPoolAssetIdToAssetId;
|
|
13
|
-
const assetIdToThorPoolAssetId = ({ assetId }) =>
|
|
14
|
+
const assetIdToThorPoolAssetId = ({ assetId }) => assetIdToThorPoolAssetIdMapLower[assetId.toLowerCase()];
|
|
14
15
|
exports.assetIdToThorPoolAssetId = assetIdToThorPoolAssetId;
|
|
@@ -18,6 +18,10 @@ const poolAssetHelpers_1 = require("./poolAssetHelpers");
|
|
|
18
18
|
const result = (0, poolAssetHelpers_1.thorPoolAssetIdToAssetId)('ETH.USDC-0XA0B86991C6218B36C1D19D4A2E9EB0CE3606EB48');
|
|
19
19
|
(0, vitest_1.expect)(result).toEqual(usdcAssetId);
|
|
20
20
|
});
|
|
21
|
+
(0, vitest_1.it)('returns Solana assetId when poolAssetId is SOL.SOL', () => {
|
|
22
|
+
const result = (0, poolAssetHelpers_1.thorPoolAssetIdToAssetId)('SOL.SOL');
|
|
23
|
+
(0, vitest_1.expect)(result).toEqual(caip_1.solAssetId);
|
|
24
|
+
});
|
|
21
25
|
(0, vitest_1.it)('returns undefined for an asset we dont support', () => {
|
|
22
26
|
const result = (0, poolAssetHelpers_1.thorPoolAssetIdToAssetId)('BNB.AVA-645');
|
|
23
27
|
(0, vitest_1.expect)(result).toEqual(undefined);
|
|
@@ -46,6 +50,12 @@ const poolAssetHelpers_1 = require("./poolAssetHelpers");
|
|
|
46
50
|
const poolAssetId = 'ETH.USDC-0XA0B86991C6218B36C1D19D4A2E9EB0CE3606EB48';
|
|
47
51
|
(0, vitest_1.expect)(result).toEqual(poolAssetId);
|
|
48
52
|
});
|
|
53
|
+
(0, vitest_1.it)('returns SOL pool when assetId is solAssetId (base58 case-sensitive)', () => {
|
|
54
|
+
const assetId = caip_1.solAssetId;
|
|
55
|
+
const result = (0, poolAssetHelpers_1.assetIdToThorPoolAssetId)({ assetId });
|
|
56
|
+
const poolAssetId = 'SOL.SOL';
|
|
57
|
+
(0, vitest_1.expect)(result).toEqual(poolAssetId);
|
|
58
|
+
});
|
|
49
59
|
(0, vitest_1.it)('returns undefined for an unsupported asset', () => {
|
|
50
60
|
const assetId = 'foobar';
|
|
51
61
|
const result = (0, poolAssetHelpers_1.assetIdToThorPoolAssetId)({ assetId });
|
|
@@ -9,6 +9,7 @@ const uuid_1 = require("uuid");
|
|
|
9
9
|
const constants_1 = require("../../../constants");
|
|
10
10
|
const types_1 = require("../../../types");
|
|
11
11
|
const utils_2 = require("../../../utils");
|
|
12
|
+
const affiliateFee_1 = require("../../utils/affiliateFee");
|
|
12
13
|
const helpers_1 = require("../../utils/helpers/helpers");
|
|
13
14
|
const fetchFromZrx_1 = require("../utils/fetchFromZrx");
|
|
14
15
|
const helpers_2 = require("../utils/helpers/helpers");
|
|
@@ -99,6 +100,14 @@ async function getZrxTradeQuote(input, assertGetEvmChainAdapter, assetsById, zrx
|
|
|
99
100
|
buyAmountAfterFeesCryptoBaseUnit: buyAmount,
|
|
100
101
|
sellAmountIncludingProtocolFeesCryptoBaseUnit,
|
|
101
102
|
source: types_1.SwapperName.Zrx,
|
|
103
|
+
affiliateFee: (0, affiliateFee_1.buildAffiliateFee)({
|
|
104
|
+
strategy: 'buy_asset',
|
|
105
|
+
affiliateBps,
|
|
106
|
+
sellAsset,
|
|
107
|
+
buyAsset,
|
|
108
|
+
sellAmountCryptoBaseUnit: sellAmountIncludingProtocolFeesCryptoBaseUnit,
|
|
109
|
+
buyAmountCryptoBaseUnit: buyAmount,
|
|
110
|
+
}),
|
|
102
111
|
permit2Eip712: permit2Eip712,
|
|
103
112
|
zrxTransactionMetadata: transactionMetadata,
|
|
104
113
|
},
|