Why this matters
register_property only calls landlord.require_auth where landlord is an arbitrary caller-supplied address, and property_id is globally unique with no update, remove, or admin-recovery function. An attacker can pre-register the ids a real landlord will need and permanently grief the namespace. There is also no way to revoke a verification or correct a fraudulent record, and no admin transfer if the admin key is lost.
Acceptance criteria
Files to touch
contracts/property_registry/src/property.rs
contracts/property_registry/src/lib.rs
Out of scope
- Linking properties to the agreement lifecycle
- Off-chain metadata pinning
Why this matters
register_property only calls landlord.require_auth where landlord is an arbitrary caller-supplied address, and property_id is globally unique with no update, remove, or admin-recovery function. An attacker can pre-register the ids a real landlord will need and permanently grief the namespace. There is also no way to revoke a verification or correct a fraudulent record, and no admin transfer if the admin key is lost.
Acceptance criteria
Files to touch
contracts/property_registry/src/property.rscontracts/property_registry/src/lib.rsOut of scope