diff --git a/.tool-versions b/.tool-versions index aac540e2..c69b5af8 100644 --- a/.tool-versions +++ b/.tool-versions @@ -1,2 +1,2 @@ -scarb 2.8.2 -starknet-foundry 0.30.0 +scarb 2.9.2 +starknet-foundry 0.35.0 diff --git a/Scarb.lock b/Scarb.lock index 4589d79a..f401f76d 100644 --- a/Scarb.lock +++ b/Scarb.lock @@ -136,105 +136,126 @@ dependencies = [ [[package]] name = "openzeppelin" -version = "0.16.0" +version = "0.20.0" source = "registry+https://scarbs.xyz/" -checksum = "sha256:5dc87a71f0f5d045e02e5bc5ea7a9b0360bbbc3f388b846006280d266feac192" +checksum = "sha256:05fd9365be85a4a3e878135d5c52229f760b3861ce4ed314cb1e75b178b553da" dependencies = [ + "openzeppelin_access", + "openzeppelin_account", + "openzeppelin_finance", + "openzeppelin_governance", + "openzeppelin_introspection", "openzeppelin_merkle_tree", "openzeppelin_presets", "openzeppelin_security", "openzeppelin_token", "openzeppelin_upgrades", + "openzeppelin_utils", ] [[package]] name = "openzeppelin_access" -version = "0.16.0" +version = "0.20.0" source = "registry+https://scarbs.xyz/" -checksum = "sha256:b9139449e53d715992b2d9e887c0c723d886419bee7ceb5561648c70bd6d3174" +checksum = "sha256:7734901a0ca7a7065e69416fea615dd1dc586c8dc9e76c032f25ee62e8b2a06c" dependencies = [ "openzeppelin_introspection", - "openzeppelin_utils", ] [[package]] name = "openzeppelin_account" -version = "0.16.0" +version = "0.20.0" source = "registry+https://scarbs.xyz/" -checksum = "sha256:841bb881adbe98b64fee1dc1329f6e3fbabdfbd9fa65c66ffb54c55f13764bce" +checksum = "sha256:1aa3a71e2f40f66f98d96aa9bf9f361f53db0fd20fa83ef7df04426a3c3a926a" dependencies = [ "openzeppelin_introspection", "openzeppelin_utils", ] +[[package]] +name = "openzeppelin_finance" +version = "0.20.0" +source = "registry+https://scarbs.xyz/" +checksum = "sha256:f0c507fbff955e4180ea3fa17949c0ff85518c40101f4948948d9d9a74143d6c" +dependencies = [ + "openzeppelin_access", + "openzeppelin_token", +] + [[package]] name = "openzeppelin_governance" -version = "0.16.0" +version = "0.20.0" source = "registry+https://scarbs.xyz/" -checksum = "sha256:a9d9c983cfd4369e7bbb69433fb264edf376805ed873b1f70a287825a6bd1eaf" +checksum = "sha256:c0fb60fad716413d537fabd5fcbb2c499ca6beb95af5f0d1699955ecec4c6f63" dependencies = [ "openzeppelin_access", + "openzeppelin_account", "openzeppelin_introspection", + "openzeppelin_token", + "openzeppelin_utils", ] [[package]] name = "openzeppelin_introspection" -version = "0.16.0" +version = "0.20.0" source = "registry+https://scarbs.xyz/" -checksum = "sha256:312bc2e531f036480ad7392dbb31042c38d875ef9dbb5578ea8de5c05e35b7d8" +checksum = "sha256:13e04a2190684e6804229a77a6c56de7d033db8b9ef519e5e8dee400a70d8a3d" [[package]] name = "openzeppelin_merkle_tree" -version = "0.16.0" +version = "0.20.0" source = "registry+https://scarbs.xyz/" -checksum = "sha256:8e264c8d5f0591262a235a445b8ca78dd5580c251707b218b829b6b4d6f84a34" +checksum = "sha256:039608900e92f3dcf479bf53a49a1fd76452acd97eb86e390d1eb92cacdaf3af" [[package]] name = "openzeppelin_presets" -version = "0.16.0" +version = "0.20.0" source = "registry+https://scarbs.xyz/" -checksum = "sha256:7bc9db7563e434535ebd06c7598ba0f8494e791c5f80401389b356a3ebd65a08" +checksum = "sha256:5c07a8de32e5d9abe33988c7927eaa8b5f83bc29dc77302d9c8c44c898611042" dependencies = [ "openzeppelin_access", "openzeppelin_account", + "openzeppelin_finance", "openzeppelin_introspection", "openzeppelin_token", "openzeppelin_upgrades", + "openzeppelin_utils", ] [[package]] name = "openzeppelin_security" -version = "0.16.0" +version = "0.20.0" source = "registry+https://scarbs.xyz/" -checksum = "sha256:b7497f5e55c6d9f1d7606ad0d12719e3c04765e266fb91fb72740e0af41d03f3" +checksum = "sha256:27155597019ecf971c48d7bfb07fa58cdc146d5297745570071732abca17f19f" [[package]] name = "openzeppelin_token" -version = "0.16.0" +version = "0.20.0" source = "registry+https://scarbs.xyz/" -checksum = "sha256:7074c23fbc300b3cccff1037264dfdbe976fb11ae42ce687f4a8ce469adc552a" +checksum = "sha256:4452f449dc6c1ea97cf69d1d9182749abd40e85bd826cd79652c06a627eafd91" dependencies = [ + "openzeppelin_access", "openzeppelin_account", - "openzeppelin_governance", "openzeppelin_introspection", + "openzeppelin_utils", ] [[package]] name = "openzeppelin_upgrades" -version = "0.16.0" +version = "0.20.0" source = "registry+https://scarbs.xyz/" -checksum = "sha256:4de95a7fb8955e63711f34bb954676f6cef127b44b570c0535d7781297821b44" +checksum = "sha256:15fdd63f6b50a0fda7b3f8f434120aaf7637bcdfe6fd8d275ad57343d5ede5e1" [[package]] name = "openzeppelin_utils" -version = "0.16.0" +version = "0.20.0" source = "registry+https://scarbs.xyz/" -checksum = "sha256:a494aeb5f1371db7f22e922196aa41d1d1698877a766a838350c0b6ffe49fda2" +checksum = "sha256:44f32d242af1e43982decc49c563e613a9b67ade552f5c3d5cde504e92f74607" [[package]] name = "pragma_lib" version = "1.0.0" -source = "git+https://github.com/astraly-labs/pragma-lib#86d7ccdc15b349b8b48d9796fc8464c947bea6e1" +source = "git+https://github.com/astraly-labs/pragma-lib?tag=2.9.1#ee1f3f7e9276cf64e19e267832de380d84c04d28" [[package]] name = "simple_account" @@ -256,15 +277,15 @@ dependencies = [ [[package]] name = "snforge_scarb_plugin" -version = "0.2.0" +version = "0.35.0" source = "registry+https://scarbs.xyz/" -checksum = "sha256:2e4ce3ebe3f49548bd26908391b5d78537a765d827df0d96c32aeb88941d0d67" +checksum = "sha256:20bd6a488fda7201ce2a5fd680d8e715b10e3545147b276747ad079c96c3d5d2" [[package]] name = "snforge_std" -version = "0.30.0" +version = "0.35.0" source = "registry+https://scarbs.xyz/" -checksum = "sha256:2f3c4846881813ac0f5d1460981249c9f5e2a6831e752beedf9b70975495b4ec" +checksum = "sha256:fe4e1b1526c815441183baed7f93e73bc76a6393d23e1f9c34fbe227bfaedfd6" dependencies = [ "snforge_scarb_plugin", ] diff --git a/Scarb.toml b/Scarb.toml index eca997b2..37e6b8f1 100644 --- a/Scarb.toml +++ b/Scarb.toml @@ -12,13 +12,13 @@ test = "$(git rev-parse --show-toplevel)/scripts/test_resolver.sh" [workspace.tool.snforge] [workspace.dependencies] -starknet = "2.8.2" -cairo_test = "2.8.2" -assert_macros = "2.8.2" -snforge_std = "0.30.0" -openzeppelin = "0.16.0" +starknet = "2.9.2" +cairo_test = "2.9.2" +assert_macros = "2.9.2" +snforge_std = "0.35.0" +openzeppelin = "0.20.0" components = { path = "listings/applications/components" } -pragma_lib = { git = "https://github.com/astraly-labs/pragma-lib" } +pragma_lib = { git = "https://github.com/astraly-labs/pragma-lib", tag = "2.9.1" } [workspace.package] description = "Collection of examples of how to use the Cairo programming language to create smart contracts on Starknet." diff --git a/footer.tsx b/footer.tsx index 41212213..70d07b30 100644 --- a/footer.tsx +++ b/footer.tsx @@ -1,6 +1,6 @@ export default function Footer() { return ( -
+
ICommitmentRevealTraitDispatcher { let (contract_address, _) = deploy_syscall( - CommitmentRevealTraits::TEST_CLASS_HASH.try_into().unwrap(), 0, array![].span(), false + CommitmentRevealTraits::TEST_CLASS_HASH.try_into().unwrap(), 0, array![].span(), false, ) - .unwrap_syscall(); + .unwrap(); ICommitmentRevealTraitDispatcher { contract_address } } diff --git a/listings/advanced-concepts/ecdsa_verification/src/ecdsa_verification.cairo b/listings/advanced-concepts/ecdsa_verification/src/ecdsa_verification.cairo index 5321a85e..c6f601ad 100644 --- a/listings/advanced-concepts/ecdsa_verification/src/ecdsa_verification.cairo +++ b/listings/advanced-concepts/ecdsa_verification/src/ecdsa_verification.cairo @@ -9,12 +9,12 @@ use starknet::secp256_trait::{Signature}; // 3. Sign the hash (off chain, keep your private key secret) #[starknet::interface] trait IVerifySignature { - fn get_signature(self: @TContractState, r: u256, s: u256, v: u32,) -> Signature; + fn get_signature(self: @TContractState, r: u256, s: u256, v: u32) -> Signature; fn verify_eth_signature( self: @TContractState, eth_address: EthAddress, msg_hash: u256, r: u256, s: u256, v: u32, ); fn recover_public_key( - self: @TContractState, eth_address: EthAddress, msg_hash: u256, r: u256, s: u256, v: u32 + self: @TContractState, eth_address: EthAddress, msg_hash: u256, r: u256, s: u256, v: u32, ); } @@ -23,7 +23,7 @@ mod verifySignature { use super::IVerifySignature; use core::starknet::eth_address::EthAddress; use starknet::secp256k1::Secp256k1Point; - use starknet::secp256_trait::{Signature, signature_from_vrs, recover_public_key,}; + use starknet::secp256_trait::{Signature, signature_from_vrs, recover_public_key}; use starknet::eth_signature::{verify_eth_signature, public_key_point_to_eth_address}; #[storage] @@ -46,7 +46,7 @@ mod verifySignature { /// # Returns /// /// * `Signature` - The signature struct. - fn get_signature(self: @ContractState, r: u256, s: u256, v: u32,) -> Signature { + fn get_signature(self: @ContractState, r: u256, s: u256, v: u32) -> Signature { // Create a Signature object from the given v, r, and s values. let signature: Signature = signature_from_vrs(v, r, s); signature @@ -62,7 +62,7 @@ mod verifySignature { /// * `s` - The S component of the signature. /// * `v` - The V component of the signature. fn verify_eth_signature( - self: @ContractState, eth_address: EthAddress, msg_hash: u256, r: u256, s: u256, v: u32 + self: @ContractState, eth_address: EthAddress, msg_hash: u256, r: u256, s: u256, v: u32, ) { let signature = self.get_signature(r, s, v); verify_eth_signature(:msg_hash, :signature, :eth_address); @@ -79,7 +79,7 @@ mod verifySignature { /// * `s` - The S component of the signature. /// * `v` - The V component of the signature. fn recover_public_key( - self: @ContractState, eth_address: EthAddress, msg_hash: u256, r: u256, s: u256, v: u32 + self: @ContractState, eth_address: EthAddress, msg_hash: u256, r: u256, s: u256, v: u32, ) { let signature = self.get_signature(r, s, v); let public_key_point = recover_public_key::(msg_hash, signature) @@ -93,7 +93,7 @@ mod verifySignature { #[cfg(test)] mod tests { - use starknet::secp256_trait::{Signature, signature_from_vrs, recover_public_key,}; + use starknet::secp256_trait::{Signature, signature_from_vrs, recover_public_key}; use starknet::EthAddress; use starknet::secp256k1::{Secp256k1Point}; use starknet::eth_signature::{verify_eth_signature, public_key_point_to_eth_address}; diff --git a/listings/advanced-concepts/hash_trait/src/hash_trait.cairo b/listings/advanced-concepts/hash_trait/src/hash_trait.cairo index 88fde919..ee8b9fb6 100644 --- a/listings/advanced-concepts/hash_trait/src/hash_trait.cairo +++ b/listings/advanced-concepts/hash_trait/src/hash_trait.cairo @@ -1,10 +1,10 @@ #[starknet::interface] pub trait IHashTrait { fn save_user_with_poseidon( - ref self: T, id: felt252, username: felt252, password: felt252 + ref self: T, id: felt252, username: felt252, password: felt252, ) -> felt252; fn save_user_with_pedersen( - ref self: T, id: felt252, username: felt252, password: felt252 + ref self: T, id: felt252, username: felt252, password: felt252, ) -> felt252; } @@ -36,7 +36,7 @@ pub mod HashTraits { #[abi(embed_v0)] impl HashTrait of super::IHashTrait { fn save_user_with_poseidon( - ref self: ContractState, id: felt252, username: felt252, password: felt252 + ref self: ContractState, id: felt252, username: felt252, password: felt252, ) -> felt252 { let login = LoginDetails { username, password }; let user = UserDetails { id, login }; @@ -48,7 +48,7 @@ pub mod HashTraits { } fn save_user_with_pedersen( - ref self: ContractState, id: felt252, username: felt252, password: felt252 + ref self: ContractState, id: felt252, username: felt252, password: felt252, ) -> felt252 { let login = LoginDetails { username, password }; let user = UserDetails { id, login }; @@ -64,16 +64,15 @@ pub mod HashTraits { #[cfg(test)] mod tests { - use starknet::SyscallResultTrait; use super::{HashTraits, IHashTraitDispatcher, IHashTraitDispatcherTrait}; use starknet::syscalls::deploy_syscall; fn deploy() -> IHashTraitDispatcher { let mut calldata = array![]; let (address, _) = deploy_syscall( - HashTraits::TEST_CLASS_HASH.try_into().unwrap(), 0, calldata.span(), false + HashTraits::TEST_CLASS_HASH.try_into().unwrap(), 0, calldata.span(), false, ) - .unwrap_syscall(); + .unwrap(); IHashTraitDispatcher { contract_address: address } } diff --git a/listings/advanced-concepts/library_calls/src/tests.cairo b/listings/advanced-concepts/library_calls/src/tests.cairo index 6458ef4d..90c2707e 100644 --- a/listings/advanced-concepts/library_calls/src/tests.cairo +++ b/listings/advanced-concepts/library_calls/src/tests.cairo @@ -1,8 +1,7 @@ mod tests { use starknet::syscalls::deploy_syscall; - use starknet::SyscallResultTrait; use library_calls::library_call::{ - MathUtils, MathUtilsLibraryCall, IMathUtilsDispatcher, IMathUtilsDispatcherTrait + MathUtils, MathUtilsLibraryCall, IMathUtilsDispatcher, IMathUtilsDispatcherTrait, }; #[test] @@ -12,9 +11,9 @@ mod tests { .unwrap(); let mut calldata: Array = array![]; let (address, _) = deploy_syscall( - MathUtilsLibraryCall::TEST_CLASS_HASH.try_into().unwrap(), 0, calldata.span(), false + MathUtilsLibraryCall::TEST_CLASS_HASH.try_into().unwrap(), 0, calldata.span(), false, ) - .unwrap_syscall(); + .unwrap(); let mut contract = IMathUtilsDispatcher { contract_address: address }; contract.set_class_hash(math_utils_class_hash); diff --git a/listings/advanced-concepts/simple_account/src/simple_account.cairo b/listings/advanced-concepts/simple_account/src/simple_account.cairo index 6de72c81..f1e1386b 100644 --- a/listings/advanced-concepts/simple_account/src/simple_account.cairo +++ b/listings/advanced-concepts/simple_account/src/simple_account.cairo @@ -5,7 +5,7 @@ trait ISRC6 { fn execute_calls(self: @TContractState, calls: Array) -> Array>; fn validate_calls(self: @TContractState, calls: Array) -> felt252; fn is_valid_signature( - self: @TContractState, hash: felt252, signature: Array + self: @TContractState, hash: felt252, signature: Array, ) -> felt252; } @@ -30,7 +30,7 @@ mod simpleAccount { struct Storage { #[substorage(v0)] src5: SRC5Component::Storage, - public_key: felt252 + public_key: felt252, } #[constructor] @@ -43,7 +43,7 @@ mod simpleAccount { #[derive(Drop, starknet::Event)] enum Event { #[flat] - SRC5Event: SRC5Component::Event + SRC5Event: SRC5Component::Event, } #[abi(embed_v0)] @@ -68,7 +68,7 @@ mod simpleAccount { } fn is_valid_signature( - self: @ContractState, hash: felt252, signature: Array + self: @ContractState, hash: felt252, signature: Array, ) -> felt252 { if self._is_valid_signature(hash, signature.span()) { starknet::VALIDATED @@ -81,10 +81,10 @@ mod simpleAccount { #[generate_trait] impl SignatureVerificationImpl of SignatureVerification { fn _is_valid_signature( - self: @ContractState, hash: felt252, signature: Span + self: @ContractState, hash: felt252, signature: Span, ) -> bool { check_ecdsa_signature( - hash, self.public_key.read(), *signature.at(0_u32), *signature.at(1_u32) + hash, self.public_key.read(), *signature.at(0_u32), *signature.at(1_u32), ) } } diff --git a/listings/advanced-concepts/store_using_packing/src/contract.cairo b/listings/advanced-concepts/store_using_packing/src/contract.cairo index 8ef6b2db..e1611a22 100644 --- a/listings/advanced-concepts/store_using_packing/src/contract.cairo +++ b/listings/advanced-concepts/store_using_packing/src/contract.cairo @@ -1,7 +1,7 @@ #[derive(Copy, Serde, Drop)] pub struct Time { pub hour: u8, - pub minute: u8 + pub minute: u8, } #[starknet::interface] @@ -18,7 +18,7 @@ pub mod TimeContract { #[storage] struct Storage { - time: Time + time: Time, } impl TimePackable of StorePacking { diff --git a/listings/advanced-concepts/store_using_packing/src/tests.cairo b/listings/advanced-concepts/store_using_packing/src/tests.cairo index eb888025..3bb290d4 100644 --- a/listings/advanced-concepts/store_using_packing/src/tests.cairo +++ b/listings/advanced-concepts/store_using_packing/src/tests.cairo @@ -1,5 +1,4 @@ mod tests { - use starknet::SyscallResultTrait; use store_using_packing::contract::{TimeContract, Time, ITimeDispatcher, ITimeDispatcherTrait}; use starknet::syscalls::deploy_syscall; @@ -9,9 +8,9 @@ mod tests { // Set up. let mut calldata: Array = array![]; let (address0, _) = deploy_syscall( - TimeContract::TEST_CLASS_HASH.try_into().unwrap(), 0, calldata.span(), false + TimeContract::TEST_CLASS_HASH.try_into().unwrap(), 0, calldata.span(), false, ) - .unwrap_syscall(); + .unwrap(); let mut contract = ITimeDispatcher { contract_address: address0 }; // Store a Time struct. diff --git a/listings/advanced-concepts/struct_as_mapping_key/src/test.cairo b/listings/advanced-concepts/struct_as_mapping_key/src/test.cairo index 34ebdf26..7fef6c87 100644 --- a/listings/advanced-concepts/struct_as_mapping_key/src/test.cairo +++ b/listings/advanced-concepts/struct_as_mapping_key/src/test.cairo @@ -1,5 +1,4 @@ mod tests { - use starknet::SyscallResultTrait; use struct_as_mapping_key::contract::{PetRegistry, Pet}; use starknet::syscalls::deploy_syscall; @@ -14,9 +13,9 @@ mod tests { // Set up. let mut calldata: Array = array![]; let (address0, _) = deploy_syscall( - PetRegistry::TEST_CLASS_HASH.try_into().unwrap(), 0, calldata.span(), false + PetRegistry::TEST_CLASS_HASH.try_into().unwrap(), 0, calldata.span(), false, ) - .unwrap_syscall(); + .unwrap(); let mut contract = IPetRegistryDispatcher { contract_address: address0 }; let pet = Pet { name: 'Cute Labrador', age: 5, owner: 'Louis' }; diff --git a/listings/advanced-concepts/write_to_any_slot/src/contract.cairo b/listings/advanced-concepts/write_to_any_slot/src/contract.cairo index 1e7d4922..e5673412 100644 --- a/listings/advanced-concepts/write_to_any_slot/src/contract.cairo +++ b/listings/advanced-concepts/write_to_any_slot/src/contract.cairo @@ -7,7 +7,6 @@ pub trait IWriteToAnySlots { #[starknet::contract] pub mod WriteToAnySlot { use starknet::syscalls::{storage_read_syscall, storage_write_syscall}; - use starknet::SyscallResultTrait; use core::poseidon::poseidon_hash_span; use starknet::StorageAddress; @@ -19,15 +18,11 @@ pub mod WriteToAnySlot { #[abi(embed_v0)] impl WriteToAnySlot of super::IWriteToAnySlots { fn write_slot(ref self: ContractState, value: u32) { - storage_write_syscall(0, get_address_from_name(SLOT_NAME), value.into()) - .unwrap_syscall(); + storage_write_syscall(0, get_address_from_name(SLOT_NAME), value.into()).unwrap(); } fn read_slot(self: @ContractState) -> u32 { - storage_read_syscall(0, get_address_from_name(SLOT_NAME)) - .unwrap_syscall() - .try_into() - .unwrap() + storage_read_syscall(0, get_address_from_name(SLOT_NAME)).unwrap().try_into().unwrap() } } pub fn get_address_from_name(variable_name: felt252) -> StorageAddress { diff --git a/listings/advanced-concepts/write_to_any_slot/src/tests.cairo b/listings/advanced-concepts/write_to_any_slot/src/tests.cairo index 6428a6eb..42c6528d 100644 --- a/listings/advanced-concepts/write_to_any_slot/src/tests.cairo +++ b/listings/advanced-concepts/write_to_any_slot/src/tests.cairo @@ -16,7 +16,7 @@ mod tests { // Set up. let mut calldata: Array = array![]; let (address0, _) = deploy_syscall( - WriteToAnySlot::TEST_CLASS_HASH.try_into().unwrap(), 0, calldata.span(), false + WriteToAnySlot::TEST_CLASS_HASH.try_into().unwrap(), 0, calldata.span(), false, ) .unwrap(); let mut contract = IWriteToAnySlotDispatcher { contract_address: address0 }; diff --git a/listings/applications/advanced_factory/src/contract.cairo b/listings/applications/advanced_factory/src/contract.cairo index ff81f715..f8436ead 100644 --- a/listings/applications/advanced_factory/src/contract.cairo +++ b/listings/applications/advanced_factory/src/contract.cairo @@ -10,26 +10,24 @@ pub trait ICampaignFactory { goal: u256, start_time: u64, end_time: u64, - token_address: ContractAddress + token_address: ContractAddress, ) -> ContractAddress; fn get_campaign_class_hash(self: @TContractState) -> ClassHash; fn update_campaign_class_hash(ref self: TContractState, new_class_hash: ClassHash); fn upgrade_campaign( - ref self: TContractState, campaign_address: ContractAddress, new_end_time: Option + ref self: TContractState, campaign_address: ContractAddress, new_end_time: Option, ); } #[starknet::contract] pub mod CampaignFactory { use core::num::traits::Zero; - use starknet::{ - ContractAddress, ClassHash, SyscallResultTrait, syscalls::deploy_syscall, get_caller_address - }; + use starknet::{ContractAddress, ClassHash, syscalls::deploy_syscall, get_caller_address}; use crowdfunding::campaign::{ICampaignDispatcher, ICampaignDispatcherTrait}; use components::ownable::ownable_component; use starknet::storage::{ Map, StorageMapReadAccess, StorageMapWriteAccess, StoragePointerReadAccess, - StoragePointerWriteAccess + StoragePointerWriteAccess, }; component!(path: ownable_component, storage: ownable, event: OwnableEvent); @@ -71,7 +69,7 @@ pub mod CampaignFactory { #[derive(Drop, starknet::Event)] pub struct CampaignCreated { pub creator: ContractAddress, - pub contract_address: ContractAddress + pub contract_address: ContractAddress, } pub mod Errors { @@ -109,9 +107,9 @@ pub mod CampaignFactory { // Contract deployment let (contract_address, _) = deploy_syscall( - self.campaign_class_hash.read(), 0, constructor_calldata.span(), false + self.campaign_class_hash.read(), 0, constructor_calldata.span(), false, ) - .unwrap_syscall(); + .unwrap(); // track new campaign instance self.campaigns.write((creator, contract_address), self.campaign_class_hash.read()); @@ -135,7 +133,7 @@ pub mod CampaignFactory { } fn upgrade_campaign( - ref self: ContractState, campaign_address: ContractAddress, new_end_time: Option + ref self: ContractState, campaign_address: ContractAddress, new_end_time: Option, ) { assert(campaign_address.is_non_zero(), Errors::ZERO_ADDRESS); diff --git a/listings/applications/advanced_factory/src/tests.cairo b/listings/applications/advanced_factory/src/tests.cairo index 4b2b3bf5..31352aaa 100644 --- a/listings/applications/advanced_factory/src/tests.cairo +++ b/listings/applications/advanced_factory/src/tests.cairo @@ -1,11 +1,11 @@ use advanced_factory::contract::{ - CampaignFactory, ICampaignFactoryDispatcher, ICampaignFactoryDispatcherTrait + CampaignFactory, ICampaignFactoryDispatcher, ICampaignFactoryDispatcherTrait, }; use crowdfunding::campaign::Campaign; use starknet::{ClassHash, get_block_timestamp, contract_address_const}; use snforge_std::{ declare, start_cheat_caller_address, stop_cheat_caller_address, spy_events, DeclareResultTrait, - ContractClassTrait, get_class_hash, EventSpyAssertionsTrait + ContractClassTrait, get_class_hash, EventSpyAssertionsTrait, }; // Define a goal contract to deploy @@ -88,11 +88,11 @@ fn test_create_campaign() { factory.contract_address, CampaignFactory::Event::CampaignCreated( CampaignFactory::CampaignCreated { - creator: campaign_creator, contract_address: campaign_address - } - ) - ) - ] + creator: campaign_creator, contract_address: campaign_address, + }, + ), + ), + ], ); } @@ -111,7 +111,7 @@ fn test_upgrade_campaign_class_hash() { start_cheat_caller_address(factory.contract_address, pending_campaign_creator); let pending_campaign = factory .create_campaign( - "title 1", "description 1", 10000, start_time_pending, end_time_pending, token + "title 1", "description 1", 10000, start_time_pending, end_time_pending, token, ); assert_eq!(old_class_hash, get_class_hash(pending_campaign)); @@ -123,7 +123,7 @@ fn test_upgrade_campaign_class_hash() { start_cheat_caller_address(factory.contract_address, active_campaign_creator); let active_campaign = factory .create_campaign( - "title 2", "description 2", 20000, start_time_active, end_time_active, token + "title 2", "description 2", 20000, start_time_active, end_time_active, token, ); assert_eq!(old_class_hash, get_class_hash(active_campaign)); @@ -145,10 +145,10 @@ fn test_upgrade_campaign_class_hash() { ( factory.contract_address, CampaignFactory::Event::ClassHashUpdated( - CampaignFactory::ClassHashUpdated { new_class_hash } - ) - ) - ] + CampaignFactory::ClassHashUpdated { new_class_hash }, + ), + ), + ], ); // upgrade pending campaign @@ -163,9 +163,11 @@ fn test_upgrade_campaign_class_hash() { @array![ ( pending_campaign, - Campaign::Event::Upgraded(Campaign::Upgraded { implementation: new_class_hash }) - ) - ] + Campaign::Event::Upgraded( + Campaign::Upgraded { implementation: new_class_hash }, + ), + ), + ], ); // upgrade active campaign @@ -180,8 +182,10 @@ fn test_upgrade_campaign_class_hash() { @array![ ( active_campaign, - Campaign::Event::Upgraded(Campaign::Upgraded { implementation: new_class_hash }) - ) - ] + Campaign::Event::Upgraded( + Campaign::Upgraded { implementation: new_class_hash }, + ), + ), + ], ); } diff --git a/listings/applications/coin_flip/src/contract.cairo b/listings/applications/coin_flip/src/contract.cairo index cefe052e..74fec7b3 100644 --- a/listings/applications/coin_flip/src/contract.cairo +++ b/listings/applications/coin_flip/src/contract.cairo @@ -13,16 +13,16 @@ pub trait IPragmaVRF { requestor_address: ContractAddress, request_id: u64, random_words: Span, - calldata: Array + calldata: Array, ); } #[starknet::contract] pub mod CoinFlip { use core::num::traits::zero::Zero; - use starknet::{ContractAddress, get_caller_address, get_contract_address,}; + use starknet::{ContractAddress, get_caller_address, get_contract_address}; use starknet::storage::{ - Map, StoragePointerReadAccess, StoragePathEntry, StoragePointerWriteAccess + Map, StoragePointerReadAccess, StoragePathEntry, StoragePointerWriteAccess, }; use pragma_lib::abi::{IRandomnessDispatcher, IRandomnessDispatcherTrait}; use openzeppelin::token::erc20::interface::{IERC20Dispatcher, IERC20DispatcherTrait}; @@ -52,7 +52,7 @@ pub mod CoinFlip { pub struct Landed { pub flip_id: u64, pub flipper: ContractAddress, - pub side: Side + pub side: Side, } #[derive(Drop, Debug, PartialEq, Serde)] @@ -79,7 +79,7 @@ pub mod CoinFlip { fn constructor( ref self: ContractState, randomness_contract_address: ContractAddress, - eth_address: ContractAddress + eth_address: ContractAddress, ) { assert(randomness_contract_address.is_non_zero(), Errors::INVALID_ADDRESS); assert(eth_address.is_non_zero(), Errors::INVALID_ADDRESS); @@ -106,11 +106,11 @@ pub mod CoinFlip { requestor_address: ContractAddress, request_id: u64, random_words: Span, - calldata: Array + calldata: Array, ) { let caller = get_caller_address(); assert( - caller == self.randomness_contract_address.read(), Errors::CALLER_NOT_RANDOMNESS + caller == self.randomness_contract_address.read(), Errors::CALLER_NOT_RANDOMNESS, ); let this = get_contract_address(); @@ -125,7 +125,7 @@ pub mod CoinFlip { fn _request_my_randomness(ref self: ContractState) -> u64 { let randomness_contract_address = self.randomness_contract_address.read(); let randomness_dispatcher = IRandomnessDispatcher { - contract_address: randomness_contract_address + contract_address: randomness_contract_address, }; let this = get_contract_address(); @@ -139,7 +139,7 @@ pub mod CoinFlip { // Request the randomness to be used to construct the winning combination let request_id = randomness_dispatcher .request_random( - nonce, this, CALLBACK_FEE_LIMIT, PUBLISH_DELAY, NUM_OF_WORDS, array![] + nonce, this, CALLBACK_FEE_LIMIT, PUBLISH_DELAY, NUM_OF_WORDS, array![], ); self.nonce.write(nonce + 1); diff --git a/listings/applications/coin_flip/src/mock_randomness.cairo b/listings/applications/coin_flip/src/mock_randomness.cairo index 54f2f327..493be34a 100644 --- a/listings/applications/coin_flip/src/mock_randomness.cairo +++ b/listings/applications/coin_flip/src/mock_randomness.cairo @@ -4,7 +4,7 @@ pub mod MockRandomness { use pragma_lib::types::RequestStatus; use starknet::{ContractAddress, ClassHash, get_caller_address, get_contract_address}; use starknet::storage::{ - Map, StoragePointerReadAccess, StoragePathEntry, StoragePointerWriteAccess + Map, StoragePointerReadAccess, StoragePathEntry, StoragePointerWriteAccess, }; use core::num::traits::zero::Zero; use coin_flip::contract::{IPragmaVRFDispatcher, IPragmaVRFDispatcherTrait}; @@ -41,7 +41,7 @@ pub mod MockRandomness { callback_fee_limit: u128, publish_delay: u64, num_words: u64, - calldata: Array + calldata: Array, ) -> u64 { let caller = get_caller_address(); let this = get_contract_address(); @@ -70,7 +70,7 @@ pub mod MockRandomness { callback_fee: u128, random_words: Span, proof: Span, - calldata: Array + calldata: Array, ) { let requestor = IPragmaVRFDispatcher { contract_address: callback_address }; requestor.receive_random_words(requestor_address, request_id, random_words, calldata); @@ -81,7 +81,7 @@ pub mod MockRandomness { } fn get_total_fees( - self: @ContractState, caller_address: ContractAddress, request_id: u64 + self: @ContractState, caller_address: ContractAddress, request_id: u64, ) -> u256 { self.total_fees.entry((caller_address, request_id)).read() } @@ -94,7 +94,7 @@ pub mod MockRandomness { ref self: ContractState, requestor_address: ContractAddress, request_id: u64, - new_status: RequestStatus + new_status: RequestStatus, ) { panic!("unimplemented") } @@ -107,24 +107,24 @@ pub mod MockRandomness { minimum_block_number: u64, callback_address: ContractAddress, callback_fee_limit: u128, - num_words: u64 + num_words: u64, ) { panic!("unimplemented") } fn get_pending_requests( - self: @ContractState, requestor_address: ContractAddress, offset: u64, max_len: u64 + self: @ContractState, requestor_address: ContractAddress, offset: u64, max_len: u64, ) -> Span { panic!("unimplemented") } fn get_request_status( - self: @ContractState, requestor_address: ContractAddress, request_id: u64 + self: @ContractState, requestor_address: ContractAddress, request_id: u64, ) -> RequestStatus { panic!("unimplemented") } fn requestor_current_index( - self: @ContractState, requestor_address: ContractAddress + self: @ContractState, requestor_address: ContractAddress, ) -> u64 { panic!("unimplemented") } @@ -141,7 +141,7 @@ pub mod MockRandomness { panic!("unimplemented") } fn refund_operation( - ref self: ContractState, caller_address: ContractAddress, request_id: u64 + ref self: ContractState, caller_address: ContractAddress, request_id: u64, ) { panic!("unimplemented") } @@ -156,7 +156,7 @@ pub mod MockRandomness { fn get_contract_balance(self: @ContractState) -> u256 { panic!("unimplemented") } - fn get_admin_address(self: @ContractState,) -> ContractAddress { + fn get_admin_address(self: @ContractState) -> ContractAddress { panic!("unimplemented") } fn set_admin_address(ref self: ContractState, new_admin_address: ContractAddress) { diff --git a/listings/applications/coin_flip/src/tests.cairo b/listings/applications/coin_flip/src/tests.cairo index bdaa0466..74bb63e9 100644 --- a/listings/applications/coin_flip/src/tests.cairo +++ b/listings/applications/coin_flip/src/tests.cairo @@ -4,7 +4,7 @@ use coin_flip::contract::{ use starknet::{ContractAddress, contract_address_const}; use snforge_std::{ declare, start_cheat_caller_address, stop_cheat_caller_address, spy_events, - EventSpyAssertionsTrait, DeclareResultTrait, ContractClassTrait + EventSpyAssertionsTrait, DeclareResultTrait, ContractClassTrait, }; use openzeppelin::token::erc20::interface::{IERC20Dispatcher, IERC20DispatcherTrait}; use pragma_lib::abi::{IRandomnessDispatcher, IRandomnessDispatcherTrait}; @@ -63,9 +63,7 @@ fn test_all_relevant_random_words() { (1001, Side::Tails, 8), (12345654321, Side::Tails, 9), ]; - for ( - random_word, expected_side, expected_request_id - ) in random_words { + for (random_word, expected_side, expected_request_id) in random_words { _flip_request( coin_flip, randomness, @@ -74,7 +72,7 @@ fn test_all_relevant_random_words() { expected_request_id, CALLBACK_FEE_LIMIT / 5 * 3, random_word, - expected_side + expected_side, ); } } @@ -89,7 +87,7 @@ fn test_multiple_flips() { stop_cheat_caller_address(eth.contract_address); _flip_request( - coin_flip, randomness, eth, deployer, 0, CALLBACK_FEE_LIMIT / 5 * 3, 123456789, Side::Tails + coin_flip, randomness, eth, deployer, 0, CALLBACK_FEE_LIMIT / 5 * 3, 123456789, Side::Tails, ); _flip_request( coin_flip, @@ -99,7 +97,7 @@ fn test_multiple_flips() { 1, CALLBACK_FEE_LIMIT / 4 * 3, 12345654321, - Side::Tails + Side::Tails, ); _flip_request(coin_flip, randomness, eth, deployer, 2, CALLBACK_FEE_LIMIT, 3, Side::Tails); } @@ -112,7 +110,7 @@ fn _flip_request( expected_request_id: u64, expected_callback_fee: u128, random_word: felt252, - expected_side: Side + expected_side: Side, ) { let original_balance = eth.balance_of(coin_flip.contract_address); @@ -128,17 +126,17 @@ fn _flip_request( ( coin_flip.contract_address, CoinFlip::Event::Flipped( - CoinFlip::Flipped { flip_id: expected_request_id, flipper: deployer } - ) - ) - ] + CoinFlip::Flipped { flip_id: expected_request_id, flipper: deployer }, + ), + ), + ], ); let post_flip_balance = eth.balance_of(coin_flip.contract_address); assert_eq!( post_flip_balance, original_balance - - randomness.get_total_fees(coin_flip.contract_address, expected_request_id) + - randomness.get_total_fees(coin_flip.contract_address, expected_request_id), ); randomness @@ -152,7 +150,7 @@ fn _flip_request( expected_callback_fee, array![random_word].span(), array![].span(), - array![] + array![], ); spy @@ -162,16 +160,16 @@ fn _flip_request( coin_flip.contract_address, CoinFlip::Event::Landed( CoinFlip::Landed { - flip_id: expected_request_id, flipper: deployer, side: expected_side - } - ) - ) - ] + flip_id: expected_request_id, flipper: deployer, side: expected_side, + }, + ), + ), + ], ); assert_eq!( eth.balance_of(coin_flip.contract_address), - post_flip_balance + (CALLBACK_FEE_LIMIT - expected_callback_fee).into() + post_flip_balance + (CALLBACK_FEE_LIMIT - expected_callback_fee).into(), ); } @@ -201,15 +199,15 @@ fn test_two_consecutive_flips() { @array![ ( coin_flip.contract_address, - CoinFlip::Event::Flipped(CoinFlip::Flipped { flip_id: 0, flipper: deployer }) + CoinFlip::Event::Flipped(CoinFlip::Flipped { flip_id: 0, flipper: deployer }), ), ( coin_flip.contract_address, CoinFlip::Event::Flipped( - CoinFlip::Flipped { flip_id: 1, flipper: other_flipper } - ) - ) - ] + CoinFlip::Flipped { flip_id: 1, flipper: other_flipper }, + ), + ), + ], ); let post_flip_balance = eth.balance_of(coin_flip.contract_address); @@ -234,7 +232,7 @@ fn test_two_consecutive_flips() { expected_callback_fee, array![random_word_deployer].span(), array![].span(), - array![] + array![], ); randomness .submit_random( @@ -247,7 +245,7 @@ fn test_two_consecutive_flips() { expected_callback_fee, array![random_word_other_flipper].span(), array![].span(), - array![] + array![], ); spy @@ -257,24 +255,24 @@ fn test_two_consecutive_flips() { coin_flip.contract_address, CoinFlip::Event::Landed( CoinFlip::Landed { - flip_id: 0, flipper: deployer, side: expected_side_deployer - } - ) + flip_id: 0, flipper: deployer, side: expected_side_deployer, + }, + ), ), ( coin_flip.contract_address, CoinFlip::Event::Landed( CoinFlip::Landed { - flip_id: 1, flipper: other_flipper, side: expected_side_other_flipper - } - ) - ) - ] + flip_id: 1, flipper: other_flipper, side: expected_side_other_flipper, + }, + ), + ), + ], ); assert_eq!( eth.balance_of(coin_flip.contract_address), - post_flip_balance + (CALLBACK_FEE_LIMIT - expected_callback_fee).into() * 2 + post_flip_balance + (CALLBACK_FEE_LIMIT - expected_callback_fee).into() * 2, ); } diff --git a/listings/applications/components/src/countable.cairo b/listings/applications/components/src/countable.cairo index 7a470909..36e905f8 100644 --- a/listings/applications/components/src/countable.cairo +++ b/listings/applications/components/src/countable.cairo @@ -16,7 +16,7 @@ pub mod countable_component { #[embeddable_as(Countable)] impl CountableImpl< - TContractState, +HasComponent + TContractState, +HasComponent, > of super::ICountable> { fn get(self: @ComponentState) -> u32 { self.countable_value.read() @@ -44,7 +44,7 @@ mod CountableContract { #[event] #[derive(Drop, starknet::Event)] enum Event { - CountableEvent: countable_component::Event + CountableEvent: countable_component::Event, } #[abi(embed_v0)] @@ -57,13 +57,12 @@ mod test { use super::CountableContract; use super::{ICountableDispatcher, ICountableDispatcherTrait}; use starknet::syscalls::deploy_syscall; - use starknet::SyscallResultTrait; fn deploy_countable() -> ICountableDispatcher { let (address, _) = deploy_syscall( - CountableContract::TEST_CLASS_HASH.try_into().unwrap(), 0, array![].span(), false + CountableContract::TEST_CLASS_HASH.try_into().unwrap(), 0, array![].span(), false, ) - .unwrap_syscall(); + .unwrap(); ICountableDispatcher { contract_address: address } } diff --git a/listings/applications/components/src/others/switch_collision.cairo b/listings/applications/components/src/others/switch_collision.cairo index fbb554a1..8db6e2a9 100644 --- a/listings/applications/components/src/others/switch_collision.cairo +++ b/listings/applications/components/src/others/switch_collision.cairo @@ -19,6 +19,7 @@ pub mod SwitchCollisionContract { // [!region storage] #[storage] + #[allow(starknet::colliding_storage_paths)] struct Storage { switchable_value: bool, #[substorage(v0)] @@ -53,16 +54,15 @@ pub mod SwitchCollisionContract { mod switch_collision_tests { use components::switchable::{ISwitchableDispatcher, ISwitchableDispatcherTrait}; use super::{ - SwitchCollisionContract, ISwitchCollisionDispatcher, ISwitchCollisionDispatcherTrait + SwitchCollisionContract, ISwitchCollisionDispatcher, ISwitchCollisionDispatcherTrait, }; - use starknet::SyscallResultTrait; use starknet::syscalls::deploy_syscall; fn deploy() -> (ISwitchCollisionDispatcher, ISwitchableDispatcher) { let (contract_address, _) = deploy_syscall( - SwitchCollisionContract::TEST_CLASS_HASH.try_into().unwrap(), 0, array![].span(), false + SwitchCollisionContract::TEST_CLASS_HASH.try_into().unwrap(), 0, array![].span(), false, ) - .unwrap_syscall(); + .unwrap(); ( ISwitchCollisionDispatcher { contract_address }, diff --git a/listings/applications/components/src/ownable.cairo b/listings/applications/components/src/ownable.cairo index cd3698d9..accb3e19 100644 --- a/listings/applications/components/src/ownable.cairo +++ b/listings/applications/components/src/ownable.cairo @@ -29,24 +29,24 @@ pub mod ownable_component { #[derive(Drop, Debug, PartialEq, starknet::Event)] pub struct OwnershipTransferredEvent { pub previous: ContractAddress, - pub new: ContractAddress + pub new: ContractAddress, } #[derive(Drop, Debug, PartialEq, starknet::Event)] pub struct OwnershipRenouncedEvent { - pub previous: ContractAddress + pub previous: ContractAddress, } #[event] #[derive(Drop, Debug, PartialEq, starknet::Event)] pub enum Event { OwnershipTransferredEvent: OwnershipTransferredEvent, - OwnershipRenouncedEvent: OwnershipRenouncedEvent + OwnershipRenouncedEvent: OwnershipRenouncedEvent, } #[embeddable_as(Ownable)] pub impl OwnableImpl< - TContractState, +HasComponent + TContractState, +HasComponent, > of super::IOwnable> { fn owner(self: @ComponentState) -> ContractAddress { self.ownable_owner.read() @@ -65,7 +65,7 @@ pub mod ownable_component { #[generate_trait] pub impl OwnableInternalImpl< - TContractState, +HasComponent + TContractState, +HasComponent, > of OwnableInternalTrait { fn _assert_only_owner(self: @ComponentState) { let caller = get_caller_address(); @@ -84,7 +84,7 @@ pub mod ownable_component { self.ownable_owner.write(new); self .emit( - Event::OwnershipTransferredEvent(OwnershipTransferredEvent { previous, new }) + Event::OwnershipTransferredEvent(OwnershipTransferredEvent { previous, new }), ); } @@ -132,15 +132,15 @@ mod test { use super::ownable_component::{OwnershipRenouncedEvent, OwnershipTransferredEvent}; use super::{IOwnableDispatcher, IOwnableDispatcherTrait}; use starknet::ContractAddress; - use starknet::{syscalls::deploy_syscall, SyscallResultTrait, contract_address_const}; + use starknet::{syscalls::deploy_syscall, contract_address_const}; use starknet::testing::{set_contract_address}; use core::num::traits::Zero; fn deploy() -> (IOwnableDispatcher, ContractAddress) { let (contract_address, _) = deploy_syscall( - OwnedContract::TEST_CLASS_HASH.try_into().unwrap(), 0, array![].span(), false + OwnedContract::TEST_CLASS_HASH.try_into().unwrap(), 0, array![].span(), false, ) - .unwrap_syscall(); + .unwrap(); (IOwnableDispatcher { contract_address }, contract_address) } @@ -167,9 +167,9 @@ mod test { starknet::testing::pop_log(address), Option::Some( OwnedContract::Event::OwnableEvent( - OwnershipTransferredEvent { previous: contract_address, new: new_owner }.into() - ) - ) + OwnershipTransferredEvent { previous: contract_address, new: new_owner }.into(), + ), + ), ); } @@ -204,9 +204,9 @@ mod test { starknet::testing::pop_log(address), Option::Some( OwnedContract::Event::OwnableEvent( - OwnershipRenouncedEvent { previous: contract_address }.into() - ) - ) + OwnershipRenouncedEvent { previous: contract_address }.into(), + ), + ), ); } diff --git a/listings/applications/components/src/switchable.cairo b/listings/applications/components/src/switchable.cairo index a6dcd4fd..71f89f5b 100644 --- a/listings/applications/components/src/switchable.cairo +++ b/listings/applications/components/src/switchable.cairo @@ -27,7 +27,7 @@ pub mod switchable_component { #[embeddable_as(Switchable)] impl SwitchableImpl< - TContractState, +HasComponent + TContractState, +HasComponent, > of super::ISwitchable> { fn is_on(self: @ComponentState) -> bool { self.switchable_value.read() @@ -41,7 +41,7 @@ pub mod switchable_component { #[generate_trait] pub impl SwitchableInternalImpl< - TContractState, +HasComponent + TContractState, +HasComponent, > of SwitchableInternalTrait { fn _off(ref self: ComponentState) { self.switchable_value.write(false); @@ -90,13 +90,12 @@ mod test { use super::switchable_component::SwitchEvent; use super::{ISwitchableDispatcher, ISwitchableDispatcherTrait}; use starknet::{syscalls::deploy_syscall, ContractAddress}; - use starknet::SyscallResultTrait; fn deploy() -> (ISwitchableDispatcher, ContractAddress) { let (address, _) = deploy_syscall( - SwitchContract::TEST_CLASS_HASH.try_into().unwrap(), 0, array![].span(), false + SwitchContract::TEST_CLASS_HASH.try_into().unwrap(), 0, array![].span(), false, ) - .unwrap_syscall(); + .unwrap(); (ISwitchableDispatcher { contract_address: address }, address) } @@ -113,7 +112,7 @@ mod test { assert_eq!(switchable.is_on(), true); assert_eq!( starknet::testing::pop_log(contract_address), - Option::Some(SwitchContract::Event::SwitchableEvent(SwitchEvent {}.into())) + Option::Some(SwitchContract::Event::SwitchableEvent(SwitchEvent {}.into())), ); } diff --git a/listings/applications/components_dependencies/src/contract_countable.cairo b/listings/applications/components_dependencies/src/contract_countable.cairo index 42f1d76a..7de2ec71 100644 --- a/listings/applications/components_dependencies/src/contract_countable.cairo +++ b/listings/applications/components_dependencies/src/contract_countable.cairo @@ -14,7 +14,7 @@ mod CountableContract { struct Storage { #[substorage(v0)] counter: countable_component::Storage, - switch: bool + switch: bool, } // Implementation of the dependency: @@ -48,16 +48,15 @@ mod tests { use components::countable::{ICountableDispatcher, ICountableDispatcherTrait}; use components::switchable::{ISwitchableDispatcher, ISwitchableDispatcherTrait}; - use starknet::SyscallResultTrait; use starknet::syscalls::deploy_syscall; fn deploy() -> (ICountableDispatcher, ISwitchableDispatcher) { let (contract_address, _) = deploy_syscall( - CountableContract::TEST_CLASS_HASH.try_into().unwrap(), 0, array![].span(), false + CountableContract::TEST_CLASS_HASH.try_into().unwrap(), 0, array![].span(), false, ) - .unwrap_syscall(); + .unwrap(); - (ICountableDispatcher { contract_address }, ISwitchableDispatcher { contract_address },) + (ICountableDispatcher { contract_address }, ISwitchableDispatcher { contract_address }) } #[test] diff --git a/listings/applications/components_dependencies/src/contract_countable_switchable.cairo b/listings/applications/components_dependencies/src/contract_countable_switchable.cairo index d190e997..b8aa72f9 100644 --- a/listings/applications/components_dependencies/src/contract_countable_switchable.cairo +++ b/listings/applications/components_dependencies/src/contract_countable_switchable.cairo @@ -18,7 +18,7 @@ mod CountableContract { #[substorage(v0)] counter: countable_component::Storage, #[substorage(v0)] - switch: switchable_component::Storage + switch: switchable_component::Storage, } #[constructor] @@ -41,16 +41,15 @@ mod tests { use components::countable::{ICountableDispatcher, ICountableDispatcherTrait}; use components::switchable::{ISwitchableDispatcher, ISwitchableDispatcherTrait}; - use starknet::SyscallResultTrait; use starknet::syscalls::deploy_syscall; fn deploy() -> (ICountableDispatcher, ISwitchableDispatcher) { let (contract_address, _) = deploy_syscall( - CountableContract::TEST_CLASS_HASH.try_into().unwrap(), 0, array![].span(), false + CountableContract::TEST_CLASS_HASH.try_into().unwrap(), 0, array![].span(), false, ) - .unwrap_syscall(); + .unwrap(); - (ICountableDispatcher { contract_address }, ISwitchableDispatcher { contract_address },) + (ICountableDispatcher { contract_address }, ISwitchableDispatcher { contract_address }) } #[test] diff --git a/listings/applications/components_dependencies/src/contract_countable_switchable_internal.cairo b/listings/applications/components_dependencies/src/contract_countable_switchable_internal.cairo index b79592aa..2768495b 100644 --- a/listings/applications/components_dependencies/src/contract_countable_switchable_internal.cairo +++ b/listings/applications/components_dependencies/src/contract_countable_switchable_internal.cairo @@ -18,7 +18,7 @@ pub mod CountableContract { #[substorage(v0)] counter: countable_component::Storage, #[substorage(v0)] - switch: switchable_component::Storage + switch: switchable_component::Storage, } #[constructor] @@ -41,16 +41,15 @@ mod tests { use components::countable::{ICountableDispatcher, ICountableDispatcherTrait}; use components::switchable::{ISwitchableDispatcher, ISwitchableDispatcherTrait}; - use starknet::SyscallResultTrait; use starknet::syscalls::deploy_syscall; fn deploy() -> (ICountableDispatcher, ISwitchableDispatcher) { let (contract_address, _) = deploy_syscall( - CountableContract::TEST_CLASS_HASH.try_into().unwrap(), 0, array![].span(), false + CountableContract::TEST_CLASS_HASH.try_into().unwrap(), 0, array![].span(), false, ) - .unwrap_syscall(); + .unwrap(); - (ICountableDispatcher { contract_address }, ISwitchableDispatcher { contract_address },) + (ICountableDispatcher { contract_address }, ISwitchableDispatcher { contract_address }) } #[test] diff --git a/listings/applications/components_dependencies/src/countable_dep_switch.cairo b/listings/applications/components_dependencies/src/countable_dep_switch.cairo index ec59fa0d..3d8a7dce 100644 --- a/listings/applications/components_dependencies/src/countable_dep_switch.cairo +++ b/listings/applications/components_dependencies/src/countable_dep_switch.cairo @@ -13,7 +13,7 @@ pub mod countable_component { // [!region impl] #[embeddable_as(Countable)] impl CountableImpl< - TContractState, +HasComponent, +ISwitchable + TContractState, +HasComponent, +ISwitchable, > of ICountable> { fn get(self: @ComponentState) -> u32 { self.countable_value.read() @@ -68,13 +68,12 @@ mod test { use super::MockContract; use components::countable::{ICountableDispatcher, ICountableDispatcherTrait}; use starknet::syscalls::deploy_syscall; - use starknet::SyscallResultTrait; fn deploy_countable() -> ICountableDispatcher { let (contract_address, _) = deploy_syscall( - MockContract::TEST_CLASS_HASH.try_into().unwrap(), 0, array![].span(), false + MockContract::TEST_CLASS_HASH.try_into().unwrap(), 0, array![].span(), false, ) - .unwrap_syscall(); + .unwrap(); ICountableDispatcher { contract_address: contract_address } } diff --git a/listings/applications/components_dependencies/src/countable_internal_dep_switch.cairo b/listings/applications/components_dependencies/src/countable_internal_dep_switch.cairo index c6c82ac6..d055128c 100644 --- a/listings/applications/components_dependencies/src/countable_internal_dep_switch.cairo +++ b/listings/applications/components_dependencies/src/countable_internal_dep_switch.cairo @@ -19,17 +19,17 @@ pub mod countable_component { TContractState, +HasComponent, +switchable_component::HasComponent, - +Drop + +Drop, > of GetSwitchableTrait { fn get_switchable( - self: @ComponentState + self: @ComponentState, ) -> @switchable_component::ComponentState { let contract = self.get_contract(); switchable_component::HasComponent::::get_component(contract) } fn get_switchable_mut( - ref self: ComponentState + ref self: ComponentState, ) -> switchable_component::ComponentState { let mut contract = self.get_contract_mut(); switchable_component::HasComponent::::get_component_mut(ref contract) @@ -42,7 +42,7 @@ pub mod countable_component { +HasComponent, +ISwitchable, +switchable_component::HasComponent, - +Drop + +Drop, > of ICountable> { fn get(self: @ComponentState) -> u32 { self.countable_value.read() diff --git a/listings/applications/constant_product_amm/src/contracts.cairo b/listings/applications/constant_product_amm/src/contracts.cairo index b5649115..9b203a8a 100644 --- a/listings/applications/constant_product_amm/src/contracts.cairo +++ b/listings/applications/constant_product_amm/src/contracts.cairo @@ -31,7 +31,7 @@ pub mod ConstantProductAmm { #[constructor] fn constructor( - ref self: ContractState, token0: ContractAddress, token1: ContractAddress, fee: u16 + ref self: ContractState, token0: ContractAddress, token1: ContractAddress, fee: u16, ) { // assert(fee <= 1000, 'fee > 1000'); self.token0.write(IERC20Dispatcher { contract_address: token0 }); @@ -61,7 +61,7 @@ pub mod ConstantProductAmm { assert( token == self.token0.read().contract_address || token == self.token1.read().contract_address, - 'invalid token' + 'invalid token', ); token == self.token0.read().contract_address } @@ -83,11 +83,11 @@ pub mod ConstantProductAmm { let is_token0: bool = self.select_token(token_in); let (token0, token1): (IERC20Dispatcher, IERC20Dispatcher) = ( - self.token0.read(), self.token1.read() + self.token0.read(), self.token1.read(), ); let (reserve0, reserve1): (u256, u256) = (self.reserve0.read(), self.reserve1.read()); let ( - token_in, token_out, reserve_in, reserve_out + token_in, token_out, reserve_in, reserve_out, ): (IERC20Dispatcher, IERC20Dispatcher, u256, u256) = if (is_token0) { (token0, token1, reserve0, reserve1) @@ -121,7 +121,7 @@ pub mod ConstantProductAmm { let caller = get_caller_address(); let this = get_contract_address(); let (token0, token1): (IERC20Dispatcher, IERC20Dispatcher) = ( - self.token0.read(), self.token1.read() + self.token0.read(), self.token1.read(), ); token0.transfer_from(caller, this, amount0); @@ -196,7 +196,7 @@ pub mod ConstantProductAmm { (amount0 * amount1).sqrt().into() } else { PrivateFunctions::min( - amount0 * total_supply / reserve0, amount1 * total_supply / reserve1 + amount0 * total_supply / reserve0, amount1 * total_supply / reserve1, ) }; assert(shares > 0, 'shares = 0'); @@ -210,7 +210,7 @@ pub mod ConstantProductAmm { let caller = get_caller_address(); let this = get_contract_address(); let (token0, token1): (IERC20Dispatcher, IERC20Dispatcher) = ( - self.token0.read(), self.token1.read() + self.token0.read(), self.token1.read(), ); // Claim @@ -251,7 +251,7 @@ pub mod ConstantProductAmm { let total_supply = self.total_supply.read(); let (amount0, amount1): (u256, u256) = ( - (shares * bal0) / total_supply, (shares * bal1) / total_supply + (shares * bal0) / total_supply, (shares * bal1) / total_supply, ); assert(amount0 > 0 && amount1 > 0, 'amount0 or amount1 = 0'); diff --git a/listings/applications/constant_product_amm/src/tests.cairo b/listings/applications/constant_product_amm/src/tests.cairo index 7a87e616..e1d1970a 100644 --- a/listings/applications/constant_product_amm/src/tests.cairo +++ b/listings/applications/constant_product_amm/src/tests.cairo @@ -13,14 +13,14 @@ pub mod ERC20Token { #[storage] struct Storage { #[substorage(v0)] - erc20: ERC20Component::Storage + erc20: ERC20Component::Storage, } #[event] #[derive(Drop, starknet::Event)] enum Event { #[flat] - ERC20Event: ERC20Component::Event + ERC20Event: ERC20Component::Event, } #[constructor] @@ -29,7 +29,7 @@ pub mod ERC20Token { initial_supply: u256, recipient: ContractAddress, name: ByteArray, - symbol: ByteArray + symbol: ByteArray, ) { self.erc20.initializer(name, symbol); self.erc20.mint(recipient, initial_supply); diff --git a/listings/applications/crowdfunding/src/campaign.cairo b/listings/applications/crowdfunding/src/campaign.cairo index 607eae69..684093f7 100644 --- a/listings/applications/crowdfunding/src/campaign.cairo +++ b/listings/applications/crowdfunding/src/campaign.cairo @@ -37,8 +37,7 @@ pub mod Campaign { use core::num::traits::Zero; use openzeppelin::token::erc20::interface::{IERC20Dispatcher, IERC20DispatcherTrait}; use starknet::{ - ClassHash, ContractAddress, SyscallResultTrait, get_block_timestamp, get_caller_address, - get_contract_address + ClassHash, ContractAddress, get_block_timestamp, get_caller_address, get_contract_address, }; use components::ownable::ownable_component; use super::pledgeable::pledgeable_component; @@ -125,7 +124,7 @@ pub mod Campaign { #[derive(Drop, starknet::Event)] pub struct Upgraded { - pub implementation: ClassHash + pub implementation: ClassHash, } pub mod Errors { @@ -296,14 +295,15 @@ pub mod Campaign { if let Option::Some(end_time) = new_end_time { assert(end_time >= get_block_timestamp(), Errors::END_BEFORE_NOW); assert( - end_time <= get_block_timestamp() + NINETY_DAYS, Errors::END_BIGGER_THAN_MAX + end_time <= get_block_timestamp() + NINETY_DAYS, + Errors::END_BIGGER_THAN_MAX, ); self.end_time.write(end_time); }; self._refund_all("contract upgraded"); } - starknet::syscalls::replace_class_syscall(impl_hash).unwrap_syscall(); + starknet::syscalls::replace_class_syscall(impl_hash).unwrap(); self.emit(Event::Upgraded(Upgraded { implementation: impl_hash })); } diff --git a/listings/applications/crowdfunding/src/campaign/pledgeable.cairo b/listings/applications/crowdfunding/src/campaign/pledgeable.cairo index 06ffbe5c..2b90459a 100644 --- a/listings/applications/crowdfunding/src/campaign/pledgeable.cairo +++ b/listings/applications/crowdfunding/src/campaign/pledgeable.cairo @@ -18,7 +18,7 @@ pub mod pledgeable_component { use starknet::ContractAddress; use starknet::storage::{ Map, StorageMapReadAccess, StorageMapWriteAccess, StoragePointerReadAccess, - StoragePointerWriteAccess + StoragePointerWriteAccess, }; #[storage] @@ -39,7 +39,7 @@ pub mod pledgeable_component { #[embeddable_as(Pledgeable)] pub impl PledgeableImpl< - TContractState, +HasComponent + TContractState, +HasComponent, > of super::IPledgeable> { fn add(ref self: ComponentState, pledger: ContractAddress, amount: u256) { let old_amount: u256 = self.pledger_to_amount.read(pledger); @@ -134,7 +134,7 @@ mod tests { #[event] #[derive(Drop, starknet::Event)] enum Event { - PledgeableEvent: pledgeable_component::Event + PledgeableEvent: pledgeable_component::Event, } #[abi(embed_v0)] diff --git a/listings/applications/crowdfunding/src/mock_upgrade.cairo b/listings/applications/crowdfunding/src/mock_upgrade.cairo index de4c5e60..ee89427c 100644 --- a/listings/applications/crowdfunding/src/mock_upgrade.cairo +++ b/listings/applications/crowdfunding/src/mock_upgrade.cairo @@ -5,8 +5,7 @@ pub mod MockUpgrade { use core::num::traits::Zero; use openzeppelin::token::erc20::interface::{IERC20Dispatcher, IERC20DispatcherTrait}; use starknet::{ - ClassHash, ContractAddress, SyscallResultTrait, get_block_timestamp, get_caller_address, - get_contract_address + ClassHash, ContractAddress, get_block_timestamp, get_caller_address, get_contract_address, }; use components::ownable::ownable_component; use crowdfunding::campaign::pledgeable::pledgeable_component; @@ -93,7 +92,7 @@ pub mod MockUpgrade { #[derive(Drop, starknet::Event)] pub struct Upgraded { - pub implementation: ClassHash + pub implementation: ClassHash, } const NINETY_DAYS: u64 = 90 * 24 * 60 * 60; @@ -237,14 +236,15 @@ pub mod MockUpgrade { if let Option::Some(end_time) = new_end_time { assert(end_time >= get_block_timestamp(), Errors::END_BEFORE_NOW); assert( - end_time <= get_block_timestamp() + NINETY_DAYS, Errors::END_BIGGER_THAN_MAX + end_time <= get_block_timestamp() + NINETY_DAYS, + Errors::END_BIGGER_THAN_MAX, ); self.end_time.write(end_time); }; self._refund_all("contract upgraded"); } - starknet::syscalls::replace_class_syscall(impl_hash).unwrap_syscall(); + starknet::syscalls::replace_class_syscall(impl_hash).unwrap(); self.emit(Event::Upgraded(Upgraded { implementation: impl_hash })); } diff --git a/listings/applications/crowdfunding/src/tests.cairo b/listings/applications/crowdfunding/src/tests.cairo index 11f2aaa5..57f0ecec 100644 --- a/listings/applications/crowdfunding/src/tests.cairo +++ b/listings/applications/crowdfunding/src/tests.cairo @@ -1,8 +1,8 @@ -use starknet::{ContractAddress, get_block_timestamp, contract_address_const,}; +use starknet::{ContractAddress, get_block_timestamp, contract_address_const}; use snforge_std::{ declare, ContractClass, ContractClassTrait, start_cheat_caller_address, stop_cheat_caller_address, spy_events, EventSpyAssertionsTrait, get_class_hash, - DeclareResultTrait, start_cheat_block_timestamp_global + DeclareResultTrait, start_cheat_block_timestamp_global, }; use crowdfunding::campaign::{Campaign, ICampaignDispatcher, ICampaignDispatcherTrait}; @@ -17,7 +17,7 @@ fn deploy( goal: u256, start_time: u64, end_time: u64, - token: ContractAddress + token: ContractAddress, ) -> ICampaignDispatcher { let creator = contract_address_const::<'creator'>(); let mut calldata: Array:: = array![]; @@ -35,7 +35,7 @@ fn deploy( } fn deploy_with_token( - contract: ContractClass, token: ContractClass + contract: ContractClass, token: ContractClass, ) -> (ICampaignDispatcher, IERC20Dispatcher) { // define ERC20 data let token_name: ByteArray = "My Token"; @@ -65,7 +65,7 @@ fn deploy_with_token( let start_time = get_block_timestamp(); let end_time = start_time + 60; let campaign_dispatcher = deploy( - contract, "title 1", "description 1", 10000, start_time, end_time, token_address + contract, "title 1", "description 1", 10000, start_time, end_time, token_address, ); // approve the pledges for each pledger @@ -96,7 +96,7 @@ fn test_deploy() { 10000, start_time, end_time, - contract_address_const::<'token'>() + contract_address_const::<'token'>(), ); let details = campaign.get_details(); @@ -143,10 +143,10 @@ fn test_successful_campaign() { ( campaign.contract_address, Campaign::Event::PledgeMade( - Campaign::PledgeMade { pledger: pledger_1, amount: 3000 } - ) - ) - ] + Campaign::PledgeMade { pledger: pledger_1, amount: 3000 }, + ), + ), + ], ); // 2nd donation @@ -163,10 +163,10 @@ fn test_successful_campaign() { ( campaign.contract_address, Campaign::Event::PledgeMade( - Campaign::PledgeMade { pledger: pledger_2, amount: 500 } - ) - ) - ] + Campaign::PledgeMade { pledger: pledger_2, amount: 500 }, + ), + ), + ], ); // 3rd donation @@ -183,10 +183,10 @@ fn test_successful_campaign() { ( campaign.contract_address, Campaign::Event::PledgeMade( - Campaign::PledgeMade { pledger: pledger_3, amount: 7000 } - ) - ) - ] + Campaign::PledgeMade { pledger: pledger_3, amount: 7000 }, + ), + ), + ], ); // claim @@ -202,9 +202,9 @@ fn test_successful_campaign() { @array![ ( campaign.contract_address, - Campaign::Event::Claimed(Campaign::Claimed { amount: 10500 }) - ) - ] + Campaign::Event::Claimed(Campaign::Claimed { amount: 10500 }), + ), + ], ); } @@ -230,9 +230,11 @@ fn test_upgrade_class_hash() { @array![ ( campaign.contract_address, - Campaign::Event::Upgraded(Campaign::Upgraded { implementation: new_class_hash }) - ) - ] + Campaign::Event::Upgraded( + Campaign::Upgraded { implementation: new_class_hash }, + ), + ), + ], ); // test active campaign @@ -268,15 +270,17 @@ fn test_upgrade_class_hash() { @array![ ( campaign.contract_address, - Campaign::Event::Upgraded(Campaign::Upgraded { implementation: new_class_hash }) + Campaign::Event::Upgraded( + Campaign::Upgraded { implementation: new_class_hash }, + ), ), ( campaign.contract_address, Campaign::Event::RefundedAll( - Campaign::RefundedAll { reason: "contract upgraded" } - ) - ) - ] + Campaign::RefundedAll { reason: "contract upgraded" }, + ), + ), + ], ); } @@ -325,13 +329,13 @@ fn test_cancel() { @array![ ( campaign.contract_address, - Campaign::Event::RefundedAll(Campaign::RefundedAll { reason: "testing" }) + Campaign::Event::RefundedAll(Campaign::RefundedAll { reason: "testing" }), ), ( campaign.contract_address, - Campaign::Event::Canceled(Campaign::Canceled { reason: "testing" }) - ) - ] + Campaign::Event::Canceled(Campaign::Canceled { reason: "testing" }), + ), + ], ); // test failed campaign @@ -376,13 +380,13 @@ fn test_cancel() { @array![ ( campaign.contract_address, - Campaign::Event::RefundedAll(Campaign::RefundedAll { reason: "testing" }) + Campaign::Event::RefundedAll(Campaign::RefundedAll { reason: "testing" }), ), ( campaign.contract_address, - Campaign::Event::Canceled(Campaign::Canceled { reason: "testing" }) - ) - ] + Campaign::Event::Canceled(Campaign::Canceled { reason: "testing" }), + ), + ], ); } @@ -391,7 +395,7 @@ fn test_refund() { // setup let (campaign, token) = deploy_with_token( *declare("Campaign").unwrap().contract_class(), - *declare("ERC20Upgradeable").unwrap().contract_class() + *declare("ERC20Upgradeable").unwrap().contract_class(), ); let mut spy = spy_events(); let creator = contract_address_const::<'creator'>(); @@ -430,11 +434,11 @@ fn test_refund() { campaign.contract_address, Campaign::Event::Refunded( Campaign::Refunded { - pledger: pledger_1, amount: amount_1, reason: "testing" - } - ) - ) - ] + pledger: pledger_1, amount: amount_1, reason: "testing", + }, + ), + ), + ], ); } @@ -443,7 +447,7 @@ fn test_unpledge() { // setup let (campaign, token) = deploy_with_token( *declare("Campaign").unwrap().contract_class(), - *declare("ERC20Upgradeable").unwrap().contract_class() + *declare("ERC20Upgradeable").unwrap().contract_class(), ); let mut spy = spy_events(); let pledger = contract_address_const::<'pledger_1'>(); @@ -469,9 +473,9 @@ fn test_unpledge() { ( campaign.contract_address, Campaign::Event::Unpledged( - Campaign::Unpledged { pledger, amount, reason: "testing" } - ) - ) - ] + Campaign::Unpledged { pledger, amount, reason: "testing" }, + ), + ), + ], ); } diff --git a/listings/applications/erc20/src/token.cairo b/listings/applications/erc20/src/token.cairo index 467e6e85..4baa0e43 100644 --- a/listings/applications/erc20/src/token.cairo +++ b/listings/applications/erc20/src/token.cairo @@ -9,19 +9,19 @@ pub trait IERC20 { fn get_total_supply(self: @TContractState) -> felt252; fn balance_of(self: @TContractState, account: ContractAddress) -> felt252; fn allowance( - self: @TContractState, owner: ContractAddress, spender: ContractAddress + self: @TContractState, owner: ContractAddress, spender: ContractAddress, ) -> felt252; fn transfer(ref self: TContractState, recipient: ContractAddress, amount: felt252); fn transfer_from( ref self: TContractState, sender: ContractAddress, recipient: ContractAddress, - amount: felt252 + amount: felt252, ); fn approve(ref self: TContractState, spender: ContractAddress, amount: felt252); fn increase_allowance(ref self: TContractState, spender: ContractAddress, added_value: felt252); fn decrease_allowance( - ref self: TContractState, spender: ContractAddress, subtracted_value: felt252 + ref self: TContractState, spender: ContractAddress, subtracted_value: felt252, ); } // [!endregion interface] @@ -35,7 +35,7 @@ pub mod erc20 { use starknet::ContractAddress; use starknet::storage::{ Map, StorageMapReadAccess, StorageMapWriteAccess, StoragePointerReadAccess, - StoragePointerWriteAccess + StoragePointerWriteAccess, }; #[storage] @@ -83,7 +83,7 @@ pub mod erc20 { name: felt252, decimals: u8, initial_supply: felt252, - symbol: felt252 + symbol: felt252, ) { self.name.write(name); self.symbol.write(symbol); @@ -114,7 +114,7 @@ pub mod erc20 { } fn allowance( - self: @ContractState, owner: ContractAddress, spender: ContractAddress + self: @ContractState, owner: ContractAddress, spender: ContractAddress, ) -> felt252 { self.allowances.read((owner, spender)) } @@ -128,7 +128,7 @@ pub mod erc20 { ref self: ContractState, sender: ContractAddress, recipient: ContractAddress, - amount: felt252 + amount: felt252, ) { let caller = get_caller_address(); self.spend_allowance(sender, caller, amount); @@ -141,22 +141,22 @@ pub mod erc20 { } fn increase_allowance( - ref self: ContractState, spender: ContractAddress, added_value: felt252 + ref self: ContractState, spender: ContractAddress, added_value: felt252, ) { let caller = get_caller_address(); self .approve_helper( - caller, spender, self.allowances.read((caller, spender)) + added_value + caller, spender, self.allowances.read((caller, spender)) + added_value, ); } fn decrease_allowance( - ref self: ContractState, spender: ContractAddress, subtracted_value: felt252 + ref self: ContractState, spender: ContractAddress, subtracted_value: felt252, ) { let caller = get_caller_address(); self .approve_helper( - caller, spender, self.allowances.read((caller, spender)) - subtracted_value + caller, spender, self.allowances.read((caller, spender)) - subtracted_value, ); } } @@ -167,7 +167,7 @@ pub mod erc20 { ref self: ContractState, sender: ContractAddress, recipient: ContractAddress, - amount: felt252 + amount: felt252, ) { assert(sender.is_non_zero(), Errors::TRANSFER_FROM_ZERO); assert(recipient.is_non_zero(), Errors::TRANSFER_TO_ZERO); @@ -180,7 +180,7 @@ pub mod erc20 { ref self: ContractState, owner: ContractAddress, spender: ContractAddress, - amount: felt252 + amount: felt252, ) { let allowance = self.allowances.read((owner, spender)); self.allowances.write((owner, spender), allowance - amount); @@ -190,7 +190,7 @@ pub mod erc20 { ref self: ContractState, owner: ContractAddress, spender: ContractAddress, - amount: felt252 + amount: felt252, ) { assert(spender.is_non_zero(), Errors::APPROVE_TO_ZERO); self.allowances.write((owner, spender), amount); @@ -207,9 +207,9 @@ pub mod erc20 { .emit( Event::Transfer( Transfer { - from: contract_address_const::<0>(), to: recipient, value: amount - } - ) + from: contract_address_const::<0>(), to: recipient, value: amount, + }, + ), ); } } @@ -220,9 +220,7 @@ pub mod erc20 { mod tests { use super::{erc20, IERC20Dispatcher, IERC20DispatcherTrait, erc20::{Event, Transfer, Approval}}; - use starknet::{ - ContractAddress, SyscallResultTrait, syscalls::deploy_syscall, contract_address_const - }; + use starknet::{ContractAddress, syscalls::deploy_syscall, contract_address_const}; use core::num::traits::Zero; use starknet::testing::set_contract_address; @@ -239,16 +237,16 @@ mod tests { erc20::TEST_CLASS_HASH.try_into().unwrap(), recipient.into(), array![recipient.into(), token_name, decimals.into(), initial_supply, symbols].span(), - false + false, ) - .unwrap_syscall(); + .unwrap(); (IERC20Dispatcher { contract_address }, contract_address) } #[test] - #[should_panic(expected: ('ERC20: mint to 0', 'CONSTRUCTOR_FAILED'))] + #[should_panic] fn test_deploy_when_recipient_is_address_zero() { let recipient: ContractAddress = Zero::zero(); @@ -256,9 +254,9 @@ mod tests { erc20::TEST_CLASS_HASH.try_into().unwrap(), recipient.into(), array![recipient.into(), token_name, decimals.into(), initial_supply, symbols].span(), - false + false, ) - .unwrap_syscall(); + .unwrap(); } #[test] fn test_deploy_success() { @@ -268,9 +266,9 @@ mod tests { starknet::testing::pop_log(contract_address), Option::Some( Event::Transfer( - Transfer { from: Zero::zero(), to: recipient, value: initial_supply } - ) - ) + Transfer { from: Zero::zero(), to: recipient, value: initial_supply }, + ), + ), ); } @@ -305,7 +303,7 @@ mod tests { let recipient = contract_address_const::<'initialized_recipient'>(); let (dispatcher, _) = deploy(); assert( - dispatcher.balance_of(recipient) == initial_supply, 'incorrect balance of recipient' + dispatcher.balance_of(recipient) == initial_supply, 'incorrect balance of recipient', ); } @@ -353,14 +351,14 @@ mod tests { starknet::testing::pop_log(contract_address), Option::Some( Event::Transfer( - Transfer { from: Zero::zero(), to: recipient, value: initial_supply } - ) - ) + Transfer { from: Zero::zero(), to: recipient, value: initial_supply }, + ), + ), ); assert_eq!( starknet::testing::pop_log(contract_address), - Option::Some(Event::Approval(Approval { owner: caller, spender, value })) + Option::Some(Event::Approval(Approval { owner: caller, spender, value })), ); } @@ -386,7 +384,7 @@ mod tests { set_contract_address(caller); dispatcher.increase_allowance(spender, 100); assert( - dispatcher.allowance(caller, spender) == amount + 100, 'incorrect increased allowance' + dispatcher.allowance(caller, spender) == amount + 100, 'incorrect increased allowance', ); // emits one transfer event and two approval events @@ -395,19 +393,19 @@ mod tests { starknet::testing::pop_log(contract_address), Option::Some( Event::Transfer( - Transfer { from: Zero::zero(), to: recipient, value: initial_supply } - ) - ) + Transfer { from: Zero::zero(), to: recipient, value: initial_supply }, + ), + ), ); assert_eq!( starknet::testing::pop_log(contract_address), - Option::Some(Event::Approval(Approval { owner: caller, spender, value: amount })) + Option::Some(Event::Approval(Approval { owner: caller, spender, value: amount })), ); assert_eq!( starknet::testing::pop_log(contract_address), - Option::Some(Event::Approval(Approval { owner: caller, spender, value: amount + 100 })) + Option::Some(Event::Approval(Approval { owner: caller, spender, value: amount + 100 })), ); } @@ -434,7 +432,7 @@ mod tests { set_contract_address(caller); dispatcher.decrease_allowance(spender, 90); assert( - dispatcher.allowance(caller, spender) == amount - 90, 'incorrect decreased allowance' + dispatcher.allowance(caller, spender) == amount - 90, 'incorrect decreased allowance', ); // emits one transfer event and two approval events @@ -443,19 +441,19 @@ mod tests { starknet::testing::pop_log(contract_address), Option::Some( Event::Transfer( - Transfer { from: Zero::zero(), to: recipient, value: initial_supply } - ) - ) + Transfer { from: Zero::zero(), to: recipient, value: initial_supply }, + ), + ), ); assert_eq!( starknet::testing::pop_log(contract_address), - Option::Some(Event::Approval(Approval { owner: caller, spender, value: amount })) + Option::Some(Event::Approval(Approval { owner: caller, spender, value: amount })), ); assert_eq!( starknet::testing::pop_log(contract_address), - Option::Some(Event::Approval(Approval { owner: caller, spender, value: amount - 90 })) + Option::Some(Event::Approval(Approval { owner: caller, spender, value: amount - 90 })), ); } @@ -494,13 +492,13 @@ mod tests { assert_eq!( starknet::testing::pop_log(contract_address), Option::Some( - Event::Transfer(Transfer { from: Zero::zero(), to: caller, value: initial_supply }) - ) + Event::Transfer(Transfer { from: Zero::zero(), to: caller, value: initial_supply }), + ), ); assert_eq!( starknet::testing::pop_log(contract_address), - Option::Some(Event::Transfer(Transfer { from: caller, to: receiver, value: amount })) + Option::Some(Event::Transfer(Transfer { from: caller, to: receiver, value: amount })), ); } @@ -543,13 +541,13 @@ mod tests { assert_eq!( starknet::testing::pop_log(contract_address), Option::Some( - Event::Transfer(Transfer { from: Zero::zero(), to: caller, value: initial_supply }) - ) + Event::Transfer(Transfer { from: Zero::zero(), to: caller, value: initial_supply }), + ), ); assert_eq!( starknet::testing::pop_log(contract_address), - Option::Some(Event::Transfer(Transfer { from: caller, to: receiver, value: amount })) + Option::Some(Event::Transfer(Transfer { from: caller, to: receiver, value: amount })), ); } } diff --git a/listings/applications/merkle_tree/src/contract.cairo b/listings/applications/merkle_tree/src/contract.cairo index bc5a2d67..e26e1d03 100644 --- a/listings/applications/merkle_tree/src/contract.cairo +++ b/listings/applications/merkle_tree/src/contract.cairo @@ -14,7 +14,7 @@ pub trait IMerkleTree { fn get_root(self: @TContractState) -> felt252; // function to verify if leaf node exists in the merkle tree fn verify( - self: @TContractState, proof: Array, root: felt252, leaf: felt252, index: usize + self: @TContractState, proof: Array, root: felt252, leaf: felt252, index: usize, ) -> bool; } @@ -28,19 +28,19 @@ pub mod MerkleTree { use core::poseidon::PoseidonTrait; use core::hash::{HashStateTrait, HashStateExTrait}; use starknet::storage::{ - StoragePointerWriteAccess, StoragePointerReadAccess, Vec, MutableVecTrait, VecTrait + StoragePointerWriteAccess, StoragePointerReadAccess, Vec, MutableVecTrait, VecTrait, }; use super::ByteArrayHashTrait; #[storage] struct Storage { - pub hashes: Vec + pub hashes: Vec, } #[derive(Drop, Serde, Copy)] struct Vec2 { x: u32, - y: u32 + y: u32, } #[abi(embed_v0)] @@ -96,7 +96,7 @@ pub mod MerkleTree { mut proof: Array, root: felt252, leaf: felt252, - mut index: usize + mut index: usize, ) -> bool { let mut current_hash = leaf; diff --git a/listings/applications/merkle_tree/src/tests.cairo b/listings/applications/merkle_tree/src/tests.cairo index 9188cea3..65904224 100644 --- a/listings/applications/merkle_tree/src/tests.cairo +++ b/listings/applications/merkle_tree/src/tests.cairo @@ -1,7 +1,7 @@ use merkle_tree::contract::IMerkleTreeDispatcherTrait; use merkle_tree::contract::{IMerkleTreeDispatcher, MerkleTree, ByteArrayHashTrait}; +use starknet::ContractAddress; use starknet::syscalls::deploy_syscall; -use starknet::{ContractAddress, SyscallResultTrait}; use starknet::testing::set_contract_address; use core::poseidon::PoseidonTrait; use core::hash::{HashStateTrait, HashStateExTrait}; @@ -9,7 +9,7 @@ use starknet::storage::{VecTrait, StoragePointerReadAccess}; fn deploy_util(class_hash: felt252, calldata: Array) -> ContractAddress { let (address, _) = deploy_syscall(class_hash.try_into().unwrap(), 0, calldata.span(), false) - .unwrap_syscall(); + .unwrap(); address } @@ -83,11 +83,9 @@ fn build_tree_succeeds() { assert_eq!(state.hashes.len(), expected_hashes.len().into()); - for i in 0 - ..expected_hashes - .len() { - assert_eq!(state.hashes.at(i.into()).read(), *expected_hashes.at(i)); - } + for i in 0..expected_hashes.len() { + assert_eq!(state.hashes.at(i.into()).read(), *expected_hashes.at(i)); + } } #[test] @@ -173,9 +171,9 @@ fn verify_leaf_fails() { let res = deploy .verify( wrong_proof, // proof - *hashes.at(6), // root - data_3.hash(), // leaf - 2 // leaf index + *hashes.at(6), // root + data_3.hash(), // leaf + 2 // leaf index ); assert(!res, '2- Leaf should NOT be in tree'); } diff --git a/listings/applications/nft_dutch_auction/src/erc721.cairo b/listings/applications/nft_dutch_auction/src/erc721.cairo index b18c6a05..3802a797 100644 --- a/listings/applications/nft_dutch_auction/src/erc721.cairo +++ b/listings/applications/nft_dutch_auction/src/erc721.cairo @@ -9,12 +9,12 @@ pub trait IERC721 { fn owner_of(self: @TContractState, token_id: u256) -> ContractAddress; fn get_approved(self: @TContractState, token_id: u256) -> ContractAddress; fn is_approved_for_all( - self: @TContractState, owner: ContractAddress, operator: ContractAddress + self: @TContractState, owner: ContractAddress, operator: ContractAddress, ) -> bool; fn approve(ref self: TContractState, to: ContractAddress, token_id: u256); fn set_approval_for_all(ref self: TContractState, operator: ContractAddress, approved: bool); fn transfer_from( - ref self: TContractState, from: ContractAddress, to: ContractAddress, token_id: u256 + ref self: TContractState, from: ContractAddress, to: ContractAddress, token_id: u256, ); fn mint(ref self: TContractState, to: ContractAddress, token_id: u256); } @@ -27,7 +27,7 @@ mod ERC721 { use starknet::{ContractAddress, get_caller_address}; use starknet::storage::{ Map, StorageMapReadAccess, StorageMapWriteAccess, StoragePointerReadAccess, - StoragePointerWriteAccess + StoragePointerWriteAccess, }; use core::num::traits::Zero; @@ -50,7 +50,7 @@ mod ERC721 { enum Event { Approval: Approval, Transfer: Transfer, - ApprovalForAll: ApprovalForAll + ApprovalForAll: ApprovalForAll, } //////////////////////////////// @@ -60,7 +60,7 @@ mod ERC721 { struct Approval { owner: ContractAddress, to: ContractAddress, - token_id: u256 + token_id: u256, } //////////////////////////////// @@ -70,7 +70,7 @@ mod ERC721 { struct Transfer { from: ContractAddress, to: ContractAddress, - token_id: u256 + token_id: u256, } //////////////////////////////// @@ -80,7 +80,7 @@ mod ERC721 { struct ApprovalForAll { owner: ContractAddress, operator: ContractAddress, - approved: bool + approved: bool, } @@ -145,7 +145,7 @@ mod ERC721 { // is_approved_for_all function returns approved operator for a token //////////////////////////////// fn is_approved_for_all( - self: @ContractState, owner: ContractAddress, operator: ContractAddress + self: @ContractState, owner: ContractAddress, operator: ContractAddress, ) -> bool { self.operator_approvals.read((owner, operator)) } @@ -159,7 +159,7 @@ mod ERC721 { assert( get_caller_address() == owner || self.is_approved_for_all(owner, get_caller_address()), - 'Not token owner' + 'Not token owner', ); self.token_approvals.write(token_id, to); self.emit(Approval { owner: self.owner_of(token_id), to: to, token_id: token_id }); @@ -169,7 +169,7 @@ mod ERC721 { // set_approval_for_all function approves an operator to spend all tokens //////////////////////////////// fn set_approval_for_all( - ref self: ContractState, operator: ContractAddress, approved: bool + ref self: ContractState, operator: ContractAddress, approved: bool, ) { let owner = get_caller_address(); assert(owner != operator, 'ERC721: approve to caller'); @@ -181,11 +181,11 @@ mod ERC721 { // transfer_from function is used to transfer a token //////////////////////////////// fn transfer_from( - ref self: ContractState, from: ContractAddress, to: ContractAddress, token_id: u256 + ref self: ContractState, from: ContractAddress, to: ContractAddress, token_id: u256, ) { assert( self._is_approved_or_owner(get_caller_address(), token_id), - 'neither owner nor approved' + 'neither owner nor approved', ); self._transfer(from, to, token_id); } @@ -209,7 +209,7 @@ mod ERC721 { // _is_approved_or_owner checks if an address is an approved spender or owner //////////////////////////////// fn _is_approved_or_owner( - self: @ContractState, spender: ContractAddress, token_id: u256 + self: @ContractState, spender: ContractAddress, token_id: u256, ) -> bool { let owner = self.owners.read(token_id); spender == owner @@ -229,7 +229,7 @@ mod ERC721 { // internal function that performs the transfer logic //////////////////////////////// fn _transfer( - ref self: ContractState, from: ContractAddress, to: ContractAddress, token_id: u256 + ref self: ContractState, from: ContractAddress, to: ContractAddress, token_id: u256, ) { // check that from address is equal to owner of token assert(from == self.owner_of(token_id), 'ERC721: Caller is not owner'); diff --git a/listings/applications/nft_dutch_auction/src/nft_dutch_auction.cairo b/listings/applications/nft_dutch_auction/src/nft_dutch_auction.cairo index dabf5c4c..48085039 100644 --- a/listings/applications/nft_dutch_auction/src/nft_dutch_auction.cairo +++ b/listings/applications/nft_dutch_auction/src/nft_dutch_auction.cairo @@ -9,19 +9,19 @@ pub trait IERC20 { fn get_total_supply(self: @TContractState) -> felt252; fn balance_of(self: @TContractState, account: ContractAddress) -> felt252; fn allowance( - self: @TContractState, owner: ContractAddress, spender: ContractAddress + self: @TContractState, owner: ContractAddress, spender: ContractAddress, ) -> felt252; fn transfer(ref self: TContractState, recipient: ContractAddress, amount: felt252); fn transfer_from( ref self: TContractState, sender: ContractAddress, recipient: ContractAddress, - amount: felt252 + amount: felt252, ); fn approve(ref self: TContractState, spender: ContractAddress, amount: felt252); fn increase_allowance(ref self: TContractState, spender: ContractAddress, added_value: felt252); fn decrease_allowance( - ref self: TContractState, spender: ContractAddress, subtracted_value: felt252 + ref self: TContractState, spender: ContractAddress, subtracted_value: felt252, ); } @@ -34,12 +34,12 @@ trait IERC721 { fn owner_of(self: @TContractState, token_id: u256) -> ContractAddress; fn get_approved(self: @TContractState, token_id: u256) -> ContractAddress; fn is_approved_for_all( - self: @TContractState, owner: ContractAddress, operator: ContractAddress + self: @TContractState, owner: ContractAddress, operator: ContractAddress, ) -> bool; fn approve(ref self: TContractState, to: ContractAddress, token_id: u256); fn set_approval_for_all(ref self: TContractState, operator: ContractAddress, approved: bool); fn transfer_from( - ref self: TContractState, from: ContractAddress, to: ContractAddress, token_id: u256 + ref self: TContractState, from: ContractAddress, to: ContractAddress, token_id: u256, ); fn mint(ref self: TContractState, to: ContractAddress, token_id: u256); } @@ -67,7 +67,7 @@ pub mod NFTDutchAuction { start_at: u64, expires_at: u64, purchase_count: u128, - total_supply: u128 + total_supply: u128, } mod Errors { @@ -85,7 +85,7 @@ pub mod NFTDutchAuction { seller: ContractAddress, duration: u64, discount_rate: u64, - total_supply: u128 + total_supply: u128, ) { assert(starting_price >= discount_rate * duration, Errors::LOW_STARTING_PRICE); @@ -117,7 +117,7 @@ pub mod NFTDutchAuction { let erc20_dispatcher = IERC20Dispatcher { contract_address: self.erc20_token.read() }; let erc721_dispatcher = IERC721Dispatcher { - contract_address: self.erc721_token.read() + contract_address: self.erc721_token.read(), }; let caller = get_caller_address(); @@ -142,7 +142,7 @@ mod tests { use starknet::ContractAddress; use snforge_std::{ declare, DeclareResultTrait, ContractClassTrait, cheat_caller_address, CheatSpan, - cheat_block_timestamp + cheat_block_timestamp, }; use nft_dutch_auction::erc721::{IERC721Dispatcher, IERC721DispatcherTrait}; use super::{INFTDutchAuctionDispatcher, INFTDutchAuctionDispatcherTrait}; @@ -176,7 +176,7 @@ mod tests { erc20_name, erc20_decimals.into(), erc20_initial_supply.into(), - erc20_symbol + erc20_symbol, ]; let (erc20_address, _) = erc20.deploy(@erc20_constructor_calldata).unwrap(); let nft_auction = declare("NFTDutchAuction").unwrap().contract_class(); @@ -187,7 +187,7 @@ mod tests { seller, duration, discount_rate, - total_supply + total_supply, ]; let (nft_auction_address, _) = nft_auction .deploy(@nft_auction_constructor_calldata) @@ -201,7 +201,7 @@ mod tests { let erc721_dispatcher = IERC721Dispatcher { contract_address: erc721_address }; let erc20_dispatcher = IERC20Dispatcher { contract_address: erc20_address }; let nft_auction_dispatcher = INFTDutchAuctionDispatcher { - contract_address: nft_auction_address + contract_address: nft_auction_address, }; let erc20_admin: ContractAddress = 'admin'.try_into().unwrap(); let seller: ContractAddress = 'seller'.try_into().unwrap(); @@ -256,7 +256,7 @@ mod tests { let (_, erc20_address, nft_auction_address) = get_contract_addresses(); let erc20_dispatcher = IERC20Dispatcher { contract_address: erc20_address }; let nft_auction_dispatcher = INFTDutchAuctionDispatcher { - contract_address: nft_auction_address + contract_address: nft_auction_address, }; let erc20_admin: ContractAddress = 'admin'.try_into().unwrap(); let buyer: ContractAddress = 'buyer'.try_into().unwrap(); @@ -300,7 +300,7 @@ mod tests { let (_, erc20_address, nft_auction_address) = get_contract_addresses(); let erc20_dispatcher = IERC20Dispatcher { contract_address: erc20_address }; let nft_auction_dispatcher = INFTDutchAuctionDispatcher { - contract_address: nft_auction_address + contract_address: nft_auction_address, }; let erc20_admin: ContractAddress = 'admin'.try_into().unwrap(); let buyer: ContractAddress = 'buyer'.try_into().unwrap(); @@ -337,7 +337,7 @@ mod tests { fn test_price_decreases_after_some_time() { let (_, _, nft_auction_address) = get_contract_addresses(); let nft_auction_dispatcher = INFTDutchAuctionDispatcher { - contract_address: nft_auction_address + contract_address: nft_auction_address, }; let nft_price_before_time_travel = nft_auction_dispatcher.get_price(); diff --git a/listings/applications/simple_storage_starknetjs/src/storage.cairo b/listings/applications/simple_storage_starknetjs/src/storage.cairo index c7e71819..4a9a5f00 100644 --- a/listings/applications/simple_storage_starknetjs/src/storage.cairo +++ b/listings/applications/simple_storage_starknetjs/src/storage.cairo @@ -11,7 +11,7 @@ mod SimpleStorage { #[storage] struct Storage { - stored_data: u128 + stored_data: u128, } #[abi(embed_v0)] diff --git a/listings/applications/simple_vault/Scarb.toml b/listings/applications/simple_vault/Scarb.toml index d96a0664..a6d3ace3 100644 --- a/listings/applications/simple_vault/Scarb.toml +++ b/listings/applications/simple_vault/Scarb.toml @@ -14,3 +14,4 @@ cairo_test.workspace = true test.workspace = true [[target.starknet-contract]] +build-external-contracts = ["erc20::token::erc20"] diff --git a/listings/applications/simple_vault/src/lib.cairo b/listings/applications/simple_vault/src/lib.cairo index b08098a0..1745c06d 100644 --- a/listings/applications/simple_vault/src/lib.cairo +++ b/listings/applications/simple_vault/src/lib.cairo @@ -1,4 +1 @@ mod simple_vault; - -#[cfg(test)] -mod tests; diff --git a/listings/applications/simple_vault/src/simple_vault.cairo b/listings/applications/simple_vault/src/simple_vault.cairo index c528f281..8ae7d074 100644 --- a/listings/applications/simple_vault/src/simple_vault.cairo +++ b/listings/applications/simple_vault/src/simple_vault.cairo @@ -11,19 +11,19 @@ pub trait IERC20 { fn get_total_supply(self: @TContractState) -> felt252; fn balance_of(self: @TContractState, account: ContractAddress) -> felt252; fn allowance( - self: @TContractState, owner: ContractAddress, spender: ContractAddress + self: @TContractState, owner: ContractAddress, spender: ContractAddress, ) -> felt252; fn transfer(ref self: TContractState, recipient: ContractAddress, amount: felt252); fn transfer_from( ref self: TContractState, sender: ContractAddress, recipient: ContractAddress, - amount: felt252 + amount: felt252, ); fn approve(ref self: TContractState, spender: ContractAddress, amount: felt252); fn increase_allowance(ref self: TContractState, spender: ContractAddress, added_value: felt252); fn decrease_allowance( - ref self: TContractState, spender: ContractAddress, subtracted_value: felt252 + ref self: TContractState, spender: ContractAddress, subtracted_value: felt252, ); } @@ -41,14 +41,14 @@ pub mod SimpleVault { use starknet::{ContractAddress, get_caller_address, get_contract_address}; use starknet::storage::{ Map, StorageMapReadAccess, StorageMapWriteAccess, StoragePointerReadAccess, - StoragePointerWriteAccess + StoragePointerWriteAccess, }; #[storage] struct Storage { token: IERC20Dispatcher, total_supply: u256, - balance_of: Map + balance_of: Map, } #[constructor] @@ -127,17 +127,16 @@ pub mod SimpleVault { } // [!endregion contract] +// TODO migrate to sn-foundry #[cfg(test)] mod tests { - use super::{SimpleVault, ISimpleVaultDispatcher, ISimpleVaultDispatcherTrait,}; + use super::{SimpleVault, ISimpleVaultDispatcher, ISimpleVaultDispatcherTrait}; use erc20::token::{ IERC20DispatcherTrait as IERC20DispatcherTrait_token, - IERC20Dispatcher as IERC20Dispatcher_token + IERC20Dispatcher as IERC20Dispatcher_token, }; use starknet::testing::{set_contract_address, set_account_contract_address}; - use starknet::{ - ContractAddress, SyscallResultTrait, syscalls::deploy_syscall, contract_address_const - }; + use starknet::{ContractAddress, syscalls::deploy_syscall, contract_address_const}; const token_name: felt252 = 'myToken'; const decimals: u8 = 18; @@ -151,23 +150,23 @@ mod tests { let (token_contract_address, _) = deploy_syscall( erc20::token::erc20::TEST_CLASS_HASH.try_into().unwrap(), caller.into(), - array![caller.into(), 'myToken', '8', '1000'.into(), 'MYT'].span(), - false + array![caller.into(), token_name, decimals.into(), initial_supply, symbols].span(), + false, ) - .unwrap_syscall(); + .expect('1'); let (contract_address, _) = deploy_syscall( SimpleVault::TEST_CLASS_HASH.try_into().unwrap(), 0, array![token_contract_address.into()].span(), - false + false, ) - .unwrap_syscall(); + .expect('2'); ( ISimpleVaultDispatcher { contract_address }, contract_address, - IERC20Dispatcher_token { contract_address: token_contract_address } + IERC20Dispatcher_token { contract_address: token_contract_address }, ) } diff --git a/listings/applications/simple_vault/src/tests.cairo b/listings/applications/simple_vault/src/tests.cairo deleted file mode 100644 index 361dba07..00000000 --- a/listings/applications/simple_vault/src/tests.cairo +++ /dev/null @@ -1,2 +0,0 @@ -mod tests { // TODO -} diff --git a/listings/applications/staking/src/contract.cairo b/listings/applications/staking/src/contract.cairo index 5980b2c0..7cebd961 100644 --- a/listings/applications/staking/src/contract.cairo +++ b/listings/applications/staking/src/contract.cairo @@ -28,7 +28,7 @@ pub mod StakingContract { use openzeppelin::token::erc20::interface::{IERC20Dispatcher, IERC20DispatcherTrait}; use starknet::storage::{ Map, StorageMapReadAccess, StorageMapWriteAccess, StoragePointerReadAccess, - StoragePointerWriteAccess + StoragePointerWriteAccess, }; #[storage] @@ -98,7 +98,7 @@ pub mod StakingContract { // can only set duration if the previous duration has already finished assert( self.finish_at.read() < get_block_timestamp().into(), - super::Errors::UNFINISHED_DURATION + super::Errors::UNFINISHED_DURATION, ); self.duration.write(duration); @@ -124,7 +124,7 @@ pub mod StakingContract { assert( self.reward_token.read().balance_of(get_contract_address()) >= rate * self.duration.read(), - super::Errors::NOT_ENOUGH_REWARDS + super::Errors::NOT_ENOUGH_REWARDS, ); self.reward_rate.write(rate); @@ -158,7 +158,7 @@ pub mod StakingContract { assert( self.staking_token.read().balance_of(user) >= amount, - super::Errors::NOT_ENOUGH_BALANCE + super::Errors::NOT_ENOUGH_BALANCE, ); self.update_rewards(user); diff --git a/listings/applications/staking/src/tests/staking_tests.cairo b/listings/applications/staking/src/tests/staking_tests.cairo index d899b876..50d95f5e 100644 --- a/listings/applications/staking/src/tests/staking_tests.cairo +++ b/listings/applications/staking/src/tests/staking_tests.cairo @@ -5,11 +5,10 @@ mod tests { use staking::tests::tokens::{RewardToken, StakingToken}; use staking::contract::{ StakingContract, IStakingContractDispatcher, StakingContract::Event, - StakingContract::Deposit, StakingContract::Withdrawal, StakingContract::RewardsFinished + StakingContract::Deposit, StakingContract::Withdrawal, StakingContract::RewardsFinished, }; use openzeppelin::token::erc20::{interface::IERC20Dispatcher}; use starknet::syscalls::deploy_syscall; - use starknet::SyscallResultTrait; use core::serde::Serde; use starknet::testing::{set_contract_address, set_block_timestamp, pop_log}; use starknet::{contract_address_const, ContractAddress}; @@ -19,18 +18,18 @@ mod tests { struct Deployment { contract: IStakingContractDispatcher, staking_token: IERC20Dispatcher, - reward_token: IERC20Dispatcher + reward_token: IERC20Dispatcher, } fn deploy_util(class_hash: felt252, calldata: Array) -> ContractAddress { let (address, _) = deploy_syscall(class_hash.try_into().unwrap(), 0, calldata.span(), false) - .unwrap_syscall(); + .unwrap(); address } fn deploy_erc20( - class_hash: felt252, name: ByteArray, symbol: ByteArray + class_hash: felt252, name: ByteArray, symbol: ByteArray, ) -> (ContractAddress, IERC20Dispatcher) { let supply: u256 = 1000000; let recipient = contract_address_const::<'recipient'>(); @@ -46,7 +45,7 @@ mod tests { } fn deploy_staking_contract( - staking_token_address: ContractAddress, reward_token_address: ContractAddress + staking_token_address: ContractAddress, reward_token_address: ContractAddress, ) -> (ContractAddress, IStakingContractDispatcher) { let mut calldata: Array = array![]; calldata.append(staking_token_address.into()); @@ -55,7 +54,7 @@ mod tests { let staking_contract_address = deploy_util(StakingContract::TEST_CLASS_HASH, calldata); ( staking_contract_address, - IStakingContractDispatcher { contract_address: staking_contract_address } + IStakingContractDispatcher { contract_address: staking_contract_address }, ) } @@ -68,14 +67,14 @@ mod tests { ); let (_, staking_contract) = deploy_staking_contract( - staking_token_address, reward_token_address + staking_token_address, reward_token_address, ); Deployment { contract: staking_contract, staking_token, reward_token } } fn mint_and_approve_staking_tokens_to( - recipient: ContractAddress, amount: u256, deploy: Deployment, value_to_approve: u256 + recipient: ContractAddress, amount: u256, deploy: Deployment, value_to_approve: u256, ) { // mint tokens let mut state = StakingToken::contract_state_for_testing(); @@ -89,7 +88,7 @@ mod tests { } fn mint_reward_tokens_to( - deployed_contract: ContractAddress, amount: u256, reward_token_address: ContractAddress + deployed_contract: ContractAddress, amount: u256, reward_token_address: ContractAddress, ) { // mint tokens let mut state = RewardToken::contract_state_for_testing(); @@ -116,10 +115,10 @@ mod tests { /// then assert_eq!(state.owner.read(), owner); assert_eq!( - state.staking_token.read().contract_address, deploy.staking_token.contract_address + state.staking_token.read().contract_address, deploy.staking_token.contract_address, ); assert_eq!( - state.reward_token.read().contract_address, deploy.reward_token.contract_address + state.reward_token.read().contract_address, deploy.reward_token.contract_address, ); } @@ -153,11 +152,11 @@ mod tests { // check 1st & 2nd event - when user stakes assert_eq!( pop_log(deploy.contract.contract_address), - Option::Some(Event::RewardsFinished(RewardsFinished { msg: 'Rewards not active yet' })) + Option::Some(Event::RewardsFinished(RewardsFinished { msg: 'Rewards not active yet' })), ); assert_eq!( pop_log(deploy.contract.contract_address), - Option::Some(Event::Deposit(Deposit { user, amount: stake_amount })) + Option::Some(Event::Deposit(Deposit { user, amount: stake_amount })), ); /// when - withdrawal @@ -173,17 +172,17 @@ mod tests { assert_eq!(state.total_supply.read(), stake_amount - withdrawal_amount); assert_eq!( deploy.staking_token.balance_of(user), - amount_tokens_minted - stake_amount + withdrawal_amount + amount_tokens_minted - stake_amount + withdrawal_amount, ); // check 3rd & 4th events - when user withdraws assert_eq!( pop_log(deploy.contract.contract_address), - Option::Some(Event::RewardsFinished(RewardsFinished { msg: 'Rewards not active yet' })) + Option::Some(Event::RewardsFinished(RewardsFinished { msg: 'Rewards not active yet' })), ); assert_eq!( pop_log(deploy.contract.contract_address), - Option::Some(Event::Withdrawal(Withdrawal { user, amount: withdrawal_amount })) + Option::Some(Event::Withdrawal(Withdrawal { user, amount: withdrawal_amount })), ); } @@ -201,7 +200,7 @@ mod tests { mint_reward_tokens_to( deploy.contract.contract_address, reward_tokens_amount, - deploy.reward_token.contract_address + deploy.reward_token.contract_address, ); // owner sets up rewards duration and amount @@ -226,7 +225,7 @@ mod tests { let alice_stake_amount = 40; let alice_amount_tokens_minted = 100; mint_and_approve_staking_tokens_to( - alice, alice_amount_tokens_minted, deploy, alice_stake_amount + alice, alice_amount_tokens_minted, deploy, alice_stake_amount, ); // alice stakes @@ -262,7 +261,7 @@ mod tests { let john_stake_amount = 30; let john_amount_tokens_minted = 100; mint_and_approve_staking_tokens_to( - john, john_amount_tokens_minted, deploy, john_stake_amount + john, john_amount_tokens_minted, deploy, john_stake_amount, ); // john stakes @@ -327,7 +326,7 @@ mod tests { // timestamp after the duration is finished set_block_timestamp( - block_timestamp.try_into().unwrap() + reward_duration.try_into().unwrap() + 10 + block_timestamp.try_into().unwrap() + reward_duration.try_into().unwrap() + 10, ); // alice claims @@ -405,7 +404,7 @@ mod tests { mint_reward_tokens_to( deploy.contract.contract_address, reward_tokens_amount, - deploy.reward_token.contract_address + deploy.reward_token.contract_address, ); // owner sets up rewards duration and amount @@ -429,7 +428,7 @@ mod tests { // alice claims her rewards after the duration is over set_block_timestamp( - block_timestamp.try_into().unwrap() + reward_duration.try_into().unwrap() + block_timestamp.try_into().unwrap() + reward_duration.try_into().unwrap(), ); deploy.contract.claim_rewards(); @@ -449,21 +448,25 @@ mod tests { // check 1st event - when alice stakes assert_eq!( pop_log(deploy.contract.contract_address), - Option::Some(Event::Deposit(Deposit { user: alice, amount: alice_stake_amount })) + Option::Some(Event::Deposit(Deposit { user: alice, amount: alice_stake_amount })), ); // check 2nd event - when alice claims assert_eq!( pop_log(deploy.contract.contract_address), - Option::Some(Event::RewardsFinished(RewardsFinished { msg: 'Rewards all distributed' })) + Option::Some( + Event::RewardsFinished(RewardsFinished { msg: 'Rewards all distributed' }), + ), ); // check 3rd & 4th events - when bob stakes assert_eq!( pop_log(deploy.contract.contract_address), - Option::Some(Event::RewardsFinished(RewardsFinished { msg: 'Rewards all distributed' })) + Option::Some( + Event::RewardsFinished(RewardsFinished { msg: 'Rewards all distributed' }), + ), ); assert_eq!( pop_log(deploy.contract.contract_address), - Option::Some(Event::Deposit(Deposit { user: bob, amount: bob_stake_amount })) + Option::Some(Event::Deposit(Deposit { user: bob, amount: bob_stake_amount })), ); } @@ -481,7 +484,7 @@ mod tests { mint_reward_tokens_to( deploy.contract.contract_address, reward_tokens_amount, - deploy.reward_token.contract_address + deploy.reward_token.contract_address, ); // owner sets up rewards duration and amount diff --git a/listings/applications/staking/src/tests/tokens.cairo b/listings/applications/staking/src/tests/tokens.cairo index 0b0148c6..89e1a4bd 100644 --- a/listings/applications/staking/src/tests/tokens.cairo +++ b/listings/applications/staking/src/tests/tokens.cairo @@ -28,7 +28,7 @@ pub mod RewardToken { name: ByteArray, symbol: ByteArray, initial_supply: u256, - recipient: ContractAddress + recipient: ContractAddress, ) { self.erc20.initializer(name, symbol); self.erc20.mint(recipient, initial_supply); @@ -65,7 +65,7 @@ pub mod StakingToken { name: ByteArray, symbol: ByteArray, initial_supply: u256, - recipient: ContractAddress + recipient: ContractAddress, ) { self.erc20.initializer(name, symbol); self.erc20.mint(recipient, initial_supply); diff --git a/listings/applications/timelock/src/erc721.cairo b/listings/applications/timelock/src/erc721.cairo index fddeda94..36ae6448 100644 --- a/listings/applications/timelock/src/erc721.cairo +++ b/listings/applications/timelock/src/erc721.cairo @@ -36,7 +36,7 @@ pub mod ERC721 { symbol: ByteArray, base_uri: ByteArray, recipient: ContractAddress, - token_id: u256 + token_id: u256, ) { self.erc721.initializer(name, symbol, base_uri); self.erc721.mint(recipient, token_id); diff --git a/listings/applications/timelock/src/tests/timelock.cairo b/listings/applications/timelock/src/tests/timelock.cairo index dd0c98da..bfc1893e 100644 --- a/listings/applications/timelock/src/tests/timelock.cairo +++ b/listings/applications/timelock/src/tests/timelock.cairo @@ -3,7 +3,7 @@ use starknet::account::Call; use core::poseidon::{PoseidonTrait, poseidon_hash_span}; use core::hash::HashStateTrait; use snforge_std::{ - cheat_caller_address, cheat_block_timestamp, CheatSpan, spy_events, EventSpyAssertionsTrait + cheat_caller_address, cheat_block_timestamp, CheatSpan, spy_events, EventSpyAssertionsTrait, }; use openzeppelin::token::erc721::interface::IERC721DispatcherTrait; use openzeppelin::token::erc721::erc721::ERC721Component; @@ -34,7 +34,9 @@ fn test_queue_only_owner() { .timelock_safe .queue(timelock_test.get_call(), timelock_test.get_timestamp()) { Result::Ok(_) => panic_with_felt252('FAIL'), - Result::Err(panic_data) => { assert_eq!(*panic_data.at(0), ownable::Errors::UNAUTHORIZED); } + Result::Err(panic_data) => { + assert_eq!(*panic_data.at(0), ownable::Errors::UNAUTHORIZED); + }, } } @@ -47,7 +49,7 @@ fn test_queue_already_queued() { Result::Ok(_) => panic_with_felt252('FAIL'), Result::Err(panic_data) => { assert_eq!(*panic_data.at(0), TimeLock::Errors::ALREADY_QUEUED); - } + }, } } @@ -58,7 +60,7 @@ fn test_queue_timestamp_not_in_range() { Result::Ok(_) => panic_with_felt252('FAIL'), Result::Err(panic_data) => { assert_eq!(*panic_data.at(0), TimeLock::Errors::TIMESTAMP_NOT_IN_RANGE); - } + }, } match timelock_test .timelock_safe @@ -66,7 +68,7 @@ fn test_queue_timestamp_not_in_range() { Result::Ok(_) => panic_with_felt252('FAIL'), Result::Err(panic_data) => { assert_eq!(*panic_data.at(0), TimeLock::Errors::TIMESTAMP_NOT_IN_RANGE); - } + }, } } @@ -82,10 +84,10 @@ fn test_queue_success() { ( timelock_test.timelock_address, TimeLock::Event::Queue( - TimeLock::Queue { tx_id, call: timelock_test.get_call(), timestamp } - ) - ) - ] + TimeLock::Queue { tx_id, call: timelock_test.get_call(), timestamp }, + ), + ), + ], ); assert_eq!(tx_id, timelock_test.timelock.get_tx_id(timelock_test.get_call(), timestamp)); } @@ -98,7 +100,9 @@ fn test_execute_only_owner() { .timelock_safe .execute(timelock_test.get_call(), timelock_test.get_timestamp()) { Result::Ok(_) => panic_with_felt252('FAIL'), - Result::Err(panic_data) => { assert_eq!(*panic_data.at(0), ownable::Errors::UNAUTHORIZED); } + Result::Err(panic_data) => { + assert_eq!(*panic_data.at(0), ownable::Errors::UNAUTHORIZED); + }, } } @@ -109,7 +113,7 @@ fn test_execute_not_queued() { .timelock_safe .execute(timelock_test.get_call(), timelock_test.get_timestamp()) { Result::Ok(_) => panic_with_felt252('FAIL'), - Result::Err(panic_data) => { assert_eq!(*panic_data.at(0), TimeLock::Errors::NOT_QUEUED); } + Result::Err(panic_data) => { assert_eq!(*panic_data.at(0), TimeLock::Errors::NOT_QUEUED); }, } } @@ -122,7 +126,7 @@ fn test_execute_timestamp_not_passed() { Result::Ok(_) => panic_with_felt252('FAIL'), Result::Err(panic_data) => { assert_eq!(*panic_data.at(0), TimeLock::Errors::TIMESTAMP_NOT_PASSED); - } + }, } } @@ -134,13 +138,13 @@ fn test_execute_timestamp_expired() { cheat_block_timestamp( timelock_test.timelock_address, timestamp + TimeLock::GRACE_PERIOD + 1, - CheatSpan::TargetCalls(1) + CheatSpan::TargetCalls(1), ); match timelock_test.timelock_safe.execute(timelock_test.get_call(), timestamp) { Result::Ok(_) => panic_with_felt252('FAIL'), Result::Err(panic_data) => { assert_eq!(*panic_data.at(0), TimeLock::Errors::TIMESTAMP_EXPIRED); - } + }, } } @@ -160,10 +164,10 @@ fn test_execute_success() { ( timelock_test.timelock_address, TimeLock::Event::Execute( - TimeLock::Execute { tx_id, call: timelock_test.get_call(), timestamp } - ) - ) - ] + TimeLock::Execute { tx_id, call: timelock_test.get_call(), timestamp }, + ), + ), + ], ); } @@ -177,7 +181,7 @@ fn test_execute_failed() { Result::Ok(_) => panic_with_felt252('FAIL'), Result::Err(panic_data) => { assert_eq!(*panic_data.at(0), ERC721Component::Errors::UNAUTHORIZED); - } + }, } } @@ -190,7 +194,9 @@ fn test_cancel_only_owner() { cheat_caller_address(timelock_test.timelock_address, OTHER(), CheatSpan::TargetCalls(1)); match timelock_test.timelock_safe.cancel(tx_id) { Result::Ok(_) => panic_with_felt252('FAIL'), - Result::Err(panic_data) => { assert_eq!(*panic_data.at(0), ownable::Errors::UNAUTHORIZED); } + Result::Err(panic_data) => { + assert_eq!(*panic_data.at(0), ownable::Errors::UNAUTHORIZED); + }, } } @@ -202,7 +208,7 @@ fn test_cancel_not_queued() { .get_tx_id(timelock_test.get_call(), timelock_test.get_timestamp()); match timelock_test.timelock_safe.cancel(tx_id) { Result::Ok(_) => panic_with_felt252('FAIL'), - Result::Err(panic_data) => { assert_eq!(*panic_data.at(0), TimeLock::Errors::NOT_QUEUED); } + Result::Err(panic_data) => { assert_eq!(*panic_data.at(0), TimeLock::Errors::NOT_QUEUED); }, } } @@ -219,8 +225,8 @@ fn test_cancel_success() { @array![ ( timelock_test.timelock_address, - TimeLock::Event::Cancel(TimeLock::Cancel { tx_id }) - ) - ] + TimeLock::Event::Cancel(TimeLock::Cancel { tx_id }), + ), + ], ); } diff --git a/listings/applications/timelock/src/tests/utils.cairo b/listings/applications/timelock/src/tests/utils.cairo index 32973908..f380b445 100644 --- a/listings/applications/timelock/src/tests/utils.cairo +++ b/listings/applications/timelock/src/tests/utils.cairo @@ -59,7 +59,7 @@ pub impl TimeLockTestImpl of TimeLockTestTrait { Call { to: *self.erc721_address, selector: selector!("transfer_from"), - calldata: calldata.span() + calldata: calldata.span(), } } fn get_timestamp(self: @TimeLockTest) -> u64 { diff --git a/listings/applications/timelock/src/timelock.cairo b/listings/applications/timelock/src/timelock.cairo index 38e42ed9..e6540d56 100644 --- a/listings/applications/timelock/src/timelock.cairo +++ b/listings/applications/timelock/src/timelock.cairo @@ -12,7 +12,7 @@ pub trait ITimeLock { pub mod TimeLock { use core::poseidon::{PoseidonTrait, poseidon_hash_span}; use core::hash::HashStateTrait; - use starknet::{get_caller_address, get_block_timestamp, SyscallResultTrait, syscalls}; + use starknet::{get_caller_address, get_block_timestamp, syscalls}; use starknet::account::Call; use components::ownable::ownable_component; use starknet::storage::{Map, StorageMapReadAccess, StorageMapWriteAccess}; @@ -38,7 +38,7 @@ pub mod TimeLock { OwnableEvent: ownable_component::Event, Queue: Queue, Execute: Execute, - Cancel: Cancel + Cancel: Cancel, } #[derive(Drop, starknet::Event)] @@ -46,7 +46,7 @@ pub mod TimeLock { #[key] pub tx_id: felt252, pub call: Call, - pub timestamp: u64 + pub timestamp: u64, } #[derive(Drop, starknet::Event)] @@ -54,13 +54,13 @@ pub mod TimeLock { #[key] pub tx_id: felt252, pub call: Call, - pub timestamp: u64 + pub timestamp: u64, } #[derive(Drop, starknet::Event)] pub struct Cancel { #[key] - pub tx_id: felt252 + pub tx_id: felt252, } pub const MIN_DELAY: u64 = 10; // seconds @@ -103,7 +103,7 @@ pub mod TimeLock { timestamp >= block_timestamp + MIN_DELAY && timestamp <= block_timestamp + MAX_DELAY, - Errors::TIMESTAMP_NOT_IN_RANGE + Errors::TIMESTAMP_NOT_IN_RANGE, ); self.queued.write(tx_id, true); @@ -126,7 +126,7 @@ pub mod TimeLock { self.queued.write(tx_id, false); let result = syscalls::call_contract_syscall(call.to, call.selector, call.calldata) - .unwrap_syscall(); + .unwrap(); self.emit(Execute { tx_id, call: self._copy_call(@call), timestamp }); diff --git a/listings/applications/upgradeable_contract/src/tests.cairo b/listings/applications/upgradeable_contract/src/tests.cairo index a3ff7ba0..fe9f11a6 100644 --- a/listings/applications/upgradeable_contract/src/tests.cairo +++ b/listings/applications/upgradeable_contract/src/tests.cairo @@ -4,18 +4,17 @@ mod tests { use super::super::upgradeable_contract_v0::{ UpgradeableContract_V0, IUpgradeableContractDispatcher as IUpgradeableContractDispatcher_v0, IUpgradeableContractDispatcherTrait as UpgradeableContractDispatcherTrait_v0, - UpgradeableContract_V0::{Event, Upgraded} + UpgradeableContract_V0::{Event, Upgraded}, }; use super::super::upgradeable_contract_v1::{ UpgradeableContract_V1, IUpgradeableContractDispatcher as IUpgradeableContractDispatcher_v1, - IUpgradeableContractDispatcherTrait as UpgradeableContractDispatcherTrait_v1 + IUpgradeableContractDispatcherTrait as UpgradeableContractDispatcherTrait_v1, }; use starknet::{ - ContractAddress, SyscallResultTrait, syscalls::deploy_syscall, get_caller_address, - contract_address_const + ContractAddress, syscalls::deploy_syscall, get_caller_address, contract_address_const, }; use core::num::traits::Zero; @@ -24,26 +23,26 @@ mod tests { // deploy v0 contract fn deploy_v0() -> (IUpgradeableContractDispatcher_v0, ContractAddress, ClassHash) { let (contract_address, _) = deploy_syscall( - UpgradeableContract_V0::TEST_CLASS_HASH.try_into().unwrap(), 0, array![].span(), false + UpgradeableContract_V0::TEST_CLASS_HASH.try_into().unwrap(), 0, array![].span(), false, ) - .unwrap_syscall(); + .unwrap(); ( IUpgradeableContractDispatcher_v0 { contract_address }, contract_address, - UpgradeableContract_V0::TEST_CLASS_HASH.try_into().unwrap() + UpgradeableContract_V0::TEST_CLASS_HASH.try_into().unwrap(), ) } // deploy v1 contract fn deploy_v1() -> (IUpgradeableContractDispatcher_v1, ContractAddress, ClassHash) { let (contract_address, _) = deploy_syscall( - UpgradeableContract_V1::TEST_CLASS_HASH.try_into().unwrap(), 0, array![].span(), false + UpgradeableContract_V1::TEST_CLASS_HASH.try_into().unwrap(), 0, array![].span(), false, ) - .unwrap_syscall(); + .unwrap(); ( IUpgradeableContractDispatcher_v1 { contract_address }, contract_address, - UpgradeableContract_V1::TEST_CLASS_HASH.try_into().unwrap() + UpgradeableContract_V1::TEST_CLASS_HASH.try_into().unwrap(), ) } @@ -78,7 +77,7 @@ mod tests { // emit event assert_eq!( starknet::testing::pop_log(contract_address), - Option::Some(Event::Upgraded(Upgraded { implementation: class_hash })) + Option::Some(Event::Upgraded(Upgraded { implementation: class_hash })), ); assert(dispatcher_v0.version() == 1, ' version did not upgrade'); diff --git a/listings/applications/upgradeable_contract/src/upgradeable_contract_v0.cairo b/listings/applications/upgradeable_contract/src/upgradeable_contract_v0.cairo index e8d912ba..571ec785 100644 --- a/listings/applications/upgradeable_contract/src/upgradeable_contract_v0.cairo +++ b/listings/applications/upgradeable_contract/src/upgradeable_contract_v0.cairo @@ -10,7 +10,6 @@ pub trait IUpgradeableContract { #[starknet::contract] pub mod UpgradeableContract_V0 { use starknet::class_hash::ClassHash; - use starknet::SyscallResultTrait; use core::num::traits::Zero; #[storage] @@ -24,7 +23,7 @@ pub mod UpgradeableContract_V0 { #[derive(Copy, Drop, Debug, PartialEq, starknet::Event)] pub struct Upgraded { - pub implementation: ClassHash + pub implementation: ClassHash, } #[abi(embed_v0)] @@ -32,7 +31,7 @@ pub mod UpgradeableContract_V0 { // [!region upgrade] fn upgrade(ref self: ContractState, impl_hash: ClassHash) { assert(impl_hash.is_non_zero(), 'Class hash cannot be zero'); - starknet::syscalls::replace_class_syscall(impl_hash).unwrap_syscall(); + starknet::syscalls::replace_class_syscall(impl_hash).unwrap(); self.emit(Event::Upgraded(Upgraded { implementation: impl_hash })) } // [!endregion upgrade] diff --git a/listings/applications/upgradeable_contract/src/upgradeable_contract_v1.cairo b/listings/applications/upgradeable_contract/src/upgradeable_contract_v1.cairo index 78baa8b1..052b4cbf 100644 --- a/listings/applications/upgradeable_contract/src/upgradeable_contract_v1.cairo +++ b/listings/applications/upgradeable_contract/src/upgradeable_contract_v1.cairo @@ -9,7 +9,6 @@ pub trait IUpgradeableContract { #[starknet::contract] pub mod UpgradeableContract_V1 { use starknet::class_hash::ClassHash; - use starknet::SyscallResultTrait; use core::num::traits::Zero; #[storage] @@ -18,19 +17,19 @@ pub mod UpgradeableContract_V1 { #[event] #[derive(Drop, starknet::Event)] enum Event { - Upgraded: Upgraded + Upgraded: Upgraded, } #[derive(Drop, starknet::Event)] struct Upgraded { - implementation: ClassHash + implementation: ClassHash, } #[abi(embed_v0)] impl UpgradeableContract of super::IUpgradeableContract { fn upgrade(ref self: ContractState, impl_hash: ClassHash) { assert(impl_hash.is_non_zero(), 'Class hash cannot be zero'); - starknet::syscalls::replace_class_syscall(impl_hash).unwrap_syscall(); + starknet::syscalls::replace_class_syscall(impl_hash).unwrap(); self.emit(Event::Upgraded(Upgraded { implementation: impl_hash })) } diff --git a/listings/cairo_cheatsheet/Scarb.toml b/listings/cairo_cheatsheet/Scarb.toml index 4daa2a61..5cf958bf 100644 --- a/listings/cairo_cheatsheet/Scarb.toml +++ b/listings/cairo_cheatsheet/Scarb.toml @@ -13,4 +13,3 @@ cairo_test.workspace = true test.workspace = true [[target.starknet-contract]] -allowed-libfuncs-list.name = "experimental" diff --git a/listings/cairo_cheatsheet/src/enum_example.cairo b/listings/cairo_cheatsheet/src/enum_example.cairo index 32ea6800..a6d94c69 100644 --- a/listings/cairo_cheatsheet/src/enum_example.cairo +++ b/listings/cairo_cheatsheet/src/enum_example.cairo @@ -7,6 +7,7 @@ struct Position { #[derive(Drop, Serde, Copy, starknet::Store)] enum UserCommand { + #[default] Login, UpdateProfile, Logout, @@ -14,11 +15,12 @@ enum UserCommand { #[derive(Drop, Serde, Copy, starknet::Store)] enum Action { + #[default] Quit, Move: Position, SendMessage: felt252, ChangeAvatarColor: (u8, u8, u8), - ProfileState: UserCommand + ProfileState: UserCommand, } // [!endregion enums] @@ -45,20 +47,20 @@ mod EnumContract { fn register_action(ref self: ContractState, action: Action) { // quick note: match takes ownership of variable (but enum Action implements Copy trait) match action { - Action::Quit => { println!("Quit"); }, - Action::Move(value) => { println!("Move with x: {} and y: {}", value.x, value.y); }, - Action::SendMessage(msg) => { println!("Write with message: {}", msg); }, + Action::Quit => "Quit", + Action::Move(value) => format!("Move with x: {} and y: {}", value.x, value.y), + Action::SendMessage(msg) => format!("Write with message: {}", msg), Action::ChangeAvatarColor(( - r, g, b - )) => { println!("Change color to r: {}, g: {}, b: {}", r, g, b); }, + r, g, b, + )) => format!("Change color to r: {}, g: {}, b: {}", r, g, b), Action::ProfileState(state) => { let profile_state = match state { UserCommand::Login => 1, UserCommand::UpdateProfile => 2, UserCommand::Logout => 3, }; - println!("profile_state: {}", profile_state); - } + format!("profile_state: {}", profile_state) + }, }; self.most_recent_action.write(action); diff --git a/listings/cairo_cheatsheet/src/if_let_example.cairo b/listings/cairo_cheatsheet/src/if_let_example.cairo index 5fd56033..329157d3 100644 --- a/listings/cairo_cheatsheet/src/if_let_example.cairo +++ b/listings/cairo_cheatsheet/src/if_let_example.cairo @@ -13,15 +13,15 @@ fn if_let() { // "if `let` destructures `number` into `Some(i)`: // evaluate the block (`{}`). if let Option::Some(i) = number { - println!("Matched {}", i); + format!("Matched {}", i); } // If you need to specify a failure, use an else: if let Option::Some(i) = letter { - println!("Matched {}", i); + format!("Matched {}", i); } else { // Destructure failed. Change to the failure case. - println!("Didn't match a number."); + format!("Didn't match a number."); } // Using `if let` with enum @@ -31,19 +31,19 @@ fn if_let() { // Variable a matches Foo::Bar if let Foo::Bar = a { - println!("a is foobar"); + format!("a is foobar"); } // Variable b does not match Foo::Bar // So this will print nothing if let Foo::Bar = b { - println!("b is foobar"); + format!("b is foobar"); } // Variable c matches Foo::Qux which has a value // Similar to Some() in the previous example if let Foo::Qux(value) = c { - println!("c is {}", value); + format!("c is {}", value); } } // [!endregion sheet] diff --git a/listings/cairo_cheatsheet/src/mapping_example.cairo b/listings/cairo_cheatsheet/src/mapping_example.cairo index 176a2240..6befd79c 100644 --- a/listings/cairo_cheatsheet/src/mapping_example.cairo +++ b/listings/cairo_cheatsheet/src/mapping_example.cairo @@ -4,11 +4,11 @@ use starknet::ContractAddress; trait IMappingExample { fn register_user(ref self: TContractState, student_add: ContractAddress, studentName: felt252); fn record_student_score( - ref self: TContractState, student_add: ContractAddress, subject: felt252, score: u16 + ref self: TContractState, student_add: ContractAddress, subject: felt252, score: u16, ); fn view_student_name(self: @TContractState, student_add: ContractAddress) -> felt252; fn view_student_score( - self: @TContractState, student_add: ContractAddress, subject: felt252 + self: @TContractState, student_add: ContractAddress, subject: felt252, ) -> u16; } @@ -26,13 +26,13 @@ mod MappingContract { #[abi(embed_v0)] impl External of super::IMappingExample { fn register_user( - ref self: ContractState, student_add: ContractAddress, studentName: felt252 + ref self: ContractState, student_add: ContractAddress, studentName: felt252, ) { self.students_name.write(student_add, studentName); } fn record_student_score( - ref self: ContractState, student_add: ContractAddress, subject: felt252, score: u16 + ref self: ContractState, student_add: ContractAddress, subject: felt252, score: u16, ) { self.students_result_record.write((student_add, subject), score); } @@ -42,7 +42,7 @@ mod MappingContract { } fn view_student_score( - self: @ContractState, student_add: ContractAddress, subject: felt252 + self: @ContractState, student_add: ContractAddress, subject: felt252, ) -> u16 { // for a 2D mapping its important to take note of the amount of brackets being used. self.students_result_record.read((student_add, subject)) diff --git a/listings/cairo_cheatsheet/src/match_example.cairo b/listings/cairo_cheatsheet/src/match_example.cairo index f32d2df1..3273ea19 100644 --- a/listings/cairo_cheatsheet/src/match_example.cairo +++ b/listings/cairo_cheatsheet/src/match_example.cairo @@ -4,7 +4,7 @@ enum Colour { Blue, Green, Orange, - Black + Black, } #[derive(Drop, Serde)] diff --git a/listings/cairo_cheatsheet/src/struct_example.cairo b/listings/cairo_cheatsheet/src/struct_example.cairo index 7601e0e1..55b7f227 100644 --- a/listings/cairo_cheatsheet/src/struct_example.cairo +++ b/listings/cairo_cheatsheet/src/struct_example.cairo @@ -2,5 +2,5 @@ #[derive(Drop, starknet::Store)] struct Data { address: starknet::ContractAddress, - age: u8 + age: u8, } diff --git a/listings/cairo_cheatsheet/src/while_let_example.cairo b/listings/cairo_cheatsheet/src/while_let_example.cairo index 54b5e7b1..56d6aad5 100644 --- a/listings/cairo_cheatsheet/src/while_let_example.cairo +++ b/listings/cairo_cheatsheet/src/while_let_example.cairo @@ -6,10 +6,8 @@ fn while_let() { // evaluate the block (`{}`), else `break` while let Option::Some(i) = option { if i > 0 { - println!("Greater than 0, break..."); option = Option::None; } else { - println!("`i` is `{:?}`. Try again.", i); option = Option::Some(i + 1); } } diff --git a/listings/getting-started/bytearray/src/bytearray.cairo b/listings/getting-started/bytearray/src/bytearray.cairo index d6d10be9..03911b70 100644 --- a/listings/getting-started/bytearray/src/bytearray.cairo +++ b/listings/getting-started/bytearray/src/bytearray.cairo @@ -11,7 +11,7 @@ pub mod MessageContract { #[storage] struct Storage { - pub message: ByteArray + pub message: ByteArray, } #[constructor] diff --git a/listings/getting-started/calling_other_contracts/src/caller.cairo b/listings/getting-started/calling_other_contracts/src/caller.cairo index 1f599266..7a088711 100644 --- a/listings/getting-started/calling_other_contracts/src/caller.cairo +++ b/listings/getting-started/calling_other_contracts/src/caller.cairo @@ -27,7 +27,7 @@ pub mod Callee { #[starknet::interface] pub trait ICaller { fn set_value_from_address( - ref self: TContractState, addr: starknet::ContractAddress, value: u128 + ref self: TContractState, addr: starknet::ContractAddress, value: u128, ); } @@ -54,21 +54,21 @@ pub mod Caller { #[cfg(test)] mod tests { use super::{Callee, ICalleeDispatcher, Caller, ICallerDispatcher, ICallerDispatcherTrait}; - use starknet::{testing::set_contract_address, syscalls::deploy_syscall, SyscallResultTrait}; + use starknet::{testing::set_contract_address, syscalls::deploy_syscall}; use starknet::storage::StoragePointerReadAccess; fn deploy() -> (ICalleeDispatcher, ICallerDispatcher) { let (address_callee, _) = deploy_syscall( - Callee::TEST_CLASS_HASH.try_into().unwrap(), 0, array![].span(), false + Callee::TEST_CLASS_HASH.try_into().unwrap(), 0, array![].span(), false, ) - .unwrap_syscall(); + .unwrap(); let (address_caller, _) = deploy_syscall( - Caller::TEST_CLASS_HASH.try_into().unwrap(), 0, array![].span(), false + Caller::TEST_CLASS_HASH.try_into().unwrap(), 0, array![].span(), false, ) - .unwrap_syscall(); + .unwrap(); ( ICalleeDispatcher { contract_address: address_callee }, - ICallerDispatcher { contract_address: address_caller } + ICallerDispatcher { contract_address: address_caller }, ) } diff --git a/listings/getting-started/constructor/src/constructor.cairo b/listings/getting-started/constructor/src/constructor.cairo index 55540099..c384b00a 100644 --- a/listings/getting-started/constructor/src/constructor.cairo +++ b/listings/getting-started/constructor/src/constructor.cairo @@ -22,7 +22,7 @@ pub mod ExampleConstructor { #[cfg(test)] mod tests { use super::ExampleConstructor; - use starknet::{ContractAddress, SyscallResultTrait, syscalls::deploy_syscall}; + use starknet::{ContractAddress, syscalls::deploy_syscall}; use starknet::{contract_address_const, testing::{set_contract_address}}; use starknet::storage::StorageMapReadAccess; @@ -35,9 +35,9 @@ mod tests { ExampleConstructor::TEST_CLASS_HASH.try_into().unwrap(), 0, array![name, address.into()].span(), - false + false, ) - .unwrap_syscall(); + .unwrap(); let state = @ExampleConstructor::contract_state_for_testing(); set_contract_address(contract_address); diff --git a/listings/getting-started/counter/src/counter.cairo b/listings/getting-started/counter/src/counter.cairo index e44bb058..593d2342 100644 --- a/listings/getting-started/counter/src/counter.cairo +++ b/listings/getting-started/counter/src/counter.cairo @@ -46,16 +46,16 @@ pub mod SimpleCounter { #[cfg(test)] mod test { use super::{SimpleCounter, ISimpleCounterDispatcher, ISimpleCounterDispatcherTrait}; - use starknet::{SyscallResultTrait, syscalls::deploy_syscall}; + use starknet::syscalls::deploy_syscall; fn deploy(init_value: u128) -> ISimpleCounterDispatcher { let (contract_address, _) = deploy_syscall( SimpleCounter::TEST_CLASS_HASH.try_into().unwrap(), 0, array![init_value.into()].span(), - false + false, ) - .unwrap_syscall(); + .unwrap(); ISimpleCounterDispatcher { contract_address } } diff --git a/listings/getting-started/custom_type_serde/src/contract.cairo b/listings/getting-started/custom_type_serde/src/contract.cairo index 8515f554..abd441ea 100644 --- a/listings/getting-started/custom_type_serde/src/contract.cairo +++ b/listings/getting-started/custom_type_serde/src/contract.cairo @@ -10,7 +10,7 @@ pub trait ISerdeCustomType { #[derive(Drop, Serde)] pub struct Person { pub age: u8, - pub name: felt252 + pub name: felt252, } #[starknet::contract] @@ -34,15 +34,15 @@ pub mod SerdeCustomType { #[cfg(test)] mod tests { use super::{ - SerdeCustomType, Person, ISerdeCustomTypeDispatcher, ISerdeCustomTypeDispatcherTrait + SerdeCustomType, Person, ISerdeCustomTypeDispatcher, ISerdeCustomTypeDispatcherTrait, }; - use starknet::{syscalls::deploy_syscall, SyscallResultTrait}; + use starknet::syscalls::deploy_syscall; fn deploy() -> ISerdeCustomTypeDispatcher { let (contract_address, _) = deploy_syscall( - SerdeCustomType::TEST_CLASS_HASH.try_into().unwrap(), 0, array![].span(), false + SerdeCustomType::TEST_CLASS_HASH.try_into().unwrap(), 0, array![].span(), false, ) - .unwrap_syscall(); + .unwrap(); ISerdeCustomTypeDispatcher { contract_address } } diff --git a/listings/getting-started/errors/src/custom_errors.cairo b/listings/getting-started/errors/src/custom_errors.cairo index 5361b10e..b287514f 100644 --- a/listings/getting-started/errors/src/custom_errors.cairo +++ b/listings/getting-started/errors/src/custom_errors.cairo @@ -35,15 +35,15 @@ pub mod CustomErrorsExample { #[cfg(test)] mod test { use super::{ - CustomErrorsExample, ICustomErrorsExampleDispatcher, ICustomErrorsExampleDispatcherTrait + CustomErrorsExample, ICustomErrorsExampleDispatcher, ICustomErrorsExampleDispatcherTrait, }; - use starknet::{SyscallResultTrait, syscalls::deploy_syscall}; + use starknet::syscalls::deploy_syscall; fn deploy() -> ICustomErrorsExampleDispatcher { let (contract_address, _) = deploy_syscall( - CustomErrorsExample::TEST_CLASS_HASH.try_into().unwrap(), 0, array![].span(), false + CustomErrorsExample::TEST_CLASS_HASH.try_into().unwrap(), 0, array![].span(), false, ) - .unwrap_syscall(); + .unwrap(); ICustomErrorsExampleDispatcher { contract_address } } diff --git a/listings/getting-started/errors/src/simple_errors.cairo b/listings/getting-started/errors/src/simple_errors.cairo index 7598794f..1477e1c8 100644 --- a/listings/getting-started/errors/src/simple_errors.cairo +++ b/listings/getting-started/errors/src/simple_errors.cairo @@ -31,13 +31,13 @@ pub mod ErrorsExample { #[cfg(test)] mod test { use super::{ErrorsExample, IErrorsExampleDispatcher, IErrorsExampleDispatcherTrait}; - use starknet::{SyscallResultTrait, syscalls::deploy_syscall}; + use starknet::syscalls::deploy_syscall; fn deploy() -> IErrorsExampleDispatcher { let (contract_address, _) = deploy_syscall( - ErrorsExample::TEST_CLASS_HASH.try_into().unwrap(), 0, array![].span(), false + ErrorsExample::TEST_CLASS_HASH.try_into().unwrap(), 0, array![].span(), false, ) - .unwrap_syscall(); + .unwrap(); IErrorsExampleDispatcher { contract_address } } diff --git a/listings/getting-started/errors/src/vault_errors.cairo b/listings/getting-started/errors/src/vault_errors.cairo index 595f9a9d..4da8a4e8 100644 --- a/listings/getting-started/errors/src/vault_errors.cairo +++ b/listings/getting-started/errors/src/vault_errors.cairo @@ -49,15 +49,15 @@ pub mod VaultErrorsExample { #[cfg(test)] mod test { use super::{ - VaultErrorsExample, IVaultErrorsExampleDispatcher, IVaultErrorsExampleDispatcherTrait + VaultErrorsExample, IVaultErrorsExampleDispatcher, IVaultErrorsExampleDispatcherTrait, }; - use starknet::{SyscallResultTrait, syscalls::deploy_syscall}; + use starknet::syscalls::deploy_syscall; fn deploy() -> IVaultErrorsExampleDispatcher { let (contract_address, _) = deploy_syscall( - VaultErrorsExample::TEST_CLASS_HASH.try_into().unwrap(), 0, array![].span(), false + VaultErrorsExample::TEST_CLASS_HASH.try_into().unwrap(), 0, array![].span(), false, ) - .unwrap_syscall(); + .unwrap(); IVaultErrorsExampleDispatcher { contract_address } } diff --git a/listings/getting-started/events/src/counter.cairo b/listings/getting-started/events/src/counter.cairo index fa11878d..612c81e5 100644 --- a/listings/getting-started/events/src/counter.cairo +++ b/listings/getting-started/events/src/counter.cairo @@ -21,14 +21,14 @@ pub mod EventCounter { // It must also derive at least the `Drop` and `starknet::Event` traits. pub enum Event { CounterIncreased: CounterIncreased, - UserIncreaseCounter: UserIncreaseCounter + UserIncreaseCounter: UserIncreaseCounter, } // By deriving the `starknet::Event` trait, we indicate to the compiler that // this struct will be used when emitting events. #[derive(Copy, Drop, Debug, PartialEq, starknet::Event)] pub struct CounterIncreased { - pub amount: u128 + pub amount: u128, } #[derive(Copy, Drop, Debug, PartialEq, starknet::Event)] @@ -51,9 +51,9 @@ pub mod EventCounter { .emit( Event::UserIncreaseCounter( UserIncreaseCounter { - user: get_caller_address(), new_value: self.counter.read() - } - ) + user: get_caller_address(), new_value: self.counter.read(), + }, + ), ); // [!endregion emit] } @@ -65,18 +65,18 @@ pub mod EventCounter { mod tests { use super::{ EventCounter, EventCounter::{Event, CounterIncreased, UserIncreaseCounter}, - IEventCounterDispatcherTrait, IEventCounterDispatcher + IEventCounterDispatcherTrait, IEventCounterDispatcher, }; - use starknet::{contract_address_const, SyscallResultTrait, syscalls::deploy_syscall}; + use starknet::{contract_address_const, syscalls::deploy_syscall}; use starknet::testing::set_contract_address; use starknet::storage::StoragePointerReadAccess; #[test] fn test_increment_events() { let (contract_address, _) = deploy_syscall( - EventCounter::TEST_CLASS_HASH.try_into().unwrap(), 0, array![].span(), false + EventCounter::TEST_CLASS_HASH.try_into().unwrap(), 0, array![].span(), false, ) - .unwrap_syscall(); + .unwrap(); let mut contract = IEventCounterDispatcher { contract_address }; let state = @EventCounter::contract_state_for_testing(); @@ -94,14 +94,14 @@ mod tests { // [!region test_events] assert_eq!( starknet::testing::pop_log(contract_address), - Option::Some(Event::CounterIncreased(CounterIncreased { amount })) + Option::Some(Event::CounterIncreased(CounterIncreased { amount })), ); // [!endregion test_events] assert_eq!( starknet::testing::pop_log(contract_address), Option::Some( - Event::UserIncreaseCounter(UserIncreaseCounter { user: caller, new_value: amount }) - ) + Event::UserIncreaseCounter(UserIncreaseCounter { user: caller, new_value: amount }), + ), ); } } diff --git a/listings/getting-started/factory/src/simple_factory.cairo b/listings/getting-started/factory/src/simple_factory.cairo index 1d93badc..95fb8766 100644 --- a/listings/getting-started/factory/src/simple_factory.cairo +++ b/listings/getting-started/factory/src/simple_factory.cairo @@ -18,7 +18,7 @@ pub trait ICounterFactory { #[starknet::contract] pub mod CounterFactory { - use starknet::{ContractAddress, ClassHash, SyscallResultTrait, syscalls::deploy_syscall}; + use starknet::{ContractAddress, ClassHash, syscalls::deploy_syscall}; use starknet::storage::{StoragePointerReadAccess, StoragePointerWriteAccess}; #[storage] @@ -44,9 +44,9 @@ pub mod CounterFactory { // Contract deployment let (deployed_address, _) = deploy_syscall( - self.counter_class_hash.read(), 0, constructor_calldata.span(), false + self.counter_class_hash.read(), 0, constructor_calldata.span(), false, ) - .unwrap_syscall(); + .unwrap(); deployed_address } @@ -70,7 +70,7 @@ pub mod CounterFactory { #[cfg(test)] mod tests { use super::{CounterFactory, ICounterFactoryDispatcher, ICounterFactoryDispatcherTrait}; - use starknet::{SyscallResultTrait, ClassHash, syscalls::deploy_syscall}; + use starknet::{ClassHash, syscalls::deploy_syscall}; // Define a target contract to deploy mod target { @@ -120,19 +120,19 @@ mod tests { /// Deploy a counter factory contract fn deploy_factory( - counter_class_hash: ClassHash, init_value: u128 + counter_class_hash: ClassHash, init_value: u128, ) -> ICounterFactoryDispatcher { let mut constructor_calldata: Array:: = array![ - init_value.into(), counter_class_hash.into() + init_value.into(), counter_class_hash.into(), ]; let (contract_address, _) = deploy_syscall( CounterFactory::TEST_CLASS_HASH.try_into().unwrap(), 0, constructor_calldata.span(), - false + false, ) - .unwrap_syscall(); + .unwrap(); ICounterFactoryDispatcher { contract_address } } diff --git a/listings/getting-started/interfaces_traits/src/explicit.cairo b/listings/getting-started/interfaces_traits/src/explicit.cairo index e9ab6b46..4454cc23 100644 --- a/listings/getting-started/interfaces_traits/src/explicit.cairo +++ b/listings/getting-started/interfaces_traits/src/explicit.cairo @@ -11,7 +11,7 @@ pub mod ExplicitInterfaceContract { #[storage] struct Storage { - value: u32 + value: u32, } #[abi(embed_v0)] @@ -31,9 +31,9 @@ pub mod ExplicitInterfaceContract { mod tests { use super::{ ExplicitInterfaceContract, IExplicitInterfaceContractDispatcher, - IExplicitInterfaceContractDispatcherTrait + IExplicitInterfaceContractDispatcherTrait, }; - use starknet::{SyscallResultTrait, syscalls::deploy_syscall}; + use starknet::syscalls::deploy_syscall; #[test] fn test_interface() { @@ -41,9 +41,9 @@ mod tests { ExplicitInterfaceContract::TEST_CLASS_HASH.try_into().unwrap(), 0, array![].span(), - false + false, ) - .unwrap_syscall(); + .unwrap(); let mut contract = IExplicitInterfaceContractDispatcher { contract_address }; let value: u32 = 20; diff --git a/listings/getting-started/interfaces_traits/src/implicit.cairo b/listings/getting-started/interfaces_traits/src/implicit.cairo index aa7f5400..0ab2d6d2 100644 --- a/listings/getting-started/interfaces_traits/src/implicit.cairo +++ b/listings/getting-started/interfaces_traits/src/implicit.cairo @@ -5,7 +5,7 @@ pub mod ImplicitInterfaceContract { #[storage] struct Storage { - value: u32 + value: u32, } #[abi(per_item)] @@ -27,7 +27,7 @@ pub mod ImplicitInterfaceContract { #[cfg(test)] mod tests { use super::{ImplicitInterfaceContract, ImplicitInterfaceContract::IImplicitInterfaceContract}; - use starknet::{SyscallResultTrait, syscalls::deploy_syscall, testing::set_contract_address}; + use starknet::{syscalls::deploy_syscall, testing::set_contract_address}; #[test] fn test_interface() { @@ -35,9 +35,9 @@ mod tests { ImplicitInterfaceContract::TEST_CLASS_HASH.try_into().unwrap(), 0, array![].span(), - false + false, ) - .unwrap_syscall(); + .unwrap(); set_contract_address(contract_address); let mut state = ImplicitInterfaceContract::contract_state_for_testing(); diff --git a/listings/getting-started/interfaces_traits/src/implicit_internal.cairo b/listings/getting-started/interfaces_traits/src/implicit_internal.cairo index 0979d18e..74bdca0f 100644 --- a/listings/getting-started/interfaces_traits/src/implicit_internal.cairo +++ b/listings/getting-started/interfaces_traits/src/implicit_internal.cairo @@ -12,7 +12,7 @@ pub mod ImplicitInternalContract { #[storage] struct Storage { - value: u32 + value: u32, } #[generate_trait] @@ -52,17 +52,20 @@ pub mod ImplicitInternalContract { mod tests { use super::{ ImplicitInternalContract, IImplicitInternalContractDispatcher, - IImplicitInternalContractDispatcherTrait + IImplicitInternalContractDispatcherTrait, }; - use starknet::{SyscallResultTrait, syscalls::deploy_syscall}; + use starknet::syscalls::deploy_syscall; #[test] fn test_interface() { // Set up. let (contract_address, _) = deploy_syscall( - ImplicitInternalContract::TEST_CLASS_HASH.try_into().unwrap(), 0, array![].span(), false + ImplicitInternalContract::TEST_CLASS_HASH.try_into().unwrap(), + 0, + array![].span(), + false, ) - .unwrap_syscall(); + .unwrap(); let mut contract = IImplicitInternalContractDispatcher { contract_address }; let initial_value: u32 = 0; diff --git a/listings/getting-started/mappings/src/mappings.cairo b/listings/getting-started/mappings/src/mappings.cairo index 39286151..7a4aa932 100644 --- a/listings/getting-started/mappings/src/mappings.cairo +++ b/listings/getting-started/mappings/src/mappings.cairo @@ -33,14 +33,14 @@ pub mod MapContract { #[cfg(test)] mod test { use super::{MapContract, IMapContractDispatcher, IMapContractDispatcherTrait}; - use starknet::{SyscallResultTrait, syscalls::deploy_syscall}; + use starknet::syscalls::deploy_syscall; #[test] fn test_deploy_and_set_get() { let (contract_address, _) = deploy_syscall( - MapContract::TEST_CLASS_HASH.try_into().unwrap(), 0, array![].span(), false + MapContract::TEST_CLASS_HASH.try_into().unwrap(), 0, array![].span(), false, ) - .unwrap_syscall(); + .unwrap(); let mut contract = IMapContractDispatcher { contract_address }; // Write to map. diff --git a/listings/getting-started/storage/src/contract.cairo b/listings/getting-started/storage/src/contract.cairo index c9cae875..4ae5443c 100644 --- a/listings/getting-started/storage/src/contract.cairo +++ b/listings/getting-started/storage/src/contract.cairo @@ -5,7 +5,7 @@ pub mod Contract { struct Storage { pub a: u128, pub b: u8, - pub c: u256 + pub c: u256, } } // [!endregion contract] @@ -13,15 +13,15 @@ pub mod Contract { #[cfg(test)] mod test { use super::Contract; - use starknet::{SyscallResultTrait, syscalls::deploy_syscall}; + use starknet::syscalls::deploy_syscall; use starknet::storage::StoragePointerReadAccess; #[test] fn test_can_deploy() { let (_contract_address, _) = deploy_syscall( - Contract::TEST_CLASS_HASH.try_into().unwrap(), 0, array![].span(), false + Contract::TEST_CLASS_HASH.try_into().unwrap(), 0, array![].span(), false, ) - .unwrap_syscall(); + .unwrap(); } #[test] diff --git a/listings/getting-started/storage/src/minimal_contract.cairo b/listings/getting-started/storage/src/minimal_contract.cairo index a9bf24df..ef8ae142 100644 --- a/listings/getting-started/storage/src/minimal_contract.cairo +++ b/listings/getting-started/storage/src/minimal_contract.cairo @@ -10,14 +10,14 @@ pub mod Contract { #[cfg(test)] mod test { use super::Contract; - use starknet::{SyscallResultTrait, syscalls::deploy_syscall}; + use starknet::syscalls::deploy_syscall; #[test] fn test_can_deploy() { let (_contract_address, _) = deploy_syscall( - Contract::TEST_CLASS_HASH.try_into().unwrap(), 0, array![].span(), false + Contract::TEST_CLASS_HASH.try_into().unwrap(), 0, array![].span(), false, ) - .unwrap_syscall(); + .unwrap(); // Not much to test } } diff --git a/listings/getting-started/storing_custom_types/src/contract.cairo b/listings/getting-started/storing_custom_types/src/contract.cairo index 9d29c617..cd2ad282 100644 --- a/listings/getting-started/storing_custom_types/src/contract.cairo +++ b/listings/getting-started/storing_custom_types/src/contract.cairo @@ -10,7 +10,7 @@ pub trait IStoringCustomType { #[derive(Drop, Serde, Copy, starknet::Store)] pub struct Person { pub age: u8, - pub name: felt252 + pub name: felt252, } #[starknet::contract] @@ -20,7 +20,7 @@ pub mod StoringCustomType { #[storage] struct Storage { - pub person: Person + pub person: Person, } #[abi(embed_v0)] @@ -40,7 +40,7 @@ pub mod StoringCustomType { #[cfg(test)] mod tests { - use super::{IStoringCustomType, StoringCustomType, Person,}; + use super::{IStoringCustomType, StoringCustomType, Person}; use starknet::storage::StoragePointerReadAccess; #[test] diff --git a/listings/getting-started/testing_how_to/src/contract.cairo b/listings/getting-started/testing_how_to/src/contract.cairo index 5b9efff1..00a232b4 100644 --- a/listings/getting-started/testing_how_to/src/contract.cairo +++ b/listings/getting-started/testing_how_to/src/contract.cairo @@ -14,7 +14,7 @@ pub mod SimpleContract { #[storage] struct Storage { pub value: u32, - pub owner: ContractAddress + pub owner: ContractAddress, } #[constructor] @@ -48,7 +48,7 @@ mod tests { use super::{SimpleContract, ISimpleContractDispatcher, ISimpleContractDispatcherTrait}; // Import the deploy syscall to be able to deploy the contract. - use starknet::{SyscallResultTrait, syscalls::deploy_syscall}; + use starknet::syscalls::deploy_syscall; use starknet::{get_contract_address, contract_address_const}; // Use starknet test utils to fake the contract_address @@ -61,9 +61,9 @@ mod tests { SimpleContract::TEST_CLASS_HASH.try_into().unwrap(), 0, array![initial_value.into()].span(), - false + false, ) - .unwrap_syscall(); + .unwrap(); // Return the dispatcher. // The dispatcher allows to interact with the contract based on its interface. @@ -164,7 +164,7 @@ mod tests_with_states { // But we can also deploy the contract and interact with it using the dispatcher // as shown in the previous tests, and still use the state for testing. use super::{ISimpleContractDispatcher, ISimpleContractDispatcherTrait}; - use starknet::{SyscallResultTrait, syscalls::deploy_syscall, testing::set_contract_address}; + use starknet::{syscalls::deploy_syscall, testing::set_contract_address}; #[test] fn test_state_with_contract() { @@ -178,9 +178,9 @@ mod tests_with_states { SimpleContract::TEST_CLASS_HASH.try_into().unwrap(), 0, array![initial_value.into()].span(), - false + false, ) - .unwrap_syscall(); + .unwrap(); let mut contract = ISimpleContractDispatcher { contract_address }; // create the state diff --git a/listings/getting-started/variables/src/global_variables.cairo b/listings/getting-started/variables/src/global_variables.cairo index c0dcf9d3..01e7af48 100644 --- a/listings/getting-started/variables/src/global_variables.cairo +++ b/listings/getting-started/variables/src/global_variables.cairo @@ -26,14 +26,14 @@ pub mod GlobalExample { #[cfg(test)] mod test { use super::GlobalExample; - use starknet::{SyscallResultTrait, syscalls::deploy_syscall}; + use starknet::syscalls::deploy_syscall; #[test] fn test_can_deploy() { let (_contract_address, _) = deploy_syscall( - GlobalExample::TEST_CLASS_HASH.try_into().unwrap(), 0, array![].span(), false + GlobalExample::TEST_CLASS_HASH.try_into().unwrap(), 0, array![].span(), false, ) - .unwrap_syscall(); + .unwrap(); // Not much to test } } diff --git a/listings/getting-started/variables/src/local_variables.cairo b/listings/getting-started/variables/src/local_variables.cairo index c7f2a2e6..b6d62839 100644 --- a/listings/getting-started/variables/src/local_variables.cairo +++ b/listings/getting-started/variables/src/local_variables.cairo @@ -32,16 +32,16 @@ pub mod LocalVariablesExample { mod test { use super::{ LocalVariablesExample, ILocalVariablesExampleDispatcher, - ILocalVariablesExampleDispatcherTrait + ILocalVariablesExampleDispatcherTrait, }; - use starknet::{SyscallResultTrait, syscalls::deploy_syscall}; + use starknet::syscalls::deploy_syscall; #[test] fn test_can_deploy_and_do_something() { let (contract_address, _) = deploy_syscall( - LocalVariablesExample::TEST_CLASS_HASH.try_into().unwrap(), 0, array![].span(), false + LocalVariablesExample::TEST_CLASS_HASH.try_into().unwrap(), 0, array![].span(), false, ) - .unwrap_syscall(); + .unwrap(); let contract = ILocalVariablesExampleDispatcher { contract_address }; let value = 10; diff --git a/listings/getting-started/variables/src/storage_variables.cairo b/listings/getting-started/variables/src/storage_variables.cairo index 98fff616..3369445e 100644 --- a/listings/getting-started/variables/src/storage_variables.cairo +++ b/listings/getting-started/variables/src/storage_variables.cairo @@ -15,7 +15,7 @@ pub mod StorageVariablesExample { #[storage] struct Storage { // Storage variable holding a number - pub value: u32 + pub value: u32, } #[abi(embed_v0)] @@ -38,18 +38,18 @@ pub mod StorageVariablesExample { mod test { use super::{ StorageVariablesExample, IStorageVariableExampleDispatcher, - IStorageVariableExampleDispatcherTrait + IStorageVariableExampleDispatcherTrait, }; - use starknet::{SyscallResultTrait, syscalls::deploy_syscall}; + use starknet::syscalls::deploy_syscall; use starknet::testing::set_contract_address; use starknet::storage::StoragePointerReadAccess; #[test] fn test_can_deploy_and_mutate_storage() { let (contract_address, _) = deploy_syscall( - StorageVariablesExample::TEST_CLASS_HASH.try_into().unwrap(), 0, array![].span(), false + StorageVariablesExample::TEST_CLASS_HASH.try_into().unwrap(), 0, array![].span(), false, ) - .unwrap_syscall(); + .unwrap(); let contract = IStorageVariableExampleDispatcher { contract_address }; diff --git a/listings/getting-started/visibility/src/visibility.cairo b/listings/getting-started/visibility/src/visibility.cairo index c3b4e2f4..6143566c 100644 --- a/listings/getting-started/visibility/src/visibility.cairo +++ b/listings/getting-started/visibility/src/visibility.cairo @@ -11,7 +11,7 @@ pub mod ExampleContract { #[storage] struct Storage { - pub value: u32 + pub value: u32, } // The `#[abi(embed_v0)]` attribute indicates that all @@ -57,7 +57,7 @@ pub mod ExampleContract { #[cfg(test)] mod test { use super::{ExampleContract, IExampleContractDispatcher, IExampleContractDispatcherTrait}; - use starknet::{SyscallResultTrait, syscalls::deploy_syscall}; + use starknet::syscalls::deploy_syscall; use starknet::storage::{StoragePointerReadAccess, StoragePointerWriteAccess}; // These imports will allow us to directly access and set the contract state: @@ -71,9 +71,9 @@ mod test { #[test] fn can_call_set_and_get() { let (contract_address, _) = deploy_syscall( - ExampleContract::TEST_CLASS_HASH.try_into().unwrap(), 0, array![].span(), false + ExampleContract::TEST_CLASS_HASH.try_into().unwrap(), 0, array![].span(), false, ) - .unwrap_syscall(); + .unwrap(); // You can interact with the external entrypoints of the contract using the dispatcher. let contract = IExampleContractDispatcher { contract_address }; diff --git a/pages/components/collisions.md b/pages/components/collisions.md index 32e0e20c..32757d10 100644 --- a/pages/components/collisions.md +++ b/pages/components/collisions.md @@ -21,7 +21,7 @@ Interface: // [!include ~/listings/applications/components/src/others/switch_collision.cairo:interface] ``` -Here's the storage of the contract (you can expand the code snippet to see the full contract and tests): +Here's the storage of the contract: ```cairo // [!include ~/listings/applications/components/src/others/switch_collision.cairo:storage] diff --git a/pages/getting-started/basics/storage.md b/pages/getting-started/basics/storage.md index 78acbdb4..16210f31 100644 --- a/pages/getting-started/basics/storage.md +++ b/pages/getting-started/basics/storage.md @@ -17,7 +17,7 @@ You can define [storage variables](/getting-started/basics/variables#storage-var :::note Actually these two contracts have the same underlying Sierra program. -From the compiler's perspective, the storage variables don't exist until they are used. +The Sierra code is generated only for storage variables that are actually accessed in the contract's functions. Declaring but never using a storage variable doesn't affect the compiled contract size/gas costs. ::: You can also read about [storing custom types](/getting-started/basics/storing-custom-types). diff --git a/pages/getting-started/basics/syscalls.md b/pages/getting-started/basics/syscalls.md index 9c93fdda..64ce911e 100644 --- a/pages/getting-started/basics/syscalls.md +++ b/pages/getting-started/basics/syscalls.md @@ -163,7 +163,7 @@ let values = array![]; values.append(1); values.append(2); values.append(3); -emit_event_syscall(keys, values).unwrap_syscall(); +emit_event_syscall(keys, values).unwrap(); ``` --> #### library_call diff --git a/pages/index.mdx b/pages/index.mdx index fa8cde31..0814302d 100644 --- a/pages/index.mdx +++ b/pages/index.mdx @@ -39,7 +39,7 @@ You can run each example online by using the [Starknet Remix Plugin](https://rem ## Further reading If you want to learn more about the Cairo programming language, you can read the [Cairo Book](https://book.cairo-lang.org). -If you want to learn more about Starknet, you can read the [Starknet documentation](https://docs.starknet.io/) and the [Starknet Book](https://book.starknet.io). +If you want to learn more about Starknet, you can read the [Starknet documentation](https://docs.starknet.io/) and the [Starknet Book](https://docs.starknet.io/). For more resources, check [Awesome Starknet](https://github.com/keep-starknet-strange/awesome-starknet). diff --git a/routes.ts b/routes.ts index 53ec16c0..0faacdaf 100644 --- a/routes.ts +++ b/routes.ts @@ -198,23 +198,20 @@ const config: Sidebar = [ }, ], }, - { - text: "Account Abstraction", - items: [ - { - text: "AA on Starknet", - link: "/advanced-concepts/account_abstraction", - }, - { - text: "Account Contract", - link: "/advanced-concepts/account_abstraction/account_contract", - }, - { - text: "Account with Spending Limits", - link: "/advanced-concepts/account_abstraction/account_spending_limits", - } - ], - }, + // Hidden as the content is not 100% correct + // { + // text: "Account Abstraction", + // items: [ + // { + // text: "AA on Starknet", + // link: "/advanced-concepts/account_abstraction", + // }, + // { + // text: "Account Contract", + // link: "/advanced-concepts/account_abstraction/account_contract", + // }, + // ], + // }, { text: "Library Calls", link: "/advanced-concepts/library_calls", diff --git a/vocs.config.ts b/vocs.config.ts index b26ef120..da4225c3 100644 --- a/vocs.config.ts +++ b/vocs.config.ts @@ -23,7 +23,7 @@ export default defineConfig({ editLink: { text: "Contribute", pattern: - "https://github.com/NethermindEth/StarknetByExample/edit/vocs/pages/:path", + "https://github.com/NethermindEth/StarknetByExample/edit/dev/pages/:path", }, socials: [ {