mirror of
https://github.com/logos-blockchain/logos-execution-zone.git
synced 2026-08-25 03:11:21 +00:00
refactor!(artifacts): keep lee and lez artifacts separated
This commit is contained in:
@@ -46,7 +46,7 @@ export EXAMPLE_PROGRAMS_BUILD_DIR=$(pwd)/target/riscv32im-risc0-zkvm-elf/docker
|
||||
> [!IMPORTANT]
|
||||
> **All remaining commands must be run from the `examples/program_deployment` directory.**
|
||||
|
||||
# 3. Hello world example
|
||||
# 3. Hello world example
|
||||
|
||||
The Hello world program reads an arbitrary sequence of bytes from its instruction and appends them to the data field of the input account.
|
||||
Execution succeeds only if the account is:
|
||||
@@ -211,7 +211,7 @@ This is the account that the program will claim and write data into.
|
||||
### 3. Loading the program bytecode
|
||||
```rust
|
||||
let bytecode: Vec<u8> = std::fs::read(program_path).unwrap();
|
||||
let program = Program::new(bytecode).unwrap();
|
||||
let program = Program::new(bytecode.into()).unwrap();
|
||||
```
|
||||
The Risc0 ELF is read from disk and wrapped in a Program object, which can be used to compute the program ID. The ID is used by the node to identify which program is invoked by the transaction.
|
||||
|
||||
@@ -266,7 +266,7 @@ The relevant part for this tutorial is the account id `7EDHyxejuynBpmbLuiEym9HMU
|
||||
> [!NOTE]
|
||||
> As with public accounts, you can use the `--label` option to assign a label: `wallet account new private --label "my-private-account"`.
|
||||
|
||||
You can check it's uninitialized with
|
||||
You can check it's uninitialized with
|
||||
|
||||
```bash
|
||||
wallet account get --account-id Private/7EDHyxejuynBpmbLuiEym9HMUyCYxZDuF8X3B89ADeMr
|
||||
@@ -452,7 +452,7 @@ Because these operations may involve multiple accounts, we'll see how public and
|
||||
> See `methods/guest/src/bin/hello_world_with_move_function.rs`. The program just reads the instruction bytes and updates the accounts state.
|
||||
> All privacy handling happens on the runner side. When constructing the transaction, the runner decides which accounts are public or private and prepares the appropriate proofs. The program itself can't differentiate between privacy modes.
|
||||
|
||||
Let's start by deploying the program
|
||||
Let's start by deploying the program
|
||||
```bash
|
||||
wallet deploy-program $EXAMPLE_PROGRAMS_BUILD_DIR/hello_world_with_move_function.bin
|
||||
```
|
||||
@@ -486,7 +486,7 @@ Output:
|
||||
Generated new account with account_id Private/8vzkK7vsdrS2gdPhLk72La8X4FJkgJ5kJLUBRbEVkReU at path /1
|
||||
```
|
||||
|
||||
Let's execute the write function
|
||||
Let's execute the write function
|
||||
|
||||
```bash
|
||||
cargo run --bin run_hello_world_with_move_function \
|
||||
|
||||
@@ -43,7 +43,7 @@ async fn main() {
|
||||
|
||||
// Load the program
|
||||
let bytecode: Vec<u8> = std::fs::read(program_path).unwrap();
|
||||
let program = Program::new(bytecode).unwrap();
|
||||
let program = Program::new(bytecode.into()).unwrap();
|
||||
|
||||
// Define the desired greeting in ASCII
|
||||
let greeting: Vec<u8> = vec![72, 111, 108, 97, 32, 109, 117, 110, 100, 111, 33];
|
||||
|
||||
@@ -39,7 +39,7 @@ async fn main() {
|
||||
|
||||
// Load the program
|
||||
let bytecode: Vec<u8> = std::fs::read(program_path).unwrap();
|
||||
let program = Program::new(bytecode).unwrap();
|
||||
let program = Program::new(bytecode.into()).unwrap();
|
||||
|
||||
// Define the desired greeting in ASCII
|
||||
let greeting: Vec<u8> = vec![72, 111, 108, 97, 32, 109, 117, 110, 100, 111, 33];
|
||||
|
||||
@@ -43,7 +43,7 @@ async fn main() {
|
||||
|
||||
// Load the program
|
||||
let bytecode: Vec<u8> = std::fs::read(program_path).unwrap();
|
||||
let program = Program::new(bytecode).unwrap();
|
||||
let program = Program::new(bytecode.into()).unwrap();
|
||||
|
||||
let instruction_data = ();
|
||||
let nonces = vec![];
|
||||
|
||||
@@ -44,9 +44,9 @@ async fn main() {
|
||||
|
||||
// Load the program and its dependencies (the hellow world program)
|
||||
let simple_tail_call_bytecode: Vec<u8> = std::fs::read(simple_tail_call_path).unwrap();
|
||||
let simple_tail_call = Program::new(simple_tail_call_bytecode).unwrap();
|
||||
let simple_tail_call = Program::new(simple_tail_call_bytecode.into()).unwrap();
|
||||
let hello_world_bytecode: Vec<u8> = std::fs::read(hello_world_path).unwrap();
|
||||
let hello_world = Program::new(hello_world_bytecode).unwrap();
|
||||
let hello_world = Program::new(hello_world_bytecode.into()).unwrap();
|
||||
let dependencies: HashMap<ProgramId, Program> =
|
||||
std::iter::once((hello_world.id(), hello_world)).collect();
|
||||
let program_with_dependencies = ProgramWithDependencies::new(simple_tail_call, dependencies);
|
||||
|
||||
@@ -45,7 +45,7 @@ async fn main() {
|
||||
|
||||
// Load the program
|
||||
let bytecode: Vec<u8> = std::fs::read(program_path).unwrap();
|
||||
let program = Program::new(bytecode).unwrap();
|
||||
let program = Program::new(bytecode.into()).unwrap();
|
||||
|
||||
// Load signing keys to provide authorization
|
||||
let signing_key = wallet_core
|
||||
|
||||
+1
-1
@@ -43,7 +43,7 @@ async fn main() {
|
||||
|
||||
// Load the program
|
||||
let bytecode: Vec<u8> = std::fs::read(program_path).unwrap();
|
||||
let program = Program::new(bytecode).unwrap();
|
||||
let program = Program::new(bytecode.into()).unwrap();
|
||||
|
||||
// Compute the PDA to pass it as input account to the public execution
|
||||
let pda = AccountId::for_public_pda(&program.id(), &PDA_SEED);
|
||||
|
||||
@@ -63,7 +63,7 @@ async fn main() {
|
||||
|
||||
// Load the program
|
||||
let bytecode: Vec<u8> = std::fs::read(cli.program_path).unwrap();
|
||||
let program = Program::new(bytecode).unwrap();
|
||||
let program = Program::new(bytecode.into()).unwrap();
|
||||
|
||||
// Initialize wallet
|
||||
let wallet_core = WalletCore::from_env().unwrap();
|
||||
|
||||
Reference in New Issue
Block a user