qos-qweb
Version:
qos js sdk
110 lines • 9.41 kB
JavaScript
import { encodeBase64 } from 'tweetnacl-util';
import { signApproveTxMsg } from './utils/ApproveSignData';
import { signDelegatorTxMsg, signUnbondDelegatorTxMsg } from './utils/DelegatorSignData';
import { signTxMsg } from './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 = encodeBase64(keyPair.publicKey);
this.privateKey = 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(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(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(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(signTxMsg(signingMsg));
});
}
}
export default Account;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWNjb3VudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb3JlL0FjY291bnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBVTlDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzNELE9BQU8sRUFDTCxrQkFBa0IsRUFDbEIsd0JBQXdCLEVBQ3pCLE1BQU0sMkJBQTJCLENBQUM7QUFDbkMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRS9DLE1BQU0sT0FBTztJQVdYLFlBQVksVUFBZ0IsRUFBRSxPQUFrQixFQUFFLFFBQWlCO1FBVG5FLDJCQUEyQjtRQUNwQixRQUFHLEdBQVcsQ0FBQyxDQUFDO1FBQ2hCLFNBQUksR0FBVyxFQUFFLENBQUM7UUFRdkIsSUFBSSxDQUFDLElBQUksR0FBRyxVQUFVLENBQUM7UUFDdkIsSUFBSSxPQUFPLEVBQUU7WUFDWCxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztZQUN6QixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztZQUN2QixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDM0QsSUFBSSxDQUFDLE1BQU0sR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQzlDLElBQUksQ0FBQyxVQUFVLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUNuRDtJQUNILENBQUM7SUFFTSxLQUFLLENBQUMsVUFBVTtRQUNyQixNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO1lBQ3JDLEdBQUcsRUFBRSxTQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsTUFB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