@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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cryptorubic/web3",
3
- "version": "1.0.0-alpha.no-sdk.31",
3
+ "version": "1.0.0-alpha.no-sdk.32",
4
4
  "dependencies": {
5
5
  "@ethersproject/bignumber": "^5.8.0",
6
6
  "@mysten/sui": "^1.24.0",
@@ -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
- protected createPublicClient(rpcList: string[]): (PublicActions & PublicClient) | null;
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.
@@ -18,6 +18,9 @@ class AbstractAdapter {
18
18
  }
19
19
  return this._public;
20
20
  }
21
+ get connected() {
22
+ return !!this._public;
23
+ }
21
24
  constructor(blockchain, logger) {
22
25
  this._public = null;
23
26
  this.blockchain = 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
  }