tokamak-staking-lib
Version:
tokamak staking library
57 lines (56 loc) • 2.31 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 DepositManagerABI = require("./abi/DepositManager.json");
class DepositManager {
constructor() {
const web3 = web3_connector_1.default.instance().web3;
this._contract = new web3.eth.Contract(DepositManagerABI, DepositManager._address);
}
static instance() {
if (!DepositManager._instance) {
DepositManager._instance = new DepositManager();
}
return DepositManager._instance;
}
static setNetwork(net) {
switch (net) {
case "mainnet":
DepositManager._address = "0x56E465f654393fa48f007Ed7346105c7195CEe43";
break;
case "rinkeby":
DepositManager._address = "0x43dC0927Ca673Dd010393f01ad3EA9c5E45e2896";
break;
}
}
static get address() {
return DepositManager._address;
}
async accStaked(layer2, account, blockNumber) {
return await this._contract.methods.accStaked(layer2, account).call(null, blockNumber);
}
async accUnstaked(layer2, account, blockNumber) {
return await this._contract.methods.accUnstaked(layer2, account).call(null, blockNumber);
}
async accStakedLayer2(layer2) {
return await this._contract.methods.accStakedLayer2(layer2).call();
}
async accUnstakedLayer2(layer2) {
return await this._contract.methods.accUnstakedLayer2(layer2).call();
}
async numPendingRequests(layer2, user) {
return await this._contract.methods.numPendingRequests(layer2, user).call();
}
async withdrawalRequestIndex(layer2, user) {
return await this._contract.methods.withdrawalRequestIndex(layer2, user).call();
}
async withdrawalRequest(layer2, user, requestIndex) {
return await this._contract.methods.withdrawalRequest(layer2, user, requestIndex).call();
}
}
exports.default = DepositManager;
DepositManager._address = "0x56E465f654393fa48f007Ed7346105c7195CEe43";