fix: update example programs to use new sdk api

This commit is contained in:
Justin Starry 2020-02-03 20:27:04 +08:00 committed by Michael Vines
parent 4a3a830789
commit a4e7ce3133
2 changed files with 11 additions and 6 deletions

View File

@ -5,14 +5,14 @@
#include <solana_sdk.h>
extern uint32_t entrypoint(const uint8_t *input) {
extern uint64_t entrypoint(const uint8_t *input) {
SolKeyedAccount ka[1];
SolParameters params = (SolParameters) { .ka = ka };
sol_log("Hello World");
if (!sol_deserialize(input, &params, SOL_ARRAY_SIZE(ka))) {
return 1;
return ERROR_INVALID_ARGUMENT;
}
sol_log_params(&params);
return SUCCESS;

View File

@ -4,7 +4,8 @@
extern crate solana_sdk;
use solana_sdk::{
account_info::AccountInfo, entrypoint, entrypoint::SUCCESS, info, log::*, pubkey::Pubkey,
account_info::AccountInfo, entrypoint, info, log::*, program_error::ProgramError,
pubkey::Pubkey,
};
#[derive(Debug, PartialEq)]
@ -20,7 +21,11 @@ fn return_sstruct() -> SStruct {
}
entrypoint!(process_instruction);
fn process_instruction(program_id: &Pubkey, accounts: &mut [AccountInfo], data: &[u8]) -> u32 {
fn process_instruction(
program_id: &Pubkey,
accounts: &[AccountInfo],
ix_data: &[u8],
) -> Result<(), ProgramError> {
info!("Program identifier:");
program_id.log();
@ -28,7 +33,7 @@ fn process_instruction(program_id: &Pubkey, accounts: &mut [AccountInfo], data:
// the no-op program, no account keys or input data are expected but real
// programs will have specific requirements so they can do their work.
info!("Account keys and instruction input data:");
sol_log_params(accounts, data);
sol_log_params(accounts, ix_data);
{
// Test - use std methods, unwrap
@ -54,7 +59,7 @@ fn process_instruction(program_id: &Pubkey, accounts: &mut [AccountInfo], data:
panic!();
}
SUCCESS
Ok(())
}
#[cfg(test)]