Skip to content

Commit df18efe

Browse files
author
lukacan
committed
🔥 Add mint governor
1 parent 266fb90 commit df18efe

12 files changed

Lines changed: 1648 additions & 11 deletions

File tree

‎.github/workflows/trident-fuzz.yaml‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,8 @@ jobs:
6565
target: "fuzz_launchpad"
6666
- name: "fuzz_pbpp"
6767
target: "fuzz_pbpp"
68+
- name: "fuzz_mint_governor"
69+
target: "fuzz_mint_governor"
6870

6971
steps:
7072
- uses: actions/checkout@v4

‎trident-tests/Cargo.toml‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,3 +43,7 @@ path = "fuzz_launchpad/test_fuzz.rs"
4343
[[bin]]
4444
name = "fuzz_pbpp"
4545
path = "fuzz_pbpp/test_fuzz.rs"
46+
47+
[[bin]]
48+
name = "fuzz_mint_governor"
49+
path = "fuzz_mint_governor/test_fuzz.rs"

‎trident-tests/README.md‎

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,3 +59,8 @@ The invariants focus on whether each instruction preserves the expected launch s
5959
Exercises the full performance package flow: `initialize_performance_package`, `start_unlock`, `complete_unlock`, authority changes, and proposal/execution of package updates. The suite is focused on the package state machine around oracle-driven unlocking as well as the authority and recipient control paths that can mutate package configuration.
6060

6161
The invariants focus on ensuring unlock only progresses when time and oracle conditions are satisfied, token release goes to the configured recipient path, administrative changes respect the expected authority/recipient permissions, and state transitions remain coherent as the package moves from locked to unlocking to completed or through approved configuration changes.
62+
63+
### fuzz_mint_governor - Mint Authorization And Limits
64+
Exercises a simplified `mint_governor` flow centered on adding, updating, removing, and using a single mint authority. The suite is focused on two things only: unauthorized access should fail, and minting should respect the configured `max_total` limit for the authorized minter.
65+
66+
The invariants focus on keeping the tracked governor configuration stable after initialization and ensuring the tracked mint-authority PDA either does not exist when removed or matches the expected authorized minter, configured mint cap, and cumulative minted amount when active.

‎trident-tests/Trident.toml‎

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,6 @@ program = "../target/deploy/bid_wall.so"
1111
address = "VLTX1ishMBbcX3rdBWGssxawAo1Q2X2qxYFYqiGodVg"
1212
program = "../target/deploy/conditional_vault.so"
1313

14-
# [[fuzz.programs]]
15-
# address = "cpamdpZCGKUy5JxQXB4dcpGPiikHawvSWAd6mEn1sGG"
16-
# program = "./programs/mainnet/meteora/damm_v2.so"
17-
1814
[[fuzz.programs]]
1915
address = "FUTARELBfJfQ8RDGhg1wdhddq1odMAJUePHFuBYfUxKq"
2016
program = "../target/deploy/futarchy.so"
@@ -27,6 +23,10 @@ program = "../target/deploy/launchpad_v7.so"
2723
address = "pbPPQH7jyKoSLu8QYs3rSY3YkDRXEBojKbTgnUg7NDS"
2824
program = "../target/deploy/price_based_performance_package.so"
2925

26+
[[fuzz.programs]]
27+
address = "gvnr27cVeyW3AVf3acL7VCJ5WjGAphytnsgcK1feHyH"
28+
program = "../target/deploy/mint_governor.so"
29+
3030

3131
# ==============================
3232
# External Programs
@@ -52,10 +52,3 @@ cluster = "m"
5252
address = "FaA6RM9enPh1tU9Y8LiGCq715JubLc49WGcYTdNvDfsc"
5353
cluster = "m"
5454

55-
# ==============================
56-
# External Accounts
57-
# ==============================
58-
59-
# [[fuzz.accounts]]
60-
# address = "FaA6RM9enPh1tU9Y8LiGCq715JubLc49WGcYTdNvDfsc"
61-
# filename = "./accounts/mainnet/meteora/damm-config.json"

0 commit comments

Comments
 (0)