@danielyandev/qr-account
Version:
48 lines • 1.48 kB
JavaScript
;
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