Skip to content

docs: update diagrams docs #1342

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: release-candidate
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 24 additions & 24 deletions docs/diagrams/contracts/capital.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,11 @@ graph TD
MCR["MCR"]

%% Swap Flow
Member -->|"(1a) swap"| Ramm
Ramm -->|"(1b) validate swap"| Pool
Ramm -->|"(1c) execute swap"| Pool
Pool -->|"(1d) update MCR"| MCR
Pool -.->|"(1e) transfer swapped assets"| Member
Member -->|"**(1a)** swap"| Ramm
Ramm -->|"**(1b)** validate swap"| Pool
Ramm -->|"**(1c)** execute swap"| Pool
Pool -->|"**(1d)** update MCR"| MCR
Pool -.->|"**(1e)** transfer swapped assets"| Member
```

## Operator Flow
Expand All @@ -33,15 +33,15 @@ graph TD
CoW["CoW Settlement"]

%% Swap Flow
Operator -->|"(1a) placeOrder"| SwapOp
SwapOp -->|"(1b) validatePreSwap"| Pool
SwapOp -->|"(1c) transferAsset"| Pool
SwapOp -->|"(1d) sign & submit CoW Swap order"| CoW
CoW -.->|"(1e) execute swap & return assets"| SwapOp
Operator -->|"**(1a)** placeOrder"| SwapOp
SwapOp -->|"**(1b)** validatePreSwap"| Pool
SwapOp -->|"**(1c)** transferAsset"| Pool
SwapOp -->|"**(1d)** sign & submit CoW Swap order"| CoW
CoW -.->|"**(1e)** execute swap & return assets"| SwapOp

%% Close Order Flow
Operator -->|"(2a) closeOrder"| SwapOp
SwapOp -->|"(2b) return assets"| Pool
Operator -->|"**(2a)** closeOrder"| SwapOp
SwapOp -->|"**(2b)** return assets"| Pool
```

## Actions
Expand All @@ -55,32 +55,32 @@ graph TD
### 1. Member Actions

1. **Swap NXM/ETH**
- (1a) **Member** calls `swap` on RAMM
- (1b) **RAMM** validates swap conditions:
- **(1a)** `Member` calls `swap` on RAMM
- **(1b)** `RAMM` validates swap conditions:
- System not paused
- Swap not paused
- Valid deadline
- (1c) **RAMM** executes swap with Pool
- (1d) **Pool** triggers MCR update
- (1e) **Pool** transfers swapped assets to member
- **(1c)** `RAMM` executes swap with Pool
- **(1d)** `Pool` triggers MCR update
- **(1e)** `Pool` transfers swapped assets to member

### 2. Operator Actions

1. **Place Order**

- (1a) **Operator** calls `placeOrder` on SwapOperator
- (1b) **SwapOperator** validates pre-swap conditions:
- **(1a)** `Operator` calls `placeOrder` on SwapOperator
- **(1b)** `SwapOperator` validates pre-swap conditions:
- Token enabled status
- Balance limits
- Swap frequency
- Max fee and slippage
- (1c) **SwapOperator** transfers assets from Pool
- (1d) **SwapOperator** signs and submits CoW swap order
- (1e) **CoW Settlement** executes swap and returns assets to SwapOperator
- **(1c)** `SwapOperator` transfers assets from Pool
- **(1d)** `SwapOperator` signs and submits CoW swap order
- **(1e)** `CoW Settlement` executes swap and returns assets to SwapOperator

2. **Close Order**
- (2a) **Operator** calls `closeOrder` on SwapOperator
- (2b) **SwapOperator** returns assets to Pool
- **(2a)** `Operator` calls `closeOrder` on SwapOperator
- **(2b)** `SwapOperator` returns assets to Pool

## Notes

Expand Down
44 changes: 22 additions & 22 deletions docs/diagrams/contracts/claims-assessment.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,10 @@ graph TD
CoverNFT["CoverNFT Contract"]

