@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.
35 lines (29 loc) • 1.27 kB
text/typescript
import { ethers } from "ethers";
import foundryABI from "../assets/contracts/foundry/abi.json";
export const purchase = async (issuanceId: string, label: string, credentials: string, isNative: boolean, signer: ethers.Signer) => {
const contractAddress = "0x057a0659358FE72F5e1A819EB3bd8bd1139D0e38";
const contract = new ethers.Contract(contractAddress, foundryABI, signer);
const to = await signer.getAddress();
try {
let tx = null;
if(isNative){
const price = await contract.appraise(issuanceId, label);
tx = await contract.register(to, issuanceId, label, credentials, {value: price[0].toString()});
return tx.toString();
}else{
tx = await contract.register(to, issuanceId, label, credentials);
return tx;
}
} catch (error) {
return error.reason;
}
}
export const callFoundry = async (args: Array<String>, contractAddress: string, functionName: string, provider: ethers.Provider | ethers.Signer) => {
const contract = new ethers.Contract(contractAddress, foundryABI, provider);
try {
const result = await contract[functionName](...args);
return result;
} catch (error) {
return error.reason;
}
}