InterledgerProtocol DEFINITIONS AUTOMATIC TAGS ::= BEGIN

IMPORTS UInt64, UInt256 FROM GenericTypes

Address,
Timestamp
FROM InterledgerTypes

;

InterledgerPrepare ::= SEQUENCE { -- Local amount (changes at each hop) amount UInt64,

-- Expiry date
expiresAt Timestamp,

-- Execution condition
executionCondition UInt256,

-- Destination ILP Address
destination Address,

-- Information for recipient (transport layer information)
data OCTET STRING (SIZE (0..32767))

}

InterledgerFulfill ::= SEQUENCE { -- Execution condition fulfillment fulfillment UInt256,

-- Information for sender (transport layer information)
data OCTET STRING (SIZE (0..32767))

}

InterledgerReject ::= SEQUENCE { -- Standardized error code code IA5String (SIZE (3)),

-- Participant that originally emitted the error
triggeredBy Address,

-- User-readable error message
message UTF8String (SIZE (0..8191)),

-- Machine-readable error data, dependent on code
data OCTET STRING (SIZE (0..32767))

}

END