UNPKG

@vechain/vebetterdao-contracts

Version:

Open-source repository that houses the smart contracts powering the decentralized VeBetterDAO on the VeChain Thor blockchain.

31 lines (30 loc) 1.77 kB
import { Emissions__factory, VoterRewards__factory } from "../../typechain-types"; import { Clause, Address, ABIContract } from "@vechain/sdk-core"; import { TransactionUtils } from "@repo/utils"; import { getConfig } from "@repo/config"; import { ThorClient } from "@vechain/sdk-network"; const thorClient = ThorClient.at(getConfig().nodeUrl); export const bootstrapEmissions = async (contractAddress, admin) => { console.log("Bootstrapping emissions..."); const clauses = []; clauses.push(Clause.callFunction(Address.of(contractAddress), ABIContract.ofAbi(Emissions__factory.abi).getFunction("bootstrap"), [])); await TransactionUtils.sendTx(thorClient, clauses, admin.pk); }; export const startEmissions = async (contractAddress, acct) => { console.log("Starting emissions..."); const clauses = []; clauses.push(Clause.callFunction(Address.of(contractAddress), ABIContract.ofAbi(Emissions__factory.abi).getFunction("start"), [])); await TransactionUtils.sendTx(thorClient, clauses, acct.pk); }; export const toggleQuadraticRewarding = async (voterRewards, acct) => { console.log("Toggling quadratic rewarding..."); const clauses = []; clauses.push(Clause.callFunction(Address.of(await voterRewards.getAddress()), ABIContract.ofAbi(VoterRewards__factory.abi).getFunction("toggleQuadraticRewarding"), [])); await TransactionUtils.sendTx(thorClient, clauses, acct.pk); }; export const distributeEmissions = async (contractAddress, acct) => { console.log("Distributing emissions..."); const clauses = []; clauses.push(Clause.callFunction(Address.of(contractAddress), ABIContract.ofAbi(Emissions__factory.abi).getFunction("distribute"), [])); await TransactionUtils.sendTx(thorClient, clauses, acct.pk); };