PPOSIXTimeRange
and PInterval
used to describe the time interval in which a transaction is considered valid
definition:
export const PExtended = pstruct({
PNegInf: {},
PFinite: { _0: int },
PPosInf: {}
});
export const PUpperBound = pstruct({
PUpperBound: {
bound: PExtended.type,
inclusive: bool
}
});
export const PLowerBound = pstruct({
PLowerBound: {
bound: PExtended.type,
inclusive: bool
}
});
export const PInterval = pstruct({
PInterval: {
from: PLowerBound.type,
to: PUpperBound.type
}
});
export const PPOSIXTimeRange = PInterval;
PInterval
from
type: PLowerBound
to
type: PUpperBound
PLowerBound
and PUpperBound
even if the two have differnet name they are foundamentaly interchangeable since both have the same strucutre.
bound
type: PExtended
inclusive
type: bool
PExtended
either an interger or positive/negative infinite representation
PNegInf
PFinite
field type: int