UNPKG

@danielyandev/qr-account

Version:
48 lines 1.48 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const qr_logger_1 = __importDefault(require("@danielyandev/qr-logger")); class Stake { constructor(initialAddress) { this.addresses = [initialAddress]; this.balance = { [initialAddress]: 0, }; } initialize(address) { if (this.balance[address] === undefined) { this.balance[address] = 0; this.addresses.push(address); } } addStake(from, amount) { this.initialize(from); this.balance[from] += amount; } getBalance(address) { this.initialize(address); return this.balance[address]; } getLeader(addresses) { let balance = -1; let leader = null; addresses.forEach((address) => { const addressBalance = this.getBalance(address); if (addressBalance > balance) { leader = address; balance = addressBalance; } }); return leader; } update(transaction) { const amount = transaction.output.amount; const from = transaction.input.sender; qr_logger_1.default.log('New amount staked ' + amount); this.addStake(from, amount); } } exports.default = Stake; //# sourceMappingURL=stake.js.map