ssv-scanner
Version:
Tool for retrieving events data (cluster snapshots and owner nonce) from the SSV network contract.
37 lines (33 loc) • 1.02 kB
text/typescript
import { ethers } from 'ethers';
export interface SSVScannerParams {
network: string,
nodeUrl: string,
ownerAddress: string,
}
export abstract class BaseScanner {
protected DAY = 5400;
protected WEEK = this.DAY * 7;
protected MONTH = this.DAY * 30;
protected progressBar: any;
protected params: SSVScannerParams;
constructor(scannerParams: SSVScannerParams) {
if (!scannerParams.nodeUrl) {
throw Error('ETH1 node is required');
}
if (!scannerParams.network) {
throw Error('Network is required');
}
if (!scannerParams.ownerAddress) {
throw Error('Cluster owner address is required');
}
if (scannerParams.ownerAddress.length !== 42) {
throw Error('Invalid owner address length.');
}
if (!scannerParams.ownerAddress.startsWith('0x')) {
throw Error('Invalid owner address.');
}
this.params = scannerParams;
// convert to checksum addresses
this.params.ownerAddress = ethers.getAddress(this.params.ownerAddress);
}
}