As an end user
I wish to understand how I should upgrade my Corda 3.x CorDapps
such that I can run them on a Corda 4 node in a Corda 4 network
and be able to consume pre-existing states generated on ledger prior to upgrading.
These pre-existing states may be "hash-constrained" or "CZ whitelisted".
Ultimately I wish to follow Corda 4 best practices to ease future CorDapp upgrading.