Summary

Members Descriptions
namespaceBitprim
namespaceBitprim::Logging
namespaceBitprim::Logging::LogProviders
classBitprim::Logging::LoggerExecutionWrapper::CallSiteExtension
classConstants
classBitprim::Logging::LogProviders::Log4NetLogProvider::Log4NetLogger
classBitprim::Logging::LogProviders::LoupeLogProvider::LoupeLogger
classBitprim::Logging::LogProviders::NLogLogProvider::NLogLogger
classBitprim::Logging::LogProvider::NoOpLogger
classBitprim::Logging::LogProviders::SerilogLogProvider::SerilogLogger

namespace Bitprim

Summary

Members Descriptions
enumCurrencyType
enumErrorCode
enumNetworkType
classBitprim::ApiCallResult
classBitprim::Binary Represents a binary filter.
classBitprim::Block Represents a full Bitcoin blockchain block.
classBitprim::BlockReader Allows user to read a specific set of blocks from the blockchain.
classBitprim::Chain Represents the Bitcoin blockchain; meant to offer its different interfaces (query, mining, network)
classBitprim::DisposableApiCallResult
classBitprim::Executor Controls the execution of the Bitprim bitcoin node.
classBitprim::GetBlockDataResult
classBitprim::GetBlockHashTimestampResult
classBitprim::GetBlockHeaderByHashTxSizeResult
classBitprim::GetTxDataResult
classBitprim::Header Represents a full Bitcoin blockchain block.
classBitprim::HeaderReader Helper for reading the header for each block in a specific set of blocks.
classBitprim::HistoryCompact Output points, values, and spends for a payment address.
classBitprim::Input Represents a Transaction input.
classBitprim::MempoolTransaction Represents an unconfirmed transaction.
classBitprim::MerkleBlock Merkle tree representation of a blockchain block.
classBitprim::NativeBuffer RAII wrapper for native memory. Guarantees that even if an exception is thrown, platform_free will be used to release it. Also, it prevents the user from forgetting to call platform_free.
classBitprim::NativeString RAII wrapper for native strings. Guarantees that even if an exception is thrown, platform_free will be used to release the native memory. Also, it prevents the user from forgetting to call platform_free.
classBitprim::NodeSettings
classBitprim::Output Represents one of the outputs of a Transaction.
classBitprim::OutputPoint Transaction hash and index pair representing one of the transaction outputs.
classBitprim::PaymentAddress Represents a Bitcoin wallet address.
classBitprim::Point Represents one of the transaction inputs. It's a transaction hash and index pair.
classBitprim::Script Represents a transaction script.
classBitprim::StealthCompact Stealth payment related data.
classBitprim::TaskHelper
classBitprim::Transaction Represents a Bitcoin transaction.
classBitprim::Validations
structBitprim::GetTxPositionResult

Members

enumCurrencyType

Values Descriptions
None
Bitcoin
BitcoinCash
Litecoin

enumErrorCode

Values Descriptions
Success
Deprecated
Unknown
NotFound
FileSystem
NonStandard
NotImplemented
Oversubscribed
ServiceStopped
OperationFailed
ResolveFailed
NetworkUnreachable
AddressInUse
ListenFailed
AcceptFailed
BadStream
ChannelTimeout
AddressBlocked
ChannelStopped
PeerThrottling
StoreBlockDuplicate
StoreBlockInvalidHeight
StoreBlockMissingParent
DuplicateBlock
OrphanBlock
InvalidPreviousBlock
InsufficientWork
OrphanTransaction
InsufficientFee
DustyTransaction
StaleChain
InvalidProofOfWork
FuturisticTimestamp
CheckpointsFailed
OldVersionBlock
IncorrectProofOfWork
TimestampTooEarly
BlockSizeLimit
EmptyBlock
FirstNotCoinbase
ExtraCoinbases
InternalDuplicate
BlockInternalDoubleSpend
MerkleMismatch
BlockLegacySigopLimit
BlockNonFinal
CoinbaseHeightMismatch
CoinbaseValueLimit
BlockEmbeddedSigopLimit
EmptyTransaction
PreviousOutputNull
SpendOverflow
InvalidCoinbaseScriptSize
CoinbaseTransaction
TransactionInternalDoubleSpend
TransactionSizeLimit
TransactionLegacySigopLimit
TransactionNonFinal
PrematureValidation
UnspentDuplicate
MissingPreviousOutput
DoubleSpend
CoinbaseMaturity
SpendExceedsValue
TransactionEmbeddedSigopLimit
SequenceLocked
InvalidScript
InvalidScriptSize
InvalidPushDataSize
InvalidOperationCount
InvalidStackSize
InvalidStackScope
InvalidScriptEmbed
InvalidSignatureEncoding
invalidSignatureLaxEncoding
IncorrectSignature
StackFalse
OpDisabled
OpReserved
OpPushSize
OpPushData
OpIf
OpNotIf
OpElse
OpEndIf
OpVerify1
OpVerify2
OpReturn
OpToAltStack
OpFromAltStack
OpDrop2
OpDup2
OpDup3
OpOver2
OpRot2
OpSwap2
OpIfDup
OpDrop
OpDup
OpNip
OpOver
OpPick
OpRoll
OpRot
OpSwap
OpTuck
OpSize
OpEqual
OpEqualVerify1
OpEqualVerify2
OpAdd1
OpSub1
OpNegate
OpAbs
OpNot
OpNonZero
OpAdd
OpSub
OpBoolAnd
OpBoolOr
OpNumEqual
OpNumEqualVerify1
OpNumEqualVerify2
OpNumNotEqual
OpLessThan
OpGreaterThan
OpLessThanOrEqual
OpGreaterThanOrEqual
OpMin
OpMax
OpWithin
OpRipemd160
OpSha1
OpSha256
OpHash160
OpHash256
OpCodeSeperator
OpCheckSigVerify1
OpCheckSig
OpCheckMultisigVerify1
OpCheckMultisigVerify2
OpCheckMultisigVerify3
OpCheckMultisigVerify4
OpCheckMultisigVerify5
OpCheckMultisigVerify6
OpCheckMultisigVerify7
OpCheckMultisig
OpCheckLocktimeVerify1
OpCheckLocktimeVerify2
OpCheckLocktimeVerify3
OpCheckLocktimeVerify4
OpCheckLocktimeVerify5
OpCheckLocktimeVerify6
OpCheckSequenceVerify1
OpCheckSequenceVerify2
OpCheckSequenceVerify3
OpCheckSequenceVerify4
OpCheckSequenceVerify5
OpCheckSequenceVerify6
OpCheckSequenceVerify7

enumNetworkType

Values Descriptions
None
Mainnet
Testnet
Regtest

class Bitprim::ApiCallResult

Summary

Members Descriptions
{property} ErrorCodeErrorCode
{property} TResultDataResult

Members

{property} ErrorCodeErrorCode

{property} TResultDataResult

class Bitprim::Binary

class Bitprim::Binary
  : public IDisposable

Represents a binary filter.

Summary

Members Descriptions
{property} stringEncoded Filter representation as binary string.
{property} IntPtrNativeInstance
public inlineBinary() Create an empty binary object.
public inlineBinary(string hexString) Creates a binary filter from a binary string.
public inlineBinary(UInt64 bitsSize,byte [] blocks,UInt64 n) Creates a binary filter from an int array.

Members

{property} stringEncoded

Filter representation as binary string.

{property} IntPtrNativeInstance

public inlineBinary()

Create an empty binary object.

public inlineBinary(string hexString)

Creates a binary filter from a binary string.

Parameters

  • hexString Binary string. Example: '10111010101011011111000000001101'

public inlineBinary(UInt64 bitsSize,byte [] blocks,UInt64 n)

Creates a binary filter from an int array.

Parameters

  • bitsSize Elements size

  • blocks Filter representation. Example: '[186,173,240,13]'.

  • n Array length in amount of elements.

class Bitprim::Block

class Bitprim::Block
  : public IDisposable

Represents a full Bitcoin blockchain block.

Summary

