vertex

package
v0.6.2-testnet Latest Latest
Warning

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

Go to latest
Published: Oct 25, 2025 License: MIT Imports: 23 Imported by: 0

Documentation

Index

Constants

View Source
const (
	FlagPastConeVertexKnown             = FlagsPastCone(0b00000001) // each vertex of consideration has this flag on
	FlagPastConeVertexDefined           = FlagsPastCone(0b00000010) // means vertex is 'defined', i.e. its validity is checked
	FlagPastConeVertexCheckedInTheState = FlagsPastCone(0b00000100) // means vertex has been checked if it is in the state (it may or may not be there)
	FlagPastConeVertexInTheState        = FlagsPastCone(0b00001000) // means vertex is definitely in the state (must be checked before)
	FlagPastConeVertexEndorsementsSolid = FlagsPastCone(0b00010000) // means all endorsements were validated
	FlagPastConeVertexInputsSolid       = FlagsPastCone(0b00100000) // means all consumed inputs are checked and valid
	FlagPastConeVertexAskedForPoke      = FlagsPastCone(0b01000000) //
)
View Source
const (
	FlagVertexDefined                 = Flags(0b00000001)
	FlagVertexConstraintsValid        = Flags(0b00000010)
	FlagVertexTxAttachmentStarted     = Flags(0b00000100)
	FlagVertexTxAttachmentFinished    = Flags(0b00001000)
	FlagVertexIgnoreAbsenceOfPastCone = Flags(0b00010000)
)
View Source
const (
	Undefined = Status(iota)
	Good
	Bad
)

Variables

This section is empty.

Functions

func IsPreferredMilestoneAgainstTheOther

func IsPreferredMilestoneAgainstTheOther(vid1, vid2 *WrappedTx) bool

IsPreferredMilestoneAgainstTheOther returns if vid1 is strongly better than vid2 'better' means aligned coverage is bigger, or, if equal, transaction id is smaller

func VerticesLines

func VerticesLines(vertices []*WrappedTx, prefix ...string) *lines.Lines

func WrappedOutputsShortLines

func WrappedOutputsShortLines(wOuts []WrappedOutput) *lines.Lines

Types

type DetachedVertex

type DetachedVertex struct {
	Tx       *transaction.Transaction
	BranchID *base.TransactionID
}

func (*DetachedVertex) Lines

func (v *DetachedVertex) Lines(prefix ...string) *lines.Lines

type Flags

type Flags uint8

func (*Flags) FlagsUp

func (f *Flags) FlagsUp(fl Flags) bool

func (*Flags) SetFlagsUp

func (f *Flags) SetFlagsUp(fl Flags)

func (*Flags) String

func (f *Flags) String() string

type FlagsPastCone

type FlagsPastCone byte

func (FlagsPastCone) FlagsUp

func (f FlagsPastCone) FlagsUp(fl FlagsPastCone) bool

func (FlagsPastCone) String

func (f FlagsPastCone) String() string

type MutationStats

type MutationStats struct {
	NumTransactions int
	NumDeleted      int
	NumCreated      int
}

type PastCone

type PastCone struct {
	global.Logging // TODO not very necessary

	*PastConeBase
	// contains filtered or unexported fields
}

func NewPastCone

func NewPastCone(env global.Logging, tip *WrappedTx, txTs base.LedgerTime, name string) *PastCone

func (*PastCone) AddVirtuallyConsumedOutput

func (pc *PastCone) AddVirtuallyConsumedOutput(wOut WrappedOutput, getStateReader func(branchID base.TransactionID) multistate.IndexedStateReader) *WrappedOutput

func (*PastCone) Assertf

func (pc *PastCone) Assertf(cond bool, format string, args ...any)

func (*PastCone) BeginDelta

func (pc *PastCone) BeginDelta()

func (*PastCone) CheckAndClean

func (pc *PastCone) CheckAndClean(getStateReader func(branchID base.TransactionID) multistate.IndexedStateReader) (conflict *WrappedOutput)

CheckAndClean iterates past cone, checks for conflicts and removes those vertices that have consumers and all consumers are already in the state

