forked from cerc-io/plugeth
148 lines
3.8 KiB
Protocol Buffer
148 lines
3.8 KiB
Protocol Buffer
|
// This file originates from the SatoshiLabs Trezor `common` repository at:
|
||
|
// https://github.com/trezor/trezor-common/blob/master/protob/messages-common.proto
|
||
|
// dated 28.05.2019, commit 893fd219d4a01bcffa0cd9cfa631856371ec5aa9.
|
||
|
|
||
|
syntax = "proto2";
|
||
|
package hw.trezor.messages.common;
|
||
|
|
||
|
/**
|
||
|
* Response: Success of the previous request
|
||
|
* @end
|
||
|
*/
|
||
|
message Success {
|
||
|
optional string message = 1; // human readable description of action or request-specific payload
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Response: Failure of the previous request
|
||
|
* @end
|
||
|
*/
|
||
|
message Failure {
|
||
|
optional FailureType code = 1; // computer-readable definition of the error state
|
||
|
optional string message = 2; // human-readable message of the error state
|
||
|
enum FailureType {
|
||
|
Failure_UnexpectedMessage = 1;
|
||
|
Failure_ButtonExpected = 2;
|
||
|
Failure_DataError = 3;
|
||
|
Failure_ActionCancelled = 4;
|
||
|
Failure_PinExpected = 5;
|
||
|
Failure_PinCancelled = 6;
|
||
|
Failure_PinInvalid = 7;
|
||
|
Failure_InvalidSignature = 8;
|
||
|
Failure_ProcessError = 9;
|
||
|
Failure_NotEnoughFunds = 10;
|
||
|
Failure_NotInitialized = 11;
|
||
|
Failure_PinMismatch = 12;
|
||
|
Failure_FirmwareError = 99;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Response: Device is waiting for HW button press.
|
||
|
* @auxstart
|
||
|
* @next ButtonAck
|
||
|
*/
|
||
|
message ButtonRequest {
|
||
|
optional ButtonRequestType code = 1;
|
||
|
optional string data = 2;
|
||
|
/**
|
||
|
* Type of button request
|
||
|
*/
|
||
|
enum ButtonRequestType {
|
||
|
ButtonRequest_Other = 1;
|
||
|
ButtonRequest_FeeOverThreshold = 2;
|
||
|
ButtonRequest_ConfirmOutput = 3;
|
||
|
ButtonRequest_ResetDevice = 4;
|
||
|
ButtonRequest_ConfirmWord = 5;
|
||
|
ButtonRequest_WipeDevice = 6;
|
||
|
ButtonRequest_ProtectCall = 7;
|
||
|
ButtonRequest_SignTx = 8;
|
||
|
ButtonRequest_FirmwareCheck = 9;
|
||
|
ButtonRequest_Address = 10;
|
||
|
ButtonRequest_PublicKey = 11;
|
||
|
ButtonRequest_MnemonicWordCount = 12;
|
||
|
ButtonRequest_MnemonicInput = 13;
|
||
|
ButtonRequest_PassphraseType = 14;
|
||
|
ButtonRequest_UnknownDerivationPath = 15;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Request: Computer agrees to wait for HW button press
|
||
|
* @auxend
|
||
|
*/
|
||
|
message ButtonAck {
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Response: Device is asking computer to show PIN matrix and awaits PIN encoded using this matrix scheme
|
||
|
* @auxstart
|
||
|
* @next PinMatrixAck
|
||
|
*/
|
||
|
message PinMatrixRequest {
|
||
|
optional PinMatrixRequestType type = 1;
|
||
|
/**
|
||
|
* Type of PIN request
|
||
|
*/
|
||
|
enum PinMatrixRequestType {
|
||
|
PinMatrixRequestType_Current = 1;
|
||
|
PinMatrixRequestType_NewFirst = 2;
|
||
|
PinMatrixRequestType_NewSecond = 3;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Request: Computer responds with encoded PIN
|
||
|
* @auxend
|
||
|
*/
|
||
|
message PinMatrixAck {
|
||
|
required string pin = 1; // matrix encoded PIN entered by user
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Response: Device awaits encryption passphrase
|
||
|
* @auxstart
|
||
|
* @next PassphraseAck
|
||
|
*/
|
||
|
message PassphraseRequest {
|
||
|
optional bool on_device = 1; // passphrase is being entered on the device
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Request: Send passphrase back
|
||
|
* @next PassphraseStateRequest
|
||
|
*/
|
||
|
message PassphraseAck {
|
||
|
optional string passphrase = 1;
|
||
|
optional bytes state = 2; // expected device state
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Response: Device awaits passphrase state
|
||
|
* @next PassphraseStateAck
|
||
|
*/
|
||
|
message PassphraseStateRequest {
|
||
|
optional bytes state = 1; // actual device state
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Request: Send passphrase state back
|
||
|
* @auxend
|
||
|
*/
|
||
|
message PassphraseStateAck {
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Structure representing BIP32 (hierarchical deterministic) node
|
||
|
* Used for imports of private key into the device and exporting public key out of device
|
||
|
* @embed
|
||
|
*/
|
||
|
message HDNodeType {
|
||
|
required uint32 depth = 1;
|
||
|
required uint32 fingerprint = 2;
|
||
|
required uint32 child_num = 3;
|
||
|
required bytes chain_code = 4;
|
||
|
optional bytes private_key = 5;
|
||
|
optional bytes public_key = 6;
|
||
|
}
|