qos-qweb
Version:
qos js sdk
113 lines • 12.6 kB
JavaScript
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const js_amino_1 = require("js-amino");
const tweetnacl_1 = __importDefault(require("tweetnacl"));
const _1 = require(".");
const common_1 = require("../types/common");
const delegator_1 = require("../types/delegator");
const tx_1 = require("../types/tx");
const TxSignData_1 = require("./TxSignData");
function registerCodec() {
const codec = new js_amino_1.Codec();
codec.registerConcrete(new tx_1.StdTx(), 'qbase/txs/stdtx', {});
codec.registerConcrete(new delegator_1.ITX(), 'stake/txs/TxCreateDelegation', {});
codec.registerConcrete(new tx_1.PubKeyEd25519(), 'tendermint/PubKeyEd25519', {});
return codec;
}
function registerUnbondCodec() {
const codec = new js_amino_1.Codec();
codec.registerConcrete(new tx_1.StdTx(), 'qbase/txs/stdtx', {});
codec.registerConcrete(new delegator_1.ITX(), 'stake/txs/TxUnbondDelegation', {});
codec.registerConcrete(new tx_1.PubKeyEd25519(), 'tendermint/PubKeyEd25519', {});
return codec;
}
function signDelegatorTxMsg(oMsg) {
oMsg.tx.qos = _1.accMul(oMsg.tx.qos, common_1.qosDecimal);
const signedMsg = makeTxSignMsg(oMsg);
// logger.debug('Delegator signedMsg: ')
// logger.info(JSON.stringify(signedMsg))
const signatureData = tweetnacl_1.default.sign.detached(Buffer.from(signedMsg), oMsg.account.keypair.secretKey);
const codec = registerCodec();
const pubKey = new tx_1.PubKeyEd25519([...oMsg.account.keypair.publicKey]);
const sig = new tx_1.Signature(pubKey, [...signatureData], oMsg.nonce.toString());
const itx = new delegator_1.ITX(TxSignData_1.getOriginAddress(oMsg.account.address), TxSignData_1.getOriginAddress(oMsg.tx.to), oMsg.tx.qos.toString(), oMsg.tx.isCompound);
const stdtx = new tx_1.StdTx(itx, [sig], oMsg.chainid, oMsg.maxGas.toString());
// const jsonTx = codec.marshalJson(stdtx)
// logger.debug('stdtx: ')
// logger.info(jsonTx)
const binary = codec.marshalBinary(stdtx);
// logger.debug(binary.toString())
return binary;
}
exports.signDelegatorTxMsg = signDelegatorTxMsg;
function makeTxSignMsg({ account, tx, chainid, maxGas, nonce }) {
let arrMsg = [];
// push buffer of orginaddres
const txMsgArray = composeData(account, tx);
arrMsg = arrMsg.concat(txMsgArray);
const chaidBufferArray = [..._1.stringToBuffer(chainid)];
arrMsg = arrMsg.concat(chaidBufferArray);
arrMsg = arrMsg.concat([..._1.Int64ToBuffer(maxGas)]);
arrMsg = arrMsg.concat([..._1.Int64ToBuffer(nonce)]);
arrMsg = arrMsg.concat(chaidBufferArray);
return arrMsg;
}
function composeData(account, tx) {
// ret = append(ret, Delegator.Address...)
// ret = append(ret, ValidatorOwner.Address...)
// ret = append(ret, QOSAmount..)
// ret = append(ret, IsCompound)
let txMsgArray = [];
txMsgArray = txMsgArray.concat(TxSignData_1.getOriginAddress(account.address));
txMsgArray = txMsgArray.concat(TxSignData_1.getOriginAddress(tx.to));
txMsgArray = txMsgArray.concat([..._1.Int64ToBuffer(tx.qos)]);
txMsgArray = txMsgArray.concat([...Buffer.from([Number(tx.isCompound)])]);
return txMsgArray;
}
function signUnbondDelegatorTxMsg(oMsg) {
oMsg.tx.qos = _1.accMul(oMsg.tx.qos, common_1.qosDecimal);
const signedMsg = makeUnbondTxSignMsg(oMsg);
// logger.debug('UnbondDelegator signedMsg: ')
// logger.info(JSON.stringify(signedMsg))
const signatureData = tweetnacl_1.default.sign.detached(Buffer.from(signedMsg), oMsg.account.keypair.secretKey);
const codec = registerUnbondCodec();
const pubKey = new tx_1.PubKeyEd25519([...oMsg.account.keypair.publicKey]);
const sig = new tx_1.Signature(pubKey, [...signatureData], oMsg.nonce.toString());
const itx = new delegator_1.ITX(TxSignData_1.getOriginAddress(oMsg.account.address), TxSignData_1.getOriginAddress(oMsg.tx.to), oMsg.tx.qos.toString(), oMsg.tx.isUnbondAll);
const stdtx = new tx_1.StdTx(itx, [sig], oMsg.chainid, oMsg.maxGas.toString());
// const jsonTx = codec.marshalJson(stdtx)
// logger.debug('UnbondDelegator stdtx: ')
// logger.info(jsonTx)
const binary = codec.marshalBinary(stdtx);
// logger.debug(binary.toString())
return binary;
}
exports.signUnbondDelegatorTxMsg = signUnbondDelegatorTxMsg;
function makeUnbondTxSignMsg({ account, tx, chainid, maxGas, nonce }) {
let arrMsg = [];
// push buffer of orginaddres
const txMsgArray = composeUnbondData(account, tx);
arrMsg = arrMsg.concat(txMsgArray);
const chaidBufferArray = [..._1.stringToBuffer(chainid)];
arrMsg = arrMsg.concat(chaidBufferArray);
arrMsg = arrMsg.concat([..._1.Int64ToBuffer(maxGas)]);
arrMsg = arrMsg.concat([..._1.Int64ToBuffer(nonce)]);
arrMsg = arrMsg.concat(chaidBufferArray);
return arrMsg;
}
function composeUnbondData(account, tx) {
// ret = append(ret, Delegator.Address...)
// ret = append(ret, ValidatorOwner.Address...)
// ret = append(ret, QOSAmount..)
// ret = append(ret, IsCompound)
let txMsgArray = [];
txMsgArray = txMsgArray.concat(TxSignData_1.getOriginAddress(account.address));
txMsgArray = txMsgArray.concat(TxSignData_1.getOriginAddress(tx.to));
txMsgArray = txMsgArray.concat([..._1.Int64ToBuffer(tx.qos)]);
txMsgArray = txMsgArray.concat([...Buffer.from([Number(tx.isUnbondAll)])]);
return txMsgArray;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVsZWdhdG9yU2lnbkRhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29yZS91dGlscy9EZWxlZ2F0b3JTaWduRGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHVDQUFpQztBQUNqQywwREFBNkI7QUFDN0Isd0JBQTBEO0FBRTFELDRDQUErRTtBQUMvRSxrREFBeUM7QUFDekMsb0NBQThEO0FBQzlELDZDQUFnRDtBQUVoRCxTQUFTLGFBQWE7SUFDcEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxnQkFBSyxFQUFFLENBQUM7SUFDMUIsS0FBSyxDQUFDLGdCQUFnQixDQUFDLElBQUksVUFBSyxFQUFFLEVBQUUsaUJBQWlCLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDM0QsS0FBSyxDQUFDLGdCQUFnQixDQUFDLElBQUksZUFBRyxFQUFFLEVBQUUsOEJBQThCLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDdEUsS0FBSyxDQUFDLGdCQUFnQixDQUFDLElBQUksa0JBQWEsRUFBRSxFQUFFLDBCQUEwQixFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzVFLE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQztBQUVELFNBQVMsbUJBQW1CO0lBQzFCLE1BQU0sS0FBSyxHQUFHLElBQUksZ0JBQUssRUFBRSxDQUFDO0lBQzFCLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLFVBQUssRUFBRSxFQUFFLGlCQUFpQixFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzNELEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLGVBQUcsRUFBRSxFQUFFLDhCQUE4QixFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3RFLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLGtCQUFhLEVBQUUsRUFBRSwwQkFBMEIsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUM1RSxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUM7QUFFRCxTQUFnQixrQkFBa0IsQ0FBQyxJQU1sQztJ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