import { Contract , Signer } from "ethers" ; import { Provider } from "@ethersproject/providers" ; import type { MerkleDistributor } from "./MerkleDistributor" ; export class MerkleDistributorFactory { static connect ( address , signerOrProvider ) { return new Contract ( address , _abi , signerOrProvider ) as MerkleDistributor ; } } const _abi = [ { inputs : [ { internalType : "address" , name : "_owner" , type : "address" , } , { internalType : "address" , name : "_token" , type : "address" , } , { internalType : "bytes32" , name : "_merkleRoot" , type : "bytes32" , } , { internalType : "uint256" , name : "_daysUntilUnlock" , type : "uint256" , } , ] , stateMutability : "nonpayable" , type : "constructor" , } , { anonymous : false , inputs : [ { indexed : false , internalType : "uint256" , name : "index" , type : "uint256" , } , { indexed : false , internalType : "address" , name : "account" , type : "address" , } , { indexed : false , internalType : "uint256" , name : "amount" , type : "uint256" , } , ] , name : "Claimed" , type : "event" , } , { anonymous : false , inputs : [ { indexed : false , internalType : "address" , name : "oldOwner" , type : "address" , } , { indexed : false , internalType : "address" , name : "newOwner" , type : "address" , } , ] , name : "OwnerChanged" , type : "event" , } , { anonymous : false , inputs : [ { indexed : false , internalType : "address" , name : "newOwner" , type : "address" , } , ] , name : "OwnerNominated" , type : "event" , } , { anonymous : false , inputs : [ { indexed : false , internalType : "address" , name : "token" , type : "address" , } , { indexed : false , internalType : "uint256" , name : "amount" , type : "uint256" , } , ] , name : "Recovered" , type : "event" , } , { inputs : [ ] , name : "acceptOwnership" , outputs : [ ] , stateMutability : "nonpayable" , type : "function" , } , { inputs : [ { internalType : "uint256" , name : "index" , type : "uint256" , } , { internalType : "address" , name : "account" , type : "address" , } , { internalType : "uint256" , name : "amount" , type : "uint256" , } , { internalType : "bytes32[]" , name : "merkleProof" , type : "bytes32[]" , } , ] , name : "claim" , outputs : [ ] , stateMutability : "nonpayable" , type : "function" , } , { inputs : [ { internalType : "uint256" , name : "index" , type : "uint256" , } , ] , name : "isClaimed" , outputs : [ { internalType : "bool" , name : "" , type : "bool" , } , ] , stateMutability : "view" , type : "function" , } , { inputs : [ ] , name : "merkleRoot" , outputs : [ { internalType : "bytes32" , name : "" , type : "bytes32" , } , ] , stateMutability : "view" , type : "function" , } , { inputs : [ { internalType : "address" , name : "_owner" , type : "address" , } , ] , name : "nominateNewOwner" , outputs : [ ] , stateMutability : "nonpayable" , type : "function" , } , { inputs : [ ] , name : "nominatedOwner" , outputs : [ { internalType : "address" , name : "" , type : "address" , } , ] , stateMutability : "view" , type : "function" , } , { inputs : [ ] , name : "owner" , outputs : [ { internalType : "address" , name : "" , type : "address" , } , ] , stateMutability : "view" , type : "function" , } , { inputs : [ ] , name : "ownerUnlockTime" , outputs : [ { internalType : "uint256" , name : "" , type : "uint256" , } , ] , stateMutability : "view" , type : "function" , } , { inputs : [ { internalType : "address" , name : "tokenAddress" , type : "address" , } , { internalType : "uint256" , name : "tokenAmount" , type : "uint256" , } , ] , name : "recoverERC20" , outputs : [ ] , stateMutability : "nonpayable" , type : "function" , } , { inputs : [ ] , name : "token" , outputs : [ { internalType : "address" , name : "" , type : "address" , } , ] , stateMutability : "view" , type : "function" , } , ] ;