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
12 changes: 9 additions & 3 deletions starknet_contracts/Scarb.toml
Original file line number Diff line number Diff line change
@@ -1,19 +1,25 @@
[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
path = "starknet_contracts/src/contracts/counter.cairo"

[toolchain]
sierra = true
casm = true

[scripts]
test = "snforge test"
Expand Down
27 changes: 19 additions & 8 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 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};
use starknet::storage::{Map, StorageMapReadAccess, StorageMapWriteAccess, StoragePointerReadAccess, StoragePointerWriteAccess };
use starknet::{ContractAddress, get_caller_address};

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

#[event]
#[derive(Drop, Starknet::Event)]
#[derive(Drop, starknet::Event)]
pub enum Event {
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 set_balance(ref self: ContractState, amount: felt252) {
self.balance.write(amount);
}
fn reset_balance(ref self: ContractState) {
self.balance.write(0);
}
fn increase_balance(ref self: ContractState, amount: felt252) {
assert(amount != 0, 'Amount cannot be 0');
let caller = get_caller_address();
Expand All @@ -49,4 +55,9 @@ pub mod HelloStarknet {
self.balance.read()
}
}
}
}

// this is the link to a hackmd file detailing the steps taken to achieve the process
// https://hackmd.io/@demigodjayydy/B1uVi-23xx

// stark token transfer transaction hash: 0x007d9c57cc95103408b263c3743b1b88b42277870555dbeb1b2b09e4e60143e4
16 changes: 8 additions & 8 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 {
// use Starknet::ContractAddress;
// use Starknet::get_caller_address;
use Starknet_contracts::interfaces::ICounter::ICounter;
use Starknet::storage::{StoragePointerReadAccess, StoragePointerWriteAccess};
#[starknet::contract]
pub mod counter {
// 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
8 changes: 6 additions & 2 deletions starknet_contracts/src/interfaces/IHelloStarknet.cairo
Original file line number Diff line number Diff line change
@@ -1,7 +1,11 @@
/// 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> {
/// set contract balance.
fn set_balance(ref self: TContractState, amount: felt252);
/// reset contract balance
fn reset_balance(ref self:TContractState);
/// Increase contract balance.
fn increase_balance(ref self: TContractState, amount: felt252);
/// Retrieve contract balance.
Expand Down