vega-frontend-monorepo/libs/smart-contracts/src/contracts/multisig-control.ts
2022-11-03 17:21:08 +00:00

56 lines
1.5 KiB
TypeScript

import { ethers } from 'ethers';
import abi from '../abis/multisig_abi.json';
export class MultisigControl {
public contract: ethers.Contract;
public address: string;
constructor(
address: string,
signerOrProvider: ethers.Signer | ethers.providers.Provider
) {
this.contract = new ethers.Contract(address, abi, signerOrProvider);
this.address = address;
}
add_signer(newSigner: string, nonce: string, signatures: string) {
return this.contract.add_signer(newSigner, nonce, signatures);
}
burn_nonce(nonce: string, signatures: string) {
return this.contract.burn_nonce(nonce, signatures);
}
get_current_threshold() {
return this.contract.get_current_threshold();
}
get_valid_signer_count() {
return this.contract.get_valid_signer_count();
}
is_nonce_used(nonce: string) {
return this.contract.is_nonce_used(nonce);
}
is_valid_signer(signerAddress: string) {
return this.contract.is_valid_signer(signerAddress);
}
remove_signer(oldSigner: string, nonce: string, signatures: string) {
return this.contract.remove_signer(oldSigner, nonce, signatures);
}
set_threshold(newThreshold: string, nonce: string, signatures: string) {
return this.contract.set_threshold(newThreshold, nonce, signatures);
}
signers(address: string) {
return this.contract.signers(address);
}
verify_signatures(nonce: string, message: string, signatures: string) {
return this.contract.verify_signatures(nonce, message, signatures);
}
}