@colony/event-metadata
TypeScript icon, indicating that this package has built-in type declarations

3.0.0 • Public • Published

Colony Event Metadata Parser

Metadata format versions

ColonyDapp should support legacy Metadata formats. Therefore, when parsing (in ColonyDapp) it is necessary to check the Metadata format version and support V1 & later versions.

const metadataVersion = getEventMetadataVersion(ipfsMetadataObject);
if (metadataVersion === 1) {
/*
* original metadata format
*/
...
}
else {
/*
* new metadata format
*/
....
}

Parsing

If type of Metadata object is unknown (e.g. in event logs)

import { parseEventMetadata, MetadataType } from '@colony/event-metadata';

const anyMetadataObject = parseEventMetadata(metadataObj);

if (anyMetadataObject.name === MetadataType.Colony) {
    console.log(anyMetadataObject.data.colonyName); // 'Foo'
}

If the type is known we can provide it and it will be validated against it:

import { parseEventMetadata, MetadataType } from '@colony/event-metadata';

const domainMetadata = parseEventMetadata(metadataObj, MetadataType.Domain);
console.log(domainMetadata.data.domainColor); // 2

Creating metadata objects

import { createMetadataFor, MetadataType } from '@colony/event-metadata';

const colonyMetadata = createMetadataFor(MetadataType.Colony, { colonyName: 'Foo' });
console.log(colonyMetadata.version); // 2
console.log(colonyMetadata.name); // 'colony'
console.log(colonyMetadata.data); // { colonyName: 'Foo' }

License

GPL-3.0

Readme

Keywords

none

Package Sidebar

Install

npm i @colony/event-metadata

Weekly Downloads

25

Version

3.0.0

License

GPL-3.0-only

Unpacked Size

58.9 kB

Total Files

13

Last publish

Collaborators

  • jakubcolony
  • kronovet
  • rdig
  • chmanie
  • area