Page Menu
Home
Phabricator
Search
Configure Global Search
Log In
Files
F10615229
validationinterface.h
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
3 KB
Subscribers
None
validationinterface.h
View Options
// Copyright (c) 2009-2010 Satoshi Nakamoto
// Copyright (c) 2009-2016 The Bitcoin Core developers
// Distributed under the MIT software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
#ifndef BITCOIN_VALIDATIONINTERFACE_H
#define BITCOIN_VALIDATIONINTERFACE_H
#include
<boost/signals2/signal.hpp>
#include
<boost/shared_ptr.hpp>
class
CBlock
;
class
CBlockIndex
;
struct
CBlockLocator
;
class
CBlockIndex
;
class
CConnman
;
class
CReserveScript
;
class
CTransaction
;
class
CValidationInterface
;
class
CValidationState
;
class
uint256
;
// These functions dispatch to one or all registered wallets
/** Register a wallet to receive updates from core */
void
RegisterValidationInterface
(
CValidationInterface
*
pwalletIn
);
/** Unregister a wallet from core */
void
UnregisterValidationInterface
(
CValidationInterface
*
pwalletIn
);
/** Unregister all wallets from core */
void
UnregisterAllValidationInterfaces
();
class
CValidationInterface
{
protected
:
virtual
void
UpdatedBlockTip
(
const
CBlockIndex
*
pindexNew
,
const
CBlockIndex
*
pindexFork
,
bool
fInitialDownload
)
{}
virtual
void
SyncTransaction
(
const
CTransaction
&
tx
,
const
CBlockIndex
*
pindex
,
int
posInBlock
)
{}
virtual
void
SetBestChain
(
const
CBlockLocator
&
locator
)
{}
virtual
void
UpdatedTransaction
(
const
uint256
&
hash
)
{}
virtual
void
Inventory
(
const
uint256
&
hash
)
{}
virtual
void
ResendWalletTransactions
(
int64_t
nBestBlockTime
,
CConnman
*
connman
)
{}
virtual
void
BlockChecked
(
const
CBlock
&
,
const
CValidationState
&
)
{}
virtual
void
GetScriptForMining
(
boost
::
shared_ptr
<
CReserveScript
>&
)
{};
virtual
void
ResetRequestCount
(
const
uint256
&
hash
)
{};
friend
void
::
RegisterValidationInterface
(
CValidationInterface
*
);
friend
void
::
UnregisterValidationInterface
(
CValidationInterface
*
);
friend
void
::
UnregisterAllValidationInterfaces
();
};
struct
CMainSignals
{
/** Notifies listeners of updated block chain tip */
boost
::
signals2
::
signal
<
void
(
const
CBlockIndex
*
,
const
CBlockIndex
*
,
bool
fInitialDownload
)
>
UpdatedBlockTip
;
/** A posInBlock value for SyncTransaction which indicates the transaction was conflicted, disconnected, or not in a block */
static
const
int
SYNC_TRANSACTION_NOT_IN_BLOCK
=
-1
;
/** Notifies listeners of updated transaction data (transaction, and optionally the block it is found in. */
boost
::
signals2
::
signal
<
void
(
const
CTransaction
&
,
const
CBlockIndex
*
pindex
,
int
posInBlock
)
>
SyncTransaction
;
/** Notifies listeners of an updated transaction without new data (for now: a coinbase potentially becoming visible). */
boost
::
signals2
::
signal
<
void
(
const
uint256
&
)
>
UpdatedTransaction
;
/** Notifies listeners of a new active block chain. */
boost
::
signals2
::
signal
<
void
(
const
CBlockLocator
&
)
>
SetBestChain
;
/** Notifies listeners about an inventory item being seen on the network. */
boost
::
signals2
::
signal
<
void
(
const
uint256
&
)
>
Inventory
;
/** Tells listeners to broadcast their data. */
boost
::
signals2
::
signal
<
void
(
int64_t
nBestBlockTime
,
CConnman
*
connman
)
>
Broadcast
;
/** Notifies listeners of a block validation result */
boost
::
signals2
::
signal
<
void
(
const
CBlock
&
,
const
CValidationState
&
)
>
BlockChecked
;
/** Notifies listeners that a key for mining is required (coinbase) */
boost
::
signals2
::
signal
<
void
(
boost
::
shared_ptr
<
CReserveScript
>&
)
>
ScriptForMining
;
/** Notifies listeners that a block has been successfully mined */
boost
::
signals2
::
signal
<
void
(
const
uint256
&
)
>
BlockFound
;
};
CMainSignals
&
GetMainSignals
();
#endif
// BITCOIN_VALIDATIONINTERFACE_H
File Metadata
Details
Attached
Mime Type
text/x-c++
Expires
Sat, Nov 23, 10:01 (1 d, 17 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
4559216
Default Alt Text
validationinterface.h (3 KB)
Attached To
rSTAGING Bitcoin ABC staging
Event Timeline
Log In to Comment