Skip to content

Commit d5718f8

Browse files
authored
Merge pull request #19 from keepkey/py3-multi-sig
Fix base58 functions and protobuf build
2 parents ffdb067 + 6c3e70a commit d5718f8

9 files changed

Lines changed: 1093 additions & 644 deletions

File tree

README.rst

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,3 +86,13 @@ How to install (Debian-Ubuntu)
8686
* git clone https://github.com/keepkey/python-keepkey.git
8787
* cd python-keepkey
8888
* python setup.py install (or develop)
89+
90+
91+
Running Tests
92+
-------------
93+
94+
To run unit tests that don't require a device:
95+
96+
.. code:: shell
97+
98+
$ python tests/unit/*.py

build_pb.sh

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,7 @@ cd $DEVICE_PROTO
1515
echo "Building with protoc version: $(protoc --version)"
1616
for i in messages types exchange ; do
1717
protoc --python_out=$CURDIR/keepkeylib/ -I/usr/include -I. $i.proto
18-
sed -Ee 's/^import ([^.]+_pb2)/from . import \1/' -i "" $CURDIR/keepkeylib/"$i"_pb2.py
18+
sed -i -Ee 's/^import ([^.]+_pb2)/from . import \1/' $CURDIR/keepkeylib/"$i"_pb2.py
1919
done
2020

21-
cd $CURDIR/keepkeylib
22-
sed -i "" 's/5000\([2-5]\)/6000\1/g' types_pb2.py
21+
sed -i 's/5000\([2-5]\)/6000\1/g' $CURDIR/keepkeylib/types_pb2.py

keepkeylib/exchange.py

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
from protobuf3.fields import Int64Field, MessageField, UInt64Field, BytesField, StringField
2+
from protobuf3.message import Message
3+
4+
5+
class ExchangeAddress(Message):
6+
pass
7+
8+
9+
class ExchangeResponseV2(Message):
10+
pass
11+
12+
13+
class SignedExchangeResponse(Message):
14+
pass
15+
16+
17+
class ExchangeResponse(Message):
18+
pass
19+
20+
ExchangeAddress.add_field('coin_type', StringField(field_number=1, optional=True))
21+
ExchangeAddress.add_field('address', StringField(field_number=2, optional=True))
22+
ExchangeAddress.add_field('dest_tag', StringField(field_number=3, optional=True))
23+
ExchangeAddress.add_field('rs_address', StringField(field_number=4, optional=True))
24+
ExchangeResponseV2.add_field('deposit_address', MessageField(field_number=1, optional=True, message_cls=ExchangeAddress))
25+
ExchangeResponseV2.add_field('deposit_amount', BytesField(field_number=2, optional=True))
26+
ExchangeResponseV2.add_field('expiration', Int64Field(field_number=3, optional=True))
27+
ExchangeResponseV2.add_field('quoted_rate', BytesField(field_number=4, optional=True))
28+
ExchangeResponseV2.add_field('withdrawal_address', MessageField(field_number=5, optional=True, message_cls=ExchangeAddress))
29+
ExchangeResponseV2.add_field('withdrawal_amount', BytesField(field_number=6, optional=True))
30+
ExchangeResponseV2.add_field('return_address', MessageField(field_number=7, optional=True, message_cls=ExchangeAddress))
31+
ExchangeResponseV2.add_field('api_key', BytesField(field_number=8, optional=True))
32+
ExchangeResponseV2.add_field('miner_fee', BytesField(field_number=9, optional=True))
33+
ExchangeResponseV2.add_field('order_id', BytesField(field_number=10, optional=True))
34+
SignedExchangeResponse.add_field('response', MessageField(field_number=1, optional=True, message_cls=ExchangeResponse))
35+
SignedExchangeResponse.add_field('signature', BytesField(field_number=2, optional=True))
36+
SignedExchangeResponse.add_field('responseV2', MessageField(field_number=3, optional=True, message_cls=ExchangeResponseV2))
37+
ExchangeResponse.add_field('deposit_address', MessageField(field_number=1, optional=True, message_cls=ExchangeAddress))
38+
ExchangeResponse.add_field('deposit_amount', UInt64Field(field_number=2, optional=True))
39+
ExchangeResponse.add_field('expiration', Int64Field(field_number=3, optional=True))
40+
ExchangeResponse.add_field('quoted_rate', UInt64Field(field_number=4, optional=True))
41+
ExchangeResponse.add_field('withdrawal_address', MessageField(field_number=5, optional=True, message_cls=ExchangeAddress))
42+
ExchangeResponse.add_field('withdrawal_amount', UInt64Field(field_number=6, optional=True))
43+
ExchangeResponse.add_field('return_address', MessageField(field_number=7, optional=True, message_cls=ExchangeAddress))
44+
ExchangeResponse.add_field('api_key', BytesField(field_number=8, optional=True))
45+
ExchangeResponse.add_field('miner_fee', UInt64Field(field_number=9, optional=True))
46+
ExchangeResponse.add_field('order_id', BytesField(field_number=10, optional=True))

keepkeylib/exchange_pb2.py

Lines changed: 55 additions & 31 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)