@radixdlt/tx-parser
Version:
Parsing of Radix Engine transactions and instructions
30 lines • 1.8 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ValidatorAllowDelegationFlag = exports.boolToBuf = exports.boolFromBufferReader = void 0;
const _types_1 = require("./_types");
const neverthrow_1 = require("neverthrow");
const preparedStake_1 = require("./preparedStake");
const boolFromBufferReader = (bufferReader) => bufferReader
.readNextBuffer(1)
.map(b => b.readUInt8(0))
.andThen(i => i === 1
? (0, neverthrow_1.ok)(true)
: i === 0
? (0, neverthrow_1.ok)(false)
: (0, neverthrow_1.err)(new Error('Expected bool.')));
exports.boolFromBufferReader = boolFromBufferReader;
const boolToBuf = (bool) => Buffer.from([bool ? 1 : 0]);
exports.boolToBuf = boolToBuf;
const makeValidatorAllowDelegationFlagFromBuffer = (bufferReader, lengthData) => (0, preparedStake_1.makeBaseValidatorSubstateFromBuffer)(_types_1.SubStateType.VALIDATOR_ALLOW_DELEGATION_FLAG)(bufferReader).andThen((base) => (0, exports.boolFromBufferReader)(bufferReader).map((isDelegationAllowed) => {
const reserved = base.reserved;
const validator = base.validator;
return Object.assign(Object.assign({}, base), { isDelegationAllowed, toBuffer: () => Buffer.concat([
lengthData,
base.toBuffer(),
(0, exports.boolToBuf)(isDelegationAllowed),
]), toString: () => `${(0, _types_1.stringifySubstateType)(_types_1.SubStateType.VALIDATOR_ALLOW_DELEGATION_FLAG)} { reserved: ${reserved}, validator: 0x${validator.toString()}, is_delegation_allowed: ${isDelegationAllowed} }` });
}));
exports.ValidatorAllowDelegationFlag = {
fromBufferReader: (bufferReader, lengthData) => makeValidatorAllowDelegationFlagFromBuffer(bufferReader, lengthData),
};
//# sourceMappingURL=validatorAllowDelegationFlag.js.map