@shapeshiftoss/swapper 20.2.0 → 20.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/.tsbuildinfo +1 -1
- package/dist/cjs/constants.js +15 -0
- package/dist/cjs/index.d.ts +2 -0
- package/dist/cjs/index.js +2 -0
- package/dist/cjs/swappers/ArbitrumBridgeSwapper/getTradeQuote/getTradeQuote.js +0 -2
- package/dist/cjs/swappers/AvnuSwapper/swapperApi/getTradeQuote.js +1 -2
- package/dist/cjs/swappers/BebopSwapper/utils/fetchFromBebop.d.ts +2 -1
- package/dist/cjs/swappers/BebopSwapper/utils/fetchFromBebop.js +21 -15
- package/dist/cjs/swappers/BebopSwapper/utils/getBebopSolanaTradeContext.js +1 -0
- package/dist/cjs/swappers/BobGatewaySwapper/BobGatewaySwapper.js +10 -1
- package/dist/cjs/swappers/BobGatewaySwapper/endpoints.js +2 -33
- package/dist/cjs/swappers/BobGatewaySwapper/swapperApi/getTradeQuote.js +5 -10
- package/dist/cjs/swappers/BobGatewaySwapper/swapperApi/getTradeRate.js +1 -2
- package/dist/cjs/swappers/BobGatewaySwapper/types.d.ts +3 -3
- package/dist/cjs/swappers/BobGatewaySwapper/utils/constants.d.ts +3 -2
- package/dist/cjs/swappers/BobGatewaySwapper/utils/constants.js +8 -5
- package/dist/cjs/swappers/BobGatewaySwapper/utils/getBobGatewayStepData.d.ts +2 -2
- package/dist/cjs/swappers/BobGatewaySwapper/utils/getBobGatewayStepData.js +30 -34
- package/dist/cjs/swappers/BobGatewaySwapper/utils/getBobGatewayStepData.test.d.ts +1 -0
- package/dist/cjs/swappers/BobGatewaySwapper/utils/getBobGatewayStepData.test.js +117 -0
- package/dist/cjs/swappers/BobGatewaySwapper/utils/getBobGatewayTradeContext.js +1 -2
- package/dist/cjs/swappers/BobGatewaySwapper/utils/helpers.d.ts +8 -11
- package/dist/cjs/swappers/BobGatewaySwapper/utils/helpers.js +36 -31
- package/dist/cjs/swappers/ButterSwap/swapperApi/getTradeQuote.js +2 -5
- package/dist/cjs/swappers/ButterSwap/types.d.ts +0 -11
- package/dist/cjs/swappers/ButterSwap/utils/constants.d.ts +2 -0
- package/dist/cjs/swappers/ButterSwap/utils/constants.js +4 -1
- package/dist/cjs/swappers/ButterSwap/utils/getButterSwapStepData.d.ts +2 -3
- package/dist/cjs/swappers/ButterSwap/utils/getButterSwapStepData.js +42 -14
- package/dist/cjs/swappers/ButterSwap/utils/getButterSwapStepData.test.js +120 -17
- package/dist/cjs/swappers/ButterSwap/utils/helpers.js +1 -2
- package/dist/cjs/swappers/ButterSwap/xhr.js +3 -3
- package/dist/cjs/swappers/CetusSwapper/swapperApi/getTradeQuote.js +0 -2
- package/dist/cjs/swappers/ChainflipSwapper/endpoints.js +3 -19
- package/dist/cjs/swappers/ChainflipSwapper/swapperApi/getTradeQuote.js +1 -2
- package/dist/cjs/swappers/ChainflipSwapper/types.d.ts +1 -0
- package/dist/cjs/swappers/ChainflipSwapper/utils/getChainflipStepData.d.ts +1 -1
- package/dist/cjs/swappers/ChainflipSwapper/utils/getChainflipStepData.js +31 -12
- package/dist/cjs/swappers/DebridgeSwapper/getTradeQuote/getTradeQuote.js +0 -2
- package/dist/cjs/swappers/FyndSwapper/FyndSwapper.d.ts +2 -0
- package/dist/cjs/swappers/FyndSwapper/FyndSwapper.js +5 -0
- package/dist/cjs/swappers/FyndSwapper/endpoints.d.ts +2 -0
- package/dist/cjs/swappers/FyndSwapper/endpoints.js +14 -0
- package/dist/cjs/swappers/FyndSwapper/getTradeQuote/getTradeQuote.d.ts +4 -0
- package/dist/cjs/swappers/FyndSwapper/getTradeQuote/getTradeQuote.js +43 -0
- package/dist/cjs/swappers/FyndSwapper/getTradeRate/getTradeRate.d.ts +4 -0
- package/dist/cjs/swappers/FyndSwapper/getTradeRate/getTradeRate.js +34 -0
- package/dist/cjs/swappers/FyndSwapper/index.d.ts +2 -0
- package/dist/cjs/swappers/FyndSwapper/index.js +7 -0
- package/dist/cjs/swappers/FyndSwapper/types.d.ts +41 -0
- package/dist/cjs/swappers/FyndSwapper/types.js +2 -0
- package/dist/cjs/swappers/FyndSwapper/utils/constants.d.ts +33 -0
- package/dist/cjs/swappers/FyndSwapper/utils/constants.js +38 -0
- package/dist/cjs/swappers/FyndSwapper/utils/fetchFromFynd.d.ts +13 -0
- package/dist/cjs/swappers/FyndSwapper/utils/fetchFromFynd.js +42 -0
- package/dist/cjs/swappers/FyndSwapper/utils/fyndService.d.ts +5 -0
- package/dist/cjs/swappers/FyndSwapper/utils/fyndService.js +9 -0
- package/dist/cjs/swappers/FyndSwapper/utils/getFyndStepData.d.ts +25 -0
- package/dist/cjs/swappers/FyndSwapper/utils/getFyndStepData.js +48 -0
- package/dist/cjs/swappers/FyndSwapper/utils/getFyndTradeContext.d.ts +18 -0
- package/dist/cjs/swappers/FyndSwapper/utils/getFyndTradeContext.js +94 -0
- package/dist/cjs/swappers/FyndSwapper/utils/helpers.d.ts +24 -0
- package/dist/cjs/swappers/FyndSwapper/utils/helpers.js +174 -0
- package/dist/cjs/swappers/FyndSwapper/utils/helpers.test.d.ts +1 -0
- package/dist/cjs/swappers/FyndSwapper/utils/helpers.test.js +101 -0
- package/dist/cjs/swappers/MayachainSwapper/generated/generatedTradableAssetMap.json +0 -1
- package/dist/cjs/swappers/NearIntentsSwapper/constants.d.ts +1 -0
- package/dist/cjs/swappers/NearIntentsSwapper/constants.js +3 -1
- package/dist/cjs/swappers/NearIntentsSwapper/utils/getNearIntentsStepData.js +10 -5
- package/dist/cjs/swappers/NearIntentsSwapper/utils/helpers.js +1 -1
- package/dist/cjs/swappers/PortalsSwapper/endpoints.js +4 -1
- package/dist/cjs/swappers/PortalsSwapper/getPortalsTradeQuote/getPortalsTradeQuote.js +1 -1
- package/dist/cjs/swappers/RelaySwapper/constant.d.ts +1 -1
- package/dist/cjs/swappers/RelaySwapper/constant.js +3 -2
- package/dist/cjs/swappers/RelaySwapper/getTradeQuote/getTradeQuote.js +3 -5
- package/dist/cjs/swappers/RelaySwapper/utils/getRelayAssetAddress.js +2 -1
- package/dist/cjs/swappers/RelaySwapper/utils/getRelayStepData.d.ts +2 -3
- package/dist/cjs/swappers/RelaySwapper/utils/getRelayStepData.js +46 -13
- package/dist/cjs/swappers/RelaySwapper/utils/getRelayStepData.test.d.ts +1 -0
- package/dist/cjs/swappers/RelaySwapper/utils/getRelayStepData.test.js +139 -0
- package/dist/cjs/swappers/RelaySwapper/utils/getRelayTradeContext.d.ts +1 -0
- package/dist/cjs/swappers/RelaySwapper/utils/getRelayTradeContext.js +4 -0
- package/dist/cjs/swappers/RelaySwapper/utils/helpers.js +1 -2
- package/dist/cjs/swappers/RelaySwapper/utils/relayStatus.js +3 -3
- package/dist/cjs/swappers/RelaySwapper/utils/relayTokenToAssetId.js +1 -1
- package/dist/cjs/swappers/RelaySwapper/utils/types.d.ts +10 -8
- package/dist/cjs/swappers/SunioSwapper/endpoints.js +3 -63
- package/dist/cjs/swappers/SunioSwapper/getSunioTradeQuote/getSunioTradeQuote.js +3 -4
- package/dist/cjs/swappers/SunioSwapper/getSunioTradeRate/getSunioTradeRate.js +7 -1
- package/dist/cjs/swappers/SunioSwapper/types.d.ts +0 -3
- package/dist/cjs/swappers/SunioSwapper/utils/buildSwapContractCall.d.ts +11 -6
- package/dist/cjs/swappers/SunioSwapper/utils/buildSwapContractCall.js +33 -30
- package/dist/cjs/swappers/SunioSwapper/utils/constants.d.ts +3 -3
- package/dist/cjs/swappers/SunioSwapper/utils/constants.js +5 -9
- package/dist/cjs/swappers/SunioSwapper/utils/getSunioStepData.d.ts +8 -3
- package/dist/cjs/swappers/SunioSwapper/utils/getSunioStepData.js +54 -20
- package/dist/cjs/swappers/SunioSwapper/utils/getSunioStepData.test.d.ts +1 -0
- package/dist/cjs/swappers/SunioSwapper/utils/getSunioStepData.test.js +177 -0
- package/dist/cjs/swappers/SunioSwapper/utils/getSunioTradeContext.js +3 -2
- package/dist/cjs/swappers/SunioSwapper/utils/helpers.js +2 -1
- package/dist/cjs/swappers/SymbiosisSwapper/SymbiosisSwapper.d.ts +2 -0
- package/dist/cjs/swappers/SymbiosisSwapper/SymbiosisSwapper.js +8 -0
- package/dist/cjs/swappers/SymbiosisSwapper/endpoints.d.ts +2 -0
- package/dist/cjs/swappers/SymbiosisSwapper/endpoints.js +66 -0
- package/dist/cjs/swappers/SymbiosisSwapper/getTradeQuote/getTradeQuote.d.ts +4 -0
- package/dist/cjs/swappers/SymbiosisSwapper/getTradeQuote/getTradeQuote.js +42 -0
- package/dist/cjs/swappers/SymbiosisSwapper/getTradeRate/getTradeRate.d.ts +4 -0
- package/dist/cjs/swappers/SymbiosisSwapper/getTradeRate/getTradeRate.js +34 -0
- package/dist/cjs/swappers/SymbiosisSwapper/index.d.ts +2 -0
- package/dist/cjs/swappers/SymbiosisSwapper/index.js +7 -0
- package/dist/cjs/swappers/SymbiosisSwapper/utils/constants.d.ts +19 -0
- package/dist/cjs/swappers/SymbiosisSwapper/utils/constants.js +64 -0
- package/dist/cjs/swappers/SymbiosisSwapper/utils/getSymbiosisStepData.d.ts +26 -0
- package/dist/cjs/swappers/SymbiosisSwapper/utils/getSymbiosisStepData.js +106 -0
- package/dist/cjs/swappers/SymbiosisSwapper/utils/getSymbiosisStepData.test.d.ts +1 -0
- package/dist/cjs/swappers/SymbiosisSwapper/utils/getSymbiosisStepData.test.js +161 -0
- package/dist/cjs/swappers/SymbiosisSwapper/utils/getSymbiosisTradeContext.d.ts +17 -0
- package/dist/cjs/swappers/SymbiosisSwapper/utils/getSymbiosisTradeContext.js +146 -0
- package/dist/cjs/swappers/SymbiosisSwapper/utils/helpers.d.ts +38 -0
- package/dist/cjs/swappers/SymbiosisSwapper/utils/helpers.js +172 -0
- package/dist/cjs/swappers/SymbiosisSwapper/utils/helpers.test.d.ts +1 -0
- package/dist/cjs/swappers/SymbiosisSwapper/utils/helpers.test.js +151 -0
- package/dist/cjs/swappers/SymbiosisSwapper/utils/symbiosisService.d.ts +5 -0
- package/dist/cjs/swappers/SymbiosisSwapper/utils/symbiosisService.js +18 -0
- package/dist/cjs/swappers/SymbiosisSwapper/utils/types.d.ts +83 -0
- package/dist/cjs/swappers/SymbiosisSwapper/utils/types.js +11 -0
- package/dist/cjs/swappers/ThorchainSwapper/endpoints.js +3 -4
- package/dist/cjs/swappers/ThorchainSwapper/generated/generatedThorLongtailTokens.json +1 -0
- package/dist/cjs/swappers/ThorchainSwapper/generated/generatedTradableAssetMap.json +1 -0
- package/dist/cjs/swappers/ThorchainSwapper/utils/addL1ToLongtailPartsToMemo/addL1ToLongtailPartsToMemo.js +6 -1
- package/dist/cjs/swappers/ThorchainSwapper/utils/addL1ToLongtailPartsToMemo/addL1ToLongtailPartsToMemo.test.js +15 -0
- package/dist/cjs/swappers/ThorchainSwapper/utils/assertValidLongtailTrade.js +7 -0
- package/dist/cjs/swappers/ThorchainSwapper/utils/getL1ToLongtailQuote.js +0 -2
- package/dist/cjs/swappers/ThorchainSwapper/utils/getL1ToLongtailRate.js +0 -2
- package/dist/cjs/swappers/ThorchainSwapper/utils/getLongtailQuote.js +1 -1
- package/dist/cjs/swappers/ThorchainSwapper/utils/getUniqueAddressSubstring/getUniqueAddressSubstring.d.ts +1 -1
- package/dist/cjs/swappers/ThorchainSwapper/utils/getUniqueAddressSubstring/getUniqueAddressSubstring.js +17 -20
- package/dist/cjs/swappers/ThorchainSwapper/utils/getUniqueAddressSubstring/getUniqueAddressSubstring.test.js +31 -0
- package/dist/cjs/swappers/ZrxSwapper/getZrxTradeQuote/getZrxTradeQuote.js +24 -1
- package/dist/cjs/swappers/ZrxSwapper/getZrxTradeQuote/getZrxTradeQuote.test.d.ts +1 -0
- package/dist/cjs/swappers/ZrxSwapper/getZrxTradeQuote/getZrxTradeQuote.test.js +110 -0
- package/dist/cjs/swappers/ZrxSwapper/types.d.ts +2 -1
- package/dist/cjs/swappers/ZrxSwapper/utils/getZrxNativeCheckDeadline.d.ts +1 -0
- package/dist/cjs/swappers/ZrxSwapper/utils/getZrxNativeCheckDeadline.js +26 -0
- package/dist/cjs/types.d.ts +15 -13
- package/dist/cjs/types.js +2 -0
- package/dist/cjs/utils/helpers.d.ts +1 -2
- package/dist/cjs/utils/helpers.js +8 -32
- package/dist/cjs/utils/helpers.test.js +6 -2
- package/dist/cjs/utils/thorchain/getThorStepData.js +32 -49
- package/dist/cjs/utils/thorchain/getThorStepData.tron.test.d.ts +1 -0
- package/dist/cjs/utils/thorchain/getThorStepData.tron.test.js +93 -0
- package/dist/cjs/utils/thorchain/index.d.ts +0 -1
- package/dist/cjs/utils/thorchain/index.js +1 -14
- package/dist/cjs/utils/tron/constants.d.ts +1 -0
- package/dist/cjs/utils/tron/constants.js +5 -0
- package/dist/cjs/utils/tron/getTronNetworkFeeCryptoBaseUnit.d.ts +27 -0
- package/dist/cjs/utils/tron/getTronNetworkFeeCryptoBaseUnit.js +64 -0
- package/dist/cjs/utils/tron/getTronNetworkFeeCryptoBaseUnit.test.d.ts +1 -0
- package/dist/cjs/utils/tron/getTronNetworkFeeCryptoBaseUnit.test.js +157 -0
- package/dist/cjs/utils/tron/getUnsignedTronTransaction.d.ts +2 -1
- package/dist/cjs/utils/tron/getUnsignedTronTransaction.js +14 -48
- package/dist/cjs/utils/tron/getUnsignedTronTransaction.test.d.ts +1 -0
- package/dist/cjs/utils/tron/getUnsignedTronTransaction.test.js +76 -0
- package/dist/cjs/utils/tron/index.d.ts +2 -0
- package/dist/cjs/utils/tron/index.js +2 -0
- package/dist/esm/.tsbuildinfo +1 -1
- package/dist/esm/constants.js +15 -0
- package/dist/esm/index.d.ts +2 -0
- package/dist/esm/index.js +2 -0
- package/dist/esm/swappers/ArbitrumBridgeSwapper/getTradeQuote/getTradeQuote.js +0 -2
- package/dist/esm/swappers/AvnuSwapper/swapperApi/getTradeQuote.js +1 -2
- package/dist/esm/swappers/BebopSwapper/utils/fetchFromBebop.d.ts +2 -1
- package/dist/esm/swappers/BebopSwapper/utils/fetchFromBebop.js +21 -15
- package/dist/esm/swappers/BebopSwapper/utils/getBebopSolanaTradeContext.js +1 -0
- package/dist/esm/swappers/BobGatewaySwapper/BobGatewaySwapper.js +11 -2
- package/dist/esm/swappers/BobGatewaySwapper/endpoints.js +5 -36
- package/dist/esm/swappers/BobGatewaySwapper/swapperApi/getTradeQuote.js +5 -10
- package/dist/esm/swappers/BobGatewaySwapper/swapperApi/getTradeRate.js +1 -2
- package/dist/esm/swappers/BobGatewaySwapper/types.d.ts +3 -3
- package/dist/esm/swappers/BobGatewaySwapper/utils/constants.d.ts +3 -2
- package/dist/esm/swappers/BobGatewaySwapper/utils/constants.js +8 -7
- package/dist/esm/swappers/BobGatewaySwapper/utils/getBobGatewayStepData.d.ts +2 -2
- package/dist/esm/swappers/BobGatewaySwapper/utils/getBobGatewayStepData.js +21 -25
- package/dist/esm/swappers/BobGatewaySwapper/utils/getBobGatewayStepData.test.d.ts +1 -0
- package/dist/esm/swappers/BobGatewaySwapper/utils/getBobGatewayStepData.test.js +115 -0
- package/dist/esm/swappers/BobGatewaySwapper/utils/getBobGatewayTradeContext.js +1 -2
- package/dist/esm/swappers/BobGatewaySwapper/utils/helpers.d.ts +8 -11
- package/dist/esm/swappers/BobGatewaySwapper/utils/helpers.js +13 -30
- package/dist/esm/swappers/ButterSwap/swapperApi/getTradeQuote.js +2 -5
- package/dist/esm/swappers/ButterSwap/types.d.ts +0 -11
- package/dist/esm/swappers/ButterSwap/utils/constants.d.ts +2 -0
- package/dist/esm/swappers/ButterSwap/utils/constants.js +3 -0
- package/dist/esm/swappers/ButterSwap/utils/getButterSwapStepData.d.ts +2 -3
- package/dist/esm/swappers/ButterSwap/utils/getButterSwapStepData.js +42 -14
- package/dist/esm/swappers/ButterSwap/utils/getButterSwapStepData.test.js +120 -17
- package/dist/esm/swappers/ButterSwap/utils/helpers.js +1 -2
- package/dist/esm/swappers/ButterSwap/xhr.js +3 -3
- package/dist/esm/swappers/CetusSwapper/swapperApi/getTradeQuote.js +0 -2
- package/dist/esm/swappers/ChainflipSwapper/endpoints.js +3 -19
- package/dist/esm/swappers/ChainflipSwapper/swapperApi/getTradeQuote.js +1 -2
- package/dist/esm/swappers/ChainflipSwapper/types.d.ts +1 -0
- package/dist/esm/swappers/ChainflipSwapper/utils/getChainflipStepData.d.ts +1 -1
- package/dist/esm/swappers/ChainflipSwapper/utils/getChainflipStepData.js +32 -13
- package/dist/esm/swappers/DebridgeSwapper/getTradeQuote/getTradeQuote.js +0 -2
- package/dist/esm/swappers/FyndSwapper/FyndSwapper.d.ts +2 -0
- package/dist/esm/swappers/FyndSwapper/FyndSwapper.js +2 -0
- package/dist/esm/swappers/FyndSwapper/endpoints.d.ts +2 -0
- package/dist/esm/swappers/FyndSwapper/endpoints.js +11 -0
- package/dist/esm/swappers/FyndSwapper/getTradeQuote/getTradeQuote.d.ts +4 -0
- package/dist/esm/swappers/FyndSwapper/getTradeQuote/getTradeQuote.js +39 -0
- package/dist/esm/swappers/FyndSwapper/getTradeRate/getTradeRate.d.ts +4 -0
- package/dist/esm/swappers/FyndSwapper/getTradeRate/getTradeRate.js +30 -0
- package/dist/esm/swappers/FyndSwapper/index.d.ts +2 -0
- package/dist/esm/swappers/FyndSwapper/index.js +2 -0
- package/dist/esm/swappers/FyndSwapper/types.d.ts +41 -0
- package/dist/esm/swappers/FyndSwapper/types.js +1 -0
- package/dist/esm/swappers/FyndSwapper/utils/constants.d.ts +33 -0
- package/dist/esm/swappers/FyndSwapper/utils/constants.js +35 -0
- package/dist/esm/swappers/FyndSwapper/utils/fetchFromFynd.d.ts +13 -0
- package/dist/esm/swappers/FyndSwapper/utils/fetchFromFynd.js +38 -0
- package/dist/esm/swappers/FyndSwapper/utils/fyndService.d.ts +5 -0
- package/dist/esm/swappers/FyndSwapper/utils/fyndService.js +3 -0
- package/dist/esm/swappers/FyndSwapper/utils/getFyndStepData.d.ts +25 -0
- package/dist/esm/swappers/FyndSwapper/utils/getFyndStepData.js +44 -0
- package/dist/esm/swappers/FyndSwapper/utils/getFyndTradeContext.d.ts +18 -0
- package/dist/esm/swappers/FyndSwapper/utils/getFyndTradeContext.js +90 -0
- package/dist/esm/swappers/FyndSwapper/utils/helpers.d.ts +24 -0
- package/dist/esm/swappers/FyndSwapper/utils/helpers.js +162 -0
- package/dist/esm/swappers/FyndSwapper/utils/helpers.test.d.ts +1 -0
- package/dist/esm/swappers/FyndSwapper/utils/helpers.test.js +99 -0
- package/dist/esm/swappers/MayachainSwapper/generated/generatedTradableAssetMap.json +0 -1
- package/dist/esm/swappers/NearIntentsSwapper/constants.d.ts +1 -0
- package/dist/esm/swappers/NearIntentsSwapper/constants.js +2 -0
- package/dist/esm/swappers/NearIntentsSwapper/utils/getNearIntentsStepData.js +10 -5
- package/dist/esm/swappers/NearIntentsSwapper/utils/helpers.js +2 -2
- package/dist/esm/swappers/PortalsSwapper/endpoints.js +4 -1
- package/dist/esm/swappers/PortalsSwapper/getPortalsTradeQuote/getPortalsTradeQuote.js +2 -2
- package/dist/esm/swappers/RelaySwapper/constant.d.ts +1 -1
- package/dist/esm/swappers/RelaySwapper/constant.js +2 -1
- package/dist/esm/swappers/RelaySwapper/getTradeQuote/getTradeQuote.js +3 -5
- package/dist/esm/swappers/RelaySwapper/utils/getRelayAssetAddress.js +3 -2
- package/dist/esm/swappers/RelaySwapper/utils/getRelayStepData.d.ts +2 -3
- package/dist/esm/swappers/RelaySwapper/utils/getRelayStepData.js +46 -13
- package/dist/esm/swappers/RelaySwapper/utils/getRelayStepData.test.d.ts +1 -0
- package/dist/esm/swappers/RelaySwapper/utils/getRelayStepData.test.js +137 -0
- package/dist/esm/swappers/RelaySwapper/utils/getRelayTradeContext.d.ts +1 -0
- package/dist/esm/swappers/RelaySwapper/utils/getRelayTradeContext.js +5 -1
- package/dist/esm/swappers/RelaySwapper/utils/helpers.js +1 -2
- package/dist/esm/swappers/RelaySwapper/utils/relayStatus.js +3 -3
- package/dist/esm/swappers/RelaySwapper/utils/relayTokenToAssetId.js +3 -3
- package/dist/esm/swappers/RelaySwapper/utils/types.d.ts +10 -8
- package/dist/esm/swappers/SunioSwapper/endpoints.js +5 -65
- package/dist/esm/swappers/SunioSwapper/getSunioTradeQuote/getSunioTradeQuote.js +3 -4
- package/dist/esm/swappers/SunioSwapper/getSunioTradeRate/getSunioTradeRate.js +7 -1
- package/dist/esm/swappers/SunioSwapper/types.d.ts +0 -3
- package/dist/esm/swappers/SunioSwapper/utils/buildSwapContractCall.d.ts +11 -6
- package/dist/esm/swappers/SunioSwapper/utils/buildSwapContractCall.js +31 -28
- package/dist/esm/swappers/SunioSwapper/utils/constants.d.ts +3 -3
- package/dist/esm/swappers/SunioSwapper/utils/constants.js +4 -8
- package/dist/esm/swappers/SunioSwapper/utils/getSunioStepData.d.ts +8 -3
- package/dist/esm/swappers/SunioSwapper/utils/getSunioStepData.js +52 -18
- package/dist/esm/swappers/SunioSwapper/utils/getSunioStepData.test.d.ts +1 -0
- package/dist/esm/swappers/SunioSwapper/utils/getSunioStepData.test.js +175 -0
- package/dist/esm/swappers/SunioSwapper/utils/getSunioTradeContext.js +2 -1
- package/dist/esm/swappers/SunioSwapper/utils/helpers.js +3 -2
- package/dist/esm/swappers/SymbiosisSwapper/SymbiosisSwapper.d.ts +2 -0
- package/dist/esm/swappers/SymbiosisSwapper/SymbiosisSwapper.js +5 -0
- package/dist/esm/swappers/SymbiosisSwapper/endpoints.d.ts +2 -0
- package/dist/esm/swappers/SymbiosisSwapper/endpoints.js +63 -0
- package/dist/esm/swappers/SymbiosisSwapper/getTradeQuote/getTradeQuote.d.ts +4 -0
- package/dist/esm/swappers/SymbiosisSwapper/getTradeQuote/getTradeQuote.js +38 -0
- package/dist/esm/swappers/SymbiosisSwapper/getTradeRate/getTradeRate.d.ts +4 -0
- package/dist/esm/swappers/SymbiosisSwapper/getTradeRate/getTradeRate.js +30 -0
- package/dist/esm/swappers/SymbiosisSwapper/index.d.ts +2 -0
- package/dist/esm/swappers/SymbiosisSwapper/index.js +2 -0
- package/dist/esm/swappers/SymbiosisSwapper/utils/constants.d.ts +19 -0
- package/dist/esm/swappers/SymbiosisSwapper/utils/constants.js +61 -0
- package/dist/esm/swappers/SymbiosisSwapper/utils/getSymbiosisStepData.d.ts +26 -0
- package/dist/esm/swappers/SymbiosisSwapper/utils/getSymbiosisStepData.js +102 -0
- package/dist/esm/swappers/SymbiosisSwapper/utils/getSymbiosisStepData.test.d.ts +1 -0
- package/dist/esm/swappers/SymbiosisSwapper/utils/getSymbiosisStepData.test.js +159 -0
- package/dist/esm/swappers/SymbiosisSwapper/utils/getSymbiosisTradeContext.d.ts +17 -0
- package/dist/esm/swappers/SymbiosisSwapper/utils/getSymbiosisTradeContext.js +139 -0
- package/dist/esm/swappers/SymbiosisSwapper/utils/helpers.d.ts +38 -0
- package/dist/esm/swappers/SymbiosisSwapper/utils/helpers.js +156 -0
- package/dist/esm/swappers/SymbiosisSwapper/utils/helpers.test.d.ts +1 -0
- package/dist/esm/swappers/SymbiosisSwapper/utils/helpers.test.js +149 -0
- package/dist/esm/swappers/SymbiosisSwapper/utils/symbiosisService.d.ts +5 -0
- package/dist/esm/swappers/SymbiosisSwapper/utils/symbiosisService.js +12 -0
- package/dist/esm/swappers/SymbiosisSwapper/utils/types.d.ts +83 -0
- package/dist/esm/swappers/SymbiosisSwapper/utils/types.js +8 -0
- package/dist/esm/swappers/ThorchainSwapper/endpoints.js +4 -5
- package/dist/esm/swappers/ThorchainSwapper/generated/generatedThorLongtailTokens.json +1 -0
- package/dist/esm/swappers/ThorchainSwapper/generated/generatedTradableAssetMap.json +1 -0
- package/dist/esm/swappers/ThorchainSwapper/utils/addL1ToLongtailPartsToMemo/addL1ToLongtailPartsToMemo.js +6 -1
- package/dist/esm/swappers/ThorchainSwapper/utils/addL1ToLongtailPartsToMemo/addL1ToLongtailPartsToMemo.test.js +15 -0
- package/dist/esm/swappers/ThorchainSwapper/utils/assertValidLongtailTrade.js +7 -0
- package/dist/esm/swappers/ThorchainSwapper/utils/getL1ToLongtailQuote.js +0 -2
- package/dist/esm/swappers/ThorchainSwapper/utils/getL1ToLongtailRate.js +0 -2
- package/dist/esm/swappers/ThorchainSwapper/utils/getLongtailQuote.js +1 -1
- package/dist/esm/swappers/ThorchainSwapper/utils/getUniqueAddressSubstring/getUniqueAddressSubstring.d.ts +1 -1
- package/dist/esm/swappers/ThorchainSwapper/utils/getUniqueAddressSubstring/getUniqueAddressSubstring.js +17 -20
- package/dist/esm/swappers/ThorchainSwapper/utils/getUniqueAddressSubstring/getUniqueAddressSubstring.test.js +29 -1
- package/dist/esm/swappers/ZrxSwapper/getZrxTradeQuote/getZrxTradeQuote.js +25 -2
- package/dist/esm/swappers/ZrxSwapper/getZrxTradeQuote/getZrxTradeQuote.test.d.ts +1 -0
- package/dist/esm/swappers/ZrxSwapper/getZrxTradeQuote/getZrxTradeQuote.test.js +108 -0
- package/dist/esm/swappers/ZrxSwapper/types.d.ts +2 -1
- package/dist/esm/swappers/ZrxSwapper/utils/getZrxNativeCheckDeadline.d.ts +1 -0
- package/dist/esm/swappers/ZrxSwapper/utils/getZrxNativeCheckDeadline.js +22 -0
- package/dist/esm/types.d.ts +15 -13
- package/dist/esm/types.js +2 -0
- package/dist/esm/utils/helpers.d.ts +1 -2
- package/dist/esm/utils/helpers.js +9 -33
- package/dist/esm/utils/helpers.test.js +6 -2
- package/dist/esm/utils/thorchain/getThorStepData.js +32 -49
- package/dist/esm/utils/thorchain/getThorStepData.tron.test.d.ts +1 -0
- package/dist/esm/utils/thorchain/getThorStepData.tron.test.js +91 -0
- package/dist/esm/utils/thorchain/index.d.ts +0 -1
- package/dist/esm/utils/thorchain/index.js +0 -1
- package/dist/esm/utils/tron/constants.d.ts +1 -0
- package/dist/esm/utils/tron/constants.js +2 -0
- package/dist/esm/utils/tron/getTronNetworkFeeCryptoBaseUnit.d.ts +27 -0
- package/dist/esm/utils/tron/getTronNetworkFeeCryptoBaseUnit.js +59 -0
- package/dist/esm/utils/tron/getTronNetworkFeeCryptoBaseUnit.test.d.ts +1 -0
- package/dist/esm/utils/tron/getTronNetworkFeeCryptoBaseUnit.test.js +155 -0
- package/dist/esm/utils/tron/getUnsignedTronTransaction.d.ts +2 -1
- package/dist/esm/utils/tron/getUnsignedTronTransaction.js +14 -48
- package/dist/esm/utils/tron/getUnsignedTronTransaction.test.d.ts +1 -0
- package/dist/esm/utils/tron/getUnsignedTronTransaction.test.js +74 -0
- package/dist/esm/utils/tron/index.d.ts +2 -0
- package/dist/esm/utils/tron/index.js +2 -0
- package/package.json +8 -8
- package/dist/cjs/swappers/SunioSwapper/utils/buildSwapRouteParameters.d.ts +0 -14
- package/dist/cjs/swappers/SunioSwapper/utils/buildSwapRouteParameters.js +0 -32
- package/dist/cjs/swappers/SunioSwapper/utils/estimateSunioNetworkFee.d.ts +0 -12
- package/dist/cjs/swappers/SunioSwapper/utils/estimateSunioNetworkFee.js +0 -78
- package/dist/cjs/swappers/SunioSwapper/utils/getSunioTransactionFees.d.ts +0 -2
- package/dist/cjs/swappers/SunioSwapper/utils/getSunioTransactionFees.js +0 -36
- package/dist/cjs/utils/thorchain/tron/getTronTransactionFees.d.ts +0 -2
- package/dist/cjs/utils/thorchain/tron/getTronTransactionFees.js +0 -68
- package/dist/cjs/utils/thorchain/tron/getUnsignedTronTransaction.d.ts +0 -3
- package/dist/cjs/utils/thorchain/tron/getUnsignedTronTransaction.js +0 -35
- package/dist/cjs/utils/thorchain/tron/index.d.ts +0 -2
- package/dist/cjs/utils/thorchain/tron/index.js +0 -18
- package/dist/esm/swappers/SunioSwapper/utils/buildSwapRouteParameters.d.ts +0 -14
- package/dist/esm/swappers/SunioSwapper/utils/buildSwapRouteParameters.js +0 -28
- package/dist/esm/swappers/SunioSwapper/utils/estimateSunioNetworkFee.d.ts +0 -12
- package/dist/esm/swappers/SunioSwapper/utils/estimateSunioNetworkFee.js +0 -74
- package/dist/esm/swappers/SunioSwapper/utils/getSunioTransactionFees.d.ts +0 -2
- package/dist/esm/swappers/SunioSwapper/utils/getSunioTransactionFees.js +0 -32
- package/dist/esm/utils/thorchain/tron/getTronTransactionFees.d.ts +0 -2
- package/dist/esm/utils/thorchain/tron/getTronTransactionFees.js +0 -64
- package/dist/esm/utils/thorchain/tron/getUnsignedTronTransaction.d.ts +0 -3
- package/dist/esm/utils/thorchain/tron/getUnsignedTronTransaction.js +0 -31
- package/dist/esm/utils/thorchain/tron/index.d.ts +0 -2
- package/dist/esm/utils/thorchain/tron/index.js +0 -2
- /package/dist/cjs/swappers/SunioSwapper/utils/{fetchFromSunio.d.ts → fetchSunioQuote.d.ts} +0 -0
- /package/dist/cjs/swappers/SunioSwapper/utils/{fetchFromSunio.js → fetchSunioQuote.js} +0 -0
- /package/dist/esm/swappers/SunioSwapper/utils/{fetchFromSunio.d.ts → fetchSunioQuote.d.ts} +0 -0
- /package/dist/esm/swappers/SunioSwapper/utils/{fetchFromSunio.js → fetchSunioQuote.js} +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { GatewayOrderStatusV3,
|
|
1
|
+
import type { GatewayOrderStatusV3, GatewayQuoteV4, GetQuoteParams } from '@gobob/bob-sdk';
|
|
2
2
|
import { GatewaySDK } from '@gobob/bob-sdk';
|
|
3
3
|
import type { AssetId, ChainId } from '@shapeshiftoss/caip';
|
|
4
4
|
import type { Asset, AssetsByIdPartial } from '@shapeshiftoss/types';
|
|
@@ -8,7 +8,6 @@ import type { SwapErrorRight, SwapperConfig } from '../../../types.js';
|
|
|
8
8
|
import type { BobGatewayChainName } from './constants.js';
|
|
9
9
|
export declare const dummyAddressForChainId: (chainId: ChainId) => string;
|
|
10
10
|
export declare const getBobGatewayClient: (config: SwapperConfig) => GatewaySDK;
|
|
11
|
-
export declare const toTronBase58: (address: string) => string;
|
|
12
11
|
export declare const assetIdToBobGatewayToken: (assetId: string) => string;
|
|
13
12
|
export declare const getBobGatewayAffiliates: (affiliateBps: string) => GetQuoteParams['affiliates'];
|
|
14
13
|
export declare const getBobGatewayQuote: ({ config, sellAsset, buyAsset, sellChainName, buyChainName, sender, recipient, refundAddress, amount, affiliateBps, slippageTolerancePercentageDecimal, }: {
|
|
@@ -23,23 +22,21 @@ export declare const getBobGatewayQuote: ({ config, sellAsset, buyAsset, sellCha
|
|
|
23
22
|
amount: string;
|
|
24
23
|
affiliateBps: string;
|
|
25
24
|
slippageTolerancePercentageDecimal: string | undefined;
|
|
26
|
-
}) => Promise<Result<
|
|
27
|
-
export declare const createBobGatewayOrder: (config: SwapperConfig, quote:
|
|
28
|
-
export declare const
|
|
25
|
+
}) => Promise<Result<GatewayQuoteV4, SwapErrorRight>>;
|
|
26
|
+
export declare const createBobGatewayOrder: (config: SwapperConfig, quote: GatewayQuoteV4) => Promise<import("@sniptt/monads/build/result/result").ResOk<import("@gobob/bob-sdk").GatewayCreateOrderV3, never> | import("@sniptt/monads/build/result/result").ResErr<unknown, SwapErrorRight>>;
|
|
27
|
+
export declare const submitBobGatewayBtcDeposit: ({ config, orderId, bitcoinTxHex, }: {
|
|
29
28
|
config: SwapperConfig;
|
|
30
29
|
orderId: string;
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
buyAsset: Asset;
|
|
34
|
-
}) => Promise<void>;
|
|
30
|
+
bitcoinTxHex: string;
|
|
31
|
+
}) => Promise<string>;
|
|
35
32
|
export declare const mapBobGatewayOrderStatusToTxStatus: (status: GatewayOrderStatusV3) => TxStatus;
|
|
36
|
-
export declare const parseBobGatewayQuote: (quote:
|
|
33
|
+
export declare const parseBobGatewayQuote: (quote: GatewayQuoteV4, buyAsset: Asset, assetsById: AssetsByIdPartial) => {
|
|
37
34
|
buyAmountBeforeFeesCryptoBaseUnit: string;
|
|
38
35
|
buyAmountAfterFeesCryptoBaseUnit: string;
|
|
39
36
|
protocolFees: Partial<Record<AssetId, import("../../../types.js").ProtocolFee>>;
|
|
40
37
|
estimatedExecutionTimeMs: number | undefined;
|
|
41
38
|
};
|
|
42
|
-
export declare const getBobGatewayAllowanceContract: (quote:
|
|
39
|
+
export declare const getBobGatewayAllowanceContract: (quote: GatewayQuoteV4, sellAsset: Asset) => string;
|
|
43
40
|
export declare const assertValidTrade: ({ sellAsset, buyAsset, }: {
|
|
44
41
|
sellAsset: Asset;
|
|
45
42
|
buyAsset: Asset;
|
|
@@ -1,33 +1,27 @@
|
|
|
1
1
|
import { GatewayErrorCode, GatewaySDK, isGatewayError } from '@gobob/bob-sdk';
|
|
2
|
+
import * as bitcoin from '@shapeshiftoss/bitcoinjs-lib';
|
|
2
3
|
import { ASSET_NAMESPACE, btcChainId, ethChainId, fromAssetId, toAssetId, tronChainId, } from '@shapeshiftoss/caip';
|
|
3
|
-
import { isEvmChainId } from '@shapeshiftoss/chain-adapters';
|
|
4
|
+
import { isEvmChainId, tron } from '@shapeshiftoss/chain-adapters';
|
|
4
5
|
import { TxStatus } from '@shapeshiftoss/unchained-client';
|
|
5
6
|
import { bnOrZero, chainIdToFeeAssetId, contractAddressOrUndefined, isToken, } from '@shapeshiftoss/utils';
|
|
6
7
|
import { Err, Ok } from '@sniptt/monads';
|
|
7
|
-
import { TronWeb } from 'tronweb';
|
|
8
8
|
import { getAddress, zeroAddress } from 'viem';
|
|
9
9
|
import { getDefaultSlippageDecimalPercentageForSwapper } from '../../../constants.js';
|
|
10
10
|
import { SwapperName, TradeQuoteError } from '../../../types.js';
|
|
11
11
|
import { createTradeAmountTooSmallErr, makeSwapErrorRight } from '../../../utils/index.js';
|
|
12
12
|
import { getTreasuryAddressFromChainId } from '../../../utils/helpers.js';
|
|
13
|
-
import {
|
|
13
|
+
import { TRON_PLACEHOLDER_ADDRESS } from '../../../utils/tron/index.js';
|
|
14
|
+
import { BOB_GATEWAY_BASE_URL, bobGatewayChainNameToChainId, chainIdToBobGatewayChainName, decimalSlippageToBobBps, DUMMY_BTC_ADDRESS, DUMMY_EVM_ADDRESS, } from './constants.js';
|
|
14
15
|
export const dummyAddressForChainId = (chainId) => {
|
|
15
16
|
if (chainId === btcChainId)
|
|
16
17
|
return DUMMY_BTC_ADDRESS;
|
|
17
18
|
if (chainId === tronChainId)
|
|
18
|
-
return
|
|
19
|
+
return TRON_PLACEHOLDER_ADDRESS;
|
|
19
20
|
return DUMMY_EVM_ADDRESS;
|
|
20
21
|
};
|
|
21
22
|
export const getBobGatewayClient = (config) => {
|
|
22
23
|
return new GatewaySDK({ basePath: BOB_GATEWAY_BASE_URL, apiKey: config.VITE_BOB_GATEWAY_API_KEY });
|
|
23
24
|
};
|
|
24
|
-
export const toTronBase58 = (address) => {
|
|
25
|
-
if (address.startsWith('T'))
|
|
26
|
-
return address;
|
|
27
|
-
if (address.startsWith('0x'))
|
|
28
|
-
return TronWeb.address.fromHex(address.slice(2));
|
|
29
|
-
return TronWeb.address.fromHex(address);
|
|
30
|
-
};
|
|
31
25
|
export const assetIdToBobGatewayToken = (assetId) => {
|
|
32
26
|
// BOB Gateway uses the zero address as the token address for native assets
|
|
33
27
|
if (!isToken(assetId))
|
|
@@ -54,7 +48,6 @@ export const getBobGatewayQuote = async ({ config, sellAsset, buyAsset, sellChai
|
|
|
54
48
|
toUserAddress: recipient,
|
|
55
49
|
amount,
|
|
56
50
|
maxSlippage: Number(slippage),
|
|
57
|
-
ownerAddress: sellChainName === 'bitcoin' ? recipient : sender,
|
|
58
51
|
refundAddress,
|
|
59
52
|
affiliates: getBobGatewayAffiliates(affiliateBps),
|
|
60
53
|
});
|
|
@@ -99,7 +92,7 @@ export const getBobGatewayQuote = async ({ config, sellAsset, buyAsset, sellChai
|
|
|
99
92
|
};
|
|
100
93
|
export const createBobGatewayOrder = async (config, quote) => {
|
|
101
94
|
try {
|
|
102
|
-
const order = await getBobGatewayClient(config).api.
|
|
95
|
+
const order = await getBobGatewayClient(config).api.createOrderV4({ gatewayQuoteV4: quote });
|
|
103
96
|
return Ok(order);
|
|
104
97
|
}
|
|
105
98
|
catch (err) {
|
|
@@ -117,21 +110,11 @@ export const createBobGatewayOrder = async (config, quote) => {
|
|
|
117
110
|
}));
|
|
118
111
|
}
|
|
119
112
|
};
|
|
120
|
-
export const
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
return { onramp: { orderId, bitcoinTxid: txHash } };
|
|
126
|
-
}
|
|
127
|
-
// EVM→BTC
|
|
128
|
-
if (chainIdToBobGatewayChainName[buyAsset.chainId] === 'bitcoin') {
|
|
129
|
-
return { offramp: { orderId, srcChain: sellChainName, srcTxHash: txHash } };
|
|
130
|
-
}
|
|
131
|
-
// EVM→EVM
|
|
132
|
-
return { tokenSwap: { orderId, srcChain: sellChainName, srcTxHash: txHash } };
|
|
133
|
-
})();
|
|
134
|
-
await getBobGatewayClient(config).api.registerTxV3({ registerTxV3 });
|
|
113
|
+
export const submitBobGatewayBtcDeposit = async ({ config, orderId, bitcoinTxHex, }) => {
|
|
114
|
+
await getBobGatewayClient(config).api.registerTxV4({
|
|
115
|
+
registerTxV4: { onramp: { orderId, bitcoinTxHex } },
|
|
116
|
+
});
|
|
117
|
+
return bitcoin.Transaction.fromHex(bitcoinTxHex).getId();
|
|
135
118
|
};
|
|
136
119
|
export const mapBobGatewayOrderStatusToTxStatus = (status) => {
|
|
137
120
|
if ('inProgress' in status)
|
|
@@ -154,7 +137,7 @@ const bobGatewayFeeToAssetId = (fee) => {
|
|
|
154
137
|
return toAssetId({
|
|
155
138
|
chainId,
|
|
156
139
|
assetNamespace: ASSET_NAMESPACE.trc20,
|
|
157
|
-
assetReference: toTronBase58(fee.address),
|
|
140
|
+
assetReference: tron.toTronBase58(fee.address),
|
|
158
141
|
});
|
|
159
142
|
}
|
|
160
143
|
return toAssetId({
|
|
@@ -227,7 +210,7 @@ export const getBobGatewayAllowanceContract = (quote, sellAsset) => {
|
|
|
227
210
|
if (!txTo)
|
|
228
211
|
return '';
|
|
229
212
|
if (isTron)
|
|
230
|
-
return toTronBase58(txTo);
|
|
213
|
+
return tron.toTronBase58(txTo);
|
|
231
214
|
return txTo;
|
|
232
215
|
};
|
|
233
216
|
export const assertValidTrade = ({ sellAsset, buyAsset, }) => {
|
|
@@ -4,7 +4,6 @@ import { Err, Ok } from '@sniptt/monads';
|
|
|
4
4
|
import { getDefaultSlippageDecimalPercentageForSwapper } from '../../../constants.js';
|
|
5
5
|
import { SwapperName, TradeQuoteError } from '../../../types.js';
|
|
6
6
|
import { assertQuoteAddresses, makeSwapErrorRight } from '../../../utils/index.js';
|
|
7
|
-
import { FALLBACK_QUOTE_DEADLINE_MS } from '../../../utils/helpers.js';
|
|
8
7
|
import { getButterSwapStepData } from '../utils/getButterSwapStepData.js';
|
|
9
8
|
import { getButterSwapTradeContext } from '../utils/getButterSwapTradeContext.js';
|
|
10
9
|
import { fetchTxData, isBuildTxSuccess } from '../xhr.js';
|
|
@@ -56,20 +55,18 @@ export const getTradeQuote = async (input, deps) => {
|
|
|
56
55
|
});
|
|
57
56
|
if (maybeStepData.isErr())
|
|
58
57
|
return Err(maybeStepData.unwrapErr());
|
|
59
|
-
const { networkFeeCryptoBaseUnit, transactionData
|
|
58
|
+
const { networkFeeCryptoBaseUnit, transactionData } = maybeStepData.unwrap();
|
|
60
59
|
const tradeQuote = {
|
|
61
60
|
...tradeCommon,
|
|
62
61
|
quoteOrRate: 'quote',
|
|
63
|
-
deadline: Date.now() + FALLBACK_QUOTE_DEADLINE_MS,
|
|
64
62
|
receiveAddress,
|
|
65
63
|
steps: [
|
|
66
64
|
{
|
|
67
65
|
...stepCommon,
|
|
68
66
|
accountNumber,
|
|
69
|
-
// Tron
|
|
67
|
+
// Tron routes pull the sell token from the buildTx target
|
|
70
68
|
allowanceContract: sellAsset.chainId === tronChainId ? buildTx.to : stepCommon.allowanceContract,
|
|
71
69
|
transactionData,
|
|
72
|
-
butterSwapTransactionMetadata,
|
|
73
70
|
feeData: { networkFeeCryptoBaseUnit, protocolFees },
|
|
74
71
|
},
|
|
75
72
|
],
|
|
@@ -2,17 +2,6 @@ import type { Hex } from 'viem';
|
|
|
2
2
|
import type { GetEvmTradeQuoteInput, GetEvmTradeRateInput, GetSolanaTradeQuoteInput, GetSolanaTradeRateInput, GetTronTradeQuoteInput, GetTronTradeRateInput } from '../../types.js';
|
|
3
3
|
export type ButterSwapTradeQuoteInput = GetEvmTradeQuoteInput | GetSolanaTradeQuoteInput | GetTronTradeQuoteInput;
|
|
4
4
|
export type ButterSwapTradeRateInput = GetEvmTradeRateInput | GetSolanaTradeRateInput | GetTronTradeRateInput;
|
|
5
|
-
export type ButterSwapTransactionMetadata = {
|
|
6
|
-
to: string;
|
|
7
|
-
data: string;
|
|
8
|
-
value: Hex;
|
|
9
|
-
method?: string;
|
|
10
|
-
args?: {
|
|
11
|
-
type: string;
|
|
12
|
-
value: unknown;
|
|
13
|
-
}[];
|
|
14
|
-
memo?: string;
|
|
15
|
-
};
|
|
16
5
|
export type ErrorType = {
|
|
17
6
|
errno: number;
|
|
18
7
|
message: string;
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import { bnOrZero } from '@shapeshiftoss/utils';
|
|
2
2
|
const BUTTERSWAP_AFFILIATE = 'shapeshift';
|
|
3
|
+
// The router's total energy per swap, before its deployer's share comes off
|
|
4
|
+
export const BUTTERSWAP_TRON_FALLBACK_SWAP_ENERGY = '1000000';
|
|
5
|
+
export const BUTTERSWAP_TRON_DEFAULT_BANDWIDTH_BYTES = 2400;
|
|
3
6
|
// Format is `<nickname>[:rate]`, where rate is in basis points (e.g. `shapeshift:60` = 0.6%).
|
|
4
7
|
export const makeButterSwapAffiliate = (affiliateBps) => {
|
|
5
8
|
if (bnOrZero(affiliateBps).lte(0))
|
|
@@ -2,7 +2,7 @@ import type { Asset } from '@shapeshiftoss/types';
|
|
|
2
2
|
import type { Result } from '@sniptt/monads';
|
|
3
3
|
import type { StepDataArgs, SwapErrorRight, TxBuildData } from '../../../types.js';
|
|
4
4
|
import type { SolanaComputeBudgetOptions } from '../../../utils/solana/index.js';
|
|
5
|
-
import type { BuildTxSuccessItem,
|
|
5
|
+
import type { BuildTxSuccessItem, RouteSuccessItem } from '../types.js';
|
|
6
6
|
export declare const BUTTERSWAP_SOLANA_COMPUTE_BUDGET: SolanaComputeBudgetOptions;
|
|
7
7
|
type BaseArgs = {
|
|
8
8
|
route: RouteSuccessItem;
|
|
@@ -19,8 +19,7 @@ type ButterSwapRateStepData = {
|
|
|
19
19
|
networkFeeCryptoBaseUnit: string;
|
|
20
20
|
};
|
|
21
21
|
type ButterSwapQuoteStepData = {
|
|
22
|
-
transactionData
|
|
23
|
-
butterSwapTransactionMetadata?: ButterSwapTransactionMetadata;
|
|
22
|
+
transactionData: TxBuildData;
|
|
24
23
|
networkFeeCryptoBaseUnit: string;
|
|
25
24
|
};
|
|
26
25
|
export declare function getButterSwapStepData(args: Extract<GetButterSwapStepDataArgs, {
|
|
@@ -7,6 +7,8 @@ import { TradeQuoteError } from '../../../types.js';
|
|
|
7
7
|
import { makeNetworkFeeEstimationFailedErr, makeSwapErrorRight, makeTradeStepBuildFailedErr, } from '../../../utils/index.js';
|
|
8
8
|
import { getEvmNetworkFeeCryptoBaseUnit } from '../../../utils/evm/index.js';
|
|
9
9
|
import { getSolanaNetworkFeeCryptoBaseUnit, omitComputeBudgetInstructions, withComputeUnitLimit, } from '../../../utils/solana/index.js';
|
|
10
|
+
import { getTronContractCallFallbackFeeCryptoBaseUnit, getTronContractCallNetworkFeeCryptoBaseUnit, } from '../../../utils/tron/index.js';
|
|
11
|
+
import { BUTTERSWAP_TRON_DEFAULT_BANDWIDTH_BYTES, BUTTERSWAP_TRON_FALLBACK_SWAP_ENERGY, } from './constants.js';
|
|
10
12
|
import { getProviderNetworkFeeCryptoBaseUnit } from './helpers.js';
|
|
11
13
|
// Jupiter swap legs can consume more units than simulated when pool state moves between
|
|
12
14
|
// simulation and landing (CLMM tick crossings), 1.4 matches Jupiter's dynamicComputeUnitLimit margin
|
|
@@ -114,26 +116,52 @@ export async function getButterSwapStepData(args) {
|
|
|
114
116
|
return Err(makeTradeStepBuildFailedErr('getButterSwapStepData', error));
|
|
115
117
|
}
|
|
116
118
|
}
|
|
117
|
-
// Not yet migrated to a TxBuildData variant - exec still builds from legacy metadata
|
|
118
119
|
case CHAIN_NAMESPACE.Tron: {
|
|
119
|
-
const
|
|
120
|
+
const adapter = deps.assertGetTronChainAdapter(sellAsset.chainId);
|
|
120
121
|
if (args.type === 'rate') {
|
|
122
|
+
// Butter's gasFee is a fraction of what the router burns, so rates price the measured swap at the router's share
|
|
123
|
+
const networkFeeCryptoBaseUnit = await (async () => {
|
|
124
|
+
if (!route.contract)
|
|
125
|
+
return getProviderNetworkFeeCryptoBaseUnit({ route, feeAsset });
|
|
126
|
+
try {
|
|
127
|
+
return await getTronContractCallFallbackFeeCryptoBaseUnit({
|
|
128
|
+
adapter,
|
|
129
|
+
energy: BUTTERSWAP_TRON_FALLBACK_SWAP_ENERGY,
|
|
130
|
+
bandwidthBytes: BUTTERSWAP_TRON_DEFAULT_BANDWIDTH_BYTES,
|
|
131
|
+
contractAddress: route.contract,
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
catch {
|
|
135
|
+
return getProviderNetworkFeeCryptoBaseUnit({ route, feeAsset });
|
|
136
|
+
}
|
|
137
|
+
})();
|
|
121
138
|
const stepData = { networkFeeCryptoBaseUnit };
|
|
122
139
|
return Ok(stepData);
|
|
123
140
|
}
|
|
124
|
-
const { buildTx } = args;
|
|
125
|
-
const
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
value: buildTx.value,
|
|
130
|
-
method: buildTx.method,
|
|
131
|
-
args: buildTx.args,
|
|
132
|
-
memo: buildTx.memo,
|
|
133
|
-
},
|
|
134
|
-
networkFeeCryptoBaseUnit,
|
|
141
|
+
const { buildTx, from } = args;
|
|
142
|
+
const call = {
|
|
143
|
+
to: buildTx.to,
|
|
144
|
+
data: buildTx.data,
|
|
145
|
+
value: fromHex(buildTx.value, 'bigint').toString(),
|
|
135
146
|
};
|
|
136
|
-
|
|
147
|
+
try {
|
|
148
|
+
const stepData = {
|
|
149
|
+
transactionData: { type: 'tron', ...call },
|
|
150
|
+
networkFeeCryptoBaseUnit: await getTronContractCallNetworkFeeCryptoBaseUnit({
|
|
151
|
+
adapter,
|
|
152
|
+
transactionData: call,
|
|
153
|
+
from,
|
|
154
|
+
sellAsset,
|
|
155
|
+
sellAmountCryptoBaseUnit,
|
|
156
|
+
spenderAddress: buildTx.to,
|
|
157
|
+
fallbackEnergy: BUTTERSWAP_TRON_FALLBACK_SWAP_ENERGY,
|
|
158
|
+
}),
|
|
159
|
+
};
|
|
160
|
+
return Ok(stepData);
|
|
161
|
+
}
|
|
162
|
+
catch (error) {
|
|
163
|
+
return Err(makeNetworkFeeEstimationFailedErr('getButterSwapStepData', error));
|
|
164
|
+
}
|
|
137
165
|
}
|
|
138
166
|
default:
|
|
139
167
|
return Err(makeSwapErrorRight({
|
|
@@ -15,6 +15,11 @@ const route = ROUTE_QUOTE.data[0];
|
|
|
15
15
|
const PROVIDER_GAS_FEE_BASE_UNIT = '1333043669759539'; // 0.001333043669759539 ETH
|
|
16
16
|
const SOL = { ...ETH, assetId: `${solanaChainId}/slip44:501`, chainId: solanaChainId };
|
|
17
17
|
const TRX = { ...ETH, assetId: `${tronChainId}/slip44:195`, chainId: tronChainId };
|
|
18
|
+
const USDT_TRON = {
|
|
19
|
+
...ETH,
|
|
20
|
+
assetId: `${tronChainId}/trc20:TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t`,
|
|
21
|
+
chainId: tronChainId,
|
|
22
|
+
};
|
|
18
23
|
const evmBuildTx = {
|
|
19
24
|
to: '0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE',
|
|
20
25
|
data: '0xdeadbeef',
|
|
@@ -25,6 +30,7 @@ const makeDeps = (adapters) => ({
|
|
|
25
30
|
assertGetEvmChainAdapter: () => adapters.evm,
|
|
26
31
|
assertGetUtxoChainAdapter: () => adapters.utxo,
|
|
27
32
|
assertGetSolanaChainAdapter: () => adapters.solana,
|
|
33
|
+
assertGetTronChainAdapter: () => adapters.tron,
|
|
28
34
|
});
|
|
29
35
|
const evmAdapter = ({ gasPrice = '1000000000', estimatedGasLimit = '500000', throwOnGasFeeData = false, throwOnFeeData = false, } = {}) => ({
|
|
30
36
|
getGasFeeData: () => {
|
|
@@ -153,36 +159,133 @@ describe('getButterSwapStepData', () => {
|
|
|
153
159
|
});
|
|
154
160
|
});
|
|
155
161
|
describe('tron', () => {
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
162
|
+
const tronBuildTx = { ...evmBuildTx, to: 'TRouterAddress' };
|
|
163
|
+
const tronAdapter = ({ txFee = '9000000', allowance = '0' } = {}) => ({
|
|
164
|
+
getFeeData: vi.fn().mockResolvedValue({ fast: { txFee } }),
|
|
165
|
+
httpProvider: {
|
|
166
|
+
getChainPrices: () => Promise.resolve({ energyPrice: 100, bandwidthPrice: 1000 }),
|
|
167
|
+
getTrc20Allowance: vi.fn().mockResolvedValue(allowance),
|
|
168
|
+
getTrc20Balance: vi.fn().mockResolvedValue('100000000'),
|
|
169
|
+
getContractEnergyShare: vi.fn().mockResolvedValue({
|
|
170
|
+
callerPercent: 100,
|
|
171
|
+
originEnergyLimit: 0,
|
|
172
|
+
originEnergyAvailable: 0,
|
|
173
|
+
}),
|
|
174
|
+
},
|
|
175
|
+
});
|
|
176
|
+
it('carries the router call as transactionData and simulates it', async () => {
|
|
177
|
+
const adapter = tronAdapter();
|
|
178
|
+
const actual = await getButterSwapStepData({
|
|
179
|
+
type: 'quote',
|
|
180
|
+
input: {},
|
|
181
|
+
from: 'TSenderAddress',
|
|
182
|
+
buildTx: tronBuildTx,
|
|
183
|
+
deps: makeDeps({ tron: adapter }),
|
|
184
|
+
route,
|
|
185
|
+
sellAsset: TRX,
|
|
186
|
+
feeAsset: TRX,
|
|
187
|
+
sellAmountCryptoBaseUnit: '1000000',
|
|
188
|
+
spenderAddress: '',
|
|
189
|
+
});
|
|
190
|
+
// Butter's value is the native amount to send: the sell amount for a native sell, 0 for a token
|
|
191
|
+
const transactionData = {
|
|
192
|
+
type: 'tron',
|
|
159
193
|
to: 'TRouterAddress',
|
|
160
|
-
|
|
161
|
-
|
|
194
|
+
data: evmBuildTx.data,
|
|
195
|
+
value: '100000000000000000',
|
|
162
196
|
};
|
|
197
|
+
expect(actual.unwrap()).toEqual({ transactionData, networkFeeCryptoBaseUnit: '9000000' });
|
|
198
|
+
expect(adapter.getFeeData).toHaveBeenCalledWith({
|
|
199
|
+
to: 'TRouterAddress',
|
|
200
|
+
value: '100000000000000000',
|
|
201
|
+
chainSpecific: { from: 'TSenderAddress', data: evmBuildTx.data, requireEnergyShare: true },
|
|
202
|
+
});
|
|
203
|
+
});
|
|
204
|
+
it('uses the provider value for a token sell', async () => {
|
|
163
205
|
const actual = await getButterSwapStepData({
|
|
164
206
|
type: 'quote',
|
|
165
207
|
input: {},
|
|
166
208
|
from: 'TSenderAddress',
|
|
167
|
-
buildTx,
|
|
168
|
-
deps: {},
|
|
209
|
+
buildTx: { ...tronBuildTx, value: '0x00' },
|
|
210
|
+
deps: makeDeps({ tron: tronAdapter() }),
|
|
211
|
+
route,
|
|
212
|
+
sellAsset: USDT_TRON,
|
|
213
|
+
feeAsset: TRX,
|
|
214
|
+
sellAmountCryptoBaseUnit: '1000000',
|
|
215
|
+
spenderAddress: '',
|
|
216
|
+
});
|
|
217
|
+
expect(actual.unwrap().transactionData).toMatchObject({ value: '0' });
|
|
218
|
+
});
|
|
219
|
+
it('fails a native quote when the simulation fails', async () => {
|
|
220
|
+
const adapter = tronAdapter();
|
|
221
|
+
adapter.getFeeData.mockRejectedValue(new Error('REVERT opcode executed'));
|
|
222
|
+
const actual = await getButterSwapStepData({
|
|
223
|
+
type: 'quote',
|
|
224
|
+
input: {},
|
|
225
|
+
from: 'TSenderAddress',
|
|
226
|
+
buildTx: tronBuildTx,
|
|
227
|
+
deps: makeDeps({ tron: adapter }),
|
|
169
228
|
route,
|
|
170
229
|
sellAsset: TRX,
|
|
171
230
|
feeAsset: TRX,
|
|
172
231
|
sellAmountCryptoBaseUnit: '1000000',
|
|
173
232
|
spenderAddress: '',
|
|
174
233
|
});
|
|
175
|
-
expect(actual.
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
},
|
|
234
|
+
expect(actual.isErr()).toBe(true);
|
|
235
|
+
});
|
|
236
|
+
it('prices the measured worst case when a token allowance is not granted yet', async () => {
|
|
237
|
+
const adapter = tronAdapter({ allowance: '0' });
|
|
238
|
+
adapter.getFeeData.mockRejectedValue(new Error('REVERT opcode executed'));
|
|
239
|
+
const actual = await getButterSwapStepData({
|
|
240
|
+
type: 'quote',
|
|
241
|
+
input: {},
|
|
242
|
+
from: 'TSenderAddress',
|
|
243
|
+
buildTx: { ...tronBuildTx, value: '0x00' },
|
|
244
|
+
deps: makeDeps({ tron: adapter }),
|
|
245
|
+
route,
|
|
246
|
+
sellAsset: USDT_TRON,
|
|
247
|
+
feeAsset: TRX,
|
|
248
|
+
sellAmountCryptoBaseUnit: '1000000',
|
|
249
|
+
spenderAddress: '',
|
|
250
|
+
});
|
|
251
|
+
// 1000000 energy * 1.2 margin * 100 sun + (4 calldata + 279 envelope) bytes * 1000 sun
|
|
252
|
+
expect(actual.unwrap().networkFeeCryptoBaseUnit).toBe('120283000');
|
|
253
|
+
});
|
|
254
|
+
it('rates price the measured swap at the router share', async () => {
|
|
255
|
+
const adapter = tronAdapter();
|
|
256
|
+
adapter.httpProvider.getContractEnergyShare.mockResolvedValue({
|
|
257
|
+
callerPercent: 5,
|
|
258
|
+
originEnergyLimit: 10_000_000,
|
|
259
|
+
originEnergyAvailable: 5_000_000,
|
|
260
|
+
});
|
|
261
|
+
const actual = await getButterSwapStepData({
|
|
262
|
+
type: 'rate',
|
|
263
|
+
input: {},
|
|
264
|
+
deps: makeDeps({ tron: adapter }),
|
|
265
|
+
route: { ...route, contract: 'TRouterAddress' },
|
|
266
|
+
sellAsset: TRX,
|
|
267
|
+
feeAsset: TRX,
|
|
268
|
+
sellAmountCryptoBaseUnit: '1000000',
|
|
269
|
+
spenderAddress: '',
|
|
270
|
+
});
|
|
271
|
+
// 1000000 * 5% caller energy * 1.2 margin * 100 sun + 2400 bytes * 1000 sun
|
|
272
|
+
expect(actual.unwrap()).toEqual({ networkFeeCryptoBaseUnit: '8400000' });
|
|
273
|
+
expect(adapter.httpProvider.getContractEnergyShare).toHaveBeenCalledWith('TRouterAddress');
|
|
274
|
+
});
|
|
275
|
+
it('rates fall back to the provider fee when the worst case cannot be priced', async () => {
|
|
276
|
+
const adapter = tronAdapter();
|
|
277
|
+
adapter.httpProvider.getContractEnergyShare.mockRejectedValue(new Error('429'));
|
|
278
|
+
const actual = await getButterSwapStepData({
|
|
279
|
+
type: 'rate',
|
|
280
|
+
input: {},
|
|
281
|
+
deps: makeDeps({ tron: adapter }),
|
|
282
|
+
route: { ...route, contract: 'TRouterAddress' },
|
|
283
|
+
sellAsset: TRX,
|
|
284
|
+
feeAsset: TRX,
|
|
285
|
+
sellAmountCryptoBaseUnit: '1000000',
|
|
286
|
+
spenderAddress: '',
|
|
185
287
|
});
|
|
288
|
+
expect(actual.unwrap()).toEqual({ networkFeeCryptoBaseUnit: PROVIDER_GAS_FEE_BASE_UNIT });
|
|
186
289
|
});
|
|
187
290
|
});
|
|
188
291
|
it('errors on an unsupported chain namespace', async () => {
|
|
@@ -40,8 +40,7 @@ export const assertValidTrade = ({ sellAsset, }) => {
|
|
|
40
40
|
}
|
|
41
41
|
return Ok(undefined);
|
|
42
42
|
};
|
|
43
|
-
// Provider reported network fee - the
|
|
44
|
-
// un-migrated tron quote path (exec computes the real fee at execution)
|
|
43
|
+
// Provider reported network fee - the fallback when estimation fails
|
|
45
44
|
export const getProviderNetworkFeeCryptoBaseUnit = ({ route, feeAsset, }) => {
|
|
46
45
|
if (bnOrZero(route.gasFee?.amount).lte(0))
|
|
47
46
|
return '0';
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { fromAssetId, solanaChainId, tronChainId } from '@shapeshiftoss/caip';
|
|
2
|
+
import { tron } from '@shapeshiftoss/chain-adapters';
|
|
2
3
|
import { chainIdToFeeAssetId } from '@shapeshiftoss/utils';
|
|
3
4
|
import { Err, Ok } from '@sniptt/monads';
|
|
4
5
|
import { zeroAddress } from 'viem';
|
|
@@ -20,7 +21,6 @@ export var ButterSwapErrorCode;
|
|
|
20
21
|
ButterSwapErrorCode[ButterSwapErrorCode["InvalidAddress"] = 2007] = "InvalidAddress";
|
|
21
22
|
})(ButterSwapErrorCode || (ButterSwapErrorCode = {}));
|
|
22
23
|
const SOLANA_NATIVE_ADDRESS = 'So11111111111111111111111111111111111111112';
|
|
23
|
-
const TRON_NATIVE_ADDRESS = 'T9yD14Nj9j7xAB4dbGeiX9h8unkKHxuWwb';
|
|
24
24
|
export const getButterRoute = async ({ sellAsset, buyAsset, sellAmountCryptoPrecision, slippage, affiliate, }) => {
|
|
25
25
|
const butterFromChainId = chainIdToButterSwapChainId(sellAsset.chainId);
|
|
26
26
|
const butterToChainId = chainIdToButterSwapChainId(buyAsset.chainId);
|
|
@@ -39,7 +39,7 @@ export const getButterRoute = async ({ sellAsset, buyAsset, sellAmountCryptoPrec
|
|
|
39
39
|
if (sellAsset.chainId === solanaChainId && sellAssetIsNative)
|
|
40
40
|
return SOLANA_NATIVE_ADDRESS;
|
|
41
41
|
if (sellAsset.chainId === tronChainId && sellAssetIsNative)
|
|
42
|
-
return
|
|
42
|
+
return tron.TRON_ZERO_ADDRESS;
|
|
43
43
|
if (sellAssetIsNative)
|
|
44
44
|
return zeroAddress;
|
|
45
45
|
return sellAssetAddressRaw;
|
|
@@ -48,7 +48,7 @@ export const getButterRoute = async ({ sellAsset, buyAsset, sellAmountCryptoPrec
|
|
|
48
48
|
if (buyAsset.chainId === solanaChainId && buyAssetIsNative)
|
|
49
49
|
return SOLANA_NATIVE_ADDRESS;
|
|
50
50
|
if (buyAsset.chainId === tronChainId && buyAssetIsNative)
|
|
51
|
-
return
|
|
51
|
+
return tron.TRON_ZERO_ADDRESS;
|
|
52
52
|
if (buyAssetIsNative)
|
|
53
53
|
return zeroAddress;
|
|
54
54
|
return buyAssetAddressRaw;
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { Err, Ok } from '@sniptt/monads';
|
|
2
2
|
import { assertQuoteAddresses } from '../../../utils/index.js';
|
|
3
|
-
import { FALLBACK_QUOTE_DEADLINE_MS } from '../../../utils/helpers.js';
|
|
4
3
|
import { getCetusStepData } from './getCetusStepData.js';
|
|
5
4
|
import { getCetusTradeContext } from './getCetusTradeContext.js';
|
|
6
5
|
export const getTradeQuote = async (input, deps) => {
|
|
@@ -25,7 +24,6 @@ export const getTradeQuote = async (input, deps) => {
|
|
|
25
24
|
const tradeQuote = {
|
|
26
25
|
...tradeCommon,
|
|
27
26
|
quoteOrRate: 'quote',
|
|
28
|
-
deadline: Date.now() + FALLBACK_QUOTE_DEADLINE_MS,
|
|
29
27
|
receiveAddress,
|
|
30
28
|
steps: [
|
|
31
29
|
{
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { TxStatus } from '@shapeshiftoss/unchained-client';
|
|
2
|
-
import {
|
|
3
|
-
import { getExecutableTradeStep, getSwapMetadata, isExecutableTradeQuote } from '../../utils/index.js';
|
|
2
|
+
import { getSwapMetadata } from '../../utils/index.js';
|
|
4
3
|
import { getEvmTransactionFees, getUnsignedEvmTransaction } from '../../utils/evm/index.js';
|
|
5
4
|
import { getSolanaTransactionFees, getUnsignedSolanaTransaction } from '../../utils/solana/index.js';
|
|
6
|
-
import { getTronTransactionFees } from '../../utils/tron/index.js';
|
|
5
|
+
import { getTronTransactionFees, getUnsignedTronTransaction } from '../../utils/tron/index.js';
|
|
7
6
|
import { getUnsignedUtxoTransaction, getUtxoTransactionFees } from '../../utils/utxo/index.js';
|
|
8
7
|
import { ChainflipStatusMessage } from './constants.js';
|
|
9
8
|
import { getTradeQuote } from './swapperApi/getTradeQuote.js';
|
|
@@ -19,22 +18,7 @@ export const chainflipApi = {
|
|
|
19
18
|
getUtxoTransactionFees,
|
|
20
19
|
getUnsignedSolanaTransaction,
|
|
21
20
|
getSolanaTransactionFees,
|
|
22
|
-
getUnsignedTronTransaction
|
|
23
|
-
if (!isExecutableTradeQuote(tradeQuote))
|
|
24
|
-
throw new Error('Unable to execute a trade rate quote');
|
|
25
|
-
const step = getExecutableTradeStep(tradeQuote, stepIndex);
|
|
26
|
-
const { accountNumber, chainflipSpecific, sellAsset } = step;
|
|
27
|
-
if (!chainflipSpecific?.depositAddress)
|
|
28
|
-
throw Error('Missing deposit address');
|
|
29
|
-
const adapter = assertGetTronChainAdapter(sellAsset.chainId);
|
|
30
|
-
return adapter.buildSendApiTransaction({
|
|
31
|
-
to: chainflipSpecific.depositAddress,
|
|
32
|
-
from,
|
|
33
|
-
value: step.sellAmountIncludingProtocolFeesCryptoBaseUnit,
|
|
34
|
-
accountNumber,
|
|
35
|
-
chainSpecific: { contractAddress: contractAddressOrUndefined(sellAsset.assetId) },
|
|
36
|
-
});
|
|
37
|
-
},
|
|
21
|
+
getUnsignedTronTransaction,
|
|
38
22
|
getTronTransactionFees,
|
|
39
23
|
checkTradeStatus: async ({ config, swap }) => {
|
|
40
24
|
if (!swap)
|
|
@@ -73,8 +73,7 @@ export const getTradeQuote = async (input, deps) => {
|
|
|
73
73
|
{
|
|
74
74
|
...stepCommon,
|
|
75
75
|
accountNumber,
|
|
76
|
-
|
|
77
|
-
swapperMetadata: { name: 'chainflip', swapId },
|
|
76
|
+
swapperMetadata: { name: 'chainflip', swapId, depositAddress },
|
|
78
77
|
transactionData,
|
|
79
78
|
feeData: { networkFeeCryptoBaseUnit, protocolFees },
|
|
80
79
|
},
|
|
@@ -14,7 +14,7 @@ type ChainflipRateStepData = {
|
|
|
14
14
|
networkFeeCryptoBaseUnit: string | undefined;
|
|
15
15
|
};
|
|
16
16
|
type ChainflipQuoteStepData = {
|
|
17
|
-
transactionData
|
|
17
|
+
transactionData: TxBuildData;
|
|
18
18
|
networkFeeCryptoBaseUnit: string | undefined;
|
|
19
19
|
};
|
|
20
20
|
export declare function getChainflipStepData(args: Extract<GetChainflipStepDataArgs, {
|