@shapeshiftoss/swapper 20.1.1 → 20.3.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.
Files changed (213) hide show
  1. package/dist/cjs/.tsbuildinfo +1 -1
  2. package/dist/cjs/swappers/BebopSwapper/utils/fetchFromBebop.d.ts +1 -2
  3. package/dist/cjs/swappers/BebopSwapper/utils/fetchFromBebop.js +4 -7
  4. package/dist/cjs/swappers/BebopSwapper/utils/getBebopSolanaTradeContext.js +0 -1
  5. package/dist/cjs/swappers/BobGatewaySwapper/BobGatewaySwapper.js +10 -1
  6. package/dist/cjs/swappers/BobGatewaySwapper/endpoints.js +2 -33
  7. package/dist/cjs/swappers/BobGatewaySwapper/swapperApi/getTradeQuote.js +5 -8
  8. package/dist/cjs/swappers/BobGatewaySwapper/swapperApi/getTradeRate.js +1 -2
  9. package/dist/cjs/swappers/BobGatewaySwapper/types.d.ts +3 -3
  10. package/dist/cjs/swappers/BobGatewaySwapper/utils/constants.d.ts +3 -2
  11. package/dist/cjs/swappers/BobGatewaySwapper/utils/constants.js +8 -5
  12. package/dist/cjs/swappers/BobGatewaySwapper/utils/getBobGatewayStepData.d.ts +2 -2
  13. package/dist/cjs/swappers/BobGatewaySwapper/utils/getBobGatewayStepData.js +30 -34
  14. package/dist/cjs/swappers/BobGatewaySwapper/utils/getBobGatewayStepData.test.d.ts +1 -0
  15. package/dist/cjs/swappers/BobGatewaySwapper/utils/getBobGatewayStepData.test.js +117 -0
  16. package/dist/cjs/swappers/BobGatewaySwapper/utils/getBobGatewayTradeContext.js +1 -2
  17. package/dist/cjs/swappers/BobGatewaySwapper/utils/helpers.d.ts +8 -11
  18. package/dist/cjs/swappers/BobGatewaySwapper/utils/helpers.js +36 -31
  19. package/dist/cjs/swappers/ButterSwap/ButterSwap.js +0 -3
  20. package/dist/cjs/swappers/ButterSwap/endpoints.js +0 -3
  21. package/dist/cjs/swappers/ButterSwap/swapperApi/getTradeQuote.js +2 -3
  22. package/dist/cjs/swappers/ButterSwap/swapperApi/getTradeRate.test.js +0 -51
  23. package/dist/cjs/swappers/ButterSwap/types.d.ts +3 -14
  24. package/dist/cjs/swappers/ButterSwap/utils/constants.d.ts +2 -0
  25. package/dist/cjs/swappers/ButterSwap/utils/constants.js +4 -1
  26. package/dist/cjs/swappers/ButterSwap/utils/getButterSwapStepData.d.ts +2 -3
  27. package/dist/cjs/swappers/ButterSwap/utils/getButterSwapStepData.js +42 -65
  28. package/dist/cjs/swappers/ButterSwap/utils/getButterSwapStepData.test.js +115 -73
  29. package/dist/cjs/swappers/ButterSwap/utils/helpers.js +1 -4
  30. package/dist/cjs/swappers/ButterSwap/xhr.js +3 -3
  31. package/dist/cjs/swappers/ChainflipSwapper/endpoints.js +3 -19
  32. package/dist/cjs/swappers/ChainflipSwapper/utils/getChainflipStepData.d.ts +1 -1
  33. package/dist/cjs/swappers/ChainflipSwapper/utils/getChainflipStepData.js +31 -12
  34. package/dist/cjs/swappers/NearIntentsSwapper/constants.d.ts +1 -0
  35. package/dist/cjs/swappers/NearIntentsSwapper/constants.js +3 -1
  36. package/dist/cjs/swappers/NearIntentsSwapper/utils/getNearIntentsStepData.js +10 -5
  37. package/dist/cjs/swappers/NearIntentsSwapper/utils/helpers.js +1 -1
  38. package/dist/cjs/swappers/RelaySwapper/constant.d.ts +1 -1
  39. package/dist/cjs/swappers/RelaySwapper/constant.js +3 -2
  40. package/dist/cjs/swappers/RelaySwapper/getTradeQuote/getTradeQuote.js +1 -2
  41. package/dist/cjs/swappers/RelaySwapper/utils/getRelayAssetAddress.js +2 -1
  42. package/dist/cjs/swappers/RelaySwapper/utils/getRelayStepData.d.ts +2 -3
  43. package/dist/cjs/swappers/RelaySwapper/utils/getRelayStepData.js +46 -13
  44. package/dist/cjs/swappers/RelaySwapper/utils/getRelayStepData.test.d.ts +1 -0
  45. package/dist/cjs/swappers/RelaySwapper/utils/getRelayStepData.test.js +139 -0
  46. package/dist/cjs/swappers/RelaySwapper/utils/helpers.js +1 -2
  47. package/dist/cjs/swappers/RelaySwapper/utils/relayTokenToAssetId.js +1 -1
  48. package/dist/cjs/swappers/RelaySwapper/utils/types.d.ts +1 -4
  49. package/dist/cjs/swappers/SunioSwapper/endpoints.js +3 -63
  50. package/dist/cjs/swappers/SunioSwapper/getSunioTradeQuote/getSunioTradeQuote.js +3 -4
  51. package/dist/cjs/swappers/SunioSwapper/getSunioTradeRate/getSunioTradeRate.js +7 -1
  52. package/dist/cjs/swappers/SunioSwapper/types.d.ts +0 -3
  53. package/dist/cjs/swappers/SunioSwapper/utils/buildSwapContractCall.d.ts +11 -6
  54. package/dist/cjs/swappers/SunioSwapper/utils/buildSwapContractCall.js +33 -30
  55. package/dist/cjs/swappers/SunioSwapper/utils/constants.d.ts +3 -3
  56. package/dist/cjs/swappers/SunioSwapper/utils/constants.js +5 -9
  57. package/dist/cjs/swappers/SunioSwapper/utils/getSunioStepData.d.ts +8 -3
  58. package/dist/cjs/swappers/SunioSwapper/utils/getSunioStepData.js +54 -20
  59. package/dist/cjs/swappers/SunioSwapper/utils/getSunioStepData.test.d.ts +1 -0
  60. package/dist/cjs/swappers/SunioSwapper/utils/getSunioStepData.test.js +177 -0
  61. package/dist/cjs/swappers/SunioSwapper/utils/getSunioTradeContext.js +3 -2
  62. package/dist/cjs/swappers/SunioSwapper/utils/helpers.js +2 -1
  63. package/dist/cjs/swappers/ThorchainSwapper/endpoints.js +3 -4
  64. package/dist/cjs/swappers/ThorchainSwapper/utils/addL1ToLongtailPartsToMemo/addL1ToLongtailPartsToMemo.js +6 -1
  65. package/dist/cjs/swappers/ThorchainSwapper/utils/addL1ToLongtailPartsToMemo/addL1ToLongtailPartsToMemo.test.js +15 -0
  66. package/dist/cjs/swappers/ThorchainSwapper/utils/assertValidLongtailTrade.js +7 -0
  67. package/dist/cjs/swappers/ThorchainSwapper/utils/getL1ToLongtailQuote.js +0 -2
  68. package/dist/cjs/swappers/ThorchainSwapper/utils/getL1ToLongtailRate.js +0 -2
  69. package/dist/cjs/swappers/ThorchainSwapper/utils/getUniqueAddressSubstring/getUniqueAddressSubstring.d.ts +1 -1
  70. package/dist/cjs/swappers/ThorchainSwapper/utils/getUniqueAddressSubstring/getUniqueAddressSubstring.js +17 -20
  71. package/dist/cjs/swappers/ThorchainSwapper/utils/getUniqueAddressSubstring/getUniqueAddressSubstring.test.js +31 -0
  72. package/dist/cjs/types.d.ts +9 -8
  73. package/dist/cjs/utils/helpers.js +3 -0
  74. package/dist/cjs/utils/helpers.test.js +3 -0
  75. package/dist/cjs/utils/thorchain/getThorStepData.js +32 -49
  76. package/dist/cjs/utils/thorchain/getThorStepData.tron.test.d.ts +1 -0
  77. package/dist/cjs/utils/thorchain/getThorStepData.tron.test.js +93 -0
  78. package/dist/cjs/utils/thorchain/index.d.ts +0 -1
  79. package/dist/cjs/utils/thorchain/index.js +1 -14
  80. package/dist/cjs/utils/tron/constants.d.ts +1 -0
  81. package/dist/cjs/utils/tron/constants.js +5 -0
  82. package/dist/cjs/utils/tron/getTronNetworkFeeCryptoBaseUnit.d.ts +27 -0
  83. package/dist/cjs/utils/tron/getTronNetworkFeeCryptoBaseUnit.js +64 -0
  84. package/dist/cjs/utils/tron/getTronNetworkFeeCryptoBaseUnit.test.d.ts +1 -0
  85. package/dist/cjs/utils/tron/getTronNetworkFeeCryptoBaseUnit.test.js +157 -0
  86. package/dist/cjs/utils/tron/getUnsignedTronTransaction.d.ts +2 -1
  87. package/dist/cjs/utils/tron/getUnsignedTronTransaction.js +14 -48
  88. package/dist/cjs/utils/tron/getUnsignedTronTransaction.test.d.ts +1 -0
  89. package/dist/cjs/utils/tron/getUnsignedTronTransaction.test.js +76 -0
  90. package/dist/cjs/utils/tron/index.d.ts +2 -0
  91. package/dist/cjs/utils/tron/index.js +2 -0
  92. package/dist/esm/.tsbuildinfo +1 -1
  93. package/dist/esm/swappers/BebopSwapper/utils/fetchFromBebop.d.ts +1 -2
  94. package/dist/esm/swappers/BebopSwapper/utils/fetchFromBebop.js +4 -7
  95. package/dist/esm/swappers/BebopSwapper/utils/getBebopSolanaTradeContext.js +0 -1
  96. package/dist/esm/swappers/BobGatewaySwapper/BobGatewaySwapper.js +11 -2
  97. package/dist/esm/swappers/BobGatewaySwapper/endpoints.js +5 -36
  98. package/dist/esm/swappers/BobGatewaySwapper/swapperApi/getTradeQuote.js +5 -8
  99. package/dist/esm/swappers/BobGatewaySwapper/swapperApi/getTradeRate.js +1 -2
  100. package/dist/esm/swappers/BobGatewaySwapper/types.d.ts +3 -3
  101. package/dist/esm/swappers/BobGatewaySwapper/utils/constants.d.ts +3 -2
  102. package/dist/esm/swappers/BobGatewaySwapper/utils/constants.js +8 -7
  103. package/dist/esm/swappers/BobGatewaySwapper/utils/getBobGatewayStepData.d.ts +2 -2
  104. package/dist/esm/swappers/BobGatewaySwapper/utils/getBobGatewayStepData.js +21 -25
  105. package/dist/esm/swappers/BobGatewaySwapper/utils/getBobGatewayStepData.test.d.ts +1 -0
  106. package/dist/esm/swappers/BobGatewaySwapper/utils/getBobGatewayStepData.test.js +115 -0
  107. package/dist/esm/swappers/BobGatewaySwapper/utils/getBobGatewayTradeContext.js +1 -2
  108. package/dist/esm/swappers/BobGatewaySwapper/utils/helpers.d.ts +8 -11
  109. package/dist/esm/swappers/BobGatewaySwapper/utils/helpers.js +13 -30
  110. package/dist/esm/swappers/ButterSwap/ButterSwap.js +0 -3
  111. package/dist/esm/swappers/ButterSwap/endpoints.js +0 -3
  112. package/dist/esm/swappers/ButterSwap/swapperApi/getTradeQuote.js +2 -3
  113. package/dist/esm/swappers/ButterSwap/swapperApi/getTradeRate.test.js +1 -49
  114. package/dist/esm/swappers/ButterSwap/types.d.ts +3 -14
  115. package/dist/esm/swappers/ButterSwap/utils/constants.d.ts +2 -0
  116. package/dist/esm/swappers/ButterSwap/utils/constants.js +3 -0
  117. package/dist/esm/swappers/ButterSwap/utils/getButterSwapStepData.d.ts +2 -3
  118. package/dist/esm/swappers/ButterSwap/utils/getButterSwapStepData.js +42 -65
  119. package/dist/esm/swappers/ButterSwap/utils/getButterSwapStepData.test.js +116 -74
  120. package/dist/esm/swappers/ButterSwap/utils/helpers.js +2 -5
  121. package/dist/esm/swappers/ButterSwap/xhr.js +3 -3
  122. package/dist/esm/swappers/ChainflipSwapper/endpoints.js +3 -19
  123. package/dist/esm/swappers/ChainflipSwapper/utils/getChainflipStepData.d.ts +1 -1
  124. package/dist/esm/swappers/ChainflipSwapper/utils/getChainflipStepData.js +32 -13
  125. package/dist/esm/swappers/NearIntentsSwapper/constants.d.ts +1 -0
  126. package/dist/esm/swappers/NearIntentsSwapper/constants.js +2 -0
  127. package/dist/esm/swappers/NearIntentsSwapper/utils/getNearIntentsStepData.js +10 -5
  128. package/dist/esm/swappers/NearIntentsSwapper/utils/helpers.js +2 -2
  129. package/dist/esm/swappers/RelaySwapper/constant.d.ts +1 -1
  130. package/dist/esm/swappers/RelaySwapper/constant.js +2 -1
  131. package/dist/esm/swappers/RelaySwapper/getTradeQuote/getTradeQuote.js +1 -2
  132. package/dist/esm/swappers/RelaySwapper/utils/getRelayAssetAddress.js +3 -2
  133. package/dist/esm/swappers/RelaySwapper/utils/getRelayStepData.d.ts +2 -3
  134. package/dist/esm/swappers/RelaySwapper/utils/getRelayStepData.js +46 -13
  135. package/dist/esm/swappers/RelaySwapper/utils/getRelayStepData.test.d.ts +1 -0
  136. package/dist/esm/swappers/RelaySwapper/utils/getRelayStepData.test.js +137 -0
  137. package/dist/esm/swappers/RelaySwapper/utils/helpers.js +1 -2
  138. package/dist/esm/swappers/RelaySwapper/utils/relayTokenToAssetId.js +3 -3
  139. package/dist/esm/swappers/RelaySwapper/utils/types.d.ts +1 -4
  140. package/dist/esm/swappers/SunioSwapper/endpoints.js +5 -65
  141. package/dist/esm/swappers/SunioSwapper/getSunioTradeQuote/getSunioTradeQuote.js +3 -4
  142. package/dist/esm/swappers/SunioSwapper/getSunioTradeRate/getSunioTradeRate.js +7 -1
  143. package/dist/esm/swappers/SunioSwapper/types.d.ts +0 -3
  144. package/dist/esm/swappers/SunioSwapper/utils/buildSwapContractCall.d.ts +11 -6
  145. package/dist/esm/swappers/SunioSwapper/utils/buildSwapContractCall.js +31 -28
  146. package/dist/esm/swappers/SunioSwapper/utils/constants.d.ts +3 -3
  147. package/dist/esm/swappers/SunioSwapper/utils/constants.js +4 -8
  148. package/dist/esm/swappers/SunioSwapper/utils/getSunioStepData.d.ts +8 -3
  149. package/dist/esm/swappers/SunioSwapper/utils/getSunioStepData.js +52 -18
  150. package/dist/esm/swappers/SunioSwapper/utils/getSunioStepData.test.d.ts +1 -0
  151. package/dist/esm/swappers/SunioSwapper/utils/getSunioStepData.test.js +175 -0
  152. package/dist/esm/swappers/SunioSwapper/utils/getSunioTradeContext.js +2 -1
  153. package/dist/esm/swappers/SunioSwapper/utils/helpers.js +3 -2
  154. package/dist/esm/swappers/ThorchainSwapper/endpoints.js +4 -5
  155. package/dist/esm/swappers/ThorchainSwapper/utils/addL1ToLongtailPartsToMemo/addL1ToLongtailPartsToMemo.js +6 -1
  156. package/dist/esm/swappers/ThorchainSwapper/utils/addL1ToLongtailPartsToMemo/addL1ToLongtailPartsToMemo.test.js +15 -0
  157. package/dist/esm/swappers/ThorchainSwapper/utils/assertValidLongtailTrade.js +7 -0
  158. package/dist/esm/swappers/ThorchainSwapper/utils/getL1ToLongtailQuote.js +0 -2
  159. package/dist/esm/swappers/ThorchainSwapper/utils/getL1ToLongtailRate.js +0 -2
  160. package/dist/esm/swappers/ThorchainSwapper/utils/getUniqueAddressSubstring/getUniqueAddressSubstring.d.ts +1 -1
  161. package/dist/esm/swappers/ThorchainSwapper/utils/getUniqueAddressSubstring/getUniqueAddressSubstring.js +17 -20
  162. package/dist/esm/swappers/ThorchainSwapper/utils/getUniqueAddressSubstring/getUniqueAddressSubstring.test.js +29 -1
  163. package/dist/esm/types.d.ts +9 -8
  164. package/dist/esm/utils/helpers.js +4 -1
  165. package/dist/esm/utils/helpers.test.js +3 -0
  166. package/dist/esm/utils/thorchain/getThorStepData.js +32 -49
  167. package/dist/esm/utils/thorchain/getThorStepData.tron.test.d.ts +1 -0
  168. package/dist/esm/utils/thorchain/getThorStepData.tron.test.js +91 -0
  169. package/dist/esm/utils/thorchain/index.d.ts +0 -1
  170. package/dist/esm/utils/thorchain/index.js +0 -1
  171. package/dist/esm/utils/tron/constants.d.ts +1 -0
  172. package/dist/esm/utils/tron/constants.js +2 -0
  173. package/dist/esm/utils/tron/getTronNetworkFeeCryptoBaseUnit.d.ts +27 -0
  174. package/dist/esm/utils/tron/getTronNetworkFeeCryptoBaseUnit.js +59 -0
  175. package/dist/esm/utils/tron/getTronNetworkFeeCryptoBaseUnit.test.d.ts +1 -0
  176. package/dist/esm/utils/tron/getTronNetworkFeeCryptoBaseUnit.test.js +155 -0
  177. package/dist/esm/utils/tron/getUnsignedTronTransaction.d.ts +2 -1
  178. package/dist/esm/utils/tron/getUnsignedTronTransaction.js +14 -48
  179. package/dist/esm/utils/tron/getUnsignedTronTransaction.test.d.ts +1 -0
  180. package/dist/esm/utils/tron/getUnsignedTronTransaction.test.js +74 -0
  181. package/dist/esm/utils/tron/index.d.ts +2 -0
  182. package/dist/esm/utils/tron/index.js +2 -0
  183. package/package.json +9 -9
  184. package/dist/cjs/swappers/ButterSwap/test-data/eth-btc.json +0 -461
  185. package/dist/cjs/swappers/SunioSwapper/utils/buildSwapRouteParameters.d.ts +0 -14
  186. package/dist/cjs/swappers/SunioSwapper/utils/buildSwapRouteParameters.js +0 -32
  187. package/dist/cjs/swappers/SunioSwapper/utils/estimateSunioNetworkFee.d.ts +0 -12
  188. package/dist/cjs/swappers/SunioSwapper/utils/estimateSunioNetworkFee.js +0 -78
  189. package/dist/cjs/swappers/SunioSwapper/utils/getSunioTransactionFees.d.ts +0 -2
  190. package/dist/cjs/swappers/SunioSwapper/utils/getSunioTransactionFees.js +0 -36
  191. package/dist/cjs/utils/thorchain/tron/getTronTransactionFees.d.ts +0 -2
  192. package/dist/cjs/utils/thorchain/tron/getTronTransactionFees.js +0 -68
  193. package/dist/cjs/utils/thorchain/tron/getUnsignedTronTransaction.d.ts +0 -3
  194. package/dist/cjs/utils/thorchain/tron/getUnsignedTronTransaction.js +0 -35
  195. package/dist/cjs/utils/thorchain/tron/index.d.ts +0 -2
  196. package/dist/cjs/utils/thorchain/tron/index.js +0 -18
  197. package/dist/esm/swappers/ButterSwap/test-data/eth-btc.json +0 -461
  198. package/dist/esm/swappers/SunioSwapper/utils/buildSwapRouteParameters.d.ts +0 -14
  199. package/dist/esm/swappers/SunioSwapper/utils/buildSwapRouteParameters.js +0 -28
  200. package/dist/esm/swappers/SunioSwapper/utils/estimateSunioNetworkFee.d.ts +0 -12
  201. package/dist/esm/swappers/SunioSwapper/utils/estimateSunioNetworkFee.js +0 -74
  202. package/dist/esm/swappers/SunioSwapper/utils/getSunioTransactionFees.d.ts +0 -2
  203. package/dist/esm/swappers/SunioSwapper/utils/getSunioTransactionFees.js +0 -32
  204. package/dist/esm/utils/thorchain/tron/getTronTransactionFees.d.ts +0 -2
  205. package/dist/esm/utils/thorchain/tron/getTronTransactionFees.js +0 -64
  206. package/dist/esm/utils/thorchain/tron/getUnsignedTronTransaction.d.ts +0 -3
  207. package/dist/esm/utils/thorchain/tron/getUnsignedTronTransaction.js +0 -31
  208. package/dist/esm/utils/thorchain/tron/index.d.ts +0 -2
  209. package/dist/esm/utils/thorchain/tron/index.js +0 -2
  210. /package/dist/cjs/swappers/SunioSwapper/utils/{fetchFromSunio.d.ts → fetchSunioQuote.d.ts} +0 -0
  211. /package/dist/cjs/swappers/SunioSwapper/utils/{fetchFromSunio.js → fetchSunioQuote.js} +0 -0
  212. /package/dist/esm/swappers/SunioSwapper/utils/{fetchFromSunio.d.ts → fetchSunioQuote.d.ts} +0 -0
  213. /package/dist/esm/swappers/SunioSwapper/utils/{fetchFromSunio.js → fetchSunioQuote.js} +0 -0
