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
3 changes: 3 additions & 0 deletions starknet_contracts/Readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
## Link to Hackmd File: https://hackmd.io/@gZFsUVjBT3yeOilAk6Vapg/ByzmLzh2eg

## Transaction-Hash: 0x02cc5b3b24ee7a271fea2af3536756e64835472a7204183654558929df6911e8
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
6 changes: 3 additions & 3 deletions starknet_contracts/Scarb.toml
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
[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

[scripts]
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,14 @@
/// Simple contract for managing balance.
#[Starknet::contract]
pub mod HelloStarknet {

use Starknet_contracts::interfaces::IHelloStarknet::IHelloStarknet;
// use Starknet::storage::{StoragePointerReadAccess, StoragePathEntry, StoragePointerWriteAccess, Map };
use Starknet::storage::{Map, StorageMapReadAccess, StorageMapWriteAccess, StoragePointerReadAccess, StoragePointerWriteAccess };
use Starknet::{ContractAddress, get_caller_address};
#[starknet::contract]
pub mod Hellostarknet {
// use starknet::storage::{StoragePointerReadAccess, StoragePathEntry,
// StoragePointerWriteAccess, Map };
use starknet::storage::{
Map, StorageMapReadAccess, StorageMapWriteAccess, StoragePointerReadAccess,
StoragePointerWriteAccess,
};
use starknet::{ContractAddress, get_caller_address};
use starknet_contracts::interfaces::IHellostarknet::IHellostarknet;

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

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

#[derive(Drop, Starknet::Event)]
#[derive(Drop, starknet::Event)]
pub struct BalanceIncreased {
pub caller: ContractAddress,
pub amount: felt252,
}

#[abi(embed_v0)]
impl HelloStarknetImpl of IHelloStarknet<ContractState> {
impl HellostarknetImpl of IHellostarknet<ContractState> {
fn increase_balance(ref self: ContractState, amount: felt252) {
assert(amount != 0, 'Amount cannot be 0');
let caller = get_caller_address();
Expand All @@ -42,11 +45,20 @@ pub mod HelloStarknet {

// self.balance.write(self.balance.read() + amount);

self.emit(BalanceIncreased{caller, amount});
self.emit(BalanceIncreased { caller, amount });
}

fn set_balance(ref self: ContractState, amount: felt252) {
assert(amount != 0, 'Amount cannot be 0');
self.balance.write(amount);
}

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

fn get_balance(self: @ContractState) -> felt252 {
self.balance.read()
}
}
}
}
14 changes: 7 additions & 7 deletions starknet_contracts/src/contracts/counter.cairo
Original file line number Diff line number Diff line change
@@ -1,22 +1,22 @@
#[Starknet::contract]
#[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::ContractAddress;
// use starknet::get_caller_address;
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
Original file line number Diff line number Diff line change
@@ -1,9 +1,12 @@
/// Interface representing `HelloContract`.
/// This interface allows modification and retrieval of the contract balance.
#[Starknet::interface]
pub trait IHelloStarknet<TContractState> {
#[starknet::interface]
pub trait IHellostarknet<TContractState> {
/// Increase contract balance.
fn increase_balance(ref self: TContractState, amount: felt252);
fn set_balance(ref self: TContractState, amount: felt252);
/// Resets the balance to zero.
fn reset_balance(ref self: TContractState);
/// Retrieve contract balance.
fn get_balance(self: @TContractState) -> felt252;
}
}
8 changes: 4 additions & 4 deletions starknet_contracts/src/lib.cairo
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
pub mod interfaces{
pub mod IHelloStarknet;
pub mod interfaces {
pub mod ICounter;
pub mod IHellostarknet;
}

pub mod contracts{
pub mod HelloStarknet;
pub mod contracts {
pub mod Hellostarknet;
pub mod counter;
}