Exemple #1
0
        public void CanEvaluateActions()
        {
            PrivateKey fromPrivateKey = new PrivateKey();
            Address    fromAddress    = fromPrivateKey.PublicKey.ToAddress();
            Address    toAddress      = _fx.Address1;
            long       blockIndex     = 0;

            TestEvaluateAction       action = new TestEvaluateAction();
            Transaction <BaseAction> tx1    = Transaction <BaseAction> .Make(
                fromPrivateKey,
                toAddress,
                new List <BaseAction> {
                action
            },
                DateTimeOffset.UtcNow
                );

            _blockChain.StageTransactions(new HashSet <Transaction <BaseAction> > {
                tx1
            });
            _blockChain.MineBlock(_fx.Address1);
            var states = _blockChain.GetStates(new[]
            {
                TestEvaluateAction.FromKey,
                TestEvaluateAction.ToKey,
                TestEvaluateAction.BlockIndexKey,
            });

            Assert.Equal(states[TestEvaluateAction.FromKey], fromAddress.ToHex());
            Assert.Equal(states[TestEvaluateAction.ToKey], toAddress.ToHex());
            Assert.Equal(states[TestEvaluateAction.BlockIndexKey], blockIndex);
        }
Exemple #2
0
        public void EvaluateActions()
        {
            PrivateKey fromPrivateKey = new PrivateKey();
            Address    fromAddress    = fromPrivateKey.PublicKey.ToAddress();
            long       blockIndex     = 0;

            TestEvaluateAction action = new TestEvaluateAction();
            var tx1 = Transaction <TestEvaluateAction> .Create(
                0,
                fromPrivateKey,
                new[] { action }
                );

            var chain = new BlockChain <TestEvaluateAction>(
                new BlockPolicy <TestEvaluateAction>(),
                _fx.Store
                );

            chain.StageTransactions(
                new HashSet <Transaction <TestEvaluateAction> > {
                tx1
            }
                );
            chain.MineBlock(_fx.Address1);
            var states = chain.GetStates(new[]
            {
                TestEvaluateAction.SignerKey,
                TestEvaluateAction.MinerKey,
                TestEvaluateAction.BlockIndexKey,
            });

            Assert.Equal(
                states[TestEvaluateAction.SignerKey],
                fromAddress.ToHex()
                );
            Assert.Equal(
                states[TestEvaluateAction.MinerKey],
                _fx.Address1.ToHex());
            Assert.Equal(states[TestEvaluateAction.BlockIndexKey], blockIndex);
        }