syntax = "proto3"; package org.xrpl.rpc.v1; option java_package = "org.xrpl.rpc.v1"; option java_multiple_files = true; import "amount.proto"; import "account.proto"; // These fields are used in many different messsage types. They can be present // in one or more transactions, as well as metadata of one or more transactions. // Each is defined as its own message type with a single field "value", to // ensure the field is the correct type everywhere it's used // *** Messages wrapping uint32 *** message CancelAfter { // time in seconds since Ripple epoch uint32 value = 1; } message ClearFlag { uint32 value = 1; } message CloseTime { // time in seconds since Ripple epoch uint32 value = 1; } message Date { // time in seconds since Ripple epoch uint32 value = 1; } message DestinationTag { uint32 value = 1; } message Expiration { // time in seconds since Ripple epoch uint32 value = 1; } message FinishAfter { // time in seconds since Ripple epoch uint32 value = 1; } message Flags { uint32 value = 1; } message HighQualityIn { uint32 value = 1; } message HighQualityOut { uint32 value = 1; } message LastLedgerSequence { uint32 value = 1; } message LowQualityIn { uint32 value = 1; } message LowQualityOut { uint32 value = 1; } message OfferSequence { uint32 value = 1; } message OwnerCount { uint32 value = 1; } message PreviousTransactionLedgerSequence { uint32 value = 1; } message QualityIn { uint32 value = 1; } message QualityOut { uint32 value = 1; } message ReferenceFeeUnits { uint32 value = 1; } message ReserveBase { // in drops uint32 value = 1; } message ReserveIncrement { // in drops uint32 value = 1; } message Sequence { uint32 value = 1; } message SetFlag { uint32 value = 1; } message SettleDelay { uint32 value = 1; } message SignerListID { uint32 value = 1; } message SignerQuorum { uint32 value = 1; } message SignerWeight { // is actually uint16 uint32 value = 1; } message SourceTag { uint32 value = 1; } message TickSize { // is actually uint8 uint32 value = 1; } message TransferRate { uint32 value = 1; } // *** Messages wrapping uint64 *** message BaseFee { // in drops uint64 value = 1 [jstype=JS_STRING]; } message BookNode { uint64 value = 1 [jstype=JS_STRING]; } message DestinationNode { uint64 value = 1 [jstype=JS_STRING]; } message HighNode { uint64 value = 1 [jstype=JS_STRING]; } message IndexNext { uint64 value = 1 [jstype=JS_STRING]; } message IndexPrevious { uint64 value = 1 [jstype=JS_STRING]; } message LowNode { uint64 value = 1 [jstype=JS_STRING]; } message OwnerNode { uint64 value = 1 [jstype=JS_STRING]; } // *** Messages wrapping 16 bytes *** message EmailHash { bytes value = 1; } // *** Messages wrapping 20 bytes *** message TakerGetsIssuer { // 20 bytes bytes value = 1; } message TakerPaysIssuer { // 20 bytes bytes value = 1; } // *** Messages wrapping 32 bytes *** message AccountTransactionID { // 32 bytes bytes value = 1; } message BookDirectory { // 32 btes bytes value = 1; } message Channel { // 32 bytes bytes value = 1; } message CheckID { // 32 bytes bytes value = 1; } message Hash { // 32 bytes bytes value = 1; } message Index { // 32 bytes bytes value = 1; } message InvoiceID { // 32 bytes bytes value = 1; } message PreviousTransactionID { // 32 bytes bytes value = 1; } message RootIndex { // 32 bytes bytes value = 1; } // *** Messages wrapping variable length byte arrays *** message Condition { bytes value = 1; } message Fulfillment { bytes value = 1; } message MemoData { bytes value = 1; } message MemoFormat { bytes value = 1; } message MemoType { bytes value = 1; } message MessageKey { bytes value = 1; } message PublicKey { bytes value = 1; } message PaymentChannelSignature { bytes value = 1; } message SigningPublicKey { bytes value = 1; } message TransactionSignature { bytes value = 1; } // *** Messages wrapping a Currency value *** message TakerGetsCurreny { Currency value = 1; } message TakerPaysCurrency { Currency value = 1; } // *** Messages wrapping a CurrencyAmount *** message Amount { // Note, CurrencyAmount is a oneof, that can represent an XRP drops amount // or an Issued Currency amount. However, in some transaction types/ledger // objects, this value can only be in drops. For instance, the Amount field // of a Payment transaction can be specified in XRP drops or an Issued // Currency amount, but the Amount field of a PaymentChannelClaim // transaction can only be an XRP drops amount. CurrencyAmount value = 1; } message Balance { CurrencyAmount value = 1; } message DeliverMin { CurrencyAmount value = 1; } message DeliveredAmount { CurrencyAmount value = 1; } message HighLimit { CurrencyAmount value = 1; } message LimitAmount { CurrencyAmount value = 1; } message LowLimit { CurrencyAmount value = 1; } message SendMax { CurrencyAmount value = 1; } message TakerGets { CurrencyAmount value = 1; } message TakerPays { CurrencyAmount value = 1; } // *** Messages wrapping an AccountAddress *** message Account { AccountAddress value = 1; } message Authorize { AccountAddress value = 1; } message Destination { AccountAddress value = 1; } message Owner { AccountAddress value = 1; } message RegularKey { AccountAddress value = 1; } message Unauthorize { AccountAddress value = 1; } // *** Messages wrapping a string *** message Domain { string value = 1; } // *** Aggregate type messages // Next field: 3 message SignerEntry { Account account = 1; SignerWeight signer_weight = 2; }