@aeternity/aepp-calldata
Version:
Aeternity data serialization library
28 lines (27 loc) • 1.09 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _hash = require("../utils/hash.cjs");
var _FateTypeError = _interopRequireDefault(require("../Errors/FateTypeError.cjs"));
var _FateCalldata = _interopRequireDefault(require("../types/FateCalldata.cjs"));
var _BaseDataFactory = _interopRequireDefault(require("./BaseDataFactory.cjs"));
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
class CallDataFactory extends _BaseDataFactory.default {
supports({
name,
_valueTypes
}) {
return 'calldata' === name;
}
create(type, value) {
if (!Array.isArray(value)) {
throw new _FateTypeError.default(type.name, `Fate calldata arguments must be an Array, got ${value} instead`);
}
const argsData = this.valueFactory.createMultiple(type.argumentTypes, value);
const functionId = (0, _hash.symbolIdentifier)(type.functionName);
return new _FateCalldata.default(functionId, type.argumentTypes, argsData);
}
}
var _default = exports.default = CallDataFactory;