From 08a6f51bb27fbb65f197abb836d66dadeb832c77 Mon Sep 17 00:00:00 2001 From: Jure Bogunovic Date: Fri, 14 Apr 2023 17:14:31 +0200 Subject: [PATCH 1/8] added loadWrapper to core client interface --- packages/js/core/src/types/CoreClient.ts | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/packages/js/core/src/types/CoreClient.ts b/packages/js/core/src/types/CoreClient.ts index da099a6b0f..bd068129c2 100644 --- a/packages/js/core/src/types/CoreClient.ts +++ b/packages/js/core/src/types/CoreClient.ts @@ -1,9 +1,12 @@ -import { Invoker, Uri, WrapError, WrapperEnv } from "."; +import { Invoker, Uri, WrapError, Wrapper, WrapperEnv } from "."; import { IUriResolutionContext, IUriResolver } from "../uri-resolution"; import { UriResolverHandler } from "./UriResolver"; import { ReadonlyUriMap } from "./UriMap"; -import { WrapManifest } from "@polywrap/wrap-manifest-types-js"; +import { + DeserializeManifestOptions, + WrapManifest, +} from "@polywrap/wrap-manifest-types-js"; import { Result } from "@polywrap/result"; // $start: CoreClient.ts @@ -117,6 +120,21 @@ export interface CoreClient extends Invoker, UriResolverHandler { uri: Uri, options: GetImplementationsOptions ): Promise>; + + /** + * Resolve a URI to a wrap package or wrapper. + * If the URI resolves to wrap package, load the wrapper. + * + * @param uri - the Uri to resolve + * @param resolutionContext? - a resolution context + * @param options - { noValidate?: boolean } + * @returns A Promise with a Result containing a Wrapper or Error + */ + loadWrapper( + uri: Uri, + resolutionContext?: IUriResolutionContext, + options?: DeserializeManifestOptions + ): Promise>; } // $end From 7b0e1bf566af45d33925f0091c96244577727ed4 Mon Sep 17 00:00:00 2001 From: Jure Bogunovic Date: Fri, 14 Apr 2023 17:17:20 +0200 Subject: [PATCH 2/8] createSubContext now uses a new map object and does not include history --- .../js/core/src/uri-resolution/UriResolutionContext.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/js/core/src/uri-resolution/UriResolutionContext.ts b/packages/js/core/src/uri-resolution/UriResolutionContext.ts index 98a263f05b..0888a4115b 100644 --- a/packages/js/core/src/uri-resolution/UriResolutionContext.ts +++ b/packages/js/core/src/uri-resolution/UriResolutionContext.ts @@ -72,6 +72,11 @@ export class UriResolutionContext implements IUriResolutionContext { } createSubContext(): IUriResolutionContext { - return new UriResolutionContext(this._resolvingUriMap, this._history); + const map = new Map(); + // Copy the resolvingUriMap to the new map, so that changes to the new map don't affect the old map + for (const key of this._resolvingUriMap.keys()) { + this._resolvingUriMap.get(key) && map.set(key, true); + } + return new UriResolutionContext(map, []); } } From e319e89d515da207658e8dc6b095c7f36eda03d5 Mon Sep 17 00:00:00 2001 From: Jure Bogunovic Date: Fri, 14 Apr 2023 22:07:06 +0200 Subject: [PATCH 3/8] wasm wrapper properly passes resolution context on subinvokes --- packages/js/wasm/src/WasmWrapper.ts | 3 + packages/js/wasm/src/imports.ts | 86 +++++++++++++++++++++++++---- 2 files changed, 77 insertions(+), 12 deletions(-) diff --git a/packages/js/wasm/src/WasmWrapper.ts b/packages/js/wasm/src/WasmWrapper.ts index d04ab51101..6b9724eb4a 100644 --- a/packages/js/wasm/src/WasmWrapper.ts +++ b/packages/js/wasm/src/WasmWrapper.ts @@ -19,6 +19,7 @@ import { WrapError, WrapErrorCode, ErrorSource, + IUriResolutionContext, } from "@polywrap/core-js"; import { Result, ResultErr, ResultOk } from "@polywrap/result"; @@ -42,6 +43,7 @@ export interface State { invokeResult?: Result; getImplementationsResult?: Uint8Array; env: Uint8Array; + resolutionContext?: IUriResolutionContext; } const EMPTY_ENCODED_OBJECT = msgpackEncode({}); @@ -162,6 +164,7 @@ export class WasmWrapper implements Wrapper { : msgpackEncode(args) : EMPTY_ENCODED_OBJECT, env: options.env ? msgpackEncode(options.env) : EMPTY_ENCODED_OBJECT, + resolutionContext: options.resolutionContext, }; const abortWithInvokeAborted = ( diff --git a/packages/js/wasm/src/imports.ts b/packages/js/wasm/src/imports.ts index 6eed941bdd..aadd47b514 100644 --- a/packages/js/wasm/src/imports.ts +++ b/packages/js/wasm/src/imports.ts @@ -5,7 +5,16 @@ import { readBytes, readString, writeBytes, writeString } from "./buffer"; import { State } from "./WasmWrapper"; import { msgpackEncode } from "@polywrap/msgpack-js"; -import { CoreClient, Uri, ErrorSource } from "@polywrap/core-js"; +import { + CoreClient, + Uri, + ErrorSource, + UriPackageOrWrapper, + UriResolutionContext, + Wrapper, + getEnvFromUriHistory, +} from "@polywrap/core-js"; +import { ResultErr, ResultOk } from "@polywrap/result"; export const createImports = (config: { client: CoreClient; @@ -40,20 +49,73 @@ export const createImports = (config: { const method = readString(memory.buffer, methodPtr, methodLen); const args = readBytes(memory.buffer, argsPtr, argsLen); - const result = await client.invoke({ - uri: Uri.from(uri), - method: method, - args: new Uint8Array(args), - encodeResult: true, - }); + const loadSubinvokeContext = + state.resolutionContext?.createSubContext() ?? + new UriResolutionContext(); + const wrapperResult = await client.loadWrapper( + Uri.from(uri), + loadSubinvokeContext + ); - if (result.ok) { - state.subinvoke.result = result.value; - } else { - state.subinvoke.error = `${result.error?.name}: ${result.error?.message}`; + if (state.resolutionContext) { + state.resolutionContext.trackStep({ + sourceUri: Uri.from(uri), + result: wrapperResult.ok + ? ResultOk({ + type: "wrapper", + uri: Uri.from(uri), + wrapper: wrapperResult.value as Wrapper, + } as UriPackageOrWrapper) + : ResultErr(wrapperResult.error), + description: `Subinvoke - Load(${uri})`, + subHistory: loadSubinvokeContext.getHistory(), + }); } - return result.ok; + if (!wrapperResult.ok) { + state.subinvoke.error = `${wrapperResult.error?.name}: ${wrapperResult.error?.message}`; + + return false; + } else { + const env = getEnvFromUriHistory( + loadSubinvokeContext.getResolutionPath(), + client + ); + + const subinvokeContext = + state.resolutionContext?.createSubContext() ?? + new UriResolutionContext(); + const result = await client.invokeWrapper({ + wrapper: wrapperResult.value, + uri: Uri.from(uri), + method: method, + args: new Uint8Array(args), + encodeResult: true, + env, + resolutionContext: subinvokeContext, + }); + + if (state.resolutionContext) { + state.resolutionContext.trackStep({ + sourceUri: Uri.from(uri), + result: result.ok + ? ResultOk({ + type: "uri", + uri: Uri.from(uri), + } as UriPackageOrWrapper) + : ResultErr(result.error), + description: `Subinvoke - Invoke(${uri})`, + subHistory: subinvokeContext.getHistory(), + }); + } + if (result.ok) { + state.subinvoke.result = result.value; + } else { + state.subinvoke.error = `${result.error?.name}: ${result.error?.message}`; + } + + return result.ok; + } }, // Give WASM the size of the result __wrap_subinvoke_result_len: (): u32 => { From 2229808a339fee08947306783b809a46d8093289 Mon Sep 17 00:00:00 2001 From: Jure Bogunovic Date: Fri, 14 Apr 2023 22:07:40 +0200 Subject: [PATCH 4/8] UriResolverWrapper properly passes resolution when invoking resolver extension --- .../src/UriResolverWrapper.ts | 93 ++++++++++++------- 1 file changed, 60 insertions(+), 33 deletions(-) diff --git a/packages/js/uri-resolver-extensions/src/UriResolverWrapper.ts b/packages/js/uri-resolver-extensions/src/UriResolverWrapper.ts index 41d892cbc6..6f8844b83f 100644 --- a/packages/js/uri-resolver-extensions/src/UriResolverWrapper.ts +++ b/packages/js/uri-resolver-extensions/src/UriResolverWrapper.ts @@ -8,38 +8,25 @@ import { IUriResolutionContext, UriPackageOrWrapper, getEnvFromUriHistory, + IUriResolver, } from "@polywrap/core-js"; import { Result, ResultOk } from "@polywrap/result"; import { WasmPackage } from "@polywrap/wasm-js"; -import { - ResolverWithHistory, - UriResolutionResult, -} from "@polywrap/uri-resolvers-js"; +import { UriResolutionResult } from "@polywrap/uri-resolvers-js"; // $start: UriResolverWrapper /** * An IUriResolver that delegates resolution to a wrapper that implements * the URI Resolver Extension Interface * */ -export class UriResolverWrapper extends ResolverWithHistory /* $ */ { +export class UriResolverWrapper implements IUriResolver /* $ */ { // $start: UriResolverWrapper-constructor /** * construct a UriResolverWrapper * * @param implementationUri - URI that resolves to a URI Resolver Extension implementation * */ - constructor(public readonly implementationUri: Uri) /* $ */ { - super(); - } - - // $start: UriResolverWrapper-getStepDescription - /** - * A utility function for generating step descriptions to facilitate resolution context updates - * - * @returns text describing the URI resolution step - * */ - protected getStepDescription = (): string /* $ */ => - `ResolverExtension (${this.implementationUri.uri})`; + constructor(public readonly implementationUri: Uri) /* $ */ {} // $start: UriResolverWrapper-_tryResolverUri /** @@ -51,7 +38,7 @@ export class UriResolverWrapper extends ResolverWithHistory /* $ */ { * @param resolutionContext - the current URI resolution context * @returns A Promise with a Result containing either a wrap package, a wrapper, or a URI if successful */ - protected async _tryResolveUri( + async tryResolveUri( uri: Uri, client: CoreClient, resolutionContext: IUriResolutionContext @@ -67,22 +54,38 @@ export class UriResolverWrapper extends ResolverWithHistory /* $ */ { return UriResolutionResult.err(result.error); } - const uriOrManifest = result.value; + return getResult(result.value, uri, this.implementationUri, client); + } - if (uriOrManifest?.uri) { - return UriResolutionResult.ok(new Uri(uriOrManifest.uri)); - } else if (uriOrManifest?.manifest) { - const wrapPackage = WasmPackage.from( - uriOrManifest.manifest, - new UriResolverExtensionFileReader(this.implementationUri, uri, client) - ); + // $start: UriResolverWrapper-getStepDescription + /** + * A utility function for generating step descriptions to facilitate resolution context updates + * + * @returns text describing the URI resolution step + * */ + protected getStepDescription = (): string /* $ */ => + `ResolverExtension (${this.implementationUri.uri})`; +} - return UriResolutionResult.ok(uri, wrapPackage); - } +const getResult = ( + uriOrManifest: UriResolverInterface.MaybeUriOrManifest | undefined, + uri: Uri, + implementationUri: Uri, + client: CoreClient +): Result => { + if (uriOrManifest?.uri) { + return UriResolutionResult.ok(new Uri(uriOrManifest.uri)); + } else if (uriOrManifest?.manifest) { + const wrapPackage = WasmPackage.from( + uriOrManifest.manifest, + new UriResolverExtensionFileReader(implementationUri, uri, client) + ); - return UriResolutionResult.ok(uri); + return UriResolutionResult.ok(uri, wrapPackage); } -} + + return UriResolutionResult.ok(uri); +}; // $start: UriResolverWrapper-tryResolveUriWithImplementation /** @@ -102,21 +105,35 @@ const tryResolveUriWithImplementation = async ( ): Promise< Result > /* $ */ => { - const subContext = resolutionContext.createSubContext(); + const loadResolverContext = resolutionContext.createSubContext(); const result = await loadResolverExtension( uri, implementationUri, client, - subContext + loadResolverContext ); + resolutionContext.trackStep({ + sourceUri: uri, + result: result.ok + ? UriResolutionResult.ok(implementationUri, result.value) + : UriResolutionResult.err(result.error), + description: `ResolverExtension - Load(${implementationUri.uri})`, + subHistory: loadResolverContext.getHistory(), + }); + if (!result.ok) { return result; } const extensionWrapper = result.value; - const env = getEnvFromUriHistory(subContext.getResolutionPath(), client); + const resolveWithExtensionContext = resolutionContext.createSubContext(); + + const env = getEnvFromUriHistory( + loadResolverContext.getResolutionPath(), + client + ); const invokeResult = await client.invokeWrapper( { wrapper: extensionWrapper, @@ -127,9 +144,19 @@ const tryResolveUriWithImplementation = async ( path: uri.path, }, env: env, + resolutionContext: resolveWithExtensionContext, } ); + resolutionContext.trackStep({ + sourceUri: uri, + result: invokeResult.ok + ? getResult(invokeResult.value, uri, implementationUri, client) + : UriResolutionResult.err(result), + description: `ResolverExtension - Invoke(${implementationUri.uri})`, + subHistory: resolveWithExtensionContext.getHistory(), + }); + if (!invokeResult.ok) { return invokeResult; } From 5e839331c1ac83d439f0020d089f51bf17cec789 Mon Sep 17 00:00:00 2001 From: Jure Bogunovic Date: Fri, 14 Apr 2023 22:09:18 +0200 Subject: [PATCH 5/8] updated sanity test case to work with new resolution context passing --- .../core/uri-resolution/histories/sanity.json | 452 ++++++++++++++++-- 1 file changed, 412 insertions(+), 40 deletions(-) diff --git a/packages/js/client/src/__tests__/core/uri-resolution/histories/sanity.json b/packages/js/client/src/__tests__/core/uri-resolution/histories/sanity.json index 4b29e4c5bc..26668baef8 100644 --- a/packages/js/client/src/__tests__/core/uri-resolution/histories/sanity.json +++ b/packages/js/client/src/__tests__/core/uri-resolution/histories/sanity.json @@ -10,72 +10,423 @@ "wrap://ens/wraps.eth:uri-resolver-ext@1.1.0 => StaticResolver - Miss", "wrap://ens/wraps.eth:uri-resolver-ext@1.1.0 => ExtendableUriResolver => uri (wrap://ipfs/QmSAXrSLcmGUkQRrApAtG5qTPmuRMMX2Zf1wihpguDQfbm)", [ - "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", + "wrap://ens/wraps.eth:uri-resolver-ext@1.1.0 => ResolverExtension - Load(wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => wrapper (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1)", [ - "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", + "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", [ - "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => PackageToWrapperResolver => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", + "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", [ - "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => UriResolverAggregator => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", + "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => PackageToWrapperResolver => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", [ - "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => StaticResolver - Redirect (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 - wrap://embed/async-ipfs-uri-resolver-ext@1.0.1) => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" + "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => UriResolverAggregator => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", + [ + "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => StaticResolver - Redirect (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 - wrap://embed/async-ipfs-uri-resolver-ext@1.0.1) => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" + ] ] ] - ] - ], - "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", - [ - "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", + ], + "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", [ - "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => PackageToWrapperResolver => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", + "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", [ - "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => UriResolverAggregator => package (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", + "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => PackageToWrapperResolver => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", [ - "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => StaticResolver - Package (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1) => package (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" + "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => UriResolverAggregator => package (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", + [ + "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => StaticResolver - Package (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1) => package (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" + ] ] ] ] ], - "wrap://ens/wraps.eth:uri-resolver-ext@1.1.0 => ResolverExtension (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1)", - "wrap://ens/wraps.eth:ens-text-record-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => uri (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)", + "wrap://ens/wraps.eth:uri-resolver-ext@1.1.0 => ResolverExtension - Invoke(wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1)", + "wrap://ens/wraps.eth:uri-resolver-ext@1.1.0 => ResolverExtension - Load(wrap://ens/wraps.eth:ens-text-record-uri-resolver-ext@1.0.1) => wrapper (wrap://ens/wraps.eth:ens-text-record-uri-resolver-ext@1.0.1)", [ - "wrap://ens/wraps.eth:ens-text-record-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver => uri (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)", + "wrap://ens/wraps.eth:ens-text-record-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => uri (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)", + [ + "wrap://ens/wraps.eth:ens-text-record-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver => uri (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)", + [ + "wrap://ens/wraps.eth:ens-text-record-uri-resolver-ext@1.0.1 => PackageToWrapperResolver => uri (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)", + [ + "wrap://ens/wraps.eth:ens-text-record-uri-resolver-ext@1.0.1 => UriResolverAggregator => uri (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)", + [ + "wrap://ens/wraps.eth:ens-text-record-uri-resolver-ext@1.0.1 => StaticResolver - Redirect (wrap://ens/wraps.eth:ens-text-record-uri-resolver-ext@1.0.1 - wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs) => uri (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)" + ] + ] + ] + ], + "wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)", [ - "wrap://ens/wraps.eth:ens-text-record-uri-resolver-ext@1.0.1 => PackageToWrapperResolver => uri (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)", + "wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs => ResolutionResultCacheResolver => wrapper (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)", [ - "wrap://ens/wraps.eth:ens-text-record-uri-resolver-ext@1.0.1 => UriResolverAggregator => uri (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)", + "wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs => PackageToWrapperResolver => wrapper (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)", [ - "wrap://ens/wraps.eth:ens-text-record-uri-resolver-ext@1.0.1 => StaticResolver - Redirect (wrap://ens/wraps.eth:ens-text-record-uri-resolver-ext@1.0.1 - wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs) => uri (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)" + "wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs => UriResolverAggregator => package (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)", + [ + "wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs => StaticResolver - Miss", + "wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs => ExtendableUriResolver => package (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)", + [ + "wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs => ResolverExtension - Load(wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => wrapper (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1)", + [ + "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", + [ + "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver (Cache) => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" + ], + "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", + [ + "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" + ] + ], + "wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs => ResolverExtension - Invoke(wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => package (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)", + [ + "wrap://plugin/concurrent@1.0.0 => Subinvoke - Load(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", + [ + "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", + [ + "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver => wrapper (wrap://plugin/concurrent@1.0.0)", + [ + "wrap://plugin/concurrent@1.0.0 => PackageToWrapperResolver => wrapper (wrap://plugin/concurrent@1.0.0)", + [ + "wrap://plugin/concurrent@1.0.0 => UriResolverAggregator => package (wrap://plugin/concurrent@1.0.0)", + [ + "wrap://plugin/concurrent@1.0.0 => StaticResolver - Package (wrap://plugin/concurrent@1.0.0) => package (wrap://plugin/concurrent@1.0.0)" + ] + ] + ] + ] + ], + "wrap://plugin/concurrent@1.0.0 => Subinvoke - Invoke(wrap://plugin/concurrent@1.0.0)", + "wrap://plugin/concurrent@1.0.0 => Subinvoke - Load(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", + [ + "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", + [ + "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" + ] + ], + "wrap://plugin/concurrent@1.0.0 => Subinvoke - Invoke(wrap://plugin/concurrent@1.0.0)" + ] + ] + ] ] ] ] ], - "wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)", + "wrap://ens/wraps.eth:uri-resolver-ext@1.1.0 => ResolverExtension - Invoke(wrap://ens/wraps.eth:ens-text-record-uri-resolver-ext@1.0.1) => uri (wrap://ipfs/QmSAXrSLcmGUkQRrApAtG5qTPmuRMMX2Zf1wihpguDQfbm)", [ - "wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs => ResolutionResultCacheResolver => wrapper (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)", + "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => Subinvoke - Load(wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL) => wrapper (wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", + [ + "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", + [ + "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => ResolutionResultCacheResolver => wrapper (wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", + [ + "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => PackageToWrapperResolver => wrapper (wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", + [ + "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => UriResolverAggregator => package (wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", + [ + "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => StaticResolver - Miss", + "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => ExtendableUriResolver => package (wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", + [ + "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => ResolverExtension - Load(wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => wrapper (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1)", + [ + "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", + [ + "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver (Cache) => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" + ], + "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", + [ + "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" + ] + ], + "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => ResolverExtension - Invoke(wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => package (wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", + [ + "wrap://plugin/concurrent@1.0.0 => Subinvoke - Load(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", + [ + "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", + [ + "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" + ] + ], + "wrap://plugin/concurrent@1.0.0 => Subinvoke - Invoke(wrap://plugin/concurrent@1.0.0)", + "wrap://plugin/concurrent@1.0.0 => Subinvoke - Load(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", + [ + "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", + [ + "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" + ] + ], + "wrap://plugin/concurrent@1.0.0 => Subinvoke - Invoke(wrap://plugin/concurrent@1.0.0)" + ] + ] + ] + ] + ] + ] + ], + "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => Subinvoke - Invoke(wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", [ - "wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs => PackageToWrapperResolver => wrapper (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)", + "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => Subinvoke - Load(wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB) => wrapper (wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", + [ + "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", + [ + "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => ResolutionResultCacheResolver => wrapper (wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", + [ + "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => PackageToWrapperResolver => wrapper (wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", + [ + "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => UriResolverAggregator => package (wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", + [ + "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => StaticResolver - Miss", + "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => ExtendableUriResolver => package (wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", + [ + "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => ResolverExtension - Load(wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => wrapper (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1)", + [ + "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", + [ + "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver (Cache) => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" + ], + "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", + [ + "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" + ] + ], + "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => ResolverExtension - Invoke(wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => package (wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", + [ + "wrap://plugin/concurrent@1.0.0 => Subinvoke - Load(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", + [ + "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", + [ + "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" + ] + ], + "wrap://plugin/concurrent@1.0.0 => Subinvoke - Invoke(wrap://plugin/concurrent@1.0.0)", + "wrap://plugin/concurrent@1.0.0 => Subinvoke - Load(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", + [ + "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", + [ + "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" + ] + ], + "wrap://plugin/concurrent@1.0.0 => Subinvoke - Invoke(wrap://plugin/concurrent@1.0.0)" + ] + ] + ] + ] + ] + ] + ], + "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => Subinvoke - Invoke(wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Subinvoke - Load(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + [ + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + [ + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => ResolutionResultCacheResolver => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + [ + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => PackageToWrapperResolver => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + [ + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => UriResolverAggregator => package (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + [ + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => StaticResolver - Miss", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => ExtendableUriResolver => package (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + [ + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => ResolverExtension - Load(wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => wrapper (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1)", + [ + "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", + [ + "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver (Cache) => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" + ], + "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", + [ + "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" + ] + ], + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => ResolverExtension - Invoke(wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => package (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + [ + "wrap://plugin/concurrent@1.0.0 => Subinvoke - Load(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", + [ + "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", + [ + "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" + ] + ], + "wrap://plugin/concurrent@1.0.0 => Subinvoke - Invoke(wrap://plugin/concurrent@1.0.0)", + "wrap://plugin/concurrent@1.0.0 => Subinvoke - Load(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", + [ + "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", + [ + "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" + ] + ], + "wrap://plugin/concurrent@1.0.0 => Subinvoke - Invoke(wrap://plugin/concurrent@1.0.0)" + ] + ] + ] + ] + ] + ] + ], + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Subinvoke - Invoke(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Subinvoke - Load(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + [ + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + [ + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)" + ] + ], + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Subinvoke - Invoke(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Subinvoke - Load(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + [ + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + [ + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)" + ] + ], + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Subinvoke - Invoke(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Subinvoke - Load(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + [ + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + [ + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)" + ] + ], + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Subinvoke - Invoke(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => Subinvoke - Load(wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3) => wrapper (wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", [ - "wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs => UriResolverAggregator => package (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)", + "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", [ - "wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs => StaticResolver - Miss", - "wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs => ExtendableUriResolver => package (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)", + "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => ResolutionResultCacheResolver => wrapper (wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", [ - "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", + "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => PackageToWrapperResolver => wrapper (wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", [ - "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver (Cache) => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" - ], - "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", + "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => UriResolverAggregator => package (wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", + [ + "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => StaticResolver - Miss", + "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => ExtendableUriResolver => package (wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", + [ + "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => ResolverExtension - Load(wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => wrapper (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1)", + [ + "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", + [ + "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver (Cache) => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" + ], + "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", + [ + "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" + ] + ], + "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => ResolverExtension - Invoke(wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => package (wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", + [ + "wrap://plugin/concurrent@1.0.0 => Subinvoke - Load(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", + [ + "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", + [ + "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" + ] + ], + "wrap://plugin/concurrent@1.0.0 => Subinvoke - Invoke(wrap://plugin/concurrent@1.0.0)", + "wrap://plugin/concurrent@1.0.0 => Subinvoke - Load(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", + [ + "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", + [ + "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" + ] + ], + "wrap://plugin/concurrent@1.0.0 => Subinvoke - Invoke(wrap://plugin/concurrent@1.0.0)" + ] + ] + ] + ] + ] + ] + ], + "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => Subinvoke - Invoke(wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", + [ + "wrap://plugin/ethereum-provider@1.1.0 => Subinvoke - Load(wrap://plugin/ethereum-provider@1.1.0) => wrapper (wrap://plugin/ethereum-provider@1.1.0)", + [ + "wrap://plugin/ethereum-provider@1.1.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/ethereum-provider@1.1.0)", + [ + "wrap://plugin/ethereum-provider@1.1.0 => ResolutionResultCacheResolver => wrapper (wrap://plugin/ethereum-provider@1.1.0)", [ - "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" - ], - "wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs => ResolverExtension (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => package (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)" + "wrap://plugin/ethereum-provider@1.1.0 => PackageToWrapperResolver => wrapper (wrap://plugin/ethereum-provider@1.1.0)", + [ + "wrap://plugin/ethereum-provider@1.1.0 => UriResolverAggregator => package (wrap://plugin/ethereum-provider@1.1.0)", + [ + "wrap://plugin/ethereum-provider@1.1.0 => StaticResolver - Package (wrap://plugin/ethereum-provider@1.1.0) => package (wrap://plugin/ethereum-provider@1.1.0)" + ] + ] + ] ] + ], + "wrap://plugin/ethereum-provider@1.1.0 => Subinvoke - Invoke(wrap://plugin/ethereum-provider@1.1.0)" + ] + ], + "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => Subinvoke - Load(wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL) => wrapper (wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", + [ + "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", + [ + "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => ResolutionResultCacheResolver (Cache) => wrapper (wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)" + ] + ], + "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => Subinvoke - Invoke(wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", + [ + "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => Subinvoke - Load(wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB) => wrapper (wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", + [ + "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", + [ + "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => ResolutionResultCacheResolver (Cache) => wrapper (wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)" + ] + ], + "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => Subinvoke - Invoke(wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Subinvoke - Load(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + [ + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + [ + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)" + ] + ], + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Subinvoke - Invoke(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Subinvoke - Load(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + [ + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + [ + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)" + ] + ], + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Subinvoke - Invoke(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Subinvoke - Load(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + [ + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + [ + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)" + ] + ], + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Subinvoke - Invoke(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Subinvoke - Load(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + [ + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + [ + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)" ] + ], + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Subinvoke - Invoke(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => Subinvoke - Load(wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3) => wrapper (wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", + [ + "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", + [ + "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)" + ] + ], + "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => Subinvoke - Invoke(wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", + [ + "wrap://plugin/ethereum-provider@1.1.0 => Subinvoke - Load(wrap://plugin/ethereum-provider@1.1.0) => wrapper (wrap://plugin/ethereum-provider@1.1.0)", + [ + "wrap://plugin/ethereum-provider@1.1.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/ethereum-provider@1.1.0)", + [ + "wrap://plugin/ethereum-provider@1.1.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/ethereum-provider@1.1.0)" + ] + ], + "wrap://plugin/ethereum-provider@1.1.0 => Subinvoke - Invoke(wrap://plugin/ethereum-provider@1.1.0)" ] ] - ], - "wrap://ens/wraps.eth:uri-resolver-ext@1.1.0 => ResolverExtension (wrap://ens/wraps.eth:ens-text-record-uri-resolver-ext@1.0.1) => uri (wrap://ipfs/QmSAXrSLcmGUkQRrApAtG5qTPmuRMMX2Zf1wihpguDQfbm)" + ] ] ] ] @@ -92,15 +443,36 @@ "wrap://ipfs/QmSAXrSLcmGUkQRrApAtG5qTPmuRMMX2Zf1wihpguDQfbm => StaticResolver - Miss", "wrap://ipfs/QmSAXrSLcmGUkQRrApAtG5qTPmuRMMX2Zf1wihpguDQfbm => ExtendableUriResolver => package (wrap://ipfs/QmSAXrSLcmGUkQRrApAtG5qTPmuRMMX2Zf1wihpguDQfbm)", [ - "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", + "wrap://ipfs/QmSAXrSLcmGUkQRrApAtG5qTPmuRMMX2Zf1wihpguDQfbm => ResolverExtension - Load(wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => wrapper (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1)", [ - "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver (Cache) => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" + "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", + [ + "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver (Cache) => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" + ], + "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", + [ + "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" + ] ], - "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", + "wrap://ipfs/QmSAXrSLcmGUkQRrApAtG5qTPmuRMMX2Zf1wihpguDQfbm => ResolverExtension - Invoke(wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => package (wrap://ipfs/QmSAXrSLcmGUkQRrApAtG5qTPmuRMMX2Zf1wihpguDQfbm)", [ - "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" - ], - "wrap://ipfs/QmSAXrSLcmGUkQRrApAtG5qTPmuRMMX2Zf1wihpguDQfbm => ResolverExtension (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => package (wrap://ipfs/QmSAXrSLcmGUkQRrApAtG5qTPmuRMMX2Zf1wihpguDQfbm)" + "wrap://plugin/concurrent@1.0.0 => Subinvoke - Load(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", + [ + "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", + [ + "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" + ] + ], + "wrap://plugin/concurrent@1.0.0 => Subinvoke - Invoke(wrap://plugin/concurrent@1.0.0)", + "wrap://plugin/concurrent@1.0.0 => Subinvoke - Load(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", + [ + "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", + [ + "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" + ] + ], + "wrap://plugin/concurrent@1.0.0 => Subinvoke - Invoke(wrap://plugin/concurrent@1.0.0)" + ] ] ] ] From 4950ebecbc4e17dab91db52c2b85b19d3761c0b8 Mon Sep 17 00:00:00 2001 From: Jure Bogunovic Date: Tue, 18 Apr 2023 00:51:02 +0200 Subject: [PATCH 6/8] removed resolution context step tracking from wasm imports and added to client invoke --- .../core/uri-resolution/histories/sanity.json | 112 +++++++++--------- .../js/core-client/src/PolywrapCoreClient.ts | 39 ++++-- packages/js/wasm/src/imports.ts | 87 ++------------ yarn.lock | 45 ++++--- 4 files changed, 127 insertions(+), 156 deletions(-) diff --git a/packages/js/client/src/__tests__/core/uri-resolution/histories/sanity.json b/packages/js/client/src/__tests__/core/uri-resolution/histories/sanity.json index 26668baef8..88a6a9a40f 100644 --- a/packages/js/client/src/__tests__/core/uri-resolution/histories/sanity.json +++ b/packages/js/client/src/__tests__/core/uri-resolution/histories/sanity.json @@ -79,7 +79,7 @@ ], "wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs => ResolverExtension - Invoke(wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => package (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)", [ - "wrap://plugin/concurrent@1.0.0 => Subinvoke - Load(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", + "wrap://plugin/concurrent@1.0.0 => Client- loadWrapper(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", [ "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", [ @@ -95,15 +95,15 @@ ] ] ], - "wrap://plugin/concurrent@1.0.0 => Subinvoke - Invoke(wrap://plugin/concurrent@1.0.0)", - "wrap://plugin/concurrent@1.0.0 => Subinvoke - Load(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", + "wrap://plugin/concurrent@1.0.0 => Client - Invoke(wrap://plugin/concurrent@1.0.0)", + "wrap://plugin/concurrent@1.0.0 => Client- loadWrapper(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", [ "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", [ "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" ] ], - "wrap://plugin/concurrent@1.0.0 => Subinvoke - Invoke(wrap://plugin/concurrent@1.0.0)" + "wrap://plugin/concurrent@1.0.0 => Client - Invoke(wrap://plugin/concurrent@1.0.0)" ] ] ] @@ -113,7 +113,7 @@ ], "wrap://ens/wraps.eth:uri-resolver-ext@1.1.0 => ResolverExtension - Invoke(wrap://ens/wraps.eth:ens-text-record-uri-resolver-ext@1.0.1) => uri (wrap://ipfs/QmSAXrSLcmGUkQRrApAtG5qTPmuRMMX2Zf1wihpguDQfbm)", [ - "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => Subinvoke - Load(wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL) => wrapper (wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", + "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => Client- loadWrapper(wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL) => wrapper (wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", [ "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", [ @@ -139,22 +139,22 @@ ], "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => ResolverExtension - Invoke(wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => package (wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", [ - "wrap://plugin/concurrent@1.0.0 => Subinvoke - Load(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", + "wrap://plugin/concurrent@1.0.0 => Client- loadWrapper(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", [ "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", [ "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" ] ], - "wrap://plugin/concurrent@1.0.0 => Subinvoke - Invoke(wrap://plugin/concurrent@1.0.0)", - "wrap://plugin/concurrent@1.0.0 => Subinvoke - Load(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", + "wrap://plugin/concurrent@1.0.0 => Client - Invoke(wrap://plugin/concurrent@1.0.0)", + "wrap://plugin/concurrent@1.0.0 => Client- loadWrapper(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", [ "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", [ "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" ] ], - "wrap://plugin/concurrent@1.0.0 => Subinvoke - Invoke(wrap://plugin/concurrent@1.0.0)" + "wrap://plugin/concurrent@1.0.0 => Client - Invoke(wrap://plugin/concurrent@1.0.0)" ] ] ] @@ -162,9 +162,9 @@ ] ] ], - "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => Subinvoke - Invoke(wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", + "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => Client - Invoke(wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", [ - "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => Subinvoke - Load(wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB) => wrapper (wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", + "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => Client- loadWrapper(wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB) => wrapper (wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", [ "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", [ @@ -190,22 +190,22 @@ ], "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => ResolverExtension - Invoke(wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => package (wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", [ - "wrap://plugin/concurrent@1.0.0 => Subinvoke - Load(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", + "wrap://plugin/concurrent@1.0.0 => Client- loadWrapper(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", [ "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", [ "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" ] ], - "wrap://plugin/concurrent@1.0.0 => Subinvoke - Invoke(wrap://plugin/concurrent@1.0.0)", - "wrap://plugin/concurrent@1.0.0 => Subinvoke - Load(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", + "wrap://plugin/concurrent@1.0.0 => Client - Invoke(wrap://plugin/concurrent@1.0.0)", + "wrap://plugin/concurrent@1.0.0 => Client- loadWrapper(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", [ "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", [ "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" ] ], - "wrap://plugin/concurrent@1.0.0 => Subinvoke - Invoke(wrap://plugin/concurrent@1.0.0)" + "wrap://plugin/concurrent@1.0.0 => Client - Invoke(wrap://plugin/concurrent@1.0.0)" ] ] ] @@ -213,8 +213,8 @@ ] ] ], - "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => Subinvoke - Invoke(wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Subinvoke - Load(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => Client - Invoke(wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client- loadWrapper(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", [ "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", [ @@ -240,22 +240,22 @@ ], "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => ResolverExtension - Invoke(wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => package (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", [ - "wrap://plugin/concurrent@1.0.0 => Subinvoke - Load(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", + "wrap://plugin/concurrent@1.0.0 => Client- loadWrapper(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", [ "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", [ "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" ] ], - "wrap://plugin/concurrent@1.0.0 => Subinvoke - Invoke(wrap://plugin/concurrent@1.0.0)", - "wrap://plugin/concurrent@1.0.0 => Subinvoke - Load(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", + "wrap://plugin/concurrent@1.0.0 => Client - Invoke(wrap://plugin/concurrent@1.0.0)", + "wrap://plugin/concurrent@1.0.0 => Client- loadWrapper(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", [ "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", [ "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" ] ], - "wrap://plugin/concurrent@1.0.0 => Subinvoke - Invoke(wrap://plugin/concurrent@1.0.0)" + "wrap://plugin/concurrent@1.0.0 => Client - Invoke(wrap://plugin/concurrent@1.0.0)" ] ] ] @@ -263,32 +263,32 @@ ] ] ], - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Subinvoke - Invoke(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Subinvoke - Load(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client - Invoke(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client- loadWrapper(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", [ "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", [ "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)" ] ], - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Subinvoke - Invoke(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Subinvoke - Load(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client - Invoke(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client- loadWrapper(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", [ "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", [ "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)" ] ], - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Subinvoke - Invoke(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Subinvoke - Load(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client - Invoke(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client- loadWrapper(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", [ "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", [ "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)" ] ], - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Subinvoke - Invoke(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", - "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => Subinvoke - Load(wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3) => wrapper (wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client - Invoke(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => Client- loadWrapper(wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3) => wrapper (wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", [ "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", [ @@ -314,22 +314,22 @@ ], "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => ResolverExtension - Invoke(wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => package (wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", [ - "wrap://plugin/concurrent@1.0.0 => Subinvoke - Load(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", + "wrap://plugin/concurrent@1.0.0 => Client- loadWrapper(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", [ "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", [ "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" ] ], - "wrap://plugin/concurrent@1.0.0 => Subinvoke - Invoke(wrap://plugin/concurrent@1.0.0)", - "wrap://plugin/concurrent@1.0.0 => Subinvoke - Load(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", + "wrap://plugin/concurrent@1.0.0 => Client - Invoke(wrap://plugin/concurrent@1.0.0)", + "wrap://plugin/concurrent@1.0.0 => Client- loadWrapper(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", [ "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", [ "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" ] ], - "wrap://plugin/concurrent@1.0.0 => Subinvoke - Invoke(wrap://plugin/concurrent@1.0.0)" + "wrap://plugin/concurrent@1.0.0 => Client - Invoke(wrap://plugin/concurrent@1.0.0)" ] ] ] @@ -337,9 +337,9 @@ ] ] ], - "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => Subinvoke - Invoke(wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", + "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => Client - Invoke(wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", [ - "wrap://plugin/ethereum-provider@1.1.0 => Subinvoke - Load(wrap://plugin/ethereum-provider@1.1.0) => wrapper (wrap://plugin/ethereum-provider@1.1.0)", + "wrap://plugin/ethereum-provider@1.1.0 => Client- loadWrapper(wrap://plugin/ethereum-provider@1.1.0) => wrapper (wrap://plugin/ethereum-provider@1.1.0)", [ "wrap://plugin/ethereum-provider@1.1.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/ethereum-provider@1.1.0)", [ @@ -355,75 +355,75 @@ ] ] ], - "wrap://plugin/ethereum-provider@1.1.0 => Subinvoke - Invoke(wrap://plugin/ethereum-provider@1.1.0)" + "wrap://plugin/ethereum-provider@1.1.0 => Client - Invoke(wrap://plugin/ethereum-provider@1.1.0)" ] ], - "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => Subinvoke - Load(wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL) => wrapper (wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", + "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => Client- loadWrapper(wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL) => wrapper (wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", [ "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", [ "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => ResolutionResultCacheResolver (Cache) => wrapper (wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)" ] ], - "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => Subinvoke - Invoke(wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", + "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => Client - Invoke(wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", [ - "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => Subinvoke - Load(wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB) => wrapper (wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", + "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => Client- loadWrapper(wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB) => wrapper (wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", [ "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", [ "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => ResolutionResultCacheResolver (Cache) => wrapper (wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)" ] ], - "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => Subinvoke - Invoke(wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Subinvoke - Load(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => Client - Invoke(wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client- loadWrapper(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", [ "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", [ "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)" ] ], - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Subinvoke - Invoke(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Subinvoke - Load(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client - Invoke(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client- loadWrapper(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", [ "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", [ "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)" ] ], - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Subinvoke - Invoke(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Subinvoke - Load(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client - Invoke(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client- loadWrapper(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", [ "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", [ "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)" ] ], - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Subinvoke - Invoke(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Subinvoke - Load(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client - Invoke(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client- loadWrapper(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", [ "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", [ "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)" ] ], - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Subinvoke - Invoke(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", - "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => Subinvoke - Load(wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3) => wrapper (wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client - Invoke(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => Client- loadWrapper(wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3) => wrapper (wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", [ "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", [ "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)" ] ], - "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => Subinvoke - Invoke(wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", + "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => Client - Invoke(wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", [ - "wrap://plugin/ethereum-provider@1.1.0 => Subinvoke - Load(wrap://plugin/ethereum-provider@1.1.0) => wrapper (wrap://plugin/ethereum-provider@1.1.0)", + "wrap://plugin/ethereum-provider@1.1.0 => Client- loadWrapper(wrap://plugin/ethereum-provider@1.1.0) => wrapper (wrap://plugin/ethereum-provider@1.1.0)", [ "wrap://plugin/ethereum-provider@1.1.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/ethereum-provider@1.1.0)", [ "wrap://plugin/ethereum-provider@1.1.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/ethereum-provider@1.1.0)" ] ], - "wrap://plugin/ethereum-provider@1.1.0 => Subinvoke - Invoke(wrap://plugin/ethereum-provider@1.1.0)" + "wrap://plugin/ethereum-provider@1.1.0 => Client - Invoke(wrap://plugin/ethereum-provider@1.1.0)" ] ] ] @@ -456,22 +456,22 @@ ], "wrap://ipfs/QmSAXrSLcmGUkQRrApAtG5qTPmuRMMX2Zf1wihpguDQfbm => ResolverExtension - Invoke(wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => package (wrap://ipfs/QmSAXrSLcmGUkQRrApAtG5qTPmuRMMX2Zf1wihpguDQfbm)", [ - "wrap://plugin/concurrent@1.0.0 => Subinvoke - Load(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", + "wrap://plugin/concurrent@1.0.0 => Client- loadWrapper(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", [ "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", [ "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" ] ], - "wrap://plugin/concurrent@1.0.0 => Subinvoke - Invoke(wrap://plugin/concurrent@1.0.0)", - "wrap://plugin/concurrent@1.0.0 => Subinvoke - Load(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", + "wrap://plugin/concurrent@1.0.0 => Client - Invoke(wrap://plugin/concurrent@1.0.0)", + "wrap://plugin/concurrent@1.0.0 => Client- loadWrapper(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", [ "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", [ "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" ] ], - "wrap://plugin/concurrent@1.0.0 => Subinvoke - Invoke(wrap://plugin/concurrent@1.0.0)" + "wrap://plugin/concurrent@1.0.0 => Client - Invoke(wrap://plugin/concurrent@1.0.0)" ] ] ] diff --git a/packages/js/core-client/src/PolywrapCoreClient.ts b/packages/js/core-client/src/PolywrapCoreClient.ts index 90324b11ea..aa8742eb7b 100644 --- a/packages/js/core-client/src/PolywrapCoreClient.ts +++ b/packages/js/core-client/src/PolywrapCoreClient.ts @@ -28,6 +28,7 @@ import { WrapManifest, } from "@polywrap/wrap-manifest-types-js"; import { Result, ResultErr, ResultOk } from "@polywrap/result"; +import { UriResolutionResult } from "@polywrap/uri-resolvers-js"; export class PolywrapCoreClient implements CoreClient { // $start: PolywrapCoreClient-constructor @@ -274,29 +275,53 @@ export class PolywrapCoreClient implements CoreClient { const resolutionContext = options.resolutionContext ?? new UriResolutionContext(); + const loadWrapperContext = resolutionContext.createSubContext(); + const loadWrapperResult = await this.loadWrapper( typedOptions.uri, - resolutionContext + loadWrapperContext ); + resolutionContext.trackStep({ + sourceUri: typedOptions.uri, + result: loadWrapperResult.ok + ? UriResolutionResult.ok(typedOptions.uri, loadWrapperResult.value) + : UriResolutionResult.err(loadWrapperResult.error), + description: `Client- loadWrapper(${typedOptions.uri.uri})`, + subHistory: loadWrapperContext.getHistory(), + }); + if (!loadWrapperResult.ok) { return loadWrapperResult; } const wrapper = loadWrapperResult.value; - const resolutionPath = resolutionContext.getResolutionPath(); + let resolutionPath = loadWrapperContext.getResolutionPath(); + resolutionPath = + resolutionPath.length > 0 ? resolutionPath : [typedOptions.uri]; - const env = getEnvFromUriHistory( - resolutionPath.length > 0 ? resolutionPath : [typedOptions.uri], - this - ); + const env = getEnvFromUriHistory(resolutionPath, this); + + const invokeContext = resolutionContext.createSubContext(); const invokeResult = await this.invokeWrapper({ - env: env, ...typedOptions, + env: env, + resolutionContext: invokeContext, wrapper, }); + const finalUri = resolutionPath[resolutionPath.length - 1]; + + resolutionContext.trackStep({ + sourceUri: finalUri, + result: invokeResult.ok + ? UriResolutionResult.ok(finalUri) + : ResultErr(invokeResult.error), + description: `Client - Invoke(${finalUri.uri})`, + subHistory: invokeContext.getHistory(), + }); + if (!invokeResult.ok) { return invokeResult; } diff --git a/packages/js/wasm/src/imports.ts b/packages/js/wasm/src/imports.ts index aadd47b514..4919ed605e 100644 --- a/packages/js/wasm/src/imports.ts +++ b/packages/js/wasm/src/imports.ts @@ -5,16 +5,7 @@ import { readBytes, readString, writeBytes, writeString } from "./buffer"; import { State } from "./WasmWrapper"; import { msgpackEncode } from "@polywrap/msgpack-js"; -import { - CoreClient, - Uri, - ErrorSource, - UriPackageOrWrapper, - UriResolutionContext, - Wrapper, - getEnvFromUriHistory, -} from "@polywrap/core-js"; -import { ResultErr, ResultOk } from "@polywrap/result"; +import { CoreClient, Uri, ErrorSource } from "@polywrap/core-js"; export const createImports = (config: { client: CoreClient; @@ -49,73 +40,21 @@ export const createImports = (config: { const method = readString(memory.buffer, methodPtr, methodLen); const args = readBytes(memory.buffer, argsPtr, argsLen); - const loadSubinvokeContext = - state.resolutionContext?.createSubContext() ?? - new UriResolutionContext(); - const wrapperResult = await client.loadWrapper( - Uri.from(uri), - loadSubinvokeContext - ); - - if (state.resolutionContext) { - state.resolutionContext.trackStep({ - sourceUri: Uri.from(uri), - result: wrapperResult.ok - ? ResultOk({ - type: "wrapper", - uri: Uri.from(uri), - wrapper: wrapperResult.value as Wrapper, - } as UriPackageOrWrapper) - : ResultErr(wrapperResult.error), - description: `Subinvoke - Load(${uri})`, - subHistory: loadSubinvokeContext.getHistory(), - }); - } - - if (!wrapperResult.ok) { - state.subinvoke.error = `${wrapperResult.error?.name}: ${wrapperResult.error?.message}`; + const result = await client.invoke({ + uri: Uri.from(uri), + method: method, + args: new Uint8Array(args), + encodeResult: true, + resolutionContext: state.resolutionContext, + }); - return false; + if (result.ok) { + state.subinvoke.result = result.value; } else { - const env = getEnvFromUriHistory( - loadSubinvokeContext.getResolutionPath(), - client - ); - - const subinvokeContext = - state.resolutionContext?.createSubContext() ?? - new UriResolutionContext(); - const result = await client.invokeWrapper({ - wrapper: wrapperResult.value, - uri: Uri.from(uri), - method: method, - args: new Uint8Array(args), - encodeResult: true, - env, - resolutionContext: subinvokeContext, - }); - - if (state.resolutionContext) { - state.resolutionContext.trackStep({ - sourceUri: Uri.from(uri), - result: result.ok - ? ResultOk({ - type: "uri", - uri: Uri.from(uri), - } as UriPackageOrWrapper) - : ResultErr(result.error), - description: `Subinvoke - Invoke(${uri})`, - subHistory: subinvokeContext.getHistory(), - }); - } - if (result.ok) { - state.subinvoke.result = result.value; - } else { - state.subinvoke.error = `${result.error?.name}: ${result.error?.message}`; - } - - return result.ok; + state.subinvoke.error = `${result.error?.name}: ${result.error?.message}`; } + + return result.ok; }, // Give WASM the size of the result __wrap_subinvoke_result_len: (): u32 => { diff --git a/yarn.lock b/yarn.lock index be8b9082a6..5abecd74b9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2516,9 +2516,9 @@ integrity sha512-0d5Wd09ItQWH1qFbEyQ7oTQ3GZrMfth5JkbN3EvTKLXcHLRDSXeLnlvlOn0wvxVIwK5o2M8JzP/OWz7T3NRsbw== "@types/lodash@^4.14.182": - version "4.14.192" - resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.192.tgz#5790406361a2852d332d41635d927f1600811285" - integrity sha512-km+Vyn3BYm5ytMO13k9KTp27O75rbQ0NFw+U//g+PX7VZyjCioXaRFisqSIJRECljcTv73G3i6BpglNGHgUQ5A== + version "4.14.194" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.194.tgz#b71eb6f7a0ff11bff59fc987134a093029258a76" + integrity sha512-r22s9tAS7imvBt2lyHC9B8AGwWnXaYb1tY09oyLkXDs4vArpYJzw09nj8MLx5VfciBPGIb+ZwG0ssYnEPJxn/g== "@types/minimatch@*", "@types/minimatch@^5.1.2": version "5.1.2" @@ -3536,9 +3536,9 @@ camelcase@^6.0.0: integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== caniuse-lite@^1.0.30001449: - version "1.0.30001478" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001478.tgz#0ef8a1cf8b16be47a0f9fc4ecfc952232724b32a" - integrity sha512-gMhDyXGItTHipJj2ApIvR+iVB5hd0KP3svMWWXDvZOmjzJJassGLMfxRkQCSYgGd2gtdL/ReeiyvMSFD1Ss6Mw== + version "1.0.30001480" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001480.tgz#9bbd35ee44c2480a1e3a3b9f4496f5066817164a" + integrity sha512-q7cpoPPvZYgtyC4VaBSN0Bt+PJ4c4EYRf0DrduInOz2SkFpHD5p3LnvEpqBp7UnJn+8x1Ogl1s38saUxe+ihQQ== capture-exit@^2.0.0: version "2.0.0" @@ -4357,9 +4357,9 @@ electron-fetch@^1.7.2: encoding "^0.1.13" electron-to-chromium@^1.4.284: - version "1.4.362" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.362.tgz#1dfd7a076fc4785a16941f06410d0668e1a7a1aa" - integrity sha512-PYzAoScDfUcAwZfJQvr6hK2xXzLsMocj/Wuz6LpW6TZQNVv9TflBSB+UoEPuFujc478BgAxCoCFarcVPmjzsog== + version "1.4.366" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.366.tgz#48d400f9c4af8e80f7bbad0d18730c165d43155e" + integrity sha512-XjC4pyf1no8kJe24nUfyexpWwiGRbZWXU/KbprSEvXcTXUlr3Zr5vK3lQt2to0ttpMhAc3iENccwPSKbnEW2Fg== elliptic@6.5.4: version "6.5.4" @@ -4606,9 +4606,9 @@ eslint-import-resolver-node@^0.3.4: resolve "^1.22.1" eslint-module-utils@^2.6.0: - version "2.7.4" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz#4f3e41116aaf13a20792261e61d3a2e7e0583974" - integrity sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA== + version "2.8.0" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz#e439fee65fc33f6bba630ff621efc38ec0375c49" + integrity sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw== dependencies: debug "^3.2.7" @@ -7286,9 +7286,9 @@ long@^4.0.0: integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA== long@^5.2.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/long/-/long-5.2.1.tgz#e27595d0083d103d2fa2c20c7699f8e0c92b897f" - integrity sha512-GKSNGeNAtw8IryjjkhZxuKB3JzlcLTwjtiQCHKvqQet81I93kXslhDQruGI/QsddO83mcDToBVy7GqGS/zYf/A== + version "5.2.3" + resolved "https://registry.yarnpkg.com/long/-/long-5.2.3.tgz#a3ba97f3877cf1d778eccbcb048525ebb77499e1" + integrity sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q== lru-cache@^5.1.1: version "5.1.1" @@ -9315,13 +9315,20 @@ semver@7.3.8: dependencies: lru-cache "^6.0.0" -semver@7.4.0, semver@7.x, semver@^7.1.1, semver@^7.1.3, semver@^7.2.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5: +semver@7.4.0: version "7.4.0" resolved "https://registry.yarnpkg.com/semver/-/semver-7.4.0.tgz#8481c92feffc531ab1e012a8ffc15bdd3a0f4318" integrity sha512-RgOxM8Mw+7Zus0+zcLEUn8+JfoLpj/huFTItQy2hsM4khuC1HYRDp0cU482Ewn/Fcy6bCjufD8vAj7voC66KQw== dependencies: lru-cache "^6.0.0" +semver@7.x, semver@^7.1.1, semver@^7.1.3, semver@^7.2.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5: + version "7.5.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.0.tgz#ed8c5dc8efb6c629c88b23d41dc9bf40c1d96cd0" + integrity sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA== + dependencies: + lru-cache "^6.0.0" + semver@^6.0.0, semver@^6.3.0: version "6.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" @@ -10343,9 +10350,9 @@ upath@^2.0.1: integrity sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w== update-browserslist-db@^1.0.10: - version "1.0.10" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz#0f54b876545726f17d00cd9a2561e6dade943ff3" - integrity sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ== + version "1.0.11" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz#9a2a641ad2907ae7b3616506f4b977851db5b940" + integrity sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA== dependencies: escalade "^3.1.1" picocolors "^1.0.0" From 9e07d89cef79ae80b6a781fea344272f53ea9042 Mon Sep 17 00:00:00 2001 From: Jure Bogunovic Date: Tue, 18 Apr 2023 00:51:18 +0200 Subject: [PATCH 7/8] removed unused method --- .../js/uri-resolver-extensions/src/UriResolverWrapper.ts | 9 --------- 1 file changed, 9 deletions(-) diff --git a/packages/js/uri-resolver-extensions/src/UriResolverWrapper.ts b/packages/js/uri-resolver-extensions/src/UriResolverWrapper.ts index 6f8844b83f..199da6afde 100644 --- a/packages/js/uri-resolver-extensions/src/UriResolverWrapper.ts +++ b/packages/js/uri-resolver-extensions/src/UriResolverWrapper.ts @@ -56,15 +56,6 @@ export class UriResolverWrapper implements IUriResolver /* $ */ { return getResult(result.value, uri, this.implementationUri, client); } - - // $start: UriResolverWrapper-getStepDescription - /** - * A utility function for generating step descriptions to facilitate resolution context updates - * - * @returns text describing the URI resolution step - * */ - protected getStepDescription = (): string /* $ */ => - `ResolverExtension (${this.implementationUri.uri})`; } const getResult = ( From c9e2d87a95fbe46b0e9174545c05b59762c05256 Mon Sep 17 00:00:00 2001 From: Jure Bogunovic Date: Tue, 18 Apr 2023 01:48:01 +0200 Subject: [PATCH 8/8] refactored UriResolverWrapper to use the new invoke resolution history --- .../core/uri-resolution/histories/sanity.json | 642 +++++++++--------- .../js/core-client/src/PolywrapCoreClient.ts | 4 +- .../src/UriResolverWrapper.ts | 45 +- 3 files changed, 342 insertions(+), 349 deletions(-) diff --git a/packages/js/client/src/__tests__/core/uri-resolution/histories/sanity.json b/packages/js/client/src/__tests__/core/uri-resolution/histories/sanity.json index 88a6a9a40f..7bdad5569e 100644 --- a/packages/js/client/src/__tests__/core/uri-resolution/histories/sanity.json +++ b/packages/js/client/src/__tests__/core/uri-resolution/histories/sanity.json @@ -10,420 +10,441 @@ "wrap://ens/wraps.eth:uri-resolver-ext@1.1.0 => StaticResolver - Miss", "wrap://ens/wraps.eth:uri-resolver-ext@1.1.0 => ExtendableUriResolver => uri (wrap://ipfs/QmSAXrSLcmGUkQRrApAtG5qTPmuRMMX2Zf1wihpguDQfbm)", [ - "wrap://ens/wraps.eth:uri-resolver-ext@1.1.0 => ResolverExtension - Load(wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => wrapper (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1)", + "wrap://ens/wraps.eth:uri-resolver-ext@1.1.0 => ResolverExtension (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => uri (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1)", [ - "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", + "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => Client.loadWrapper(wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => wrapper (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1)", [ - "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", + "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", [ - "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => PackageToWrapperResolver => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", + "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", [ - "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => UriResolverAggregator => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", + "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => PackageToWrapperResolver => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", [ - "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => StaticResolver - Redirect (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 - wrap://embed/async-ipfs-uri-resolver-ext@1.0.1) => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" + "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => UriResolverAggregator => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", + [ + "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => StaticResolver - Redirect (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 - wrap://embed/async-ipfs-uri-resolver-ext@1.0.1) => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" + ] ] ] - ] - ], - "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", - [ - "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", + ], + "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", [ - "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => PackageToWrapperResolver => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", + "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", [ - "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => UriResolverAggregator => package (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", + "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => PackageToWrapperResolver => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", [ - "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => StaticResolver - Package (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1) => package (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" + "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => UriResolverAggregator => package (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", + [ + "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => StaticResolver - Package (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1) => package (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" + ] ] ] ] - ] + ], + "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => Client.invoke(wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" ], - "wrap://ens/wraps.eth:uri-resolver-ext@1.1.0 => ResolverExtension - Invoke(wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1)", - "wrap://ens/wraps.eth:uri-resolver-ext@1.1.0 => ResolverExtension - Load(wrap://ens/wraps.eth:ens-text-record-uri-resolver-ext@1.0.1) => wrapper (wrap://ens/wraps.eth:ens-text-record-uri-resolver-ext@1.0.1)", + "wrap://ens/wraps.eth:uri-resolver-ext@1.1.0 => ResolverExtension (wrap://ens/wraps.eth:ens-text-record-uri-resolver-ext@1.0.1) => uri (wrap://ens/wraps.eth:ens-text-record-uri-resolver-ext@1.0.1)", [ - "wrap://ens/wraps.eth:ens-text-record-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => uri (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)", + "wrap://ens/wraps.eth:ens-text-record-uri-resolver-ext@1.0.1 => Client.loadWrapper(wrap://ens/wraps.eth:ens-text-record-uri-resolver-ext@1.0.1) => wrapper (wrap://ens/wraps.eth:ens-text-record-uri-resolver-ext@1.0.1)", [ - "wrap://ens/wraps.eth:ens-text-record-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver => uri (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)", + "wrap://ens/wraps.eth:ens-text-record-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => uri (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)", [ - "wrap://ens/wraps.eth:ens-text-record-uri-resolver-ext@1.0.1 => PackageToWrapperResolver => uri (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)", + "wrap://ens/wraps.eth:ens-text-record-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver => uri (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)", [ - "wrap://ens/wraps.eth:ens-text-record-uri-resolver-ext@1.0.1 => UriResolverAggregator => uri (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)", + "wrap://ens/wraps.eth:ens-text-record-uri-resolver-ext@1.0.1 => PackageToWrapperResolver => uri (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)", [ - "wrap://ens/wraps.eth:ens-text-record-uri-resolver-ext@1.0.1 => StaticResolver - Redirect (wrap://ens/wraps.eth:ens-text-record-uri-resolver-ext@1.0.1 - wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs) => uri (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)" + "wrap://ens/wraps.eth:ens-text-record-uri-resolver-ext@1.0.1 => UriResolverAggregator => uri (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)", + [ + "wrap://ens/wraps.eth:ens-text-record-uri-resolver-ext@1.0.1 => StaticResolver - Redirect (wrap://ens/wraps.eth:ens-text-record-uri-resolver-ext@1.0.1 - wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs) => uri (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)" + ] ] ] - ] - ], - "wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)", - [ - "wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs => ResolutionResultCacheResolver => wrapper (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)", + ], + "wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)", [ - "wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs => PackageToWrapperResolver => wrapper (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)", + "wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs => ResolutionResultCacheResolver => wrapper (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)", [ - "wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs => UriResolverAggregator => package (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)", + "wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs => PackageToWrapperResolver => wrapper (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)", [ - "wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs => StaticResolver - Miss", - "wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs => ExtendableUriResolver => package (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)", + "wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs => UriResolverAggregator => package (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)", [ - "wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs => ResolverExtension - Load(wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => wrapper (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1)", - [ - "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", - [ - "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver (Cache) => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" - ], - "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", - [ - "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" - ] - ], - "wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs => ResolverExtension - Invoke(wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => package (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)", + "wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs => StaticResolver - Miss", + "wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs => ExtendableUriResolver => package (wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)", [ - "wrap://plugin/concurrent@1.0.0 => Client- loadWrapper(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", + "wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs => ResolverExtension (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => uri (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1)", [ - "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", + "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => Client.loadWrapper(wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => wrapper (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1)", + [ + "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", + [ + "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver (Cache) => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" + ], + "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", + [ + "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" + ] + ], + "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => Client.invoke(wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", [ - "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver => wrapper (wrap://plugin/concurrent@1.0.0)", + "wrap://plugin/concurrent@1.0.0 => Client.loadWrapper(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", [ - "wrap://plugin/concurrent@1.0.0 => PackageToWrapperResolver => wrapper (wrap://plugin/concurrent@1.0.0)", + "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", [ - "wrap://plugin/concurrent@1.0.0 => UriResolverAggregator => package (wrap://plugin/concurrent@1.0.0)", + "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver => wrapper (wrap://plugin/concurrent@1.0.0)", [ - "wrap://plugin/concurrent@1.0.0 => StaticResolver - Package (wrap://plugin/concurrent@1.0.0) => package (wrap://plugin/concurrent@1.0.0)" + "wrap://plugin/concurrent@1.0.0 => PackageToWrapperResolver => wrapper (wrap://plugin/concurrent@1.0.0)", + [ + "wrap://plugin/concurrent@1.0.0 => UriResolverAggregator => package (wrap://plugin/concurrent@1.0.0)", + [ + "wrap://plugin/concurrent@1.0.0 => StaticResolver - Package (wrap://plugin/concurrent@1.0.0) => package (wrap://plugin/concurrent@1.0.0)" + ] + ] ] ] - ] - ] - ], - "wrap://plugin/concurrent@1.0.0 => Client - Invoke(wrap://plugin/concurrent@1.0.0)", - "wrap://plugin/concurrent@1.0.0 => Client- loadWrapper(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", - [ - "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", - [ - "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" + ], + "wrap://plugin/concurrent@1.0.0 => Client.invoke(wrap://plugin/concurrent@1.0.0)", + "wrap://plugin/concurrent@1.0.0 => Client.loadWrapper(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", + [ + "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", + [ + "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" + ] + ], + "wrap://plugin/concurrent@1.0.0 => Client.invoke(wrap://plugin/concurrent@1.0.0)" ] - ], - "wrap://plugin/concurrent@1.0.0 => Client - Invoke(wrap://plugin/concurrent@1.0.0)" + ] ] ] ] ] ] - ] - ], - "wrap://ens/wraps.eth:uri-resolver-ext@1.1.0 => ResolverExtension - Invoke(wrap://ens/wraps.eth:ens-text-record-uri-resolver-ext@1.0.1) => uri (wrap://ipfs/QmSAXrSLcmGUkQRrApAtG5qTPmuRMMX2Zf1wihpguDQfbm)", - [ - "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => Client- loadWrapper(wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL) => wrapper (wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", + ], + "wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs => Client.invoke(wrap://ipfs/QmXcHWtKkfrFmcczdMSXH7udsSyV3UJeoWzkaUqGBm1oYs)", [ - "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", + "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => Client.loadWrapper(wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL) => wrapper (wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", [ - "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => ResolutionResultCacheResolver => wrapper (wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", + "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", [ - "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => PackageToWrapperResolver => wrapper (wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", + "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => ResolutionResultCacheResolver => wrapper (wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", [ - "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => UriResolverAggregator => package (wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", + "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => PackageToWrapperResolver => wrapper (wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", [ - "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => StaticResolver - Miss", - "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => ExtendableUriResolver => package (wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", + "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => UriResolverAggregator => package (wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", [ - "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => ResolverExtension - Load(wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => wrapper (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1)", - [ - "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", - [ - "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver (Cache) => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" - ], - "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", - [ - "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" - ] - ], - "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => ResolverExtension - Invoke(wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => package (wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", + "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => StaticResolver - Miss", + "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => ExtendableUriResolver => package (wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", [ - "wrap://plugin/concurrent@1.0.0 => Client- loadWrapper(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", + "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => ResolverExtension (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => uri (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1)", [ - "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", + "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => Client.loadWrapper(wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => wrapper (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1)", [ - "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" - ] - ], - "wrap://plugin/concurrent@1.0.0 => Client - Invoke(wrap://plugin/concurrent@1.0.0)", - "wrap://plugin/concurrent@1.0.0 => Client- loadWrapper(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", - [ - "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", + "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", + [ + "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver (Cache) => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" + ], + "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", + [ + "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" + ] + ], + "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => Client.invoke(wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", [ - "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" + "wrap://plugin/concurrent@1.0.0 => Client.loadWrapper(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", + [ + "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", + [ + "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" + ] + ], + "wrap://plugin/concurrent@1.0.0 => Client.invoke(wrap://plugin/concurrent@1.0.0)", + "wrap://plugin/concurrent@1.0.0 => Client.loadWrapper(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", + [ + "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", + [ + "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" + ] + ], + "wrap://plugin/concurrent@1.0.0 => Client.invoke(wrap://plugin/concurrent@1.0.0)" ] - ], - "wrap://plugin/concurrent@1.0.0 => Client - Invoke(wrap://plugin/concurrent@1.0.0)" + ] ] ] ] ] ] - ] - ], - "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => Client - Invoke(wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", - [ - "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => Client- loadWrapper(wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB) => wrapper (wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", + ], + "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => Client.invoke(wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", [ - "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", + "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => Client.loadWrapper(wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB) => wrapper (wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", [ - "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => ResolutionResultCacheResolver => wrapper (wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", + "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", [ - "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => PackageToWrapperResolver => wrapper (wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", + "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => ResolutionResultCacheResolver => wrapper (wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", [ - "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => UriResolverAggregator => package (wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", + "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => PackageToWrapperResolver => wrapper (wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", [ - "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => StaticResolver - Miss", - "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => ExtendableUriResolver => package (wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", + "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => UriResolverAggregator => package (wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", [ - "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => ResolverExtension - Load(wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => wrapper (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1)", - [ - "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", - [ - "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver (Cache) => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" - ], - "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", - [ - "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" - ] - ], - "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => ResolverExtension - Invoke(wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => package (wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", + "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => StaticResolver - Miss", + "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => ExtendableUriResolver => package (wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", [ - "wrap://plugin/concurrent@1.0.0 => Client- loadWrapper(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", + "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => ResolverExtension (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => uri (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1)", [ - "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", + "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => Client.loadWrapper(wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => wrapper (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1)", [ - "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" - ] - ], - "wrap://plugin/concurrent@1.0.0 => Client - Invoke(wrap://plugin/concurrent@1.0.0)", - "wrap://plugin/concurrent@1.0.0 => Client- loadWrapper(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", - [ - "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", + "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", + [ + "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver (Cache) => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" + ], + "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", + [ + "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" + ] + ], + "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => Client.invoke(wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", [ - "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" + "wrap://plugin/concurrent@1.0.0 => Client.loadWrapper(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", + [ + "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", + [ + "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" + ] + ], + "wrap://plugin/concurrent@1.0.0 => Client.invoke(wrap://plugin/concurrent@1.0.0)", + "wrap://plugin/concurrent@1.0.0 => Client.loadWrapper(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", + [ + "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", + [ + "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" + ] + ], + "wrap://plugin/concurrent@1.0.0 => Client.invoke(wrap://plugin/concurrent@1.0.0)" ] - ], - "wrap://plugin/concurrent@1.0.0 => Client - Invoke(wrap://plugin/concurrent@1.0.0)" + ] ] ] ] ] ] - ] - ], - "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => Client - Invoke(wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client- loadWrapper(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", - [ - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + ], + "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => Client.invoke(wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client.loadWrapper(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", [ - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => ResolutionResultCacheResolver => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", [ - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => PackageToWrapperResolver => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => ResolutionResultCacheResolver => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", [ - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => UriResolverAggregator => package (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => PackageToWrapperResolver => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", [ - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => StaticResolver - Miss", - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => ExtendableUriResolver => package (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => UriResolverAggregator => package (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", [ - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => ResolverExtension - Load(wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => wrapper (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1)", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => StaticResolver - Miss", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => ExtendableUriResolver => package (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", [ - "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => ResolverExtension (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => uri (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1)", [ - "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver (Cache) => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" - ], - "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", - [ - "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" - ] - ], - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => ResolverExtension - Invoke(wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => package (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", - [ - "wrap://plugin/concurrent@1.0.0 => Client- loadWrapper(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", - [ - "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", + "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => Client.loadWrapper(wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => wrapper (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1)", [ - "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" - ] - ], - "wrap://plugin/concurrent@1.0.0 => Client - Invoke(wrap://plugin/concurrent@1.0.0)", - "wrap://plugin/concurrent@1.0.0 => Client- loadWrapper(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", - [ - "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", + "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", + [ + "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver (Cache) => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" + ], + "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", + [ + "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" + ] + ], + "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => Client.invoke(wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", [ - "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" + "wrap://plugin/concurrent@1.0.0 => Client.loadWrapper(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", + [ + "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", + [ + "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" + ] + ], + "wrap://plugin/concurrent@1.0.0 => Client.invoke(wrap://plugin/concurrent@1.0.0)", + "wrap://plugin/concurrent@1.0.0 => Client.loadWrapper(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", + [ + "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", + [ + "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" + ] + ], + "wrap://plugin/concurrent@1.0.0 => Client.invoke(wrap://plugin/concurrent@1.0.0)" ] - ], - "wrap://plugin/concurrent@1.0.0 => Client - Invoke(wrap://plugin/concurrent@1.0.0)" + ] ] ] ] ] ] - ] - ], - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client - Invoke(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client- loadWrapper(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", - [ - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + ], + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client.invoke(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client.loadWrapper(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", [ - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)" - ] - ], - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client - Invoke(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client- loadWrapper(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", - [ - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + [ + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)" + ] + ], + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client.invoke(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client.loadWrapper(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", [ - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)" - ] - ], - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client - Invoke(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client- loadWrapper(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", - [ - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + [ + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)" + ] + ], + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client.invoke(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client.loadWrapper(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", [ - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)" - ] - ], - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client - Invoke(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", - "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => Client- loadWrapper(wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3) => wrapper (wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", - [ - "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + [ + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)" + ] + ], + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client.invoke(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => Client.loadWrapper(wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3) => wrapper (wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", [ - "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => ResolutionResultCacheResolver => wrapper (wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", + "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", [ - "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => PackageToWrapperResolver => wrapper (wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", + "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => ResolutionResultCacheResolver => wrapper (wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", [ - "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => UriResolverAggregator => package (wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", + "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => PackageToWrapperResolver => wrapper (wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", [ - "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => StaticResolver - Miss", - "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => ExtendableUriResolver => package (wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", + "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => UriResolverAggregator => package (wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", [ - "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => ResolverExtension - Load(wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => wrapper (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1)", + "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => StaticResolver - Miss", + "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => ExtendableUriResolver => package (wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", [ - "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", + "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => ResolverExtension (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => uri (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1)", [ - "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver (Cache) => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" - ], - "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", - [ - "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" - ] - ], - "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => ResolverExtension - Invoke(wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => package (wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", - [ - "wrap://plugin/concurrent@1.0.0 => Client- loadWrapper(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", - [ - "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", + "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => Client.loadWrapper(wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => wrapper (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1)", [ - "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" - ] - ], - "wrap://plugin/concurrent@1.0.0 => Client - Invoke(wrap://plugin/concurrent@1.0.0)", - "wrap://plugin/concurrent@1.0.0 => Client- loadWrapper(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", - [ - "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", + "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", + [ + "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver (Cache) => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" + ], + "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", + [ + "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" + ] + ], + "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => Client.invoke(wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", [ - "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" + "wrap://plugin/concurrent@1.0.0 => Client.loadWrapper(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", + [ + "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", + [ + "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" + ] + ], + "wrap://plugin/concurrent@1.0.0 => Client.invoke(wrap://plugin/concurrent@1.0.0)", + "wrap://plugin/concurrent@1.0.0 => Client.loadWrapper(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", + [ + "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", + [ + "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" + ] + ], + "wrap://plugin/concurrent@1.0.0 => Client.invoke(wrap://plugin/concurrent@1.0.0)" ] - ], - "wrap://plugin/concurrent@1.0.0 => Client - Invoke(wrap://plugin/concurrent@1.0.0)" + ] ] ] ] ] ] - ] - ], - "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => Client - Invoke(wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", - [ - "wrap://plugin/ethereum-provider@1.1.0 => Client- loadWrapper(wrap://plugin/ethereum-provider@1.1.0) => wrapper (wrap://plugin/ethereum-provider@1.1.0)", + ], + "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => Client.invoke(wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", [ - "wrap://plugin/ethereum-provider@1.1.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/ethereum-provider@1.1.0)", + "wrap://plugin/ethereum-provider@1.1.0 => Client.loadWrapper(wrap://plugin/ethereum-provider@1.1.0) => wrapper (wrap://plugin/ethereum-provider@1.1.0)", [ - "wrap://plugin/ethereum-provider@1.1.0 => ResolutionResultCacheResolver => wrapper (wrap://plugin/ethereum-provider@1.1.0)", + "wrap://plugin/ethereum-provider@1.1.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/ethereum-provider@1.1.0)", [ - "wrap://plugin/ethereum-provider@1.1.0 => PackageToWrapperResolver => wrapper (wrap://plugin/ethereum-provider@1.1.0)", + "wrap://plugin/ethereum-provider@1.1.0 => ResolutionResultCacheResolver => wrapper (wrap://plugin/ethereum-provider@1.1.0)", [ - "wrap://plugin/ethereum-provider@1.1.0 => UriResolverAggregator => package (wrap://plugin/ethereum-provider@1.1.0)", + "wrap://plugin/ethereum-provider@1.1.0 => PackageToWrapperResolver => wrapper (wrap://plugin/ethereum-provider@1.1.0)", [ - "wrap://plugin/ethereum-provider@1.1.0 => StaticResolver - Package (wrap://plugin/ethereum-provider@1.1.0) => package (wrap://plugin/ethereum-provider@1.1.0)" + "wrap://plugin/ethereum-provider@1.1.0 => UriResolverAggregator => package (wrap://plugin/ethereum-provider@1.1.0)", + [ + "wrap://plugin/ethereum-provider@1.1.0 => StaticResolver - Package (wrap://plugin/ethereum-provider@1.1.0) => package (wrap://plugin/ethereum-provider@1.1.0)" + ] ] ] ] - ] - ], - "wrap://plugin/ethereum-provider@1.1.0 => Client - Invoke(wrap://plugin/ethereum-provider@1.1.0)" - ] - ], - "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => Client- loadWrapper(wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL) => wrapper (wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", - [ - "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", - [ - "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => ResolutionResultCacheResolver (Cache) => wrapper (wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)" - ] - ], - "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => Client - Invoke(wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", - [ - "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => Client- loadWrapper(wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB) => wrapper (wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", - [ - "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", - [ - "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => ResolutionResultCacheResolver (Cache) => wrapper (wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)" + ], + "wrap://plugin/ethereum-provider@1.1.0 => Client.invoke(wrap://plugin/ethereum-provider@1.1.0)" ] ], - "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => Client - Invoke(wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client- loadWrapper(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => Client.loadWrapper(wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL) => wrapper (wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", [ - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", [ - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)" + "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => ResolutionResultCacheResolver (Cache) => wrapper (wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)" ] ], - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client - Invoke(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client- loadWrapper(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + "wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL => Client.invoke(wrap://ipfs/QmWG8NJnvGMCosxaUWuRna33MSDR331rByGTdy4EDsVjNL)", [ - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => Client.loadWrapper(wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB) => wrapper (wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", [ - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)" - ] - ], - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client - Invoke(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client- loadWrapper(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", - [ - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", + [ + "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => ResolutionResultCacheResolver (Cache) => wrapper (wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)" + ] + ], + "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB => Client.invoke(wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB)", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client.loadWrapper(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", [ - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)" - ] - ], - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client - Invoke(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client- loadWrapper(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", - [ - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + [ + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)" + ] + ], + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client.invoke(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client.loadWrapper(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", [ - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)" - ] - ], - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client - Invoke(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", - "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => Client- loadWrapper(wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3) => wrapper (wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", - [ - "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + [ + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)" + ] + ], + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client.invoke(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client.loadWrapper(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", [ - "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)" - ] - ], - "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => Client - Invoke(wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", - [ - "wrap://plugin/ethereum-provider@1.1.0 => Client- loadWrapper(wrap://plugin/ethereum-provider@1.1.0) => wrapper (wrap://plugin/ethereum-provider@1.1.0)", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + [ + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)" + ] + ], + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client.invoke(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client.loadWrapper(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + [ + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + [ + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)" + ] + ], + "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5 => Client.invoke(wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5)", + "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => Client.loadWrapper(wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3) => wrapper (wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", [ - "wrap://plugin/ethereum-provider@1.1.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/ethereum-provider@1.1.0)", + "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => RequestSynchronizerResolver => wrapper (wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", [ - "wrap://plugin/ethereum-provider@1.1.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/ethereum-provider@1.1.0)" + "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)" ] ], - "wrap://plugin/ethereum-provider@1.1.0 => Client - Invoke(wrap://plugin/ethereum-provider@1.1.0)" + "wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3 => Client.invoke(wrap://ipfs/QmS4Z679ZE8WwZSoYB8w9gDSERHAoWG1fX94oqdWpfpDq3)", + [ + "wrap://plugin/ethereum-provider@1.1.0 => Client.loadWrapper(wrap://plugin/ethereum-provider@1.1.0) => wrapper (wrap://plugin/ethereum-provider@1.1.0)", + [ + "wrap://plugin/ethereum-provider@1.1.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/ethereum-provider@1.1.0)", + [ + "wrap://plugin/ethereum-provider@1.1.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/ethereum-provider@1.1.0)" + ] + ], + "wrap://plugin/ethereum-provider@1.1.0 => Client.invoke(wrap://plugin/ethereum-provider@1.1.0)" + ] ] ] ] @@ -443,35 +464,38 @@ "wrap://ipfs/QmSAXrSLcmGUkQRrApAtG5qTPmuRMMX2Zf1wihpguDQfbm => StaticResolver - Miss", "wrap://ipfs/QmSAXrSLcmGUkQRrApAtG5qTPmuRMMX2Zf1wihpguDQfbm => ExtendableUriResolver => package (wrap://ipfs/QmSAXrSLcmGUkQRrApAtG5qTPmuRMMX2Zf1wihpguDQfbm)", [ - "wrap://ipfs/QmSAXrSLcmGUkQRrApAtG5qTPmuRMMX2Zf1wihpguDQfbm => ResolverExtension - Load(wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => wrapper (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1)", + "wrap://ipfs/QmSAXrSLcmGUkQRrApAtG5qTPmuRMMX2Zf1wihpguDQfbm => ResolverExtension (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => uri (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1)", [ - "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", + "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => Client.loadWrapper(wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => wrapper (wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1)", [ - "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver (Cache) => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" - ], - "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", - [ - "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" - ] - ], - "wrap://ipfs/QmSAXrSLcmGUkQRrApAtG5qTPmuRMMX2Zf1wihpguDQfbm => ResolverExtension - Invoke(wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1) => package (wrap://ipfs/QmSAXrSLcmGUkQRrApAtG5qTPmuRMMX2Zf1wihpguDQfbm)", - [ - "wrap://plugin/concurrent@1.0.0 => Client- loadWrapper(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", - [ - "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", + "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", + [ + "wrap://ens/wraps.eth:async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver (Cache) => uri (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" + ], + "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => RequestSynchronizerResolver => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", [ - "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" + "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)" ] ], - "wrap://plugin/concurrent@1.0.0 => Client - Invoke(wrap://plugin/concurrent@1.0.0)", - "wrap://plugin/concurrent@1.0.0 => Client- loadWrapper(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", + "wrap://embed/async-ipfs-uri-resolver-ext@1.0.1 => Client.invoke(wrap://embed/async-ipfs-uri-resolver-ext@1.0.1)", [ - "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", + "wrap://plugin/concurrent@1.0.0 => Client.loadWrapper(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", [ - "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" - ] - ], - "wrap://plugin/concurrent@1.0.0 => Client - Invoke(wrap://plugin/concurrent@1.0.0)" + "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", + [ + "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" + ] + ], + "wrap://plugin/concurrent@1.0.0 => Client.invoke(wrap://plugin/concurrent@1.0.0)", + "wrap://plugin/concurrent@1.0.0 => Client.loadWrapper(wrap://plugin/concurrent@1.0.0) => wrapper (wrap://plugin/concurrent@1.0.0)", + [ + "wrap://plugin/concurrent@1.0.0 => RequestSynchronizerResolver => wrapper (wrap://plugin/concurrent@1.0.0)", + [ + "wrap://plugin/concurrent@1.0.0 => ResolutionResultCacheResolver (Cache) => wrapper (wrap://plugin/concurrent@1.0.0)" + ] + ], + "wrap://plugin/concurrent@1.0.0 => Client.invoke(wrap://plugin/concurrent@1.0.0)" + ] ] ] ] diff --git a/packages/js/core-client/src/PolywrapCoreClient.ts b/packages/js/core-client/src/PolywrapCoreClient.ts index aa8742eb7b..c0a1b62394 100644 --- a/packages/js/core-client/src/PolywrapCoreClient.ts +++ b/packages/js/core-client/src/PolywrapCoreClient.ts @@ -287,7 +287,7 @@ export class PolywrapCoreClient implements CoreClient { result: loadWrapperResult.ok ? UriResolutionResult.ok(typedOptions.uri, loadWrapperResult.value) : UriResolutionResult.err(loadWrapperResult.error), - description: `Client- loadWrapper(${typedOptions.uri.uri})`, + description: `Client.loadWrapper(${typedOptions.uri.uri})`, subHistory: loadWrapperContext.getHistory(), }); @@ -318,7 +318,7 @@ export class PolywrapCoreClient implements CoreClient { result: invokeResult.ok ? UriResolutionResult.ok(finalUri) : ResultErr(invokeResult.error), - description: `Client - Invoke(${finalUri.uri})`, + description: `Client.invoke(${finalUri.uri})`, subHistory: invokeContext.getHistory(), }); diff --git a/packages/js/uri-resolver-extensions/src/UriResolverWrapper.ts b/packages/js/uri-resolver-extensions/src/UriResolverWrapper.ts index 199da6afde..19b49fb935 100644 --- a/packages/js/uri-resolver-extensions/src/UriResolverWrapper.ts +++ b/packages/js/uri-resolver-extensions/src/UriResolverWrapper.ts @@ -1,5 +1,4 @@ import { UriResolverExtensionFileReader } from "./UriResolverExtensionFileReader"; -import { loadResolverExtension } from "./ResolverExtensionLoader"; import { Uri, @@ -7,7 +6,6 @@ import { UriResolverInterface, IUriResolutionContext, UriPackageOrWrapper, - getEnvFromUriHistory, IUriResolver, } from "@polywrap/core-js"; import { Result, ResultOk } from "@polywrap/result"; @@ -96,56 +94,27 @@ const tryResolveUriWithImplementation = async ( ): Promise< Result > /* $ */ => { - const loadResolverContext = resolutionContext.createSubContext(); - const result = await loadResolverExtension( - uri, - implementationUri, - client, - loadResolverContext - ); - - resolutionContext.trackStep({ - sourceUri: uri, - result: result.ok - ? UriResolutionResult.ok(implementationUri, result.value) - : UriResolutionResult.err(result.error), - description: `ResolverExtension - Load(${implementationUri.uri})`, - subHistory: loadResolverContext.getHistory(), - }); + const resolverExtensionContext = resolutionContext.createSubContext(); - if (!result.ok) { - return result; - } - - const extensionWrapper = result.value; - - const resolveWithExtensionContext = resolutionContext.createSubContext(); - - const env = getEnvFromUriHistory( - loadResolverContext.getResolutionPath(), - client - ); - const invokeResult = await client.invokeWrapper( + const invokeResult = await client.invoke( { - wrapper: extensionWrapper, uri: implementationUri, method: "tryResolveUri", args: { authority: uri.authority, path: uri.path, }, - env: env, - resolutionContext: resolveWithExtensionContext, + resolutionContext: resolverExtensionContext, } ); resolutionContext.trackStep({ sourceUri: uri, result: invokeResult.ok - ? getResult(invokeResult.value, uri, implementationUri, client) - : UriResolutionResult.err(result), - description: `ResolverExtension - Invoke(${implementationUri.uri})`, - subHistory: resolveWithExtensionContext.getHistory(), + ? UriResolutionResult.ok(implementationUri) + : UriResolutionResult.err(invokeResult.error), + description: `ResolverExtension (${implementationUri.uri})`, + subHistory: resolverExtensionContext.getHistory(), }); if (!invokeResult.ok) {