@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
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cryptorubic/web3",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "1.0.0-alpha.no-sdk.1",
|
|
4
4
|
"dependencies": {
|
|
5
5
|
"@ethersproject/bignumber": "^5.8.0",
|
|
6
6
|
"@mysten/sui": "^1.24.0",
|
|
@@ -14,7 +14,6 @@
|
|
|
14
14
|
"bitcoin-address-validation": "^2.2.3",
|
|
15
15
|
"bs58": "^6.0.0",
|
|
16
16
|
"crc-32": "^1.2.2",
|
|
17
|
-
"ethers": "*",
|
|
18
17
|
"js-base64": "^3.7.8",
|
|
19
18
|
"tronweb": "^6.0.0-beta.4",
|
|
20
19
|
"tslib": "*",
|
package/src/index.d.ts
CHANGED
|
@@ -11,20 +11,17 @@ export * from './lib/adapter/adapters/constants/erc20-token-abi';
|
|
|
11
11
|
export * from './lib/adapter/adapters/constants/trc-20-contract-abi';
|
|
12
12
|
export * from './lib/adapter/adapters/constants/tron-multicall-abi';
|
|
13
13
|
export * from './lib/adapter/adapters/models/evm-adapter-options';
|
|
14
|
-
export * from './lib/adapter/adapters/abstract-adapter';
|
|
15
|
-
export * from './lib/adapter/adapters/evm-adapter';
|
|
16
|
-
export * from './lib/adapter/adapters/
|
|
17
|
-
export * from './lib/adapter/adapters/tron-adapter';
|
|
18
|
-
export * from './lib/adapter/adapters/ton-adapter';
|
|
14
|
+
export * from './lib/adapter/adapters/common/abstract-adapter';
|
|
15
|
+
export * from './lib/adapter/adapters/adapter-evm/evm-adapter';
|
|
16
|
+
export * from './lib/adapter/adapters/adapter-ton/ton-adapter';
|
|
19
17
|
export * from './lib/adapter/adapters/models/ton-adapter-config';
|
|
20
18
|
export * from './lib/adapter/adapters/models/common-types';
|
|
21
19
|
export * from './lib/adapter/adapters/models/ton-api-config';
|
|
22
20
|
export * from './lib/adapter/adapters/models/tonapi-models';
|
|
23
21
|
export * from './lib/adapter/adapters/models/toncenter-types';
|
|
24
22
|
export * from './lib/adapter/adapters/models/approve-adapter';
|
|
25
|
-
export * from './lib/adapter/adapters/models/gas-price';
|
|
26
23
|
export * from './lib/adapter/adapters/models/btc-wallet-provider';
|
|
27
|
-
export * from './lib/adapter/adapters/bitcoin-adapter';
|
|
24
|
+
export * from './lib/adapter/adapters/adapter-bitcoin/bitcoin-adapter';
|
|
28
25
|
export * from './lib/utils/web3-pure';
|
|
29
26
|
export * from './lib/utils/models/evm-transaction-config';
|
|
30
27
|
export * from './lib/utils/web3-types/bitcoin-web3-pure';
|
package/src/index.js
CHANGED
|
@@ -11,20 +11,17 @@ tslib_1.__exportStar(require("./lib/adapter/adapters/constants/erc20-token-abi")
|
|
|
11
11
|
tslib_1.__exportStar(require("./lib/adapter/adapters/constants/trc-20-contract-abi"), exports);
|
|
12
12
|
tslib_1.__exportStar(require("./lib/adapter/adapters/constants/tron-multicall-abi"), exports);
|
|
13
13
|
tslib_1.__exportStar(require("./lib/adapter/adapters/models/evm-adapter-options"), exports);
|
|
14
|
-
tslib_1.__exportStar(require("./lib/adapter/adapters/abstract-adapter"), exports);
|
|
15
|
-
tslib_1.__exportStar(require("./lib/adapter/adapters/evm-adapter"), exports);
|
|
16
|
-
tslib_1.__exportStar(require("./lib/adapter/adapters/
|
|
17
|
-
tslib_1.__exportStar(require("./lib/adapter/adapters/tron-adapter"), exports);
|
|
18
|
-
tslib_1.__exportStar(require("./lib/adapter/adapters/ton-adapter"), exports);
|
|
14
|
+
tslib_1.__exportStar(require("./lib/adapter/adapters/common/abstract-adapter"), exports);
|
|
15
|
+
tslib_1.__exportStar(require("./lib/adapter/adapters/adapter-evm/evm-adapter"), exports);
|
|
16
|
+
tslib_1.__exportStar(require("./lib/adapter/adapters/adapter-ton/ton-adapter"), exports);
|
|
19
17
|
tslib_1.__exportStar(require("./lib/adapter/adapters/models/ton-adapter-config"), exports);
|
|
20
18
|
tslib_1.__exportStar(require("./lib/adapter/adapters/models/common-types"), exports);
|
|
21
19
|
tslib_1.__exportStar(require("./lib/adapter/adapters/models/ton-api-config"), exports);
|
|
22
20
|
tslib_1.__exportStar(require("./lib/adapter/adapters/models/tonapi-models"), exports);
|
|
23
21
|
tslib_1.__exportStar(require("./lib/adapter/adapters/models/toncenter-types"), exports);
|
|
24
22
|
tslib_1.__exportStar(require("./lib/adapter/adapters/models/approve-adapter"), exports);
|
|
25
|
-
tslib_1.__exportStar(require("./lib/adapter/adapters/models/gas-price"), exports);
|
|
26
23
|
tslib_1.__exportStar(require("./lib/adapter/adapters/models/btc-wallet-provider"), exports);
|
|
27
|
-
tslib_1.__exportStar(require("./lib/adapter/adapters/bitcoin-adapter"), exports);
|
|
24
|
+
tslib_1.__exportStar(require("./lib/adapter/adapters/adapter-bitcoin/bitcoin-adapter"), exports);
|
|
28
25
|
// utils aka web3pure
|
|
29
26
|
tslib_1.__exportStar(require("./lib/utils/web3-pure"), exports);
|
|
30
27
|
tslib_1.__exportStar(require("./lib/utils/models/evm-transaction-config"), exports);
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { BitcoinBlockchainName, BlockchainName, HttpClient, ICustomLogger, PriceTokenAmount, Token, TokenAmount } from '@cryptorubic/core';
|
|
2
|
+
import BigNumber from 'bignumber.js';
|
|
3
|
+
import { AbstractAdapter } from '../common/abstract-adapter';
|
|
4
|
+
import { BtcWallet } from '../models/btc-wallet-provider';
|
|
5
|
+
import { BasicSendTransactionOptions } from '../models/basic-transaction-options';
|
|
6
|
+
import { AbstractAdapterClient } from '../common/client/abstract-adapter-client';
|
|
7
|
+
import { RubicAppAdaptersFactoryParams } from '../../constants/models/create-factory-params';
|
|
8
|
+
import { BitconSendTxParams } from './models/btc-send-tx-params';
|
|
9
|
+
import { Abi } from 'viem';
|
|
10
|
+
import { Web3PrimitiveType } from '../../../utils/models/primitive-types';
|
|
11
|
+
import { ContractMulticallResponse } from '../models/web3-public-models/contract-multicall-response';
|
|
12
|
+
import { MethodData } from '../models/web3-public-models/method-data';
|
|
13
|
+
export declare class BitcoinAdapter extends AbstractAdapter<BtcWallet, BtcWallet, BitcoinBlockchainName> {
|
|
14
|
+
private readonly httpClient;
|
|
15
|
+
readonly client: AbstractAdapterClient<BtcWallet, BitconSendTxParams, string>;
|
|
16
|
+
constructor(httpClient: HttpClient, logger?: ICustomLogger, rubicAppParams?: RubicAppAdaptersFactoryParams);
|
|
17
|
+
getBalance(userAddress: string): Promise<BigNumber>;
|
|
18
|
+
getTokensBalances(userAddress: string, tokensAddresses: string[]): Promise<BigNumber[]>;
|
|
19
|
+
multicallContractsMethods<Output extends Web3PrimitiveType>(contractAbi: Abi, contractsData: {
|
|
20
|
+
contractAddress: string;
|
|
21
|
+
methodsData: MethodData[];
|
|
22
|
+
}[]): Promise<ContractMulticallResponse<Output>[][]>;
|
|
23
|
+
getBlockNumber(): Promise<number | {
|
|
24
|
+
blockNumber: number;
|
|
25
|
+
workchain: number;
|
|
26
|
+
}>;
|
|
27
|
+
getPublicKey(userAddress: string): Promise<string | null>;
|
|
28
|
+
checkEnoughBalance(token: TokenAmount | PriceTokenAmount, walletAddress: string): Promise<boolean>;
|
|
29
|
+
callForTokensInfo(tokenAddresses: string[] | ReadonlyArray<string>): Promise<Token<BlockchainName>[]>;
|
|
30
|
+
read<T>(args: unknown): Promise<T>;
|
|
31
|
+
write(args: unknown): Promise<string>;
|
|
32
|
+
getPublicKeyFromWallet(): Promise<string>;
|
|
33
|
+
transfer(recipient: string, amount: string, fromAddress: string, memo?: string, options?: BasicSendTransactionOptions): Promise<string>;
|
|
34
|
+
sendPsbtTransaction(psbt: string, userAddress: string, inputIndexes: number[], options?: BasicSendTransactionOptions): Promise<string>;
|
|
35
|
+
}
|
|
@@ -3,18 +3,28 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.BitcoinAdapter = void 0;
|
|
4
4
|
const core_1 = require("@cryptorubic/core");
|
|
5
5
|
const bignumber_js_1 = require("bignumber.js");
|
|
6
|
-
const abstract_adapter_1 = require("
|
|
6
|
+
const abstract_adapter_1 = require("../common/abstract-adapter");
|
|
7
|
+
const bitcoin_adapter_client_1 = require("./client/bitcoin-adapter-client");
|
|
7
8
|
class BitcoinAdapter extends abstract_adapter_1.AbstractAdapter {
|
|
8
|
-
httpClient
|
|
9
|
-
constructor(httpClient, logger) {
|
|
9
|
+
constructor(httpClient, logger, rubicAppParams) {
|
|
10
10
|
super(core_1.BLOCKCHAIN_NAME.BITCOIN, logger);
|
|
11
11
|
this.httpClient = httpClient;
|
|
12
|
+
this.client = new bitcoin_adapter_client_1.BitcoinAdapterClient(httpClient, logger, rubicAppParams);
|
|
12
13
|
}
|
|
13
14
|
async getBalance(userAddress) {
|
|
14
15
|
const url = `https://api.blockcypher.com/v1/btc/main/addrs/${userAddress}/balance`;
|
|
15
16
|
const response = await this.httpClient.get(url);
|
|
16
17
|
return new bignumber_js_1.default(response.final_balance);
|
|
17
18
|
}
|
|
19
|
+
getTokensBalances(userAddress, tokensAddresses) {
|
|
20
|
+
return this.getBalance(userAddress).then((el) => [el]);
|
|
21
|
+
}
|
|
22
|
+
multicallContractsMethods(contractAbi, contractsData) {
|
|
23
|
+
throw new Error('Method not implemented.');
|
|
24
|
+
}
|
|
25
|
+
getBlockNumber() {
|
|
26
|
+
throw new Error('Method not implemented.');
|
|
27
|
+
}
|
|
18
28
|
async getPublicKey(userAddress) {
|
|
19
29
|
try {
|
|
20
30
|
const url = `https://api.blockcypher.com/v1/btc/main/addrs/${userAddress}/full`;
|
|
@@ -55,7 +65,7 @@ class BitcoinAdapter extends abstract_adapter_1.AbstractAdapter {
|
|
|
55
65
|
throw new Error('Not implemented');
|
|
56
66
|
}
|
|
57
67
|
async getPublicKeyFromWallet() {
|
|
58
|
-
const res = await this.
|
|
68
|
+
const res = await this.client.clientWallet.request({
|
|
59
69
|
method: 'request_accounts_and_keys',
|
|
60
70
|
params: {
|
|
61
71
|
purposes: ['payment']
|
|
@@ -69,7 +79,7 @@ class BitcoinAdapter extends abstract_adapter_1.AbstractAdapter {
|
|
|
69
79
|
}
|
|
70
80
|
async transfer(recipient, amount, fromAddress, memo, options) {
|
|
71
81
|
const hashPromise = new Promise((resolve, reject) => {
|
|
72
|
-
this.
|
|
82
|
+
this.client.clientWallet.request({
|
|
73
83
|
method: 'transfer',
|
|
74
84
|
params: [
|
|
75
85
|
{
|
|
@@ -108,7 +118,7 @@ class BitcoinAdapter extends abstract_adapter_1.AbstractAdapter {
|
|
|
108
118
|
}
|
|
109
119
|
async sendPsbtTransaction(psbt, userAddress, inputIndexes, options) {
|
|
110
120
|
const hashPromise = new Promise((resolve, reject) => {
|
|
111
|
-
this.
|
|
121
|
+
this.client.clientWallet.request({
|
|
112
122
|
method: 'sign_psbt',
|
|
113
123
|
params: {
|
|
114
124
|
psbt,
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { BlockchainName, HttpClient, ICustomLogger } from '@cryptorubic/core';
|
|
2
|
+
import { RubicAppAdaptersFactoryParams } from '../../../constants/models/create-factory-params';
|
|
3
|
+
import { BitconSendTxParams } from '../models/btc-send-tx-params';
|
|
4
|
+
import { AbstractAdapterClient } from '../../common/client/abstract-adapter-client';
|
|
5
|
+
import { BtcWallet } from '../../models/btc-wallet-provider';
|
|
6
|
+
import { TxStatus } from '../../models/web3-public-models/tx-status';
|
|
7
|
+
export declare class BitcoinAdapterClient extends AbstractAdapterClient<BtcWallet, BitconSendTxParams, string> {
|
|
8
|
+
constructor(httpClient: HttpClient, logger?: ICustomLogger, rubicAppParams?: RubicAppAdaptersFactoryParams);
|
|
9
|
+
getBlockchainName(): Promise<BlockchainName>;
|
|
10
|
+
getTransactionStatus(txHash: string): Promise<TxStatus>;
|
|
11
|
+
sendTransaction(params: BitconSendTxParams): Promise<string>;
|
|
12
|
+
private transfer;
|
|
13
|
+
private sendPsbtTransaction;
|
|
14
|
+
private getSrcStatusRecursive;
|
|
15
|
+
private isPsbtConfig;
|
|
16
|
+
}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BitcoinAdapterClient = void 0;
|
|
4
|
+
const core_1 = require("@cryptorubic/core");
|
|
5
|
+
const abstract_adapter_client_1 = require("../../common/client/abstract-adapter-client");
|
|
6
|
+
const tx_status_1 = require("../../models/web3-public-models/tx-status");
|
|
7
|
+
const waitFor_1 = require("../../utils/waitFor");
|
|
8
|
+
class BitcoinAdapterClient extends abstract_adapter_client_1.AbstractAdapterClient {
|
|
9
|
+
constructor(httpClient, logger, rubicAppParams) {
|
|
10
|
+
super(httpClient, logger, rubicAppParams);
|
|
11
|
+
}
|
|
12
|
+
getBlockchainName() {
|
|
13
|
+
return Promise.resolve(core_1.BLOCKCHAIN_NAME.BITCOIN);
|
|
14
|
+
}
|
|
15
|
+
async getTransactionStatus(txHash) {
|
|
16
|
+
const url = `https://api.blockcypher.com/v1/btc/main/txs/${txHash}`;
|
|
17
|
+
const { confirmations } = await this.httpClient.get(url);
|
|
18
|
+
return confirmations > 0 ? tx_status_1.TX_STATUS.SUCCESS : tx_status_1.TX_STATUS.PENDING;
|
|
19
|
+
}
|
|
20
|
+
async sendTransaction(params) {
|
|
21
|
+
if (this.isPsbtConfig(params.txOptions)) {
|
|
22
|
+
return this.sendPsbtTransaction(params.txOptions);
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
return this.transfer(params.txOptions);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
async transfer(txConfig, options) {
|
|
29
|
+
const hashPromise = new Promise((resolve, reject) => {
|
|
30
|
+
this.clientWallet.request({
|
|
31
|
+
method: 'transfer',
|
|
32
|
+
params: [
|
|
33
|
+
{
|
|
34
|
+
feeRate: 10,
|
|
35
|
+
from: this.walletAddress,
|
|
36
|
+
recipient: txConfig.depositAddress,
|
|
37
|
+
amount: {
|
|
38
|
+
amount: txConfig.value,
|
|
39
|
+
decimals: 8
|
|
40
|
+
},
|
|
41
|
+
...(txConfig.memo && { memo: txConfig.memo })
|
|
42
|
+
}
|
|
43
|
+
]
|
|
44
|
+
}, (error, txHash) => {
|
|
45
|
+
if (error) {
|
|
46
|
+
reject(error);
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
const hash = txHash;
|
|
50
|
+
options?.onTransactionHash?.(hash);
|
|
51
|
+
resolve(hash);
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
});
|
|
55
|
+
try {
|
|
56
|
+
const srcTxHash = await hashPromise;
|
|
57
|
+
if (typeof srcTxHash === 'string') {
|
|
58
|
+
const statusData = await this.getSrcStatusRecursive(srcTxHash);
|
|
59
|
+
return statusData.hash;
|
|
60
|
+
}
|
|
61
|
+
throw new Error();
|
|
62
|
+
}
|
|
63
|
+
catch {
|
|
64
|
+
throw new Error('Failed to transfer funds');
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
async sendPsbtTransaction(txConfig, options) {
|
|
68
|
+
const hashPromise = new Promise((resolve, reject) => {
|
|
69
|
+
this.clientWallet.request({
|
|
70
|
+
method: 'sign_psbt',
|
|
71
|
+
params: [
|
|
72
|
+
{
|
|
73
|
+
psbt: txConfig.psbt,
|
|
74
|
+
signInputs: {
|
|
75
|
+
[this.walletAddress]: txConfig.signInputs
|
|
76
|
+
},
|
|
77
|
+
allowedSignHash: 1,
|
|
78
|
+
broadcast: true
|
|
79
|
+
}
|
|
80
|
+
]
|
|
81
|
+
}, (error, txHash) => {
|
|
82
|
+
if (error) {
|
|
83
|
+
reject(error);
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
const txData = txHash;
|
|
87
|
+
options?.onTransactionHash?.(txData.result.txId);
|
|
88
|
+
resolve(txData.result.txId);
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
});
|
|
92
|
+
try {
|
|
93
|
+
const srcTxHash = await hashPromise;
|
|
94
|
+
if (typeof srcTxHash === 'string') {
|
|
95
|
+
const statusData = await this.getSrcStatusRecursive(srcTxHash);
|
|
96
|
+
return statusData.hash;
|
|
97
|
+
}
|
|
98
|
+
throw new Error();
|
|
99
|
+
}
|
|
100
|
+
catch {
|
|
101
|
+
throw new Error('Failed to sign psbt transaction');
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
async getSrcStatusRecursive(srcTxHash) {
|
|
105
|
+
const srcTxStatus = await this.getSrcTxStatus(core_1.BLOCKCHAIN_NAME.BITCOIN, srcTxHash);
|
|
106
|
+
if (srcTxStatus === tx_status_1.TX_STATUS.FAIL || srcTxStatus === tx_status_1.TX_STATUS.SUCCESS) {
|
|
107
|
+
return {
|
|
108
|
+
status: srcTxStatus,
|
|
109
|
+
hash: srcTxHash
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
await (0, waitFor_1.waitFor)(300000);
|
|
113
|
+
return this.getSrcStatusRecursive(srcTxHash);
|
|
114
|
+
}
|
|
115
|
+
isPsbtConfig(txConfig) {
|
|
116
|
+
return 'psbt' in txConfig;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
exports.BitcoinAdapterClient = BitcoinAdapterClient;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { BitcoinPsbtEncodedConfig } from './btc-web3-private-models/bitcoin-psbt-encoded-config';
|
|
2
|
+
import { BitcoinTransferEncodedConfig } from './btc-web3-private-models/bitcoin-transfer-encoded-config';
|
|
3
|
+
export interface BitconSendTxParams {
|
|
4
|
+
txOptions: BitcoinTransferEncodedConfig | BitcoinPsbtEncodedConfig;
|
|
5
|
+
}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { BlockchainName, HttpClient, ICustomLogger, TokenAmount } from '@cryptorubic/core';
|
|
2
|
+
import { RubicAppAdaptersFactoryParams } from '../../../constants/models/create-factory-params';
|
|
3
|
+
import { AbstractAdapterClient } from '../../common/client/abstract-adapter-client';
|
|
4
|
+
import { Abi, TransactionReceipt, WalletActions, WalletClient } from 'viem';
|
|
5
|
+
import { EvmSendTxParams, EvmTransactionOptions } from '../models/evm-send-tx-params';
|
|
6
|
+
import BigNumber from 'bignumber.js';
|
|
7
|
+
import { Web3Error } from '../utils/parse-evm-error';
|
|
8
|
+
import { EvmTransactionConfig } from 'packages/web3/src/lib/utils/models/evm-transaction-config';
|
|
9
|
+
import { EvmAdapter } from '../evm-adapter';
|
|
10
|
+
import { TxStatus } from '../../models/web3-public-models/tx-status';
|
|
11
|
+
import { ApproveAdapterClient } from '../../models/approve-adapter';
|
|
12
|
+
import { AllowanceInfo } from '../../models/common-types';
|
|
13
|
+
export declare class EvmAdapterClient extends AbstractAdapterClient<WalletClient & WalletActions, EvmSendTxParams, TransactionReceipt> implements ApproveAdapterClient<EvmTransactionConfig> {
|
|
14
|
+
private readonly evmAdapter;
|
|
15
|
+
constructor(evmAdapter: EvmAdapter, httpClient: HttpClient, logger?: ICustomLogger, rubicAppParams?: RubicAppAdaptersFactoryParams);
|
|
16
|
+
getBlockchainName(): Promise<BlockchainName | undefined>;
|
|
17
|
+
getAllowance(fromTokenAddress: string, walletAddress: string, spenderAddress: string): Promise<AllowanceInfo>;
|
|
18
|
+
needApprove(token: TokenAmount, contractAddress: string, walletAddress: string, amount: string): Promise<boolean>;
|
|
19
|
+
approve(fromAddress: string, tokenAddress: string, spenderAddress: string, amount?: string): Promise<string>;
|
|
20
|
+
/**
|
|
21
|
+
* Build encoded approve transaction config.
|
|
22
|
+
* @param tokenAddress Address of the smart-contract corresponding to the token.
|
|
23
|
+
* @param spenderAddress Wallet or contract address to approve.
|
|
24
|
+
* @param amount Amount of tokens in approval window in spending cap field
|
|
25
|
+
* @returns Encoded approve transaction config.
|
|
26
|
+
*/
|
|
27
|
+
encodeApprove(tokenAddress: string, spenderAddress: string, amount?: string): EvmTransactionConfig;
|
|
28
|
+
needPermit2Approve(token: TokenAmount, permit2Address: string, walletAddress: string, spenderAddress: string): Promise<boolean>;
|
|
29
|
+
/**
|
|
30
|
+
* @param tokenAddress Token address you want to approve for spending
|
|
31
|
+
* @param permit2Address Addres of permit2 contract
|
|
32
|
+
* @param spenderAddress Contract address spending your tokens
|
|
33
|
+
* @param amount Approved amount
|
|
34
|
+
* @param deadline Ms number added to current time (Date.now()) until approve expiration
|
|
35
|
+
*/
|
|
36
|
+
approveOnPermit2(tokenAddress: string, spenderAddress: string, amount?: BigNumber | 'infinity', options?: EvmTransactionOptions): Promise<TransactionReceipt>;
|
|
37
|
+
getTransactionStatus(hash: string): Promise<TxStatus>;
|
|
38
|
+
/**
|
|
39
|
+
* Gets mined transaction receipt.
|
|
40
|
+
* @param hash Transaction hash
|
|
41
|
+
*/
|
|
42
|
+
private getTransactionReceipt;
|
|
43
|
+
/**
|
|
44
|
+
* Sends Eth in transaction and resolve the promise when the transaction is included in the block.
|
|
45
|
+
* @param toAddress Eth receiver address.
|
|
46
|
+
* @param [options] Additional options.
|
|
47
|
+
* @returns Transaction receipt.
|
|
48
|
+
*/
|
|
49
|
+
sendTransaction(params: EvmSendTxParams): Promise<TransactionReceipt>;
|
|
50
|
+
/**
|
|
51
|
+
* Tries to send Eth in transaction and resolve the promise when the transaction is included in the block or rejects the error.
|
|
52
|
+
* @param toAddress Eth receiver address.
|
|
53
|
+
* @param [options] Additional options.
|
|
54
|
+
* @returns Transaction receipt.
|
|
55
|
+
*/
|
|
56
|
+
trySendTransaction(toAddress: string, options: EvmTransactionOptions): Promise<TransactionReceipt>;
|
|
57
|
+
/**
|
|
58
|
+
* Executes method of smart-contract and resolve the promise when the transaction is included in the block.
|
|
59
|
+
* @param contractAddress Address of smart-contract which method is to be executed.
|
|
60
|
+
* @param contractAbi Abi of smart-contract which method is to be executed.
|
|
61
|
+
* @param methodName Method name to execute.
|
|
62
|
+
* @param methodArguments Method arguments.
|
|
63
|
+
* @param [options] Additional options.
|
|
64
|
+
* @returns Smart-contract method returned value.
|
|
65
|
+
*/
|
|
66
|
+
executeContractMethod(contractAddress: string, contractAbi: Abi, methodName: string, methodArguments: unknown[], options?: EvmTransactionOptions): Promise<TransactionReceipt>;
|
|
67
|
+
/**
|
|
68
|
+
* Tries to execute method of smart-contract and resolve the promise when the transaction is included in the block or rejects the error.
|
|
69
|
+
* @param contractAddress Address of smart-contract which method is to be executed.
|
|
70
|
+
* @param contractAbi Abi of smart-contract which method is to be executed.
|
|
71
|
+
* @param methodName Method name to execute.
|
|
72
|
+
* @param methodArguments Method arguments.
|
|
73
|
+
* @param [options] Additional options.
|
|
74
|
+
* @param allowError Check error and decides to execute contact if error is allowed.
|
|
75
|
+
*/
|
|
76
|
+
tryExecuteContractMethod(contractAddress: string, contractAbi: Abi, methodName: string, methodArguments: unknown[], options?: EvmTransactionOptions, allowError?: (err: Web3Error) => boolean): Promise<TransactionReceipt>;
|
|
77
|
+
private shouldIgnoreError;
|
|
78
|
+
signMessage(message: string): Promise<string>;
|
|
79
|
+
private getChainAndAccount;
|
|
80
|
+
}
|