Example #1
0
        public void ExecuteTransaction()
        {
            var transaction = CreateTransaction(100);

            var addr1 = transaction.Sender;
            var addr2 = transaction.Receiver;

            var           store    = new AccountsState();
            AccountsState newstore = null;

            store = store.Put(addr1, new AccountState(new BigInteger(200), 0));

            var processor = new TransactionProcessor();

            Assert.IsTrue(processor.ExecuteTransaction(transaction, store, ref newstore));

            Assert.IsNotNull(newstore);
            Assert.AreNotSame(store, newstore);

            Assert.AreEqual(new BigInteger(200), store.Get(addr1).Balance);
            Assert.AreEqual(BigInteger.Zero, store.Get(addr2).Balance);

            Assert.AreEqual(new BigInteger(100), newstore.Get(addr1).Balance);
            Assert.AreEqual(new BigInteger(100), newstore.Get(addr2).Balance);
        }
Example #2
0
        public void ExecuteBlockWithTransactionWithoutFunds()
        {
            Transaction tx    = CreateTransaction(100);
            Block       block = new Block(0, null, new Transaction[] { tx });
            var         state = new AccountsState();

            var processor = new TransactionProcessor();

            var result = processor.ExecuteBlock(block, state);

            Assert.IsNotNull(result);
            Assert.AreSame(state, result);

            Assert.AreEqual(BigInteger.Zero, state.Get(tx.Sender).Balance);
            Assert.AreEqual(BigInteger.Zero, state.Get(tx.Receiver).Balance);
        }
Example #3
0
        public void ExecuteTransactionWithoutFunds()
        {
            var transaction = CreateTransaction(100);

            var addr1 = transaction.Sender;
            var addr2 = transaction.Receiver;

            var           store    = new AccountsState();
            AccountsState newstore = null;

            var processor = new TransactionProcessor();

            Assert.IsFalse(processor.ExecuteTransaction(transaction, store, ref newstore));

            Assert.IsNull(newstore);

            Assert.AreEqual(BigInteger.Zero, store.Get(addr1).Balance);
            Assert.AreEqual(BigInteger.Zero, store.Get(addr2).Balance);
        }