1
0
mirror of https://github.com/trezor/trezor-firmware.git synced 2024-11-19 22:18:13 +00:00
trezor-firmware/protob/messages-tezos.proto
2018-07-29 16:17:00 +02:00

126 lines
3.8 KiB
Protocol Buffer

syntax = "proto2";
package hw.trezor.messages.tezos;
// Sugar for easier handling in Java
option java_package = "com.satoshilabs.trezor.lib.protobuf";
option java_outer_classname = "TrezorMessageTezos";
/**
* Request: Ask device for Tezos address corresponding to address_n path
* @start
* @next TezosAddress
* @next Failure
*/
message TezosGetAddress {
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 Tezos address derived from device private seed
* @end
*/
message TezosAddress {
optional string address = 1; // Coin address in Base58 encoding
}
/**
* Request: Ask device for Tezos public key corresponding to address_n path
* @start
* @next TezosPublicKey
*/
message TezosGetPublicKey {
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 Tezos public key derived from device private seed
* @end
*/
message TezosPublicKey {
optional bytes public_key = 1; // Tezos public key
}
/**
* Request: Ask device to sign Tezos transaction
* @start
* @next TezosSignedTx
*/
message TezosSignTx {
repeated uint32 address_n = 1; // BIP-32 path to derive the key from master node
optional TezosOperationCommon operation = 2; // Tezos operation structure
optional TezosTransactionType transaction = 3; // Tezos transaction part
optional TezosOriginationType origination = 4; // Tezos origination part
optional TezosDelegationType delegation = 5; // Tezos delegation part
/*
* Tezos contract ID
*/
message TezosContractID {
optional TezosContractType tag = 1;
optional bytes hash = 2; // Implicit = 21B, originated = 20B + 1B padding
/*
* Type of Tezos Contract type
*/
enum TezosContractType {
Implicit = 0;
Originated = 1;
}
}
/*
* Structure representing the common part for Tezos operations
*/
message TezosOperationCommon {
optional bytes branch = 1;
optional TezosOperationType tag = 2;
optional TezosContractID source = 3;
optional uint64 fee = 4;
optional uint64 counter = 5;
optional uint64 gas_limit = 6;
optional uint64 storage_limit = 7;
/*
* Type of Tezos operation
*/
enum TezosOperationType {
Transaction = 8;
Origination = 9;
Delegation = 10;
}
}
/*
* Structure representing additional information for transaction
*/
message TezosTransactionType {
optional uint64 amount = 1;
optional TezosContractID destination = 2;
optional bytes parameters = 3;
}
/*
* Structure representing additional information for origination
*/
message TezosOriginationType {
optional bytes manager_pubkey = 1;
optional uint64 balance = 2;
optional bool spendable = 3;
optional bool delegatable = 4;
optional bytes delegate = 5; // 1B tag + 20B public key hash
optional bytes script = 6;
}
/*
* Structure representing additional information for delegation
*/
message TezosDelegationType {
optional bytes delegate = 1; // 1B tag + 20B public key hash
}
}
/**
* Response: Contains Tezos transaction signature
* @end
*/
message TezosSignedTx {
optional bytes signature = 1; // Tezos transaction signature
optional bytes sig_op_contents = 2; // Signed operation contents
optional string operation_hash = 3; // b58 check encoded blake2b hashed operation contents
}