evm-blockchain-tools
Version:
This is a collection of resuseable tools to support development for EVM-powered blockchains
51 lines (41 loc) • 1.17 kB
text/typescript
import { Signer } from "ethers";
import erc20Abi from "../common/abis/erc20.json";
import { ERC20Service } from "../services";
import { ERC20ContractModel } from "../models";
import { IERC20Service, IERC20ServiceFactory } from "../common/interfaces";
export class ERC20ServiceFactory implements IERC20ServiceFactory {
public createERC20Service(
address: string,
signer: Signer,
abi = erc20Abi
): IERC20Service {
const model = new ERC20ContractModel(address, abi, signer);
return new ERC20Service(model);
}
public createTRC20Service(
address: string,
signer: Signer,
abi = erc20Abi
): IERC20Service {
const model = new ERC20ContractModel(address, abi, signer);
return new ERC20Service(model);
}
}
export class MockERC20ServiceFactory implements IERC20ServiceFactory {
public createERC20Service(
address: string,
signer: Signer,
abi = erc20Abi
): IERC20Service {
const mockService: any = {};
return mockService;
}
public createTRC20Service(
address: string,
signer: Signer,
abi = erc20Abi
): IERC20Service {
const mockService: any = {};
return mockService;
}
}