Skip to content

Commit

Permalink
fixes vrf address showing as owner in UpgradesAvailable event (#15)
Browse files Browse the repository at this point in the history
-  Also changes `name` in AdventurerMetadata from u128 to felt252 to accommodate longer player names
  • Loading branch information
loothero authored May 28, 2024
1 parent bc31b5d commit 3df4d09
Show file tree
Hide file tree
Showing 3 changed files with 41 additions and 32 deletions.
6 changes: 3 additions & 3 deletions contracts/adventurer/src/adventurer_meta.cairo
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ struct AdventurerMetadata {
start_entropy: u64, // 64 bits in storage
starting_stats: Stats, // 24 bits in storage
interface_camel: bool, // 1 bit bool in storage
name: u128, // 162 bits in storage
name: felt252, // 162 bits in storage
}

impl PackingAdventurerMetadata of StorePacking<AdventurerMetadata, felt252> {
Expand Down Expand Up @@ -84,7 +84,7 @@ impl ImplAdventurerMetadata of IAdventurerMetadata {
// @param name: The name of the adventurer
// @param interface_camel: Whether the players account is using a camelcase interface
// @return: The newly created AdventurerMetadata struct
fn new(name: u128, interface_camel: bool) -> AdventurerMetadata {
fn new(name: felt252, interface_camel: bool) -> AdventurerMetadata {
AdventurerMetadata {
name, start_entropy: 0, starting_stats: ImplStats::new(), interface_camel
}
Expand Down Expand Up @@ -121,7 +121,7 @@ const U64_MAX: u64 = 18446744073709551615;
fn test_adventurer_metadata_packing() {
// max value case
let max_u64 = 0xffffffffffffffff;
let max_name_length = 'abcdefghijklmnop';
let max_name_length = 'abcdefghijklmnopqr';

let max_starting_stats = Stats {
strength: 15,
Expand Down
2 changes: 1 addition & 1 deletion contracts/game/src/game/interfaces.cairo
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ trait IGame<TContractState> {
ref self: TContractState,
client_reward_address: ContractAddress,
weapon: u8,
name: u128,
name: felt252,
golden_token_id: u256,
interface_camel: bool,
vrf_fee_limit: u128
Expand Down
65 changes: 37 additions & 28 deletions contracts/game/src/lib.cairo
Original file line number Diff line number Diff line change
Expand Up @@ -238,7 +238,10 @@ mod Game {
}
} else if adventurer_level > 2 {
let adventurer_state = AdventurerState {
owner: get_caller_address(), adventurer_id, adventurer_entropy, adventurer
owner: self._owner.read(adventurer_id),
adventurer_id,
adventurer_entropy,
adventurer
};

// get market items based on new adventurer entropy
Expand All @@ -263,7 +266,7 @@ mod Game {
ref self: ContractState,
client_reward_address: ContractAddress,
weapon: u8,
name: u128,
name: felt252,
golden_token_id: u256,
interface_camel: bool,
vrf_fee_limit: u128
Expand Down Expand Up @@ -828,7 +831,7 @@ mod Game {
self._leaderboard.read()
}
fn owner_of(self: @ContractState, adventurer_id: felt252) -> ContractAddress {
_owner_of(self, adventurer_id)
self._owner.read(adventurer_id)
}
// fn starting_gold(self: @ContractState) -> u16 {
// STARTING_GOLD
Expand Down Expand Up @@ -914,7 +917,7 @@ mod Game {

// create adventurer state for UpgradesAvailable event
let adventurer_state = AdventurerState {
owner: get_caller_address(), adventurer_id, adventurer_entropy, adventurer
owner: self._owner.read(adventurer_id), adventurer_id, adventurer_entropy, adventurer
};
let available_items = _get_items_on_market(
@self, adventurer_entropy, adventurer.xp, adventurer.stat_upgrades_available
Expand Down Expand Up @@ -1111,7 +1114,7 @@ mod Game {
) {
let adventurer_entropy = _get_adventurer_entropy(@self, adventurer_id);
let adventurer_state = AdventurerState {
owner: _owner_of(@self, adventurer_id), adventurer_id, adventurer_entropy, adventurer
owner: self._owner.read(adventurer_id), adventurer_id, adventurer_entropy, adventurer
};

let death_details = DeathDetails {
Expand Down Expand Up @@ -1293,7 +1296,11 @@ mod Game {
}

fn _start_game(
ref self: ContractState, weapon: u8, name: u128, interface_camel: bool, vrf_fee_limit: u128
ref self: ContractState,
weapon: u8,
name: felt252,
interface_camel: bool,
vrf_fee_limit: u128
) {
// increment adventurer id (first adventurer is id 1)
let adventurer_id = self._game_counter.read() + 1;
Expand Down Expand Up @@ -2331,7 +2338,10 @@ mod Game {
if (previous_level == 1) {
// emit the leveled up event
let adventurer_state = AdventurerState {
owner: get_caller_address(), adventurer_id, adventurer_entropy, adventurer
owner: self._owner.read(adventurer_id),
adventurer_id,
adventurer_entropy,
adventurer
};
__event_AdventurerLeveledUp(ref self, adventurer_state, previous_level, new_level);

Expand Down Expand Up @@ -2368,16 +2378,15 @@ mod Game {
// get new entropy
let adventurer_entropy = _get_adventurer_entropy(@self, adventurer_id);
let adventurer_state = AdventurerState {
owner: get_caller_address(), adventurer_id, adventurer_entropy, adventurer
owner: self._owner.read(adventurer_id),
adventurer_id,
adventurer_entropy,
adventurer
};
// emit the leveled up event
__event_AdventurerLeveledUp(ref self, adventurer_state, previous_level, new_level);
}
}
#[inline(always)]
fn _owner_of(self: @ContractState, adventurer_id: felt252) -> ContractAddress {
self._owner.read(adventurer_id)
}
fn _assert_ownership(self: @ContractState, adventurer_id: felt252) {
assert(self._owner.read(adventurer_id) == get_caller_address(), messages::NOT_OWNER);
}
Expand Down Expand Up @@ -2897,7 +2906,7 @@ mod Game {
) {
let adventurer_entropy = _get_adventurer_entropy(@self, adventurer_id);
let adventurer_state = AdventurerState {
owner: get_caller_address(), adventurer_id, adventurer_entropy, adventurer
owner: self._owner.read(adventurer_id), adventurer_id, adventurer_entropy, adventurer
};
let adventurer_state_with_bag = AdventurerStateWithBag { adventurer_state, bag };
self
Expand All @@ -2922,7 +2931,7 @@ mod Game {
) {
let adventurer_entropy = _get_adventurer_entropy(@self, adventurer_id);
let adventurer_state = AdventurerState {
owner: get_caller_address(), adventurer_id, adventurer_entropy, adventurer
owner: self._owner.read(adventurer_id), adventurer_id, adventurer_entropy, adventurer
};

let reveal_block = 0; // TODO: consider removing this
Expand All @@ -2939,7 +2948,7 @@ mod Game {
) {
let adventurer_entropy = _get_adventurer_entropy(@self, adventurer_id);
let adventurer_state = AdventurerState {
owner: get_caller_address(), adventurer_id, adventurer_entropy, adventurer
owner: self._owner.read(adventurer_id), adventurer_id, adventurer_entropy, adventurer
};

let discovery = Discovery { adventurer_state, amount };
Expand All @@ -2959,7 +2968,7 @@ mod Game {
) {
let adventurer_entropy = _get_adventurer_entropy(@self, adventurer_id);
let adventurer_state = AdventurerState {
owner: get_caller_address(), adventurer_id, adventurer_entropy, adventurer
owner: self._owner.read(adventurer_id), adventurer_id, adventurer_entropy, adventurer
};

let obstacle_event = ObstacleEvent { adventurer_state, obstacle_details, };
Expand All @@ -2980,7 +2989,7 @@ mod Game {
) {
let adventurer_entropy = _get_adventurer_entropy(@self, adventurer_id);
let adventurer_state = AdventurerState {
owner: get_caller_address(), adventurer_id, adventurer_entropy, adventurer
owner: self._owner.read(adventurer_id), adventurer_id, adventurer_entropy, adventurer
};

let discovered_beast_event = DiscoveredBeast {
Expand All @@ -2997,7 +3006,7 @@ mod Game {
) {
let adventurer_entropy = _get_adventurer_entropy(@self, adventurer_id);
let adventurer_state = AdventurerState {
owner: get_caller_address(), adventurer_id, adventurer_entropy, adventurer
owner: self._owner.read(adventurer_id), adventurer_id, adventurer_entropy, adventurer
};
self.emit(AttackedBeast { adventurer_state, beast_battle_details });
}
Expand All @@ -3010,7 +3019,7 @@ mod Game {
) {
let adventurer_entropy = _get_adventurer_entropy(@self, adventurer_id);
let adventurer_state = AdventurerState {
owner: get_caller_address(), adventurer_id, adventurer_entropy, adventurer
owner: self._owner.read(adventurer_id), adventurer_id, adventurer_entropy, adventurer
};
self.emit(AttackedByBeast { adventurer_state, beast_battle_details });
}
Expand All @@ -3023,7 +3032,7 @@ mod Game {
) {
let adventurer_entropy = _get_adventurer_entropy(@self, adventurer_id);
let adventurer_state = AdventurerState {
owner: get_caller_address(), adventurer_id, adventurer_entropy, adventurer
owner: self._owner.read(adventurer_id), adventurer_id, adventurer_entropy, adventurer
};
self.emit(AmbushedByBeast { adventurer_state, beast_battle_details });
}
Expand All @@ -3042,7 +3051,7 @@ mod Game {
) {
let adventurer_entropy = _get_adventurer_entropy(@self, adventurer_id);
let adventurer_state = AdventurerState {
owner: get_caller_address(), adventurer_id, adventurer_entropy, adventurer
owner: self._owner.read(adventurer_id), adventurer_id, adventurer_entropy, adventurer
};
let slayed_beast_event = SlayedBeast {
adventurer_state,
Expand All @@ -3067,7 +3076,7 @@ mod Game {
) {
let adventurer_entropy = _get_adventurer_entropy(@self, adventurer_id);
let adventurer_state = AdventurerState {
owner: get_caller_address(), adventurer_id, adventurer_entropy, adventurer
owner: self._owner.read(adventurer_id), adventurer_id, adventurer_entropy, adventurer
};
let flee_event = FleeEvent {
adventurer_state, seed, id: beast.id, beast_specs: beast.combat_spec
Expand All @@ -3084,7 +3093,7 @@ mod Game {
) {
let adventurer_entropy = _get_adventurer_entropy(@self, adventurer_id);
let adventurer_state = AdventurerState {
owner: get_caller_address(), adventurer_id, adventurer_entropy, adventurer
owner: self._owner.read(adventurer_id), adventurer_id, adventurer_entropy, adventurer
};
let flee_event = FleeEvent {
adventurer_state, seed, id: beast.id, beast_specs: beast.combat_spec
Expand All @@ -3102,7 +3111,7 @@ mod Game {
) {
let adventurer_entropy = _get_adventurer_entropy(@self, adventurer_id);
let adventurer_state = AdventurerState {
owner: get_caller_address(), adventurer_id, adventurer_entropy, adventurer
owner: self._owner.read(adventurer_id), adventurer_id, adventurer_entropy, adventurer
};
let adventurer_state_with_bag = AdventurerStateWithBag { adventurer_state, bag };
let equipped_items_event = EquippedItems {
Expand All @@ -3120,7 +3129,7 @@ mod Game {
) {
let adventurer_entropy = _get_adventurer_entropy(@self, adventurer_id);
let adventurer_state = AdventurerState {
owner: get_caller_address(), adventurer_id, adventurer_entropy, adventurer
owner: self._owner.read(adventurer_id), adventurer_id, adventurer_entropy, adventurer
};
let adventurer_state_with_bag = AdventurerStateWithBag { adventurer_state, bag };
self.emit(DroppedItems { adventurer_state_with_bag, item_ids });
Expand All @@ -3134,7 +3143,7 @@ mod Game {
) {
let adventurer_entropy = _get_adventurer_entropy(@self, adventurer_id);
let adventurer_state = AdventurerState {
owner: get_caller_address(), adventurer_id, adventurer_entropy, adventurer
owner: self._owner.read(adventurer_id), adventurer_id, adventurer_entropy, adventurer
};
self.emit(ItemsLeveledUp { adventurer_state, items });
}
Expand Down Expand Up @@ -3177,7 +3186,7 @@ mod Game {
) {
let adventurer_entropy = _get_adventurer_entropy(@self, adventurer_id);
let adventurer_state = AdventurerState {
owner: get_caller_address(), adventurer_id, adventurer_entropy, adventurer
owner: self._owner.read(adventurer_id), adventurer_id, adventurer_entropy, adventurer
};
let adventurer_state_with_bag = AdventurerStateWithBag { adventurer_state, bag };
self.emit(PurchasedItems { adventurer_state_with_bag, purchases });
Expand All @@ -3193,7 +3202,7 @@ mod Game {
) {
let adventurer_entropy = _get_adventurer_entropy(@self, adventurer_id);
let adventurer_state = AdventurerState {
owner: get_caller_address(), adventurer_id, adventurer_entropy, adventurer
owner: self._owner.read(adventurer_id), adventurer_id, adventurer_entropy, adventurer
};
self.emit(PurchasedPotions { adventurer_state, quantity, cost, health, });
}
Expand Down

0 comments on commit 3df4d09

Please sign in to comment.