%% Submit Claim
Member -->|"(1a) submitClaim"| IndividualClaims
IndividualClaims -->|"(1b) validate cover"| CoverNFT
IndividualClaims -->|"(1c) validate amount"| Cover
IndividualClaims -->|"(1d) startAssessment"| Assessment
Member -->|"**(1a)** submitClaim"| IndividualClaims
IndividualClaims -->|"**(1b)** validate cover"| CoverNFT
IndividualClaims -->|"**(1c)** validate amount"| Cover
IndividualClaims -->|"**(1d)** startAssessment"| Assessment
```

## 2. Assessment & Redemption Flow
Expand All @@ -36,15 +36,15 @@ graph TD
Pool["Pool"]

%% Assessment Process
Assessor -->|"(2a) castVotes"| Assessment
Assessment -->|"(2b) lock staked NXM"| TokenController
Assessor -->|"**(2a)** castVotes"| Assessment
Assessment -->|"**(2b)** lock staked NXM"| TokenController

%% Claim Payout
Member -->|"(3a) redeemClaimPayout"| IndividualClaims
IndividualClaims -->|"(3b) validate claim status"| Assessment
IndividualClaims -->|"(3c) burnStake"| Cover
IndividualClaims -->|"(3d) sendPayout"| Pool
Pool -.->|"(3e) transfer claim amount + deposit"| Member
Member -->|"**(3a)** redeemClaimPayout"| IndividualClaims
IndividualClaims -->|"**(3b)** validate claim status"| Assessment
IndividualClaims -->|"**(3c)** burnStake"| Cover
IndividualClaims -->|"**(3d)** sendPayout"| Pool
Pool -.->|"**(3e)** transfer claim amount + deposit"| Member
```

## Actions
Expand Down Expand Up @@ -89,26 +89,26 @@ graph TD
## Claim Submission & Processing

1. **Submit Claim**
(1a) **Cover Buyer** calls `submitClaim` on IndividualClaims
(1b) **IndividualClaims** validates cover ownership via CoverNFT
(1c) **IndividualClaims** validates claim amount via Cover
(1d) **IndividualClaims** starts assessment process
**(1a)** `Cover Buyer` calls `submitClaim` on IndividualClaims
**(1b)** `IndividualClaims` validates cover ownership via CoverNFT
**(1c)** `IndividualClaims` validates claim amount via Cover
**(1d)** `IndividualClaims` starts assessment process

2. **Assessment Process**
(2a) **Assessors** call `castVotes` on Assessment
(2b) **Assessment** locks staked NXM via TokenController for voting period
**(2a)** `Assessors` call `castVotes` on Assessment
**(2b)** `Assessment` locks staked NXM via TokenController for voting period

3. **Claim Payout**
(3a) **Cover Buyer** calls `redeemClaimPayout` on IndividualClaims
(3b) **IndividualClaims** validates with Assessment:
**(3a)** `Cover Buyer` calls `redeemClaimPayout` on IndividualClaims
**(3b)** `IndividualClaims` validates with Assessment:

- Assessment period has ended
- More accept votes than deny votes
- Cooldown period has passed

(3c) **IndividualClaims** calls Cover to burn stake from affected pools
(3d) **IndividualClaims** sends payout via Pool
(3e) **Pool** transfers:
**(3c)** `IndividualClaims` calls Cover to burn stake from affected pools
**(3d)** `IndividualClaims` sends payout via Pool
**(3e)** `Pool` transfers:

- Claim amount in cover asset
- Returns assessment deposit in ETH
Expand Down
30 changes: 15 additions & 15 deletions docs/diagrams/contracts/cover.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,11 @@ graph TD
NXMaster["NXMaster Registry"]

%% Member interactions
Member -->|"(1a) buyCover"| Cover
Cover -->|"(1b) validate product"| CoverProducts
Cover -->|"(1c) mint"| CoverNFT
CoverNFT -.->|"(1c) issues Cover NFT"| Member
Cover -->|"(1d) payment"| Pool
Member -->|"**(1a)** buyCover"| Cover
Cover -->|"**(1b)** validate product"| CoverProducts
Cover -->|"**(1c)** mint"| CoverNFT
CoverNFT -.->|"**(1c)** issues Cover NFT"| Member
Cover -->|"**(1d)** payment"| Pool

%% Contract Registry interactions
CoverProducts -.->|"getLatestAddress"| NXMaster
Expand All @@ -40,9 +40,9 @@ graph TD
Pool["Pool Contract"]