@@ -0,0 +1,74 @@
1
+ import { tronChainId } from '@shapeshiftoss/caip';
2
+ import { describe, expect, it, vi } from 'vitest';
3
+ import { ETH } from '../test-data/assets.js';
4
+ import { getUnsignedTronTransaction } from './getUnsignedTronTransaction.js';
5
+ const USDT = 'TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t';
6
+ const TRX = { ...ETH, assetId: `${tronChainId}/slip44:195`, chainId: tronChainId };
7
+ const USDT_TRON = { ...ETH, assetId: `${tronChainId}/trc20:${USDT}`, chainId: tronChainId };
8
+ const FROM = 'TT2T17KZhoDu47i2E4FWxfG79zdkEWkU9N';
9
+ const TO = 'TCFNp179Lg46D16zKoumd4Poa2WFFdtqYj';
10
+ const makeArgs = (sellAsset, transactionData, feeData = {
11
+ networkFeeCryptoBaseUnit: '9000000',
12
+ }) => {
13
+ const adapter = {
14
+ buildCustomApiTx: vi.fn().mockResolvedValue('custom'),
15
+ buildSendApiTransaction: vi.fn().mockResolvedValue('send'),
16
+ };
17
+ const tradeQuote = {
18
+ quoteOrRate: 'quote',
19
+ steps: [{ accountNumber: 0, sellAsset, transactionData, feeData }],
20
+ };
21
+ return {
22
+ adapter,
23
+ args: {
24
+ tradeQuote,
25
+ stepIndex: 0,
26
+ from: FROM,
27
+ assertGetTronChainAdapter: () => adapter,
28
+ },
29
+ };
30
+ };
31
+ describe('getUnsignedTronTransaction', () => {
32
+ it('builds a contract call when data is present', async () => {
33
+ const { adapter, args } = makeArgs(TRX, {
34
+ type: 'tron',
35
+ to: TO,
36
+ data: '0xdeadbeef',
37
+ value: '1',
38
+ });
39
+ expect(await getUnsignedTronTransaction(args)).toBe('custom');
40
+ expect(adapter.buildCustomApiTx).toHaveBeenCalledWith({
41
+ from: FROM,
42
+ to: TO,
43
+ accountNumber: 0,
44
+ data: '0xdeadbeef',
45
+ value: '1',
46
+ feeLimit: 27_000_000,
47
+ });
48
+ });
49
+ it('uses the standard fee limit when the step carries no estimate', async () => {
50
+ const { adapter, args } = makeArgs(TRX, { type: 'tron', to: TO, data: '0xdeadbeef', value: '1' }, { networkFeeCryptoBaseUnit: undefined });
51
+ await getUnsignedTronTransaction(args);
52
+ expect(adapter.buildCustomApiTx).toHaveBeenCalledWith(expect.objectContaining({ feeLimit: 100_000_000 }));
53
+ });
54
+ it('builds a send of the sell asset when data is absent', async () => {
55
+ const { adapter, args } = makeArgs(USDT_TRON, {
56
+ type: 'tron',
57
+ to: TO,
58
+ value: '1',
59
+ memo: '=:ETH.ETH:0xabc',
60
+ });
61
+ expect(await getUnsignedTronTransaction(args)).toBe('send');
62
+ expect(adapter.buildSendApiTransaction).toHaveBeenCalledWith({
63
+ from: FROM,
64
+ to: TO,
65
+ accountNumber: 0,
66
+ value: '1',
67
+ chainSpecific: { contractAddress: USDT, memo: '=:ETH.ETH:0xabc', feeLimit: 27_000_000 },
68
+ });
69
+ });
70
+ it('throws without tron transactionData', () => {
71
+ const { args } = makeArgs(TRX, undefined);
72
+ expect(() => getUnsignedTronTransaction(args)).toThrow('Missing tron transactionData');
73
+ });
74
+ });
@@ -1,2 +1,4 @@
1
+ export * from './constants.js';
2
+ export * from './getTronNetworkFeeCryptoBaseUnit.js';
1
3
  export * from './getTronTransactionFees.js';