func (*PastCone) CheckConflicts

func (pc *PastCone) CheckConflicts(getStateReader func(branchID base.TransactionID) multistate.IndexedStateReader) (conflict *WrappedOutput)

CheckConflicts returns double-spent output (conflict) or nil if the past cone is consistent The complexity is O(NxM) where N is number of vertices and M is an average number of conflicts in the UTXO tangle Practically, it is linear wrt the number of vertices because M is 1 or close to 1.

func (*PastCone) CheckFinalPastCone

func (pc *PastCone) CheckFinalPastCone(getStateReader func(branchID base.TransactionID) multistate.IndexedStateReader) (err error)

CheckFinalPastCone check determinism consistency of the past cone If rootVid == nil, past cone must be fully deterministic

func (*PastCone) CloneForDebugOnly

func (pc *PastCone) CloneForDebugOnly(env global.Logging, name string) *PastCone

func (*PastCone) CommitDelta

func (pc *PastCone) CommitDelta()

func (*PastCone) ContainsUndefined

func (pc *PastCone) ContainsUndefined() bool

func (*PastCone) CoverageDeltaRaw

func (pc *PastCone) CoverageDeltaRaw(getStateReader func(branchID base.TransactionID) multistate.IndexedStateReader) (delta, frozen uint64)

CoverageDeltaRaw is not adjusted for sequencer output. Function does not check the consistency of the past cone. Calculates coverage by checking them right in the state. For chained outputs adds non-frozen coverage . Accounts for the frozen coverage in sequencer outputs. Returns: - total coverage delta - frozen coverage (included in the delta)

func (*PastCone) Dispose

func (pc *PastCone) Dispose()

func (*PastCone) Flags

func (pc *PastCone) Flags(vid *WrappedTx) FlagsPastCone

func (*PastCone) GetBaseline

func (pc *PastCone) GetBaseline() *base.TransactionID

func (*PastCone) IsComplete

func (pc *PastCone) IsComplete() bool

func (*PastCone) IsConsumed

func (pc *PastCone) IsConsumed(wOut WrappedOutput) bool

func (*PastCone) IsInTheState

func (pc *PastCone) IsInTheState(vid *WrappedTx) (rooted bool)

IsInTheState is definitely known it is in the state

func (*PastCone) IsKnown

func (pc *PastCone) IsKnown(vid *WrappedTx) bool

func (*PastCone) IsKnownDefined

func (pc *PastCone) IsKnownDefined(vid *WrappedTx) bool

func (*PastCone) Lines

func (pc *PastCone) Lines(prefix ...string) *lines.Lines

func (*PastCone) LinesShort

func (pc *PastCone) LinesShort(prefix ...string) *lines.Lines

func (*PastCone) MakeGraph

func (pc *PastCone) MakeGraph() graph.Graph[string, string]

func (*PastCone) MarkVertexKnown

func (pc *PastCone) MarkVertexKnown(vid *WrappedTx)

func (*PastCone) MergePastCone

func (pc *PastCone) MergePastCone(pcb *PastConeBase, br *branches.Branches) bool

MergePastCone checks the compatibility of baselines and swaps them if necessary. Does not check for double-spends

func (*PastCone) MustMarkVertexNotInTheState

func (pc *PastCone) MustMarkVertexNotInTheState(vid *WrappedTx)

MustMarkVertexNotInTheState is marked definitely not rooted

func (*PastCone) Mutations

func (pc *PastCone) Mutations(slot uint32) (muts *multistate.Mutations, stats MutationStats)

func (*PastCone) NumVertices

func (pc *PastCone) NumVertices() int

func (*PastCone) RollbackDelta

func (pc *PastCone) RollbackDelta()

func (*PastCone) SaveGraph

func (pc *PastCone) SaveGraph(fname string)

func (*PastCone) SetBaseline

func (pc *PastCone) SetBaseline(baselineID *base.TransactionID)

func (*PastCone) SetFlagsDown

func (pc *PastCone) SetFlagsDown(vid *WrappedTx, f FlagsPastCone)

