UNPKG

evm-blockchain-tools

Version:

This is a collection of resuseable tools to support development for EVM-powered blockchains

74 lines (64 loc) 1.56 kB
import { ALCHEMY_NETWORK, APP_NETWORK } from "../common/constants"; import { IWeb3Gateway, IWeb3GatewayFactory } from "../common/interfaces"; import { AlchemyGateway, BscGateway, TronGateway } from "../gateways"; export class Web3GatewayFactory implements IWeb3GatewayFactory { public createAlchemyProvider( apiKey: string, privateKey: string, network?: ALCHEMY_NETWORK ): IWeb3Gateway { return new AlchemyGateway({ apiKey, privateKey, network, }); } public createQuicknodeProvider( quickNodeHttpsURL: string, privateKey: string, network?: APP_NETWORK ): IWeb3Gateway { return new BscGateway({ httpsUrl: quickNodeHttpsURL, privateKey, network, }); } public createTronProvider( fullHostURL: string, apiKey: string, privateKey: string ): IWeb3Gateway { return new TronGateway({ fullHostUrl: fullHostURL, apiKey, privateKey, }); } } export class MockWeb3GatewayFactory implements IWeb3GatewayFactory { public createAlchemyProvider( apiKey: string, privateKey: string, network?: ALCHEMY_NETWORK ): IWeb3Gateway { const mock: any = {}; return mock; } public createQuicknodeProvider( quickNodeHttpsURL: string, privateKey: string, network?: APP_NETWORK ): IWeb3Gateway { const mock: any = {}; return mock; } public createTronProvider( fullHostURL: string, apiKey: string, privateKey: string ): IWeb3Gateway { const mock: any = {}; return mock; } }