Feature: Sharable References#7
Merged
Merged
Conversation
There was a problem hiding this comment.
Pull request overview
Adds support for sharable certificate attributes that can carry external blob references, including helper APIs to discover/fetch referenced blobs and interop tests to validate C# ↔ TypeScript behavior.
Changes:
- Introduces external reference discovery/fetching and bundle accessors (
ExternalReferences,KycCertificate.GetExternalReferences,SharableCertificateAttributes.GetReferenceBlob, and wasm interop plumbing). - Extends the Node harness to revive JSON-encoded builder values and to serve/open sharables for reference-fetch interop tests.
- Renames
Account.Address/AccountFactory.FromAccountusage sites toPublicKeyString/FromPublicKeyString, and expands DI registrations to expose factory surfaces directly.
Reviewed changes
Copilot reviewed 26 out of 26 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| tests/node-harness/src/values.ts | Adds shared JSON “revival” logic for Date/Buffer marker objects used in harness requests. |
| tests/node-harness/src/sharable.ts | Adds harness commands for serving blobs over HTTP and opening sharables while resolving $blob references. |
| tests/node-harness/src/kyc.ts | Removes local revive logic and centralizes revival via values.ts. |
| tests/KeetaNet.Anchor.Tests/LifecycleTests.cs | Updates lifecycle assertions to use PublicKeyString instead of Address. |
| tests/KeetaNet.Anchor.Tests/DependencyInjectionTests.cs | Updates account identity assertions and adds a test ensuring factories are registered for DI. |
| tests/KeetaNet.Anchor.Tests/CryptoTests.cs | Updates crypto tests to the renamed account identity API (PublicKeyString / FromPublicKeyString). |
| tests/KeetaNet.Anchor.Tests/ConcurrencyTests.cs | Updates concurrency tests to compare stable public identity via PublicKeyString. |
| tests/KeetaNet.Anchor.Tests/AssetModelTests.cs | Updates asset client creation to pass PublicKeyString. |
| tests/KeetaNet.Anchor.E2eTests/SharableReferenceTests.cs | Adds end-to-end interop tests for external blob references (fetch/unwrapping/data URLs). |
| tests/KeetaNet.Anchor.E2eTests/NodeFlowTests.cs | Updates node flow tests to use FromPublicKeyString / PublicKeyString. |
| tests/KeetaNet.Anchor.E2eTests/KycFlowTests.cs | Updates KYC flow tests to use FromPublicKeyString / PublicKeyString. |
| tests/KeetaNet.Anchor.E2eTests/AssetSession.cs | Exposes the runtime to support new test flows and updates signer identity usage. |
| tests/KeetaNet.Anchor.E2eTests/AssetFlowTests.cs | Adjusts provider lookup test to use an Account built from a public-key string. |
| src/KeetaNet.Anchor/Services/Node/NodeClient.cs | Switches node API calls from Address to PublicKeyString and updates representative/token parsing accordingly. |
| src/KeetaNet.Anchor/Services/AssetMovement/AssetMovementClient.cs | Updates account-based provider lookup to use PublicKeyString. |
| src/KeetaNet.Anchor/Interop/WasmRuntime.Sharable.cs | Adds wasm entry points for building sharables with pre-fetched blobs and retrieving inlined reference blobs. |
| src/KeetaNet.Anchor/Interop/WasmRuntime.Crypto.cs | Adds an 8-argument wasm invoke overload used by new sharable APIs. |
| src/KeetaNet.Anchor/Crypto/SharableCertificateAttributesFactory.cs | Adds overloads for building sharables with caller-supplied blobs and a convenience overload that discovers + fetches blobs. |
| src/KeetaNet.Anchor/Crypto/SharableCertificateAttributes.cs | Adds GetReferenceBlob accessor for digest-verified inlined reference payloads. |
| src/KeetaNet.Anchor/Crypto/KycCertificate.cs | Adds AttributeReference record + GetExternalReferences to discover external blob references in decoded values. |
| src/KeetaNet.Anchor/Crypto/ExternalReferences.cs | Adds HTTP/data URL blob fetching + wrapper unwrapping helper for external references. |
| src/KeetaNet.Anchor/Crypto/AccountFactory.cs | Renames read-only account creation API to FromPublicKeyString. |
| src/KeetaNet.Anchor/Crypto/Account.cs | Renames public identity accessor to PublicKeyString. |
| src/KeetaNet.Anchor.Extensions.DependencyInjection/KeetaNetAnchorServiceCollectionExtensions.cs | Registers runtime factory surfaces (Accounts/Certificates/etc.) for direct injection. |
| scripts/pins.env | Bumps pinned wasm core crate version and checksum. |
| README.md | Updates usage examples and prose to the PublicKeyString / FromPublicKeyString terminology. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



Summary
Adds sharable external attributes support.
Related Issues
Changes Made
ExternalReferencesSharableCertificateAttributesTesting
make test-- passesBreaking Changes
Account.AddresstoAccount.PublicKeyString