-
Notifications
You must be signed in to change notification settings - Fork 146
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Moved Cairo code snippets to Scarb projects in
docs/listings
commit-id:e2a3655e
- Loading branch information
1 parent
78e3e24
commit 5df9a0b
Showing
123 changed files
with
2,185 additions
and
1,434 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
[workspace] | ||
members = ["scripts/*"] | ||
|
||
[workspace.dependencies] | ||
starknet = "2.7.0" | ||
snforge_std = { path = "../../../snforge_std" } | ||
sncast_std = { path = "../../../sncast_std" } | ||
|
||
[[target.starknet-contract]] | ||
sierra = true | ||
|
||
[scripts] | ||
test = "snforge test" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
[package] | ||
name = "call" | ||
version = "0.1.0" | ||
edition = "2023_11" | ||
|
||
[dependencies] | ||
starknet.workspace = true | ||
sncast_std.workspace = true | ||
|
||
[[target.lib]] | ||
sierra = true | ||
|
||
[scripts] | ||
test = "snforge test" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
use sncast_std::{call, CallResult}; | ||
use starknet::ContractAddress; | ||
|
||
fn main() { | ||
let contract_address: ContractAddress = | ||
0x1e52f6ebc3e594d2a6dc2a0d7d193cb50144cfdfb7fdd9519135c29b67e427 | ||
.try_into() | ||
.expect('Invalid contract address value'); | ||
|
||
let result = call(contract_address, selector!("get"), array![0x1]).expect('call failed'); | ||
|
||
println!("call result: {}", result); | ||
println!("debug call result: {:?}", result); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
[package] | ||
name = "declare" | ||
version = "0.1.0" | ||
edition = "2023_11" | ||
|
||
[dependencies] | ||
starknet.workspace = true | ||
sncast_std.workspace = true | ||
|
||
[[target.starknet-contract]] | ||
sierra = true | ||
|
||
[[target.lib]] | ||
sierra = true | ||
|
||
[scripts] | ||
test = "snforge test" |
15 changes: 15 additions & 0 deletions
15
docs/listings/sncast_library/scripts/declare/src/lib.cairo
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
use sncast_std::{declare, DeclareResult, FeeSettings, EthFeeSettings}; | ||
|
||
fn main() { | ||
let max_fee = 9999999; | ||
|
||
let result = declare( | ||
"HelloStarknet", | ||
FeeSettings::Eth(EthFeeSettings { max_fee: Option::Some(max_fee) }), | ||
Option::None | ||
) | ||
.expect('declare failed'); | ||
|
||
println!("declare result: {}", result); | ||
println!("debug declare result: {:?}", result); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
[package] | ||
name = "deploy" | ||
version = "0.1.0" | ||
edition = "2023_11" | ||
|
||
[dependencies] | ||
starknet.workspace = true | ||
sncast_std.workspace = true | ||
|
||
[[target.lib]] | ||
sierra = true | ||
|
||
[scripts] | ||
test = "snforge test" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
use starknet::ClassHash; | ||
use sncast_std::{deploy, DeployResult, FeeSettings, EthFeeSettings}; | ||
|
||
fn main() { | ||
let max_fee = 9999999; | ||
let salt = 0x1; | ||
let nonce = 0x1; | ||
|
||
let class_hash: ClassHash = 0x03a8b191831033ba48ee176d5dde7088e71c853002b02a1cfa5a760aa98be046 | ||
.try_into() | ||
.expect('Invalid class hash value'); | ||
|
||
let result = deploy( | ||
class_hash, | ||
ArrayTrait::new(), | ||
Option::Some(salt), | ||
true, | ||
FeeSettings::Eth(EthFeeSettings { max_fee: Option::Some(max_fee) }), | ||
Option::Some(nonce) | ||
) | ||
.expect('deploy failed'); | ||
|
||
println!("deploy result: {}", result); | ||
println!("debug deploy result: {:?}", result); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
[package] | ||
name = "get_nonce" | ||
version = "0.1.0" | ||
edition = "2023_11" | ||
|
||
[dependencies] | ||
starknet.workspace = true | ||
snforge_std.workspace = true | ||
sncast_std.workspace = true | ||
|
||
[[target.starknet-contract]] | ||
sierra = true | ||
|
||
[scripts] | ||
test = "snforge test" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
use sncast_std::get_nonce; | ||
|
||
fn main() { | ||
let nonce = get_nonce('latest'); | ||
println!("nonce: {}", nonce); | ||
println!("debug nonce: {:?}", nonce); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
[package] | ||
name = "invoke" | ||
version = "0.1.0" | ||
edition = "2023_11" | ||
|
||
[dependencies] | ||
starknet.workspace = true | ||
snforge_std.workspace = true | ||
sncast_std.workspace = true | ||
|
||
[[target.starknet-contract]] | ||
sierra = true | ||
|
||
[scripts] | ||
test = "snforge test" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
use starknet::ContractAddress; | ||
use sncast_std::{invoke, InvokeResult, FeeSettings, EthFeeSettings}; | ||
|
||
fn main() { | ||
let contract_address: ContractAddress = | ||
0x1e52f6ebc3e594d2a6dc2a0d7d193cb50144cfdfb7fdd9519135c29b67e427 | ||
.try_into() | ||
.expect('Invalid contract address value'); | ||
|
||
let result = invoke( | ||
contract_address, | ||
selector!("put"), | ||
array![0x1, 0x2], | ||
FeeSettings::Eth(EthFeeSettings { max_fee: Option::None }), | ||
Option::None | ||
) | ||
.expect('invoke failed'); | ||
|
||
println!("invoke result: {}", result); | ||
println!("debug invoke result: {:?}", result); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
[package] | ||
name = "tx_status" | ||
version = "0.1.0" | ||
edition = "2023_11" | ||
|
||
[dependencies] | ||
starknet.workspace = true | ||
snforge_std.workspace = true | ||
sncast_std.workspace = true | ||
|
||
[[target.starknet-contract]] | ||
sierra = true | ||
|
||
[scripts] | ||
test = "snforge test" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
use sncast_std::{tx_status}; | ||
|
||
fn main() { | ||
let transaction_hash = 0x00ae35dacba17cde62b8ceb12e3b18f4ab6e103fa2d5e3d9821cb9dc59d59a3c; | ||
let status = tx_status(transaction_hash).expect('Failed to get status'); | ||
|
||
println!("transaction status: {:?}", status); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
scripts/**/*state.json |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
[workspace] | ||
members = ["scripts/*", "crates/*"] | ||
|
||
[workspace.dependencies] | ||
starknet = "2.7.0" | ||
snforge_std = { path = "../../../snforge_std" } | ||
sncast_std = { path = "../../../sncast_std" } | ||
assert_macros = "0.1.0" | ||
|
||
[[target.starknet-contract]] | ||
sierra = true | ||
|
||
[[target.lib]] | ||
sierra = true | ||
casm = true | ||
|
||
[scripts] | ||
test = "snforge test" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
[package] | ||
name = "map" | ||
version = "0.1.0" | ||
edition = "2024_07" | ||
|
||
[[target.starknet-contract]] | ||
sierra = true | ||
|
||
[[target.lib]] | ||
sierra = false | ||
|
||
[dependencies] | ||
starknet.workspace = true |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
#[starknet::interface] | ||
pub trait IMapContract<State> { | ||
fn put(ref self: State, key: felt252, value: felt252); | ||
fn get(self: @State, key: felt252) -> felt252; | ||
} | ||
|
||
#[starknet::contract] | ||
pub mod MapContract { | ||
use starknet::storage::{Map, StorageMapReadAccess, StorageMapWriteAccess}; | ||
|
||
#[storage] | ||
struct Storage { | ||
storage: Map<felt252, felt252>, | ||
} | ||
|
||
#[abi(embed_v0)] | ||
impl MapContractImpl of super::IMapContract<ContractState> { | ||
fn put(ref self: ContractState, key: felt252, value: felt252) { | ||
self.storage.write(key, value); | ||
} | ||
|
||
fn get(self: @ContractState, key: felt252) -> felt252 { | ||
self.storage.read(key) | ||
} | ||
} | ||
} |
13 changes: 13 additions & 0 deletions
13
docs/listings/sncast_overview/scripts/basic_example/Scarb.toml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
[package] | ||
name = "basic_example" | ||
version = "0.1.0" | ||
edition = "2024_07" | ||
|
||
# See more keys and their definitions at https://docs.swmansion.com/scarb/docs/reference/manifest.html | ||
|
||
[dependencies] | ||
sncast_std.workspace = true | ||
starknet.workspace = true | ||
|
||
[[target.lib]] | ||
sierra = true |
17 changes: 17 additions & 0 deletions
17
docs/listings/sncast_overview/scripts/basic_example/src/basic_example.cairo
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
use starknet::ContractAddress; | ||
use sncast_std::{call, CallResult}; | ||
|
||
// A real contract deployed on Sepolia network | ||
const CONTRACT_ADDRESS: felt252 = | ||
0x07e867f1fa6da2108dd2b3d534f1fbec411c5ec9504eb3baa1e49c7a0bef5ab5; | ||
|
||
fn main() { | ||
let call_result = call( | ||
CONTRACT_ADDRESS.try_into().unwrap(), selector!("get_greeting"), array![] | ||
) | ||
.expect('call failed'); | ||
|
||
assert(*call_result.data[1] == 'Hello, Starknet!', *call_result.data[1]); | ||
|
||
println!("{:?}", call_result); | ||
} |
1 change: 1 addition & 0 deletions
1
docs/listings/sncast_overview/scripts/basic_example/src/lib.cairo
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
mod basic_example; |
14 changes: 14 additions & 0 deletions
14
docs/listings/sncast_overview/scripts/error_handling/Scarb.toml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
[package] | ||
name = "error_handling" | ||
version = "0.1.0" | ||
edition = "2024_07" | ||
|
||
# See more keys and their definitions at https://docs.swmansion.com/scarb/docs/reference/manifest.html | ||
|
||
[dependencies] | ||
sncast_std.workspace = true | ||
starknet.workspace = true | ||
assert_macros.workspace = true | ||
|
||
[[target.lib]] | ||
sierra = true |
18 changes: 18 additions & 0 deletions
18
docs/listings/sncast_overview/scripts/error_handling/src/error_handling.cairo
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
use starknet::ContractAddress; | ||
use sncast_std::{call, CallResult}; | ||
|
||
// Some nonexistent contract | ||
const CONTRACT_ADDRESS: felt252 = 0x2137; | ||
|
||
fn main() { | ||
// This call fails | ||
let call_result = call( | ||
CONTRACT_ADDRESS.try_into().unwrap(), selector!("get_greeting"), array![] | ||
); | ||
|
||
// Make some assertion | ||
assert!(call_result.is_err()); | ||
|
||
// Print the result error | ||
println!("Received error: {:?}", call_result.unwrap_err()); | ||
} |
1 change: 1 addition & 0 deletions
1
docs/listings/sncast_overview/scripts/error_handling/src/lib.cairo
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
mod error_handling; |
16 changes: 16 additions & 0 deletions
16
docs/listings/sncast_overview/scripts/full_example/Scarb.toml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
[package] | ||
name = "full_example" | ||
version = "0.1.0" | ||
edition = "2024_07" | ||
|
||
# See more keys and their definitions at https://docs.swmansion.com/scarb/docs/reference/manifest.html | ||
|
||
[dependencies] | ||
sncast_std.workspace = true | ||
map = { path = "../../crates/map" } | ||
|
||
[[target.starknet-contract]] | ||
build-external-contracts = ["map::MapContract"] | ||
|
||
[[target.lib]] | ||
sierra = true |
Oops, something went wrong.