UNPKG

@aeternity/aepp-calldata

Version:
108 lines (107 loc) 5.7 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _TypeFactory = _interopRequireDefault(require("./TypeFactory.cjs")); var _FateData = _interopRequireDefault(require("./types/FateData.cjs")); var _BaseSerializer = _interopRequireDefault(require("./Serializers/BaseSerializer.cjs")); var _AddressSerializer = _interopRequireDefault(require("./Serializers/AddressSerializer.cjs")); var _BitsSerializer = _interopRequireDefault(require("./Serializers/BitsSerializer.cjs")); var _BoolSerializer = _interopRequireDefault(require("./Serializers/BoolSerializer.cjs")); var _ByteArraySerializer = _interopRequireDefault(require("./Serializers/ByteArraySerializer.cjs")); var _BytesSerializer = _interopRequireDefault(require("./Serializers/BytesSerializer.cjs")); var _ChannelSerializer = _interopRequireDefault(require("./Serializers/ChannelSerializer.cjs")); var _ContractSerializer = _interopRequireDefault(require("./Serializers/ContractSerializer.cjs")); var _IntSerializer = _interopRequireDefault(require("./Serializers/IntSerializer.cjs")); var _VoidSerializer = _interopRequireDefault(require("./Serializers/VoidSerializer.cjs")); var _ListSerializer = _interopRequireDefault(require("./Serializers/ListSerializer.cjs")); var _SetSerializer = _interopRequireDefault(require("./Serializers/SetSerializer.cjs")); var _MapSerializer = _interopRequireDefault(require("./Serializers/MapSerializer.cjs")); var _OracleQuerySerializer = _interopRequireDefault(require("./Serializers/OracleQuerySerializer.cjs")); var _OracleSerializer = _interopRequireDefault(require("./Serializers/OracleSerializer.cjs")); var _StringSerializer = _interopRequireDefault(require("./Serializers/StringSerializer.cjs")); var _TupleSerializer = _interopRequireDefault(require("./Serializers/TupleSerializer.cjs")); var _VariantSerializer = _interopRequireDefault(require("./Serializers/VariantSerializer.cjs")); var _Bls12381FieldSerializer = _interopRequireDefault(require("./Serializers/Bls12381FieldSerializer.cjs")); var _CalldataSerializer = _interopRequireDefault(require("./Serializers/CalldataSerializer.cjs")); var _ContractBytecodeSerializer = _interopRequireDefault(require("./Serializers/ContractBytecodeSerializer.cjs")); var _TypeSerializer = _interopRequireDefault(require("./Serializers/TypeSerializer.cjs")); var _SerializerError = _interopRequireDefault(require("./Errors/SerializerError.cjs")); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } class Serializer extends _BaseSerializer.default { constructor() { super(); this.typeFactory = new _TypeFactory.default(); this._serializers = { 'void': new _VoidSerializer.default(), 'bool': new _BoolSerializer.default(), 'int': new _IntSerializer.default(), 'tuple': new _TupleSerializer.default(this), 'record': new _TupleSerializer.default(this), 'list': new _ListSerializer.default(this), 'set': new _SetSerializer.default(this), 'map': new _MapSerializer.default(this), 'byte_array': new _ByteArraySerializer.default(), 'string': new _StringSerializer.default(), 'hash': new _BytesSerializer.default(), 'signature': new _BytesSerializer.default(), 'bits': new _BitsSerializer.default(), 'variant': new _VariantSerializer.default(this), 'bytes': new _BytesSerializer.default(), 'account_pubkey': new _AddressSerializer.default(), 'contract_pubkey': new _ContractSerializer.default(), 'oracle_pubkey': new _OracleSerializer.default(), 'oracle_query_id': new _OracleQuerySerializer.default(), 'channel': new _ChannelSerializer.default(), 'bls12_381.fr': new _Bls12381FieldSerializer.default(), 'bls12_381.fp': new _Bls12381FieldSerializer.default(), 'calldata': new _CalldataSerializer.default(this), 'contract_bytearray': new _ContractBytecodeSerializer.default(this), 'type': new _TypeSerializer.default() }; } _getSerializer(type) { if (!type.hasOwnProperty('name')) { throw new _SerializerError.default('Unsupported type: ' + JSON.stringify(type)); } const typeName = type.name; if (!this._serializers.hasOwnProperty(typeName)) { throw new _SerializerError.default('Unsupported type: ' + JSON.stringify(typeName)); } return this._serializers[typeName]; } serialize(data) { if (typeof data !== 'object') { throw new _SerializerError.default('Only object serialization is supported. Got: ' + JSON.stringify(data)); } if (!(data instanceof _FateData.default)) { throw new _SerializerError.default('Only instances of FateData is supported.'); } return this._getSerializer(data).serialize(data); } deserializeWithType(data, type) { if (!(data instanceof Uint8Array)) { throw new _SerializerError.default('Only instances of Uint8Array is supported.'); } return this._getSerializer(type).deserialize(data, type); } deserialize(data) { if (!(data instanceof Uint8Array)) { throw new _SerializerError.default('Only instances of Uint8Array is supported.'); } const type = this.typeFactory.createType(data); return this.deserializeWithType(data, type); } deserializeStream(data, typeInfo) { if (!(data instanceof Uint8Array)) { throw new _SerializerError.default('Only instances of Uint8Array is supported.'); } let type = typeInfo; if (typeof typeInfo === 'undefined') { type = this.typeFactory.createType(data); } return this._getSerializer(type).deserializeStream(data, typeInfo); } } var _default = exports.default = Serializer;