@funded-labs/dab-js
Version:
JS adapter for DAB
32 lines (31 loc) • 1.39 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.generateActor = exports.createExtendedActorClass = void 0;
const agent_1 = require("@dfinity/agent");
const principal_1 = require("@dfinity/principal");
const createExtendedActorClass = (agent, methods, canisterId, IDLFactory, blsVerify) => {
class ExtendedActor extends agent_1.Actor.createActorClass(IDLFactory) {
constructor() {
const principalCanisterId = typeof canisterId === 'string'
? principal_1.Principal.fromText(canisterId)
: canisterId;
super({ agent, canisterId: principalCanisterId, blsVerify });
Object.keys(this).forEach((methodName) => {
this[`_${methodName}`] = this[methodName];
});
Object.keys(methods).forEach((methodName) => {
this[methodName] = ((...args) => methods[methodName](this, ...args));
});
}
}
return ExtendedActor;
};
exports.createExtendedActorClass = createExtendedActorClass;
function generateActor({ agent, canisterId, IDL, }) {
return agent_1.Actor.createActor(IDL, {
agent,
canisterId: principal_1.Principal.fromText(canisterId),
});
}
exports.generateActor = generateActor;
exports.default = { createExtendedActorClass: exports.createExtendedActorClass, generateActor };