UNPKG

template_assets

Version:

![Compatibility](https://img.shields.io/badge/compatibility-0.6.25-blue) [![Build Status](https://github.com/dfinity/examples/workflows/motoko-superheroes-example/badge.svg)](https://github.com/dfinity/examples/actions?query=workflow%3Amotoko-superheroes

39 lines (33 loc) 1.49 kB
import { Actor, HttpAgent } from "@dfinity/agent"; // Imports and re-exports candid interface import { idlFactory } from './superheroes.did.js'; export { idlFactory } from './superheroes.did.js'; // CANISTER_ID is replaced by webpack based on node environment export const canisterId = process.env.SUPERHEROES_CANISTER_ID; /** * * @param {string | import("@dfinity/principal").Principal} canisterId Canister ID of Agent * @param {{agentOptions?: import("@dfinity/agent").HttpAgentOptions; actorOptions?: import("@dfinity/agent").ActorConfig}} [options] * @return {import("@dfinity/agent").ActorSubclass<import("./superheroes.did.js")._SERVICE>} */ export const createActor = (canisterId, options) => { const agent = new HttpAgent({ ...options?.agentOptions }); // Fetch root key for certificate validation during development if(process.env.NODE_ENV !== "production") { agent.fetchRootKey().catch(err=>{ console.warn("Unable to fetch root key. Check to ensure that your local replica is running"); console.error(err); }); } // Creates an actor with using the candid interface and the HttpAgent return Actor.createActor(idlFactory, { agent, canisterId, ...options?.actorOptions, }); }; /** * A ready-to-use agent for the superheroes canister * @type {import("@dfinity/agent").ActorSubclass<import("./superheroes.did.js")._SERVICE>} */ export const superheroes = createActor(canisterId);