syntax = "proto2"; package hw.trezor.messages.ripple; // Sugar for easier handling in Java option java_package = "com.satoshilabs.trezor.lib.protobuf"; option java_outer_classname = "TrezorMessageRipple"; /** * Request: Address at the specified index * @start * @next RippleAddress */ message RippleGetAddress { repeated uint32 address_n = 1; // BIP-32 path. For compatibility with other wallets, must be m/44'/144'/index' optional bool show_display = 2; // optionally show on display before sending the result } /** * Response: Address for the given index * @end */ message RippleAddress { required string address = 1; // Address in Ripple format (base58 of a pubkey with checksum) } /** * Request: ask device to sign Ripple transaction * @start * @next RippleSignedTx */ message RippleSignTx { repeated uint32 address_n = 1; // BIP-32 path. For compatibility with other wallets, must be m/44'/144'/index' required uint64 fee = 2; // fee (in drops) for the transaction optional uint32 flags = 3 [default=0]; // transaction flags required uint32 sequence = 4; // transaction sequence number optional uint32 last_ledger_sequence = 5; // see https://developers.ripple.com/reliable-transaction-submission.html#lastledgersequence required RipplePayment payment = 6; // Payment transaction type /** * Payment transaction type * - simple A sends money to B * - only a subset of fields is supported * - see https://developers.ripple.com/payment.html */ message RipplePayment { required uint64 amount = 1; // only XRP is supported at the moment so this an integer required string destination = 2; // destination account address optional uint32 destination_tag = 3; // destination tag to identify payments } } /** * Response: signature for transaction * @end */ message RippleSignedTx { required bytes signature = 1; required bytes serialized_tx = 2; }