UNPKG

@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
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; } }