diff --git a/contracts/examples/crypto-zombies/src/kitty_obj.rs b/contracts/examples/crypto-zombies/src/kitty_obj.rs index acdc23cfca..5ba10f51e5 100644 --- a/contracts/examples/crypto-zombies/src/kitty_obj.rs +++ b/contracts/examples/crypto-zombies/src/kitty_obj.rs @@ -1,6 +1,6 @@ use multiversx_sc::derive_imports::*; - -#[derive(NestedEncode, NestedDecode, TopEncode, TopDecode, TypeAbi)] +#[type_abi] +#[derive(NestedEncode, NestedDecode, TopEncode, TopDecode)] pub struct Kitty { pub genes: KittyGenes, pub birth_time: u64, // timestamp @@ -12,14 +12,16 @@ pub struct Kitty { pub generation: u16, // max(sire_gen, matron_gen) + 1. Generation also influences cooldown. } -#[derive(NestedEncode, NestedDecode, TopEncode, TopDecode, TypeAbi)] +#[type_abi] +#[derive(NestedEncode, NestedDecode, TopEncode, TopDecode)] pub struct KittyGenes { pub fur_color: Color, pub eye_color: Color, pub meow_power: u8, // the higher the value, the louder the cat } -#[derive(NestedEncode, NestedDecode, TopEncode, TopDecode, TypeAbi)] +#[type_abi] +#[derive(NestedEncode, NestedDecode, TopEncode, TopDecode)] pub struct Color { pub r: u8, pub g: u8, @@ -28,13 +30,13 @@ pub struct Color { impl KittyGenes { pub fn get_as_u64(&self) -> u64 { - (self.fur_color.as_u64() << 12 | self.eye_color.as_u64()) << 4 + (self.fur_color.as_u64() << 24 | self.eye_color.as_u64()) << 8 | self.meow_power.to_be() as u64 } } impl Color { pub fn as_u64(&self) -> u64 { - ((self.r.to_be() as u64) << 4 | self.r.to_be() as u64) << 4 | self.r.to_be() as u64 + ((self.r.to_be() as u64) << 8 | self.r.to_be() as u64) << 8 | self.r.to_be() as u64 } } diff --git a/contracts/examples/crypto-zombies/src/proxy_crypto_zombies.rs b/contracts/examples/crypto-zombies/src/proxy_crypto_zombies.rs index 561563132c..2a35082180 100644 --- a/contracts/examples/crypto-zombies/src/proxy_crypto_zombies.rs +++ b/contracts/examples/crypto-zombies/src/proxy_crypto_zombies.rs @@ -154,12 +154,12 @@ where .original_result() } - pub fn zombies_count( + pub fn zombie_last_index( self, ) -> TxTypedCall { self.wrapped_tx .payment(NotPayable) - .raw_call("zombies_count") + .raw_call("zombie_last_index") .original_result() } diff --git a/contracts/examples/crypto-zombies/src/storage.rs b/contracts/examples/crypto-zombies/src/storage.rs index 608456b688..6670547064 100644 --- a/contracts/examples/crypto-zombies/src/storage.rs +++ b/contracts/examples/crypto-zombies/src/storage.rs @@ -5,39 +5,39 @@ use crate::zombie::Zombie; #[multiversx_sc::module] pub trait Storage { #[view] - #[storage_mapper("dna_digits")] + #[storage_mapper("dnaDigits")] fn dna_digits(&self) -> SingleValueMapper; #[view] - #[storage_mapper("zombies_count")] - fn zombies_count(&self) -> SingleValueMapper; + #[storage_mapper("zombieLastIndex")] + fn zombie_last_index(&self) -> SingleValueMapper; #[view] #[storage_mapper("zombies")] fn zombies(&self, id: &usize) -> SingleValueMapper>; #[view] - #[storage_mapper("zombie_owner")] + #[storage_mapper("zombieOwner")] fn zombie_owner(&self, id: &usize) -> SingleValueMapper; #[view] - #[storage_mapper("crypto_kitties_sc_address")] + #[storage_mapper("cryptoKittiesScAddress")] fn crypto_kitties_sc_address(&self) -> SingleValueMapper; #[view] - #[storage_mapper("cooldown_time")] + #[storage_mapper("cooldownTime")] fn cooldown_time(&self) -> SingleValueMapper; #[view] - #[storage_mapper("owned_zombies")] + #[storage_mapper("ownedZombies")] fn owned_zombies(&self, owner: &ManagedAddress) -> UnorderedSetMapper; - #[storage_mapper("attack_victory_probability")] + #[storage_mapper("attackVictoryProbability")] fn attack_victory_probability(&self) -> SingleValueMapper; - #[storage_mapper("level_up_fee")] + #[storage_mapper("levelUpFee")] fn level_up_fee(&self) -> SingleValueMapper; - #[storage_mapper("collected_fees")] + #[storage_mapper("collectedFees")] fn collected_fees(&self) -> SingleValueMapper; } diff --git a/contracts/examples/crypto-zombies/src/zombie_factory.rs b/contracts/examples/crypto-zombies/src/zombie_factory.rs index 3ee8339b9c..996c339e82 100644 --- a/contracts/examples/crypto-zombies/src/zombie_factory.rs +++ b/contracts/examples/crypto-zombies/src/zombie_factory.rs @@ -5,7 +5,7 @@ use crate::{storage, zombie::Zombie}; #[multiversx_sc::module] pub trait ZombieFactory: storage::Storage { fn create_zombie(&self, owner: ManagedAddress, name: ManagedBuffer, dna: u64) { - self.zombies_count().update(|id| { + self.zombie_last_index().update(|id| { self.new_zombie_event(*id, &name, dna); self.zombies(id).set(Zombie { name, @@ -40,7 +40,7 @@ pub trait ZombieFactory: storage::Storage { self.create_zombie(caller, name, rand_dna); } - #[event("new_zombie_event")] + #[event("newZombieEvent")] fn new_zombie_event( &self, #[indexed] zombie_id: usize, diff --git a/contracts/examples/crypto-zombies/src/zombie_feeding.rs b/contracts/examples/crypto-zombies/src/zombie_feeding.rs index f98e48452b..8061e5f7f6 100644 --- a/contracts/examples/crypto-zombies/src/zombie_feeding.rs +++ b/contracts/examples/crypto-zombies/src/zombie_feeding.rs @@ -1,6 +1,6 @@ use multiversx_sc::imports::*; -use crate::{kitty_ownership_proxy, storage, zombie_factory, zombie_helper}; +use crate::{kitty_obj::Kitty, kitty_ownership_proxy, storage, zombie_factory, zombie_helper}; #[multiversx_sc::module] pub trait ZombieFeeding: @@ -38,7 +38,7 @@ pub trait ZombieFeeding: #[callback] fn get_kitty_callback( &self, - #[call_result] result: ManagedAsyncCallResult, + #[call_result] result: ManagedAsyncCallResult, zombie_id: usize, ) { match result { diff --git a/contracts/examples/crypto-zombies/wasm/src/lib.rs b/contracts/examples/crypto-zombies/wasm/src/lib.rs index 9cfc27bbd9..932b3865a6 100644 --- a/contracts/examples/crypto-zombies/wasm/src/lib.rs +++ b/contracts/examples/crypto-zombies/wasm/src/lib.rs @@ -26,7 +26,7 @@ multiversx_sc_wasm_adapter::endpoints! { is_ready => is_ready feed_on_kitty => feed_on_kitty dna_digits => dna_digits - zombies_count => zombies_count + zombie_last_index => zombie_last_index zombies => zombies zombie_owner => zombie_owner crypto_kitties_sc_address => crypto_kitties_sc_address