mirror of
https://github.com/logos-blockchain/lssa.git
synced 2026-01-03 22:03:06 +00:00
update version tags in domain separator
This commit is contained in:
parent
942e90ae2a
commit
ba20728f40
@ -8,11 +8,11 @@
|
|||||||
"port": 3040,
|
"port": 3040,
|
||||||
"initial_accounts": [
|
"initial_accounts": [
|
||||||
{
|
{
|
||||||
"addr": "0eee24287296ba55278f1e5403be014754866366388730303c2889be17ada065",
|
"addr": "d07ad2e84b27fa00c262f0a1eea0ff35ca0973547e6a106f72f193c2dc838b44",
|
||||||
"balance": 10000
|
"balance": 10000
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"addr": "9e3d8e654d440e95293aa2dceceb137899a59535e952f747068e7a0ee30965f2",
|
"addr": "e7ae77c5ef1a05999344af499fc78a1705398d62ed06cf2e1479f6def89a39bc",
|
||||||
"balance": 20000
|
"balance": 20000
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|||||||
@ -9,7 +9,7 @@
|
|||||||
"initial_accounts": [
|
"initial_accounts": [
|
||||||
{
|
{
|
||||||
"Public": {
|
"Public": {
|
||||||
"address": "0eee24287296ba55278f1e5403be014754866366388730303c2889be17ada065",
|
"address": "d07ad2e84b27fa00c262f0a1eea0ff35ca0973547e6a106f72f193c2dc838b44",
|
||||||
"pub_sign_key": [
|
"pub_sign_key": [
|
||||||
1,
|
1,
|
||||||
1,
|
1,
|
||||||
@ -48,7 +48,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Public": {
|
"Public": {
|
||||||
"address": "9e3d8e654d440e95293aa2dceceb137899a59535e952f747068e7a0ee30965f2",
|
"address": "e7ae77c5ef1a05999344af499fc78a1705398d62ed06cf2e1479f6def89a39bc",
|
||||||
"pub_sign_key": [
|
"pub_sign_key": [
|
||||||
2,
|
2,
|
||||||
2,
|
2,
|
||||||
@ -87,7 +87,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Private": {
|
"Private": {
|
||||||
"address": "9cb6b0035320266e430eac9d96745769e7efcf30d2b9cc21ff000b3f873dc2a8",
|
"address": "d360d6b5763f71ac6af56253687fd7d556d5c6c64312e53c0b92ef039a4375df",
|
||||||
"account": {
|
"account": {
|
||||||
"program_owner": [
|
"program_owner": [
|
||||||
0,
|
0,
|
||||||
@ -316,7 +316,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Private": {
|
"Private": {
|
||||||
"address": "a55f4f98d2f265c91d8a9868564242d8070b9bf7180a29363f52eb76988636fd",
|
"address": "f27087ffc29b99035303697dcf6c8e323b1847d4261e6afd49e0d71c6dfa31ea",
|
||||||
"account": {
|
"account": {
|
||||||
"program_owner": [
|
"program_owner": [
|
||||||
0,
|
0,
|
||||||
|
|||||||
@ -32,13 +32,13 @@ struct Args {
|
|||||||
test_name: String,
|
test_name: String,
|
||||||
}
|
}
|
||||||
|
|
||||||
pub const ACC_SENDER: &str = "0eee24287296ba55278f1e5403be014754866366388730303c2889be17ada065";
|
pub const ACC_SENDER: &str = "d07ad2e84b27fa00c262f0a1eea0ff35ca0973547e6a106f72f193c2dc838b44";
|
||||||
pub const ACC_RECEIVER: &str = "9e3d8e654d440e95293aa2dceceb137899a59535e952f747068e7a0ee30965f2";
|
pub const ACC_RECEIVER: &str = "e7ae77c5ef1a05999344af499fc78a1705398d62ed06cf2e1479f6def89a39bc";
|
||||||
|
|
||||||
pub const ACC_SENDER_PRIVATE: &str =
|
pub const ACC_SENDER_PRIVATE: &str =
|
||||||
"9cb6b0035320266e430eac9d96745769e7efcf30d2b9cc21ff000b3f873dc2a8";
|
"d360d6b5763f71ac6af56253687fd7d556d5c6c64312e53c0b92ef039a4375df";
|
||||||
pub const ACC_RECEIVER_PRIVATE: &str =
|
pub const ACC_RECEIVER_PRIVATE: &str =
|
||||||
"a55f4f98d2f265c91d8a9868564242d8070b9bf7180a29363f52eb76988636fd";
|
"f27087ffc29b99035303697dcf6c8e323b1847d4261e6afd49e0d71c6dfa31ea";
|
||||||
|
|
||||||
pub const TIME_TO_WAIT_FOR_BLOCK_SECONDS: u64 = 12;
|
pub const TIME_TO_WAIT_FOR_BLOCK_SECONDS: u64 = 12;
|
||||||
|
|
||||||
|
|||||||
@ -54,7 +54,7 @@ impl EncryptionScheme {
|
|||||||
) -> [u8; 32] {
|
) -> [u8; 32] {
|
||||||
let mut bytes = Vec::new();
|
let mut bytes = Vec::new();
|
||||||
|
|
||||||
bytes.extend_from_slice(b"NSSA/v0.1/KDF-SHA256");
|
bytes.extend_from_slice(b"NSSA/v0.2/KDF-SHA256/");
|
||||||
bytes.extend_from_slice(&shared_secret.0);
|
bytes.extend_from_slice(&shared_secret.0);
|
||||||
bytes.extend_from_slice(&commitment.to_byte_array());
|
bytes.extend_from_slice(&commitment.to_byte_array());
|
||||||
bytes.extend_from_slice(&output_index.to_le_bytes());
|
bytes.extend_from_slice(&output_index.to_le_bytes());
|
||||||
|
|||||||
@ -9,7 +9,7 @@ pub struct NullifierPublicKey(pub [u8; 32]);
|
|||||||
|
|
||||||
impl From<&NullifierPublicKey> for AccountId {
|
impl From<&NullifierPublicKey> for AccountId {
|
||||||
fn from(value: &NullifierPublicKey) -> Self {
|
fn from(value: &NullifierPublicKey) -> Self {
|
||||||
const PRIVATE_ACCOUNT_ID_PREFIX: &[u8; 32] = b"/NSSA/v0.1/AccountId/Private/\x00\x00\x00";
|
const PRIVATE_ACCOUNT_ID_PREFIX: &[u8; 32] = b"/NSSA/v0.2/AccountId/Private/\x00\x00\x00";
|
||||||
|
|
||||||
let mut bytes = [0; 64];
|
let mut bytes = [0; 64];
|
||||||
bytes[0..32].copy_from_slice(PRIVATE_ACCOUNT_ID_PREFIX);
|
bytes[0..32].copy_from_slice(PRIVATE_ACCOUNT_ID_PREFIX);
|
||||||
@ -46,7 +46,7 @@ pub struct Nullifier(pub(super) [u8; 32]);
|
|||||||
|
|
||||||
impl Nullifier {
|
impl Nullifier {
|
||||||
pub fn for_account_update(commitment: &Commitment, nsk: &NullifierSecretKey) -> Self {
|
pub fn for_account_update(commitment: &Commitment, nsk: &NullifierSecretKey) -> Self {
|
||||||
const UPDATE_PREFIX: &[u8; 32] = b"/NSSA/v0.1/Nullifier/Update/\x00\x00\x00\x00";
|
const UPDATE_PREFIX: &[u8; 32] = b"/NSSA/v0.2/Nullifier/Update/\x00\x00\x00\x00";
|
||||||
let mut bytes = UPDATE_PREFIX.to_vec();
|
let mut bytes = UPDATE_PREFIX.to_vec();
|
||||||
bytes.extend_from_slice(&commitment.to_byte_array());
|
bytes.extend_from_slice(&commitment.to_byte_array());
|
||||||
bytes.extend_from_slice(nsk);
|
bytes.extend_from_slice(nsk);
|
||||||
@ -54,7 +54,7 @@ impl Nullifier {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub fn for_account_initialization(npk: &NullifierPublicKey) -> Self {
|
pub fn for_account_initialization(npk: &NullifierPublicKey) -> Self {
|
||||||
const INIT_PREFIX: &[u8; 32] = b"/NSSA/v0.1/Nullifier/Initialize/";
|
const INIT_PREFIX: &[u8; 32] = b"/NSSA/v0.2/Nullifier/Initialize/";
|
||||||
let mut bytes = INIT_PREFIX.to_vec();
|
let mut bytes = INIT_PREFIX.to_vec();
|
||||||
bytes.extend_from_slice(&npk.to_byte_array());
|
bytes.extend_from_slice(&npk.to_byte_array());
|
||||||
Self(Impl::hash_bytes(&bytes).as_bytes().try_into().unwrap())
|
Self(Impl::hash_bytes(&bytes).as_bytes().try_into().unwrap())
|
||||||
@ -70,8 +70,8 @@ mod tests {
|
|||||||
let commitment = Commitment((0..32u8).collect::<Vec<_>>().try_into().unwrap());
|
let commitment = Commitment((0..32u8).collect::<Vec<_>>().try_into().unwrap());
|
||||||
let nsk = [0x42; 32];
|
let nsk = [0x42; 32];
|
||||||
let expected_nullifier = Nullifier([
|
let expected_nullifier = Nullifier([
|
||||||
235, 128, 185, 229, 74, 74, 83, 13, 165, 48, 239, 24, 48, 101, 71, 251, 253, 92, 88,
|
148, 243, 116, 209, 140, 231, 211, 61, 35, 62, 114, 110, 143, 224, 82, 201, 221, 34,
|
||||||
201, 103, 43, 250, 135, 193, 54, 175, 82, 245, 171, 90, 135,
|
53, 80, 185, 48, 174, 28, 203, 43, 94, 187, 85, 199, 115, 81,
|
||||||
]);
|
]);
|
||||||
let nullifier = Nullifier::for_account_update(&commitment, &nsk);
|
let nullifier = Nullifier::for_account_update(&commitment, &nsk);
|
||||||
assert_eq!(nullifier, expected_nullifier);
|
assert_eq!(nullifier, expected_nullifier);
|
||||||
@ -84,8 +84,8 @@ mod tests {
|
|||||||
255, 29, 105, 42, 186, 43, 11, 157, 168, 132, 225, 17, 163,
|
255, 29, 105, 42, 186, 43, 11, 157, 168, 132, 225, 17, 163,
|
||||||
]);
|
]);
|
||||||
let expected_nullifier = Nullifier([
|
let expected_nullifier = Nullifier([
|
||||||
96, 99, 33, 1, 116, 84, 169, 18, 85, 201, 17, 243, 123, 240, 242, 34, 116, 233, 92,
|
1, 6, 59, 168, 16, 146, 65, 252, 255, 91, 48, 85, 116, 189, 110, 218, 110, 136, 163,
|
||||||
203, 247, 92, 161, 162, 135, 66, 127, 108, 230, 149, 105, 157,
|
193, 245, 103, 51, 27, 235, 170, 215, 115, 97, 144, 36, 238,
|
||||||
]);
|
]);
|
||||||
let nullifier = Nullifier::for_account_initialization(&npk);
|
let nullifier = Nullifier::for_account_initialization(&npk);
|
||||||
assert_eq!(nullifier, expected_nullifier);
|
assert_eq!(nullifier, expected_nullifier);
|
||||||
@ -113,8 +113,8 @@ mod tests {
|
|||||||
];
|
];
|
||||||
let npk = NullifierPublicKey::from(&nsk);
|
let npk = NullifierPublicKey::from(&nsk);
|
||||||
let expected_account_id = AccountId::new([
|
let expected_account_id = AccountId::new([
|
||||||
69, 160, 50, 67, 12, 56, 150, 116, 62, 145, 17, 161, 17, 45, 24, 53, 33, 167, 83, 178,
|
18, 153, 225, 78, 35, 214, 212, 205, 152, 83, 18, 246, 69, 41, 20, 217, 85, 1, 108, 7,
|
||||||
47, 114, 111, 233, 251, 30, 54, 244, 184, 22, 100, 236,
|
87, 133, 181, 53, 247, 221, 174, 12, 112, 194, 34, 121,
|
||||||
]);
|
]);
|
||||||
|
|
||||||
let account_id = AccountId::from(&npk);
|
let account_id = AccountId::from(&npk);
|
||||||
|
|||||||
@ -16,8 +16,8 @@ use crate::{
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
const MESSAGE_ENCODING_PREFIX_LEN: usize = 22;
|
const MESSAGE_ENCODING_PREFIX_LEN: usize = 32;
|
||||||
const MESSAGE_ENCODING_PREFIX: &[u8; MESSAGE_ENCODING_PREFIX_LEN] = b"\x01/NSSA/v0.1/TxMessage/";
|
const MESSAGE_ENCODING_PREFIX: &[u8; MESSAGE_ENCODING_PREFIX_LEN] = b"/NSSA/v0.2/TxMessage/Private/\x00\x00\x00";
|
||||||
|
|
||||||
impl EncryptedAccountData {
|
impl EncryptedAccountData {
|
||||||
pub fn to_bytes(&self) -> Vec<u8> {
|
pub fn to_bytes(&self) -> Vec<u8> {
|
||||||
|
|||||||
@ -2,15 +2,12 @@
|
|||||||
|
|
||||||
use std::io::{Cursor, Read};
|
use std::io::{Cursor, Read};
|
||||||
|
|
||||||
use nssa_core::program::ProgramId;
|
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
Address, ProgramDeploymentTransaction, PublicKey, PublicTransaction, Signature,
|
ProgramDeploymentTransaction, error::NssaError, program_deployment_transaction::Message,
|
||||||
error::NssaError, program_deployment_transaction::Message,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
const MESSAGE_ENCODING_PREFIX_LEN: usize = 22;
|
const MESSAGE_ENCODING_PREFIX_LEN: usize = 32;
|
||||||
const MESSAGE_ENCODING_PREFIX: &[u8; MESSAGE_ENCODING_PREFIX_LEN] = b"\x02/NSSA/v0.1/TxMessage/";
|
const MESSAGE_ENCODING_PREFIX: &[u8; MESSAGE_ENCODING_PREFIX_LEN] = b"/NSSA/v0.2/TxMessage/Program/\x00\x00\x00";
|
||||||
|
|
||||||
impl Message {
|
impl Message {
|
||||||
/// Serializes a `Message` into bytes in the following layout:
|
/// Serializes a `Message` into bytes in the following layout:
|
||||||
|
|||||||
@ -10,8 +10,8 @@ use crate::{
|
|||||||
public_transaction::{Message, WitnessSet},
|
public_transaction::{Message, WitnessSet},
|
||||||
};
|
};
|
||||||
|
|
||||||
const MESSAGE_ENCODING_PREFIX_LEN: usize = 22;
|
const MESSAGE_ENCODING_PREFIX_LEN: usize = 32;
|
||||||
const MESSAGE_ENCODING_PREFIX: &[u8; MESSAGE_ENCODING_PREFIX_LEN] = b"\x00/NSSA/v0.1/TxMessage/";
|
const MESSAGE_ENCODING_PREFIX: &[u8; MESSAGE_ENCODING_PREFIX_LEN] = b"/NSSA/v0.2/TxMessage/Public/\x00\x00\x00\x00";
|
||||||
|
|
||||||
impl Message {
|
impl Message {
|
||||||
/// Serializes a `Message` into bytes in the following layout:
|
/// Serializes a `Message` into bytes in the following layout:
|
||||||
|
|||||||
@ -31,10 +31,10 @@ impl EncryptedAccountData {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Computes the tag as the first byte of SHA256("/NSSA/v0.1/ViewTag" || Npk || Ivk)
|
/// Computes the tag as the first byte of SHA256("/NSSA/v0.2/ViewTag/" || Npk || Ivk)
|
||||||
pub fn compute_view_tag(npk: NullifierPublicKey, ivk: IncomingViewingPublicKey) -> ViewTag {
|
pub fn compute_view_tag(npk: NullifierPublicKey, ivk: IncomingViewingPublicKey) -> ViewTag {
|
||||||
let mut hasher = Sha256::new();
|
let mut hasher = Sha256::new();
|
||||||
hasher.update(b"/NSSA/v0.1/ViewTag");
|
hasher.update(b"/NSSA/v0.2/ViewTag/");
|
||||||
hasher.update(npk.to_byte_array());
|
hasher.update(npk.to_byte_array());
|
||||||
hasher.update(ivk.to_bytes());
|
hasher.update(ivk.to_bytes());
|
||||||
let digest: [u8; 32] = hasher.finalize().into();
|
let digest: [u8; 32] = hasher.finalize().into();
|
||||||
@ -166,7 +166,7 @@ pub mod tests {
|
|||||||
|
|
||||||
let expected_view_tag = {
|
let expected_view_tag = {
|
||||||
let mut hasher = Sha256::new();
|
let mut hasher = Sha256::new();
|
||||||
hasher.update(b"/NSSA/v0.1/ViewTag");
|
hasher.update(b"/NSSA/v0.2/ViewTag/");
|
||||||
hasher.update(npk.to_byte_array());
|
hasher.update(npk.to_byte_array());
|
||||||
hasher.update(ivk.to_bytes());
|
hasher.update(ivk.to_bytes());
|
||||||
let digest: [u8; 32] = hasher.finalize().into();
|
let digest: [u8; 32] = hasher.finalize().into();
|
||||||
|
|||||||
@ -8,6 +8,10 @@ use serde::Serialize;
|
|||||||
|
|
||||||
use crate::error::NssaError;
|
use crate::error::NssaError;
|
||||||
|
|
||||||
|
/// Maximum number of cycles for a public execution.
|
||||||
|
/// TODO: Make this variable when fees are implemented
|
||||||
|
const MAX_NUM_CYCLES_PUBLIC_EXECUTION: u64 = 1024 * 1024 * 32; // 32M cycles
|
||||||
|
|
||||||
#[derive(Debug, PartialEq, Eq)]
|
#[derive(Debug, PartialEq, Eq)]
|
||||||
pub struct Program {
|
pub struct Program {
|
||||||
id: ProgramId,
|
id: ProgramId,
|
||||||
@ -46,6 +50,7 @@ impl Program {
|
|||||||
) -> Result<Vec<Account>, NssaError> {
|
) -> Result<Vec<Account>, NssaError> {
|
||||||
// Write inputs to the program
|
// Write inputs to the program
|
||||||
let mut env_builder = ExecutorEnv::builder();
|
let mut env_builder = ExecutorEnv::builder();
|
||||||
|
env_builder.session_limit(Some(MAX_NUM_CYCLES_PUBLIC_EXECUTION));
|
||||||
Self::write_inputs(pre_states, instruction_data, &mut env_builder)?;
|
Self::write_inputs(pre_states, instruction_data, &mut env_builder)?;
|
||||||
let env = env_builder.build().unwrap();
|
let env = env_builder.build().unwrap();
|
||||||
|
|
||||||
|
|||||||
@ -186,12 +186,12 @@ pub mod tests {
|
|||||||
let tx = transaction_for_tests();
|
let tx = transaction_for_tests();
|
||||||
let expected_signer_addresses = vec![
|
let expected_signer_addresses = vec![
|
||||||
Address::new([
|
Address::new([
|
||||||
14, 238, 36, 40, 114, 150, 186, 85, 39, 143, 30, 84, 3, 190, 1, 71, 84, 134, 99,
|
208, 122, 210, 232, 75, 39, 250, 0, 194, 98, 240, 161, 238, 160, 255, 53, 202, 9,
|
||||||
102, 56, 135, 48, 48, 60, 40, 137, 190, 23, 173, 160, 101,
|
115, 84, 126, 106, 16, 111, 114, 241, 147, 194, 220, 131, 139, 68,
|
||||||
]),
|
]),
|
||||||
Address::new([
|
Address::new([
|
||||||
158, 61, 142, 101, 77, 68, 14, 149, 41, 58, 162, 220, 236, 235, 19, 120, 153, 165,
|
231, 174, 119, 197, 239, 26, 5, 153, 147, 68, 175, 73, 159, 199, 138, 23, 5, 57,
|
||||||
149, 53, 233, 82, 247, 71, 6, 142, 122, 14, 227, 9, 101, 242,
|
141, 98, 237, 6, 207, 46, 20, 121, 246, 222, 248, 154, 57, 188,
|
||||||
]),
|
]),
|
||||||
];
|
];
|
||||||
let signer_addresses = tx.signer_addresses();
|
let signer_addresses = tx.signer_addresses();
|
||||||
|
|||||||
@ -33,7 +33,7 @@ impl PublicKey {
|
|||||||
|
|
||||||
impl From<&PublicKey> for Address {
|
impl From<&PublicKey> for Address {
|
||||||
fn from(key: &PublicKey) -> Self {
|
fn from(key: &PublicKey) -> Self {
|
||||||
const PUBLIC_ACCOUNT_ID_PREFIX: &[u8; 32] = b"/NSSA/v0.1/AccountId/Public/\x00\x00\x00\x00";
|
const PUBLIC_ACCOUNT_ID_PREFIX: &[u8; 32] = b"/NSSA/v0.2/AccountId/Public/\x00\x00\x00\x00";
|
||||||
|
|
||||||
let mut hasher = Sha256::new();
|
let mut hasher = Sha256::new();
|
||||||
hasher.update(PUBLIC_ACCOUNT_ID_PREFIX);
|
hasher.update(PUBLIC_ACCOUNT_ID_PREFIX);
|
||||||
|
|||||||
@ -238,13 +238,13 @@ mod tests {
|
|||||||
|
|
||||||
fn setup_sequencer_config() -> SequencerConfig {
|
fn setup_sequencer_config() -> SequencerConfig {
|
||||||
let acc1_addr = vec![
|
let acc1_addr = vec![
|
||||||
14, 238, 36, 40, 114, 150, 186, 85, 39, 143, 30, 84, 3, 190, 1, 71, 84, 134, 99, 102,
|
208, 122, 210, 232, 75, 39, 250, 0, 194, 98, 240, 161, 238, 160, 255, 53, 202, 9, 115,
|
||||||
56, 135, 48, 48, 60, 40, 137, 190, 23, 173, 160, 101,
|
84, 126, 106, 16, 111, 114, 241, 147, 194, 220, 131, 139, 68,
|
||||||
];
|
];
|
||||||
|
|
||||||
let acc2_addr = vec![
|
let acc2_addr = vec![
|
||||||
158, 61, 142, 101, 77, 68, 14, 149, 41, 58, 162, 220, 236, 235, 19, 120, 153, 165, 149,
|
231, 174, 119, 197, 239, 26, 5, 153, 147, 68, 175, 73, 159, 199, 138, 23, 5, 57, 141,
|
||||||
53, 233, 82, 247, 71, 6, 142, 122, 14, 227, 9, 101, 242,
|
98, 237, 6, 207, 46, 20, 121, 246, 222, 248, 154, 57, 188,
|
||||||
];
|
];
|
||||||
|
|
||||||
let initial_acc1 = AccountInitialData {
|
let initial_acc1 = AccountInitialData {
|
||||||
|
|||||||
@ -308,13 +308,13 @@ mod tests {
|
|||||||
let tempdir = tempdir().unwrap();
|
let tempdir = tempdir().unwrap();
|
||||||
let home = tempdir.path().to_path_buf();
|
let home = tempdir.path().to_path_buf();
|
||||||
let acc1_addr = vec![
|
let acc1_addr = vec![
|
||||||
14, 238, 36, 40, 114, 150, 186, 85, 39, 143, 30, 84, 3, 190, 1, 71, 84, 134, 99, 102,
|
208, 122, 210, 232, 75, 39, 250, 0, 194, 98, 240, 161, 238, 160, 255, 53, 202, 9, 115,
|
||||||
56, 135, 48, 48, 60, 40, 137, 190, 23, 173, 160, 101,
|
84, 126, 106, 16, 111, 114, 241, 147, 194, 220, 131, 139, 68,
|
||||||
];
|
];
|
||||||
|
|
||||||
let acc2_addr = vec![
|
let acc2_addr = vec![
|
||||||
158, 61, 142, 101, 77, 68, 14, 149, 41, 58, 162, 220, 236, 235, 19, 120, 153, 165, 149,
|
231, 174, 119, 197, 239, 26, 5, 153, 147, 68, 175, 73, 159, 199, 138, 23, 5, 57, 141,
|
||||||
53, 233, 82, 247, 71, 6, 142, 122, 14, 227, 9, 101, 242,
|
98, 237, 6, 207, 46, 20, 121, 246, 222, 248, 154, 57, 188,
|
||||||
];
|
];
|
||||||
|
|
||||||
let initial_acc1 = AccountInitialData {
|
let initial_acc1 = AccountInitialData {
|
||||||
@ -352,8 +352,8 @@ mod tests {
|
|||||||
let balance_to_move = 10;
|
let balance_to_move = 10;
|
||||||
let tx = common::test_utils::create_transaction_native_token_transfer(
|
let tx = common::test_utils::create_transaction_native_token_transfer(
|
||||||
[
|
[
|
||||||
14, 238, 36, 40, 114, 150, 186, 85, 39, 143, 30, 84, 3, 190, 1, 71, 84, 134, 99,
|
208, 122, 210, 232, 75, 39, 250, 0, 194, 98, 240, 161, 238, 160, 255, 53, 202, 9,
|
||||||
102, 56, 135, 48, 48, 60, 40, 137, 190, 23, 173, 160, 101,
|
115, 84, 126, 106, 16, 111, 114, 241, 147, 194, 220, 131, 139, 68,
|
||||||
],
|
],
|
||||||
0,
|
0,
|
||||||
[2; 32],
|
[2; 32],
|
||||||
|
|||||||
@ -8,11 +8,11 @@
|
|||||||
"port": 3040,
|
"port": 3040,
|
||||||
"initial_accounts": [
|
"initial_accounts": [
|
||||||
{
|
{
|
||||||
"addr": "0eee24287296ba55278f1e5403be014754866366388730303c2889be17ada065",
|
"addr": "d07ad2e84b27fa00c262f0a1eea0ff35ca0973547e6a106f72f193c2dc838b44",
|
||||||
"balance": 10000
|
"balance": 10000
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"addr": "9e3d8e654d440e95293aa2dceceb137899a59535e952f747068e7a0ee30965f2",
|
"addr": "e7ae77c5ef1a05999344af499fc78a1705398d62ed06cf2e1479f6def89a39bc",
|
||||||
"balance": 20000
|
"balance": 20000
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|||||||
@ -77,14 +77,14 @@ mod tests {
|
|||||||
fn create_initial_accounts() -> Vec<InitialAccountData> {
|
fn create_initial_accounts() -> Vec<InitialAccountData> {
|
||||||
let initial_acc1 = serde_json::from_str(r#"{
|
let initial_acc1 = serde_json::from_str(r#"{
|
||||||
"Public": {
|
"Public": {
|
||||||
"address": "0eee24287296ba55278f1e5403be014754866366388730303c2889be17ada065",
|
"address": "d07ad2e84b27fa00c262f0a1eea0ff35ca0973547e6a106f72f193c2dc838b44",
|
||||||
"pub_sign_key": [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
|
"pub_sign_key": [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
|
||||||
}
|
}
|
||||||
}"#).unwrap();
|
}"#).unwrap();
|
||||||
|
|
||||||
let initial_acc2 = serde_json::from_str(r#"{
|
let initial_acc2 = serde_json::from_str(r#"{
|
||||||
"Public": {
|
"Public": {
|
||||||
"address": "9e3d8e654d440e95293aa2dceceb137899a59535e952f747068e7a0ee30965f2",
|
"address": "e7ae77c5ef1a05999344af499fc78a1705398d62ed06cf2e1479f6def89a39bc",
|
||||||
"pub_sign_key": [2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2]
|
"pub_sign_key": [2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2]
|
||||||
}
|
}
|
||||||
}"#).unwrap();
|
}"#).unwrap();
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user