UNPKG

@chainsafe/eth2.0-utils

Version:

Utilities required across multiple lodestar packages

61 lines (45 loc) 1.8 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.fromYaml = fromYaml; var _sszTypeSchema = require("@chainsafe/ssz-type-schema"); var _bitUtils = require("@chainsafe/bit-utils"); var _bn = _interopRequireDefault(require("bn.js")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /* eslint-disable @typescript-eslint/no-explicit-any */ function fromYaml(type, value) { return _expandYamlValue((0, _sszTypeSchema.parseType)(type), value); } function _expandYamlValue(type, value) { switch (type.type) { case _sszTypeSchema.Type.uint: switch (type.use) { case _sszTypeSchema.UintImpl.bn: return new _bn.default(value); case _sszTypeSchema.UintImpl.bigint: return BigInt(value); case _sszTypeSchema.UintImpl.number: return Number.isSafeInteger(Number(value)) ? Number(value) : Infinity; } break; case _sszTypeSchema.Type.bool: return value; case _sszTypeSchema.Type.bitList: return _bitUtils.BitList.deserialize(Buffer.from(value.slice(2), "hex")); case _sszTypeSchema.Type.bitVector: return _bitUtils.BitVector.fromBitfield(Buffer.from(value.slice(2), "hex"), type.length); case _sszTypeSchema.Type.byteList: case _sszTypeSchema.Type.byteVector: return Buffer.from(value.slice(2), "hex"); case _sszTypeSchema.Type.list: case _sszTypeSchema.Type.vector: return value.map(element => _expandYamlValue(type.elementType, element)); case _sszTypeSchema.Type.container: type.fields.forEach(([fieldName, fieldType]) => { value[fieldName] = _expandYamlValue(fieldType, value[fieldName]); }); return value; } } //# sourceMappingURL=yaml.js.map