Direct entrypoint for execution (#7746)
This commit is contained in:
@@ -5,7 +5,7 @@ pub mod librapay_transaction;
|
||||
|
||||
extern crate solana_move_loader_program;
|
||||
|
||||
use solana_move_loader_program::account_state::LibraAccountState;
|
||||
use solana_move_loader_program::{account_state::LibraAccountState, processor::MoveProcessor};
|
||||
use solana_runtime::loader_utils::load_program;
|
||||
use solana_sdk::{
|
||||
account::KeyedAccount,
|
||||
@@ -86,5 +86,5 @@ pub fn process_instruction(
|
||||
keyed_accounts: &mut [KeyedAccount],
|
||||
data: &[u8],
|
||||
) -> Result<(), InstructionError> {
|
||||
solana_move_loader_program::processor::process_instruction(program_id, keyed_accounts, data)
|
||||
MoveProcessor::process_instruction(program_id, keyed_accounts, data)
|
||||
}
|
||||
|
@@ -1,17 +1,17 @@
|
||||
use bincode;
|
||||
use solana_move_loader_program::{account_state::pubkey_to_address, processor::InvokeCommand};
|
||||
use solana_move_loader_program::{
|
||||
account_state::pubkey_to_address,
|
||||
processor::{Executable, MoveLoaderInstruction},
|
||||
};
|
||||
use solana_sdk::{
|
||||
instruction::{AccountMeta, Instruction},
|
||||
loader_instruction::LoaderInstruction,
|
||||
pubkey::Pubkey,
|
||||
};
|
||||
use types::{account_config, transaction::TransactionArgument};
|
||||
|
||||
pub fn genesis(genesis_pubkey: &Pubkey, microlibras: u64) -> Instruction {
|
||||
let data = bincode::serialize(&InvokeCommand::CreateGenesis(microlibras)).unwrap();
|
||||
let ix_data = LoaderInstruction::InvokeMain { data };
|
||||
let instruction_data = MoveLoaderInstruction::CreateGenesis(microlibras);
|
||||
let accounts = vec![AccountMeta::new(*genesis_pubkey, true)];
|
||||
Instruction::new(solana_sdk::move_loader::id(), &ix_data, accounts)
|
||||
Instruction::new(solana_sdk::move_loader::id(), &instruction_data, accounts)
|
||||
}
|
||||
|
||||
pub fn mint(
|
||||
@@ -25,13 +25,11 @@ pub fn mint(
|
||||
TransactionArgument::U64(microlibras),
|
||||
];
|
||||
|
||||
let data = bincode::serialize(&InvokeCommand::RunScript {
|
||||
let instruction_data = Executable::RunScript {
|
||||
sender_address: account_config::association_address(),
|
||||
function_name: "main".to_string(),
|
||||
args,
|
||||
})
|
||||
.unwrap();
|
||||
let ix_data = LoaderInstruction::InvokeMain { data };
|
||||
};
|
||||
|
||||
let accounts = vec![
|
||||
AccountMeta::new_readonly(*script_pubkey, false),
|
||||
@@ -39,7 +37,7 @@ pub fn mint(
|
||||
AccountMeta::new(*to_pubkey, false),
|
||||
];
|
||||
|
||||
Instruction::new(solana_sdk::move_loader::id(), &ix_data, accounts)
|
||||
Instruction::new(solana_sdk::move_loader::id(), &instruction_data, accounts)
|
||||
}
|
||||
|
||||
pub fn transfer(
|
||||
@@ -54,13 +52,11 @@ pub fn transfer(
|
||||
TransactionArgument::U64(microlibras),
|
||||
];
|
||||
|
||||
let data = bincode::serialize(&InvokeCommand::RunScript {
|
||||
let instruction_data = Executable::RunScript {
|
||||
sender_address: pubkey_to_address(from_pubkey),
|
||||
function_name: "main".to_string(),
|
||||
args,
|
||||
})
|
||||
.unwrap();
|
||||
let ix_data = LoaderInstruction::InvokeMain { data };
|
||||
};
|
||||
|
||||
let accounts = vec![
|
||||
AccountMeta::new_readonly(*script_pubkey, false),
|
||||
@@ -69,7 +65,7 @@ pub fn transfer(
|
||||
AccountMeta::new(*to_pubkey, false),
|
||||
];
|
||||
|
||||
Instruction::new(solana_sdk::move_loader::id(), &ix_data, accounts)
|
||||
Instruction::new(solana_sdk::move_loader::id(), &instruction_data, accounts)
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
|
@@ -151,6 +151,7 @@ pub fn get_libra_balance<T: Client>(
|
||||
mod tests {
|
||||
use super::*;
|
||||
use crate::{create_genesis, upload_mint_script, upload_payment_script};
|
||||
use solana_move_loader_program::processor::MoveProcessor;
|
||||
use solana_runtime::bank::Bank;
|
||||
use solana_runtime::bank_client::BankClient;
|
||||
use solana_sdk::genesis_config::create_genesis_config;
|
||||
@@ -163,7 +164,7 @@ mod tests {
|
||||
let mut bank = Bank::new(&genesis_config);
|
||||
bank.add_instruction_processor(
|
||||
solana_sdk::move_loader::id(),
|
||||
solana_move_loader_program::processor::process_instruction,
|
||||
MoveProcessor::process_instruction,
|
||||
);
|
||||
let shared_bank = Arc::new(bank);
|
||||
let bank_client = BankClient::new_shared(&shared_bank);
|
||||
|
Reference in New Issue
Block a user