@aeternity/aepp-calldata
Version:
Aeternity data serialization library
27 lines (26 loc) • 1.45 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _FateTuple = _interopRequireDefault(require("../types/FateTuple.cjs"));
var _FateCalldata = _interopRequireDefault(require("../types/FateCalldata.cjs"));
var _FateByteArray = _interopRequireDefault(require("../types/FateByteArray.cjs"));
var _BaseSerializer = _interopRequireDefault(require("./BaseSerializer.cjs"));
var _FateTypes = require("../FateTypes.cjs");
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
class CalldataSerializer extends _BaseSerializer.default {
serialize(calldata) {
const funcBytes = new _FateByteArray.default(calldata.functionId);
const argsTuple = new _FateTuple.default(calldata.argTypes, calldata.args);
const calldataTuple = new _FateTuple.default([funcBytes.type, argsTuple.type], [funcBytes, argsTuple]);
return this.globalSerializer.serialize(calldataTuple);
}
deserialize(data, typeInfo) {
const calldataType = (0, _FateTypes.FateTypeTuple)([(0, _FateTypes.FateTypeByteArray)(), (0, _FateTypes.FateTypeTuple)(typeInfo.argumentTypes)]);
const [calldataTuple] = this.globalSerializer.deserializeStream(data, calldataType);
const [functionId, argsTuple] = calldataTuple.items;
return new _FateCalldata.default(functionId.valueOf(), argsTuple.valueTypes, argsTuple.items);
}
}
var _default = exports.default = CalldataSerializer;