@cryptorubic/web3 1.0.0-alpha.no-sdk.31 → 1.0.0-alpha.no-sdk.32
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 -1
- package/src/lib/adapter/adapters/adapter-evm/evm-adapter.d.ts +3 -2
- package/src/lib/adapter/adapters/adapter-evm/evm-adapter.js +2 -1
- package/src/lib/adapter/adapters/common/abstract-adapter.d.ts +1 -0
- package/src/lib/adapter/adapters/common/abstract-adapter.js +3 -0
- package/src/lib/adapter/blockchain-adapter-factory.service.js +2 -0
- package/src/lib/adapter/models/create-factory-params.d.ts +2 -0
package/package.json
CHANGED
|
@@ -16,10 +16,11 @@ import { AllowanceInfo } from '../models/common-types';
|
|
|
16
16
|
import { TxStatus } from '../models/web3-public-models/tx-status';
|
|
17
17
|
export declare class EvmAdapter extends AbstractAdapter<PublicActions & PublicClient, WalletClient & WalletActions, EvmBlockchainName> implements ApprovableAdapter<EvmTransactionConfig> {
|
|
18
18
|
private readonly adapterOptions;
|
|
19
|
+
private readonly clientParams?;
|
|
19
20
|
readonly signer: EvmAdapterSigner;
|
|
20
21
|
needPreswapAction(token: TokenAmount, contractAddress: string, walletAddress: string, amount: string): Promise<boolean>;
|
|
21
22
|
handlePreswap(contractAddress: string, walletAddress: string, tokenAmount: TokenAmount): Promise<void>;
|
|
22
|
-
constructor(httpClient: HttpClient, adapterOptions: EvmAdapterOptions, logger?: ICustomLogger, clientParams?: ClientAdaptersFactoryParams);
|
|
23
|
+
constructor(httpClient: HttpClient, adapterOptions: EvmAdapterOptions, logger?: ICustomLogger, clientParams?: ClientAdaptersFactoryParams | undefined);
|
|
23
24
|
initWeb3Client(): void;
|
|
24
25
|
callContractMethod<T extends Web3PrimitiveType = string>(contractAddress: string, contractAbi: Abi, methodName: string, methodArguments?: unknown[], options?: {
|
|
25
26
|
from?: string;
|
|
@@ -42,7 +43,7 @@ export declare class EvmAdapter extends AbstractAdapter<PublicActions & PublicCl
|
|
|
42
43
|
blockNumber: number;
|
|
43
44
|
workchain: number;
|
|
44
45
|
}>;
|
|
45
|
-
|
|
46
|
+
private createPublicClient;
|
|
46
47
|
multicallByContract<T>(contracts: MulticallParameters, allowErrors?: boolean): Promise<MulticallResponse<T>[]>;
|
|
47
48
|
multicallByAddress<T>(address: string, abi: Abi, method: string, methodArgs?: unknown[][], allowErrors?: boolean): Promise<MulticallResponse<T>[]>;
|
|
48
49
|
static encodeMethodCall(contractAddress: string, contractAbi: Abi, method: string, parameters?: unknown[], value?: string): EvmTransactionConfig;
|
|
@@ -32,6 +32,7 @@ class EvmAdapter extends abstract_adapter_1.AbstractAdapter {
|
|
|
32
32
|
constructor(httpClient, adapterOptions, logger, clientParams) {
|
|
33
33
|
super(adapterOptions.blockchain, logger);
|
|
34
34
|
this.adapterOptions = adapterOptions;
|
|
35
|
+
this.clientParams = clientParams;
|
|
35
36
|
this.signer = new evm_adapter_signer_1.EvmAdapterSigner(this.public, httpClient, logger, clientParams);
|
|
36
37
|
}
|
|
37
38
|
initWeb3Client() {
|
|
@@ -137,7 +138,7 @@ class EvmAdapter extends abstract_adapter_1.AbstractAdapter {
|
|
|
137
138
|
retryDelay: 100,
|
|
138
139
|
timeout: 5000
|
|
139
140
|
}));
|
|
140
|
-
const chain = viem_blockchain_mapping_1.viemBlockchainMapping[this.blockchain];
|
|
141
|
+
const chain = this.clientParams?.viemConfig?.[this.blockchain] || viem_blockchain_mapping_1.viemBlockchainMapping[this.blockchain];
|
|
141
142
|
return (0, viem_1.createPublicClient)({
|
|
142
143
|
// @ts-ignore
|
|
143
144
|
chain,
|
|
@@ -13,6 +13,7 @@ export declare abstract class AbstractAdapter<P, W, B extends BlockchainName, Se
|
|
|
13
13
|
private _public;
|
|
14
14
|
protected set public(value: P | null);
|
|
15
15
|
get public(): P;
|
|
16
|
+
get connected(): boolean;
|
|
16
17
|
protected constructor(blockchain: B, logger?: ICustomLogger);
|
|
17
18
|
/**
|
|
18
19
|
* Used to set this.public property, if it's not set - you can't send rpc requests to blockchain.
|
|
@@ -93,6 +93,8 @@ class BlockchainAdapterFactoryService {
|
|
|
93
93
|
const adapter = this.adapterStore[blockchain];
|
|
94
94
|
adapter.signer.setWalletAddress(wallet.address);
|
|
95
95
|
adapter.signer.setWallet(wallet.core);
|
|
96
|
+
if (!adapter.connected)
|
|
97
|
+
adapter.initWeb3Client();
|
|
96
98
|
}
|
|
97
99
|
}
|
|
98
100
|
exports.BlockchainAdapterFactoryService = BlockchainAdapterFactoryService;
|
|
@@ -2,6 +2,7 @@ import { EvmBlockchainName, HttpClient, ICustomLogger, SolanaBlockchainName, Sui
|
|
|
2
2
|
import { EnvType } from '../constants/models/env-type';
|
|
3
3
|
import { TronWebProvider } from '../adapters/adapter-tron/models/tron-web-provider';
|
|
4
4
|
import { TonAdapterConfig } from '../adapters/models/ton-adapter-config';
|
|
5
|
+
import { ViemChain } from '../constants/models/viem-chain-type';
|
|
5
6
|
export type RpcListType = Record<EvmBlockchainName, string[]> & Record<TronBlockchainName, TronWebProvider[]> & Record<SolanaBlockchainName, string[]> & Record<SuiBlockchainName, string[]>;
|
|
6
7
|
export interface AdapterFactoryParams {
|
|
7
8
|
rpcList: RpcListType;
|
|
@@ -12,5 +13,6 @@ export interface AdapterFactoryParams {
|
|
|
12
13
|
}
|
|
13
14
|
export interface ClientAdaptersFactoryParams {
|
|
14
15
|
envType: EnvType;
|
|
16
|
+
viemConfig?: Partial<Record<EvmBlockchainName, ViemChain>>;
|
|
15
17
|
lazyLoadWeb3?: boolean;
|
|
16
18
|
}
|