public SetOutputState ( int index, OutputState value ) : |
||
index | int | |
value | OutputState | |
return |
private void TestTryUpdateUnspentTx(ITestStorageProvider provider) { var unspentTx = new UnspentTx(txHash: UInt256.Zero, blockIndex: 0, txIndex: 0, outputStates: new OutputStates(1, OutputState.Unspent)); var unspentTxUpdated = unspentTx.SetOutputState(0, OutputState.Spent); Assert.AreNotEqual(unspentTx, unspentTxUpdated); using (var storageManager = provider.OpenStorageManager()) using (var handle = storageManager.OpenChainStateCursor()) { var chainStateCursor = handle.Item; // begin transaction chainStateCursor.BeginTransaction(); // verify can't update missing unspent tx Assert.IsFalse(chainStateCursor.TryUpdateUnspentTx(unspentTx)); // add unspent tx Assert.IsTrue(chainStateCursor.TryAddUnspentTx(unspentTx)); // verify unspent tx UnspentTx actualUnspentTx; Assert.IsTrue(chainStateCursor.TryGetUnspentTx(unspentTx.TxHash, out actualUnspentTx)); Assert.AreEqual(unspentTx, actualUnspentTx); // update unspent tx Assert.IsTrue(chainStateCursor.TryUpdateUnspentTx(unspentTxUpdated)); // verify updated unspent tx Assert.IsTrue(chainStateCursor.TryGetUnspentTx(unspentTx.TxHash, out actualUnspentTx)); Assert.AreEqual(unspentTxUpdated, actualUnspentTx); // remove unspent tx Assert.IsTrue(chainStateCursor.TryRemoveUnspentTx(unspentTx.TxHash)); // verify can't update missing unspent tx Assert.IsFalse(chainStateCursor.TryUpdateUnspentTx(unspentTx)); } }