%% AB Member interactions
ABMember -->|"(1) setProducts"| CoverProducts
ABMember -->|"(2) setProductTypes"| CoverProducts
ABMember -->|"(3) setProductsMetadata"| CoverProducts
ABMember -->|"**(1)** setProducts"| CoverProducts
ABMember -->|"**(2)** setProductTypes"| CoverProducts
ABMember -->|"**(3)** setProductsMetadata"| CoverProducts

%% Internal validations
CoverProducts -->|"validate assets"| Pool
Expand All @@ -59,36 +59,36 @@ graph TD
### 1. Member Actions

1. **Buy Cover**
(1a) **Member** calls `buyCover` on Cover with:
**(1a)** `Member` calls `buyCover` on Cover with:
- Product ID
- Cover amount
- Cover period
- Payment asset
- Cover asset
(1b) **Cover** validates product with CoverProducts
(1c) **Cover** mints NFT representing cover
**(1b)** `Cover` validates product with CoverProducts
**(1c)** `Cover` mints NFT representing cover
- issues Cover NFT to buyer
(1d) **Cover** processes payment via Pool
**(1d)** `Cover` processes payment via Pool

### 2. Advisory Board Actions

1. **Product Configuration**
(1) **AB Member** calls `setProducts` on CoverProducts to:
**(1)** `AB Member` calls `setProducts` on CoverProducts to:

- Add new products (`productId = uint256.max`)
- Update existing products
- Set initial price ratios
- Set capacity reduction ratios
- Configure allowed staking pools

(2) **AB Member** calls `setProductTypes` on CoverProducts to:
**(2)** `AB Member` calls `setProductTypes` on CoverProducts to:

- Define product types (`productTypeId = uint256.max`)
- Set grace periods
- Set product type names
- Update product type metadata

(3) **AB Member** calls `setProductsMetadata` to:
**(3)** `AB Member` calls `setProductsMetadata` to:

- Update product IPFS metadata
- Update product type IPFS metadata
Expand Down
16 changes: 8 additions & 8 deletions docs/diagrams/contracts/governance-membership.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,11 @@ graph TD
NXMaster["NXMaster Registry"]

%% Member interactions
Member -->|"(1) submitProposal"| Governance
Member -->|"(2) vote"| Governance
Member -->|"(3) queryVotingPower"| VotePower
Member -->|"(4) withdrawMembership"| MemberRoles
Member -->|"(5) switchMembership"| MemberRoles
Member -->|"**(1)** submitProposal"| Governance
Member -->|"**(2)** vote"| Governance
Member -->|"**(3)** queryVotingPower"| VotePower
Member -->|"**(4)** withdrawMembership"| MemberRoles
Member -->|"**(5)** switchMembership"| MemberRoles

%% Contract Registry interactions
Governance -.->|"getLatestAddress"| NXMaster
Expand All @@ -39,9 +39,9 @@ graph TD
NXMaster["NXMaster Registry"]

%% AB Member interactions
ABMember -->|"(1) approveProposal"| Governance
ABMember -->|"(2) rejectAction"| Governance
ABMember -->|"(3) swapABMember"| MemberRoles
ABMember -->|"**(1)** approveProposal"| Governance
ABMember -->|"**(2)** rejectAction"| Governance
ABMember -->|"**(3)** swapABMember"| MemberRoles

%% Contract Registry interactions
Governance -.->|"getLatestAddress"| NXMaster
Expand Down
52 changes: 26 additions & 26 deletions docs/diagrams/contracts/staking.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,17 +18,17 @@ graph TD
end

%% Staker interactions
Staker -->|"(1a) depositTo()"| StakingPool
StakingPool -->|"(1b) mint()"| StakingNFT
StakingNFT -.->|"(1c) issues NFT"| Staker
Staker -->|"**(1a)** depositTo()"| StakingPool
StakingPool -->|"**(1b)** mint()"| StakingNFT
StakingNFT -.->|"**(1c)** issues NFT"| Staker

