๐MRV Document Operations
Last updated
Last updated
For a demo example of following steps, here is the policy timestamp: 1675164736.675731674
There are two roles: โUserโ and โApproverโ. User can create projects and send project definition documents to the selected Approvers. After the approval, User can add MRV reports to the project. On the basis of this documents the policy will be minting tokens into the account configured in the project.
Create 2 roles โUserโ and โApproverโ and the corresponding containers
(See example 1 for the more detailed description of how to work with roles)
Create all needed document schemas:
2.1 Schema for โUserโ containing the fields: First name, Last name
2.2 Schema for โApproverโ containing the fields: First name, Last name
2.3 Schema for โProjectโ containing the fields: Project name, Account ID
In order to mint tokens into another account (not into the account of the minting user) setup the required field
2.4 Schema for โReportโ containing the following fields: Start Date, End Date, Amount
(Please see example 2 for the more detailed description of how to work with Documents)
Add blocks for registering โUserโ and โApproverโ into the containers created in the step 1
Note: it is important that DID of the user is used for ID of the documents as this value will be used further in the document for filtration
Add simplified grids for displaying Projects, Reports and Tokens
Create the token
1.3.1 Since another (not current user) account is used for minted tokens โtokenActionBlockโ cannot be used, instead we will use โtokenConfirmationBlockโ
1.3.2 To configure the target account for mixed tokens select โCustomโ value for โTypeโ and the filed in the document from which to take the value for the Account ID (this field must have type: โAccountโ)
1.3.3 By default โtokenConfirmationBlockโ does not have a link to the next block, thus it needs to be manually added
1.4 Add an approver as after the creation the project is not assigned to anyone
1.4.1 Add โinterfaceActionBlockโ wrapped into a container.
1.4.2 Select Dropdown value for Type
1.4.3 Use system field assignedTo to filter documents based on users they are assigned to.
Record value from assignedTo into Field (This field will be changing our block)
1.4.4 Configure values from which fields from the document would be labels, and which ones would be values
1.4.5 Use โdocumentsSourceAddonโ for data for Dropdown.
1.4.6 Save the changed document
1.4.7 As โdocumentsSourceAddonโ does not have default events, we need manually add them.
1.4.8 Return to grid settings and add Dropdown into the target column.
1.5 Project Approval. Setting up the grid for project approvals.
1.5.1 To select only the projects assigned to the current Approver set the โAssigned to Userโ flag
1.5.2 Add document approval block
(Please see example 2 for the more detailed description of this workflow)
1.5.3 Add Approve button into the grid
1.5.4 After the Approve, setup the KYC for the account connected to the project
Use โtokenActionBlockโ with the appropriate settings
1.5.5 Configure the signing/verification of the document with the Approver signature by adding โreassigningBlockโ. This block creates a copy of the source document and re-signs it with the key of the selected user.
1.5.6 Add Status attribute for easy filtering
To enable report creation only for approved projects, add create button into the grid selectively for documents with โApprovedโ status
2.1 Add a โdocumentsSourceAddon' block to differentiate the documents on the basis of their status
2.2 Repeat the sequence for project creation to create the report
Note: switch off โDefault Activeโ since create report button does not need to be an independent object
2.3 Add the button for creating reports into the grid
2.4 Use โmintDocumentBlockโ for creating (minting) tokens
3.1.1 Add grid to display reports
3.1.2 To filter reports on the basis of their project add dynamic filter โfiltersAddonโ
3.1.3 Documents created on the basis of other documents are automatically linked via the ref field. Use it for filtration
3.1.4 Add the data source for the filter which will display all approved projects of the current user
3.1.5 Add display of all minted tokens