reservoir

package
v0.12.4 Latest Latest
Warning

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

Go to latest
Published: Jan 14, 2020 License: ISC Imports: 28 Imported by: 1

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

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(trx storage.Transaction, grant *transactionrecord.ShareGrant, shareQuantityHandle storage.Handle) (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, shareQuantityHandle storage.Handle) (uint64, uint64, error)

CheckSwapBalances - check sufficient balance on both accounts to be able to execute a swap request

func ClearSpend added in v0.10.0

func ClearSpend()

ClearSpend - reset spend map

func DeleteByLink(link merkle.Digest)

DeleteByLink - remove a record using a link id

func DeleteByTxId added in v0.3.5

func DeleteByTxId(txId merkle.Digest)

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 Enable added in v0.3.29

func Enable()

Enable - allow proofer to run again

func FetchVerified added in v0.3.5

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

FetchVerified - fetch a series of verified transactions

func Finalise

func Finalise() error

Finalise - stop all background processes

func Initialise

func Initialise(cacheDirectory string) error

Initialise - create the cache

func LoadFromFile added in v0.11.0

func LoadFromFile(handles Handles) 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

func ReadCounters() (int, int)

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 {
	ShareId   merkle.Digest `json:"shareId"`
	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, shareQuantityHandle storage.Handle, shareHandle storage.Handle, ownerDataHandle storage.Handle, blockOwnerPaymentHandle storage.Handle) (*GrantInfo, bool, error)

StoreGrant - validate and store a grant request

type Handles added in v0.12.1

type Handles struct {
	Assets            storage.Handle
	BlockOwnerPayment storage.Handle
	Transaction       storage.Handle
	OwnerTx           storage.Handle
	OwnerData         storage.Handle
	Share             storage.Handle
	ShareQuantity     storage.Handle
}

Handles - storage handles used when restore from cache file

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, assetHandle storage.Handle, blockOwnerPaymentHandle storage.Handle) (*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

func PayNonceFromBlock(number uint64) PayNonce

PayNonceFromBlock - get a previous paynonce

func (PayNonce) GoString added in v0.3.30

func (paynonce PayNonce) GoString() string

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

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

MarshalText - convert pay nonce to big endian hex text

func (PayNonce) String added in v0.3.30

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

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 Restorer added in v0.12.1

type Restorer interface {
	Restore() error
	fmt.Stringer
}

Restorer - interface to restore data from cache file

func NewTransactionRestorer added in v0.12.1

func NewTransactionRestorer(unpacked interface{}, packed interface{}, handles Handles) (Restorer, error)

NewTransactionRestorer - create object with Restorer interface

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

func StoreSwap added in v0.10.0

func StoreSwap(swap *transactionrecord.ShareSwap, shareQuantityHandle storage.Handle, shareHandle storage.Handle, ownerDataHandle storage.Handle, blockOwnerPaymentHandle storage.Handle) (*SwapInfo, bool, error)

StoreSwap - verify and store a swap request

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, transactionHandle storage.Handle, ownerTxHandle storage.Handle, ownerDataHandle storage.Handle, blockOwnerPaymentHandle storage.Handle) (*TransferInfo, bool, error)

StoreTransfer - verify and store a transfer request

Directories

Path Synopsis
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.

Jump to

Keyboard shortcuts

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