Documentation ¶
Overview ¶
Package reservoir - storage for: 1. pending transactions that are waiting to be verified 2. verified transactions that are waiting to be confirmed
Index ¶
- Constants
- func CheckGrantBalance(trx storage.Transaction, grant *transactionrecord.ShareGrant) (uint64, error)
- func CheckSwapBalances(trx storage.Transaction, swap *transactionrecord.ShareSwap) (uint64, uint64, error)
- func ClearSpend()
- func DeleteByLink(link merkle.Digest)
- func DeleteByTxId(txId merkle.Digest)
- func Disable()
- func Enable()
- func FetchVerified(count int) ([]merkle.Digest, []byte, error)
- func Finalise() error
- func Initialise(reservoirDataFile string) error
- func LoadFromFile() error
- func ReadCounters() (int, int)
- func Rescan()
- func ScaledDifficulty(count int) *difficulty.Difficulty
- func SetTransferVerified(payId pay.PayId, detail *PaymentDetail)
- type BalanceInfo
- type GrantInfo
- type IssueInfo
- type PayNonce
- type PaymentDetail
- type PaymentSegment
- type SwapInfo
- type TrackingStatus
- type TransactionState
- type TransferInfo
Constants ¶
const (
MaximumIssues = 100 // maximum allowable issues per block
)
various limiting constants
Variables ¶
This section is empty.
Functions ¶
func CheckGrantBalance ¶ added in v0.10.0
func CheckGrantBalance(trx storage.Transaction, grant *transactionrecord.ShareGrant) (uint64, error)
CheckGrantBalance - check sufficient balance to be able to execute a grant request
func CheckSwapBalances ¶ added in v0.10.0
func CheckSwapBalances( trx storage.Transaction, swap *transactionrecord.ShareSwap, ) (uint64, uint64, error)
CheckSwapBalances - check sufficient balance on both accounts to be able to execute a swap request
func DeleteByLink ¶ added in v0.3.5
DeleteByLink - remove a record using a link id
func DeleteByTxId ¶ added in v0.3.5
DeleteByTxId - remove a record using a transaction id note, remove one issue in a block removes the whole issue block
func Disable ¶ added in v0.3.29
func Disable()
Disable - lock down to prevent proofer from getting data
func FetchVerified ¶ added in v0.3.5
FetchVerified - fetch a series of verified transactions
func LoadFromFile ¶ added in v0.11.0
func LoadFromFile() error
LoadFromFile - load transactions from file called later when system is able to handle the tx and proofs
func ReadCounters ¶ added in v0.3.5
ReadCounters - for API to get status data
func Rescan ¶ added in v0.9.1
func Rescan()
Rescan - before calling Enable may need to run rescan to drop any invalidated transactions especially if the block height has changed
func ScaledDifficulty ¶ added in v0.3.30
func ScaledDifficulty(count int) *difficulty.Difficulty
ScaledDifficulty - produce a scaled difficulty based on the number of items in a block to be processed and include a quantity discount
func SetTransferVerified ¶ added in v0.5.0
func SetTransferVerified(payId pay.PayId, detail *PaymentDetail)
SetTransferVerified - set verified if transaction found, otherwise preserv payment for later
Types ¶
type BalanceInfo ¶ added in v0.10.0
type BalanceInfo struct { Confirmed uint64 `json:"confirmed"` Spend uint64 `json:"spend"` Available uint64 `json:"available"` }
BalanceInfo - result returned by store share
func ShareBalance ¶ added in v0.10.0
func ShareBalance(owner *account.Account, startShareId merkle.Digest, count int) ([]BalanceInfo, error)
ShareBalance - get a list of balances
type GrantInfo ¶ added in v0.10.0
type GrantInfo struct { Remaining uint64 Id pay.PayId TxId merkle.Digest Packed []byte Payments []transactionrecord.PaymentAlternative }
GrantInfo - result returned by store share
func StoreGrant ¶ added in v0.10.0
func StoreGrant(grant *transactionrecord.ShareGrant) (*GrantInfo, bool, error)
StoreGrant - validate and store a grant request
type IssueInfo ¶ added in v0.3.5
type IssueInfo struct { TxIds []merkle.Digest Packed []byte Id pay.PayId Nonce PayNonce Difficulty *difficulty.Difficulty Payments []transactionrecord.PaymentAlternative }
IssueInfo - result returned by store issues
func StoreIssues ¶ added in v0.3.5
func StoreIssues(issues []*transactionrecord.BitmarkIssue) (*IssueInfo, bool, error)
StoreIssues - store packed record(s) in the pending table
return payment id and a duplicate flag
for duplicate to be true all transactions must all match exactly to a previous set - this is to allow for multiple submission from client without receiving a duplicate transaction error
type PayNonce ¶ added in v0.3.30
type PayNonce [8]byte
PayNonce - type to represent a payment nonce Note: no reversal is required for this
func NewPayNonce ¶ added in v0.3.30
func NewPayNonce() PayNonce
NewPayNonce - create a random pay nonce
func PayNonceFromBlock ¶ added in v0.10.1
PayNonceFromBlock - get a previous paynonce
func (PayNonce) GoString ¶ added in v0.3.30
GoString - convert a binary pay nonce to big endian hex string for use by the fmt package (for %#v)
func (PayNonce) MarshalText ¶ added in v0.3.30
MarshalText - convert pay nonce to big endian hex text
func (PayNonce) String ¶ added in v0.3.30
String - convert a binary pay nonce to big endian hex string for use by the fmt package (for %s)
func (*PayNonce) UnmarshalText ¶ added in v0.3.30
UnmarshalText - convert little endian hex text into a pay nonce
type PaymentDetail ¶ added in v0.5.0
type PaymentDetail struct { Currency currency.Currency // code number TxID string // tx id on currency blockchain Amounts map[string]uint64 // address(Base58) → value(Satoshis) }
PaymentDetail - a payment record for a single currency
type PaymentSegment ¶ added in v0.5.0
type PaymentSegment [currency.Count]*transactionrecord.Payment
PaymentSegment - a single segment of a payment e.g. for an issue or transfer block owner
type SwapInfo ¶ added in v0.10.0
type SwapInfo struct { RemainingOne uint64 RemainingTwo uint64 Id pay.PayId TxId merkle.Digest Packed []byte Payments []transactionrecord.PaymentAlternative }
SwapInfo - result returned by store share
type TrackingStatus ¶ added in v0.3.30
type TrackingStatus int
TrackingStatus - result of track payment/try proof
const ( TrackingNotFound TrackingStatus = iota TrackingAccepted TrackingStatus = iota TrackingProcessed TrackingStatus = iota TrackingInvalid TrackingStatus = iota )
possible status values
func TryProof ¶ added in v0.3.30
func TryProof(payId pay.PayId, clientNonce []byte) TrackingStatus
TryProof - instead of paying, try a proof from the client nonce
func (TrackingStatus) MarshalText ¶ added in v0.3.30
func (ts TrackingStatus) MarshalText() ([]byte, error)
MarshalText - convert the tracking value for JSON
func (TrackingStatus) String ¶ added in v0.3.30
func (ts TrackingStatus) String() string
String - convert the tracking value for printf
func (*TrackingStatus) UnmarshalText ¶ added in v0.3.30
func (ts *TrackingStatus) UnmarshalText(s []byte) error
UnmarshalText - convert the tracking value from JSON to enumeration
type TransactionState ¶ added in v0.3.30
type TransactionState int
TransactionState - status enumeration
const ( StateUnknown TransactionState = iota StatePending TransactionState = iota StateVerified TransactionState = iota StateConfirmed TransactionState = iota )
list of all states
func TransactionStatus ¶ added in v0.3.30
func TransactionStatus(txId merkle.Digest) TransactionState
TransactionStatus - get status of a transaction
func (TransactionState) String ¶ added in v0.3.30
func (state TransactionState) String() string
String - string representation of a transaction state
type TransferInfo ¶ added in v0.3.5
type TransferInfo struct { Id pay.PayId TxId merkle.Digest IssueTxId merkle.Digest Packed []byte Payments []transactionrecord.PaymentAlternative }
TransferInfo - result returned by store transfer
func StoreTransfer ¶ added in v0.3.5
func StoreTransfer(transfer transactionrecord.BitmarkTransfer) (*TransferInfo, bool, error)
StoreTransfer - verify and store a transfer request