Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion starknet_contracts/Scarb.lock
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ dependencies = [
]

[[package]]
name = "Starknet_contracts"
name = "starknet_contracts"
version = "0.1.0"
dependencies = [
"snforge_std",
Expand Down
7 changes: 4 additions & 3 deletions starknet_contracts/Scarb.toml
Original file line number Diff line number Diff line change
@@ -1,19 +1,20 @@
[package]
name = "Starknet_contracts"
name = "starknet_contracts"
version = "0.1.0"
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.11.4"

[dev-dependencies]
snforge_std = "0.43.1"
assert_macros = "2.11.4"

[[target.Starknet-contract]]
[[target.starknet-contract]]
sierra = true
casm = true

[scripts]
test = "snforge test"
Expand Down
22 changes: 15 additions & 7 deletions starknet_contracts/src/contracts/HelloStarknet.cairo
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
/// Simple contract for managing balance.
#[Starknet::contract]
#[starknet::contract]
pub mod HelloStarknet {

use Starknet_contracts::interfaces::IHelloStarknet::IHelloStarknet;
use crate::interfaces::IHelloStarknet::IHelloStarknet;
// use Starknet::storage::{StoragePointerReadAccess, StoragePathEntry, StoragePointerWriteAccess, Map };
use Starknet::storage::{Map, StorageMapReadAccess, StorageMapWriteAccess, StoragePointerReadAccess, StoragePointerWriteAccess };
use Starknet::{ContractAddress, get_caller_address};
use starknet::storage::{Map, StorageMapReadAccess, StorageMapWriteAccess, StoragePointerReadAccess, StoragePointerWriteAccess };
use starknet::{ContractAddress, get_caller_address};

#[storage]
struct Storage {
Expand All @@ -14,12 +14,12 @@ pub mod HelloStarknet {
}

#[event]
#[derive(Drop, Starknet::Event)]
#[derive(Drop, starknet::Event)]
pub enum Event {
Balance : BalanceIncreased,
BalanceIncreased: BalanceIncreased,
}

#[derive(Drop, Starknet::Event)]
#[derive(Drop, starknet::Event)]
pub struct BalanceIncreased {
pub caller: ContractAddress,
pub amount: felt252,
Expand Down Expand Up @@ -48,5 +48,13 @@ pub mod HelloStarknet {
fn get_balance(self: @ContractState) -> felt252 {
self.balance.read()
}

fn reset_balance(ref self: ContractState){
self.balance.write(0);
}

fn set_balance(ref self: ContractState, amount: felt252) {
self.balance.write(amount);
}
}
}
12 changes: 6 additions & 6 deletions starknet_contracts/src/contracts/counter.cairo
Original file line number Diff line number Diff line change
@@ -1,22 +1,22 @@
#[Starknet::contract]
pub mod Counter {
#[starknet::contract]
pub mod counter {
// use Starknet::ContractAddress;
// use Starknet::get_caller_address;
use Starknet_contracts::interfaces::ICounter::ICounter;
use Starknet::storage::{StoragePointerReadAccess, StoragePointerWriteAccess};
use starknet_contracts::interfaces::ICounter::ICounter;
use starknet::storage::{StoragePointerReadAccess, StoragePointerWriteAccess};

#[storage]
struct Storage {
count: u32,
}

#[event]
#[derive(Drop, Starknet::Event)]
#[derive(Drop, starknet::Event)]
pub enum Event {
CountUpdated : CountUpdated,
}

#[derive(Drop, Starknet::Event)]
#[derive(Drop, starknet::Event)]
struct CountUpdated {
old_value: u32,
new_value: u32,
Expand Down
2 changes: 1 addition & 1 deletion starknet_contracts/src/interfaces/ICounter.cairo
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#[Starknet::interface]
#[starknet::interface]
pub trait ICounter<TContractState> {
fn get_count(self: @TContractState) -> u32;
fn increment(ref self: TContractState);
Expand Down
6 changes: 5 additions & 1 deletion starknet_contracts/src/interfaces/IHelloStarknet.cairo
Original file line number Diff line number Diff line change
@@ -1,9 +1,13 @@
#[starknet::interface]
/// Interface representing `HelloContract`.
/// This interface allows modification and retrieval of the contract balance.
#[Starknet::interface]
pub trait IHelloStarknet<TContractState> {
/// Increase contract balance.
fn increase_balance(ref self: TContractState, amount: felt252);
/// Retrieve contract balance.
fn get_balance(self: @TContractState) -> felt252;

fn reset_balance(ref self: TContractState);

fn set_balance(ref self: TContractState, amount: felt252);
}
47 changes: 0 additions & 47 deletions starknet_contracts/tests/test_contract.cairo

This file was deleted.

6 changes: 5 additions & 1 deletion tasks/session-5-task-a.md
Original file line number Diff line number Diff line change
Expand Up @@ -69,4 +69,8 @@ sncast invoke \

- Push your updated Counter contract to your GitHub repo.
- Share your sncast transaction hash as proof of STRK token transfer.
- Create a PR
- Create a PR



Task A HackMd link: https://hackmd.io/@Folex404/B1-UwDnhex
1 change: 1 addition & 0 deletions tasks/session-5-task-b.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,4 @@ Deploy or use the given Counter contract, then use sncast to:
- Invoke `decrement` once.
- Call `get_count` again to verify it decreased.

Task B HackMd link: https://hackmd.io/@Folex404/B1szM0QTle
Empty file.
3 changes: 3 additions & 0 deletions testing/target/CACHEDIR.TAG
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
Signature: 8a477f597d28d172789f06886806bc55
# This file is a cache directory tag created by scarb.
# For information about cache directory tags see https://bford.info/cachedir/
1 change: 1 addition & 0 deletions testing/target/dev/.fingerprint/core-anh5qufm17uug/core
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
2n7gdr5k2cm04
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
5k5acrio9s52m
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
0qlu1dg1eo62q
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
638oolbhjss8c
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
1391uq391jkdo
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
r9aetd9dc9cbi
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
9icavr298j10s
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
ecvd2qc4bco50
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
bei9tcsg899nc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
ipo5dt9jpl22m
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
jdutg1gquj5vg
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
5heb0amfh6equ
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
91j0aofteg1e6
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
geit0j70oej4e
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
jropvsms2c5bi
1 change: 1 addition & 0 deletions testing/target/dev/.fingerprint/test-95vr7q35u8suu/test
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
koohhjr2j24o6
1 change: 1 addition & 0 deletions testing/target/dev/.fingerprint/test-eg02snsrbp97a/test
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
gj5oho28nkv22
1 change: 1 addition & 0 deletions testing/target/dev/.fingerprint/test-s1nsvdkriimg2/test
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
nmr8q2j4upcs4
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
fk65jjg9on4a6
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
cusr7f7eu24s4
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
e8r5fbv6rv9cc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
k19n1aoht0k2q
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
3m7i4rkctbdfm
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
17i8272o4h8su
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
1 change: 1 addition & 0 deletions testing/target/dev/test_integrationtest.test.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"contracts_info":[["0x15c2aa5539d3b4737e9f62266a62a089864a7797ad607df0bd11ea186043f0e",{"constructor":{"id":885,"debug_name":"test::RewardToken::RewardERC20::__wrapper__constructor"},"externals":[["0x361458367e696363fbcc70777d07ebbd2394e89fd0adcaf147faccd1d294d60",{"id":561,"debug_name":"test::RewardToken::RewardERC20::__wrapper__CustomERC20MetadataImpl__name"}],["0x216b05c387bab9ac31918a3e61672f4618601f3c598a2f3f2710f37053e1ea4",{"id":556,"debug_name":"test::RewardToken::RewardERC20::__wrapper__CustomERC20MetadataImpl__symbol"}],["0x4c4fb1ab068f6039d5780c68dd0fa2f8742cceb3426d19667778ca7f3518a9",{"id":609,"debug_name":"test::RewardToken::RewardERC20::__wrapper__CustomERC20MetadataImpl__decimals"}],["0x2f0b3c5710379609eb5495f1ecd348cb28167711b73609fe565a72734550354",{"id":693,"debug_name":"test::RewardToken::RewardERC20::__wrapper__ExternalImpl__mint"}],["0x1557182e4359a1f0c6301278e8f5b35a776ab58d39892581e357578fb287836",{"id":636,"debug_name":"openzeppelin_token::erc20::erc20::ERC20Component::__wrapper__ERC20Impl__total_supply::<test::RewardToken::RewardERC20::ContractState, test::RewardToken::RewardERC20::HasComponentImpl_ERC20Component, openzeppelin_token::erc20::erc20::ERC20HooksEmptyImpl::<test::RewardToken::RewardERC20::ContractState>, test::RewardToken::RewardERC20::ContractStateDrop, test::RewardToken::RewardERC20::ContractStateERC20Impl>"}],["0x35a73cd311a05d46deda634c5ee045db92f811b4e74bca4437fcb5302b7af33",{"id":657,"debug_name":"openzeppelin_token::erc20::erc20::ERC20Component::__wrapper__ERC20Impl__balance_of::<test::RewardToken::RewardERC20::ContractState, test::RewardToken::RewardERC20::HasComponentImpl_ERC20Component, openzeppelin_token::erc20::erc20::ERC20HooksEmptyImpl::<test::RewardToken::RewardERC20::ContractState>, test::RewardToken::RewardERC20::ContractStateDrop, test::RewardToken::RewardERC20::ContractStateERC20Impl>"}],["0x1e888a1026b19c8c0b57c72d63ed1737106aa10034105b980ba117bd0c29fe1",{"id":688,"debug_name":"openzeppelin_token::erc20::erc20::ERC20Component::__wrapper__ERC20Impl__allowance::<test::RewardToken::RewardERC20::ContractState, test::RewardToken::RewardERC20::HasComponentImpl_ERC20Component, openzeppelin_token::erc20::erc20::ERC20HooksEmptyImpl::<test::RewardToken::RewardERC20::ContractState>, test::RewardToken::RewardERC20::ContractStateDrop, test::RewardToken::RewardERC20::ContractStateERC20Impl>"}],["0x83afd3f4caedc6eebf44246fe54e38c95e3179a5ec9ea81740eca5b482d12e",{"id":728,"debug_name":"openzeppelin_token::erc20::erc20::ERC20Component::__wrapper__ERC20Impl__transfer::<test::RewardToken::RewardERC20::ContractState, test::RewardToken::RewardERC20::HasComponentImpl_ERC20Component, openzeppelin_token::erc20::erc20::ERC20HooksEmptyImpl::<test::RewardToken::RewardERC20::ContractState>, test::RewardToken::RewardERC20::ContractStateDrop, test::RewardToken::RewardERC20::ContractStateERC20Impl>"}],["0x3704ffe8fba161be0e994951751a5033b1462b918ff785c0a636be718dfdb68",{"id":764,"debug_name":"openzeppelin_token::erc20::erc20::ERC20Component::__wrapper__ERC20Impl__transfer_from::<test::RewardToken::RewardERC20::ContractState, test::RewardToken::RewardERC20::HasComponentImpl_ERC20Component, openzeppelin_token::erc20::erc20::ERC20HooksEmptyImpl::<test::RewardToken::RewardERC20::ContractState>, test::RewardToken::RewardERC20::ContractStateDrop, test::RewardToken::RewardERC20::ContractStateERC20Impl>"}],["0x219209e083275171774dab1df80982e9df2096516f06319c5c6d71ae0a8480c",{"id":755,"debug_name":"openzeppelin_token::erc20::erc20::ERC20Component::__wrapper__ERC20Impl__approve::<test::RewardToken::RewardERC20::ContractState, test::RewardToken::RewardERC20::HasComponentImpl_ERC20Component, openzeppelin_token::erc20::erc20::ERC20HooksEmptyImpl::<test::RewardToken::RewardERC20::ContractState>, test::RewardToken::RewardERC20::ContractStateDrop, test::RewardToken::RewardERC20::ContractStateERC20Impl>"}],["0x2016836a56b71f0d02689e69e326f4f4c1b9057164ef592671cf0d37c8040c0",{"id":762,"debug_name":"openzeppelin_access::ownable::ownable::OwnableComponent::__wrapper__OwnableImpl__owner::<test::RewardToken::RewardERC20::ContractState, test::RewardToken::RewardERC20::HasComponentImpl_OwnableComponent, test::RewardToken::RewardERC20::ContractStateDrop, test::RewardToken::RewardERC20::ContractStateOwnableImpl>"}],["0x2a3bb1eaa05b77c4b0eeee0116a3177c6d62319dd7149ae148185d9e09de74a",{"id":777,"debug_name":"openzeppelin_access::ownable::ownable::OwnableComponent::__wrapper__OwnableImpl__transfer_ownership::<test::RewardToken::RewardERC20::ContractState, test::RewardToken::RewardERC20::HasComponentImpl_OwnableComponent, test::RewardToken::RewardERC20::ContractStateDrop, test::RewardToken::RewardERC20::ContractStateOwnableImpl>"}],["0x52580a92c73f4428f1a260c5d768ef462b25955307de00f99957df119865d",{"id":785,"debug_name":"openzeppelin_access::ownable::ownable::OwnableComponent::__wrapper__OwnableImpl__renounce_ownership::<test::RewardToken::RewardERC20::ContractState, test::RewardToken::RewardERC20::HasComponentImpl_OwnableComponent, test::RewardToken::RewardERC20::ContractStateDrop, test::RewardToken::RewardERC20::ContractStateOwnableImpl>"}]],"l1_handlers":[]}],["0x1604b80dc30a8d770681a691264de10989a35325419acf88a8787aef9ac5a0c",{"constructor":{"id":59,"debug_name":"test::StakingContract::Staking::__wrapper__constructor"},"externals":[["0x3a04795accb4b73d12f13b05a1e0e240cefeb9a89d008676730867a819d2f79",{"id":888,"debug_name":"test::StakingContract::Staking::__wrapper__StakingImpl__stake"}],["0x2a5f98dab2794e374cbfe484f92e0b5c6cfc3508cdc272836c03bbdfdc2aa73",{"id":886,"debug_name":"test::StakingContract::Staking::__wrapper__StakingImpl__get_stake_details"}],["0x23e3dfdfce465cb27b5e8c896aede30a96778c0a4ff3c8e892d8dc27583e22c",{"id":746,"debug_name":"test::StakingContract::Staking::__wrapper__StakingImpl__unstake"}],["0x34e19ca8ab2a9374330dc87128630f3eac2c8889efde6d935d5469ba80c97d7",{"id":615,"debug_name":"test::StakingContract::Staking::__wrapper__StakingImpl__get_strk_address"}],["0x31d46030b71ea5229d247a31cd9c897c99076c224d6a5eba6b343f2b4c76372",{"id":608,"debug_name":"test::StakingContract::Staking::__wrapper__StakingImpl__get_reward_address"}],["0x89c7b1cc4866e9e58d867cb66844bcc9c17cfdabb8ab640b05d2bc53efc556",{"id":604,"debug_name":"test::StakingContract::Staking::__wrapper__StakingImpl__claim_rewards"}],["0x20e37286e99b797b5999ed8b3b41d3862874600c75b66567c441d3951788963",{"id":479,"debug_name":"test::StakingContract::Staking::__wrapper__StakingImpl__earned"}],["0x35a73cd311a05d46deda634c5ee045db92f811b4e74bca4437fcb5302b7af33",{"id":451,"debug_name":"test::StakingContract::Staking::__wrapper__StakingImpl__balance_of"}],["0x1557182e4359a1f0c6301278e8f5b35a776ab58d39892581e357578fb287836",{"id":416,"debug_name":"test::StakingContract::Staking::__wrapper__StakingImpl__total_supply"}],["0x2ecc03babf54d0114912608dd444f9b865b550ab4bccabec9f24a0954bf3e83",{"id":408,"debug_name":"test::StakingContract::Staking::__wrapper__StakingImpl__last_time_reward_applicable"}],["0x1afa5f5b78c592a8cd10f53fb32fc3018cd6bb944b3939186162ff5b59786e9",{"id":406,"debug_name":"test::StakingContract::Staking::__wrapper__StakingImpl__reward_per_token"}],["0x2016836a56b71f0d02689e69e326f4f4c1b9057164ef592671cf0d37c8040c0",{"id":261,"debug_name":"openzeppelin_access::ownable::ownable::OwnableComponent::__wrapper__OwnableImpl__owner::<test::StakingContract::Staking::ContractState, test::StakingContract::Staking::HasComponentImpl_OwnableComponent, test::StakingContract::Staking::ContractStateDrop, test::StakingContract::Staking::ContractStateOwnableImpl>"}],["0x2a3bb1eaa05b77c4b0eeee0116a3177c6d62319dd7149ae148185d9e09de74a",{"id":254,"debug_name":"openzeppelin_access::ownable::ownable::OwnableComponent::__wrapper__OwnableImpl__transfer_ownership::<test::StakingContract::Staking::ContractState, test::StakingContract::Staking::HasComponentImpl_OwnableComponent, test::StakingContract::Staking::ContractStateDrop, test::StakingContract::Staking::ContractStateOwnableImpl>"}],["0x52580a92c73f4428f1a260c5d768ef462b25955307de00f99957df119865d",{"id":243,"debug_name":"openzeppelin_access::ownable::ownable::OwnableComponent::__wrapper__OwnableImpl__renounce_ownership::<test::StakingContract::Staking::ContractState, test::StakingContract::Staking::HasComponentImpl_OwnableComponent, test::StakingContract::Staking::ContractStateDrop, test::StakingContract::Staking::ContractStateOwnableImpl>"}],["0x238d7ea31550fece8f0a8a601e3ae1a7c59cb3b6cc976ceb721e31ebd9c36f9",{"id":94,"debug_name":"openzeppelin_security::pausable::PausableComponent::__wrapper__PausableImpl__is_paused::<test::StakingContract::Staking::ContractState, test::StakingContract::Staking::HasComponentImpl_PausableComponent, test::StakingContract::Staking::ContractStateDrop, test::StakingContract::Staking::ContractStatePausableImpl>"}]],"l1_handlers":[]}]],"function_set_costs":[[{"id":561,"debug_name":null},{"Const":10000}],[{"id":556,"debug_name":null},{"Const":10000}],[{"id":609,"debug_name":null},{"Const":10000}],[{"id":693,"debug_name":null},{"Const":10000}],[{"id":636,"debug_name":null},{"Const":10000}],[{"id":657,"debug_name":null},{"Const":10000}],[{"id":688,"debug_name":null},{"Const":10000}],[{"id":728,"debug_name":null},{"Const":10000}],[{"id":764,"debug_name":null},{"Const":10000}],[{"id":755,"debug_name":null},{"Const":10000}],[{"id":762,"debug_name":null},{"Const":10000}],[{"id":777,"debug_name":null},{"Const":10000}],[{"id":785,"debug_name":null},{"Const":10000}],[{"id":885,"debug_name":null},{"Const":10000}],[{"id":888,"debug_name":null},{"Const":10000}],[{"id":886,"debug_name":null},{"Const":10000}],[{"id":746,"debug_name":null},{"Const":10000}],[{"id":615,"debug_name":null},{"Const":10000}],[{"id":608,"debug_name":null},{"Const":10000}],[{"id":604,"debug_name":null},{"Const":10000}],[{"id":479,"debug_name":null},{"Const":10000}],[{"id":451,"debug_name":null},{"Const":10000}],[{"id":416,"debug_name":null},{"Const":10000}],[{"id":408,"debug_name":null},{"Const":10000}],[{"id":406,"debug_name":null},{"Const":10000}],[{"id":261,"debug_name":null},{"Const":10000}],[{"id":254,"debug_name":null},{"Const":10000}],[{"id":243,"debug_name":null},{"Const":10000}],[{"id":94,"debug_name":null},{"Const":10000}],[{"id":59,"debug_name":null},{"Const":10000}]],"named_tests":[]}
1 change: 1 addition & 0 deletions testing/target/dev/test_integrationtest.test.sierra.json

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"version":1,"contracts":[{"id":"2bse5jgqkuuuq","package_name":"test","contract_name":"Staking","module_path":"test::StakingContract::Staking","artifacts":{"sierra":"test_integrationtest_Staking.test.contract_class.json","casm":null}},{"id":"ia216ja24o5fs","package_name":"test","contract_name":"RewardERC20","module_path":"test::RewardToken::RewardERC20","artifacts":{"sierra":"test_integrationtest_RewardERC20.test.contract_class.json","casm":null}}]}

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Loading