@aeternity/aepp-calldata
Version:
Aeternity data serialization library
32 lines (31 loc) • 1.22 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _BaseSerializer = _interopRequireDefault(require("./BaseSerializer.cjs"));
var _BytesSerializer = _interopRequireDefault(require("./BytesSerializer.cjs"));
var _FateBls12381Fr = _interopRequireDefault(require("../types/FateBls12381Fr.cjs"));
var _FateBls12381Fp = _interopRequireDefault(require("../types/FateBls12381Fp.cjs"));
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
const bytesSerializer = new _BytesSerializer.default();
const factory = (type, data) => {
switch (type.name) {
case 'bls12_381.fr':
return new _FateBls12381Fr.default(data);
case 'bls12_381.fp':
return new _FateBls12381Fp.default(data);
default:
throw new Error(`Unsupported type "${type.name}"`);
}
};
class Bls12381FieldSerializer extends _BaseSerializer.default {
serialize(bytes) {
return bytesSerializer.serialize(bytes);
}
deserializeStream(data, typeInfo) {
const [bytes, rest] = bytesSerializer.deserializeStream(data);
return [factory(typeInfo, bytes.valueOf()), rest];
}
}
var _default = exports.default = Bls12381FieldSerializer;