@@ -6,29 +6,28 @@ import { ethBlockToMaticBlock, ethReceiptToMaticReceipt, ethTxToMaticTx } from "
6
6
7
7
type ETHER_PROVIDER = providers . JsonRpcProvider ;
8
8
type ETHER_SIGNER = providers . JsonRpcSigner ;
9
+ type WEB3_PROVIDER = providers . Web3Provider ;
9
10
10
11
export class EtherWeb3Client extends BaseWeb3Client {
11
12
name = 'ETHER' ;
12
13
provider : ETHER_PROVIDER ;
13
14
signer : ETHER_SIGNER ;
14
15
15
- constructor ( provider : ETHER_PROVIDER | Wallet , logger ) {
16
+ constructor ( provider : ETHER_PROVIDER | Wallet | WEB3_PROVIDER , logger ) {
16
17
super ( logger ) ;
17
- if ( ( provider as ETHER_PROVIDER ) . _isProvider ) {
18
- this . provider = provider as ETHER_PROVIDER ;
19
- this . signer = this . provider . getSigner ( ) ;
20
- if ( ! this . signer || ! this . signer . _address ) {
21
- this . signer = ( provider as any ) ;
22
- }
23
- }
24
- else {
25
- this . signer = ( provider as any ) ;
26
- this . provider = ( ( provider as Wallet ) . provider ) as any ;
18
+
19
+ if ( provider instanceof ethers . providers . Web3Provider ) {
20
+ this . provider = provider ;
21
+ this . signer = provider . getSigner ( ) ;
22
+ } else if ( provider instanceof ethers . providers . JsonRpcProvider ) {
23
+ this . provider = provider ;
24
+ this . signer = provider as any ;
25
+ } else {
26
+ this . signer = provider as any ;
27
+ this . provider = provider . provider || provider as any ;
27
28
}
28
29
}
29
30
30
-
31
-
32
31
getBlock ( blockHashOrBlockNumber ) {
33
32
return this . provider . getBlock ( blockHashOrBlockNumber ) . then ( block => {
34
33
return block as any ;
@@ -57,7 +56,9 @@ export class EtherWeb3Client extends BaseWeb3Client {
57
56
58
57
59
58
getChainId ( ) {
60
- return this . signer . getChainId ( ) ;
59
+ return this . provider . getNetwork ( ) . then ( function ( res ) {
60
+ return res . chainId ;
61
+ } ) ;
61
62
}
62
63
63
64
getBalance ( address ) {
0 commit comments