func (*PastCone) SetFlagsUp

func (pc *PastCone) SetFlagsUp(vid *WrappedTx, f FlagsPastCone)

func (*PastCone) SlotInflation

func (pc *PastCone) SlotInflation() (ret uint64)

func (*PastCone) UndefinedList

func (pc *PastCone) UndefinedList() []*WrappedTx

func (*PastCone) UndefinedListLines

func (pc *PastCone) UndefinedListLines(prefix ...string) *lines.Lines

func (*PastCone) VertexLine

func (pc *PastCone) VertexLine(vid *WrappedTx) string

type PastConeBase

type PastConeBase struct {
	// contains filtered or unexported fields
}

func NewPastConeBase

func NewPastConeBase(baselineID *base.TransactionID) *PastConeBase

func (*PastConeBase) CloneImmutable

func (pb *PastConeBase) CloneImmutable() *PastConeBase

func (*PastConeBase) Dispose

func (pb *PastConeBase) Dispose()

func (*PastConeBase) Len

func (pb *PastConeBase) Len() int

func (*PastConeBase) Lines

func (pb *PastConeBase) Lines(prefix ...string) *lines.Lines

type Status

type Status byte

func StatusFromString

func StatusFromString(s string) Status

func (Status) String

func (s Status) String() string

type TxIDStatus

type TxIDStatus struct {
	ID                base.TransactionID
	OnDAG             bool
	InStorage         bool
	VirtualOrDetached bool
	Deleted           bool
	Status            Status
	Flags             Flags
	Coverage          *uint64
	Err               error
}

func (*TxIDStatus) JSONAble

func (s *TxIDStatus) JSONAble() (ret TxIDStatusJSONAble)

func (*TxIDStatus) Lines

func (s *TxIDStatus) Lines(prefix ...string) *lines.Lines

type TxIDStatusJSONAble

type TxIDStatusJSONAble struct {
	ID                string `json:"id"`
	OnDAG             bool   `json:"on_dag"`
	InStorage         bool   `json:"in_storage"`
	VirtualOrDetached bool   `json:"virtual_or_detached"`
	Deleted           bool   `json:"deleted"`
	Status            string `json:"status"`
	Flags             byte   `json:"flags"`
	Coverage          uint64 `json:"coverage,omitempty"`
	Err               error  `json:"err"`
}

func (*TxIDStatusJSONAble) Parse

func (s *TxIDStatusJSONAble) Parse() (*TxIDStatus, error)

type UnwrapOptions

type UnwrapOptions struct {
	Vertex         func(v *Vertex)
	DetachedVertex func(v *DetachedVertex)
	VirtualTx      func(v *VirtualTransaction)
}

type UnwrapOptionsForTraverse

type UnwrapOptionsForTraverse struct {
	Vertex         func(vidCur *WrappedTx, v *Vertex) bool
	DetachedVertex func(vidCur *WrappedTx, v *DetachedVertex) bool
	VirtualTx      func(vidCur *WrappedTx, v *VirtualTransaction) bool
	TxID           func(txid *base.TransactionID)
}

type Vertex

type Vertex struct {
	Tx               *transaction.Transaction
	Inputs           []*WrappedTx
	Endorsements     []*WrappedTx
	BaselineBranchID *base.TransactionID
}

Vertex is a transaction with past cone dependencies

func NewVertex

func NewVertex(tx *transaction.Transaction) *Vertex

func (*Vertex) ForEachEndorsement

func (v *Vertex) ForEachEndorsement(fun func(i byte, vidEndorsed *WrappedTx) bool)

func (*Vertex) ForEachInputDependency

func (v *Vertex) ForEachInputDependency(fun func(i byte, vidInput *WrappedTx) bool)

func (*Vertex) GetConsumedOutput

func (v *Vertex) GetConsumedOutput(i byte) (ret *ledger.Output)

GetConsumedOutput return produced output, is available. Returns nil if unavailable for any reason

func (*Vertex) InputLoaderByIndex

func (v *Vertex) InputLoaderByIndex(i byte) (*ledger.Output, error)

