@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
|
@@ -6,6 +6,7 @@ const monads_1 = require("@sniptt/monads");
|
|
|
6
6
|
const uuid_1 = require("uuid");
|
|
7
7
|
const constants_1 = require("../../../constants");
|
|
8
8
|
const types_1 = require("../../../types");
|
|
9
|
+
const affiliateFee_1 = require("../../utils/affiliateFee");
|
|
9
10
|
const helpers_1 = require("../../utils/helpers/helpers");
|
|
10
11
|
const fetchFromZrx_1 = require("../utils/fetchFromZrx");
|
|
11
12
|
const helpers_2 = require("../utils/helpers/helpers");
|
|
@@ -65,6 +66,14 @@ async function getZrxTradeRate(input, assetsById, zrxBaseUrl) {
|
|
|
65
66
|
buyAmountAfterFeesCryptoBaseUnit: buyAmount,
|
|
66
67
|
sellAmountIncludingProtocolFeesCryptoBaseUnit,
|
|
67
68
|
source: types_1.SwapperName.Zrx,
|
|
69
|
+
affiliateFee: (0, affiliateFee_1.buildAffiliateFee)({
|
|
70
|
+
strategy: 'buy_asset',
|
|
71
|
+
affiliateBps,
|
|
72
|
+
sellAsset,
|
|
73
|
+
buyAsset,
|
|
74
|
+
sellAmountCryptoBaseUnit: sellAmountIncludingProtocolFeesCryptoBaseUnit,
|
|
75
|
+
buyAmountCryptoBaseUnit: buyAmount,
|
|
76
|
+
}),
|
|
68
77
|
},
|
|
69
78
|
],
|
|
70
79
|
});
|
|
@@ -8,7 +8,7 @@ export declare const isSupportedChainId: (chainId: ChainId) => chainId is KnownC
|
|
|
8
8
|
export declare const assertValidTrade: ({ buyAsset, sellAsset, }: {
|
|
9
9
|
buyAsset: Asset;
|
|
10
10
|
sellAsset: Asset;
|
|
11
|
-
}) => import("@sniptt/monads/build/result/result").
|
|
11
|
+
}) => import("@sniptt/monads/build/result/result").ResErr<unknown, import("../../../../types").SwapErrorRight> | import("@sniptt/monads/build/result/result").ResOk<boolean, never>;
|
|
12
12
|
export declare const calculateRate: ({ buyAmount, sellAmount, buyAsset, sellAsset, }: {
|
|
13
13
|
buyAmount: string;
|
|
14
14
|
sellAmount: string;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { AssetId } from '@shapeshiftoss/caip';
|
|
2
|
+
import type { Asset } from '@shapeshiftoss/types';
|
|
3
|
+
import type { AffiliateFee } from '../../types';
|
|
4
|
+
export type AffiliateFeeStrategy = 'buy_asset' | 'sell_asset' | 'fixed_asset';
|
|
5
|
+
type BuildAffiliateFeeParams = {
|
|
6
|
+
strategy: AffiliateFeeStrategy;
|
|
7
|
+
affiliateBps: string;
|
|
8
|
+
sellAsset: Asset;
|
|
9
|
+
buyAsset: Asset;
|
|
10
|
+
sellAmountCryptoBaseUnit: string;
|
|
11
|
+
buyAmountCryptoBaseUnit: string;
|
|
12
|
+
fixedAsset?: Asset;
|
|
13
|
+
fixedAssetId?: AssetId;
|
|
14
|
+
isEstimate?: boolean;
|
|
15
|
+
};
|
|
16
|
+
export declare const buildAffiliateFee: (params: BuildAffiliateFeeParams) => AffiliateFee | undefined;
|
|
17
|
+
export {};
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.buildAffiliateFee = void 0;
|
|
4
|
+
const utils_1 = require("@shapeshiftoss/utils");
|
|
5
|
+
const buildAffiliateFee = (params) => {
|
|
6
|
+
const { strategy, affiliateBps, sellAsset, buyAsset, sellAmountCryptoBaseUnit, buyAmountCryptoBaseUnit, fixedAsset, fixedAssetId, isEstimate, } = params;
|
|
7
|
+
if ((0, utils_1.bnOrZero)(affiliateBps).lte(0))
|
|
8
|
+
return undefined;
|
|
9
|
+
const bpsDecimal = (0, utils_1.bn)(affiliateBps).div(10000);
|
|
10
|
+
switch (strategy) {
|
|
11
|
+
case 'buy_asset': {
|
|
12
|
+
const feeAmount = (0, utils_1.bnOrZero)(buyAmountCryptoBaseUnit).times(bpsDecimal).toFixed(0);
|
|
13
|
+
return {
|
|
14
|
+
assetId: buyAsset.assetId,
|
|
15
|
+
amountCryptoBaseUnit: feeAmount,
|
|
16
|
+
asset: buyAsset,
|
|
17
|
+
isEstimate,
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
case 'sell_asset': {
|
|
21
|
+
const feeAmount = (0, utils_1.bnOrZero)(sellAmountCryptoBaseUnit).times(bpsDecimal).toFixed(0);
|
|
22
|
+
return {
|
|
23
|
+
assetId: sellAsset.assetId,
|
|
24
|
+
amountCryptoBaseUnit: feeAmount,
|
|
25
|
+
asset: sellAsset,
|
|
26
|
+
isEstimate,
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
case 'fixed_asset': {
|
|
30
|
+
if (!fixedAsset || !fixedAssetId)
|
|
31
|
+
return undefined;
|
|
32
|
+
return {
|
|
33
|
+
assetId: fixedAssetId,
|
|
34
|
+
amountCryptoBaseUnit: '0',
|
|
35
|
+
asset: fixedAsset,
|
|
36
|
+
isEstimate: true,
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
default:
|
|
40
|
+
return undefined;
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
exports.buildAffiliateFee = buildAffiliateFee;
|
package/dist/cjs/swappers/utils/filterBuyAssetsBySellAssetId/filterBuyAssetsBySellAssetId.js
CHANGED
|
@@ -1,17 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.filterCrossChainEvmBuyAssetsBySellAssetId = exports.filterSameChainEvmBuyAssetsBySellAssetId = void 0;
|
|
4
|
-
const caip_1 = require("@shapeshiftoss/caip");
|
|
5
4
|
const chain_adapters_1 = require("@shapeshiftoss/chain-adapters");
|
|
6
5
|
const _filterEvmBuyAssetsBySellAssetId = ({ assets, sellAsset }, chainIdPredicate) => {
|
|
7
6
|
// evm only
|
|
8
7
|
if (!(0, chain_adapters_1.isEvmChainId)(sellAsset.chainId))
|
|
9
8
|
return [];
|
|
10
9
|
return assets.filter(buyAsset => {
|
|
11
|
-
// evm only AND chain id predicate
|
|
12
|
-
return (
|
|
13
|
-
chainIdPredicate(buyAsset.chainId, sellAsset.chainId) &&
|
|
14
|
-
buyAsset.chainId !== caip_1.arbitrumNovaChainId);
|
|
10
|
+
// evm only AND chain id predicate
|
|
11
|
+
return (0, chain_adapters_1.isEvmChainId)(buyAsset.chainId) && chainIdPredicate(buyAsset.chainId, sellAsset.chainId);
|
|
15
12
|
});
|
|
16
13
|
};
|
|
17
14
|
const filterSameChainEvmBuyAssetsBySellAssetId = (input) => {
|
|
@@ -46,6 +46,9 @@ const DAO_TREASURY_BY_CHAIN_ID = {
|
|
|
46
46
|
[types_1.KnownChainIds.SolanaMainnet]: utils_1.DAO_TREASURY_SOLANA,
|
|
47
47
|
[types_1.KnownChainIds.BitcoinMainnet]: utils_1.DAO_TREASURY_BITCOIN,
|
|
48
48
|
[types_1.KnownChainIds.StarknetMainnet]: utils_1.DAO_TREASURY_STARKNET,
|
|
49
|
+
[types_1.KnownChainIds.TonMainnet]: utils_1.DAO_TREASURY_TON,
|
|
50
|
+
[types_1.KnownChainIds.MonadMainnet]: utils_1.DAO_TREASURY_MONAD,
|
|
51
|
+
[types_1.KnownChainIds.HyperEvmMainnet]: utils_1.DAO_TREASURY_HYPEREVM,
|
|
49
52
|
};
|
|
50
53
|
const getTreasuryAddressFromChainId = (chainId) => {
|
|
51
54
|
const maybeTreasuryChainId = (0, utils_1.isTreasuryChainId)(chainId) ? chainId : undefined;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Asset } from '@shapeshiftoss/types';
|
|
2
2
|
import type { SwapperConfig, SwapperName } from '../types';
|
|
3
3
|
import type { ThorEvmTradeQuote } from './types';
|
|
4
|
-
export declare const getCallDataFromQuote: ({ tradeType, data, sellAsset, sellAmountIncludingProtocolFeesCryptoBaseUnit, memo: tcMemo, expiry, config, longtailData, slippageTolerancePercentageDecimal, vault, swapperName, }: Pick<ThorEvmTradeQuote, "data" | "slippageTolerancePercentageDecimal" | "memo" | "
|
|
4
|
+
export declare const getCallDataFromQuote: ({ tradeType, data, sellAsset, sellAmountIncludingProtocolFeesCryptoBaseUnit, memo: tcMemo, expiry, config, longtailData, slippageTolerancePercentageDecimal, vault, swapperName, }: Pick<ThorEvmTradeQuote, "data" | "slippageTolerancePercentageDecimal" | "memo" | "expiry" | "tradeType" | "aggregator" | "vault" | "longtailData"> & {
|
|
5
5
|
sellAmountIncludingProtocolFeesCryptoBaseUnit: string;
|
|
6
6
|
config: SwapperConfig;
|
|
7
7
|
sellAsset: Asset;
|
|
@@ -28,21 +28,25 @@ const caip_1 = require("@shapeshiftoss/caip");
|
|
|
28
28
|
const adapters = __importStar(require("@shapeshiftoss/chain-adapters"));
|
|
29
29
|
const utils_1 = require("@shapeshiftoss/utils");
|
|
30
30
|
const monads_1 = require("@sniptt/monads");
|
|
31
|
+
const web3_js_1 = require("@solana/web3.js");
|
|
31
32
|
const tronweb_1 = require("tronweb");
|
|
32
33
|
const uuid_1 = require("uuid");
|
|
33
34
|
const index_1 = require("../index");
|
|
35
|
+
const affiliateFee_1 = require("../swappers/utils/affiliateFee");
|
|
34
36
|
const types_1 = require("../types");
|
|
35
37
|
const utils_2 = require("../utils");
|
|
36
38
|
const evm = __importStar(require("./evm"));
|
|
37
39
|
const getLimitWithManualSlippage_1 = require("./getLimitWithManualSlippage/getLimitWithManualSlippage");
|
|
38
40
|
const getQuote_1 = require("./getQuote");
|
|
39
41
|
const index_2 = require("./index");
|
|
42
|
+
const solana = __importStar(require("./solana"));
|
|
40
43
|
const tron = __importStar(require("./tron"));
|
|
41
44
|
const utxo = __importStar(require("./utxo"));
|
|
42
45
|
const SAFE_GAS_LIMIT = '100000'; // depositWithExpiry()
|
|
46
|
+
const SOLANA_MEMO_PROGRAM_ID = 'MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr';
|
|
43
47
|
const getL1RateOrQuote = async (input, deps, streamingInterval, tradeType, swapperName) => {
|
|
44
48
|
const { sellAsset, buyAsset, sellAmountIncludingProtocolFeesCryptoBaseUnit: sellAmountCryptoBaseUnit, accountNumber, receiveAddress, affiliateBps: requestedAffiliateBps, } = input;
|
|
45
|
-
const { config, assertGetEvmChainAdapter, assertGetUtxoChainAdapter, assertGetCosmosSdkChainAdapter, } = deps;
|
|
49
|
+
const { config, assertGetEvmChainAdapter, assertGetUtxoChainAdapter, assertGetCosmosSdkChainAdapter, assertGetSolanaChainAdapter, } = deps;
|
|
46
50
|
// "NativePrecision" is intended to indicate the base unit precision of the asset
|
|
47
51
|
// for the corresponding swapper network (THORChain or MAYAChain)
|
|
48
52
|
// (CACAO = 10, everything else = 8)
|
|
@@ -101,7 +105,13 @@ const getL1RateOrQuote = async (input, deps, streamingInterval, tradeType, swapp
|
|
|
101
105
|
: '0';
|
|
102
106
|
const getRouteBuyAmountBeforeFeesCryptoBaseUnit = (quote) => {
|
|
103
107
|
const buyAmountBeforeFeesCryptoThorPrecision = (0, utils_1.bn)(quote.expected_amount_out).plus(quote.fees.total);
|
|
104
|
-
return
|
|
108
|
+
return utils_1.BigAmount.fromPrecision({
|
|
109
|
+
value: utils_1.BigAmount.fromBaseUnit({
|
|
110
|
+
value: buyAmountBeforeFeesCryptoThorPrecision,
|
|
111
|
+
precision: buyAssetNativePrecision,
|
|
112
|
+
}).toPrecision(),
|
|
113
|
+
precision: buyAsset.precision,
|
|
114
|
+
}).toBaseUnit();
|
|
105
115
|
};
|
|
106
116
|
const getProtocolFees = (quote) => {
|
|
107
117
|
// Fees consist of liquidity, outbound, and affiliate fees
|
|
@@ -187,6 +197,14 @@ const getL1RateOrQuote = async (input, deps, streamingInterval, tradeType, swapp
|
|
|
187
197
|
accountNumber,
|
|
188
198
|
allowanceContract,
|
|
189
199
|
feeData,
|
|
200
|
+
affiliateFee: (0, affiliateFee_1.buildAffiliateFee)({
|
|
201
|
+
strategy: 'buy_asset',
|
|
202
|
+
affiliateBps: route.affiliateBps,
|
|
203
|
+
sellAsset,
|
|
204
|
+
buyAsset,
|
|
205
|
+
sellAmountCryptoBaseUnit,
|
|
206
|
+
buyAmountCryptoBaseUnit: buyAmountAfterFeesCryptoBaseUnit,
|
|
207
|
+
}),
|
|
190
208
|
thorchainSpecific: {
|
|
191
209
|
maxStreamingQuantity: route.quote.max_streaming_quantity,
|
|
192
210
|
},
|
|
@@ -241,7 +259,11 @@ const getL1RateOrQuote = async (input, deps, streamingInterval, tradeType, swapp
|
|
|
241
259
|
const sellAdapter = assertGetUtxoChainAdapter(sellAsset.chainId);
|
|
242
260
|
const maybeRoutes = await Promise.allSettled(perRouteValues.map(async (route) => {
|
|
243
261
|
const memo = getMemo(route);
|
|
244
|
-
const { vault } = await utxo.getThorTxData({
|
|
262
|
+
const { vault } = await utxo.getThorTxData({
|
|
263
|
+
sellAsset,
|
|
264
|
+
config,
|
|
265
|
+
swapperName,
|
|
266
|
+
});
|
|
245
267
|
const feeData = await (async () => {
|
|
246
268
|
const protocolFees = getProtocolFees(route.quote);
|
|
247
269
|
// This is a rate without a wallet connected, so we can't get fees
|
|
@@ -295,10 +317,51 @@ const getL1RateOrQuote = async (input, deps, streamingInterval, tradeType, swapp
|
|
|
295
317
|
}));
|
|
296
318
|
}
|
|
297
319
|
case caip_1.CHAIN_NAMESPACE.Solana: {
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
320
|
+
const adapter = assertGetSolanaChainAdapter(sellAsset.chainId);
|
|
321
|
+
const sendAddress = input.sendAddress;
|
|
322
|
+
const maybeRoutes = await Promise.allSettled(perRouteValues.map(async (route) => {
|
|
323
|
+
const memo = getMemo(route);
|
|
324
|
+
const protocolFees = getProtocolFees(route.quote);
|
|
325
|
+
const feeData = await (async () => {
|
|
326
|
+
if (!sendAddress)
|
|
327
|
+
return { networkFeeCryptoBaseUnit: undefined, protocolFees };
|
|
328
|
+
const { vault } = await solana.getThorTxData({ sellAsset, config, swapperName });
|
|
329
|
+
const memoInstruction = new web3_js_1.TransactionInstruction({
|
|
330
|
+
keys: [],
|
|
331
|
+
programId: new web3_js_1.PublicKey(SOLANA_MEMO_PROGRAM_ID),
|
|
332
|
+
data: Buffer.from(memo, 'utf8'),
|
|
333
|
+
});
|
|
334
|
+
const transferInstruction = web3_js_1.SystemProgram.transfer({
|
|
335
|
+
fromPubkey: new web3_js_1.PublicKey(sendAddress),
|
|
336
|
+
toPubkey: new web3_js_1.PublicKey(vault),
|
|
337
|
+
lamports: BigInt(sellAmountCryptoBaseUnit),
|
|
338
|
+
});
|
|
339
|
+
const { fast } = await adapter.getFeeData({
|
|
340
|
+
to: vault,
|
|
341
|
+
value: '0',
|
|
342
|
+
chainSpecific: {
|
|
343
|
+
from: sendAddress,
|
|
344
|
+
tokenId: (0, utils_1.contractAddressOrUndefined)(sellAsset.assetId),
|
|
345
|
+
instructions: [memoInstruction, transferInstruction],
|
|
346
|
+
},
|
|
347
|
+
});
|
|
348
|
+
return { networkFeeCryptoBaseUnit: fast.txFee, protocolFees };
|
|
349
|
+
})();
|
|
350
|
+
return makeThorTradeRateOrQuote({
|
|
351
|
+
route,
|
|
352
|
+
allowanceContract: '0x0',
|
|
353
|
+
memo,
|
|
354
|
+
feeData,
|
|
355
|
+
});
|
|
301
356
|
}));
|
|
357
|
+
const routes = maybeRoutes.filter(utils_1.isFulfilled).map(r => r.value);
|
|
358
|
+
if (!routes.length)
|
|
359
|
+
return (0, monads_1.Err)((0, utils_2.makeSwapErrorRight)({
|
|
360
|
+
message: 'Unable to create any routes',
|
|
361
|
+
code: types_1.TradeQuoteError.UnsupportedTradePair,
|
|
362
|
+
cause: maybeRoutes.filter(utils_1.isRejected).map(r => r.reason),
|
|
363
|
+
}));
|
|
364
|
+
return (0, monads_1.Ok)(routes);
|
|
302
365
|
}
|
|
303
366
|
case caip_1.CHAIN_NAMESPACE.Tron: {
|
|
304
367
|
const maybeRoutes = await Promise.allSettled(perRouteValues.map(async (route) => {
|
|
@@ -310,9 +373,15 @@ const getL1RateOrQuote = async (input, deps, streamingInterval, tradeType, swapp
|
|
|
310
373
|
const { sellAsset, sellAmountIncludingProtocolFeesCryptoBaseUnit } = input;
|
|
311
374
|
const contractAddress = (0, utils_1.contractAddressOrUndefined)(sellAsset.assetId);
|
|
312
375
|
// Get vault address
|
|
313
|
-
const { vault } = await tron.getThorTxData({
|
|
376
|
+
const { vault } = await tron.getThorTxData({
|
|
377
|
+
sellAsset,
|
|
378
|
+
config,
|
|
379
|
+
swapperName,
|
|
380
|
+
});
|
|
314
381
|
// Estimate fees using the receive address for accurate energy calculation
|
|
315
|
-
const tronWeb = new tronweb_1.TronWeb({
|
|
382
|
+
const tronWeb = new tronweb_1.TronWeb({
|
|
383
|
+
fullHost: deps.config.VITE_TRON_NODE_URL,
|
|
384
|
+
});
|
|
316
385
|
const params = await tronWeb.trx.getChainParameters();
|
|
317
386
|
const bandwidthPrice = params.find(p => p.key === 'getTransactionFee')?.value ?? 1000;
|
|
318
387
|
const energyPrice = params.find(p => p.key === 'getEnergyFee')?.value ?? 100;
|
|
@@ -322,7 +391,10 @@ const getL1RateOrQuote = async (input, deps, streamingInterval, tradeType, swapp
|
|
|
322
391
|
try {
|
|
323
392
|
const result = await tronWeb.transactionBuilder.triggerConstantContract(contractAddress, 'transfer(address,uint256)', {}, [
|
|
324
393
|
{ type: 'address', value: vault },
|
|
325
|
-
{
|
|
394
|
+
{
|
|
395
|
+
type: 'uint256',
|
|
396
|
+
value: sellAmountIncludingProtocolFeesCryptoBaseUnit,
|
|
397
|
+
},
|
|
326
398
|
], input.receiveAddress);
|
|
327
399
|
const energyUsed = result.energy_used ?? 65000;
|
|
328
400
|
const energyFee = energyUsed * energyPrice * 1.5; // 1.5x safety margin
|
|
@@ -387,6 +459,12 @@ const getL1RateOrQuote = async (input, deps, streamingInterval, tradeType, swapp
|
|
|
387
459
|
code: types_1.TradeQuoteError.UnsupportedTradePair,
|
|
388
460
|
}));
|
|
389
461
|
}
|
|
462
|
+
case caip_1.CHAIN_NAMESPACE.Ton: {
|
|
463
|
+
return (0, monads_1.Err)((0, utils_2.makeSwapErrorRight)({
|
|
464
|
+
message: 'TON is not supported',
|
|
465
|
+
code: types_1.TradeQuoteError.UnsupportedTradePair,
|
|
466
|
+
}));
|
|
467
|
+
}
|
|
390
468
|
default:
|
|
391
469
|
return (0, utils_1.assertUnreachable)(chainNamespace);
|
|
392
470
|
}
|
|
@@ -25,9 +25,15 @@ const getQuote = async (input, deps) => {
|
|
|
25
25
|
});
|
|
26
26
|
const buyPoolId = (0, index_1.getPoolAssetId)({ assetId: buyAssetId, swapperName });
|
|
27
27
|
const sellPoolId = (0, index_1.getPoolAssetId)({ assetId: sellAsset.assetId, swapperName });
|
|
28
|
-
const sellAmountCryptoPrecision =
|
|
28
|
+
const sellAmountCryptoPrecision = utils_1.BigAmount.fromBaseUnit({
|
|
29
|
+
value: sellAmountCryptoBaseUnit,
|
|
30
|
+
precision: sellAsset.precision,
|
|
31
|
+
}).toPrecision();
|
|
29
32
|
// All pool amounts are native precision regardless of token precision
|
|
30
|
-
const sellAmountCryptoThorBaseUnit = (0, utils_1.bn)(
|
|
33
|
+
const sellAmountCryptoThorBaseUnit = (0, utils_1.bn)(utils_1.BigAmount.fromPrecision({
|
|
34
|
+
value: sellAmountCryptoPrecision,
|
|
35
|
+
precision: (0, index_1.getNativePrecision)(sellAsset.assetId, swapperName),
|
|
36
|
+
}).toBaseUnit());
|
|
31
37
|
// The swap endpoint expects BCH receiveAddress's to be stripped of the "bitcoincash:" prefix
|
|
32
38
|
const parsedReceiveAddress = receiveAddress && buyAssetId === caip_1.bchAssetId
|
|
33
39
|
? receiveAddress.replace('bitcoincash:', '')
|
|
@@ -13,6 +13,7 @@ export * from './getL1RateOrQuote';
|
|
|
13
13
|
export * from './getPoolDetails';
|
|
14
14
|
export * as cosmossdk from './cosmossdk';
|
|
15
15
|
export * as evm from './evm';
|
|
16
|
+
export * as solana from './solana';
|
|
16
17
|
export * as tron from './tron';
|
|
17
18
|
export * as utxo from './utxo';
|
|
18
19
|
export declare const getChainIdBySwapper: (swapperName: SwapperName) => import("@shapeshiftoss/caip").ChainId;
|
|
@@ -21,7 +22,7 @@ export declare const isThorTradeQuote: (quote: TradeQuote | undefined) => quote
|
|
|
21
22
|
export declare const getDaemonUrl: (config: SwapperConfig, swapperName: SwapperName) => string;
|
|
22
23
|
export declare const getMidgardUrl: (config: SwapperConfig, swapperName: SwapperName) => string;
|
|
23
24
|
export declare const isNativeAsset: (assetId: AssetId, swapperName: SwapperName) => boolean;
|
|
24
|
-
export declare const getNativePrecision: (assetId: AssetId, swapperName: SwapperName) =>
|
|
25
|
+
export declare const getNativePrecision: (assetId: AssetId, swapperName: SwapperName) => 8 | 10;
|
|
25
26
|
export declare const getNativeFee: (swapperName: SwapperName) => "2000000" | "2000000000";
|
|
26
27
|
export declare const getAffiliate: (swapperName: SwapperName) => "ss" | "ssmaya";
|
|
27
28
|
export declare const getPoolAssetId: ({ assetId, swapperName, }: {
|
|
@@ -26,7 +26,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
26
26
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
27
27
|
};
|
|
28
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
exports.getSwapSource = exports.getPoolAssetId = exports.getAffiliate = exports.getNativeFee = exports.getNativePrecision = exports.isNativeAsset = exports.getMidgardUrl = exports.getDaemonUrl = exports.isThorTradeQuote = exports.isThorTradeRate = exports.getChainIdBySwapper = exports.utxo = exports.tron = exports.evm = exports.cosmossdk = void 0;
|
|
29
|
+
exports.getSwapSource = exports.getPoolAssetId = exports.getAffiliate = exports.getNativeFee = exports.getNativePrecision = exports.isNativeAsset = exports.getMidgardUrl = exports.getDaemonUrl = exports.isThorTradeQuote = exports.isThorTradeRate = exports.getChainIdBySwapper = exports.utxo = exports.tron = exports.solana = exports.evm = exports.cosmossdk = void 0;
|
|
30
30
|
const caip_1 = require("@shapeshiftoss/caip");
|
|
31
31
|
const adapters = __importStar(require("@shapeshiftoss/chain-adapters"));
|
|
32
32
|
const MayachainSwapper_1 = require("../swappers/MayachainSwapper");
|
|
@@ -43,6 +43,7 @@ __exportStar(require("./getL1RateOrQuote"), exports);
|
|
|
43
43
|
__exportStar(require("./getPoolDetails"), exports);
|
|
44
44
|
exports.cosmossdk = __importStar(require("./cosmossdk"));
|
|
45
45
|
exports.evm = __importStar(require("./evm"));
|
|
46
|
+
exports.solana = __importStar(require("./solana"));
|
|
46
47
|
exports.tron = __importStar(require("./tron"));
|
|
47
48
|
exports.utxo = __importStar(require("./utxo"));
|
|
48
49
|
const getChainIdBySwapper = (swapperName) => {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const MEMO_PROGRAM_ID = "MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr";
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getSolanaTransactionFees = void 0;
|
|
4
|
+
const utils_1 = require("@shapeshiftoss/utils");
|
|
5
|
+
const web3_js_1 = require("@solana/web3.js");
|
|
6
|
+
const utils_2 = require("../../utils");
|
|
7
|
+
const getThorTxData_1 = require("./getThorTxData");
|
|
8
|
+
const MEMO_PROGRAM_ID = 'MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr';
|
|
9
|
+
const getSolanaTransactionFees = async (args, swapperName) => {
|
|
10
|
+
const { tradeQuote, stepIndex, from, assertGetSolanaChainAdapter, config } = args;
|
|
11
|
+
if (!(0, utils_2.isExecutableTradeQuote)(tradeQuote))
|
|
12
|
+
throw new Error('Unable to execute a trade rate quote');
|
|
13
|
+
const { memo } = tradeQuote;
|
|
14
|
+
if (!memo)
|
|
15
|
+
throw new Error('Memo is required');
|
|
16
|
+
const step = (0, utils_2.getExecutableTradeStep)(tradeQuote, stepIndex);
|
|
17
|
+
const { sellAmountIncludingProtocolFeesCryptoBaseUnit, sellAsset } = step;
|
|
18
|
+
const { vault } = await (0, getThorTxData_1.getThorTxData)({ sellAsset, config, swapperName });
|
|
19
|
+
const adapter = assertGetSolanaChainAdapter(sellAsset.chainId);
|
|
20
|
+
const memoInstruction = new web3_js_1.TransactionInstruction({
|
|
21
|
+
keys: [],
|
|
22
|
+
programId: new web3_js_1.PublicKey(MEMO_PROGRAM_ID),
|
|
23
|
+
data: Buffer.from(memo, 'utf8'),
|
|
24
|
+
});
|
|
25
|
+
const transferInstruction = web3_js_1.SystemProgram.transfer({
|
|
26
|
+
fromPubkey: new web3_js_1.PublicKey(from),
|
|
27
|
+
toPubkey: new web3_js_1.PublicKey(vault),
|
|
28
|
+
lamports: BigInt(sellAmountIncludingProtocolFeesCryptoBaseUnit),
|
|
29
|
+
});
|
|
30
|
+
const { fast } = await adapter.getFeeData({
|
|
31
|
+
to: vault,
|
|
32
|
+
value: '0',
|
|
33
|
+
chainSpecific: {
|
|
34
|
+
from,
|
|
35
|
+
tokenId: (0, utils_1.contractAddressOrUndefined)(sellAsset.assetId),
|
|
36
|
+
instructions: [memoInstruction, transferInstruction],
|
|
37
|
+
},
|
|
38
|
+
});
|
|
39
|
+
return fast.txFee;
|
|
40
|
+
};
|
|
41
|
+
exports.getSolanaTransactionFees = getSolanaTransactionFees;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { Asset } from '@shapeshiftoss/types';
|
|
2
|
+
import type { SwapperConfig, SwapperName } from '../../types';
|
|
3
|
+
type GetThorTxDataArgs = {
|
|
4
|
+
sellAsset: Asset;
|
|
5
|
+
config: SwapperConfig;
|
|
6
|
+
swapperName: SwapperName;
|
|
7
|
+
};
|
|
8
|
+
type GetThorTxDataReturn = {
|
|
9
|
+
vault: string;
|
|
10
|
+
};
|
|
11
|
+
export declare const getThorTxData: ({ sellAsset, config, swapperName, }: GetThorTxDataArgs) => Promise<GetThorTxDataReturn>;
|
|
12
|
+
export {};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getThorTxData = void 0;
|
|
4
|
+
const getInboundAddressDataForChain_1 = require("../getInboundAddressDataForChain");
|
|
5
|
+
const index_1 = require("../index");
|
|
6
|
+
const getThorTxData = async ({ sellAsset, config, swapperName, }) => {
|
|
7
|
+
const daemonUrl = (0, index_1.getDaemonUrl)(config, swapperName);
|
|
8
|
+
const res = await (0, getInboundAddressDataForChain_1.getInboundAddressDataForChain)(daemonUrl, sellAsset.assetId, false, swapperName);
|
|
9
|
+
if (res.isErr())
|
|
10
|
+
throw res.unwrapErr();
|
|
11
|
+
const { address: vault } = res.unwrap();
|
|
12
|
+
return { vault };
|
|
13
|
+
};
|
|
14
|
+
exports.getThorTxData = getThorTxData;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { SolanaSignTx } from '@shapeshiftoss/hdwallet-core';
|
|
2
|
+
import type { GetUnsignedSolanaTransactionArgs, SwapperName } from '../../types';
|
|
3
|
+
export declare const getUnsignedSolanaTransaction: (args: GetUnsignedSolanaTransactionArgs, swapperName: SwapperName) => Promise<SolanaSignTx>;
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getUnsignedSolanaTransaction = void 0;
|
|
4
|
+
const utils_1 = require("@shapeshiftoss/utils");
|
|
5
|
+
const web3_js_1 = require("@solana/web3.js");
|
|
6
|
+
const utils_2 = require("../../utils");
|
|
7
|
+
const getThorTxData_1 = require("./getThorTxData");
|
|
8
|
+
const MEMO_PROGRAM_ID = 'MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr';
|
|
9
|
+
// Each ComputeBudgetProgram instruction (setComputeUnitLimit, setComputeUnitPrice) costs 150 CU.
|
|
10
|
+
// Fee estimation doesn't include these, so we add a fixed buffer to cover them.
|
|
11
|
+
const COMPUTE_BUDGET_INSTRUCTION_OVERHEAD_CU = 300;
|
|
12
|
+
const getUnsignedSolanaTransaction = async (args, swapperName) => {
|
|
13
|
+
const { tradeQuote, stepIndex, from, assertGetSolanaChainAdapter, config } = args;
|
|
14
|
+
if (!(0, utils_2.isExecutableTradeQuote)(tradeQuote))
|
|
15
|
+
throw new Error('Unable to execute a trade rate quote');
|
|
16
|
+
const { memo } = tradeQuote;
|
|
17
|
+
if (!memo)
|
|
18
|
+
throw new Error('Memo is required');
|
|
19
|
+
const step = (0, utils_2.getExecutableTradeStep)(tradeQuote, stepIndex);
|
|
20
|
+
const { accountNumber, sellAmountIncludingProtocolFeesCryptoBaseUnit, sellAsset } = step;
|
|
21
|
+
const { vault } = await (0, getThorTxData_1.getThorTxData)({
|
|
22
|
+
sellAsset,
|
|
23
|
+
config,
|
|
24
|
+
swapperName,
|
|
25
|
+
});
|
|
26
|
+
const adapter = assertGetSolanaChainAdapter(sellAsset.chainId);
|
|
27
|
+
const memoInstruction = new web3_js_1.TransactionInstruction({
|
|
28
|
+
keys: [],
|
|
29
|
+
programId: new web3_js_1.PublicKey(MEMO_PROGRAM_ID),
|
|
30
|
+
data: Buffer.from(memo, 'utf8'),
|
|
31
|
+
});
|
|
32
|
+
const transferInstruction = web3_js_1.SystemProgram.transfer({
|
|
33
|
+
fromPubkey: new web3_js_1.PublicKey(from),
|
|
34
|
+
toPubkey: new web3_js_1.PublicKey(vault),
|
|
35
|
+
lamports: BigInt(sellAmountIncludingProtocolFeesCryptoBaseUnit),
|
|
36
|
+
});
|
|
37
|
+
const { fast } = await adapter.getFeeData({
|
|
38
|
+
to: vault,
|
|
39
|
+
value: '0',
|
|
40
|
+
chainSpecific: {
|
|
41
|
+
from,
|
|
42
|
+
tokenId: (0, utils_1.contractAddressOrUndefined)(sellAsset.assetId),
|
|
43
|
+
instructions: [memoInstruction, transferInstruction],
|
|
44
|
+
},
|
|
45
|
+
});
|
|
46
|
+
const memoHdwalletInstruction = {
|
|
47
|
+
keys: [],
|
|
48
|
+
programId: MEMO_PROGRAM_ID,
|
|
49
|
+
data: Buffer.from(memo, 'utf8'),
|
|
50
|
+
};
|
|
51
|
+
return adapter.buildSendApiTransaction({
|
|
52
|
+
from,
|
|
53
|
+
to: vault,
|
|
54
|
+
value: sellAmountIncludingProtocolFeesCryptoBaseUnit,
|
|
55
|
+
accountNumber,
|
|
56
|
+
chainSpecific: {
|
|
57
|
+
instructions: [memoHdwalletInstruction],
|
|
58
|
+
computeUnitLimit: String(Number(fast.chainSpecific.computeUnits) + COMPUTE_BUDGET_INSTRUCTION_OVERHEAD_CU),
|
|
59
|
+
computeUnitPrice: fast.chainSpecific.priorityFee,
|
|
60
|
+
tokenId: (0, utils_1.contractAddressOrUndefined)(sellAsset.assetId),
|
|
61
|
+
},
|
|
62
|
+
});
|
|
63
|
+
};
|
|
64
|
+
exports.getUnsignedSolanaTransaction = getUnsignedSolanaTransaction;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./getThorTxData"), exports);
|
|
18
|
+
__exportStar(require("./getUnsignedSolanaTransaction"), exports);
|
|
19
|
+
__exportStar(require("./getSolanaTransactionFees"), exports);
|
|
@@ -1,19 +1,39 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getUnsignedTronTransaction = void 0;
|
|
4
|
+
const caip_1 = require("@shapeshiftoss/caip");
|
|
4
5
|
const utils_1 = require("@shapeshiftoss/utils");
|
|
5
6
|
const utils_2 = require("../utils");
|
|
6
7
|
const getUnsignedTronTransaction = ({ stepIndex, tradeQuote, from, assertGetTronChainAdapter, }) => {
|
|
7
8
|
if (!(0, utils_2.isExecutableTradeQuote)(tradeQuote))
|
|
8
9
|
throw new Error('Unable to execute a trade rate quote');
|
|
9
10
|
const step = (0, utils_2.getExecutableTradeStep)(tradeQuote, stepIndex);
|
|
10
|
-
const { accountNumber, sellAsset, relayTransactionMetadata, nearIntentsSpecific } = step;
|
|
11
|
+
const { accountNumber, sellAsset, relayTransactionMetadata, nearIntentsSpecific, butterSwapTransactionMetadata, } = step;
|
|
11
12
|
const adapter = assertGetTronChainAdapter(sellAsset.chainId);
|
|
13
|
+
if (butterSwapTransactionMetadata) {
|
|
14
|
+
const { to, data, method, args, value: butterValue } = butterSwapTransactionMetadata;
|
|
15
|
+
if (!to)
|
|
16
|
+
throw new Error('Missing Butter swap contract address');
|
|
17
|
+
if (!data)
|
|
18
|
+
throw new Error('Missing Butter swap transaction data');
|
|
19
|
+
// Use Butter's value field which includes swap fees for same-chain swaps
|
|
20
|
+
// For native TRX sells, also include the sell amount
|
|
21
|
+
const isNativeTron = sellAsset.assetId === caip_1.tronAssetId;
|
|
22
|
+
const value = isNativeTron ? step.sellAmountIncludingProtocolFeesCryptoBaseUnit : butterValue;
|
|
23
|
+
return adapter.buildCustomApiTx({
|
|
24
|
+
from,
|
|
25
|
+
to,
|
|
26
|
+
accountNumber,
|
|
27
|
+
data,
|
|
28
|
+
value,
|
|
29
|
+
method,
|
|
30
|
+
args,
|
|
31
|
+
});
|
|
32
|
+
}
|
|
12
33
|
const to = relayTransactionMetadata?.to ?? nearIntentsSpecific?.depositAddress;
|
|
13
34
|
if (!to)
|
|
14
35
|
throw new Error('Missing transaction destination address');
|
|
15
36
|
const value = step.sellAmountIncludingProtocolFeesCryptoBaseUnit;
|
|
16
|
-
// Extract contract address for TRC20 tokens
|
|
17
37
|
const contractAddress = (0, utils_1.contractAddressOrUndefined)(sellAsset.assetId);
|
|
18
38
|
return adapter.buildSendApiTransaction({
|
|
19
39
|
to,
|