@cryptorubic/web3 0.14.0-alpha.solana-gas.12 → 1.0.0-alpha.no-sdk.1

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 (218) hide show
  1. package/package.json +1 -1
  2. package/src/index.d.ts +4 -7
  3. package/src/index.js +4 -7
  4. package/src/lib/adapter/adapters/adapter-bitcoin/bitcoin-adapter.d.ts +35 -0
  5. package/src/lib/adapter/adapters/{bitcoin-adapter.js → adapter-bitcoin/bitcoin-adapter.js} +16 -6
  6. package/src/lib/adapter/adapters/adapter-bitcoin/client/bitcoin-adapter-client.d.ts +16 -0
  7. package/src/lib/adapter/adapters/adapter-bitcoin/client/bitcoin-adapter-client.js +119 -0
  8. package/src/lib/adapter/adapters/adapter-bitcoin/models/btc-send-tx-params.d.ts +5 -0
  9. package/src/lib/adapter/adapters/adapter-bitcoin/models/btc-web3-private-models/bitcoin-psbt-encoded-config.d.ts +5 -0
  10. package/src/lib/adapter/adapters/adapter-bitcoin/models/btc-web3-private-models/bitcoin-trade-types.d.ts +7 -0
  11. package/src/lib/adapter/adapters/adapter-bitcoin/models/btc-web3-private-models/bitcoin-transfer-encoded-config.d.ts +6 -0
  12. package/src/lib/adapter/adapters/adapter-bitcoin/models/btc-web3-private-models/bitcoin-transfer-encoded-config.js +2 -0
  13. package/src/lib/adapter/adapters/adapter-evm/client/evm-adapter-client.d.ts +80 -0
  14. package/src/lib/adapter/adapters/adapter-evm/client/evm-adapter-client.js +307 -0
  15. package/src/lib/adapter/adapters/adapter-evm/constants/proxy-hash-errors.d.ts +4 -0
  16. package/src/lib/adapter/adapters/adapter-evm/constants/proxy-hash-errors.js +705 -0
  17. package/src/lib/adapter/adapters/{evm-adapter.d.ts → adapter-evm/evm-adapter.d.ts} +25 -17
  18. package/src/lib/adapter/adapters/{evm-adapter.js → adapter-evm/evm-adapter.js} +155 -75
  19. package/src/lib/adapter/adapters/adapter-evm/models/evm-send-tx-params.d.ts +38 -0
  20. package/src/lib/adapter/adapters/adapter-evm/models/evm-send-tx-params.js +2 -0
  21. package/src/lib/adapter/adapters/adapter-evm/utils/parse-evm-error.d.ts +12 -0
  22. package/src/lib/adapter/adapters/adapter-evm/utils/parse-evm-error.js +70 -0
  23. package/src/lib/adapter/adapters/adapter-solana/client/solana-adapter-client.d.ts +15 -0
  24. package/src/lib/adapter/adapters/adapter-solana/client/solana-adapter-client.js +94 -0
  25. package/src/lib/adapter/adapters/adapter-solana/models/solana-send-tx-params.d.ts +16 -0
  26. package/src/lib/adapter/adapters/adapter-solana/models/solana-send-tx-params.js +2 -0
  27. package/src/lib/adapter/adapters/{utils/solana-utils → adapter-solana/services}/solana-tokens-service.js +8 -10
  28. package/src/lib/adapter/adapters/{solana-adapter.d.ts → adapter-solana/solana-adapter.d.ts} +23 -17
  29. package/src/lib/adapter/adapters/{solana-adapter.js → adapter-solana/solana-adapter.js} +36 -98
  30. package/src/lib/adapter/adapters/adapter-sui/client/sui-adapter-client.d.ts +15 -0
  31. package/src/lib/adapter/adapters/adapter-sui/client/sui-adapter-client.js +58 -0
  32. package/src/lib/adapter/adapters/adapter-sui/models/sui-send-tx-params.d.ts +8 -0
  33. package/src/lib/adapter/adapters/adapter-sui/models/sui-send-tx-params.js +2 -0
  34. package/src/lib/adapter/adapters/adapter-sui/sui-adapter.d.ts +29 -0
  35. package/src/lib/adapter/adapters/{sui-adapter.js → adapter-sui/sui-adapter.js} +25 -6
  36. package/src/lib/adapter/adapters/adapter-ton/client/ton-adapter-client.d.ts +41 -0
  37. package/src/lib/adapter/adapters/adapter-ton/client/ton-adapter-client.js +164 -0
  38. package/src/lib/adapter/adapters/adapter-ton/models/ton-send-tx-params.d.ts +26 -0
  39. package/src/lib/adapter/adapters/adapter-ton/models/ton-send-tx-params.js +2 -0
  40. package/src/lib/adapter/adapters/{utils → adapter-ton/services}/ton-api.service.d.ts +4 -4
  41. package/src/lib/adapter/adapters/{utils → adapter-ton/services}/ton-api.service.js +0 -5
  42. package/src/lib/adapter/adapters/adapter-ton/services/ton-client/ton-client.d.ts +6 -0
  43. package/src/lib/adapter/adapters/adapter-ton/services/ton-client/ton-client.js +18 -0
  44. package/src/lib/adapter/adapters/adapter-ton/ton-adapter.d.ts +29 -0
  45. package/src/lib/adapter/adapters/{ton-adapter.js → adapter-ton/ton-adapter.js} +40 -50
  46. package/src/lib/adapter/adapters/adapter-tron/client/tron-adapter-client.d.ts +27 -0
  47. package/src/lib/adapter/adapters/adapter-tron/client/tron-adapter-client.js +91 -0
  48. package/src/lib/adapter/adapters/adapter-tron/models/tron-send-tx-params.d.ts +13 -0
  49. package/src/lib/adapter/adapters/adapter-tron/models/tron-send-tx-params.js +2 -0
  50. package/src/lib/adapter/adapters/{tron-adapter.d.ts → adapter-tron/tron-adapter.d.ts} +21 -18
  51. package/src/lib/adapter/adapters/{tron-adapter.js → adapter-tron/tron-adapter.js} +45 -68
  52. package/src/lib/adapter/adapters/adapter-tron/utils/parse-tron-error.d.ts +2 -0
  53. package/src/lib/adapter/adapters/adapter-tron/utils/parse-tron-error.js +20 -0
  54. package/src/lib/adapter/adapters/common/abstract-adapter.d.ts +48 -0
  55. package/src/lib/adapter/adapters/common/abstract-adapter.js +67 -0
  56. package/src/lib/adapter/adapters/common/client/abstract-adapter-client.d.ts +24 -0
  57. package/src/lib/adapter/adapters/common/client/abstract-adapter-client.js +59 -0
  58. package/src/lib/adapter/adapters/models/approve-adapter.d.ts +4 -4
  59. package/src/lib/adapter/adapters/models/approve-adapter.js +3 -3
  60. package/src/lib/adapter/adapters/models/basic-transaction-options.d.ts +1 -1
  61. package/src/lib/adapter/adapters/models/evm-web3-public-models/batch-call.d.ts +5 -0
  62. package/src/lib/adapter/adapters/models/evm-web3-public-models/batch-call.js +2 -0
  63. package/src/lib/adapter/adapters/models/evm-web3-public-models/evm-call.d.ts +4 -0
  64. package/src/lib/adapter/adapters/models/evm-web3-public-models/evm-call.js +2 -0
  65. package/src/lib/adapter/adapters/models/evm-web3-public-models/evm-multicall-response.d.ts +4 -0
  66. package/src/lib/adapter/adapters/models/evm-web3-public-models/evm-multicall-response.js +2 -0
  67. package/src/lib/adapter/adapters/models/evm-web3-public-models/gas-price-viem.d.ts +18 -0
  68. package/src/lib/adapter/adapters/models/evm-web3-public-models/gas-price-viem.js +2 -0
  69. package/src/lib/adapter/adapters/models/evm-web3-public-models/gas-price.js +2 -0
  70. package/src/lib/adapter/adapters/models/evm-web3-public-models/permit2-contract-types.d.ts +10 -0
  71. package/src/lib/adapter/adapters/models/evm-web3-public-models/permit2-contract-types.js +2 -0
  72. package/src/lib/adapter/adapters/models/evm-web3-public-models/rpc-response.d.ts +5 -0
  73. package/src/lib/adapter/adapters/models/evm-web3-public-models/rpc-response.js +2 -0
  74. package/src/lib/adapter/adapters/models/old-features-models/contract-params.d.ts +23 -0
  75. package/src/lib/adapter/adapters/models/old-features-models/contract-params.js +2 -0
  76. package/src/lib/adapter/adapters/models/old-features-models/encode-transaction-options.d.ts +32 -0
  77. package/src/lib/adapter/adapters/models/old-features-models/encode-transaction-options.js +2 -0
  78. package/src/lib/adapter/adapters/models/old-features-models/is-deflation-token.d.ts +6 -0
  79. package/src/lib/adapter/adapters/models/old-features-models/is-deflation-token.js +2 -0
  80. package/src/lib/adapter/adapters/models/old-features-models/non-evm-chain-address-correct-response.d.ts +5 -0
  81. package/src/lib/adapter/adapters/models/old-features-models/non-evm-chain-address-correct-response.js +2 -0
  82. package/src/lib/adapter/adapters/models/old-features-models/swap-transaction-options.d.ts +61 -0
  83. package/src/lib/adapter/adapters/models/old-features-models/swap-transaction-options.js +2 -0
  84. package/src/lib/adapter/adapters/models/status-manager-models/tx-status-data.d.ts +8 -0
  85. package/src/lib/adapter/adapters/models/status-manager-models/tx-status-data.js +2 -0
  86. package/src/lib/adapter/adapters/models/web3-public-models/contract-multicall-response.d.ts +5 -0
  87. package/src/lib/adapter/adapters/models/web3-public-models/contract-multicall-response.js +2 -0
  88. package/src/lib/adapter/adapters/models/web3-public-models/method-data.d.ts +4 -0
  89. package/src/lib/adapter/adapters/models/web3-public-models/method-data.js +2 -0
  90. package/src/lib/adapter/adapters/models/web3-public-models/supported-token-field.d.ts +1 -0
  91. package/src/lib/adapter/adapters/models/web3-public-models/supported-token-field.js +2 -0
  92. package/src/lib/adapter/adapters/models/web3-public-models/tx-status.d.ts +10 -0
  93. package/src/lib/adapter/adapters/models/web3-public-models/tx-status.js +12 -0
  94. package/src/lib/adapter/adapters/utils/errors.d.ts +2 -0
  95. package/src/lib/adapter/adapters/utils/errors.js +10 -0
  96. package/src/lib/adapter/adapters/utils/options.d.ts +10 -0
  97. package/src/lib/adapter/adapters/utils/options.js +59 -0
  98. package/src/lib/adapter/adapters/utils/waitFor.d.ts +1 -0
  99. package/src/lib/adapter/adapters/utils/waitFor.js +6 -0
  100. package/src/lib/adapter/blockchain-adapter-factory.service.d.ts +18 -13
  101. package/src/lib/adapter/blockchain-adapter-factory.service.js +35 -66
  102. package/src/lib/adapter/constants/models/create-factory-params.d.ts +8 -0
  103. package/src/lib/adapter/constants/models/create-factory-params.js +2 -0
  104. package/src/lib/adapter/constants/models/env-type.d.ts +1 -0
  105. package/src/lib/adapter/constants/models/env-type.js +2 -0
  106. package/src/lib/adapter/constants/models/solana-web3.d.ts +1 -1
  107. package/src/lib/adapter/constants/rubic-api-link-mapping.d.ts +2 -0
  108. package/src/lib/adapter/constants/rubic-api-link-mapping.js +16 -0
  109. package/src/lib/errors/blockchain/deflation-token.error.d.ts +11 -0
  110. package/src/lib/errors/blockchain/deflation-token.error.js +16 -0
  111. package/src/lib/errors/blockchain/healthcheck.error.d.ts +8 -0
  112. package/src/lib/errors/blockchain/healthcheck.error.js +15 -0
  113. package/src/lib/errors/blockchain/invalid-address.error.d.ts +8 -0
  114. package/src/lib/errors/blockchain/invalid-address.error.js +15 -0
  115. package/src/lib/errors/blockchain/low-gas.error.d.ts +7 -0
  116. package/src/lib/errors/blockchain/low-gas.error.js +14 -0
  117. package/src/lib/errors/blockchain/transaction-reverted.error.d.ts +7 -0
  118. package/src/lib/errors/blockchain/transaction-reverted.error.js +14 -0
  119. package/src/lib/errors/blockchain/tron-insufficient-native-balance.d.ts +7 -0
  120. package/src/lib/errors/blockchain/tron-insufficient-native-balance.js +14 -0
  121. package/src/lib/errors/blockchain/tron-transaction-expired.d.ts +7 -0
  122. package/src/lib/errors/blockchain/tron-transaction-expired.js +14 -0
  123. package/src/lib/errors/blockchain/user-reject.error.d.ts +7 -0
  124. package/src/lib/errors/blockchain/user-reject.error.js +14 -0
  125. package/src/lib/errors/blockchain/wrong-from-address.error.d.ts +7 -0
  126. package/src/lib/errors/blockchain/wrong-from-address.error.js +14 -0
  127. package/src/lib/errors/blockchain/wrong-receiver-address.error.d.ts +7 -0
  128. package/src/lib/errors/blockchain/wrong-receiver-address.error.js +14 -0
  129. package/src/lib/errors/common/timeout.error.d.ts +4 -0
  130. package/src/lib/errors/common/timeout.error.js +12 -0
  131. package/src/lib/errors/cross-chain/cross-chain-is-unavailable.error.d.ts +7 -0
  132. package/src/lib/errors/cross-chain/cross-chain-is-unavailable.error.js +14 -0
  133. package/src/lib/errors/cross-chain/insufficient-funds-gas-price-value.error.d.ts +7 -0
  134. package/src/lib/errors/cross-chain/insufficient-funds-gas-price-value.error.js +14 -0
  135. package/src/lib/errors/cross-chain/low-to-slippage.error.d.ts +6 -0
  136. package/src/lib/errors/cross-chain/low-to-slippage.error.js +10 -0
  137. package/src/lib/errors/cross-chain/max-gas-price-overflow.error.d.ts +8 -0
  138. package/src/lib/errors/cross-chain/max-gas-price-overflow.error.js +15 -0
  139. package/src/lib/errors/cross-chain/too-low-amount.error.d.ts +7 -0
  140. package/src/lib/errors/cross-chain/too-low-amount.error.js +14 -0
  141. package/src/lib/errors/cross-chain/unsupported-receiver-address.error.d.ts +4 -0
  142. package/src/lib/errors/cross-chain/unsupported-receiver-address.error.js +11 -0
  143. package/src/lib/errors/cross-chain/updated-rates-error.d.ts +10 -0
  144. package/src/lib/errors/cross-chain/updated-rates-error.js +17 -0
  145. package/src/lib/errors/models/rubic-api-error.d.ts +21 -0
  146. package/src/lib/errors/models/rubic-api-error.js +2 -0
  147. package/src/lib/errors/on-chain/on-chain-is-unavailable.error.d.ts +7 -0
  148. package/src/lib/errors/on-chain/on-chain-is-unavailable.error.js +14 -0
  149. package/src/lib/errors/proxy/unapproved-contract-error.d.ts +8 -0
  150. package/src/lib/errors/proxy/unapproved-contract-error.js +15 -0
  151. package/src/lib/errors/proxy/unapproved-method-error.d.ts +8 -0
  152. package/src/lib/errors/proxy/unapproved-method-error.js +15 -0
  153. package/src/lib/errors/proxy/unlisted-error.d.ts +9 -0
  154. package/src/lib/errors/proxy/unlisted-error.js +16 -0
  155. package/src/lib/errors/rubic-sdk.error.d.ts +6 -0
  156. package/src/lib/errors/rubic-sdk.error.js +13 -0
  157. package/src/lib/errors/swap/bridgers-pair-is-unavailable.error.d.ts +7 -0
  158. package/src/lib/errors/swap/bridgers-pair-is-unavailable.error.js +14 -0
  159. package/src/lib/errors/swap/failed-to-check-for-transaction-receipt.error.d.ts +8 -0
  160. package/src/lib/errors/swap/failed-to-check-for-transaction-receipt.error.js +15 -0
  161. package/src/lib/errors/swap/insufficient-funds-oneinch.error.d.ts +9 -0
  162. package/src/lib/errors/swap/insufficient-funds-oneinch.error.js +15 -0
  163. package/src/lib/errors/swap/insufficient-funds.error.d.ts +11 -0
  164. package/src/lib/errors/swap/insufficient-funds.error.js +18 -0
  165. package/src/lib/errors/swap/insufficient-liquidity.error.d.ts +7 -0
  166. package/src/lib/errors/swap/insufficient-liquidity.error.js +14 -0
  167. package/src/lib/errors/swap/lifi-pair-is-unavailable.error.d.ts +7 -0
  168. package/src/lib/errors/swap/lifi-pair-is-unavailable.error.js +14 -0
  169. package/src/lib/errors/swap/low-slippage-deflationary-token.error.d.ts +7 -0
  170. package/src/lib/errors/swap/low-slippage-deflationary-token.error.js +14 -0
  171. package/src/lib/errors/swap/low-slippage.error.d.ts +8 -0
  172. package/src/lib/errors/swap/low-slippage.error.js +15 -0
  173. package/src/lib/errors/swap/max-amount.error.d.ts +7 -0
  174. package/src/lib/errors/swap/max-amount.error.js +14 -0
  175. package/src/lib/errors/swap/max-decimals.error.d.ts +5 -0
  176. package/src/lib/errors/swap/max-decimals.error.js +12 -0
  177. package/src/lib/errors/swap/min-amount.error.d.ts +7 -0
  178. package/src/lib/errors/swap/min-amount.error.js +14 -0
  179. package/src/lib/errors/swap/no-linked-account-erros.d.ts +4 -0
  180. package/src/lib/errors/swap/no-linked-account-erros.js +11 -0
  181. package/src/lib/errors/swap/not-supported-blockchain.d.ts +8 -0
  182. package/src/lib/errors/swap/not-supported-blockchain.js +15 -0
  183. package/src/lib/errors/swap/not-supported-region.d.ts +7 -0
  184. package/src/lib/errors/swap/not-supported-region.js +14 -0
  185. package/src/lib/errors/swap/not-supported-tokens.error.d.ts +7 -0
  186. package/src/lib/errors/swap/not-supported-tokens.error.js +14 -0
  187. package/src/lib/errors/swap/not-whitelisted-provider.error.d.ts +10 -0
  188. package/src/lib/errors/swap/not-whitelisted-provider.error.js +17 -0
  189. package/src/lib/errors/swap/simulation-failed.error.d.ts +6 -0
  190. package/src/lib/errors/swap/simulation-failed.error.js +12 -0
  191. package/src/lib/errors/swap/swap-error-on-provider-side.d.ts +7 -0
  192. package/src/lib/errors/swap/swap-error-on-provider-side.js +14 -0
  193. package/src/lib/errors/swap/swap-request.error.d.ts +7 -0
  194. package/src/lib/errors/swap/swap-request.error.js +14 -0
  195. package/src/lib/errors/swap/trade-expired.error.d.ts +4 -0
  196. package/src/lib/errors/swap/trade-expired.error.js +11 -0
  197. package/src/lib/errors/swap/unnecessary-approve.error.d.ts +7 -0
  198. package/src/lib/errors/swap/unnecessary-approve.error.js +14 -0
  199. package/src/lib/errors/swap/wallet-not-connected.error.d.ts +8 -0
  200. package/src/lib/errors/swap/wallet-not-connected.error.js +15 -0
  201. package/src/lib/errors/swap/wrong-network.error.d.ts +10 -0
  202. package/src/lib/errors/swap/wrong-network.error.js +16 -0
  203. package/src/lib/utils/web3-types/common-web3-pure.js +2 -4
  204. package/src/lib/utils/web3-types/near-web3-pure.js +1 -1
  205. package/src/lib/utils/web3-types/solana-web3-pure.js +1 -1
  206. package/src/lib/utils/web3-types/sui-web3-pure.js +2 -2
  207. package/src/lib/adapter/adapters/abstract-adapter.d.ts +0 -23
  208. package/src/lib/adapter/adapters/abstract-adapter.js +0 -61
  209. package/src/lib/adapter/adapters/bitcoin-adapter.d.ts +0 -18
  210. package/src/lib/adapter/adapters/models/adapter-factory-params.d.ts +0 -7
  211. package/src/lib/adapter/adapters/sui-adapter.d.ts +0 -17
  212. package/src/lib/adapter/adapters/ton-adapter.d.ts +0 -22
  213. package/src/lib/utils/models/solana-transaction-config.d.ts +0 -6
  214. /package/src/lib/adapter/adapters/{models/adapter-factory-params.js → adapter-bitcoin/models/btc-send-tx-params.js} +0 -0
  215. /package/src/lib/adapter/adapters/{models/gas-price.js → adapter-bitcoin/models/btc-web3-private-models/bitcoin-psbt-encoded-config.js} +0 -0
  216. /package/src/lib/{utils/models/solana-transaction-config.js → adapter/adapters/adapter-bitcoin/models/btc-web3-private-models/bitcoin-trade-types.js} +0 -0
  217. /package/src/lib/adapter/adapters/{utils/solana-utils → adapter-solana/services}/solana-tokens-service.d.ts +0 -0
  218. /package/src/lib/adapter/adapters/models/{gas-price.d.ts → evm-web3-public-models/gas-price.d.ts} +0 -0
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AbstractAdapter = void 0;
4
+ const viem_1 = require("viem");
5
+ class AbstractAdapter {
6
+ set public(value) {
7
+ this._public = value;
8
+ }
9
+ get public() {
10
+ if (!this._public) {
11
+ const msg = 'Trying to access undefined client';
12
+ this.logger?.customLog(msg);
13
+ throw new Error(msg);
14
+ }
15
+ return this._public;
16
+ }
17
+ // private _wallet: W | null = null;
18
+ // public set wallet(value: W | null) {
19
+ // this._wallet = value;
20
+ // }
21
+ // public get wallet(): W {
22
+ // if (!this._wallet) {
23
+ // const msg = 'Trying to access undefined client';
24
+ // this.logger?.customLog(msg);
25
+ // throw new Error(msg);
26
+ // }
27
+ // return this._wallet;
28
+ // }
29
+ // private _walletAddress: string | null = null;
30
+ // public set walletAddress(value: string | null) {
31
+ // this._walletAddress = value;
32
+ // }
33
+ // public get walletAddress(): string {
34
+ // if (!this._walletAddress) {
35
+ // const msg = 'Trying to access undefined walletAddress';
36
+ // this.logger?.customLog(msg);
37
+ // throw new Error(msg);
38
+ // }
39
+ // return this._walletAddress;
40
+ // }
41
+ constructor(blockchain, logger) {
42
+ this._public = null;
43
+ this.blockchain = blockchain;
44
+ if (logger) {
45
+ this.logger = logger;
46
+ }
47
+ }
48
+ /**
49
+ * Gets token info by address.
50
+ * @param tokenAddress Address of token.
51
+ * @param tokenFields Token's fields to get.
52
+ */
53
+ async callForTokenInfo(tokenAddress, tokenFields = ['decimals', 'symbol', 'name']) {
54
+ return (await this.callForTokensInfo([tokenAddress]))[0];
55
+ }
56
+ needPreswapAction(token, contractAddress, walletAddress, amount) {
57
+ return Promise.resolve(false);
58
+ }
59
+ handlePreswap(contractAddress, walletAddress, tokenAmount) {
60
+ return Promise.resolve();
61
+ }
62
+ static getRandomBytes(bytes) {
63
+ const randomBytes = crypto.getRandomValues(new Uint8Array(bytes));
64
+ return (0, viem_1.bytesToHex)(randomBytes);
65
+ }
66
+ }
67
+ exports.AbstractAdapter = AbstractAdapter;
@@ -0,0 +1,24 @@
1
+ import { BlockchainName, HttpClient, ICustomLogger } from '@cryptorubic/core';
2
+ import { RubicAppAdaptersFactoryParams } from '../../../constants/models/create-factory-params';
3
+ import { TxStatus } from '../../models/web3-public-models/tx-status';
4
+ export declare abstract class AbstractAdapterClient<ClientWallet, SendTxParams, SendTxResponse> {
5
+ protected readonly httpClient: HttpClient;
6
+ protected readonly logger?: ICustomLogger | undefined;
7
+ protected readonly rubicAppParams?: RubicAppAdaptersFactoryParams | undefined;
8
+ protected get apiUrl(): string;
9
+ private _walletAddress;
10
+ get walletAddress(): string;
11
+ private _clientWallet;
12
+ get clientWallet(): ClientWallet;
13
+ constructor(httpClient: HttpClient, logger?: ICustomLogger | undefined, rubicAppParams?: RubicAppAdaptersFactoryParams | undefined);
14
+ abstract getBlockchainName(): Promise<BlockchainName | undefined>;
15
+ abstract sendTransaction(params: SendTxParams): Promise<SendTxResponse>;
16
+ abstract getTransactionStatus(srcTxHash: string): Promise<TxStatus>;
17
+ /**
18
+ * Checks, that selected blockchain in wallet is equal to passed blockchain.
19
+ */
20
+ checkBlockchainCorrect(blockchainName: BlockchainName): Promise<void | never>;
21
+ getSrcTxStatus(blockchain: BlockchainName, srcTxHash: string): Promise<TxStatus>;
22
+ setWalletAddress(newWalletAddress: string): void;
23
+ setClientWallet(clientWallet: ClientWallet): void;
24
+ }
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AbstractAdapterClient = void 0;
4
+ const core_1 = require("@cryptorubic/core");
5
+ const rubic_api_link_mapping_1 = require("../../../constants/rubic-api-link-mapping");
6
+ const tx_status_1 = require("../../models/web3-public-models/tx-status");
7
+ const waitFor_1 = require("../../utils/waitFor");
8
+ const wrong_network_error_1 = require("../../../../errors/swap/wrong-network.error");
9
+ class AbstractAdapterClient {
10
+ get apiUrl() {
11
+ if (!this.rubicAppParams) {
12
+ this.logger?.customError('rubicAppParams is not set for apiUrl call.');
13
+ throw new Error('rubicAppParams is not set for apiUrl call.');
14
+ }
15
+ const rubicApiLink = rubic_api_link_mapping_1.rubicApiLinkMapping[this.rubicAppParams.envType];
16
+ return rubicApiLink ? rubicApiLink : 'https://dev1-api-v2.rubic.exchange';
17
+ }
18
+ get walletAddress() {
19
+ return this._walletAddress;
20
+ }
21
+ get clientWallet() {
22
+ return this._clientWallet;
23
+ }
24
+ constructor(httpClient, logger, rubicAppParams) {
25
+ this.httpClient = httpClient;
26
+ this.logger = logger;
27
+ this.rubicAppParams = rubicAppParams;
28
+ }
29
+ /**
30
+ * Checks, that selected blockchain in wallet is equal to passed blockchain.
31
+ */
32
+ async checkBlockchainCorrect(blockchainName) {
33
+ const userBlockchainName = await this.getBlockchainName();
34
+ if (userBlockchainName !== blockchainName) {
35
+ throw new wrong_network_error_1.WrongNetworkError(blockchainName);
36
+ }
37
+ }
38
+ async getSrcTxStatus(blockchain, srcTxHash) {
39
+ try {
40
+ const status = await this.getTransactionStatus(srcTxHash);
41
+ if (status === tx_status_1.TX_STATUS.FAIL && blockchain === core_1.BLOCKCHAIN_NAME.ZK_SYNC) {
42
+ const zkSyncAwarenessTime = 4000;
43
+ await (0, waitFor_1.waitFor)(zkSyncAwarenessTime);
44
+ return this.getTransactionStatus(srcTxHash);
45
+ }
46
+ return status;
47
+ }
48
+ catch {
49
+ return tx_status_1.TX_STATUS.PENDING;
50
+ }
51
+ }
52
+ setWalletAddress(newWalletAddress) {
53
+ this._walletAddress = newWalletAddress;
54
+ }
55
+ setClientWallet(clientWallet) {
56
+ this._clientWallet = clientWallet;
57
+ }
58
+ }
59
+ exports.AbstractAdapterClient = AbstractAdapterClient;
@@ -1,9 +1,9 @@
1
- import { BlockchainName, TokenAmount } from '@cryptorubic/core';
1
+ import { TokenAmount } from '@cryptorubic/core';
2
2
  import { AllowanceInfo } from './common-types';
