From 9b21e9cafa0d2a7f438f1b8ee508f17878d87c5e Mon Sep 17 00:00:00 2001 From: Alexandre Paillier Date: Fri, 3 Mar 2023 15:00:52 +0100 Subject: [PATCH] Ragger domain names tests --- tests/ragger/app/client.py | 10 ++ tests/ragger/snapshots/nanosp | 1 + .../nanox/domain_name_False/00000.png | Bin 0 -> 414 bytes .../nanox/domain_name_False/00001.png | Bin 0 -> 368 bytes .../nanox/domain_name_False/00002.png | Bin 0 -> 394 bytes .../nanox/domain_name_False/00003.png | Bin 0 -> 436 bytes .../nanox/domain_name_False/00004.png | Bin 0 -> 472 bytes .../nanox/domain_name_False/00005.png | Bin 0 -> 382 bytes .../nanox/domain_name_True/00000.png | Bin 0 -> 414 bytes .../nanox/domain_name_True/00001.png | Bin 0 -> 368 bytes .../nanox/domain_name_True/00002.png | Bin 0 -> 394 bytes .../nanox/domain_name_True/00003.png | Bin 0 -> 585 bytes .../nanox/domain_name_True/00004.png | Bin 0 -> 436 bytes .../nanox/domain_name_True/00005.png | Bin 0 -> 472 bytes .../nanox/domain_name_True/00006.png | Bin 0 -> 382 bytes .../nanox/domain_name_long_name/00000.png | Bin 0 -> 414 bytes .../nanox/domain_name_long_name/00001.png | Bin 0 -> 368 bytes .../nanox/domain_name_long_name/00002.png | Bin 0 -> 693 bytes .../nanox/domain_name_long_name/00003.png | Bin 0 -> 621 bytes .../nanox/domain_name_long_name/00004.png | Bin 0 -> 601 bytes .../nanox/domain_name_long_name/00005.png | Bin 0 -> 627 bytes .../nanox/domain_name_long_name/00006.png | Bin 0 -> 637 bytes .../nanox/domain_name_long_name/00007.png | Bin 0 -> 436 bytes .../nanox/domain_name_long_name/00008.png | Bin 0 -> 472 bytes .../nanox/domain_name_long_name/00009.png | Bin 0 -> 382 bytes .../nanox/domain_name_non_mainnet/00000.png | Bin 0 -> 414 bytes .../nanox/domain_name_non_mainnet/00001.png | Bin 0 -> 368 bytes .../nanox/domain_name_non_mainnet/00002.png | Bin 0 -> 585 bytes .../nanox/domain_name_non_mainnet/00003.png | Bin 0 -> 383 bytes .../nanox/domain_name_non_mainnet/00004.png | Bin 0 -> 436 bytes .../nanox/domain_name_non_mainnet/00005.png | Bin 0 -> 472 bytes .../nanox/domain_name_non_mainnet/00006.png | Bin 0 -> 382 bytes .../nanox/domain_name_wrong_addr/00000.png | Bin 0 -> 414 bytes .../nanox/domain_name_wrong_addr/00001.png | Bin 0 -> 368 bytes .../nanox/domain_name_wrong_addr/00002.png | Bin 0 -> 588 bytes .../nanox/domain_name_wrong_addr/00003.png | Bin 0 -> 436 bytes .../nanox/domain_name_wrong_addr/00004.png | Bin 0 -> 472 bytes .../nanox/domain_name_wrong_addr/00005.png | Bin 0 -> 382 bytes tests/ragger/test_domain_name.py | 103 ++++++++++++++++++ 39 files changed, 114 insertions(+) create mode 120000 tests/ragger/snapshots/nanosp create mode 100644 tests/ragger/snapshots/nanox/domain_name_False/00000.png create mode 100644 tests/ragger/snapshots/nanox/domain_name_False/00001.png create mode 100644 tests/ragger/snapshots/nanox/domain_name_False/00002.png create mode 100644 tests/ragger/snapshots/nanox/domain_name_False/00003.png create mode 100644 tests/ragger/snapshots/nanox/domain_name_False/00004.png create mode 100644 tests/ragger/snapshots/nanox/domain_name_False/00005.png create mode 100644 tests/ragger/snapshots/nanox/domain_name_True/00000.png create mode 100644 tests/ragger/snapshots/nanox/domain_name_True/00001.png create mode 100644 tests/ragger/snapshots/nanox/domain_name_True/00002.png create mode 100644 tests/ragger/snapshots/nanox/domain_name_True/00003.png create mode 100644 tests/ragger/snapshots/nanox/domain_name_True/00004.png create mode 100644 tests/ragger/snapshots/nanox/domain_name_True/00005.png create mode 100644 tests/ragger/snapshots/nanox/domain_name_True/00006.png create mode 100644 tests/ragger/snapshots/nanox/domain_name_long_name/00000.png create mode 100644 tests/ragger/snapshots/nanox/domain_name_long_name/00001.png create mode 100644 tests/ragger/snapshots/nanox/domain_name_long_name/00002.png create mode 100644 tests/ragger/snapshots/nanox/domain_name_long_name/00003.png create mode 100644 tests/ragger/snapshots/nanox/domain_name_long_name/00004.png create mode 100644 tests/ragger/snapshots/nanox/domain_name_long_name/00005.png create mode 100644 tests/ragger/snapshots/nanox/domain_name_long_name/00006.png create mode 100644 tests/ragger/snapshots/nanox/domain_name_long_name/00007.png create mode 100644 tests/ragger/snapshots/nanox/domain_name_long_name/00008.png create mode 100644 tests/ragger/snapshots/nanox/domain_name_long_name/00009.png create mode 100644 tests/ragger/snapshots/nanox/domain_name_non_mainnet/00000.png create mode 100644 tests/ragger/snapshots/nanox/domain_name_non_mainnet/00001.png create mode 100644 tests/ragger/snapshots/nanox/domain_name_non_mainnet/00002.png create mode 100644 tests/ragger/snapshots/nanox/domain_name_non_mainnet/00003.png create mode 100644 tests/ragger/snapshots/nanox/domain_name_non_mainnet/00004.png create mode 100644 tests/ragger/snapshots/nanox/domain_name_non_mainnet/00005.png create mode 100644 tests/ragger/snapshots/nanox/domain_name_non_mainnet/00006.png create mode 100644 tests/ragger/snapshots/nanox/domain_name_wrong_addr/00000.png create mode 100644 tests/ragger/snapshots/nanox/domain_name_wrong_addr/00001.png create mode 100644 tests/ragger/snapshots/nanox/domain_name_wrong_addr/00002.png create mode 100644 tests/ragger/snapshots/nanox/domain_name_wrong_addr/00003.png create mode 100644 tests/ragger/snapshots/nanox/domain_name_wrong_addr/00004.png create mode 100644 tests/ragger/snapshots/nanox/domain_name_wrong_addr/00005.png create mode 100644 tests/ragger/test_domain_name.py diff --git a/tests/ragger/app/client.py b/tests/ragger/app/client.py index dad04f6a..9732c81a 100644 --- a/tests/ragger/app/client.py +++ b/tests/ragger/app/client.py @@ -19,6 +19,16 @@ ROOT_SCREENSHOT_PATH = Path(__file__).parent.parent WEI_IN_ETH = 1e+18 +class StatusWord(IntEnum): + OK = 0x9000 + ERROR_NO_INFO = 0x6a00 + INVALID_DATA = 0x6a80 + INSUFFICIENT_MEMORY = 0x6a84 + INVALID_INS = 0x6d00 + INVALID_P1_P2 = 0x6b00 + CONDITION_NOT_SATISFIED = 0x6985 + REF_DATA_NOT_FOUND = 0x6a88 + class DOMAIN_NAME_TAG(IntEnum): STRUCTURE_TYPE = 0x01 STRUCTURE_VERSION = 0x02 diff --git a/tests/ragger/snapshots/nanosp b/tests/ragger/snapshots/nanosp new file mode 120000 index 00000000..da13a6af --- /dev/null +++ b/tests/ragger/snapshots/nanosp @@ -0,0 +1 @@ +nanox/ \ No newline at end of file diff --git a/tests/ragger/snapshots/nanox/domain_name_False/00000.png b/tests/ragger/snapshots/nanox/domain_name_False/00000.png new file mode 100644 index 0000000000000000000000000000000000000000..487ea10fcfeb2f3e6b79239459672251d49addd7 GIT binary patch literal 414 zcmV;P0b%}$P)vpO}&+|8}fC)JNq`>?#dJ%s{^>GN_4usXQirk{^@^BA?p!El9&T9q~zMsh2=YdLB`_ONiP zKy6XlUGFZ>Cn7mP3u*fn&`6tH9gqo;^MN#J@G-NZG(W*iG}t#e1Fb- zKV8KTt0a`{lX$B4$~o~B?x*6e)~<@4Iz4h@Jmb~b5&vc;g`2H9{psfXevRGF%X%)F z{W^G1#bn40-weR!F*3L+ubT($m0wc}!uNKw0-sV5H z;CF7g9MJJ=+rKjGEBl+3>A2QyMfKUZ+;mUbm;0)$KRWh$yq((D^ZhGdwuD|?hi~Df z@|&)@8Hr8?_0j7y!?>j6!~H8~TztJ`f#FwsF1bzDbkz>zesQ*DR9hWnx9on|hmN^& zyJ|dM`zN>MP3ZiWI3+;%Z?hr$v=dI#e(*&r?E!in863#FcU<{Z?XiYs!60EzS3j3^ HP6 literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/nanox/domain_name_False/00002.png b/tests/ragger/snapshots/nanox/domain_name_False/00002.png new file mode 100644 index 0000000000000000000000000000000000000000..6af0ec54b2a0718d258e534bf29b059567fc8a37 GIT binary patch literal 394 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|OeC49QR=-2B7dxJ{W zgs*+Kp>I)S?nComvp*b*(d&*o`esS|_Wz0OWf4q4#T*CSRgb;eS9841(&A*@>I#&b2QSTI5qI}IeE+uQ$d($HH~rmjmfzpG^!&>@vHo;H|A#$&J>60(rv&w- z{Y$*re=CCT)rWkxbu*ft7z>`O-oI7u=d4xjo3yuXwAx+AyG_?&s?U?T(oz$vN~hG^ zITd^LMfdfDVy;c?KbE!zHs9!cv+j?u-i)SGA(L0?zp6X2s;;m5>ao50i9jz_e_Gr2 zjaxr8`Rh@Y?ag!bLo2gxTv~bJ)XKV#_qKdJdgcDJ@>9jrf~PT`jyPOzcvQ5zaQmZw zsyQ_iV&5BC&*W(?<|>M3c>Lz-s+s2Awug&us=u4vloD}$y3^rY@dWQRp`~22>^5u8 z-Wjt=zq~iKakEWo=0=}0$4N$E@I8h8IZK)78&qol`;+03*-H(EtDd literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/nanox/domain_name_False/00004.png b/tests/ragger/snapshots/nanox/domain_name_False/00004.png new file mode 100644 index 0000000000000000000000000000000000000000..570ce28d53e82ac396ba25c370110058f3a638f9 GIT binary patch literal 472 zcmV;}0Vn>6P)Nkl`l1;k+@4An6g^M6kcbtxu@7*hfO000000DuchDWw$aQJnB& zJ%BsK3VrpQ1hnYqoNY&PO0WdV>i`7cs)e_@w@x()p@w=B24`klR6(CLpxqtlZO|2 zIWjpO-F~*EHtLqUMt)Wc_@bMv^h#{CUFW0M(vJ1P=5N1GhWcHM(-Xu*&bc@D4_o$^ z7Y|pL)I@*DzttR=&yLH#^{|TW)8Sp0qphw%epiuSUG#WHS~ht|j~;`U4>BXmdi9@& zuz>%00000G5i7^TsbXePb2LB O0000sAjk5Y(@*V#~rbuHu`7A_H&AxgwHf8y4cdKvg$JbB4n%ez%sZ31aBYd&Oo@(7)_WJ(Znl2o8^PD` zFE`_Y-IS+Kdq0Q2-7r_C=}F(5ev`U`H~)QH|9$1FHE$YjoVax+e0xei%S`SAGlOm! zp7{T3NA-mVOYb&rdU8MdyIHo@@7cE*uj@I+Zu{2i)KMSV-E~ovpO}&+|8}fC)JNq`>?#dJ%s{^>GN_4usXQirk{^@^BA?p!El9&T9q~zMsh2=YdLB`_ONiP zKy6XlUGFZ>Cn7mP3u*fn&`6tH9gqo;^MN#J@G-NZG(W*iG}t#e1Fb- zKV8KTt0a`{lX$B4$~o~B?x*6e)~<@4Iz4h@Jmb~b5&vc;g`2H9{psfXevRGF%X%)F z{W^G1#bn40-weR!F*3L+ubT($m0wc}!uNKw0-sV5H z;CF7g9MJJ=+rKjGEBl+3>A2QyMfKUZ+;mUbm;0)$KRWh$yq((D^ZhGdwuD|?hi~Df z@|&)@8Hr8?_0j7y!?>j6!~H8~TztJ`f#FwsF1bzDbkz>zesQ*DR9hWnx9on|hmN^& zyJ|dM`zN>MP3ZiWI3+;%Z?hr$v=dI#e(*&r?E!in863#FcU<{Z?XiYs!60EzS3j3^ HP6 literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/nanox/domain_name_True/00002.png b/tests/ragger/snapshots/nanox/domain_name_True/00002.png new file mode 100644 index 0000000000000000000000000000000000000000..6af0ec54b2a0718d258e534bf29b059567fc8a37 GIT binary patch literal 394 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|OeC49QR=-2B7dxJ{W zgs*+Kp>I)S?nComvp*b*(d&*o`esS|_Wz0OWf4q4#T*CSRgb;eS9841(&A*@>IFdu z__dw@MOS{tr(OJ6PoPLP9@*UxLb&ZA1lC4xvBG!qQ&wg@Ymi`OA5aK9q=YC=*Fi;`yDjPzxkl=%^cJKW8Rm7R%x^V000000G!J| X8HZ1szRqx300000NkvXXu0mjfUbPWB literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/nanox/domain_name_True/00004.png b/tests/ragger/snapshots/nanox/domain_name_True/00004.png new file mode 100644 index 0000000000000000000000000000000000000000..70c1b9a68f5fb1ee090966199cb58a891b0a5ad4 GIT binary patch literal 436 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|_8Fba4!+nDh2V;G|{+o`%F- zmuDCJS1z1hTaXeVq>#&b2QSTI5qI}IeE+uQ$d($HH~rmjmfzpG^!&>@vHo;H|A#$&J>60(rv&w- z{Y$*re=CCT)rWkxbu*ft7z>`O-oI7u=d4xjo3yuXwAx+AyG_?&s?U?T(oz$vN~hG^ zITd^LMfdfDVy;c?KbE!zHs9!cv+j?u-i)SGA(L0?zp6X2s;;m5>ao50i9jz_e_Gr2 zjaxr8`Rh@Y?ag!bLo2gxTv~bJ)XKV#_qKdJdgcDJ@>9jrf~PT`jyPOzcvQ5zaQmZw zsyQ_iV&5BC&*W(?<|>M3c>Lz-s+s2Awug&us=u4vloD}$y3^rY@dWQRp`~22>^5u8 z-Wjt=zq~iKakEWo=0=}0$4N$E@I8h8IZK)78&qol`;+03*-H(EtDd literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/nanox/domain_name_True/00005.png b/tests/ragger/snapshots/nanox/domain_name_True/00005.png new file mode 100644 index 0000000000000000000000000000000000000000..570ce28d53e82ac396ba25c370110058f3a638f9 GIT binary patch literal 472 zcmV;}0Vn>6P)Nkl`l1;k+@4An6g^M6kcbtxu@7*hfO000000DuchDWw$aQJnB& zJ%BsK3VrpQ1hnYqoNY&PO0WdV>i`7cs)e_@w@x()p@w=B24`klR6(CLpxqtlZO|2 zIWjpO-F~*EHtLqUMt)Wc_@bMv^h#{CUFW0M(vJ1P=5N1GhWcHM(-Xu*&bc@D4_o$^ z7Y|pL)I@*DzttR=&yLH#^{|TW)8Sp0qphw%epiuSUG#WHS~ht|j~;`U4>BXmdi9@& zuz>%00000G5i7^TsbXePb2LB O0000sAjk5Y(@*V#~rbuHu`7A_H&AxgwHf8y4cdKvg$JbB4n%ez%sZ31aBYd&Oo@(7)_WJ(Znl2o8^PD` zFE`_Y-IS+Kdq0Q2-7r_C=}F(5ev`U`H~)QH|9$1FHE$YjoVax+e0xei%S`SAGlOm! zp7{T3NA-mVOYb&rdU8MdyIHo@@7cE*uj@I+Zu{2i)KMSV-E~ovpO}&+|8}fC)JNq`>?#dJ%s{^>GN_4usXQirk{^@^BA?p!El9&T9q~zMsh2=YdLB`_ONiP zKy6XlUGFZ>Cn7mP3u*fn&`6tH9gqo;^MN#J@G-NZG(W*iG}t#e1Fb- zKV8KTt0a`{lX$B4$~o~B?x*6e)~<@4Iz4h@Jmb~b5&vc;g`2H9{psfXevRGF%X%)F z{W^G1#bn40-weR!F*3L+ubT($m0wc}!uNKw0-sV5H z;CF7g9MJJ=+rKjGEBl+3>A2QyMfKUZ+;mUbm;0)$KRWh$yq((D^ZhGdwuD|?hi~Df z@|&)@8Hr8?_0j7y!?>j6!~H8~TztJ`f#FwsF1bzDbkz>zesQ*DR9hWnx9on|hmN^& zyJ|dM`zN>MP3ZiWI3+;%Z?hr$v=dI#e(*&r?E!in863#FcU<{Z?XiYs!60EzS3j3^ HP6 literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/nanox/domain_name_long_name/00002.png b/tests/ragger/snapshots/nanox/domain_name_long_name/00002.png new file mode 100644 index 0000000000000000000000000000000000000000..e804dafea44d4ee3c232e2bad3b62852eccff091 GIT binary patch literal 693 zcmV;m0!safP)_Zh$;hO5h^DS!NtWMfHzfdojLHeV>1b)+ zBvqb%(6jr;E02zsifB&%&aKd-MTWY0eL;A=^cL<8IEN&S$1+;d+<0fdvl#Sa5%2#> zMpkvC9)esqIF@Un%O+7|Yt~elW>M@G)v0M;|zoRpH&Kyg6-d6dT1LCG0_f($x4v3q245Sv*+p)X^M zJK{HneV!*BnS`;iDIit;9z%yO=X+D!ml$I@hfR@H=ttACNl7#yi@#id;%8Ib3UUs< zQ%uf5nJG4r=?pDRZA$5_efd?{y86fa z6T0zkXS*WXIs8QeLYOGt!U&(vd;wM|0RR91{!!e}>`h~R4;wCztPEFepW!`5l=o4( zQqJyFFQ{9F$hT%TtSQe@yAhkY_1Nm6t2k1=z>Lc-|B5#mv_3$GQ=58TszK!=1z;*0 ze>SSL)cT5+@rUn>t}B;x7eJNE`fu-w9!tlP$h(zi=_^3XXSA&7^O#l63(z=Cf>?v? zzpHe0NqNjz91F^WnqIh02Ph^P**``m)yV!~P=lMG3*AIXGHS3DnchA(v}KPG-_fA* zZv6U=#+6fMA4_rMJ2H$YKlEs#1>ez#a)wd>zrLdj<)K~xzrLec<&yO+$gJp^NqbcQCPW+Xm5#Mou1Il$P!msaWP`PCA$vAhu zqXp$zbUWIq@90JOh5wck;FuEn3gFjww4fXS0000004w|g7*Hl$TG<;<00000NkvXX Hu0mjf37sN& literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/nanox/domain_name_long_name/00004.png b/tests/ragger/snapshots/nanox/domain_name_long_name/00004.png new file mode 100644 index 0000000000000000000000000000000000000000..f479f1d2682f994263bbe30992aae3779aff6563 GIT binary patch literal 601 zcmV-f0;c_mP)>sfV@rZ9*LZDy_5F%tPlzgnQ?n~a_RdwVPzd?L(qE5W@WOT(WN~r?{bp>p`^+yntRLU*BKID(yee02 ztcbYQV-)2oH#DO47)AM<85h@jbgO(W0dcKIpURV*fVkFUAmso6000306V-o1Bl?a$ zmCq5^cl4>ei{ysJ^&JB#f8mc=QG7?A$}I^9>N|Q+&Y4a?T;K7y@-EYMbWq>Xt#Zo> nCi@zb100000NkvXXu0mjf;vym2 literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/nanox/domain_name_long_name/00005.png b/tests/ragger/snapshots/nanox/domain_name_long_name/00005.png new file mode 100644 index 0000000000000000000000000000000000000000..3c3c5d6148496f63f5b6035338dcb3f2a0ef0e14 GIT binary patch literal 627 zcmV-(0*w8MP)K@gVOeP4;kmKO;Wd+l5o000000077NFp8UVZoj6K zEaEG}=A6l%;^B2;E57W*BkbbSB4{P0R0m)bc?dssM@$=&oMQVB3SSmM`_z%t;g$Kt zCm=6gd&u=VJ$cwQRfn-%0UVOJcKh98Pd{AuX}W6>yw&KNNzS=56?SoS1&G~Xn2rN; zlhnyB-JH`aV3wMiEx&;!TFvZJZKvgE0eBLPE-g9&+FFvI+>=TwwgsqdR9xMfG1vXq zW~-)|h>ekKoVw}-FDw^tdyxOjmI7>10ssI2{4#Ju#asFQ7SZYXnrCy#l8K-w8m3^Q+ytT6ZD<=#J zuzUkTR4Sh5cXX(nGv@`x^&LGZ7a7~pL4C(4${+ZDzy-&& zVXgpyd`E}M0RR9106<0cZfGHv_2^CcB5|!px5^2Q{-*jrO;eQ{N=_5Sdi17TWKe*( z)}uq^B74lZDAwabd^_cZXWURFf7>)IXkSkcXFYmT4gdfE004j^z5(tA6)w&}Qr-Xn N002ovPDHLkV1n{Y8rT2; literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/nanox/domain_name_long_name/00006.png b/tests/ragger/snapshots/nanox/domain_name_long_name/00006.png new file mode 100644 index 0000000000000000000000000000000000000000..04b23131391f9d88497b6f24130f4a79b41d0585 GIT binary patch literal 637 zcmV-@0)qXCP)sqi+I?raY5tATp~SZYS723w1{cqVMj_!YJ`RhOBJy~xjDZ5fV9Vv?xPJ)H(?tp$8n(kgW zdA9I{RLC{mJqJ2qmYN{HE8#(Q7obmKgtQ*i;9h{bn6f>tnK`|WG6-mvlqL?lBsM#z z?sox$xp+&4gHpa-RFQoE001sXZm4Xn&?i{It0`(f$GnGimSQS5GQ3%44;V)KvcbmJ z$T+B+#quEL>W>fk^44dSvkc5Qwygxyv5eLMI-L5?Hub+i`Je#GkA#FJRqp6MzWJ%A z5t&8#oE_b)zq1`}OUIJPVU^DnK-1Ct(I|Dq4bAI2##BB>Uf(gMau&%A&FecRQoi7; ziCKKdn93~$Na{OAP~J0LfV{rrapf%2c63tTF|2Y+2Rs|WeaC>x0RR9106@k5OZmK( zq-KwXlTSH$ElJIWfGo*?B5Z|4b` zhu8~{*OHu4?%jpP0_3$MXO(+jX16XuVJ*pn7z>cslGMbhg}=DJz=6jJ000000Mhdh XUVik9{eH>`00000NkvXXu0mjf1{f{; literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/nanox/domain_name_long_name/00007.png b/tests/ragger/snapshots/nanox/domain_name_long_name/00007.png new file mode 100644 index 0000000000000000000000000000000000000000..70c1b9a68f5fb1ee090966199cb58a891b0a5ad4 GIT binary patch literal 436 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|_8Fba4!+nDh2V;G|{+o`%F- zmuDCJS1z1hTaXeVq>#&b2QSTI5qI}IeE+uQ$d($HH~rmjmfzpG^!&>@vHo;H|A#$&J>60(rv&w- z{Y$*re=CCT)rWkxbu*ft7z>`O-oI7u=d4xjo3yuXwAx+AyG_?&s?U?T(oz$vN~hG^ zITd^LMfdfDVy;c?KbE!zHs9!cv+j?u-i)SGA(L0?zp6X2s;;m5>ao50i9jz_e_Gr2 zjaxr8`Rh@Y?ag!bLo2gxTv~bJ)XKV#_qKdJdgcDJ@>9jrf~PT`jyPOzcvQ5zaQmZw zsyQ_iV&5BC&*W(?<|>M3c>Lz-s+s2Awug&us=u4vloD}$y3^rY@dWQRp`~22>^5u8 z-Wjt=zq~iKakEWo=0=}0$4N$E@I8h8IZK)78&qol`;+03*-H(EtDd literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/nanox/domain_name_long_name/00008.png b/tests/ragger/snapshots/nanox/domain_name_long_name/00008.png new file mode 100644 index 0000000000000000000000000000000000000000..570ce28d53e82ac396ba25c370110058f3a638f9 GIT binary patch literal 472 zcmV;}0Vn>6P)Nkl`l1;k+@4An6g^M6kcbtxu@7*hfO000000DuchDWw$aQJnB& zJ%BsK3VrpQ1hnYqoNY&PO0WdV>i`7cs)e_@w@x()p@w=B24`klR6(CLpxqtlZO|2 zIWjpO-F~*EHtLqUMt)Wc_@bMv^h#{CUFW0M(vJ1P=5N1GhWcHM(-Xu*&bc@D4_o$^ z7Y|pL)I@*DzttR=&yLH#^{|TW)8Sp0qphw%epiuSUG#WHS~ht|j~;`U4>BXmdi9@& zuz>%00000G5i7^TsbXePb2LB O0000sAjk5Y(@*V#~rbuHu`7A_H&AxgwHf8y4cdKvg$JbB4n%ez%sZ31aBYd&Oo@(7)_WJ(Znl2o8^PD` zFE`_Y-IS+Kdq0Q2-7r_C=}F(5ev`U`H~)QH|9$1FHE$YjoVax+e0xei%S`SAGlOm! zp7{T3NA-mVOYb&rdU8MdyIHo@@7cE*uj@I+Zu{2i)KMSV-E~ovpO}&+|8}fC)JNq`>?#dJ%s{^>GN_4usXQirk{^@^BA?p!El9&T9q~zMsh2=YdLB`_ONiP zKy6XlUGFZ>Cn7mP3u*fn&`6tH9gqo;^MN#J@G-NZG(W*iG}t#e1Fb- zKV8KTt0a`{lX$B4$~o~B?x*6e)~<@4Iz4h@Jmb~b5&vc;g`2H9{psfXevRGF%X%)F z{W^G1#bn40-weR!F*3L+ubT($m0wc}!uNKw0-sV5H z;CF7g9MJJ=+rKjGEBl+3>A2QyMfKUZ+;mUbm;0)$KRWh$yq((D^ZhGdwuD|?hi~Df z@|&)@8Hr8?_0j7y!?>j6!~H8~TztJ`f#FwsF1bzDbkz>zesQ*DR9hWnx9on|hmN^& zyJ|dM`zN>MP3ZiWI3+;%Z?hr$v=dI#e(*&r?E!in863#FcU<{Z?XiYs!60EzS3j3^ HP6 literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/nanox/domain_name_non_mainnet/00002.png b/tests/ragger/snapshots/nanox/domain_name_non_mainnet/00002.png new file mode 100644 index 0000000000000000000000000000000000000000..6a5a9d64a202a062cb8bb576a84ba653e232345c GIT binary patch literal 585 zcmV-P0=E5$P)Fdu z__dw@MOS{tr(OJ6PoPLP9@*UxLb&ZA1lC4xvBG!qQ&wg@Ymi`OA5aK9q=YC=*Fi;`yDjPzxkl=%^cJKW8Rm7R%x^V000000G!J| X8HZ1szRqx300000NkvXXu0mjfUbPWB literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/nanox/domain_name_non_mainnet/00003.png b/tests/ragger/snapshots/nanox/domain_name_non_mainnet/00003.png new file mode 100644 index 0000000000000000000000000000000000000000..93112b3ab44e4f2fda4db252509cc196086ddfe4 GIT binary patch literal 383 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|@9fba4!+nDh2#BHtkep0-4j zdo91^SC)S~p49BHJ!?zqFT4F}f!k|X&9XH?T6cI~>vT=AUa|Gn>9-c2n3T?2l%BQS zJHI32Y~4xS-%MQ{J(o9}-F0o1{_c;TY$hImeCf=`w=R#5oR8(wUdQ0;viM5LE9Xi* zx5AL5KPO65B8nKxj6S`wygYT|{7u*L_w1ovS;^lz1}|X7OvSf z+x3+G0T1WQ@`Ys={_`GvYk(e{b*WT#)t^JoP z;)!4C*^OBcSXHTQ3DBky85}Sb4q9e0CCc*{Qv*} literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/nanox/domain_name_non_mainnet/00004.png b/tests/ragger/snapshots/nanox/domain_name_non_mainnet/00004.png new file mode 100644 index 0000000000000000000000000000000000000000..70c1b9a68f5fb1ee090966199cb58a891b0a5ad4 GIT binary patch literal 436 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|_8Fba4!+nDh2V;G|{+o`%F- zmuDCJS1z1hTaXeVq>#&b2QSTI5qI}IeE+uQ$d($HH~rmjmfzpG^!&>@vHo;H|A#$&J>60(rv&w- z{Y$*re=CCT)rWkxbu*ft7z>`O-oI7u=d4xjo3yuXwAx+AyG_?&s?U?T(oz$vN~hG^ zITd^LMfdfDVy;c?KbE!zHs9!cv+j?u-i)SGA(L0?zp6X2s;;m5>ao50i9jz_e_Gr2 zjaxr8`Rh@Y?ag!bLo2gxTv~bJ)XKV#_qKdJdgcDJ@>9jrf~PT`jyPOzcvQ5zaQmZw zsyQ_iV&5BC&*W(?<|>M3c>Lz-s+s2Awug&us=u4vloD}$y3^rY@dWQRp`~22>^5u8 z-Wjt=zq~iKakEWo=0=}0$4N$E@I8h8IZK)78&qol`;+03*-H(EtDd literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/nanox/domain_name_non_mainnet/00005.png b/tests/ragger/snapshots/nanox/domain_name_non_mainnet/00005.png new file mode 100644 index 0000000000000000000000000000000000000000..570ce28d53e82ac396ba25c370110058f3a638f9 GIT binary patch literal 472 zcmV;}0Vn>6P)Nkl`l1;k+@4An6g^M6kcbtxu@7*hfO000000DuchDWw$aQJnB& zJ%BsK3VrpQ1hnYqoNY&PO0WdV>i`7cs)e_@w@x()p@w=B24`klR6(CLpxqtlZO|2 zIWjpO-F~*EHtLqUMt)Wc_@bMv^h#{CUFW0M(vJ1P=5N1GhWcHM(-Xu*&bc@D4_o$^ z7Y|pL)I@*DzttR=&yLH#^{|TW)8Sp0qphw%epiuSUG#WHS~ht|j~;`U4>BXmdi9@& zuz>%00000G5i7^TsbXePb2LB O0000sAjk5Y(@*V#~rbuHu`7A_H&AxgwHf8y4cdKvg$JbB4n%ez%sZ31aBYd&Oo@(7)_WJ(Znl2o8^PD` zFE`_Y-IS+Kdq0Q2-7r_C=}F(5ev`U`H~)QH|9$1FHE$YjoVax+e0xei%S`SAGlOm! zp7{T3NA-mVOYb&rdU8MdyIHo@@7cE*uj@I+Zu{2i)KMSV-E~ovpO}&+|8}fC)JNq`>?#dJ%s{^>GN_4usXQirk{^@^BA?p!El9&T9q~zMsh2=YdLB`_ONiP zKy6XlUGFZ>Cn7mP3u*fn&`6tH9gqo;^MN#J@G-NZG(W*iG}t#e1Fb- zKV8KTt0a`{lX$B4$~o~B?x*6e)~<@4Iz4h@Jmb~b5&vc;g`2H9{psfXevRGF%X%)F z{W^G1#bn40-weR!F*3L+ubT($m0wc}!uNKw0-sV5H z;CF7g9MJJ=+rKjGEBl+3>A2QyMfKUZ+;mUbm;0)$KRWh$yq((D^ZhGdwuD|?hi~Df z@|&)@8Hr8?_0j7y!?>j6!~H8~TztJ`f#FwsF1bzDbkz>zesQ*DR9hWnx9on|hmN^& zyJ|dM`zN>MP3ZiWI3+;%Z?hr$v=dI#e(*&r?E!in863#FcU<{Z?XiYs!60EzS3j3^ HP6 literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/nanox/domain_name_wrong_addr/00002.png b/tests/ragger/snapshots/nanox/domain_name_wrong_addr/00002.png new file mode 100644 index 0000000000000000000000000000000000000000..639e4214e2503dea60de36382cca415eba0612ef GIT binary patch literal 588 zcmV-S0<-;zP)O0W zchFsT)i}^Q!1`wvO&TVU-WL7u7Lerb2v~T-6W-5}9LuNEJd4tofu>?$4t}ALa z+pgs{)78Thz#Qt%begfRUjy1``q}X~sO`Sn^ZL71NxS8Y)xw+}-aS2NY8me@&zh zE2f7M0L8TSt3&St(g74xiI*wJ8#@%!A`9LJEKw*wqL=~z0001hgyknnlA+h%_bs4G zSMR*9(K^A!XR1TIOrw2X0$zs41RPV`Jm4+?pNc+tOTgEnPY&hiC9>iwZ503j0001h ack&On!Zml6z*33;0000#&b2QSTI5qI}IeE+uQ$d($HH~rmjmfzpG^!&>@vHo;H|A#$&J>60(rv&w- z{Y$*re=CCT)rWkxbu*ft7z>`O-oI7u=d4xjo3yuXwAx+AyG_?&s?U?T(oz$vN~hG^ zITd^LMfdfDVy;c?KbE!zHs9!cv+j?u-i)SGA(L0?zp6X2s;;m5>ao50i9jz_e_Gr2 zjaxr8`Rh@Y?ag!bLo2gxTv~bJ)XKV#_qKdJdgcDJ@>9jrf~PT`jyPOzcvQ5zaQmZw zsyQ_iV&5BC&*W(?<|>M3c>Lz-s+s2Awug&us=u4vloD}$y3^rY@dWQRp`~22>^5u8 z-Wjt=zq~iKakEWo=0=}0$4N$E@I8h8IZK)78&qol`;+03*-H(EtDd literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/nanox/domain_name_wrong_addr/00004.png b/tests/ragger/snapshots/nanox/domain_name_wrong_addr/00004.png new file mode 100644 index 0000000000000000000000000000000000000000..570ce28d53e82ac396ba25c370110058f3a638f9 GIT binary patch literal 472 zcmV;}0Vn>6P)Nkl`l1;k+@4An6g^M6kcbtxu@7*hfO000000DuchDWw$aQJnB& zJ%BsK3VrpQ1hnYqoNY&PO0WdV>i`7cs)e_@w@x()p@w=B24`klR6(CLpxqtlZO|2 zIWjpO-F~*EHtLqUMt)Wc_@bMv^h#{CUFW0M(vJ1P=5N1GhWcHM(-Xu*&bc@D4_o$^ z7Y|pL)I@*DzttR=&yLH#^{|TW)8Sp0qphw%epiuSUG#WHS~ht|j~;`U4>BXmdi9@& zuz>%00000G5i7^TsbXePb2LB O0000sAjk5Y(@*V#~rbuHu`7A_H&AxgwHf8y4cdKvg$JbB4n%ez%sZ31aBYd&Oo@(7)_WJ(Znl2o8^PD` zFE`_Y-IS+Kdq0Q2-7r_C=}F(5ev`U`H~)QH|9$1FHE$YjoVax+e0xei%S`SAGlOm! zp7{T3NA-mVOYb&rdU8MdyIHo@@7cE*uj@I+Zu{2i)KMSV-E~o bool: + return request.param + +def common(app_client: EthereumClient) -> int: + if app_client._client.firmware.device == "nanos": + pytest.skip("Not supported on LNS") + return app_client.get_challenge() + + +def test_send_fund(app_client: EthereumClient, verbose: bool): + challenge = common(app_client) + + if verbose: + app_client.settings_set({ + SettingType.VERBOSE_ENS: True + }) + + app_client.provide_domain_name(challenge, NAME, ADDR) + + app_client.send_fund(BIP32_PATH, + NONCE, + GAS_PRICE, + GAS_LIMIT, + ADDR, + AMOUNT, + CHAIN_ID, + "domain_name_" + str(verbose)) + +def test_send_fund_wrong_challenge(app_client: EthereumClient): + caught = False + challenge = common(app_client) + + try: + app_client.provide_domain_name(~challenge & 0xffffffff, NAME, ADDR) + except ExceptionRAPDU as e: + assert e.status == StatusWord.INVALID_DATA + else: + assert False # An exception should have been raised + +def test_send_fund_wrong_addr(app_client: EthereumClient): + challenge = common(app_client) + + app_client.provide_domain_name(challenge, NAME, ADDR) + + addr = bytearray(ADDR) + addr.reverse() + + app_client.send_fund(BIP32_PATH, + NONCE, + GAS_PRICE, + GAS_LIMIT, + addr, + AMOUNT, + CHAIN_ID, + "domain_name_wrong_addr") + +def test_send_fund_non_mainnet(app_client: EthereumClient): + challenge = common(app_client) + + app_client.provide_domain_name(challenge, NAME, ADDR) + + app_client.send_fund(BIP32_PATH, + NONCE, + GAS_PRICE, + GAS_LIMIT, + ADDR, + AMOUNT, + 5, + "domain_name_non_mainnet") + +def test_send_fund_very_long_domain_name(app_client: EthereumClient): + challenge = common(app_client) + + app_client.provide_domain_name(challenge, LONG_NAME, ADDR) + + app_client.send_fund(BIP32_PATH, + NONCE, + GAS_PRICE, + GAS_LIMIT, + ADDR, + AMOUNT, + CHAIN_ID, + "domain_name_long_name")