diff --git a/creator-keys/src/lib.rs b/creator-keys/src/lib.rs index a3cecd0..b0bc544 100644 --- a/creator-keys/src/lib.rs +++ b/creator-keys/src/lib.rs @@ -64,6 +64,22 @@ pub mod fee { let creator_amount = total - protocol_amount; (creator_amount, protocol_amount) } + + /// Computes the fee split safely, returning `None` if multiplication or subtraction overflows. + pub fn checked_compute_fee_split( + total: i128, + _creator_bps: u32, + protocol_bps: u32, + ) -> Option<(i128, i128)> { + if total <= 0 { + return Some((0, 0)); + } + let protocol_amount = total + .checked_mul(protocol_bps as i128)? + .checked_div(BPS_MAX as i128)?; + let creator_amount = total.checked_sub(protocol_amount)?; + Some((creator_amount, protocol_amount)) + } } /// Stable, non-optional view of the protocol fee configuration. @@ -152,6 +168,7 @@ pub struct CreatorProfile { pub handle: String, pub supply: u32, pub holder_count: u32, + pub fee_recipient: Address, } /// Reads a creator profile from storage, returning `None` for unregistered creators. @@ -175,27 +192,31 @@ pub fn read_key_balance(env: &Env, creator: &Address) -> u32 { .unwrap_or(0) } -/// Formats a quote response with consistent total amount calculation. +/// Formats a quote response with overflow-safe total amount calculation. /// -/// For buys, total_amount = price + fees. -/// For sells, total_amount = price - fees. -fn format_quote_response( +/// Returns `Err(ContractError::Overflow)` if any addition or subtraction would overflow. +fn checked_format_quote_response( price: i128, creator_fee: i128, protocol_fee: i128, is_buy: bool, -) -> QuoteResponse { +) -> Result { + let fees = creator_fee + .checked_add(protocol_fee) + .ok_or(ContractError::Overflow)?; + let total_amount = if is_buy { - price + creator_fee + protocol_fee + price.checked_add(fees).ok_or(ContractError::Overflow)? } else { - price - creator_fee - protocol_fee + price.checked_sub(fees).ok_or(ContractError::Overflow)? }; - QuoteResponse { + + Ok(QuoteResponse { price, creator_fee, protocol_fee, total_amount, - } + }) } #[contract] @@ -216,10 +237,11 @@ impl CreatorKeysContract { } let profile = CreatorProfile { - creator, + creator: creator.clone(), handle, supply: 0, holder_count: 0, + fee_recipient: creator.clone(), }; env.storage().persistent().set(&key, &profile); @@ -376,6 +398,15 @@ impl CreatorKeysContract { read_creator_profile(&env, &creator).is_some() } + /// Read-only view: returns the creator fee recipient address. + /// + /// Fails with [`ContractError::NotRegistered`] if the creator is not registered. + /// Reuses current creator storage access patterns. + pub fn get_creator_fee_recipient(env: Env, creator: Address) -> Result { + let profile = read_creator_profile(&env, &creator).ok_or(ContractError::NotRegistered)?; + Ok(profile.fee_recipient) + } + pub fn set_fee_config( env: Env, admin: Address, @@ -458,11 +489,8 @@ impl CreatorKeysContract { .persistent() .get(&DataKey::FeeConfig) .ok_or(ContractError::FeeConfigNotSet)?; - Ok(fee::compute_fee_split( - total, - config.creator_bps, - config.protocol_bps, - )) + fee::checked_compute_fee_split(total, config.creator_bps, config.protocol_bps) + .ok_or(ContractError::Overflow) } /// Read-only view: returns the fee configuration for a specific creator. @@ -521,12 +549,7 @@ impl CreatorKeysContract { let (creator_fee, protocol_fee) = Self::compute_fees_for_payment(env.clone(), price)?; - Ok(format_quote_response( - price, - creator_fee, - protocol_fee, - true, - )) + checked_format_quote_response(price, creator_fee, protocol_fee, true) } /// Read-only view: returns a quote for selling a key. @@ -556,12 +579,7 @@ impl CreatorKeysContract { let (creator_fee, protocol_fee) = Self::compute_fees_for_payment(env.clone(), price)?; - Ok(format_quote_response( - price, - creator_fee, - protocol_fee, - false, - )) + checked_format_quote_response(price, creator_fee, protocol_fee, false) } } diff --git a/creator-keys/src/test.rs b/creator-keys/src/test.rs index 0c99b8c..28f84c7 100644 --- a/creator-keys/src/test.rs +++ b/creator-keys/src/test.rs @@ -362,3 +362,71 @@ fn test_get_quote_fails_if_fee_not_set() { let result = client.try_get_buy_quote(&creator); assert_eq!(result, Err(Ok(ContractError::FeeConfigNotSet))); } + +#[test] +fn test_get_buy_quote_fails_if_not_registered() { + let env = Env::default(); + env.mock_all_auths(); + let contract_id = env.register(CreatorKeysContract, ()); + let client = CreatorKeysContractClient::new(&env, &contract_id); + + let admin = Address::generate(&env); + client.set_key_price(&admin, &1000); + + let unregistered_creator = Address::generate(&env); + let result = client.try_get_buy_quote(&unregistered_creator); + assert_eq!(result, Err(Ok(ContractError::NotRegistered))); +} + +#[test] +fn test_get_creator_fee_recipient_success() { + let env = Env::default(); + env.mock_all_auths(); + let contract_id = env.register(CreatorKeysContract, ()); + let client = CreatorKeysContractClient::new(&env, &contract_id); + + let creator = Address::generate(&env); + let handle = String::from_str(&env, "alice"); + client.register_creator(&creator, &handle); + + let recipient = client.get_creator_fee_recipient(&creator); + assert_eq!(recipient, creator); +} + +#[test] +fn test_get_creator_fee_recipient_fails_if_not_registered() { + let env = Env::default(); + let contract_id = env.register(CreatorKeysContract, ()); + let client = CreatorKeysContractClient::new(&env, &contract_id); + + let unregistered_creator = Address::generate(&env); + let result = client.try_get_creator_fee_recipient(&unregistered_creator); + assert_eq!(result, Err(Ok(ContractError::NotRegistered))); +} + +#[test] +fn test_quote_overflow_guards() { + let env = Env::default(); + env.mock_all_auths(); + let contract_id = env.register(CreatorKeysContract, ()); + let client = CreatorKeysContractClient::new(&env, &contract_id); + + let admin = Address::generate(&env); + // Set a massive price that will cause overflow when fees are added + let max_price = i128::MAX - 1; + client.set_key_price(&admin, &max_price); + client.set_fee_config(&admin, &9000, &1000); // 90/10 split + + let creator = Address::generate(&env); + let handle = String::from_str(&env, "alice"); + client.register_creator(&creator, &handle); + + // Buy quote: price + fees (will overflow) + let result = client.try_get_buy_quote(&creator); + assert_eq!(result, Err(Ok(ContractError::Overflow))); + + // Sell quote: price - fees (won't overflow if price is large, but let's test sub overflow) + // Actually price - fees is safe if price > fees. + // To test subtraction overflow, we need fees > price. + // Price must be positive per contract constraint. +} diff --git a/creator-keys/test_snapshots/test/test_buy_key_insufficient_payment.1.json b/creator-keys/test_snapshots/test/test_buy_key_insufficient_payment.1.json index 6a08d71..3fbbbf8 100644 --- a/creator-keys/test_snapshots/test/test_buy_key_insufficient_payment.1.json +++ b/creator-keys/test_snapshots/test/test_buy_key_insufficient_payment.1.json @@ -109,6 +109,14 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" } }, + { + "key": { + "symbol": "fee_recipient" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + }, { "key": { "symbol": "handle" @@ -117,6 +125,14 @@ "string": "alice" } }, + { + "key": { + "symbol": "holder_count" + }, + "val": { + "u32": 0 + } + }, { "key": { "symbol": "supply" diff --git a/creator-keys/test_snapshots/test/test_buy_key_success.1.json b/creator-keys/test_snapshots/test/test_buy_key_success.1.json index 69804bf..d79e29e 100644 --- a/creator-keys/test_snapshots/test/test_buy_key_success.1.json +++ b/creator-keys/test_snapshots/test/test_buy_key_success.1.json @@ -137,6 +137,14 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" } }, + { + "key": { + "symbol": "fee_recipient" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + }, { "key": { "symbol": "handle" @@ -145,6 +153,14 @@ "string": "alice" } }, + { + "key": { + "symbol": "holder_count" + }, + "val": { + "u32": 1 + } + }, { "key": { "symbol": "supply" diff --git a/creator-keys/test_snapshots/test/test_duplicate_registration_fails.1.json b/creator-keys/test_snapshots/test/test_duplicate_registration_fails.1.json index 92148f4..61ac89a 100644 --- a/creator-keys/test_snapshots/test/test_duplicate_registration_fails.1.json +++ b/creator-keys/test_snapshots/test/test_duplicate_registration_fails.1.json @@ -84,6 +84,14 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" } }, + { + "key": { + "symbol": "fee_recipient" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, { "key": { "symbol": "handle" @@ -92,6 +100,14 @@ "string": "alice" } }, + { + "key": { + "symbol": "holder_count" + }, + "val": { + "u32": 0 + } + }, { "key": { "symbol": "supply" diff --git a/creator-keys/test_snapshots/test/test_get_buy_quote_fails_if_not_registered.1.json b/creator-keys/test_snapshots/test/test_get_buy_quote_fails_if_not_registered.1.json new file mode 100644 index 0000000..3fb282f --- /dev/null +++ b/creator-keys/test_snapshots/test/test_get_buy_quote_fails_if_not_registered.1.json @@ -0,0 +1,176 @@ +{ + "generators": { + "address": 3, + "nonce": 0 + }, + "auth": [ + [], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "set_key_price", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "i128": { + "hi": 0, + "lo": 1000 + } + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [] + ], + "ledger": { + "protocol_version": 22, + "sequence_number": 0, + "timestamp": 0, + "network_id": "0000000000000000000000000000000000000000000000000000000000000000", + "base_reserve": 0, + "min_persistent_entry_ttl": 4096, + "min_temp_entry_ttl": 16, + "max_entry_ttl": 6312000, + "ledger_entries": [ + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "KeyPrice" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "KeyPrice" + } + ] + }, + "durability": "persistent", + "val": { + "i128": { + "hi": 0, + "lo": 1000 + } + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": { + "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "storage": null + } + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 801925984706572462 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 801925984706572462 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_code": { + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_code": { + "ext": "v0", + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "code": "" + } + }, + "ext": "v0" + }, + 4095 + ] + ] + ] + }, + "events": [] +} \ No newline at end of file diff --git a/creator-keys/test_snapshots/test/test_get_buy_quote_success.1.json b/creator-keys/test_snapshots/test/test_get_buy_quote_success.1.json index 24c230a..c12eb38 100644 --- a/creator-keys/test_snapshots/test/test_get_buy_quote_success.1.json +++ b/creator-keys/test_snapshots/test/test_get_buy_quote_success.1.json @@ -134,6 +134,14 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" } }, + { + "key": { + "symbol": "fee_recipient" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + }, { "key": { "symbol": "handle" @@ -142,6 +150,14 @@ "string": "alice" } }, + { + "key": { + "symbol": "holder_count" + }, + "val": { + "u32": 0 + } + }, { "key": { "symbol": "supply" diff --git a/creator-keys/test_snapshots/test/test_get_creator_fee_recipient_fails_if_not_registered.1.json b/creator-keys/test_snapshots/test/test_get_creator_fee_recipient_fails_if_not_registered.1.json new file mode 100644 index 0000000..5655749 --- /dev/null +++ b/creator-keys/test_snapshots/test/test_get_creator_fee_recipient_fails_if_not_registered.1.json @@ -0,0 +1,76 @@ +{ + "generators": { + "address": 2, + "nonce": 0 + }, + "auth": [ + [], + [] + ], + "ledger": { + "protocol_version": 22, + "sequence_number": 0, + "timestamp": 0, + "network_id": "0000000000000000000000000000000000000000000000000000000000000000", + "base_reserve": 0, + "min_persistent_entry_ttl": 4096, + "min_temp_entry_ttl": 16, + "max_entry_ttl": 6312000, + "ledger_entries": [ + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": { + "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "storage": null + } + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_code": { + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_code": { + "ext": "v0", + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "code": "" + } + }, + "ext": "v0" + }, + 4095 + ] + ] + ] + }, + "events": [] +} \ No newline at end of file diff --git a/creator-keys/test_snapshots/test/test_get_creator_fee_recipient_success.1.json b/creator-keys/test_snapshots/test/test_get_creator_fee_recipient_success.1.json new file mode 100644 index 0000000..61ac89a --- /dev/null +++ b/creator-keys/test_snapshots/test/test_get_creator_fee_recipient_success.1.json @@ -0,0 +1,217 @@ +{ + "generators": { + "address": 2, + "nonce": 0 + }, + "auth": [ + [], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "register_creator", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "string": "alice" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [] + ], + "ledger": { + "protocol_version": 22, + "sequence_number": 0, + "timestamp": 0, + "network_id": "0000000000000000000000000000000000000000000000000000000000000000", + "base_reserve": 0, + "min_persistent_entry_ttl": 4096, + "min_temp_entry_ttl": 16, + "max_entry_ttl": 6312000, + "ledger_entries": [ + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Creator" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Creator" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "creator" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "fee_recipient" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "symbol": "handle" + }, + "val": { + "string": "alice" + } + }, + { + "key": { + "symbol": "holder_count" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "supply" + }, + "val": { + "u32": 0 + } + } + ] + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": { + "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "storage": null + } + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 801925984706572462 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 801925984706572462 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_code": { + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_code": { + "ext": "v0", + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "code": "" + } + }, + "ext": "v0" + }, + 4095 + ] + ] + ] + }, + "events": [] +} \ No newline at end of file diff --git a/creator-keys/test_snapshots/test/test_get_creator_holder_count_counts_unique_holders.1.json b/creator-keys/test_snapshots/test/test_get_creator_holder_count_counts_unique_holders.1.json new file mode 100644 index 0000000..02f10f2 --- /dev/null +++ b/creator-keys/test_snapshots/test/test_get_creator_holder_count_counts_unique_holders.1.json @@ -0,0 +1,603 @@ +{ + "generators": { + "address": 5, + "nonce": 0 + }, + "auth": [ + [], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "set_key_price", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "i128": { + "hi": 0, + "lo": 100 + } + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "register_creator", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + }, + { + "string": "alice" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "buy_key", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "i128": { + "hi": 0, + "lo": 100 + } + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "buy_key", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "i128": { + "hi": 0, + "lo": 100 + } + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "buy_key", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" + }, + { + "i128": { + "hi": 0, + "lo": 100 + } + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [], + [] + ], + "ledger": { + "protocol_version": 22, + "sequence_number": 0, + "timestamp": 0, + "network_id": "0000000000000000000000000000000000000000000000000000000000000000", + "base_reserve": 0, + "min_persistent_entry_ttl": 4096, + "min_temp_entry_ttl": 16, + "max_entry_ttl": 6312000, + "ledger_entries": [ + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Creator" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Creator" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "creator" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + }, + { + "key": { + "symbol": "fee_recipient" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + }, + { + "key": { + "symbol": "handle" + }, + "val": { + "string": "alice" + } + }, + { + "key": { + "symbol": "holder_count" + }, + "val": { + "u32": 2 + } + }, + { + "key": { + "symbol": "supply" + }, + "val": { + "u32": 3 + } + } + ] + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "KeyBalance" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "KeyBalance" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + } + ] + }, + "durability": "persistent", + "val": { + "u32": 2 + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "KeyBalance" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "KeyBalance" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" + } + ] + }, + "durability": "persistent", + "val": { + "u32": 1 + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "KeyPrice" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "KeyPrice" + } + ] + }, + "durability": "persistent", + "val": { + "i128": { + "hi": 0, + "lo": 100 + } + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": { + "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "storage": null + } + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 801925984706572462 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 801925984706572462 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + "key": { + "ledger_key_nonce": { + "nonce": 5541220902715666415 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + "key": { + "ledger_key_nonce": { + "nonce": 5541220902715666415 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 1033654523790656264 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 1033654523790656264 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 4837995959683129791 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 4837995959683129791 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM", + "key": { + "ledger_key_nonce": { + "nonce": 2032731177588607455 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM", + "key": { + "ledger_key_nonce": { + "nonce": 2032731177588607455 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_code": { + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_code": { + "ext": "v0", + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "code": "" + } + }, + "ext": "v0" + }, + 4095 + ] + ] + ] + }, + "events": [] +} \ No newline at end of file diff --git a/creator-keys/test_snapshots/test/test_get_key_balance_returns_zero_for_unregistered_wallet.1.json b/creator-keys/test_snapshots/test/test_get_key_balance_returns_zero_for_unregistered_wallet.1.json index 8b92b72..f659b6e 100644 --- a/creator-keys/test_snapshots/test/test_get_key_balance_returns_zero_for_unregistered_wallet.1.json +++ b/creator-keys/test_snapshots/test/test_get_key_balance_returns_zero_for_unregistered_wallet.1.json @@ -84,6 +84,14 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" } }, + { + "key": { + "symbol": "fee_recipient" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, { "key": { "symbol": "handle" @@ -92,6 +100,14 @@ "string": "alice" } }, + { + "key": { + "symbol": "holder_count" + }, + "val": { + "u32": 0 + } + }, { "key": { "symbol": "supply" diff --git a/creator-keys/test_snapshots/test/test_get_quote_fails_if_fee_not_set.1.json b/creator-keys/test_snapshots/test/test_get_quote_fails_if_fee_not_set.1.json index 738da10..d6ba4c9 100644 --- a/creator-keys/test_snapshots/test/test_get_quote_fails_if_fee_not_set.1.json +++ b/creator-keys/test_snapshots/test/test_get_quote_fails_if_fee_not_set.1.json @@ -109,6 +109,14 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" } }, + { + "key": { + "symbol": "fee_recipient" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + }, { "key": { "symbol": "handle" @@ -117,6 +125,14 @@ "string": "alice" } }, + { + "key": { + "symbol": "holder_count" + }, + "val": { + "u32": 0 + } + }, { "key": { "symbol": "supply" diff --git a/creator-keys/test_snapshots/test/test_get_sell_quote_fails_if_insufficient_balance.1.json b/creator-keys/test_snapshots/test/test_get_sell_quote_fails_if_insufficient_balance.1.json index 0656911..e46b311 100644 --- a/creator-keys/test_snapshots/test/test_get_sell_quote_fails_if_insufficient_balance.1.json +++ b/creator-keys/test_snapshots/test/test_get_sell_quote_fails_if_insufficient_balance.1.json @@ -134,6 +134,14 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" } }, + { + "key": { + "symbol": "fee_recipient" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + }, { "key": { "symbol": "handle" @@ -142,6 +150,14 @@ "string": "alice" } }, + { + "key": { + "symbol": "holder_count" + }, + "val": { + "u32": 0 + } + }, { "key": { "symbol": "supply" diff --git a/creator-keys/test_snapshots/test/test_get_sell_quote_success.1.json b/creator-keys/test_snapshots/test/test_get_sell_quote_success.1.json index 6061f87..ff393f5 100644 --- a/creator-keys/test_snapshots/test/test_get_sell_quote_success.1.json +++ b/creator-keys/test_snapshots/test/test_get_sell_quote_success.1.json @@ -162,6 +162,14 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" } }, + { + "key": { + "symbol": "fee_recipient" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + }, { "key": { "symbol": "handle" @@ -170,6 +178,14 @@ "string": "alice" } }, + { + "key": { + "symbol": "holder_count" + }, + "val": { + "u32": 1 + } + }, { "key": { "symbol": "supply" diff --git a/creator-keys/test_snapshots/test/test_quote_overflow_guards.1.json b/creator-keys/test_snapshots/test/test_quote_overflow_guards.1.json new file mode 100644 index 0000000..b277bdd --- /dev/null +++ b/creator-keys/test_snapshots/test/test_quote_overflow_guards.1.json @@ -0,0 +1,431 @@ +{ + "generators": { + "address": 3, + "nonce": 0 + }, + "auth": [ + [], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "set_key_price", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "i128": { + "hi": 9223372036854775807, + "lo": 18446744073709551614 + } + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "set_fee_config", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + }, + { + "u32": 9000 + }, + { + "u32": 1000 + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "register_creator", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + }, + { + "string": "alice" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [] + ], + "ledger": { + "protocol_version": 22, + "sequence_number": 0, + "timestamp": 0, + "network_id": "0000000000000000000000000000000000000000000000000000000000000000", + "base_reserve": 0, + "min_persistent_entry_ttl": 4096, + "min_temp_entry_ttl": 16, + "max_entry_ttl": 6312000, + "ledger_entries": [ + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Creator" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Creator" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "creator" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + }, + { + "key": { + "symbol": "fee_recipient" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + }, + { + "key": { + "symbol": "handle" + }, + "val": { + "string": "alice" + } + }, + { + "key": { + "symbol": "holder_count" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "supply" + }, + "val": { + "u32": 0 + } + } + ] + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "FeeConfig" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "FeeConfig" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "creator_bps" + }, + "val": { + "u32": 9000 + } + }, + { + "key": { + "symbol": "protocol_bps" + }, + "val": { + "u32": 1000 + } + } + ] + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "KeyPrice" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "KeyPrice" + } + ] + }, + "durability": "persistent", + "val": { + "i128": { + "hi": 9223372036854775807, + "lo": 18446744073709551614 + } + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": { + "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "storage": null + } + } + } + }, + "ext": "v0" + }, + 4095 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 801925984706572462 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 801925984706572462 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 5541220902715666415 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 5541220902715666415 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + "key": { + "ledger_key_nonce": { + "nonce": 1033654523790656264 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M", + "key": { + "ledger_key_nonce": { + "nonce": 1033654523790656264 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_code": { + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_code": { + "ext": "v0", + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "code": "" + } + }, + "ext": "v0" + }, + 4095 + ] + ] + ] + }, + "events": [] +} \ No newline at end of file diff --git a/creator-keys/test_snapshots/test/test_register_creator.1.json b/creator-keys/test_snapshots/test/test_register_creator.1.json index 92148f4..61ac89a 100644 --- a/creator-keys/test_snapshots/test/test_register_creator.1.json +++ b/creator-keys/test_snapshots/test/test_register_creator.1.json @@ -84,6 +84,14 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" } }, + { + "key": { + "symbol": "fee_recipient" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, { "key": { "symbol": "handle" @@ -92,6 +100,14 @@ "string": "alice" } }, + { + "key": { + "symbol": "holder_count" + }, + "val": { + "u32": 0 + } + }, { "key": { "symbol": "supply" diff --git a/creator-keys/test_snapshots/test_buy_key_emits_event_with_correct_topics.1.json b/creator-keys/test_snapshots/test_buy_key_emits_event_with_correct_topics.1.json index ad922fc..3beecb0 100644 --- a/creator-keys/test_snapshots/test_buy_key_emits_event_with_correct_topics.1.json +++ b/creator-keys/test_snapshots/test_buy_key_emits_event_with_correct_topics.1.json @@ -136,6 +136,14 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" } }, + { + "key": { + "symbol": "fee_recipient" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + }, { "key": { "symbol": "handle" @@ -144,6 +152,14 @@ "string": "alice" } }, + { + "key": { + "symbol": "holder_count" + }, + "val": { + "u32": 1 + } + }, { "key": { "symbol": "supply" diff --git a/creator-keys/test_snapshots/test_buy_key_event_data_is_new_supply.1.json b/creator-keys/test_snapshots/test_buy_key_event_data_is_new_supply.1.json index e8b5d4b..205918d 100644 --- a/creator-keys/test_snapshots/test_buy_key_event_data_is_new_supply.1.json +++ b/creator-keys/test_snapshots/test_buy_key_event_data_is_new_supply.1.json @@ -164,6 +164,14 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" } }, + { + "key": { + "symbol": "fee_recipient" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + }, { "key": { "symbol": "handle" @@ -172,6 +180,14 @@ "string": "alice" } }, + { + "key": { + "symbol": "holder_count" + }, + "val": { + "u32": 2 + } + }, { "key": { "symbol": "supply" diff --git a/creator-keys/test_snapshots/test_buy_key_event_includes_payment_amount.1.json b/creator-keys/test_snapshots/test_buy_key_event_includes_payment_amount.1.json index 07c2baa..359e55e 100644 --- a/creator-keys/test_snapshots/test_buy_key_event_includes_payment_amount.1.json +++ b/creator-keys/test_snapshots/test_buy_key_event_includes_payment_amount.1.json @@ -136,6 +136,14 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" } }, + { + "key": { + "symbol": "fee_recipient" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + }, { "key": { "symbol": "handle" @@ -144,6 +152,14 @@ "string": "alice" } }, + { + "key": { + "symbol": "holder_count" + }, + "val": { + "u32": 1 + } + }, { "key": { "symbol": "supply" diff --git a/creator-keys/test_snapshots/test_buy_key_event_present_after_purchase.1.json b/creator-keys/test_snapshots/test_buy_key_event_present_after_purchase.1.json index ad922fc..3beecb0 100644 --- a/creator-keys/test_snapshots/test_buy_key_event_present_after_purchase.1.json +++ b/creator-keys/test_snapshots/test_buy_key_event_present_after_purchase.1.json @@ -136,6 +136,14 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" } }, + { + "key": { + "symbol": "fee_recipient" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + }, { "key": { "symbol": "handle" @@ -144,6 +152,14 @@ "string": "alice" } }, + { + "key": { + "symbol": "holder_count" + }, + "val": { + "u32": 1 + } + }, { "key": { "symbol": "supply" diff --git a/creator-keys/test_snapshots/test_buy_key_event_topics_include_creator_and_buyer.1.json b/creator-keys/test_snapshots/test_buy_key_event_topics_include_creator_and_buyer.1.json index 46dbf3e..b20abf4 100644 --- a/creator-keys/test_snapshots/test_buy_key_event_topics_include_creator_and_buyer.1.json +++ b/creator-keys/test_snapshots/test_buy_key_event_topics_include_creator_and_buyer.1.json @@ -136,6 +136,14 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" } }, + { + "key": { + "symbol": "fee_recipient" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + }, { "key": { "symbol": "handle" @@ -144,6 +152,14 @@ "string": "alice" } }, + { + "key": { + "symbol": "holder_count" + }, + "val": { + "u32": 1 + } + }, { "key": { "symbol": "supply" diff --git a/creator-keys/test_snapshots/test_buy_key_insufficient_payment_fails.1.json b/creator-keys/test_snapshots/test_buy_key_insufficient_payment_fails.1.json index 6a08d71..3fbbbf8 100644 --- a/creator-keys/test_snapshots/test_buy_key_insufficient_payment_fails.1.json +++ b/creator-keys/test_snapshots/test_buy_key_insufficient_payment_fails.1.json @@ -109,6 +109,14 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" } }, + { + "key": { + "symbol": "fee_recipient" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + }, { "key": { "symbol": "handle" @@ -117,6 +125,14 @@ "string": "alice" } }, + { + "key": { + "symbol": "holder_count" + }, + "val": { + "u32": 0 + } + }, { "key": { "symbol": "supply" diff --git a/creator-keys/test_snapshots/test_buy_key_negative_payment_fails.1.json b/creator-keys/test_snapshots/test_buy_key_negative_payment_fails.1.json index 6a08d71..3fbbbf8 100644 --- a/creator-keys/test_snapshots/test_buy_key_negative_payment_fails.1.json +++ b/creator-keys/test_snapshots/test_buy_key_negative_payment_fails.1.json @@ -109,6 +109,14 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" } }, + { + "key": { + "symbol": "fee_recipient" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + }, { "key": { "symbol": "handle" @@ -117,6 +125,14 @@ "string": "alice" } }, + { + "key": { + "symbol": "holder_count" + }, + "val": { + "u32": 0 + } + }, { "key": { "symbol": "supply" diff --git a/creator-keys/test_snapshots/test_buy_key_positive_payment_succeeds.1.json b/creator-keys/test_snapshots/test_buy_key_positive_payment_succeeds.1.json index ad922fc..3beecb0 100644 --- a/creator-keys/test_snapshots/test_buy_key_positive_payment_succeeds.1.json +++ b/creator-keys/test_snapshots/test_buy_key_positive_payment_succeeds.1.json @@ -136,6 +136,14 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" } }, + { + "key": { + "symbol": "fee_recipient" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + }, { "key": { "symbol": "handle" @@ -144,6 +152,14 @@ "string": "alice" } }, + { + "key": { + "symbol": "holder_count" + }, + "val": { + "u32": 1 + } + }, { "key": { "symbol": "supply" diff --git a/creator-keys/test_snapshots/test_buy_key_sufficient_payment_succeeds.1.json b/creator-keys/test_snapshots/test_buy_key_sufficient_payment_succeeds.1.json index 69804bf..d79e29e 100644 --- a/creator-keys/test_snapshots/test_buy_key_sufficient_payment_succeeds.1.json +++ b/creator-keys/test_snapshots/test_buy_key_sufficient_payment_succeeds.1.json @@ -137,6 +137,14 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" } }, + { + "key": { + "symbol": "fee_recipient" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + }, { "key": { "symbol": "handle" @@ -145,6 +153,14 @@ "string": "alice" } }, + { + "key": { + "symbol": "holder_count" + }, + "val": { + "u32": 1 + } + }, { "key": { "symbol": "supply" diff --git a/creator-keys/test_snapshots/test_buy_key_zero_payment_fails.1.json b/creator-keys/test_snapshots/test_buy_key_zero_payment_fails.1.json index 6a08d71..3fbbbf8 100644 --- a/creator-keys/test_snapshots/test_buy_key_zero_payment_fails.1.json +++ b/creator-keys/test_snapshots/test_buy_key_zero_payment_fails.1.json @@ -109,6 +109,14 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" } }, + { + "key": { + "symbol": "fee_recipient" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + }, { "key": { "symbol": "handle" @@ -117,6 +125,14 @@ "string": "alice" } }, + { + "key": { + "symbol": "holder_count" + }, + "val": { + "u32": 0 + } + }, { "key": { "symbol": "supply" diff --git a/creator-keys/test_snapshots/test_get_creator_details_registered_returns_correct_data.1.json b/creator-keys/test_snapshots/test_get_creator_details_registered_returns_correct_data.1.json index 92148f4..61ac89a 100644 --- a/creator-keys/test_snapshots/test_get_creator_details_registered_returns_correct_data.1.json +++ b/creator-keys/test_snapshots/test_get_creator_details_registered_returns_correct_data.1.json @@ -84,6 +84,14 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" } }, + { + "key": { + "symbol": "fee_recipient" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, { "key": { "symbol": "handle" @@ -92,6 +100,14 @@ "string": "alice" } }, + { + "key": { + "symbol": "holder_count" + }, + "val": { + "u32": 0 + } + }, { "key": { "symbol": "supply" diff --git a/creator-keys/test_snapshots/test_get_creator_details_updates_after_buy.1.json b/creator-keys/test_snapshots/test_get_creator_details_updates_after_buy.1.json index c884194..97499bf 100644 --- a/creator-keys/test_snapshots/test_get_creator_details_updates_after_buy.1.json +++ b/creator-keys/test_snapshots/test_get_creator_details_updates_after_buy.1.json @@ -137,6 +137,14 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" } }, + { + "key": { + "symbol": "fee_recipient" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + }, { "key": { "symbol": "handle" @@ -145,6 +153,14 @@ "string": "alice" } }, + { + "key": { + "symbol": "holder_count" + }, + "val": { + "u32": 1 + } + }, { "key": { "symbol": "supply" diff --git a/creator-keys/test_snapshots/test_get_creator_fee_config_is_read_only.1.json b/creator-keys/test_snapshots/test_get_creator_fee_config_is_read_only.1.json index 4d5424f..1eba70d 100644 --- a/creator-keys/test_snapshots/test_get_creator_fee_config_is_read_only.1.json +++ b/creator-keys/test_snapshots/test_get_creator_fee_config_is_read_only.1.json @@ -110,6 +110,14 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" } }, + { + "key": { + "symbol": "fee_recipient" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + }, { "key": { "symbol": "handle" @@ -118,6 +126,14 @@ "string": "test_creator" } }, + { + "key": { + "symbol": "holder_count" + }, + "val": { + "u32": 0 + } + }, { "key": { "symbol": "supply" diff --git a/creator-keys/test_snapshots/test_get_creator_fee_config_multiple_creators_independent.1.json b/creator-keys/test_snapshots/test_get_creator_fee_config_multiple_creators_independent.1.json index 2f61070..3e1edef 100644 --- a/creator-keys/test_snapshots/test_get_creator_fee_config_multiple_creators_independent.1.json +++ b/creator-keys/test_snapshots/test_get_creator_fee_config_multiple_creators_independent.1.json @@ -132,6 +132,14 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" } }, + { + "key": { + "symbol": "fee_recipient" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + }, { "key": { "symbol": "handle" @@ -140,6 +148,14 @@ "string": "creator_one" } }, + { + "key": { + "symbol": "holder_count" + }, + "val": { + "u32": 0 + } + }, { "key": { "symbol": "supply" @@ -202,6 +218,14 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" } }, + { + "key": { + "symbol": "fee_recipient" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + } + }, { "key": { "symbol": "handle" @@ -210,6 +234,14 @@ "string": "creator_two" } }, + { + "key": { + "symbol": "holder_count" + }, + "val": { + "u32": 0 + } + }, { "key": { "symbol": "supply" diff --git a/creator-keys/test_snapshots/test_get_creator_fee_config_registered_no_fee_config.1.json b/creator-keys/test_snapshots/test_get_creator_fee_config_registered_no_fee_config.1.json index 02df0ce..d2ee2fc 100644 --- a/creator-keys/test_snapshots/test_get_creator_fee_config_registered_no_fee_config.1.json +++ b/creator-keys/test_snapshots/test_get_creator_fee_config_registered_no_fee_config.1.json @@ -84,6 +84,14 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" } }, + { + "key": { + "symbol": "fee_recipient" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, { "key": { "symbol": "handle" @@ -92,6 +100,14 @@ "string": "test_creator" } }, + { + "key": { + "symbol": "holder_count" + }, + "val": { + "u32": 0 + } + }, { "key": { "symbol": "supply" diff --git a/creator-keys/test_snapshots/test_get_creator_fee_config_registered_with_fee_config.1.json b/creator-keys/test_snapshots/test_get_creator_fee_config_registered_with_fee_config.1.json index f84ee48..8285b79 100644 --- a/creator-keys/test_snapshots/test_get_creator_fee_config_registered_with_fee_config.1.json +++ b/creator-keys/test_snapshots/test_get_creator_fee_config_registered_with_fee_config.1.json @@ -109,6 +109,14 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" } }, + { + "key": { + "symbol": "fee_recipient" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + }, { "key": { "symbol": "handle" @@ -117,6 +125,14 @@ "string": "test_creator" } }, + { + "key": { + "symbol": "holder_count" + }, + "val": { + "u32": 0 + } + }, { "key": { "symbol": "supply" diff --git a/creator-keys/test_snapshots/test_get_creator_fee_config_updates_after_fee_reconfiguration.1.json b/creator-keys/test_snapshots/test_get_creator_fee_config_updates_after_fee_reconfiguration.1.json index 3e6c85e..7141403 100644 --- a/creator-keys/test_snapshots/test_get_creator_fee_config_updates_after_fee_reconfiguration.1.json +++ b/creator-keys/test_snapshots/test_get_creator_fee_config_updates_after_fee_reconfiguration.1.json @@ -135,6 +135,14 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" } }, + { + "key": { + "symbol": "fee_recipient" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + }, { "key": { "symbol": "handle" @@ -143,6 +151,14 @@ "string": "test_creator" } }, + { + "key": { + "symbol": "holder_count" + }, + "val": { + "u32": 0 + } + }, { "key": { "symbol": "supply" diff --git a/creator-keys/test_snapshots/test_get_protocol_state_version_stable_after_state_changes.1.json b/creator-keys/test_snapshots/test_get_protocol_state_version_stable_after_state_changes.1.json index 9644e5b..227cc3c 100644 --- a/creator-keys/test_snapshots/test_get_protocol_state_version_stable_after_state_changes.1.json +++ b/creator-keys/test_snapshots/test_get_protocol_state_version_stable_after_state_changes.1.json @@ -184,6 +184,14 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" } }, + { + "key": { + "symbol": "fee_recipient" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + }, { "key": { "symbol": "handle" @@ -192,6 +200,14 @@ "string": "alice" } }, + { + "key": { + "symbol": "holder_count" + }, + "val": { + "u32": 1 + } + }, { "key": { "symbol": "supply" diff --git a/creator-keys/test_snapshots/test_get_total_key_supply_increments_after_buy.1.json b/creator-keys/test_snapshots/test_get_total_key_supply_increments_after_buy.1.json index ceb67fe..897483d 100644 --- a/creator-keys/test_snapshots/test_get_total_key_supply_increments_after_buy.1.json +++ b/creator-keys/test_snapshots/test_get_total_key_supply_increments_after_buy.1.json @@ -167,6 +167,14 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" } }, + { + "key": { + "symbol": "fee_recipient" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + }, { "key": { "symbol": "handle" @@ -175,6 +183,14 @@ "string": "alice" } }, + { + "key": { + "symbol": "holder_count" + }, + "val": { + "u32": 2 + } + }, { "key": { "symbol": "supply" diff --git a/creator-keys/test_snapshots/test_get_total_key_supply_is_read_only.1.json b/creator-keys/test_snapshots/test_get_total_key_supply_is_read_only.1.json index 6cf90f9..a95a667 100644 --- a/creator-keys/test_snapshots/test_get_total_key_supply_is_read_only.1.json +++ b/creator-keys/test_snapshots/test_get_total_key_supply_is_read_only.1.json @@ -111,6 +111,14 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" } }, + { + "key": { + "symbol": "fee_recipient" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + }, { "key": { "symbol": "handle" @@ -119,6 +127,14 @@ "string": "alice" } }, + { + "key": { + "symbol": "holder_count" + }, + "val": { + "u32": 0 + } + }, { "key": { "symbol": "supply" diff --git a/creator-keys/test_snapshots/test_get_total_key_supply_returns_zero_for_new_creator.1.json b/creator-keys/test_snapshots/test_get_total_key_supply_returns_zero_for_new_creator.1.json index 385839e..fc9f97d 100644 --- a/creator-keys/test_snapshots/test_get_total_key_supply_returns_zero_for_new_creator.1.json +++ b/creator-keys/test_snapshots/test_get_total_key_supply_returns_zero_for_new_creator.1.json @@ -109,6 +109,14 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" } }, + { + "key": { + "symbol": "fee_recipient" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + }, { "key": { "symbol": "handle" @@ -117,6 +125,14 @@ "string": "alice" } }, + { + "key": { + "symbol": "holder_count" + }, + "val": { + "u32": 0 + } + }, { "key": { "symbol": "supply" diff --git a/creator-keys/test_snapshots/test_holder_key_count_view_consistency_with_get_key_balance.1.json b/creator-keys/test_snapshots/test_holder_key_count_view_consistency_with_get_key_balance.1.json index 1546b76..8ae363b 100644 --- a/creator-keys/test_snapshots/test_holder_key_count_view_consistency_with_get_key_balance.1.json +++ b/creator-keys/test_snapshots/test_holder_key_count_view_consistency_with_get_key_balance.1.json @@ -194,6 +194,14 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" } }, + { + "key": { + "symbol": "fee_recipient" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + }, { "key": { "symbol": "handle" @@ -202,6 +210,14 @@ "string": "test" } }, + { + "key": { + "symbol": "holder_count" + }, + "val": { + "u32": 1 + } + }, { "key": { "symbol": "supply" diff --git a/creator-keys/test_snapshots/test_holder_key_count_view_increments_on_buy.1.json b/creator-keys/test_snapshots/test_holder_key_count_view_increments_on_buy.1.json index 2dadcf3..20b67eb 100644 --- a/creator-keys/test_snapshots/test_holder_key_count_view_increments_on_buy.1.json +++ b/creator-keys/test_snapshots/test_holder_key_count_view_increments_on_buy.1.json @@ -167,6 +167,14 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" } }, + { + "key": { + "symbol": "fee_recipient" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + }, { "key": { "symbol": "handle" @@ -175,6 +183,14 @@ "string": "test" } }, + { + "key": { + "symbol": "holder_count" + }, + "val": { + "u32": 1 + } + }, { "key": { "symbol": "supply" diff --git a/creator-keys/test_snapshots/test_holder_key_count_view_multiple_holders.1.json b/creator-keys/test_snapshots/test_holder_key_count_view_multiple_holders.1.json index e41c169..45ca09f 100644 --- a/creator-keys/test_snapshots/test_holder_key_count_view_multiple_holders.1.json +++ b/creator-keys/test_snapshots/test_holder_key_count_view_multiple_holders.1.json @@ -222,6 +222,14 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" } }, + { + "key": { + "symbol": "fee_recipient" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + }, { "key": { "symbol": "handle" @@ -230,6 +238,14 @@ "string": "test" } }, + { + "key": { + "symbol": "holder_count" + }, + "val": { + "u32": 2 + } + }, { "key": { "symbol": "supply" diff --git a/creator-keys/test_snapshots/test_holder_key_count_view_no_state_mutation.1.json b/creator-keys/test_snapshots/test_holder_key_count_view_no_state_mutation.1.json index 5db5388..7fe4f3f 100644 --- a/creator-keys/test_snapshots/test_holder_key_count_view_no_state_mutation.1.json +++ b/creator-keys/test_snapshots/test_holder_key_count_view_no_state_mutation.1.json @@ -167,6 +167,14 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" } }, + { + "key": { + "symbol": "fee_recipient" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + }, { "key": { "symbol": "handle" @@ -175,6 +183,14 @@ "string": "test" } }, + { + "key": { + "symbol": "holder_count" + }, + "val": { + "u32": 1 + } + }, { "key": { "symbol": "supply" diff --git a/creator-keys/test_snapshots/test_holder_key_count_view_registered_creator_unseen_wallet.1.json b/creator-keys/test_snapshots/test_holder_key_count_view_registered_creator_unseen_wallet.1.json index 08a338c..f406606 100644 --- a/creator-keys/test_snapshots/test_holder_key_count_view_registered_creator_unseen_wallet.1.json +++ b/creator-keys/test_snapshots/test_holder_key_count_view_registered_creator_unseen_wallet.1.json @@ -165,6 +165,14 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" } }, + { + "key": { + "symbol": "fee_recipient" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + }, { "key": { "symbol": "handle" @@ -173,6 +181,14 @@ "string": "test" } }, + { + "key": { + "symbol": "holder_count" + }, + "val": { + "u32": 1 + } + }, { "key": { "symbol": "supply" diff --git a/creator-keys/test_snapshots/test_holder_key_count_view_starts_at_zero.1.json b/creator-keys/test_snapshots/test_holder_key_count_view_starts_at_zero.1.json index bf35c4c..2edeb16 100644 --- a/creator-keys/test_snapshots/test_holder_key_count_view_starts_at_zero.1.json +++ b/creator-keys/test_snapshots/test_holder_key_count_view_starts_at_zero.1.json @@ -109,6 +109,14 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" } }, + { + "key": { + "symbol": "fee_recipient" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + }, { "key": { "symbol": "handle" @@ -117,6 +125,14 @@ "string": "test" } }, + { + "key": { + "symbol": "holder_count" + }, + "val": { + "u32": 0 + } + }, { "key": { "symbol": "supply" diff --git a/creator-keys/test_snapshots/test_holder_key_count_view_structure_fields.1.json b/creator-keys/test_snapshots/test_holder_key_count_view_structure_fields.1.json index 49752df..b7c6a47 100644 --- a/creator-keys/test_snapshots/test_holder_key_count_view_structure_fields.1.json +++ b/creator-keys/test_snapshots/test_holder_key_count_view_structure_fields.1.json @@ -137,6 +137,14 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" } }, + { + "key": { + "symbol": "fee_recipient" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + }, { "key": { "symbol": "handle" @@ -145,6 +153,14 @@ "string": "test" } }, + { + "key": { + "symbol": "holder_count" + }, + "val": { + "u32": 1 + } + }, { "key": { "symbol": "supply" diff --git a/creator-keys/test_snapshots/test_holder_key_count_view_zero_keys_different_creators.1.json b/creator-keys/test_snapshots/test_holder_key_count_view_zero_keys_different_creators.1.json index f529413..28ca0e5 100644 --- a/creator-keys/test_snapshots/test_holder_key_count_view_zero_keys_different_creators.1.json +++ b/creator-keys/test_snapshots/test_holder_key_count_view_zero_keys_different_creators.1.json @@ -188,6 +188,14 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" } }, + { + "key": { + "symbol": "fee_recipient" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + }, { "key": { "symbol": "handle" @@ -196,6 +204,14 @@ "string": "alice" } }, + { + "key": { + "symbol": "holder_count" + }, + "val": { + "u32": 1 + } + }, { "key": { "symbol": "supply" @@ -258,6 +274,14 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" } }, + { + "key": { + "symbol": "fee_recipient" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + } + }, { "key": { "symbol": "handle" @@ -266,6 +290,14 @@ "string": "bob" } }, + { + "key": { + "symbol": "holder_count" + }, + "val": { + "u32": 0 + } + }, { "key": { "symbol": "supply" diff --git a/creator-keys/test_snapshots/test_is_creator_registered_different_creators_independent.1.json b/creator-keys/test_snapshots/test_is_creator_registered_different_creators_independent.1.json index 9f1ba41..f683210 100644 --- a/creator-keys/test_snapshots/test_is_creator_registered_different_creators_independent.1.json +++ b/creator-keys/test_snapshots/test_is_creator_registered_different_creators_independent.1.json @@ -85,6 +85,14 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" } }, + { + "key": { + "symbol": "fee_recipient" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, { "key": { "symbol": "handle" @@ -93,6 +101,14 @@ "string": "alice" } }, + { + "key": { + "symbol": "holder_count" + }, + "val": { + "u32": 0 + } + }, { "key": { "symbol": "supply" diff --git a/creator-keys/test_snapshots/test_is_creator_registered_is_read_only.1.json b/creator-keys/test_snapshots/test_is_creator_registered_is_read_only.1.json index 3b65cf1..15dd524 100644 --- a/creator-keys/test_snapshots/test_is_creator_registered_is_read_only.1.json +++ b/creator-keys/test_snapshots/test_is_creator_registered_is_read_only.1.json @@ -86,6 +86,14 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" } }, + { + "key": { + "symbol": "fee_recipient" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, { "key": { "symbol": "handle" @@ -94,6 +102,14 @@ "string": "alice" } }, + { + "key": { + "symbol": "holder_count" + }, + "val": { + "u32": 0 + } + }, { "key": { "symbol": "supply" diff --git a/creator-keys/test_snapshots/test_is_creator_registered_returns_true_after_registration.1.json b/creator-keys/test_snapshots/test_is_creator_registered_returns_true_after_registration.1.json index 92148f4..61ac89a 100644 --- a/creator-keys/test_snapshots/test_is_creator_registered_returns_true_after_registration.1.json +++ b/creator-keys/test_snapshots/test_is_creator_registered_returns_true_after_registration.1.json @@ -84,6 +84,14 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" } }, + { + "key": { + "symbol": "fee_recipient" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, { "key": { "symbol": "handle" @@ -92,6 +100,14 @@ "string": "alice" } }, + { + "key": { + "symbol": "holder_count" + }, + "val": { + "u32": 0 + } + }, { "key": { "symbol": "supply" diff --git a/creator-keys/test_snapshots/test_key_balance_increments_on_buy.1.json b/creator-keys/test_snapshots/test_key_balance_increments_on_buy.1.json index 27ace6f..5a7f462 100644 --- a/creator-keys/test_snapshots/test_key_balance_increments_on_buy.1.json +++ b/creator-keys/test_snapshots/test_key_balance_increments_on_buy.1.json @@ -167,6 +167,14 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" } }, + { + "key": { + "symbol": "fee_recipient" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + }, { "key": { "symbol": "handle" @@ -175,6 +183,14 @@ "string": "alice" } }, + { + "key": { + "symbol": "holder_count" + }, + "val": { + "u32": 1 + } + }, { "key": { "symbol": "supply" diff --git a/creator-keys/test_snapshots/test_key_balance_is_per_buyer.1.json b/creator-keys/test_snapshots/test_key_balance_is_per_buyer.1.json index 791f40d..02f10f2 100644 --- a/creator-keys/test_snapshots/test_key_balance_is_per_buyer.1.json +++ b/creator-keys/test_snapshots/test_key_balance_is_per_buyer.1.json @@ -194,6 +194,14 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" } }, + { + "key": { + "symbol": "fee_recipient" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + }, { "key": { "symbol": "handle" @@ -202,6 +210,14 @@ "string": "alice" } }, + { + "key": { + "symbol": "holder_count" + }, + "val": { + "u32": 2 + } + }, { "key": { "symbol": "supply" diff --git a/creator-keys/test_snapshots/test_key_balance_is_per_creator.1.json b/creator-keys/test_snapshots/test_key_balance_is_per_creator.1.json index 56f9585..13bd265 100644 --- a/creator-keys/test_snapshots/test_key_balance_is_per_creator.1.json +++ b/creator-keys/test_snapshots/test_key_balance_is_per_creator.1.json @@ -160,6 +160,14 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" } }, + { + "key": { + "symbol": "fee_recipient" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + }, { "key": { "symbol": "handle" @@ -168,6 +176,14 @@ "string": "alice" } }, + { + "key": { + "symbol": "holder_count" + }, + "val": { + "u32": 1 + } + }, { "key": { "symbol": "supply" @@ -230,6 +246,14 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" } }, + { + "key": { + "symbol": "fee_recipient" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + } + }, { "key": { "symbol": "handle" @@ -238,6 +262,14 @@ "string": "bob" } }, + { + "key": { + "symbol": "holder_count" + }, + "val": { + "u32": 0 + } + }, { "key": { "symbol": "supply" diff --git a/creator-keys/test_snapshots/test_key_balance_zero_for_registered_creator_and_unseen_wallet.1.json b/creator-keys/test_snapshots/test_key_balance_zero_for_registered_creator_and_unseen_wallet.1.json index 6c1ecb0..a3f8c6c 100644 --- a/creator-keys/test_snapshots/test_key_balance_zero_for_registered_creator_and_unseen_wallet.1.json +++ b/creator-keys/test_snapshots/test_key_balance_zero_for_registered_creator_and_unseen_wallet.1.json @@ -137,6 +137,14 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" } }, + { + "key": { + "symbol": "fee_recipient" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + }, { "key": { "symbol": "handle" @@ -145,6 +153,14 @@ "string": "alice" } }, + { + "key": { + "symbol": "holder_count" + }, + "val": { + "u32": 1 + } + }, { "key": { "symbol": "supply" diff --git a/creator-keys/test_snapshots/test_key_balance_zero_for_unregistered_creator_even_when_other_balances_exist.1.json b/creator-keys/test_snapshots/test_key_balance_zero_for_unregistered_creator_even_when_other_balances_exist.1.json index 3707e1d..2338c0e 100644 --- a/creator-keys/test_snapshots/test_key_balance_zero_for_unregistered_creator_even_when_other_balances_exist.1.json +++ b/creator-keys/test_snapshots/test_key_balance_zero_for_unregistered_creator_even_when_other_balances_exist.1.json @@ -137,6 +137,14 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" } }, + { + "key": { + "symbol": "fee_recipient" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + }, { "key": { "symbol": "handle" @@ -145,6 +153,14 @@ "string": "alice" } }, + { + "key": { + "symbol": "holder_count" + }, + "val": { + "u32": 1 + } + }, { "key": { "symbol": "supply" diff --git a/creator-keys/test_snapshots/test_register_creator_different_addresses_succeeds.1.json b/creator-keys/test_snapshots/test_register_creator_different_addresses_succeeds.1.json index 7d59d13..55b2977 100644 --- a/creator-keys/test_snapshots/test_register_creator_different_addresses_succeeds.1.json +++ b/creator-keys/test_snapshots/test_register_creator_different_addresses_succeeds.1.json @@ -107,6 +107,14 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" } }, + { + "key": { + "symbol": "fee_recipient" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, { "key": { "symbol": "handle" @@ -115,6 +123,14 @@ "string": "alice" } }, + { + "key": { + "symbol": "holder_count" + }, + "val": { + "u32": 0 + } + }, { "key": { "symbol": "supply" @@ -177,6 +193,14 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" } }, + { + "key": { + "symbol": "fee_recipient" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + }, { "key": { "symbol": "handle" @@ -185,6 +209,14 @@ "string": "bob" } }, + { + "key": { + "symbol": "holder_count" + }, + "val": { + "u32": 0 + } + }, { "key": { "symbol": "supply" diff --git a/creator-keys/test_snapshots/test_register_creator_duplicate_different_handle_fails.1.json b/creator-keys/test_snapshots/test_register_creator_duplicate_different_handle_fails.1.json index 92148f4..61ac89a 100644 --- a/creator-keys/test_snapshots/test_register_creator_duplicate_different_handle_fails.1.json +++ b/creator-keys/test_snapshots/test_register_creator_duplicate_different_handle_fails.1.json @@ -84,6 +84,14 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" } }, + { + "key": { + "symbol": "fee_recipient" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, { "key": { "symbol": "handle" @@ -92,6 +100,14 @@ "string": "alice" } }, + { + "key": { + "symbol": "holder_count" + }, + "val": { + "u32": 0 + } + }, { "key": { "symbol": "supply" diff --git a/creator-keys/test_snapshots/test_register_creator_duplicate_fails.1.json b/creator-keys/test_snapshots/test_register_creator_duplicate_fails.1.json index 92148f4..61ac89a 100644 --- a/creator-keys/test_snapshots/test_register_creator_duplicate_fails.1.json +++ b/creator-keys/test_snapshots/test_register_creator_duplicate_fails.1.json @@ -84,6 +84,14 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" } }, + { + "key": { + "symbol": "fee_recipient" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, { "key": { "symbol": "handle" @@ -92,6 +100,14 @@ "string": "alice" } }, + { + "key": { + "symbol": "holder_count" + }, + "val": { + "u32": 0 + } + }, { "key": { "symbol": "supply" diff --git a/creator-keys/test_snapshots/test_register_creator_emits_event.1.json b/creator-keys/test_snapshots/test_register_creator_emits_event.1.json index c0e570e..26bfd01 100644 --- a/creator-keys/test_snapshots/test_register_creator_emits_event.1.json +++ b/creator-keys/test_snapshots/test_register_creator_emits_event.1.json @@ -108,6 +108,14 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" } }, + { + "key": { + "symbol": "fee_recipient" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + }, { "key": { "symbol": "handle" @@ -116,6 +124,14 @@ "string": "alice" } }, + { + "key": { + "symbol": "holder_count" + }, + "val": { + "u32": 0 + } + }, { "key": { "symbol": "supply" diff --git a/creator-keys/test_snapshots/test_register_creator_event_fires_once.1.json b/creator-keys/test_snapshots/test_register_creator_event_fires_once.1.json index 478d8d6..84821ce 100644 --- a/creator-keys/test_snapshots/test_register_creator_event_fires_once.1.json +++ b/creator-keys/test_snapshots/test_register_creator_event_fires_once.1.json @@ -108,6 +108,14 @@ "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" } }, + { + "key": { + "symbol": "fee_recipient" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHK3M" + } + }, { "key": { "symbol": "handle" @@ -116,6 +124,14 @@ "string": "bob" } }, + { + "key": { + "symbol": "holder_count" + }, + "val": { + "u32": 0 + } + }, { "key": { "symbol": "supply"