tokamak-staking-lib
Version:
tokamak staking library
47 lines (46 loc) • 2.1 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getPendingRequest = exports.getDeposit = void 0;
const bn_js_1 = __importDefault(require("bn.js"));
const lodash_1 = require("lodash");
const deposit_manager_1 = __importDefault(require("./contracts/deposit-manager"));
const { toBN } = require("web3-utils");
const RAY = toBN("1000000000000000000000000000");
const SEIG_PER_BLOCK = toBN("3920000000000000000000000000");
const DEFAULT_PSEIG_RATE = toBN("400000000000000000000000000");
const DEFAULT_TOTALSUPPLY_OF_TON = toBN("50000000000000000000000000000000000");
exports.getDeposit = async (layer2, account) => {
let accStaked;
let accUnstaked;
if (typeof account === 'undefined') {
accStaked = await deposit_manager_1.default.instance().accStakedLayer2(layer2);
accUnstaked = await deposit_manager_1.default.instance().accUnstakedLayer2(layer2);
}
else {
accStaked = await deposit_manager_1.default.instance().accStaked(layer2, account);
accUnstaked = await deposit_manager_1.default.instance().accUnstaked(layer2, account);
}
const deposit = new bn_js_1.default(accStaked).sub(new bn_js_1.default(accUnstaked));
if (deposit.cmp(new bn_js_1.default('0')) === -1) {
return '0';
}
else {
return deposit.toString();
}
};
exports.getPendingRequest = async (layer2, user) => {
const numPendingRequests = await deposit_manager_1.default.instance().numPendingRequests(layer2, user);
if (numPendingRequests === 0) {
return [];
}
let requestIndex = await deposit_manager_1.default.instance().withdrawalRequestIndex(layer2, user);
const pendingRequests = [];
for (const _ of lodash_1.range(numPendingRequests)) {
pendingRequests.push(await deposit_manager_1.default.instance().withdrawalRequest(layer2, user, requestIndex));
requestIndex++;
}
return Promise.all(pendingRequests);
};