diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 0535905..6daed10 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -3,13 +3,15 @@ name: Build and deploy VitePress site on: push: branches: [main] + pull_request: + branches: [main] workflow_dispatch: permissions: contents: read concurrency: - group: github-pages + group: github-pages-${{ github.ref }} cancel-in-progress: false jobs: @@ -25,16 +27,19 @@ jobs: node-version: 22 cache: npm - uses: actions/configure-pages@v5 + if: github.ref == 'refs/heads/main' - run: npm ci - run: npm test - run: npm run build env: BASE_PATH: /malt-web/ - uses: actions/upload-pages-artifact@v4 + if: github.ref == 'refs/heads/main' with: path: docs/.vitepress/dist deploy: + if: github.ref == 'refs/heads/main' needs: build runs-on: ubuntu-latest permissions: diff --git a/README.md b/README.md index ee3a0a2..ab052f7 100644 --- a/README.md +++ b/README.md @@ -20,10 +20,10 @@ application concerns. ## Current Source and Verifier Pin Current source uses explicit typed authentication through -`malt.authentication/3`, with Prefix and Positional trees. Retired Map/List, +`malt.authentication/5`, with Prefix and Positional trees. Retired Map/List, Resolve/Read and Artifact compatibility adapters are removed. Applications select every traversal input as opaque label bytes, including the ordinary -`@payload` label where required by their layout. Core rc.3 also offers optional +`@payload` label where required by their layout. Core also offers optional `sdk/object` Map/List/Immutable constructors over these current contracts. The public verifier uses the supported `@dewebprotocol/malt/verifier` API and @@ -32,8 +32,9 @@ copies WASM assets from the exact malt-ts commit pinned in `package-lock.json`. verifier asset-set digest, and the portable corpus digest. Run `npm run sync:verifier` after deliberately updating those pins; this website does not compile WASM or manage its own browser runtime. The current pin is -SDK `0.0.3-rc.4` at `a145712a7a5f0759f4f2a8a64e42364947daaf41`, bound to -Core `v0.0.10-rc.4` at `0d7b166d58d1c2e21ead96de9c66968caf630374`. +SDK `0.0.3` at `735c894cb7dd4bbdfa7032c75f48f5f23820fd14`, bound to +Core `v0.0.10` at `aaa78737c35f82fe91bb3f749cfddbcb7953ed2b`. The portable +`authentication-v3.json` corpus is copied unchanged from that Core release. The Resolve tool calls the current Gateway typed query route. The Verify tool imports proof JSON locally and verifies only a query whose Root and request the @@ -68,8 +69,9 @@ npm run preview ## Deployment -GitHub Actions tests and builds each push to `main`, then publishes the static -artifact to [GitHub Pages](https://dewebprotocol.github.io/malt-web/). Pages uses +GitHub Actions tests and builds pull requests and each push to `main`. Main +builds publish the static artifact to +[GitHub Pages](https://dewebprotocol.github.io/malt-web/). Pages uses the Actions publishing source and the `github-pages` environment. The public site's base path is `/malt-web/`; local development defaults to `/`. diff --git a/docs/.vitepress/config.ts b/docs/.vitepress/config.ts index 648c2ff..79dacc1 100644 --- a/docs/.vitepress/config.ts +++ b/docs/.vitepress/config.ts @@ -29,8 +29,8 @@ export default defineConfig({ { text: 'Docs', link: '/docs/runtime' }, { text: 'Service', link: '/service' }, { - text: 'Core v0.0.10-rc.3', - link: 'https://github.com/DeWebProtocol/malt-core/releases/tag/v0.0.10-rc.3' + text: 'Core v0.0.10', + link: 'https://github.com/DeWebProtocol/malt-core/releases/tag/v0.0.10' } ], sidebar: [ diff --git a/docs/.vitepress/theme/malt-client.mjs b/docs/.vitepress/theme/malt-client.mjs index af76931..e330b4d 100644 --- a/docs/.vitepress/theme/malt-client.mjs +++ b/docs/.vitepress/theme/malt-client.mjs @@ -1,4 +1,4 @@ -export const authenticationProfile = 'malt.authentication/3' +export const authenticationProfile = 'malt.authentication/5' export const defaultGatewayURL = 'http://127.0.0.1:8080' export function buildAuthenticationURL(baseURL) { diff --git a/docs/.vitepress/theme/verification-input.mjs b/docs/.vitepress/theme/verification-input.mjs index 7eb6566..17d3eb1 100644 --- a/docs/.vitepress/theme/verification-input.mjs +++ b/docs/.vitepress/theme/verification-input.mjs @@ -1,8 +1,8 @@ export function verificationPairs(authentication) { if (!authentication || typeof authentication !== 'object') throw new Error('authentication evidence is required') const pairs = Object.entries(authentication).map(([name, pair]) => { - if (!['node', 'payload', 'range'].includes(name) || pair?.request?.profile !== 'malt.authentication/3' || - pair?.result?.profile !== 'malt.authentication/3') throw new Error('unsupported authentication evidence') + if (!['node', 'payload', 'metadata', 'range'].includes(name) || pair?.request?.profile !== 'malt.authentication/5' || + pair?.result?.profile !== 'malt.authentication/5') throw new Error('unsupported authentication evidence') return { name, request: pair.request, result: pair.result } }) if (!pairs.length) throw new Error('authentication evidence is empty') diff --git a/docs/concepts/list-map.md b/docs/concepts/list-map.md index 871f4ad..0130bd9 100644 --- a/docs/concepts/list-map.md +++ b/docs/concepts/list-map.md @@ -17,12 +17,18 @@ uses by application convention. Generic relation structures need no payload. ## Positional -A Positional Root authenticates indexed targets and sequence geometry. Direct -labels encode uint64 indices as exactly eight unsigned big-endian bytes; text -such as `"42"` is not an index encoding. -Byte-range results bind metadata and ordered segment CIDs. Clients then check -segment bytes, lengths and slicing. Positional Roots do not implicitly redirect -through a payload selector. +A Positional Root authenticates indexed targets, a count and an optional opaque +payload CID. Only root slot zero stores metadata; all slots in non-root vectors +hold content. For capacity 256, 255 elements fit in one vector; 256 elements +require a root pointing to one full leaf vector. The count and capacity determine +the tree shape, so height and per-node sizes are not stored. + +Direct labels encode uint64 indices as exactly eight unsigned big-endian bytes; +text such as `"42"` is not an index encoding. Core range queries use element +indices. Applications verify the bytes referenced by the payload CID and +interpret their own format. UnixFS uses a JSON document for chunk width and +file size, then verifies chunk CIDs and slices bytes locally. Heterogeneous +sequences need no byte-size fields. ## Composition and updates diff --git a/docs/docs/api.md b/docs/docs/api.md index c56dc8a..a092374 100644 --- a/docs/docs/api.md +++ b/docs/docs/api.md @@ -6,7 +6,7 @@ Clients select an expected root and query, then verify the result locally. | Current route | Purpose | | --- | --- | -| `POST /v1/authentication/query` | Resolve explicit label steps, prove a binding, or authenticate a byte range | +| `POST /v1/authentication/query` | Resolve explicit label steps, prove a binding, or authenticate an element-index range | | `POST /v1/authentication/candidates` | Materialize a complete typed candidate in an unmanaged integration | | `POST /v1/authentication/batches` | Atomically materialize an ordered candidate batch with an exact receipt | | `POST /v1/cas` | Store payload bytes where the deployment permits unmanaged writes | @@ -20,7 +20,7 @@ for deployment policy, including immutable CAS access. ```json { - "profile": "malt.authentication/3", + "profile": "malt.authentication/5", "root": "", "steps": [], "operation": "resolve" @@ -31,11 +31,11 @@ for deployment policy, including immutable CAS access. uint64 indices as eight unsigned big-endian bytes. A binding request additionally selects `label`; a range request supplies `start` and optionally `end`, with an exclusive end. The -[Core authentication contract](https://github.com/DeWebProtocol/malt-core/blob/v0.0.10-rc.4/docs/spec/authentication-contracts.md) +[Core authentication contract](https://github.com/DeWebProtocol/malt-core/blob/v0.0.10/docs/spec/authentication-contracts.md) is normative for schemas and verification. -Candidates use `malt.authentication/2`; batches use -`malt.authentication-batch/1`; receipts use `malt.authentication-receipt/1`. +Candidates use `malt.authentication/4`; batches use +`malt.authentication-batch/2`; receipts use `malt.authentication-receipt/2`. An accepted receipt must bind the submitted transaction, base, root, batch digest and durable boundary. It records materialization, not a portable proof of a state transition or permission to promote a trusted root. diff --git a/docs/docs/prooflists.md b/docs/docs/prooflists.md index 1567799..3e7fc4f 100644 --- a/docs/docs/prooflists.md +++ b/docs/docs/prooflists.md @@ -1,6 +1,6 @@ # Typed Authentication Proofs -The current query profile is `malt.authentication/3`. An application constructs +The current query profile is `malt.authentication/5`. An application constructs an explicit root, label traversal steps, and an operation: `resolve`, `binding`, or `range`. The untrusted executor returns traversal evidence and, when requested, binding or range evidence. Core verifies that result against the @@ -30,8 +30,9 @@ metadata and ranges directly. ## Payload bytes and trust -Range evidence binds ordered segment CIDs and geometry. Applications must also -check downloaded segment bytes, lengths and slicing against that evidence. +Range evidence binds element-index bounds, ordered CIDs, count and an optional +metadata payload CID. Applications verify and decode that CID-bound document, +then check downloaded chunk bytes, lengths and slicing using their own geometry. Verifying a proof alone does not check a displayed payload buffer. Proof validity is relative to the caller-selected snapshot. A proof does not diff --git a/docs/docs/runtime.md b/docs/docs/runtime.md index 76f393c..0e5ac26 100644 --- a/docs/docs/runtime.md +++ b/docs/docs/runtime.md @@ -14,8 +14,8 @@ narrow capabilities in `auth/arcset/materializer`. The old Map/List adapters, module-root facade, aggregate Store and Resolve/Read/client-root APIs are removed. Core does not own ArcTable persistence, CAS, HTTP, UnixFS or trust policy. -Core `v0.0.10-rc.3` adds the optional [`sdk/object` -API](https://github.com/DeWebProtocol/malt-core/blob/v0.0.10-rc.3/docs/guides/objects.md). +Core `v0.0.10` provides the optional [`sdk/object` +API](https://github.com/DeWebProtocol/malt-core/blob/v0.0.10/docs/guides/objects.md). Applications can compose Maps, Lists, immutable byte leaves and custom structs, commit their reachable references, then collect graph deltas for storage. These constructors use the current Prefix/Positional authentication contracts; @@ -25,7 +25,8 @@ Persistence, publication and accepted-root policy remain with the caller. [`malt-ts`](https://github.com/DeWebProtocol/malt-ts) owns the supported TypeScript/JavaScript API, browser Workers and reproducible WASM distribution. Its API is separate from the Go Object API. Both this site's verifier and the -Gateway Console now pin SDK `0.0.3-rc.4`, bound to published Core rc.4. +Gateway Console pin SDK `0.0.3` at commit +`735c894cb7dd4bbdfa7032c75f48f5f23820fd14`, bound to published Core `v0.0.10`. ## Gateway diff --git a/docs/docs/unixfs-layout.md b/docs/docs/unixfs-layout.md index a7352e4..ef23868 100644 --- a/docs/docs/unixfs-layout.md +++ b/docs/docs/unixfs-layout.md @@ -32,11 +32,15 @@ If traversal ends at a Prefix Root, content reading explicitly selects its ordinary application label `@payload`, encoded as `"QHBheWxvYWQ="`. A flat path that directly targets a payload or manifest needs no extra payload query. Core treats these bytes like every other label. -Chunked files use Positional authentication with fixed-width geometry and -ordered chunk CIDs. The local verified reader authenticates range evidence, -fetches and checks segment bytes and lengths, then slices the requested range. -A proof alone does not authenticate a displayed byte buffer. Encrypted UnixFS -also checks the authenticated ciphertext width against its encrypted manifest. +Chunked files use Positional authentication for count, an opaque metadata CID +and ordered chunk CIDs. The root payload CID binds canonical +`malt.unixfs.chunks/1` JSON containing `chunk_size` and `total_size` as decimal +strings. The reader verifies those bytes and checks the geometry against the +authenticated count before translating byte intervals into element-index queries. +It then verifies range evidence, fetches and checks chunk bytes and lengths, +and slices the requested interval. A proof alone does not authenticate a +displayed byte buffer. Encrypted UnixFS also checks the CID-bound ciphertext +width against its encrypted manifest. ## MALT Target Symlink Directory Boundary diff --git a/docs/evaluation.md b/docs/evaluation.md index 251fc6c..d3da60c 100644 --- a/docs/evaluation.md +++ b/docs/evaluation.md @@ -48,8 +48,9 @@ v0.0.5 `MALT-flat` result label is not a current runtime layout identifier. HAMT is a directory/map-relation baseline. Large-file range comparisons must also identify their chunk layout and payload-verification work. MALT range -evidence authenticates chunk metadata and segment CIDs; the client still -hashes fetched bytes and assembles the requested interval. +evidence authenticates element-index bounds, count, an optional metadata CID +and ordered chunk CIDs. The client verifies its CID-bound application geometry, +hashes fetched chunks and assembles the requested byte interval. The [frozen harness record](/docs/evaluation#frozen-v0-0-5-harness) remains historical provenance. Its schemas, commands and results must not be relabeled diff --git a/docs/index.md b/docs/index.md index 5e0acef..fad3cd8 100644 --- a/docs/index.md +++ b/docs/index.md @@ -61,7 +61,7 @@ import { withBase } from 'vitepress'
Current pre-v1 contracts - Use explicit opaque labels with malt.authentication/3 and verify each result against the intended root and query. + Use explicit opaque labels with malt.authentication/5 and verify each result against the intended root and query.
Filesystem boundary diff --git a/docs/narrative/abstraction.md b/docs/narrative/abstraction.md index 3c20b16..dc3e05d 100644 --- a/docs/narrative/abstraction.md +++ b/docs/narrative/abstraction.md @@ -29,8 +29,8 @@ The two tree layouts serve different workloads: - **Prefix** authenticates keyed bindings and absence. A complete flat path may be a single label input; Core does not parse or group path segments. -- **Positional** authenticates indexed bindings and count metadata. Its - fixed-chunk form also authenticates byte-layout metadata for range queries. +- **Positional** authenticates indexed bindings, a count and an optional opaque + payload CID in the root. Applications interpret the referenced metadata. The current SDK exposes these through `derivation`, `auth/tree`, `engine` and `sdk/authentication`. Keyed and sequential application data no longer @@ -43,7 +43,7 @@ at the current Root; a following step uses the reached Root's own descriptor. Applications choose all selectors and arc boundaries. There is no automatic longest-prefix grouping or implicit terminal payload redirect. -The `malt.authentication/3` query contract supports resolve, binding and range +The `malt.authentication/5` query contract supports resolve, binding and range operations. Local verification checks the caller's complete Root, requested steps, ordered continuity and final operation evidence. A missing binding proves where traversal stopped, without authenticating an unvisited suffix. @@ -62,10 +62,12 @@ file and directory entries already point to their payload or manifest target. Large-file payloads use Positional chunk bindings. The three current UnixFS strategies are described in [UnixFS layouts](/docs/unixfs-layout). -A Positional range result authenticates bounds, fixed chunk metadata and the -ordered segment CIDs covered by the requested interval. The application must -hash fetched bytes against those CIDs and assemble the requested slice. Core -proof verification alone does not authenticate an arbitrary response body. +A Positional range result authenticates element-index bounds, root metadata and +the ordered CIDs in that interval. UnixFS verifies the JSON referenced by the +root payload CID, checks its file size and chunk width against the authenticated +count, and translates byte ranges into element-index queries. It then hashes +fetched chunks and assembles the requested slice. Core proof verification alone +does not authenticate an arbitrary response body. ## Updates and Trust diff --git a/docs/narrative/evaluation-story.md b/docs/narrative/evaluation-story.md index 6038946..9c0a23d 100644 --- a/docs/narrative/evaluation-story.md +++ b/docs/narrative/evaluation-story.md @@ -23,14 +23,14 @@ The core read shape is: ```text Authenticate(root, label steps, resolve) -> destination + traversal evidence -Authenticate(root, label steps, range) -> fixed-chunk metadata + segment bindings +Authenticate(root, label steps, index range) -> count + metadata CID + element bindings Fetch and bind segment bytes -> requested byte interval ``` -The current typed range operation authenticates fixed chunk metadata, bounds -and the ordered segment CIDs. The local runtime's UnixFS reader verifies that -evidence against its selected Root, hashes fetched segment bytes, and assembles -the requested slice. Proof and payload checks are separate measured work; +The current typed range operation authenticates element-index bounds, count, +an optional metadata CID and ordered element CIDs. The UnixFS reader verifies +the referenced application JSON, translates byte intervals into index ranges, +verifies those ranges against its selected Root, and hashes and slices chunks. Proof and payload checks are separate measured work; the removed `list_range` proof format and `VerifyRangeBody` helper are not current runtime APIs. diff --git a/docs/narrative/system-design.md b/docs/narrative/system-design.md index f29a3ff..fd57ef6 100644 --- a/docs/narrative/system-design.md +++ b/docs/narrative/system-design.md @@ -74,7 +74,9 @@ reader explicitly queries the ordinary label `@payload`. A direct payload or manifest target needs no extra selector. Core treats this label as opaque bytes; the reserved-name policy belongs to the application or Object SDK. -Range evidence authenticates fixed chunk metadata and selected chunk CIDs. +Range evidence authenticates count, an optional metadata CID and selected +element CIDs. UnixFS verifies its metadata JSON and translates byte ranges to +element indices before checking chunk bytes. The reader then checks the fetched bytes and assembles the requested interval. The [UnixFS layout guide](/docs/unixfs-layout) describes the current strategies. @@ -82,5 +84,5 @@ The [Core repository](https://github.com/DeWebProtocol/malt-core) defines executable authentication semantics. The [local runtime](https://github.com/DeWebProtocol/malt) owns UnixFS and CLI behavior; its Go module path remains `github.com/dewebprotocol/malt-client`. -Current source uses `malt.authentication/3`; exact release pins identify the +Current source uses `malt.authentication/5`; exact release pins identify the implementation used by a deployed binary. diff --git a/docs/overview.md b/docs/overview.md index 1ed2e05..1197206 100644 --- a/docs/overview.md +++ b/docs/overview.md @@ -42,7 +42,7 @@ MALT changes the boundary: - Prefix and Positional layouts are selected by a Root descriptor - KZG and IPA provide commitment backends - `engine` and `traversal` compose those primitives through narrow materializer capabilities -- `malt.authentication/3` carries explicit queries and locally verified evidence +- `malt.authentication/5` carries explicit queries and locally verified evidence - retained writers produce candidates and exact materialization batches - immutable payloads remain ordinary CAS data diff --git a/docs/public/verifier/PROVENANCE.json b/docs/public/verifier/PROVENANCE.json index 0b8850c..0ada1f6 100644 --- a/docs/public/verifier/PROVENANCE.json +++ b/docs/public/verifier/PROVENANCE.json @@ -1,13 +1,13 @@ { "schema": "malt.ts-verifier.provenance/v1", "source_repository": "https://github.com/DeWebProtocol/malt-ts.git", - "build_inputs_sha256": "9073c0f81dbe9baf8b0ee06e58b9c666a6f724fae3d07ae22b65d5735cd4c1b2", + "build_inputs_sha256": "610e2e0b50304b981e485d3e5f92db4b4552783a90671d1a26716d78d6d47396", "core": { "module_path": "github.com/dewebprotocol/malt-core", - "module_version": "v0.0.10-rc.4", + "module_version": "v0.0.10", "source_repository": "https://github.com/DeWebProtocol/malt-core.git", - "source_commit": "0d7b166d58d1c2e21ead96de9c66968caf630374", - "module_sum": "h1:BpA7vH0LwKTmipTlAUu97CniBXTxBT9f5AQWV8UFbmY=", + "source_commit": "aaa78737c35f82fe91bb3f749cfddbcb7953ed2b", + "module_sum": "h1:HgzuUot+AAKiLz20KdeUlnVDCVFHxfjQc7unsQOqm7Q=", "go_mod_sum": "h1:o6L8K9vJp5hyrVo3fUtSsj0rvNpcboOcOb3nQwnR/gs=" }, "target": "js/wasm", diff --git a/docs/public/verifier/README.md b/docs/public/verifier/README.md index 58dfad7..b946c00 100644 --- a/docs/public/verifier/README.md +++ b/docs/public/verifier/README.md @@ -4,14 +4,17 @@ These files are copied byte-for-byte from the exact `@dewebprotocol/malt` package locked in `package-lock.json`. `verifier-source.json` records its malt-ts commit and version, the published Core source identity, the verifier asset-set digest, and the separately retained Core corpus digest. +`authentication-v3.json` is copied unchanged from `conformance/` in the exact +published Core release recorded by that pin; it is not generated by Web. The WASM, matching `wasm_exec.js`, `PROVENANCE.json`, and `SHA256SUMS` belong to malt-ts. Web preserves those files unchanged and imports the supported `@dewebprotocol/malt/verifier` API for browser initialization and verification. There is no Core checkout or Go/WASM compilation step in this repository. -After a deliberate SDK dependency/pin update, run sequentially in the workspace -CPU-limited scope: +When updating the SDK dependency and pin, copy the matching Core corpus into +this directory and record its SHA-256 in `verifier-source.json`. Then run +sequentially in the workspace CPU-limited scope: ```sh npm ci diff --git a/docs/public/verifier/SHA256SUMS b/docs/public/verifier/SHA256SUMS index 5d40b27..a4ee8eb 100644 --- a/docs/public/verifier/SHA256SUMS +++ b/docs/public/verifier/SHA256SUMS @@ -1,3 +1,3 @@ -62d7bc0d24a4d3aa8fd9ce799e35545667a17885736da5c13a2f43a80e448fe6 malt-verifier.wasm +adfb131464ba9c9f19292569c1e5ea3c34a29f5c7f5eef5bf288f994d917c037 malt-verifier.wasm 0c949f4996f9a89698e4b5c586de32249c3b69b7baadb64d220073cc04acba14 wasm_exec.js -af3da7057b4535514f38da2f4e2404b5be3141f034530b7d1326694a65fcc3d8 PROVENANCE.json +d5bc936fbbcf740fc41d6936be8b9ee9dc64e7a6d8ccf1c90d6726cd1b70ba32 PROVENANCE.json diff --git a/docs/public/verifier/authentication-v2.json b/docs/public/verifier/authentication-v3.json similarity index 69% rename from docs/public/verifier/authentication-v2.json rename to docs/public/verifier/authentication-v3.json index 4a6cef4..efcf917 100644 --- a/docs/public/verifier/authentication-v2.json +++ b/docs/public/verifier/authentication-v3.json @@ -1,18 +1,18 @@ { - "schema": "malt.conformance.authentication/2", + "schema": "malt.conformance.authentication/3", "vectors": [ { "id": "profile-1.opaque-label", "verification": { "request": { - "profile": "malt.authentication/3", + "profile": "malt.authentication/5", "root": "bagcifqabaazacmeizvisw6kvl7mjas3zpl24qor7c2bxoj4v6bmpma3pljbjxu7baeuiwm2icd7mri4rlhnqaciuxkka", "steps": [], "operation": "binding", "label": "YS9i" }, "result": { - "profile": "malt.authentication/3", + "profile": "malt.authentication/5", "resolved": "bagcifqabaazacmeizvisw6kvl7mjas3zpl24qor7c2bxoj4v6bmpma3pljbjxu7baeuiwm2icd7mri4rlhnqaciuxkka", "traversal": { "results": [] @@ -23,7 +23,7 @@ "/": "bafkqaaa" }, "proof": { - "format": "malt.binding/0", + "format": "malt.binding/1", "nodes": [ { "cell": "AUpP4gTEWIEpcctAi8qPK1MCK5ZrbHenzrb0i7ROZJoMAVUAAA==", @@ -40,14 +40,14 @@ "id": "profile-1.system-payload", "verification": { "request": { - "profile": "malt.authentication/3", + "profile": "malt.authentication/5", "root": "bagcifqabaazacmeizvisw6kvl7mjas3zpl24qor7c2bxoj4v6bmpma3pljbjxu7baeuiwm2icd7mri4rlhnqaciuxkka", "steps": [], "operation": "binding", "label": "QHBheWxvYWQ=" }, "result": { - "profile": "malt.authentication/3", + "profile": "malt.authentication/5", "resolved": "bagcifqabaazacmeizvisw6kvl7mjas3zpl24qor7c2bxoj4v6bmpma3pljbjxu7baeuiwm2icd7mri4rlhnqaciuxkka", "traversal": { "results": [] @@ -58,7 +58,7 @@ "/": "bafkqaaa" }, "proof": { - "format": "malt.binding/0", + "format": "malt.binding/1", "nodes": [ { "cell": "AVhtkShuxVQxtaAyOOYV1ihwr8vcvrFAtvJdJTHMQfJHAVUAAA==", @@ -75,14 +75,14 @@ "id": "profile-1.literal-at-payload-absent", "verification": { "request": { - "profile": "malt.authentication/3", + "profile": "malt.authentication/5", "root": "bagcifqabaazacmeizvisw6kvl7mjas3zpl24qor7c2bxoj4v6bmpma3pljbjxu7baeuiwm2icd7mri4rlhnqaciuxkka", "steps": [], "operation": "binding", "label": "QHBheWxvYWQ=" }, "result": { - "profile": "malt.authentication/3", + "profile": "malt.authentication/5", "resolved": "bagcifqabaazacmeizvisw6kvl7mjas3zpl24qor7c2bxoj4v6bmpma3pljbjxu7baeuiwm2icd7mri4rlhnqaciuxkka", "traversal": { "results": [] @@ -93,7 +93,7 @@ "/": "bafkqaaa" }, "proof": { - "format": "malt.binding/0", + "format": "malt.binding/1", "nodes": [ { "cell": "AVhtkShuxVQxtaAyOOYV1ihwr8vcvrFAtvJdJTHMQfJHAVUAAA==", @@ -110,14 +110,14 @@ "id": "profile-1.missing", "verification": { "request": { - "profile": "malt.authentication/3", + "profile": "malt.authentication/5", "root": "bagcifqabaazacmeizvisw6kvl7mjas3zpl24qor7c2bxoj4v6bmpma3pljbjxu7baeuiwm2icd7mri4rlhnqaciuxkka", "steps": [], "operation": "binding", "label": "YWJzZW50" }, "result": { - "profile": "malt.authentication/3", + "profile": "malt.authentication/5", "resolved": "bagcifqabaazacmeizvisw6kvl7mjas3zpl24qor7c2bxoj4v6bmpma3pljbjxu7baeuiwm2icd7mri4rlhnqaciuxkka", "traversal": { "results": [] @@ -126,7 +126,7 @@ "present": false, "target": null, "proof": { - "format": "malt.binding/0", + "format": "malt.binding/1", "nodes": [ { "proof": "oSv+g58iDGpoxsO7Yl+SM3IBDnBiIrEWKUmpRSXGmBwlkYE7XKLwDULkzJXRyd7sb8Mc729ensxnwhzAj83hHtPwneFknTdNpJWZHHhSuFQAAAMW" @@ -142,7 +142,7 @@ "id": "profile-1.path-absence", "verification": { "request": { - "profile": "malt.authentication/3", + "profile": "malt.authentication/5", "root": "bagcifqabaazacmeizvisw6kvl7mjas3zpl24qor7c2bxoj4v6bmpma3pljbjxu7baeuiwm2icd7mri4rlhnqaciuxkka", "steps": [ "bWlzc2luZw==", @@ -152,7 +152,7 @@ }, "result": { "absent_step": "0", - "profile": "malt.authentication/3", + "profile": "malt.authentication/5", "resolved": "", "traversal": { "results": [ @@ -160,7 +160,7 @@ "present": false, "target": null, "proof": { - "format": "malt.binding/0", + "format": "malt.binding/1", "nodes": [ { "proof": "tDIyDicE0rDPI+kQag1xLhQ9KJEuwiSA0I+XHmmev7tO5NY9VzXls5Upc61ClY4Ab8Mc729ensxnwhzAj83hHtPwneFknTdNpJWZHHhSuFQAAA5B" @@ -178,7 +178,7 @@ "id": "profile-1.path-wrong-prefix", "verification": { "request": { - "profile": "malt.authentication/3", + "profile": "malt.authentication/5", "root": "bagcifqabaazacmeizvisw6kvl7mjas3zpl24qor7c2bxoj4v6bmpma3pljbjxu7baeuiwm2icd7mri4rlhnqaciuxkka", "steps": [ "YS9i", @@ -188,7 +188,7 @@ }, "result": { "absent_step": "0", - "profile": "malt.authentication/3", + "profile": "malt.authentication/5", "resolved": "", "traversal": { "results": [ @@ -196,7 +196,7 @@ "present": false, "target": null, "proof": { - "format": "malt.binding/0", + "format": "malt.binding/1", "nodes": [ { "proof": "tDIyDicE0rDPI+kQag1xLhQ9KJEuwiSA0I+XHmmev7tO5NY9VzXls5Upc61ClY4Ab8Mc729ensxnwhzAj83hHtPwneFknTdNpJWZHHhSuFQAAA5B" @@ -214,14 +214,14 @@ "id": "profile-1.native-key", "verification": { "request": { - "profile": "malt.authentication/3", + "profile": "malt.authentication/5", "root": "bagbyfqabaazacmeizvisw6kvl7mjas3zpl24qor7c2bxoj4v6bmpma3pljbjxu7baeuiwm2icd7mri4rlhnqaciuxkka", "steps": [], "operation": "binding", "label": "Sk/iBMRYgSlxy0CLyo8rUwIrlmtsd6fOtvSLtE5kmgw=" }, "result": { - "profile": "malt.authentication/3", + "profile": "malt.authentication/5", "resolved": "bagbyfqabaazacmeizvisw6kvl7mjas3zpl24qor7c2bxoj4v6bmpma3pljbjxu7baeuiwm2icd7mri4rlhnqaciuxkka", "traversal": { "results": [] @@ -232,7 +232,7 @@ "/": "bafkqaaa" }, "proof": { - "format": "malt.binding/0", + "format": "malt.binding/1", "nodes": [ { "cell": "AUpP4gTEWIEpcctAi8qPK1MCK5ZrbHenzrb0i7ROZJoMAVUAAA==", @@ -246,38 +246,38 @@ "valid": true }, { - "id": "profile-1.measured-range", + "id": "profile-1.index-range", "verification": { "request": { - "profile": "malt.authentication/3", - "root": "bagbyjqabaazacmep4r33pu4x44a724lsw6kdro4pm3pj44jcpczhaskr6fswharstia7uxasgilkkp26z3ibxvcelqfq", + "profile": "malt.authentication/5", + "root": "bagbynqabaazacmfayxi3uujg3r5atu6bysgwhs7zjvyfvfbpaopsoz23lym7pstqpiadcfgruiwqc3e3elket6sw4cma", "steps": [], "operation": "range", - "start": "1", - "end": "4" + "start": "0", + "end": "1" }, "result": { - "profile": "malt.authentication/3", - "resolved": "bagbyjqabaazacmep4r33pu4x44a724lsw6kdro4pm3pj44jcpczhaskr6fswharstia7uxasgilkkp26z3ibxvcelqfq", + "profile": "malt.authentication/5", + "resolved": "bagbynqabaazacmfayxi3uujg3r5atu6bysgwhs7zjvyfvfbpaopsoz23lym7pstqpiadcfgruiwqc3e3elket6sw4cma", "traversal": { "results": [] }, "range": { "metadata": { - "height": "0", "count": "1", - "chunk_size": "8", - "total_size": "5" + "payload_cid": { + "/": "bafkqaaa" + } }, "metadata_evidence": { "present": false, "target": null, "proof": { - "format": "malt.binding/0", + "format": "malt.binding/1", "nodes": [ { - "metadata": "BAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAACAAAAAAAAAAF", - "metadata_proof": "gdCoG3ejLuTLcUCsnYZ2cjnSxHFbiQaQ5ZIIwE2gTS4a1XsyEv9KqESdNaVwiB5oZgTHMN2uijoPi5iyzkJ3GSIc9S0gTW43hTiaTfNriYIAAAAA" + "metadata": "BAAAAAAAAAABAVUAAA==", + "metadata_proof": "tDLIjcFRMQv8PmblkeOPubXSRA8JUa/36niAVbr192GuwXyLQ3k0yCH91vZvjWOjaG2JvsVkmiWGbTi2MoohfQnYij6/eALvfaee0Ds/LokAAAAA" } ] } @@ -289,13 +289,13 @@ "/": "bafkqaaa" }, "proof": { - "format": "malt.binding/0", + "format": "malt.binding/1", "nodes": [ { "cell": "AwFVAAA=", - "proof": "hxiD2PT161yCU5FBXWFG8Stn1Q6v+CPMBpLHYyMuNy9zarGk2VwVxn6a/8KLcWA6SYgxv5oSCIfei3mAAJBbEi/uD5REKgivU7C8OExSdz0AAAAB", - "metadata": "BAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAACAAAAAAAAAAF", - "metadata_proof": "gdCoG3ejLuTLcUCsnYZ2cjnSxHFbiQaQ5ZIIwE2gTS4a1XsyEv9KqESdNaVwiB5oZgTHMN2uijoPi5iyzkJ3GSIc9S0gTW43hTiaTfNriYIAAAAA" + "proof": "pAvrab7e8VdxSsFK07bPCY1eJvA5f8JNQelxsLteF2WjSqjV8I4EwiCn2whKnVLMSYgxv5oSCIfei3mAAJBbEi/uD5REKgivU7C8OExSdz0AAAAB", + "metadata": "BAAAAAAAAAABAVUAAA==", + "metadata_proof": "tDLIjcFRMQv8PmblkeOPubXSRA8JUa/36niAVbr192GuwXyLQ3k0yCH91vZvjWOjaG2JvsVkmiWGbTi2MoohfQnYij6/eALvfaee0Ds/LokAAAAA" } ] } @@ -310,15 +310,15 @@ "id": "profile-1.max-index-absence", "verification": { "request": { - "profile": "malt.authentication/3", - "root": "bagbyjqabaazacmep4r33pu4x44a724lsw6kdro4pm3pj44jcpczhaskr6fswharstia7uxasgilkkp26z3ibxvcelqfq", + "profile": "malt.authentication/5", + "root": "bagbynqabaazacmfayxi3uujg3r5atu6bysgwhs7zjvyfvfbpaopsoz23lym7pstqpiadcfgruiwqc3e3elket6sw4cma", "steps": [], "operation": "binding", "label": "//////////8=" }, "result": { - "profile": "malt.authentication/3", - "resolved": "bagbyjqabaazacmep4r33pu4x44a724lsw6kdro4pm3pj44jcpczhaskr6fswharstia7uxasgilkkp26z3ibxvcelqfq", + "profile": "malt.authentication/5", + "resolved": "bagbynqabaazacmfayxi3uujg3r5atu6bysgwhs7zjvyfvfbpaopsoz23lym7pstqpiadcfgruiwqc3e3elket6sw4cma", "traversal": { "results": [] }, @@ -326,11 +326,11 @@ "present": false, "target": null, "proof": { - "format": "malt.binding/0", + "format": "malt.binding/1", "nodes": [ { - "metadata": "BAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAACAAAAAAAAAAF", - "metadata_proof": "gdCoG3ejLuTLcUCsnYZ2cjnSxHFbiQaQ5ZIIwE2gTS4a1XsyEv9KqESdNaVwiB5oZgTHMN2uijoPi5iyzkJ3GSIc9S0gTW43hTiaTfNriYIAAAAA" + "metadata": "BAAAAAAAAAABAVUAAA==", + "metadata_proof": "tDLIjcFRMQv8PmblkeOPubXSRA8JUa/36niAVbr192GuwXyLQ3k0yCH91vZvjWOjaG2JvsVkmiWGbTi2MoohfQnYij6/eALvfaee0Ds/LokAAAAA" } ] } @@ -343,15 +343,15 @@ "id": "profile-1.wrong-root", "verification": { "request": { - "profile": "malt.authentication/3", + "profile": "malt.authentication/5", "root": "bagcifqabaazacmeizvisw6kvl7mjas3zpl24qor7c2bxoj4v6bmpma3pljbjxu7baeuiwm2icd7mri4rlhnqaciuxkka", "steps": [], "operation": "binding", "label": "//////////8=" }, "result": { - "profile": "malt.authentication/3", - "resolved": "bagbyjqabaazacmep4r33pu4x44a724lsw6kdro4pm3pj44jcpczhaskr6fswharstia7uxasgilkkp26z3ibxvcelqfq", + "profile": "malt.authentication/5", + "resolved": "bagbynqabaazacmfayxi3uujg3r5atu6bysgwhs7zjvyfvfbpaopsoz23lym7pstqpiadcfgruiwqc3e3elket6sw4cma", "traversal": { "results": [] }, @@ -359,11 +359,11 @@ "present": false, "target": null, "proof": { - "format": "malt.binding/0", + "format": "malt.binding/1", "nodes": [ { - "metadata": "BAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAACAAAAAAAAAAF", - "metadata_proof": "gdCoG3ejLuTLcUCsnYZ2cjnSxHFbiQaQ5ZIIwE2gTS4a1XsyEv9KqESdNaVwiB5oZgTHMN2uijoPi5iyzkJ3GSIc9S0gTW43hTiaTfNriYIAAAAA" + "metadata": "BAAAAAAAAAABAVUAAA==", + "metadata_proof": "tDLIjcFRMQv8PmblkeOPubXSRA8JUa/36niAVbr192GuwXyLQ3k0yCH91vZvjWOjaG2JvsVkmiWGbTi2MoohfQnYij6/eALvfaee0Ds/LokAAAAA" } ] } @@ -376,14 +376,14 @@ "id": "profile-2.opaque-label", "verification": { "request": { - "profile": "malt.authentication/3", + "profile": "malt.authentication/5", "root": "bagcifqabaaraeibilw5ubbbdvzfio23n6bixonzcq4mgcahebcv6cr4xp33gw33gvu", "steps": [], "operation": "binding", "label": "YS9i" }, "result": { - "profile": "malt.authentication/3", + "profile": "malt.authentication/5", "resolved": "bagcifqabaaraeibilw5ubbbdvzfio23n6bixonzcq4mgcahebcv6cr4xp33gw33gvu", "traversal": { "results": [] @@ -394,7 +394,7 @@ "/": "bafkqaaa" }, "proof": { - "format": "malt.binding/0", + "format": "malt.binding/1", "nodes": [ { "cell": "AUpP4gTEWIEpcctAi8qPK1MCK5ZrbHenzrb0i7ROZJoMAVUAAA==", @@ -411,14 +411,14 @@ "id": "profile-2.system-payload", "verification": { "request": { - "profile": "malt.authentication/3", + "profile": "malt.authentication/5", "root": "bagcifqabaaraeibilw5ubbbdvzfio23n6bixonzcq4mgcahebcv6cr4xp33gw33gvu", "steps": [], "operation": "binding", "label": "QHBheWxvYWQ=" }, "result": { - "profile": "malt.authentication/3", + "profile": "malt.authentication/5", "resolved": "bagcifqabaaraeibilw5ubbbdvzfio23n6bixonzcq4mgcahebcv6cr4xp33gw33gvu", "traversal": { "results": [] @@ -429,7 +429,7 @@ "/": "bafkqaaa" }, "proof": { - "format": "malt.binding/0", + "format": "malt.binding/1", "nodes": [ { "cell": "AVhtkShuxVQxtaAyOOYV1ihwr8vcvrFAtvJdJTHMQfJHAVUAAA==", @@ -446,14 +446,14 @@ "id": "profile-2.literal-at-payload-absent", "verification": { "request": { - "profile": "malt.authentication/3", + "profile": "malt.authentication/5", "root": "bagcifqabaaraeibilw5ubbbdvzfio23n6bixonzcq4mgcahebcv6cr4xp33gw33gvu", "steps": [], "operation": "binding", "label": "QHBheWxvYWQ=" }, "result": { - "profile": "malt.authentication/3", + "profile": "malt.authentication/5", "resolved": "bagcifqabaaraeibilw5ubbbdvzfio23n6bixonzcq4mgcahebcv6cr4xp33gw33gvu", "traversal": { "results": [] @@ -464,7 +464,7 @@ "/": "bafkqaaa" }, "proof": { - "format": "malt.binding/0", + "format": "malt.binding/1", "nodes": [ { "cell": "AVhtkShuxVQxtaAyOOYV1ihwr8vcvrFAtvJdJTHMQfJHAVUAAA==", @@ -481,14 +481,14 @@ "id": "profile-2.missing", "verification": { "request": { - "profile": "malt.authentication/3", + "profile": "malt.authentication/5", "root": "bagcifqabaaraeibilw5ubbbdvzfio23n6bixonzcq4mgcahebcv6cr4xp33gw33gvu", "steps": [], "operation": "binding", "label": "YWJzZW50" }, "result": { - "profile": "malt.authentication/3", + "profile": "malt.authentication/5", "resolved": "bagcifqabaaraeibilw5ubbbdvzfio23n6bixonzcq4mgcahebcv6cr4xp33gw33gvu", "traversal": { "results": [] @@ -497,7 +497,7 @@ "present": false, "target": null, "proof": { - "format": "malt.binding/0", + "format": "malt.binding/1", "nodes": [ { "proof": "AAAACBOWwPfPQxjJSbQSuZNYH14wraHmYR6M6Oq7WMCFdwsmQwUFc90rg5E8gZc/IFGHMY3Mwl4eNT3dLpzqZtzHa0gsj8ME1kMbFMlwKNCX8CGBEczEoj2zShYkIDGz5XXuQEJxxbKX2mII1/ontSy7icR0iOuIYnem1zC90XPLCV1kT5gdvHwqKiVM9BjHo1u8oPHvyEUK/dYsQdDF1C84u1NGSoA9aca9imKzUIT9mKZC3IYpGVX3J9AOWIo+dOGAICMCLH5ksKY1dIhkOKFy+Mx/1zsE1t9GY7tNSG9ZQypFPHK5QkInZX/pYYuf8wTnA/EhHIvQ1luo1YYcU8f5o+ZS0CFv/69IaNoU+xwSQjnkQGRHJSpvk2s3aOqfdl5dy0qqfl4aW2GYYcnY57cqRvrWYAjv5YUiPioeEAdoZXFIcvGQ0r1HF8z5wimqLULIfnWMle1oFHr6SIGrfoPkXFo+U0WU69UTyu8vzqPSDJW9p5Vx+KV/elF5hD5IJD9/cnGr8+QmlcJ0ph1sgYYaTOgfrODjPww7UJrR9bkfxso7A8bBZi8+LRKxgEE2CJQztt2QD3CkVbHtWWIjz4Ef+a8iX9myVtETrPDvNt08gqpJp9iCpVCdK9wUFlHp6KMrlBmJgUaBFyJ0zsVusueg96wvDyNcMyC80fkg303PuZuF5DhxzEsit6voVdxvdHNjM/PQkRTOYQkkvpshGvSq/BgAAAAx" @@ -513,7 +513,7 @@ "id": "profile-2.path-absence", "verification": { "request": { - "profile": "malt.authentication/3", + "profile": "malt.authentication/5", "root": "bagcifqabaaraeibilw5ubbbdvzfio23n6bixonzcq4mgcahebcv6cr4xp33gw33gvu", "steps": [ "bWlzc2luZw==", @@ -523,7 +523,7 @@ }, "result": { "absent_step": "0", - "profile": "malt.authentication/3", + "profile": "malt.authentication/5", "resolved": "", "traversal": { "results": [ @@ -531,7 +531,7 @@ "present": false, "target": null, "proof": { - "format": "malt.binding/0", + "format": "malt.binding/1", "nodes": [ { "proof": "AAAACBsVxmDV/VOxUWncSFLsvtRtT4ZgNXbMObaXD602TudMOFxlarE8TgysNRUqSuD5UWfEPKxAKVk/5drA3DW0+IgvaQjU8oj927VbraA1kIKIlO68MOWa39ASU/O9gs8bo0fMyNanso2NsDasqqY8krz50Q69D6ue6sybCkgPLNRuZ1Ufx8STqI3MSbC3oOdS7AwVRNvtSVJPKvC3hc3y1eseZ4j1yzF6TAC6sdPGT7TYOOZpwaMQCA0oNdIpIYa5PGFgxGhz7hnjFgghlxhtS496DW7apd5OYQnMd2UFNOgCS4fSEaAQlXtOSvuieq3ZPoB4REwy6jdAnsWdTlGuq5QicOPmFw51xToIz/spRuwnZ9TKi0g7XsrsMVwRARS99guJ47EC8LTtrpD211gNr3UFIXTjOJnL6foB0qTqvbxeAA54jyZ2PjQLksE/lB896yO1tjaknBEWWtGRGj3uGRcj37/dfT9K2Mek/PtYJMxMsjClvr/FnJxxWY1aOtkgeVWjJ9m24e2amN1CWmt5/RcFD0xZEYu5Q1S59JQdbHdCK22gmNZPWW/5O/2AwuWhQKdDd3cO8TXPEbzPVDVprY0/xl0lm3mlUOBq/Kj0GNXBBW9k/JOVPjxd0sVm4iM8/0jhlaPEG4mGCMWKFiOe12DklVfwhvrqLV2pBLk6dzXT//oh9sFZCu61iz/AiY4mA485N2TD57SbYgSFKC8yCxMAAADk" @@ -549,7 +549,7 @@ "id": "profile-2.path-wrong-prefix", "verification": { "request": { - "profile": "malt.authentication/3", + "profile": "malt.authentication/5", "root": "bagcifqabaaraeibilw5ubbbdvzfio23n6bixonzcq4mgcahebcv6cr4xp33gw33gvu", "steps": [ "YS9i", @@ -559,7 +559,7 @@ }, "result": { "absent_step": "0", - "profile": "malt.authentication/3", + "profile": "malt.authentication/5", "resolved": "", "traversal": { "results": [ @@ -567,7 +567,7 @@ "present": false, "target": null, "proof": { - "format": "malt.binding/0", + "format": "malt.binding/1", "nodes": [ { "proof": "AAAACBsVxmDV/VOxUWncSFLsvtRtT4ZgNXbMObaXD602TudMOFxlarE8TgysNRUqSuD5UWfEPKxAKVk/5drA3DW0+IgvaQjU8oj927VbraA1kIKIlO68MOWa39ASU/O9gs8bo0fMyNanso2NsDasqqY8krz50Q69D6ue6sybCkgPLNRuZ1Ufx8STqI3MSbC3oOdS7AwVRNvtSVJPKvC3hc3y1eseZ4j1yzF6TAC6sdPGT7TYOOZpwaMQCA0oNdIpIYa5PGFgxGhz7hnjFgghlxhtS496DW7apd5OYQnMd2UFNOgCS4fSEaAQlXtOSvuieq3ZPoB4REwy6jdAnsWdTlGuq5QicOPmFw51xToIz/spRuwnZ9TKi0g7XsrsMVwRARS99guJ47EC8LTtrpD211gNr3UFIXTjOJnL6foB0qTqvbxeAA54jyZ2PjQLksE/lB896yO1tjaknBEWWtGRGj3uGRcj37/dfT9K2Mek/PtYJMxMsjClvr/FnJxxWY1aOtkgeVWjJ9m24e2amN1CWmt5/RcFD0xZEYu5Q1S59JQdbHdCK22gmNZPWW/5O/2AwuWhQKdDd3cO8TXPEbzPVDVprY0/xl0lm3mlUOBq/Kj0GNXBBW9k/JOVPjxd0sVm4iM8/0jhlaPEG4mGCMWKFiOe12DklVfwhvrqLV2pBLk6dzXT//oh9sFZCu61iz/AiY4mA485N2TD57SbYgSFKC8yCxMAAADk" @@ -585,14 +585,14 @@ "id": "profile-2.native-key", "verification": { "request": { - "profile": "malt.authentication/3", + "profile": "malt.authentication/5", "root": "bagbyfqabaaraeibilw5ubbbdvzfio23n6bixonzcq4mgcahebcv6cr4xp33gw33gvu", "steps": [], "operation": "binding", "label": "Sk/iBMRYgSlxy0CLyo8rUwIrlmtsd6fOtvSLtE5kmgw=" }, "result": { - "profile": "malt.authentication/3", + "profile": "malt.authentication/5", "resolved": "bagbyfqabaaraeibilw5ubbbdvzfio23n6bixonzcq4mgcahebcv6cr4xp33gw33gvu", "traversal": { "results": [] @@ -603,7 +603,7 @@ "/": "bafkqaaa" }, "proof": { - "format": "malt.binding/0", + "format": "malt.binding/1", "nodes": [ { "cell": "AUpP4gTEWIEpcctAi8qPK1MCK5ZrbHenzrb0i7ROZJoMAVUAAA==", @@ -617,38 +617,38 @@ "valid": true }, { - "id": "profile-2.measured-range", + "id": "profile-2.index-range", "verification": { "request": { - "profile": "malt.authentication/3", - "root": "bagbyjqabaaraeibqcyzxx6mn7hf3mpudbaqnofd42cak57tjgzhpfy3znnx44lbgqe", + "profile": "malt.authentication/5", + "root": "bagbynqabaaraeicgkktggfwe2znnv4y34pu37hjvy7nirkxo4copltc47mwqfpdoly", "steps": [], "operation": "range", - "start": "1", - "end": "4" + "start": "0", + "end": "1" }, "result": { - "profile": "malt.authentication/3", - "resolved": "bagbyjqabaaraeibqcyzxx6mn7hf3mpudbaqnofd42cak57tjgzhpfy3znnx44lbgqe", + "profile": "malt.authentication/5", + "resolved": "bagbynqabaaraeicgkktggfwe2znnv4y34pu37hjvy7nirkxo4copltc47mwqfpdoly", "traversal": { "results": [] }, "range": { "metadata": { - "height": "0", "count": "1", - "chunk_size": "8", - "total_size": "5" + "payload_cid": { + "/": "bafkqaaa" + } }, "metadata_evidence": { "present": false, "target": null, "proof": { - "format": "malt.binding/0", + "format": "malt.binding/1", "nodes": [ { - "metadata": "BAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAACAAAAAAAAAAF", - "metadata_proof": "AAAACEyO2z1KSO5Zao+qAtTEknzHefQWt1chFxdz1Rhv/yMGS9YfpRJuDM8FCgmgXkkK4TwRLD+5XRsBgP32PHug/7BpjEuVlSK+kyyFCDYW/mSSvJHIg6tO89efdPuG6oxq0ThXSF6SWxu7h5s38nk0M6SmFHExeI0LPk54AX1TQLETT3OOhnboClH8I1U96HybXFKPSKQqw7Er9pGlaiiqlu9qpAJhMAW8HfQ2RVxbDQsEQwrEx1+JZAlXtjmFCu0UGSQk0DppSjUwnzNDXwnkZWWGnssS2lOdX3PbZcBQwAkAKRku+iJTZR5tCHBZg/Ku8/S2Lrcg/esJGKuoVQUEa2QRlZRB3JrESrzsEgXgAk7RAB74eCoGteay9gkGezRvtUcGhg+B/uOhInzeEBIeBKDfxrNYZQJVNVbju+afxIOGN90/RgMN1qd+IG5Jsa8uwjuCCol+kMk1YnQmPpSvT51JN7R6Br25/9S5/kE7yv+3b3Hx2oS84w4/JYhqxEErsQkO9oR/InXwZAwwME+MRuj54TiCM63co2kYNtsNNlgiAUuDJCJgaO/zGLFE8FqdoB3TCRcwUCOENDc/rCwR/B0H+UMuNKfAIoyvxEobxAviqlnfz7bQzUj93wHWKStSvDCNMoC2AR7qEyocH0GLfBhtsyzjwEhdjD85q8q51c/Y/2842j/pfoZAVCXh/UC4TNaeZp9DJXsSwlk5GGZjMgQAAAAA" + "metadata": "BAAAAAAAAAABAVUAAA==", + "metadata_proof": "AAAACD6qXlun6qUzr+iEeouZklwaSI5Dp2zW+wNelzP+LT1bQ3e4f2aPRtGs+hFw8TDMNLFzeXeVBtiORPw2+IWMEvgA6Oo72J+UkJyaIo9qxkGciU3raqBA9IEI2Wiexdzv726/0sDiuDYjsZoho/XMTocXuP12iY7kn3OfFVSERQoqcnikRKGwkWm0XAVqMDTadzOBYKoiHb5C+ytFElzXMsozwkV3Ez4fQ43Pxlj1lOE+KmjVetxy2h9EAuiEe0CXUjj8zi4v5vSBfHgHNge+7W+JSvpeEdHqfYHZrFzg95xkW4gyatNtkNmsQ3Iyi2k2Sj8oxnT2e81m3ROPkuGGTzI4J6JOEknrEWDkvbyRBr5zXkZbsI7M2pt+8kbkS7/OIQpuGoV6/1NDlXAMQE1Vlk5kqogrIvQO7ApfbuConzDEUYl2eOBN8UTc9xjVFPVcMp0MvguWTJVUqHHZE7jrw2cTap0/pz6ZaTAzeZaQaU2vN/CmNJTYmQIIf0HnfcKeQT7SPFI8dSrbsptebS5WgjXGgdoIdsvE7pvAeq43d4voPPUGyll+UUYPx6oAzAfouciDcJ9yQoIGJBNpOo7UGuVOeCTz+ABtViP1Sig/GaPX9IOAt2hLOOOxAyEGpT6ArmI9rCoKAUguoE0+zYNk5uKxG999D8i3VZEsYX4DvGIRylGpV1lP5LIh6wyeFIxh8BB76gpnqxleqXf6a1s71wsAAAAA" } ] } @@ -660,13 +660,13 @@ "/": "bafkqaaa" }, "proof": { - "format": "malt.binding/0", + "format": "malt.binding/1", "nodes": [ { "cell": "AwFVAAA=", - "proof": "AAAACCIwHJdSzFzyVM25LGx875qlqqzcwwwxop9MTpX6eAwIVQt0MP4h0UaQo+XdqVOp5PofkiuWHSIPu6SQ4v6vUz9BtZafjWLsS2OtFR/efEbsDZiQUy1GbuhzmDaCG/ZhpxfyyLOSaZZIbs1/iMcMLUcbTB+zPv9qDE43zxRrXsELNrR6JKkZlTWcpDtKQxq2OKExEH7p4xUv0XBUFFOdQXUz/w3RbT3ltKcocXZHkFLc0dKAuMaWdqZ/53fJWerGY2oU8U32xcmO7S5XC9E6ieEc7GpP3Zt8z90AGa/BOg5sStyLuj09o3Oa9UyjSvCgJxugXF8KUPJfOHU6U3QI280RlZRB3JrESrzsEgXgAk7RAB74eCoGteay9gkGezRvtSs4vBHLmUSJzP9WPKWc09RqUYvM+osw20Pq8lnddSg5NLB0Wo4nC+OTw8X8uLqbHN3o7ennvYE8PowgucnPMVZKZwoI1CuZCXWQ1d1knvro7otfayn3xBqiHNyf/tgOr2Cgshqs/5DrOCt7cwupiY0CLaL4/gZZOeCVtCqlRR8mTcQY/mZMB9lW62CWGoUbH85UXJQ8RcaURpxB/FU53+IBwjLtSQc+xCKwDH8GDwHkAKaTCihlE21RYjUpyeqExWio8XS5FmNUM1iSvrS1leuINMgraW2PJt+v8bydNFOD9CdLsr1ggXdX8PmLPNdlLJ1tvO65Qx9cGhtUwOxLqg0AAAAB", - "metadata": "BAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAACAAAAAAAAAAF", - "metadata_proof": "AAAACEyO2z1KSO5Zao+qAtTEknzHefQWt1chFxdz1Rhv/yMGS9YfpRJuDM8FCgmgXkkK4TwRLD+5XRsBgP32PHug/7BpjEuVlSK+kyyFCDYW/mSSvJHIg6tO89efdPuG6oxq0ThXSF6SWxu7h5s38nk0M6SmFHExeI0LPk54AX1TQLETT3OOhnboClH8I1U96HybXFKPSKQqw7Er9pGlaiiqlu9qpAJhMAW8HfQ2RVxbDQsEQwrEx1+JZAlXtjmFCu0UGSQk0DppSjUwnzNDXwnkZWWGnssS2lOdX3PbZcBQwAkAKRku+iJTZR5tCHBZg/Ku8/S2Lrcg/esJGKuoVQUEa2QRlZRB3JrESrzsEgXgAk7RAB74eCoGteay9gkGezRvtUcGhg+B/uOhInzeEBIeBKDfxrNYZQJVNVbju+afxIOGN90/RgMN1qd+IG5Jsa8uwjuCCol+kMk1YnQmPpSvT51JN7R6Br25/9S5/kE7yv+3b3Hx2oS84w4/JYhqxEErsQkO9oR/InXwZAwwME+MRuj54TiCM63co2kYNtsNNlgiAUuDJCJgaO/zGLFE8FqdoB3TCRcwUCOENDc/rCwR/B0H+UMuNKfAIoyvxEobxAviqlnfz7bQzUj93wHWKStSvDCNMoC2AR7qEyocH0GLfBhtsyzjwEhdjD85q8q51c/Y/2842j/pfoZAVCXh/UC4TNaeZp9DJXsSwlk5GGZjMgQAAAAA" + "proof": "AAAACFAOMKWfEn4nAIDM83+1SupNpNmJRw4Z3lO9nuq5ytFxRUrNQLYd8OvWFHpVzbLPRjiWAU7gAcY4LfZSuso/IQdn23G8PuzBOeZkreCoZ2HbRquvOljWoPAGl+TBchiZlU/UoA7fuc5BEyQqGyA4/KFHAy990hGaE2eqn8zSlzPuLTLHmwxNrLN35X4VG+P21uUceuDnNH8B2SbIMTvI+psh+dLkxAMtQ16VvNGgDncOSMu/xFH2xJImMYmw47hBG0lT5P8hge+AVezjMyV6YaEumySDnGchASXEHB7p03UJBS+NfhlS+k44haDNUxH0hg9v8GmWKKAW58nIK+t3qc04J6JOEknrEWDkvbyRBr5zXkZbsI7M2pt+8kbkS7/OISCp7VjVRlFNEpK3q+A9KWK5qHQIw+Z2UxFdc2CY4Hq2HDcR5aWA4v4HcfO4ebANMuwGxk7CnilXOUT554G6WP9u1VUzGE3m4JEzPqGQ3TpMYkMEjr4hk7C4HFMrXopHnGH9LrAM/eYYFkwbO5N1J2lq2oFinDvimktQ1v2mMwGZc9NZ279bopyZWGrXjuQWOniZ0A3DxmLsCsge9+kDX64TxDcvGRftBbcw4gdUrhNHv92r7Hn9zAJ+asFBNWwI6i6X19K+6nyUGs50jcJq/ygsEuDUnp4s6qN+dWCkJb2Vvajdnc9t+98u1RIPtF3nLbPHMkfXLhB/CDVgE+K+zxsAAAAB", + "metadata": "BAAAAAAAAAABAVUAAA==", + "metadata_proof": "AAAACD6qXlun6qUzr+iEeouZklwaSI5Dp2zW+wNelzP+LT1bQ3e4f2aPRtGs+hFw8TDMNLFzeXeVBtiORPw2+IWMEvgA6Oo72J+UkJyaIo9qxkGciU3raqBA9IEI2Wiexdzv726/0sDiuDYjsZoho/XMTocXuP12iY7kn3OfFVSERQoqcnikRKGwkWm0XAVqMDTadzOBYKoiHb5C+ytFElzXMsozwkV3Ez4fQ43Pxlj1lOE+KmjVetxy2h9EAuiEe0CXUjj8zi4v5vSBfHgHNge+7W+JSvpeEdHqfYHZrFzg95xkW4gyatNtkNmsQ3Iyi2k2Sj8oxnT2e81m3ROPkuGGTzI4J6JOEknrEWDkvbyRBr5zXkZbsI7M2pt+8kbkS7/OIQpuGoV6/1NDlXAMQE1Vlk5kqogrIvQO7ApfbuConzDEUYl2eOBN8UTc9xjVFPVcMp0MvguWTJVUqHHZE7jrw2cTap0/pz6ZaTAzeZaQaU2vN/CmNJTYmQIIf0HnfcKeQT7SPFI8dSrbsptebS5WgjXGgdoIdsvE7pvAeq43d4voPPUGyll+UUYPx6oAzAfouciDcJ9yQoIGJBNpOo7UGuVOeCTz+ABtViP1Sig/GaPX9IOAt2hLOOOxAyEGpT6ArmI9rCoKAUguoE0+zYNk5uKxG999D8i3VZEsYX4DvGIRylGpV1lP5LIh6wyeFIxh8BB76gpnqxleqXf6a1s71wsAAAAA" } ] } @@ -681,15 +681,15 @@ "id": "profile-2.max-index-absence", "verification": { "request": { - "profile": "malt.authentication/3", - "root": "bagbyjqabaaraeibqcyzxx6mn7hf3mpudbaqnofd42cak57tjgzhpfy3znnx44lbgqe", + "profile": "malt.authentication/5", + "root": "bagbynqabaaraeicgkktggfwe2znnv4y34pu37hjvy7nirkxo4copltc47mwqfpdoly", "steps": [], "operation": "binding", "label": "//////////8=" }, "result": { - "profile": "malt.authentication/3", - "resolved": "bagbyjqabaaraeibqcyzxx6mn7hf3mpudbaqnofd42cak57tjgzhpfy3znnx44lbgqe", + "profile": "malt.authentication/5", + "resolved": "bagbynqabaaraeicgkktggfwe2znnv4y34pu37hjvy7nirkxo4copltc47mwqfpdoly", "traversal": { "results": [] }, @@ -697,11 +697,11 @@ "present": false, "target": null, "proof": { - "format": "malt.binding/0", + "format": "malt.binding/1", "nodes": [ { - "metadata": "BAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAACAAAAAAAAAAF", - "metadata_proof": "AAAACEyO2z1KSO5Zao+qAtTEknzHefQWt1chFxdz1Rhv/yMGS9YfpRJuDM8FCgmgXkkK4TwRLD+5XRsBgP32PHug/7BpjEuVlSK+kyyFCDYW/mSSvJHIg6tO89efdPuG6oxq0ThXSF6SWxu7h5s38nk0M6SmFHExeI0LPk54AX1TQLETT3OOhnboClH8I1U96HybXFKPSKQqw7Er9pGlaiiqlu9qpAJhMAW8HfQ2RVxbDQsEQwrEx1+JZAlXtjmFCu0UGSQk0DppSjUwnzNDXwnkZWWGnssS2lOdX3PbZcBQwAkAKRku+iJTZR5tCHBZg/Ku8/S2Lrcg/esJGKuoVQUEa2QRlZRB3JrESrzsEgXgAk7RAB74eCoGteay9gkGezRvtUcGhg+B/uOhInzeEBIeBKDfxrNYZQJVNVbju+afxIOGN90/RgMN1qd+IG5Jsa8uwjuCCol+kMk1YnQmPpSvT51JN7R6Br25/9S5/kE7yv+3b3Hx2oS84w4/JYhqxEErsQkO9oR/InXwZAwwME+MRuj54TiCM63co2kYNtsNNlgiAUuDJCJgaO/zGLFE8FqdoB3TCRcwUCOENDc/rCwR/B0H+UMuNKfAIoyvxEobxAviqlnfz7bQzUj93wHWKStSvDCNMoC2AR7qEyocH0GLfBhtsyzjwEhdjD85q8q51c/Y/2842j/pfoZAVCXh/UC4TNaeZp9DJXsSwlk5GGZjMgQAAAAA" + "metadata": "BAAAAAAAAAABAVUAAA==", + "metadata_proof": "AAAACD6qXlun6qUzr+iEeouZklwaSI5Dp2zW+wNelzP+LT1bQ3e4f2aPRtGs+hFw8TDMNLFzeXeVBtiORPw2+IWMEvgA6Oo72J+UkJyaIo9qxkGciU3raqBA9IEI2Wiexdzv726/0sDiuDYjsZoho/XMTocXuP12iY7kn3OfFVSERQoqcnikRKGwkWm0XAVqMDTadzOBYKoiHb5C+ytFElzXMsozwkV3Ez4fQ43Pxlj1lOE+KmjVetxy2h9EAuiEe0CXUjj8zi4v5vSBfHgHNge+7W+JSvpeEdHqfYHZrFzg95xkW4gyatNtkNmsQ3Iyi2k2Sj8oxnT2e81m3ROPkuGGTzI4J6JOEknrEWDkvbyRBr5zXkZbsI7M2pt+8kbkS7/OIQpuGoV6/1NDlXAMQE1Vlk5kqogrIvQO7ApfbuConzDEUYl2eOBN8UTc9xjVFPVcMp0MvguWTJVUqHHZE7jrw2cTap0/pz6ZaTAzeZaQaU2vN/CmNJTYmQIIf0HnfcKeQT7SPFI8dSrbsptebS5WgjXGgdoIdsvE7pvAeq43d4voPPUGyll+UUYPx6oAzAfouciDcJ9yQoIGJBNpOo7UGuVOeCTz+ABtViP1Sig/GaPX9IOAt2hLOOOxAyEGpT6ArmI9rCoKAUguoE0+zYNk5uKxG999D8i3VZEsYX4DvGIRylGpV1lP5LIh6wyeFIxh8BB76gpnqxleqXf6a1s71wsAAAAA" } ] } @@ -714,15 +714,15 @@ "id": "profile-2.wrong-root", "verification": { "request": { - "profile": "malt.authentication/3", + "profile": "malt.authentication/5", "root": "bagcifqabaaraeibilw5ubbbdvzfio23n6bixonzcq4mgcahebcv6cr4xp33gw33gvu", "steps": [], "operation": "binding", "label": "//////////8=" }, "result": { - "profile": "malt.authentication/3", - "resolved": "bagbyjqabaaraeibqcyzxx6mn7hf3mpudbaqnofd42cak57tjgzhpfy3znnx44lbgqe", + "profile": "malt.authentication/5", + "resolved": "bagbynqabaaraeicgkktggfwe2znnv4y34pu37hjvy7nirkxo4copltc47mwqfpdoly", "traversal": { "results": [] }, @@ -730,11 +730,11 @@ "present": false, "target": null, "proof": { - "format": "malt.binding/0", + "format": "malt.binding/1", "nodes": [ { - "metadata": "BAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAACAAAAAAAAAAF", - "metadata_proof": "AAAACEyO2z1KSO5Zao+qAtTEknzHefQWt1chFxdz1Rhv/yMGS9YfpRJuDM8FCgmgXkkK4TwRLD+5XRsBgP32PHug/7BpjEuVlSK+kyyFCDYW/mSSvJHIg6tO89efdPuG6oxq0ThXSF6SWxu7h5s38nk0M6SmFHExeI0LPk54AX1TQLETT3OOhnboClH8I1U96HybXFKPSKQqw7Er9pGlaiiqlu9qpAJhMAW8HfQ2RVxbDQsEQwrEx1+JZAlXtjmFCu0UGSQk0DppSjUwnzNDXwnkZWWGnssS2lOdX3PbZcBQwAkAKRku+iJTZR5tCHBZg/Ku8/S2Lrcg/esJGKuoVQUEa2QRlZRB3JrESrzsEgXgAk7RAB74eCoGteay9gkGezRvtUcGhg+B/uOhInzeEBIeBKDfxrNYZQJVNVbju+afxIOGN90/RgMN1qd+IG5Jsa8uwjuCCol+kMk1YnQmPpSvT51JN7R6Br25/9S5/kE7yv+3b3Hx2oS84w4/JYhqxEErsQkO9oR/InXwZAwwME+MRuj54TiCM63co2kYNtsNNlgiAUuDJCJgaO/zGLFE8FqdoB3TCRcwUCOENDc/rCwR/B0H+UMuNKfAIoyvxEobxAviqlnfz7bQzUj93wHWKStSvDCNMoC2AR7qEyocH0GLfBhtsyzjwEhdjD85q8q51c/Y/2842j/pfoZAVCXh/UC4TNaeZp9DJXsSwlk5GGZjMgQAAAAA" + "metadata": "BAAAAAAAAAABAVUAAA==", + "metadata_proof": "AAAACD6qXlun6qUzr+iEeouZklwaSI5Dp2zW+wNelzP+LT1bQ3e4f2aPRtGs+hFw8TDMNLFzeXeVBtiORPw2+IWMEvgA6Oo72J+UkJyaIo9qxkGciU3raqBA9IEI2Wiexdzv726/0sDiuDYjsZoho/XMTocXuP12iY7kn3OfFVSERQoqcnikRKGwkWm0XAVqMDTadzOBYKoiHb5C+ytFElzXMsozwkV3Ez4fQ43Pxlj1lOE+KmjVetxy2h9EAuiEe0CXUjj8zi4v5vSBfHgHNge+7W+JSvpeEdHqfYHZrFzg95xkW4gyatNtkNmsQ3Iyi2k2Sj8oxnT2e81m3ROPkuGGTzI4J6JOEknrEWDkvbyRBr5zXkZbsI7M2pt+8kbkS7/OIQpuGoV6/1NDlXAMQE1Vlk5kqogrIvQO7ApfbuConzDEUYl2eOBN8UTc9xjVFPVcMp0MvguWTJVUqHHZE7jrw2cTap0/pz6ZaTAzeZaQaU2vN/CmNJTYmQIIf0HnfcKeQT7SPFI8dSrbsptebS5WgjXGgdoIdsvE7pvAeq43d4voPPUGyll+UUYPx6oAzAfouciDcJ9yQoIGJBNpOo7UGuVOeCTz+ABtViP1Sig/GaPX9IOAt2hLOOOxAyEGpT6ArmI9rCoKAUguoE0+zYNk5uKxG999D8i3VZEsYX4DvGIRylGpV1lP5LIh6wyeFIxh8BB76gpnqxleqXf6a1s71wsAAAAA" } ] } diff --git a/docs/public/verifier/malt-verifier.wasm b/docs/public/verifier/malt-verifier.wasm index 6b034c7..2278ab1 100644 Binary files a/docs/public/verifier/malt-verifier.wasm and b/docs/public/verifier/malt-verifier.wasm differ diff --git a/docs/tools/verify.md b/docs/tools/verify.md index a0963e9..cde0d4d 100644 --- a/docs/tools/verify.md +++ b/docs/tools/verify.md @@ -10,7 +10,7 @@ import MaltVerifyTool from '../.vitepress/theme/components/MaltVerifyTool.vue' -The local WebAssembly verifier from malt-ts checks `malt.authentication/3` requests +The local WebAssembly verifier from malt-ts checks `malt.authentication/5` requests and results. Enter the expected request and untrusted result separately, or import the JSON file saved by **Download proof JSON** in Gateway Console. The file is read in this browser; it is not uploaded. Select an imported query, diff --git a/package-lock.json b/package-lock.json index 8ab7888..a67a05b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,7 +8,7 @@ "name": "malt-web", "version": "0.0.1", "dependencies": { - "@dewebprotocol/malt": "https://github.com/DeWebProtocol/malt-ts/archive/a145712a7a5f0759f4f2a8a64e42364947daaf41.tar.gz" + "@dewebprotocol/malt": "https://github.com/DeWebProtocol/malt-ts/archive/735c894cb7dd4bbdfa7032c75f48f5f23820fd14.tar.gz" }, "devDependencies": { "vitepress": "^1.6.4" @@ -324,9 +324,9 @@ } }, "node_modules/@dewebprotocol/malt": { - "version": "0.0.3-rc.4", - "resolved": "https://github.com/DeWebProtocol/malt-ts/archive/a145712a7a5f0759f4f2a8a64e42364947daaf41.tar.gz", - "integrity": "sha512-yR8ZV8qAvwYGCxE3XlJy3r3vrPnLvbWYyT9Aya2BhCIOypIruOd5QZW/FXYGd6TpYCJOj1f6XA+lqa94dqf93g==", + "version": "0.0.3", + "resolved": "https://github.com/DeWebProtocol/malt-ts/archive/735c894cb7dd4bbdfa7032c75f48f5f23820fd14.tar.gz", + "integrity": "sha512-8CzMGezs/90JubsnvQbDS5l0MUiVSAEBDTX9PQ1uDUEWnBEtAjlEiaU6f5CPCCSHZCbI75nwj1ki5s5GH1tcQA==", "license": "Apache-2.0", "engines": { "node": ">=22.12.0" diff --git a/package.json b/package.json index 73d64b9..1c4565c 100644 --- a/package.json +++ b/package.json @@ -21,6 +21,6 @@ "vite": "7.3.6" }, "dependencies": { - "@dewebprotocol/malt": "https://github.com/DeWebProtocol/malt-ts/archive/a145712a7a5f0759f4f2a8a64e42364947daaf41.tar.gz" + "@dewebprotocol/malt": "https://github.com/DeWebProtocol/malt-ts/archive/735c894cb7dd4bbdfa7032c75f48f5f23820fd14.tar.gz" } } diff --git a/scripts/check-content.mjs b/scripts/check-content.mjs index c0ed293..49ca208 100644 --- a/scripts/check-content.mjs +++ b/scripts/check-content.mjs @@ -54,7 +54,10 @@ const requiredPhrases = new Map([ 'POST /v1/authentication/query', 'POST /v1/authentication/batches', 'POST /v1/cas', - 'malt.authentication-receipt/1' + 'malt.authentication/5', + 'malt.authentication/4', + 'malt.authentication-batch/2', + 'malt.authentication-receipt/2' ] ], [ @@ -62,7 +65,7 @@ const requiredPhrases = new Map([ [ 'Authenticate(request) -> result', 'Verify(request, result)', - 'malt.authentication/3' + 'malt.authentication/5' ] ], [ diff --git a/scripts/check-tools.mjs b/scripts/check-tools.mjs index aa9df01..f4f49cd 100644 --- a/scripts/check-tools.mjs +++ b/scripts/check-tools.mjs @@ -10,11 +10,11 @@ assert.throws(() => buildAuthenticationURL('https://account:secret@gateway.examp const calls = [] globalThis.fetch = async (url, options) => { calls.push({ url: String(url), options }) - return Response.json({ profile: 'malt.authentication/3', resolved: 'bafkqaaa' }) + return Response.json({ profile: 'malt.authentication/5', resolved: 'bafkqaaa' }) } const steps = ['YS9i', 'QHBheWxvYWQ='] const pair = await resolvePath({ baseURL: 'https://gateway.example/api', root: 'selected', steps }) -assert.deepEqual(pair.request, { profile: 'malt.authentication/3', root: 'selected', steps, operation: 'resolve' }) +assert.deepEqual(pair.request, { profile: 'malt.authentication/5', root: 'selected', steps, operation: 'resolve' }) assert.equal(calls[0].options.credentials, 'omit') assert.equal(calls[0].options.redirect, 'error') assert.equal(calls[0].options.cache, 'no-store') @@ -22,12 +22,12 @@ assert.equal(calls[0].options.headers.Authorization, undefined) await assert.rejects(resolvePath({ baseURL: 'https://gateway.example', root: '', steps: [] }), /root/) await assert.rejects(resolvePath({ baseURL: 'https://gateway.example', root: 'r', steps: null }), /steps/) const input = { request: pair.request, result: pair.result } -assert.deepEqual(verificationPairs({ node: input, payload: input, range: input }).map(v => v.name), ['node', 'payload', 'range']) +assert.deepEqual(verificationPairs({ node: input, payload: input, metadata: input, range: input }).map(v => v.name), ['node', 'payload', 'metadata', 'range']) assert.throws(() => verificationPairs({ verification: input }), /unsupported/) assert.throws(() => verificationPairs({ node: { ...input, request: { profile: 'malt.resolve/v0alpha1' } } }), /unsupported/) let forwarded const checked = await verifyAuthenticationLocally({ ...input, provider: { authentication: json => { - forwarded = JSON.parse(json); return JSON.stringify({ profile: 'malt.authentication/3', valid: true }) + forwarded = JSON.parse(json); return JSON.stringify({ profile: 'malt.authentication/5', valid: true }) } } }) assert.deepEqual(forwarded, input) assert.equal(checked.valid, true) diff --git a/scripts/check-verifier-wasm.mjs b/scripts/check-verifier-wasm.mjs index 8d44ef4..39c44be 100644 --- a/scripts/check-verifier-wasm.mjs +++ b/scripts/check-verifier-wasm.mjs @@ -9,8 +9,8 @@ import { verifyAuthenticationLocally } from '@dewebprotocol/malt/verifier' const repo = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..') const root = process.env.MALT_VERIFIER_ROOT || path.join(repo, 'docs/public/verifier') verifyInstalledAssets(root) -const corpus = JSON.parse(fs.readFileSync(path.join(root, 'authentication-v2.json'))) -assert.equal(corpus.schema, 'malt.conformance.authentication/2') +const corpus = JSON.parse(fs.readFileSync(path.join(root, 'authentication-v3.json'))) +assert.equal(corpus.schema, 'malt.conformance.authentication/3') globalThis.crypto ??= webcrypto await import(pathToFileURL(path.join(root, 'wasm_exec.js'))) const go = new globalThis.Go() diff --git a/scripts/sync-verifier.mjs b/scripts/sync-verifier.mjs index e16ebe6..6c64a08 100644 --- a/scripts/sync-verifier.mjs +++ b/scripts/sync-verifier.mjs @@ -9,7 +9,7 @@ const output = path.join(repoRoot, 'docs/public/verifier') const temporary = fs.mkdtempSync(path.join(os.tmpdir(), 'malt-web-verifier.')) try { for (const file of verifierFiles) fs.copyFileSync(path.join(source, file), path.join(temporary, file)) - fs.copyFileSync(path.join(output, 'authentication-v2.json'), path.join(temporary, 'authentication-v2.json')) + fs.copyFileSync(path.join(output, 'authentication-v3.json'), path.join(temporary, 'authentication-v3.json')) const checked = spawnSync(process.execPath, [path.join(repoRoot, 'scripts/check-verifier-wasm.mjs')], { env: { ...process.env, MALT_VERIFIER_ROOT: temporary }, stdio: 'inherit' }) diff --git a/scripts/verifier-assets.mjs b/scripts/verifier-assets.mjs index bdc8a3a..96a3f85 100644 --- a/scripts/verifier-assets.mjs +++ b/scripts/verifier-assets.mjs @@ -51,6 +51,6 @@ export function verifyInstalledAssets(root = path.join(repoRoot, 'docs/public/ve assert(fs.readFileSync(path.join(root, file)).equals(fs.readFileSync(path.join(source, file))), `deployed verifier differs from the locked malt-ts package: ${file}`) } - assert.equal(digest(fs.readFileSync(path.join(root, 'authentication-v2.json'))), pin.corpus_sha256) + assert.equal(digest(fs.readFileSync(path.join(root, 'authentication-v3.json'))), pin.corpus_sha256) return { source, pin } } diff --git a/verifier-source.json b/verifier-source.json index 1de1aa4..aa38d58 100644 --- a/verifier-source.json +++ b/verifier-source.json @@ -1,15 +1,15 @@ { "schema": "malt.web-verifier-source/v1", - "sdk_commit": "a145712a7a5f0759f4f2a8a64e42364947daaf41", - "sdk_version": "0.0.3-rc.4", + "sdk_commit": "735c894cb7dd4bbdfa7032c75f48f5f23820fd14", + "sdk_version": "0.0.3", "core": { "module_path": "github.com/dewebprotocol/malt-core", - "module_version": "v0.0.10-rc.4", + "module_version": "v0.0.10", "source_repository": "https://github.com/DeWebProtocol/malt-core.git", - "source_commit": "0d7b166d58d1c2e21ead96de9c66968caf630374", - "module_sum": "h1:BpA7vH0LwKTmipTlAUu97CniBXTxBT9f5AQWV8UFbmY=", + "source_commit": "aaa78737c35f82fe91bb3f749cfddbcb7953ed2b", + "module_sum": "h1:HgzuUot+AAKiLz20KdeUlnVDCVFHxfjQc7unsQOqm7Q=", "go_mod_sum": "h1:o6L8K9vJp5hyrVo3fUtSsj0rvNpcboOcOb3nQwnR/gs=" }, - "verifier_asset_set_sha256": "33f56d94c3ecbf7bf1370af1684be9dd13866158c194bd4f5ab89d3f6d021114", - "corpus_sha256": "b39247559cf94c66fedb116f8477364d966363ac7d4b4d0a4857182e12da35f4" + "verifier_asset_set_sha256": "2ea8209b517572e46f76d4e86994178d7921d5f748e30d47dc625670239ec414", + "corpus_sha256": "97495dfc179f8b504d644addabe20a1ff2ab13da1761ad808e0e49a9d07eb87c" }