BitSharper.StoredBlock.Equals C# (CSharp) Method

Equals() public method

public Equals ( object other ) : bool
other object
return bool
        public override bool Equals(object other)
        {
            if (!(other is StoredBlock)) return false;
            var o = (StoredBlock) other;
            return o._header.Equals(_header) && o._chainWork.Equals(_chainWork) && o._height == _height;
        }

Usage Example

Example #1
0
        /// <exception cref="BlockStoreException"/>
        /// <exception cref="VerificationException"/>
        private void ConnectBlock(StoredBlock newStoredBlock, StoredBlock storedPrev, IDictionary <Wallet, List <Transaction> > newTransactions)
        {
            if (storedPrev.Equals(_chainHead))
            {
                // This block connects to the best known block, it is a normal continuation of the system.
                ChainHead = newStoredBlock;
                _log.DebugFormat("Chain is now {0} blocks high", _chainHead.Height);
                if (newTransactions != null)
                {
                    SendTransactionsToWallet(newStoredBlock, NewBlockType.BestChain, newTransactions);
                }
            }
            else
            {
                // This block connects to somewhere other than the top of the best known chain. We treat these differently.
                //
                // Note that we send the transactions to the wallet FIRST, even if we're about to re-organize this block
                // to become the new best chain head. This simplifies handling of the re-org in the Wallet class.
                var haveNewBestChain = newStoredBlock.MoreWorkThan(_chainHead);
                if (haveNewBestChain)
                {
                    _log.Info("Block is causing a re-organize");
                }
                else
                {
                    var splitPoint     = FindSplit(newStoredBlock, _chainHead);
                    var splitPointHash = splitPoint != null ? splitPoint.Header.HashAsString : "?";
                    _log.InfoFormat("Block forks the chain at {0}, but it did not cause a reorganize:{1}{2}",
                                    splitPointHash, Environment.NewLine, newStoredBlock);
                }

                // We may not have any transactions if we received only a header. That never happens today but will in
                // future when GetHeaders is used as an optimization.
                if (newTransactions != null)
                {
                    SendTransactionsToWallet(newStoredBlock, NewBlockType.SideChain, newTransactions);
                }

                if (haveNewBestChain)
                {
                    HandleNewBestChain(newStoredBlock);
                }
            }
        }
All Usage Examples Of BitSharper.StoredBlock::Equals