123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- "use strict";
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
- if (k2 === undefined) k2 = k;
- var desc = Object.getOwnPropertyDescriptor(m, k);
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
- desc = { enumerable: true, get: function() { return m[k]; } };
- }
- Object.defineProperty(o, k2, desc);
- }) : (function(o, m, k, k2) {
- if (k2 === undefined) k2 = k;
- o[k2] = m[k];
- }));
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
- Object.defineProperty(o, "default", { enumerable: true, value: v });
- }) : function(o, v) {
- o["default"] = v;
- });
- var __importStar = (this && this.__importStar) || function (mod) {
- if (mod && mod.__esModule) return mod;
- var result = {};
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
- __setModuleDefault(result, mod);
- return result;
- };
- var __importDefault = (this && this.__importDefault) || function (mod) {
- return (mod && mod.__esModule) ? mod : { "default": mod };
- };
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.hashTxTree = exports.hashStateTree = exports.hashLedger = exports.hashSignedTx = exports.hashLedgerHeader = exports.hashPaymentChannel = exports.hashEscrow = exports.hashTrustline = exports.hashOfferId = exports.hashSignerListId = exports.hashAccountRoot = exports.hashTx = void 0;
- const bignumber_js_1 = __importDefault(require("bignumber.js"));
- const ripple_address_codec_1 = require("ripple-address-codec");
- const hashLedger_1 = __importStar(require("./hashLedger"));
- exports.hashLedger = hashLedger_1.default;
- Object.defineProperty(exports, "hashLedgerHeader", { enumerable: true, get: function () { return hashLedger_1.hashLedgerHeader; } });
- Object.defineProperty(exports, "hashSignedTx", { enumerable: true, get: function () { return hashLedger_1.hashSignedTx; } });
- Object.defineProperty(exports, "hashTxTree", { enumerable: true, get: function () { return hashLedger_1.hashTxTree; } });
- Object.defineProperty(exports, "hashStateTree", { enumerable: true, get: function () { return hashLedger_1.hashStateTree; } });
- const HashPrefix_1 = __importDefault(require("./HashPrefix"));
- const ledgerSpaces_1 = __importDefault(require("./ledgerSpaces"));
- const sha512Half_1 = __importDefault(require("./sha512Half"));
- const HEX = 16;
- const BYTE_LENGTH = 4;
- function addressToHex(address) {
- return Buffer.from((0, ripple_address_codec_1.decodeAccountID)(address)).toString('hex');
- }
- function ledgerSpaceHex(name) {
- return ledgerSpaces_1.default[name].charCodeAt(0).toString(HEX).padStart(4, '0');
- }
- const MASK = 0xff;
- function currencyToHex(currency) {
- if (currency.length !== 3) {
- return currency;
- }
- const bytes = Array(20).fill(0);
- bytes[12] = currency.charCodeAt(0) & MASK;
- bytes[13] = currency.charCodeAt(1) & MASK;
- bytes[14] = currency.charCodeAt(2) & MASK;
- return Buffer.from(bytes).toString('hex');
- }
- function hashTx(txBlobHex) {
- const prefix = HashPrefix_1.default.TRANSACTION_SIGN.toString(HEX).toUpperCase();
- return (0, sha512Half_1.default)(prefix + txBlobHex);
- }
- exports.hashTx = hashTx;
- function hashAccountRoot(address) {
- return (0, sha512Half_1.default)(ledgerSpaceHex('account') + addressToHex(address));
- }
- exports.hashAccountRoot = hashAccountRoot;
- function hashSignerListId(address) {
- return (0, sha512Half_1.default)(`${ledgerSpaceHex('signerList') + addressToHex(address)}00000000`);
- }
- exports.hashSignerListId = hashSignerListId;
- function hashOfferId(address, sequence) {
- const hexPrefix = ledgerSpaces_1.default.offer
- .charCodeAt(0)
- .toString(HEX)
- .padStart(2, '0');
- const hexSequence = sequence.toString(HEX).padStart(8, '0');
- const prefix = `00${hexPrefix}`;
- return (0, sha512Half_1.default)(prefix + addressToHex(address) + hexSequence);
- }
- exports.hashOfferId = hashOfferId;
- function hashTrustline(address1, address2, currency) {
- const address1Hex = addressToHex(address1);
- const address2Hex = addressToHex(address2);
- const swap = new bignumber_js_1.default(address1Hex, 16).isGreaterThan(new bignumber_js_1.default(address2Hex, 16));
- const lowAddressHex = swap ? address2Hex : address1Hex;
- const highAddressHex = swap ? address1Hex : address2Hex;
- const prefix = ledgerSpaceHex('rippleState');
- return (0, sha512Half_1.default)(prefix + lowAddressHex + highAddressHex + currencyToHex(currency));
- }
- exports.hashTrustline = hashTrustline;
- function hashEscrow(address, sequence) {
- return (0, sha512Half_1.default)(ledgerSpaceHex('escrow') +
- addressToHex(address) +
- sequence.toString(HEX).padStart(BYTE_LENGTH * 2, '0'));
- }
- exports.hashEscrow = hashEscrow;
- function hashPaymentChannel(address, dstAddress, sequence) {
- return (0, sha512Half_1.default)(ledgerSpaceHex('paychan') +
- addressToHex(address) +
- addressToHex(dstAddress) +
- sequence.toString(HEX).padStart(BYTE_LENGTH * 2, '0'));
- }
- exports.hashPaymentChannel = hashPaymentChannel;
- //# sourceMappingURL=index.js.map
|