@shapeshiftoss/swapper 17.6.8 → 17.6.10

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 (183) hide show
  1. package/dist/cjs/.tsbuildinfo +1 -1
  2. package/dist/cjs/constants.js +61 -43
  3. package/dist/cjs/swappers/AcrossSwapper/AcrossSwapper.d.ts +2 -0
  4. package/dist/cjs/swappers/AcrossSwapper/AcrossSwapper.js +8 -0
  5. package/dist/cjs/swappers/AcrossSwapper/constant.d.ts +9 -0
  6. package/dist/cjs/swappers/AcrossSwapper/constant.js +48 -0
  7. package/dist/cjs/swappers/AcrossSwapper/endpoints.d.ts +2 -0
  8. package/dist/cjs/swappers/AcrossSwapper/endpoints.js +113 -0
  9. package/dist/cjs/swappers/AcrossSwapper/getTradeQuote/getTradeQuote.d.ts +3 -0
  10. package/dist/cjs/swappers/AcrossSwapper/getTradeQuote/getTradeQuote.js +31 -0
  11. package/dist/cjs/swappers/AcrossSwapper/getTradeRate/getTradeRate.d.ts +3 -0
  12. package/dist/cjs/swappers/AcrossSwapper/getTradeRate/getTradeRate.js +19 -0
  13. package/dist/cjs/swappers/AcrossSwapper/index.d.ts +1 -0
  14. package/dist/cjs/swappers/AcrossSwapper/index.js +5 -0
  15. package/dist/cjs/swappers/AcrossSwapper/utils/acrossService.d.ts +5 -0
  16. package/dist/cjs/swappers/AcrossSwapper/utils/acrossService.js +17 -0
  17. package/dist/cjs/swappers/AcrossSwapper/utils/fetchAcrossTrade.d.ts +19 -0
  18. package/dist/cjs/swappers/AcrossSwapper/utils/fetchAcrossTrade.js +27 -0
  19. package/dist/cjs/swappers/AcrossSwapper/utils/getTrade.d.ts +11 -0
  20. package/dist/cjs/swappers/AcrossSwapper/utils/getTrade.js +335 -0
  21. package/dist/cjs/swappers/AcrossSwapper/utils/types.d.ts +177 -0
  22. package/dist/cjs/swappers/AcrossSwapper/utils/types.js +17 -0
  23. package/dist/cjs/swappers/AvnuSwapper/endpoints.js +42 -14
  24. package/dist/cjs/swappers/AvnuSwapper/swapperApi/getTradeQuote.js +10 -5
  25. package/dist/cjs/swappers/AvnuSwapper/swapperApi/getTradeRate.js +8 -4
  26. package/dist/cjs/swappers/BebopSwapper/utils/helpers/helpers.d.ts +1 -1
  27. package/dist/cjs/swappers/ButterSwap/ButterSwap.js +1 -0
  28. package/dist/cjs/swappers/ButterSwap/endpoints.js +56 -0
  29. package/dist/cjs/swappers/ButterSwap/swapperApi/checkTradeStatus.js +19 -0
  30. package/dist/cjs/swappers/ButterSwap/swapperApi/getTradeQuote.js +27 -14
  31. package/dist/cjs/swappers/ButterSwap/swapperApi/getTradeQuote.test.js +1 -0
  32. package/dist/cjs/swappers/ButterSwap/swapperApi/getTradeRate.js +23 -16
  33. package/dist/cjs/swappers/ButterSwap/swapperApi/getTradeRate.test.js +2 -0
  34. package/dist/cjs/swappers/ButterSwap/types.d.ts +1 -0
  35. package/dist/cjs/swappers/ButterSwap/utils/helpers.js +1 -0
  36. package/dist/cjs/swappers/ButterSwap/xhr.d.ts +2 -2
  37. package/dist/cjs/swappers/ButterSwap/xhr.js +7 -2
  38. package/dist/cjs/swappers/CetusSwapper/endpoints.js +3 -8
  39. package/dist/cjs/swappers/CetusSwapper/swapperApi/getTradeQuote.js +1 -1
  40. package/dist/cjs/swappers/CetusSwapper/swapperApi/getTradeRate.js +1 -1
  41. package/dist/cjs/swappers/ChainflipSwapper/utils/getQuoteOrRate.js +11 -5
  42. package/dist/cjs/swappers/ChainflipSwapper/utils/helpers.js +8 -2
  43. package/dist/cjs/swappers/CowSwapper/CowSwapper.js +1 -1
  44. package/dist/cjs/swappers/CowSwapper/getCowSwapTradeQuote/getCowSwapTradeQuote.js +1 -1
  45. package/dist/cjs/swappers/CowSwapper/getCowSwapTradeQuote/getCowSwapTradeQuote.test.js +5 -5
  46. package/dist/cjs/swappers/CowSwapper/getCowSwapTradeRate/getCowSwapTradeRate.js +1 -1
  47. package/dist/cjs/swappers/CowSwapper/utils/helpers/helpers.js +8 -2
  48. package/dist/cjs/swappers/NearIntentsSwapper/NearIntentsSwapper.js +1 -0
  49. package/dist/cjs/swappers/NearIntentsSwapper/endpoints.js +31 -0
  50. package/dist/cjs/swappers/NearIntentsSwapper/swapperApi/getTradeQuote.js +36 -1
  51. package/dist/cjs/swappers/NearIntentsSwapper/swapperApi/getTradeRate.js +61 -1
  52. package/dist/cjs/swappers/NearIntentsSwapper/types.d.ts +1 -1
  53. package/dist/cjs/swappers/NearIntentsSwapper/types.js +6 -0
  54. package/dist/cjs/swappers/NearIntentsSwapper/utils/helpers/helpers.js +23 -4
  55. package/dist/cjs/swappers/PortalsSwapper/getPortalsTradeRate/getPortalsTradeRate.js +8 -3
  56. package/dist/cjs/swappers/RelaySwapper/constant.js +26 -1
  57. package/dist/cjs/swappers/RelaySwapper/utils/getRelayDefaultUserAddress.d.ts +1 -1
  58. package/dist/cjs/swappers/RelaySwapper/utils/getTrade.js +13 -2
  59. package/dist/cjs/swappers/RelaySwapper/utils/relayTokenToAssetId.js +100 -0
  60. package/dist/cjs/swappers/RelaySwapper/utils/types.d.ts +15 -0
  61. package/dist/cjs/swappers/StonfiSwapper/StonfiSwapper.d.ts +2 -0
  62. package/dist/cjs/swappers/StonfiSwapper/StonfiSwapper.js +8 -0
  63. package/dist/cjs/swappers/StonfiSwapper/endpoints.d.ts +2 -0
  64. package/dist/cjs/swappers/StonfiSwapper/endpoints.js +227 -0
  65. package/dist/cjs/swappers/StonfiSwapper/index.d.ts +4 -0
  66. package/dist/cjs/swappers/StonfiSwapper/index.js +25 -0
  67. package/dist/cjs/swappers/StonfiSwapper/swapperApi/getTradeQuote.d.ts +2 -0
  68. package/dist/cjs/swappers/StonfiSwapper/swapperApi/getTradeQuote.js +119 -0
  69. package/dist/cjs/swappers/StonfiSwapper/swapperApi/getTradeRate.d.ts +2 -0
  70. package/dist/cjs/swappers/StonfiSwapper/swapperApi/getTradeRate.js +105 -0
  71. package/dist/cjs/swappers/StonfiSwapper/types.d.ts +60 -0
  72. package/dist/cjs/swappers/StonfiSwapper/types.js +5 -0
  73. package/dist/cjs/swappers/StonfiSwapper/utils/constants.d.ts +5 -0
  74. package/dist/cjs/swappers/StonfiSwapper/utils/constants.js +8 -0
  75. package/dist/cjs/swappers/StonfiSwapper/utils/helpers.d.ts +11 -0
  76. package/dist/cjs/swappers/StonfiSwapper/utils/helpers.js +135 -0
  77. package/dist/cjs/swappers/StonfiSwapper/utils/omnistonManager.d.ts +5 -0
  78. package/dist/cjs/swappers/StonfiSwapper/utils/omnistonManager.js +20 -0
  79. package/dist/cjs/swappers/SunioSwapper/endpoints.js +1 -1
  80. package/dist/cjs/swappers/SunioSwapper/utils/getQuoteOrRate.js +4 -3
  81. package/dist/cjs/swappers/ZrxSwapper/utils/helpers/helpers.d.ts +1 -1
  82. package/dist/cjs/swappers/utils/filterBuyAssetsBySellAssetId/filterBuyAssetsBySellAssetId.js +2 -5
  83. package/dist/cjs/swappers/utils/helpers/helpers.js +3 -0
  84. package/dist/cjs/thorchain-utils/getCallDataFromQuote.d.ts +1 -1
  85. package/dist/cjs/thorchain-utils/getL1RateOrQuote.js +30 -5
  86. package/dist/cjs/thorchain-utils/getQuote.js +8 -2
  87. package/dist/cjs/tron-utils/getUnsignedTronTransaction.js +22 -2
  88. package/dist/cjs/types.d.ts +79 -8
  89. package/dist/cjs/types.js +2 -0
  90. package/dist/cjs/utils.d.ts +4 -3
  91. package/dist/cjs/utils.js +35 -7
  92. package/dist/esm/.tsbuildinfo +1 -1
  93. package/dist/esm/constants.js +31 -13
  94. package/dist/esm/swappers/AcrossSwapper/AcrossSwapper.d.ts +2 -0
  95. package/dist/esm/swappers/AcrossSwapper/AcrossSwapper.js +5 -0
  96. package/dist/esm/swappers/AcrossSwapper/constant.d.ts +9 -0
  97. package/dist/esm/swappers/AcrossSwapper/constant.js +42 -0
  98. package/dist/esm/swappers/AcrossSwapper/endpoints.d.ts +2 -0
  99. package/dist/esm/swappers/AcrossSwapper/endpoints.js +107 -0
  100. package/dist/esm/swappers/AcrossSwapper/getTradeQuote/getTradeQuote.d.ts +3 -0
  101. package/dist/esm/swappers/AcrossSwapper/getTradeQuote/getTradeQuote.js +27 -0
  102. package/dist/esm/swappers/AcrossSwapper/getTradeRate/getTradeRate.d.ts +3 -0
  103. package/dist/esm/swappers/AcrossSwapper/getTradeRate/getTradeRate.js +15 -0
  104. package/dist/esm/swappers/AcrossSwapper/index.d.ts +1 -0
  105. package/dist/esm/swappers/AcrossSwapper/index.js +1 -0
  106. package/dist/esm/swappers/AcrossSwapper/utils/acrossService.d.ts +5 -0
  107. package/dist/esm/swappers/AcrossSwapper/utils/acrossService.js +11 -0
  108. package/dist/esm/swappers/AcrossSwapper/utils/fetchAcrossTrade.d.ts +19 -0
  109. package/dist/esm/swappers/AcrossSwapper/utils/fetchAcrossTrade.js +23 -0
  110. package/dist/esm/swappers/AcrossSwapper/utils/getTrade.d.ts +11 -0
  111. package/dist/esm/swappers/AcrossSwapper/utils/getTrade.js +328 -0
  112. package/dist/esm/swappers/AcrossSwapper/utils/types.d.ts +177 -0
  113. package/dist/esm/swappers/AcrossSwapper/utils/types.js +13 -0
  114. package/dist/esm/swappers/AvnuSwapper/endpoints.js +43 -15
  115. package/dist/esm/swappers/AvnuSwapper/swapperApi/getTradeQuote.js +10 -5
  116. package/dist/esm/swappers/AvnuSwapper/swapperApi/getTradeRate.js +8 -4
  117. package/dist/esm/swappers/BebopSwapper/utils/helpers/helpers.d.ts +1 -1
  118. package/dist/esm/swappers/ButterSwap/ButterSwap.js +2 -1
  119. package/dist/esm/swappers/ButterSwap/endpoints.js +56 -0
  120. package/dist/esm/swappers/ButterSwap/swapperApi/checkTradeStatus.js +20 -1
  121. package/dist/esm/swappers/ButterSwap/swapperApi/getTradeQuote.js +29 -16
  122. package/dist/esm/swappers/ButterSwap/swapperApi/getTradeQuote.test.js +1 -0
  123. package/dist/esm/swappers/ButterSwap/swapperApi/getTradeRate.js +25 -18
  124. package/dist/esm/swappers/ButterSwap/swapperApi/getTradeRate.test.js +2 -0
  125. package/dist/esm/swappers/ButterSwap/types.d.ts +1 -0
  126. package/dist/esm/swappers/ButterSwap/utils/helpers.js +1 -0
  127. package/dist/esm/swappers/ButterSwap/xhr.d.ts +2 -2
  128. package/dist/esm/swappers/ButterSwap/xhr.js +8 -3
  129. package/dist/esm/swappers/CetusSwapper/endpoints.js +3 -8
  130. package/dist/esm/swappers/CetusSwapper/swapperApi/getTradeQuote.js +1 -1
  131. package/dist/esm/swappers/CetusSwapper/swapperApi/getTradeRate.js +1 -1
  132. package/dist/esm/swappers/ChainflipSwapper/utils/getQuoteOrRate.js +12 -6
  133. package/dist/esm/swappers/ChainflipSwapper/utils/helpers.js +9 -3
  134. package/dist/esm/swappers/CowSwapper/CowSwapper.js +1 -1
  135. package/dist/esm/swappers/CowSwapper/getCowSwapTradeQuote/getCowSwapTradeQuote.js +1 -1
  136. package/dist/esm/swappers/CowSwapper/getCowSwapTradeQuote/getCowSwapTradeQuote.test.js +5 -5
  137. package/dist/esm/swappers/CowSwapper/getCowSwapTradeRate/getCowSwapTradeRate.js +1 -1
  138. package/dist/esm/swappers/CowSwapper/utils/helpers/helpers.js +9 -3
  139. package/dist/esm/swappers/NearIntentsSwapper/NearIntentsSwapper.js +2 -1
  140. package/dist/esm/swappers/NearIntentsSwapper/endpoints.js +31 -0
  141. package/dist/esm/swappers/NearIntentsSwapper/swapperApi/getTradeQuote.js +36 -1
  142. package/dist/esm/swappers/NearIntentsSwapper/swapperApi/getTradeRate.js +61 -1
  143. package/dist/esm/swappers/NearIntentsSwapper/types.d.ts +1 -1
  144. package/dist/esm/swappers/NearIntentsSwapper/types.js +6 -0
  145. package/dist/esm/swappers/NearIntentsSwapper/utils/helpers/helpers.js +23 -4
  146. package/dist/esm/swappers/PortalsSwapper/getPortalsTradeRate/getPortalsTradeRate.js +8 -3
  147. package/dist/esm/swappers/RelaySwapper/constant.js +28 -3
  148. package/dist/esm/swappers/RelaySwapper/utils/getRelayDefaultUserAddress.d.ts +1 -1
  149. package/dist/esm/swappers/RelaySwapper/utils/getTrade.js +13 -2
  150. package/dist/esm/swappers/RelaySwapper/utils/relayTokenToAssetId.js +100 -0
  151. package/dist/esm/swappers/RelaySwapper/utils/types.d.ts +15 -0
  152. package/dist/esm/swappers/StonfiSwapper/StonfiSwapper.d.ts +2 -0
  153. package/dist/esm/swappers/StonfiSwapper/StonfiSwapper.js +5 -0
  154. package/dist/esm/swappers/StonfiSwapper/endpoints.d.ts +2 -0
  155. package/dist/esm/swappers/StonfiSwapper/endpoints.js +224 -0
  156. package/dist/esm/swappers/StonfiSwapper/index.d.ts +4 -0
  157. package/dist/esm/swappers/StonfiSwapper/index.js +4 -0
  158. package/dist/esm/swappers/StonfiSwapper/swapperApi/getTradeQuote.d.ts +2 -0
  159. package/dist/esm/swappers/StonfiSwapper/swapperApi/getTradeQuote.js +115 -0
  160. package/dist/esm/swappers/StonfiSwapper/swapperApi/getTradeRate.d.ts +2 -0
  161. package/dist/esm/swappers/StonfiSwapper/swapperApi/getTradeRate.js +101 -0
  162. package/dist/esm/swappers/StonfiSwapper/types.d.ts +60 -0
  163. package/dist/esm/swappers/StonfiSwapper/types.js +2 -0
  164. package/dist/esm/swappers/StonfiSwapper/utils/constants.d.ts +5 -0
  165. package/dist/esm/swappers/StonfiSwapper/utils/constants.js +5 -0
  166. package/dist/esm/swappers/StonfiSwapper/utils/helpers.d.ts +11 -0
  167. package/dist/esm/swappers/StonfiSwapper/utils/helpers.js +124 -0
  168. package/dist/esm/swappers/StonfiSwapper/utils/omnistonManager.d.ts +5 -0
  169. package/dist/esm/swappers/StonfiSwapper/utils/omnistonManager.js +17 -0
  170. package/dist/esm/swappers/SunioSwapper/endpoints.js +1 -1
  171. package/dist/esm/swappers/SunioSwapper/utils/getQuoteOrRate.js +5 -4
  172. package/dist/esm/swappers/ZrxSwapper/utils/helpers/helpers.d.ts +1 -1
  173. package/dist/esm/swappers/utils/filterBuyAssetsBySellAssetId/filterBuyAssetsBySellAssetId.js +2 -5
  174. package/dist/esm/swappers/utils/helpers/helpers.js +4 -1
  175. package/dist/esm/thorchain-utils/getCallDataFromQuote.d.ts +1 -1
  176. package/dist/esm/thorchain-utils/getL1RateOrQuote.js +31 -6
  177. package/dist/esm/thorchain-utils/getQuote.js +9 -3
  178. package/dist/esm/tron-utils/getUnsignedTronTransaction.js +22 -2
  179. package/dist/esm/types.d.ts +79 -8
  180. package/dist/esm/types.js +2 -0
  181. package/dist/esm/utils.d.ts +4 -3
  182. package/dist/esm/utils.js +34 -7
  183. package/package.json +17 -15