3
- import { AbstractAdapter } from '../abstract-adapter';
4
3
  import { EvmTransactionConfig } from '../../../utils/models/evm-transaction-config';
5
4
  import { TronTransactionConfig } from '../../../utils/models/tron-transaction-config';
6
- export interface ApproveAdapter<T> extends AbstractAdapter<any, any, BlockchainName> {
5
+ import { AbstractAdapterClient } from '../common/client/abstract-adapter-client';
6
+ export interface ApproveAdapterClient<T> extends AbstractAdapterClient<{}, {}, {}> {
7
7
  /**
8
8
  * @param fromTokenAddress erc20 address of checked token
9
9
  * @param walletAddress owner wallet address
@@ -34,4 +34,4 @@ export interface ApproveAdapter<T> extends AbstractAdapter<any, any, BlockchainN
34
34
  */
35
35
  approve(walletAddress: string, tokenAddress: string, spenderAddress: string, amount?: string): Promise<string>;
36
36
  }
37
- export declare function isApprovableAdapter(adapter: AbstractAdapter<any, any, BlockchainName>): adapter is ApproveAdapter<EvmTransactionConfig | TronTransactionConfig>;
37
+ export declare function isApprovableAdapterClient(adapterClient: AbstractAdapterClient<{}, {}, {}>): adapterClient is ApproveAdapterClient<EvmTransactionConfig | TronTransactionConfig>;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isApprovableAdapter = isApprovableAdapter;
4
- function isApprovableAdapter(adapter) {
5
- return 'needApprove' in adapter && 'approve' in adapter && 'getAllowance' in adapter && 'encodeApprove' in adapter;
3
+ exports.isApprovableAdapterClient = isApprovableAdapterClient;
4
+ function isApprovableAdapterClient(adapterClient) {
5
+ return ('needApprove' in adapterClient && 'approve' in adapterClient && 'getAllowance' in adapterClient && 'encodeApprove' in adapterClient);
6
6
  }
@@ -1,4 +1,4 @@
1
- export interface BasicTransactionOptions {
1
+ export interface BasicSendTransactionOptions {
2
2
  /**
3
3
  * Callback to be called, when user confirm swap transaction.
4
4
  * @param hash Transaction hash.
@@ -0,0 +1,5 @@
1
+ export interface BatchCall {
2
+ to: string;
3
+ data: string;
4
+ value?: string;
5
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,4 @@
1
+ export interface EvmCall {
2
+ target: string;
3
+ callData: string;
4
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,4 @@
1
+ export interface EvmMulticallResponse {
2
+ success: boolean;
3
+ returnData: string;
4
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,18 @@
1
+ export type ViemGasPrice = EIP1559ViemGas & SingleViemGasPrice;
2
+ export interface EIP1559ViemGas {
3
+ /**
4
+ * EIP-1559 Block base fee.
5
+ */
6
+ baseFee?: bigint;
7
+ /**
8
+ * EIP-1559 Transaction maximum fee.
9
+ */
10
+ maxFeePerGas?: bigint;
11
+ /**
12
+ * EIP-1559 Transaction miner's tip.
13
+ */
14
+ maxPriorityFeePerGas?: bigint;
15
+ }
16
+ export interface SingleViemGasPrice {
17
+ gasPrice?: bigint;
18
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,10 @@
1
+ import BigNumber from 'bignumber.js';
2
+ export interface Permit2AllowanceContractResponse {
3
+ amount: string;
4
+ expiration: string;
5
+ nonce: string;
6
+ }
7
+ type AllowanceBN = BigNumber;
8
+ type ExpirationMS = string;
9
+ export type Permit2AllowanceData = [AllowanceBN, ExpirationMS];
10
+ export {};
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,5 @@
1
+ export interface RpcResponse<T> {
2
+ id: number;
3
+ result: T;
4
+ error: unknown;
5
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,23 @@
1
+ import { AbiItem } from '@cryptorubic/web3';
2
+ export interface ContractParams {
3
+ /**
4
+ * Contract address in source network.
5
+ */
6
+ contractAddress: string;
7
+ /**
8
+ * Contract abi in source network.
9
+ */
10
+ contractAbi: AbiItem[];
11
+ /**
12
+ * Method's name to call in contract.
13
+ */
14
+ methodName: string;
15
+ /**
16
+ * Method's arguments to call method with.
17
+ */
18
+ methodArguments: unknown[];
19
+ /**
20
+ * Value in Wei to send with transaction.
21
+ */
22
+ value: string;
23
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,32 @@
1
+ import { EIP1559Gas, SingleGasPrice } from '../evm-web3-public-models/gas-price';
2
+ /**
3
+ * Stores options for transaction in `encode` function.
4
+ */
5
+ export interface EncodeTransactionOptions {
6
+ /**
7
+ * User wallet address to send swap transaction.
8
+ */
9
+ fromAddress: string;
10
+ receiverAddress?: string;
11
+ /**
12
+ * Transaction gas price options.
13
+ */
14
+ gasPriceOptions?: EIP1559Gas | SingleGasPrice;
15
+ /**
16
+ * Evm-transaction gas limit.
17
+ */
18
+ gasLimit?: string;
19
+ /**
20
+ * Uniquely for Uniswap v2, defines which method to use - regular or supporting fee.
21
+ */
22
+ supportFee?: boolean;
23
+ /**
24
+ * Tron-transaction fee limit.
25
+ */
26
+ feeLimit?: number;
27
+ referrer?: string;
28
+ skipAmountCheck?: boolean;
29
+ useCacheData?: boolean;
30
+ refundAddress?: string;
31
+ testMode?: boolean;
32
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,6 @@
1
+ export type IsDeflationToken = {
2
+ isDeflation: false;
3
+ } | {
4
+ isDeflation: true;
5
+ isWhitelisted: boolean;
6
+ };
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,5 @@
1
+ export interface nonEvmChainAddressCorrectResponse {
2
+ isActivated: null;
3
+ result: boolean;
4
+ message: null | string;
5
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,61 @@
1
+ import { ErrorInterface } from '@cryptorubic/core';
2
+ import { EIP1559Gas, SingleGasPrice } from '../evm-web3-public-models/gas-price';
3
+ export interface SwapTransactionOptions {
4
+ /**
5
+ * Callback to be called, when user confirm swap transaction.
6
+ * @param hash Transaction hash.
7
+ */
8
+ onConfirm?: (hash: string) => void;
9
+ /**
10
+ * Callback to be called, when user confirm approve transaction.
11
+ * @param hash Transaction hash.
12
+ */
13
+ onApprove?: (hash: string | null) => void;
14
+ /**
15
+ * Callback to be called, when swap warning occurs.
16
+ * @param warnings
17
+ */
18
+ onWarning?: (warnings: ErrorInterface[]) => void;
19
+ /**
20
+ * Tokens receiver address.
21
+ */
22
+ receiverAddress?: string;
23
+ /**
24
+ * Transaction gas price options.
25
+ */
26
+ gasPriceOptions?: EIP1559Gas | SingleGasPrice;
27
+ /**
28
+ * Evm-transaction gas limit.
29
+ */
30
+ gasLimit?: string;
31
+ /**
32
+ * Approve evm-transaction gas limit.
33
+ * Will be used for approve transaction, if it is called before swap.
34
+ */
35
+ approveGasLimit?: string;
36
+ /**
37
+ * Tron-transaction fee limit.
38
+ */
39
+ feeLimit?: number;
40
+ /**
41
+ * Approve tron-transaction fee limit.
42
+ * Will be used for approve transaction, if it is called before swap.
43
+ */
44
+ approveFeeLimit?: number;
45
+ testMode?: boolean;
46
+ useCacheData?: boolean;
47
+ skipAmountCheck?: boolean;
48
+ referrer?: string;
49
+ /**
50
+ * Use in case of eip-155
51
+ */
52
+ useEip155?: boolean;
53
+ /**
54
+ * Address for refund assets if error occurs
55
+ */
56
+ refundAddress?: string;
57
+ solanaSponsorParams?: {
58
+ tradeId: string;
59
+ feePayer: string;
60
+ };
61
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,8 @@
1
+ import { TxStatus } from '../web3-public-models/tx-status';
2
+ export interface TxStatusData {
3
+ status: TxStatus;
4
+ hash: string | null;
5
+ extraInfo?: {
6
+ mesonSwapId: string;
7
+ };
8
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,5 @@
1
+ import { Web3PrimitiveType } from '../../../../utils/models/primitive-types';
2
+ export interface ContractMulticallResponse<Output extends Web3PrimitiveType> {
3
+ success: boolean;
4
+ output: Output | null;
5
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,4 @@
1
+ export interface MethodData {
2
+ methodName: string;
3
+ methodArguments: unknown[];
4
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1 @@
1
+ export type SupportedTokenField = 'decimals' | 'symbol' | 'name' | 'image';
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,10 @@
1
+ export declare const TX_STATUS: {
2
+ readonly PENDING: "PENDING";
3
+ readonly SUCCESS: "SUCCESS";
4
+ readonly FAIL: "FAIL";
5
+ readonly FALLBACK: "FALLBACK";
6
+ readonly REVERT: "REVERT";
7
+ readonly UNKNOWN: "UNKNOWN";
8
+ readonly READY_TO_CLAIM: "READY_TO_CLAIM";
9
+ };
10
+ export type TxStatus = (typeof TX_STATUS)[keyof typeof TX_STATUS];
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TX_STATUS = void 0;
4
+ exports.TX_STATUS = {
5
+ PENDING: 'PENDING',
6
+ SUCCESS: 'SUCCESS',
7
+ FAIL: 'FAIL',
8
+ FALLBACK: 'FALLBACK',
9
+ REVERT: 'REVERT',
10
+ UNKNOWN: 'UNKNOWN',
11
+ READY_TO_CLAIM: 'READY_TO_CLAIM'
12
+ };
@@ -0,0 +1,2 @@
1
+ import { RubicSdkError } from '../../../errors/rubic-sdk.error';
2
+ export declare function parseError(err: unknown, defaultMessage?: string): RubicSdkError;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseError = parseError;
4
+ const rubic_sdk_error_1 = require("../../../errors/rubic-sdk.error");
5
+ function parseError(err, defaultMessage) {
6
+ if (err instanceof rubic_sdk_error_1.RubicSdkError) {
7
+ return err;
8
+ }
9
+ return new rubic_sdk_error_1.RubicSdkError(err?.message || defaultMessage || 'Unknown error');
10
+ }
@@ -0,0 +1,10 @@
1
+ import BigNumber from 'bignumber.js';
2
+ import { EvmTransactionOptions } from '../adapter-evm/models/evm-send-tx-params';
3
+ import { SwapTransactionOptions } from '../models/old-features-models/swap-transaction-options';
4
+ import { EIP1559ViemGas, SingleViemGasPrice } from '../models/evm-web3-public-models/gas-price-viem';
5
+ import { EIP1559Gas, SingleGasPrice } from '../models/evm-web3-public-models/gas-price';
6
+ export declare function stringifyAmount(amount: number | string | BigNumber, multiplier?: number): string;
7
+ export declare function combineOptions<T extends object>(options: Partial<T> | undefined, defaultOptions: T): T;
8
+ export declare function deadlineMinutesTimestamp(deadlineMinutes: number): number;
9
+ export declare function getGasOptions(options: SwapTransactionOptions | EvmTransactionOptions): EIP1559Gas | SingleGasPrice | Record<never, never>;
10
+ export declare function getViemGasOptions(options: SwapTransactionOptions | EvmTransactionOptions): EIP1559ViemGas | SingleViemGasPrice | Record<never, never>;
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.stringifyAmount = stringifyAmount;
4
+ exports.combineOptions = combineOptions;
5
+ exports.deadlineMinutesTimestamp = deadlineMinutesTimestamp;
6
+ exports.getGasOptions = getGasOptions;
7
+ exports.getViemGasOptions = getViemGasOptions;
8
+ const bignumber_js_1 = require("bignumber.js");
9
+ const rubic_sdk_error_1 = require("../../../errors/rubic-sdk.error");
10
+ function stringifyAmount(amount, multiplier = 1) {
11
+ const bnAmount = new bignumber_js_1.default(amount);
12
+ if (!bnAmount.isInteger()) {
13
+ throw new rubic_sdk_error_1.RubicSdkError(`Value ${amount} is not integer`);
14
+ }
15
+ return bnAmount.multipliedBy(multiplier).toFixed(0);
16
+ }
17
+ function combineOptions(options, defaultOptions) {
18
+ return {
19
+ ...defaultOptions,
20
+ ...options
21
+ };
22
+ }
23
+ function deadlineMinutesTimestamp(deadlineMinutes) {
24
+ return Math.floor(Date.now() / 1000 + 60 * deadlineMinutes);
25
+ }
26
+ function getGasOptions(options) {
27
+ const { gasPriceOptions } = options;
28
+ if (!gasPriceOptions)
29
+ return {};
30
+ if ('gasPrice' in gasPriceOptions && gasPriceOptions.gasPrice) {
31
+ return {
32
+ gasPrice: stringifyAmount(gasPriceOptions.gasPrice)
33
+ };
34
+ }
35
+ if ('maxPriorityFeePerGas' in gasPriceOptions && gasPriceOptions.maxPriorityFeePerGas && gasPriceOptions.maxFeePerGas) {
36
+ return {
37
+ maxPriorityFeePerGas: stringifyAmount(gasPriceOptions.maxPriorityFeePerGas),
38
+ maxFeePerGas: stringifyAmount(gasPriceOptions.maxFeePerGas)
39
+ };
40
+ }
41
+ return {};
42
+ }
43
+ function getViemGasOptions(options) {
44
+ const { gasPriceOptions } = options;
45
+ if (!gasPriceOptions)
46
+ return {};
47
+ if ('gasPrice' in gasPriceOptions && gasPriceOptions.gasPrice) {
48
+ return {
49
+ gasPrice: BigInt(gasPriceOptions.gasPrice)
50
+ };
51
+ }
52
+ if ('maxPriorityFeePerGas' in gasPriceOptions && gasPriceOptions.maxPriorityFeePerGas && gasPriceOptions.maxFeePerGas) {
53
+ return {
54
+ maxPriorityFeePerGas: BigInt(gasPriceOptions.maxPriorityFeePerGas),
55
+ maxFeePerGas: BigInt(gasPriceOptions.maxFeePerGas)
56
+ };
57
+ }
58
+ return {};
59
+ }
@@ -0,0 +1 @@
1
+ export declare function waitFor(milliseconds: number): Promise<void>;
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.waitFor = waitFor;
4
+ async function waitFor(milliseconds) {
5
+ return new Promise((resolve) => setTimeout(resolve, milliseconds));
6
+ }