Skip to main content

Hierarchies Connector IOTA Examples

This package provides a connector for managing federations, authorities, and properties on the IOTA network. The examples below use the in-built enums and types for clarity and correctness.

Creating a Connector

import { IotaHierarchiesConnector } from '@twin.org/hierarchies-connector-iota';
import { PropertyType } from '@twin.org/hierarchies-models';

const connector = new IotaHierarchiesConnector({
config: {
clientOptions: { nodes: ['https://api.testnet.iota.cafe'] },
vaultMnemonicId: 'test-mnemonic',
network: 'testnet'
}
});

Creating a Federation

const federationId = await connector.federationCreate('controller-identity');
console.log(federationId); // "urn:iota:federation:..."

Adding a Property Using PropertyType Enum

import { PropertyType } from '@twin.org/hierarchies-models';

const property = {
name: 'access.level',
allowedValues: [{ type: PropertyType.String, value: 'admin' }]
};
await connector.propertyAdd('controller-identity', federationId, property);

Adding and Removing an Authority

const authorityId = await connector.authorityAdd('controller-identity', federationId, 'account-2');
await connector.authorityRemove('controller-identity', federationId, 'account-2');

Getting a Federation and Its Properties

const federation = await connector.federationGet(federationId);
federation.rootAuthorities.forEach(auth => {
console.log(auth.accountId); // "account-1"
});
federation.governance.properties.forEach(prop => {
console.log(prop.name); // "access.level"
});