@@ -117,23 +117,92 @@ export interface EthereumNetworkInfo {
117117 decoyAddressConfig ?: DecoyAddressConfig
118118}
119119
120- const asNetworkAdaptorConfigType = asValue (
121- 'amberdata-rpc' ,
122- 'blockbook' ,
123- 'blockbook-ws' ,
124- 'blockchair' ,
125- 'blockcypher' ,
126- 'evmscan' ,
127- 'filfox' ,
128- 'pulsechain-scan' ,
129- 'rpc'
130- )
131- const asNetworkAdaptorConfig = asObject ( {
132- type : asNetworkAdaptorConfigType ,
120+ const asAmberdataAdapterConfig : Cleaner <
121+ import ( './networkAdapters/AmberdataAdapter' ) . AmberdataAdapterConfig
122+ > = asObject ( {
123+ type : asValue ( 'amberdata-rpc' ) ,
124+ amberdataBlockchainId : asString ,
125+ servers : asArray ( asString )
126+ } )
127+
128+ const asBlockbookAdapterConfig : Cleaner <
129+ import ( './networkAdapters/BlockbookAdapter' ) . BlockbookAdapterConfig
130+ > = asObject ( {
131+ type : asValue ( 'blockbook' ) ,
132+ servers : asArray ( asString )
133+ } )
134+
135+ const asBlockbookWsAdapterConnection : Cleaner <
136+ import ( './networkAdapters/BlockbookWsAdapter' ) . BlockbookWsAdapterConnection
137+ > = asObject ( {
138+ url : asString ,
139+ keyType : asOptional ( asValue ( 'nowNodesApiKey' ) )
140+ } )
141+
142+ const asBlockbookWsAdapterConfig : Cleaner <
143+ import ( './networkAdapters/BlockbookWsAdapter' ) . BlockbookWsAdapterConfig
144+ > = asObject ( {
145+ type : asValue ( 'blockbook-ws' ) ,
146+ connections : asArray ( asBlockbookWsAdapterConnection )
147+ } )
148+
149+ const asBlockchairAdapterConfig : Cleaner <
150+ import ( './networkAdapters/BlockchairAdapter' ) . BlockchairAdapterConfig
151+ > = asObject ( {
152+ type : asValue ( 'blockchair' ) ,
153+ servers : asArray ( asString )
154+ } )
155+
156+ const asBlockcypherAdapterConfig : Cleaner <
157+ import ( './networkAdapters/BlockcypherAdapter' ) . BlockcypherAdapterConfig
158+ > = asObject ( {
159+ type : asValue ( 'blockcypher' ) ,
160+ servers : asArray ( asString )
161+ } )
162+
163+ const asEvmScanAdapterConfig : Cleaner <
164+ import ( './networkAdapters/EvmScanAdapter' ) . EvmScanAdapterConfig
165+ > = asObject ( {
166+ type : asValue ( 'evmscan' ) ,
167+ servers : asArray ( asString ) ,
168+ version : asValue ( 1 , 2 ) ,
169+ gastrackerSupport : asOptional ( asBoolean )
170+ } )
171+
172+ const asFilfoxAdapterConfig : Cleaner <
173+ import ( './networkAdapters/FilfoxAdapter' ) . FilfoxAdapterConfig
174+ > = asObject ( {
175+ type : asValue ( 'filfox' ) ,
176+ servers : asArray ( asString )
177+ } )
178+
179+ const asPulsechainScanAdapterConfig : Cleaner <
180+ import ( './networkAdapters/PulsechainScanAdapter' ) . PulsechainScanAdapterConfig
181+ > = asObject ( {
182+ type : asValue ( 'pulsechain-scan' ) ,
183+ servers : asArray ( asString )
184+ } )
185+
186+ const asRpcAdapterConfig : Cleaner <
187+ import ( './networkAdapters/RpcAdapter' ) . RpcAdapterConfig
188+ > = asObject ( {
189+ type : asValue ( 'rpc' ) ,
133190 servers : asArray ( asString ) ,
134191 ethBalCheckerContract : asOptional ( asString )
135192} )
136193
194+ const asNetworkAdaptorConfig : Cleaner < NetworkAdapterConfig > = asEither (
195+ asAmberdataAdapterConfig ,
196+ asBlockbookAdapterConfig ,
197+ asBlockbookWsAdapterConfig ,
198+ asBlockchairAdapterConfig ,
199+ asBlockcypherAdapterConfig ,
200+ asEvmScanAdapterConfig ,
201+ asFilfoxAdapterConfig ,
202+ asPulsechainScanAdapterConfig ,
203+ asRpcAdapterConfig
204+ )
205+
137206/**
138207 * Other Methods from EthereumTools
139208 */
0 commit comments