Skip to content
Closed
4 changes: 2 additions & 2 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[submodule "device-protocol"]
path = device-protocol
url = https://github.com/keepkey/device-protocol.git
branch = master
url = https://github.com/BitHighlander/device-protocol.git
branch = feature/solana-proto
[submodule "keepkeylib/eth/ethereum-lists"]
path = keepkeylib/eth/ethereum-lists
url = https://github.com/keepkey/ethereum-lists.git
Expand Down
2 changes: 1 addition & 1 deletion build_pb.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ CURDIR=$(pwd)
cd "device-protocol"

echo "Building with protoc version: $(protoc --version)"
for i in messages messages-ethereum messages-eos messages-nano messages-cosmos messages-ripple messages-binance messages-tendermint messages-thorchain messages-osmosis messages-mayachain types ; do
for i in messages messages-ethereum messages-eos messages-nano messages-cosmos messages-ripple messages-binance messages-tendermint messages-thorchain messages-osmosis messages-mayachain messages-solana types ; do
protoc --python_out=$CURDIR/keepkeylib/ -I/usr/include -I. $i.proto
i=${i/-/_}
sed -i -Ee 's/^import ([^.]+_pb2)/from . import \1/' $CURDIR/keepkeylib/"$i"_pb2.py
Expand Down
29 changes: 29 additions & 0 deletions keepkeylib/client.py
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@
from . import messages_tendermint_pb2 as tendermint_proto
from . import messages_thorchain_pb2 as thorchain_proto
from . import messages_mayachain_pb2 as mayachain_proto
from . import messages_solana_pb2 as solana_proto
from . import types_pb2 as types
from . import eos
from . import nano
Expand Down Expand Up @@ -823,6 +824,34 @@ def nano_sign_tx(
)
return self.call(msg)

@expect(solana_proto.SolanaAddress)
def solana_get_address(self, address_n, show_display=False, coin_name='Solana'):
msg = solana_proto.SolanaGetAddress(
coin_name=coin_name,
address_n=address_n,
show_display=show_display)
return self.call(msg)

@expect(solana_proto.SolanaSignedTx)
def solana_sign_tx(self, address_n, raw_tx, token_info=None, coin_name='Solana'):
msg = solana_proto.SolanaSignTx(
coin_name=coin_name,
address_n=address_n,
raw_tx=raw_tx,
token_info=token_info or [],
)
return self.call(msg)

@expect(solana_proto.SolanaMessageSignature)
def solana_sign_message(self, address_n, message, show_display=False, coin_name='Solana'):
msg = solana_proto.SolanaSignMessage(
coin_name=coin_name,
address_n=address_n,
message=message,
show_display=show_display,
)
return self.call(msg)



@field('address')
Expand Down
3 changes: 3 additions & 0 deletions keepkeylib/mapping.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
from . import messages_tendermint_pb2 as tendermint_proto
from . import messages_thorchain_pb2 as thorchain_proto
from . import messages_mayachain_pb2 as mayachain_proto
from . import messages_solana_pb2 as solana_proto

map_type_to_class = {}
map_class_to_type = {}
Expand Down Expand Up @@ -36,6 +37,8 @@ def build_map():
msg_class = getattr(thorchain_proto, msg_name)
elif msg_type.startswith('MessageType_Mayachain'):
msg_class = getattr(mayachain_proto, msg_name)
elif msg_type.startswith('MessageType_Solana'):
msg_class = getattr(solana_proto, msg_name)
else:
msg_class = getattr(proto, msg_name)

Expand Down
188 changes: 94 additions & 94 deletions keepkeylib/messages_pb2.py

Large diffs are not rendered by default.

Loading