@cryptorubic/web3 0.14.0-alpha.solana-gas.11 → 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.
- package/package.json +1 -2
- package/src/index.d.ts +4 -7
- package/src/index.js +4 -7
- package/src/lib/adapter/adapters/adapter-bitcoin/bitcoin-adapter.d.ts +35 -0
- package/src/lib/adapter/adapters/{bitcoin-adapter.js → adapter-bitcoin/bitcoin-adapter.js} +16 -6
- package/src/lib/adapter/adapters/adapter-bitcoin/client/bitcoin-adapter-client.d.ts +16 -0
- package/src/lib/adapter/adapters/adapter-bitcoin/client/bitcoin-adapter-client.js +119 -0
- package/src/lib/adapter/adapters/adapter-bitcoin/models/btc-send-tx-params.d.ts +5 -0
- package/src/lib/adapter/adapters/adapter-bitcoin/models/btc-web3-private-models/bitcoin-psbt-encoded-config.d.ts +5 -0
- package/src/lib/adapter/adapters/adapter-bitcoin/models/btc-web3-private-models/bitcoin-trade-types.d.ts +7 -0
- package/src/lib/adapter/adapters/adapter-bitcoin/models/btc-web3-private-models/bitcoin-transfer-encoded-config.d.ts +6 -0
- package/src/lib/adapter/adapters/adapter-bitcoin/models/btc-web3-private-models/bitcoin-transfer-encoded-config.js +2 -0
- package/src/lib/adapter/adapters/adapter-evm/client/evm-adapter-client.d.ts +80 -0
- package/src/lib/adapter/adapters/adapter-evm/client/evm-adapter-client.js +307 -0
- package/src/lib/adapter/adapters/adapter-evm/constants/proxy-hash-errors.d.ts +4 -0
- package/src/lib/adapter/adapters/adapter-evm/constants/proxy-hash-errors.js +705 -0
- package/src/lib/adapter/adapters/{evm-adapter.d.ts → adapter-evm/evm-adapter.d.ts} +25 -17
- package/src/lib/adapter/adapters/{evm-adapter.js → adapter-evm/evm-adapter.js} +155 -75
- package/src/lib/adapter/adapters/adapter-evm/models/evm-send-tx-params.d.ts +38 -0
- package/src/lib/adapter/adapters/adapter-evm/models/evm-send-tx-params.js +2 -0
- package/src/lib/adapter/adapters/adapter-evm/utils/parse-evm-error.d.ts +12 -0
- package/src/lib/adapter/adapters/adapter-evm/utils/parse-evm-error.js +70 -0
- package/src/lib/adapter/adapters/adapter-solana/client/solana-adapter-client.d.ts +15 -0
- package/src/lib/adapter/adapters/adapter-solana/client/solana-adapter-client.js +94 -0
- package/src/lib/adapter/adapters/adapter-solana/models/solana-send-tx-params.d.ts +16 -0
- package/src/lib/adapter/adapters/adapter-solana/models/solana-send-tx-params.js +2 -0
- package/src/lib/adapter/adapters/{utils/solana-utils → adapter-solana/services}/solana-tokens-service.js +8 -10
- package/src/lib/adapter/adapters/{solana-adapter.d.ts → adapter-solana/solana-adapter.d.ts} +23 -17
- package/src/lib/adapter/adapters/{solana-adapter.js → adapter-solana/solana-adapter.js} +36 -98
- package/src/lib/adapter/adapters/adapter-sui/client/sui-adapter-client.d.ts +15 -0
- package/src/lib/adapter/adapters/adapter-sui/client/sui-adapter-client.js +58 -0
- package/src/lib/adapter/adapters/adapter-sui/models/sui-send-tx-params.d.ts +8 -0
- package/src/lib/adapter/adapters/adapter-sui/models/sui-send-tx-params.js +2 -0
- package/src/lib/adapter/adapters/adapter-sui/sui-adapter.d.ts +29 -0
- package/src/lib/adapter/adapters/{sui-adapter.js → adapter-sui/sui-adapter.js} +25 -6
- package/src/lib/adapter/adapters/adapter-ton/client/ton-adapter-client.d.ts +41 -0
- package/src/lib/adapter/adapters/adapter-ton/client/ton-adapter-client.js +164 -0
- package/src/lib/adapter/adapters/adapter-ton/models/ton-send-tx-params.d.ts +26 -0
- package/src/lib/adapter/adapters/adapter-ton/models/ton-send-tx-params.js +2 -0
- package/src/lib/adapter/adapters/{utils → adapter-ton/services}/ton-api.service.d.ts +4 -4
- package/src/lib/adapter/adapters/{utils → adapter-ton/services}/ton-api.service.js +0 -5
- package/src/lib/adapter/adapters/adapter-ton/services/ton-client/ton-client.d.ts +6 -0
- package/src/lib/adapter/adapters/adapter-ton/services/ton-client/ton-client.js +18 -0
- package/src/lib/adapter/adapters/adapter-ton/ton-adapter.d.ts +29 -0
- package/src/lib/adapter/adapters/{ton-adapter.js → adapter-ton/ton-adapter.js} +40 -50
- package/src/lib/adapter/adapters/adapter-tron/client/tron-adapter-client.d.ts +27 -0
- package/src/lib/adapter/adapters/adapter-tron/client/tron-adapter-client.js +91 -0
- package/src/lib/adapter/adapters/adapter-tron/models/tron-send-tx-params.d.ts +13 -0
- package/src/lib/adapter/adapters/adapter-tron/models/tron-send-tx-params.js +2 -0
- package/src/lib/adapter/adapters/{tron-adapter.d.ts → adapter-tron/tron-adapter.d.ts} +21 -18
- package/src/lib/adapter/adapters/{tron-adapter.js → adapter-tron/tron-adapter.js} +45 -68
- package/src/lib/adapter/adapters/adapter-tron/utils/parse-tron-error.d.ts +2 -0
- package/src/lib/adapter/adapters/adapter-tron/utils/parse-tron-error.js +20 -0
- package/src/lib/adapter/adapters/common/abstract-adapter.d.ts +48 -0
- package/src/lib/adapter/adapters/common/abstract-adapter.js +67 -0
- package/src/lib/adapter/adapters/common/client/abstract-adapter-client.d.ts +24 -0
- package/src/lib/adapter/adapters/common/client/abstract-adapter-client.js +59 -0
- package/src/lib/adapter/adapters/models/approve-adapter.d.ts +4 -4
- package/src/lib/adapter/adapters/models/approve-adapter.js +3 -3
- package/src/lib/adapter/adapters/models/basic-transaction-options.d.ts +1 -1
- package/src/lib/adapter/adapters/models/evm-web3-public-models/batch-call.d.ts +5 -0
- package/src/lib/adapter/adapters/models/evm-web3-public-models/batch-call.js +2 -0
- package/src/lib/adapter/adapters/models/evm-web3-public-models/evm-call.d.ts +4 -0
- package/src/lib/adapter/adapters/models/evm-web3-public-models/evm-call.js +2 -0
- package/src/lib/adapter/adapters/models/evm-web3-public-models/evm-multicall-response.d.ts +4 -0
- package/src/lib/adapter/adapters/models/evm-web3-public-models/evm-multicall-response.js +2 -0
- package/src/lib/adapter/adapters/models/evm-web3-public-models/gas-price-viem.d.ts +18 -0
- package/src/lib/adapter/adapters/models/evm-web3-public-models/gas-price-viem.js +2 -0
- package/src/lib/adapter/adapters/models/evm-web3-public-models/gas-price.js +2 -0
- package/src/lib/adapter/adapters/models/evm-web3-public-models/permit2-contract-types.d.ts +10 -0
- package/src/lib/adapter/adapters/models/evm-web3-public-models/permit2-contract-types.js +2 -0
- package/src/lib/adapter/adapters/models/evm-web3-public-models/rpc-response.d.ts +5 -0
- package/src/lib/adapter/adapters/models/evm-web3-public-models/rpc-response.js +2 -0
- package/src/lib/adapter/adapters/models/old-features-models/contract-params.d.ts +23 -0
- package/src/lib/adapter/adapters/models/old-features-models/contract-params.js +2 -0
- package/src/lib/adapter/adapters/models/old-features-models/encode-transaction-options.d.ts +32 -0
- package/src/lib/adapter/adapters/models/old-features-models/encode-transaction-options.js +2 -0
- package/src/lib/adapter/adapters/models/old-features-models/is-deflation-token.d.ts +6 -0
- package/src/lib/adapter/adapters/models/old-features-models/is-deflation-token.js +2 -0
- package/src/lib/adapter/adapters/models/old-features-models/non-evm-chain-address-correct-response.d.ts +5 -0
- package/src/lib/adapter/adapters/models/old-features-models/non-evm-chain-address-correct-response.js +2 -0
- package/src/lib/adapter/adapters/models/old-features-models/swap-transaction-options.d.ts +61 -0
- package/src/lib/adapter/adapters/models/old-features-models/swap-transaction-options.js +2 -0
- package/src/lib/adapter/adapters/models/status-manager-models/tx-status-data.d.ts +8 -0
- package/src/lib/adapter/adapters/models/status-manager-models/tx-status-data.js +2 -0
- package/src/lib/adapter/adapters/models/web3-public-models/contract-multicall-response.d.ts +5 -0
- package/src/lib/adapter/adapters/models/web3-public-models/contract-multicall-response.js +2 -0
- package/src/lib/adapter/adapters/models/web3-public-models/method-data.d.ts +4 -0
- package/src/lib/adapter/adapters/models/web3-public-models/method-data.js +2 -0
- package/src/lib/adapter/adapters/models/web3-public-models/supported-token-field.d.ts +1 -0
- package/src/lib/adapter/adapters/models/web3-public-models/supported-token-field.js +2 -0
- package/src/lib/adapter/adapters/models/web3-public-models/tx-status.d.ts +10 -0
- package/src/lib/adapter/adapters/models/web3-public-models/tx-status.js +12 -0
- package/src/lib/adapter/adapters/utils/errors.d.ts +2 -0
- package/src/lib/adapter/adapters/utils/errors.js +10 -0
- package/src/lib/adapter/adapters/utils/options.d.ts +10 -0
- package/src/lib/adapter/adapters/utils/options.js +59 -0
- package/src/lib/adapter/adapters/utils/waitFor.d.ts +1 -0
- package/src/lib/adapter/adapters/utils/waitFor.js +6 -0
- package/src/lib/adapter/blockchain-adapter-factory.service.d.ts +18 -13
- package/src/lib/adapter/blockchain-adapter-factory.service.js +35 -66
- package/src/lib/adapter/constants/models/create-factory-params.d.ts +8 -0
- package/src/lib/adapter/constants/models/create-factory-params.js +2 -0
- package/src/lib/adapter/constants/models/env-type.d.ts +1 -0
- package/src/lib/adapter/constants/models/env-type.js +2 -0
- package/src/lib/adapter/constants/models/solana-web3.d.ts +1 -1
- package/src/lib/adapter/constants/rubic-api-link-mapping.d.ts +2 -0
- package/src/lib/adapter/constants/rubic-api-link-mapping.js +16 -0
- package/src/lib/errors/blockchain/deflation-token.error.d.ts +11 -0
- package/src/lib/errors/blockchain/deflation-token.error.js +16 -0
- package/src/lib/errors/blockchain/healthcheck.error.d.ts +8 -0
- package/src/lib/errors/blockchain/healthcheck.error.js +15 -0
- package/src/lib/errors/blockchain/invalid-address.error.d.ts +8 -0
- package/src/lib/errors/blockchain/invalid-address.error.js +15 -0
- package/src/lib/errors/blockchain/low-gas.error.d.ts +7 -0
- package/src/lib/errors/blockchain/low-gas.error.js +14 -0
- package/src/lib/errors/blockchain/transaction-reverted.error.d.ts +7 -0
- package/src/lib/errors/blockchain/transaction-reverted.error.js +14 -0
- package/src/lib/errors/blockchain/tron-insufficient-native-balance.d.ts +7 -0
- package/src/lib/errors/blockchain/tron-insufficient-native-balance.js +14 -0
- package/src/lib/errors/blockchain/tron-transaction-expired.d.ts +7 -0
- package/src/lib/errors/blockchain/tron-transaction-expired.js +14 -0
- package/src/lib/errors/blockchain/user-reject.error.d.ts +7 -0
- package/src/lib/errors/blockchain/user-reject.error.js +14 -0
- package/src/lib/errors/blockchain/wrong-from-address.error.d.ts +7 -0
- package/src/lib/errors/blockchain/wrong-from-address.error.js +14 -0
- package/src/lib/errors/blockchain/wrong-receiver-address.error.d.ts +7 -0
- package/src/lib/errors/blockchain/wrong-receiver-address.error.js +14 -0
- package/src/lib/errors/common/timeout.error.d.ts +4 -0
- package/src/lib/errors/common/timeout.error.js +12 -0
- package/src/lib/errors/cross-chain/cross-chain-is-unavailable.error.d.ts +7 -0
- package/src/lib/errors/cross-chain/cross-chain-is-unavailable.error.js +14 -0
- package/src/lib/errors/cross-chain/insufficient-funds-gas-price-value.error.d.ts +7 -0
- package/src/lib/errors/cross-chain/insufficient-funds-gas-price-value.error.js +14 -0
- package/src/lib/errors/cross-chain/low-to-slippage.error.d.ts +6 -0
- package/src/lib/errors/cross-chain/low-to-slippage.error.js +10 -0
- package/src/lib/errors/cross-chain/max-gas-price-overflow.error.d.ts +8 -0
- package/src/lib/errors/cross-chain/max-gas-price-overflow.error.js +15 -0
- package/src/lib/errors/cross-chain/too-low-amount.error.d.ts +7 -0
- package/src/lib/errors/cross-chain/too-low-amount.error.js +14 -0
- package/src/lib/errors/cross-chain/unsupported-receiver-address.error.d.ts +4 -0
- package/src/lib/errors/cross-chain/unsupported-receiver-address.error.js +11 -0
- package/src/lib/errors/cross-chain/updated-rates-error.d.ts +10 -0
- package/src/lib/errors/cross-chain/updated-rates-error.js +17 -0
- package/src/lib/errors/models/rubic-api-error.d.ts +21 -0
- package/src/lib/errors/models/rubic-api-error.js +2 -0
- package/src/lib/errors/on-chain/on-chain-is-unavailable.error.d.ts +7 -0
- package/src/lib/errors/on-chain/on-chain-is-unavailable.error.js +14 -0
- package/src/lib/errors/proxy/unapproved-contract-error.d.ts +8 -0
- package/src/lib/errors/proxy/unapproved-contract-error.js +15 -0
- package/src/lib/errors/proxy/unapproved-method-error.d.ts +8 -0
- package/src/lib/errors/proxy/unapproved-method-error.js +15 -0
- package/src/lib/errors/proxy/unlisted-error.d.ts +9 -0
- package/src/lib/errors/proxy/unlisted-error.js +16 -0
- package/src/lib/errors/rubic-sdk.error.d.ts +6 -0
- package/src/lib/errors/rubic-sdk.error.js +13 -0
- package/src/lib/errors/swap/bridgers-pair-is-unavailable.error.d.ts +7 -0
- package/src/lib/errors/swap/bridgers-pair-is-unavailable.error.js +14 -0
- package/src/lib/errors/swap/failed-to-check-for-transaction-receipt.error.d.ts +8 -0
- package/src/lib/errors/swap/failed-to-check-for-transaction-receipt.error.js +15 -0
- package/src/lib/errors/swap/insufficient-funds-oneinch.error.d.ts +9 -0
- package/src/lib/errors/swap/insufficient-funds-oneinch.error.js +15 -0
- package/src/lib/errors/swap/insufficient-funds.error.d.ts +11 -0
- package/src/lib/errors/swap/insufficient-funds.error.js +18 -0
- package/src/lib/errors/swap/insufficient-liquidity.error.d.ts +7 -0
- package/src/lib/errors/swap/insufficient-liquidity.error.js +14 -0
- package/src/lib/errors/swap/lifi-pair-is-unavailable.error.d.ts +7 -0
- package/src/lib/errors/swap/lifi-pair-is-unavailable.error.js +14 -0
- package/src/lib/errors/swap/low-slippage-deflationary-token.error.d.ts +7 -0
- package/src/lib/errors/swap/low-slippage-deflationary-token.error.js +14 -0
- package/src/lib/errors/swap/low-slippage.error.d.ts +8 -0
- package/src/lib/errors/swap/low-slippage.error.js +15 -0
- package/src/lib/errors/swap/max-amount.error.d.ts +7 -0
- package/src/lib/errors/swap/max-amount.error.js +14 -0
- package/src/lib/errors/swap/max-decimals.error.d.ts +5 -0
- package/src/lib/errors/swap/max-decimals.error.js +12 -0
- package/src/lib/errors/swap/min-amount.error.d.ts +7 -0
- package/src/lib/errors/swap/min-amount.error.js +14 -0
- package/src/lib/errors/swap/no-linked-account-erros.d.ts +4 -0
- package/src/lib/errors/swap/no-linked-account-erros.js +11 -0
- package/src/lib/errors/swap/not-supported-blockchain.d.ts +8 -0
- package/src/lib/errors/swap/not-supported-blockchain.js +15 -0
- package/src/lib/errors/swap/not-supported-region.d.ts +7 -0
- package/src/lib/errors/swap/not-supported-region.js +14 -0
- package/src/lib/errors/swap/not-supported-tokens.error.d.ts +7 -0
- package/src/lib/errors/swap/not-supported-tokens.error.js +14 -0
- package/src/lib/errors/swap/not-whitelisted-provider.error.d.ts +10 -0
- package/src/lib/errors/swap/not-whitelisted-provider.error.js +17 -0
- package/src/lib/errors/swap/simulation-failed.error.d.ts +6 -0
- package/src/lib/errors/swap/simulation-failed.error.js +12 -0
- package/src/lib/errors/swap/swap-error-on-provider-side.d.ts +7 -0
- package/src/lib/errors/swap/swap-error-on-provider-side.js +14 -0
- package/src/lib/errors/swap/swap-request.error.d.ts +7 -0
- package/src/lib/errors/swap/swap-request.error.js +14 -0
- package/src/lib/errors/swap/trade-expired.error.d.ts +4 -0
- package/src/lib/errors/swap/trade-expired.error.js +11 -0
- package/src/lib/errors/swap/unnecessary-approve.error.d.ts +7 -0
- package/src/lib/errors/swap/unnecessary-approve.error.js +14 -0
- package/src/lib/errors/swap/wallet-not-connected.error.d.ts +8 -0
- package/src/lib/errors/swap/wallet-not-connected.error.js +15 -0
- package/src/lib/errors/swap/wrong-network.error.d.ts +10 -0
- package/src/lib/errors/swap/wrong-network.error.js +16 -0
- package/src/lib/utils/web3-types/common-web3-pure.js +2 -4
- package/src/lib/utils/web3-types/near-web3-pure.js +1 -1
- package/src/lib/utils/web3-types/solana-web3-pure.js +1 -1
- package/src/lib/utils/web3-types/sui-web3-pure.js +2 -2
- package/src/lib/adapter/adapters/abstract-adapter.d.ts +0 -23
- package/src/lib/adapter/adapters/abstract-adapter.js +0 -61
- package/src/lib/adapter/adapters/bitcoin-adapter.d.ts +0 -18
- package/src/lib/adapter/adapters/models/adapter-factory-params.d.ts +0 -7
- package/src/lib/adapter/adapters/sui-adapter.d.ts +0 -17
- package/src/lib/adapter/adapters/ton-adapter.d.ts +0 -22
- package/src/lib/utils/models/solana-transaction-config.d.ts +0 -6
- /package/src/lib/adapter/adapters/{models/adapter-factory-params.js → adapter-bitcoin/models/btc-send-tx-params.js} +0 -0
- /package/src/lib/adapter/adapters/{models/gas-price.js → adapter-bitcoin/models/btc-web3-private-models/bitcoin-psbt-encoded-config.js} +0 -0
- /package/src/lib/{utils/models/solana-transaction-config.js → adapter/adapters/adapter-bitcoin/models/btc-web3-private-models/bitcoin-trade-types.js} +0 -0
- /package/src/lib/adapter/adapters/{utils/solana-utils → adapter-solana/services}/solana-tokens-service.d.ts +0 -0
- /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 {
|
|
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
|
-
|
|
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
|
|
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.
|
|
4
|
-
function
|
|
5
|
-
return 'needApprove' in
|
|
3
|
+
exports.isApprovableAdapterClient = isApprovableAdapterClient;
|
|
4
|
+
function isApprovableAdapterClient(adapterClient) {
|
|
5
|
+
return ('needApprove' in adapterClient && 'approve' in adapterClient && 'getAllowance' in adapterClient && 'encodeApprove' in adapterClient);
|
|
6
6
|
}
|
|
@@ -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,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,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,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,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 @@
|
|
|
1
|
+
export type SupportedTokenField = 'decimals' | 'symbol' | 'name' | 'image';
|
|
@@ -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,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>;
|