Description:
ComplianceRegistry::attest stores a single Attestation record per user address keyed by DataKey::Attestation(user). If a user is attested for US and later re-attested for EU, the second call silently replaces the first. The test_multiple_jurisdictions test explicitly asserts this behaviour and marks it as expected — but it means a user can never hold two concurrent valid attestations, which is required for cross-border transactions (e.g., a US resident investing in an EU-jurisdiction property).
Expected behaviour:
Attestations should be stored per (user, jurisdiction) pair, e.g. DataKey::Attestation(Address, Symbol).
Labels: bug, contracts, compliance-registry, high-priority
Description:
ComplianceRegistry::atteststores a singleAttestationrecord per user address keyed byDataKey::Attestation(user). If a user is attested forUSand later re-attested forEU, the second call silently replaces the first. Thetest_multiple_jurisdictionstest explicitly asserts this behaviour and marks it as expected — but it means a user can never hold two concurrent valid attestations, which is required for cross-border transactions (e.g., a US resident investing in an EU-jurisdiction property).Expected behaviour:
Attestations should be stored per
(user, jurisdiction)pair, e.g.DataKey::Attestation(Address, Symbol).Labels:
bug,contracts,compliance-registry,high-priority