2
4
  export * from './getUnsignedTronTransaction.js';
@@ -1,2 +1,4 @@
1
+ export * from './constants.js';
2
+ export * from './getTronNetworkFeeCryptoBaseUnit.js';
1
3
  export * from './getTronTransactionFees.js';
2
4
  export * from './getUnsignedTronTransaction.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@shapeshiftoss/swapper",
3
- "version": "20.1.1",
3
+ "version": "20.3.0",
4
4
  "repository": "https://github.com/shapeshift/web",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -28,7 +28,7 @@
28
28
  "@coral-xyz/anchor": "0.29.0",
29
29
  "@cowprotocol/app-data": "^2.3.0",
30
30
  "@defuse-protocol/one-click-sdk-typescript": "^0.1.1-0.2",
31
- "@gobob/bob-sdk": "5.11.1",
31
+ "@gobob/bob-sdk": "6.0.1",
32
32
  "@mysten/sui": "^1.45.2",
33
33
  "@shapeshiftoss/bitcoinjs-lib": "7.0.0-shapeshift.0",
34
34
  "@sniptt/monads": "^0.5.10",
@@ -50,13 +50,13 @@
50
50
  "retry-axios": "^2.6.0",
51
51
  "uuid": "^9.0.0",
52
52
  "viem": "2.55.11",
