reservoir

package
v0.10.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 22, 2019 License: ISC Imports: 27 Imported by: 1

Documentation

Overview

storage for: 1. pending transactions that are waiting to be verified 2. verified transactions that are waiting to be confirmed

Index

Constants

View Source
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(grant *transactionrecord.ShareGrant) (uint64, error)

func CheckSwapBalances added in v0.10.0

func CheckSwapBalances(swap *transactionrecord.ShareSwap) (uint64, uint64, error)

func ClearSpend added in v0.10.0

func ClearSpend()

reset spend map

func DeleteByLink(link merkle.Digest)

remove a record using a link id

func DeleteByTxId added in v0.3.5

func DeleteByTxId(txId merkle.Digest)

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()

lock down to prevent proofer from getting data

func Enable added in v0.3.29

func Enable()

allow proofer to run again

func FetchVerified added in v0.3.5

func FetchVerified(count int) ([]merkle.Digest, []byte, error)

fetch a series of verified transactions

func Finalise

func Finalise() error

stop all

func Initialise

func Initialise(reservoirDataFile string) error

create the cache

func ReadCounters added in v0.3.5

func ReadCounters() (int, int)

for API to get status data

func Rescan added in v0.9.1

func 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

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)

set verified if transaction found, otherwise preserv payment for later

Types

type BalanceInfo added in v0.10.0

type BalanceInfo struct {
	ShareId   merkle.Digest `json:"shareId"`
	Confirmed uint64        `json:"confirmed"`
	Spend     uint64        `json:"spend"`
	Available uint64        `json:"available"`
}

result returned by store share

func ShareBalance added in v0.10.0

func ShareBalance(owner *account.Account, startShareId merkle.Digest, count int) ([]BalanceInfo, error)

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
}

result returned by store share

func StoreGrant added in v0.10.0

func StoreGrant(grant *transactionrecord.ShareGrant) (*GrantInfo, bool, error)

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
}

result returned by store issues

func StoreIssues added in v0.3.5

func StoreIssues(issues []*transactionrecord.BitmarkIssue) (*IssueInfo, bool, error)

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

type to represent a payment nonce Note: no reversal is required for this

func NewPayNonce added in v0.3.30

func NewPayNonce() PayNonce

create a random pay nonce

func PayNonceFromBlock added in v0.10.1

func PayNonceFromBlock(number uint64) PayNonce

get a previous paynonce

func (PayNonce) GoString added in v0.3.30

func (paynonce PayNonce) GoString() string

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

func (paynonce PayNonce) MarshalText() ([]byte, error)

convert pay nonce to big endian hex text

func (PayNonce) String added in v0.3.30

func (paynonce PayNonce) String() 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

func (paynonce *PayNonce) UnmarshalText(s []byte) error

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)
}

type PaymentSegment added in v0.5.0

type PaymentSegment [currency.Count]*transactionrecord.Payment

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
}

result returned by store share

func StoreSwap added in v0.10.0

func StoreSwap(swap *transactionrecord.ShareSwap) (*SwapInfo, bool, error)

type TrackingStatus added in v0.3.30

type TrackingStatus int

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

instead of paying, try a proof from the client nonce

func (TrackingStatus) MarshalText added in v0.3.30

func (ts TrackingStatus) MarshalText() ([]byte, error)

convert the tracking value for JSON

func (TrackingStatus) String added in v0.3.30

func (ts TrackingStatus) String() string

convert the tracking value for printf

func (*TrackingStatus) UnmarshalText added in v0.3.30

func (ts *TrackingStatus) UnmarshalText(s []byte) error

convert the tracking value from JSON to enumeration

type TransactionState added in v0.3.30

type TransactionState int

status

const (
	StateUnknown   TransactionState = iota
	StatePending   TransactionState = iota
	StateVerified  TransactionState = iota
	StateConfirmed TransactionState = iota
)

func TransactionStatus added in v0.3.30

func TransactionStatus(txId merkle.Digest) TransactionState

get status of a transaction

func (TransactionState) String added in v0.3.30

func (state TransactionState) String() string

type TransferInfo added in v0.3.5

type TransferInfo struct {
	Id        pay.PayId
	TxId      merkle.Digest
	IssueTxId merkle.Digest
	Packed    []byte
	Payments  []transactionrecord.PaymentAlternative
}

result returned by store transfer

func StoreTransfer added in v0.3.5

func StoreTransfer(transfer transactionrecord.BitmarkTransfer) (*TransferInfo, bool, error)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL