UNPKG

qos-qweb

Version:
113 lines 12.6 kB
"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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