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.