Skip to content

Commit 0ad7ceb

Browse files
Fix tests for protocol-admin auth guard on fee config
Main landed tests that call set_fee_config/set_protocol_fee_recipient on a fresh contract without bootstrapping the protocol admin, so the new assert_is_admin guard on those functions reverts them with Unauthorized. Set the admin before the guarded calls in the affected tests.
1 parent aa161fb commit 0ad7ceb

8 files changed

Lines changed: 15 additions & 0 deletions

creator-keys/src/lib.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4529,6 +4529,7 @@ mod tests {
45294529
let client = super::CreatorKeysContractClient::new(&env, &contract_id);
45304530
let admin = Address::generate(&env);
45314531

4532+
client.set_protocol_admin(&admin, &admin);
45324533
client.set_fee_config(&admin, &9000, &1000);
45334534

45344535
let bps = env.as_contract(&contract_id, || super::read_protocol_fee_bps(&env));

creator-keys/src/test_issues.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -789,6 +789,7 @@ mod issue_tests {
789789

790790
let protocol_bps = 250u32; // 2.5%
791791
let creator_bps = 500u32; // 5.0%
792+
client.set_protocol_admin(&admin, &admin);
792793
client.set_fee_config(&admin, &creator_bps, &protocol_bps);
793794

794795
let creator = register_creator(&env, &client, None);

creator-keys/tests/buy_fee_split_treasury_and_creator.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ fn test_buy_splits_fees_correctly_between_treasury_and_creator() {
2626

2727
// Configure pricing and fee split: 500 bps (5%) protocol fee, 200 bps (2%) creator fee
2828
client.set_key_price(&admin, &gross_cost);
29+
client.set_protocol_admin(&admin, &admin);
2930
client.set_fee_config(&admin, &CREATOR_BPS, &PROTOCOL_BPS);
3031

3132
let protocol_recipient = soroban_sdk::Address::generate(&env);
@@ -106,6 +107,7 @@ fn test_buy_fee_split_accumulates_across_multiple_buys() {
106107
let gross_cost: i128 = 5 * STROOPS_PER_DISPLAY_UNIT; // 5 XLM = 50,000,000 stroops
107108

108109
client.set_key_price(&admin, &gross_cost);
110+
client.set_protocol_admin(&admin, &admin);
109111
client.set_fee_config(&admin, &CREATOR_BPS, &PROTOCOL_BPS);
110112

111113
let creator = register_test_creator(&env, &client, "bob");
@@ -145,6 +147,7 @@ fn test_buy_fee_split_no_stroop_rounding_error_at_odd_gross_cost() {
145147
let gross_cost: i128 = 1_234_567; // Odd stroop amount to verify integer arithmetic precision
146148

147149
client.set_key_price(&admin, &gross_cost);
150+
client.set_protocol_admin(&admin, &admin);
148151
client.set_fee_config(&admin, &CREATOR_BPS, &PROTOCOL_BPS);
149152

150153
let creator = register_test_creator(&env, &client, "carol");

creator-keys/tests/contract_initialization_event.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ fn test_initialization_event_emitted_on_first_set_fee_config() {
2020

2121
let admin = Address::generate(&env);
2222
let recipient = Address::generate(&env);
23+
client.set_protocol_admin(&admin, &admin);
2324
client.set_protocol_fee_recipient(&admin, &recipient);
2425

2526
let test_ledger = 10u32;
@@ -68,6 +69,8 @@ fn test_initialization_event_not_emitted_on_reinit() {
6869

6970
let admin = Address::generate(&env);
7071

72+
client.set_protocol_admin(&admin, &admin);
73+
7174
// First initialization
7275
client.set_fee_config(&admin, &9000u32, &1000u32);
7376

creator-keys/tests/read_protocol_fee_bps_uninitialized.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ fn test_read_protocol_fee_bps_succeeds_when_initialized() {
2929
let (client, contract_id) = register_creator_keys(&env);
3030

3131
let admin = soroban_sdk::Address::generate(&env);
32+
client.set_protocol_admin(&admin, &admin);
3233
client.set_fee_config(&admin, &9000, &1000);
3334

3435
let bps = env.as_contract(&contract_id, || read_protocol_fee_bps(&env));

creator-keys/tests/resolve_issues_tests.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -161,6 +161,7 @@ fn test_buy_event_price_paid_matches_pre_buy_query_price() {
161161

162162
let admin = Address::generate(&env);
163163
client.set_key_price(&admin, &100_i128);
164+
client.set_protocol_admin(&admin, &admin);
164165
client.set_fee_config(&admin, &9000u32, &1000u32);
165166

166167
let creator = Address::generate(&env);
@@ -261,6 +262,7 @@ fn test_sell_updates_creator_supply_and_seller_balance_atomically() {
261262
env.mock_all_auths();
262263

263264
let (client, admin, creator) = setup(&env);
265+
client.set_protocol_admin(&admin, &admin);
264266
client.set_fee_config(&admin, &9000u32, &1000u32);
265267
let seller = Address::generate(&env);
266268

creator-keys/tests/tests/buy_after_fee_config_mutation.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ fn test_buy_execution_applies_updated_protocol_fee() {
2020

2121
let admin = soroban_sdk::Address::generate(&env);
2222
client.set_key_price(&admin, &1000);
23+
client.set_protocol_admin(&admin, &admin);
2324
// Original fee config: 90/10 split
2425
client.set_fee_config(&admin, &9000, &1000);
2526

@@ -63,6 +64,7 @@ fn test_buy_execution_fee_matches_quote_after_fee_config_update() {
6364

6465
let admin = soroban_sdk::Address::generate(&env);
6566
client.set_key_price(&admin, &500);
67+
client.set_protocol_admin(&admin, &admin);
6668
client.set_fee_config(&admin, &9000, &1000);
6769

6870
let creator = register_test_creator(&env, &client, "bob");

creator-keys/tests/ttl_extension_on_buy.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -221,6 +221,8 @@ fn admin_fee_update_extends_instance_ttl() {
221221
let (client, contract_id, _) = setup(&env);
222222
let admin = Address::generate(&env);
223223

224+
client.set_protocol_admin(&admin, &admin);
225+
224226
// Set initial fee config
225227
client.set_fee_config(&admin, &5000, &5000);
226228

0 commit comments

Comments
 (0)