public void Test_output_ser_deser() { var keychain = Keychain.From_random_seed(); var keyIdSet = keychain.Derive_key_id(1); var commit = keychain.Commit(5, keyIdSet); var switchCommit = keychain.Switch_commit(keyIdSet); var switchCommitHash = SwitchCommitHash.From_switch_commit(switchCommit); var msg = ProofMessage.Empty(); var proof = keychain.Range_proof(5, keyIdSet, commit, msg); var outp = new Output { Features = OutputFeatures.DefaultOutput, Commit = commit, SwitchCommitHash = switchCommitHash, Proof = proof }; var stream = new MemoryStream(); Ser.Serialize(stream, outp); Console.WriteLine("-------"); Console.WriteLine(stream.ToArray().AsString()); Console.WriteLine("-------"); stream.Position = 0; var dout = Ser.Deserialize(stream, new Output()); Assert.Equal(OutputFeatures.DefaultOutput, dout.Features); Assert.Equal(outp.Commit.Value, dout.Commit.Value); Assert.Equal(outp.Proof.Proof, dout.Proof.Proof); }
public void Simple_tx_ser() { var tx = Tx2I1O(); using (var vec = new MemoryStream()) { Ser.Serialize(vec, tx); Console.WriteLine(vec.Length); Assert.True(vec.Length > 5360); Assert.True(vec.Length < 5380); } }
public void Serialize_deserialize_block() { var keychain = Keychain.From_random_seed(); var b = New_block(new Transaction[] { }, keychain); using (var vec = new MemoryStream()) { Ser.Serialize(vec, b); vec.Position = 0; var b2 = Ser.Deserialize(vec, Block.Default()); Assert.Equal(b.Inputs.Length, b2.Inputs.Length); Assert.Equal(b.Outputs.Length, b2.Outputs.Length); Assert.Equal(b.Kernels.Length, b2.Kernels.Length); Assert.Equal(b.Header.Hash().Hex, b2.Header.Hash().Hex); } }
public void Simple_tx_ser_deser() { var tx = Tx2I1O(); using (var vec = new MemoryStream()) { Ser.Serialize(vec, tx); vec.Position = 0; var dtx = Ser.Deserialize(vec, Transaction.Empty()); Assert.Equal <ulong>(2, dtx.Fee); Assert.Equal(2, dtx.Inputs.Length); Assert.Single(dtx.Outputs); Assert.Equal(tx.Hash(), dtx.Hash()); } }
public void Tx_double_ser_deser() { // checks serializing doesn't mess up the tx and produces consistent results var btx = Tx2I1O(); using (var vec = new MemoryStream()) { Ser.Serialize(vec, btx); vec.Position = 0; var dtx = Ser.Deserialize(vec, Transaction.Empty()); using (var vec2 = new MemoryStream()) { Ser.Serialize(vec2, btx); vec2.Position = 0; var dtx2 = Ser.Deserialize(vec2, Transaction.Empty()); Assert.Equal(btx.Hash(), dtx.Hash()); Assert.Equal(dtx.Hash(), dtx2.Hash()); } } }
public void Test_kernel_ser_deser() { var keychain = Keychain.From_random_seed(); var keyId = keychain.Derive_key_id(1); var commit = keychain.Commit(5, keyId); // just some bytes for testing ser/deser var sig = new byte[] { 1, 0, 0, 0, 0, 0, 0, 1 }; var kernel = new TxKernel { Features = KernelFeatures.DefaultKernel, LockHeight = 0, Excess = commit, ExcessSig = sig, Fee = 10 }; var stream = new MemoryStream(); Ser.Serialize(stream, kernel); Console.WriteLine("-------"); Console.WriteLine(stream.ToArray().AsString()); Console.WriteLine("-------"); stream.Position = 0; var kernel2 = Ser.Deserialize(stream, new TxKernel()); Assert.Equal(KernelFeatures.DefaultKernel, kernel2.Features); Assert.Equal <ulong>(0, kernel2.LockHeight); Assert.Equal(commit.Value, kernel2.Excess.Value); Assert.Equal(sig, kernel2.ExcessSig); Assert.Equal <ulong>(10, kernel2.Fee); //// now check a kernel with lock_height serializes/deserializes correctly kernel = new TxKernel { Features = KernelFeatures.DefaultKernel, LockHeight = 100, Excess = commit, ExcessSig = sig, Fee = 10 }; stream = new MemoryStream(); Ser.Serialize(stream, kernel); Console.WriteLine("-------"); Console.WriteLine(stream.ToArray().AsString()); Console.WriteLine("-------"); stream.Position = 0; kernel2 = Ser.Deserialize(stream, new TxKernel()); Assert.Equal(KernelFeatures.DefaultKernel, kernel2.Features); Assert.Equal <ulong>(100, kernel2.LockHeight); Assert.Equal(commit.Value, kernel2.Excess.Value); Assert.Equal(sig, kernel2.ExcessSig); Assert.Equal <ulong>(10, kernel2.Fee); }
internal static void Exit() { Ser.Serialize(SearchRestaurantsSer.restaurants); Environment.Exit(0); }