InputLoaderByIndex returns consumed output at index i or nil (if input is orphaned or inaccessible in the virtualTx)

func (*Vertex) Lines

func (v *Vertex) Lines(prefix ...string) *lines.Lines

func (*Vertex) MissingInputTxIDSet

func (v *Vertex) MissingInputTxIDSet() set.Set[base.TransactionID]

MissingInputTxIDSet returns set of txids for the missing inputs and endorsements

func (*Vertex) MissingInputTxIDString

func (v *Vertex) MissingInputTxIDString() string

func (*Vertex) NumMissingInputs

func (v *Vertex) NumMissingInputs() (missingInputs int, missingEndorsements int)

func (*Vertex) ReferenceEndorsement

func (v *Vertex) ReferenceEndorsement(i byte, vid *WrappedTx)

func (*Vertex) ReferenceInput

func (v *Vertex) ReferenceInput(i byte, vid *WrappedTx)

ReferenceInput puts a new input and references it. If referencing fails, no change happens and returns false

func (*Vertex) SequencerInputIndex

func (v *Vertex) SequencerInputIndex() byte

func (*Vertex) SetOfInputTransactions

func (v *Vertex) SetOfInputTransactions() set.Set[*WrappedTx]

func (*Vertex) StemInputIndex

func (v *Vertex) StemInputIndex() byte

func (*Vertex) TimeSlot

func (v *Vertex) TimeSlot() uint32

func (*Vertex) UnReferenceDependencies

func (v *Vertex) UnReferenceDependencies()

UnReferenceDependencies un-references all not nil inputs and endorsements and invalidates vertex structure TODO revisit usages

func (*Vertex) ValidateConstraints

func (v *Vertex) ValidateConstraints(traceOption ...int) error

ValidateConstraints creates full transaction context from the (solid) vertex data and runs validation of all constraints in the context

func (*Vertex) Wrap

func (v *Vertex) Wrap() *WrappedTx

type VirtualTransaction

type VirtualTransaction struct {
	Created time.Time
	// contains filtered or unexported fields
}

VirtualTransaction is a collection of produced outputs

func (*VirtualTransaction) OutputAt

func (v *VirtualTransaction) OutputAt(idx byte) (*ledger.Output, bool)

OutputAt return output at the index and true, or nil, false if output is not available in the virtual tx

func (*VirtualTransaction) PullNeeded

func (v *VirtualTransaction) PullNeeded() bool

func (*VirtualTransaction) PullPatienceExpired

func (v *VirtualTransaction) PullPatienceExpired(maxPullAttempts int) bool

func (*VirtualTransaction) PullRulesDefined

func (v *VirtualTransaction) PullRulesDefined() bool

func (*VirtualTransaction) SequencerOutputs

func (v *VirtualTransaction) SequencerOutputs() (*ledger.Output, *ledger.Output)

SequencerOutputs returns <seq output>, <stem output> or respective nils

func (*VirtualTransaction) SetPullHappened

func (v *VirtualTransaction) SetPullHappened(repeatAfter time.Duration)

SetPullHappened increases pull counter and sets nex pull deadline

func (*VirtualTransaction) SetPullNeeded

func (v *VirtualTransaction) SetPullNeeded()

type WrappedOutput

type WrappedOutput struct {
	VID   *WrappedTx
	Index byte
}

func (*WrappedOutput) DecodeID

func (o *WrappedOutput) DecodeID() (ret base.OutputID)

func (*WrappedOutput) IDHasFragment

func (o *WrappedOutput) IDHasFragment(frag string) bool

func (*WrappedOutput) IDString

func (o *WrappedOutput) IDString() string

func (*WrappedOutput) IDStringShort

func (o *WrappedOutput) IDStringShort() string

func (*WrappedOutput) IsAvailable

func (o *WrappedOutput) IsAvailable() (available bool)

func (*WrappedOutput) Lock

func (o *WrappedOutput) Lock() ledger.Lock

func (*WrappedOutput) LockName

func (o *WrappedOutput) LockName() string

func (*WrappedOutput) Output

