Skip to content
Discussions/App Development/Uniqueness of a contract KeyForum ↗

Uniqueness of a contract Key

App Development3 posts781 views7 likesLast activity Feb 2021
KR
krmmalikOP
Feb 2021

I read through this tutorial on property rentals written in DAML (love this end to end tutorial example btw) and noticed the use of party as well as text for a contract key. Here’s the specific code.

key (agency, registerId) : (Party, Text)		       
maintainer key._1

I presume this helps create more uniqueness for a key to avoid conflicts? I thought this was a good idea so I implemented this in my code as well but then I came to the realisation that in the rental application example, a rental licence is probably only offered to each party once(?)

Whereas in my app, I have agents that can issue multiple proposals and I wanted to setup a key that would be unique via agent and the proposaliD. I.e. it’s the difference between a one-to-one relationship and a one-to-many.

So my question is: is it necessary for me to take things a step further in some way or is the code example above a good enough solution?

I did notice the increment function but I wasn’t sure if this would be a little overkill?

Hope my question makes sense?

ST
stefanobaghino-da
Feb 2021

Note that the agency is a key maintainer. Maintainers are a fundamental part of the key. You can read more about them on the documentation, as they are central to ensuring key uniqueness in a decentralized network where you cannot have any form of global visibility.

From what I can read, it sounds like your agents can work as the key maintainer in your app.

This thread on the forum may also contain interesting information for you.

KR
krmmalik
Feb 2021

OK, I think I understand this better now

← Back to Discussions