Skip to main content

Verifiable Storage Models Examples

This page provides TypeScript examples for the verifiable storage models, including how to use the main interfaces, types, and the connector factory. These examples are intended to help you understand the structure and usage of the verifiable storage model layer.

VerifiableStorageConnectorFactory

import { VerifiableStorageConnectorFactory } from '@twin.org/verifiable-storage-models';

// List available connector names
const connectorNames = VerifiableStorageConnectorFactory.names();
console.log(connectorNames); // Outputs an array of connector names

// Get a connector instance (example, replace 'entity-storage' with your connector name)
const connector = VerifiableStorageConnectorFactory.get('entity-storage');
console.log(connector.className()); // Outputs the class name of the connector

IVerifiableStorageConnector

import type { IVerifiableStorageConnector } from '@twin.org/verifiable-storage-models';

async function createAndGetItem(connector: IVerifiableStorageConnector) {
const controllerIdentity = 'did:example:controller1';
const data = new TextEncoder().encode('Sample data');
const allowList = ['did:example:controller1'];
const { id, receipt } = await connector.create(controllerIdentity, data, allowList, {
maxAllowListSize: 5
});
console.log(id); // Outputs the new item id
const item = await connector.get(id);
if (item.data) {
const decoded = new TextDecoder().decode(item.data);
console.log(decoded); // Sample data
}
}

IVerifiableStorageComponent

import type { IVerifiableStorageComponent } from '@twin.org/verifiable-storage-models';

async function createItem(component: IVerifiableStorageComponent) {
const data = new TextEncoder().encode('Component data');
const allowList = ['did:example:controller1'];
const { id, receipt } = await component.create(data, allowList, { maxAllowListSize: 3 });
console.log(id); // Outputs the new item id
}