@gear-js/api
Version:
A JavaScript library that provides functionality to connect GEAR Component APIs.
40 lines (36 loc) • 1.49 kB
JavaScript
;
var createType = require('./create-type.js');
var metadata = require('./metadata.js');
var importObj = require('../wasm/importObj.js');
class StateMetadata extends metadata.GearMetadata {
functions;
constructor({ reg, functions }) {
super(reg);
this.functions = functions;
}
}
/**
* @deprecated - This functionality is deprecated and will be removed from both the API and the runtime. Use `api.message.calculateReply` instead.
*/
async function getStateMetadata(wasmBytes) {
const memory = new WebAssembly.Memory({ initial: 17 });
let resolveMetadataPromise;
const metadata = new Promise((resolve) => {
resolveMetadataPromise = resolve;
});
const { instance } = await WebAssembly.instantiate(wasmBytes, importObj.default(memory, undefined, undefined, undefined, undefined, (payload, len) => {
resolveMetadataPromise(new Uint8Array(memory.buffer.slice(payload, payload + len)));
}));
const { exports } = instance;
if (!exports?.metadata) {
throw new Error('Unable to find metadata function in exports of applied wasm');
}
if (typeof exports.metadata !== 'function') {
throw new Error('exports.metadata is not a function');
}
exports.metadata();
const meta = createType.CreateType.create('StateMetadataRepr', await metadata);
return new StateMetadata(meta.toJSON());
}
exports.StateMetadata = StateMetadata;
exports.getStateMetadata = getStateMetadata;