UNPKG

qos-qweb

Version:
112 lines 9.4 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const tweetnacl_util_1 = require("tweetnacl-util"); const ApproveSignData_1 = require("./utils/ApproveSignData"); const DelegatorSignData_1 = require("./utils/DelegatorSignData"); const TxSignData_1 = require("./utils/TxSignData"); class Account { constructor(controller, keyPair, mnemonic) { // public account: IAccount this.qos = 0; this.qscs = []; this.qweb = controller; if (keyPair) { this.mnemonic = mnemonic; this.keypair = keyPair; this.address = this.qweb.key.getAddress(keyPair.publicKey); this.pubKey = tweetnacl_util_1.encodeBase64(keyPair.publicKey); this.privateKey = tweetnacl_util_1.encodeBase64(keyPair.secretKey); } } async getAccount() { const result = await this.qweb.request({ url: `nodes/${this.qweb.config.chainId}/accounts/${this.address}` }); if (!result || !result.data) { throw new Error('network request error: ' + JSON.stringify(result)); } return result.data.result.value; } async sendTx(tx, maxGas = 200000) { const acc = await this.getAccount(); // logger.info('acc:', acc) const txBinary = await this.setTx(tx, Number(acc.base_account.nonce) + 1, maxGas); // logger.log('log rpc block:') // const res = await this.qweb.rpc.block({ height: 100 }) // logger.debug(res) const res = await this.qweb.rpc.broadcastTxSync({ tx: txBinary }); // logger.debug(res) return res; } async sendDelegatorTx(tx, maxGas = 2000000) { const acc = await this.getAccount(); const txBinary = await this.setDelegatorTx(tx, Number(acc.base_account.nonce) + 1, maxGas); const res = await this.qweb.rpc.broadcastTxSync({ tx: txBinary }); // logger.debug(res) return res; } async sendUnbondDelegatorTx(tx, maxGas = 2000000) { const acc = await this.getAccount(); const txBinary = await this.setUnbondDelegatorTx(tx, Number(acc.base_account.nonce) + 1, maxGas); const res = await this.qweb.rpc.broadcastTxSync({ tx: txBinary }); // logger.debug(res) return res; } async sendApproveTx(tx, maxGas = 200000) { const acc = await this.getAccount(); const txBinary = await this.setApproveTx(tx, Number(acc.base_account.nonce) + 1, maxGas); const res = await this.qweb.rpc.broadcastTxSync({ tx: txBinary }); // logger.debug(res) return res; } async setApproveTx(tx, nonce, maxGas) { return new Promise((resolve, _reject) => { const signingMsg = { account: this, tx, chainid: this.qweb.config.chainId, maxGas, nonce }; resolve(ApproveSignData_1.signApproveTxMsg(signingMsg)); }); } async setDelegatorTx(tx, nonce, maxGas) { return new Promise((resolve, _reject) => { const signingMsg = { account: this, tx, chainid: this.qweb.config.chainId, maxGas, nonce }; resolve(DelegatorSignData_1.signDelegatorTxMsg(signingMsg)); }); } async setUnbondDelegatorTx(tx, nonce, maxGas) { return new Promise((resolve, _reject) => { const signingMsg = { account: this, tx, chainid: this.qweb.config.chainId, maxGas, nonce }; resolve(DelegatorSignData_1.signUnbondDelegatorTxMsg(signingMsg)); }); } async setTx(tx, nonce, maxGas) { return new Promise((resolve, _reject) => { const signingMsg = { account: this, tx, chainid: this.qweb.config.chainId, maxGas, nonce }; resolve(TxSignData_1.signTxMsg(signingMsg)); }); } } exports.default = Account; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWNjb3VudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb3JlL0FjY291bnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxtREFBOEM7QUFVOUMsNkRBQTJEO0FBQzNELGlFQUdtQztBQUNuQyxtREFBK0M7QUFFL0MsTUFBTSxPQUFPO0lBV1gsWUFBWSxVQUFnQixFQUFFLE9BQWtCLEVBQUUsUUFBaUI7UUFUbkUsMkJBQTJCO1FBQ3BCLFFBQUcsR0FBVyxDQUFDLENBQUM7UUFDaEIsU0FBSSxHQUFXLEVBQUUsQ0FBQztRQVF2QixJQUFJLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQztRQUN2QixJQUFJLE9BQU8sRUFBRTtZQUNYLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUMzRCxJQUFJLENBQUMsTUFBTSxHQUFHLDZCQUFZLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQzlDLElBQUksQ0FBQyxVQUFVLEdBQUcsNkJBQVksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDbkQ7SUFDSCxDQUFDO0lBRU0sS0FBSyxDQUFDLFVBQVU7UUFDckIsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztZQUNyQyxHQUFHLEVBQUUsU0FBUyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLGFBQWEsSUFBSSxDQUFDLE9BQU8sRUFBRTtTQUNsRSxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRTtZQUMzQixNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5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