template <typename T>

struct CallsiteTraits

A trait type that all derived classes of ChainLockTransaction must implement.

Concretely, all derived classes must provide a nested definition for the CallsiteInfo type, which

should provide debugging/tracing information that identifies the code location of the

transaction.

Naively, one would expect this to be a nested type within the Derived class of

ChainLockTransaction. However, this causes compilation failures, as CallsiteInfo is a parameter

for several of the methods in the base class, and making it a nested type results in an

incomplete definition error when inheriting from the base class. Thus, we need a separate traits

type that works around this problem.