From bc67593b31e23e44e5f932d394ab17a645efe2a7 Mon Sep 17 00:00:00 2001 From: Carlos Medeiros Date: Mon, 18 Sep 2023 16:37:57 +0100 Subject: [PATCH 1/2] add evmos to allowed chain id --- app/Makefile.version | 2 +- app/src/chain_config.c | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/app/Makefile.version b/app/Makefile.version index 02cf60bc..8b54b0ef 100644 --- a/app/Makefile.version +++ b/app/Makefile.version @@ -3,4 +3,4 @@ APPVERSION_M=2 # This is the `spec_version` field of `Runtime` APPVERSION_N=35 # This is the patch version of this release -APPVERSION_P=12 +APPVERSION_P=13 diff --git a/app/src/chain_config.c b/app/src/chain_config.c index 1fd848a7..8ffac9cf 100644 --- a/app/src/chain_config.c +++ b/app/src/chain_config.c @@ -26,6 +26,7 @@ typedef struct { static const chain_config_t chainConfig[] = { // {118, cosmos, BECH32_COSMOS}, {60, "inj", BECH32_ETH}, + {60, "evmos", BECH32_ETH} }; static const uint32_t chainConfigLen = sizeof(chainConfig) / sizeof(chainConfig[0]); From 010533818e79131e1b43c38ee27a703ccae5032e Mon Sep 17 00:00:00 2001 From: Carlos Medeiros Date: Mon, 18 Sep 2023 16:38:19 +0100 Subject: [PATCH 2/2] update tests & snapshots --- tests_zemu/snapshots/s-mainmenu/00004.png | Bin 462 -> 462 bytes tests_zemu/snapshots/s-mainmenu/00010.png | Bin 462 -> 462 bytes tests_zemu/snapshots/sp-mainmenu/00004.png | Bin 397 -> 401 bytes tests_zemu/snapshots/sp-mainmenu/00010.png | Bin 397 -> 401 bytes tests_zemu/snapshots/st-mainmenu/00001.png | Bin 13699 -> 13675 bytes tests_zemu/snapshots/x-mainmenu/00004.png | Bin 397 -> 401 bytes tests_zemu/snapshots/x-mainmenu/00010.png | Bin 397 -> 401 bytes tests_zemu/tests/textual.test.ts | 55 +++++++++++++++++++++ 8 files changed, 55 insertions(+) diff --git a/tests_zemu/snapshots/s-mainmenu/00004.png b/tests_zemu/snapshots/s-mainmenu/00004.png index ba1bdc3598ea3441d95e47d6afdbd6a40aa05cec..7ff378c8b55c5d26ca3ef60575393e237af7cd3c 100644 GIT binary patch delta 427 zcmV;c0aX6Z1I`1GEq}=tf-nq4i%0+egIVCB+7mO`6s1AmU2!@=UpgeA6aWAK;EQZ) z*;eIw=TJYvb@m4YS#Gnx;KNKc0A0&f*=;S$?NQzySc5{$&>GMZ+EMM5iOaM%H&LiY zr6?y%Yh#VTdQ}^oghO^fU6OQFI&v4WRMqt>J36{2wnv`9Y=rilSqoo@rE zAEoLk&WWHGHcmj$3zE0)o~>YsRjDDETI*+rdPYb?Fc)Oq zy8iT3Q&}PolT~7$p*Vm|_3g~*8Vm)lRv4@X&#Fb8KspD(9pGm%$8ZFq>5Ar_h2Abl zNXESX0hM!}8z1D@WSpN?t3)%Gi8Gx&^c_K8+Pv&Qb0mJbjQLt;a6-004N9 z^Puxkt}jmYFLG1aaGlS+kuYmiS5y6fPd(@*Z;wOPhqOWIu5gF z3kq3C?cCmU=1d$r%`!k$M_d$XEOmIRrFh~4wuh~&mwGVrR&f%3tsL_iS^+{|$bA9L z0RDE#BW@A=0Tnf1`=c>{NMr;e1LD4qbzmX%{0!$l4N%)08<3rj0*k6=6HGG$h&JB_ zP(Mo1v)LztQGbx1qYgwt&XBecWZk^?mF5zRg4$E}%2Ke3IfasfsjYr>sB``t1ZzRo zsq259YAQ>_VfSzw!2SbUgl?JQH^X(R$LU0B6Rm?FQlkjpy4bP%a&t0on z_dlTU^wykp>#xi$#`$HnLbP(((?6^GQ|}h^&ya6y) V;p11xT7&=q002ovPDHLkV1jCC%=7>N diff --git a/tests_zemu/snapshots/s-mainmenu/00010.png b/tests_zemu/snapshots/s-mainmenu/00010.png index ba1bdc3598ea3441d95e47d6afdbd6a40aa05cec..7ff378c8b55c5d26ca3ef60575393e237af7cd3c 100644 GIT binary patch delta 427 zcmV;c0aX6Z1I`1GEq}=tf-nq4i%0+egIVCB+7mO`6s1AmU2!@=UpgeA6aWAK;EQZ) z*;eIw=TJYvb@m4YS#Gnx;KNKc0A0&f*=;S$?NQzySc5{$&>GMZ+EMM5iOaM%H&LiY zr6?y%Yh#VTdQ}^oghO^fU6OQFI&v4WRMqt>J36{2wnv`9Y=rilSqoo@rE zAEoLk&WWHGHcmj$3zE0)o~>YsRjDDETI*+rdPYb?Fc)Oq zy8iT3Q&}PolT~7$p*Vm|_3g~*8Vm)lRv4@X&#Fb8KspD(9pGm%$8ZFq>5Ar_h2Abl zNXESX0hM!}8z1D@WSpN?t3)%Gi8Gx&^c_K8+Pv&Qb0mJbjQLt;a6-004N9 z^Puxkt}jmYFLG1aaGlS+kuYmiS5y6fPd(@*Z;wOPhqOWIu5gF z3kq3C?cCmU=1d$r%`!k$M_d$XEOmIRrFh~4wuh~&mwGVrR&f%3tsL_iS^+{|$bA9L z0RDE#BW@A=0Tnf1`=c>{NMr;e1LD4qbzmX%{0!$l4N%)08<3rj0*k6=6HGG$h&JB_ zP(Mo1v)LztQGbx1qYgwt&XBecWZk^?mF5zRg4$E}%2Ke3IfasfsjYr>sB``t1ZzRo zsq259YAQ>_VfSzw!2SbUgl?JQH^X(R$LU0B6Rm?FQlkjpy4bP%a&t0on z_dlTU^wykp>#xi$#`$HnLbP(((?6^GQ|}h^&ya6y) V;p11xT7&=q002ovPDHLkV1jCC%=7>N diff --git a/tests_zemu/snapshots/sp-mainmenu/00004.png b/tests_zemu/snapshots/sp-mainmenu/00004.png index 33c0445ecfe5a3369e13e745cfabd3e6f8b93ff2..cfc9da1347ac3fe475213b84491c87cbbe019ac0 100644 GIT binary patch delta 374 zcmeBWp2$2wr9Q&b#WAE}&fA-TlbRKH8WL~aoL%r=`KexQ!l@Kamg~D%tp9(1q7k6x zxXMtK0RcYry12N!`PlA!_k{l!7QM;Eee(`U&Q^0+|5PYa@TBGR&tDg0P6(08Vy<;7 zfAcNsz2w)!eNrN_i@#WFyXG28EqobT^ud0!oo4+HJ`L}n^8J_iL-{+#T)D zlP~LPoOQaqM9ZdcdG2;rS^lRP|2L}7H9S0j?k$!z^L=~$iWTzj#{GJw@#tawhHEN& z%4_=e%}t!p`Oj!>fbid=CmdDE7JB^Qci;4|w&hInsj#9s-rMw2Zd;owRm`!zq#yOd z`!3t;JFh?HAIkStSl4^{-)WnDVj-)nc0IFsn-pL8f6K<4A8j%@TW0LV- z52=r~FPIp8-J-wye$%8?y5{lgoz%CU5aWEY=|10V{g}(^``z1E5#hsd{}t=dtzS2AV0adPwtT9Y&D1TPlX}{Pg+j@{B=R*gb=AL=32M% zH{YV(tG{ZOHPx_kduglfnrpnv`SR)~59S5V7pdRFbZW|#&6haKje@sY*XO#czkB%e zMhUmq<_jh(x%wYx-p+MA?reFh{*CAJc@N+Fa{9zEob$QHV% zzR%tMoWTi~`k8(!I{zg-Q4rc4pfd09#GHzF#m6%?O_g~*X)X87Z+^WTa_O$WT)Ask z-cFdjRqnt4j%>~&>5n)4H|bx`I(1dwI!piEH}>zy(V5<3CR}e?vU;9)^g8kVti5-_ zAJ>$8{i5f4_w5ND+wDx>X8v~lW1MiL&N^pbf$x4hxjn{+uwnS&RnNVImCfD#krznR M)78&qol`;+02AV-WdHyG diff --git a/tests_zemu/snapshots/sp-mainmenu/00010.png b/tests_zemu/snapshots/sp-mainmenu/00010.png index 33c0445ecfe5a3369e13e745cfabd3e6f8b93ff2..cfc9da1347ac3fe475213b84491c87cbbe019ac0 100644 GIT binary patch delta 374 zcmeBWp2$2wr9Q&b#WAE}&fA-TlbRKH8WL~aoL%r=`KexQ!l@Kamg~D%tp9(1q7k6x zxXMtK0RcYry12N!`PlA!_k{l!7QM;Eee(`U&Q^0+|5PYa@TBGR&tDg0P6(08Vy<;7 zfAcNsz2w)!eNrN_i@#WFyXG28EqobT^ud0!oo4+HJ`L}n^8J_iL-{+#T)D zlP~LPoOQaqM9ZdcdG2;rS^lRP|2L}7H9S0j?k$!z^L=~$iWTzj#{GJw@#tawhHEN& z%4_=e%}t!p`Oj!>fbid=CmdDE7JB^Qci;4|w&hInsj#9s-rMw2Zd;owRm`!zq#yOd z`!3t;JFh?HAIkStSl4^{-)WnDVj-)nc0IFsn-pL8f6K<4A8j%@TW0LV- z52=r~FPIp8-J-wye$%8?y5{lgoz%CU5aWEY=|10V{g}(^``z1E5#hsd{}t=dtzS2AV0adPwtT9Y&D1TPlX}{Pg+j@{B=R*gb=AL=32M% zH{YV(tG{ZOHPx_kduglfnrpnv`SR)~59S5V7pdRFbZW|#&6haKje@sY*XO#czkB%e zMhUmq<_jh(x%wYx-p+MA?reFh{*CAJc@N+Fa{9zEob$QHV% zzR%tMoWTi~`k8(!I{zg-Q4rc4pfd09#GHzF#m6%?O_g~*X)X87Z+^WTa_O$WT)Ask z-cFdjRqnt4j%>~&>5n)4H|bx`I(1dwI!piEH}>zy(V5<3CR}e?vU;9)^g8kVti5-_ zAJ>$8{i5f4_w5ND+wDx>X8v~lW1MiL&N^pbf$x4hxjn{+uwnS&RnNVImCfD#krznR M)78&qol`;+02AV-WdHyG diff --git a/tests_zemu/snapshots/st-mainmenu/00001.png b/tests_zemu/snapshots/st-mainmenu/00001.png index 63b62b7148e07d385327162e4aa89ff2ba1c56c3..f9c99325ab403704429cc35cfb9185ab0187198a 100644 GIT binary patch literal 13675 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 I)$#HF0)k9bIsgCw literal 13699 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 diff --git a/tests_zemu/snapshots/x-mainmenu/00004.png b/tests_zemu/snapshots/x-mainmenu/00004.png index 33c0445ecfe5a3369e13e745cfabd3e6f8b93ff2..cfc9da1347ac3fe475213b84491c87cbbe019ac0 100644 GIT binary patch delta 374 zcmeBWp2$2wr9Q&b#WAE}&fA-TlbRKH8WL~aoL%r=`KexQ!l@Kamg~D%tp9(1q7k6x zxXMtK0RcYry12N!`PlA!_k{l!7QM;Eee(`U&Q^0+|5PYa@TBGR&tDg0P6(08Vy<;7 zfAcNsz2w)!eNrN_i@#WFyXG28EqobT^ud0!oo4+HJ`L}n^8J_iL-{+#T)D zlP~LPoOQaqM9ZdcdG2;rS^lRP|2L}7H9S0j?k$!z^L=~$iWTzj#{GJw@#tawhHEN& z%4_=e%}t!p`Oj!>fbid=CmdDE7JB^Qci;4|w&hInsj#9s-rMw2Zd;owRm`!zq#yOd z`!3t;JFh?HAIkStSl4^{-)WnDVj-)nc0IFsn-pL8f6K<4A8j%@TW0LV- z52=r~FPIp8-J-wye$%8?y5{lgoz%CU5aWEY=|10V{g}(^``z1E5#hsd{}t=dtzS2AV0adPwtT9Y&D1TPlX}{Pg+j@{B=R*gb=AL=32M% zH{YV(tG{ZOHPx_kduglfnrpnv`SR)~59S5V7pdRFbZW|#&6haKje@sY*XO#czkB%e zMhUmq<_jh(x%wYx-p+MA?reFh{*CAJc@N+Fa{9zEob$QHV% zzR%tMoWTi~`k8(!I{zg-Q4rc4pfd09#GHzF#m6%?O_g~*X)X87Z+^WTa_O$WT)Ask z-cFdjRqnt4j%>~&>5n)4H|bx`I(1dwI!piEH}>zy(V5<3CR}e?vU;9)^g8kVti5-_ zAJ>$8{i5f4_w5ND+wDx>X8v~lW1MiL&N^pbf$x4hxjn{+uwnS&RnNVImCfD#krznR M)78&qol`;+02AV-WdHyG diff --git a/tests_zemu/snapshots/x-mainmenu/00010.png b/tests_zemu/snapshots/x-mainmenu/00010.png index 33c0445ecfe5a3369e13e745cfabd3e6f8b93ff2..cfc9da1347ac3fe475213b84491c87cbbe019ac0 100644 GIT binary patch delta 374 zcmeBWp2$2wr9Q&b#WAE}&fA-TlbRKH8WL~aoL%r=`KexQ!l@Kamg~D%tp9(1q7k6x zxXMtK0RcYry12N!`PlA!_k{l!7QM;Eee(`U&Q^0+|5PYa@TBGR&tDg0P6(08Vy<;7 zfAcNsz2w)!eNrN_i@#WFyXG28EqobT^ud0!oo4+HJ`L}n^8J_iL-{+#T)D zlP~LPoOQaqM9ZdcdG2;rS^lRP|2L}7H9S0j?k$!z^L=~$iWTzj#{GJw@#tawhHEN& z%4_=e%}t!p`Oj!>fbid=CmdDE7JB^Qci;4|w&hInsj#9s-rMw2Zd;owRm`!zq#yOd z`!3t;JFh?HAIkStSl4^{-)WnDVj-)nc0IFsn-pL8f6K<4A8j%@TW0LV- z52=r~FPIp8-J-wye$%8?y5{lgoz%CU5aWEY=|10V{g}(^``z1E5#hsd{}t=dtzS2AV0adPwtT9Y&D1TPlX}{Pg+j@{B=R*gb=AL=32M% zH{YV(tG{ZOHPx_kduglfnrpnv`SR)~59S5V7pdRFbZW|#&6haKje@sY*XO#czkB%e zMhUmq<_jh(x%wYx-p+MA?reFh{*CAJc@N+Fa{9zEob$QHV% zzR%tMoWTi~`k8(!I{zg-Q4rc4pfd09#GHzF#m6%?O_g~*X)X87Z+^WTa_O$WT)Ask z-cFdjRqnt4j%>~&>5n)4H|bx`I(1dwI!piEH}>zy(V5<3CR}e?vU;9)^g8kVti5-_ zAJ>$8{i5f4_w5ND+wDx>X8v~lW1MiL&N^pbf$x4hxjn{+uwnS&RnNVImCfD#krznR M)78&qol`;+02AV-WdHyG diff --git a/tests_zemu/tests/textual.test.ts b/tests_zemu/tests/textual.test.ts index a62ee084..96532027 100644 --- a/tests_zemu/tests/textual.test.ts +++ b/tests_zemu/tests/textual.test.ts @@ -226,4 +226,59 @@ describe('Textual', function () { await sim.close() } }) + + test.concurrent.each(DEVICE_MODELS)('sign basic textual evmos ', async function (m) { + const sim = new Zemu(m.path) + try { + await sim.start({ ...defaultOptions, model: m.name }) + const app = new CosmosApp(sim.getTransport()) + + // Enable expert to allow sign with eth path + await sim.toggleExpertMode() + + const path = [44, 60, 0, 0, 0] + const tx = Buffer.from(tx_sign_textual, 'hex') + const hrp = 'evmos' + + // get address / publickey + const respPk = await app.getAddressAndPubKey(path, hrp) + expect(respPk.return_code).toEqual(0x9000) + expect(respPk.error_message).toEqual('No errors') + console.log(respPk) + + // do not wait here.. + const signatureRequest = app.sign(path, tx, hrp, TEXTUAL_TX) + + // Wait until we are not in the main menu + await sim.waitUntilScreenIsNot(sim.getMainMenuSnapshot()) + const last_index = await sim.navigateUntilText( + '.', + `${m.prefix.toLowerCase()}-textual-sign_basic_evmos`, + sim.startOptions.approveKeyword, + false, + false, + ) + + const resp = await signatureRequest + console.log(resp) + + expect(resp.return_code).toEqual(0x9000) + expect(resp.error_message).toEqual('No errors') + expect(resp).toHaveProperty('signature') + + // Now verify the signature + const sha3 = require('js-sha3') + const msgHash = Buffer.from(sha3.keccak256(tx), 'hex') + + const signatureDER = resp.signature + const signature = secp256k1.signatureImport(Uint8Array.from(signatureDER)) + + const pk = Uint8Array.from(respPk.compressed_pk) + + const signatureOk = secp256k1.ecdsaVerify(signature, msgHash, pk) + expect(signatureOk).toEqual(true) + } finally { + await sim.close() + } + }) })