qos-qweb
Version:
qos js sdk
112 lines • 9.4 kB
JavaScript
;
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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