Members Descriptions
{property} boolIsDistinctTransactionSet Returns true iif all transactions in the block have a unique hash (i.e. no duplicates)
{property} boolIsExtraCoinbase Returns true iif there is more than one coinbase transaction in the block.
{property} boolIsInternalDoubleSpend Returns true iif there is at least one double-spent transaction in this block
{property} boolIsValid Returns true iif the block is valid
{property} boolIsValidMerkleRoot Returns true iif the generated Merkle root equals the header's Merkle root.
{property} byte []Hash The block's hash as a 32 byte array.
{property} byte []MerkleRoot The block's Merkle root, as a 32 byte array.
{property}Header`[Header`](#class_bitprim_1_1_block_1a8e8c733200d3defbd8f71609f54a928d) The block's header
{property} stringProof
{property} UInt64Fees Miner fees included in the block's coinbase transaction.
{property} UInt64Claim Sum of coinbase outputs.
{property} UInt64SignatureOperationsCount Amount of signature operations in the block.
{property} UInt64TransactionCount The total amount of transactions that the block contains.
{property} IntPtrNativeInstance
public inline boolIsFinal(UInt64 height) Returns true iif every transaction in the block is final or not.
public inline boolIsValidCoinbaseClaim(UInt64 height) Given a block height, return true iif its coinbase claim is not higher than the deserved reward.
public inline boolIsValidCoinbaseScript(UInt64 height) Returns true iif the block's coinbase script is valid.
public inline byte []ToData(bool wire) Raw block data.
public inlineTransaction`[GetNthTransaction](#class_bitprim_1_1_block_1a4b82ec51f06d880ab179a22e6d27e515)(UInt64 n)` Given a position in the block, returns the corresponding transaction.
public inline UInt64GetBlockReward(UInt64 height) Reward = Subsidy + Fees, for the block at the given height.
public inline UInt64GetSerializedSize(UInt32 version) Block size in bytes.
public inline UInt64GetSignatureOperationsCount(bool bip16Active) Amount of signature operations in the block.
public inline UInt64GetTotalInputs(bool withCoinbase) The sum of all inputs of all transactions in the block.

Members

{property} boolIsDistinctTransactionSet

Returns true iif all transactions in the block have a unique hash (i.e. no duplicates)

{property} boolIsExtraCoinbase

Returns true iif there is more than one coinbase transaction in the block.

{property} boolIsInternalDoubleSpend

Returns true iif there is at least one double-spent transaction in this block

{property} boolIsValid

Returns true iif the block is valid

{property} boolIsValidMerkleRoot

Returns true iif the generated Merkle root equals the header's Merkle root.

{property} byte []Hash

The block's hash as a 32 byte array.

{property} byte []MerkleRoot

The block's Merkle root, as a 32 byte array.

{property}Header`[Header`](#class_bitprim_1_1_block_1a8e8c733200d3defbd8f71609f54a928d)

The block's header

{property} stringProof

{property} UInt64Fees

Miner fees included in the block's coinbase transaction.

{property} UInt64Claim

Sum of coinbase outputs.

{property} UInt64SignatureOperationsCount

Amount of signature operations in the block.

{property} UInt64TransactionCount

The total amount of transactions that the block contains.

{property} IntPtrNativeInstance

public inline boolIsFinal(UInt64 height)

Returns true iif every transaction in the block is final or not.

Parameters

  • height

Returns

public inline boolIsValidCoinbaseClaim(UInt64 height)

Given a block height, return true iif its coinbase claim is not higher than the deserved reward.

Parameters

  • height The height which identifies the block to examine

Returns

True iif 1 if coinbase claim is not higher than the deserved reward.

public inline boolIsValidCoinbaseScript(UInt64 height)

Returns true iif the block's coinbase script is valid.

Parameters

  • height The block's height. Identifies it univocally.

Returns

True iif the block's coinbase script is valid.

public inline byte []ToData(bool wire)

Raw block data.

Parameters

  • wire Iif true, include data size at the beginning.

Returns

Byte array with block data.

public inlineTransaction`[GetNthTransaction](#class_bitprim_1_1_block_1a4b82ec51f06d880ab179a22e6d27e515)(UInt64 n)`

Given a position in the block, returns the corresponding transaction.

Parameters

  • n Zero-based index

Returns

Full transaction object

public inline UInt64GetBlockReward(UInt64 height)

Reward = Subsidy + Fees, for the block at the given height.

Parameters

  • height Block height in the chain; identifies it univocally.

Returns

UInt64 representation of the block's reward.

public inline UInt64GetSerializedSize(UInt32 version)

Block size in bytes.

Parameters

  • version Protocol version.

Returns

UInt64 representation of the block size in bytes.

public inline UInt64GetSignatureOperationsCount(bool bip16Active)

Amount of signature operations in the block.

Parameters

  • bip16Active Iif true, count bip16 active operations.

Returns

The amount of signature operations in this block

public inline UInt64GetTotalInputs(bool withCoinbase)

The sum of all inputs of all transactions in the block.

Parameters

  • withCoinbase Iif true, consider coinbase transactions.

Returns

UInt64 representation of the sum

class Bitprim::BlockReader

class Bitprim::BlockReader
  : public IDisposable

Allows user to read a specific set of blocks from the blockchain.

Summary

Members Descriptions
{property} boolIsValid Return true iif all blocks in the specified set are valid
{property} byte []StopHash Get or set on which block to stop reading.
{property} HashListStartHashes Get or set the hashes that have to be read in order to start reading.
public inlineBlockReader()
public inlineBlockReader(HashList start,byte [] stop)
public inline UInt64GetSerializedSize(UInt32 version) The sum of the sizes of the read blocks.
public inline voidReset() Go back to the beginning of the block set.

Members

{property} boolIsValid

Return true iif all blocks in the specified set are valid

{property} byte []StopHash

Get or set on which block to stop reading.

{property} HashListStartHashes

Get or set the hashes that have to be read in order to start reading.

public inlineBlockReader()

public inlineBlockReader(HashList start,byte [] stop)

public inline UInt64GetSerializedSize(UInt32 version)

The sum of the sizes of the read blocks.

Parameters

  • version Protocol version to consider when calculating block size.

Returns

UInt64 representation of the sum

public inline voidReset()

Go back to the beginning of the block set.

class Bitprim::Chain

Represents the Bitcoin blockchain; meant to offer its different interfaces (query, mining, network)

Summary

Members Descriptions
{property} IntPtrNativeInstance
{property} boolIsStale Determine if the node is synchronized (i.e. has the latest copy of the blockchain/is at top height)
public inline async Task<ApiCallResult< UInt64 > >FetchBlockHeightAsync(byte [] blockHash) Given a block hash, it queries the chain asynchronously for the block's height. Return right away and uses a callback to return the result.
public inline async Task<ApiCallResult< UInt64 > >FetchLastHeightAsync() Gets the height of the highest block in the local copy of the blockchain, asynchronously.
public inline async Task<`DisposableApiCallResult< GetBlockDataResult< Block`> > >FetchBlockByHashAsync(byte [] blockHash) Given a block hash, retrieve the full block it identifies, asynchronously.
public inline async Task<`DisposableApiCallResult< GetBlockDataResult< Block`> > >FetchBlockByHeightAsync(UInt64 height) Given a block height, retrieve the full block it identifies, asynchronously.
public inline async Task<`DisposableApiCallResult< GetBlockHeaderByHashTxSizeResult`> >FetchBlockHeaderByHashTxSizesAsync(byte [] blockHash) Given a block hash, retrieve block header, tx hashes and serialized block size, asynchronously.
public inline async Task<`ApiCallResult< GetBlockHashTimestampResult`> >FetchBlockByHeightHashTimestampAsync(UInt64 height) Given a block height, retrieve only block hash and timestamp, asynchronously.
public inline async Task<`DisposableApiCallResult< GetBlockDataResult< Header`> > >FetchBlockHeaderByHashAsync(byte [] blockHash) Given a block hash, get the header from the block it identifies, asynchronously.
public inline async Task<`DisposableApiCallResult< GetBlockDataResult< Header`> > >FetchBlockHeaderByHeightAsync(UInt64 height) Given a block height, get the header from the block it identifies, asynchronously.
public inline async Task<`DisposableApiCallResult< GetBlockDataResult< MerkleBlock`> > >FetchMerkleBlockByHashAsync(byte [] blockHash) Given a block hash, get the merkle block from the block it identifies, asynchronously.
public inline async Task<`DisposableApiCallResult< GetBlockDataResult< MerkleBlock`> > >FetchMerkleBlockByHeightAsync(UInt64 height) Given a block height, get the merkle block from the block it identifies, asynchronously.
public inline async Task<`DisposableApiCallResult< GetBlockDataResult`< CompactBlock > > >FetchCompactBlockByHash(byte [] blockHash) Given a block hash, get the compact block from the block it identifies, asynchronously.
public inline async Task<`DisposableApiCallResult< GetBlockDataResult`< CompactBlock > > >FetchCompactBlockByHeightAsync(UInt64 height) Given a block height, get the compact block from the block it identifies, asynchronously.
public inline async Task<`DisposableApiCallResult< GetTxDataResult`> >FetchTransactionAsync(byte [] txHash,bool requireConfirmed) Get a transaction by its hash, asynchronously.
public inline async Task<`ApiCallResult< GetTxPositionResult`> >FetchTransactionPositionAsync(byte [] txHash,bool requireConfirmed) Given a transaction hash, it fetches the height and position inside the block, asynchronously.
public inline async Task<`ApiCallResult< Point`> >FetchSpendAsync(OutputPointoutputPoint) Fetch the transaction input which spends the indicated output, asynchronously.
public inline async Task<DisposableApiCallResult< HistoryCompactList > >FetchHistoryAsync(PaymentAddressaddress,UInt64 limit,UInt64 fromHeight) Get a list of output points, values, and spends for a given payment address (asynchronously)
public inline async Task<DisposableApiCallResult< HashList > >FetchConfirmedTransactionsAsync(PaymentAddressaddress,UInt64 limit,UInt64 fromHeight) Get a list of tx ids for a given payment address (asynchronously). Duplicates are already filtered out.
public inline async Task<DisposableApiCallResult< StealthCompactList > >FetchStealthAsync(Binaryfilter,UInt64 fromHeight) Get metadata on potential payment transactions by stealth filter. Given a filter and a height in the chain, it queries the chain for transactions matching the given filter.
public inline async Task<`DisposableApiCallResult< HeaderReader`> >FetchBlockLocatorAsync(BlockIndexList indexes) Given a list of indexes, fetch a header reader for them, asynchronously
public inline async Task< ErrorCode >OrganizeBlockAsync(Blockblock) Given a block, organize it (async).
public inline async Task< ErrorCode >OrganizeTransactionAsync(Transactiontransaction) Given a transaction, organize it (async).
public inline async Task<ApiCallResult< string > >ValidateTransactionAsync(Transactiontransaction) Determine if a transaction is valid for submission to the blockchain.
public inline MempoolTransactionListGetMempoolTransactions(PaymentAddressaddress,bool useTestnetRules)

Members

{property} IntPtrNativeInstance

{property} boolIsStale

Determine if the node is synchronized (i.e. has the latest copy of the blockchain/is at top height)

public inline async Task<ApiCallResult< UInt64 > >FetchBlockHeightAsync(byte [] blockHash)

Given a block hash, it queries the chain asynchronously for the block's height. Return right away and uses a callback to return the result.

Parameters

  • blockHash 32-byte array representation of the block hash. Identifies it univocally.

public inline async Task<ApiCallResult< UInt64 > >FetchLastHeightAsync()

Gets the height of the highest block in the local copy of the blockchain, asynchronously.

public inline async Task<`DisposableApiCallResult< GetBlockDataResult< Block`> > >FetchBlockByHashAsync(byte [] blockHash)

Given a block hash, retrieve the full block it identifies, asynchronously.

Parameters

  • blockHash 32 bytes of the block hash

public inline async Task<`DisposableApiCallResult< GetBlockDataResult< Block`> > >FetchBlockByHeightAsync(UInt64 height)

Given a block height, retrieve the full block it identifies, asynchronously.

Parameters

public inline async Task<`DisposableApiCallResult< GetBlockHeaderByHashTxSizeResult`> >FetchBlockHeaderByHashTxSizesAsync(byte [] blockHash)

Given a block hash, retrieve block header, tx hashes and serialized block size, asynchronously.

Parameters

  • blockHash 32 bytes of the block hash

public inline async Task<`ApiCallResult< GetBlockHashTimestampResult`> >FetchBlockByHeightHashTimestampAsync(UInt64 height)

Given a block height, retrieve only block hash and timestamp, asynchronously.

Parameters

public inline async Task<`DisposableApiCallResult< GetBlockDataResult< Header`> > >FetchBlockHeaderByHashAsync(byte [] blockHash)

Given a block hash, get the header from the block it identifies, asynchronously.

Parameters

  • blockHash 32 bytes of the block hash

public inline async Task<`DisposableApiCallResult< GetBlockDataResult< Header`> > >FetchBlockHeaderByHeightAsync(UInt64 height)

Given a block height, get the header from the block it identifies, asynchronously.

Parameters

public inline async Task<`DisposableApiCallResult< GetBlockDataResult< MerkleBlock`> > >FetchMerkleBlockByHashAsync(byte [] blockHash)

Given a block hash, get the merkle block from the block it identifies, asynchronously.

Parameters

  • blockHash 32 bytes of the block hash

public inline async Task<`DisposableApiCallResult< GetBlockDataResult< MerkleBlock`> > >FetchMerkleBlockByHeightAsync(UInt64 height)

Given a block height, get the merkle block from the block it identifies, asynchronously.

Parameters

  • height Desired block height

public inline async Task<`DisposableApiCallResult< GetBlockDataResult`< CompactBlock > > >FetchCompactBlockByHash(byte [] blockHash)

Given a block hash, get the compact block from the block it identifies, asynchronously.

Parameters

  • blockHash 32 bytes of the block hash

public inline async Task<`DisposableApiCallResult< GetBlockDataResult`< CompactBlock > > >FetchCompactBlockByHeightAsync(UInt64 height)

Given a block height, get the compact block from the block it identifies, asynchronously.

Parameters

  • height Desired block height

public inline async Task<`DisposableApiCallResult< GetTxDataResult`> >FetchTransactionAsync(byte [] txHash,bool requireConfirmed)

Get a transaction by its hash, asynchronously.

Parameters

  • txHash 32 bytes of transaction hash

  • requireConfirmed True if the transaction must belong to a block

public inline async Task<`ApiCallResult< GetTxPositionResult`> >FetchTransactionPositionAsync(byte [] txHash,bool requireConfirmed)

Given a transaction hash, it fetches the height and position inside the block, asynchronously.

Parameters

  • txHash 32 bytes of transaction hash

  • requireConfirmed True iif the transaction must belong to a block

public inline async Task<`ApiCallResult< Point`> >FetchSpendAsync(OutputPointoutputPoint)

Fetch the transaction input which spends the indicated output, asynchronously.

Parameters

  • outputPoint Tx hash and index pair where the output was spent.

public inline async Task<DisposableApiCallResult< HistoryCompactList > >FetchHistoryAsync(PaymentAddressaddress,UInt64 limit,UInt64 fromHeight)

Get a list of output points, values, and spends for a given payment address (asynchronously)

Parameters

  • address Bitcoin payment address to search

  • limit Maximum amount of results to fetch

  • fromHeight Starting point to search for transactions

public inline async Task<DisposableApiCallResult< HashList > >FetchConfirmedTransactionsAsync(PaymentAddressaddress,UInt64 limit,UInt64 fromHeight)

Get a list of tx ids for a given payment address (asynchronously). Duplicates are already filtered out.

Parameters

  • address Bitcoin payment address to search

  • limit Maximum amount of results to fetch

  • fromHeight Starting point to search for transactions

public inline async Task<DisposableApiCallResult< StealthCompactList > >FetchStealthAsync(Binaryfilter,UInt64 fromHeight)

Get metadata on potential payment transactions by stealth filter. Given a filter and a height in the chain, it queries the chain for transactions matching the given filter.

Parameters

  • filter Must be at least 8 bits in length. example "10101010"

  • fromHeight Starting height in the chain to search for transactions

public inline async Task<`DisposableApiCallResult< HeaderReader`> >FetchBlockLocatorAsync(BlockIndexList indexes)

Given a list of indexes, fetch a header reader for them, asynchronously

Parameters

public inline async Task< ErrorCode >OrganizeBlockAsync(Blockblock)

Given a block, organize it (async).

Parameters

  • block The block to organize

public inline async Task< ErrorCode >OrganizeTransactionAsync(Transactiontransaction)

Given a transaction, organize it (async).

Parameters

  • transaction The transaction to organize.

public inline async Task<ApiCallResult< string > >ValidateTransactionAsync(Transactiontransaction)

Determine if a transaction is valid for submission to the blockchain.

Parameters

public inline MempoolTransactionListGetMempoolTransactions(PaymentAddressaddress,bool useTestnetRules)

class Bitprim::DisposableApiCallResult

class Bitprim::DisposableApiCallResult
  : public IDisposable

Summary

Members Descriptions
{property} ErrorCodeErrorCode
{property} TResultDataResult

Members

{property} ErrorCodeErrorCode

{property} TResultDataResult

class Bitprim::Executor

class Bitprim::Executor
  : public IDisposable

Controls the execution of the Bitprim bitcoin node.

Summary

Members Descriptions
{property} boolUseTestnetRules Returns true iif the current network is a testnet.
{property}Chain`[Chain`](#class_bitprim_1_1_executor_1ac610ccf2aeb37d042c6de111dc4af3d8) The node's query interface. Will be null until node starts running (i.e. Run or RunWait succeeded)
{property} NetworkTypeNetworkType The node's network. Won't be valid until node starts running (i.e. Run or RunWait succeeded)
{property} boolIsStopped
{property} boolIsLoadConfigValid
public delegate boolBlockHandler(ErrorCode e,UInt64 u,BlockList incoming,BlockList outgoing)
public delegate boolTransactionHandler(ErrorCode e,TransactionnewTx)
public inlineExecutor(string configFile) Create executor. Does not init database or start execution yet.
public inlineExecutor(string configFile,IntPtr stdOut,IntPtr stdErr) //TODO See BIT-20 Create executor. Does not init database or start execution yet.
public inline boolInitChain() Initialize the local dabatase structure.
public inline async Task< int >RunAsync() Starts running the node; blockchain starts synchronizing (downloading). The call returns right away, and the handler is invoked when the node actually starts running.
public inline async Task< int >InitAndRunAsync() Initialize if necessary and starts running the node; blockchain starts synchronizing (downloading). The call returns right away, and the handler is invoked when the node actually starts running.
public inline voidStop() Stops the node; that includes all activies, such as synchronization and networking.
public inline voidSubscribeToBlockChain(BlockHandler handler) Be notified (called back) when the local copy of the blockchain is reorganized.
public inline voidSubscribeToTransaction(TransactionHandler handler) Be notified (called back) when the local copy of the blockchain is updated at the transaction level.

Members

{property} boolUseTestnetRules

Returns true iif the current network is a testnet.

{property}Chain`[Chain`](#class_bitprim_1_1_executor_1ac610ccf2aeb37d042c6de111dc4af3d8)

The node's query interface. Will be null until node starts running (i.e. Run or RunWait succeeded)

{property} NetworkTypeNetworkType

The node's network. Won't be valid until node starts running (i.e. Run or RunWait succeeded)

{property} boolIsStopped

{property} boolIsLoadConfigValid

public delegate boolBlockHandler(ErrorCode e,UInt64 u,BlockList incoming,BlockList outgoing)

public delegate boolTransactionHandler(ErrorCode e,TransactionnewTx)

public inlineExecutor(string configFile)

Create executor. Does not init database or start execution yet.

Parameters

  • configFile Path to configuration file.

public inlineExecutor(string configFile,IntPtr stdOut,IntPtr stdErr)

//TODO See BIT-20 Create executor. Does not init database or start execution yet.

Parameters

  • configFile Path to configuration file.

  • stdOut File descriptor for redirecting standard output.

  • stdErr File descriptor for redirecting standard error output.

Create executor. Does not init database or start execution yet.

Parameters

  • configFile Path to configuration file.

  • stdOut Handle for redirecting standard output.

  • stdErr Handle for redirecting standard output.

public inline boolInitChain()

Initialize the local dabatase structure.

Returns

True iif local chain init succeeded

public inline async Task< int >RunAsync()

Starts running the node; blockchain starts synchronizing (downloading). The call returns right away, and the handler is invoked when the node actually starts running.

Returns

Error code (0 = success)

public inline async Task< int >InitAndRunAsync()

Initialize if necessary and starts running the node; blockchain starts synchronizing (downloading). The call returns right away, and the handler is invoked when the node actually starts running.

Returns

Error code (0 = success)

public inline voidStop()

Stops the node; that includes all activies, such as synchronization and networking.

public inline voidSubscribeToBlockChain(BlockHandler handler)

Be notified (called back) when the local copy of the blockchain is reorganized.

Parameters

  • handler Callback which will be called when blocks are added or removed. The callback returns 3 parameters:

  • Height (UInt64): The chain height at which reorganization takes place

  • Incoming (Blocklist): Incoming blocks (added to the blockchain).

  • Outgoing (Blocklist): Outgoing blocks (removed from the blockchain).

public inline voidSubscribeToTransaction(TransactionHandler handler)

Be notified (called back) when the local copy of the blockchain is updated at the transaction level.

Parameters

  • handler Callback which will be called when a transaction is added.

class Bitprim::GetBlockDataResult

class Bitprim::GetBlockDataResult
  : public IDisposable

Summary

Members Descriptions
{property} TBlockDataBlockData
public UInt64BlockHeight

Members

{property} TBlockDataBlockData

public UInt64BlockHeight

class Bitprim::GetBlockHashTimestampResult

Summary

Members Descriptions
{property} byte []BlockHash
{property} DateTimeBlockTimestamp

Members

{property} byte []BlockHash

{property} DateTimeBlockTimestamp

class Bitprim::GetBlockHeaderByHashTxSizeResult

class Bitprim::GetBlockHeaderByHashTxSizeResult
  : public IDisposable

Summary

Members Descriptions
{property}`GetBlockDataResult< Header`>Block
{property} HashListTransactionHashes
{property} UInt64SerializedBlockSize

Members

{property}`GetBlockDataResult< Header`>Block

{property} HashListTransactionHashes

{property} UInt64SerializedBlockSize

class Bitprim::GetTxDataResult

class Bitprim::GetTxDataResult
  : public IDisposable

Summary

Members Descriptions
{property}Transaction`[Tx`](#class_bitprim_1_1_get_tx_data_result_1a4f036251320b983dd69f1248d551f0ad)
{property}GetTxPositionResult`[TxPosition`](#class_bitprim_1_1_get_tx_data_result_1a949a8d7dd542949d78026f7c2aa4ec2d)

Members

{property}Transaction`[Tx`](#class_bitprim_1_1_get_tx_data_result_1a4f036251320b983dd69f1248d551f0ad)

{property}GetTxPositionResult`[TxPosition`](#class_bitprim_1_1_get_tx_data_result_1a949a8d7dd542949d78026f7c2aa4ec2d)

class Bitprim::Header

class Bitprim::Header
  : public IDisposable

Represents a full Bitcoin blockchain block.

Summary

Members Descriptions
{property} boolIsValid Returns true if and only if the header conforms to the Bitcoin protocol format.
{property} byte []Hash Block hash in 32 byte array format.
{property} byte []Merkle Merkle root in 32 byte array format.
{property} byte []PreviousBlockHash Hash belonging to the immediately previous block in the blockchain, as a 32 byte array. This is all zeros for the first block, a.k.a. Genesis.
{property} stringProofString Hexadecimal string representation of the block's proof (which is a 256-bit number).
{property} UInt32Bits Difficulty threshold.
{property} UInt32Nonce The nonce that allowed this block to be added to the blockchain.
{property} UInt32Timestamp Block timestamp in UNIX Epoch format (seconds since January 1st 1970) Assume UTC 0.
{property} UInt32Version Header protocol version.

Members

{property} boolIsValid

Returns true if and only if the header conforms to the Bitcoin protocol format.

{property} byte []Hash

Block hash in 32 byte array format.

{property} byte []Merkle

Merkle root in 32 byte array format.

{property} byte []PreviousBlockHash

Hash belonging to the immediately previous block in the blockchain, as a 32 byte array. This is all zeros for the first block, a.k.a. Genesis.

{property} stringProofString

Hexadecimal string representation of the block's proof (which is a 256-bit number).

{property} UInt32Bits

Difficulty threshold.

{property} UInt32Nonce

The nonce that allowed this block to be added to the blockchain.

{property} UInt32Timestamp

Block timestamp in UNIX Epoch format (seconds since January 1st 1970) Assume UTC 0.

{property} UInt32Version

Header protocol version.

class Bitprim::HeaderReader

class Bitprim::HeaderReader
  : public IDisposable

Helper for reading the header for each block in a specific set of blocks.

Summary

Members Descriptions
{property} boolIsValid The block set is valid iif all its blocks are valid.
{property} byte []StopHash Stop at this block (include it in the set).
{property} HashListStartHashes Define when to start reading: Once these blocks are synced (include the newest one).
public inlineHeaderReader() Create an empty reader.
public inlineHeaderReader(HashList start,byte [] stop) Create a reader with predefined start hashes and stop hash.
public inline UInt64GetSerializedSize(UInt32 version) The sum of the header sizes for this set.
public inline voidReset() Go back to first block in the set.

Members

{property} boolIsValid

The block set is valid iif all its blocks are valid.

{property} byte []StopHash

Stop at this block (include it in the set).

{property} HashListStartHashes

Define when to start reading: Once these blocks are synced (include the newest one).

public inlineHeaderReader()

Create an empty reader.

public inlineHeaderReader(HashList start,byte [] stop)

Create a reader with predefined start hashes and stop hash.

Parameters

  • start When all of these blocks are synced, start reading.

  • stop Stop at this block.

public inline UInt64GetSerializedSize(UInt32 version)

The sum of the header sizes for this set.

Parameters

  • version Protocol version to consider when calculating header size.

Returns

Sum of header sizes.

public inline voidReset()

Go back to first block in the set.

class Bitprim::HistoryCompact

class Bitprim::HistoryCompact
  : public IDisposable

Output points, values, and spends for a payment address.

Summary

Members Descriptions
{property}Point`[Point`](#class_bitprim_1_1_history_compact_1a5f18863c354bf692f1fe325b311654b0) The point that identifies the History instance.
{property} UInt32Height Height of the block containing the Point.
{property} UInt64ValueOrChecksum Varies depending on point_kind.

Members

{property}Point`[Point`](#class_bitprim_1_1_history_compact_1a5f18863c354bf692f1fe325b311654b0)

The point that identifies the History instance.

{property} UInt32Height

Height of the block containing the Point.

{property} UInt64ValueOrChecksum

Varies depending on point_kind.

class Bitprim::Input

class Bitprim::Input
  : public IDisposable

Represents a Transaction input.

Summary

Members Descriptions
{property} boolIsFinal Returns 1 iif sequence is equal to max_sequence.
{property} boolIsValid Returns false if and only if previous outputs or input script are invalid.
{property}OutputPoint`[PreviousOutput`](#class_bitprim_1_1_input_1a047409c5f428227e0aa235a2a8b85687) Returns a reference to the previous output, as an OutputPoint: a transaction hash and index pair.
{property}Script`[Script`](#class_bitprim_1_1_input_1a33808f7bd1eac8590448bebe1d7ddbde) The input's script.
{property} UInt32Sequence Zero-based index for the input in the transaction's input set.
{property} IntPtrNativeInstance
public inlineInput() Create an empty input.
public inlineInput(OutputpreviousOutput,Scriptscript,UInt32 sequence) Create an input from a previous output, a script and a sequence number.
public inline UInt64GetSerializedSize(bool wire) Input size in bytes.
public inline UInt64GetSignatureOperationsCount(bool bip16Active) Total amount of sigops (signature operations) in the input script.

Members

{property} boolIsFinal

Returns 1 iif sequence is equal to max_sequence.

{property} boolIsValid

Returns false if and only if previous outputs or input script are invalid.

{property}OutputPoint`[PreviousOutput`](#class_bitprim_1_1_input_1a047409c5f428227e0aa235a2a8b85687)

Returns a reference to the previous output, as an OutputPoint: a transaction hash and index pair.

{property}Script`[Script`](#class_bitprim_1_1_input_1a33808f7bd1eac8590448bebe1d7ddbde)

The input's script.

{property} UInt32Sequence

Zero-based index for the input in the transaction's input set.

{property} IntPtrNativeInstance

public inlineInput()

Create an empty input.

public inlineInput(OutputpreviousOutput,Scriptscript,UInt32 sequence)

Create an input from a previous output, a script and a sequence number.

Parameters

  • previousOutput The output to spend.

  • script Input script.

  • sequence Zero-based, indexes this input in the input set.

public inline UInt64GetSerializedSize(bool wire)

Input size in bytes.

Parameters

  • wire Iif true, consider 4 extra bytes from wire field.

Returns

Size in bytes.

public inline UInt64GetSignatureOperationsCount(bool bip16Active)

Total amount of sigops (signature operations) in the input script.

Parameters

  • bip16Active Iif true, count BIP 16 active sig ops

Returns

Sigops count.

class Bitprim::MempoolTransaction

Represents an unconfirmed transaction.

Summary

Members Descriptions
{property} stringAddress Transaction output address
{property} stringHash Transaction hash (unique identifier)
{property} stringPreviousOutputHash Previous output transaction hash
{property} stringPreviousOutputIndex Previous output transaction index
{property} stringSatoshis Sum of output values in Satoshis
{property} UInt64Index Transaction index
{property} UInt64Timestamp Transaction timestamp
{property} IntPtrNativeInstance

Members

{property} stringAddress

Transaction output address

{property} stringHash

Transaction hash (unique identifier)

{property} stringPreviousOutputHash

Previous output transaction hash

{property} stringPreviousOutputIndex

Previous output transaction index

{property} stringSatoshis

Sum of output values in Satoshis

{property} UInt64Index

Transaction index

{property} UInt64Timestamp

Transaction timestamp

{property} IntPtrNativeInstance

class Bitprim::MerkleBlock

class Bitprim::MerkleBlock
  : public IDisposable

Merkle tree representation of a blockchain block.

Summary

Members Descriptions
{property} boolIsValid Returns true if and only if it the block contains txs hashes, and the header is valid.
{property}Header`[Header`](#class_bitprim_1_1_merkle_block_1a56bf0f704c9ba7e474922b1a2fc18f0b) The block's header.
{property} UInt64HashCount Transaction hashes list element count.
{property} UInt64TotalTransactionCount Amount of transactions inside the block.
public inline byte []GetNthHash(int n) Get the Nth transaction hash from the block.
public inline UInt64GetSerializedSize(UInt32 version) Block size in bytes (as a Merkle block, not as a full block).
public inline voidReset() Delete all the data inside the block.

Members

{property} boolIsValid

Returns true if and only if it the block contains txs hashes, and the header is valid.

{property}Header`[Header`](#class_bitprim_1_1_merkle_block_1a56bf0f704c9ba7e474922b1a2fc18f0b)

The block's header.

{property} UInt64HashCount

Transaction hashes list element count.

{property} UInt64TotalTransactionCount

Amount of transactions inside the block.

public inline byte []GetNthHash(int n)

Get the Nth transaction hash from the block.

Parameters

  • n Zerp-based index.

Returns

Transaction hash in 32 byte array format.

public inline UInt64GetSerializedSize(UInt32 version)

Block size in bytes (as a Merkle block, not as a full block).

Parameters

  • version Protocol version to consider when calculating size.

Returns

Size in bytes.

public inline voidReset()

Delete all the data inside the block.

class Bitprim::NativeBuffer

class Bitprim::NativeBuffer
  : public IDisposable

RAII wrapper for native memory. Guarantees that even if an exception is thrown, platform_free will be used to release it. Also, it prevents the user from forgetting to call platform_free.

Summary

Members Descriptions
{property} IntPtrNativePtr
public inlineNativeBuffer(IntPtr nativePtr)
public inline byte []CopyToManagedArray(int arraySize)

Members

{property} IntPtrNativePtr

public inlineNativeBuffer(IntPtr nativePtr)

public inline byte []CopyToManagedArray(int arraySize)

class Bitprim::NativeString

class Bitprim::NativeString
  : public Bitprim.NativeBuffer

RAII wrapper for native strings. Guarantees that even if an exception is thrown, platform_free will be used to release the native memory. Also, it prevents the user from forgetting to call platform_free.

Summary

Members Descriptions
public inlineNativeString(IntPtr nativePtr)
public override stringToString()

Members

public inlineNativeString(IntPtr nativePtr)

public override stringToString()

class Bitprim::NodeSettings

Summary

Members Descriptions
{property} CurrencyTypeCurrencyType

Members

{property} CurrencyTypeCurrencyType

class Bitprim::Output

class Bitprim::Output
  : public IDisposable

Represents one of the outputs of a Transaction.

Summary

Members Descriptions
{property} boolIsValid Returns false if and only if output is not found.
{property}Script`[Script`](#class_bitprim_1_1_output_1a482ee34dee529ef3751f57b376967099) Output script.
{property} UInt64Value Spend, in Satoshis.
{property} UInt64SignatureOperationCount The amount of signature operations in the output script.
{property} IntPtrNativeInstance
public inlineOutput() Create an empty output.
public inlineOutput(UInt64 value,Scriptscript) Create an output from a value and a script.
public inlinePaymentAddress`[PaymentAddress](#class_bitprim_1_1_output_1aad82ee12e358b7c75cedfbd7f868b918)(bool useTestnetRules)`
public inline UInt64GetSerializedSize(bool wire) Output size in bytes.

Members

{property} boolIsValid

Returns false if and only if output is not found.

{property}Script`[Script`](#class_bitprim_1_1_output_1a482ee34dee529ef3751f57b376967099)

Output script.

{property} UInt64Value

Spend, in Satoshis.

{property} UInt64SignatureOperationCount

The amount of signature operations in the output script.

{property} IntPtrNativeInstance

public inlineOutput()

Create an empty output.

public inlineOutput(UInt64 value,Scriptscript)

Create an output from a value and a script.

Parameters

  • value In Satoshis.

  • script Output script.

public inlinePaymentAddress`[PaymentAddress](#class_bitprim_1_1_output_1aad82ee12e358b7c75cedfbd7f868b918)(bool useTestnetRules)`

public inline UInt64GetSerializedSize(bool wire)

Output size in bytes.

Parameters

  • wire If true, size will include size of 'uint32' for storing spender height.

Returns

Size in bytes.

class Bitprim::OutputPoint

class Bitprim::OutputPoint
  : public IDisposable

Transaction hash and index pair representing one of the transaction outputs.

Summary

Members Descriptions
{property} byte []Hash Transaction hash in 32 byte array format.
{property} UInt32Index Transaction index (zero-based).
{property} IntPtrNativeInstance
public inlineOutputPoint() Create an empty output point.
public inlineOutputPoint(byte [] pointHash,UInt32 index) Create an output point from a hash and index pair.

Members

{property} byte []Hash

Transaction hash in 32 byte array format.

{property} UInt32Index

Transaction index (zero-based).

{property} IntPtrNativeInstance

public inlineOutputPoint()

Create an empty output point.

public inlineOutputPoint(byte [] pointHash,UInt32 index)

Create an output point from a hash and index pair.

Parameters

  • pointHash
  • index

class Bitprim::PaymentAddress

class Bitprim::PaymentAddress
  : public IDisposable

Represents a Bitcoin wallet address.

Summary

Members Descriptions
{property} boolIsValid Returns true iif this is a valid Base58 address.
{property} byteVersion Address version.
{property} stringEncoded Human readable representation.
{property} IntPtrNativeInstance
public inlinePaymentAddress(string hexString) Create an address from its hex string representation.

Members

{property} boolIsValid

Returns true iif this is a valid Base58 address.

{property} byteVersion

Address version.

{property} stringEncoded

Human readable representation.

{property} IntPtrNativeInstance

public inlinePaymentAddress(string hexString)

Create an address from its hex string representation.

Parameters

  • hexString

class Bitprim::Point

Represents one of the transaction inputs. It's a transaction hash and index pair.

Summary

Members Descriptions
{property} boolIsValid Returns true if and only if this point is not null.
{property} byte []Hash Transaction hash in 32 byte array format.
{property} UInt32Index Input position in the transaction (zero-based).
{property} UInt64Checksum This is used with OutputPoint identification within a set of history rows of the same address.
{property} IntPtrNativeInstance

Members

{property} boolIsValid

Returns true if and only if this point is not null.

{property} byte []Hash

Transaction hash in 32 byte array format.

{property} UInt32Index

Input position in the transaction (zero-based).

{property} UInt64Checksum

This is used with OutputPoint identification within a set of history rows of the same address.

{property} IntPtrNativeInstance

class Bitprim::Script

class Bitprim::Script
  : public IDisposable

Represents a transaction script.

Summary

Members Descriptions
{property} boolIsValid All script bytes are valid under some circumstance (e.g. coinbase).
{property} boolOperationsAreValid Script validity is independent of individual operation validity. Operations are considered invalid if there is a trailing invalid/default op or if a push op has a size mismatch.
{property} stringType Script type
{property} UInt64SatoshiContentSize Size in bytes.
{property} IntPtrNativeInstance
public inline byte []ToData(bool prefix) Raw script data
public inline stringToString(UInt32 activeForks) Translate operations in the script to a string.
public inline UInt64GetEmbeddedSigOps(ScriptprevOutScript) Count the sigops in the embedded script using BIP16 rules.
public inline UInt64GetSigOps(bool embedded) Amount of signature operations in the script.

Members

{property} boolIsValid

All script bytes are valid under some circumstance (e.g. coinbase).

{property} boolOperationsAreValid

Script validity is independent of individual operation validity. Operations are considered invalid if there is a trailing invalid/default op or if a push op has a size mismatch.

{property} stringType

Script type

{property} UInt64SatoshiContentSize

Size in bytes.

{property} IntPtrNativeInstance

public inline byte []ToData(bool prefix)

Raw script data

Parameters

  • prefix Tells whether to include script size in data

Returns

Byte array with script data

public inline stringToString(UInt32 activeForks)

Translate operations in the script to a string.

Parameters

  • activeForks Tells which rule is active.

Returns

Human readable script.

public inline UInt64GetEmbeddedSigOps(ScriptprevOutScript)

Count the sigops in the embedded script using BIP16 rules.

Parameters

  • prevOutScript Reference to previous output script.

Returns

Embedded sigops count.

public inline UInt64GetSigOps(bool embedded)

Amount of signature operations in the script.

Parameters

  • embedded Iif true, consider this an embedded script.

Returns

Sigops count.

class Bitprim::StealthCompact

class Bitprim::StealthCompact
  : public IDisposable

Stealth payment related data.

Summary

Members Descriptions
{property} byte []EphemeralPublicKeyHash 33 bytes. Includes the sign byte (0x02).
{property} byte []PublicKeyHash Public key hash in 32 bytes array format.
{property} byte []TransactionHash Transaction hash in 32 byte array format.

Members

{property} byte []EphemeralPublicKeyHash

33 bytes. Includes the sign byte (0x02).

{property} byte []PublicKeyHash

Public key hash in 32 bytes array format.

{property} byte []TransactionHash

Transaction hash in 32 byte array format.

class Bitprim::TaskHelper

Summary

Members Descriptions

Members

class Bitprim::Transaction

class Bitprim::Transaction
  : public IDisposable

Represents a Bitcoin transaction.

Summary

Members Descriptions
{property} boolIsCoinbase Returns true if and only if this is a coinbase transaction (i.e. generates new coins).
{property} boolIsLocktimeConflict Returns true if and only if the transaction is locked and every input is final, false otherwise.
{property} boolIsMissingPreviousOutputs Returns true if and only if at least one of the previous outputs is invalid, false otherwise.
{property} boolIsNullNonCoinbase Return true if and only if the transaction is not coinbase and has a null previous output, false otherwise.
{property} boolIsOversizeCoinbase Returns true if the transaction is coinbase and has an invalid script size on its first input.
{property} boolIsOverspent Returns true if transaction is not a coinbase, and the sum of its outputs is higher than the sum of its inputs, false otherwise.
{property} boolIsValid Returns true if and only if this transaction is valid according to the protocol.
{property} byte []Hash Transaction hash in 32 byte array format.
{property} InputListInputs A list with all the transaction inputs.
{property} OutputListOutputs A list with all the transaction outputs.
{property} UInt32Locktime Transaction locktime.
{property} UInt32Version Transaction protocol version.
{property} UInt64Fees Fees to pay to the winning miner.
{property} UInt64SignatureOperations Amount of signature operations in the transaction.
{property} UInt64TotalInputValue Sum of every input value in the transaction.
{property} UInt64TotalOutputValue Sum of every output value in the transaction.
{property} IntPtrNativeInstance
public inlineTransaction() Create an empty tramsaction.
public inlineTransaction(UInt32 version,string hexString) Create a transaction from its binary hex representation.
public inlineTransaction(UInt32 version,UInt32 locktime,InputList inputs,OutputList outputs) Create a transaction from its version, locktime, inputs and outputs (all its data).
public inline byte []GetHashBySigHashType(UInt32 sigHashType) 32 bytes transaction hash + 4 bytes signature hash type
public inline boolIsDoubleSpend(bool includeUnconfirmed) Returns true if at least one of the previous outputs was already spent, false otherwise.
public inline boolIsFinal(UInt64 blockHeight,UInt32 blockTime) Returns true if and only if the transaction is final, false otherwise.
public inline boolIsImmature(UInt64 targetHeight) Returns true if and only if at least one of the inputs is not mature, false otherwise.
public inline byte []ToData(bool wire) Raw transaction data.
public inline UInt64GetSerializedSize(bool wire) Transaction size in bytes.
public inline UInt64GetSignatureOperationsBip16Active(bool bip16Active) Amount of signature operations in the transactions.

Members

{property} boolIsCoinbase

Returns true if and only if this is a coinbase transaction (i.e. generates new coins).

{property} boolIsLocktimeConflict

Returns true if and only if the transaction is locked and every input is final, false otherwise.

{property} boolIsMissingPreviousOutputs

Returns true if and only if at least one of the previous outputs is invalid, false otherwise.

{property} boolIsNullNonCoinbase

Return true if and only if the transaction is not coinbase and has a null previous output, false otherwise.

{property} boolIsOversizeCoinbase

Returns true if the transaction is coinbase and has an invalid script size on its first input.

{property} boolIsOverspent

Returns true if transaction is not a coinbase, and the sum of its outputs is higher than the sum of its inputs, false otherwise.

{property} boolIsValid

Returns true if and only if this transaction is valid according to the protocol.

{property} byte []Hash

Transaction hash in 32 byte array format.

{property} InputListInputs

A list with all the transaction inputs.

{property} OutputListOutputs

A list with all the transaction outputs.

{property} UInt32Locktime

Transaction locktime.

{property} UInt32Version

Transaction protocol version.

{property} UInt64Fees

Fees to pay to the winning miner.

{property} UInt64SignatureOperations

Amount of signature operations in the transaction.

{property} UInt64TotalInputValue

Sum of every input value in the transaction.

{property} UInt64TotalOutputValue

Sum of every output value in the transaction.

{property} IntPtrNativeInstance

public inlineTransaction()

Create an empty tramsaction.

public inlineTransaction(UInt32 version,string hexString)

Create a transaction from its binary hex representation.

Parameters

  • version Transaction protocol version.

  • hexString Raw transaction in hex

public inlineTransaction(UInt32 version,UInt32 locktime,InputList inputs,OutputList outputs)

Create a transaction from its version, locktime, inputs and outputs (all its data).

Parameters

  • version Transaction protocol version.

  • locktime Transaction locktime.

  • inputs A list with all the transaction inputs.

  • outputs A list with all the transaction outputs.

public inline byte []GetHashBySigHashType(UInt32 sigHashType)

32 bytes transaction hash + 4 bytes signature hash type

Parameters

  • sigHashType Sighash type.

Returns

Hash and sighash type.

public inline boolIsDoubleSpend(bool includeUnconfirmed)

Returns true if at least one of the previous outputs was already spent, false otherwise.

Parameters

  • includeUnconfirmed Iif true, consider unconfirmed transactions.

Returns

True if and only if transaction is double spend.

public inline boolIsFinal(UInt64 blockHeight,UInt32 blockTime)

Returns true if and only if the transaction is final, false otherwise.

Parameters

  • blockHeight
  • blockTime

Returns

public inline boolIsImmature(UInt64 targetHeight)

Returns true if and only if at least one of the inputs is not mature, false otherwise.

Parameters

  • targetHeight

Returns

public inline byte []ToData(bool wire)

Raw transaction data.

Parameters

  • wire Iif true, include data size at the beginning.

Returns

Byte array with transaction data.

public inline UInt64GetSerializedSize(bool wire)

Transaction size in bytes.

Parameters

  • wire If and only if true, size will include size of 'uint32' for storing spender output height

Returns

Size in bytes.

public inline UInt64GetSignatureOperationsBip16Active(bool bip16Active)

Amount of signature operations in the transactions.

Parameters

  • bip16Active True if and only if BIP16 is active, false otherwise.

Returns

class Bitprim::Validations

Summary

Members Descriptions

Members

struct Bitprim::GetTxPositionResult

Summary

Members Descriptions
{property} UInt64Index
{property} UInt64BlockHeight

Members

{property} UInt64Index

{property} UInt64BlockHeight

namespace Bitprim::Logging

Summary

Members Descriptions
enumLogLevel The log level.
public delegate boolLogger(LogLevellogLevel,Func< string > messageFunc,Exception exception,params object [] formatParameters)
classBitprim::Logging::LogExtensions
classBitprim::Logging::LoggerExecutionWrapper
classBitprim::Logging::LogProvider Provides a mechanism to create instances of ILog objects.

Members

enumLogLevel

Values Descriptions
Trace
Debug
Info
Warn
Error
Fatal

The log level.

public delegate boolLogger(LogLevellogLevel,Func< string > messageFunc,Exception exception,params object [] formatParameters)

class Bitprim::Logging::LogExtensions

Summary

Members Descriptions

Members

class Bitprim::Logging::LoggerExecutionWrapper

class Bitprim::Logging::LoggerExecutionWrapper
  : public Bitprim.Logging.ILog

Summary

Members Descriptions
public inline boolLog(LogLevellogLevel,Func< string > messageFunc,Exception exception,params object [] formatParameters)

Members

public inline boolLog(LogLevellogLevel,Func< string > messageFunc,Exception exception,params object [] formatParameters)

class Bitprim::Logging::LogProvider

Provides a mechanism to create instances of ILog objects.

Summary

Members Descriptions
{property} boolIsDisabled Gets or sets a value indicating whether this is logging is disabled.
{property} Action<ILogProvider>OnCurrentLogProviderSet Sets an action that is invoked when a consumer of your library has called SetCurrentLogProvider. It is important that hook into this if you are using child libraries (especially ilmerged ones) that are using LibLog (or other logging abstraction) so you adapt and delegate to them. SetCurrentLogProvider

Members

{property} boolIsDisabled

Gets or sets a value indicating whether this is logging is disabled.

true if logging is disabled; otherwise, false.

{property} Action<ILogProvider>OnCurrentLogProviderSet

Sets an action that is invoked when a consumer of your library has called SetCurrentLogProvider. It is important that hook into this if you are using child libraries (especially ilmerged ones) that are using LibLog (or other logging abstraction) so you adapt and delegate to them. SetCurrentLogProvider

namespace Bitprim::Logging::LogProviders

Summary

Members Descriptions
classBitprim::Logging::LogProviders::DisposableAction
classBitprim::Logging::LogProviders::Log4NetLogProvider
classBitprim::Logging::LogProviders::LogMessageFormatter
classBitprim::Logging::LogProviders::LogProviderBase
classBitprim::Logging::LogProviders::LoupeLogProvider
classBitprim::Logging::LogProviders::NLogLogProvider
classBitprim::Logging::LogProviders::SerilogLogProvider
classBitprim::Logging::LogProviders::TraceEventTypeValues
classBitprim::Logging::LogProviders::TypeExtensions

class Bitprim::Logging::LogProviders::DisposableAction

class Bitprim::Logging::LogProviders::DisposableAction
  : public IDisposable

Summary

Members Descriptions
publicDisposableAction(Action onDispose)

Members

publicDisposableAction(Action onDispose)

class Bitprim::Logging::LogProviders::Log4NetLogProvider

class Bitprim::Logging::LogProviders::Log4NetLogProvider
  : public Bitprim.Logging.LogProviders.LogProviderBase

Summary

Members Descriptions
{property} boolProviderIsAvailableOverride
public inlineLog4NetLogProvider()
public override LoggerGetLogger(string name)
protected inline override OpenNdcGetOpenNdcMethod()
protected inline override OpenMdcGetOpenMdcMethod()

Members

{property} boolProviderIsAvailableOverride

public inlineLog4NetLogProvider()

public override LoggerGetLogger(string name)

protected inline override OpenNdcGetOpenNdcMethod()

protected inline override OpenMdcGetOpenMdcMethod()

class Bitprim::Logging::LogProviders::LogMessageFormatter

Summary

Members Descriptions

Members

class Bitprim::Logging::LogProviders::LogProviderBase

class Bitprim::Logging::LogProviders::LogProviderBase
  : public Bitprim.Logging.ILogProvider

Summary

Members Descriptions
public abstract LoggerGetLogger(string name)
public IDisposableOpenNestedContext(string message)
public IDisposableOpenMappedContext(string key,object value,bool destructure)
protected delegate IDisposableOpenNdc(string message)
protected delegate IDisposableOpenMdc(string key,object value,bool destructure)
protected inlineLogProviderBase()
protected virtual OpenNdcGetOpenNdcMethod()
protected virtual OpenMdcGetOpenMdcMethod()

Members

public abstract LoggerGetLogger(string name)

public IDisposableOpenNestedContext(string message)

public IDisposableOpenMappedContext(string key,object value,bool destructure)

protected delegate IDisposableOpenNdc(string message)

protected delegate IDisposableOpenMdc(string key,object value,bool destructure)

protected inlineLogProviderBase()

protected virtual OpenNdcGetOpenNdcMethod()

protected virtual OpenMdcGetOpenMdcMethod()

class Bitprim::Logging::LogProviders::LoupeLogProvider

class Bitprim::Logging::LogProviders::LoupeLogProvider
  : public Bitprim.Logging.LogProviders.LogProviderBase

Summary

Members Descriptions
{property} boolProviderIsAvailableOverride Gets or sets a value indicating whether [provider is available override]. Used in tests.
public inlineLoupeLogProvider()
public override LoggerGetLogger(string name)

Members

{property} boolProviderIsAvailableOverride

Gets or sets a value indicating whether [provider is available override]. Used in tests.

true if [provider is available override]; otherwise, false.

public inlineLoupeLogProvider()

public override LoggerGetLogger(string name)

class Bitprim::Logging::LogProviders::NLogLogProvider

class Bitprim::Logging::LogProviders::NLogLogProvider
  : public Bitprim.Logging.LogProviders.LogProviderBase

Summary

Members Descriptions
{property} boolProviderIsAvailableOverride
public inlineNLogLogProvider()
public override LoggerGetLogger(string name)
protected inline override OpenNdcGetOpenNdcMethod()
protected inline override OpenMdcGetOpenMdcMethod()

Members

{property} boolProviderIsAvailableOverride

public inlineNLogLogProvider()

public override LoggerGetLogger(string name)

protected inline override OpenNdcGetOpenNdcMethod()

protected inline override OpenMdcGetOpenMdcMethod()

class Bitprim::Logging::LogProviders::SerilogLogProvider

class Bitprim::Logging::LogProviders::SerilogLogProvider
  : public Bitprim.Logging.LogProviders.LogProviderBase

Summary

Members Descriptions
{property} boolProviderIsAvailableOverride
public inlineSerilogLogProvider()
public override LoggerGetLogger(string name)
protected override OpenNdcGetOpenNdcMethod()
protected override OpenMdcGetOpenMdcMethod()

Members

{property} boolProviderIsAvailableOverride

public inlineSerilogLogProvider()

public override LoggerGetLogger(string name)

protected override OpenNdcGetOpenNdcMethod()

protected override OpenMdcGetOpenMdcMethod()

class Bitprim::Logging::LogProviders::TraceEventTypeValues

Summary

Members Descriptions

Members

class Bitprim::Logging::LogProviders::TypeExtensions

Summary

Members Descriptions

Members

class Bitprim::Logging::LoggerExecutionWrapper::CallSiteExtension

class Bitprim::Logging::LoggerExecutionWrapper::CallSiteExtension
  : public Bitprim.Logging.LoggerExecutionWrapper.ICallSiteExtension

Summary

Members Descriptions

Members

class Constants

Summary

Members Descriptions

Members

class Bitprim::Logging::LogProviders::Log4NetLogProvider::Log4NetLogger

Summary

Members Descriptions
public inline boolLog(LogLevellogLevel,Func< string > messageFunc,Exception exception,params object [] formatParameters)

Members

public inline boolLog(LogLevellogLevel,Func< string > messageFunc,Exception exception,params object [] formatParameters)

class Bitprim::Logging::LogProviders::LoupeLogProvider::LoupeLogger

Summary

Members Descriptions
public inline boolLog(LogLevellogLevel,Func< string > messageFunc,Exception exception,params object [] formatParameters)

Members

public inline boolLog(LogLevellogLevel,Func< string > messageFunc,Exception exception,params object [] formatParameters)

class Bitprim::Logging::LogProviders::NLogLogProvider::NLogLogger

Summary

Members Descriptions
public inline boolLog(LogLevellogLevel,Func< string > messageFunc,Exception exception,params object [] formatParameters)

Members

public inline boolLog(LogLevellogLevel,Func< string > messageFunc,Exception exception,params object [] formatParameters)

class Bitprim::Logging::LogProvider::NoOpLogger

class Bitprim::Logging::LogProvider::NoOpLogger
  : public Bitprim.Logging.ILog

Summary

Members Descriptions
public inline boolLog(LogLevellogLevel,Func< string > messageFunc,Exception exception,params object [] formatParameters)

Members

public inline boolLog(LogLevellogLevel,Func< string > messageFunc,Exception exception,params object [] formatParameters)

class Bitprim::Logging::LogProviders::SerilogLogProvider::SerilogLogger

Summary

Members Descriptions
public inline boolLog(LogLevellogLevel,Func< string > messageFunc,Exception exception,params object [] formatParameters)

Members

public inline boolLog(LogLevellogLevel,Func< string > messageFunc,Exception exception,params object [] formatParameters)

Generated by Moxygen

results matching ""

    No results matching ""