func (o *WrappedOutput) Output() (ret *ledger.Output)

func (*WrappedOutput) OutputWithChainID

func (o *WrappedOutput) OutputWithChainID() (ledger.OutputWithChainID, bool)

func (*WrappedOutput) OutputWithID

func (o *WrappedOutput) OutputWithID() *ledger.OutputWithID

func (*WrappedOutput) Slot

func (o *WrappedOutput) Slot() uint32

func (*WrappedOutput) Timestamp

func (o *WrappedOutput) Timestamp() base.LedgerTime

func (*WrappedOutput) ValidID

func (o *WrappedOutput) ValidID() bool

type WrappedTx

type WrappedTx struct {

	// sequencer id not nil for sequencer transactions only. Once it is set not nil, it is immutable since.
	// It is set whenever the transaction becomes available
	SequencerID atomic.Pointer[base.ChainID]

	SlotWhenAdded uint32 // immutable
	// contains filtered or unexported fields
}

WrappedTx value of *WrappedTx is used as transaction identity on the UTXO tangle, a vertex Behind this identity can be wrapped usual vertex or virtual transactions

func WrapBranchDataAsVirtualTx

func WrapBranchDataAsVirtualTx(branchData *multistate.BranchData) *WrappedTx

WrapBranchDataAsVirtualTx branch vertex immediately becomes 'good'

func WrapTxID

func WrapTxID(txid base.TransactionID) *WrappedTx

WrapTxID creates VID with a virtualTx which only contains txid. Also sets the solidification deadline, after which IsPullDeadlineDue will start returning true The pull deadline will be dropped after transaction becomes available and virtualTx will be converted to full vertex

func (*WrappedTx) AddConsumer

func (vid *WrappedTx) AddConsumer(outputIndex byte, consumer *WrappedTx)

AddConsumer stores consumer of the vid[outputIndex] consumed output. Function checkConflicts checks if the new consumer conflicts with already existing ones

func (*WrappedTx) BaselineBranch

func (vid *WrappedTx) BaselineBranch() (baselineBranchID base.TransactionID, ok bool)

BaselineBranch baseline branch of the vertex

func (*WrappedTx) Before

func (vid *WrappedTx) Before(vid1 *WrappedTx) bool

func (*WrappedTx) ConsumersOf

func (vid *WrappedTx) ConsumersOf(outIdx byte) set.Set[*WrappedTx]

func (*WrappedTx) ConvertToDetached

func (vid *WrappedTx) ConvertToDetached()

ConvertToDetached detaches past cone and leaves only a collection of produced outputs Detaches input dependencies and converts to the DetachedVertex Note, however, that for branches, WrappedTx with DetachedVertex can later contain reference to the pastCone structure. Upon repeated calls to ConvertToDetached we set pastCone to nil. If not this, DAG remains always connected and old vertices are not garbage collected -> memory leak!

func (*WrappedTx) ConvertVirtualTxToVertexNoLock

func (vid *WrappedTx) ConvertVirtualTxToVertexNoLock(v *Vertex)

func (*WrappedTx) FindChainOutput

func (vid *WrappedTx) FindChainOutput(chainID *base.ChainID) (ret *ledger.OutputWithID)

func (*WrappedTx) FlagsNoLock

func (vid *WrappedTx) FlagsNoLock() Flags

func (*WrappedTx) FlagsUp

func (vid *WrappedTx) FlagsUp(f Flags) bool

func (*WrappedTx) FlagsUpNoLock

func (vid *WrappedTx) FlagsUpNoLock(f Flags) bool

func (*WrappedTx) GetAttachmentDepthNoLock

func (vid *WrappedTx) GetAttachmentDepthNoLock() int

func (*WrappedTx) GetError

func (vid *WrappedTx) GetError() error

func (*WrappedTx) GetErrorNoLock

func (vid *WrappedTx) GetErrorNoLock() error

func (*WrappedTx) GetLedgerCoverage

func (vid *WrappedTx) GetLedgerCoverage() uint64

func (*WrappedTx) GetLedgerCoverageNoLock

