Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion audit-trail-rs/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ version = "0.1.0-alpha"
authors.workspace = true
edition.workspace = true
homepage.workspace = true
keywords = ["iota", "tangle", "utxo", "audit-trail", "audit-trail"]
keywords = ["iota", "tangle", "utxo", "audit-trail"]
license.workspace = true
readme = "./README.md"
repository.workspace = true
Expand Down
9 changes: 5 additions & 4 deletions bindings/wasm/audit_trail_wasm/examples/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,8 @@ Available examples:

### Real-World

| Name | Description |
| ---------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
| `01_customs_clearance` | Models customs clearance with role-tag restrictions, delegated capabilities, denied inspection writes, and a final write lock |
| `02_clinical_trial` | Models a clinical trial with time-constrained capabilities, mid-study tag addition, deletion windows, time-locks, and regulator verification |
| Name | Description |
| ----------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `01_customs_clearance` | Models customs clearance with role-tag restrictions, delegated capabilities, denied inspection writes, and a final write lock |
| `02_clinical_trial` | Models a clinical trial with time-constrained capabilities, mid-study tag addition, deletion windows, time-locks, and regulator verification |
| `03_digital_product_passport` | Models a Digital Product Passport for an e-bike battery with lifecycle-scoped actors, technician access approval, an annual maintenance event, and documented Lifecycle Credit reward evidence |
3 changes: 3 additions & 0 deletions bindings/wasm/audit_trail_wasm/examples/src/main.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ import { capabilityConstraints } from "./advanced/10_capability_constraints";
import { manageRecordTags } from "./advanced/11_manage_record_tags";
import { customsClearance } from "./real-world/01_customs_clearance";
import { clinicalTrial } from "./real-world/02_clinical_trial";
import { digitalProductPassport } from "./real-world/03_digital_product_passport";

export async function main(example?: string) {
const argument = example ?? process.argv?.[2]?.toLowerCase();
Expand Down Expand Up @@ -48,6 +49,8 @@ export async function main(example?: string) {
return customsClearance();
case "02_clinical_trial":
return clinicalTrial();
case "03_digital_product_passport":
return digitalProductPassport();
default:
throw new Error(`Unknown example name: '${argument}'`);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,17 +31,15 @@
*/

import {
AuditTrailClient,
CapabilityIssueOptions,
Data,
LockingConfig,
LockingWindow,
PermissionSet,
RoleTags,
TimeLock,
} from "@iota/audit-trail/node";
import { strict as assert } from "assert";
import { getFundedClient, TEST_GAS_BUDGET } from "../util";
import { getFundedClient, issueTaggedRecordRole, TEST_GAS_BUDGET } from "../util";

export async function customsClearance(): Promise<void> {
console.log("=== Customs Clearance ===\n");
Expand Down Expand Up @@ -277,26 +275,3 @@ export async function customsClearance(): Promise<void> {

console.log("\nCustoms clearance completed successfully.");
}

async function issueTaggedRecordRole(
admin: AuditTrailClient,
trailId: string,
roleName: string,
tag: string,
issuedTo: string,
): Promise<void> {
await admin
.trail(trailId)
.access()
.forRole(roleName)
.create(PermissionSet.recordAdminPermissions(), new RoleTags([tag]))
.withGasBudget(TEST_GAS_BUDGET)
.buildAndExecute(admin);
await admin
.trail(trailId)
.access()
.forRole(roleName)
.issueCapability(new CapabilityIssueOptions(issuedTo))
.withGasBudget(TEST_GAS_BUDGET)
.buildAndExecute(admin);
}
Original file line number Diff line number Diff line change
Expand Up @@ -34,17 +34,15 @@
*/

import {
AuditTrailClient,
CapabilityIssueOptions,
Data,
LockingConfig,
LockingWindow,
PermissionSet,
RoleTags,
TimeLock,
} from "@iota/audit-trail/node";
import { strict as assert } from "assert";
import { getFundedClient, TEST_GAS_BUDGET } from "../util";
import { getFundedClient, issueTaggedRecordRole, TEST_GAS_BUDGET } from "../util";

export async function clinicalTrial(): Promise<void> {
console.log("=== Clinical Trial Data Integrity ===\n");
Expand Down Expand Up @@ -290,26 +288,3 @@ export async function clinicalTrial(): Promise<void> {

console.log("\nClinical trial data-integrity verification completed successfully.");
}

async function issueTaggedRecordRole(
admin: AuditTrailClient,
trailId: string,
roleName: string,
tag: string,
issuedTo: string,
): Promise<void> {
await admin
.trail(trailId)
.access()
.forRole(roleName)
.create(PermissionSet.recordAdminPermissions(), new RoleTags([tag]))
.withGasBudget(TEST_GAS_BUDGET)
.buildAndExecute(admin);
await admin
.trail(trailId)
.access()
.forRole(roleName)
.issueCapability(new CapabilityIssueOptions(issuedTo))
.withGasBudget(TEST_GAS_BUDGET)
.buildAndExecute(admin);
}
Loading
Loading