UNPKG

@aeternity/aepp-sdk

Version:

SDK for the æternity blockchain

27 lines 1.05 kB
import { Buffer as _Buffer } from "buffer"; import { ArgumentError } from '../../../utils/errors.js'; import { isItemOfArray } from '../../../utils/other.js'; export default function genEnumerationField(enm) { const values = Object.values(enm).filter(v => typeof v === 'number'); return { serialize(value) { if (typeof value !== 'number') throw new ArgumentError('value', 'to be a number', value); if (value > 0xff) throw new ArgumentError('value', 'to be less than 256', value); if (!isItemOfArray(value, values)) { throw new ArgumentError('value', 'to be a value of Enum', value); } return _Buffer.from([value]); }, deserialize(buffer) { if (buffer.length !== 1) { throw new ArgumentError('buffer', 'to have single element', buffer.length); } const value = buffer[0]; if (!isItemOfArray(value, values)) { throw new ArgumentError('value', 'to be a value of Enum', value); } return value; } }; } //# sourceMappingURL=enumeration.js.map