@polywrap/ens-resolver-plugin-js
TypeScript icon, indicating that this package has built-in type declarations

0.9.7 • Public • Published

@polywrap/ens-resolver-plugin-js

ENS Resolver Plugin allows the Polywrap JS Client to resolve URIs from the Ethereum Name Service.

Usage

import {
  initTestEnvironment,
  providers,
  ensAddresses,
  stopTestEnvironment,
  buildAndDeployWrapper,
} from "@polywrap/test-env-js";
import { ethereumPlugin, Connections, Connection } from "@polywrap/ethereum-plugin-js";
import { ipfsPlugin } from "@polywrap/ipfs-plugin-js";
import { ensPlugin } from "@polywrap/ens-plugin-js";

// query a wrapper with an ENS path
export async function foo({

  // spin up docker containers with Ganache and IPFS.
  await initTestEnvironment();

  // initialize Ethereum Connections store
  const connections: Connections = new Connections({
    networks: {
      testnet: new Connection({
        provider: providers.ethereum,
      }),
    },
    defaultNetwork: "testnet",
  });

  // initialize the client with eth, ipfs, ens plugins
  client = new PolywrapClient({
    plugins: [
      {
        uri: "wrap://ens/ethereum.polywrap.eth",
        plugin: ethereumPlugin({ connections }),
      },
      {
        uri: "wrap://ens/ipfs.polywrap.eth",
        plugin: ipfsPlugin({
          provider: providers.ipfs,
          fallbackProviders: defaultIpfsProviders,
        }),
      },
      {
        uri: "wrap://ens/ens.polywrap.eth",
        plugin: ensPlugin({
          addresses: {
            testnet: ensAddresses.ensAddress,
          },
        }),
      },
    ],
  });

  // get filesystem path
  const wrapperAbsPath = `/path/to/simple-storage`;

  // deploy a wrapper to IPFS
  let { ensDomain } = await buildAndDeployWrapper({
    wrapperAbsPath: wrapperAbsPath,
    ipfsProvider: providers.ipfs,
    ethereumProvider: providers.ethereum,
    ensName: "simple-storage.eth",
  });

  // get ENS URI
  const wrapperUriENS = `ens/testnet/${wrapperEnsDomain}`;

  // query the wrapper
  const schemaENS = await client.getManifest(wrapperUriENS)

  // we can also resolve an ENS URI in two steps
  // get IPFS URI
  const resolveUriResult = await client.resolveUri(wrapperUriEns);
  const wrapperUriIpfs = resolveUriResult.uri

  // query the wrapper
  const schemaIPFS = await resolveUriResult.wrapperIPFS?.getManifest(client);

  await stopTestEnvironment();
});

For more usage examples see src/__tests__.

API

ENS Resolver Plugin conforms to a generic UriResolver interface that provides a tryResolveUri method to the Polywrap client and adds ENS resolution capability to every client method, e.g. getSchema, getManifest, resolveUri.

Readme

Keywords

none

Package Sidebar

Install

npm i @polywrap/ens-resolver-plugin-js

Weekly Downloads

33

Version

0.9.7

License

MIT

Unpacked Size

238 kB

Total Files

21

Last publish

Collaborators

  • polywrap-build-bot
  • dorgjelli