Staker -->|"(2a) withdraw()"| StakingPool
StakingPool -->|"(2b) burn()"| StakingNFT
StakingPool -->|"(2c) withdrawNXMStakeAndRewards()"| TCO
TCO -->|"(2d) transfer()"| NXM
NXM -.->|"(2e) returns NXM + rewards"| Staker
Staker -->|"**(2a)** withdraw()"| StakingPool
StakingPool -->|"**(2b)** burn()"| StakingNFT
StakingPool -->|"**(2c)** withdrawNXMStakeAndRewards()"| TCO
TCO -->|"**(2d)** transfer()"| NXM
NXM -.->|"**(2e)** returns NXM + rewards"| Staker

Staker -->|"(3) extendDeposit()"| StakingPool
Staker -->|"**(3)** extendDeposit()"| StakingPool

%% Contract Registry interactions
StakingPool -.->|"getLatestAddress"| NXMaster
Expand All @@ -48,12 +48,12 @@ graph TD
NXMaster["NXMaster Registry"]

%% Manager interactions
Manager -->|"(1a) createStakingPool()"| StakingProducts
Manager -->|"(2) setProducts()"| StakingProducts
Manager -->|"(3) setPoolMetadata()"| StakingProducts
Manager -->|"**(1a)** createStakingPool()"| StakingProducts
Manager -->|"**(2)** setProducts()"| StakingProducts
Manager -->|"**(3)** setPoolMetadata()"| StakingProducts

%% Internal interactions
StakingProducts -->|"(1b) create"| StakingPoolFactory
StakingProducts -->|"**(1b)** create"| StakingPoolFactory

%% Contract Registry interactions
StakingProducts -.->|"getLatestAddress"| NXMaster
Expand All @@ -71,27 +71,27 @@ graph TD
### 1. Staker Actions

1. **Deposit Stake**
(1a) **Staker** calls `depositTo()` on StakingPool with:
**(1a)** `Staker` calls `depositTo()` on StakingPool with:

- Amount of NXM to stake
- Target tranche ID
- Optional existing NFT ID
(1b) **StakingPool** calls `mint()` on StakingNFT
(1c) **StakingNFT** issues NFT to staker
**(1b)** `StakingPool` calls `mint()` on StakingNFT
**(1c)** `StakingNFT` issues NFT to staker

2. **Withdraw Stake**
(2a) **Staker** calls `withdraw()` on StakingPool with:
**(2a)** `Staker` calls `withdraw()` on StakingPool with:

- NFT ID
- Tranche IDs
- Amount to withdraw
(2b) **StakingPool** calls `burn()` on StakingNFT
(2c) **StakingPool** calls `withdrawNXMStakeAndRewards()` on TokenController
(2d) **TokenController** calls `transfer()` on NXMToken
(2e) **NXMToken** returns NXM + rewards to staker
**(2b)** `StakingPool` calls `burn()` on StakingNFT
**(2c)** `StakingPool` calls `withdrawNXMStakeAndRewards()` on TokenController
**(2d)** `TokenController` calls `transfer()` on NXMToken
**(2e)** `NXMToken` returns NXM + rewards to staker

3. **Extend Deposit**
(3) **Staker** calls `extendDeposit()` on StakingPool with:
**(3)** `Staker` calls `extendDeposit()` on StakingPool with:
- NFT ID
- Source tranche ID
- Target tranche ID
Expand All @@ -100,23 +100,23 @@ graph TD
### 2. Staking Pool Manager Actions

1. **Create Pool**
(1a) **Manager** calls `createStakingPool()` on StakingProducts with:
**(1a)** `Manager` calls `createStakingPool()` on StakingProducts with:

- Pool privacy setting
- Initial and max pool fees
- Product initialization parameters
- IPFS metadata hash
(1b) **StakingProducts** calls `create()` on StakingPoolFactory
**(1b)** `StakingProducts` calls `create()` on StakingPoolFactory

2. **Configure Products**
(2) **Manager** calls `setProducts()` on StakingProducts with:
**(2)** `Manager` calls `setProducts()` on StakingProducts with:

- Product IDs
- Target weights
- Target price

3. **Update Metadata**
(3) **Manager** calls `setPoolMetadata()` on StakingProducts with:
**(3)** `Manager` calls `setPoolMetadata()` on StakingProducts with:
- Pool ID
- New IPFS metadata hash

Expand Down
Loading
Loading