Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
91 changes: 55 additions & 36 deletions packages/js/client-config-builder/src/bundles/getDefaultConfig.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,38 @@ import { loggerPlugin } from "@polywrap/logger-plugin-js";
import { fileSystemResolverPlugin } from "@polywrap/fs-resolver-plugin-js";
import { concurrentPromisePlugin } from "concurrent-plugin-js";

export const defaultIpfsProviders = [
"https://ipfs.wrappers.io",
"https://ipfs.io",
];

export const defaultWrappers = {
sha3: "wrap://ens/goerli/sha3.wrappers.eth",
uts46: "wrap://ens/goerli/uts46-lite.wrappers.eth",
graphNode: "wrap://ens/goerli/graph-node.wrappers.eth",
ensTextRecordResolver:
"wrap://ipfs/QmfRCVA1MSAjUbrXXjya4xA9QHkbWeiKRsT7Um1cvrR7FY",
};

export const defaultPackages = {
ipfs: "wrap://ens/ipfs.polywrap.eth",
ensResolver: "wrap://ens/ens-resolver.polywrap.eth",
ethereum: "wrap://ens/ethereum.polywrap.eth",
http: "wrap://ens/http.polywrap.eth",
httpResolver: "wrap://ens/http-resolver.polywrap.eth",
logger: "wrap://plugin/logger",
fileSystem: "wrap://ens/fs.polywrap.eth",
fileSystemResolver: "wrap://ens/fs-resolver.polywrap.eth",
ipfsResolver: "wrap://ens/ipfs-resolver.polywrap.eth",
concurrent: "wrap://plugin/concurrent",
};

export const defaultInterfaces = {
uriResolver: "wrap://ens/uri-resolver.core.polywrap.eth",
concurrent: "wrap://ens/goerli/interface.concurrent.wrappers.eth",
logger: "wrap://ens/wrappers.polywrap.eth:logger@1.0.0",
};

export const getDefaultConfig = (): ClientConfig<Uri> => {
return {
envs: [
Expand All @@ -26,7 +58,7 @@ export const getDefaultConfig = (): ClientConfig<Uri> => {
},
},
{
uri: new Uri("wrap://ens/ipfs.polywrap.eth"),
uri: new Uri(defaultPackages.ipfs),
env: {
provider: defaultIpfsProviders[0],
fallbackProviders: defaultIpfsProviders.slice(1),
Expand All @@ -47,29 +79,28 @@ export const getDefaultConfig = (): ClientConfig<Uri> => {
to: new Uri(defaultWrappers.graphNode),
},
{
from: new Uri("wrap://ens/wrappers.polywrap.eth:logger@1.0.0"),
to: new Uri("wrap://plugin/logger"),
from: new Uri(defaultInterfaces.logger),
to: new Uri(defaultPackages.logger),
},
],
interfaces: [
{
interface: new Uri("wrap://ens/uri-resolver.core.polywrap.eth"),
interface: new Uri(defaultInterfaces.uriResolver),
implementations: [
new Uri("wrap://ens/ipfs-resolver.polywrap.eth"),
new Uri("wrap://ens/ens-resolver.polywrap.eth"),
new Uri("wrap://ens/fs-resolver.polywrap.eth"),
new Uri("wrap://ens/http-resolver.polywrap.eth"),
// ens-text-record-resolver
new Uri("wrap://ipfs/QmfRCVA1MSAjUbrXXjya4xA9QHkbWeiKRsT7Um1cvrR7FY"),
new Uri(defaultPackages.ipfsResolver),
new Uri(defaultPackages.ensResolver),
new Uri(defaultPackages.fileSystemResolver),
new Uri(defaultPackages.httpResolver),
new Uri(defaultWrappers.ensTextRecordResolver),
],
},
{
interface: new Uri("wrap://ens/wrappers.polywrap.eth:logger@1.0.0"),
implementations: [new Uri("wrap://plugin/logger")],
interface: new Uri(defaultInterfaces.logger),
implementations: [new Uri(defaultPackages.logger)],
},
{
interface: new Uri(defaultWrappers.concurrentInterface),
implementations: [new Uri("wrap://plugin/concurrent")],
interface: new Uri(defaultInterfaces.concurrent),
implementations: [new Uri(defaultPackages.concurrent)],
},
],
packages: getDefaultPlugins(),
Expand All @@ -78,32 +109,20 @@ export const getDefaultConfig = (): ClientConfig<Uri> => {
};
};

export const defaultIpfsProviders = [
"https://ipfs.wrappers.io",
"https://ipfs.io",
];

export const defaultWrappers = {
sha3: "wrap://ens/goerli/sha3.wrappers.eth",
uts46: "wrap://ens/goerli/uts46-lite.wrappers.eth",
graphNode: "wrap://ens/goerli/graph-node.wrappers.eth",
concurrentInterface: "wrap://ens/goerli/interface.concurrent.wrappers.eth",
};

export const getDefaultPlugins = (): IUriPackage<Uri>[] => {
return [
// IPFS is required for downloading Polywrap packages
{
uri: new Uri("wrap://ens/ipfs.polywrap.eth"),
uri: new Uri(defaultPackages.ipfs),
package: ipfsPlugin({}),
},
// ENS is required for resolving domain to IPFS hashes
{
uri: new Uri("wrap://ens/ens-resolver.polywrap.eth"),
uri: new Uri(defaultPackages.ensResolver),
package: ensResolverPlugin({}),
},
{
uri: new Uri("wrap://ens/ethereum.polywrap.eth"),
uri: new Uri(defaultPackages.ethereum),
package: ethereumPlugin({
connections: new Connections({
networks: {
Expand All @@ -120,32 +139,32 @@ export const getDefaultPlugins = (): IUriPackage<Uri>[] => {
}),
},
{
uri: new Uri("wrap://ens/http.polywrap.eth"),
uri: new Uri(defaultPackages.http),
package: httpPlugin({}),
},
{
uri: new Uri("wrap://ens/http-resolver.polywrap.eth"),
uri: new Uri(defaultPackages.httpResolver),
package: httpResolverPlugin({}),
},
{
uri: new Uri("wrap://plugin/logger"),
uri: new Uri(defaultPackages.logger),
// TODO: remove this once types are updated
package: loggerPlugin({}) as IWrapPackage,
},
{
uri: new Uri("wrap://ens/fs.polywrap.eth"),
uri: new Uri(defaultPackages.fileSystem),
package: fileSystemPlugin({}),
},
{
uri: new Uri("wrap://ens/fs-resolver.polywrap.eth"),
uri: new Uri(defaultPackages.fileSystemResolver),
package: fileSystemResolverPlugin({}),
},
{
uri: new Uri("wrap://ens/ipfs-resolver.polywrap.eth"),
uri: new Uri(defaultPackages.ipfsResolver),
package: ipfsResolverPlugin({}),
},
{
uri: new Uri("wrap://plugin/concurrent"),
uri: new Uri(defaultPackages.concurrent),
package: concurrentPromisePlugin({}),
},
];
Expand Down