UNPKG

@radixdlt/tx-parser

Version:
56 lines 3.11 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.PreparedStake = exports.makeBaseStakeSubstateFromBuffer = exports.makeBaseValidatorSubstateFromBuffer = exports.pubKeyFromReadBuffer = void 0; const neverthrow_1 = require("neverthrow"); const _types_1 = require("./_types"); const reAddress_1 = require("./reAddress"); const crypto_1 = require("@radixdlt/crypto"); const tokens_1 = require("./tokens"); const account_1 = require("@radixdlt/account"); const pubKeyFromReadBuffer = (bufferReader) => bufferReader.readNextBuffer(33).andThen(b => crypto_1.PublicKey.fromBuffer(b)); exports.pubKeyFromReadBuffer = pubKeyFromReadBuffer; const makeBaseValidatorSubstateFromBuffer = (substateType) => (bufferReader) => (0, neverthrow_1.combine)([ bufferReader.readNextBuffer(1).map(b => b.readUInt8(0)), (0, exports.pubKeyFromReadBuffer)(bufferReader), ]) .map(resList => ({ reserved: resList[0], validator: resList[1], })) .map((partial) => { const { reserved, validator } = partial; const buffer = Buffer.concat([ Buffer.from([substateType]), Buffer.from([reserved]), validator.asData({ compressed: true }), ]); return Object.assign(Object.assign({}, partial), { substateType, toBuffer: () => buffer }); }); exports.makeBaseValidatorSubstateFromBuffer = makeBaseValidatorSubstateFromBuffer; const makeBaseStakeSubstateFromBuffer = (substateType) => (bufferReader, lengthData) => (0, exports.makeBaseValidatorSubstateFromBuffer)(substateType)(bufferReader).andThen(base => (0, neverthrow_1.combine)([ reAddress_1.REAddress.fromBufferReader(bufferReader), (0, tokens_1.uint256FromReadBuffer)(bufferReader), ]).map((resList) => { const owner = resList[0]; const amount = resList[1]; const reserved = base.reserved; const validator = base.validator; return Object.assign(Object.assign({}, base), { owner, amount, toBuffer: () => Buffer.concat([ lengthData, base.toBuffer(), owner.toBuffer(), (0, tokens_1.amountToBuffer)(amount), ]), toString: () => `${(0, _types_1.stringifySubstateType)(substateType)} { reserved: ${reserved}, validator: 0x${validator.toString()}, owner: 0x${owner .toBuffer() .toString('hex')}, amount: U256 { raw: ${amount.toString()} } }`, toHumanReadableString: () => `${(0, _types_1.stringifySubstateType)(substateType)} { reserved: ${reserved}, validator: ${account_1.ValidatorAddress.fromUnsafe(validator.asData({ compressed: true })) ._unsafeUnwrap() .toString()}, owner: ${account_1.AccountAddress.fromUnsafe(owner.toBuffer()) ._unsafeUnwrap() .toString()}, amount: ${(0, tokens_1.stringifyUInt256)(amount)} }` }); })); exports.makeBaseStakeSubstateFromBuffer = makeBaseStakeSubstateFromBuffer; exports.PreparedStake = { fromBufferReader: (bufferReader, lengthData) => (0, exports.makeBaseStakeSubstateFromBuffer)(_types_1.SubStateType.PREPARED_STAKE)(bufferReader, lengthData), }; //# sourceMappingURL=preparedStake.js.map