@consensys-software/permissioning-smart-contracts
Version:
Smart contracts and dapp implementing EEA spec onchain permissioning
17 lines (12 loc) • 673 B
text/typescript
import { Contract } from 'ethers';
import AccountRulesAbi from '../abis/AccountRules.json';
import { AccountIngress } from '../@types/AccountIngress';
import { AccountRules } from '../@types/AccountRules';
let instance: AccountRules | null = null;
export const accountRulesFactory = async (ingressInstance: AccountIngress) => {
if (instance) return instance;
const ruleContractName = await ingressInstance.functions.RULES_CONTRACT();
const accountRulesAddress = await ingressInstance.functions.getContractAddress(ruleContractName);
instance = new Contract(accountRulesAddress, AccountRulesAbi.abi, ingressInstance.signer) as AccountRules;
return instance;
};