From bbd2b06b525ffdb633c447b349a6f3c0122644a5 Mon Sep 17 00:00:00 2001 From: Michael Ira Krufky Date: Fri, 10 Aug 2018 14:54:56 -0400 Subject: [PATCH] Add support for EtherGem (EGEM) (#1) * Add support for EtherGem (EGEM) * Add graphic assets for EtherGem (EGEM) EIP-155 is now properly working with EtherGem!! Tested personally on the Ledger Nano S homepage : https://egem.io block explorer : https://explorer.egem.io network statistics : https://network.egem.io slip0044 index : 1987 chainId : 1987 --- Makefile | 8 ++++++-- blue_app_ethergem.gif | Bin 0 -> 1565 bytes ethergem.png | Bin 0 -> 4870 bytes glyphs/blue_badge_ethergem.gif | Bin 0 -> 1129 bytes glyphs/nanos_badge_ethergem.gif | Bin 0 -> 71 bytes nanos_app_ethergem.gif | Bin 0 -> 64 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_ethergem.gif create mode 100644 ethergem.png create mode 100644 glyphs/blue_badge_ethergem.gif create mode 100644 glyphs/nanos_badge_ethergem.gif create mode 100644 nanos_app_ethergem.gif diff --git a/Makefile b/Makefile index c8811fa..a7805a0 100755 --- a/Makefile +++ b/Makefile @@ -102,9 +102,13 @@ else ifeq ($(CHAIN),callisto) APP_LOAD_PARAMS += --path "44'/820'" DEFINES += CHAINID_UPCASE=\"CALLISTO\" CHAINID_COINNAME=\"CLO\" CHAIN_KIND=CHAIN_KIND_CALLISTO CHAIN_ID=820 APPNAME = "Callisto" +else ifeq ($(CHAIN),ethergem) +APP_LOAD_PARAMS += --path "44'/1987'" +DEFINES += CHAINID_UPCASE=\"ETHERGEM\" CHAINID_COINNAME=\"EGEM\" CHAIN_KIND=CHAIN_KIND_ETHERGEM CHAIN_ID=1987 +APPNAME = "EtherGem" else ifeq ($(filter clean,$(MAKECMDGOALS)),) -$(error Unsupported CHAIN - use ethereum, ethereum_classic, expanse, poa, rsk, rsk_testnet, ubiq, wanchain, kusd, musicoin, callisto, ethersocial, ellaism, pirl, akroma, ether1) +$(error Unsupported CHAIN - use ethereum, ethereum_classic, expanse, poa, rsk, rsk_testnet, ubiq, wanchain, kusd, musicoin, callisto, ethersocial, ellaism, pirl, akroma, ether1, ethergem) endif endif @@ -196,4 +200,4 @@ include $(BOLOS_SDK)/Makefile.rules dep/%.d: %.c Makefile.genericwallet listvariants: - @echo VARIANTS CHAIN ethereum ethereum_classic expanse poa rsk rsk_testnet ubiq wanchain kusd #musicoin callisto ethersocial ellaism pirl akroma ether1 + @echo VARIANTS CHAIN ethereum ethereum_classic expanse poa rsk rsk_testnet ubiq wanchain kusd #musicoin callisto ethersocial ellaism pirl akroma ether1 ethergem diff --git a/blue_app_ethergem.gif b/blue_app_ethergem.gif new file mode 100644 index 0000000000000000000000000000000000000000..fc6d01bfedf1f706210e2742ca97401cbdb75efc GIT binary patch literal 1565 zcmd7RjX%?Q0KoB|wOFFoT27ZMijs$7bf?FY^E911W^(IPBaev_S-PH#c~%$-p$%Qu z7V}Jb7-N`+jCqVaKR=D;dFj60UvZz;`(OB&VNDHAJ7`1N(1ZZGZuOdI4P+5jSH`dj{s^DB5M<(Y7?LGlA`O9W9pM*>t9goQ{x*_6ZmNf{Fl%8wC9cV#725j zQ#z2`objSL6G&-(mD=(;?L!s~Xl2koFzBt!bOAF%z{(V4|I?oRx;-aL$j%bxz3Iqf zb`-qrEX)SF3Uj)Oa=MDy-6gr*rFlK2`8{Pty%i-ND@yt*OZzzQ`l{adbIU)~R1DN| z26&u-x~jptYGA0LW{6)q+{gn)n(9WH>qnX!Mq3(2TbsrNK=XK8%S8K!2_eurArwq@ z2qrt*fT^zbscs=K{jqDNuV=Qu7nu9>ac-b*ez1Rj=o7FoJg_i42#7|2A<^iNXl!J0 z{F|lm(WQy8rK$1H)05(vDe=s-cy?MmH?ur93#`n~ttD;uldY_6?tuB`!*bzohx0c=P%H@`>#39$9$%hrE={a>ZB4wsUJ zzCv0M=-U$zVhhUHp`_SMVA};2%yvUGIyV$~z^j{X(#j;ZAZ{wH&0aooRN-)h(t0Z_ z&a^nqQz_Wz@b!rLuSI@u=Hk?P#VG&Pade%gfXw~c9_!urGGST(Au~`i+T*?@o zVYVwav$}d4tzd~uMq)WKx|ZfT=2})dF+3d?{Xt_4DJxh7GKg9Vm)4h5BYx3xbL7i> zpNNu`*MxBl5AeL{(800?0xOuGYFsePUM^00n`Si;dt5z=9jSiEfWp(9-F7}ajI&VqAOM5BXnD4oZI3jn#Wz9QW*VQQiZGv@%5PG4?i)Q-1q5yL}7iiqZ z1m{T$!#pwlDjv?a}j?c!)M4)}2={Bhklkwr(ZR~KcOg7e(4|mkYJvtrt3=c0e z4A-S7sU_I&_gmhFgA0{qocUHUx*RGWij3LUGCeMq_}qei*HMH46j3n?k+?7w)nn`;07 literal 0 HcmV?d00001 diff --git a/ethergem.png b/ethergem.png new file mode 100644 index 0000000000000000000000000000000000000000..d441d9bf4d04083ccb6349aa9919d4133eabb514 GIT binary patch literal 4870 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 s#C-iLd zQuqLekEDer=fXO*fTHFaIAsz!3Q2+DI-AEDnj_{Hy3L~lzM0TH+r z30hlQ+uGXN+uJ)jIxH4TXJ=FKfAY<+!w{r&v|0|SGDgF{0@1VIcB z508wDjE;`l?e?*;vGMWoiHV8H$;qcrpH59pJ$v?SdU|?hX6E_x=d-i3b8~YJhhu(z z{>6(I3kwU2i;FK`zI^rS)zZ?^^78V^%F62M>e|}c`ue)l>3seF1ul~zH?RXlfPejW z0#s+iHO;%cUsb{mc_4`Xp48NME~EZJZ$!_xD^gh7VAP-`jJz0tp2|&1smv{zl8|+J zQ;x&1OB?Lx<>5wwNbbI&$5O?7#$g!o5#;O@3w#hbgTcR65GnGZ0V>l!+!Pz`&!hsH zPwCNcPbx(B3oA@c4fCTzRL-4a;Vd;0QY#nuKP(JEvRQwYaMY}>!T^L{5XQ>pv`314 zYHS6e91ri_)aJ7LDn1QD1`7Ee9*l(iBq$KoYvf5%P~Cu)dt%N*>cEyp5@2v?Ii2ZR zh%s@YSVIv07|WD)N+L1F-e9|vnHzrWa%SGHA-qjcer3ErCs&K1I*$q!YA~3Nz$_*oi?~+`bisgaWG~`4mE*e! z(-h&5Ss`G9#EnKgEr{iJLt{HmIq%9=)gMIE&02Z|Dy<_-cg|@eBcxn>$_zp%()`2e zxQ^z@2`+bT?~>7#er{3QP?;5m*=Yuip;Vp+3)7^c!Td%@0Q1^w4%IbL;B(vSLTAuN zv)e)twM|@xVMjvzxL@ir^kmPl!C!1w&aU&kc+r5A{#o`-omQOR^9^quLZ9#ii49j} zPu!I<^2R!?jO^(&O1?e;VB|V4)?wAVZqT3@y|&0=PIhTwrm=r)9^UXqguHq;Gf0|< z)2%9_l5=+_v%w{Baj9bmH#-Ku0&2dZ9oS>9O<`V^gTyRmRHhte5DVJ(jafy#8N!mh zWR3_!aB^_=X5C5gB_svjEcG;>R#{JY(Nkg!e&cABvZ^_?{$6UH#9341EB`)#vlU9}kpX hA7fh--Un{hD11IQRCsSpkT}Tfq(sL>VGID<{{j7F3L^jj literal 0 HcmV?d00001 diff --git a/glyphs/nanos_badge_ethergem.gif b/glyphs/nanos_badge_ethergem.gif new file mode 100644 index 0000000000000000000000000000000000000000..19b762159ed8a1f0e6de4702544fd1672654696c GIT binary patch literal 71 zcmZ?wbh9u|kind) { @@ -1603,6 +1606,9 @@ tokenDefinition_t* getKnownToken() { case CHAIN_KIND_ETHER1: currentToken = PIC(&TOKENS_ETHER1[i]); break; + case CHAIN_KIND_ETHERGEM: + currentToken = PIC(&TOKENS_ETHERGEM[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 9c105c1..bc838c0 100644 --- a/src_genericwallet/tokens.c +++ b/src_genericwallet/tokens.c @@ -733,3 +733,5 @@ const tokenDefinition_t const TOKENS_KUSD[NUM_TOKENS_KUSD] = {}; const tokenDefinition_t const TOKENS_MUSICOIN[NUM_TOKENS_MUSICOIN] = {}; const tokenDefinition_t const TOKENS_CALLISTO[NUM_TOKENS_CALLISTO] = {}; + +const tokenDefinition_t const TOKENS_ETHERGEM[NUM_TOKENS_ETHERGEM] = {}; diff --git a/src_genericwallet/tokens.h b/src_genericwallet/tokens.h index 443c4f7..9f59dbc 100644 --- a/src_genericwallet/tokens.h +++ b/src_genericwallet/tokens.h @@ -38,6 +38,7 @@ typedef struct tokenDefinition_t { #define NUM_TOKENS_KUSD 0 #define NUM_TOKENS_MUSICOIN 0 #define NUM_TOKENS_CALLISTO 0 +#define NUM_TOKENS_ETHERGEM 0 extern tokenDefinition_t const TOKENS_AKROMA[NUM_TOKENS_AKROMA]; extern tokenDefinition_t const TOKENS_ELLAISM[NUM_TOKENS_ELLAISM]; @@ -54,3 +55,4 @@ extern tokenDefinition_t const TOKENS_WANCHAIN[NUM_TOKENS_WANCHAIN]; extern tokenDefinition_t const TOKENS_KUSD[NUM_TOKENS_KUSD]; 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];