Skip to content

Commit e6c2b95

Browse files
committed
Add proper adapter scan cleaners
1 parent 5a6ac03 commit e6c2b95

File tree

1 file changed

+82
-13
lines changed

1 file changed

+82
-13
lines changed

src/ethereum/ethereumTypes.ts

Lines changed: 82 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)