@vechain/vebetterdao-contracts
Version:
Open-source repository that houses the smart contracts powering the decentralized VeBetterDAO on the VeChain Thor blockchain.
38 lines (37 loc) • 2.37 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.distributeEmissions = exports.toggleQuadraticRewarding = exports.startEmissions = exports.bootstrapEmissions = void 0;
const typechain_types_1 = require("../../typechain-types");
const sdk_core_1 = require("@vechain/sdk-core");
const utils_1 = require("@repo/utils");
const config_1 = require("@repo/config");
const sdk_network_1 = require("@vechain/sdk-network");
const thorClient = sdk_network_1.ThorClient.at((0, config_1.getConfig)().nodeUrl);
const bootstrapEmissions = async (contractAddress, admin) => {
console.log("Bootstrapping emissions...");
const clauses = [];
clauses.push(sdk_core_1.Clause.callFunction(sdk_core_1.Address.of(contractAddress), sdk_core_1.ABIContract.ofAbi(typechain_types_1.Emissions__factory.abi).getFunction("bootstrap"), []));
await utils_1.TransactionUtils.sendTx(thorClient, clauses, admin.pk);
};
exports.bootstrapEmissions = bootstrapEmissions;
const startEmissions = async (contractAddress, acct) => {
console.log("Starting emissions...");
const clauses = [];
clauses.push(sdk_core_1.Clause.callFunction(sdk_core_1.Address.of(contractAddress), sdk_core_1.ABIContract.ofAbi(typechain_types_1.Emissions__factory.abi).getFunction("start"), []));
await utils_1.TransactionUtils.sendTx(thorClient, clauses, acct.pk);
};
exports.startEmissions = startEmissions;
const toggleQuadraticRewarding = async (voterRewards, acct) => {
console.log("Toggling quadratic rewarding...");
const clauses = [];
clauses.push(sdk_core_1.Clause.callFunction(sdk_core_1.Address.of(await voterRewards.getAddress()), sdk_core_1.ABIContract.ofAbi(typechain_types_1.VoterRewards__factory.abi).getFunction("toggleQuadraticRewarding"), []));
await utils_1.TransactionUtils.sendTx(thorClient, clauses, acct.pk);
};
exports.toggleQuadraticRewarding = toggleQuadraticRewarding;
const distributeEmissions = async (contractAddress, acct) => {
console.log("Distributing emissions...");
const clauses = [];
clauses.push(sdk_core_1.Clause.callFunction(sdk_core_1.Address.of(contractAddress), sdk_core_1.ABIContract.ofAbi(typechain_types_1.Emissions__factory.abi).getFunction("distribute"), []));
await utils_1.TransactionUtils.sendTx(thorClient, clauses, acct.pk);
};
exports.distributeEmissions = distributeEmissions;