Merge pull request #57 from clementperon/tobalaba

Add Tobalaba token support
This commit is contained in:
Jean P
2019-03-26 14:40:01 +01:00
committed by GitHub
9 changed files with 32 additions and 6 deletions

View File

@@ -131,9 +131,13 @@ else ifeq ($(CHAIN),tomochain)
APP_LOAD_PARAMS += --path "44'/889'"
DEFINES += CHAINID_UPCASE=\"TOMOCHAIN\" CHAINID_COINNAME=\"TOMO\" CHAIN_KIND=CHAIN_KIND_TOMOCHAIN CHAIN_ID=88
APPNAME = "TomoChain"
else ifeq ($(CHAIN),tobalaba)
APP_LOAD_PARAMS += --path "44'/401697'"
DEFINES += CHAINID_UPCASE=\"TOBALABA\" CHAINID_COINNAME=\"TOBALABA\" CHAIN_KIND=CHAIN_KIND_TOBALABA CHAIN_ID=401697
APPNAME = "Tobalaba"
else
ifeq ($(filter clean,$(MAKECMDGOALS)),)
$(error Unsupported CHAIN - use ethereum, ethereum_classic, expanse, poa, rsk, rsk_testnet, ubiq, wanchain, kusd, musicoin, pirl, akroma, atheios, callisto, ethersocial, ellaism, ether1, ethergem, gochain, mix, reosc, hpb, tomochain)
$(error Unsupported CHAIN - use ethereum, ethereum_classic, expanse, poa, rsk, rsk_testnet, ubiq, wanchain, kusd, musicoin, pirl, akroma, atheios, callisto, ethersocial, ellaism, ether1, ethergem, gochain, mix, reosc, hpb, tomochain, tobalaba)
endif
endif
@@ -251,4 +255,4 @@ include $(BOLOS_SDK)/Makefile.rules
dep/%.d: %.c Makefile
listvariants:
@echo VARIANTS CHAIN ethereum ethereum_classic expanse poa rsk rsk_testnet ubiq wanchain kusd pirl akroma atheios callisto ethersocial ether1 gochain musicoin ethergem mix ellaism reosc hpb tomochain
@echo VARIANTS CHAIN ethereum ethereum_classic expanse poa rsk rsk_testnet ubiq wanchain kusd pirl akroma atheios callisto ethersocial ether1 gochain musicoin ethergem mix ellaism reosc hpb tomochain tobalaba

BIN
blue_app_tobalaba.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

@@ -28,6 +28,9 @@ import binascii
from ethBase import Transaction, UnsignedTransaction, unsigned_tx_from_tx
from rlp import encode
# Define here Chain_ID for EIP-155
CHAIN_ID = 0
try:
from rlp.utils import decode_hex, encode_hex, str_to_bytes
except:
@@ -75,9 +78,12 @@ tx = Transaction(
to=decode_hex(args.to[2:]),
value=int(amount),
data=args.data,
v=CHAIN_ID,
r=0,
s=0
)
encodedTx = encode(unsigned_tx_from_tx(tx), UnsignedTransaction)
encodedTx = encode(tx, Transaction)
donglePath = parse_bip32_path(args.path)
apdu = bytearray.fromhex("e0040000")
@@ -88,7 +94,13 @@ apdu += donglePath + encodedTx
dongle = getDongle(True)
result = dongle.exchange(bytes(apdu))
v = result[0]
# Needs to recover (main.c:1121)
if (CHAIN_ID*2 + 35) + 1 > 255:
ecc_parity = result[0] - ((CHAIN_ID*2 + 35) % 256)
v = (CHAIN_ID*2 + 35) + ecc_parity
else:
v = result[0]
r = int(binascii.hexlify(result[1:1 + 32]), 16)
s = int(binascii.hexlify(result[1 + 32: 1 + 32 + 32]), 16)

BIN
nanos_app_tobalaba.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -44,7 +44,8 @@ typedef enum chain_kind_e {
CHAIN_KIND_MIX,
CHAIN_KIND_REOSC,
CHAIN_KIND_HPB,
CHAIN_KIND_TOMOCHAIN
CHAIN_KIND_TOMOCHAIN,
CHAIN_KIND_TOBALABA
} chain_kind_t;
typedef struct chain_config_s {

View File

@@ -1849,6 +1849,9 @@ tokenDefinition_t* getKnownToken() {
case CHAIN_KIND_TOMOCHAIN:
numTokens = NUM_TOKENS_TOMOCHAIN;
break;
case CHAIN_KIND_TOBALABA:
numTokens = NUM_TOKENS_TOBALABA;
break;
}
for (i=0; i<numTokens; i++) {
switch(chainConfig->kind) {
@@ -1918,6 +1921,9 @@ tokenDefinition_t* getKnownToken() {
case CHAIN_KIND_TOMOCHAIN:
currentToken = (tokenDefinition_t *)PIC(&TOKENS_TOMOCHAIN[i]);
break;
case CHAIN_KIND_TOBALABA:
currentToken = (tokenDefinition_t *)PIC(&TOKENS_TOBALABA[i]);
break;
}
if (os_memcmp(currentToken->address, tmpContent.txContent.destination, 20) == 0) {
return currentToken;

View File

@@ -1180,5 +1180,6 @@ const tokenDefinition_t const TOKENS_HPB[NUM_TOKENS_HPB] = {};
const tokenDefinition_t const TOKENS_TOMOCHAIN[NUM_TOKENS_TOMOCHAIN] = {};
#endif
const tokenDefinition_t const TOKENS_TOBALABA[NUM_TOKENS_TOBALABA] = {};
#endif

View File

@@ -50,6 +50,7 @@ typedef struct tokenDefinition_t {
#define NUM_TOKENS_REOSC 0
#define NUM_TOKENS_HPB 0
#define NUM_TOKENS_TOMOCHAIN 0
#define NUM_TOKENS_TOBALABA 0
extern tokenDefinition_t const TOKENS_AKROMA[NUM_TOKENS_AKROMA];
extern tokenDefinition_t const TOKENS_ELLAISM[NUM_TOKENS_ELLAISM];
@@ -73,6 +74,7 @@ extern tokenDefinition_t const TOKENS_MIX[NUM_TOKENS_MIX];
extern tokenDefinition_t const TOKENS_REOSC[NUM_TOKENS_REOSC];
extern tokenDefinition_t const TOKENS_HPB[NUM_TOKENS_HPB];
extern tokenDefinition_t const TOKENS_TOMOCHAIN[NUM_TOKENS_TOMOCHAIN];
extern tokenDefinition_t const TOKENS_TOBALABA[NUM_TOKENS_TOBALABA];
#endif

BIN
tobalaba.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB