From b4383d15dc7ed9c585420776a665c81410a94589 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9CPileks=E2=80=9D?= Date: Thu, 23 Jun 2022 21:46:50 +0200 Subject: [PATCH 1/4] Rename ens plugin to ens-resolver, move folders --- packages/cli/package.json | 2 +- packages/cli/src/lib/helpers/client.ts | 6 ++-- .../cli/src/lib/test-env/client-config.ts | 6 ++-- packages/js/client/package.json | 2 +- .../js/client/scripts/extractPluginConfigs.ts | 35 +++++++++++-------- .../src/__tests__/core/plugin-wrapper.spec.ts | 2 +- .../src/__tests__/core/resolveUri.spec.ts | 10 +++--- .../client/src/__tests__/core/sanity.spec.ts | 4 +-- .../js/client/src/default-client-config.ts | 8 ++--- packages/js/client/src/pluginConfigs/Ens.ts | 4 +-- packages/js/client/src/pluginConfigs/index.ts | 8 ++--- packages/js/plugins/ethereum/package.json | 2 +- .../ethereum/src/__tests__/e2e.spec.ts | 14 ++++---- packages/js/plugins/filesystem/package.json | 2 +- .../filesystem/src/__tests__/e2e.spec.ts | 23 ++++++++---- packages/js/plugins/http/package.json | 2 +- .../plugins/{ => uri-resolvers}/ens/README.md | 0 .../{ => uri-resolvers}/ens/package.json | 6 ++-- .../ens/polywrap.plugin.yaml | 4 +-- .../ens/src/__tests__/e2e.spec.ts | 0 .../{ => uri-resolvers}/ens/src/index.ts | 16 ++++----- .../ens/src/schema.graphql | 0 .../ens/tsconfig.build.json | 0 .../{ => uri-resolvers}/ens/tsconfig.json | 2 +- packages/js/react/package.json | 2 +- packages/js/react/src/__tests__/plugins.ts | 6 ++-- .../assemblyscript/src/__tests__/utils.ts | 8 ++--- 27 files changed, 94 insertions(+), 80 deletions(-) rename packages/js/plugins/{ => uri-resolvers}/ens/README.md (100%) rename packages/js/plugins/{ => uri-resolvers}/ens/package.json (82%) rename packages/js/plugins/{ => uri-resolvers}/ens/polywrap.plugin.yaml (64%) rename packages/js/plugins/{ => uri-resolvers}/ens/src/__tests__/e2e.spec.ts (100%) rename packages/js/plugins/{ => uri-resolvers}/ens/src/index.ts (91%) rename packages/js/plugins/{ => uri-resolvers}/ens/src/schema.graphql (100%) rename packages/js/plugins/{ => uri-resolvers}/ens/tsconfig.build.json (100%) rename packages/js/plugins/{ => uri-resolvers}/ens/tsconfig.json (73%) diff --git a/packages/cli/package.json b/packages/cli/package.json index b7f7b62aa4..9c3698f447 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -37,7 +37,7 @@ "@polywrap/asyncify-js": "0.0.1-prealpha.88", "@polywrap/client-js": "0.0.1-prealpha.88", "@polywrap/core-js": "0.0.1-prealpha.88", - "@polywrap/ens-plugin-js": "0.0.1-prealpha.88", + "@polywrap/ens-resolver-plugin-js": "0.0.1-prealpha.88", "@polywrap/ethereum-plugin-js": "0.0.1-prealpha.88", "@polywrap/ipfs-plugin-js": "0.0.1-prealpha.88", "@polywrap/os-js": "0.0.1-prealpha.88", diff --git a/packages/cli/src/lib/helpers/client.ts b/packages/cli/src/lib/helpers/client.ts index dce6742480..41df7b184b 100644 --- a/packages/cli/src/lib/helpers/client.ts +++ b/packages/cli/src/lib/helpers/client.ts @@ -1,5 +1,5 @@ import { PluginRegistration } from "@polywrap/core-js"; -import { ensPlugin } from "@polywrap/ens-plugin-js"; +import { ensResolverPlugin } from "@polywrap/ens-resolver-plugin-js"; import { ethereumPlugin } from "@polywrap/ethereum-plugin-js"; import { ipfsPlugin } from "@polywrap/ipfs-plugin-js"; import { PolywrapClient, defaultIpfsProviders } from "@polywrap/client-js"; @@ -15,8 +15,8 @@ export function getSimpleClient(config: SimpleClientConfig): PolywrapClient { const plugins: PluginRegistration[] = []; if (ensAddress) { plugins.push({ - uri: "wrap://ens/ens.polywrap.eth", - plugin: ensPlugin({ + uri: "wrap://ens/ens-resolver.polywrap.eth", + plugin: ensResolverPlugin({ addresses: { testnet: ensAddress, }, diff --git a/packages/cli/src/lib/test-env/client-config.ts b/packages/cli/src/lib/test-env/client-config.ts index 7b9b7c6287..06ccae1fdd 100644 --- a/packages/cli/src/lib/test-env/client-config.ts +++ b/packages/cli/src/lib/test-env/client-config.ts @@ -5,7 +5,7 @@ import { PolywrapClientConfig, defaultIpfsProviders, } from "@polywrap/client-js"; -import { ensPlugin } from "@polywrap/ens-plugin-js"; +import { ensResolverPlugin } from "@polywrap/ens-resolver-plugin-js"; import { ethereumPlugin } from "@polywrap/ethereum-plugin-js"; import { ipfsPlugin } from "@polywrap/ipfs-plugin-js"; import { ensAddresses } from "@polywrap/test-env-js"; @@ -44,8 +44,8 @@ export async function getTestEnvClientConfig(): Promise< }), }, { - uri: "wrap://ens/ens.polywrap.eth", - plugin: ensPlugin({ + uri: "wrap://ens/ens-resolver.polywrap.eth", + plugin: ensResolverPlugin({ addresses: { testnet: ensAddress, }, diff --git a/packages/js/client/package.json b/packages/js/client/package.json index 2f913eb351..ef40f6cafc 100644 --- a/packages/js/client/package.json +++ b/packages/js/client/package.json @@ -23,7 +23,7 @@ "dependencies": { "@polywrap/asyncify-js": "0.0.1-prealpha.88", "@polywrap/core-js": "0.0.1-prealpha.88", - "@polywrap/ens-plugin-js": "0.0.1-prealpha.88", + "@polywrap/ens-resolver-plugin-js": "0.0.1-prealpha.88", "@polywrap/ethereum-plugin-js": "0.0.1-prealpha.88", "@polywrap/fs-plugin-js": "0.0.1-prealpha.88", "@polywrap/graph-node-plugin-js": "0.0.1-prealpha.88", diff --git a/packages/js/client/scripts/extractPluginConfigs.ts b/packages/js/client/scripts/extractPluginConfigs.ts index 5805618e38..344b0b012f 100644 --- a/packages/js/client/scripts/extractPluginConfigs.ts +++ b/packages/js/client/scripts/extractPluginConfigs.ts @@ -27,8 +27,8 @@ const plugins: PluginConfigSource[] = [ files: [ { name: "build/index.d.ts", - interfaces: ["IpfsPluginConfig"] - } + interfaces: ["IpfsPluginConfig"], + }, ], }, { @@ -44,37 +44,42 @@ const plugins: PluginConfigSource[] = [ { name: "build/Connection.d.ts", interfaces: ["ConnectionConfig", "ConnectionConfigs"], - types: ["EthereumProvider", "EthereumSigner", "AccountIndex", "Address"], + types: [ + "EthereumProvider", + "EthereumSigner", + "AccountIndex", + "Address", + ], }, ], externals: [ { type: "Signer", - module: "ethers" + module: "ethers", }, { type: "ExternalProvider", - module: "@ethersproject/providers" + module: "@ethersproject/providers", }, { type: "JsonRpcProvider", - module: "@ethersproject/providers" - } - ] + module: "@ethersproject/providers", + }, + ], }, { name: "Ens", - module: "@polywrap/ens-plugin-js", - uri: "wrap://ens/ens.polywrap.eth", - config: "EnsPluginConfig", + module: "@polywrap/ens-resolver-plugin-js", + uri: "wrap://ens/ens-resolver.polywrap.eth", + config: "EnsResolverPluginConfig", files: [ { name: "build/index.d.ts", - interfaces: ["EnsPluginConfig", "Addresses"], + interfaces: ["EnsResolverPluginConfig", "Addresses"], types: ["Address"], - } - ] - } + }, + ], + }, ]; function main(): void { diff --git a/packages/js/client/src/__tests__/core/plugin-wrapper.spec.ts b/packages/js/client/src/__tests__/core/plugin-wrapper.spec.ts index 6aa93c0b03..294cec8660 100644 --- a/packages/js/client/src/__tests__/core/plugin-wrapper.spec.ts +++ b/packages/js/client/src/__tests__/core/plugin-wrapper.spec.ts @@ -9,7 +9,7 @@ jest.setTimeout(200000); const defaultPlugins = [ "wrap://ens/ipfs.polywrap.eth", - "wrap://ens/ens.polywrap.eth", + "wrap://ens/ens-resolver.polywrap.eth", "wrap://ens/ethereum.polywrap.eth", "wrap://ens/http.polywrap.eth", "wrap://ens/js-logger.polywrap.eth", diff --git a/packages/js/client/src/__tests__/core/resolveUri.spec.ts b/packages/js/client/src/__tests__/core/resolveUri.spec.ts index 95b101b533..4d1d191ff9 100644 --- a/packages/js/client/src/__tests__/core/resolveUri.spec.ts +++ b/packages/js/client/src/__tests__/core/resolveUri.spec.ts @@ -298,7 +298,7 @@ describe("resolveUri", () => { result: { uri: ipfsUri, wrapper: false, - implementationUri: new Uri("wrap://ens/ens.polywrap.eth"), + implementationUri: new Uri("wrap://ens/ens-resolver.polywrap.eth"), }, }, { @@ -442,7 +442,7 @@ describe("resolveUri", () => { result: { uri: ipfsUri, wrapper: false, - implementationUri: new Uri("wrap://ens/ens.polywrap.eth"), + implementationUri: new Uri("wrap://ens/ens-resolver.polywrap.eth"), }, }, { @@ -561,7 +561,7 @@ describe("resolveUri", () => { result: { uri: ipfsUri, wrapper: false, - implementationUri: new Uri("wrap://ens/ens.polywrap.eth"), + implementationUri: new Uri("wrap://ens/ens-resolver.polywrap.eth"), }, }, { @@ -697,7 +697,7 @@ describe("resolveUri", () => { result: { uri: ipfsUri, wrapper: false, - implementationUri: new Uri("wrap://ens/ens.polywrap.eth"), + implementationUri: new Uri("wrap://ens/ens-resolver.polywrap.eth"), }, }, { @@ -803,7 +803,7 @@ describe("resolveUri", () => { result: { uri: ipfsUri, wrapper: false, - implementationUri: new Uri("wrap://ens/ens.polywrap.eth"), + implementationUri: new Uri("wrap://ens/ens-resolver.polywrap.eth"), }, }, { diff --git a/packages/js/client/src/__tests__/core/sanity.spec.ts b/packages/js/client/src/__tests__/core/sanity.spec.ts index 24830635fb..16aad19296 100644 --- a/packages/js/client/src/__tests__/core/sanity.spec.ts +++ b/packages/js/client/src/__tests__/core/sanity.spec.ts @@ -17,7 +17,7 @@ describe("sanity", () => { expect(client.getRedirects()).toStrictEqual([]); expect(client.getPlugins().map((x) => x.uri)).toStrictEqual([ new Uri("wrap://ens/ipfs.polywrap.eth"), - new Uri("wrap://ens/ens.polywrap.eth"), + new Uri("wrap://ens/ens-resolver.polywrap.eth"), new Uri("wrap://ens/ethereum.polywrap.eth"), new Uri("wrap://ens/http.polywrap.eth"), new Uri("wrap://ens/js-logger.polywrap.eth"), @@ -31,7 +31,7 @@ describe("sanity", () => { interface: coreInterfaceUris.uriResolver, implementations: [ new Uri("wrap://ens/ipfs.polywrap.eth"), - new Uri("wrap://ens/ens.polywrap.eth"), + new Uri("wrap://ens/ens-resolver.polywrap.eth"), new Uri("wrap://ens/fs.polywrap.eth"), ], }, diff --git a/packages/js/client/src/default-client-config.ts b/packages/js/client/src/default-client-config.ts index 8443721c22..e4af2317b0 100644 --- a/packages/js/client/src/default-client-config.ts +++ b/packages/js/client/src/default-client-config.ts @@ -14,7 +14,7 @@ import { } from "@polywrap/core-js"; import { ipfsPlugin } from "@polywrap/ipfs-plugin-js"; import { ethereumPlugin } from "@polywrap/ethereum-plugin-js"; -import { ensPlugin } from "@polywrap/ens-plugin-js"; +import { ensResolverPlugin } from "@polywrap/ens-resolver-plugin-js"; import { graphNodePlugin } from "@polywrap/graph-node-plugin-js"; import { httpPlugin } from "@polywrap/http-plugin-js"; import { filesystemPlugin } from "@polywrap/fs-plugin-js"; @@ -40,8 +40,8 @@ export const getDefaultClientConfig = Tracer.traceFunc( }, // ENS is required for resolving domain to IPFS hashes { - uri: new Uri("wrap://ens/ens.polywrap.eth"), - plugin: ensPlugin({}), + uri: new Uri("wrap://ens/ens-resolver.polywrap.eth"), + plugin: ensResolverPlugin({}), }, { uri: new Uri("wrap://ens/ethereum.polywrap.eth"), @@ -86,7 +86,7 @@ export const getDefaultClientConfig = Tracer.traceFunc( interface: coreInterfaceUris.uriResolver, implementations: [ new Uri("wrap://ens/ipfs.polywrap.eth"), - new Uri("wrap://ens/ens.polywrap.eth"), + new Uri("wrap://ens/ens-resolver.polywrap.eth"), new Uri("wrap://ens/fs.polywrap.eth"), ], }, diff --git a/packages/js/client/src/pluginConfigs/Ens.ts b/packages/js/client/src/pluginConfigs/Ens.ts index 0f1d89ab5c..a0bb3383a8 100644 --- a/packages/js/client/src/pluginConfigs/Ens.ts +++ b/packages/js/client/src/pluginConfigs/Ens.ts @@ -2,10 +2,10 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ /* eslint-disable prettier/prettier */ -/// Types generated from @polywrap/ens-plugin-js build files: +/// Types generated from @polywrap/ens-resolver-plugin-js build files: /// build/index.d.ts -export interface EnsPluginConfig extends Record { +export interface EnsResolverPluginConfig extends Record { addresses?: Addresses; } diff --git a/packages/js/client/src/pluginConfigs/index.ts b/packages/js/client/src/pluginConfigs/index.ts index 7c6e9f06fc..e4887885fa 100644 --- a/packages/js/client/src/pluginConfigs/index.ts +++ b/packages/js/client/src/pluginConfigs/index.ts @@ -4,24 +4,24 @@ import { IpfsPluginConfig } from "./Ipfs"; import { EthereumPluginConfig } from "./Ethereum"; -import { EnsPluginConfig } from "./Ens"; +import { EnsResolverPluginConfig } from "./Ens"; interface PluginConfigs { ipfs?: IpfsPluginConfig; ethereum?: EthereumPluginConfig; - ens?: EnsPluginConfig; + ens?: EnsResolverPluginConfig; } const modules: Record = { ipfs: "@polywrap/ipfs-plugin-js", ethereum: "@polywrap/ethereum-plugin-js", - ens: "@polywrap/ens-plugin-js", + ens: "@polywrap/ens-resolver-plugin-js", }; const uris: Record = { ipfs: "wrap://ens/ipfs.polywrap.eth", ethereum: "wrap://ens/ethereum.polywrap.eth", - ens: "wrap://ens/ens.polywrap.eth", + ens: "wrap://ens/ens-resolver.polywrap.eth", }; export { PluginConfigs, modules, uris }; diff --git a/packages/js/plugins/ethereum/package.json b/packages/js/plugins/ethereum/package.json index 11a1e83096..4be391a79a 100644 --- a/packages/js/plugins/ethereum/package.json +++ b/packages/js/plugins/ethereum/package.json @@ -27,7 +27,7 @@ }, "devDependencies": { "@polywrap/client-js": "0.0.1-prealpha.88", - "@polywrap/ens-plugin-js": "0.0.1-prealpha.88", + "@polywrap/ens-resolver-plugin-js": "0.0.1-prealpha.88", "@polywrap/ipfs-plugin-js": "0.0.1-prealpha.88", "@polywrap/test-env-js": "0.0.1-prealpha.88", "@types/jest": "26.0.8", diff --git a/packages/js/plugins/ethereum/src/__tests__/e2e.spec.ts b/packages/js/plugins/ethereum/src/__tests__/e2e.spec.ts index 174c7adb95..75bc4095bc 100644 --- a/packages/js/plugins/ethereum/src/__tests__/e2e.spec.ts +++ b/packages/js/plugins/ethereum/src/__tests__/e2e.spec.ts @@ -2,14 +2,14 @@ import { ethereumPlugin } from ".."; import * as Schema from "../wrap"; import { PolywrapClient, defaultIpfsProviders } from "@polywrap/client-js"; -import { ensPlugin } from "@polywrap/ens-plugin-js"; +import { ensResolverPlugin } from "@polywrap/ens-resolver-plugin-js"; import { ipfsPlugin } from "@polywrap/ipfs-plugin-js"; import { initTestEnvironment, stopTestEnvironment, buildWrapper, ensAddresses, - providers + providers, } from "@polywrap/test-env-js"; import { Wallet } from "ethers"; @@ -37,15 +37,15 @@ describe("Ethereum Plugin", () => { let registrarAddress: string; const signer = "0x90F8bf6A479f320ead074411a4B0e7944Ea8c9C1"; - const wrapperPath = `${__dirname}/integration` - const uri = `fs/${wrapperPath}/build` + const wrapperPath = `${__dirname}/integration`; + const uri = `fs/${wrapperPath}/build`; beforeAll(async () => { await initTestEnvironment(); ensAddress = ensAddresses.ensAddress; resolverAddress = ensAddresses.resolverAddress; - registrarAddress = ensAddresses.registrarAddress + registrarAddress = ensAddresses.registrarAddress; client = new PolywrapClient({ plugins: [ @@ -71,8 +71,8 @@ describe("Ethereum Plugin", () => { }), }, { - uri: "wrap://ens/ens.polywrap.eth", - plugin: ensPlugin({ + uri: "wrap://ens/ens-resolver.polywrap.eth", + plugin: ensResolverPlugin({ query: { addresses: { testnet: ensAddress, diff --git a/packages/js/plugins/filesystem/package.json b/packages/js/plugins/filesystem/package.json index 50fb8e4582..edca15d179 100644 --- a/packages/js/plugins/filesystem/package.json +++ b/packages/js/plugins/filesystem/package.json @@ -24,7 +24,7 @@ }, "devDependencies": { "@polywrap/client-js": "0.0.1-prealpha.88", - "@polywrap/ens-plugin-js": "0.0.1-prealpha.88", + "@polywrap/ens-resolver-plugin-js": "0.0.1-prealpha.88", "@polywrap/ethereum-plugin-js": "0.0.1-prealpha.88", "@polywrap/ipfs-plugin-js": "0.0.1-prealpha.88", "@polywrap/test-cases": "0.0.1-prealpha.88", diff --git a/packages/js/plugins/filesystem/src/__tests__/e2e.spec.ts b/packages/js/plugins/filesystem/src/__tests__/e2e.spec.ts index 03b324aafd..36bd5692a4 100644 --- a/packages/js/plugins/filesystem/src/__tests__/e2e.spec.ts +++ b/packages/js/plugins/filesystem/src/__tests__/e2e.spec.ts @@ -13,7 +13,7 @@ import { } from "@polywrap/client-js"; import { GetPathToTestWrappers } from "@polywrap/test-cases"; import { ipfsPlugin } from "@polywrap/ipfs-plugin-js"; -import { ensPlugin } from "@polywrap/ens-plugin-js"; +import { ensResolverPlugin } from "@polywrap/ens-resolver-plugin-js"; import { ethereumPlugin } from "@polywrap/ethereum-plugin-js"; import fs from "fs"; import path from "path"; @@ -30,7 +30,7 @@ describe("Filesystem plugin", () => { plugins: [ { uri: "wrap://ens/fs.polywrap.eth", - plugin: filesystemPlugin({ }), + plugin: filesystemPlugin({}), }, // IPFS is required for downloading Polywrap packages { @@ -42,8 +42,8 @@ describe("Filesystem plugin", () => { }, // ENS is required for resolving domain to IPFS hashes { - uri: "wrap://ens/ens.polywrap.eth", - plugin: ensPlugin({ + uri: "wrap://ens/ens-resolver.polywrap.eth", + plugin: ensResolverPlugin({ addresses: { testnet: ensAddresses.ensAddress, }, @@ -100,7 +100,10 @@ describe("Filesystem plugin", () => { // get the schema const schema = await client.getSchema(fsUri); - const expectedSchema = await fs.promises.readFile(`${fsPath}/schema.graphql`, "utf-8"); + const expectedSchema = await fs.promises.readFile( + `${fsPath}/schema.graphql`, + "utf-8" + ); expect(schema).toBe(expectedSchema); @@ -111,8 +114,14 @@ describe("Filesystem plugin", () => { expect(manifest.language).toBe("wasm/assemblyscript"); // get a file - const file = await client.getFile(fsUri, { path: "polywrap.json", encoding: "utf-8" }); - const expectedFile = await fs.promises.readFile(`${fsPath}/polywrap.json`, "utf-8"); + const file = await client.getFile(fsUri, { + path: "polywrap.json", + encoding: "utf-8", + }); + const expectedFile = await fs.promises.readFile( + `${fsPath}/polywrap.json`, + "utf-8" + ); expect(file).toBe(expectedFile); }); diff --git a/packages/js/plugins/http/package.json b/packages/js/plugins/http/package.json index b203138174..9877b96bbf 100644 --- a/packages/js/plugins/http/package.json +++ b/packages/js/plugins/http/package.json @@ -25,7 +25,7 @@ }, "devDependencies": { "@polywrap/client-js": "0.0.1-prealpha.88", - "@polywrap/ens-plugin-js": "0.0.1-prealpha.88", + "@polywrap/ens-resolver-plugin-js": "0.0.1-prealpha.88", "@polywrap/ipfs-plugin-js": "0.0.1-prealpha.88", "@polywrap/test-env-js": "0.0.1-prealpha.88", "@types/jest": "26.0.8", diff --git a/packages/js/plugins/ens/README.md b/packages/js/plugins/uri-resolvers/ens/README.md similarity index 100% rename from packages/js/plugins/ens/README.md rename to packages/js/plugins/uri-resolvers/ens/README.md diff --git a/packages/js/plugins/ens/package.json b/packages/js/plugins/uri-resolvers/ens/package.json similarity index 82% rename from packages/js/plugins/ens/package.json rename to packages/js/plugins/uri-resolvers/ens/package.json index 63417b0a91..a01e671a80 100644 --- a/packages/js/plugins/ens/package.json +++ b/packages/js/plugins/uri-resolvers/ens/package.json @@ -1,5 +1,5 @@ { - "name": "@polywrap/ens-plugin-js", + "name": "@polywrap/ens-resolver-plugin-js", "description": "Polywrap ENS Javascript Plugin", "version": "0.0.1-prealpha.88", "license": "MIT", @@ -13,8 +13,8 @@ ], "scripts": { "build": "rimraf ./build && yarn codegen && tsc --project tsconfig.build.json", - "codegen": "node ../../../../dependencies/node_modules/polywrap/bin/polywrap plugin codegen", - "lint": "eslint --color -c ../../../../.eslintrc.js src/", + "codegen": "node ../../../../../dependencies/node_modules/polywrap/bin/polywrap plugin codegen", + "lint": "eslint --color -c ../../../../../.eslintrc.js src/", "test": "jest --passWithNoTests --runInBand --verbose", "test:ci": "jest --passWithNoTests --runInBand --verbose", "test:watch": "jest --watch --passWithNoTests --verbose" diff --git a/packages/js/plugins/ens/polywrap.plugin.yaml b/packages/js/plugins/uri-resolvers/ens/polywrap.plugin.yaml similarity index 64% rename from packages/js/plugins/ens/polywrap.plugin.yaml rename to packages/js/plugins/uri-resolvers/ens/polywrap.plugin.yaml index 8e6d1877cd..5d31e63ca3 100644 --- a/packages/js/plugins/ens/polywrap.plugin.yaml +++ b/packages/js/plugins/uri-resolvers/ens/polywrap.plugin.yaml @@ -1,8 +1,8 @@ format: 0.0.1-prealpha.3 language: plugin/typescript -name: Ens +name: EnsUriResolver module: ./src/index.ts schema: ./src/schema.graphql import_redirects: - uri: "ens/uri-resolver.core.polywrap.eth" - schema: ../../../core-interfaces/uri-resolver/src/query.graphql + schema: ../../../../core-interfaces/uri-resolver/src/query.graphql diff --git a/packages/js/plugins/ens/src/__tests__/e2e.spec.ts b/packages/js/plugins/uri-resolvers/ens/src/__tests__/e2e.spec.ts similarity index 100% rename from packages/js/plugins/ens/src/__tests__/e2e.spec.ts rename to packages/js/plugins/uri-resolvers/ens/src/__tests__/e2e.spec.ts diff --git a/packages/js/plugins/ens/src/index.ts b/packages/js/plugins/uri-resolvers/ens/src/index.ts similarity index 91% rename from packages/js/plugins/ens/src/index.ts rename to packages/js/plugins/uri-resolvers/ens/src/index.ts index 8bc334fd9c..ab27ece27d 100644 --- a/packages/js/plugins/ens/src/index.ts +++ b/packages/js/plugins/uri-resolvers/ens/src/index.ts @@ -20,14 +20,14 @@ export interface Addresses { [network: string]: Address; } -export interface EnsPluginConfig extends Record { +export interface EnsResolverPluginConfig extends Record { addresses?: Addresses; } -export class EnsPlugin extends Module { +export class EnsResolverPlugin extends Module { public static defaultAddress = "0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e"; - constructor(config: EnsPluginConfig) { + constructor(config: EnsResolverPluginConfig) { super(config); // Sanitize address @@ -78,7 +78,7 @@ export class EnsPlugin extends Module { content: "function content(bytes32 nodehash) view returns (bytes32)", }; - let ensAddress = EnsPlugin.defaultAddress; + let ensAddress = EnsResolverPlugin.defaultAddress; // Remove the ENS URI scheme & authority domain = domain.replace("wrap://", ""); @@ -199,13 +199,13 @@ export class EnsPlugin extends Module { } } -export const ensPlugin: PluginFactory = ( - opts: EnsPluginConfig +export const ensResolverPlugin: PluginFactory = ( + opts: EnsResolverPluginConfig ) => { return { - factory: () => new EnsPlugin(opts), + factory: () => new EnsResolverPlugin(opts), manifest, }; }; -export const plugin = ensPlugin; +export const plugin = ensResolverPlugin; diff --git a/packages/js/plugins/ens/src/schema.graphql b/packages/js/plugins/uri-resolvers/ens/src/schema.graphql similarity index 100% rename from packages/js/plugins/ens/src/schema.graphql rename to packages/js/plugins/uri-resolvers/ens/src/schema.graphql diff --git a/packages/js/plugins/ens/tsconfig.build.json b/packages/js/plugins/uri-resolvers/ens/tsconfig.build.json similarity index 100% rename from packages/js/plugins/ens/tsconfig.build.json rename to packages/js/plugins/uri-resolvers/ens/tsconfig.build.json diff --git a/packages/js/plugins/ens/tsconfig.json b/packages/js/plugins/uri-resolvers/ens/tsconfig.json similarity index 73% rename from packages/js/plugins/ens/tsconfig.json rename to packages/js/plugins/uri-resolvers/ens/tsconfig.json index 85d516ce30..57a0c4369c 100644 --- a/packages/js/plugins/ens/tsconfig.json +++ b/packages/js/plugins/uri-resolvers/ens/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../../tsconfig", + "extends": "../../../../../tsconfig", "compilerOptions": { "outDir": "build" }, diff --git a/packages/js/react/package.json b/packages/js/react/package.json index 6b2af6f7fa..10b0109ad3 100644 --- a/packages/js/react/package.json +++ b/packages/js/react/package.json @@ -23,7 +23,7 @@ "@polywrap/core-js": "0.0.1-prealpha.88" }, "devDependencies": { - "@polywrap/ens-plugin-js": "0.0.1-prealpha.88", + "@polywrap/ens-resolver-plugin-js": "0.0.1-prealpha.88", "@polywrap/ethereum-plugin-js": "0.0.1-prealpha.88", "@polywrap/ipfs-plugin-js": "0.0.1-prealpha.88", "@polywrap/test-cases": "0.0.1-prealpha.88", diff --git a/packages/js/react/src/__tests__/plugins.ts b/packages/js/react/src/__tests__/plugins.ts index 59bdf2d77f..d3544938e1 100644 --- a/packages/js/react/src/__tests__/plugins.ts +++ b/packages/js/react/src/__tests__/plugins.ts @@ -1,6 +1,6 @@ import { PluginRegistration } from "@polywrap/core-js"; import { defaultIpfsProviders } from "@polywrap/client-js"; -import { plugin as ensPlugin } from "@polywrap/ens-plugin-js"; +import { plugin as ensResolverPlugin } from "@polywrap/ens-resolver-plugin-js"; import { plugin as ethereumPlugin } from "@polywrap/ethereum-plugin-js"; import { plugin as ipfsPlugin } from "@polywrap/ipfs-plugin-js"; @@ -28,8 +28,8 @@ export function createPlugins( }), }, { - uri: "wrap://ens/ens.polywrap.eth", - plugin: ensPlugin({ + uri: "wrap://ens/ens-resolver.polywrap.eth", + plugin: ensResolverPlugin({ addresses: { testnet: ensAddress, }, diff --git a/packages/templates/wasm/assemblyscript/src/__tests__/utils.ts b/packages/templates/wasm/assemblyscript/src/__tests__/utils.ts index 8153057edd..3d2bb0b229 100644 --- a/packages/templates/wasm/assemblyscript/src/__tests__/utils.ts +++ b/packages/templates/wasm/assemblyscript/src/__tests__/utils.ts @@ -1,12 +1,12 @@ import { ClientConfig } from "@polywrap/client-js"; -import { ensPlugin } from "@polywrap/ens-plugin-js"; +import { ensResolverPlugin } from "@polywrap/ens-resolver-plugin-js"; import { ethereumPlugin } from "@polywrap/ethereum-plugin-js"; import { ipfsPlugin } from "@polywrap/ipfs-plugin-js"; export function getPlugins( ethereum: string, ipfs: string, - ensAddress: string, + ensAddress: string ): Partial { return { redirects: [], @@ -16,8 +16,8 @@ export function getPlugins( plugin: ipfsPlugin({ provider: ipfs }), }, { - uri: "wrap://ens/ens.polywrap.eth", - plugin: ensPlugin({ addresses: { testnet: ensAddress } }), + uri: "wrap://ens/ens-resolver.polywrap.eth", + plugin: ensResolverPlugin({ addresses: { testnet: ensAddress } }), }, { uri: "wrap://ens/ethereum.polywrap.eth", From 46621d4d5dddf715c4f092fbe1796a7140f82e9f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9CPileks=E2=80=9D?= Date: Fri, 24 Jun 2022 11:02:51 +0200 Subject: [PATCH 2/4] Add test for ens resolver --- .../plugins/uri-resolvers/ens/jest.config.js | 11 ++ .../ens/src/__tests__/e2e.spec.ts | 100 +++++++++++++++++- 2 files changed, 107 insertions(+), 4 deletions(-) create mode 100644 packages/js/plugins/uri-resolvers/ens/jest.config.js diff --git a/packages/js/plugins/uri-resolvers/ens/jest.config.js b/packages/js/plugins/uri-resolvers/ens/jest.config.js new file mode 100644 index 0000000000..2ea443aa23 --- /dev/null +++ b/packages/js/plugins/uri-resolvers/ens/jest.config.js @@ -0,0 +1,11 @@ +module.exports = { + roots: ["/src"], + testMatch: [ + "**/__tests__/**/*.+(ts|tsx|js)", + "**/?(*.)+(spec|test).+(ts|tsx|js)", + ], + transform: { + "^.+\\.(ts|tsx)$": "ts-jest", + }, + testEnvironment: "node", +}; diff --git a/packages/js/plugins/uri-resolvers/ens/src/__tests__/e2e.spec.ts b/packages/js/plugins/uri-resolvers/ens/src/__tests__/e2e.spec.ts index e9397a2000..de2ff407ae 100644 --- a/packages/js/plugins/uri-resolvers/ens/src/__tests__/e2e.spec.ts +++ b/packages/js/plugins/uri-resolvers/ens/src/__tests__/e2e.spec.ts @@ -1,5 +1,97 @@ -/* eslint-disable @typescript-eslint/no-empty-function */ -// TODO: create client, add plugin, test all the methods -describe("TODO", () => { - it("TODO", () => {}); +import { PolywrapClient, defaultIpfsProviders } from "@polywrap/client-js"; +import { GetPathToTestWrappers } from "@polywrap/test-cases"; +import { + initTestEnvironment, + providers, + ensAddresses, + stopTestEnvironment, + buildAndDeployWrapper, +} from "@polywrap/test-env-js"; + +import { ensResolverPlugin } from ".."; +import { ipfsPlugin } from "@polywrap/ipfs-plugin-js"; +import { ethereumPlugin } from "@polywrap/ethereum-plugin-js"; + +import fs from "fs"; +import path from "path"; + +jest.setTimeout(300000); + +describe("ENS Resolver Plugin", () => { + let client: PolywrapClient; + let wrapperEnsDomain: string; + + const wrapperAbsPath = `${GetPathToTestWrappers()}/wasm-as/simple-storage`; + + beforeAll(async () => { + await initTestEnvironment(); + + let { ensDomain } = await buildAndDeployWrapper({ + wrapperAbsPath: wrapperAbsPath, + ipfsProvider: providers.ipfs, + ethereumProvider: providers.ethereum, + ensName: "simple-storage.eth", + }); + + wrapperEnsDomain = ensDomain; + + client = new PolywrapClient({ + plugins: [ + { + uri: "wrap://ens/ipfs.polywrap.eth", + plugin: ipfsPlugin({ + provider: providers.ipfs, + fallbackProviders: defaultIpfsProviders, + }), + }, + { + uri: "wrap://ens/ethereum.polywrap.eth", + plugin: ethereumPlugin({ + networks: { + testnet: { + provider: providers.ethereum, + }, + }, + defaultNetwork: "testnet", + }), + }, + { + uri: "wrap://ens/ens-resolver.polywrap.eth", + plugin: ensResolverPlugin({ + addresses: { + testnet: ensAddresses.ensAddress, + }, + }), + }, + ], + }); + }); + + afterAll(async () => { + await stopTestEnvironment(); + }); + + it("Should successfully resolve a deployed wrapper - e2e", async () => { + const wrapperUri = `ens/testnet/${wrapperEnsDomain}`; + const resolution = await client.resolveUri(wrapperUri); + + expect(resolution.error).toBeFalsy(); + expect(resolution.wrapper).toBeTruthy(); + + const expectedSchema = await fs.promises.readFile( + path.resolve(wrapperAbsPath, "build/schema.graphql"), + { encoding: "utf-8" } + ); + + const schema = await resolution.wrapper?.getSchema(client); + + expect(schema).toEqual(expectedSchema); + + const manifest = await resolution.wrapper?.getManifest( + { type: "polywrap" }, + client + ); + + expect(manifest?.name).toBe("SimpleStorage"); + }); }); From 22c2bceaf40cbe7454386cc3ef15f1185235b6bd Mon Sep 17 00:00:00 2001 From: dOrgJelli Date: Mon, 27 Jun 2022 13:47:08 -0700 Subject: [PATCH 3/4] rename to ens-resolver --- packages/js/plugins/uri-resolvers/{ens => ens-resolver}/README.md | 0 .../js/plugins/uri-resolvers/{ens => ens-resolver}/jest.config.js | 0 .../js/plugins/uri-resolvers/{ens => ens-resolver}/package.json | 0 .../uri-resolvers/{ens => ens-resolver}/polywrap.plugin.yaml | 0 .../uri-resolvers/{ens => ens-resolver}/src/__tests__/e2e.spec.ts | 0 .../js/plugins/uri-resolvers/{ens => ens-resolver}/src/index.ts | 0 .../uri-resolvers/{ens => ens-resolver}/src/schema.graphql | 0 .../uri-resolvers/{ens => ens-resolver}/tsconfig.build.json | 0 .../js/plugins/uri-resolvers/{ens => ens-resolver}/tsconfig.json | 0 9 files changed, 0 insertions(+), 0 deletions(-) rename packages/js/plugins/uri-resolvers/{ens => ens-resolver}/README.md (100%) rename packages/js/plugins/uri-resolvers/{ens => ens-resolver}/jest.config.js (100%) rename packages/js/plugins/uri-resolvers/{ens => ens-resolver}/package.json (100%) rename packages/js/plugins/uri-resolvers/{ens => ens-resolver}/polywrap.plugin.yaml (100%) rename packages/js/plugins/uri-resolvers/{ens => ens-resolver}/src/__tests__/e2e.spec.ts (100%) rename packages/js/plugins/uri-resolvers/{ens => ens-resolver}/src/index.ts (100%) rename packages/js/plugins/uri-resolvers/{ens => ens-resolver}/src/schema.graphql (100%) rename packages/js/plugins/uri-resolvers/{ens => ens-resolver}/tsconfig.build.json (100%) rename packages/js/plugins/uri-resolvers/{ens => ens-resolver}/tsconfig.json (100%) diff --git a/packages/js/plugins/uri-resolvers/ens/README.md b/packages/js/plugins/uri-resolvers/ens-resolver/README.md similarity index 100% rename from packages/js/plugins/uri-resolvers/ens/README.md rename to packages/js/plugins/uri-resolvers/ens-resolver/README.md diff --git a/packages/js/plugins/uri-resolvers/ens/jest.config.js b/packages/js/plugins/uri-resolvers/ens-resolver/jest.config.js similarity index 100% rename from packages/js/plugins/uri-resolvers/ens/jest.config.js rename to packages/js/plugins/uri-resolvers/ens-resolver/jest.config.js diff --git a/packages/js/plugins/uri-resolvers/ens/package.json b/packages/js/plugins/uri-resolvers/ens-resolver/package.json similarity index 100% rename from packages/js/plugins/uri-resolvers/ens/package.json rename to packages/js/plugins/uri-resolvers/ens-resolver/package.json diff --git a/packages/js/plugins/uri-resolvers/ens/polywrap.plugin.yaml b/packages/js/plugins/uri-resolvers/ens-resolver/polywrap.plugin.yaml similarity index 100% rename from packages/js/plugins/uri-resolvers/ens/polywrap.plugin.yaml rename to packages/js/plugins/uri-resolvers/ens-resolver/polywrap.plugin.yaml diff --git a/packages/js/plugins/uri-resolvers/ens/src/__tests__/e2e.spec.ts b/packages/js/plugins/uri-resolvers/ens-resolver/src/__tests__/e2e.spec.ts similarity index 100% rename from packages/js/plugins/uri-resolvers/ens/src/__tests__/e2e.spec.ts rename to packages/js/plugins/uri-resolvers/ens-resolver/src/__tests__/e2e.spec.ts diff --git a/packages/js/plugins/uri-resolvers/ens/src/index.ts b/packages/js/plugins/uri-resolvers/ens-resolver/src/index.ts similarity index 100% rename from packages/js/plugins/uri-resolvers/ens/src/index.ts rename to packages/js/plugins/uri-resolvers/ens-resolver/src/index.ts diff --git a/packages/js/plugins/uri-resolvers/ens/src/schema.graphql b/packages/js/plugins/uri-resolvers/ens-resolver/src/schema.graphql similarity index 100% rename from packages/js/plugins/uri-resolvers/ens/src/schema.graphql rename to packages/js/plugins/uri-resolvers/ens-resolver/src/schema.graphql diff --git a/packages/js/plugins/uri-resolvers/ens/tsconfig.build.json b/packages/js/plugins/uri-resolvers/ens-resolver/tsconfig.build.json similarity index 100% rename from packages/js/plugins/uri-resolvers/ens/tsconfig.build.json rename to packages/js/plugins/uri-resolvers/ens-resolver/tsconfig.build.json diff --git a/packages/js/plugins/uri-resolvers/ens/tsconfig.json b/packages/js/plugins/uri-resolvers/ens-resolver/tsconfig.json similarity index 100% rename from packages/js/plugins/uri-resolvers/ens/tsconfig.json rename to packages/js/plugins/uri-resolvers/ens-resolver/tsconfig.json From f370e88d383048aa14ceb90e464d7717525ebe47 Mon Sep 17 00:00:00 2001 From: dOrgJelli Date: Mon, 27 Jun 2022 13:54:35 -0700 Subject: [PATCH 4/4] update type codegen --- packages/js/client/src/pluginConfigs/Ens.ts | 2 +- yarn.lock | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/packages/js/client/src/pluginConfigs/Ens.ts b/packages/js/client/src/pluginConfigs/Ens.ts index 35c30a91df..555cec3119 100644 --- a/packages/js/client/src/pluginConfigs/Ens.ts +++ b/packages/js/client/src/pluginConfigs/Ens.ts @@ -5,7 +5,7 @@ /// Types generated from @polywrap/ens-resolver-plugin-js build files: /// build/index.d.ts -export interface EnsPluginConfig { +export interface EnsResolverPluginConfig { addresses?: Addresses; } diff --git a/yarn.lock b/yarn.lock index 22fe67aa2c..f62d03de5c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3284,6 +3284,16 @@ "@opentelemetry/semantic-conventions" "0.20.0" "@opentelemetry/tracing" "0.20.0" +"@polywrap/ens-plugin-js@0.0.1-prealpha.89": + version "0.0.1-prealpha.89" + resolved "https://registry.yarnpkg.com/@polywrap/ens-plugin-js/-/ens-plugin-js-0.0.1-prealpha.89.tgz#98acafe2f9e4a009c85030d4011925517ff30086" + integrity sha512-a/NgoxPd9zXJLRxcQUc0qJlfofBJDC9B4dpiG7bxyRiB/W4aKa1w6m9HprwWT5weFYQ43nK0bHPMNYh5FDnUCA== + dependencies: + "@ethersproject/address" "5.0.7" + "@ethersproject/basex" "5.0.7" + "@polywrap/core-js" "0.0.1-prealpha.89" + ethers "5.0.7" + "@sinonjs/commons@^1.7.0": version "1.8.3" resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.3.tgz#3802ddd21a50a949b6721ddd72da36e67e7f1b2d"