Skip to content

Commit 6aac1e9

Browse files
committed
architecture overview mermaid
1 parent 5eabda0 commit 6aac1e9

File tree

1 file changed

+43
-0
lines changed
  • content/stellar-contracts/tokens/rwa

1 file changed

+43
-0
lines changed

content/stellar-contracts/tokens/rwa/rwa.mdx

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -482,6 +482,49 @@ Features:
482482
- Efficient storage with bucket-based architecture (supports up to 10,000 tokens)
483483
- Swap-remove pattern for compact storage
484484

485+
## Architecture Overview
486+
487+
Now that we've covered each module individually, let's see how they work together. We'll walk through a `transfer()` operation to illustrate how the components interact:
488+
489+
```mermaid
490+
sequenceDiagram
491+
participant InvestorA
492+
participant Token
493+
participant IdentityVerifier
494+
participant IdentityRegistryStorage
495+
participant ClaimTopicsAndIssuers
496+
participant TrustedIssuer
497+
participant InvestorB IdentityClaims
498+
participant ComplianceContract
499+
500+
Note over Token,ComplianceContract: 1. Eligibility
501+
502+
InvestorA->>Token: transfer(B, amount)
503+
Token->>IdentityVerifier: is_verified(B)
504+
505+
IdentityVerifier->>IdentityRegistryStorage: Fetch identity: stored_identity(B)
506+
IdentityVerifier->>ClaimTopicsAndIssuers: Fetch required claims and issuers: get_claim_topics_and_issuers()
507+
508+
loop every pair of claim topic and issuer
509+
IdentityVerifier->>InvestorB IdentityClaims: Fetch claim ids: get_claim_ids_by_topic()
510+
loop every claim
511+
IdentityVerifier->>InvestorB IdentityClaims: Fetch claim: get_claim()
512+
IdentityVerifier->>TrustedIssuer: Check validity: is_claim_valid()
513+
end
514+
end
515+
516+
IdentityVerifier-->>Token: B eligible
517+
518+
Note over Token,ComplianceContract: 2. Compliance
519+
520+
Token->>ComplianceContract: can_transfer(A, B, amount)
521+
ComplianceContract->>ComplianceContract: checks all compliance modules
522+
ComplianceContract-->>Token: transfer compliant
523+
524+
Token->>Token: process transfer
525+
Token->>InvestorA: notification hook: transferred()
526+
```
527+
485528
## Security Considerations
486529

487530
When implementing RWA tokens, consider the following security aspects:

0 commit comments

Comments
 (0)