@shapeshiftoss/swapper 20.3.0 → 20.5.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 +21 -0
- package/dist/cjs/index.d.ts +3 -0
- package/dist/cjs/index.js +3 -0
- package/dist/cjs/swappers/AcrossSwapper/utils/getAcrossStepData.js +7 -15
- package/dist/cjs/swappers/ArbitrumBridgeSwapper/getTradeQuote/getTradeQuote.js +0 -2
- package/dist/cjs/swappers/AvnuSwapper/endpoints.js +17 -12
- 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/BebopSwapper/utils/getBebopStepData.js +17 -22
- package/dist/cjs/swappers/BobGatewaySwapper/swapperApi/getTradeQuote.js +0 -2
- package/dist/cjs/swappers/ButterSwap/swapperApi/getTradeQuote.js +0 -2
- package/dist/cjs/swappers/ButterSwap/swapperApi/getTradeQuote.test.js +1 -0
- package/dist/cjs/swappers/ButterSwap/swapperApi/getTradeRate.test.js +1 -0
- package/dist/cjs/swappers/ButterSwap/utils/getButterSwapStepData.js +3 -4
- package/dist/cjs/swappers/ButterSwap/utils/getButterSwapStepData.test.js +2 -2
- package/dist/cjs/swappers/CetusSwapper/endpoints.js +2 -3
- package/dist/cjs/swappers/CetusSwapper/swapperApi/getCetusStepData.js +13 -8
- package/dist/cjs/swappers/CetusSwapper/swapperApi/getCetusTradeContext.js +1 -2
- package/dist/cjs/swappers/CetusSwapper/swapperApi/getTradeQuote.js +0 -2
- package/dist/cjs/swappers/CetusSwapper/utils/constants.d.ts +0 -1
- package/dist/cjs/swappers/CetusSwapper/utils/constants.js +1 -2
- package/dist/cjs/swappers/CetusSwapper/utils/helpers.d.ts +3 -3
- package/dist/cjs/swappers/CetusSwapper/utils/helpers.js +6 -17
- package/dist/cjs/swappers/ChainflipSwapper/swapperApi/getTradeQuote.js +1 -2
- package/dist/cjs/swappers/ChainflipSwapper/types.d.ts +1 -0
- package/dist/cjs/swappers/DebridgeSwapper/getTradeQuote/getTradeQuote.js +0 -2
- package/dist/cjs/swappers/DebridgeSwapper/utils/getDebridgeStepData.d.ts +0 -1
- package/dist/cjs/swappers/DebridgeSwapper/utils/getDebridgeStepData.js +9 -16
- package/dist/cjs/swappers/DebridgeSwapper/utils/getDebridgeTradeContext.js +0 -3
- 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 +46 -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/KyberSwapper/KyberSwapper.d.ts +2 -0
- package/dist/cjs/swappers/KyberSwapper/KyberSwapper.js +5 -0
- package/dist/cjs/swappers/KyberSwapper/endpoints.d.ts +2 -0
- package/dist/cjs/swappers/KyberSwapper/endpoints.js +14 -0
- package/dist/cjs/swappers/KyberSwapper/index.d.ts +2 -0
- package/dist/cjs/swappers/KyberSwapper/index.js +7 -0
- package/dist/cjs/swappers/KyberSwapper/swapperApi/getKyberTradeQuote.d.ts +4 -0
- package/dist/cjs/swappers/KyberSwapper/swapperApi/getKyberTradeQuote.js +64 -0
- package/dist/cjs/swappers/KyberSwapper/swapperApi/getKyberTradeRate.d.ts +4 -0
- package/dist/cjs/swappers/KyberSwapper/swapperApi/getKyberTradeRate.js +31 -0
- package/dist/cjs/swappers/KyberSwapper/types.d.ts +62 -0
- package/dist/cjs/swappers/KyberSwapper/types.js +2 -0
- package/dist/cjs/swappers/KyberSwapper/utils/constants.d.ts +21 -0
- package/dist/cjs/swappers/KyberSwapper/utils/constants.js +24 -0
- package/dist/cjs/swappers/KyberSwapper/utils/fetchFromKyber.d.ts +23 -0
- package/dist/cjs/swappers/KyberSwapper/utils/fetchFromKyber.js +38 -0
- package/dist/cjs/swappers/KyberSwapper/utils/getKyberStepData.d.ts +27 -0
- package/dist/cjs/swappers/KyberSwapper/utils/getKyberStepData.js +47 -0
- package/dist/cjs/swappers/KyberSwapper/utils/getKyberStepData.test.d.ts +1 -0
- package/dist/cjs/swappers/KyberSwapper/utils/getKyberStepData.test.js +92 -0
- package/dist/cjs/swappers/KyberSwapper/utils/getKyberTradeContext.d.ts +20 -0
- package/dist/cjs/swappers/KyberSwapper/utils/getKyberTradeContext.js +63 -0
- package/dist/cjs/swappers/KyberSwapper/utils/helpers.d.ts +27 -0
- package/dist/cjs/swappers/KyberSwapper/utils/helpers.js +172 -0
- package/dist/cjs/swappers/KyberSwapper/utils/helpers.test.d.ts +1 -0
- package/dist/cjs/swappers/KyberSwapper/utils/helpers.test.js +110 -0
- package/dist/cjs/swappers/KyberSwapper/utils/kyberService.d.ts +5 -0
- package/dist/cjs/swappers/KyberSwapper/utils/kyberService.js +9 -0
- package/dist/cjs/swappers/MayachainSwapper/generated/generatedTradableAssetMap.json +0 -1
- package/dist/cjs/swappers/NearIntentsSwapper/NearIntentsSwapper.js +1 -0
- package/dist/cjs/swappers/NearIntentsSwapper/endpoints.js +13 -14
- package/dist/cjs/swappers/NearIntentsSwapper/swapperApi/getTradeRate.js +1 -1
- package/dist/cjs/swappers/NearIntentsSwapper/types.d.ts +4 -4
- package/dist/cjs/swappers/NearIntentsSwapper/types.js +2 -0
- package/dist/cjs/swappers/NearIntentsSwapper/utils/getNearIntentsStepData.js +28 -0
- package/dist/cjs/swappers/NearIntentsSwapper/utils/helpers.js +2 -2
- package/dist/cjs/swappers/PortalsSwapper/endpoints.js +4 -1
- package/dist/cjs/swappers/PortalsSwapper/getPortalsTradeQuote/getPortalsTradeQuote.js +1 -1
- package/dist/cjs/swappers/PortalsSwapper/utils/getPortalsStepData.js +36 -55
- package/dist/cjs/swappers/PortalsSwapper/utils/getPortalsStepData.test.js +2 -2
- package/dist/cjs/swappers/RelaySwapper/getTradeQuote/getTradeQuote.js +2 -3
- package/dist/cjs/swappers/RelaySwapper/utils/getRelayStepData.js +7 -15
- 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/relayStatus.js +3 -3
- package/dist/cjs/swappers/RelaySwapper/utils/types.d.ts +9 -4
- 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/generated/generatedThorLongtailTokens.json +1 -0
- package/dist/cjs/swappers/ThorchainSwapper/generated/generatedTradableAssetMap.json +1 -0
- package/dist/cjs/swappers/ThorchainSwapper/getTradeQuote/getTradeQuote.test.js +2 -2
- package/dist/cjs/swappers/ThorchainSwapper/utils/getLongtailQuote.js +1 -1
- package/dist/cjs/swappers/ZrxSwapper/getZrxTradeQuote/getZrxTradeQuote.js +27 -2
- 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/swappers/ZrxSwapper/utils/getZrxStepData.d.ts +3 -1
- package/dist/cjs/swappers/ZrxSwapper/utils/getZrxStepData.js +29 -10
- package/dist/cjs/types.d.ts +41 -12
- package/dist/cjs/types.js +3 -0
- package/dist/cjs/utils/aptos/constants.d.ts +2 -0
- package/dist/cjs/utils/aptos/constants.js +7 -0
- package/dist/cjs/utils/aptos/getAptosTransactionFees.d.ts +2 -0
- package/dist/cjs/utils/aptos/getAptosTransactionFees.js +13 -0
- package/dist/cjs/utils/aptos/getUnsignedAptosTransaction.d.ts +2 -0
- package/dist/cjs/utils/aptos/getUnsignedAptosTransaction.js +16 -0
- package/dist/cjs/utils/aptos/index.d.ts +3 -0
- package/dist/cjs/utils/aptos/index.js +19 -0
- package/dist/cjs/utils/evm/getEvmNetworkFeeCryptoBaseUnit.d.ts +19 -6
- package/dist/cjs/utils/evm/getEvmNetworkFeeCryptoBaseUnit.js +45 -35
- package/dist/cjs/utils/evm/getEvmNetworkFeeCryptoBaseUnit.test.d.ts +1 -0
- package/dist/cjs/utils/evm/getEvmNetworkFeeCryptoBaseUnit.test.js +103 -0
- package/dist/cjs/utils/evm/stateOverride.d.ts +3 -0
- package/dist/cjs/utils/evm/stateOverride.js +10 -4
- package/dist/cjs/utils/helpers.d.ts +1 -2
- package/dist/cjs/utils/helpers.js +9 -32
- package/dist/cjs/utils/helpers.test.js +7 -2
- package/dist/cjs/utils/index.d.ts +3 -2
- package/dist/cjs/utils/index.js +11 -27
- package/dist/esm/.tsbuildinfo +1 -1
- package/dist/esm/constants.js +21 -0
- package/dist/esm/index.d.ts +3 -0
- package/dist/esm/index.js +3 -0
- package/dist/esm/swappers/AcrossSwapper/utils/getAcrossStepData.js +8 -16
- package/dist/esm/swappers/ArbitrumBridgeSwapper/getTradeQuote/getTradeQuote.js +0 -2
- package/dist/esm/swappers/AvnuSwapper/endpoints.js +18 -13
- 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/BebopSwapper/utils/getBebopStepData.js +18 -23
- package/dist/esm/swappers/BobGatewaySwapper/swapperApi/getTradeQuote.js +0 -2
- package/dist/esm/swappers/ButterSwap/swapperApi/getTradeQuote.js +0 -2
- package/dist/esm/swappers/ButterSwap/swapperApi/getTradeQuote.test.js +1 -0
- package/dist/esm/swappers/ButterSwap/swapperApi/getTradeRate.test.js +1 -0
- package/dist/esm/swappers/ButterSwap/utils/getButterSwapStepData.js +4 -5
- package/dist/esm/swappers/ButterSwap/utils/getButterSwapStepData.test.js +2 -2
- package/dist/esm/swappers/CetusSwapper/endpoints.js +3 -4
- package/dist/esm/swappers/CetusSwapper/swapperApi/getCetusStepData.js +13 -8
- package/dist/esm/swappers/CetusSwapper/swapperApi/getCetusTradeContext.js +2 -3
- package/dist/esm/swappers/CetusSwapper/swapperApi/getTradeQuote.js +0 -2
- package/dist/esm/swappers/CetusSwapper/utils/constants.d.ts +0 -1
- package/dist/esm/swappers/CetusSwapper/utils/constants.js +0 -1
- package/dist/esm/swappers/CetusSwapper/utils/helpers.d.ts +3 -3
- package/dist/esm/swappers/CetusSwapper/utils/helpers.js +4 -15
- package/dist/esm/swappers/ChainflipSwapper/swapperApi/getTradeQuote.js +1 -2
- package/dist/esm/swappers/ChainflipSwapper/types.d.ts +1 -0
- package/dist/esm/swappers/DebridgeSwapper/getTradeQuote/getTradeQuote.js +0 -2
- package/dist/esm/swappers/DebridgeSwapper/utils/getDebridgeStepData.d.ts +0 -1
- package/dist/esm/swappers/DebridgeSwapper/utils/getDebridgeStepData.js +9 -16
- package/dist/esm/swappers/DebridgeSwapper/utils/getDebridgeTradeContext.js +0 -3
- 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 +42 -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/KyberSwapper/KyberSwapper.d.ts +2 -0
- package/dist/esm/swappers/KyberSwapper/KyberSwapper.js +2 -0
- package/dist/esm/swappers/KyberSwapper/endpoints.d.ts +2 -0
- package/dist/esm/swappers/KyberSwapper/endpoints.js +11 -0
- package/dist/esm/swappers/KyberSwapper/index.d.ts +2 -0
- package/dist/esm/swappers/KyberSwapper/index.js +2 -0
- package/dist/esm/swappers/KyberSwapper/swapperApi/getKyberTradeQuote.d.ts +4 -0
- package/dist/esm/swappers/KyberSwapper/swapperApi/getKyberTradeQuote.js +60 -0
- package/dist/esm/swappers/KyberSwapper/swapperApi/getKyberTradeRate.d.ts +4 -0
- package/dist/esm/swappers/KyberSwapper/swapperApi/getKyberTradeRate.js +27 -0
- package/dist/esm/swappers/KyberSwapper/types.d.ts +62 -0
- package/dist/esm/swappers/KyberSwapper/types.js +1 -0
- package/dist/esm/swappers/KyberSwapper/utils/constants.d.ts +21 -0
- package/dist/esm/swappers/KyberSwapper/utils/constants.js +21 -0
- package/dist/esm/swappers/KyberSwapper/utils/fetchFromKyber.d.ts +23 -0
- package/dist/esm/swappers/KyberSwapper/utils/fetchFromKyber.js +33 -0
- package/dist/esm/swappers/KyberSwapper/utils/getKyberStepData.d.ts +27 -0
- package/dist/esm/swappers/KyberSwapper/utils/getKyberStepData.js +43 -0
- package/dist/esm/swappers/KyberSwapper/utils/getKyberStepData.test.d.ts +1 -0
- package/dist/esm/swappers/KyberSwapper/utils/getKyberStepData.test.js +90 -0
- package/dist/esm/swappers/KyberSwapper/utils/getKyberTradeContext.d.ts +20 -0
- package/dist/esm/swappers/KyberSwapper/utils/getKyberTradeContext.js +59 -0
- package/dist/esm/swappers/KyberSwapper/utils/helpers.d.ts +27 -0
- package/dist/esm/swappers/KyberSwapper/utils/helpers.js +158 -0
- package/dist/esm/swappers/KyberSwapper/utils/helpers.test.d.ts +1 -0
- package/dist/esm/swappers/KyberSwapper/utils/helpers.test.js +108 -0
- package/dist/esm/swappers/KyberSwapper/utils/kyberService.d.ts +5 -0
- package/dist/esm/swappers/KyberSwapper/utils/kyberService.js +3 -0
- package/dist/esm/swappers/MayachainSwapper/generated/generatedTradableAssetMap.json +0 -1
- package/dist/esm/swappers/NearIntentsSwapper/NearIntentsSwapper.js +2 -1
- package/dist/esm/swappers/NearIntentsSwapper/endpoints.js +13 -14
- package/dist/esm/swappers/NearIntentsSwapper/swapperApi/getTradeRate.js +1 -1
- package/dist/esm/swappers/NearIntentsSwapper/types.d.ts +4 -4
- package/dist/esm/swappers/NearIntentsSwapper/types.js +2 -0
- package/dist/esm/swappers/NearIntentsSwapper/utils/getNearIntentsStepData.js +29 -1
- 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/PortalsSwapper/utils/getPortalsStepData.js +34 -53
- package/dist/esm/swappers/PortalsSwapper/utils/getPortalsStepData.test.js +2 -2
- package/dist/esm/swappers/RelaySwapper/getTradeQuote/getTradeQuote.js +2 -3
- package/dist/esm/swappers/RelaySwapper/utils/getRelayStepData.js +9 -17
- 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/relayStatus.js +3 -3
- package/dist/esm/swappers/RelaySwapper/utils/types.d.ts +9 -4
- 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/generated/generatedThorLongtailTokens.json +1 -0
- package/dist/esm/swappers/ThorchainSwapper/generated/generatedTradableAssetMap.json +1 -0
- package/dist/esm/swappers/ThorchainSwapper/getTradeQuote/getTradeQuote.test.js +2 -2
- package/dist/esm/swappers/ThorchainSwapper/utils/getLongtailQuote.js +1 -1
- package/dist/esm/swappers/ZrxSwapper/getZrxTradeQuote/getZrxTradeQuote.js +28 -3
- 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/swappers/ZrxSwapper/utils/getZrxStepData.d.ts +3 -1
- package/dist/esm/swappers/ZrxSwapper/utils/getZrxStepData.js +31 -12
- package/dist/esm/types.d.ts +41 -12
- package/dist/esm/types.js +3 -0
- package/dist/esm/utils/aptos/constants.d.ts +2 -0
- package/dist/esm/utils/aptos/constants.js +4 -0
- package/dist/esm/utils/aptos/getAptosTransactionFees.d.ts +2 -0
- package/dist/esm/utils/aptos/getAptosTransactionFees.js +9 -0
- package/dist/esm/utils/aptos/getUnsignedAptosTransaction.d.ts +2 -0
- package/dist/esm/utils/aptos/getUnsignedAptosTransaction.js +12 -0
- package/dist/esm/utils/aptos/index.d.ts +3 -0
- package/dist/esm/utils/aptos/index.js +3 -0
- package/dist/esm/utils/evm/getEvmNetworkFeeCryptoBaseUnit.d.ts +19 -6
- package/dist/esm/utils/evm/getEvmNetworkFeeCryptoBaseUnit.js +42 -35
- package/dist/esm/utils/evm/getEvmNetworkFeeCryptoBaseUnit.test.d.ts +1 -0
- package/dist/esm/utils/evm/getEvmNetworkFeeCryptoBaseUnit.test.js +101 -0
- package/dist/esm/utils/evm/stateOverride.d.ts +3 -0
- package/dist/esm/utils/evm/stateOverride.js +8 -3
- package/dist/esm/utils/helpers.d.ts +1 -2
- package/dist/esm/utils/helpers.js +10 -33
- package/dist/esm/utils/helpers.test.js +7 -2
- package/dist/esm/utils/index.d.ts +3 -2
- package/dist/esm/utils/index.js +9 -26
- package/package.json +10 -11
|
@@ -11,6 +11,7 @@ exports.nearIntentsSwapper = {
|
|
|
11
11
|
executeSuiTransaction: utils_1.executeSuiTransaction,
|
|
12
12
|
executeNearTransaction: utils_1.executeNearTransaction,
|
|
13
13
|
executeTonTransaction: utils_1.executeTonTransaction,
|
|
14
|
+
executeAptosTransaction: utils_1.executeAptosTransaction,
|
|
14
15
|
executeUtxoTransaction: (txToSign, { signAndBroadcastTransaction }) => {
|
|
15
16
|
return signAndBroadcastTransaction(txToSign);
|
|
16
17
|
},
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.nearIntentsApi = void 0;
|
|
4
4
|
const utils_1 = require("@shapeshiftoss/utils");
|
|
5
5
|
const utils_2 = require("../../utils");
|
|
6
|
+
const aptos_1 = require("../../utils/aptos");
|
|
6
7
|
const evm_1 = require("../../utils/evm");
|
|
7
8
|
const solana_1 = require("../../utils/solana");
|
|
8
9
|
const tron_1 = require("../../utils/tron");
|
|
@@ -87,7 +88,7 @@ exports.nearIntentsApi = {
|
|
|
87
88
|
}
|
|
88
89
|
return Promise.resolve(step.feeData.networkFeeCryptoBaseUnit);
|
|
89
90
|
},
|
|
90
|
-
getUnsignedStarknetTransaction: async ({ stepIndex, tradeQuote, from, assertGetStarknetChainAdapter, }) => {
|
|
91
|
+
getUnsignedStarknetTransaction: async ({ stepIndex, tradeQuote, from, callsOnly, assertGetStarknetChainAdapter, }) => {
|
|
91
92
|
if (!(0, utils_2.isExecutableTradeQuote)(tradeQuote))
|
|
92
93
|
throw new Error('Unable to execute a trade rate quote');
|
|
93
94
|
const step = (0, utils_2.getExecutableTradeStep)(tradeQuote, stepIndex);
|
|
@@ -97,24 +98,20 @@ exports.nearIntentsApi = {
|
|
|
97
98
|
const to = depositAddress;
|
|
98
99
|
const value = step.sellAmountIncludingProtocolFeesCryptoBaseUnit;
|
|
99
100
|
const tokenContractAddress = (0, utils_1.contractAddressOrUndefined)(sellAsset.assetId);
|
|
100
|
-
const
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
tokenContractAddress,
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
});
|
|
101
|
+
const maxFee = callsOnly
|
|
102
|
+
? undefined
|
|
103
|
+
: (await adapter.getFeeData({
|
|
104
|
+
to,
|
|
105
|
+
value,
|
|
106
|
+
chainSpecific: { from, tokenContractAddress },
|
|
107
|
+
sendMax: false,
|
|
108
|
+
})).fast.chainSpecific.maxFee;
|
|
109
109
|
return adapter.buildSendApiTransaction({
|
|
110
110
|
from,
|
|
111
111
|
to,
|
|
112
112
|
value,
|
|
113
113
|
accountNumber,
|
|
114
|
-
chainSpecific: {
|
|
115
|
-
tokenContractAddress,
|
|
116
|
-
maxFee: fast.chainSpecific.maxFee,
|
|
117
|
-
},
|
|
114
|
+
chainSpecific: { tokenContractAddress, maxFee, callsOnly },
|
|
118
115
|
});
|
|
119
116
|
},
|
|
120
117
|
getStarknetTransactionFees: ({ tradeQuote, stepIndex }) => {
|
|
@@ -156,6 +153,8 @@ exports.nearIntentsApi = {
|
|
|
156
153
|
}
|
|
157
154
|
return Promise.resolve(step.feeData.networkFeeCryptoBaseUnit);
|
|
158
155
|
},
|
|
156
|
+
getUnsignedAptosTransaction: aptos_1.getUnsignedAptosTransaction,
|
|
157
|
+
getAptosTransactionFees: aptos_1.getAptosTransactionFees,
|
|
159
158
|
checkTradeStatus: async ({ config, swap }) => {
|
|
160
159
|
if (!swap)
|
|
161
160
|
throw new Error('Missing swap');
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { KnownChainIds } from '@shapeshiftoss/types';
|
|
2
|
-
import type { GetEvmTradeQuoteInput, GetEvmTradeRateInput, GetNearTradeQuoteInput, GetNearTradeRateInput, GetSolanaTradeQuoteInput, GetSolanaTradeRateInput, GetStarknetTradeQuoteInput, GetStarknetTradeRateInput, GetSuiTradeQuoteInput, GetSuiTradeRateInput, GetTonTradeQuoteInput, GetTonTradeRateInput, GetTronTradeQuoteInput, GetTronTradeRateInput, GetUtxoTradeQuoteInput, GetUtxoTradeRateInput, WithExactBuyAmount } from '../../types';
|
|
3
|
-
export type NearIntentsTradeQuoteInput = GetEvmTradeQuoteInput | GetUtxoTradeQuoteInput | GetSolanaTradeQuoteInput | GetTronTradeQuoteInput | GetSuiTradeQuoteInput | GetStarknetTradeQuoteInput | GetNearTradeQuoteInput | GetTonTradeQuoteInput;
|
|
4
|
-
export type NearIntentsTradeRateInput = GetEvmTradeRateInput | GetUtxoTradeRateInput | GetSolanaTradeRateInput | GetTronTradeRateInput | GetSuiTradeRateInput | GetStarknetTradeRateInput | GetNearTradeRateInput | GetTonTradeRateInput;
|
|
2
|
+
import type { GetAptosTradeQuoteInput, GetAptosTradeRateInput, GetEvmTradeQuoteInput, GetEvmTradeRateInput, GetNearTradeQuoteInput, GetNearTradeRateInput, GetSolanaTradeQuoteInput, GetSolanaTradeRateInput, GetStarknetTradeQuoteInput, GetStarknetTradeRateInput, GetSuiTradeQuoteInput, GetSuiTradeRateInput, GetTonTradeQuoteInput, GetTonTradeRateInput, GetTronTradeQuoteInput, GetTronTradeRateInput, GetUtxoTradeQuoteInput, GetUtxoTradeRateInput, WithExactBuyAmount } from '../../types';
|
|
3
|
+
export type NearIntentsTradeQuoteInput = GetEvmTradeQuoteInput | GetUtxoTradeQuoteInput | GetSolanaTradeQuoteInput | GetTronTradeQuoteInput | GetSuiTradeQuoteInput | GetStarknetTradeQuoteInput | GetNearTradeQuoteInput | GetTonTradeQuoteInput | GetAptosTradeQuoteInput;
|
|
4
|
+
export type NearIntentsTradeRateInput = GetEvmTradeRateInput | GetUtxoTradeRateInput | GetSolanaTradeRateInput | GetTronTradeRateInput | GetSuiTradeRateInput | GetStarknetTradeRateInput | GetNearTradeRateInput | GetTonTradeRateInput | GetAptosTradeRateInput;
|
|
5
5
|
export type NearIntentsExactOutputTradeQuoteInput = WithExactBuyAmount<NearIntentsTradeQuoteInput>;
|
|
6
6
|
export type NearIntentsExactOutputTradeRateInput = WithExactBuyAmount<NearIntentsTradeRateInput>;
|
|
7
7
|
export type NearIntentsMetadata = {
|
|
@@ -11,6 +11,6 @@ export type NearIntentsMetadata = {
|
|
|
11
11
|
};
|
|
12
12
|
export { QuoteRequest } from '@defuse-protocol/one-click-sdk-typescript';
|
|
13
13
|
export type { GetExecutionStatusResponse, QuoteResponse, TokenResponse, } from '@defuse-protocol/one-click-sdk-typescript';
|
|
14
|
-
export declare const nearIntentsSupportedChainIds: readonly [KnownChainIds.EthereumMainnet, KnownChainIds.ArbitrumMainnet, KnownChainIds.BaseMainnet, KnownChainIds.GnosisMainnet, KnownChainIds.BnbSmartChainMainnet, KnownChainIds.PolygonMainnet, KnownChainIds.AvalancheMainnet, KnownChainIds.OptimismMainnet, KnownChainIds.BitcoinMainnet, KnownChainIds.BitcoinCashMainnet, KnownChainIds.DogecoinMainnet, KnownChainIds.ZcashMainnet, KnownChainIds.SolanaMainnet, KnownChainIds.TronMainnet, KnownChainIds.SuiMainnet, KnownChainIds.StarknetMainnet, KnownChainIds.MonadMainnet, KnownChainIds.NearMainnet, KnownChainIds.PlasmaMainnet, KnownChainIds.TonMainnet];
|
|
14
|
+
export declare const nearIntentsSupportedChainIds: readonly [KnownChainIds.EthereumMainnet, KnownChainIds.ArbitrumMainnet, KnownChainIds.BaseMainnet, KnownChainIds.GnosisMainnet, KnownChainIds.BnbSmartChainMainnet, KnownChainIds.PolygonMainnet, KnownChainIds.AvalancheMainnet, KnownChainIds.OptimismMainnet, KnownChainIds.BitcoinMainnet, KnownChainIds.BitcoinCashMainnet, KnownChainIds.DogecoinMainnet, KnownChainIds.ZcashMainnet, KnownChainIds.SolanaMainnet, KnownChainIds.TronMainnet, KnownChainIds.SuiMainnet, KnownChainIds.StarknetMainnet, KnownChainIds.MonadMainnet, KnownChainIds.NearMainnet, KnownChainIds.PlasmaMainnet, KnownChainIds.TonMainnet, KnownChainIds.AptosMainnet];
|
|
15
15
|
export type NearIntentsSupportedChainId = (typeof nearIntentsSupportedChainIds)[number];
|
|
16
16
|
export declare const chainIdToNearIntentsChain: Record<NearIntentsSupportedChainId, string>;
|
|
@@ -25,6 +25,7 @@ exports.nearIntentsSupportedChainIds = [
|
|
|
25
25
|
types_1.KnownChainIds.NearMainnet,
|
|
26
26
|
types_1.KnownChainIds.PlasmaMainnet,
|
|
27
27
|
types_1.KnownChainIds.TonMainnet,
|
|
28
|
+
types_1.KnownChainIds.AptosMainnet,
|
|
28
29
|
];
|
|
29
30
|
exports.chainIdToNearIntentsChain = {
|
|
30
31
|
[types_1.KnownChainIds.EthereumMainnet]: 'eth',
|
|
@@ -47,4 +48,5 @@ exports.chainIdToNearIntentsChain = {
|
|
|
47
48
|
[types_1.KnownChainIds.MonadMainnet]: 'monad',
|
|
48
49
|
[types_1.KnownChainIds.NearMainnet]: 'near',
|
|
49
50
|
[types_1.KnownChainIds.TonMainnet]: 'ton',
|
|
51
|
+
[types_1.KnownChainIds.AptosMainnet]: 'aptos',
|
|
50
52
|
};
|
|
@@ -7,6 +7,7 @@ const utils_1 = require("@shapeshiftoss/utils");
|
|
|
7
7
|
const monads_1 = require("@sniptt/monads");
|
|
8
8
|
const types_1 = require("../../../types");
|
|
9
9
|
const utils_2 = require("../../../utils");
|
|
10
|
+
const aptos_1 = require("../../../utils/aptos");
|
|
10
11
|
const evm_1 = require("../../../utils/evm");
|
|
11
12
|
const helpers_1 = require("../../../utils/helpers");
|
|
12
13
|
const solana_1 = require("../../../utils/solana");
|
|
@@ -221,6 +222,33 @@ async function getNearIntentsStepData(args) {
|
|
|
221
222
|
const stepData = { networkFeeCryptoBaseUnit: fast.txFee };
|
|
222
223
|
return (0, monads_1.Ok)(stepData);
|
|
223
224
|
}
|
|
225
|
+
case caip_1.CHAIN_NAMESPACE.Aptos: {
|
|
226
|
+
const adapter = deps.assertGetAptosChainAdapter(sellAsset.chainId);
|
|
227
|
+
if (type === 'rate') {
|
|
228
|
+
const { fast } = await adapter.getFeeData({
|
|
229
|
+
to: depositAddress,
|
|
230
|
+
value: aptos_1.APTOS_RATE_SIMULATION_VALUE,
|
|
231
|
+
chainSpecific: { from: from ?? aptos_1.APTOS_PLACEHOLDER_ADDRESS, contractAddress },
|
|
232
|
+
});
|
|
233
|
+
const stepData = { networkFeeCryptoBaseUnit: fast.txFee };
|
|
234
|
+
return (0, monads_1.Ok)(stepData);
|
|
235
|
+
}
|
|
236
|
+
const { fast } = await adapter.getFeeData({
|
|
237
|
+
to: depositAddress,
|
|
238
|
+
value: sellAmountCryptoBaseUnit,
|
|
239
|
+
chainSpecific: { from, contractAddress },
|
|
240
|
+
});
|
|
241
|
+
const stepData = {
|
|
242
|
+
transactionData: {
|
|
243
|
+
type: 'aptos',
|
|
244
|
+
payload: chain_adapters_1.aptos.getSerializedTransferPayload(depositAddress, sellAmountCryptoBaseUnit, contractAddress),
|
|
245
|
+
gasUnitPrice: fast.chainSpecific.gasUnitPrice,
|
|
246
|
+
maxGasAmount: fast.chainSpecific.maxGasAmount,
|
|
247
|
+
},
|
|
248
|
+
networkFeeCryptoBaseUnit: fast.txFee,
|
|
249
|
+
};
|
|
250
|
+
return (0, monads_1.Ok)(stepData);
|
|
251
|
+
}
|
|
224
252
|
default:
|
|
225
253
|
return (0, monads_1.Err)((0, utils_2.makeSwapErrorRight)({
|
|
226
254
|
message: `[getNearIntentsStepData] unsupported chain namespace: ${chainNamespace}`,
|
|
@@ -40,7 +40,7 @@ const getNearIntentsAsset = ({ nearNetwork, contractAddress, }) => {
|
|
|
40
40
|
};
|
|
41
41
|
exports.getNearIntentsAsset = getNearIntentsAsset;
|
|
42
42
|
const NEP245_CHAINS = ['bsc', 'pol', 'avax', 'op', 'tron', 'monad', 'plasma'];
|
|
43
|
-
const TOKEN_LOOKUP_CHAINS = ['sui', 'starknet', 'ton'];
|
|
43
|
+
const TOKEN_LOOKUP_CHAINS = ['sui', 'starknet', 'ton', 'aptos'];
|
|
44
44
|
const NEAR_CHAIN = 'near';
|
|
45
45
|
const BTC_CHAIN = 'btc';
|
|
46
46
|
const WNEAR_CONTRACT_ADDRESS = 'wrap.near';
|
|
@@ -72,7 +72,7 @@ const assetToNearIntentsAsset = async (asset) => {
|
|
|
72
72
|
});
|
|
73
73
|
return match?.assetId ?? null;
|
|
74
74
|
}
|
|
75
|
-
// NEP-245 chains (BSC, Polygon, Avalanche, Optimism, TRON, Monad), Token lookup chains (Sui, Starknet), and Solana require token lookup
|
|
75
|
+
// NEP-245 chains (BSC, Polygon, Avalanche, Optimism, TRON, Monad), Token lookup chains (Sui, Starknet, TON, Aptos), and Solana require token lookup
|
|
76
76
|
// Asset IDs use hashed format that can't be generated from contract addresses
|
|
77
77
|
const requiresLookup = isNep245Chain(nearNetwork) || isTokenLookupChain(nearNetwork) || asset.chainId === caip_1.solanaChainId;
|
|
78
78
|
if (requiresLookup) {
|
|
@@ -62,7 +62,7 @@ exports.portalsApi = {
|
|
|
62
62
|
const txStatus = relayTxStatus === unchained_client_1.TxStatus.Unknown ? unchained_client_1.TxStatus.Pending : relayTxStatus;
|
|
63
63
|
return {
|
|
64
64
|
status: txStatus,
|
|
65
|
-
buyTxHash: relayRequest.data?.outTxs?.[0]?.
|
|
65
|
+
buyTxHash: relayRequest.data?.outTxs?.[0]?.txHash,
|
|
66
66
|
message: txStatus === unchained_client_1.TxStatus.Failed
|
|
67
67
|
? (0, relayStatus_1.getRelayRequestFailureMessage)(relayRequest)
|
|
68
68
|
: txStatus === unchained_client_1.TxStatus.Confirmed
|
|
@@ -71,6 +71,9 @@ exports.portalsApi = {
|
|
|
71
71
|
};
|
|
72
72
|
}
|
|
73
73
|
}
|
|
74
|
+
else {
|
|
75
|
+
console.error('Failed to fetch relay request:', relayResult.unwrapErr());
|
|
76
|
+
}
|
|
74
77
|
const axelarscanResult = await (0, fetchAxelarscanStatus_1.fetchAxelarscanBridgeStatus)(txHash);
|
|
75
78
|
if (axelarscanResult.isOk()) {
|
|
76
79
|
const bridgeStatus = axelarscanResult.unwrap();
|
|
@@ -141,7 +141,7 @@ const getPortalsTradeQuote = async (input, deps) => {
|
|
|
141
141
|
const tradeQuote = {
|
|
142
142
|
...tradeCommon,
|
|
143
143
|
quoteOrRate: 'quote',
|
|
144
|
-
deadline: expiryMs
|
|
144
|
+
deadline: expiryMs,
|
|
145
145
|
receiveAddress,
|
|
146
146
|
steps: [
|
|
147
147
|
{
|
|
@@ -2,89 +2,70 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getPortalsStepData = void 0;
|
|
4
4
|
const caip_1 = require("@shapeshiftoss/caip");
|
|
5
|
-
const utils_1 = require("@shapeshiftoss/utils");
|
|
6
5
|
const monads_1 = require("@sniptt/monads");
|
|
7
|
-
const
|
|
6
|
+
const utils_1 = require("../../../utils");
|
|
8
7
|
const evm_1 = require("../../../utils/evm");
|
|
9
8
|
const fetchPortalsTradeOrder_1 = require("./fetchPortalsTradeOrder");
|
|
10
9
|
async function getPortalsStepData(args) {
|
|
11
10
|
const { tx, sellAsset, sellAmountCryptoBaseUnit, spenderAddress, input, deps } = args;
|
|
12
11
|
const adapter = deps.assertGetEvmChainAdapter(sellAsset.chainId);
|
|
13
12
|
const supportsEIP1559 = 'supportsEIP1559' in input ? input.supportsEIP1559 : false;
|
|
13
|
+
const transactionData = {
|
|
14
|
+
type: 'evm',
|
|
15
|
+
chainId: Number((0, caip_1.fromChainId)(sellAsset.chainId).chainReference),
|
|
16
|
+
to: tx.to,
|
|
17
|
+
data: tx.data,
|
|
18
|
+
value: tx.value,
|
|
19
|
+
};
|
|
20
|
+
const stateOverride = {
|
|
21
|
+
sellAsset,
|
|
22
|
+
sellAmountCryptoBaseUnit,
|
|
23
|
+
spenderAddress,
|
|
24
|
+
};
|
|
14
25
|
if (args.type === 'rate') {
|
|
26
|
+
const getEstimateEndpointGasLimit = async () => {
|
|
27
|
+
const quoteEstimateResponse = await (0, fetchPortalsTradeOrder_1.fetchPortalsTradeEstimate)({
|
|
28
|
+
inputToken: args.inputToken,
|
|
29
|
+
outputToken: args.outputToken,
|
|
30
|
+
inputAmount: args.inputAmount,
|
|
31
|
+
slippageTolerancePercentage: args.slippageTolerancePercentage,
|
|
32
|
+
swapperConfig: deps.config,
|
|
33
|
+
});
|
|
34
|
+
return quoteEstimateResponse.context.gasLimit.toString();
|
|
35
|
+
};
|
|
15
36
|
try {
|
|
16
|
-
//
|
|
17
|
-
|
|
18
|
-
const gasLimit = await (async () => {
|
|
19
|
-
try {
|
|
20
|
-
const gasLimit = await (0, evm_1.estimateGasWithStateOverride)({
|
|
21
|
-
sellAsset,
|
|
22
|
-
sellAmountCryptoBaseUnit,
|
|
23
|
-
from: tx.from,
|
|
24
|
-
spenderAddress,
|
|
25
|
-
to: tx.to,
|
|
26
|
-
data: tx.data,
|
|
27
|
-
value: tx.value,
|
|
28
|
-
});
|
|
29
|
-
return gasLimit;
|
|
30
|
-
}
|
|
31
|
-
catch {
|
|
32
|
-
// Portals only carry a tx gas limit on the bridge routes their estimate endpoint zeroes
|
|
33
|
-
const { gasLimit: txGasLimit } = tx;
|
|
34
|
-
if (txGasLimit && (0, utils_1.bnOrZero)(txGasLimit).gt(0))
|
|
35
|
-
return txGasLimit;
|
|
36
|
-
const quoteEstimateResponse = await (0, fetchPortalsTradeOrder_1.fetchPortalsTradeEstimate)({
|
|
37
|
-
inputToken: args.inputToken,
|
|
38
|
-
outputToken: args.outputToken,
|
|
39
|
-
inputAmount: args.inputAmount,
|
|
40
|
-
slippageTolerancePercentage: args.slippageTolerancePercentage,
|
|
41
|
-
swapperConfig: deps.config,
|
|
42
|
-
});
|
|
43
|
-
const estimatedGasLimit = quoteEstimateResponse.context.gasLimit.toString();
|
|
44
|
-
if ((0, utils_1.bnOrZero)(estimatedGasLimit).lte(0))
|
|
45
|
-
throw new Error('no Portals gas limit');
|
|
46
|
-
return estimatedGasLimit;
|
|
47
|
-
}
|
|
48
|
-
})();
|
|
49
|
-
const networkFeeCryptoBaseUnit = await (0, evm_1.getEvmNetworkFeeCryptoBaseUnit)({
|
|
37
|
+
// Portals only set a tx gas limit on bridge routes, where their estimate endpoint is zero
|
|
38
|
+
const networkFeeCryptoBaseUnit = await (0, evm_1.getEvmRateNetworkFeeCryptoBaseUnit)({
|
|
50
39
|
adapter,
|
|
51
40
|
supportsEIP1559,
|
|
52
|
-
gasLimit,
|
|
53
|
-
|
|
41
|
+
providerGasLimit: tx.gasLimit,
|
|
42
|
+
simulation: { transactionData, from: tx.from, stateOverride },
|
|
43
|
+
}).catch(async () => (0, evm_1.getEvmRateNetworkFeeCryptoBaseUnit)({
|
|
44
|
+
adapter,
|
|
45
|
+
supportsEIP1559,
|
|
46
|
+
providerGasLimit: await getEstimateEndpointGasLimit(),
|
|
47
|
+
}));
|
|
54
48
|
const stepData = { networkFeeCryptoBaseUnit };
|
|
55
49
|
return (0, monads_1.Ok)(stepData);
|
|
56
50
|
}
|
|
57
51
|
catch (error) {
|
|
58
|
-
return (0, monads_1.Err)((0,
|
|
52
|
+
return (0, monads_1.Err)((0, utils_1.makeNetworkFeeEstimationFailedErr)('getPortalsStepData', error));
|
|
59
53
|
}
|
|
60
54
|
}
|
|
61
|
-
const transactionData = {
|
|
62
|
-
type: 'evm',
|
|
63
|
-
chainId: Number((0, caip_1.fromChainId)(sellAsset.chainId).chainReference),
|
|
64
|
-
to: tx.to,
|
|
65
|
-
data: tx.data,
|
|
66
|
-
value: tx.value,
|
|
67
|
-
// Portals simulate and pad their gas limit when the order was validated, so no additional
|
|
68
|
-
// buffer - an unvalidated order carries no gas limit and estimates below instead
|
|
69
|
-
gasLimit: tx.gasLimit,
|
|
70
|
-
};
|
|
71
55
|
try {
|
|
72
56
|
const networkFeeCryptoBaseUnit = await (0, evm_1.getEvmNetworkFeeCryptoBaseUnit)({
|
|
73
57
|
adapter,
|
|
74
58
|
transactionData,
|
|
75
59
|
from: args.from,
|
|
76
60
|
supportsEIP1559,
|
|
77
|
-
stateOverride
|
|
78
|
-
|
|
79
|
-
sellAmountCryptoBaseUnit,
|
|
80
|
-
spenderAddress,
|
|
81
|
-
},
|
|
61
|
+
stateOverride,
|
|
62
|
+
providerGasLimit: tx.gasLimit,
|
|
82
63
|
});
|
|
83
64
|
const stepData = { transactionData, networkFeeCryptoBaseUnit };
|
|
84
65
|
return (0, monads_1.Ok)(stepData);
|
|
85
66
|
}
|
|
86
67
|
catch (error) {
|
|
87
|
-
return (0, monads_1.Err)((0,
|
|
68
|
+
return (0, monads_1.Err)((0, utils_1.makeNetworkFeeEstimationFailedErr)('getPortalsStepData', error));
|
|
88
69
|
}
|
|
89
70
|
}
|
|
90
71
|
exports.getPortalsStepData = getPortalsStepData;
|
|
@@ -47,11 +47,11 @@ const estimateEndpointGasLimit = (gasLimit) => vitest_1.vi.mocked(fetchPortalsTr
|
|
|
47
47
|
});
|
|
48
48
|
(0, vitest_1.describe)('getPortalsStepData rate gas limit', () => {
|
|
49
49
|
(0, vitest_1.beforeEach)(() => vitest_1.vi.clearAllMocks());
|
|
50
|
-
(0, vitest_1.it)('
|
|
51
|
-
vitest_1.vi.mocked(evm_1.estimateGasWithStateOverride).mockRejectedValue(new Error('execution reverted'));
|
|
50
|
+
(0, vitest_1.it)('prices the order gas limit on bridge routes without simulating', async () => {
|
|
52
51
|
estimateEndpointGasLimit(0);
|
|
53
52
|
const actual = await rate(tx('76384'));
|
|
54
53
|
(0, vitest_1.expect)(actual.unwrap()).toEqual({ networkFeeCryptoBaseUnit: '76384000000000' });
|
|
54
|
+
(0, vitest_1.expect)(evm_1.estimateGasWithStateOverride).not.toHaveBeenCalled();
|
|
55
55
|
(0, vitest_1.expect)(fetchPortalsTradeOrder_1.fetchPortalsTradeEstimate).not.toHaveBeenCalled();
|
|
56
56
|
});
|
|
57
57
|
(0, vitest_1.it)('falls back to the estimate endpoint when the order carries no gas limit', async () => {
|
|
@@ -3,7 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.getExactOutputTradeQuote = exports.getTradeQuote = void 0;
|
|
4
4
|
const monads_1 = require("@sniptt/monads");
|
|
5
5
|
const utils_1 = require("../../../utils");
|
|
6
|
-
const helpers_1 = require("../../../utils/helpers");
|
|
7
6
|
const getRelayStepData_1 = require("../utils/getRelayStepData");
|
|
8
7
|
const getRelayTradeContext_1 = require("../utils/getRelayTradeContext");
|
|
9
8
|
const getQuote = async (input, deps, relayChainMap) => {
|
|
@@ -15,7 +14,7 @@ const getQuote = async (input, deps, relayChainMap) => {
|
|
|
15
14
|
const maybeContext = await (0, getRelayTradeContext_1.getRelayTradeContext)({ input, deps, relayChainMap });
|
|
16
15
|
if (maybeContext.isErr())
|
|
17
16
|
return (0, monads_1.Err)(maybeContext.unwrapErr());
|
|
18
|
-
const { tradeCommon, stepCommon, protocolFees, relayStepInputs, stepDataArgs, relayId } = maybeContext.unwrap();
|
|
17
|
+
const { tradeCommon, stepCommon, protocolFees, relayStepInputs, stepDataArgs, relayId, deadline, } = maybeContext.unwrap();
|
|
19
18
|
const stepResults = await Promise.all(relayStepInputs.map(async ({ data, allowanceContract }) => {
|
|
20
19
|
const maybeStepData = await (0, getRelayStepData_1.getRelayStepData)({
|
|
21
20
|
...stepDataArgs,
|
|
@@ -45,7 +44,7 @@ const getQuote = async (input, deps, relayChainMap) => {
|
|
|
45
44
|
const tradeQuote = {
|
|
46
45
|
...tradeCommon,
|
|
47
46
|
quoteOrRate: 'quote',
|
|
48
|
-
deadline
|
|
47
|
+
deadline,
|
|
49
48
|
receiveAddress,
|
|
50
49
|
steps,
|
|
51
50
|
};
|
|
@@ -37,7 +37,6 @@ async function getRelayStepData({ data, sellAsset, sellAmountCryptoBaseUnit, spe
|
|
|
37
37
|
to,
|
|
38
38
|
value,
|
|
39
39
|
data: callData,
|
|
40
|
-
gasLimit: (0, utils_1.bnOrZero)(relayGasLimit).gt(0) ? relayGasLimit : undefined,
|
|
41
40
|
};
|
|
42
41
|
const adapter = deps.assertGetEvmChainAdapter(sellAsset.chainId);
|
|
43
42
|
const stateOverride = {
|
|
@@ -46,20 +45,12 @@ async function getRelayStepData({ data, sellAsset, sellAmountCryptoBaseUnit, spe
|
|
|
46
45
|
spenderAddress,
|
|
47
46
|
};
|
|
48
47
|
if (type === 'rate') {
|
|
49
|
-
const networkFeeCryptoBaseUnit = await (
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
supportsEIP1559,
|
|
56
|
-
stateOverride,
|
|
57
|
-
});
|
|
58
|
-
}
|
|
59
|
-
catch {
|
|
60
|
-
return fallbackNetworkFeeCryptoBaseUnit;
|
|
61
|
-
}
|
|
62
|
-
})();
|
|
48
|
+
const networkFeeCryptoBaseUnit = await (0, evm_1.getEvmRateNetworkFeeCryptoBaseUnit)({
|
|
49
|
+
adapter,
|
|
50
|
+
supportsEIP1559,
|
|
51
|
+
providerGasLimit: relayGasLimit,
|
|
52
|
+
simulation: { transactionData, from, stateOverride },
|
|
53
|
+
}).catch(() => fallbackNetworkFeeCryptoBaseUnit);
|
|
63
54
|
const stepData = { networkFeeCryptoBaseUnit };
|
|
64
55
|
return (0, monads_1.Ok)(stepData);
|
|
65
56
|
}
|
|
@@ -71,6 +62,7 @@ async function getRelayStepData({ data, sellAsset, sellAmountCryptoBaseUnit, spe
|
|
|
71
62
|
from,
|
|
72
63
|
supportsEIP1559,
|
|
73
64
|
stateOverride,
|
|
65
|
+
providerGasLimit: relayGasLimit,
|
|
74
66
|
});
|
|
75
67
|
const stepData = { transactionData, networkFeeCryptoBaseUnit };
|
|
76
68
|
return (0, monads_1.Ok)(stepData);
|
|
@@ -13,6 +13,7 @@ type RelayTradeContext = {
|
|
|
13
13
|
}[];
|
|
14
14
|
stepDataArgs: Omit<GetRelayStepDataArgs, 'type' | 'input' | 'data' | 'spenderAddress'>;
|
|
15
15
|
relayId: string;
|
|
16
|
+
deadline: number | undefined;
|
|
16
17
|
};
|
|
17
18
|
export declare const getRelayTradeContext: ({ input, deps, relayChainMap, }: {
|
|
18
19
|
input: RelayTradeQuoteInput | RelayTradeRateInput | RelayExactOutputTradeQuoteInput | RelayExactOutputTradeRateInput;
|
|
@@ -264,6 +264,9 @@ const getRelayTradeContext = async ({ input, deps, relayChainMap, }) => {
|
|
|
264
264
|
.plus(appFeesBaseUnit)
|
|
265
265
|
.toFixed();
|
|
266
266
|
const relayId = quote.steps[0].requestId;
|
|
267
|
+
// Only cross-chain (protocol v2) orders carry an expiry; past it the solver submits a no-fill refund
|
|
268
|
+
const orderDeadline = quote.protocol?.v2?.orderData?.output?.deadline;
|
|
269
|
+
const deadline = orderDeadline === undefined ? undefined : (0, helpers_1.normalizeEpochToMs)(orderDeadline);
|
|
267
270
|
const relayStepInputs = swapSteps.map(step => {
|
|
268
271
|
const data = step.items?.[0]?.data;
|
|
269
272
|
return { data, allowanceContract: (0, helpers_2.getRelayAllowanceContract)(data) };
|
|
@@ -307,6 +310,7 @@ const getRelayTradeContext = async ({ input, deps, relayChainMap, }) => {
|
|
|
307
310
|
...appFeesAsProtocolFee,
|
|
308
311
|
},
|
|
309
312
|
relayStepInputs,
|
|
313
|
+
deadline,
|
|
310
314
|
stepDataArgs: {
|
|
311
315
|
sellAsset,
|
|
312
316
|
sellAmountCryptoBaseUnit,
|
|
@@ -25,14 +25,14 @@ const relayStatusToTxStatus = (status) => {
|
|
|
25
25
|
exports.relayStatusToTxStatus = relayStatusToTxStatus;
|
|
26
26
|
// Relay index requests by origin tx hash, resolving a swap we hold no relayId for
|
|
27
27
|
const fetchRelayRequestByTxHash = async (txHash, config) => {
|
|
28
|
-
const maybeResponse = await relayService_1.relayService.get(`${config.VITE_RELAY_API_URL}/requests/
|
|
28
|
+
const maybeResponse = await relayService_1.relayService.get(`${config.VITE_RELAY_API_URL}/requests/v3?depositTxHash=${txHash}`, (0, relayService_1.getRelayRequestConfig)(config));
|
|
29
29
|
// Match the origin tx ourselves rather than trusting the listing to have filtered on it
|
|
30
|
-
return maybeResponse.map(({ data }) => data.requests?.find(({ data: request }) => request?.inTxs?.some(({ hash }) => hash?.toLowerCase() === txHash.toLowerCase())));
|
|
30
|
+
return maybeResponse.map(({ data }) => data.requests?.find(({ data: request }) => request?.inTxs?.some(({ txHash: hash }) => hash?.toLowerCase() === txHash.toLowerCase())));
|
|
31
31
|
};
|
|
32
32
|
exports.fetchRelayRequestByTxHash = fetchRelayRequestByTxHash;
|
|
33
33
|
const getRelayRequestFailureMessage = (request) => {
|
|
34
34
|
const { failReason, refundFailReason } = request.data ?? {};
|
|
35
|
-
// Relay report 'N/A' rather than
|
|
35
|
+
// Relay can report 'N/A' rather than null when there isn't one
|
|
36
36
|
const reason = [failReason, refundFailReason].find(value => value && value !== 'N/A');
|
|
37
37
|
return reason ?? 'Bridge failed';
|
|
38
38
|
};
|
|
@@ -9,12 +9,12 @@ export type RelayMetadata = {
|
|
|
9
9
|
data?: string;
|
|
10
10
|
};
|
|
11
11
|
export type RelayRequestTransaction = {
|
|
12
|
-
|
|
12
|
+
txHash?: string;
|
|
13
13
|
chainId?: number;
|
|
14
14
|
};
|
|
15
15
|
export type RelayRequestData = {
|
|
16
|
-
failReason?: string;
|
|
17
|
-
refundFailReason?: string;
|
|
16
|
+
failReason?: string | null;
|
|
17
|
+
refundFailReason?: string | null;
|
|
18
18
|
inTxs?: RelayRequestTransaction[];
|
|
19
19
|
outTxs?: RelayRequestTransaction[];
|
|
20
20
|
};
|
|
@@ -121,9 +121,14 @@ export type RelayQuoteStep = {
|
|
|
121
121
|
requestId: string;
|
|
122
122
|
items?: RelayQuoteItem[];
|
|
123
123
|
};
|
|
124
|
+
export type RelayOrderData = {
|
|
125
|
+
output?: {
|
|
126
|
+
deadline?: number;
|
|
127
|
+
};
|
|
128
|
+
};
|
|
124
129
|
export type RelayProtocolV2 = {
|
|
125
130
|
orderId: string | undefined;
|
|
126
|
-
orderData?:
|
|
131
|
+
orderData?: RelayOrderData;
|
|
127
132
|
paymentDetails?: {
|
|
128
133
|
chainId: string;
|
|
129
134
|
depository: string;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.symbiosisSwapper = void 0;
|
|
4
|
+
const utils_1 = require("../../utils");
|
|
5
|
+
exports.symbiosisSwapper = {
|
|
6
|
+
executeEvmTransaction: utils_1.executeEvmTransaction,
|
|
7
|
+
executeTronTransaction: utils_1.executeTronTransaction,
|
|
8
|
+
};
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.symbiosisApi = void 0;
|
|
4
|
+
const caip_1 = require("@shapeshiftoss/caip");
|
|
5
|
+
const chain_adapters_1 = require("@shapeshiftoss/chain-adapters");
|
|
6
|
+
const unchained_client_1 = require("@shapeshiftoss/unchained-client");
|
|
7
|
+
const utils_1 = require("../../utils");
|
|
8
|
+
const evm_1 = require("../../utils/evm");
|
|
9
|
+
const tron_1 = require("../../utils/tron");
|
|
10
|
+
const getTradeQuote_1 = require("./getTradeQuote/getTradeQuote");
|
|
11
|
+
const getTradeRate_1 = require("./getTradeRate/getTradeRate");
|
|
12
|
+
const constants_1 = require("./utils/constants");
|
|
13
|
+
const helpers_1 = require("./utils/helpers");
|
|
14
|
+
const symbiosisService_1 = require("./utils/symbiosisService");
|
|
15
|
+
exports.symbiosisApi = {
|
|
16
|
+
getTradeQuote: (input, deps) => (0, getTradeQuote_1.getTradeQuote)(input, deps),
|
|
17
|
+
getTradeRate: (input, deps) => (0, getTradeRate_1.getTradeRate)(input, deps),
|
|
18
|
+
getEvmTransactionFees: evm_1.getEvmTransactionFees,
|
|
19
|
+
getUnsignedEvmTransaction: evm_1.getUnsignedEvmTransaction,
|
|
20
|
+
getTronTransactionFees: tron_1.getTronTransactionFees,
|
|
21
|
+
getUnsignedTronTransaction: tron_1.getUnsignedTronTransaction,
|
|
22
|
+
checkTradeStatus: async ({ txHash, chainId, address, config, swap, fetchIsSmartContractAddressQuery, assertGetEvmChainAdapter, assertGetTronChainAdapter, }) => {
|
|
23
|
+
if (!swap)
|
|
24
|
+
throw new Error('Missing swap');
|
|
25
|
+
const evmSourceTxStatus = (0, chain_adapters_1.isEvmChainId)(chainId)
|
|
26
|
+
? await (0, utils_1.checkEvmSwapStatus)({
|
|
27
|
+
txHash,
|
|
28
|
+
chainId,
|
|
29
|
+
address,
|
|
30
|
+
assertGetEvmChainAdapter,
|
|
31
|
+
fetchIsSmartContractAddressQuery,
|
|
32
|
+
})
|
|
33
|
+
: undefined;
|
|
34
|
+
if (evmSourceTxStatus && evmSourceTxStatus.status !== unchained_client_1.TxStatus.Confirmed) {
|
|
35
|
+
return evmSourceTxStatus;
|
|
36
|
+
}
|
|
37
|
+
const sourceTxHash = evmSourceTxStatus?.buyTxHash ?? txHash;
|
|
38
|
+
if (chainId === caip_1.tronChainId) {
|
|
39
|
+
const sourceTx = await assertGetTronChainAdapter(chainId)
|
|
40
|
+
.httpProvider.getTransaction({ txid: sourceTxHash })
|
|
41
|
+
.catch(() => null);
|
|
42
|
+
if (!sourceTx?.confirmations) {
|
|
43
|
+
return { buyTxHash: undefined, status: unchained_client_1.TxStatus.Pending, message: undefined };
|
|
44
|
+
}
|
|
45
|
+
if ((0, helpers_1.isTronSourceTxFailed)(sourceTx)) {
|
|
46
|
+
return { buyTxHash: undefined, status: unchained_client_1.TxStatus.Failed, message: undefined };
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
const sellSymbiosisChainId = constants_1.chainIdToSymbiosisChainId[chainId];
|
|
50
|
+
const buySymbiosisChainId = constants_1.chainIdToSymbiosisChainId[swap.buyAsset.chainId];
|
|
51
|
+
const maybeStatusResponse = await symbiosisService_1.symbiosisService.get(`${config.VITE_SYMBIOSIS_API_URL}/v2/tx/${sellSymbiosisChainId}/${sourceTxHash}`);
|
|
52
|
+
if (maybeStatusResponse.isErr()) {
|
|
53
|
+
return {
|
|
54
|
+
buyTxHash: undefined,
|
|
55
|
+
status: unchained_client_1.TxStatus.Unknown,
|
|
56
|
+
message: undefined,
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
const { data: response } = maybeStatusResponse.unwrap();
|
|
60
|
+
return {
|
|
61
|
+
...(0, helpers_1.getSymbiosisTradeStatus)({ response, buySymbiosisChainId }),
|
|
62
|
+
swapperTxId: sourceTxHash,
|
|
63
|
+
swapperTxLink: `${constants_1.SYMBIOSIS_EXPLORER_URL}/transactions/${sellSymbiosisChainId}/${sourceTxHash}`,
|
|
64
|
+
};
|
|
65
|
+
},
|
|
66
|
+
};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { Result } from '@sniptt/monads';
|
|
2
|
+
import type { SwapErrorRight, SwapperDeps, TradeQuote } from '../../../types';
|
|
3
|
+
import type { SymbiosisTradeQuoteInput } from '../utils/types';
|
|
4
|
+
export declare const getTradeQuote: (input: SymbiosisTradeQuoteInput, deps: SwapperDeps) => Promise<Result<TradeQuote[], SwapErrorRight>>;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getTradeQuote = void 0;
|
|
4
|
+
const monads_1 = require("@sniptt/monads");
|
|
5
|
+
const utils_1 = require("../../../utils");
|
|
6
|
+
const getSymbiosisStepData_1 = require("../utils/getSymbiosisStepData");
|
|
7
|
+
const getSymbiosisTradeContext_1 = require("../utils/getSymbiosisTradeContext");
|
|
8
|
+
const getTradeQuote = async (input, deps) => {
|
|
9
|
+
const { accountNumber } = input;
|
|
10
|
+
const maybeAddresses = (0, utils_1.assertQuoteAddresses)(input);
|
|
11
|
+
if (maybeAddresses.isErr())
|
|
12
|
+
return (0, monads_1.Err)(maybeAddresses.unwrapErr());
|
|
13
|
+
const { sendAddress, receiveAddress } = maybeAddresses.unwrap();
|
|
14
|
+
const maybeContext = await (0, getSymbiosisTradeContext_1.getSymbiosisTradeContext)({
|
|
15
|
+
input,
|
|
16
|
+
deps,
|
|
17
|
+
from: sendAddress,
|
|
18
|
+
to: receiveAddress,
|
|
19
|
+
});
|
|
20
|
+
if (maybeContext.isErr())
|
|
21
|
+
return (0, monads_1.Err)(maybeContext.unwrapErr());
|
|
22
|
+
const { tradeCommon, stepCommon, protocolFees, stepDataArgs } = maybeContext.unwrap();
|
|
23
|
+
const maybeStepData = await (0, getSymbiosisStepData_1.getSymbiosisStepData)({ ...stepDataArgs, type: 'quote', input });
|
|
24
|
+
if (maybeStepData.isErr())
|
|
25
|
+
return (0, monads_1.Err)(maybeStepData.unwrapErr());
|
|
26
|
+
const { transactionData, networkFeeCryptoBaseUnit } = maybeStepData.unwrap();
|
|
27
|
+
const tradeQuote = {
|
|
28
|
+
...tradeCommon,
|
|
29
|
+
quoteOrRate: 'quote',
|
|
30
|
+
receiveAddress,
|
|
31
|
+
steps: [
|
|
32
|
+
{
|
|
33
|
+
...stepCommon,
|
|
34
|
+
accountNumber,
|
|
35
|
+
transactionData,
|
|
36
|
+
feeData: { networkFeeCryptoBaseUnit, protocolFees },
|
|
37
|
+
},
|
|
38
|
+
],
|
|
39
|
+
};
|
|
40
|
+
return (0, monads_1.Ok)([tradeQuote]);
|
|
41
|
+
};
|
|
42
|
+
exports.getTradeQuote = getTradeQuote;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { Result } from '@sniptt/monads';
|
|
2
|
+
import type { SwapErrorRight, SwapperDeps, TradeRate } from '../../../types';
|
|
3
|
+
import type { SymbiosisTradeRateInput } from '../utils/types';
|
|
4
|
+
export declare const getTradeRate: (input: SymbiosisTradeRateInput, deps: SwapperDeps) => Promise<Result<TradeRate[], SwapErrorRight>>;
|