import { providers } from 'ethers'; import BaseService from '../commons/BaseService'; import { WPunk } from './typechain/WPunk'; import { WPunk__factory } from './typechain/WPunk__factory'; export type GetNonceType = { token: string; owner: string }; export type GetVersionType = { token: string }; export interface WPunkInterface { punkContract: () => Promise; } export class WPunkService extends BaseService implements WPunkInterface { private wpunkContract: string; constructor(provider: providers.Provider, wpunkContract?: string) { super(provider, WPunk__factory); this.wpunkContract = wpunkContract ?? ''; this.punkContract = this.punkContract.bind(this); } public async connect(wpunkContract: string) { this.wpunkContract = wpunkContract; } public async punkContract(): Promise { return this.wpunkContract ? this.getContractInstance(this.wpunkContract).punkContract() : ''; } }