solana/programs/sbf/rust/external_spend/src/lib.rs

22 lines
750 B
Rust
Raw Normal View History

//! Example Rust-based SBF program that moves a lamport from one account to another
2019-07-08 16:52:25 -07:00
#![allow(clippy::arithmetic_side_effects)]
extern crate solana_program;
use solana_program::{account_info::AccountInfo, entrypoint::ProgramResult, pubkey::Pubkey};
2019-07-08 16:52:25 -07:00
solana_program::entrypoint!(process_instruction);
2020-12-13 17:26:34 -08:00
#[allow(clippy::unnecessary_wraps)]
2020-01-24 13:41:14 -08:00
fn process_instruction(
_program_id: &Pubkey,
2020-01-27 18:27:44 -08:00
accounts: &[AccountInfo],
2020-01-24 13:41:14 -08:00
_instruction_data: &[u8],
) -> ProgramResult {
2019-07-08 16:52:25 -07:00
// account 0 is the mint and not owned by this program, any debit of its lamports
// should result in a failed program execution. Test to ensure that this debit
// is seen by the runtime and fails as expected
**accounts[0].lamports.borrow_mut() -= 1;
2019-09-06 17:32:14 -07:00
Ok(())
2019-07-08 16:52:25 -07:00
}