@crtxio/bproto-contract-call
Version:
@crtxio/bproto-contract-call is a Nuxt3 layer which provides a Nuxt 3 component to purchase and register BProto domains and Nuxt 3 composables to call BProto standard and bridged zone contracts.
29 lines (23 loc) • 1 kB
text/typescript
import { ethers } from "ethers";
import standardZoneABI from "../assets/contracts/zones/standard/abi.json"
export const register = async (contractAddress: string, parent: string, label: string, signer: ethers.Signer) => {
const parentHash = ethers.namehash(parent);
const contract = new ethers.Contract(contractAddress, standardZoneABI, signer)
const account = await signer.getAddress()
try {
const tx = await contract.register(account, parentHash, label)
return tx;
} catch (error) {
return error.message;
}
}
export const callStandardZone = async (args: Array<String>, contractAddress: string, functionName: string, provider: ethers.Provider | ethers.Signer) => {
const contract = new ethers.Contract(contractAddress, standardZoneABI, provider);
try {
const result = await contract[functionName](...args);
return result;
} catch (error) {
console.error(error);
return error.reason;
}
}