Skip to main content

Feedback

Loading...
Version: 4.x

Issuing Documents (Code)

For the current step, you can either opt to use the CLI or Code.

Installation

npm install --save @tradetrust-tt/tradetrust-core

Usage

To use the package, you will need to provide your own Web3 provider or signer (if you are writing to the blockchain).

Refer to the pre-requisite on document store deployment.

Connect to existing document store

import { DocumentStoreFactory } from "@tradetrust-tt/tradetrust-core";
import { Wallet, ethers } from "ethers";

const unconnectedWallet = new Wallet("privateKey");
const provider = new ethers.providers.JsonRpcProvider("http://127.0.0.1:8545"); // Local network
const wallet = unconnectedWallet.connect(provider);

const documentStore = DocumentStoreFactory.connect("0x63A223E025256790E88778a01f480eBA77731D04", wallet);
console.log(`Document Store Name: ${await documentStore.name()}`); // Document Store Name: DemoDocumentStore

Issuing on document store

const unconnectedWallet = new Wallet("privateKey");
const provider = new ethers.providers.JsonRpcProvider("http://127.0.0.1:8545"); // Local network
const wallet = unconnectedWallet.connect(provider);

const documentStore = DocumentStoreFactory.connect("0x63A223E025256790E88778a01f480eBA77731D04", wallet);

const tx = await documentStore.issue("0x8dcf358a9436bca6654f565e3c5843d91c0052d3a2eff37bbd380038e8a1fa39");
const receipt = await tx.wait();
console.log(`Issue Transaction: ${JSON.stringify(receipt)}`);

const isIssued = await documentStore.isIssued("0x8dcf358a9436bca6654f565e3c5843d91c0052d3a2eff37bbd380038e8a1fa39");
console.log(`Has been Issued: ${isIssued}`); // Has been Issued: true

// Issue Transaction:
{
"to": "0x63A223E025256790E88778a01f480eBA77731D04",
"from": "0xe0A71284EF59483795053266CB796B65E48B5124",
"contractAddress": null,
"transactionIndex": 0,
"gasUsed": { "type": "BigNumber", "hex": "0xbb0e" },
"logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000040000000000000000000000000000000400000000000000000000000000000000000000800000000000010000000000000000",
"blockHash": "0x0c29e92cecf3086a4235d15c343bafcece6bc74dd90aab6cb00dbe712551fc6b",
"transactionHash": "0x9d06deed29d3f6f91143dcf2e5c9bf8551eb9d4d51601e85f607c9bce3c6a6d5",
"logs": [
{
"transactionIndex": 0,
"blockNumber": 4742643,
"transactionHash": "0x9d06deed29d3f6f91143dcf2e5c9bf8551eb9d4d51601e85f607c9bce3c6a6d5",
"address": "0x63A223E025256790E88778a01f480eBA77731D04",
"topics": [
"0x01a1249f2caa0445b8391e02413d26f0d409dabe5330cd1d04d3d0801fc42db3",
"0x8dcf358a9436bca6654f565e3c5843d91c0052d3a2eff37bbd380038e8a1fa39"
],
"data": "0x",
"logIndex": 0,
"blockHash": "0x0c29e92cecf3086a4235d15c343bafcece6bc74dd90aab6cb00dbe712551fc6b"
}
],
"blockNumber": 4742643,
"confirmations": 1,
"cumulativeGasUsed": { "type": "BigNumber", "hex": "0xbb0e" },
"effectiveGasPrice": { "type": "BigNumber", "hex": "0x01af7449c4" },
"status": 1,
"type": 2,
"byzantium": true,
"events": [
{
"transactionIndex": 0,
"blockNumber": 4742643,
"transactionHash": "0x9d06deed29d3f6f91143dcf2e5c9bf8551eb9d4d51601e85f607c9bce3c6a6d5",
"address": "0x63A223E025256790E88778a01f480eBA77731D04",
"topics": [
"0x01a1249f2caa0445b8391e02413d26f0d409dabe5330cd1d04d3d0801fc42db3",
"0x8dcf358a9436bca6654f565e3c5843d91c0052d3a2eff37bbd380038e8a1fa39"
],
"data": "0x",
"logIndex": 0,
"blockHash": "0x0c29e92cecf3086a4235d15c343bafcece6bc74dd90aab6cb00dbe712551fc6b",
"args": ["0x8dcf358a9436bca6654f565e3c5843d91c0052d3a2eff37bbd380038e8a1fa39"],
"event": "DocumentIssued",
"eventSignature": "DocumentIssued(bytes32)"
}
]
}

Please refer to Document-Store repository on other interfaces available on the smart contracts;

🎉 Congratulations, you have completed the getting started guide to create your first Verifiable Document!

Additional information: Revocation of Verifiable Documents

Revoking of Verifiable Documents