@decent-bet/solido
Version:
Code first contract entity mapper for Solidity based blockchains like Ethereum, Vechain, Tron
41 lines (40 loc) • 1.36 kB
TypeScript
import { ContractImport } from '../types';
import { SolidoContract } from './SolidoContract';
import { SolidoProvider } from '..';
export interface ProviderInstance {
provider: any;
options: any;
}
export interface ProviderInstances {
[key: string]: ProviderInstance;
}
export interface ContractProviderMapping {
name: string;
import: ContractImport;
entity?: any;
provider?: any;
enableDynamicStubs?: boolean;
}
export interface BindModuleContracts {
[key: string]: SolidoContract & SolidoProvider;
}
export interface ConnectedContracts {
[key: string]: (SolidoContract & SolidoProvider);
}
export declare class ContractCollection {
private coll;
add(key: string, c: SolidoContract & SolidoProvider): void;
getContract<T>(key: string): T & SolidoContract & SolidoProvider;
getDynamicContract(key: string): SolidoContract & SolidoProvider;
connect(): ConnectedContracts;
}
export declare class SolidoModule {
private contractMappings;
providers: SolidoProvider[];
bindSetupOptions: ProviderInstances;
constructor(contractMappings: ContractProviderMapping[], ...providers: any[]);
addContractMapping(contractProviderMapping: ContractProviderMapping): void;
rebind(): void;
bindContracts(setupOptions?: ProviderInstances): ContractCollection;
private bindContract;
}