Retrieve a Data Contract
Retrieve details for a Dash Platform Data Contract
Overview
In this tutorial we will retrieve the data contract created in the Register a Data Contract tutorial.
Prerequisites
- node.js (v12+)
- Basic familiarity with JavaScript asychronous functions using async/await
- The Dash JavaScript SDK is initialized (covered in Connecting to a Network)
Code
Retrieving a data contract
const Dash = require('dash');
const client = new Dash.Client();
const retrieveContract = async () => {
const contractId = 'C96rCVpck4RdBQXG3zzP5KH4RKzfKVTsmTauu8FQenJi';
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());
Updating the client app list
In many cases it may be desirable to work with a newly retrieved data contract using the
<contract name>.<contract document>
syntax (e.g.dpns.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 Identifier = require('@dashevo/dpp/lib/Identifier');
const myContractId = 'a contract ID';
const myContract = client.platform.contracts.get(myContractId);
client.getApps().set('myNewContract', {
contractId: Identifier.from(myContractId),
contract: myContract,
});
Example Data Contract
The following example response shows a retrieved contract:
{
"protocolVersion":0,
"$id":"C96rCVpck4RdBQXG3zzP5KH4RKzfKVTsmTauu8FQenJi",
"$schema":"https://schema.dash.org/dpp-0-4-0/meta/data-contract",
"ownerId":"FgPx8YHbWv4rMeiP52DfmnAXGtjiCiSaNKCbgT7eCRxh",
"documents":{
"note":{
"properties":{
"message":{
"type":"string"
}
},
"additionalProperties":false
}
}
}
Please refer to the data contract reference page for more comprehensive details related to contracts and documents.
What's Happening
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.
Updated over 3 years ago