UNPKG

tokamak-staking-lib

Version:
83 lines (82 loc) 4.03 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.getTotalSupplyOfWTON = exports.getTotalSupplyOfTONWithSeig = exports.getTotalSupplyOfTON = exports.getTotalStakedAmountDiff = exports.getTotalStakedAmount = exports.getStakedAmountDiff = exports.getStakedAmount = exports.isSubmitter = exports.getOperator = exports.isLayer2 = exports.getLayer2ByIndex = exports.getNumLayer2 = exports.setNetwork = void 0; const bn_js_1 = __importDefault(require("bn.js")); const PrivatekeyProvider = require("truffle-privatekey-provider"); const web3_connector_1 = __importDefault(require("./common/web3-connector")); const layer2_registry_1 = __importDefault(require("./contracts/layer2-registry")); const seig_manager_1 = __importDefault(require("./contracts/seig-manager")); const deposit_manager_1 = __importDefault(require("./contracts/deposit-manager")); const layer2s_1 = __importDefault(require("./contracts/layer2s")); const ton_1 = __importDefault(require("./contracts/ton")); const wton_1 = __importDefault(require("./contracts/wton")); const tot_1 = __importDefault(require("./contracts/tot")); const util_1 = require("./common/util"); exports.setNetwork = (provider, net = "mainnet") => { web3_connector_1.default.setNetwork(provider); layer2_registry_1.default.setNetwork(net); seig_manager_1.default.setNetwork(net); deposit_manager_1.default.setNetwork(net); ton_1.default.setNetwork(net); wton_1.default.setNetwork(net); }; exports.getNumLayer2 = () => { return layer2_registry_1.default.instance().numLayer2s(); }; exports.getLayer2ByIndex = (index) => { return layer2_registry_1.default.instance().layer2ByIndex(index); }; exports.isLayer2 = (layer2) => { return layer2_registry_1.default.instance().layer2s(layer2); }; exports.getOperator = (layer2) => { return layer2s_1.default.get(layer2).operator(); }; exports.isSubmitter = (layer2, account) => { return layer2s_1.default.get(layer2).isSubmitter(account); }; exports.getStakedAmount = async (layer2, account, blockNumber) => { return seig_manager_1.default.instance().stakeOf(layer2, account, blockNumber); }; exports.getStakedAmountDiff = async (layer2, account, fromBlockNumber, toBlockNumber) => { const fromAmount = await seig_manager_1.default.instance().stakeOf(layer2, account, fromBlockNumber); const toAmount = await seig_manager_1.default.instance().stakeOf(layer2, account, toBlockNumber); return toAmount.sub(fromAmount); }; exports.getTotalStakedAmount = async (account, blockNumber) => { let total = new bn_js_1.default("0"); const num = await exports.getNumLayer2(); for (let i = 0; i < num; ++i) { const layer2 = await exports.getLayer2ByIndex(i); const amount = await exports.getStakedAmount(layer2, account, blockNumber); total = total.add(amount); } return total; }; exports.getTotalStakedAmountDiff = async (account, fromBlockNumber, toBlockNumber) => { let total = new bn_js_1.default("0"); const num = await exports.getNumLayer2(); for (let i = 0; i < num; ++i) { const layer2 = await exports.getLayer2ByIndex(i); const diff = await exports.getStakedAmountDiff(layer2, account, fromBlockNumber, toBlockNumber); total = total.add(diff); } return total; }; exports.getTotalSupplyOfTON = () => { return ton_1.default.instance().totalSupply(); }; exports.getTotalSupplyOfTONWithSeig = async () => { const ton = ton_1.default.instance(); const tot = await tot_1.default.instance(); const totalTON = await ton.totalSupply(); const stakedTONWithSeig = util_1.toWAD(await tot.totalSupply()); const stakedTON = await ton.balanceOf(wton_1.default.address); return totalTON.add(stakedTONWithSeig).sub(stakedTON); }; exports.getTotalSupplyOfWTON = () => { return wton_1.default.instance().totalSupply(); };