mirror of
https://github.com/logos-blockchain/lssa.git
synced 2026-01-06 23:33:10 +00:00
minor refactor
This commit is contained in:
parent
96b256bd4c
commit
54dd9aa814
@ -36,7 +36,7 @@ pub fn produce_dummy_empty_transaction() -> nssa::PublicTransaction {
|
|||||||
let nonces = vec![];
|
let nonces = vec![];
|
||||||
let instruction_data = 0;
|
let instruction_data = 0;
|
||||||
let message =
|
let message =
|
||||||
nssa::public_transaction::Message::new(program_id, addresses, nonces, instruction_data);
|
nssa::public_transaction::Message::try_new(program_id, addresses, nonces, instruction_data).unwrap();
|
||||||
let private_key = nssa::PrivateKey::new(1);
|
let private_key = nssa::PrivateKey::new(1);
|
||||||
let witness_set = nssa::public_transaction::WitnessSet::for_message(&message, &[&private_key]);
|
let witness_set = nssa::public_transaction::WitnessSet::for_message(&message, &[&private_key]);
|
||||||
nssa::PublicTransaction::new(message, witness_set)
|
nssa::PublicTransaction::new(message, witness_set)
|
||||||
@ -53,7 +53,7 @@ pub fn create_transaction_native_token_transfer(
|
|||||||
let nonces = vec![nonce];
|
let nonces = vec![nonce];
|
||||||
let program_id = nssa::program::Program::authenticated_transfer_program().id();
|
let program_id = nssa::program::Program::authenticated_transfer_program().id();
|
||||||
let message =
|
let message =
|
||||||
nssa::public_transaction::Message::new(program_id, addresses, nonces, balance_to_move);
|
nssa::public_transaction::Message::try_new(program_id, addresses, nonces, balance_to_move).unwrap();
|
||||||
let witness_set = nssa::public_transaction::WitnessSet::for_message(&message, &[&signing_key]);
|
let witness_set = nssa::public_transaction::WitnessSet::for_message(&message, &[&signing_key]);
|
||||||
nssa::PublicTransaction::new(message, witness_set)
|
nssa::PublicTransaction::new(message, witness_set)
|
||||||
}
|
}
|
||||||
|
|||||||
@ -12,5 +12,5 @@ pub enum NssaError {
|
|||||||
InvalidProgramBehavior,
|
InvalidProgramBehavior,
|
||||||
|
|
||||||
#[error("Serialization error: {0}")]
|
#[error("Serialization error: {0}")]
|
||||||
InstructionDataSerializationError(String),
|
InstructionSerializationError(String),
|
||||||
}
|
}
|
||||||
|
|||||||
@ -19,10 +19,10 @@ impl Program {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub fn serialize_instruction<T: Serialize>(
|
pub fn serialize_instruction<T: Serialize>(
|
||||||
instruction_data: T,
|
instruction: T,
|
||||||
) -> Result<InstructionData, NssaError> {
|
) -> Result<InstructionData, NssaError> {
|
||||||
to_vec(&instruction_data)
|
to_vec(&instruction)
|
||||||
.map_err(|e| NssaError::InstructionDataSerializationError(e.to_string()))
|
.map_err(|e| NssaError::InstructionSerializationError(e.to_string()))
|
||||||
}
|
}
|
||||||
|
|
||||||
pub(crate) fn execute(
|
pub(crate) fn execute(
|
||||||
|
|||||||
@ -4,7 +4,7 @@ use nssa_core::{
|
|||||||
};
|
};
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
|
|
||||||
use crate::{Address, program::Program};
|
use crate::{Address, error::NssaError, program::Program};
|
||||||
|
|
||||||
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
|
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
|
||||||
pub struct Message {
|
pub struct Message {
|
||||||
@ -15,18 +15,18 @@ pub struct Message {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl Message {
|
impl Message {
|
||||||
pub fn new<T: Serialize>(
|
pub fn try_new<T: Serialize>(
|
||||||
program_id: ProgramId,
|
program_id: ProgramId,
|
||||||
addresses: Vec<Address>,
|
addresses: Vec<Address>,
|
||||||
nonces: Vec<Nonce>,
|
nonces: Vec<Nonce>,
|
||||||
instruction: T,
|
instruction: T,
|
||||||
) -> Self {
|
) -> Result<Self, NssaError> {
|
||||||
let instruction_data = Program::serialize_instruction(instruction).unwrap();
|
let instruction_data = Program::serialize_instruction(instruction)?;
|
||||||
Self {
|
Ok(Self {
|
||||||
program_id,
|
program_id,
|
||||||
addresses,
|
addresses,
|
||||||
nonces,
|
nonces,
|
||||||
instruction_data,
|
instruction_data,
|
||||||
}
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -14,7 +14,7 @@ fn transfer_transaction(
|
|||||||
let addresses = vec![from, to];
|
let addresses = vec![from, to];
|
||||||
let nonces = vec![nonce];
|
let nonces = vec![nonce];
|
||||||
let program_id = Program::authenticated_transfer_program().id();
|
let program_id = Program::authenticated_transfer_program().id();
|
||||||
let message = public_transaction::Message::new(program_id, addresses, nonces, balance);
|
let message = public_transaction::Message::try_new(program_id, addresses, nonces, balance).unwrap();
|
||||||
let witness_set = public_transaction::WitnessSet::for_message(&message, &[&from_key]);
|
let witness_set = public_transaction::WitnessSet::for_message(&message, &[&from_key]);
|
||||||
PublicTransaction::new(message, witness_set)
|
PublicTransaction::new(message, witness_set)
|
||||||
}
|
}
|
||||||
|
|||||||
@ -10,7 +10,7 @@ fn test_program_should_fail_if_modifies_nonces() {
|
|||||||
let mut state = V01State::new_with_genesis_accounts(&initial_data).with_test_programs();
|
let mut state = V01State::new_with_genesis_accounts(&initial_data).with_test_programs();
|
||||||
let addresses = vec![Address::new([1; 32])];
|
let addresses = vec![Address::new([1; 32])];
|
||||||
let program_id = Program::nonce_changer_program().id();
|
let program_id = Program::nonce_changer_program().id();
|
||||||
let message = public_transaction::Message::new(program_id, addresses, vec![], ());
|
let message = public_transaction::Message::try_new(program_id, addresses, vec![], ()).unwrap();
|
||||||
let witness_set = public_transaction::WitnessSet::for_message(&message, &[]);
|
let witness_set = public_transaction::WitnessSet::for_message(&message, &[]);
|
||||||
let tx = PublicTransaction::new(message, witness_set);
|
let tx = PublicTransaction::new(message, witness_set);
|
||||||
|
|
||||||
@ -25,7 +25,7 @@ fn test_program_should_fail_if_output_accounts_exceed_inputs() {
|
|||||||
let mut state = V01State::new_with_genesis_accounts(&initial_data).with_test_programs();
|
let mut state = V01State::new_with_genesis_accounts(&initial_data).with_test_programs();
|
||||||
let addresses = vec![Address::new([1; 32])];
|
let addresses = vec![Address::new([1; 32])];
|
||||||
let program_id = Program::extra_output_program().id();
|
let program_id = Program::extra_output_program().id();
|
||||||
let message = public_transaction::Message::new(program_id, addresses, vec![], ());
|
let message = public_transaction::Message::try_new(program_id, addresses, vec![], ()).unwrap();
|
||||||
let witness_set = public_transaction::WitnessSet::for_message(&message, &[]);
|
let witness_set = public_transaction::WitnessSet::for_message(&message, &[]);
|
||||||
let tx = PublicTransaction::new(message, witness_set);
|
let tx = PublicTransaction::new(message, witness_set);
|
||||||
|
|
||||||
@ -40,7 +40,7 @@ fn test_program_should_fail_with_missing_output_accounts() {
|
|||||||
let mut state = V01State::new_with_genesis_accounts(&initial_data).with_test_programs();
|
let mut state = V01State::new_with_genesis_accounts(&initial_data).with_test_programs();
|
||||||
let addresses = vec![Address::new([1; 32]), Address::new([2; 32])];
|
let addresses = vec![Address::new([1; 32]), Address::new([2; 32])];
|
||||||
let program_id = Program::missing_output_program().id();
|
let program_id = Program::missing_output_program().id();
|
||||||
let message = public_transaction::Message::new(program_id, addresses, vec![], ());
|
let message = public_transaction::Message::try_new(program_id, addresses, vec![], ()).unwrap();
|
||||||
let witness_set = public_transaction::WitnessSet::for_message(&message, &[]);
|
let witness_set = public_transaction::WitnessSet::for_message(&message, &[]);
|
||||||
let tx = PublicTransaction::new(message, witness_set);
|
let tx = PublicTransaction::new(message, witness_set);
|
||||||
|
|
||||||
@ -61,7 +61,7 @@ fn test_program_should_fail_if_modifies_program_owner_with_only_non_default_prog
|
|||||||
assert_eq!(account.nonce, Account::default().nonce);
|
assert_eq!(account.nonce, Account::default().nonce);
|
||||||
assert_eq!(account.data, Account::default().data);
|
assert_eq!(account.data, Account::default().data);
|
||||||
let program_id = Program::program_owner_changer().id();
|
let program_id = Program::program_owner_changer().id();
|
||||||
let message = public_transaction::Message::new(program_id, vec![address], vec![], ());
|
let message = public_transaction::Message::try_new(program_id, vec![address], vec![], ()).unwrap();
|
||||||
let witness_set = public_transaction::WitnessSet::for_message(&message, &[]);
|
let witness_set = public_transaction::WitnessSet::for_message(&message, &[]);
|
||||||
let tx = PublicTransaction::new(message, witness_set);
|
let tx = PublicTransaction::new(message, witness_set);
|
||||||
|
|
||||||
@ -84,7 +84,7 @@ fn test_program_should_fail_if_modifies_program_owner_with_only_non_default_bala
|
|||||||
assert_eq!(account.nonce, Account::default().nonce);
|
assert_eq!(account.nonce, Account::default().nonce);
|
||||||
assert_eq!(account.data, Account::default().data);
|
assert_eq!(account.data, Account::default().data);
|
||||||
let program_id = Program::program_owner_changer().id();
|
let program_id = Program::program_owner_changer().id();
|
||||||
let message = public_transaction::Message::new(program_id, vec![address], vec![], ());
|
let message = public_transaction::Message::try_new(program_id, vec![address], vec![], ()).unwrap();
|
||||||
let witness_set = public_transaction::WitnessSet::for_message(&message, &[]);
|
let witness_set = public_transaction::WitnessSet::for_message(&message, &[]);
|
||||||
let tx = PublicTransaction::new(message, witness_set);
|
let tx = PublicTransaction::new(message, witness_set);
|
||||||
|
|
||||||
@ -107,7 +107,7 @@ fn test_program_should_fail_if_modifies_program_owner_with_only_non_default_nonc
|
|||||||
assert_ne!(account.nonce, Account::default().nonce);
|
assert_ne!(account.nonce, Account::default().nonce);
|
||||||
assert_eq!(account.data, Account::default().data);
|
assert_eq!(account.data, Account::default().data);
|
||||||
let program_id = Program::program_owner_changer().id();
|
let program_id = Program::program_owner_changer().id();
|
||||||
let message = public_transaction::Message::new(program_id, vec![address], vec![], ());
|
let message = public_transaction::Message::try_new(program_id, vec![address], vec![], ()).unwrap();
|
||||||
let witness_set = public_transaction::WitnessSet::for_message(&message, &[]);
|
let witness_set = public_transaction::WitnessSet::for_message(&message, &[]);
|
||||||
let tx = PublicTransaction::new(message, witness_set);
|
let tx = PublicTransaction::new(message, witness_set);
|
||||||
|
|
||||||
@ -130,7 +130,7 @@ fn test_program_should_fail_if_modifies_program_owner_with_only_non_default_data
|
|||||||
assert_eq!(account.nonce, Account::default().nonce);
|
assert_eq!(account.nonce, Account::default().nonce);
|
||||||
assert_ne!(account.data, Account::default().data);
|
assert_ne!(account.data, Account::default().data);
|
||||||
let program_id = Program::program_owner_changer().id();
|
let program_id = Program::program_owner_changer().id();
|
||||||
let message = public_transaction::Message::new(program_id, vec![address], vec![], ());
|
let message = public_transaction::Message::try_new(program_id, vec![address], vec![], ()).unwrap();
|
||||||
let witness_set = public_transaction::WitnessSet::for_message(&message, &[]);
|
let witness_set = public_transaction::WitnessSet::for_message(&message, &[]);
|
||||||
let tx = PublicTransaction::new(message, witness_set);
|
let tx = PublicTransaction::new(message, witness_set);
|
||||||
|
|
||||||
@ -151,12 +151,12 @@ fn test_program_should_fail_if_transfers_balance_from_non_owned_account() {
|
|||||||
state.get_account_by_address(&sender_address).program_owner,
|
state.get_account_by_address(&sender_address).program_owner,
|
||||||
program_id
|
program_id
|
||||||
);
|
);
|
||||||
let message = public_transaction::Message::new(
|
let message = public_transaction::Message::try_new(
|
||||||
program_id,
|
program_id,
|
||||||
vec![sender_address, receiver_address],
|
vec![sender_address, receiver_address],
|
||||||
vec![],
|
vec![],
|
||||||
balance_to_move,
|
balance_to_move,
|
||||||
);
|
).unwrap();
|
||||||
let witness_set = public_transaction::WitnessSet::for_message(&message, &[]);
|
let witness_set = public_transaction::WitnessSet::for_message(&message, &[]);
|
||||||
let tx = PublicTransaction::new(message, witness_set);
|
let tx = PublicTransaction::new(message, witness_set);
|
||||||
|
|
||||||
@ -178,7 +178,7 @@ fn test_program_should_fail_if_modifies_data_of_non_owned_account() {
|
|||||||
state.get_account_by_address(&address).program_owner,
|
state.get_account_by_address(&address).program_owner,
|
||||||
program_id
|
program_id
|
||||||
);
|
);
|
||||||
let message = public_transaction::Message::new(program_id, vec![address], vec![], ());
|
let message = public_transaction::Message::try_new(program_id, vec![address], vec![], ()).unwrap();
|
||||||
let witness_set = public_transaction::WitnessSet::for_message(&message, &[]);
|
let witness_set = public_transaction::WitnessSet::for_message(&message, &[]);
|
||||||
let tx = PublicTransaction::new(message, witness_set);
|
let tx = PublicTransaction::new(message, witness_set);
|
||||||
|
|
||||||
@ -194,7 +194,7 @@ fn test_program_should_fail_if_does_not_preserve_total_balance_by_minting() {
|
|||||||
let address = Address::new([1; 32]);
|
let address = Address::new([1; 32]);
|
||||||
let program_id = Program::minter().id();
|
let program_id = Program::minter().id();
|
||||||
|
|
||||||
let message = public_transaction::Message::new(program_id, vec![address], vec![], ());
|
let message = public_transaction::Message::try_new(program_id, vec![address], vec![], ()).unwrap();
|
||||||
let witness_set = public_transaction::WitnessSet::for_message(&message, &[]);
|
let witness_set = public_transaction::WitnessSet::for_message(&message, &[]);
|
||||||
let tx = PublicTransaction::new(message, witness_set);
|
let tx = PublicTransaction::new(message, witness_set);
|
||||||
|
|
||||||
@ -219,7 +219,7 @@ fn test_program_should_fail_if_does_not_preserve_total_balance_by_burning() {
|
|||||||
assert!(state.get_account_by_address(&address).balance > balance_to_burn);
|
assert!(state.get_account_by_address(&address).balance > balance_to_burn);
|
||||||
|
|
||||||
let message =
|
let message =
|
||||||
public_transaction::Message::new(program_id, vec![address], vec![], balance_to_burn);
|
public_transaction::Message::try_new(program_id, vec![address], vec![], balance_to_burn).unwrap();
|
||||||
let witness_set = public_transaction::WitnessSet::for_message(&message, &[]);
|
let witness_set = public_transaction::WitnessSet::for_message(&message, &[]);
|
||||||
let tx = PublicTransaction::new(message, witness_set);
|
let tx = PublicTransaction::new(message, witness_set);
|
||||||
let result = state.transition_from_public_transaction(&tx);
|
let result = state.transition_from_public_transaction(&tx);
|
||||||
|
|||||||
@ -79,12 +79,12 @@ impl WalletCore {
|
|||||||
let addresses = vec![nssa::Address::new(from), nssa::Address::new(to)];
|
let addresses = vec![nssa::Address::new(from), nssa::Address::new(to)];
|
||||||
let nonces = vec![nonce];
|
let nonces = vec![nonce];
|
||||||
let program_id = nssa::program::Program::authenticated_transfer_program().id();
|
let program_id = nssa::program::Program::authenticated_transfer_program().id();
|
||||||
let message = nssa::public_transaction::Message::new(
|
let message = nssa::public_transaction::Message::try_new(
|
||||||
program_id,
|
program_id,
|
||||||
addresses,
|
addresses,
|
||||||
nonces,
|
nonces,
|
||||||
balance_to_move,
|
balance_to_move,
|
||||||
);
|
).unwrap();
|
||||||
|
|
||||||
let signing_key = account.key_holder.get_pub_account_signing_key();
|
let signing_key = account.key_holder.get_pub_account_signing_key();
|
||||||
let witness_set =
|
let witness_set =
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user