tokamak-staking-lib
Version:
tokamak staking library
60 lines (59 loc) • 2.13 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const { toBN } = require("web3-utils");
const web3_connector_1 = __importDefault(require("../common/web3-connector"));
const SeigManagerABI = require("./abi/SeigManager.json");
class SeigManager {
constructor() {
const web3 = web3_connector_1.default.instance().web3;
this._contract = new web3.eth.Contract(SeigManagerABI, SeigManager._address);
}
static instance() {
if (!SeigManager._instance) {
SeigManager._instance = new SeigManager();
}
return SeigManager._instance;
}
static setNetwork(net) {
switch (net) {
case "mainnet":
SeigManager._address = "0x710936500aC59e8551331871Cbad3D33d5e0D909";
break;
case "rinkeby":
SeigManager._address = "0xdb6046F3b59395A126a324E63aC93f4c38119055";
break;
}
}
static get address() {
return SeigManager._address;
}
async stakeOf(layer2, account, blockNumber) {
return toBN(await this._contract.methods.stakeOf(layer2, account).call(null, blockNumber == null ? "latest" : blockNumber));
}
async totAddress() {
if (!this._totAddress) {
this._totAddress = await this._contract.methods.tot().call();
}
return this._totAddress;
}
async seigPerBlock() {
return await this._contract.methods.seigPerBlock().call();
}
async paused() {
return await this._contract.methods.paused().call();
}
async lastSeigBlock() {
return await this._contract.methods.lastSeigBlock().call();
}
async pausedBlock() {
return await this._contract.methods.unpausedBlock().call();
}
async unpausedBlock() {
return await this._contract.methods.unpausedBlock().call();
}
}
exports.default = SeigManager;
SeigManager._address = "0x710936500aC59e8551331871Cbad3D33d5e0D909";