mirror of
https://github.com/trezor/trezor-firmware.git
synced 2024-12-15 10:58:09 +00:00
175 lines
5.8 KiB
Protocol Buffer
175 lines
5.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
|
|
optional bool chunkify = 3; // display the address in chunks of 4 characters
|
|
}
|
|
|
|
/**
|
|
* Response: Contains Tezos address derived from device private seed
|
|
* @end
|
|
*/
|
|
message TezosAddress {
|
|
required 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
|
|
optional bool chunkify = 3; // display the public key in chunks of 4 characters
|
|
}
|
|
|
|
/**
|
|
* Response: Contains Tezos public key derived from device private seed
|
|
* @end
|
|
*/
|
|
message TezosPublicKey {
|
|
required string public_key = 1; // b58 encoded Tezos public key with prefix
|
|
}
|
|
|
|
/**
|
|
* 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
|
|
required bytes branch = 2;
|
|
|
|
optional TezosRevealOp reveal = 3; // Tezos reveal operation (may be bundled with other op)
|
|
optional TezosTransactionOp transaction = 4; // Tezos transaction operation
|
|
optional TezosOriginationOp origination = 5; // Tezos origination operation
|
|
optional TezosDelegationOp delegation = 6; // Tezos delegation operation
|
|
optional TezosProposalOp proposal = 7; // Tezos proposal operation
|
|
optional TezosBallotOp ballot = 8; // Tezos ballot operation
|
|
optional bool chunkify = 9; // display the address in chunks of 4 characters
|
|
|
|
/*
|
|
* Tezos contract ID
|
|
*/
|
|
message TezosContractID {
|
|
required TezosContractType tag = 1;
|
|
required bytes hash = 2; // Implicit = 21B, originated = 20B + 1B padding
|
|
/*
|
|
* Type of Tezos Contract type
|
|
*/
|
|
enum TezosContractType {
|
|
Implicit = 0;
|
|
Originated = 1;
|
|
}
|
|
}
|
|
/**
|
|
* Structure representing information for reveal
|
|
*/
|
|
message TezosRevealOp {
|
|
required bytes source = 7;
|
|
required uint64 fee = 2;
|
|
required uint64 counter = 3;
|
|
required uint64 gas_limit = 4;
|
|
required uint64 storage_limit = 5;
|
|
required bytes public_key = 6;
|
|
}
|
|
/**
|
|
* Structure representing information for transaction
|
|
*/
|
|
message TezosTransactionOp {
|
|
required bytes source = 9;
|
|
required uint64 fee = 2;
|
|
required uint64 counter = 3;
|
|
required uint64 gas_limit = 4;
|
|
required uint64 storage_limit = 5;
|
|
required uint64 amount = 6;
|
|
required TezosContractID destination = 7;
|
|
optional bytes parameters = 8;
|
|
optional TezosParametersManager parameters_manager = 10;
|
|
|
|
message TezosParametersManager {
|
|
optional bytes set_delegate = 1;
|
|
optional bool cancel_delegate = 2;
|
|
optional TezosManagerTransfer transfer = 3;
|
|
|
|
message TezosManagerTransfer {
|
|
required TezosContractID destination = 1;
|
|
required uint64 amount = 2;
|
|
}
|
|
}
|
|
}
|
|
/**
|
|
* Structure representing information for origination
|
|
*/
|
|
message TezosOriginationOp {
|
|
required bytes source = 12;
|
|
required uint64 fee = 2;
|
|
required uint64 counter = 3;
|
|
required uint64 gas_limit = 4;
|
|
required uint64 storage_limit = 5;
|
|
optional bytes manager_pubkey = 6;
|
|
required uint64 balance = 7;
|
|
optional bool spendable = 8;
|
|
optional bool delegatable = 9;
|
|
optional bytes delegate = 10;
|
|
required bytes script = 11;
|
|
}
|
|
/**
|
|
* Structure representing information for delegation
|
|
*/
|
|
message TezosDelegationOp {
|
|
required bytes source = 7;
|
|
required uint64 fee = 2;
|
|
required uint64 counter = 3;
|
|
required uint64 gas_limit = 4;
|
|
required uint64 storage_limit = 5;
|
|
required bytes delegate = 6;
|
|
}
|
|
/**
|
|
* Structure representing information for proposal
|
|
*/
|
|
message TezosProposalOp {
|
|
required bytes source = 1; //Contains only public_key_hash, not to be confused with TezosContractID
|
|
required uint64 period = 2;
|
|
repeated bytes proposals = 4;
|
|
}
|
|
/**
|
|
* Structure representing information for ballot
|
|
*/
|
|
message TezosBallotOp {
|
|
required bytes source = 1; //Contains only public_key_hash, not to be confused with TezosContractID
|
|
required uint64 period = 2;
|
|
required bytes proposal = 3;
|
|
required TezosBallotType ballot = 4;
|
|
|
|
enum TezosBallotType {
|
|
Yay = 0;
|
|
Nay = 1;
|
|
Pass = 2;
|
|
}
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Response: Contains Tezos transaction signature
|
|
* @end
|
|
*/
|
|
message TezosSignedTx {
|
|
required string signature = 1; // Tezos b58 encoded transaction signature with prefix
|
|
required bytes sig_op_contents = 2; // operation_bytes + signed operation_bytes
|
|
required string operation_hash = 3; // b58 encoded hashed operation contents with prefix
|
|
}
|