Skip to content
This repository was archived by the owner on Jul 22, 2024. It is now read-only.

Commit 6aa3eeb

Browse files
author
fannyguthmann
committed
work in progress
1 parent f67e678 commit 6aa3eeb

File tree

5 files changed

+324
-53
lines changed

5 files changed

+324
-53
lines changed
Lines changed: 47 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,22 @@
11
#[contract]
22
mod multy_syscall {
3-
use starknet::info::get_caller_address;
4-
use starknet::info::get_contract_address;
3+
use starknet::get_caller_address;
4+
use starknet::get_contract_address;
55
use starknet::get_execution_info_syscall;
66
use starknet::replace_class_syscall;
77
use starknet::library_call_syscall;
88
use starknet::call_contract_syscall;
9+
use starknet::send_message_to_l1_syscall;
10+
use starknet::storage_read_syscall;
11+
use starknet::storage_write_syscall;
12+
use starknet::deploy_syscall;
913

1014
use starknet::storage_access::{StorageAddress, storage_address_try_from_felt252};
11-
use starknet::ContractAddress;
15+
use starknet::contract_address::ContractAddress;
1216
use array::{Array, ArrayTrait, Span, SpanTrait};
1317
use result::ResultTrait;
1418
use option::OptionTrait;
15-
use starknet::syscalls::deploy_syscall;
1619
use starknet::class_hash::ClassHash;
17-
1820

1921
#[external]
2022
fn caller_address() {
@@ -31,25 +33,54 @@ mod multy_syscall {
3133
get_execution_info_syscall();
3234
}
3335

34-
#[view]
35-
fn get_number() -> felt252 {
36-
25
37-
}
38-
3936
#[external]
4037
fn replace_class_syscall_test(new_class_hash: ClassHash) {
4138
replace_class_syscall(new_class_hash);
4239
}
4340

4441
#[external]
45-
fn library_call_syscall_test(class_hash: ClassHash, function_selector: felt252, calldata: Array<felt252>) {
42+
fn test_library_call_syscall_test(class_hash: ClassHash, function_selector: felt252, calldata: Array<felt252>) {
4643
library_call_syscall(class_hash, function_selector, calldata.span());
4744
}
4845

46+
#[external]
47+
fn test_call_contract_syscall(address: ContractAddress, function_selector: felt252, calldata: Array<felt252>) {
48+
call_contract_syscall(address, function_selector, calldata.span());
49+
}
50+
51+
#[external]
52+
fn test_send_message_to_l1(to_address: felt252,payload: Array<felt252>){
53+
send_message_to_l1_syscall(to_address, payload.span());
54+
}
4955

50-
// #[external]
51-
// fn contract_call_syscall_test(contract_address: ContractAddress, function_selector: felt252, calldata: Array<felt252>) {
52-
// call_contract_syscall(class_hash, function_selector, calldata.span());
53-
// }
54-
}
56+
#[external]
57+
fn read()-> felt252{
58+
//write to storage
59+
let address = storage_address_try_from_felt252(3534535754756246375475423547453).unwrap();
60+
storage_write_syscall(0, address, 'Hello');
5561

62+
//read from storage
63+
match storage_read_syscall(0, address) {
64+
Result::Ok(value) => value,
65+
Result::Err(revert_reason) => *revert_reason.span().at(0),
66+
}
67+
}
68+
69+
#[event]
70+
fn EmitEvent(n: felt252){}
71+
72+
#[external]
73+
fn trigger_events() {
74+
EmitEvent(1);
75+
EmitEvent(2);
76+
EmitEvent(3);
77+
}
78+
79+
#[external]
80+
fn deploy_test(class_hash: felt252, contract_address_salt: felt252,) -> ContractAddress {
81+
let mut calldata = ArrayTrait::new();
82+
calldata.append(100);
83+
let (address0, _) = deploy_syscall(class_hash.try_into().unwrap(), contract_address_salt, calldata.span(), false).unwrap();
84+
address0
85+
}
86+
}

starknet_programs/class_with_abi.json

Lines changed: 1 addition & 0 deletions
Large diffs are not rendered by default.

starknet_programs/program_without_attributes.json

Lines changed: 1 addition & 0 deletions
Large diffs are not rendered by default.

starknet_programs/program_without_attributes_2.json

Lines changed: 1 addition & 0 deletions
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)