func (vid *WrappedTx) GetLedgerCoverageNoLock() *uint64

func (*WrappedTx) GetLedgerCoverageP

func (vid *WrappedTx) GetLedgerCoverageP() *uint64

func (*WrappedTx) GetLedgerCoverageString

func (vid *WrappedTx) GetLedgerCoverageString() string

func (*WrappedTx) GetPastConeNoLock

func (vid *WrappedTx) GetPastConeNoLock() *PastConeBase

func (*WrappedTx) GetTransaction

func (vid *WrappedTx) GetTransaction() (tx *transaction.Transaction)

func (*WrappedTx) GetTxStatus

func (vid *WrappedTx) GetTxStatus() Status

func (*WrappedTx) GetTxStatusNoLock

func (vid *WrappedTx) GetTxStatusNoLock() Status

func (*WrappedTx) ID

func (vid *WrappedTx) ID() base.TransactionID

func (*WrappedTx) IDHasFragment

func (vid *WrappedTx) IDHasFragment(frag ...string) bool

func (*WrappedTx) IDShortString

func (vid *WrappedTx) IDShortString() string

func (*WrappedTx) IDVeryShort

func (vid *WrappedTx) IDVeryShort() string

func (*WrappedTx) InflationAmount

func (vid *WrappedTx) InflationAmount() (ret uint64)

InflationAmount is sum of inflation values on the produced outputs

func (*WrappedTx) IsBad

func (vid *WrappedTx) IsBad() bool

IsBad non-deterministic

func (*WrappedTx) IsBranchTransaction

func (vid *WrappedTx) IsBranchTransaction() bool

func (*WrappedTx) IsSequencerMilestone

func (vid *WrappedTx) IsSequencerMilestone() bool

func (*WrappedTx) IsVirtualTx

func (vid *WrappedTx) IsVirtualTx() (ret bool)

func (*WrappedTx) Lines

func (vid *WrappedTx) Lines(prefix ...string) *lines.Lines

func (*WrappedTx) LinesNoLock

func (vid *WrappedTx) LinesNoLock(prefix ...string) *lines.Lines

func (*WrappedTx) LinesTx

func (vid *WrappedTx) LinesTx(prefix ...string) *lines.Lines

func (*WrappedTx) MustEnsureOutput

func (vid *WrappedTx) MustEnsureOutput(o *ledger.Output, idx byte)

func (*WrappedTx) MustOutputAt

func (vid *WrappedTx) MustOutputAt(idx byte) *ledger.Output

func (*WrappedTx) MustOutputWithIDAt

func (vid *WrappedTx) MustOutputWithIDAt(idx byte) (ret ledger.OutputWithID)

func (*WrappedTx) MustSequencerIDAndStemID

func (vid *WrappedTx) MustSequencerIDAndStemID() (seqID base.ChainID, stemID base.OutputID)

func (*WrappedTx) NotConsumedOutputIndices

func (vid *WrappedTx) NotConsumedOutputIndices(allConsumers set.Set[*WrappedTx]) []byte

func (*WrappedTx) NumConsumers

func (vid *WrappedTx) NumConsumers() (numConsumedOutputs, numConflictSets int)

NumConsumers returns: - number of consumed outputs - number of conflict sets

func (*WrappedTx) NumInputs

func (vid *WrappedTx) NumInputs() int

func (*WrappedTx) NumProducedOutputs

func (vid *WrappedTx) NumProducedOutputs() int

func (*WrappedTx) OnPoke

func (vid *WrappedTx) OnPoke(fun func())

func (*WrappedTx) OnPokeNop

func (vid *WrappedTx) OnPokeNop()

func (*WrappedTx) OutputAt

func (vid *WrappedTx) OutputAt(idx byte) (*ledger.Output, error)

OutputAt return output at index, if available. err != nil indicates wrong index nil, nil means output not available, but no error (orphaned)

func (*WrappedTx) OutputID

func (vid *WrappedTx) OutputID(idx byte) (ret base.OutputID)

func (*WrappedTx) OutputWithIDAt