53
- "@shapeshiftoss/caip": "^8.17.0",
54
- "@shapeshiftoss/chain-adapters": "^11.5.1",
55
- "@shapeshiftoss/contracts": "^1.0.7",
56
- "@shapeshiftoss/unchained-client": "^10.14.11",
57
- "@shapeshiftoss/types": "^9.0.1",
58
- "@shapeshiftoss/utils": "^1.2.0",
59
- "@shapeshiftoss/hdwallet-core": "^1.62.41"
53
+ "@shapeshiftoss/caip": "^8.17.1",
54
+ "@shapeshiftoss/chain-adapters": "^11.6.0",
55
+ "@shapeshiftoss/hdwallet-core": "^1.62.41",
56
+ "@shapeshiftoss/contracts": "^1.1.0",
57
+ "@shapeshiftoss/types": "^9.1.0",
58
+ "@shapeshiftoss/utils": "^1.3.1",
59
+ "@shapeshiftoss/unchained-client": "^10.15.0"
60
60
  },
61
61
  "devDependencies": {
62
62
  "@types/lodash": "^4.14.178",
@@ -1,461 +0,0 @@
1
- {
2
- "errno": 0,
3
- "message": "success",
4
- "data": [
5
- {
6
- "diff": "0",
7
- "bridgeFee": {
8
- "amount": "0.000107378906528402",
9
- "symbol": "BTC",
10
- "address": "0xb877E3562a660C7861117c2f1361A26ABaF19bEB",
11
- "chainId": 22776,
12
- "in": {
13
- "amount": "0.0",
14
- "token": {
15
- "address": "0x05aB928d446d8ce6761e368c8e7bE03C3168A9ec",
16
- "decimals": 18,
17
- "symbol": "ETH",
18
- "icon": "https://s3.amazonaws.com/map-static-file/mapSwap/ethereum/0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2/logo.png"
19
- }
20
- },
21
- "out": {
22
- "amount": "0.000107378906528402",
23
- "token": {
24
- "address": "0xb877E3562a660C7861117c2f1361A26ABaF19bEB",
25
- "decimals": 18,
26
- "symbol": "BTC",
27
- "icon": "https://map-static-file.s3.amazonaws.com/mapSwap/merlin/0x0000000000000000000000000000000000000000.jpg"
28
- }
29
- },
30
- "affiliate": {
31
- "amount": "0.0",
32
- "token": {
33
- "address": "0x05aB928d446d8ce6761e368c8e7bE03C3168A9ec",
34
- "decimals": 18,
35
- "symbol": "ETH",
36
- "icon": "https://s3.amazonaws.com/map-static-file/mapSwap/ethereum/0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2/logo.png"
37
- },
38
- "list": [],
39
- "data": "0x00"
40
- }
41
- },
42
- "tradeType": 0,
43
- "gasFee": {
44
- "amount": "0.00016530333452",
45
- "symbol": "ETH",
46
- "inUSD": "0.40999865125232837"
47
- },
48
- "swapFee": {
49
- "nativeFee": "0.0",
50
- "tokenFee": "0.0"
51
- },
52
- "feeConfig": {
53
- "feeType": 1,
54
- "referrer": "0x51C700e5bE790C91F14D42F85ca90aed9f2D142e",
55
- "rateOrNativeFee": 0
56
- },
57
- "gasEstimated": "170000",
58
- "gasEstimatedTarget": "420000",
59
- "timeEstimated": 120,
60
- "hash": "0xebdd2bea8ffe00bbbc9f0f7d8a92ee9112cf5d2630fb14946c3f21726c3464f6",
61
- "entrance": "butter+",
62
- "timestamp": 1750912498065,
63
- "hasLiquidity": true,
64
- "srcChain": {
65
- "chainId": "1",
66
- "tokenIn": {
67
- "address": "0x0000000000000000000000000000000000000000",
68
- "name": "ETH",
69
- "decimals": 18,
70
- "symbol": "ETH",
71
- "icon": "https://s3.amazonaws.com/map-static-file/mapSwap/ethereum/0x0000000000000000000000000000000000000000/logo.png"
72
- },
73
- "tokenOut": {
74
- "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",
75
- "name": "Wrapped Ether",
76
- "decimals": 18,
77
- "symbol": "WETH",
78
- "icon": "https://s3.amazonaws.com/map-static-file/mapSwap/ethereum/0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2/logo.png"
79
- },
80
- "totalAmountIn": "1.0",
81
- "totalAmountOut": "1.0",
82
- "route": [
83
- {
84
- "amountIn": "1.0",
85
- "amountOut": "1.0",
86
- "dexName": "",
87
- "path": []
88
- }
89
- ],
90
- "totalAmountOutUSD": "2480.28058504",
91
- "bridge": "Butter"
92
- },
93
- "bridgeChain": {
94
- "chainId": "22776",
95
- "tokenIn": {
96
- "address": "0x05aB928d446d8ce6761e368c8e7bE03C3168A9ec",
97
- "decimals": 18,
98
- "symbol": "ETH",
99
- "icon": "https://s3.amazonaws.com/map-static-file/mapSwap/ethereum/0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2/logo.png"
100
- },
101
- "tokenOut": {
102
- "address": "0xb877E3562a660C7861117c2f1361A26ABaF19bEB",
103
- "decimals": 18,
104
- "symbol": "BTC",
105
- "icon": "https://map-static-file.s3.amazonaws.com/mapSwap/merlin/0x0000000000000000000000000000000000000000.jpg"
106
- },
107
- "totalAmountIn": "1.0",
108
- "totalAmountOut": "0.022844183704832789",
109
- "route": [
110
- {
111
- "amountIn": "1.0",
112
- "amountOut": "0.022844183704832789",
113
- "dexName": "FlashSwap",
114
- "path": []
115
- }
116
- ],
117
- "bridge": "Butter"
118
- },
119
- "dstChain": {
120
- "chainId": "1360095883558913",
121
- "tokenIn": {
122
- "address": "0x425443",
123
- "name": "WBTC",
124
- "decimals": 8,
125
- "symbol": "WBTC",
126
- "icon": "https://map-static-file.s3.amazonaws.com/mapSwap/merlin/0x0000000000000000000000000000000000000000.jpg"
127
- },
128
- "tokenOut": {
129
- "address": "0x0000000000000000000000000000000000000000",
130
- "name": "BTC",
131
- "decimals": 8,
132
- "symbol": "BTC",
133
- "icon": "https://map-static-file.s3.amazonaws.com/mapSwap/merlin/0x0000000000000000000000000000000000000000.jpg"
134
- },
135
- "totalAmountIn": "0.02284418",
136
- "totalAmountOut": "0.02284418",
137
- "route": [
138
- {
139
- "amountIn": "0.02284418",
140
- "amountOut": "0.02284418",
141
- "dexName": "",
142
- "path": []
143
- }
144
- ],
145
- "totalAmountOutUSD": "2465.5271044752394",
146
- "bridge": "Butter"
147
- },
148
- "totalAmountInUSD": "2480.28058504",
149
- "totalAmountOutUSD": "2465.5271044752394",
150
- "contract": "0xEE030ec6F4307411607E55aCD08e628Ae6655B86",
151
- "minAmountOut": {
152
- "amount": "0.02250152",
153
- "symbol": "BTC"
154
- }
155
- },
156
- {
157
- "diff": "0.00236384059309635977",
158
- "bridgeFee": {
159
- "amount": "0.000107377548232246",
160
- "symbol": "BTC",
161
- "address": "0xb877E3562a660C7861117c2f1361A26ABaF19bEB",
162
- "chainId": 22776,
163
- "in": {
164
- "amount": "0.0",
165
- "token": {
166
- "address": "0x9f722b2cb30093f766221Fd0d37964949ed66918",
167
- "decimals": 18,
168
- "symbol": "USDC",
169
- "icon": "https://s3.amazonaws.com/map-static-file/mapSwap/ethereum/0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48/logo.png"
170
- }
171
- },
172
- "out": {
173
- "amount": "0.000107377548232246",
174
- "token": {
175
- "address": "0xb877E3562a660C7861117c2f1361A26ABaF19bEB",
176
- "decimals": 18,
177
- "symbol": "BTC",
178
- "icon": "https://map-static-file.s3.amazonaws.com/mapSwap/merlin/0x0000000000000000000000000000000000000000.jpg"
179
- }
180
- },
181
- "affiliate": {
182
- "amount": "0.0",
183
- "token": {
184
- "address": "0x9f722b2cb30093f766221Fd0d37964949ed66918",
185
- "decimals": 18,
186
- "symbol": "USDC",
187
- "icon": "https://s3.amazonaws.com/map-static-file/mapSwap/ethereum/0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48/logo.png"
188
- },
189
- "list": [],
190
- "data": "0x00"
191
- }
192
- },
193
- "tradeType": 0,
194
- "gasFee": {
195
- "amount": "0.000797153938526468",
196
- "symbol": "ETH",
197
- "inUSD": "1.9771654370153682"
198
- },
199
- "swapFee": {
200
- "nativeFee": "0.0",
201
- "tokenFee": "0.0"
202
- },
203
- "feeConfig": {
204
- "feeType": 1,
205
- "referrer": "0x51C700e5bE790C91F14D42F85ca90aed9f2D142e",
206
- "rateOrNativeFee": 0
207
- },
208
- "gasEstimated": "819803",
209
- "gasEstimatedTarget": "420000",
210
- "timeEstimated": 120,
211
- "hash": "0x89959c9c0d91bceeeddcf3edb2c8164a8ea7bd3eb464214a58a49d061996d028",
212
- "entrance": "butter+",
213
- "timestamp": 1750912498065,
214
- "hasLiquidity": true,
215
- "srcChain": {
216
- "chainId": "1",
217
- "tokenIn": {
218
- "address": "0x0000000000000000000000000000000000000000",
219
- "name": "ETH",
220
- "decimals": 18,
221
- "symbol": "ETH",
222
- "icon": "https://s3.amazonaws.com/map-static-file/mapSwap/ethereum/0x0000000000000000000000000000000000000000/logo.png"
223
- },
224
- "tokenOut": {
225
- "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
226
- "name": "USD Coin",
227
- "decimals": 6,
228
- "symbol": "USDC",
229
- "icon": "https://s3.amazonaws.com/map-static-file/mapSwap/ethereum/0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48/logo.png"
230
- },
231
- "totalAmountIn": "1.0",
232
- "totalAmountOut": "2479.119727",
233
- "route": [
234
- {
235
- "amountIn": "1.0",
236
- "amountOut": "2479.119727",
237
- "dexName": "OpenOcean",
238
- "path": [],
239
- "extra": "0x90411a3200000000000000000000000055877bd7f2ee37bde55ca4b271a3631f3a7ef121000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000001c0000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000055877bd7f2ee37bde55ca4b271a3631f3a7ef121000000000000000000000000aa301070448385cfaac5913a67b16c4392944a8f0000000000000000000000000000000000000000000000000de0b6b3a7640000000000000000000000000000000000000000000000000000000000008c60f25c0000000000000000000000000000000000000000000000000000000093c45d6f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200aee9ba7040d778922a763ce8a50948d61aff5000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000001e000000000000000000000000000000000000000000000000000000000000003a000000000000000000000000000000000000000000000000000000000000004600000000000000000000000000000000000000000000000000000000000000620000000000000000000000000000000000000000000000000000000000000088000000000000000000000000000000000000000000000000000000000000009c00000000000000000000000000000000000000000000000000000000000000e200000000000000000000000000000000000000000000000000000000000000f40000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006f05b59d3b2000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000004d0e30db00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000104e5b07cdb000000000000000000000000e0554a476a092703abdb3ef35c80e0d76d32939f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006f05b59d3b2000000000000000000000000000055877bd7f2ee37bde55ca4b271a3631f3a7ef12100000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000002ec02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000064a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006f05b59d3b2000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000004d0e30db00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000104e5b07cdb000000000000000000000000c7bbec68d12a0d1830360f8ec58fa599ba1b0e9b000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000006ccd46763f1000000000000000000000000000055877bd7f2ee37bde55ca4b271a3631f3a7ef12100000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000002ec02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000064dac17f958d2ee523a2206206994597c13d831ec700000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000001a49f865422000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc200000000000000000000000000000001000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000004400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000064d1660f99000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000ce9874c42dce7fffbe5e48b026ff1182733266cb0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000084aa37e8aa000000000000000000000000ce9874c42dce7fffbe5e48b026ff1182733266cb000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec700000000000000000000000055877bd7f2ee37bde55ca4b271a3631f3a7ef12100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000003a451a74316000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec700000000000000000000000000000001000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000034000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000064eb5625d9000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec70000000000000000000000006146be494fee4c73540cb1c5f87536abf14525000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000006146be494fee4c73540cb1c5f87536abf14525000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000084c31b8d7a00000000000000000000000055877bd7f2ee37bde55ca4b271a3631f3a7ef12100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000fffd8963efd1fc6a506488495d951d5263988d250000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000044000000000000000000000000000000000000000000000000000000000000004400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000648a6a1e85000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000922164bbbd36acf9e854acbbf32facc949fcaeef0000000000000000000000000000000000000000000000000000000093c45d6f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000001a49f865422000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000000000001000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000004400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000064d1660f99000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000aa301070448385cfaac5913a67b16c4392944a8f00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
240
- }
241
- ],
242
- "totalAmountOutUSD": "2479.009901996094",
243
- "bridge": "Butter"
244
- },
245
- "bridgeChain": {
246
- "chainId": "22776",
247
- "tokenIn": {
248
- "address": "0x9f722b2cb30093f766221Fd0d37964949ed66918",
249
- "decimals": 18,
250
- "symbol": "USDC",
251
- "icon": "https://s3.amazonaws.com/map-static-file/mapSwap/ethereum/0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48/logo.png"
252
- },
253
- "tokenOut": {
254
- "address": "0xb877E3562a660C7861117c2f1361A26ABaF19bEB",
255
- "decimals": 18,
256
- "symbol": "BTC",
257
- "icon": "https://map-static-file.s3.amazonaws.com/mapSwap/merlin/0x0000000000000000000000000000000000000000.jpg"
258
- },
259
- "totalAmountIn": "2479.119727",
260
- "totalAmountOut": "0.022843641744666255",
261
- "route": [
262
- {
263
- "amountIn": "2479.119727",
264
- "amountOut": "0.022843641744666255",
265
- "dexName": "FlashSwap",
266
- "path": []
267
- }
268
- ],
269
- "bridge": "Butter"
270
- },
271
- "dstChain": {
272
- "chainId": "1360095883558913",
273
- "tokenIn": {
274
- "address": "0x425443",
275
- "name": "WBTC",
276
- "decimals": 8,
277
- "symbol": "WBTC",
278
- "icon": "https://map-static-file.s3.amazonaws.com/mapSwap/merlin/0x0000000000000000000000000000000000000000.jpg"
279
- },
280
- "tokenOut": {
281
- "address": "0x0000000000000000000000000000000000000000",
282
- "name": "BTC",
283
- "decimals": 8,
284
- "symbol": "BTC",
285
- "icon": "https://map-static-file.s3.amazonaws.com/mapSwap/merlin/0x0000000000000000000000000000000000000000.jpg"
286
- },
287
- "totalAmountIn": "0.02284364",
288
- "totalAmountOut": "0.02284364",
289
- "route": [
290
- {
291
- "amountIn": "0.02284364",
292
- "amountOut": "0.02284364",
293
- "dexName": "",
294
- "path": []
295
- }
296
- ],
297
- "totalAmountOutUSD": "2465.4688233447096",
298
- "bridge": "Butter"
299
- },
300
- "totalAmountInUSD": "2480.28058504",
301
- "totalAmountOutUSD": "2465.4688233447096",
302
- "contract": "0xEE030ec6F4307411607E55aCD08e628Ae6655B86",
303
- "minAmountOut": {
304
- "amount": "0.02250099",
305
- "symbol": "BTC"
306
- }
307
- },
308
- {
309
- "diff": "0.01514608972613593484",
310
- "bridgeFee": {
311
- "amount": "0.000107370229408362",
312
- "symbol": "BTC",
313
- "address": "0xb877E3562a660C7861117c2f1361A26ABaF19bEB",
314
- "chainId": 22776,
315
- "in": {
316
- "amount": "0.0",
317
- "token": {
318
- "address": "0x33DAba9618a75a7AFf103e53AfE530FbAcF4A3DD",
319
- "decimals": 18,
320
- "symbol": "USDT",
321
- "icon": "https://files.mapprotocol.io/bridge/usdt.png"
322
- }
323
- },
324
- "out": {
325
- "amount": "0.000107370229408362",
326
- "token": {
327
- "address": "0xb877E3562a660C7861117c2f1361A26ABaF19bEB",
328
- "decimals": 18,
329
- "symbol": "BTC",
330
- "icon": "https://map-static-file.s3.amazonaws.com/mapSwap/merlin/0x0000000000000000000000000000000000000000.jpg"
331
- }
332
- },
333
- "affiliate": {
334
- "amount": "0.0",
335
- "token": {
336
- "address": "0x33DAba9618a75a7AFf103e53AfE530FbAcF4A3DD",
337
- "decimals": 18,
338
- "symbol": "USDT",
339
- "icon": "https://files.mapprotocol.io/bridge/usdt.png"
340
- },
341
- "list": [],
342
- "data": "0x00"
343
- }
344
- },
345
- "tradeType": 0,
346
- "gasFee": {
347
- "amount": "0.00038404340285498",
348
- "symbol": "ETH",
349
- "inUSD": "0.9525353959139022"
350
- },
351
- "swapFee": {
352
- "nativeFee": "0.0",
353
- "tokenFee": "0.0"
354
- },
355
- "feeConfig": {
356
- "feeType": 1,
357
- "referrer": "0x51C700e5bE790C91F14D42F85ca90aed9f2D142e",
358
- "rateOrNativeFee": 0
359
- },
360
- "gasEstimated": "394955",
361
- "gasEstimatedTarget": "420000",
362
- "timeEstimated": 120,
363
- "hash": "0x43123b7bca6ac488bd74c7d056ac3fcddf41fdd1ddc12271b39e85ad889f91b6",
364
- "entrance": "butter+",
365
- "timestamp": 1750912498067,
366
- "hasLiquidity": true,
367
- "srcChain": {
368
- "chainId": "1",
369
- "tokenIn": {
370
- "address": "0x0000000000000000000000000000000000000000",
371
- "name": "ETH",
372
- "decimals": 18,
373
- "symbol": "ETH",
374
- "icon": "https://s3.amazonaws.com/map-static-file/mapSwap/ethereum/0x0000000000000000000000000000000000000000/logo.png"
375
- },
376
- "tokenOut": {
377
- "address": "0xdAC17F958D2ee523a2206206994597C13D831ec7",
378
- "name": "Tether USD",
379
- "decimals": 6,
380
- "symbol": "USDT",
381
- "icon": "https://files.mapprotocol.io/bridge/usdt.png"
382
- },
383
- "totalAmountIn": "1.0",
384
- "totalAmountOut": "2477.604823",
385
- "route": [
386
- {
387
- "amountIn": "1.0",
388
- "amountOut": "2477.604823",
389
- "dexName": "OpenOcean",
390
- "path": [],
391
- "extra": "0x90411a3200000000000000000000000055877bd7f2ee37bde55ca4b271a3631f3a7ef121000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000001c0000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec700000000000000000000000055877bd7f2ee37bde55ca4b271a3631f3a7ef121000000000000000000000000aa301070448385cfaac5913a67b16c4392944a8f0000000000000000000000000000000000000000000000000de0b6b3a7640000000000000000000000000000000000000000000000000000000000008c4afca50000000000000000000000000000000000000000000000000000000093ad3fd70000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200aee9ba7040d778922a763ce8a50948d61aff50000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000420000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000004d0e30db00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000104e5b07cdb000000000000000000000000c7bbec68d12a0d1830360f8ec58fa599ba1b0e9b00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000055877bd7f2ee37bde55ca4b271a3631f3a7ef12100000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000002ec02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000064dac17f958d2ee523a2206206994597c13d831ec700000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000648a6a1e85000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7000000000000000000000000922164bbbd36acf9e854acbbf32facc949fcaeef0000000000000000000000000000000000000000000000000000000093ad3fd700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000001a49f865422000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec700000000000000000000000000000001000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000004400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000064d1660f99000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7000000000000000000000000aa301070448385cfaac5913a67b16c4392944a8f00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
392
- }
393
- ],
394
- "totalAmountOutUSD": "2478.925361594611",
395
- "bridge": "Butter"
396
- },
397
- "bridgeChain": {
398
- "chainId": "22776",
399
- "tokenIn": {
400
- "address": "0x33DAba9618a75a7AFf103e53AfE530FbAcF4A3DD",
401
- "decimals": 18,
402
- "symbol": "USDT",
403
- "icon": "https://files.mapprotocol.io/bridge/usdt.png"
404
- },
405
- "tokenOut": {
406
- "address": "0xb877E3562a660C7861117c2f1361A26ABaF19bEB",
407
- "decimals": 18,
408
- "symbol": "BTC",
409
- "icon": "https://map-static-file.s3.amazonaws.com/mapSwap/merlin/0x0000000000000000000000000000000000000000.jpg"
410
- },
411
- "totalAmountIn": "2477.604823",
412
- "totalAmountOut": "0.022840721533936562",
413
- "route": [
414
- {
415
- "amountIn": "2477.604823",
416
- "amountOut": "0.022840721533936562",
417
- "dexName": "FlashSwap",
418
- "path": []
419
- }
420
- ],
421
- "bridge": "Butter"
422
- },
423
- "dstChain": {
424
- "chainId": "1360095883558913",
425
- "tokenIn": {
426
- "address": "0x425443",
427
- "name": "WBTC",
428
- "decimals": 8,
429
- "symbol": "WBTC",
430
- "icon": "https://map-static-file.s3.amazonaws.com/mapSwap/merlin/0x0000000000000000000000000000000000000000.jpg"
431
- },
432
- "tokenOut": {
433
- "address": "0x0000000000000000000000000000000000000000",
434
- "name": "BTC",
435
- "decimals": 8,
436
- "symbol": "BTC",
437
- "icon": "https://map-static-file.s3.amazonaws.com/mapSwap/merlin/0x0000000000000000000000000000000000000000.jpg"
438
- },
439
- "totalAmountIn": "0.02284072",
440
- "totalAmountOut": "0.02284072",
441
- "route": [
442
- {
443
- "amountIn": "0.02284072",
444
- "amountOut": "0.02284072",
445
- "dexName": "",
446
- "path": []
447
- }
448
- ],
449
- "totalAmountOutUSD": "2465.153673527773",
450
- "bridge": "Butter"
451
- },
452
- "totalAmountInUSD": "2480.28058504",
453
- "totalAmountOutUSD": "2465.153673527773",
454
- "contract": "0xEE030ec6F4307411607E55aCD08e628Ae6655B86",
455
- "minAmountOut": {
456
- "amount": "0.02249811",
457
- "symbol": "BTC"
458
- }
459
- }
460
- ]
461
- }
@@ -1,14 +0,0 @@
1
- import type { SunioRoute } from '../types';
2
- export type SwapRouteParameters = {
3
- path: string[];
4
- poolVersion: string[];
5
- versionLen: number[];
6
- fees: number[];
7
- swapData: {
8
- amountIn: string;
9
- amountOutMin: string;
10
- recipient: string;
11
- deadline: number;
12
- };
13
- };
14
- export declare const buildSwapRouteParameters: (route: SunioRoute, sellAmountCryptoBaseUnit: string, minBuyAmountCryptoBaseUnit: string, recipient: string, slippageTolerancePercentageDecimal: string) => SwapRouteParameters;
@@ -1,32 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.buildSwapRouteParameters = void 0;
4
- const utils_1 = require("@shapeshiftoss/utils");
5
- const buildSwapRouteParameters = (route, sellAmountCryptoBaseUnit, minBuyAmountCryptoBaseUnit, recipient, slippageTolerancePercentageDecimal) => {
6
- const path = route.tokens;
7
- const poolVersion = route.poolVersions;
8
- // The SmartExchangeRouter expects sum(versionLen) === path.length: the first
9
- // pool segment consumes 2 tokens (input + output) and each subsequent pool
10
- // reuses the previous output, consuming 1 new token. This relies on the Sun.io
11
- // API returning poolVersions per-hop (poolVersions.length === tokens.length - 1),
12
- // which it does — the router also accepts this un-collapsed form for same-version hops.
13
- const versionLen = poolVersion.map((_, index) => (index === 0 ? 2 : 1));
14
- const fees = route.poolFees.map(fee => Number(fee));
15
- const amountOutWithSlippage = (0, utils_1.bn)(minBuyAmountCryptoBaseUnit)
16
- .times((0, utils_1.bn)(1).minus(slippageTolerancePercentageDecimal))
17
- .toFixed(0);
18
- const swapData = {
19
- amountIn: sellAmountCryptoBaseUnit,
20
- amountOutMin: amountOutWithSlippage,
21
- recipient,
22
- deadline: Math.floor(Date.now() / 1000) + 60 * 20,
23
- };
24
- return {
25
- path,
26
- poolVersion,
27
- versionLen,
28
- fees,
29
- swapData,
30
- };
31
- };
32
- exports.buildSwapRouteParameters = buildSwapRouteParameters;