From 1aeb759c156a1aec34211ea558a0a0f070095f47 Mon Sep 17 00:00:00 2001 From: Michael Ira Krufky Date: Sat, 8 Sep 2018 07:27:12 -0400 Subject: [PATCH] Add support for GoChain Ledger Nano S is now properly working with GoChain!! homepage: https://gochain.io block explorer: https://explorer.gochain.io network statistics : https://stats.gochain.io/ slip0044 index : 6060 chain ID: 60 --- Makefile | 8 ++++++-- blue_app_gochain.gif | Bin 0 -> 351 bytes glyphs/blue_badge_gochain.gif | Bin 0 -> 365 bytes glyphs/nanos_badge_gochain.gif | Bin 0 -> 53 bytes gochain.png | Bin 0 -> 2928 bytes nanos_app_gochain.gif | Bin 0 -> 62 bytes src_genericwallet/chainConfig.h | 3 ++- src_genericwallet/main.c | 6 ++++++ src_genericwallet/tokens.c | 2 ++ src_genericwallet/tokens.h | 2 ++ 10 files changed, 18 insertions(+), 3 deletions(-) create mode 100644 blue_app_gochain.gif create mode 100644 glyphs/blue_badge_gochain.gif create mode 100644 glyphs/nanos_badge_gochain.gif create mode 100644 gochain.png create mode 100644 nanos_app_gochain.gif diff --git a/Makefile b/Makefile index 1039b1a..50c92bf 100755 --- a/Makefile +++ b/Makefile @@ -110,9 +110,13 @@ else ifeq ($(CHAIN),atheios) APP_LOAD_PARAMS += --path "44'/1620'" DEFINES += CHAINID_UPCASE=\"ATHEIOS\" CHAINID_COINNAME=\"ATH\" CHAIN_KIND=CHAIN_KIND_ATHEIOS CHAIN_ID=1620 APPNAME = "Atheios" +else ifeq ($(CHAIN),gochain) +APP_LOAD_PARAMS += --path "44'/6060'" +DEFINES += CHAINID_UPCASE=\"GOCHAIN\" CHAINID_COINNAME=\"GO\" CHAIN_KIND=CHAIN_KIND_GOCHAIN CHAIN_ID=60 +APPNAME = "GoChain" 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) +$(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) endif endif @@ -204,4 +208,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 # musicoin atheios callisto ethersocial ellaism ether1 ethergem + @echo VARIANTS CHAIN ethereum ethereum_classic expanse poa rsk rsk_testnet ubiq wanchain kusd pirl akroma # musicoin atheios callisto ethersocial ellaism ether1 ethergem gochain diff --git a/blue_app_gochain.gif b/blue_app_gochain.gif new file mode 100644 index 0000000000000000000000000000000000000000..e72e6fd3c085aa3d5439b0c744def96b0c2f357e GIT binary patch literal 351 zcmV-l0igazNk%v~VKM+R0OJn;=I{B{=J$HE?qjI!iM;Sjn(982>C55y^7#Ik#`Au+ z@UheNqRH|3`T76<|1pf`EC2ui05SkF000F3u*peVU}C(@yZ3{@1XXD^08xBw%N7K1 zmZ@vsT|7&Hf&VuH>9hbEZwpi4$aD=S0AF+3F~}was+L25ZoiLf7Od?yR%B|ylHOj7 zj=0>B#^C1o`8RXR`{P?0Hh+X|9)yU78;FdCjE`-Pjbwj|l5}8&50{jco06G{pO}gq zlb@v>kfWo3daXyRsIauJK$misu6njVxPY~}w7$QXue`l|#lgVIgUifx&d;3Dx}>+& z$j!n`pw`16%8AFq(+?qcn&rE|EFy4t*Yn{XBdJUzX!tm54P*Rnm;n$F$CZBtU6_#& xCE*7v6_z;c@PtBmF9X1Q6{><%IRu5D|>j`E6{r@ ztbq6{N~}Db&|$h+j4OwW;HC1sxlB#%;!_y>$}G)ohiRC-oks2_NsO9a%e}gq8x9|x zCi(4NIebs3=++-(|CqHi@}(Idaq494qoc6ZKW-2K)>2cj;H*bXxj6EwBWp{*k0AY+ zF-fx9$SQ5hSi$fTOiY+Zw8ZilX2Xv;LU4kJH6%+2A)aJ*U{S3B(S&7iK=UEg=q8^Z LUo1shqyPXrmUXYi literal 0 HcmV?d00001 diff --git a/glyphs/nanos_badge_gochain.gif b/glyphs/nanos_badge_gochain.gif new file mode 100644 index 0000000000000000000000000000000000000000..39ed2fb3f77d7fd7a63682a14f16f4a8af310afc GIT binary patch literal 53 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 awf_S%`VG8m&$nIx0000QvV literal 0 HcmV?d00001 diff --git a/nanos_app_gochain.gif b/nanos_app_gochain.gif new file mode 100644 index 0000000000000000000000000000000000000000..d8cd3cf1234586e8098067900af622ed973effdd GIT binary patch literal 62 zcmZ?wbh9u|6krfwXkY+=|NsB%fM}2i1Cwk||H{*E`GsdZ2)y+!b;mBb3Z+f0$0{10 MNo{?%T7kind) { @@ -1565,6 +1568,9 @@ tokenDefinition_t* getKnownToken() { case CHAIN_KIND_ATHEIOS: currentToken = PIC(&TOKENS_ATHEIOS[i]); break; + case CHAIN_KIND_GOCHAIN: + currentToken = PIC(&TOKENS_GOCHAIN[i]); + break; } if (os_memcmp(currentToken->address, tmpContent.txContent.destination, 20) == 0) { return currentToken; diff --git a/src_genericwallet/tokens.c b/src_genericwallet/tokens.c index 00bfa62..4c48350 100644 --- a/src_genericwallet/tokens.c +++ b/src_genericwallet/tokens.c @@ -782,3 +782,5 @@ const tokenDefinition_t const TOKENS_CALLISTO[NUM_TOKENS_CALLISTO] = {}; const tokenDefinition_t const TOKENS_ETHERGEM[NUM_TOKENS_ETHERGEM] = {}; const tokenDefinition_t const TOKENS_ATHEIOS[NUM_TOKENS_ATHEIOS] = {}; + +const tokenDefinition_t const TOKENS_GOCHAIN[NUM_TOKENS_GOCHAIN] = {}; diff --git a/src_genericwallet/tokens.h b/src_genericwallet/tokens.h index 23d9b22..cdb9de6 100644 --- a/src_genericwallet/tokens.h +++ b/src_genericwallet/tokens.h @@ -40,6 +40,7 @@ typedef struct tokenDefinition_t { #define NUM_TOKENS_CALLISTO 0 #define NUM_TOKENS_ETHERGEM 0 #define NUM_TOKENS_ATHEIOS 0 +#define NUM_TOKENS_GOCHAIN 0 extern tokenDefinition_t const TOKENS_AKROMA[NUM_TOKENS_AKROMA]; extern tokenDefinition_t const TOKENS_ELLAISM[NUM_TOKENS_ELLAISM]; @@ -58,3 +59,4 @@ extern tokenDefinition_t const TOKENS_MUSICOIN[NUM_TOKENS_MUSICOIN]; extern tokenDefinition_t const TOKENS_CALLISTO[NUM_TOKENS_CALLISTO]; extern tokenDefinition_t const TOKENS_ETHERGEM[NUM_TOKENS_ETHERGEM]; extern tokenDefinition_t const TOKENS_ATHEIOS[NUM_TOKENS_ATHEIOS]; +extern tokenDefinition_t const TOKENS_GOCHAIN[NUM_TOKENS_GOCHAIN];