UNPKG

@aeternity/aepp-calldata

Version:
32 lines (30 loc) 1.45 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _ApiEncoder = _interopRequireDefault(require("./ApiEncoder.cjs")); var _Serializer = _interopRequireDefault(require("./Serializer.cjs")); var _ContractBytecodeSerializer = _interopRequireDefault(require("./Serializers/ContractBytecodeSerializer.cjs")); var _IntSerializer = _interopRequireDefault(require("./Serializers/IntSerializer.cjs")); var _FateTag = _interopRequireDefault(require("./FateTag.cjs")); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } class ContractEncoder { constructor() { this._apiEncoder = new _ApiEncoder.default(); this._contractBytecodeSerializer = new _ContractBytecodeSerializer.default(new _Serializer.default()); this._intSerializer = new _IntSerializer.default(); } /** * Decodes serialized contract metadata and bytecode * * @param {string} data - Contract bytearray data in a canonical format. * @returns {Object} Decoded contract metadata as POJO. */ decode(data) { const bytecode = this._apiEncoder.decodeWithType(data, 'contract_bytearray'); const fateContractBytearray = new Uint8Array([_FateTag.default.CONTRACT_BYTEARRAY, ...this._intSerializer.serialize(bytecode.length), ...bytecode]); return this._contractBytecodeSerializer.deserialize(fateContractBytearray); } } var _default = exports.default = ContractEncoder;