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