func (vid *WrappedTx) OutputWithIDAt(idx byte) (ledger.OutputWithID, error)

func (*WrappedTx) Poke

func (vid *WrappedTx) Poke()

func (*WrappedTx) RUnwrap

func (vid *WrappedTx) RUnwrap(opt UnwrapOptions)

func (*WrappedTx) SequencerIDStringVeryShort

func (vid *WrappedTx) SequencerIDStringVeryShort() string

func (*WrappedTx) SequencerName

func (vid *WrappedTx) SequencerName() (ret string)

func (*WrappedTx) SequencerPredecessor

func (vid *WrappedTx) SequencerPredecessor(reattachBranch func(txid base.TransactionID) *WrappedTx) (ret *WrappedTx)

func (*WrappedTx) SequencerWrappedOutput

func (vid *WrappedTx) SequencerWrappedOutput() (ret WrappedOutput)

func (*WrappedTx) SetAttachmentDepthNoLock

func (vid *WrappedTx) SetAttachmentDepthNoLock(depth int)

func (*WrappedTx) SetFlagsDownNoLock

func (vid *WrappedTx) SetFlagsDownNoLock(f Flags)

func (*WrappedTx) SetFlagsUpNoLock

func (vid *WrappedTx) SetFlagsUpNoLock(f Flags)

func (*WrappedTx) SetSequencerAttachmentFinished

func (vid *WrappedTx) SetSequencerAttachmentFinished()

func (*WrappedTx) SetTxStatusBad

func (vid *WrappedTx) SetTxStatusBad(reason error)

func (*WrappedTx) SetTxStatusBadNoLock

func (vid *WrappedTx) SetTxStatusBadNoLock(reason error)

func (*WrappedTx) SetTxStatusGood

func (vid *WrappedTx) SetTxStatusGood(pastCone *PastConeBase, coverage uint64)

SetTxStatusGood sets 'good' status and past cone

func (*WrappedTx) SetTxStatusGoodNoLock

func (vid *WrappedTx) SetTxStatusGoodNoLock(pastCone *PastConeBase, coverage uint64)

func (*WrappedTx) ShortString

func (vid *WrappedTx) ShortString() string

func (*WrappedTx) Slot

func (vid *WrappedTx) Slot() uint32

func (*WrappedTx) StemWrappedOutput

func (vid *WrappedTx) StemWrappedOutput() (ret WrappedOutput)

func (*WrappedTx) String

func (vid *WrappedTx) String() (ret string)

func (*WrappedTx) StringNoLock

func (vid *WrappedTx) StringNoLock() string

func (*WrappedTx) Timestamp

func (vid *WrappedTx) Timestamp() base.LedgerTime

func (*WrappedTx) TraversePastConeDepthFirst

func (vid *WrappedTx) TraversePastConeDepthFirst(opt UnwrapOptionsForTraverse, visited ...set.Set[*WrappedTx])

TraversePastConeDepthFirst performs depth-first traverse of the MemDAG. Visiting once each node and calling vertex-type specific function if provided on each. If function returns false, the traverse is cancelled globally. The traverse stops at terminal dag. The vertex is terminal if it either is not-full vertex i.e. (booked, orphaned, deleted) or it belongs to 'visited' set If 'visited' set is provided at call, it is mutable. In the end it contains all initial dag plus all dag visited during the traverse

func (*WrappedTx) TxLines

func (vid *WrappedTx) TxLines(prefix ...string) (ret *lines.Lines)

func (*WrappedTx) Unwrap

func (vid *WrappedTx) Unwrap(opt UnwrapOptions)

func (*WrappedTx) UnwrapVirtualTx

func (vid *WrappedTx) UnwrapVirtualTx(unwrapFun func(v *VirtualTransaction))

UnwrapVirtualTx calls callback only if it is virtualTx

func (*WrappedTx) ValidSequencerPace

func (vid *WrappedTx) ValidSequencerPace(targetTs base.LedgerTime) bool

func (*WrappedTx) WithConsumersRLock

func (vid *WrappedTx) WithConsumersRLock(fun func())

Jump to

Keyboard shortcuts

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