@@ -28,61 +28,63 @@ const logger = Logger.get(module.filename);
2828export class EthersEthereumService extends AbstractEthereumService {
2929 protected provider : ethers . providers . Provider ;
3030
31- constructor ( ) {
31+ constructor ( skip ?: boolean ) {
3232 super ( ) ;
33- if ( config . has ( 'GETH_NETWORK' ) ) {
34- const network = config . get ( 'GETH_NETWORK' ) ;
35- const applicableProviders : ethers . providers . BaseProvider [ ] = [ ] ;
33+ if ( ! skip ) {
34+ if ( config . has ( 'GETH_NETWORK' ) ) {
35+ const network = config . get ( 'GETH_NETWORK' ) ;
36+ const applicableProviders : ethers . providers . BaseProvider [ ] = [ ] ;
3637
37- logger . debug ( `Connecting Ethers.js to [${ network } ]` ) ;
38+ logger . debug ( `Connecting Ethers.js to [${ network } ]` ) ;
3839
39- // Add Infura provider if we have a projectId
40- if ( config . has ( 'INFURA_PROJECT_ID' ) ) {
41- const projectId = config . get ( 'INFURA_PROJECT_ID' ) ;
40+ // Add Infura provider if we have a projectId
41+ if ( config . has ( 'INFURA_PROJECT_ID' ) ) {
42+ const projectId = config . get ( 'INFURA_PROJECT_ID' ) ;
4243
43- logger . debug ( `Adding InfuraProvider [${ projectId } ]` ) ;
44- applicableProviders . push ( new ethers . providers . InfuraProvider ( network , projectId ) ) ;
45- }
44+ logger . debug ( `Adding InfuraProvider [${ projectId } ]` ) ;
45+ applicableProviders . push ( new ethers . providers . InfuraProvider ( network , projectId ) ) ;
46+ }
4647
47- // Add Etherscan provider if we have an apiKey
48- if ( config . has ( 'ETHERSCAN_API_KEY' ) ) {
49- const apiKey = config . get ( 'ETHERSCAN_API_KEY' ) ;
48+ // Add Etherscan provider if we have an apiKey
49+ if ( config . has ( 'ETHERSCAN_API_KEY' ) ) {
50+ const apiKey = config . get ( 'ETHERSCAN_API_KEY' ) ;
5051
51- logger . debug ( `Adding EtherscanProvider [${ apiKey } ]` ) ;
52- applicableProviders . push ( new ethers . providers . EtherscanProvider ( network , apiKey ) ) ;
53- }
52+ logger . debug ( `Adding EtherscanProvider [${ apiKey } ]` ) ;
53+ applicableProviders . push ( new ethers . providers . EtherscanProvider ( network , apiKey ) ) ;
54+ }
55+
56+ // Include the default providers from Ethers.js
57+ const defaultProvider = ethers . getDefaultProvider ( network ) ;
58+ if ( defaultProvider instanceof ethers . providers . FallbackProvider ) {
59+ logger . debug ( `Adding ${ defaultProvider . providers . length } FallbackProviders` ) ;
60+ applicableProviders . push ( ...defaultProvider . providers ) ;
61+ } else {
62+ logger . debug ( `Adding DefaultProvider` ) ;
63+ applicableProviders . push ( defaultProvider ) ;
64+ }
65+
66+ if ( applicableProviders . length === 0 ) {
67+ throw new Error ( `Unable to build list of Providers` ) ;
68+ }
5469
55- // Include the default providers from Ethers.js
56- const defaultProvider = ethers . getDefaultProvider ( network ) ;
57- if ( defaultProvider instanceof ethers . providers . FallbackProvider ) {
58- logger . debug ( `Adding ${ defaultProvider . providers . length } FallbackProviders` ) ;
59- applicableProviders . push ( ...defaultProvider . providers ) ;
70+ this . provider = new ethers . providers . FallbackProvider ( applicableProviders ) ;
6071 } else {
61- logger . debug ( `Adding DefaultProvider` ) ;
62- applicableProviders . push ( defaultProvider ) ;
63- }
72+ const GETH_NODE = config . get ( 'GETH_NODE' ) ;
6473
65- if ( applicableProviders . length === 0 ) {
66- throw new Error ( `Unable to build list of Providers` ) ;
67- }
74+ logger . debug ( `Connecting Ethers.js to [${ GETH_NODE } ]` ) ;
6875
69- this . provider = new ethers . providers . FallbackProvider ( applicableProviders ) ;
70- } else {
71- const GETH_NODE = config . get ( 'GETH_NODE' ) ;
76+ this . provider = new ethers . providers . JsonRpcProvider ( {
77+ url : GETH_NODE ,
78+ } ) ;
7279
73- logger . debug ( `Connecting Ethers.js to [${ GETH_NODE } ]` ) ;
80+ // Development Geth POA network does not continually create blocks
81+ this . transactionConfirmations = 1 ;
82+ }
7483
75- this . provider = new ethers . providers . JsonRpcProvider ( {
76- url : GETH_NODE ,
84+ this . provider . on ( 'error' , error => {
85+ logger . error ( `Ethers.js Provider Error: ${ error } ` ) ;
7786 } ) ;
78-
79- // Development Geth POA network does not continually create blocks
80- this . transactionConfirmations = 1 ;
8187 }
82-
83- this . provider . on ( 'error' , error => {
84- logger . error ( `Ethers.js Provider Error: ${ error } ` ) ;
85- } ) ;
8688 }
8789
8890 // Network/Node Methods
0 commit comments