From c8e3242efb2d435a40393c7487df520808d1b145 Mon Sep 17 00:00:00 2001 From: slush Date: Thu, 15 Nov 2012 10:35:48 +0000 Subject: [PATCH] Refactored protobuf directory --- protobuf/__init__.py | 0 protobuf/bitkey.proto | 154 ++++++++++++++++++++++++++++++++++++++++++ protobuf/build.sh | 5 ++ 3 files changed, 159 insertions(+) create mode 100644 protobuf/__init__.py create mode 100644 protobuf/bitkey.proto create mode 100755 protobuf/build.sh diff --git a/protobuf/__init__.py b/protobuf/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/protobuf/bitkey.proto b/protobuf/bitkey.proto new file mode 100644 index 000000000..2390fe692 --- /dev/null +++ b/protobuf/bitkey.proto @@ -0,0 +1,154 @@ +enum Algorithm { + BIP32 = 0; + ELECTRUM = 1; +} + +enum ScriptType { + PAYTOADDRESS = 0; + PAYTOSCRIPTHASH = 1; +} + +// Response: None or Features +message Initialize { +} + +message Features { + optional string version = 1; + optional bool otp = 2; + optional bool pin = 3; + optional bool spv = 4; + optional uint64 maxfee_kb = 5; + repeated Algorithm algo = 6; +} + +// Description: Test if another side is still alive. +// Response: None or Success +message Ping { + optional string message = 1; +} + +// Description: Response message for previous request with given id. +message Success { + optional string message = 1; +} + +// Description: Response message for previous request with given id. +message Failure { + optional int32 code = 1; + optional string message = 2; +} + +// Response: UUID or Failure +message GetUUID { +} + +message UUID { + required bytes UUID = 1; +} + +message OtpRequest { + optional string message = 1; +} + +message OtpAck { + required string otp = 1; +} + +message OtpCancel { +} + +message PinRequest { + optional string message = 1; +} + +message PinAck { + required string pin = 1; +} + +message PinCancel { +} + +// Response: OtpRequest, Entropy, Failure +message GetEntropy { + required uint32 size = 1; +} + +message Entropy { + required bytes entropy = 1; +} + +// Response: Success, OtpRequest, PinRequest, Failure +message SetMaxFeeKb { + required uint64 maxfee_kb= 1; +} + +// Response: MasterPublicKey, Failure +message GetMasterPublicKey { + required Algorithm algo = 1 [default=BIP32]; +} + +message MasterPublicKey { + required bytes key = 1; +} + +// Response: Success, OtpRequest, Failure +message LoadDevice { + required string seed = 1; + optional bool otp = 2 [default=true]; + optional string pin = 3; + optional bool spv = 4 [default=true]; +} + +// Response: Success, OtpRequest, PinRequest, Failure +message ResetDevice { +} + +message TxOutput { + required string address = 1; + repeated uint32 address_n = 2; + required uint64 amount = 3; + required ScriptType script_type = 4; + repeated bytes script_args = 5; +} + +// Response: Success, SignedInput, Failure +message TxInput { + repeated uint32 address_n = 1; + required uint64 amount = 2; + required bytes prev_hash = 3; + required uint32 prev_index = 4; + optional bytes script_sig = 5; +} + +// Response: SignedTx, Success, OtpRequest, PinRequest, Failure +message SignTx { + required Algorithm algo = 1 [default=BIP32]; + optional bool stream = 2; // enable streaming + required uint64 fee = 3; + repeated TxOutput outputs = 4; + repeated TxInput inputs = 5; + optional uint32 inputs_count = 6; // for streaming + optional bytes random = 7; +} + +message SignedTx { + repeated bytes signature = 1; +} + +/* +inputs = [] # list of TxInput +for i in inputs: + for x in inputs: + send(x) + + signature = send(SignInput(i)) +*/ + +// Response: SignedInput, Failure +message SignInput { + required TxInput input = 1; +} + +message SignedInput { + required bytes signature = 1; +} \ No newline at end of file diff --git a/protobuf/build.sh b/protobuf/build.sh new file mode 100755 index 000000000..6dfc18d47 --- /dev/null +++ b/protobuf/build.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +cd `dirname $0` + +protoc --python_out=../bitkeylib/ bitkey.proto