@@ -0,0 +1,227 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.stonfiApi = void 0;
4
+ const chain_adapters_1 = require("@shapeshiftoss/chain-adapters");
5
+ const unchained_client_1 = require("@shapeshiftoss/unchained-client");
6
+ const omniston_sdk_1 = require("@ston-fi/omniston-sdk");
7
+ const utils_1 = require("../../utils");
8
+ const getTradeQuote_1 = require("./swapperApi/getTradeQuote");
9
+ const getTradeRate_1 = require("./swapperApi/getTradeRate");
10
+ const omnistonManager_1 = require("./utils/omnistonManager");
11
+ const TRADE_TRACKING_TIMEOUT_MS = 60000;
12
+ const waitForFirstTradeStatus = (request, timeoutMs) => {
13
+ const omniston = omnistonManager_1.omnistonManager.getInstance();
14
+ return new Promise(resolve => {
15
+ const timer = setTimeout(() => {
16
+ subscription.unsubscribe();
17
+ resolve(null);
18
+ }, timeoutMs);
19
+ const subscription = omniston.trackTrade(request).subscribe({
20
+ next: (status) => {
21
+ clearTimeout(timer);
22
+ subscription.unsubscribe();
23
+ resolve(status);
24
+ },
25
+ error: err => {
26
+ console.error('[Stonfi] trackTrade error:', err);
27
+ clearTimeout(timer);
28
+ resolve(null);
29
+ },
30
+ });
31
+ });
32
+ };
33
+ exports.stonfiApi = {
34
+ getTradeQuote: (input, _deps) => (0, getTradeQuote_1.getTradeQuote)(input),
35
+ getTradeRate: input => (0, getTradeRate_1.getTradeRate)(input),
36
+ getUnsignedTonTransaction: async ({ stepIndex, tradeQuote, from, assertGetTonChainAdapter }) => {
37
+ if (!(0, utils_1.isExecutableTradeQuote)(tradeQuote)) {
38
+ throw new Error('Unable to execute a trade rate quote');
39
+ }
40
+ const step = (0, utils_1.getExecutableTradeStep)(tradeQuote, stepIndex);
41
+ const { accountNumber, sellAsset, stonfiSpecific } = step;
42
+ if (!stonfiSpecific) {
43
+ throw new Error('stonfiSpecific is required');
44
+ }
45
+ const adapter = assertGetTonChainAdapter(sellAsset.chainId);
46
+ const storedQuote = {
47
+ quoteId: stonfiSpecific.quoteId,
48
+ resolverId: stonfiSpecific.resolverId,
49
+ resolverName: stonfiSpecific.resolverName,
50
+ bidAssetAddress: stonfiSpecific.bidAssetAddress,
51
+ askAssetAddress: stonfiSpecific.askAssetAddress,
52
+ bidUnits: stonfiSpecific.bidUnits,
53
+ askUnits: stonfiSpecific.askUnits,
54
+ referrerAddress: stonfiSpecific.referrerAddress,
55
+ referrerFeeAsset: stonfiSpecific.referrerFeeAsset,
56
+ referrerFeeUnits: stonfiSpecific.referrerFeeUnits,
57
+ protocolFeeAsset: stonfiSpecific.protocolFeeAsset,
58
+ protocolFeeUnits: stonfiSpecific.protocolFeeUnits,
59
+ quoteTimestamp: stonfiSpecific.quoteTimestamp,
60
+ tradeStartDeadline: stonfiSpecific.tradeStartDeadline,
61
+ gasBudget: stonfiSpecific.gasBudget,
62
+ estimatedGasConsumption: stonfiSpecific.estimatedGasConsumption,
63
+ params: stonfiSpecific.params,
64
+ };
65
+ const omniston = omnistonManager_1.omnistonManager.getInstance();
66
+ const maxRetries = 3;
67
+ let lastError = null;
68
+ for (let attempt = 1; attempt <= maxRetries; attempt++) {
69
+ try {
70
+ const txResponse = await omniston.buildTransfer({
71
+ sourceAddress: { blockchain: omniston_sdk_1.Blockchain.TON, address: from },
72
+ destinationAddress: {
73
+ blockchain: omniston_sdk_1.Blockchain.TON,
74
+ address: tradeQuote.receiveAddress,
75
+ },
76
+ quote: storedQuote,
77
+ useRecommendedSlippage: true,
78
+ });
79
+ if (!txResponse?.ton?.messages || txResponse.ton.messages.length === 0) {
80
+ throw new Error('No TON messages returned from buildTransfer');
81
+ }
82
+ const expireAt = Math.floor(Date.now() / 1000) + 300;
83
+ const convertBase64ToHex = (base64) => {
84
+ if (!base64)
85
+ return '';
86
+ return Buffer.from(base64, 'base64').toString('hex');
87
+ };
88
+ const rawMessages = txResponse.ton.messages.map(msg => ({
89
+ targetAddress: msg.targetAddress,
90
+ sendAmount: msg.sendAmount,
91
+ payload: convertBase64ToHex(msg.payload),
92
+ stateInit: convertBase64ToHex(msg.jettonWalletStateInit),
93
+ }));
94
+ const seqno = await adapter.getSeqno(from);
95
+ return {
96
+ addressNList: (0, chain_adapters_1.toAddressNList)(adapter.getBip44Params({ accountNumber })),
97
+ rawMessages,
98
+ seqno,
99
+ expireAt,
100
+ };
101
+ }
102
+ catch (err) {
103
+ lastError = err instanceof Error ? err : new Error(String(err));
104
+ console.error(`[Stonfi] buildTransfer attempt ${attempt}/${maxRetries} failed:`, lastError.message);
105
+ if (attempt < maxRetries) {
106
+ await new Promise(resolve => setTimeout(resolve, 1000 * attempt));
107
+ }
108
+ }
109
+ }
110
+ throw lastError ?? new Error('Failed to build transfer after retries');
111
+ },
112
+ getTonTransactionFees: ({ tradeQuote, stepIndex }) => {
113
+ if (!(0, utils_1.isExecutableTradeQuote)(tradeQuote)) {
114
+ throw new Error('Unable to execute a trade rate quote');
115
+ }
116
+ const step = (0, utils_1.getExecutableTradeStep)(tradeQuote, stepIndex);
117
+ if (!step.feeData.networkFeeCryptoBaseUnit) {
118
+ throw new Error('Missing network fee in quote');
119
+ }
120
+ return Promise.resolve(step.feeData.networkFeeCryptoBaseUnit);
121
+ },
122
+ checkTradeStatus: async ({ swap, assertGetTonChainAdapter }) => {
123
+ if (!swap?.sellTxHash) {
124
+ return (0, utils_1.createDefaultStatusResponse)();
125
+ }
126
+ const { sellTxHash } = swap;
127
+ const checkTxStatusViaChainAdapter = async () => {
128
+ try {
129
+ const adapter = assertGetTonChainAdapter(swap.sellAsset.chainId);
130
+ const tx = await adapter.parseTx(sellTxHash, '');
131
+ return {
132
+ status: tx.status,
133
+ buyTxHash: tx.status === unchained_client_1.TxStatus.Confirmed ? sellTxHash : undefined,
134
+ message: undefined,
135
+ };
136
+ }
137
+ catch (err) {
138
+ console.error('[Stonfi] Error checking tx status via chain adapter:', err);
139
+ return (0, utils_1.createDefaultStatusResponse)(sellTxHash);
140
+ }
141
+ };
142
+ const { metadata } = swap;
143
+ if (!metadata?.quoteId) {
144
+ return checkTxStatusViaChainAdapter();
145
+ }
146
+ try {
147
+ const tradeStatus = await waitForFirstTradeStatus({
148
+ quoteId: metadata.quoteId,
149
+ traderWalletAddress: {
150
+ blockchain: omniston_sdk_1.Blockchain.TON,
151
+ address: swap.sellAccountId.split(':')[2] ?? '',
152
+ },
153
+ outgoingTxHash: sellTxHash,
154
+ }, TRADE_TRACKING_TIMEOUT_MS);
155
+ if (!tradeStatus?.status) {
156
+ return checkTxStatusViaChainAdapter();
157
+ }
158
+ const statusOneOf = tradeStatus.status;
159
+ if (statusOneOf.awaitingTransfer ||
160
+ statusOneOf.transferring ||
161
+ statusOneOf.swapping ||
162
+ statusOneOf.receivingFunds) {
163
+ const chainStatus = await checkTxStatusViaChainAdapter();
164
+ if (chainStatus.status === unchained_client_1.TxStatus.Confirmed) {
165
+ return chainStatus;
166
+ }
167
+ if (statusOneOf.awaitingTransfer) {
168
+ return {
169
+ status: unchained_client_1.TxStatus.Pending,
170
+ buyTxHash: undefined,
171
+ message: 'trade.statuses.awaitingDeposit',
172
+ };
173
+ }
174
+ if (statusOneOf.transferring) {
175
+ return {
176
+ status: unchained_client_1.TxStatus.Pending,
177
+ buyTxHash: undefined,
178
+ message: 'trade.statuses.depositing',
179
+ };
180
+ }
181
+ if (statusOneOf.swapping) {
182
+ return {
183
+ status: unchained_client_1.TxStatus.Pending,
184
+ buyTxHash: undefined,
185
+ message: 'trade.statuses.swapping',
186
+ };
187
+ }
188
+ if (statusOneOf.receivingFunds) {
189
+ return {
190
+ status: unchained_client_1.TxStatus.Pending,
191
+ buyTxHash: undefined,
192
+ message: 'trade.statuses.receivingFunds',
193
+ };
194
+ }
195
+ }
196
+ if (statusOneOf.tradeSettled) {
197
+ const result = statusOneOf.tradeSettled.result;
198
+ if (result === 'TRADE_RESULT_FULLY_FILLED') {
199
+ return {
200
+ status: unchained_client_1.TxStatus.Confirmed,
201
+ buyTxHash: sellTxHash,
202
+ message: undefined,
203
+ };
204
+ }
205
+ if (result === 'TRADE_RESULT_PARTIALLY_FILLED') {
206
+ return {
207
+ status: unchained_client_1.TxStatus.Confirmed,
208
+ buyTxHash: sellTxHash,
209
+ message: 'trade.statuses.partiallyFilled',
210
+ };
211
+ }
212
+ if (result === 'TRADE_RESULT_ABORTED') {
213
+ return {
214
+ status: unchained_client_1.TxStatus.Failed,
215
+ buyTxHash: undefined,
216
+ message: 'trade.statuses.aborted',
217
+ };
218
+ }
219
+ }
220
+ return checkTxStatusViaChainAdapter();
221
+ }
222
+ catch (err) {
223
+ console.error('[Stonfi] Error checking trade status via Omniston:', err);
224
+ return checkTxStatusViaChainAdapter();
225
+ }
226
+ },
227
+ };
@@ -0,0 +1,4 @@
1
+ export { stonfiApi } from './endpoints';
2
+ export { stonfiSwapper } from './StonfiSwapper';
3
+ export * from './types';
4
+ export { STONFI_SUPPORTED_CHAIN_IDS, STONFI_WEBSOCKET_URL } from './utils/constants';
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.STONFI_WEBSOCKET_URL = exports.STONFI_SUPPORTED_CHAIN_IDS = exports.stonfiSwapper = exports.stonfiApi = void 0;
18
+ var endpoints_1 = require("./endpoints");
19
+ Object.defineProperty(exports, "stonfiApi", { enumerable: true, get: function () { return endpoints_1.stonfiApi; } });
20
+ var StonfiSwapper_1 = require("./StonfiSwapper");
21
+ Object.defineProperty(exports, "stonfiSwapper", { enumerable: true, get: function () { return StonfiSwapper_1.stonfiSwapper; } });
22
+ __exportStar(require("./types"), exports);
23
+ var constants_1 = require("./utils/constants");
24
+ Object.defineProperty(exports, "STONFI_SUPPORTED_CHAIN_IDS", { enumerable: true, get: function () { return constants_1.STONFI_SUPPORTED_CHAIN_IDS; } });
25
+ Object.defineProperty(exports, "STONFI_WEBSOCKET_URL", { enumerable: true, get: function () { return constants_1.STONFI_WEBSOCKET_URL; } });
@@ -0,0 +1,2 @@
1
+ import type { CommonTradeQuoteInput, TradeQuoteResult } from '../../../types';
2
+ export declare const getTradeQuote: (input: CommonTradeQuoteInput) => Promise<TradeQuoteResult>;
@@ -0,0 +1,119 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getTradeQuote = void 0;
4
+ const monads_1 = require("@sniptt/monads");
5
+ const omniston_sdk_1 = require("@ston-fi/omniston-sdk");
6
+ const types_1 = require("../../../types");
7
+ const utils_1 = require("../../../utils");
8
+ const helpers_1 = require("../../utils/helpers/helpers");
9
+ const constants_1 = require("../utils/constants");
10
+ const helpers_2 = require("../utils/helpers");
11
+ const omnistonManager_1 = require("../utils/omnistonManager");
12
+ const buildStonfiSpecific = (quote, bidAssetAddress, askAssetAddress) => ({
13
+ quoteId: quote.quoteId,
14
+ resolverId: quote.resolverId,
15
+ resolverName: quote.resolverName,
16
+ tradeStartDeadline: quote.tradeStartDeadline,
17
+ gasBudget: quote.gasBudget,
18
+ bidAssetAddress: quote.bidAssetAddress ?? bidAssetAddress,
19
+ askAssetAddress: quote.askAssetAddress ?? askAssetAddress,
20
+ bidUnits: quote.bidUnits,
21
+ askUnits: quote.askUnits,
22
+ referrerAddress: quote.referrerAddress,
23
+ referrerFeeAsset: quote.referrerFeeAsset,
24
+ referrerFeeUnits: quote.referrerFeeUnits,
25
+ protocolFeeAsset: quote.protocolFeeAsset,
26
+ protocolFeeUnits: quote.protocolFeeUnits,
27
+ quoteTimestamp: quote.quoteTimestamp,
28
+ estimatedGasConsumption: quote.estimatedGasConsumption,
29
+ params: quote.params,
30
+ });
31
+ const getTradeQuote = async (input) => {
32
+ const { sellAsset, buyAsset, sellAmountIncludingProtocolFeesCryptoBaseUnit, receiveAddress, accountNumber, slippageTolerancePercentageDecimal, affiliateBps, } = input;
33
+ const validation = (0, helpers_2.validateTonAssets)(sellAsset, buyAsset);
34
+ if (!validation.isValid) {
35
+ return validation.error;
36
+ }
37
+ const { bidAssetAddress, askAssetAddress } = validation;
38
+ const omniston = omnistonManager_1.omnistonManager.getInstance();
39
+ try {
40
+ const slippageBps = (0, helpers_2.slippageDecimalToBps)(slippageTolerancePercentageDecimal, constants_1.STONFI_DEFAULT_SLIPPAGE_BPS);
41
+ const referrerFeeBps = (0, helpers_2.affiliateBpsToNumber)(affiliateBps);
42
+ const tonTreasuryAddress = (0, helpers_1.getTreasuryAddressFromChainId)(sellAsset.chainId);
43
+ const referrerAddress = (0, helpers_2.tonAddressToOmnistonAddress)(tonTreasuryAddress);
44
+ const quoteResult = await (0, helpers_2.waitForQuote)(omniston, {
45
+ settlementMethods: [omniston_sdk_1.SettlementMethod.SETTLEMENT_METHOD_SWAP],
46
+ bidAssetAddress,
47
+ askAssetAddress,
48
+ amount: { bidUnits: sellAmountIncludingProtocolFeesCryptoBaseUnit },
49
+ referrerAddress,
50
+ referrerFeeBps,
51
+ settlementParams: {
52
+ maxPriceSlippageBps: slippageBps,
53
+ gaslessSettlement: 'GASLESS_SETTLEMENT_PROHIBITED',
54
+ flexibleReferrerFee: true,
55
+ },
56
+ }, constants_1.STONFI_QUOTE_TIMEOUT_MS);
57
+ if (quoteResult.type === 'error') {
58
+ console.error('[Stonfi] Quote request error:', quoteResult.error);
59
+ return (0, monads_1.Err)((0, utils_1.makeSwapErrorRight)({
60
+ message: `[Stonfi] Connection error while fetching quote`,
61
+ code: types_1.TradeQuoteError.QueryFailed,
62
+ cause: quoteResult.error,
63
+ }));
64
+ }
65
+ if (quoteResult.type === 'timeout') {
66
+ return (0, monads_1.Err)((0, utils_1.makeSwapErrorRight)({
67
+ message: `[Stonfi] Quote request timed out`,
68
+ code: types_1.TradeQuoteError.QueryFailed,
69
+ }));
70
+ }
71
+ if (quoteResult.type === 'noQuote') {
72
+ return (0, monads_1.Err)((0, utils_1.makeSwapErrorRight)({
73
+ message: `[Stonfi] No quote available for this pair`,
74
+ code: types_1.TradeQuoteError.NoRouteFound,
75
+ }));
76
+ }
77
+ const quote = quoteResult.quote;
78
+ const buyAmountCryptoBaseUnit = quote.askUnits;
79
+ const networkFeeCryptoBaseUnit = quote.gasBudget;
80
+ const rate = (0, helpers_2.calculateRate)(buyAmountCryptoBaseUnit, sellAmountIncludingProtocolFeesCryptoBaseUnit, buyAsset.precision, sellAsset.precision);
81
+ const tradeQuote = {
82
+ id: quote.quoteId,
83
+ rate,
84
+ receiveAddress,
85
+ affiliateBps,
86
+ slippageTolerancePercentageDecimal: slippageTolerancePercentageDecimal ?? String(constants_1.STONFI_DEFAULT_SLIPPAGE_BPS / 10000),
87
+ quoteOrRate: 'quote',
88
+ swapperName: types_1.SwapperName.Stonfi,
89
+ steps: [
90
+ {
91
+ buyAmountBeforeFeesCryptoBaseUnit: buyAmountCryptoBaseUnit,
92
+ buyAmountAfterFeesCryptoBaseUnit: buyAmountCryptoBaseUnit,
93
+ sellAmountIncludingProtocolFeesCryptoBaseUnit,
94
+ feeData: {
95
+ networkFeeCryptoBaseUnit,
96
+ protocolFees: undefined,
97
+ },
98
+ rate,
99
+ source: types_1.SwapperName.Stonfi,
100
+ buyAsset,
101
+ sellAsset,
102
+ accountNumber,
103
+ allowanceContract: '0x0',
104
+ estimatedExecutionTimeMs: 30000,
105
+ stonfiSpecific: buildStonfiSpecific(quote, bidAssetAddress, askAssetAddress),
106
+ },
107
+ ],
108
+ };
109
+ return (0, monads_1.Ok)([tradeQuote]);
110
+ }
111
+ catch (err) {
112
+ return (0, monads_1.Err)((0, utils_1.makeSwapErrorRight)({
113
+ message: `[Stonfi] Error getting quote: ${err}`,
114
+ code: types_1.TradeQuoteError.QueryFailed,
115
+ cause: err,
116
+ }));
117
+ }
118
+ };
119
+ exports.getTradeQuote = getTradeQuote;
@@ -0,0 +1,2 @@
1
+ import type { GetTradeRateInput, TradeRateResult } from '../../../types';
2
+ export declare const getTradeRate: (input: GetTradeRateInput) => Promise<TradeRateResult>;
@@ -0,0 +1,105 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getTradeRate = void 0;
4
+ const monads_1 = require("@sniptt/monads");
5
+ const omniston_sdk_1 = require("@ston-fi/omniston-sdk");
6
+ const types_1 = require("../../../types");
7
+ const utils_1 = require("../../../utils");
8
+ const helpers_1 = require("../../utils/helpers/helpers");
9
+ const constants_1 = require("../utils/constants");
10
+ const helpers_2 = require("../utils/helpers");
11
+ const omnistonManager_1 = require("../utils/omnistonManager");
12
+ const buildStonfiSpecific = (quote, bidAssetAddress, askAssetAddress) => ({
13
+ quoteId: quote.quoteId,
14
+ resolverId: quote.resolverId,
15
+ resolverName: quote.resolverName,
16
+ tradeStartDeadline: quote.tradeStartDeadline,
17
+ gasBudget: quote.gasBudget,
18
+ bidAssetAddress: quote.bidAssetAddress ?? bidAssetAddress,
19
+ askAssetAddress: quote.askAssetAddress ?? askAssetAddress,
20
+ bidUnits: quote.bidUnits,
21
+ askUnits: quote.askUnits,
22
+ referrerAddress: quote.referrerAddress,
23
+ referrerFeeAsset: quote.referrerFeeAsset,
24
+ referrerFeeUnits: quote.referrerFeeUnits,
25
+ protocolFeeAsset: quote.protocolFeeAsset,
26
+ protocolFeeUnits: quote.protocolFeeUnits,
27
+ quoteTimestamp: quote.quoteTimestamp,
28
+ estimatedGasConsumption: quote.estimatedGasConsumption,
29
+ params: quote.params,
30
+ });
31
+ const getTradeRate = async (input) => {
32
+ const { sellAsset, buyAsset, sellAmountIncludingProtocolFeesCryptoBaseUnit, receiveAddress, slippageTolerancePercentageDecimal, affiliateBps, } = input;
33
+ const validation = (0, helpers_2.validateTonAssets)(sellAsset, buyAsset);
34
+ if (!validation.isValid) {
35
+ return validation.error;
36
+ }
37
+ const { bidAssetAddress, askAssetAddress } = validation;
38
+ const omniston = omnistonManager_1.omnistonManager.getInstance();
39
+ try {
40
+ const slippageBps = (0, helpers_2.slippageDecimalToBps)(slippageTolerancePercentageDecimal, constants_1.STONFI_DEFAULT_SLIPPAGE_BPS);
41
+ const referrerFeeBps = (0, helpers_2.affiliateBpsToNumber)(affiliateBps);
42
+ const tonTreasuryAddress = (0, helpers_1.getTreasuryAddressFromChainId)(sellAsset.chainId);
43
+ const referrerAddress = (0, helpers_2.tonAddressToOmnistonAddress)(tonTreasuryAddress);
44
+ const quoteResult = await (0, helpers_2.waitForQuote)(omniston, {
45
+ settlementMethods: [omniston_sdk_1.SettlementMethod.SETTLEMENT_METHOD_SWAP],
46
+ bidAssetAddress,
47
+ askAssetAddress,
48
+ amount: { bidUnits: sellAmountIncludingProtocolFeesCryptoBaseUnit },
49
+ referrerAddress,
50
+ referrerFeeBps,
51
+ settlementParams: {
52
+ maxPriceSlippageBps: slippageBps,
53
+ gaslessSettlement: 'GASLESS_SETTLEMENT_PROHIBITED',
54
+ flexibleReferrerFee: true,
55
+ },
56
+ }, constants_1.STONFI_QUOTE_TIMEOUT_MS);
57
+ if (quoteResult.type !== 'success') {
58
+ return (0, monads_1.Err)((0, utils_1.makeSwapErrorRight)({
59
+ message: `[Stonfi] No quote available for this pair`,
60
+ code: types_1.TradeQuoteError.NoRouteFound,
61
+ }));
62
+ }
63
+ const quote = quoteResult.quote;
64
+ const buyAmountCryptoBaseUnit = quote.askUnits;
65
+ const networkFeeCryptoBaseUnit = quote.gasBudget;
66
+ const rate = (0, helpers_2.calculateRate)(buyAmountCryptoBaseUnit, sellAmountIncludingProtocolFeesCryptoBaseUnit, buyAsset.precision, sellAsset.precision);
67
+ const tradeRate = {
68
+ id: quote.quoteId,
69
+ rate,
70
+ receiveAddress,
71
+ affiliateBps,
72
+ slippageTolerancePercentageDecimal: slippageTolerancePercentageDecimal ?? String(constants_1.STONFI_DEFAULT_SLIPPAGE_BPS / 10000),
73
+ quoteOrRate: 'rate',
74
+ swapperName: types_1.SwapperName.Stonfi,
75
+ steps: [
76
+ {
77
+ buyAmountBeforeFeesCryptoBaseUnit: buyAmountCryptoBaseUnit,
78
+ buyAmountAfterFeesCryptoBaseUnit: buyAmountCryptoBaseUnit,
79
+ sellAmountIncludingProtocolFeesCryptoBaseUnit,
80
+ feeData: {
81
+ networkFeeCryptoBaseUnit,
82
+ protocolFees: undefined,
83
+ },
84
+ rate,
85
+ source: types_1.SwapperName.Stonfi,
86
+ buyAsset,
87
+ sellAsset,
88
+ accountNumber: undefined,
89
+ allowanceContract: '0x0000000000000000000000000000000000000000',
90
+ estimatedExecutionTimeMs: 30000,
91
+ stonfiSpecific: buildStonfiSpecific(quote, bidAssetAddress, askAssetAddress),
92
+ },
93
+ ],
94
+ };
95
+ return (0, monads_1.Ok)([tradeRate]);
96
+ }
97
+ catch (err) {
98
+ return (0, monads_1.Err)((0, utils_1.makeSwapErrorRight)({
99
+ message: `[Stonfi] Error getting rate: ${err}`,
100
+ code: types_1.TradeQuoteError.QueryFailed,
101
+ cause: err,
102
+ }));
103
+ }
104
+ };
105
+ exports.getTradeRate = getTradeRate;
@@ -0,0 +1,60 @@
1
+ import { KnownChainIds } from '@shapeshiftoss/types';
2
+ import type { Result } from '@sniptt/monads';
3
+ import type { Quote } from '@ston-fi/omniston-sdk';
4
+ import type { SwapErrorRight } from '../../types';
5
+ export type StonfiSupportedChainId = typeof KnownChainIds.TonMainnet;
6
+ export declare const stonfiSupportedChainIds: readonly [KnownChainIds.TonMainnet];
7
+ export type OmnistonAssetAddress = {
8
+ blockchain: number;
9
+ address: string;
10
+ };
11
+ export type TonAssetValidationResult = {
12
+ isValid: true;
13
+ bidAssetAddress: OmnistonAssetAddress;
14
+ askAssetAddress: OmnistonAssetAddress;
15
+ } | {
16
+ isValid: false;
17
+ error: Result<never, SwapErrorRight>;
18
+ };
19
+ export type QuoteResult = {
20
+ type: 'success';
21
+ quote: Quote;
22
+ } | {
23
+ type: 'noQuote';
24
+ } | {
25
+ type: 'timeout';
26
+ } | {
27
+ type: 'error';
28
+ error: unknown;
29
+ };
30
+ export type StonfiQuote = {
31
+ quoteId: string;
32
+ resolverId: string;
33
+ resolverName: string;
34
+ bidAssetAddress: string;
35
+ askAssetAddress: string;
36
+ bidUnits: string;
37
+ askUnits: string;
38
+ gasBudget: string;
39
+ estimatedGasConsumption: string;
40
+ tradeStartDeadline: number;
41
+ };
42
+ export type StonfiTradeSpecific = {
43
+ quoteId: string;
44
+ resolverId: string;
45
+ resolverName: string;
46
+ tradeStartDeadline: number;
47
+ gasBudget: string;
48
+ bidAssetAddress: OmnistonAssetAddress;
49
+ askAssetAddress: OmnistonAssetAddress;
50
+ bidUnits: string;
51
+ askUnits: string;
52
+ referrerAddress?: OmnistonAssetAddress;
53
+ referrerFeeAsset?: OmnistonAssetAddress;
54
+ referrerFeeUnits: string;
55
+ protocolFeeAsset?: OmnistonAssetAddress;
56
+ protocolFeeUnits: string;
57
+ quoteTimestamp: number;
58
+ estimatedGasConsumption: string;
59
+ params?: unknown;
60
+ };
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.stonfiSupportedChainIds = void 0;
4
+ const types_1 = require("@shapeshiftoss/types");
5
+ exports.stonfiSupportedChainIds = [types_1.KnownChainIds.TonMainnet];
@@ -0,0 +1,5 @@
1
+ import { KnownChainIds } from '@shapeshiftoss/types';
2
+ export declare const STONFI_SUPPORTED_CHAIN_IDS: readonly [KnownChainIds.TonMainnet];
3
+ export declare const STONFI_WEBSOCKET_URL = "wss://omni-ws.ston.fi";
4
+ export declare const STONFI_DEFAULT_SLIPPAGE_BPS = 100;
5
+ export declare const STONFI_QUOTE_TIMEOUT_MS = 30000;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.STONFI_QUOTE_TIMEOUT_MS = exports.STONFI_DEFAULT_SLIPPAGE_BPS = exports.STONFI_WEBSOCKET_URL = exports.STONFI_SUPPORTED_CHAIN_IDS = void 0;
4
+ const types_1 = require("@shapeshiftoss/types");
5
+ exports.STONFI_SUPPORTED_CHAIN_IDS = [types_1.KnownChainIds.TonMainnet];
6
+ exports.STONFI_WEBSOCKET_URL = 'wss://omni-ws.ston.fi';
7
+ exports.STONFI_DEFAULT_SLIPPAGE_BPS = 100;
8
+ exports.STONFI_QUOTE_TIMEOUT_MS = 30000;
@@ -0,0 +1,11 @@
1
+ import type { Asset } from '@shapeshiftoss/types';
2
+ import type { Omniston, QuoteRequest } from '@ston-fi/omniston-sdk';
3
+ import type { OmnistonAssetAddress, QuoteResult, TonAssetValidationResult } from '../types';
4
+ export declare const isTonAsset: (asset: Asset) => boolean;
5
+ export declare const assetToOmnistonAddress: (asset: Asset) => OmnistonAssetAddress | null;
6
+ export declare const validateTonAssets: (sellAsset: Asset, buyAsset: Asset) => TonAssetValidationResult;
7
+ export declare const calculateRate: (buyAmountCryptoBaseUnit: string, sellAmountCryptoBaseUnit: string, buyAssetPrecision: number, sellAssetPrecision: number) => string;
8
+ export declare const slippageDecimalToBps: (slippageTolerancePercentageDecimal: string | undefined, defaultSlippageBps: number) => number;
9
+ export declare const tonAddressToOmnistonAddress: (address: string) => OmnistonAssetAddress;
10
+ export declare const affiliateBpsToNumber: (affiliateBps: string | undefined) => number;
11
+ export declare const waitForQuote: (omniston: Omniston, request: QuoteRequest, timeoutMs: number) => Promise<QuoteResult>;