diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..11818d9 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,16 @@ +name: Build contracts and check formatting +on: + push: + merge_group: + pull_request: +jobs: + check: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: software-mansion/setup-scarb@v1 + with: + scarb-version: "2.12.2" + - run: scarb build + - run: scarb fmt --check + - run: scarb lint \ No newline at end of file diff --git a/Scarb.toml b/Scarb.toml index e3db7b1..03620ac 100644 --- a/Scarb.toml +++ b/Scarb.toml @@ -6,11 +6,11 @@ edition = "2024_07" # See more keys and their definitions at https://docs.swmansion.com/scarb/docs/reference/manifest.html [dependencies] -starknet = "2.11.4" +starknet = "2.12.2" [dev-dependencies] -snforge_std = "0.48.0" -assert_macros = "2.11.4" +snforge_std = "0.48.1" +assert_macros = "2.12.2" [[target.starknet-contract]] sierra = true diff --git a/src/contracts/HelloStarknet.cairo b/src/contracts/HelloStarknet.cairo index efbac00..c2cd5b3 100644 --- a/src/contracts/HelloStarknet.cairo +++ b/src/contracts/HelloStarknet.cairo @@ -1,10 +1,13 @@ /// Simple contract for managing balance. #[starknet::contract] pub mod HelloStarknet { - use cairo_bootcamp_5::interfaces::IHelloStarknet::IHelloStarknet; - // use starknet::storage::{StoragePointerReadAccess, StoragePathEntry, StoragePointerWriteAccess, Map }; - use starknet::storage::{Map, StorageMapReadAccess, StorageMapWriteAccess, StoragePointerReadAccess, StoragePointerWriteAccess }; + // use starknet::storage::{StoragePointerReadAccess, StoragePathEntry, + // StoragePointerWriteAccess, Map }; + use starknet::storage::{ + Map, StorageMapReadAccess, StorageMapWriteAccess, StoragePointerReadAccess, + StoragePointerWriteAccess, + }; use starknet::{ContractAddress, get_caller_address}; #[storage] @@ -16,7 +19,7 @@ pub mod HelloStarknet { #[event] #[derive(Drop, starknet::Event)] pub enum Event { - Balance : BalanceIncreased, + Balance: BalanceIncreased, } #[derive(Drop, starknet::Event)] @@ -42,11 +45,11 @@ pub mod HelloStarknet { // self.balance.write(self.balance.read() + amount); - self.emit(BalanceIncreased{caller, amount}); + self.emit(BalanceIncreased { caller, amount }); } fn get_balance(self: @ContractState) -> felt252 { self.balance.read() } } -} \ No newline at end of file +} diff --git a/src/contracts/counter.cairo b/src/contracts/counter.cairo index 110527f..b5937b2 100644 --- a/src/contracts/counter.cairo +++ b/src/contracts/counter.cairo @@ -13,7 +13,7 @@ pub mod Counter { #[event] #[derive(Drop, starknet::Event)] pub enum Event { - CountUpdated : CountUpdated, + CountUpdated: CountUpdated, } #[derive(Drop, starknet::Event)] @@ -48,4 +48,4 @@ pub mod Counter { self.emit(CountUpdated { old_value, new_value }); } } -} \ No newline at end of file +} diff --git a/src/interfaces/ICounter.cairo b/src/interfaces/ICounter.cairo index f1657e6..c94c544 100644 --- a/src/interfaces/ICounter.cairo +++ b/src/interfaces/ICounter.cairo @@ -3,4 +3,4 @@ pub trait ICounter { fn get_count(self: @TContractState) -> u32; fn increment(ref self: TContractState); fn decrement(ref self: TContractState); -} \ No newline at end of file +} diff --git a/src/interfaces/IHelloStarknet.cairo b/src/interfaces/IHelloStarknet.cairo index 979b66e..eb81bc7 100644 --- a/src/interfaces/IHelloStarknet.cairo +++ b/src/interfaces/IHelloStarknet.cairo @@ -6,4 +6,4 @@ pub trait IHelloStarknet { fn increase_balance(ref self: TContractState, amount: felt252); /// Retrieve contract balance. fn get_balance(self: @TContractState) -> felt252; -} \ No newline at end of file +} diff --git a/src/lib.cairo b/src/lib.cairo index 7eeead4..8619ac1 100644 --- a/src/lib.cairo +++ b/src/lib.cairo @@ -1,9 +1,9 @@ -pub mod interfaces{ - pub mod IHelloStarknet; +pub mod interfaces { pub mod ICounter; + pub mod IHelloStarknet; } -pub mod contracts{ +pub mod contracts { pub mod HelloStarknet; pub mod counter; } diff --git a/tests/test_contract.cairo b/tests/test_contract.cairo index 4fc48cc..d51e451 100644 --- a/tests/test_contract.cairo +++ b/tests/test_contract.cairo @@ -1,12 +1,10 @@ +use cairo_bootcamp_5::interfaces::IHelloStarknet::{ + IHelloStarknetDispatcher, IHelloStarknetDispatcherTrait, IHelloStarknetSafeDispatcher, + IHelloStarknetSafeDispatcherTrait, +}; +use snforge_std::{ContractClassTrait, DeclareResultTrait, declare}; use starknet::ContractAddress; -use snforge_std::{declare, ContractClassTrait, DeclareResultTrait}; - -use cairo_bootcamp_5::interfaces::IHelloStarknet::IHelloStarknetSafeDispatcher; -use cairo_bootcamp_5::interfaces::IHelloStarknet::IHelloStarknetSafeDispatcherTrait; -use cairo_bootcamp_5::interfaces::IHelloStarknet::IHelloStarknetDispatcher; -use cairo_bootcamp_5::interfaces::IHelloStarknet::IHelloStarknetDispatcherTrait; - fn deploy_contract(name: ByteArray) -> ContractAddress { let contract = declare(name).unwrap().contract_class(); let (contract_address, _) = contract.deploy(@ArrayTrait::new()).unwrap(); @@ -42,6 +40,6 @@ fn test_cannot_increase_balance_with_zero_value() { Result::Ok(_) => core::panic_with_felt252('Should have panicked'), Result::Err(panic_data) => { assert(*panic_data.at(0) == 'Amount cannot be 0', *panic_data.at(0)); - } + }, }; }