UNPKG

nerve-sdk-js

Version:
44 lines (32 loc) 2.01 kB
var nerve = require('../../index'); var txs = require("../../model/txs"); var multi = require("../../model/mutilsigntxsignatures"); var sdk = require('../../api/sdk'); var util = require("../api/util"); var BufferReader = require("../../utils/bufferreader"); nerve.customnet(5, "http://beta.public.nerve.network/"); var prikey2 = "3e73f764492e95362cf325bd7168d145110a75e447510c927612586c06b23e91"; var prikey1 = "6d10f3aa23018de6bc7d1ee52badd696f0db56082c62826ba822978fdf3a59fa"; var txHex = "02007e6330610a6d756c74692d74657374008c0117050003bc83930d55e1bb7978a29ae1ce81d1cf234b494c05000100d20400000000000000000000000000000000000000000000000000000000000008e6e4fc5449d20891000117050001ab7da01103b1359355cab6afc0d0550c0731c48205000100d20400000000000000000000000000000000000000000000000000000000000000000000000000006802032102362c64e15ab653132ec753e4a8c181ef720ec927466a09417a07877824781f57210224d86a584324fc8e92c6dba19c08926a7af77df884deec0d1c3b879a8f50720f2102962c7942851fa2c937be788a18693885276e3d9688b5997d9f02ebf2fef218db"; function signMultiSigTransaction(txHex, prikeyHex) { var reader = new BufferReader(Buffer.from(txHex, "hex"), 0); //反序列化交易 var tx = new txs.Transaction(); tx.parse(reader); //签名 var sign = new multi.MultiTransactionSignatures(0, null); var signReader = new BufferReader(tx.signatures, 0); sign.parse(signReader); var pubHex = nerve.getPubByPri(prikeyHex); var pub = Buffer.from(pubHex, "hex"); var sigHex = sdk.signature(tx.getHash().toString('hex'), prikeyHex); var signValue = Buffer.from(sigHex, 'hex'); sign.addSign(pub, signValue); //组装到交易中 tx.signatures = sign.serialize(); //序列化交易,并返回 console.log("txHash: " + tx.getHash().toString("hex")); return tx.txSerialize().toString("hex"); } txHex = signMultiSigTransaction(txHex, prikey1); txHex = signMultiSigTransaction(txHex, prikey2); console.log("txHex-result:"); console.log(txHex); var result = util.broadcastTx(txHex); console.log(result);