PHP WebShell

Текущая директория: /usr/lib/node_modules/bitgo/node_modules/ic0/src

Просмотр файла: replica.ts

import { HttpAgent } from '@dfinity/agent';
import fetch from 'cross-fetch';
import { agentCanister, AgentCanister } from './canister/agentCanister';
import { Replica } from './types';

export type AgentReplica = Replica<AgentCanister>;

// Define an IC replica from the given hostname (e.g. `https://icp-api.io`)
export const replica = (
    host?: string | HttpAgent | undefined,
    options: { local?: boolean } = {},
): AgentReplica => {
    let agent: HttpAgent;
    if (!host) {
        agent = HttpAgent.createSync({ fetch });
    } else if (typeof host === 'string') {
        agent = HttpAgent.createSync({ host, fetch });
    } else if (host instanceof HttpAgent) {
        agent = host;
    } else {
        throw new Error(
            `Invalid host (expected \`string\` or \`HttpAgent\`, received \`${typeof host}\`)`,
        );
    }
    // Fetch root key for local replica
    if (options.local) {
        agent.fetchRootKey().catch((err) => {
            console.warn(
                'Unable to fetch root key (check to ensure that your local replica is running)',
            );
            console.error(err);
        });
    }
    return (id: string) => agentCanister(agent, id);
};

// Defer creating the agent for built-in replica values
export const deferredReplica = (
    ...args: Parameters<typeof replica>
): AgentReplica => {
    let deferred: AgentReplica | undefined;
    return (...replicaArgs) => {
        if (!deferred) {
            deferred = replica(...args);
        }
        return deferred(...replicaArgs);
    };
};

Выполнить команду


Для локальной разработки. Не используйте в интернете!