In a situation where there are multiple contracts stored in different blocks, is there any method to retrieve the status of a contract through its owner's address? (e.g. in my situation, each person registered in the blockchain will only have one contract.This contract will be registered with the public key of this person, i.e. the contract owner will be a public key that corresponds to a person.If I know this public key , can I retrieve the status of this contract?)
One easy solution is to manage contract address with a registry contract. When a contract is created it will call the registry contract and store the association with the sender.
ContractRegistry will have a
mapping (address => address) contracts. That allows to determine the contract given its owner.
Another interesting alternative is to use the new opcode CREATE2 that allows the creation of contract with addresses generated deterministically.