Permalink
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
go-ethereum/accounts/usbwallet/trezor/messages-ethereum.proto
Go to fileThis commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// This file originates from the SatoshiLabs Trezor `common` repository at: | |
// https://github.com/trezor/trezor-common/blob/master/protob/messages-ethereum.proto | |
// dated 28.05.2019, commit 893fd219d4a01bcffa0cd9cfa631856371ec5aa9. | |
syntax = "proto2"; | |
package hw.trezor.messages.ethereum; | |
// Sugar for easier handling in Java | |
option java_package = "com.satoshilabs.trezor.lib.protobuf"; | |
option java_outer_classname = "TrezorMessageEthereum"; | |
import "messages-common.proto"; | |
/** | |
* Request: Ask device for public key corresponding to address_n path | |
* @start | |
* @next EthereumPublicKey | |
* @next Failure | |
*/ | |
message EthereumGetPublicKey { | |
repeated uint32 address_n = 1; // BIP-32 path to derive the key from master node | |
optional bool show_display = 2; // optionally show on display before sending the result | |
} | |
/** | |
* Response: Contains public key derived from device private seed | |
* @end | |
*/ | |
message EthereumPublicKey { | |
optional hw.trezor.messages.common.HDNodeType node = 1; // BIP32 public node | |
optional string xpub = 2; // serialized form of public node | |
} | |
/** | |
* Request: Ask device for Ethereum address corresponding to address_n path | |
* @start | |
* @next EthereumAddress | |
* @next Failure | |
*/ | |
message EthereumGetAddress { | |
repeated uint32 address_n = 1; // BIP-32 path to derive the key from master node | |
optional bool show_display = 2; // optionally show on display before sending the result | |
} | |
/** | |
* Response: Contains an Ethereum address derived from device private seed | |
* @end | |
*/ | |
message EthereumAddress { | |
optional bytes addressBin = 1; // Ethereum address as 20 bytes (legacy firmwares) | |
optional string addressHex = 2; // Ethereum address as hex string (newer firmwares) | |
} | |
/** | |
* Request: Ask device to sign transaction | |
* All fields are optional from the protocol's point of view. Each field defaults to value `0` if missing. | |
* Note: the first at most 1024 bytes of data MUST be transmitted as part of this message. | |
* @start | |
* @next EthereumTxRequest | |
* @next Failure | |
*/ | |
message EthereumSignTx { | |
repeated uint32 address_n = 1; // BIP-32 path to derive the key from master node | |
optional bytes nonce = 2; // <=256 bit unsigned big endian | |
optional bytes gas_price = 3; // <=256 bit unsigned big endian (in wei) | |
optional bytes gas_limit = 4; // <=256 bit unsigned big endian | |
optional bytes toBin = 5; // recipient address (20 bytes, legacy firmware) | |
optional string toHex = 11; // recipient address (hex string, newer firmware) | |
optional bytes value = 6; // <=256 bit unsigned big endian (in wei) | |
optional bytes data_initial_chunk = 7; // The initial data chunk (<= 1024 bytes) | |
optional uint32 data_length = 8; // Length of transaction payload | |
optional uint32 chain_id = 9; // Chain Id for EIP 155 | |
optional uint32 tx_type = 10; // (only for Wanchain) | |
} | |
/** | |
* Response: Device asks for more data from transaction payload, or returns the signature. | |
* If data_length is set, device awaits that many more bytes of payload. | |
* Otherwise, the signature_* fields contain the computed transaction signature. All three fields will be present. | |
* @end | |
* @next EthereumTxAck | |
*/ | |
message EthereumTxRequest { | |
optional uint32 data_length = 1; // Number of bytes being requested (<= 1024) | |
optional uint32 signature_v = 2; // Computed signature (recovery parameter, limited to 27 or 28) | |
optional bytes signature_r = 3; // Computed signature R component (256 bit) | |
optional bytes signature_s = 4; // Computed signature S component (256 bit) | |
} | |
/** | |
* Request: Transaction payload data. | |
* @next EthereumTxRequest | |
*/ | |
message EthereumTxAck { | |
optional bytes data_chunk = 1; // Bytes from transaction payload (<= 1024 bytes) | |
} | |
/** | |
* Request: Ask device to sign message | |
* @start | |
* @next EthereumMessageSignature | |
* @next Failure | |
*/ | |
message EthereumSignMessage { | |
repeated uint32 address_n = 1; // BIP-32 path to derive the key from master node | |
optional bytes message = 2; // message to be signed | |
} | |
/** | |
* Response: Signed message | |
* @end | |
*/ | |
message EthereumMessageSignature { | |
optional bytes addressBin = 1; // address used to sign the message (20 bytes, legacy firmware) | |
optional bytes signature = 2; // signature of the message | |
optional string addressHex = 3; // address used to sign the message (hex string, newer firmware) | |
} | |
/** | |
* Request: Ask device to verify message | |
* @start | |
* @next Success | |
* @next Failure | |
*/ | |
message EthereumVerifyMessage { | |
optional bytes addressBin = 1; // address to verify (20 bytes, legacy firmware) | |
optional bytes signature = 2; // signature to verify | |
optional bytes message = 3; // message to verify | |
optional string addressHex = 4; // address to verify (hex string, newer firmware) | |
} |