diff --git a/artifacts/lee/privacy_preserving_circuit/privacy_preserving_circuit.bin b/artifacts/lee/privacy_preserving_circuit/privacy_preserving_circuit.bin index c5b5d4777..a2b323f23 100644 Binary files a/artifacts/lee/privacy_preserving_circuit/privacy_preserving_circuit.bin and b/artifacts/lee/privacy_preserving_circuit/privacy_preserving_circuit.bin differ diff --git a/artifacts/lez/programs/amm.bin b/artifacts/lez/programs/amm.bin index 793b3b37e..c6e86022d 100644 Binary files a/artifacts/lez/programs/amm.bin and b/artifacts/lez/programs/amm.bin differ diff --git a/artifacts/lez/programs/associated_token_account.bin b/artifacts/lez/programs/associated_token_account.bin index 8ff48e758..223a623ca 100644 Binary files a/artifacts/lez/programs/associated_token_account.bin and b/artifacts/lez/programs/associated_token_account.bin differ diff --git a/artifacts/lez/programs/authenticated_transfer.bin b/artifacts/lez/programs/authenticated_transfer.bin index e78ae5f86..d49963afc 100644 Binary files a/artifacts/lez/programs/authenticated_transfer.bin and b/artifacts/lez/programs/authenticated_transfer.bin differ diff --git a/artifacts/lez/programs/bridge.bin b/artifacts/lez/programs/bridge.bin index cbfdf5204..cce78f420 100644 Binary files a/artifacts/lez/programs/bridge.bin and b/artifacts/lez/programs/bridge.bin differ diff --git a/artifacts/lez/programs/bridge_lock.bin b/artifacts/lez/programs/bridge_lock.bin index a25ce0ce7..2ba247cbe 100644 Binary files a/artifacts/lez/programs/bridge_lock.bin and b/artifacts/lez/programs/bridge_lock.bin differ diff --git a/artifacts/lez/programs/clock.bin b/artifacts/lez/programs/clock.bin index 86bca3ad9..be232a8d9 100644 Binary files a/artifacts/lez/programs/clock.bin and b/artifacts/lez/programs/clock.bin differ diff --git a/artifacts/lez/programs/cross_zone_inbox.bin b/artifacts/lez/programs/cross_zone_inbox.bin index ff5fba37c..086abbbee 100644 Binary files a/artifacts/lez/programs/cross_zone_inbox.bin and b/artifacts/lez/programs/cross_zone_inbox.bin differ diff --git a/artifacts/lez/programs/cross_zone_outbox.bin b/artifacts/lez/programs/cross_zone_outbox.bin index 3ee40dfa1..bfcba12c4 100644 Binary files a/artifacts/lez/programs/cross_zone_outbox.bin and b/artifacts/lez/programs/cross_zone_outbox.bin differ diff --git a/artifacts/lez/programs/faucet.bin b/artifacts/lez/programs/faucet.bin index ea9dbe0b4..84cfded23 100644 Binary files a/artifacts/lez/programs/faucet.bin and b/artifacts/lez/programs/faucet.bin differ diff --git a/artifacts/lez/programs/pinata.bin b/artifacts/lez/programs/pinata.bin index 485799d94..351f6b91c 100644 Binary files a/artifacts/lez/programs/pinata.bin and b/artifacts/lez/programs/pinata.bin differ diff --git a/artifacts/lez/programs/pinata_token.bin b/artifacts/lez/programs/pinata_token.bin index 9ab2aa608..1ae075962 100644 Binary files a/artifacts/lez/programs/pinata_token.bin and b/artifacts/lez/programs/pinata_token.bin differ diff --git a/artifacts/lez/programs/ping_receiver.bin b/artifacts/lez/programs/ping_receiver.bin index dcb476c25..9b4861857 100644 Binary files a/artifacts/lez/programs/ping_receiver.bin and b/artifacts/lez/programs/ping_receiver.bin differ diff --git a/artifacts/lez/programs/ping_sender.bin b/artifacts/lez/programs/ping_sender.bin index 959561f3c..5a27167d8 100644 Binary files a/artifacts/lez/programs/ping_sender.bin and b/artifacts/lez/programs/ping_sender.bin differ diff --git a/artifacts/lez/programs/sequencer_stake.bin b/artifacts/lez/programs/sequencer_stake.bin index c809d05a8..82979b555 100644 Binary files a/artifacts/lez/programs/sequencer_stake.bin and b/artifacts/lez/programs/sequencer_stake.bin differ diff --git a/artifacts/lez/programs/token.bin b/artifacts/lez/programs/token.bin index 6f9cfa13c..adf0d2384 100644 Binary files a/artifacts/lez/programs/token.bin and b/artifacts/lez/programs/token.bin differ diff --git a/artifacts/lez/programs/vault.bin b/artifacts/lez/programs/vault.bin index 30fdb0d01..d5298dc75 100644 Binary files a/artifacts/lez/programs/vault.bin and b/artifacts/lez/programs/vault.bin differ diff --git a/artifacts/lez/programs/wrapped_token.bin b/artifacts/lez/programs/wrapped_token.bin index 0b93fe1b0..962d51ef6 100644 Binary files a/artifacts/lez/programs/wrapped_token.bin and b/artifacts/lez/programs/wrapped_token.bin differ diff --git a/examples/program_deployment/methods/guest/src/bin/simple_tail_call.rs b/examples/program_deployment/methods/guest/src/bin/simple_tail_call.rs index 4f674fcb5..6e553f3f5 100644 --- a/examples/program_deployment/methods/guest/src/bin/simple_tail_call.rs +++ b/examples/program_deployment/methods/guest/src/bin/simple_tail_call.rs @@ -54,7 +54,6 @@ fn main() { instruction_data: chained_call_instruction_data, pre_states, pda_seeds: vec![], - raw_payload: None, }; // Write the outputs. diff --git a/examples/program_deployment/methods/guest/src/bin/tail_call_with_pda.rs b/examples/program_deployment/methods/guest/src/bin/tail_call_with_pda.rs index 8981dd96f..2e808c969 100644 --- a/examples/program_deployment/methods/guest/src/bin/tail_call_with_pda.rs +++ b/examples/program_deployment/methods/guest/src/bin/tail_call_with_pda.rs @@ -66,7 +66,6 @@ fn main() { instruction_data: chained_call_instruction_data, pre_states: vec![pre_state_for_chained_call], pda_seeds: vec![PDA_SEED], - raw_payload: None, }; // Write the outputs. diff --git a/lee/privacy_preserving_circuit/src/execution_state.rs b/lee/privacy_preserving_circuit/src/execution_state.rs index f4be1ecce..d895d91a8 100644 --- a/lee/privacy_preserving_circuit/src/execution_state.rs +++ b/lee/privacy_preserving_circuit/src/execution_state.rs @@ -148,7 +148,6 @@ impl ExecutionState { instruction_data: first_output.instruction_data.clone(), pre_states: first_output.pre_states.clone(), pda_seeds: Vec::new(), - raw_payload: None, }; let initial_caller_data = CallerData { caller_account_id: None, diff --git a/lee/state_machine/core/src/program/mod.rs b/lee/state_machine/core/src/program/mod.rs index 0ba4eea31..7ba5e4956 100644 --- a/lee/state_machine/core/src/program/mod.rs +++ b/lee/state_machine/core/src/program/mod.rs @@ -300,13 +300,6 @@ pub struct ChainedCall { /// mutate the `AccountId` derived from `(caller_account_id, seed)`, regardless of /// whether the account is public or private. pub pda_seeds: Vec, - /// An optional large raw byte payload, carried alongside `instruction_data` rather than - /// packed into it. `instruction_data` is word-serialized (`risc0_zkvm::serde`), which encodes - /// a `Vec` at 4 bytes per word since it doesn't route through that serializer's - /// `serialize_bytes`; a large payload (e.g. `Deploy`'s program bytecode) would bloat ~4x if - /// packed in there. `raw_payload` avoids that entirely for callers that need it — see - /// `Message::raw_payload`'s doc comment for the equivalent, host-side rationale. - pub raw_payload: Option>, } impl ChainedCall { @@ -322,7 +315,6 @@ impl ChainedCall { instruction_data: risc0_zkvm::serde::to_vec(instruction) .expect("Serialization to Vec should not fail"), pda_seeds: Vec::new(), - raw_payload: None, } } @@ -331,12 +323,6 @@ impl ChainedCall { self.pda_seeds = pda_seeds; self } - - #[must_use] - pub fn with_raw_payload(mut self, raw_payload: Vec) -> Self { - self.raw_payload = Some(raw_payload); - self - } } /// Represents the final state of an `Account` after a program execution. diff --git a/lee/state_machine/src/privacy_preserving_transaction/circuit/mod.rs b/lee/state_machine/src/privacy_preserving_transaction/circuit/mod.rs index d060d2155..7624783ff 100644 --- a/lee/state_machine/src/privacy_preserving_transaction/circuit/mod.rs +++ b/lee/state_machine/src/privacy_preserving_transaction/circuit/mod.rs @@ -135,7 +135,6 @@ pub fn execute_and_prove_with_padded_inputs( instruction_data, pre_states, pda_seeds: vec![], - raw_payload: None, }; let mut chained_calls = VecDeque::from_iter([(initial_call, initial_program, None)]); diff --git a/lee/state_machine/src/validated_state_diff/mod.rs b/lee/state_machine/src/validated_state_diff/mod.rs index c3aed4967..4ca562857 100644 --- a/lee/state_machine/src/validated_state_diff/mod.rs +++ b/lee/state_machine/src/validated_state_diff/mod.rs @@ -96,7 +96,6 @@ impl ValidatedStateDiff { instruction_data: message.instruction_data.clone(), pre_states: input_pre_states, pda_seeds: vec![], - raw_payload: message.raw_payload.clone(), }; let initial_caller_data = CallerData { @@ -133,9 +132,13 @@ impl ValidatedStateDiff { risc0_zkvm::serde::from_slice(&chained_call.instruction_data).map_err(|e| { LeeError::InvalidInput(format!("invalid Deploy instruction: {e}")) })?; - // The bytecode itself travels via `raw_payload`, not `instruction_data` — see - // `Message::raw_payload`'s doc comment for why. - let bytecode = chained_call.raw_payload.clone().ok_or_else(|| { + // The bytecode itself travels via the transaction's own `raw_payload`, not + // `instruction_data` and not `chained_call.raw_payload` (which no guest can ever + // set) — see `Message::raw_payload`'s doc comment for why. Deploy only ever runs + // natively, so a chained call into it (at any depth) can still reach the + // top-level payload here, without any intermediary guest ever having to carry the + // bytecode through its own execution. + let bytecode = message.raw_payload.clone().ok_or_else(|| { LeeError::InvalidInput("Deploy requires a raw_payload".into()) })?; let deploy_pre_states = chained_call.pre_states.clone(); diff --git a/lee/state_machine/test_methods/guest/src/bin/chain_caller.rs b/lee/state_machine/test_methods/guest/src/bin/chain_caller.rs index 3374f9c01..506813a59 100644 --- a/lee/state_machine/test_methods/guest/src/bin/chain_caller.rs +++ b/lee/state_machine/test_methods/guest/src/bin/chain_caller.rs @@ -42,7 +42,6 @@ fn main() { instruction_data: instruction_data.clone(), pre_states: vec![running_sender_pre.clone(), running_recipient_pre.clone()], /* <- Account order permutation here */ pda_seeds: pda_seed.iter().copied().collect(), - raw_payload: None, }; chained_calls.push(new_chained_call); diff --git a/lee/state_machine/test_methods/guest/src/bin/flash_swap_callback.rs b/lee/state_machine/test_methods/guest/src/bin/flash_swap_callback.rs index 97e882376..cd69bcdf3 100644 --- a/lee/state_machine/test_methods/guest/src/bin/flash_swap_callback.rs +++ b/lee/state_machine/test_methods/guest/src/bin/flash_swap_callback.rs @@ -74,7 +74,6 @@ fn main() { pre_states: vec![receiver_authorized, vault_pre.clone()], instruction_data: transfer_instruction, pda_seeds: vec![PdaSeed::new([1_u8; 32])], - raw_payload: None, }); } // Malicious path (return_funds = false): emit no chained calls. diff --git a/lee/state_machine/test_methods/guest/src/bin/flash_swap_initiator.rs b/lee/state_machine/test_methods/guest/src/bin/flash_swap_initiator.rs index 2a0705861..3f43fcce5 100644 --- a/lee/state_machine/test_methods/guest/src/bin/flash_swap_initiator.rs +++ b/lee/state_machine/test_methods/guest/src/bin/flash_swap_initiator.rs @@ -133,7 +133,6 @@ fn main() { pre_states: vec![vault_authorized, receiver_pre.clone()], instruction_data: transfer_instruction, pda_seeds: vec![PdaSeed::new([0_u8; 32])], - raw_payload: None, }; // Chained call 2: User callback. @@ -144,7 +143,6 @@ fn main() { pre_states: vec![vault_after_transfer, receiver_after_transfer], instruction_data: callback_instruction_data, pda_seeds: vec![], - raw_payload: None, }; // Chained call 3: Self-call to enforce the invariant. @@ -163,7 +161,6 @@ fn main() { pre_states: vec![vault_after_callback], instruction_data: invariant_instruction, pda_seeds: vec![], - raw_payload: None, }; // The initiator itself makes no direct state changes. diff --git a/lee/state_machine/test_methods/guest/src/bin/malicious_authorization_changer.rs b/lee/state_machine/test_methods/guest/src/bin/malicious_authorization_changer.rs index 47c64f4e4..07ae0d465 100644 --- a/lee/state_machine/test_methods/guest/src/bin/malicious_authorization_changer.rs +++ b/lee/state_machine/test_methods/guest/src/bin/malicious_authorization_changer.rs @@ -37,7 +37,6 @@ fn main() { instruction_data, pre_states: vec![authorised_sender, receiver.clone()], pda_seeds: vec![], - raw_payload: None, }; ProgramOutput::new( diff --git a/lee/state_machine/test_methods/guest/src/bin/malicious_injector.rs b/lee/state_machine/test_methods/guest/src/bin/malicious_injector.rs index ebbbbf7c3..d878da7df 100644 --- a/lee/state_machine/test_methods/guest/src/bin/malicious_injector.rs +++ b/lee/state_machine/test_methods/guest/src/bin/malicious_injector.rs @@ -98,7 +98,6 @@ fn main() { pre_states: vec![victim, recipient], instruction_data: p2_instruction, pda_seeds: vec![], - raw_payload: None, }]) .write(); } diff --git a/lee/state_machine/test_methods/guest/src/bin/malicious_launderer.rs b/lee/state_machine/test_methods/guest/src/bin/malicious_launderer.rs index 8efa3d5be..629b3a789 100644 --- a/lee/state_machine/test_methods/guest/src/bin/malicious_launderer.rs +++ b/lee/state_machine/test_methods/guest/src/bin/malicious_launderer.rs @@ -40,7 +40,6 @@ fn main() { pre_states, instruction_data: auth_transfer_instruction, pda_seeds: vec![], - raw_payload: None, }]) .write(); } diff --git a/lee/state_machine/test_methods/guest/src/bin/non_delegating_forwarder.rs b/lee/state_machine/test_methods/guest/src/bin/non_delegating_forwarder.rs index 41a58b1f4..bf6835f10 100644 --- a/lee/state_machine/test_methods/guest/src/bin/non_delegating_forwarder.rs +++ b/lee/state_machine/test_methods/guest/src/bin/non_delegating_forwarder.rs @@ -43,7 +43,6 @@ fn main() { instruction_data: callee_instruction, pre_states, pda_seeds: vec![], - raw_payload: None, }]) .write(); } diff --git a/lee/state_machine/test_methods/guest/src/bin/pda_spend_proxy.rs b/lee/state_machine/test_methods/guest/src/bin/pda_spend_proxy.rs index 5f334166c..1acfb1908 100644 --- a/lee/state_machine/test_methods/guest/src/bin/pda_spend_proxy.rs +++ b/lee/state_machine/test_methods/guest/src/bin/pda_spend_proxy.rs @@ -39,7 +39,6 @@ fn main() { instruction_data: to_vec(&amount).unwrap(), pre_states: vec![first_for_callee, second.clone()], pda_seeds: vec![seed], - raw_payload: None, }; ProgramOutput::new( diff --git a/lee/state_machine/test_methods/guest/src/bin/private_pda_delegator.rs b/lee/state_machine/test_methods/guest/src/bin/private_pda_delegator.rs index 91fd3ed84..0731f71cf 100644 --- a/lee/state_machine/test_methods/guest/src/bin/private_pda_delegator.rs +++ b/lee/state_machine/test_methods/guest/src/bin/private_pda_delegator.rs @@ -40,7 +40,6 @@ fn main() { instruction_data: to_vec(&()).unwrap(), pre_states: vec![pre_for_callee], pda_seeds: vec![delegated_seed], - raw_payload: None, }; ProgramOutput::new( diff --git a/lee/state_machine/test_methods/guest/src/bin/selective_pda_delegator.rs b/lee/state_machine/test_methods/guest/src/bin/selective_pda_delegator.rs index c644048eb..da148bc94 100644 --- a/lee/state_machine/test_methods/guest/src/bin/selective_pda_delegator.rs +++ b/lee/state_machine/test_methods/guest/src/bin/selective_pda_delegator.rs @@ -48,7 +48,6 @@ fn main() { .chain(rest.iter().cloned()) .collect(), pda_seeds: vec![delegated_seed], - raw_payload: None, }]; // If sibling is present in instruction, send out a call @@ -67,7 +66,6 @@ fn main() { }, ), pda_seeds: vec![], - raw_payload: None, }); } diff --git a/lee/state_machine/test_methods/guest/src/bin/undeclaring_pda_delegator.rs b/lee/state_machine/test_methods/guest/src/bin/undeclaring_pda_delegator.rs index 0b3e26e63..660c02b65 100644 --- a/lee/state_machine/test_methods/guest/src/bin/undeclaring_pda_delegator.rs +++ b/lee/state_machine/test_methods/guest/src/bin/undeclaring_pda_delegator.rs @@ -38,7 +38,6 @@ fn main() { instruction_data: to_vec(&()).unwrap(), pre_states: vec![sibling_pre], pda_seeds: vec![], - raw_payload: None, } }); @@ -47,7 +46,6 @@ fn main() { instruction_data: callee_instruction, pre_states, pda_seeds: seed.into_iter().collect(), - raw_payload: None, }]; chained_calls.extend(sibling_call); diff --git a/lee/state_machine/test_methods/guest/src/bin/validity_window_chain_caller.rs b/lee/state_machine/test_methods/guest/src/bin/validity_window_chain_caller.rs index 2dff90528..70e8d7883 100644 --- a/lee/state_machine/test_methods/guest/src/bin/validity_window_chain_caller.rs +++ b/lee/state_machine/test_methods/guest/src/bin/validity_window_chain_caller.rs @@ -41,7 +41,6 @@ fn main() { instruction_data: chained_instruction, pre_states, pda_seeds: vec![], - raw_payload: None, }; ProgramOutput::new( diff --git a/lez/programs/cross_zone_inbox/src/main.rs b/lez/programs/cross_zone_inbox/src/main.rs index b42cf7a1a..55781c9c2 100644 --- a/lez/programs/cross_zone_inbox/src/main.rs +++ b/lez/programs/cross_zone_inbox/src/main.rs @@ -156,7 +156,6 @@ fn dispatch( pre_states: call_pre_states, instruction_data, pda_seeds: vec![], - raw_payload: None, }; (seen_post, vec![call]) }; diff --git a/lez/programs/sequencer_stake/src/main.rs b/lez/programs/sequencer_stake/src/main.rs index 63456f99a..155f38c54 100644 --- a/lez/programs/sequencer_stake/src/main.rs +++ b/lez/programs/sequencer_stake/src/main.rs @@ -214,7 +214,6 @@ fn stake( pre_states: vec![funding_account, ownership_account_claimed.clone()], instruction_data: mover_instruction_data, pda_seeds: Vec::new(), - raw_payload: None, }; // expected balance after the mover call diff --git a/lez/sequencer/core/src/tests.rs b/lez/sequencer/core/src/tests.rs index 41a60b796..ef61789d6 100644 --- a/lez/sequencer/core/src/tests.rs +++ b/lez/sequencer/core/src/tests.rs @@ -3890,28 +3890,18 @@ fn loader_rejects_wrong_number_of_accounts() { ); } +/// A program that wants to chain-call `Deploy` never has to carry the bytecode through its own +/// execution: `Deploy` only ever runs natively, so the dispatcher resolves its `raw_payload` +/// straight from the top-level transaction regardless of chain-call depth, and the forwarder here +/// only ever handles a small `instruction_data` (see +/// `lee::state_machine::validated_state_diff`'s `Deploy` dispatch branch). #[test] -#[ignore = "known limitation, not an addressing problem: a program that wants to chain-call \ - Deploy must carry the target bytecode through its own instruction_data to build the \ - ChainedCall, which costs ~1,400-1,500 cycles/byte of real guest interpretation and \ - blows the 32M-cycle public-execution cap for any realistically-sized program. \ - AccountId-based dispatch (marvin/program-as-account-3-1) fixed locating a \ - Deploy-created (PDA-addressed) program, but that was never the blocker here: the \ - forwarder never gets far enough to need it, since it exhausts its cycle budget just \ - carrying the bytecode through its own execution. Making an arbitrary program able to \ - decide mid-flow to deploy something new, as one step among others it orchestrates, \ - needs a mechanism where the bytecode reaches Deploy without being copied through any \ - intermediary guest's interpreted execution (e.g. a commitment carried in \ - instruction_data with the real payload resolved out-of-band by the dispatcher) — \ - deferred to a future PR. The supported pattern today is Deploy as the top-level \ - entry point, natively emitting its own follow-up chained calls after deploying \ - (see loader_deploys_program)."] fn loader_deploys_program_via_chained_call() { - let loader_id: ProgramId = RESERVED_DEPLOYMENT_PROGRAM_ACCOUNT_ID.into(); let forwarder = test_programs::chained_call_forwarder(); let mut state = V03State::new().with_programs([forwarder.clone()]); let bytecode = test_programs::claimer().elf().to_vec(); + let user_elf = program_loader_core::extract_user_elf(&bytecode).unwrap(); let image_id: ProgramId = risc0_binfmt::compute_image_id(&bytecode).unwrap().into(); let (header, segment) = deploy_targets(&bytecode); @@ -3925,9 +3915,13 @@ fn loader_deploys_program_via_chained_call() { forwarder.deployed_account_id(), vec![header, segment], vec![], - (loader_id, inner_instruction_data), + ( + RESERVED_DEPLOYMENT_PROGRAM_ACCOUNT_ID, + inner_instruction_data, + ), ) - .unwrap(); + .unwrap() + .with_raw_payload(user_elf); let witness_set = lee::public_transaction::WitnessSet::for_message(&message, &[]); let tx = PublicTransaction::new(message, witness_set); diff --git a/test_fixtures/fixtures/prebuilt_sequencer_db.dump b/test_fixtures/fixtures/prebuilt_sequencer_db.dump index 765d0a59a..7bac6e5b8 100644 Binary files a/test_fixtures/fixtures/prebuilt_sequencer_db.dump and b/test_fixtures/fixtures/prebuilt_sequencer_db.dump differ diff --git a/test_programs/guest/src/bin/authority_proxy.rs b/test_programs/guest/src/bin/authority_proxy.rs index 0ec3beec4..1e0d171aa 100644 --- a/test_programs/guest/src/bin/authority_proxy.rs +++ b/test_programs/guest/src/bin/authority_proxy.rs @@ -38,7 +38,6 @@ fn main() { instruction_data: target_instruction_words, pre_states: call_pre_states, pda_seeds: pda_seed.into_iter().collect(), - raw_payload: None, }; let post_states = pre_states diff --git a/test_programs/guest/src/bin/chain_caller.rs b/test_programs/guest/src/bin/chain_caller.rs index d801ab3cd..3267fd0a9 100644 --- a/test_programs/guest/src/bin/chain_caller.rs +++ b/test_programs/guest/src/bin/chain_caller.rs @@ -44,7 +44,6 @@ fn main() { instruction_data: instruction_data.clone(), pre_states: vec![running_sender_pre.clone(), running_recipient_pre.clone()], /* <- Account order permutation here */ pda_seeds: pda_seed.iter().copied().collect(), - raw_payload: None, }; chained_calls.push(new_chained_call); diff --git a/test_programs/guest/src/bin/chained_call_forwarder.rs b/test_programs/guest/src/bin/chained_call_forwarder.rs index 8a274f2a3..ae506f46c 100644 --- a/test_programs/guest/src/bin/chained_call_forwarder.rs +++ b/test_programs/guest/src/bin/chained_call_forwarder.rs @@ -34,7 +34,6 @@ fn main() { instruction_data, pre_states: pre_states.clone(), pda_seeds: vec![], - raw_payload: None, }; ProgramOutput::new( diff --git a/test_programs/guest/src/bin/clock_chain_caller.rs b/test_programs/guest/src/bin/clock_chain_caller.rs index e7966dae3..16026fd4f 100644 --- a/test_programs/guest/src/bin/clock_chain_caller.rs +++ b/test_programs/guest/src/bin/clock_chain_caller.rs @@ -31,7 +31,6 @@ fn main() { instruction_data: to_vec(×tamp).unwrap(), pre_states: pre_states.clone(), pda_seeds: vec![], - raw_payload: None, }; ProgramOutput::new( diff --git a/test_programs/guest/src/bin/faucet_chain_caller.rs b/test_programs/guest/src/bin/faucet_chain_caller.rs index fd01bd477..e46199f1f 100644 --- a/test_programs/guest/src/bin/faucet_chain_caller.rs +++ b/test_programs/guest/src/bin/faucet_chain_caller.rs @@ -36,7 +36,6 @@ fn main() { .unwrap(), pre_states: vec![faucet_pre, vault_pda_pre], pda_seeds: vec![], - raw_payload: None, }]; ProgramOutput::new( diff --git a/test_programs/guest/src/bin/pda_spend_proxy.rs b/test_programs/guest/src/bin/pda_spend_proxy.rs index 5359e8198..a0c1eb70e 100644 --- a/test_programs/guest/src/bin/pda_spend_proxy.rs +++ b/test_programs/guest/src/bin/pda_spend_proxy.rs @@ -40,7 +40,6 @@ fn main() { .unwrap(), pre_states: vec![first_for_callee, second.clone()], pda_seeds: vec![seed], - raw_payload: None, }; ProgramOutput::new(