0xweb
Version:
Contract package manager and other web3 tools
41 lines (35 loc) • 1.32 kB
text/typescript
import di from 'a-di';
import { $config } from '@dequanto/utils/$config';
import { EthWeb3Client } from '@dequanto/clients/EthWeb3Client';
import { TPlatform } from '@dequanto/models/TPlatform';
import { BlockchainExplorer } from './BlockchainExplorer';
const contracts = $config.get('contracts.eth', [])
export class Etherscan extends BlockchainExplorer {
constructor () {
super({
platform: 'eth',
ABI_CACHE: `./cache/eth/abis.json`,
CONTRACTS: contracts,
getWeb3 () {
return di.resolve(EthWeb3Client)
},
getConfig (platform: TPlatform) {
platform ??= 'eth';
let config = $config.get(`blockchainExplorer.${platform}`);
let mainnet = /(?<mainnet>\w+):/.exec(platform)?.groups?.mainnet;
if (mainnet != null) {
let mainnetConfig = $config.get(`blockchainExplorer.${mainnet}`);
config = {
...(mainnetConfig ?? {}),
...(config ?? {})
};
}
return {
key: config?.key,
host: config?.host,
www: config?.www,
};
}
})
}
}