In this tutorial we will retrieve the data contract created in the Register a Data Contract tutorial.
`const Hellar = require('hellar');
const client = new Hellar.Client({ network: 'mainnet' });
const retrieveContract = async () => { const contractId = '8cvMFwa2YbEsNNoc1PXfTacy2PVq2SzVnkZLeQSzjfi6'; return client.platform.contracts.get(contractId); };
retrieveContract() .then((d) => console.dir(d.toJSON(), { depth: 5 })) .catch((e) => console.error('Something went wrong:\n', e)) .finally(() => client.disconnect());`
๐
In many cases it may be desirable to work with a newly retrieved data contract using the
<contract name>.<contract document>
syntax (e.g.hpns.domain
). Data contracts that were created after the client was initialized or not included in the initial client options can be added viaclient.getApps().set(...)
.
`const Hellar = require('hellar'); const { PlatformProtocol: { Identifier } } = Hellar;
const myContractId = 'a contract ID'; const client = new Hellar.Client();
client.platform.contracts.get(myContractId) .then((myContract) => { client.getApps().set('myNewContract', { contractId: Identifier.from(myContractId), contract: myContract, }); });`
The following example response shows a retrieved contract:
{ "$format_version": "0", "id": "8cvMFwa2YbEsNNoc1PXfTacy2PVq2SzVnkZLeQSzjfi6", "config": { "$format_version": "0", "canBeDeleted": false, "readonly": false, "keepsHistory": false, "documentsKeepHistoryContractDefault": false, "documentsMutableContractDefault": true, "requiresIdentityEncryptionBoundedKey": null, "requiresIdentityDecryptionBoundedKey": null }, "version": 1, "ownerId": "AsdMKouqE5NB7CeQFi4wr5oj8vFUYTtdSvxFtAvtCbhh", "schemaDefs": null, "documentSchemas": { "note": { "type": "object", "properties": { "message": { "type": "string" } }, "additionalProperties": false } } }
๐ Please refer to the data contract reference page for more comprehensive details related to contracts and documents.
After we initialize the Client, we request a contract. The platform.contracts.get
method takes a single argument: a contract ID. After the contract is retrieved, it is displayed on the console.
The second code example shows how the contract could be assigned a name to make it easily accessible without initializing an additional client.