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); }
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); }