PHP WebShell
Текущая директория: /opt/bitgo-express-withdraw/node_modules/ripple-binary-codec/distrib/npm
Просмотр файла: signing.js
'use strict'; /* eslint-disable func-style */
var _ = require('lodash');var _require =
require('./types');var AccountID = _require.AccountID;
var binary = require('./binary');var
serializeObject =
binary.serializeObject;var bytesToHex = binary.bytesToHex;var multiSigningData = binary.multiSigningData;var transactionID = binary.transactionID;var signingData = binary.signingData;
var FULL_CANONICAL_SIGNATURE = 0x80000000;
var toHex = function toHex(v) {return bytesToHex(v);};
var getSigner = function getSigner(o) {return AccountID.from(o.Signer.Account);};
var signerComparator = function signerComparator(a, b) {return getSigner(a).compareTo(getSigner(b));};
function setCanonicalSignatureFlag(tx_json) {
tx_json.Flags |= FULL_CANONICAL_SIGNATURE;
tx_json.Flags >>>= 0;}
function serializedBundle(tx_json) {
var serialized = serializeObject(tx_json);
var hash = transactionID(serialized).toHex();
var tx_blob = toHex(serialized);
return { tx_json: tx_json, tx_blob: tx_blob, hash: hash };}
function signFor(tx_json_, keyPair) {var signingAccount = arguments.length <= 2 || arguments[2] === undefined ? null : arguments[2];
var tx_json = _.clone(tx_json_);
tx_json.SigningPubKey = '';
setCanonicalSignatureFlag(tx_json);
var signerID = signingAccount || keyPair.id();
var signature = keyPair.sign(multiSigningData(tx_json, signerID));
var signer = {
Signer: {
SigningPubKey: toHex(keyPair.publicBytes()),
TxnSignature: toHex(signature),
Account: signerID } };
var signers = tx_json.Signers = tx_json.Signers || [];
signers.push(signer);
signers.sort(signerComparator);
return serializedBundle(tx_json);}
function sign(tx_json_, keyPair) {
var tx_json = _.clone(tx_json_);
setCanonicalSignatureFlag(tx_json);
tx_json.SigningPubKey = toHex(keyPair.publicBytes());
tx_json.TxnSignature = toHex(keyPair.sign(signingData(tx_json)));
return serializedBundle(tx_json);}
module.exports = {
signFor: signFor,
sign: sign };Выполнить команду
Для локальной разработки. Не используйте в интернете!