UNPKG

qos-qweb

Version:
66 lines 7.65 kB
import { Codec } from 'js-amino'; import nacl from 'tweetnacl'; import { accMul, Int64ToBuffer, stringToBuffer } from '.'; import { Approve, ApproveITX } from '../types/approve'; import { qosDecimal } from '../types/common'; import { PubKeyEd25519, QSC, Signature, StdTx } from '../types/tx'; import { getOriginAddress } from './TxSignData'; function registerCodec() { const codec = new Codec(); codec.registerConcrete(new StdTx(), 'qbase/txs/stdtx', {}); codec.registerConcrete(new ApproveITX(), 'approve/txs/TxCreateApprove', {}); codec.registerConcrete(new PubKeyEd25519(), 'tendermint/PubKeyEd25519', {}); return codec; } export function signApproveTxMsg(oMsg) { oMsg.tx.qos = accMul(oMsg.tx.qos, qosDecimal); const signed = makeTxSignMsg(oMsg); // logger.debug('Approve signedMsg: ') // logger.info(JSON.stringify(signed.arrMsg)) const signatureData = nacl.sign.detached(Buffer.from(signed.arrMsg), oMsg.account.keypair.secretKey); const codec = registerCodec(); const pubKey = new PubKeyEd25519([...oMsg.account.keypair.publicKey]); const sig = new Signature(pubKey, [...signatureData], oMsg.nonce.toString()); const approve = new Approve(getOriginAddress(oMsg.account.address), getOriginAddress(oMsg.tx.to), oMsg.tx.qos.toString(), signed.qscArr); const itx = new ApproveITX(approve); const stdtx = new 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; } function makeTxSignMsg({ account, tx, chainid, maxGas, nonce }) { let arrMsg = []; // push buffer of orginaddres const txMsg = composeData(account, tx); arrMsg = arrMsg.concat(txMsg.txMsgArray); const chaidBufferArray = [...stringToBuffer(chainid)]; arrMsg = arrMsg.concat(chaidBufferArray); arrMsg = arrMsg.concat([...Int64ToBuffer(maxGas)]); arrMsg = arrMsg.concat([...Int64ToBuffer(nonce)]); arrMsg = arrMsg.concat(chaidBufferArray); return { arrMsg, qscArr: txMsg.qscArr }; } function composeData(account, tx) { let txMsgArray = []; txMsgArray = txMsgArray.concat(getOriginAddress(account.address)); txMsgArray = txMsgArray.concat(getOriginAddress(tx.to)); txMsgArray = txMsgArray.concat([...stringToBuffer(tx.qos.toString())]); const qscArr = []; const cqscAmountArr = []; // logger.debug('Array.isArray(tx.qscs)', Array.isArray(tx.qscs), tx.qscs) if (Array.isArray(tx.qscs) && tx.qscs.length > 0) { for (const qsc of tx.qscs) { cqscAmountArr.push(`${qsc.amount}${qsc.coin_name.toLowerCase()}`); qscArr.push(new QSC(qsc.coin_name.toLowerCase(), qsc.amount.toString())); } } txMsgArray = txMsgArray.concat([...stringToBuffer(cqscAmountArr.join(','))]); return { txMsgArray, qscArr }; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXBwcm92ZVNpZ25EYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvcmUvdXRpbHMvQXBwcm92ZVNpZ25EYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDakMsT0FBTyxJQUFJLE1BQU0sV0FBVyxDQUFDO0FBQzdCLE9BQU8sRUFBRSxNQUFNLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxNQUFNLEdBQUcsQ0FBQztBQUUxRCxPQUFPLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3ZELE9BQU8sRUFBYyxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ25FLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUVoRCxTQUFTLGFBQWE7SUFDcEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxLQUFLLEVBQUUsQ0FBQztJQUMxQixLQUFLLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxLQUFLLEVBQUUsRUFBRSxpQkFBaUIsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUMzRCxLQUFLLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxVQUFVLEVBQUUsRUFBRSw2QkFBNkIsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUM1RSxLQUFLLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxhQUFhLEVBQUUsRUFBRSwwQkFBMEIsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUM1RSxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUM7QUFFRCxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsSUFNaEM7SUFDQyxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVB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