feat(audit-trail): register routes and enhance layout for result view#194
Draft
alexruzenhack wants to merge 14 commits into
Draft
feat(audit-trail): register routes and enhance layout for result view#194alexruzenhack wants to merge 14 commits into
alexruzenhack wants to merge 14 commits into
Conversation
# Description of change - Extract the view `SideBySidePanelsView` as an UI component to be reused as `SideBySidePanels` - Extract a more specialized helper `objectOwnerHelper.ts` - Move view `TransactionsView` to `/common` to let it be reused among Trust Framework pages - Move component `IdentityContent` a level down to let `/views` cluster only view components - Move `headerMetadataHelper` a level down to let it be reused among Trust Framework pages ## Links to any relevant issues N/A ## How the change has been tested - [x] Basic tests (linting, compilation, formatting, unit/integration tests) - [ ] Patch-specific tests (correctness, functionality coverage) - [ ] I have added tests that prove my fix is effective or that my feature works - [ ] I have checked that new and existing unit tests pass locally with my changes
- Add notarization wasm dependency - Configure wasm loading plugin to be triggered at building phase - Enable notarization feature flag at apps-backend - Rename identity.ts to client.ts - Implement creation and initialization of notarization client and wasm at client.ts - Implement notarization react context and provider - Add notarization constants - update dependency lock file N/A Manually.
This PR introduces the **Notarization Result Page** to the Explorer, providing users with a dedicated interface to inspect on-chain Notarization documents and their current states. - **Dedicated Routing:** Added a new `/notarization/:id` route (`NotarizationResult`) to handle direct navigation to Notarization objects. - **Detailed Views:** - `NotarizationSummaryView`: Displays essential object metrics, including version count, storage rebate, and lifecycle timestamps. - `StateView`: Intelligently parses the notarization state data, rendering it as formatted JSON or falling back to raw text/Base64 if needed. - `NotarizationJsonView`: Exposes the raw, complete JSON structure of the on-chain notarization object. - **Data Resolution Hooks:** Introduced `useResolveNotarization` and `useNotarizationState` to cleanly handle data fetching and state decoding. - **Metadata Integration:** Updated `headerMetadataHelper.ts` to correctly recognize, label, and badge official IOTA Notarization objects in the shared `PageHeader`. N/A Access the _Preview_ at https://rebased-explorer-git-feat-notarization-result-page-iota1.vercel.app/notarization/0x23be2a1a617f0af6830ffe328c357df7c73de25b2013eef362e8cc09f9df9f57?network=testnet to see a Dynamic notarization object. Refer to #138 (comment) at _Test on testnet_ section to get more notarization objects IDs. <img width="5388" height="5026" alt="image" src="https://github.com/user-attachments/assets/8907360f-44a7-4b72-a4cf-7340b0fb184a" />
# Description of change **Problem:** Users viewing a Notarization object in the explorer currently cannot see its ownership history or the lock lifecycle (Transfer/Update/Delete locks) governing it. This information is critical for transparency and auditing trust-framework activities. **Solution:** - **Lock Lifecycle:** Added `LockLifecycleView` to interpret and display the `LockMetadata` status (Unlocked, Time Locked, Permanently Locked) and visualize expiration timers. - **Ownership Reconstruction:** Added `OwnersView` and `useGetNotarizationOwnerHistory`. Since L1 doesn't persist historical ownership natively, this hook reconstructs the history by paginating through transaction blocks that changed the object and identifying the recipient/owner in `objectChanges`. - **UI Components:** Introduced `IconBadge` to extend badges with an icon (candidate to be moved to `ui-kit` later). **Impact:** Full visibility into the lifecycle and ownership of trust-framework notarization objects, empowering users to trace object provenance. *(Insert screenshots of LockLifecycleView and OwnersView here!)* ## Links to any relevant issues N/A ## How the change has been tested Manually tested on `testnet`. **Reviewer Instructions:** 1. Run the explorer locally. 2. Ensure you have the notarization package configured (`VITE_IOTA_NOTARIZATION_PKG_ID` in `.env`) or use a network with a known package. 3. Navigate to `/notarization/0x23be2a1a617f0af6830ffe328c357df7c73de25b2013eef362e8cc09f9df9f57?network=testnet` 4. Verify that the "Lock Lifecycle" and "Owners History" panels render correctly in the side-by-side view. Access the Preview at https://rebased-explorer-git-feat-notarization-lock-owner-iota1.vercel.app/notarization/0x23be2a1a617f0af6830ffe328c357df7c73de25b2013eef362e8cc09f9df9f57?network=testnet to see a Dynamic notarization object. Refer to #138 (comment) at Test on testnet section to get more notarization objects IDs. ## Expected UI <img width="3162" height="1926" alt="image" src="https://github.com/user-attachments/assets/d121dbc3-2439-4f8b-9dbe-81301cbc8f59" /> --------- Co-authored-by: Marc Espin <mespinsanz@gmail.com>
# Description of change This PR enables users to search for **Notarization** objects directly from the Explorer search bar. This is a key component of the **Trust Framework (TF)** feature set. ### Key Changes: - **New Search Provider**: Implemented `getResultsForNotarization` to query the Notarization chain by ID. - **Hook Integration**: Added the notarization lookup to the `useSearch` parallel query execution. - **Feature Guarding**: The lookup is conditionally executed based on the `ExplorerTFNotarization` feature flag. ## Links to any relevant issues N/A ## How the change has been tested - **Manual Verification**: Entered valid Notarization IDs in the search bar and confirmed the "notarization" result type is returned and navigable. - **Flag Testing**: Confirmed that search functionality remains unaffected and notarization results are omitted when the `ExplorerTFNotarization` flag is disabled. Access the Preview at https://rebased-explorer-git-feat-notarization-lock-owner-iota1.vercel.app/ and look for 0x23be2a1a617f0af6830ffe328c357df7c73de25b2013eef362e8cc09f9df9f57 to see a Notarization suggestion in the search bar result. Refer to #138 (comment) at Test on testnet section to get more notarization objects IDs. ## Expected UI <img width="3114" height="792" alt="image" src="https://github.com/user-attachments/assets/f3c89e80-7218-4a81-9caf-0ace56006990" />
# Description of change This PR resolves a console "panic"/error that occurs during search when a generic Object ID is incorrectly processed as a Decentralized Identifier (DID). ### Problem Previously, when a user searched for a standard Object ID, `useSearch` would attempt to forcefully generate a DID from it (`IotaDID.fromAliasId`) and then resolve it. If the Object ID did not correspond to a valid Identity, the underlying `identity-wasm` client would throw a severe console error/panic, creating noise and potential instability. ### Solution - **API Swap**: We now use `identityClient.getIdentity(query)` when the query is an Object ID. This API is designed to safely check for an Identity associated with the Object ID without throwing panics if one doesn't exist. - **Cleanup**: Removed the now-obsolete `tryGenerateDidFromObjectId` utility. - **Graceful Degradation**: Added an explicit `catch` block around the resolution. If the identity lookup fails (e.g., the object is just a coin, not an identity), we swallow the error and simply return `null` so the search UI gracefully omits the DID option without breaking other concurrent search results. ## Links to any relevant issues N/A ## How the change has been tested - **Manual Verification**: Searched for a standard non-identity Object ID and confirmed no panic/error is printed to the console. - **DID Verification**: Searched for a valid DID string and confirmed the DID search result still resolves correctly. Search an Identity `0xdc704ab63984d5763576c12ce5f62fe735766bc1fc9892a5e2a7be777a9af897` and expect to see no panic console. Search a Notification `0x23be2a1a617f0af6830ffe328c357df7c73de25b2013eef362e8cc09f9df9f57` and expect to see no panic console either.
) # Description of change This PR enables the **Notarization** feature on the Explorer for the **Production** network by updating the default value of the `ExplorerTFNotarization` feature flag to `true`. ### Impact - **Search**: Users can now search for Notarization IDs on the production explorer. - **UI**: Trust Framework (TF) specific views and components related to notarization will become visible and active. ## Links to any relevant issues ### Readiness The following prerequisite PRs have been merged and verified: - #142 (Explorer search integration) - #146 (DID search stability fix) The Notarization client and chain services have been verified to be stable and ready for production traffic. ## How the change has been tested - **Manual Verification**: Verified on the Dev/Staging environments with the flag enabled. - **Code Audit**: Confirmed that the `defaultValue` change is limited strictly to the `ExplorerTFNotarization` key and doesn't affect other feature flags.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
5 Skipped Deployments
|
alexruzenhack
commented
May 20, 2026
| {type && ( | ||
| <div className="flex flex-row items-center gap-xxs"> | ||
| <span className="text-headline-sm text-iota-neutral-10 dark:text-iota-neutral-92"> | ||
| <span className="dark:text-iota-neutral-92 text-headline-sm text-iota-neutral-10"> |
Contributor
Author
There was a problem hiding this comment.
Only a style class sorting.
alexruzenhack
commented
May 20, 2026
60d6c24 to
c507da9
Compare
e4f8537 to
a8d51b0
Compare
138c266 to
5e2dc5d
Compare
a8d51b0 to
fe4d32a
Compare
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.
Description of change
This PR registers the routing for the Audit Trail feature and updates the
PageHeaderto support the new "Audit Trail" badge type.Key Features and Changes
/audit-trail/:idroute mapping to the newAuditTrailResultcomponent.PageHeaderandSideBySidePanelsto support the specific layout requirements of the Audit Trail view.How the change has been tested
Navigate to
http://localhost:3000/audit-trail/[Insert Test ID]and verify the page wrapper loads correctly without crashing.