Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Notarised ODP Contract

This smart contract is instantiated by the Orchestrator post notary verification.

The purpose of this contract is to provide metadata to the owners of the PTs. PTs are issued based on the underlying ODP that this contract represents.

If the ODP is for 10,000 Euros, there will be 10,000 x 1000 mPTs issued. i.e. 1 mPT = 0.001 Euro.

States

status

Current status of the ODP

Type: Enum - Notarised, Issuance Requested, Issued, Matured, Redeemed, Default

This can only be updated by the ODP Admin.

State Transitions

stateDiagram-v2
[*] --> Notarised: `MsgNotarise`
Notarised --> IssuanceRequested: Updated by SPV on price match
IssuanceRequested --> Issued: Issuance Request accepted by DSD
Issued --> Matured: `maturity_timestamp` is reached
Issued --> Redeemed:  `PT` holder(s) are paid
Matured --> Redeemed: `PT` holder(s) are paid <br /> post maturity
Matured --> \Default: Assurance reserve kicked in

odp_admin

The admin address for this ODP contract. This address does not have to be the owner of the ODP itself. This address can update the status of the ODP.

Type: Address

owner

Current owner of the underlying ODP

Type: Address

balances

A mapping of PT holders and the number of PTs they hold. PT by default is in the unit of mPT (milli PT)

Type: Map - Address -> uint256

value

The value of the underlying ODP. In the case of e-Invoices, it is the recievable amount.

Type: coin{ "denom": "EUR", "amount": 10000 }

maturity_timestamp

The date when the ODP matures. In the case of e-Invoices, it is the due date of the invoice.

An ODP state will change by endblocker hook to Matured if the maturity_timestamp is reached. This timestamp is feed in as epoche seconds as part of the input for notarisation.

Type: Expiration - a cosmwasm type with timestamp

notarised initiator

This is the address of the supplier who initiated this process. This is forwarded by the notary module.

Type: Address

Messages

Queries