From 22d0f8543677dadf44247fcb970cde8a31593d97 Mon Sep 17 00:00:00 2001 From: ftheirs Date: Wed, 29 Nov 2023 14:34:46 -0300 Subject: [PATCH 1/8] update Rust dependencies --- rs/Cargo.toml | 2 +- rs/src/lib.rs | 14 ++++++++++---- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/rs/Cargo.toml b/rs/Cargo.toml index 094da46b..1d9c61ee 100644 --- a/rs/Cargo.toml +++ b/rs/Cargo.toml @@ -28,7 +28,7 @@ prost-types = "0.11.6" leb128 = "0.2.5" sha2 = "0.10.6" -ed25519-dalek = "1.0.1" +ed25519-dalek = "2.1.0" bincode = "1.3.3" [dev-dependencies] diff --git a/rs/src/lib.rs b/rs/src/lib.rs index ed29a676..a06d2be2 100644 --- a/rs/src/lib.rs +++ b/rs/src/lib.rs @@ -255,13 +255,15 @@ where section_hashes: HashMap>, pubkey: &[u8], ) -> bool { - use ed25519_dalek::{PublicKey, Signature}; + use ed25519_dalek::{Signature, VerifyingKey}; if pubkey != &signature.pubkey { return false; } - let public_key = PublicKey::from_bytes(&signature.pubkey[1..]).unwrap(); + let mut public_key_bytes = [0u8; 32]; + public_key_bytes.copy_from_slice(&signature.pubkey[1..33]); + let public_key = VerifyingKey::from_bytes(&public_key_bytes).unwrap(); let unsigned_raw_sig_hash = self.hash_signature_sec( vec![], §ion_hashes, @@ -269,7 +271,9 @@ where None, None, ); - let raw_signature = Signature::from_bytes(&signature.raw_signature[1..]).unwrap(); + let mut raw_signature_bytes = [0u8; 64]; + raw_signature_bytes.copy_from_slice(&signature.raw_signature[1..65]); + let raw_signature = Signature::from_bytes(&raw_signature_bytes); let raw_sig = public_key .verify(&unsigned_raw_sig_hash, &raw_signature) .is_ok(); @@ -295,7 +299,9 @@ where None, ); - let wrapper_signature = Signature::from_bytes(&signature.wrapper_signature[1..]).unwrap(); + let mut wrapper_signature_bytes = [0u8; 64]; + wrapper_signature_bytes.copy_from_slice(&signature.wrapper_signature[1..65]); + let wrapper_signature = Signature::from_bytes(&wrapper_signature_bytes); let wrapper_sig = public_key .verify(&unsigned_wrapper_sig_hash, &wrapper_signature) .is_ok(); From 32a9d0f02a40e7ada831755acc188459c66b05dc Mon Sep 17 00:00:00 2001 From: ftheirs Date: Wed, 29 Nov 2023 14:49:12 -0300 Subject: [PATCH 2/8] update gh actions --- .github/workflows/ledger.yml | 37 ------------------------ .github/workflows/main.yml | 55 ++++++++++++++++++++++++++++++++++++ 2 files changed, 55 insertions(+), 37 deletions(-) delete mode 100644 .github/workflows/ledger.yml diff --git a/.github/workflows/ledger.yml b/.github/workflows/ledger.yml deleted file mode 100644 index f9515009..00000000 --- a/.github/workflows/ledger.yml +++ /dev/null @@ -1,37 +0,0 @@ -name: CI - -on: - # Triggers the workflow on push or pull request events but only for the main branch - push: - branches: - - main - - develop - pull_request: - branches: - - main - - develop - - # Allows you to run this workflow manually from the Actions tab - workflow_dispatch: - -jobs: - scan-build: - name: Clang Static Analyzer - runs-on: ubuntu-latest - - container: - image: ghcr.io/ledgerhq/ledger-app-builder/ledger-app-builder:latest - - steps: - - uses: actions/checkout@v3 - with: - submodules: true - - - name: Build with Clang Static Analyzer - run: | - scan-build --use-cc=clang -analyze-headers -enable-checker security -enable-checker unix -enable-checker valist -o scan-build --status-bugs make default - - uses: actions/upload-artifact@v2 - if: failure() - with: - name: scan-build - path: scan-build diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 4b7e0e80..e91290d1 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -29,6 +29,27 @@ jobs: make deps - run: make cpp_test + build_rust: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + with: + submodules: true + - name: Install rust + uses: actions-rs/toolchain@v1 + with: + toolchain: stable + - name: rustfmt + run: | + cd ./rs + cargo fmt --version + cargo fmt -- --check + - name: audit + run: | + cd ./rs + cargo audit + build_ledger: needs: configure runs-on: ubuntu-latest @@ -160,3 +181,37 @@ jobs: tag_name: ${{ steps.nanosp.outputs.tag_name }} draft: false prerelease: false + + build_package_stax: + needs: [configure, build, build_ledger, test_zemu] + if: ${{ github.ref == 'refs/heads/main' }} + runs-on: ubuntu-latest + container: + image: zondax/ledger-app-builder:latest + options: --user ${{ needs.configure.outputs.uid_gid }} + env: + BOLOS_SDK: /opt/stax-secure-sdk + steps: + - name: Checkout + uses: actions/checkout@v3 + with: + submodules: true + - name: Install deps + run: pip install ledgerblue + + - name: Build Stax + shell: bash -l {0} + run: make SUBSTRATE_PARSER_FULL=1 + - name: Set tag + id: stax + run: echo "tag_name=$(./app/pkg/installer_stax.sh version)" >> $GITHUB_OUTPUT + - name: Update Release + id: update_release_2 + uses: softprops/action-gh-release@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # This token is provided by Actions, you do not need to create your own token + with: + files: ./app/pkg/installer_stax.sh + tag_name: ${{ steps.stax.outputs.tag_name }} + draft: false + prerelease: false \ No newline at end of file From 2d3ded39a5746644817a54ee111f38662abad490 Mon Sep 17 00:00:00 2001 From: ftheirs Date: Wed, 29 Nov 2023 14:59:14 -0300 Subject: [PATCH 3/8] bump version & update snapshots --- app/Makefile.version | 2 +- tests_zemu/snapshots/s-mainmenu/00004.png | Bin 417 -> 434 bytes tests_zemu/snapshots/s-mainmenu/00010.png | Bin 417 -> 434 bytes tests_zemu/snapshots/sp-mainmenu/00004.png | Bin 350 -> 359 bytes tests_zemu/snapshots/sp-mainmenu/00010.png | Bin 350 -> 359 bytes tests_zemu/snapshots/st-mainmenu/00001.png | Bin 13303 -> 13442 bytes tests_zemu/snapshots/x-mainmenu/00004.png | Bin 350 -> 359 bytes tests_zemu/snapshots/x-mainmenu/00010.png | Bin 350 -> 359 bytes 8 files changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Makefile.version b/app/Makefile.version index d796c687..cd7b4895 100644 --- a/app/Makefile.version +++ b/app/Makefile.version @@ -3,4 +3,4 @@ APPVERSION_M=0 # This is the `spec_version` field of `Runtime` APPVERSION_N=0 # This is the patch version of this release -APPVERSION_P=11 +APPVERSION_P=12 diff --git a/tests_zemu/snapshots/s-mainmenu/00004.png b/tests_zemu/snapshots/s-mainmenu/00004.png index 743f8dd4564ce4750c4b8bd7f130f482fc4ab271..f80937ebbbe23859cd6380a64c0a66987988a728 100644 GIT binary patch delta 408 zcmV;J0cZZ91F{2E-XR@$jnVVz0c{QY#$2m z7{gKk008_e)1Y~tkI#hj_viAx(_EbfKbqUwH}LP=M^E^CNNv*MC``6XGt#oUfJ7H@ z-5ER+30A-~zdvPdFLG7wGqsBvd91*XEl50000T*8TQQ{nyqmb zdzXsAyVKnTHFCs5`gaR=p8;f^b_7pi4`6kmFPmy`VTJh;l!>dj9p(V!sde7)sRC` kvT?B900000007L%2V;E0+aZW`4gdfE07*qoM6N<$g55>4MF0Q* diff --git a/tests_zemu/snapshots/s-mainmenu/00010.png b/tests_zemu/snapshots/s-mainmenu/00010.png index 743f8dd4564ce4750c4b8bd7f130f482fc4ab271..f80937ebbbe23859cd6380a64c0a66987988a728 100644 GIT binary patch delta 408 zcmV;J0cZZ91F{2E-XR@$jnVVz0c{QY#$2m z7{gKk008_e)1Y~tkI#hj_viAx(_EbfKbqUwH}LP=M^E^CNNv*MC``6XGt#oUfJ7H@ z-5ER+30A-~zdvPdFLG7wGqsBvd91*XEl50000T*8TQQ{nyqmb zdzXsAyVKnTHFCs5`gaR=p8;f^b_7pi4`6kmFPmy`VTJh;l!>dj9p(V!sde7)sRC` kvT?B900000007L%2V;E0+aZW`4gdfE07*qoM6N<$g55>4MF0Q* diff --git a/tests_zemu/snapshots/sp-mainmenu/00004.png b/tests_zemu/snapshots/sp-mainmenu/00004.png index 83c56bd0503d3df3b232b90dafb4fd1db1650812..17166cc025e28d0c59b05b40c60b2a7021d0df28 100644 GIT binary patch delta 332 zcmcb|^qgseO1++^i(^Q|oVPb4g$^l*xCCyw!}&X2sQM%GQl-f$3hPb3*SIRHT;=ar zRLp*d@o%5nbZYq<{DJR88`}Qy>6&tTT_xStetV>mP>tFrRh+n5M>0f=dajk}gUw%*iH>CW`zrN8nd)fOdTmf3%lNP<1v+B`o4TQfL arhj7DIq#g#r>{NnAW=_OKbLh*2~7YBmYi7t delta 323 zcmaFPbdPC*O1-M5i(^Q|oVPb4g_;$38WL~4^xg4);tp^53}Z8$yrV9E_p6&v@MI8m zWTJ8%9>_3#hMDt7xU*h=wL?ya_x|PY*VG6sS9aL-_S4VA z%89&F`yZ<^HYYt)JW^}L=yz<{nRBOaU)H)*Ww(CSpZK(QFI0YAzs6&9(cVY(ip&3m zCkKQ!Pf(qAc$%N&y>q`GtqN9qKX>`^X(eHEgS0)aYM-tADa7Ym@{MKnABM8uo^Lc5 zFF$=+wDj{T8C9DH^E?_1#s4!O`I0}qH2PiEx37V@+x@2QzN(Dm-v_JiO>e#RIc+-2 PW{{|-tDnm{r-UW|%Uzbu diff --git a/tests_zemu/snapshots/sp-mainmenu/00010.png b/tests_zemu/snapshots/sp-mainmenu/00010.png index 83c56bd0503d3df3b232b90dafb4fd1db1650812..17166cc025e28d0c59b05b40c60b2a7021d0df28 100644 GIT binary patch delta 332 zcmcb|^qgseO1++^i(^Q|oVPb4g$^l*xCCyw!}&X2sQM%GQl-f$3hPb3*SIRHT;=ar zRLp*d@o%5nbZYq<{DJR88`}Qy>6&tTT_xStetV>mP>tFrRh+n5M>0f=dajk}gUw%*iH>CW`zrN8nd)fOdTmf3%lNP<1v+B`o4TQfL arhj7DIq#g#r>{NnAW=_OKbLh*2~7YBmYi7t delta 323 zcmaFPbdPC*O1-M5i(^Q|oVPb4g_;$38WL~4^xg4);tp^53}Z8$yrV9E_p6&v@MI8m zWTJ8%9>_3#hMDt7xU*h=wL?ya_x|PY*VG6sS9aL-_S4VA z%89&F`yZ<^HYYt)JW^}L=yz<{nRBOaU)H)*Ww(CSpZK(QFI0YAzs6&9(cVY(ip&3m zCkKQ!Pf(qAc$%N&y>q`GtqN9qKX>`^X(eHEgS0)aYM-tADa7Ym@{MKnABM8uo^Lc5 zFF$=+wDj{T8C9DH^E?_1#s4!O`I0}qH2PiEx37V@+x@2QzN(Dm-v_JiO>e#RIc+-2 PW{{|-tDnm{r-UW|%Uzbu diff --git a/tests_zemu/snapshots/st-mainmenu/00001.png b/tests_zemu/snapshots/st-mainmenu/00001.png index 92f14394854f7093f236140a8786f6ab87ad387c..9609e64ce5258d22530f0f0e3f35a979da91f2d6 100644 GIT binary patch delta 11496 zcmaL7c|26@|35B~>~33j$`aZ4Eak3lNtQyEu}etI$U62(S?=si#+KYv$U3%}%$SI> zjU^_;m?3KnBL-vlJ>K{I`RDh?@BB57bFOR7IoEl;p0DTY`Ml^p&wVqcL0YD!f8BTx z{(6nH9$MLdaI)5m3p*QaCMBE6dxzD5QQ?f)H{K>Dg)?_EdEYU~f1Z9p`{X^~v&;A3 zz9mgxVl_wkYAO#oU-;bK)gnvNY#{~*+{yZ=0K>Bn@XzeG;XE?3@TW||uwxvCF>hca zT&pYIL#TVBhpj75%c9u629)Ck8gEvYOP^EYaB~qiBrS(vZnl-muc|92mqNv{9dL@y zTN%@NX)&%O`*CK~KXZR`9vvRGV%XX*ov+q?FuomzjR{qLwx^!B{buJNMy&hR3lMG+ zmGiSijpK#XFPG0ko)>IwVWTb+g1pAV(!_=pOf5y9qfr<~(-~{P zjGyPmwj-Ox<#jbyef{0^iifBzB&~skp!y{k4^xs(ReTD{$_c(`;>2Gm zbGzwaZHu|Y??0c)CqG0Jx8;Vn9&VgF{WE3+-ECOZ0fdk>oz+h8pM5>#6Y-U^y37~j zhpA~HEPsa$q%0E~Cit1+u*zsIh`WW7V8FBXNIp`0Lrp5Myg3kePGMFh^l%8y6)cS( zU`M|U=|=hIV@Z(53vLIIOk+;7SAG)p#ke$74TorR8&@^H5m4YaOSZPXwmL0`y7Ql_ z0&GxTZmX_OQs=G?(GHToib^5L6F;Bs9v|y;!43}(IV{+J`0L>QK*l?vwKoxvTC8aqkH+?4>&F zAK>*bHczjwVN=z+=Z25gYk+|~4(qDvb0z%^M{-f?9=5g`tJ+v#T(Auh1;m)4M1~iL zNBW) zV@1oy*%{ArrIE*M(A(M{W#4|MnkUF73yN@He4PTtpzE@$WYq}2`ft>^5dCd3bE1*) z?da!H;T;jN1k}9a4IZX8xGK}%LPJ9ErM;@EGYoA9KB=bJ^P{5-&!&fEnc#mg8)RkP zgl#M_R)L9?m98%A4D?-H`x~Jyxn2rJ<-Yn&jvz#+i>POZTIyVQZOy$0hy^+wtuA-E zyuasb&W3;Uj}u_}JT#PXXvllJaG(tA9)m%Ic z&F(H3%!TO=^!Kbl4{cMVfYq|Kov_O*2RlKnY;AF!OV)p=eA-AS!9Y=y5#U6PP-mc6>cB7hfG{5ry

eWE#&ik{H#^4x12QFJ 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 arhj7DIq#g#r>{NnAW=_OKbLh*2~7YBmYi7t delta 323 zcmaFPbdPC*O1-M5i(^Q|oVPb4g_;$38WL~4^xg4);tp^53}Z8$yrV9E_p6&v@MI8m zWTJ8%9>_3#hMDt7xU*h=wL?ya_x|PY*VG6sS9aL-_S4VA z%89&F`yZ<^HYYt)JW^}L=yz<{nRBOaU)H)*Ww(CSpZK(QFI0YAzs6&9(cVY(ip&3m zCkKQ!Pf(qAc$%N&y>q`GtqN9qKX>`^X(eHEgS0)aYM-tADa7Ym@{MKnABM8uo^Lc5 zFF$=+wDj{T8C9DH^E?_1#s4!O`I0}qH2PiEx37V@+x@2QzN(Dm-v_JiO>e#RIc+-2 PW{{|-tDnm{r-UW|%Uzbu diff --git a/tests_zemu/snapshots/x-mainmenu/00010.png b/tests_zemu/snapshots/x-mainmenu/00010.png index 83c56bd0503d3df3b232b90dafb4fd1db1650812..17166cc025e28d0c59b05b40c60b2a7021d0df28 100644 GIT binary patch delta 332 zcmcb|^qgseO1++^i(^Q|oVPb4g$^l*xCCyw!}&X2sQM%GQl-f$3hPb3*SIRHT;=ar zRLp*d@o%5nbZYq<{DJR88`}Qy>6&tTT_xStetV>mP>tFrRh+n5M>0f=dajk}gUw%*iH>CW`zrN8nd)fOdTmf3%lNP<1v+B`o4TQfL arhj7DIq#g#r>{NnAW=_OKbLh*2~7YBmYi7t delta 323 zcmaFPbdPC*O1-M5i(^Q|oVPb4g_;$38WL~4^xg4);tp^53}Z8$yrV9E_p6&v@MI8m zWTJ8%9>_3#hMDt7xU*h=wL?ya_x|PY*VG6sS9aL-_S4VA z%89&F`yZ<^HYYt)JW^}L=yz<{nRBOaU)H)*Ww(CSpZK(QFI0YAzs6&9(cVY(ip&3m zCkKQ!Pf(qAc$%N&y>q`GtqN9qKX>`^X(eHEgS0)aYM-tADa7Ym@{MKnABM8uo^Lc5 zFF$=+wDj{T8C9DH^E?_1#s4!O`I0}qH2PiEx37V@+x@2QzN(Dm-v_JiO>e#RIc+-2 PW{{|-tDnm{r-UW|%Uzbu From c7d3d33d583acf686e41d599dc06a6e8df9b6739 Mon Sep 17 00:00:00 2001 From: Murisi Tarusenga Date: Fri, 8 Dec 2023 16:03:06 +0200 Subject: [PATCH 4/8] Now support the Become Validator transaction that replaces the InitValidator command. --- app/src/crypto.c | 6 - app/src/parser_impl.c | 11 +- app/src/parser_impl_common.h | 4 +- app/src/parser_impl_txn.c | 105 ++--- app/src/parser_print_txn.c | 99 ++-- app/src/parser_txdef.h | 2 +- app/src/parser_types.h | 12 +- deps/ledger-zxlib | 2 +- deps/nanos-secure-sdk | 2 +- tests/testvectors.json | 440 +----------------- .../snapshots/s-sign-init_validator/00000.png | Bin 334 -> 0 bytes .../snapshots/s-sign-init_validator/00001.png | Bin 649 -> 0 bytes .../snapshots/s-sign-init_validator/00002.png | Bin 661 -> 0 bytes .../snapshots/s-sign-init_validator/00003.png | Bin 262 -> 0 bytes .../snapshots/s-sign-init_validator/00004.png | Bin 662 -> 0 bytes .../snapshots/s-sign-init_validator/00005.png | Bin 672 -> 0 bytes .../snapshots/s-sign-init_validator/00006.png | Bin 625 -> 0 bytes .../snapshots/s-sign-init_validator/00007.png | Bin 611 -> 0 bytes .../snapshots/s-sign-init_validator/00008.png | Bin 628 -> 0 bytes .../snapshots/s-sign-init_validator/00009.png | Bin 633 -> 0 bytes .../snapshots/s-sign-init_validator/00010.png | Bin 680 -> 0 bytes .../snapshots/s-sign-init_validator/00011.png | Bin 697 -> 0 bytes .../snapshots/s-sign-init_validator/00012.png | Bin 332 -> 0 bytes .../snapshots/s-sign-init_validator/00013.png | Bin 325 -> 0 bytes .../snapshots/s-sign-init_validator/00014.png | Bin 327 -> 0 bytes .../snapshots/s-sign-init_validator/00015.png | Bin 383 -> 0 bytes .../snapshots/s-sign-init_validator/00016.png | Bin 249 -> 0 bytes .../snapshots/s-sign-init_validator/00017.png | Bin 430 -> 0 bytes .../snapshots/s-sign-init_validator/00018.png | Bin 332 -> 0 bytes .../snapshots/s-sign-init_validator/00019.png | Bin 325 -> 0 bytes .../snapshots/s-sign-init_validator/00020.png | Bin 383 -> 0 bytes .../snapshots/s-sign-init_validator/00021.png | Bin 249 -> 0 bytes .../snapshots/s-sign-init_validator/00022.png | Bin 411 -> 0 bytes .../snapshots/s-sign-init_validator/00023.png | Bin 249 -> 0 bytes .../snapshots/s-sign-init_validator/00024.png | Bin 411 -> 0 bytes .../sp-sign-init_validator/00000.png | Bin 466 -> 0 bytes .../sp-sign-init_validator/00001.png | Bin 396 -> 0 bytes .../sp-sign-init_validator/00002.png | Bin 956 -> 0 bytes .../sp-sign-init_validator/00003.png | Bin 521 -> 0 bytes .../sp-sign-init_validator/00004.png | Bin 312 -> 0 bytes .../sp-sign-init_validator/00005.png | Bin 1023 -> 0 bytes .../sp-sign-init_validator/00006.png | Bin 561 -> 0 bytes .../sp-sign-init_validator/00007.png | Bin 941 -> 0 bytes .../sp-sign-init_validator/00008.png | Bin 560 -> 0 bytes .../sp-sign-init_validator/00009.png | Bin 934 -> 0 bytes .../sp-sign-init_validator/00010.png | Bin 555 -> 0 bytes .../sp-sign-init_validator/00011.png | Bin 1033 -> 0 bytes .../sp-sign-init_validator/00012.png | Bin 551 -> 0 bytes .../sp-sign-init_validator/00013.png | Bin 392 -> 0 bytes .../sp-sign-init_validator/00014.png | Bin 424 -> 0 bytes .../sp-sign-init_validator/00015.png | Bin 363 -> 0 bytes .../sp-sign-init_validator/00016.png | Bin 442 -> 0 bytes .../sp-sign-init_validator/00017.png | Bin 355 -> 0 bytes .../sp-sign-init_validator/00018.png | Bin 493 -> 0 bytes .../sp-sign-init_validator/00019.png | Bin 442 -> 0 bytes .../sp-sign-init_validator/00020.png | Bin 355 -> 0 bytes .../sp-sign-init_validator/00021.png | Bin 463 -> 0 bytes .../sp-sign-init_validator/00022.png | Bin 355 -> 0 bytes .../sp-sign-init_validator/00023.png | Bin 463 -> 0 bytes .../st-sign-init_validator/00000.png | Bin 8218 -> 0 bytes .../st-sign-init_validator/00001.png | Bin 19225 -> 0 bytes .../st-sign-init_validator/00002.png | Bin 16690 -> 0 bytes .../st-sign-init_validator/00003.png | Bin 16244 -> 0 bytes .../st-sign-init_validator/00004.png | Bin 16041 -> 0 bytes .../st-sign-init_validator/00005.png | Bin 18245 -> 0 bytes .../st-sign-init_validator/00006.png | Bin 12881 -> 0 bytes .../st-sign-init_validator/00007.png | Bin 9140 -> 0 bytes .../st-sign-init_validator/00008.png | Bin 10953 -> 0 bytes .../snapshots/x-sign-init_validator/00000.png | Bin 466 -> 0 bytes .../snapshots/x-sign-init_validator/00001.png | Bin 397 -> 0 bytes .../snapshots/x-sign-init_validator/00002.png | Bin 952 -> 0 bytes .../snapshots/x-sign-init_validator/00003.png | Bin 520 -> 0 bytes .../snapshots/x-sign-init_validator/00004.png | Bin 312 -> 0 bytes .../snapshots/x-sign-init_validator/00005.png | Bin 1019 -> 0 bytes .../snapshots/x-sign-init_validator/00006.png | Bin 558 -> 0 bytes .../snapshots/x-sign-init_validator/00007.png | Bin 941 -> 0 bytes .../snapshots/x-sign-init_validator/00008.png | Bin 560 -> 0 bytes .../snapshots/x-sign-init_validator/00009.png | Bin 933 -> 0 bytes .../snapshots/x-sign-init_validator/00010.png | Bin 550 -> 0 bytes .../snapshots/x-sign-init_validator/00011.png | Bin 1033 -> 0 bytes .../snapshots/x-sign-init_validator/00012.png | Bin 551 -> 0 bytes .../snapshots/x-sign-init_validator/00013.png | Bin 392 -> 0 bytes .../snapshots/x-sign-init_validator/00014.png | Bin 424 -> 0 bytes .../snapshots/x-sign-init_validator/00015.png | Bin 363 -> 0 bytes .../snapshots/x-sign-init_validator/00016.png | Bin 442 -> 0 bytes .../snapshots/x-sign-init_validator/00017.png | Bin 355 -> 0 bytes .../snapshots/x-sign-init_validator/00018.png | Bin 493 -> 0 bytes .../snapshots/x-sign-init_validator/00019.png | Bin 442 -> 0 bytes .../snapshots/x-sign-init_validator/00020.png | Bin 355 -> 0 bytes .../snapshots/x-sign-init_validator/00021.png | Bin 463 -> 0 bytes .../snapshots/x-sign-init_validator/00022.png | Bin 355 -> 0 bytes .../snapshots/x-sign-init_validator/00023.png | Bin 463 -> 0 bytes tests_zemu/tests/transactions.test.ts | 11 - 93 files changed, 91 insertions(+), 603 deletions(-) delete mode 100644 tests_zemu/snapshots/s-sign-init_validator/00000.png delete mode 100644 tests_zemu/snapshots/s-sign-init_validator/00001.png delete mode 100644 tests_zemu/snapshots/s-sign-init_validator/00002.png delete mode 100644 tests_zemu/snapshots/s-sign-init_validator/00003.png delete mode 100644 tests_zemu/snapshots/s-sign-init_validator/00004.png delete mode 100644 tests_zemu/snapshots/s-sign-init_validator/00005.png delete mode 100644 tests_zemu/snapshots/s-sign-init_validator/00006.png delete mode 100644 tests_zemu/snapshots/s-sign-init_validator/00007.png delete mode 100644 tests_zemu/snapshots/s-sign-init_validator/00008.png delete mode 100644 tests_zemu/snapshots/s-sign-init_validator/00009.png delete mode 100644 tests_zemu/snapshots/s-sign-init_validator/00010.png delete mode 100644 tests_zemu/snapshots/s-sign-init_validator/00011.png delete mode 100644 tests_zemu/snapshots/s-sign-init_validator/00012.png delete mode 100644 tests_zemu/snapshots/s-sign-init_validator/00013.png delete mode 100644 tests_zemu/snapshots/s-sign-init_validator/00014.png delete mode 100644 tests_zemu/snapshots/s-sign-init_validator/00015.png delete mode 100644 tests_zemu/snapshots/s-sign-init_validator/00016.png delete mode 100644 tests_zemu/snapshots/s-sign-init_validator/00017.png delete mode 100644 tests_zemu/snapshots/s-sign-init_validator/00018.png delete mode 100644 tests_zemu/snapshots/s-sign-init_validator/00019.png delete mode 100644 tests_zemu/snapshots/s-sign-init_validator/00020.png delete mode 100644 tests_zemu/snapshots/s-sign-init_validator/00021.png delete mode 100644 tests_zemu/snapshots/s-sign-init_validator/00022.png delete mode 100644 tests_zemu/snapshots/s-sign-init_validator/00023.png delete mode 100644 tests_zemu/snapshots/s-sign-init_validator/00024.png delete mode 100644 tests_zemu/snapshots/sp-sign-init_validator/00000.png delete mode 100644 tests_zemu/snapshots/sp-sign-init_validator/00001.png delete mode 100644 tests_zemu/snapshots/sp-sign-init_validator/00002.png delete mode 100644 tests_zemu/snapshots/sp-sign-init_validator/00003.png delete mode 100644 tests_zemu/snapshots/sp-sign-init_validator/00004.png delete mode 100644 tests_zemu/snapshots/sp-sign-init_validator/00005.png delete mode 100644 tests_zemu/snapshots/sp-sign-init_validator/00006.png delete mode 100644 tests_zemu/snapshots/sp-sign-init_validator/00007.png delete mode 100644 tests_zemu/snapshots/sp-sign-init_validator/00008.png delete mode 100644 tests_zemu/snapshots/sp-sign-init_validator/00009.png delete mode 100644 tests_zemu/snapshots/sp-sign-init_validator/00010.png delete mode 100644 tests_zemu/snapshots/sp-sign-init_validator/00011.png delete mode 100644 tests_zemu/snapshots/sp-sign-init_validator/00012.png delete mode 100644 tests_zemu/snapshots/sp-sign-init_validator/00013.png delete mode 100644 tests_zemu/snapshots/sp-sign-init_validator/00014.png delete mode 100644 tests_zemu/snapshots/sp-sign-init_validator/00015.png delete mode 100644 tests_zemu/snapshots/sp-sign-init_validator/00016.png delete mode 100644 tests_zemu/snapshots/sp-sign-init_validator/00017.png delete mode 100644 tests_zemu/snapshots/sp-sign-init_validator/00018.png delete mode 100644 tests_zemu/snapshots/sp-sign-init_validator/00019.png delete mode 100644 tests_zemu/snapshots/sp-sign-init_validator/00020.png delete mode 100644 tests_zemu/snapshots/sp-sign-init_validator/00021.png delete mode 100644 tests_zemu/snapshots/sp-sign-init_validator/00022.png delete mode 100644 tests_zemu/snapshots/sp-sign-init_validator/00023.png delete mode 100644 tests_zemu/snapshots/st-sign-init_validator/00000.png delete mode 100644 tests_zemu/snapshots/st-sign-init_validator/00001.png delete mode 100644 tests_zemu/snapshots/st-sign-init_validator/00002.png delete mode 100644 tests_zemu/snapshots/st-sign-init_validator/00003.png delete mode 100644 tests_zemu/snapshots/st-sign-init_validator/00004.png delete mode 100644 tests_zemu/snapshots/st-sign-init_validator/00005.png delete mode 100644 tests_zemu/snapshots/st-sign-init_validator/00006.png delete mode 100644 tests_zemu/snapshots/st-sign-init_validator/00007.png delete mode 100644 tests_zemu/snapshots/st-sign-init_validator/00008.png delete mode 100644 tests_zemu/snapshots/x-sign-init_validator/00000.png delete mode 100644 tests_zemu/snapshots/x-sign-init_validator/00001.png delete mode 100644 tests_zemu/snapshots/x-sign-init_validator/00002.png delete mode 100644 tests_zemu/snapshots/x-sign-init_validator/00003.png delete mode 100644 tests_zemu/snapshots/x-sign-init_validator/00004.png delete mode 100644 tests_zemu/snapshots/x-sign-init_validator/00005.png delete mode 100644 tests_zemu/snapshots/x-sign-init_validator/00006.png delete mode 100644 tests_zemu/snapshots/x-sign-init_validator/00007.png delete mode 100644 tests_zemu/snapshots/x-sign-init_validator/00008.png delete mode 100644 tests_zemu/snapshots/x-sign-init_validator/00009.png delete mode 100644 tests_zemu/snapshots/x-sign-init_validator/00010.png delete mode 100644 tests_zemu/snapshots/x-sign-init_validator/00011.png delete mode 100644 tests_zemu/snapshots/x-sign-init_validator/00012.png delete mode 100644 tests_zemu/snapshots/x-sign-init_validator/00013.png delete mode 100644 tests_zemu/snapshots/x-sign-init_validator/00014.png delete mode 100644 tests_zemu/snapshots/x-sign-init_validator/00015.png delete mode 100644 tests_zemu/snapshots/x-sign-init_validator/00016.png delete mode 100644 tests_zemu/snapshots/x-sign-init_validator/00017.png delete mode 100644 tests_zemu/snapshots/x-sign-init_validator/00018.png delete mode 100644 tests_zemu/snapshots/x-sign-init_validator/00019.png delete mode 100644 tests_zemu/snapshots/x-sign-init_validator/00020.png delete mode 100644 tests_zemu/snapshots/x-sign-init_validator/00021.png delete mode 100644 tests_zemu/snapshots/x-sign-init_validator/00022.png delete mode 100644 tests_zemu/snapshots/x-sign-init_validator/00023.png diff --git a/app/src/crypto.c b/app/src/crypto.c index 94979a82..9b593f5d 100644 --- a/app/src/crypto.c +++ b/app/src/crypto.c @@ -257,12 +257,6 @@ static zxerr_t crypto_addTxnHashes(const parser_tx_t *txObj, concatenated_hashes hashes->hashesLen++; break; - case InitValidator: - MEMCPY(hashes->hashes.ptr + hashes->hashesLen * HASH_LEN, txObj->initValidator.vp_type_sechash.ptr, HASH_LEN); - hashes->indices.ptr[hashes->hashesLen] = txObj->initValidator.vp_type_secidx; - hashes->hashesLen++; - break; - case UpdateVP: MEMCPY(hashes->hashes.ptr + hashes->hashesLen * HASH_LEN, txObj->updateVp.vp_type_sechash.ptr, HASH_LEN); hashes->indices.ptr[hashes->hashesLen] = txObj->updateVp.vp_type_secidx; diff --git a/app/src/parser_impl.c b/app/src/parser_impl.c index ad4d7b93..46f3b04e 100644 --- a/app/src/parser_impl.c +++ b/app/src/parser_impl.c @@ -79,16 +79,15 @@ parser_error_t getNumItems(const parser_context_t *ctx, uint8_t *numItems) { *numItems = (app_mode_expert() ? COMMISSION_CHANGE_EXPERT_PARAMS : COMMISSION_CHANGE_NORMAL_PARAMS); break; - case InitValidator: { - const uint32_t accounts = ctx->tx_obj->initValidator.number_of_account_keys; - *numItems = (uint8_t) ((app_mode_expert() ? INIT_VALIDATOR_EXPERT_PARAMS : INIT_VALIDATOR_NORMAL_PARAMS) + accounts); - if(ctx->tx_obj->initValidator.description.ptr) { + case BecomeValidator: { + *numItems = (app_mode_expert() ? BECOME_VALIDATOR_EXPERT_PARAMS : BECOME_VALIDATOR_NORMAL_PARAMS); + if(ctx->tx_obj->becomeValidator.description.ptr) { (*numItems)++; } - if(ctx->tx_obj->initValidator.discord_handle.ptr) { + if(ctx->tx_obj->becomeValidator.discord_handle.ptr) { (*numItems)++; } - if(ctx->tx_obj->initValidator.website.ptr) { + if(ctx->tx_obj->becomeValidator.website.ptr) { (*numItems)++; } break; diff --git a/app/src/parser_impl_common.h b/app/src/parser_impl_common.h index 410feaaa..b6888808 100644 --- a/app/src/parser_impl_common.h +++ b/app/src/parser_impl_common.h @@ -39,8 +39,8 @@ extern "C" { #define VOTE_PROPOSAL_NORMAL_PARAMS 4 #define VOTE_PROPOSAL_EXPERT_PARAMS 9 -#define INIT_VALIDATOR_NORMAL_PARAMS 10 -#define INIT_VALIDATOR_EXPERT_PARAMS 15 +#define BECOME_VALIDATOR_NORMAL_PARAMS 9 +#define BECOME_VALIDATOR_EXPERT_PARAMS 14 #define REVEAL_PUBKEY_NORMAL_PARAMS 2 #define REVEAL_PUBKEY_EXPERT_PARAMS 7 diff --git a/app/src/parser_impl_txn.c b/app/src/parser_impl_txn.c index b70d4230..d2328dc7 100644 --- a/app/src/parser_impl_txn.c +++ b/app/src/parser_impl_txn.c @@ -37,7 +37,7 @@ static const txn_types_t allowed_txn[] = { {"tx_init_account.wasm", InitAccount}, {"tx_init_proposal.wasm", InitProposal}, {"tx_vote_proposal.wasm", VoteProposal}, - {"tx_init_validator.wasm", InitValidator}, + {"tx_become_validator.wasm", BecomeValidator}, {"tx_reveal_pk.wasm", RevealPubkey}, {"tx_transfer.wasm", Transfer}, {"tx_update_account.wasm", UpdateVP}, @@ -173,111 +173,68 @@ static parser_error_t readTransactionType(bytes_t *codeTag, transaction_type_e * return parser_ok; } -static parser_error_t readInitValidatorTxn(bytes_t *data, const section_t *extra_data, const uint32_t extraDataLen, parser_tx_t *v) { +static parser_error_t readBecomeValidatorTxn(bytes_t *data, const section_t *extra_data, const uint32_t extraDataLen, parser_tx_t *v) { if (data == NULL || extra_data == NULL || v == NULL || extraDataLen >= MAX_EXTRA_DATA_SECS) { return parser_unexpected_value; } parser_context_t ctx = {.buffer = data->ptr, .bufferLen = data->len, .offset = 0, .tx_obj = NULL}; - v->initValidator.number_of_account_keys = 0; - CHECK_ERROR(readUint32(&ctx, &v->initValidator.number_of_account_keys)) - if (v->initValidator.number_of_account_keys == 0) { - return parser_unexpected_number_items; - } - v->initValidator.account_keys.len = PK_LEN_25519_PLUS_TAG * v->initValidator.number_of_account_keys; - CHECK_ERROR(readBytes(&ctx, &v->initValidator.account_keys.ptr, v->initValidator.account_keys.len)) - - CHECK_ERROR(readByte(&ctx, &v->initValidator.threshold)) + v->becomeValidator.address.len = ADDRESS_LEN_BYTES; + CHECK_ERROR(readBytes(&ctx, &v->becomeValidator.address.ptr, v->becomeValidator.address.len)) - v->initValidator.consensus_key.len = PK_LEN_25519_PLUS_TAG; - CHECK_ERROR(readBytes(&ctx, &v->initValidator.consensus_key.ptr, v->initValidator.consensus_key.len)) + v->becomeValidator.consensus_key.len = PK_LEN_25519_PLUS_TAG; + CHECK_ERROR(readBytes(&ctx, &v->becomeValidator.consensus_key.ptr, v->becomeValidator.consensus_key.len)) - v->initValidator.eth_cold_key.len = PK_LEN_25519_PLUS_TAG; - CHECK_ERROR(readBytes(&ctx, &v->initValidator.eth_cold_key.ptr, v->initValidator.eth_cold_key.len)) + v->becomeValidator.eth_cold_key.len = PK_LEN_25519_PLUS_TAG; + CHECK_ERROR(readBytes(&ctx, &v->becomeValidator.eth_cold_key.ptr, v->becomeValidator.eth_cold_key.len)) - v->initValidator.eth_hot_key.len = PK_LEN_25519_PLUS_TAG; - CHECK_ERROR(readBytes(&ctx, &v->initValidator.eth_hot_key.ptr, v->initValidator.eth_hot_key.len)) + v->becomeValidator.eth_hot_key.len = PK_LEN_25519_PLUS_TAG; + CHECK_ERROR(readBytes(&ctx, &v->becomeValidator.eth_hot_key.ptr, v->becomeValidator.eth_hot_key.len)) - v->initValidator.protocol_key.len = PK_LEN_25519_PLUS_TAG; - CHECK_ERROR(readBytes(&ctx, &v->initValidator.protocol_key.ptr, v->initValidator.protocol_key.len)) + v->becomeValidator.protocol_key.len = PK_LEN_25519_PLUS_TAG; + CHECK_ERROR(readBytes(&ctx, &v->becomeValidator.protocol_key.ptr, v->becomeValidator.protocol_key.len)) // Commission rate - CHECK_ERROR(readUint256(&ctx, &v->initValidator.commission_rate)); + CHECK_ERROR(readUint256(&ctx, &v->becomeValidator.commission_rate)); // Max commission rate change - CHECK_ERROR(readUint256(&ctx, &v->initValidator.max_commission_rate_change)); + CHECK_ERROR(readUint256(&ctx, &v->becomeValidator.max_commission_rate_change)); // The validator email - CHECK_ERROR(readUint32(&ctx, &v->initValidator.email.len)) - CHECK_ERROR(readBytes(&ctx, &v->initValidator.email.ptr, v->initValidator.email.len)) + CHECK_ERROR(readUint32(&ctx, &v->becomeValidator.email.len)) + CHECK_ERROR(readBytes(&ctx, &v->becomeValidator.email.ptr, v->becomeValidator.email.len)) /// The validator description - v->initValidator.description.ptr = NULL; - v->initValidator.description.len = 0; + v->becomeValidator.description.ptr = NULL; + v->becomeValidator.description.len = 0; uint8_t has_description = 0; CHECK_ERROR(readByte(&ctx, &has_description)) if (has_description) { - CHECK_ERROR(readUint32(&ctx, &v->initValidator.description.len)) - CHECK_ERROR(readBytes(&ctx, &v->initValidator.description.ptr, v->initValidator.description.len)) + CHECK_ERROR(readUint32(&ctx, &v->becomeValidator.description.len)) + CHECK_ERROR(readBytes(&ctx, &v->becomeValidator.description.ptr, v->becomeValidator.description.len)) } /// The validator website - v->initValidator.website.ptr = NULL; - v->initValidator.website.len = 0; + v->becomeValidator.website.ptr = NULL; + v->becomeValidator.website.len = 0; uint8_t has_website; CHECK_ERROR(readByte(&ctx, &has_website)) if (has_website) { - CHECK_ERROR(readUint32(&ctx, &v->initValidator.website.len)) - CHECK_ERROR(readBytes(&ctx, &v->initValidator.website.ptr, v->initValidator.website.len)) + CHECK_ERROR(readUint32(&ctx, &v->becomeValidator.website.len)) + CHECK_ERROR(readBytes(&ctx, &v->becomeValidator.website.ptr, v->becomeValidator.website.len)) } /// The validator's discord handle - v->initValidator.discord_handle.ptr = NULL; - v->initValidator.discord_handle.len = 0; + v->becomeValidator.discord_handle.ptr = NULL; + v->becomeValidator.discord_handle.len = 0; uint8_t has_discord_handle; CHECK_ERROR(readByte(&ctx, &has_discord_handle)) if (has_discord_handle) { - CHECK_ERROR(readUint32(&ctx, &v->initValidator.discord_handle.len)) - CHECK_ERROR(readBytes(&ctx, &v->initValidator.discord_handle.ptr, v->initValidator.discord_handle.len)) - } - - // VP code hash - v->initValidator.vp_type_sechash.len = HASH_LEN; - CHECK_ERROR(readBytes(&ctx, &v->initValidator.vp_type_sechash.ptr, v->initValidator.vp_type_sechash.len)) - - bool found_vp_code = false; - // Load the linked to data from the extra data sections - for (uint32_t i = 0; i < extraDataLen; i++) { - parser_context_t extra_data_ctx = { - .buffer = extra_data[i].bytes.ptr, - .bufferLen = extra_data[i].bytes.len, - .offset = 0, - .tx_obj = NULL}; - - // Read the hash inside the extra data section - bytes_t commitment = { .ptr = NULL, .len = HASH_LEN }; - CHECK_ERROR(readBytes(&extra_data_ctx, &commitment.ptr, commitment.len)) - - uint8_t extraDataHash[HASH_LEN] = {0}; - if (crypto_hashExtraDataSection(&extra_data[i], extraDataHash, sizeof(extraDataHash)) != zxerr_ok) { - return parser_unexpected_error; - } - - if (!memcmp(extraDataHash, v->initValidator.vp_type_sechash.ptr, HASH_LEN)) { - // If this section contains the VP code hash - v->initValidator.vp_type_secidx = extra_data[i].idx; - v->initValidator.vp_type_hash = commitment; - CHECK_ERROR(readVPType(&extra_data[i].tag, &v->initValidator.vp_type_text)) - found_vp_code = true; - } - if (extra_data_ctx.offset != extra_data_ctx.bufferLen) { - return parser_unexpected_characters; - } + CHECK_ERROR(readUint32(&ctx, &v->becomeValidator.discord_handle.len)) + CHECK_ERROR(readBytes(&ctx, &v->becomeValidator.discord_handle.ptr, v->becomeValidator.discord_handle.len)) } - if (!found_vp_code) { - return parser_missing_field; - } else if (ctx.offset != ctx.bufferLen) { + if (ctx.offset != ctx.bufferLen) { return parser_unexpected_characters; } return parser_ok; @@ -1177,8 +1134,8 @@ parser_error_t validateTransactionParams(parser_tx_t *txObj) { case CommissionChange: CHECK_ERROR(readCommissionChangeTxn(&txObj->transaction.sections.data.bytes, txObj)) break; - case InitValidator: - CHECK_ERROR(readInitValidatorTxn(&txObj->transaction.sections.data.bytes, txObj->transaction.sections.extraData, txObj->transaction.sections.extraDataLen, txObj)) + case BecomeValidator: + CHECK_ERROR(readBecomeValidatorTxn(&txObj->transaction.sections.data.bytes, txObj->transaction.sections.extraData, txObj->transaction.sections.extraDataLen, txObj)) break; case UpdateVP: CHECK_ERROR(readUpdateVPTxn(&txObj->transaction.sections.data.bytes, txObj->transaction.sections.extraData, txObj->transaction.sections.extraDataLen, txObj)) diff --git a/app/src/parser_print_txn.c b/app/src/parser_print_txn.c index 718b8fc3..a1769d89 100644 --- a/app/src/parser_print_txn.c +++ b/app/src/parser_print_txn.c @@ -548,30 +548,23 @@ static parser_error_t printUpdateVPTxn(const parser_context_t *ctx, return parser_ok; } -static parser_error_t printInitValidatorTxn( const parser_context_t *ctx, +static parser_error_t printBecomeValidatorTxn( const parser_context_t *ctx, uint8_t displayIdx, char *outKey, uint16_t outKeyLen, char *outVal, uint16_t outValLen, uint8_t pageIdx, uint8_t *pageCount) { - - const tx_init_validator_t *initValidator = &ctx->tx_obj->initValidator; - const uint32_t account_keys = initValidator->number_of_account_keys; - - uint8_t adjustedDisplayIdx = (displayIdx == 0) ? displayIdx : \ - (displayIdx < account_keys + 1) ? 1 : displayIdx - account_keys + 1; - - if(adjustedDisplayIdx >= 10 && ctx->tx_obj->initValidator.description.ptr == NULL) { - adjustedDisplayIdx++; + if(displayIdx >= 9 && ctx->tx_obj->becomeValidator.description.ptr == NULL) { + displayIdx++; } - if(adjustedDisplayIdx >= 11 && ctx->tx_obj->initValidator.website.ptr == NULL) { - adjustedDisplayIdx++; + if(displayIdx >= 10 && ctx->tx_obj->becomeValidator.website.ptr == NULL) { + displayIdx++; } - if(adjustedDisplayIdx >= 12 && ctx->tx_obj->initValidator.discord_handle.ptr == NULL) { - adjustedDisplayIdx++; + if(displayIdx >= 11 && ctx->tx_obj->becomeValidator.discord_handle.ptr == NULL) { + displayIdx++; } - switch (adjustedDisplayIdx) { + switch (displayIdx) { case 0: snprintf(outKey, outKeyLen, "Type"); snprintf(outVal, outValLen, "Init Validator"); @@ -581,97 +574,69 @@ static parser_error_t printInitValidatorTxn( const parser_context_t *ctx, } break; case 1: { - snprintf(outKey, outKeyLen, "Account key"); - const uint8_t key_index = displayIdx - 1; - const bytes_t key = { - .ptr = initValidator->account_keys.ptr + PK_LEN_25519_PLUS_TAG * key_index, - .len = PK_LEN_25519_PLUS_TAG - }; - CHECK_ERROR(printPublicKey(&key, outVal, outValLen, pageIdx, pageCount)); + snprintf(outKey, outKeyLen, "Address"); + CHECK_ERROR(printAddress(ctx->tx_obj->becomeValidator.address, outVal, outValLen, pageIdx, pageCount)) break; } case 2: { - *pageCount = 1; - snprintf(outKey, outKeyLen, "Threshold"); - snprintf(outVal, outValLen, "%d", initValidator->threshold); - break; - } - case 3: { snprintf(outKey, outKeyLen, "Consensus key"); - const bytes_t *consensusKey = &ctx->tx_obj->initValidator.consensus_key; + const bytes_t *consensusKey = &ctx->tx_obj->becomeValidator.consensus_key; CHECK_ERROR(printPublicKey(consensusKey, outVal, outValLen, pageIdx, pageCount)); break; } - case 4: { + case 3: { snprintf(outKey, outKeyLen, "Ethereum cold key"); - const bytes_t *ethColdKey = &ctx->tx_obj->initValidator.eth_cold_key; + const bytes_t *ethColdKey = &ctx->tx_obj->becomeValidator.eth_cold_key; pageStringHex(outVal, outValLen, (const char*) ethColdKey->ptr, ethColdKey->len, pageIdx, pageCount); break; } - case 5: { + case 4: { snprintf(outKey, outKeyLen, "Ethereum hot key"); - const bytes_t *ethHotKey = &ctx->tx_obj->initValidator.eth_hot_key; + const bytes_t *ethHotKey = &ctx->tx_obj->becomeValidator.eth_hot_key; pageStringHex(outVal, outValLen, (const char*) ethHotKey->ptr, ethHotKey->len, pageIdx, pageCount); break; } - case 6: { + case 5: { snprintf(outKey, outKeyLen, "Protocol key"); - const bytes_t *protocolKey = &ctx->tx_obj->initValidator.protocol_key; + const bytes_t *protocolKey = &ctx->tx_obj->becomeValidator.protocol_key; CHECK_ERROR(printPublicKey(protocolKey, outVal, outValLen, pageIdx, pageCount)); break; } - case 7: { + case 6: { snprintf(outKey, outKeyLen, "Commission rate"); - CHECK_ERROR(printAmount(&ctx->tx_obj->initValidator.commission_rate, POS_DECIMAL_PRECISION, "", outVal, outValLen, pageIdx, pageCount)) + CHECK_ERROR(printAmount(&ctx->tx_obj->becomeValidator.commission_rate, POS_DECIMAL_PRECISION, "", outVal, outValLen, pageIdx, pageCount)) break; } - case 8: { + case 7: { snprintf(outKey, outKeyLen, "Maximum commission rate change"); - CHECK_ERROR(printAmount(&ctx->tx_obj->initValidator.max_commission_rate_change, POS_DECIMAL_PRECISION, "", outVal, outValLen, pageIdx, pageCount)) + CHECK_ERROR(printAmount(&ctx->tx_obj->becomeValidator.max_commission_rate_change, POS_DECIMAL_PRECISION, "", outVal, outValLen, pageIdx, pageCount)) break; } - case 9: { + case 8: { snprintf(outKey, outKeyLen, "Email"); - pageStringExt(outVal, outValLen, (const char*)ctx->tx_obj->initValidator.email.ptr, ctx->tx_obj->initValidator.email.len, pageIdx, pageCount); + pageStringExt(outVal, outValLen, (const char*)ctx->tx_obj->becomeValidator.email.ptr, ctx->tx_obj->becomeValidator.email.len, pageIdx, pageCount); break; } - case 10: { + case 9: { snprintf(outKey, outKeyLen, "Description"); - pageStringExt(outVal, outValLen, (const char*)ctx->tx_obj->initValidator.description.ptr, ctx->tx_obj->initValidator.description.len, pageIdx, pageCount); + pageStringExt(outVal, outValLen, (const char*)ctx->tx_obj->becomeValidator.description.ptr, ctx->tx_obj->becomeValidator.description.len, pageIdx, pageCount); break; } - case 11: { + case 10: { snprintf(outKey, outKeyLen, "Website"); - pageStringExt(outVal, outValLen, (const char*)ctx->tx_obj->initValidator.website.ptr, ctx->tx_obj->initValidator.website.len, pageIdx, pageCount); + pageStringExt(outVal, outValLen, (const char*)ctx->tx_obj->becomeValidator.website.ptr, ctx->tx_obj->becomeValidator.website.len, pageIdx, pageCount); break; } - case 12: { + case 11: { snprintf(outKey, outKeyLen, "Discord handle"); - pageStringExt(outVal, outValLen, (const char*)ctx->tx_obj->initValidator.discord_handle.ptr, ctx->tx_obj->initValidator.discord_handle.len, pageIdx, pageCount); - break; - } - case 13: { - snprintf(outKey, outKeyLen, "Validator VP type"); - pageString(outVal, outValLen,ctx->tx_obj->initValidator.vp_type_text, pageIdx, pageCount); - if (app_mode_expert()) { - pageStringHex(outVal, outValLen, (const char*)ctx->tx_obj->initValidator.vp_type_hash.ptr, ctx->tx_obj->initValidator.vp_type_hash.len, pageIdx, pageCount); - } + pageStringExt(outVal, outValLen, (const char*)ctx->tx_obj->becomeValidator.discord_handle.ptr, ctx->tx_obj->becomeValidator.discord_handle.len, pageIdx, pageCount); break; } default: { if (!app_mode_expert()) { return parser_display_idx_out_of_range; } - displayIdx -= INIT_VALIDATOR_NORMAL_PARAMS + account_keys; - if (initValidator->description.ptr != NULL) { - displayIdx--; - } - if (initValidator->discord_handle.ptr != NULL) { - displayIdx--; - } - if (initValidator->website.ptr != NULL) { - displayIdx--; - } + displayIdx -= 12; return printExpert(ctx, displayIdx, outKey, outKeyLen, outVal, outValLen, pageIdx, pageCount); } } @@ -868,8 +833,8 @@ parser_error_t printTxnFields(const parser_context_t *ctx, case CommissionChange: return printCommissionChangeTxn(ctx, displayIdx, outKey, outKeyLen, outVal, outValLen, pageIdx, pageCount); - case InitValidator: - return printInitValidatorTxn(ctx, displayIdx, outKey, outKeyLen, outVal, outValLen, pageIdx, pageCount); + case BecomeValidator: + return printBecomeValidatorTxn(ctx, displayIdx, outKey, outKeyLen, outVal, outValLen, pageIdx, pageCount); case UpdateVP: return printUpdateVPTxn(ctx, displayIdx, outKey, outKeyLen, outVal, outValLen, pageIdx, pageCount); diff --git a/app/src/parser_txdef.h b/app/src/parser_txdef.h index 7951f6db..aacaf239 100644 --- a/app/src/parser_txdef.h +++ b/app/src/parser_txdef.h @@ -184,7 +184,7 @@ typedef struct{ tx_unjail_validator_t unjailValidator; tx_withdraw_t withdraw; tx_commission_change_t commissionChange; - tx_init_validator_t initValidator; + tx_become_validator_t becomeValidator; tx_update_vp_t updateVp; tx_ibc_t ibc; }; diff --git a/app/src/parser_types.h b/app/src/parser_types.h index 4d530058..5ecaaab2 100644 --- a/app/src/parser_types.h +++ b/app/src/parser_types.h @@ -36,7 +36,7 @@ typedef enum { InitAccount, InitProposal, VoteProposal, - InitValidator, + BecomeValidator, RevealPubkey, UpdateVP, Custom, @@ -170,9 +170,7 @@ typedef struct { } tx_commission_change_t; typedef struct { - uint32_t number_of_account_keys; - bytes_t account_keys; - uint8_t threshold; + bytes_t address; bytes_t consensus_key; bytes_t eth_cold_key; bytes_t eth_hot_key; @@ -183,11 +181,7 @@ typedef struct { bytes_t description; bytes_t website; bytes_t discord_handle; - uint8_t vp_type_secidx; - bytes_t vp_type_sechash; - bytes_t vp_type_hash; - const char* vp_type_text; -} tx_init_validator_t; +} tx_become_validator_t; typedef struct { bytes_t address; diff --git a/deps/ledger-zxlib b/deps/ledger-zxlib index 7f80d18a..82e20147 160000 --- a/deps/ledger-zxlib +++ b/deps/ledger-zxlib @@ -1 +1 @@ -Subproject commit 7f80d18afcf509f5028d226e36bc206624601229 +Subproject commit 82e20147eeacb09234cce1114fd42ba255ae1077 diff --git a/deps/nanos-secure-sdk b/deps/nanos-secure-sdk index 30189cfd..40a60bc8 160000 --- a/deps/nanos-secure-sdk +++ b/deps/nanos-secure-sdk @@ -1 +1 @@ -Subproject commit 30189cfd070040e5c144d4dab103d549302dcfff +Subproject commit 40a60bc83c6b1422e047c36beb4018891bc34b12 diff --git a/tests/testvectors.json b/tests/testvectors.json index 9ca45f51..4acd41f6 100644 --- a/tests/testvectors.json +++ b/tests/testvectors.json @@ -1197,214 +1197,6 @@ ], "valid": true }, - { - "blob": "1d0000006c6f63616c6e65742e6664633665356661643365356535326433662d300023000000323032332d31312d31365431343a33333a31302e3636383135373431372b30303a3030b22ee9c99e4872bab5ba08de9ca303e91752467dfff0f9c553e48fd59710dd25f19e162831bc6d5727ccc116dffc00e7a8a63e70c7b839a8d8c88c411bf7cc470101000000000000000000000000000000000000000000000000000000000000000032fdd4e57f56519541491312d4e9089032244eca0048998ffa0340c473b72dad3604abd76581e71e4a334d0708ef754a0adcec66d81500000000000000a8610000000000000003000000010cd78cd88b0100000053e9023f2edc55e90bdcf6024760140a91a7904cb4a529cb1707ea3d34ee685a010c00000076705f757365722e7761736d020cd78cd88b01000000aa3b3dd227cd3199b3cef164b679fc62a4e6531ffce547eadb766c050d5fabfd011600000074785f696e69745f76616c696461746f722e7761736d000cd78cd88b0100001a010000010000000048998ffa0340c473b72dad3604abd76581e71e4a334d0708ef754a0adcec66d80100b8a1bde0e03a61c147c6f1213e0951e8947c3eabc7a81940bdb9a46da2575df1034f85391fb1d43071b7e020c2709923df792661f6436f0ee88790dd5564238fdf02ea1b59f3111bac9ec7715f569299bfd384d701d405734d7a7514df86bf5e993500bfce4de74239e46afaec08bbd6157d082a21554220a1d9e3a470d7a346aa7d5a00743ba40b00000000000000000000000000000000000000000000000000000000e40b5402000000000000000000000000000000000000000000000000000000090000006d65406d652e636f6d000000832542bf65dcc5e4846a4e9e539946ce7c81f566337c25bb4adb33c0ee16dcbe", - "index": 0, - "name": "Init_Validator_0", - "output": [ - "0 | Type : Init Validator", - "1 | Account key [1/2] : tpknam1qpyfnrl6qdqvguah9kknvp9t6ajcrec", - "1 | Account key [2/2] : 7fge56pcgaa655zkua3nds48x83t", - "2 | Threshold : 1", - "3 | Consensus key [1/2] : tpknam1qzu2r00quqaxrs28cmcjz0sf285fglp", - "3 | Consensus key [2/2] : 740r6sx2qhku6gmdz2awlzqd62jw", - "4 | Ethereum cold key [1/2] : 034f85391fb1d43071b7e020c2709923df7926", - "4 | Ethereum cold key [2/2] : 61f6436f0ee88790dd5564238fdf", - "5 | Ethereum hot key [1/2] : 02ea1b59f3111bac9ec7715f569299bfd384d7", - "5 | Ethereum hot key [2/2] : 01d405734d7a7514df86bf5e9935", - "6 | Protocol key [1/2] : tpknam1qzluun08ggu7g6h6asyth4s405yz5g2", - "6 | Protocol key [2/2] : 4ggs2rk0r53cd0g6x4f745yxzzk2", - "7 | Commission rate : 0.05", - "8 | Maximum commission rate change : 0.01", - "9 | Email : me@me.com", - "10 | Validator VP type : User" - ], - "output_expert": [ - "0 | Code hash [1/2] : aa3b3dd227cd3199b3cef164b679fc62a4e653", - "0 | Code hash [2/2] : 1ffce547eadb766c050d5fabfd", - "1 | Account key [1/2] : tpknam1qpyfnrl6qdqvguah9kknvp9t6ajcrec", - "1 | Account key [2/2] : 7fge56pcgaa655zkua3nds48x83t", - "2 | Threshold : 1", - "3 | Consensus key [1/2] : tpknam1qzu2r00quqaxrs28cmcjz0sf285fglp", - "3 | Consensus key [2/2] : 740r6sx2qhku6gmdz2awlzqd62jw", - "4 | Ethereum cold key [1/2] : 034f85391fb1d43071b7e020c2709923df7926", - "4 | Ethereum cold key [2/2] : 61f6436f0ee88790dd5564238fdf", - "5 | Ethereum hot key [1/2] : 02ea1b59f3111bac9ec7715f569299bfd384d7", - "5 | Ethereum hot key [2/2] : 01d405734d7a7514df86bf5e9935", - "6 | Protocol key [1/2] : tpknam1qzluun08ggu7g6h6asyth4s405yz5g2", - "6 | Protocol key [2/2] : 4ggs2rk0r53cd0g6x4f745yxzzk2", - "7 | Commission rate : 0.05", - "8 | Maximum commission rate change : 0.01", - "9 | Email : me@me.com", - "10 | Validator VP type [1/2] : 53e9023f2edc55e90bdcf6024760140a91a790", - "10 | Validator VP type [2/2] : 4cb4a529cb1707ea3d34ee685a", - "11 | Timestamp : 2023-11-16 14:33:10.668157417 UTC", - "12 | Pubkey [1/2] : tpknam1qpyfnrl6qdqvguah9kknvp9t6ajcrec", - "12 | Pubkey [2/2] : 7fge56pcgaa655zkua3nds48x83t", - "13 | Epoch : 21", - "14 | Gas limit : 0.025", - "15 | Fees/gas unit : NAM 0.000001" - ], - "valid": true - }, - { - "blob": "1d0000006c6f63616c6e65742e6664633665356661643365356535326433662d300023000000323032332d31312d31365431343a33333a31302e3636383135373431372b30303a3030b22ee9c99e4872bab5ba08de9ca303e91752467dfff0f9c553e48fd59710dd25f19e162831bc6d5727ccc116dffc00e7a8a63e70c7b839a8d8c88c411bf7cc470101000000000000000000000000000000000000000000000000000000000000000032fdd4e57f56519541491312d4e9089032244eca0048998ffa0340c473b72dad3604abd76581e71e4a334d0708ef754a0adcec66d81500000000000000a8610000000000000004000000010cd78cd88b0100000053e9023f2edc55e90bdcf6024760140a91a7904cb4a529cb1707ea3d34ee685a010c00000076705f757365722e7761736d020cd78cd88b01000000aa3b3dd227cd3199b3cef164b679fc62a4e6531ffce547eadb766c050d5fabfd011600000074785f696e69745f76616c696461746f722e7761736d000cd78cd88b0100001a010000010000000048998ffa0340c473b72dad3604abd76581e71e4a334d0708ef754a0adcec66d80100b8a1bde0e03a61c147c6f1213e0951e8947c3eabc7a81940bdb9a46da2575df1034f85391fb1d43071b7e020c2709923df792661f6436f0ee88790dd5564238fdf02ea1b59f3111bac9ec7715f569299bfd384d701d405734d7a7514df86bf5e993500bfce4de74239e46afaec08bbd6157d082a21554220a1d9e3a470d7a346aa7d5a00743ba40b00000000000000000000000000000000000000000000000000000000e40b5402000000000000000000000000000000000000000000000000000000090000006d65406d652e636f6d000000832542bf65dcc5e4846a4e9e539946ce7c81f566337c25bb4adb33c0ee16dcbe03040000001d050abff007fa2a0d4b9d133f65f6dd6c5a8334ea927a666581265267a436ce832542bf65dcc5e4846a4e9e539946ce7c81f566337c25bb4adb33c0ee16dcbeb22ee9c99e4872bab5ba08de9ca303e91752467dfff0f9c553e48fd59710dd25f19e162831bc6d5727ccc116dffc00e7a8a63e70c7b839a8d8c88c411bf7cc4701010000000048998ffa0340c473b72dad3604abd76581e71e4a334d0708ef754a0adcec66d8010000000000bcfb3e7c51dce264917b86c2784a3e793b0b2f01fbedda43fed5f21cc15b94cb950de6f28e85f3466d85f80b90fec6786690af83af6e0e3dcb8fc59438c18509", - "index": 0, - "name": "Init_Validator_1", - "output": [ - "0 | Type : Init Validator", - "1 | Account key [1/2] : tpknam1qpyfnrl6qdqvguah9kknvp9t6ajcrec", - "1 | Account key [2/2] : 7fge56pcgaa655zkua3nds48x83t", - "2 | Threshold : 1", - "3 | Consensus key [1/2] : tpknam1qzu2r00quqaxrs28cmcjz0sf285fglp", - "3 | Consensus key [2/2] : 740r6sx2qhku6gmdz2awlzqd62jw", - "4 | Ethereum cold key [1/2] : 034f85391fb1d43071b7e020c2709923df7926", - "4 | Ethereum cold key [2/2] : 61f6436f0ee88790dd5564238fdf", - "5 | Ethereum hot key [1/2] : 02ea1b59f3111bac9ec7715f569299bfd384d7", - "5 | Ethereum hot key [2/2] : 01d405734d7a7514df86bf5e9935", - "6 | Protocol key [1/2] : tpknam1qzluun08ggu7g6h6asyth4s405yz5g2", - "6 | Protocol key [2/2] : 4ggs2rk0r53cd0g6x4f745yxzzk2", - "7 | Commission rate : 0.05", - "8 | Maximum commission rate change : 0.01", - "9 | Email : me@me.com", - "10 | Validator VP type : User" - ], - "output_expert": [ - "0 | Code hash [1/2] : aa3b3dd227cd3199b3cef164b679fc62a4e653", - "0 | Code hash [2/2] : 1ffce547eadb766c050d5fabfd", - "1 | Account key [1/2] : tpknam1qpyfnrl6qdqvguah9kknvp9t6ajcrec", - "1 | Account key [2/2] : 7fge56pcgaa655zkua3nds48x83t", - "2 | Threshold : 1", - "3 | Consensus key [1/2] : tpknam1qzu2r00quqaxrs28cmcjz0sf285fglp", - "3 | Consensus key [2/2] : 740r6sx2qhku6gmdz2awlzqd62jw", - "4 | Ethereum cold key [1/2] : 034f85391fb1d43071b7e020c2709923df7926", - "4 | Ethereum cold key [2/2] : 61f6436f0ee88790dd5564238fdf", - "5 | Ethereum hot key [1/2] : 02ea1b59f3111bac9ec7715f569299bfd384d7", - "5 | Ethereum hot key [2/2] : 01d405734d7a7514df86bf5e9935", - "6 | Protocol key [1/2] : tpknam1qzluun08ggu7g6h6asyth4s405yz5g2", - "6 | Protocol key [2/2] : 4ggs2rk0r53cd0g6x4f745yxzzk2", - "7 | Commission rate : 0.05", - "8 | Maximum commission rate change : 0.01", - "9 | Email : me@me.com", - "10 | Validator VP type [1/2] : 53e9023f2edc55e90bdcf6024760140a91a790", - "10 | Validator VP type [2/2] : 4cb4a529cb1707ea3d34ee685a", - "11 | Timestamp : 2023-11-16 14:33:10.668157417 UTC", - "12 | Pubkey [1/2] : tpknam1qpyfnrl6qdqvguah9kknvp9t6ajcrec", - "12 | Pubkey [2/2] : 7fge56pcgaa655zkua3nds48x83t", - "13 | Epoch : 21", - "14 | Gas limit : 0.025", - "15 | Fees/gas unit : NAM 0.000001" - ], - "valid": true - }, - { - "blob": "1d0000006c6f63616c6e65742e6664633665356661643365356535326433662d300023000000323032332d31312d31365431343a33333a31332e3939313039383337302b30303a3030d2b4e2878956046502918062b8c80a5658f8f3431701c65da3eabef09dd2a9ba96c52b83086ec1af23e808f056f800644c4acec51817a07be92bea6e0ad97a600101000000000000000000000000000000000000000000000000000000000000000032fdd4e57f56519541491312d4e9089032244eca009fd0df101ba3e91d24f555893ae1bf0b271bd98363d6d4c659876731fe4a75171600000000000000a86100000000000000030000000107e48cd88b0100000053e9023f2edc55e90bdcf6024760140a91a7904cb4a529cb1707ea3d34ee685a010c00000076705f757365722e7761736d0207e48cd88b01000000aa3b3dd227cd3199b3cef164b679fc62a4e6531ffce547eadb766c050d5fabfd011600000074785f696e69745f76616c696461746f722e7761736d0007e48cd88b0100003b01000002000000009fd0df101ba3e91d24f555893ae1bf0b271bd98363d6d4c659876731fe4a75170048998ffa0340c473b72dad3604abd76581e71e4a334d0708ef754a0adcec66d80200ba6efc26f606b037a6c2fcf29ee4ff749620ca86ada7b629131f9946acebaa7003e25cb70ec981f27c465a3a8a35694950f2b0c9d747aa1e23aeb69dffe029abb703136e3f80ffcd087f6016f17398b14cbf07369b7af9cec264da4799f09e0b5b620011db6c2c277c4ece00ba8ece62910edc6aebd17d352b35a8e8a0f8251695977000743ba40b00000000000000000000000000000000000000000000000000000000e40b5402000000000000000000000000000000000000000000000000000000090000006d65406d652e636f6d00000087899a8f69a341d669bdd2baaad2db9c4e302559df5bb0dfc63684b1339102b2", - "index": 0, - "name": "Init_Validator_2", - "output": [ - "0 | Type : Init Validator", - "1 | Account key [1/2] : tpknam1qz0aphcsrw37j8fy742cjwhphu9jwx7", - "1 | Account key [2/2] : esd3ad4xxtxrkwv07ff63we33t3r", - "2 | Account key [1/2] : tpknam1qpyfnrl6qdqvguah9kknvp9t6ajcrec", - "2 | Account key [2/2] : 7fge56pcgaa655zkua3nds48x83t", - "3 | Threshold : 2", - "4 | Consensus key [1/2] : tpknam1qzaxalpx7crtqdaxct7098hyla6fvgx", - "4 | Consensus key [2/2] : 2s6k60d3fzv0ej34vaw48qr49atq", - "5 | Ethereum cold key [1/2] : 03e25cb70ec981f27c465a3a8a35694950f2b0", - "5 | Ethereum cold key [2/2] : c9d747aa1e23aeb69dffe029abb7", - "6 | Ethereum hot key [1/2] : 03136e3f80ffcd087f6016f17398b14cbf0736", - "6 | Ethereum hot key [2/2] : 9b7af9cec264da4799f09e0b5b62", - "7 | Protocol key [1/2] : tpknam1qqgakmpvya7yansqh28vuc53pmwx467", - "7 | Protocol key [2/2] : 3056jkddgazs0sfgkjkthqm688hw", - "8 | Commission rate : 0.05", - "9 | Maximum commission rate change : 0.01", - "10 | Email : me@me.com", - "11 | Validator VP type : User" - ], - "output_expert": [ - "0 | Code hash [1/2] : aa3b3dd227cd3199b3cef164b679fc62a4e653", - "0 | Code hash [2/2] : 1ffce547eadb766c050d5fabfd", - "1 | Account key [1/2] : tpknam1qz0aphcsrw37j8fy742cjwhphu9jwx7", - "1 | Account key [2/2] : esd3ad4xxtxrkwv07ff63we33t3r", - "2 | Account key [1/2] : tpknam1qpyfnrl6qdqvguah9kknvp9t6ajcrec", - "2 | Account key [2/2] : 7fge56pcgaa655zkua3nds48x83t", - "3 | Threshold : 2", - "4 | Consensus key [1/2] : tpknam1qzaxalpx7crtqdaxct7098hyla6fvgx", - "4 | Consensus key [2/2] : 2s6k60d3fzv0ej34vaw48qr49atq", - "5 | Ethereum cold key [1/2] : 03e25cb70ec981f27c465a3a8a35694950f2b0", - "5 | Ethereum cold key [2/2] : c9d747aa1e23aeb69dffe029abb7", - "6 | Ethereum hot key [1/2] : 03136e3f80ffcd087f6016f17398b14cbf0736", - "6 | Ethereum hot key [2/2] : 9b7af9cec264da4799f09e0b5b62", - "7 | Protocol key [1/2] : tpknam1qqgakmpvya7yansqh28vuc53pmwx467", - "7 | Protocol key [2/2] : 3056jkddgazs0sfgkjkthqm688hw", - "8 | Commission rate : 0.05", - "9 | Maximum commission rate change : 0.01", - "10 | Email : me@me.com", - "11 | Validator VP type [1/2] : 53e9023f2edc55e90bdcf6024760140a91a790", - "11 | Validator VP type [2/2] : 4cb4a529cb1707ea3d34ee685a", - "12 | Timestamp : 2023-11-16 14:33:13.991098370 UTC", - "13 | Pubkey [1/2] : tpknam1qz0aphcsrw37j8fy742cjwhphu9jwx7", - "13 | Pubkey [2/2] : esd3ad4xxtxrkwv07ff63we33t3r", - "14 | Epoch : 22", - "15 | Gas limit : 0.025", - "16 | Fees/gas unit : NAM 0.000001" - ], - "valid": true - }, - { - "blob": "1d0000006c6f63616c6e65742e6664633665356661643365356535326433662d300023000000323032332d31312d31365431343a33333a31332e3939313039383337302b30303a3030d2b4e2878956046502918062b8c80a5658f8f3431701c65da3eabef09dd2a9ba96c52b83086ec1af23e808f056f800644c4acec51817a07be92bea6e0ad97a600101000000000000000000000000000000000000000000000000000000000000000032fdd4e57f56519541491312d4e9089032244eca009fd0df101ba3e91d24f555893ae1bf0b271bd98363d6d4c659876731fe4a75171600000000000000a86100000000000000040000000107e48cd88b0100000053e9023f2edc55e90bdcf6024760140a91a7904cb4a529cb1707ea3d34ee685a010c00000076705f757365722e7761736d0207e48cd88b01000000aa3b3dd227cd3199b3cef164b679fc62a4e6531ffce547eadb766c050d5fabfd011600000074785f696e69745f76616c696461746f722e7761736d0007e48cd88b0100003b01000002000000009fd0df101ba3e91d24f555893ae1bf0b271bd98363d6d4c659876731fe4a75170048998ffa0340c473b72dad3604abd76581e71e4a334d0708ef754a0adcec66d80200ba6efc26f606b037a6c2fcf29ee4ff749620ca86ada7b629131f9946acebaa7003e25cb70ec981f27c465a3a8a35694950f2b0c9d747aa1e23aeb69dffe029abb703136e3f80ffcd087f6016f17398b14cbf07369b7af9cec264da4799f09e0b5b620011db6c2c277c4ece00ba8ece62910edc6aebd17d352b35a8e8a0f8251695977000743ba40b00000000000000000000000000000000000000000000000000000000e40b5402000000000000000000000000000000000000000000000000000000090000006d65406d652e636f6d00000087899a8f69a341d669bdd2baaad2db9c4e302559df5bb0dfc63684b1339102b2030400000025676c53c757a2ec370de469a011ea69211d72452e7b0879713dd82a6c3b8d7687899a8f69a341d669bdd2baaad2db9c4e302559df5bb0dfc63684b1339102b2d2b4e2878956046502918062b8c80a5658f8f3431701c65da3eabef09dd2a9ba96c52b83086ec1af23e808f056f800644c4acec51817a07be92bea6e0ad97a600101000000009fd0df101ba3e91d24f555893ae1bf0b271bd98363d6d4c659876731fe4a7517010000000000f19e5fe0b241065e6c04cb0d2c552a976754b84f0db584ca18f2cb8c7539a1c4afd007908f5478be9c4ceff4ca2055549b6061c9dc74f623f87ea1f1689c1c07", - "index": 0, - "name": "Init_Validator_3", - "output": [ - "0 | Type : Init Validator", - "1 | Account key [1/2] : tpknam1qz0aphcsrw37j8fy742cjwhphu9jwx7", - "1 | Account key [2/2] : esd3ad4xxtxrkwv07ff63we33t3r", - "2 | Account key [1/2] : tpknam1qpyfnrl6qdqvguah9kknvp9t6ajcrec", - "2 | Account key [2/2] : 7fge56pcgaa655zkua3nds48x83t", - "3 | Threshold : 2", - "4 | Consensus key [1/2] : tpknam1qzaxalpx7crtqdaxct7098hyla6fvgx", - "4 | Consensus key [2/2] : 2s6k60d3fzv0ej34vaw48qr49atq", - "5 | Ethereum cold key [1/2] : 03e25cb70ec981f27c465a3a8a35694950f2b0", - "5 | Ethereum cold key [2/2] : c9d747aa1e23aeb69dffe029abb7", - "6 | Ethereum hot key [1/2] : 03136e3f80ffcd087f6016f17398b14cbf0736", - "6 | Ethereum hot key [2/2] : 9b7af9cec264da4799f09e0b5b62", - "7 | Protocol key [1/2] : tpknam1qqgakmpvya7yansqh28vuc53pmwx467", - "7 | Protocol key [2/2] : 3056jkddgazs0sfgkjkthqm688hw", - "8 | Commission rate : 0.05", - "9 | Maximum commission rate change : 0.01", - "10 | Email : me@me.com", - "11 | Validator VP type : User" - ], - "output_expert": [ - "0 | Code hash [1/2] : aa3b3dd227cd3199b3cef164b679fc62a4e653", - "0 | Code hash [2/2] : 1ffce547eadb766c050d5fabfd", - "1 | Account key [1/2] : tpknam1qz0aphcsrw37j8fy742cjwhphu9jwx7", - "1 | Account key [2/2] : esd3ad4xxtxrkwv07ff63we33t3r", - "2 | Account key [1/2] : tpknam1qpyfnrl6qdqvguah9kknvp9t6ajcrec", - "2 | Account key [2/2] : 7fge56pcgaa655zkua3nds48x83t", - "3 | Threshold : 2", - "4 | Consensus key [1/2] : tpknam1qzaxalpx7crtqdaxct7098hyla6fvgx", - "4 | Consensus key [2/2] : 2s6k60d3fzv0ej34vaw48qr49atq", - "5 | Ethereum cold key [1/2] : 03e25cb70ec981f27c465a3a8a35694950f2b0", - "5 | Ethereum cold key [2/2] : c9d747aa1e23aeb69dffe029abb7", - "6 | Ethereum hot key [1/2] : 03136e3f80ffcd087f6016f17398b14cbf0736", - "6 | Ethereum hot key [2/2] : 9b7af9cec264da4799f09e0b5b62", - "7 | Protocol key [1/2] : tpknam1qqgakmpvya7yansqh28vuc53pmwx467", - "7 | Protocol key [2/2] : 3056jkddgazs0sfgkjkthqm688hw", - "8 | Commission rate : 0.05", - "9 | Maximum commission rate change : 0.01", - "10 | Email : me@me.com", - "11 | Validator VP type [1/2] : 53e9023f2edc55e90bdcf6024760140a91a790", - "11 | Validator VP type [2/2] : 4cb4a529cb1707ea3d34ee685a", - "12 | Timestamp : 2023-11-16 14:33:13.991098370 UTC", - "13 | Pubkey [1/2] : tpknam1qz0aphcsrw37j8fy742cjwhphu9jwx7", - "13 | Pubkey [2/2] : esd3ad4xxtxrkwv07ff63we33t3r", - "14 | Epoch : 22", - "15 | Gas limit : 0.025", - "16 | Fees/gas unit : NAM 0.000001" - ], - "valid": true - }, { "blob": "1d0000006c6f63616c6e65742e6664633665356661643365356535326433662d300023000000323032332d31312d31365431343a33333a31372e3834313638383233332b30303a30306943dc8a11a05cbff27316dce3c6a08d54eefe52dc9979b80fff004e34f806a32e476b56bf1e13f1ef69ef9e4ee6960a74c14fda797869d7f81d65c859bc41b30101000000000000000000000000000000000000000000000000000000000000000032fdd4e57f56519541491312d4e9089032244eca009fd0df101ba3e91d24f555893ae1bf0b271bd98363d6d4c659876731fe4a75171600000000000000a8610000000000000002000000023cf38cd88b01000000225af750859bdb467eeacea9845744d073be9da3719215b036876572d81b5e0d011000000074785f77697468647261772e7761736d003cf38cd88b0100001600000000282bcb6a66c770f23e7b2f068ae0ba025eccb2ec00", "index": 0, @@ -2889,222 +2681,6 @@ ], "valid": true }, - { - "blob": "1d0000006c6f63616c6e65742e3365383337383738643834623534613430662d300023000000323032332d31312d32325430363a32343a31302e3839373531333337382b30303a30307735a6d7322f816b68777c338596eecae34e2350c7accced992730172467adcecf10617ed92096431f119ecd3b72d4a980ac3a2ea6f54f2b66aa02a5f30bf0a001010000000000000000000000000000000000000000000000000000000000000000d8490ed49c5ec486fdeab4cf0476b9f72654696d0048998ffa0340c473b72dad3604abd76581e71e4a334d0708ef754a0adcec66d81e00000000000000a861000000000000000300000001914eb3f58b01000000d66a3a289c9c9e6353a2741335775eab1487e2e7ee4b8baa69d32e73083363d3010c00000076705f757365722e7761736d02914eb3f58b0100000053fefa66ce6351d6b3e7de7a2c993bd4435fbd478b66caecf5c588b5efdcf669011600000074785f696e69745f76616c696461746f722e7761736d00914eb3f58b0100001a010000010000000048998ffa0340c473b72dad3604abd76581e71e4a334d0708ef754a0adcec66d801009650a56834c300cce5ebeda7ce7d67e0ed9d4c2a264e7547ace86eec75e4f8170362eacfeb7faa1d381014d8bd517b0d76f1e1257a6233cef1567610d7904f4ad203d7656a05635f4ea1fc0848125fb370d8415f4cf47bb45313f10c4b88176f949e00781a1cb7045582d3af069647ec4b5ed1c6ee64d3572600ab4e77d61a25a4caf700743ba40b00000000000000000000000000000000000000000000000000000000e40b5402000000000000000000000000000000000000000000000000000000090000006d65406d652e636f6d000000a7d3c244e474ab9ea29c125fc8bd88c998e63b92ad9a2a0b04d97e3356f0da11", - "index": 0, - "name": "Init_Validator_4", - "output": [ - "0 | Type : Init Validator", - "1 | Account key [1/2] : tpknam1qpyfnrl6qdqvguah9kknvp9t6ajcrec", - "1 | Account key [2/2] : 7fge56pcgaa655zkua3nds48x83t", - "2 | Threshold : 1", - "3 | Consensus key [1/2] : tpknam1qzt9pftgxnpspn89a0k60nnavlswm82", - "3 | Consensus key [2/2] : v9gnyua284n5xamr4unupw5c8d3c", - "4 | Ethereum cold key [1/2] : 0362eacfeb7faa1d381014d8bd517b0d76f1e1", - "4 | Ethereum cold key [2/2] : 257a6233cef1567610d7904f4ad2", - "5 | Ethereum hot key [1/2] : 03d7656a05635f4ea1fc0848125fb370d8415f", - "5 | Ethereum hot key [2/2] : 4cf47bb45313f10c4b88176f949e", - "6 | Protocol key [1/2] : tpknam1qpup589hq32c95a0q6ty0mzttmgudmn", - "6 | Protocol key [2/2] : y6dtjvq9tfemavx395n90we9qhrj", - "7 | Commission rate : 0.05", - "8 | Maximum commission rate change : 0.01", - "9 | Email : me@me.com", - "10 | Validator VP type : User" - ], - "output_expert": [ - "0 | Code hash [1/2] : 53fefa66ce6351d6b3e7de7a2c993bd4435fbd", - "0 | Code hash [2/2] : 478b66caecf5c588b5efdcf669", - "1 | Account key [1/2] : tpknam1qpyfnrl6qdqvguah9kknvp9t6ajcrec", - "1 | Account key [2/2] : 7fge56pcgaa655zkua3nds48x83t", - "2 | Threshold : 1", - "3 | Consensus key [1/2] : tpknam1qzt9pftgxnpspn89a0k60nnavlswm82", - "3 | Consensus key [2/2] : v9gnyua284n5xamr4unupw5c8d3c", - "4 | Ethereum cold key [1/2] : 0362eacfeb7faa1d381014d8bd517b0d76f1e1", - "4 | Ethereum cold key [2/2] : 257a6233cef1567610d7904f4ad2", - "5 | Ethereum hot key [1/2] : 03d7656a05635f4ea1fc0848125fb370d8415f", - "5 | Ethereum hot key [2/2] : 4cf47bb45313f10c4b88176f949e", - "6 | Protocol key [1/2] : tpknam1qpup589hq32c95a0q6ty0mzttmgudmn", - "6 | Protocol key [2/2] : y6dtjvq9tfemavx395n90we9qhrj", - "7 | Commission rate : 0.05", - "8 | Maximum commission rate change : 0.01", - "9 | Email : me@me.com", - "10 | Validator VP type [1/2] : d66a3a289c9c9e6353a2741335775eab1487e2", - "10 | Validator VP type [2/2] : e7ee4b8baa69d32e73083363d3", - "11 | Timestamp : 2023-11-22 06:24:10.897513378 UTC", - "12 | Pubkey [1/2] : tpknam1qpyfnrl6qdqvguah9kknvp9t6ajcrec", - "12 | Pubkey [2/2] : 7fge56pcgaa655zkua3nds48x83t", - "13 | Epoch : 30", - "14 | Gas limit : 0.025", - "15 | Fee token [1/2] : tnam1q8vyjrk5n30vfphaa26v7prkh8mjv4rfd", - "15 | Fee token [2/2] : 5fkxh80", - "16 | Fees/gas unit : 0.000001" - ], - "valid": true - }, - { - "blob": "1d0000006c6f63616c6e65742e3365383337383738643834623534613430662d300023000000323032332d31312d32325430363a32343a31302e3839373531333337382b30303a30307735a6d7322f816b68777c338596eecae34e2350c7accced992730172467adcecf10617ed92096431f119ecd3b72d4a980ac3a2ea6f54f2b66aa02a5f30bf0a001010000000000000000000000000000000000000000000000000000000000000000d8490ed49c5ec486fdeab4cf0476b9f72654696d0048998ffa0340c473b72dad3604abd76581e71e4a334d0708ef754a0adcec66d81e00000000000000a861000000000000000500000001914eb3f58b01000000d66a3a289c9c9e6353a2741335775eab1487e2e7ee4b8baa69d32e73083363d3010c00000076705f757365722e7761736d02914eb3f58b0100000053fefa66ce6351d6b3e7de7a2c993bd4435fbd478b66caecf5c588b5efdcf669011600000074785f696e69745f76616c696461746f722e7761736d00914eb3f58b0100001a010000010000000048998ffa0340c473b72dad3604abd76581e71e4a334d0708ef754a0adcec66d801009650a56834c300cce5ebeda7ce7d67e0ed9d4c2a264e7547ace86eec75e4f8170362eacfeb7faa1d381014d8bd517b0d76f1e1257a6233cef1567610d7904f4ad203d7656a05635f4ea1fc0848125fb370d8415f4cf47bb45313f10c4b88176f949e00781a1cb7045582d3af069647ec4b5ed1c6ee64d3572600ab4e77d61a25a4caf700743ba40b00000000000000000000000000000000000000000000000000000000e40b5402000000000000000000000000000000000000000000000000000000090000006d65406d652e636f6d000000a7d3c244e474ab9ea29c125fc8bd88c998e63b92ad9a2a0b04d97e3356f0da110301000000033782959e45833f65ca43872da235c840f40daa26633f8501a255027d147db001050000000048998ffa0340c473b72dad3604abd76581e71e4a334d0708ef754a0adcec66d8009650a56834c300cce5ebeda7ce7d67e0ed9d4c2a264e7547ace86eec75e4f817010362eacfeb7faa1d381014d8bd517b0d76f1e1257a6233cef1567610d7904f4ad20103d7656a05635f4ea1fc0848125fb370d8415f4cf47bb45313f10c4b88176f949e00781a1cb7045582d3af069647ec4b5ed1c6ee64d3572600ab4e77d61a25a4caf705000000000024c572048f05f2da243b6a6b8d5c405bc6ab80e149eb522019aa71e489fc7faf02bf6c8b2c685aa8a6c01ee90fc3bcfb9fdfbe1b9ef3ad11b40bd5db5af5a30e0100ec68da60d9af285164ed9d4466107516fcdc1c3843c5a094f66f0a2dc6769cafbcd0026dd34bac210ca85bff42bc708dc4b3bc2309ce3199d072a289dafd1b0d0201e4f9cb9ac9d1b51fa3db27d491172c94009f71304bfdebb66d0ed310260a00ce67406e0b367a53c2431079da0e33241c94bde00133695c545e5845b3067b50b30003019f44e603a313c0d6bf7ab479a9ae81197626190b906022eec301d6844a4de16e28d513f382fd18b6b83da4e45181337442551ff6ecc08d1f6f162d868ec6b40f000400d37c656473fd2742b93d46bc8944310611a7e34a3f63aed3a6d4ce66189a08ef355b8bd8ec8809c3e036f4536922378131fa5f952b7dbb485793dc2f9ffbf402030500000082dc8f4a859aabaf2d9aa7bfd1c80f4cb3e70b783977dab4f29e0aa4664f6283a7d3c244e474ab9ea29c125fc8bd88c998e63b92ad9a2a0b04d97e3356f0da117735a6d7322f816b68777c338596eecae34e2350c7accced992730172467adcecf10617ed92096431f119ecd3b72d4a980ac3a2ea6f54f2b66aa02a5f30bf0a0bd2dc886161175a8b0719028cc34535319672d91f4403a49fefaf0bf308e9f3e01010000000048998ffa0340c473b72dad3604abd76581e71e4a334d0708ef754a0adcec66d80100000000004340d639289bf46f33b7f3c26a71a369d910a94b1a7a8f1c1580cbd948f2fbdac7fcf4af979a466f30c2cb266c063386e314ddd68a67ed5c36d60489f5cd0307", - "index": 0, - "name": "Init_Validator_5", - "output": [ - "0 | Type : Init Validator", - "1 | Account key [1/2] : tpknam1qpyfnrl6qdqvguah9kknvp9t6ajcrec", - "1 | Account key [2/2] : 7fge56pcgaa655zkua3nds48x83t", - "2 | Threshold : 1", - "3 | Consensus key [1/2] : tpknam1qzt9pftgxnpspn89a0k60nnavlswm82", - "3 | Consensus key [2/2] : v9gnyua284n5xamr4unupw5c8d3c", - "4 | Ethereum cold key [1/2] : 0362eacfeb7faa1d381014d8bd517b0d76f1e1", - "4 | Ethereum cold key [2/2] : 257a6233cef1567610d7904f4ad2", - "5 | Ethereum hot key [1/2] : 03d7656a05635f4ea1fc0848125fb370d8415f", - "5 | Ethereum hot key [2/2] : 4cf47bb45313f10c4b88176f949e", - "6 | Protocol key [1/2] : tpknam1qpup589hq32c95a0q6ty0mzttmgudmn", - "6 | Protocol key [2/2] : y6dtjvq9tfemavx395n90we9qhrj", - "7 | Commission rate : 0.05", - "8 | Maximum commission rate change : 0.01", - "9 | Email : me@me.com", - "10 | Validator VP type : User" - ], - "output_expert": [ - "0 | Code hash [1/2] : 53fefa66ce6351d6b3e7de7a2c993bd4435fbd", - "0 | Code hash [2/2] : 478b66caecf5c588b5efdcf669", - "1 | Account key [1/2] : tpknam1qpyfnrl6qdqvguah9kknvp9t6ajcrec", - "1 | Account key [2/2] : 7fge56pcgaa655zkua3nds48x83t", - "2 | Threshold : 1", - "3 | Consensus key [1/2] : tpknam1qzt9pftgxnpspn89a0k60nnavlswm82", - "3 | Consensus key [2/2] : v9gnyua284n5xamr4unupw5c8d3c", - "4 | Ethereum cold key [1/2] : 0362eacfeb7faa1d381014d8bd517b0d76f1e1", - "4 | Ethereum cold key [2/2] : 257a6233cef1567610d7904f4ad2", - "5 | Ethereum hot key [1/2] : 03d7656a05635f4ea1fc0848125fb370d8415f", - "5 | Ethereum hot key [2/2] : 4cf47bb45313f10c4b88176f949e", - "6 | Protocol key [1/2] : tpknam1qpup589hq32c95a0q6ty0mzttmgudmn", - "6 | Protocol key [2/2] : y6dtjvq9tfemavx395n90we9qhrj", - "7 | Commission rate : 0.05", - "8 | Maximum commission rate change : 0.01", - "9 | Email : me@me.com", - "10 | Validator VP type [1/2] : d66a3a289c9c9e6353a2741335775eab1487e2", - "10 | Validator VP type [2/2] : e7ee4b8baa69d32e73083363d3", - "11 | Timestamp : 2023-11-22 06:24:10.897513378 UTC", - "12 | Pubkey [1/2] : tpknam1qpyfnrl6qdqvguah9kknvp9t6ajcrec", - "12 | Pubkey [2/2] : 7fge56pcgaa655zkua3nds48x83t", - "13 | Epoch : 30", - "14 | Gas limit : 0.025", - "15 | Fee token [1/2] : tnam1q8vyjrk5n30vfphaa26v7prkh8mjv4rfd", - "15 | Fee token [2/2] : 5fkxh80", - "16 | Fees/gas unit : 0.000001" - ], - "valid": true - }, - { - "blob": "1d0000006c6f63616c6e65742e3365383337383738643834623534613430662d300023000000323032332d31312d32325430363a32343a31362e3237303636333932382b30303a3030fcf16551c36fa3b04a1436a504fb732489d6285488f933cac9a2c8db7e6db5a2cda6d2e252a8b546646f6e4272ddf8eadca55adc06d6e1c997d274e76100dd9401010000000000000000000000000000000000000000000000000000000000000000d8490ed49c5ec486fdeab4cf0476b9f72654696d009fd0df101ba3e91d24f555893ae1bf0b271bd98363d6d4c659876731fe4a75171f00000000000000a8610000000000000003000000018e63b3f58b01000000d66a3a289c9c9e6353a2741335775eab1487e2e7ee4b8baa69d32e73083363d3010c00000076705f757365722e7761736d028f63b3f58b0100000053fefa66ce6351d6b3e7de7a2c993bd4435fbd478b66caecf5c588b5efdcf669011600000074785f696e69745f76616c696461746f722e7761736d008f63b3f58b0100003b01000002000000009fd0df101ba3e91d24f555893ae1bf0b271bd98363d6d4c659876731fe4a75170048998ffa0340c473b72dad3604abd76581e71e4a334d0708ef754a0adcec66d80200ce2ca0a0871e3ae9e432eff8fd0ee5c53954cd04e543fe98f15dc412c384171f0254a3da9c35cac089aab32735905b1cd95da221f07c8dca01d8074e8817707f2a02a7c7587bd18b2588e69db623954d98269f1285f1b4bf7c5b0ed500c4c3125c3800955688503de0d9a2f149404f7ebaca8590a10b6f63356f4ee283530c4df323cc00743ba40b00000000000000000000000000000000000000000000000000000000e40b5402000000000000000000000000000000000000000000000000000000090000006d65406d652e636f6d000000713e908d2219767486d4e1737aa5461ed36fe7da6834dcc2379168cfa3b43387", - "index": 0, - "name": "Init_Validator_6", - "output": [ - "0 | Type : Init Validator", - "1 | Account key [1/2] : tpknam1qz0aphcsrw37j8fy742cjwhphu9jwx7", - "1 | Account key [2/2] : esd3ad4xxtxrkwv07ff63we33t3r", - "2 | Account key [1/2] : tpknam1qpyfnrl6qdqvguah9kknvp9t6ajcrec", - "2 | Account key [2/2] : 7fge56pcgaa655zkua3nds48x83t", - "3 | Threshold : 2", - "4 | Consensus key [1/2] : tpknam1qr8zeg9qsu0r460yxthl3lgwuhznj4x", - "4 | Consensus key [2/2] : dqnj58l5c79wugykrsst379untlr", - "5 | Ethereum cold key [1/2] : 0254a3da9c35cac089aab32735905b1cd95da2", - "5 | Ethereum cold key [2/2] : 21f07c8dca01d8074e8817707f2a", - "6 | Ethereum hot key [1/2] : 02a7c7587bd18b2588e69db623954d98269f12", - "6 | Ethereum hot key [2/2] : 85f1b4bf7c5b0ed500c4c3125c38", - "7 | Protocol key [1/2] : tpknam1qz24dzzs8hsdngh3f9qy7l46e2zepgg", - "7 | Protocol key [2/2] : tda3n2m6wu2p4xrzd7v3ucpq3d7e", - "8 | Commission rate : 0.05", - "9 | Maximum commission rate change : 0.01", - "10 | Email : me@me.com", - "11 | Validator VP type : User" - ], - "output_expert": [ - "0 | Code hash [1/2] : 53fefa66ce6351d6b3e7de7a2c993bd4435fbd", - "0 | Code hash [2/2] : 478b66caecf5c588b5efdcf669", - "1 | Account key [1/2] : tpknam1qz0aphcsrw37j8fy742cjwhphu9jwx7", - "1 | Account key [2/2] : esd3ad4xxtxrkwv07ff63we33t3r", - "2 | Account key [1/2] : tpknam1qpyfnrl6qdqvguah9kknvp9t6ajcrec", - "2 | Account key [2/2] : 7fge56pcgaa655zkua3nds48x83t", - "3 | Threshold : 2", - "4 | Consensus key [1/2] : tpknam1qr8zeg9qsu0r460yxthl3lgwuhznj4x", - "4 | Consensus key [2/2] : dqnj58l5c79wugykrsst379untlr", - "5 | Ethereum cold key [1/2] : 0254a3da9c35cac089aab32735905b1cd95da2", - "5 | Ethereum cold key [2/2] : 21f07c8dca01d8074e8817707f2a", - "6 | Ethereum hot key [1/2] : 02a7c7587bd18b2588e69db623954d98269f12", - "6 | Ethereum hot key [2/2] : 85f1b4bf7c5b0ed500c4c3125c38", - "7 | Protocol key [1/2] : tpknam1qz24dzzs8hsdngh3f9qy7l46e2zepgg", - "7 | Protocol key [2/2] : tda3n2m6wu2p4xrzd7v3ucpq3d7e", - "8 | Commission rate : 0.05", - "9 | Maximum commission rate change : 0.01", - "10 | Email : me@me.com", - "11 | Validator VP type [1/2] : d66a3a289c9c9e6353a2741335775eab1487e2", - "11 | Validator VP type [2/2] : e7ee4b8baa69d32e73083363d3", - "12 | Timestamp : 2023-11-22 06:24:16.270663928 UTC", - "13 | Pubkey [1/2] : tpknam1qz0aphcsrw37j8fy742cjwhphu9jwx7", - "13 | Pubkey [2/2] : esd3ad4xxtxrkwv07ff63we33t3r", - "14 | Epoch : 31", - "15 | Gas limit : 0.025", - "16 | Fee token [1/2] : tnam1q8vyjrk5n30vfphaa26v7prkh8mjv4rfd", - "16 | Fee token [2/2] : 5fkxh80", - "17 | Fees/gas unit : 0.000001" - ], - "valid": true - }, - { - "blob": "1d0000006c6f63616c6e65742e3365383337383738643834623534613430662d300023000000323032332d31312d32325430363a32343a31362e3237303636333932382b30303a3030fcf16551c36fa3b04a1436a504fb732489d6285488f933cac9a2c8db7e6db5a2cda6d2e252a8b546646f6e4272ddf8eadca55adc06d6e1c997d274e76100dd9401010000000000000000000000000000000000000000000000000000000000000000d8490ed49c5ec486fdeab4cf0476b9f72654696d009fd0df101ba3e91d24f555893ae1bf0b271bd98363d6d4c659876731fe4a75171f00000000000000a8610000000000000005000000018e63b3f58b01000000d66a3a289c9c9e6353a2741335775eab1487e2e7ee4b8baa69d32e73083363d3010c00000076705f757365722e7761736d028f63b3f58b0100000053fefa66ce6351d6b3e7de7a2c993bd4435fbd478b66caecf5c588b5efdcf669011600000074785f696e69745f76616c696461746f722e7761736d008f63b3f58b0100003b01000002000000009fd0df101ba3e91d24f555893ae1bf0b271bd98363d6d4c659876731fe4a75170048998ffa0340c473b72dad3604abd76581e71e4a334d0708ef754a0adcec66d80200ce2ca0a0871e3ae9e432eff8fd0ee5c53954cd04e543fe98f15dc412c384171f0254a3da9c35cac089aab32735905b1cd95da221f07c8dca01d8074e8817707f2a02a7c7587bd18b2588e69db623954d98269f1285f1b4bf7c5b0ed500c4c3125c3800955688503de0d9a2f149404f7ebaca8590a10b6f63356f4ee283530c4df323cc00743ba40b00000000000000000000000000000000000000000000000000000000e40b5402000000000000000000000000000000000000000000000000000000090000006d65406d652e636f6d000000713e908d2219767486d4e1737aa5461ed36fe7da6834dcc2379168cfa3b43387030100000090d034ce7f2ddcdea6e51402aee4ba72be360d6b2405b44f01c715355de28b3b0106000000009fd0df101ba3e91d24f555893ae1bf0b271bd98363d6d4c659876731fe4a75170048998ffa0340c473b72dad3604abd76581e71e4a334d0708ef754a0adcec66d800ce2ca0a0871e3ae9e432eff8fd0ee5c53954cd04e543fe98f15dc412c384171f010254a3da9c35cac089aab32735905b1cd95da221f07c8dca01d8074e8817707f2a0102a7c7587bd18b2588e69db623954d98269f1285f1b4bf7c5b0ed500c4c3125c3800955688503de0d9a2f149404f7ebaca8590a10b6f63356f4ee283530c4df323cc060000000000eedd2acb8747775e14f6c77e01fa0cd90adba5c743d69f2cac488ded9c5e76d3cf059cb2a8b45d177fd2e744d2038def501116b79043c7f07fe567ce1433e50401001dc4cb52daec90911292fb7f7e968c9f65990f1403342f3f18b0dee11fa709e4711f61f3ed0a8929421917999124755a82ed36b863003ed8ec8eca60f0e1e4030200126dedf59e685496d172cbfa6da41c2c78223c2d4a44f2ddad19cd0933e8970d2d33eafabb0d28f9b1e0c21741b50bf6730c939b127f8ef42465442481aed5000301a51f40992662c3b16f1ff9a1dabe7ffdecb8ed9197876bf5def86e48d790b85a3ef9aef1ec3390dbbc005783d5f88c695f84e7f0ec622b914d8ce558e7487d0c01040190928a58c5a6a61138a2e6647be884f2d9028a850a643ce99eb4acab1a5213c620ab4cb6edf4a662578a550097aeee1f45db3f00836c841ec4bef4a78f1c59830105007273e71fec95b74dc7ed5cb3f53399c2b604e057896e437366a09de3379d3998737919a6d9bdf1c7dcac59571481febad9aadac7d052a38f79ecef7712380b050305000000cfd3aab486550d58662ac795bcb533da6540eb5e07a5473de1481dc0ebe97dce713e908d2219767486d4e1737aa5461ed36fe7da6834dcc2379168cfa3b43387fcf16551c36fa3b04a1436a504fb732489d6285488f933cac9a2c8db7e6db5a2cda6d2e252a8b546646f6e4272ddf8eadca55adc06d6e1c997d274e76100dd94aa456d77025e9d4a3023d41515d05b11cb4debb0fccfdc4926159c6eb34a28730101000000009fd0df101ba3e91d24f555893ae1bf0b271bd98363d6d4c659876731fe4a7517010000000000655a64e70aee52261ba04543868b935135efb40da41a641cce4c8e70c70859c4e6ed98892f748d6e2ba3feb67f72cb8144b50596fa60eed5bf4edf1364407505", - "index": 0, - "name": "Init_Validator_7", - "output": [ - "0 | Type : Init Validator", - "1 | Account key [1/2] : tpknam1qz0aphcsrw37j8fy742cjwhphu9jwx7", - "1 | Account key [2/2] : esd3ad4xxtxrkwv07ff63we33t3r", - "2 | Account key [1/2] : tpknam1qpyfnrl6qdqvguah9kknvp9t6ajcrec", - "2 | Account key [2/2] : 7fge56pcgaa655zkua3nds48x83t", - "3 | Threshold : 2", - "4 | Consensus key [1/2] : tpknam1qr8zeg9qsu0r460yxthl3lgwuhznj4x", - "4 | Consensus key [2/2] : dqnj58l5c79wugykrsst379untlr", - "5 | Ethereum cold key [1/2] : 0254a3da9c35cac089aab32735905b1cd95da2", - "5 | Ethereum cold key [2/2] : 21f07c8dca01d8074e8817707f2a", - "6 | Ethereum hot key [1/2] : 02a7c7587bd18b2588e69db623954d98269f12", - "6 | Ethereum hot key [2/2] : 85f1b4bf7c5b0ed500c4c3125c38", - "7 | Protocol key [1/2] : tpknam1qz24dzzs8hsdngh3f9qy7l46e2zepgg", - "7 | Protocol key [2/2] : tda3n2m6wu2p4xrzd7v3ucpq3d7e", - "8 | Commission rate : 0.05", - "9 | Maximum commission rate change : 0.01", - "10 | Email : me@me.com", - "11 | Validator VP type : User" - ], - "output_expert": [ - "0 | Code hash [1/2] : 53fefa66ce6351d6b3e7de7a2c993bd4435fbd", - "0 | Code hash [2/2] : 478b66caecf5c588b5efdcf669", - "1 | Account key [1/2] : tpknam1qz0aphcsrw37j8fy742cjwhphu9jwx7", - "1 | Account key [2/2] : esd3ad4xxtxrkwv07ff63we33t3r", - "2 | Account key [1/2] : tpknam1qpyfnrl6qdqvguah9kknvp9t6ajcrec", - "2 | Account key [2/2] : 7fge56pcgaa655zkua3nds48x83t", - "3 | Threshold : 2", - "4 | Consensus key [1/2] : tpknam1qr8zeg9qsu0r460yxthl3lgwuhznj4x", - "4 | Consensus key [2/2] : dqnj58l5c79wugykrsst379untlr", - "5 | Ethereum cold key [1/2] : 0254a3da9c35cac089aab32735905b1cd95da2", - "5 | Ethereum cold key [2/2] : 21f07c8dca01d8074e8817707f2a", - "6 | Ethereum hot key [1/2] : 02a7c7587bd18b2588e69db623954d98269f12", - "6 | Ethereum hot key [2/2] : 85f1b4bf7c5b0ed500c4c3125c38", - "7 | Protocol key [1/2] : tpknam1qz24dzzs8hsdngh3f9qy7l46e2zepgg", - "7 | Protocol key [2/2] : tda3n2m6wu2p4xrzd7v3ucpq3d7e", - "8 | Commission rate : 0.05", - "9 | Maximum commission rate change : 0.01", - "10 | Email : me@me.com", - "11 | Validator VP type [1/2] : d66a3a289c9c9e6353a2741335775eab1487e2", - "11 | Validator VP type [2/2] : e7ee4b8baa69d32e73083363d3", - "12 | Timestamp : 2023-11-22 06:24:16.270663928 UTC", - "13 | Pubkey [1/2] : tpknam1qz0aphcsrw37j8fy742cjwhphu9jwx7", - "13 | Pubkey [2/2] : esd3ad4xxtxrkwv07ff63we33t3r", - "14 | Epoch : 31", - "15 | Gas limit : 0.025", - "16 | Fee token [1/2] : tnam1q8vyjrk5n30vfphaa26v7prkh8mjv4rfd", - "16 | Fee token [2/2] : 5fkxh80", - "17 | Fees/gas unit : 0.000001" - ], - "valid": true - }, { "blob": "1d0000006c6f63616c6e65742e3365383337383738643834623534613430662d300023000000323032332d31312d32325430363a32343a32302e3536303437393138302b30303a30301c2a5f85ea1852fee3c91bb89fc4d7bc913b38fab8a3e4bb39ef5b0051c437ab411a66910a6cfbf0af61114c2cc06cb741f8f1c559fe594fb8547bae04cd7e7f01010000000000000000000000000000000000000000000000000000000000000000d8490ed49c5ec486fdeab4cf0476b9f72654696d009fd0df101ba3e91d24f555893ae1bf0b271bd98363d6d4c659876731fe4a75172000000000000000a8610000000000000002000000027f74b3f58b010000002f6bf8c3cafbd5d987849db1583bd63e10bbe06193f619859caa80ab10f2e2a9011000000074785f77697468647261772e7761736d007f74b3f58b010000160000000037e4a5897b3f469bddf4ffa4dda00c49d245324500", "index": 0, @@ -3524,5 +3100,19 @@ "13 | Fees/gas unit : 0.000001" ], "valid": true - } + }, + {"blob":"1e0000006c6f63616c6e65742e6434313134643634383861656637663266363866360023000000323032332d31322d30385431353a34333a30302e3930323935383832342b30303a3030967af0fe27dade46cd0387a3a8ae4ae61208bc245d681d79f0e7a882c370f13906a4039b5a80329248ec945af132d8539f32f4fb48cca9c55bd60687516506db01010000000000000000000000000000000000000000000000000000000000000000772601b5a73cea56d9caba0e710b67993f5e261e00e6e3ecc407e5a7ec9646593fb712a6d0a493be4c29d3980db354872cd7ca5e220800000000000000a86100000000000000020000000238af184a8c010000000354f82d478f674a24e566f8c9490be6e15800c720558edf7c9c3ed9e742ac71011100000074785f72657665616c5f706b2e7761736d0038af184a8c0100002100000000e6e3ecc407e5a7ec9646593fb712a6d0a493be4c29d3980db354872cd7ca5e22","index":0,"name":"Reveal_Pubkey_4","output":["0 | Type : Reveal Pubkey","1 | Public key [1/2] : tpknam1qrnw8mxyqlj60mykgevnldcj5mg2fya","1 | Public key [2/2] : 7fs5a8xqdkd2gwtxhef0zy8a2wha"],"output_expert":["0 | Code hash [1/2] : 0354f82d478f674a24e566f8c9490be6e15800","0 | Code hash [2/2] : c720558edf7c9c3ed9e742ac71","1 | Public key [1/2] : tpknam1qrnw8mxyqlj60mykgevnldcj5mg2fya","1 | Public key [2/2] : 7fs5a8xqdkd2gwtxhef0zy8a2wha","2 | Timestamp : 2023-12-08 15:43:00.902958824 UTC","3 | Pubkey [1/2] : tpknam1qrnw8mxyqlj60mykgevnldcj5mg2fya","3 | Pubkey [2/2] : 7fs5a8xqdkd2gwtxhef0zy8a2wha","4 | Epoch : 8","5 | Gas limit : 0.025","6 | Fee token [1/2] : tnam1q9mjvqd45u7w54kee2aquugtv7vn7h3xr","6 | Fee token [2/2] : crau7xy","7 | Fees/gas unit : 0.000001"],"valid":true}, +{"blob":"1e0000006c6f63616c6e65742e6434313134643634383861656637663266363866360023000000323032332d31322d30385431353a34333a30302e3930323935383832342b30303a3030967af0fe27dade46cd0387a3a8ae4ae61208bc245d681d79f0e7a882c370f13906a4039b5a80329248ec945af132d8539f32f4fb48cca9c55bd60687516506db01010000000000000000000000000000000000000000000000000000000000000000772601b5a73cea56d9caba0e710b67993f5e261e00e6e3ecc407e5a7ec9646593fb712a6d0a493be4c29d3980db354872cd7ca5e220800000000000000a86100000000000000030000000238af184a8c010000000354f82d478f674a24e566f8c9490be6e15800c720558edf7c9c3ed9e742ac71011100000074785f72657665616c5f706b2e7761736d0038af184a8c0100002100000000e6e3ecc407e5a7ec9646593fb712a6d0a493be4c29d3980db354872cd7ca5e2203030000001f8110d7457fc3f3cadc18643bd79f1ac8f311dc18d095f3bfbaf9e16fbefe08967af0fe27dade46cd0387a3a8ae4ae61208bc245d681d79f0e7a882c370f13906a4039b5a80329248ec945af132d8539f32f4fb48cca9c55bd60687516506db010100000000e6e3ecc407e5a7ec9646593fb712a6d0a493be4c29d3980db354872cd7ca5e22010000000000fbaac19434472d462896bb37086a5f2429db2a74de31ef888ff9aa337813734895c03a3d8d0cf16f0463da953fb9db2e55422aa5bd3f91a57de299ab4a9c350a","index":0,"name":"Reveal_Pubkey_5","output":["0 | Type : Reveal Pubkey","1 | Public key [1/2] : tpknam1qrnw8mxyqlj60mykgevnldcj5mg2fya","1 | Public key [2/2] : 7fs5a8xqdkd2gwtxhef0zy8a2wha"],"output_expert":["0 | Code hash [1/2] : 0354f82d478f674a24e566f8c9490be6e15800","0 | Code hash [2/2] : c720558edf7c9c3ed9e742ac71","1 | Public key [1/2] : tpknam1qrnw8mxyqlj60mykgevnldcj5mg2fya","1 | Public key [2/2] : 7fs5a8xqdkd2gwtxhef0zy8a2wha","2 | Timestamp : 2023-12-08 15:43:00.902958824 UTC","3 | Pubkey [1/2] : tpknam1qrnw8mxyqlj60mykgevnldcj5mg2fya","3 | Pubkey [2/2] : 7fs5a8xqdkd2gwtxhef0zy8a2wha","4 | Epoch : 8","5 | Gas limit : 0.025","6 | Fee token [1/2] : tnam1q9mjvqd45u7w54kee2aquugtv7vn7h3xr","6 | Fee token [2/2] : crau7xy","7 | Fees/gas unit : 0.000001"],"valid":true}, +{"blob":"1e0000006c6f63616c6e65742e6434313134643634383861656637663266363866360023000000323032332d31322d30385431353a34333a30372e3735313336383536372b30303a30304358e3b11d87db813249f723cdb0c3ef7387b4f647ccc46d1e6cfa6710cf189eaba4bd20a8aaa1c70da781796927ae620f8f8cc14df1b9c52b6e60402632297a01010000000000000000000000000000000000000000000000000000000000000000772601b5a73cea56d9caba0e710b67993f5e261e0028a69a99515ee25fd34357a771ab2368f57d1afcea523111608bec9e4a1f386a0a00000000000000a86100000000000000030000000114ca184a8c010000001851d91372bdcf58180f79f30dfd1d2b7f509a779e3e2e798bf68a24739d780a010c00000076705f757365722e7761736d0214ca184a8c01000000b7653a7a854c9036d884bd3ce0315acd604c7a61e0f86b8c04dcd41d96c8e917011400000074785f696e69745f6163636f756e742e7761736d0014ca184a8c01000046000000010000000028a69a99515ee25fd34357a771ab2368f57d1afcea523111608bec9e4a1f386ae36b841ef8d9474445c3f400d6fe09fc4fcaa44fe4428f6e58162067fb8453ad01","index":0,"name":"Init_Account_8","output":["0 | Type : Init Account","1 | Public key [1/2] : tpknam1qq52dx5e290wyh7ngdt6wudtyd502lg","1 | Public key [2/2] : 6ln49yvg3vz97e8j2ruux5e3yewq","2 | Threshold : 1","3 | VP type : User"],"output_expert":["0 | Code hash [1/2] : b7653a7a854c9036d884bd3ce0315acd604c7a","0 | Code hash [2/2] : 61e0f86b8c04dcd41d96c8e917","1 | Public key [1/2] : tpknam1qq52dx5e290wyh7ngdt6wudtyd502lg","1 | Public key [2/2] : 6ln49yvg3vz97e8j2ruux5e3yewq","2 | Threshold : 1","3 | VP type [1/2] : 1851d91372bdcf58180f79f30dfd1d2b7f509a","3 | VP type [2/2] : 779e3e2e798bf68a24739d780a","4 | Timestamp : 2023-12-08 15:43:07.751368567 UTC","5 | Pubkey [1/2] : tpknam1qq52dx5e290wyh7ngdt6wudtyd502lg","5 | Pubkey [2/2] : 6ln49yvg3vz97e8j2ruux5e3yewq","6 | Epoch : 10","7 | Gas limit : 0.025","8 | Fee token [1/2] : tnam1q9mjvqd45u7w54kee2aquugtv7vn7h3xr","8 | Fee token [2/2] : crau7xy","9 | Fees/gas unit : 0.000001"],"valid":true}, +{"blob":"1e0000006c6f63616c6e65742e6434313134643634383861656637663266363866360023000000323032332d31322d30385431353a34333a30372e3735313336383536372b30303a30304358e3b11d87db813249f723cdb0c3ef7387b4f647ccc46d1e6cfa6710cf189eaba4bd20a8aaa1c70da781796927ae620f8f8cc14df1b9c52b6e60402632297a01010000000000000000000000000000000000000000000000000000000000000000772601b5a73cea56d9caba0e710b67993f5e261e0028a69a99515ee25fd34357a771ab2368f57d1afcea523111608bec9e4a1f386a0a00000000000000a86100000000000000040000000114ca184a8c010000001851d91372bdcf58180f79f30dfd1d2b7f509a779e3e2e798bf68a24739d780a010c00000076705f757365722e7761736d0214ca184a8c01000000b7653a7a854c9036d884bd3ce0315acd604c7a61e0f86b8c04dcd41d96c8e917011400000074785f696e69745f6163636f756e742e7761736d0014ca184a8c01000046000000010000000028a69a99515ee25fd34357a771ab2368f57d1afcea523111608bec9e4a1f386ae36b841ef8d9474445c3f400d6fe09fc4fcaa44fe4428f6e58162067fb8453ad01030400000046e3aadf521d9d237dd3e13e15af8f0f4e24328f7efa2fc45dbd38661bba7c6de36b841ef8d9474445c3f400d6fe09fc4fcaa44fe4428f6e58162067fb8453ad4358e3b11d87db813249f723cdb0c3ef7387b4f647ccc46d1e6cfa6710cf189eaba4bd20a8aaa1c70da781796927ae620f8f8cc14df1b9c52b6e60402632297a01010000000028a69a99515ee25fd34357a771ab2368f57d1afcea523111608bec9e4a1f386a0100000000001b0370088a971d8317330d2d0b6e816f38957ba489a7796a8b4d21440057f615efdfaf70bdf22068076a57fc219ed5a9d2351d202730be0a311976dd8936d506","index":0,"name":"Init_Account_9","output":["0 | Type : Init Account","1 | Public key [1/2] : tpknam1qq52dx5e290wyh7ngdt6wudtyd502lg","1 | Public key [2/2] : 6ln49yvg3vz97e8j2ruux5e3yewq","2 | Threshold : 1","3 | VP type : User"],"output_expert":["0 | Code hash [1/2] : b7653a7a854c9036d884bd3ce0315acd604c7a","0 | Code hash [2/2] : 61e0f86b8c04dcd41d96c8e917","1 | Public key [1/2] : tpknam1qq52dx5e290wyh7ngdt6wudtyd502lg","1 | Public key [2/2] : 6ln49yvg3vz97e8j2ruux5e3yewq","2 | Threshold : 1","3 | VP type [1/2] : 1851d91372bdcf58180f79f30dfd1d2b7f509a","3 | VP type [2/2] : 779e3e2e798bf68a24739d780a","4 | Timestamp : 2023-12-08 15:43:07.751368567 UTC","5 | Pubkey [1/2] : tpknam1qq52dx5e290wyh7ngdt6wudtyd502lg","5 | Pubkey [2/2] : 6ln49yvg3vz97e8j2ruux5e3yewq","6 | Epoch : 10","7 | Gas limit : 0.025","8 | Fee token [1/2] : tnam1q9mjvqd45u7w54kee2aquugtv7vn7h3xr","8 | Fee token [2/2] : crau7xy","9 | Fees/gas unit : 0.000001"],"valid":true}, +{"blob":"1e0000006c6f63616c6e65742e6434313134643634383861656637663266363866360023000000323032332d31322d30385431353a34333a31322e3339393531393533302b30303a3030ef933cfef179c1c4442159ffae90f5696cfda66974e0af22ba12b0053bab7a3e8500689f9764cfd7d09149fe38b4ea57938787173b1bedd5064f759a26dd167301010000000000000000000000000000000000000000000000000000000000000000772601b5a73cea56d9caba0e710b67993f5e261e0028a69a99515ee25fd34357a771ab2368f57d1afcea523111608bec9e4a1f386a0a00000000000000a8610000000000000002000000023edc184a8c010000007fc17af22a18d7af5ec9ee1328bc78abf4be95f2e0460f2c13d937c7edcca864011800000074785f6265636f6d655f76616c696461746f722e7761736d003edc184a8c010000e900000000641917940eb88913fd1d9db9157030de197d019d00c253a8fd913eb32a8ebe7a6d09a2842c8b041564afbe43a8df717811e05c3cb303ef994e6d954450634ba03bdd5258dc17f5605022d7a9ad5b92e49417ad538de902a8dfaefd846d1e9a29b83af89af753d8c0eb75fd2b68137a22bd9cefb4125bdb00afd95c15bdc3c1aac4929718033194cd7a52d80e9856fafec2365df15d82438400743ba40b00000000000000000000000000000000000000000000000000000000e40b5402000000000000000000000000000000000000000000000000000000090000006d65406d652e636f6d000000","index":0,"name":"Init_Validator_8","output":["0 | Type : Init Validator","1 | Address [1/2] : tnam1q9jpj9u5p6ugjylarkwmj9tsxr0pjlgpn","1 | Address [2/2] : 5wa8ff0","2 | Consensus key [1/2] : tpknam1qrp9828ajyltx25wheax6zdzsskgkpq","2 | Consensus key [2/2] : 4vjhmusagmachsy0qts7txdyqp34","3 | Ethereum cold key [1/2] : 03ef994e6d954450634ba03bdd5258dc17f560","3 | Ethereum cold key [2/2] : 5022d7a9ad5b92e49417ad538de9","4 | Ethereum hot key [1/2] : 02a8dfaefd846d1e9a29b83af89af753d8c0eb","4 | Ethereum hot key [2/2] : 75fd2b68137a22bd9cefb4125bdb","5 | Protocol key [1/2] : tpknam1qzhajhq4hhpur2kyj2t3sqe3jnxh55k","5 | Protocol key [2/2] : cp6v9d7h7cgm9mu2asfpcg5nc7fz","6 | Commission rate : 0.05","7 | Maximum commission rate change : 0.01","8 | Email : me@me.com"],"output_expert":["0 | Code hash [1/2] : 7fc17af22a18d7af5ec9ee1328bc78abf4be95","0 | Code hash [2/2] : f2e0460f2c13d937c7edcca864","1 | Address [1/2] : tnam1q9jpj9u5p6ugjylarkwmj9tsxr0pjlgpn","1 | Address [2/2] : 5wa8ff0","2 | Consensus key [1/2] : tpknam1qrp9828ajyltx25wheax6zdzsskgkpq","2 | Consensus key [2/2] : 4vjhmusagmachsy0qts7txdyqp34","3 | Ethereum cold key [1/2] : 03ef994e6d954450634ba03bdd5258dc17f560","3 | Ethereum cold key [2/2] : 5022d7a9ad5b92e49417ad538de9","4 | Ethereum hot key [1/2] : 02a8dfaefd846d1e9a29b83af89af753d8c0eb","4 | Ethereum hot key [2/2] : 75fd2b68137a22bd9cefb4125bdb","5 | Protocol key [1/2] : tpknam1qzhajhq4hhpur2kyj2t3sqe3jnxh55k","5 | Protocol key [2/2] : cp6v9d7h7cgm9mu2asfpcg5nc7fz","6 | Commission rate : 0.05","7 | Maximum commission rate change : 0.01","8 | Email : me@me.com","9 | Timestamp : 2023-12-08 15:43:12.399519530 UTC","10 | Pubkey [1/2] : tpknam1qq52dx5e290wyh7ngdt6wudtyd502lg","10 | Pubkey [2/2] : 6ln49yvg3vz97e8j2ruux5e3yewq","11 | Epoch : 10","12 | Gas limit : 0.025","13 | Fee token [1/2] : tnam1q9mjvqd45u7w54kee2aquugtv7vn7h3xr","13 | Fee token [2/2] : crau7xy","14 | Fees/gas unit : 0.000001"],"valid":true}, +{"blob":"1e0000006c6f63616c6e65742e6434313134643634383861656637663266363866360023000000323032332d31322d30385431353a34333a31322e3339393531393533302b30303a3030ef933cfef179c1c4442159ffae90f5696cfda66974e0af22ba12b0053bab7a3e8500689f9764cfd7d09149fe38b4ea57938787173b1bedd5064f759a26dd167301010000000000000000000000000000000000000000000000000000000000000000772601b5a73cea56d9caba0e710b67993f5e261e0028a69a99515ee25fd34357a771ab2368f57d1afcea523111608bec9e4a1f386a0a00000000000000a8610000000000000004000000023edc184a8c010000007fc17af22a18d7af5ec9ee1328bc78abf4be95f2e0460f2c13d937c7edcca864011800000074785f6265636f6d655f76616c696461746f722e7761736d003edc184a8c010000e900000000641917940eb88913fd1d9db9157030de197d019d00c253a8fd913eb32a8ebe7a6d09a2842c8b041564afbe43a8df717811e05c3cb303ef994e6d954450634ba03bdd5258dc17f5605022d7a9ad5b92e49417ad538de902a8dfaefd846d1e9a29b83af89af753d8c0eb75fd2b68137a22bd9cefb4125bdb00afd95c15bdc3c1aac4929718033194cd7a52d80e9856fafec2365df15d82438400743ba40b00000000000000000000000000000000000000000000000000000000e40b5402000000000000000000000000000000000000000000000000000000090000006d65406d652e636f6d00000003010000006adfa8d9d36f0829a3ceee3f833b384f0ceb29af7549935a8387095030ed96da01050000000028a69a99515ee25fd34357a771ab2368f57d1afcea523111608bec9e4a1f386a00c253a8fd913eb32a8ebe7a6d09a2842c8b041564afbe43a8df717811e05c3cb30103ef994e6d954450634ba03bdd5258dc17f5605022d7a9ad5b92e49417ad538de90102a8dfaefd846d1e9a29b83af89af753d8c0eb75fd2b68137a22bd9cefb4125bdb00afd95c15bdc3c1aac4929718033194cd7a52d80e9856fafec2365df15d824384050000000000401f5da268476bfa78b34c2aa0e2058bd89103c5f0660a923146820ed81a25281d6ed35d3ebd6dfc68d4710456a56682817c9139673329973e94f8cdb0e5f6000100b95d05195ae857281e471a7b0136c91caf792bf6f9de367b5000146f0ebcd1ca3767b27b897eba852e12554efe572c49fb34cc907d5b4448b0b1fb8ef874fb0a0201735b9337aff054caa3be4b9bce12b9d91c301b0149e74d9376ea057e3c23b9122d7eb22b7506f913800b4473e0bb7ad752fc9efe9371b6953a4b75883f92340a010301023b1b88432b621513af392685bdcff33b8318ba931a23952248954957b8449d69ff599fa728d374b97b765601ec55ffbfd1ba288688eb5c7993c2c72c73856c000400e1a8ed01f87ada41089af1cae84b374d3c1cecabd269310b51add47dadfb74d9773155da2842ebd74ca29dc42055f916e19b86b888804d5f779c3f7c5ef2f60503040000003a736848f280c54b03baf2026a6bc2aca0a8b6fff84c5d663a4aa284bef00890ef933cfef179c1c4442159ffae90f5696cfda66974e0af22ba12b0053bab7a3e8500689f9764cfd7d09149fe38b4ea57938787173b1bedd5064f759a26dd16732cee4cdf8ecb10c71e1ee4367d68a790a4af84256f9c5d048a303b0c8c4b947701010000000028a69a99515ee25fd34357a771ab2368f57d1afcea523111608bec9e4a1f386a010000000000463fd180b5b36529a16ceae3cd4d5ca069c6a0dda99106c29885a396f7407e1c844d29fa48c673b23b626dbbbb7154bdd69928005a4431dc19d656879f93270a","index":0,"name":"Init_Validator_9","output":["0 | Type : Init Validator","1 | Address [1/2] : tnam1q9jpj9u5p6ugjylarkwmj9tsxr0pjlgpn","1 | Address [2/2] : 5wa8ff0","2 | Consensus key [1/2] : tpknam1qrp9828ajyltx25wheax6zdzsskgkpq","2 | Consensus key [2/2] : 4vjhmusagmachsy0qts7txdyqp34","3 | Ethereum cold key [1/2] : 03ef994e6d954450634ba03bdd5258dc17f560","3 | Ethereum cold key [2/2] : 5022d7a9ad5b92e49417ad538de9","4 | Ethereum hot key [1/2] : 02a8dfaefd846d1e9a29b83af89af753d8c0eb","4 | Ethereum hot key [2/2] : 75fd2b68137a22bd9cefb4125bdb","5 | Protocol key [1/2] : tpknam1qzhajhq4hhpur2kyj2t3sqe3jnxh55k","5 | Protocol key [2/2] : cp6v9d7h7cgm9mu2asfpcg5nc7fz","6 | Commission rate : 0.05","7 | Maximum commission rate change : 0.01","8 | Email : me@me.com"],"output_expert":["0 | Code hash [1/2] : 7fc17af22a18d7af5ec9ee1328bc78abf4be95","0 | Code hash [2/2] : f2e0460f2c13d937c7edcca864","1 | Address [1/2] : tnam1q9jpj9u5p6ugjylarkwmj9tsxr0pjlgpn","1 | Address [2/2] : 5wa8ff0","2 | Consensus key [1/2] : tpknam1qrp9828ajyltx25wheax6zdzsskgkpq","2 | Consensus key [2/2] : 4vjhmusagmachsy0qts7txdyqp34","3 | Ethereum cold key [1/2] : 03ef994e6d954450634ba03bdd5258dc17f560","3 | Ethereum cold key [2/2] : 5022d7a9ad5b92e49417ad538de9","4 | Ethereum hot key [1/2] : 02a8dfaefd846d1e9a29b83af89af753d8c0eb","4 | Ethereum hot key [2/2] : 75fd2b68137a22bd9cefb4125bdb","5 | Protocol key [1/2] : tpknam1qzhajhq4hhpur2kyj2t3sqe3jnxh55k","5 | Protocol key [2/2] : cp6v9d7h7cgm9mu2asfpcg5nc7fz","6 | Commission rate : 0.05","7 | Maximum commission rate change : 0.01","8 | Email : me@me.com","9 | Timestamp : 2023-12-08 15:43:12.399519530 UTC","10 | Pubkey [1/2] : tpknam1qq52dx5e290wyh7ngdt6wudtyd502lg","10 | Pubkey [2/2] : 6ln49yvg3vz97e8j2ruux5e3yewq","11 | Epoch : 10","12 | Gas limit : 0.025","13 | Fee token [1/2] : tnam1q9mjvqd45u7w54kee2aquugtv7vn7h3xr","13 | Fee token [2/2] : crau7xy","14 | Fees/gas unit : 0.000001"],"valid":true}, +{"blob":"1e0000006c6f63616c6e65742e6434313134643634383861656637663266363866360023000000323032332d31322d30385431353a34333a31352e3532343332333330332b30303a3030d1b2366a64912255b9747c9971f43a5bd70176e011795f376f652d3b504c93ee7e222003bd01da19e4226e68a3c318bac9ef814099e8dfd1744a3f326bb78c6e01010000000000000000000000000000000000000000000000000000000000000000772601b5a73cea56d9caba0e710b67993f5e261e00e6e3ecc407e5a7ec9646593fb712a6d0a493be4c29d3980db354872cd7ca5e220b00000000000000a86100000000000000030000000171e8184a8c010000001851d91372bdcf58180f79f30dfd1d2b7f509a779e3e2e798bf68a24739d780a010c00000076705f757365722e7761736d0271e8184a8c01000000b7653a7a854c9036d884bd3ce0315acd604c7a61e0f86b8c04dcd41d96c8e917011400000074785f696e69745f6163636f756e742e7761736d0071e8184a8c010000670000000200000000e6e3ecc407e5a7ec9646593fb712a6d0a493be4c29d3980db354872cd7ca5e220028a69a99515ee25fd34357a771ab2368f57d1afcea523111608bec9e4a1f386ac97b17ba099fe4245a57e2dab631e2703d52148c01f5ec6ce92cdb965300d90a02","index":0,"name":"Init_Account_10","output":["0 | Type : Init Account","1 | Public key [1/2] : tpknam1qrnw8mxyqlj60mykgevnldcj5mg2fya","1 | Public key [2/2] : 7fs5a8xqdkd2gwtxhef0zy8a2wha","2 | Public key [1/2] : tpknam1qq52dx5e290wyh7ngdt6wudtyd502lg","2 | Public key [2/2] : 6ln49yvg3vz97e8j2ruux5e3yewq","3 | Threshold : 2","4 | VP type : User"],"output_expert":["0 | Code hash [1/2] : b7653a7a854c9036d884bd3ce0315acd604c7a","0 | Code hash [2/2] : 61e0f86b8c04dcd41d96c8e917","1 | Public key [1/2] : tpknam1qrnw8mxyqlj60mykgevnldcj5mg2fya","1 | Public key [2/2] : 7fs5a8xqdkd2gwtxhef0zy8a2wha","2 | Public key [1/2] : tpknam1qq52dx5e290wyh7ngdt6wudtyd502lg","2 | Public key [2/2] : 6ln49yvg3vz97e8j2ruux5e3yewq","3 | Threshold : 2","4 | VP type [1/2] : 1851d91372bdcf58180f79f30dfd1d2b7f509a","4 | VP type [2/2] : 779e3e2e798bf68a24739d780a","5 | Timestamp : 2023-12-08 15:43:15.524323303 UTC","6 | Pubkey [1/2] : tpknam1qrnw8mxyqlj60mykgevnldcj5mg2fya","6 | Pubkey [2/2] : 7fs5a8xqdkd2gwtxhef0zy8a2wha","7 | Epoch : 11","8 | Gas limit : 0.025","9 | Fee token [1/2] : tnam1q9mjvqd45u7w54kee2aquugtv7vn7h3xr","9 | Fee token [2/2] : crau7xy","10 | Fees/gas unit : 0.000001"],"valid":true}, +{"blob":"1e0000006c6f63616c6e65742e6434313134643634383861656637663266363866360023000000323032332d31322d30385431353a34333a31352e3532343332333330332b30303a3030d1b2366a64912255b9747c9971f43a5bd70176e011795f376f652d3b504c93ee7e222003bd01da19e4226e68a3c318bac9ef814099e8dfd1744a3f326bb78c6e01010000000000000000000000000000000000000000000000000000000000000000772601b5a73cea56d9caba0e710b67993f5e261e00e6e3ecc407e5a7ec9646593fb712a6d0a493be4c29d3980db354872cd7ca5e220b00000000000000a86100000000000000040000000171e8184a8c010000001851d91372bdcf58180f79f30dfd1d2b7f509a779e3e2e798bf68a24739d780a010c00000076705f757365722e7761736d0271e8184a8c01000000b7653a7a854c9036d884bd3ce0315acd604c7a61e0f86b8c04dcd41d96c8e917011400000074785f696e69745f6163636f756e742e7761736d0071e8184a8c010000670000000200000000e6e3ecc407e5a7ec9646593fb712a6d0a493be4c29d3980db354872cd7ca5e220028a69a99515ee25fd34357a771ab2368f57d1afcea523111608bec9e4a1f386ac97b17ba099fe4245a57e2dab631e2703d52148c01f5ec6ce92cdb965300d90a020304000000b1495c583bb0df6afa13a3b46b8d9b1b45d626a76f134a45ee3b4f87835ed707c97b17ba099fe4245a57e2dab631e2703d52148c01f5ec6ce92cdb965300d90ad1b2366a64912255b9747c9971f43a5bd70176e011795f376f652d3b504c93ee7e222003bd01da19e4226e68a3c318bac9ef814099e8dfd1744a3f326bb78c6e010100000000e6e3ecc407e5a7ec9646593fb712a6d0a493be4c29d3980db354872cd7ca5e220100000000007ac75d6beca00d0fdd94aa743c93437bb3c4020feb0586b09e62e124918721d0458d8692e0ad5205a92da0b671293f6f6a9d45d92ddb7e5ab998258d7992680a","index":0,"name":"Init_Account_11","output":["0 | Type : Init Account","1 | Public key [1/2] : tpknam1qrnw8mxyqlj60mykgevnldcj5mg2fya","1 | Public key [2/2] : 7fs5a8xqdkd2gwtxhef0zy8a2wha","2 | Public key [1/2] : tpknam1qq52dx5e290wyh7ngdt6wudtyd502lg","2 | Public key [2/2] : 6ln49yvg3vz97e8j2ruux5e3yewq","3 | Threshold : 2","4 | VP type : User"],"output_expert":["0 | Code hash [1/2] : b7653a7a854c9036d884bd3ce0315acd604c7a","0 | Code hash [2/2] : 61e0f86b8c04dcd41d96c8e917","1 | Public key [1/2] : tpknam1qrnw8mxyqlj60mykgevnldcj5mg2fya","1 | Public key [2/2] : 7fs5a8xqdkd2gwtxhef0zy8a2wha","2 | Public key [1/2] : tpknam1qq52dx5e290wyh7ngdt6wudtyd502lg","2 | Public key [2/2] : 6ln49yvg3vz97e8j2ruux5e3yewq","3 | Threshold : 2","4 | VP type [1/2] : 1851d91372bdcf58180f79f30dfd1d2b7f509a","4 | VP type [2/2] : 779e3e2e798bf68a24739d780a","5 | Timestamp : 2023-12-08 15:43:15.524323303 UTC","6 | Pubkey [1/2] : tpknam1qrnw8mxyqlj60mykgevnldcj5mg2fya","6 | Pubkey [2/2] : 7fs5a8xqdkd2gwtxhef0zy8a2wha","7 | Epoch : 11","8 | Gas limit : 0.025","9 | Fee token [1/2] : tnam1q9mjvqd45u7w54kee2aquugtv7vn7h3xr","9 | Fee token [2/2] : crau7xy","10 | Fees/gas unit : 0.000001"],"valid":true}, +{"blob":"1e0000006c6f63616c6e65742e6434313134643634383861656637663266363866360023000000323032332d31322d30385431353a34333a31382e3133333135323239352b30303a3030102bd849ba6029f6b2d95001410049bea334c14b19e33c8c3fa57729e5445fad768bb06e4937fd5dc6f754434c090931777bc8bf4bc37a6f02b5058ce2d186a601010000000000000000000000000000000000000000000000000000000000000000772601b5a73cea56d9caba0e710b67993f5e261e00e6e3ecc407e5a7ec9646593fb712a6d0a493be4c29d3980db354872cd7ca5e220b00000000000000a861000000000000000200000002a3f2184a8c010000007fc17af22a18d7af5ec9ee1328bc78abf4be95f2e0460f2c13d937c7edcca864011800000074785f6265636f6d655f76616c696461746f722e7761736d00a3f2184a8c010000e900000000b30ba2bce951416a9148ad272f0167c715fb437f0078269435f2885745d1a0d0cd1d02f443026c2b2b482b1536f4c97e8b7b47dadc02e83aace29fc4272fa7fbd68db586075859d85a952f2068bbb272886e67b4b96f03c9346007e2ca3766247b7082717a9453908f6ab1cd65abc761073a6751d9e0cc006409276dc103a92dafc88d678d357b35cde3bbe17ff7d219f9e2f54463b1da5200743ba40b00000000000000000000000000000000000000000000000000000000e40b5402000000000000000000000000000000000000000000000000000000090000006d65406d652e636f6d000000","index":0,"name":"Init_Validator_10","output":["0 | Type : Init Validator","1 | Address [1/2] : tnam1qxeshg4ua9g5z653fzkjwtcpvlr3t76r0","1 | Address [2/2] : u5e7g7w","2 | Consensus key [1/2] : tpknam1qpuzd9p472y9w3w35rgv68gz73psymp","2 | Consensus key [2/2] : t9dyzk9fk7nyhazmmglddcnuvqcx","3 | Ethereum cold key [1/2] : 02e83aace29fc4272fa7fbd68db586075859d8","3 | Ethereum cold key [2/2] : 5a952f2068bbb272886e67b4b96f","4 | Ethereum hot key [1/2] : 03c9346007e2ca3766247b7082717a9453908f","4 | Ethereum hot key [2/2] : 6ab1cd65abc761073a6751d9e0cc","5 | Protocol key [1/2] : tpknam1qpjqjfmdcyp6jtd0ezxk0rf40v6umca","5 | Protocol key [2/2] : mu9ll05sel83023rrk8d9y4z5hup","6 | Commission rate : 0.05","7 | Maximum commission rate change : 0.01","8 | Email : me@me.com"],"output_expert":["0 | Code hash [1/2] : 7fc17af22a18d7af5ec9ee1328bc78abf4be95","0 | Code hash [2/2] : f2e0460f2c13d937c7edcca864","1 | Address [1/2] : tnam1qxeshg4ua9g5z653fzkjwtcpvlr3t76r0","1 | Address [2/2] : u5e7g7w","2 | Consensus key [1/2] : tpknam1qpuzd9p472y9w3w35rgv68gz73psymp","2 | Consensus key [2/2] : t9dyzk9fk7nyhazmmglddcnuvqcx","3 | Ethereum cold key [1/2] : 02e83aace29fc4272fa7fbd68db586075859d8","3 | Ethereum cold key [2/2] : 5a952f2068bbb272886e67b4b96f","4 | Ethereum hot key [1/2] : 03c9346007e2ca3766247b7082717a9453908f","4 | Ethereum hot key [2/2] : 6ab1cd65abc761073a6751d9e0cc","5 | Protocol key [1/2] : tpknam1qpjqjfmdcyp6jtd0ezxk0rf40v6umca","5 | Protocol key [2/2] : mu9ll05sel83023rrk8d9y4z5hup","6 | Commission rate : 0.05","7 | Maximum commission rate change : 0.01","8 | Email : me@me.com","9 | Timestamp : 2023-12-08 15:43:18.133152295 UTC","10 | Pubkey [1/2] : tpknam1qrnw8mxyqlj60mykgevnldcj5mg2fya","10 | Pubkey [2/2] : 7fs5a8xqdkd2gwtxhef0zy8a2wha","11 | Epoch : 11","12 | Gas limit : 0.025","13 | Fee token [1/2] : tnam1q9mjvqd45u7w54kee2aquugtv7vn7h3xr","13 | Fee token [2/2] : crau7xy","14 | Fees/gas unit : 0.000001"],"valid":true}, +{"blob":"1e0000006c6f63616c6e65742e6434313134643634383861656637663266363866360023000000323032332d31322d30385431353a34333a31382e3133333135323239352b30303a3030102bd849ba6029f6b2d95001410049bea334c14b19e33c8c3fa57729e5445fad768bb06e4937fd5dc6f754434c090931777bc8bf4bc37a6f02b5058ce2d186a601010000000000000000000000000000000000000000000000000000000000000000772601b5a73cea56d9caba0e710b67993f5e261e00e6e3ecc407e5a7ec9646593fb712a6d0a493be4c29d3980db354872cd7ca5e220b00000000000000a861000000000000000400000002a3f2184a8c010000007fc17af22a18d7af5ec9ee1328bc78abf4be95f2e0460f2c13d937c7edcca864011800000074785f6265636f6d655f76616c696461746f722e7761736d00a3f2184a8c010000e900000000b30ba2bce951416a9148ad272f0167c715fb437f0078269435f2885745d1a0d0cd1d02f443026c2b2b482b1536f4c97e8b7b47dadc02e83aace29fc4272fa7fbd68db586075859d85a952f2068bbb272886e67b4b96f03c9346007e2ca3766247b7082717a9453908f6ab1cd65abc761073a6751d9e0cc006409276dc103a92dafc88d678d357b35cde3bbe17ff7d219f9e2f54463b1da5200743ba40b00000000000000000000000000000000000000000000000000000000e40b5402000000000000000000000000000000000000000000000000000000090000006d65406d652e636f6d00000003010000003fcf69c8b56365cc4dee02de298f68d5c4c73a6350aa32f9206e892cc8839688010600000000e6e3ecc407e5a7ec9646593fb712a6d0a493be4c29d3980db354872cd7ca5e220028a69a99515ee25fd34357a771ab2368f57d1afcea523111608bec9e4a1f386a0078269435f2885745d1a0d0cd1d02f443026c2b2b482b1536f4c97e8b7b47dadc0102e83aace29fc4272fa7fbd68db586075859d85a952f2068bbb272886e67b4b96f0103c9346007e2ca3766247b7082717a9453908f6ab1cd65abc761073a6751d9e0cc006409276dc103a92dafc88d678d357b35cde3bbe17ff7d219f9e2f54463b1da52060000000000071e7a7059ffb042b29b0b26c73b7a8f6cd2cb3760f8590c9d2ae6967aaeee4f99cd2952d253069cf27a558d7513f40dd1897c8e6a7941a1d4d650ef7a80fb080100c5556803d209a47a57d25750c2c71e6c6c1aed8a3739de7031002c8db9f1565f1cf27a1d973f3325d85398f575aa802f357f961d4d3577daf786f3e7e559450d0200fd8dc259a4d43e3a39d34e7bc816cfddeb2db94276364b335f0c661c21854bb6229cf28264ba729d5494e62016523e9158ecaabd3df9c3d745830e12e0aae50e030160bed7ca56a0b2ffb31eba1b1d648c6dbcca9b63ac5877a14861cebbfdfc490e04651aca5631dc8c43c63531e23cb3b157ed0f9e29eb5f89f4b769fb2c4b38280104017706ab91000526eb66006304653bbeccb96f0c88296b11b4ed8e3605765c9fb43e3776787279eb1a20b7ef2af872cdba01d7aa794ad5bfbf2ff64f94e9d37aff0105003c0335fd6035e58be48989aec81d7a862b7d5ea8b6607c341a573d9f3fbf3783adea8e88bb602a0ff40ea017cbc1fbc26be3938014a73dd7ee95758f7ef42a040304000000db83affee3f4c9a02c007ee4ff75b47c3d219943da73ec90a01d3887d9cc1fd2102bd849ba6029f6b2d95001410049bea334c14b19e33c8c3fa57729e5445fad768bb06e4937fd5dc6f754434c090931777bc8bf4bc37a6f02b5058ce2d186a6d694ecb6aa98d61b0ef30575866db9294a447a27465adc6b47877c3879d59835010100000000e6e3ecc407e5a7ec9646593fb712a6d0a493be4c29d3980db354872cd7ca5e22010000000000ff4ca13ffb88921a8989de85a749631874a856b6a640e58ba994cbdbb6a8bb74eb7de7b81ba846e6abbd14a8b32943026533a4794cc2e6579e2f537b369a7c0e","index":0,"name":"Init_Validator_11","output":["0 | Type : Init Validator","1 | Address [1/2] : tnam1qxeshg4ua9g5z653fzkjwtcpvlr3t76r0","1 | Address [2/2] : u5e7g7w","2 | Consensus key [1/2] : tpknam1qpuzd9p472y9w3w35rgv68gz73psymp","2 | Consensus key [2/2] : t9dyzk9fk7nyhazmmglddcnuvqcx","3 | Ethereum cold key [1/2] : 02e83aace29fc4272fa7fbd68db586075859d8","3 | Ethereum cold key [2/2] : 5a952f2068bbb272886e67b4b96f","4 | Ethereum hot key [1/2] : 03c9346007e2ca3766247b7082717a9453908f","4 | Ethereum hot key [2/2] : 6ab1cd65abc761073a6751d9e0cc","5 | Protocol key [1/2] : tpknam1qpjqjfmdcyp6jtd0ezxk0rf40v6umca","5 | Protocol key [2/2] : mu9ll05sel83023rrk8d9y4z5hup","6 | Commission rate : 0.05","7 | Maximum commission rate change : 0.01","8 | Email : me@me.com"],"output_expert":["0 | Code hash [1/2] : 7fc17af22a18d7af5ec9ee1328bc78abf4be95","0 | Code hash [2/2] : f2e0460f2c13d937c7edcca864","1 | Address [1/2] : tnam1qxeshg4ua9g5z653fzkjwtcpvlr3t76r0","1 | Address [2/2] : u5e7g7w","2 | Consensus key [1/2] : tpknam1qpuzd9p472y9w3w35rgv68gz73psymp","2 | Consensus key [2/2] : t9dyzk9fk7nyhazmmglddcnuvqcx","3 | Ethereum cold key [1/2] : 02e83aace29fc4272fa7fbd68db586075859d8","3 | Ethereum cold key [2/2] : 5a952f2068bbb272886e67b4b96f","4 | Ethereum hot key [1/2] : 03c9346007e2ca3766247b7082717a9453908f","4 | Ethereum hot key [2/2] : 6ab1cd65abc761073a6751d9e0cc","5 | Protocol key [1/2] : tpknam1qpjqjfmdcyp6jtd0ezxk0rf40v6umca","5 | Protocol key [2/2] : mu9ll05sel83023rrk8d9y4z5hup","6 | Commission rate : 0.05","7 | Maximum commission rate change : 0.01","8 | Email : me@me.com","9 | Timestamp : 2023-12-08 15:43:18.133152295 UTC","10 | Pubkey [1/2] : tpknam1qrnw8mxyqlj60mykgevnldcj5mg2fya","10 | Pubkey [2/2] : 7fs5a8xqdkd2gwtxhef0zy8a2wha","11 | Epoch : 11","12 | Gas limit : 0.025","13 | Fee token [1/2] : tnam1q9mjvqd45u7w54kee2aquugtv7vn7h3xr","13 | Fee token [2/2] : crau7xy","14 | Fees/gas unit : 0.000001"],"valid":true}, +{"blob":"1e0000006c6f63616c6e65742e6434313134643634383861656637663266363866360023000000323032332d31322d30385431353a34333a32322e3332383139343136332b30303a3030fa016ee954544baef9bfda442da79ddbdf3e35904d574457301e7ba75bf80288e0a549a455ed3c77cd1a887858117579f81aae3c8527fa1deba65834ae5d1b3001010000000000000000000000000000000000000000000000000000000000000000772601b5a73cea56d9caba0e710b67993f5e261e00e6e3ecc407e5a7ec9646593fb712a6d0a493be4c29d3980db354872cd7ca5e220c00000000000000a8610000000000000003000000010403194a8c010000001851d91372bdcf58180f79f30dfd1d2b7f509a779e3e2e798bf68a24739d780a010c00000076705f757365722e7761736d020503194a8c01000000b7653a7a854c9036d884bd3ce0315acd604c7a61e0f86b8c04dcd41d96c8e917011400000074785f696e69745f6163636f756e742e7761736d000503194a8c010000460000000100000000e6e3ecc407e5a7ec9646593fb712a6d0a493be4c29d3980db354872cd7ca5e22aa24641356ae4470057177df74f683db83c70c6dd18adecbf14d1346bc62e35a01","index":0,"name":"Init_Account_12","output":["0 | Type : Init Account","1 | Public key [1/2] : tpknam1qrnw8mxyqlj60mykgevnldcj5mg2fya","1 | Public key [2/2] : 7fs5a8xqdkd2gwtxhef0zy8a2wha","2 | Threshold : 1","3 | VP type : User"],"output_expert":["0 | Code hash [1/2] : b7653a7a854c9036d884bd3ce0315acd604c7a","0 | Code hash [2/2] : 61e0f86b8c04dcd41d96c8e917","1 | Public key [1/2] : tpknam1qrnw8mxyqlj60mykgevnldcj5mg2fya","1 | Public key [2/2] : 7fs5a8xqdkd2gwtxhef0zy8a2wha","2 | Threshold : 1","3 | VP type [1/2] : 1851d91372bdcf58180f79f30dfd1d2b7f509a","3 | VP type [2/2] : 779e3e2e798bf68a24739d780a","4 | Timestamp : 2023-12-08 15:43:22.328194163 UTC","5 | Pubkey [1/2] : tpknam1qrnw8mxyqlj60mykgevnldcj5mg2fya","5 | Pubkey [2/2] : 7fs5a8xqdkd2gwtxhef0zy8a2wha","6 | Epoch : 12","7 | Gas limit : 0.025","8 | Fee token [1/2] : tnam1q9mjvqd45u7w54kee2aquugtv7vn7h3xr","8 | Fee token [2/2] : crau7xy","9 | Fees/gas unit : 0.000001"],"valid":true}, +{"blob":"1e0000006c6f63616c6e65742e6434313134643634383861656637663266363866360023000000323032332d31322d30385431353a34333a32322e3332383139343136332b30303a3030fa016ee954544baef9bfda442da79ddbdf3e35904d574457301e7ba75bf80288e0a549a455ed3c77cd1a887858117579f81aae3c8527fa1deba65834ae5d1b3001010000000000000000000000000000000000000000000000000000000000000000772601b5a73cea56d9caba0e710b67993f5e261e00e6e3ecc407e5a7ec9646593fb712a6d0a493be4c29d3980db354872cd7ca5e220c00000000000000a8610000000000000004000000010403194a8c010000001851d91372bdcf58180f79f30dfd1d2b7f509a779e3e2e798bf68a24739d780a010c00000076705f757365722e7761736d020503194a8c01000000b7653a7a854c9036d884bd3ce0315acd604c7a61e0f86b8c04dcd41d96c8e917011400000074785f696e69745f6163636f756e742e7761736d000503194a8c010000460000000100000000e6e3ecc407e5a7ec9646593fb712a6d0a493be4c29d3980db354872cd7ca5e22aa24641356ae4470057177df74f683db83c70c6dd18adecbf14d1346bc62e35a010304000000f23ceae660cb29043314bb7484f65258878b49220429bf625aa7e77bd00bee55aa24641356ae4470057177df74f683db83c70c6dd18adecbf14d1346bc62e35afa016ee954544baef9bfda442da79ddbdf3e35904d574457301e7ba75bf80288e0a549a455ed3c77cd1a887858117579f81aae3c8527fa1deba65834ae5d1b30010100000000e6e3ecc407e5a7ec9646593fb712a6d0a493be4c29d3980db354872cd7ca5e22010000000000f1412cca33c14d3e429142e0d679d9a15f4f365ee807ae96d3b799dd900a7b5776909ab01e86369bf587f87a5b0455000aab5b67f14217064012e85d9a3cca09","index":0,"name":"Init_Account_13","output":["0 | Type : Init Account","1 | Public key [1/2] : tpknam1qrnw8mxyqlj60mykgevnldcj5mg2fya","1 | Public key [2/2] : 7fs5a8xqdkd2gwtxhef0zy8a2wha","2 | Threshold : 1","3 | VP type : User"],"output_expert":["0 | Code hash [1/2] : b7653a7a854c9036d884bd3ce0315acd604c7a","0 | Code hash [2/2] : 61e0f86b8c04dcd41d96c8e917","1 | Public key [1/2] : tpknam1qrnw8mxyqlj60mykgevnldcj5mg2fya","1 | Public key [2/2] : 7fs5a8xqdkd2gwtxhef0zy8a2wha","2 | Threshold : 1","3 | VP type [1/2] : 1851d91372bdcf58180f79f30dfd1d2b7f509a","3 | VP type [2/2] : 779e3e2e798bf68a24739d780a","4 | Timestamp : 2023-12-08 15:43:22.328194163 UTC","5 | Pubkey [1/2] : tpknam1qrnw8mxyqlj60mykgevnldcj5mg2fya","5 | Pubkey [2/2] : 7fs5a8xqdkd2gwtxhef0zy8a2wha","6 | Epoch : 12","7 | Gas limit : 0.025","8 | Fee token [1/2] : tnam1q9mjvqd45u7w54kee2aquugtv7vn7h3xr","8 | Fee token [2/2] : crau7xy","9 | Fees/gas unit : 0.000001"],"valid":true}, +{"blob":"1e0000006c6f63616c6e65742e6434313134643634383861656637663266363866360023000000323032332d31322d30385431353a34333a32352e3333373131393737322b30303a3030435a2dbe9816c9a7b9636df315bea6d66ce6bff9daa6109a612154cd4884232e12574e7e42f41ae13b7e20bba996ab7f5307e194afd3e48c9b15a401d63e9bff01010000000000000000000000000000000000000000000000000000000000000000772601b5a73cea56d9caba0e710b67993f5e261e00e6e3ecc407e5a7ec9646593fb712a6d0a493be4c29d3980db354872cd7ca5e220c00000000000000a861000000000000000300000001c30e194a8c010000001851d91372bdcf58180f79f30dfd1d2b7f509a779e3e2e798bf68a24739d780a010c00000076705f757365722e7761736d02c30e194a8c01000000b7653a7a854c9036d884bd3ce0315acd604c7a61e0f86b8c04dcd41d96c8e917011400000074785f696e69745f6163636f756e742e7761736d00c30e194a8c010000880000000300000000e6e3ecc407e5a7ec9646593fb712a6d0a493be4c29d3980db354872cd7ca5e220028a69a99515ee25fd34357a771ab2368f57d1afcea523111608bec9e4a1f386a001c90f19339bc402c1cccae10e535635ac2a2fc8670a1dba6eb227eefbb374c14a0e3f152813a64ec20dee37a3d666e6dc38ea30b4959c044180aa4f45e3290b202","index":0,"name":"Init_Account_14","output":["0 | Type : Init Account","1 | Public key [1/2] : tpknam1qrnw8mxyqlj60mykgevnldcj5mg2fya","1 | Public key [2/2] : 7fs5a8xqdkd2gwtxhef0zy8a2wha","2 | Public key [1/2] : tpknam1qq52dx5e290wyh7ngdt6wudtyd502lg","2 | Public key [2/2] : 6ln49yvg3vz97e8j2ruux5e3yewq","3 | Public key [1/2] : tpknam1qqwfpuvn8x7yqtquejhppef4vddv9gh","3 | Public key [2/2] : usec2rkaxav38amamxaxpgj9cs79","4 | Threshold : 2","5 | VP type : User"],"output_expert":["0 | Code hash [1/2] : b7653a7a854c9036d884bd3ce0315acd604c7a","0 | Code hash [2/2] : 61e0f86b8c04dcd41d96c8e917","1 | Public key [1/2] : tpknam1qrnw8mxyqlj60mykgevnldcj5mg2fya","1 | Public key [2/2] : 7fs5a8xqdkd2gwtxhef0zy8a2wha","2 | Public key [1/2] : tpknam1qq52dx5e290wyh7ngdt6wudtyd502lg","2 | Public key [2/2] : 6ln49yvg3vz97e8j2ruux5e3yewq","3 | Public key [1/2] : tpknam1qqwfpuvn8x7yqtquejhppef4vddv9gh","3 | Public key [2/2] : usec2rkaxav38amamxaxpgj9cs79","4 | Threshold : 2","5 | VP type [1/2] : 1851d91372bdcf58180f79f30dfd1d2b7f509a","5 | VP type [2/2] : 779e3e2e798bf68a24739d780a","6 | Timestamp : 2023-12-08 15:43:25.337119772 UTC","7 | Pubkey [1/2] : tpknam1qrnw8mxyqlj60mykgevnldcj5mg2fya","7 | Pubkey [2/2] : 7fs5a8xqdkd2gwtxhef0zy8a2wha","8 | Epoch : 12","9 | Gas limit : 0.025","10 | Fee token [1/2] : tnam1q9mjvqd45u7w54kee2aquugtv7vn7h3xr","10 | Fee token [2/2] : crau7xy","11 | Fees/gas unit : 0.000001"],"valid":true}, +{"blob":"1e0000006c6f63616c6e65742e6434313134643634383861656637663266363866360023000000323032332d31322d30385431353a34333a32352e3333373131393737322b30303a3030435a2dbe9816c9a7b9636df315bea6d66ce6bff9daa6109a612154cd4884232e12574e7e42f41ae13b7e20bba996ab7f5307e194afd3e48c9b15a401d63e9bff01010000000000000000000000000000000000000000000000000000000000000000772601b5a73cea56d9caba0e710b67993f5e261e00e6e3ecc407e5a7ec9646593fb712a6d0a493be4c29d3980db354872cd7ca5e220c00000000000000a861000000000000000400000001c30e194a8c010000001851d91372bdcf58180f79f30dfd1d2b7f509a779e3e2e798bf68a24739d780a010c00000076705f757365722e7761736d02c30e194a8c01000000b7653a7a854c9036d884bd3ce0315acd604c7a61e0f86b8c04dcd41d96c8e917011400000074785f696e69745f6163636f756e742e7761736d00c30e194a8c010000880000000300000000e6e3ecc407e5a7ec9646593fb712a6d0a493be4c29d3980db354872cd7ca5e220028a69a99515ee25fd34357a771ab2368f57d1afcea523111608bec9e4a1f386a001c90f19339bc402c1cccae10e535635ac2a2fc8670a1dba6eb227eefbb374c14a0e3f152813a64ec20dee37a3d666e6dc38ea30b4959c044180aa4f45e3290b2020304000000589ffbc8169f1439386635b94dd20e89c7e453cd9b0f8b570565861bb31c0414a0e3f152813a64ec20dee37a3d666e6dc38ea30b4959c044180aa4f45e3290b2435a2dbe9816c9a7b9636df315bea6d66ce6bff9daa6109a612154cd4884232e12574e7e42f41ae13b7e20bba996ab7f5307e194afd3e48c9b15a401d63e9bff010100000000e6e3ecc407e5a7ec9646593fb712a6d0a493be4c29d3980db354872cd7ca5e2201000000000007f1848dff5135192e7673ba720bce170cd48094a7fa63cb1b28e4692d44d914f875a9e0dc5d8eea6268373985fa0188659b7686e37cee284f7ccd231af78905","index":0,"name":"Init_Account_15","output":["0 | Type : Init Account","1 | Public key [1/2] : tpknam1qrnw8mxyqlj60mykgevnldcj5mg2fya","1 | Public key [2/2] : 7fs5a8xqdkd2gwtxhef0zy8a2wha","2 | Public key [1/2] : tpknam1qq52dx5e290wyh7ngdt6wudtyd502lg","2 | Public key [2/2] : 6ln49yvg3vz97e8j2ruux5e3yewq","3 | Public key [1/2] : tpknam1qqwfpuvn8x7yqtquejhppef4vddv9gh","3 | Public key [2/2] : usec2rkaxav38amamxaxpgj9cs79","4 | Threshold : 2","5 | VP type : User"],"output_expert":["0 | Code hash [1/2] : b7653a7a854c9036d884bd3ce0315acd604c7a","0 | Code hash [2/2] : 61e0f86b8c04dcd41d96c8e917","1 | Public key [1/2] : tpknam1qrnw8mxyqlj60mykgevnldcj5mg2fya","1 | Public key [2/2] : 7fs5a8xqdkd2gwtxhef0zy8a2wha","2 | Public key [1/2] : tpknam1qq52dx5e290wyh7ngdt6wudtyd502lg","2 | Public key [2/2] : 6ln49yvg3vz97e8j2ruux5e3yewq","3 | Public key [1/2] : tpknam1qqwfpuvn8x7yqtquejhppef4vddv9gh","3 | Public key [2/2] : usec2rkaxav38amamxaxpgj9cs79","4 | Threshold : 2","5 | VP type [1/2] : 1851d91372bdcf58180f79f30dfd1d2b7f509a","5 | VP type [2/2] : 779e3e2e798bf68a24739d780a","6 | Timestamp : 2023-12-08 15:43:25.337119772 UTC","7 | Pubkey [1/2] : tpknam1qrnw8mxyqlj60mykgevnldcj5mg2fya","7 | Pubkey [2/2] : 7fs5a8xqdkd2gwtxhef0zy8a2wha","8 | Epoch : 12","9 | Gas limit : 0.025","10 | Fee token [1/2] : tnam1q9mjvqd45u7w54kee2aquugtv7vn7h3xr","10 | Fee token [2/2] : crau7xy","11 | Fees/gas unit : 0.000001"],"valid":true} ] diff --git a/tests_zemu/snapshots/s-sign-init_validator/00000.png b/tests_zemu/snapshots/s-sign-init_validator/00000.png deleted file mode 100644 index ab641537c559a9a81fa86e8bbe6e661b21185425..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 334 zcmV-U0kQsxP)1YF(1(TE*keSBCZ5(dW<2xj<^j%k| z8l?cS`C}K9TPw{#YRlwAAvE*})phdK^swqg{ZQRC0rpYd962zs-vDEg-ie#)T?Y35 zfV5BLJF(j-00~Fqvki^I&YZA&;$`>@z=J?aLDeE$*BM&c#iF2BJx@fHeA}ZX3sKoN20AiyO(P_Z)**@h@QH9vk zrQPb>As;8_*L$e1`UHHD3oB5gUvznuWH_hHWnVj(QS_YXVDILnbUC3w#HAPiL3p&W%z? zcx_Fq2Lp01zkye9`v)B+sotmK4xnfhKi=Eta@h8-|8}}B+xv9vfE6z3JmS`t(h<#{ zr8Hb`(^O517vlNTBX)*Jy$ne1lqeR%tKH=rfb1%5)QuZNG%_5r63T!yt+MluO+ZuJ zpasaKI>NL;zyNFrb_bMRsIonNZtj_b*o`+vXvsc;Zrr#Lg>j64B}JkohD?N$ znCFysz`k0I<34w`w#IDFItwvQ8&u^!PXnrMAW?y2GUC$`oSA5HDy2yVU#(3fKN<6u z`(Omc=mg#wrz?6049-c|N?W+@fegNv#i^#hsbFg?QEjrmLut$c7#p?(!memE>Y_Z6 z?ni*v?4XId7l4P(9+PPR27$T1Q00000NkvXXu0mjffBh?T diff --git a/tests_zemu/snapshots/s-sign-init_validator/00002.png b/tests_zemu/snapshots/s-sign-init_validator/00002.png deleted file mode 100644 index 325fa9e543aa9c0f62fd97405cee4e42e242d99f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 661 zcmV;G0&4wx#yhipqbX|Sg&j5;A@$`KEPKT}kdbhcJ$F4r@9WDHo#ox8#P) zZK|qC!TFOC6~b&Yv%UmK?$nVjhDUqIe*ofD+N>KNjp=BCrPY+F9(fGVVB+EvMkPzs z=jyO)D{!ts8HcXYqh~;sDs0yzS)yT^Wf9A*$>51=NJ_fJ)7FY|UF&vr7rcc&(nS#4 zL}KH}R>swza7l+TAPX814Mevf$vnH~lp@2XufrIy0Zl(e%F&9?IN#S~b>CVAm#hPh z47F#6_0R?wg+9L(=n6DBaE99$?Y!00L&Au5R-cjqkA-o(Cs_@ZmB8E{a^uDqBiD*( z7AfHddaUyDCSXVl5>(CkxcEYC_Eaz_!?OTXXh)-ufg$Fqg5OZf9XOYmXF^`=huJd5K z5EFc^Mn*A)@o6aduD|1({p!v0=7roHFM!?~AlgOjdy6DWb1pyKXnyo?thTujB$oBf vL`{4=?G(YkehAMshJjs&(+=SqH$ELddZ}L3CD2QG00000NkvXXu0mjf+<-oG diff --git a/tests_zemu/snapshots/s-sign-init_validator/00003.png b/tests_zemu/snapshots/s-sign-init_validator/00003.png deleted file mode 100644 index 1de499d53ae782070986876f1b82d55c46af81d5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 262 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!2~2j9iA5fsk5Fgjv*Cu-d=MQYF6NJ2u%6% zkG(8WTvmW%0XJ{TpZr~h5tD@uSWUMoTmJaQ=JUZf-`g*&T7KyK`=tT1|ArmYH*rXb zJpW=-=92f_M~^0TdHmlbmC5>aMPI7$=C%93t**R$`qfUA=JR%r#d1!1?_*wca=x@y zc01!)=3vpJ^*hPSwe_RIto@%f)?b^?-1g1!V8GL)wQFvEc=B3f?u%>QKhABBTFj+3 zKapXB%RlYbdH=6mZaCOuejxsSlljGlgBb@BOcD&FfZhOs2hw%b47HwM`t diff --git a/tests_zemu/snapshots/s-sign-init_validator/00004.png b/tests_zemu/snapshots/s-sign-init_validator/00004.png deleted file mode 100644 index 7ea845a8e784a8b8ead4ff484c645be155747ba6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 662 zcmV;H0%`q;P)~oRqh(|$8cZUf1jHLCR8Nf; z%nnfnrwP+2w!5?xnM6QWQH+=^-WY!6mk_?sWH4|5wR@-~gOj?|M(W)^BKhwYB&>^` zz&(UHr9KZvq2Ih{cumwzVedrq-Q>}UsF?9Lv6*XR zGP2fKjs7?a$sG<4bgT!2%#B49!>dt_530m1Sf5br@YfQNzvxSkk{e?B9$=c7VmU>n zkvFT`^tvu6jgSNY)(RlO+=aUy70g5%nd;MMbPXkQ+SmKC5KI~U&@vCWq@ow-#W!X2 z1G@zshj55?l7b;sJ|TR@$?=0{JG#yl>EbS>C1+M4*%Gr{jW1=wyCx)`QpCM5&kDE& zh;Y3I&`2R}$H|^s??O+(%%Zn);3XCsr(Gj4KJ_;pneDAP7bRj!QjXP#;`bh+g`7dW z2#JLX#!K6^*caa1J*OU^`p6U{lsRY?DwxU#PjxH*K&^TO?7)jNs^Aw1;#WP*r=Drk zC4f|w_oD<#uc5A@!Y-W5nn~6;a!b&eYNI@0XUTkX5XMHI^ra-aovD^qLtV?wJTvvw wzxewGEL5N)(~C*9rZ)3$ai4_oDMeh2Kh^+2L=%B!!T^nXGNAzLW`+x~y4xbn0Ms#?A-VtZcFnT+xWvw-RVe}|5)34o&E-!$ z8z4TpaN;9U3|C#m4emw7HIu$u93+WB;q>ha| zcjOl-wa2i}+zevjSTU_!))Rt6B(M9i72p~qd9WU6d??ZzfUhjA%S81!QJ41yDj7+q z=DL{kc<_2M`1<2GkL|LT@P!L&0+bt*zfa{A8xA6+wL+_aQN@fQT2v8On7QboR}im2 z@Fb{y7F9qELzHQrfZ#JXi|Y-&Xr8%%%tUan!F4pTSNw`wXtLHMZkk!Mz{dj)rsN^h zgLEE{0WK9JoiqTk!Z_KfqZ=?I;{cVuvoJrTL^mK$D^P2s!B;B`3|um7%0tG1+zBY| z|K|~7bYsN4x}B`39kJek8*$P5e60H}9zu2We6Lc($@l}0raRpAb2H8W0000}?P}hR3LPrQ@tq zkoN{?2E2t_^@t{=ph!>(9)51CP2I`-q@Y3!vcSR*Row%9 zGM%RWO1n!<6B_tr)>ZQHRcy=8G9O!A*7il%v(nRIu9lw$A&pmE5MHotVmvxB$3145 znE1!Iv5X?chpmln!MtiA+AB}Et}&S6RYg#%%q?CE<_Xm93;^Htv`?GnF{JvJu|o>MFm(Eo;U5=(>{Ry3 zIMEj_06KA(+i^w|Lt((|N|jl&svmL1n3$NDI0f`5VueoM;P==DGb2+}aC*fPY|v7K zlxz{w*X2V>LfHMA{CEj;@XV~DAcXnANXF`DWUisOkH;}D-&CC1Ht5OrL=fH3WMk4{Uf$sA7tjs=b|~} zgXxLp23SIGZ|m(I^0@!rozxhu&(1jgvyQFLZR)qX9EFKB>a3v4r_G_8<8&EulzE@A z1dUDrcF>2Ats|poaRlltju}ny>b#XA?#T>}kHksk7j;v@mgyy;Zc^OC}OMoZRou5p&ia0xh2*kP&t0) zT@s0ZjGLiv$Aem!6%9qqK*_e0V|lWDX>@;L}UAG zsw8|$`gbIX7Gl|nv5*6Z*eWoKUZm?m!AK(sXbC}tiP%(`I2npWaY@2_4LN!tl!|e^ x)h~-TfRO>jyHPYU<=({pyWtVhB9Ta}!7tZ)7?%Xb$z1>d002ovPDHLkV1mC29(Di# diff --git a/tests_zemu/snapshots/s-sign-init_validator/00008.png b/tests_zemu/snapshots/s-sign-init_validator/00008.png deleted file mode 100644 index bc3a6aa39d06e9787088f451707c03835bde111e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 628 zcmV-)0*n2LP)1xy40DR~|3A17-9ymSF=gtolCFh`Vd#8FbYwXe*HUUcAH|605+ir5!A~79Kfd-dwY%JbIUO>u2tCanzfc9#>9X?#&E75Ke%e(14*P;8Gju? zu^4#4?Vs)41$-b`^p0k4t;>lW{DEw}-dzjh*F(40Rx^vd&5HKU6nk?wM2`Tc&F2O< zOr#-Wf86vT6B9p-#W%b;F2lzn+98z`dhDIx#v@*B310{;uah{8g^$sWDqRpSY7x{7 zKwp*?FG8i+st*bC5XFPi*&u;rQiTMu-O?iRAsI;sXvhu#iZ;eOrI`MFd1CRHbqF9I zWR+36W&{A0sirpuF>;WLl{iBPu{d0SXiRdSanP6O}@A^reZ4iNA5PeE@>ir;LA zRf{L!r~f7S4N8eK1F+yuDZv981L`7NJWxe)G7GUt-&pxy*U*WHufQLpJ@ks*v!ZPP O0000Q{v)S=XXQx$eiUA>;62Ls&0}5dR6c`h|8x+m65=8ablCkhFbB%L)}Zy>tY6?5Jt(UL)C`$3sPXb|4!6L7XVwftw`x?D5_ z))PRZ-c#Om+uHJ{ze+?}mTaVq8K5&J&UauMB>)MV+`^Z|mKL>QTVFxi=?@jBn z98fZnX%Ltj5rM8W%LO7m1H7+*8?!oT3kwTR1JH_)0Ja$@J^0?$Y+5Ai5=j}s63J|k z@U$_p_(CAnR6Z3h^*V&ifBS7H(Ay5u}3!02E2Y?qo zy`5P$>tyd>%@CBX0U?({T%#1YI;uI-9w!DIFzLl%L9+|ev2jg1k!Z$8DtjV!AT$JV zR9WHgG?aK3Aw$o!6EN8Ucl9lvg8>JOgg>Od=Q#k(3Z|X>UmTQ!?;2THSn%NoWN|lx TnlvX;00000NkvXXu0mjf5nv)1 diff --git a/tests_zemu/snapshots/s-sign-init_validator/00010.png b/tests_zemu/snapshots/s-sign-init_validator/00010.png deleted file mode 100644 index b208a890e81a9012d6dfd277c1bba9748fee6adc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 680 zcmV;Z0$2TsP)Grq}G;+_V;9RZt-z%CWtu7TfFiI~meqCkHkVbx?at z^N_7BZS3=2xQ39`8nFQEGgBC1@w3Z%v@XwTU9OE?r}}mOuL>YaTmnff@5qK}j5=^O zq-Jin$8ppMD1}9v04PJ6+e%@#yU`LDbMKBTk-8==x(0d;4mpsh!%5ZLHsq}1dkgAW zgDcE?f*i;odJ(fvM33W#o%%n3J&^s^&NDA)_UVX#L@pfpbjUMydFleJv81HgdM%8d zt(MP?VtmZl03N=`Phm<%dE@&r&TAT6GLVe4J|{$6lY=;^^#HI}ly&<>ksZxG4g_@GeE%_-!m*y}|s2?TMu`Gj{8A zPiFAw-o#^MGE>VrFg80Q3j;N@(XbVQB^^BNYDLX0NM`V=SPoYVi5t>xU#er$r-vF> zBX*loC8d}P$to-?kQx9Ld}I?ZJgM?q;cX|kL}6=o8A{Er7&5xEOA!XZ?3am^cB)G~ zWLFP^8gws!BBZID^~&IPP1n^okY2aA_4)xcs*ehujl^vVNi|9HDE&|qx4yi ziqM>o%P*niv}PQDK3Jmh$a3FDZ;xSFrjAV}`*r)z5_p7|3ut7Ru`{#QYA5J2QjWtq zh~zaf0w)a|k5(c!*_FYu%x2Aun@Pb0PHVPfYZZevKk5q$2FiN4blbRhcI+u*+Qo3%9~|W zH{zuCObyW-akohn1*Q{8G>x)L87Z$aGIZe--wfn4Qk!HPg9pHtg=`WD)_s&_DX%o* zS*NaxrKjd}Axmi}O}_zDrC)bpd>rZu4C!Uf@%U2|p#v~MUpeYEfQ+P0#FlIu=yvE^ zlk9X&#`pnvj4|C)IU6cmid5|h@vP^pXApXXyBfWH?#O_<(dI6gycywm&3Xo*zi?8U zWIej2WRg^xp`OUjGF+{Q3*U{RR)pDG|I;>J&13m`+e6C7r{=!3Du$t#_2v{ytQ5w| zxRWu1DjScet^=IC3bwTAIukhK^89+GZxE{pFGJr%XIEn!6ACf5P{LCz*jhpAWqP)Q zW{P@2>*+Ko>`~0Aggemu-Q(AJji3exb{T=)&mGBxH1y^8$(yn?MzEqS+tM%@OF$#l z;sTpK!tC?tC+-FnX*#1MjTJ7fNBZhXJ>1BJAn6vjS&3#g0tq5}hfF!^Gf|9_cMi_B f9ssyn5zFxllWaaUH-Ibl00000NkvXXu0mjfghoH2 diff --git a/tests_zemu/snapshots/s-sign-init_validator/00012.png b/tests_zemu/snapshots/s-sign-init_validator/00012.png deleted file mode 100644 index 2bfccdb06a166f809f082a1c83cb8f0ef11c2bb0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 332 zcmV-S0ki&zP)NK1#6#x@(Dwx!~m(V*_xwg^nZlOKq3kz$> zbg9$w0GN_X177m$xF{8@@cj5SXf*|&T5A%o^8}c0(Xj^NEHn~HHDTsyJ`qzZ;D@?+ zBUV39X8Z4!Ew4}Oar0|2j~^GzmU^KZ6_ zf7=2H=EW!brZ%@F-voLx`6hSN=@)PZPh5cLW-u$Hpg+R`Kq2z)BRLLF?~s2000000 e00000V4M%b+Q{+opT8;q0000H?S<%6@1c=8} z!BS}O?isU|1}URgX{e~S(`WBoobxKeag;8fw*7Pq^c>hlzVqWhCOrqrv<}l_=Qulj6%gbM%ws!?v> zT-Se&;grph@2z z&Q`1d0?>DY&sHt~0#F0_F0&t_15jJ*t|fBuPXgCSOfYLK|xyF5TnC?%I#N=7@r!Y)=<%T%HAP;gyJWrH_S_L27 zQC;>mVB}Ig|HiUXE{u*x*TtSzu>y>0bqz%}uaQWc6C1%%FYS|>t|F?Uo0bdb%AIZ+ zwiZ-92O>$wc)-yfynDd-Isc+?ecupX!ulL;EJscjc8vbM(uI;V7B5ksI5JF;OHpUV zg66xuA}ko3(!+&;GD#h@Yz)7$324b!Hu)5KBl;*0HiYLv3+jyL7F0Z$xc$qk0iGv- zq;nfm52N0P^A?nE58ieN&nqC*JO4QHhVvCb?oUvL-U4ihZQZg7J6sb00000000000 d004j{`~g|m-v;jYwBP^$002ovPDHLkV1mMWqHzEK diff --git a/tests_zemu/snapshots/s-sign-init_validator/00016.png b/tests_zemu/snapshots/s-sign-init_validator/00016.png deleted file mode 100644 index 006c26abaac6c76b2e871b194165596c0b416694..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 249 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!2~2j9iA5fsRN!ajv*Cu-d?-N*JQxc`taO| z-}VOL1%{U&gdOO)vH0QtN3CIpH=On}yd9NxI9#@L#=GYozkR+NZ@s(h_s<*5szDx| zmTO$v85!1fT#rxFzI@yL`PcK^*L-*W3fIF8>~K zzhRaAS`H?-=QM1i=Tu6{1-oD!M<5AJP1 diff --git a/tests_zemu/snapshots/s-sign-init_validator/00017.png b/tests_zemu/snapshots/s-sign-init_validator/00017.png deleted file mode 100644 index 8bc7c88de43d9be7a5f68f241256c0d7b79eaeb5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 430 zcmV;f0a5;mP)ajNW##& z96Ez2R5Tqxa6v`%m*CGJvRbX1@QFPcQ_apDsb_BT0IIBOOKf;dM5PDtCMBn*3{760 zf{}Qpi(J8`XVizFWX0L3eST%-WfhI^nY=Yk6KrbVHRga*)Xn7__DBCWYU%cZayfvy z_S}{w=4{a91BN!^~1vH$=807*qoM6N<$f=P_TegFUf diff --git a/tests_zemu/snapshots/s-sign-init_validator/00018.png b/tests_zemu/snapshots/s-sign-init_validator/00018.png deleted file mode 100644 index 2bfccdb06a166f809f082a1c83cb8f0ef11c2bb0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 332 zcmV-S0ki&zP)NK1#6#x@(Dwx!~m(V*_xwg^nZlOKq3kz$> zbg9$w0GN_X177m$xF{8@@cj5SXf*|&T5A%o^8}c0(Xj^NEHn~HHDTsyJ`qzZ;D@?+ zBUV39X8Z4!Ew4}Oar0|2j~^GzmU^KZ6_ zf7=2H=EW!brZ%@F-voLx`6hSN=@)PZPh5cLW-u$Hpg+R`Kq2z)BRLLF?~s2000000 e00000V4M%b+Q{+opT8;q0000H?S<%6@1c=8} z!BS}O?isU|1}URgX{e~S(`WBoobxKeag;8fw*7Pq^c>hlzVqWhCOrqrv<}l_=Qulj6%gbM%ws!?v> zT-Se&|xyF5TnC?%I#N=7@r!Y)=<%T%HAP;gyJWrH_S_L27 zQC;>mVB}Ig|HiUXE{u*x*TtSzu>y>0bqz%}uaQWc6C1%%FYS|>t|F?Uo0bdb%AIZ+ zwiZ-92O>$wc)-yfynDd-Isc+?ecupX!ulL;EJscjc8vbM(uI;V7B5ksI5JF;OHpUV zg66xuA}ko3(!+&;GD#h@Yz)7$324b!Hu)5KBl;*0HiYLv3+jyL7F0Z$xc$qk0iGv- zq;nfm52N0P^A?nE58ieN&nqC*JO4QHhVvCb?oUvL-U4ihZQZg7J6sb00000000000 d004j{`~g|m-v;jYwBP^$002ovPDHLkV1mMWqHzEK diff --git a/tests_zemu/snapshots/s-sign-init_validator/00021.png b/tests_zemu/snapshots/s-sign-init_validator/00021.png deleted file mode 100644 index 006c26abaac6c76b2e871b194165596c0b416694..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 249 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!2~2j9iA5fsRN!ajv*Cu-d?-N*JQxc`taO| z-}VOL1%{U&gdOO)vH0QtN3CIpH=On}yd9NxI9#@L#=GYozkR+NZ@s(h_s<*5szDx| zmTO$v85!1fT#rxFzI@yL`PcK^*L-*W3fIF8>~K zzhRaAS`H?-=QM1i=Tu6{1-oD!M<5AJP1 diff --git a/tests_zemu/snapshots/s-sign-init_validator/00022.png b/tests_zemu/snapshots/s-sign-init_validator/00022.png deleted file mode 100644 index 9eeb1e0e9eeb9429fa790d271f00d2b2688bb579..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 411 zcmV;M0c8G(P)#$ z8v((Wi6TzurS9n$h0DS-KA`y-jY1gXaLMMts1|vCu6GFc_8=BvZtW2i&7ODBj9=)r!KRp*-1jd zW@KpB0jM={QNw9=#sh3>AEdjXS)T<)VEu2_8eLU5%L}B?s5)u2rZoTn002ovPDHLk FV1mg0xCHIF8>~K zzhRaAS`H?-=QM1i=Tu6{1-oD!M<5AJP1 diff --git a/tests_zemu/snapshots/s-sign-init_validator/00024.png b/tests_zemu/snapshots/s-sign-init_validator/00024.png deleted file mode 100644 index 9eeb1e0e9eeb9429fa790d271f00d2b2688bb579..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 411 zcmV;M0c8G(P)#$ z8v((Wi6TzurS9n$h0DS-KA`y-jY1gXaLMMts1|vCu6GFc_8=BvZtW2i&7ODBj9=)r!KRp*-1jd zW@KpB0jM={QNw9=#sh3>AEdjXS)T<)VEu2_8eLU5%L}B?s5)u2rZoTn002ovPDHLk FV1mg0xCH&Pe%d{d!3%ZeZIo%)~EbT1T-z&IcK@h zSK0|kB74mR;RMvsx3VKw{VU-Fd?UU$4C)OZtJ^?_TZF$U)S`&EHty$+ai=L=%Lzn-5L-s0dI?gy}>TgU4eO+?Y z%06wbVlZFg^TOuBcGtEpKG((O_gAwQICCX&Wl!um+!A5^q});@lPzY-@mslfLN~D7 zXfl5D|6YQfQV?g*wtr8yylD|IVhp{yG~%C*)Rn#*2j}*R`H})58(6-qwr4mn{olVO z#aH99O0Rv(YTqHfiFWI(h0?AD5+D2k#eisCM8+qP}n*;)LO zm<;j5J@=OFKicgUz9U&4+y|?Bowv1E?Dcx>|Mu7TE{%V)SpxdlJTqc>|7=}NNR@U= z|8M(Sb1?zpnRwuFhjjrJj59q0v|+N>=MA=SKVqQ1lKb`U&5~Fjx{u3SpIEdg7-Q9X zJWEhx`SFlGOB~V!>DvS86+DeBIG3R7?7$e(H2qQ*C&ks=4Coi-elg`kz-NiTS2+#$ zuoZ6!*21#{^$R62_9ru7;dzU_D8?PGDq3`-bKq07kb`N<9#~HU^hbQdaCmTT!jB|n z5I!tqn-6qC%yKfIP$DA#zwjTyhRF8TmCIs@k=9BQV;dYsM+JnvpC)jx=}z zgy{PKi-d6Bqqjp|o+bJuY}6Nh^7*GjD z_MpA`%hRwM+i=AO&2*hHK0GEKldAjSfc*UK|G3Mvy)|TV{C2=ITK_Jqzq~+QXOVe4 zYExGq9KfKFs}GiPX7hqWi&4Nx%mknJh6?B{hbcbDgTrNRZE?ioTNY_S{Gp6*-){^5 zMkpvc^61$4Fjf2wD0$%G1$afoN|6dCJSSRI#uNpVT=2qLl-b0F#k3`8sCpX95Hi1x z)>4@*3C4a3I5+-v>7qbyJRJZgY>!3D)n3|c?9=G1KEQ8Lz%7oRup~U_04_)w{RVOL zftc#`@y~!Z^G?q0Di@HdDEf-M2r9xiUdvy8z@BqK)}@!|xxNiOnYks%c({Hr7oYS+ zQ4~{r*^2^s$G#cFHKHJzTmvlJ!^xXp?6$c>@}_{4T>F-9jAF{0KEvr}r78mfgieli^o zq&d{)CDvCq>3zd&J|c4+FbvH1RLTBp64OxgIZEVT)8AaoPDLww+=}a)!sxM{7L;lU>VxZS?*1=+`+rX*dNX z6NO@;43wOw=6^D4_1rY)S1yu*{?8NGr{W@0SyNBVDRCIM17uQ``@*h&tmF)v|C|}E*5WReQ7^T|m+*f4rvl_0 z)GXx5XTYd^4eWm-oJ<{f2HZ?9z;y#HK1i+Nb9MAur&{gbld1F~Fg+BF@GgBXuc8`c zqJNu0sEPi~Sc4~#g`U(1GHY-t!V3TZ00000000000000009@t=%0eVCS8rr`00000 LNkvXXu0mjfp z_CNgMzIV)7Q@3r(`O4^ptUfZ`k2O|C%e;NHQ%ce<%c97%de8keoz~AYZUywIwOuU# z?q@bF@xo5+PkP!3E4<(K{y4Y&%2v~z3OCkrznHWCWv+R*oL2eGCN;H_^S;kt{{7td z)fL<#8%(PML)mXn|2%2iOFvUfIR=J=1%E@mwn*(|nzT0VfYkq%|Awq8!45{ODzCXC z{`&0Rss7Q+{y^%9OZ>(iQNIqBOgO1G<)q~t&pkk2L%|2r`WlIOliu(CD+ChpboFyt I=akR{00$0=a{vGU diff --git a/tests_zemu/snapshots/sp-sign-init_validator/00005.png b/tests_zemu/snapshots/sp-sign-init_validator/00005.png deleted file mode 100644 index 457857ea3679691a18c7192068778b334e09cd02..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1023 zcmVSqZ88&_-N26DF5uBz0XDhSRKdlH^Yey zGAmbCk1Pz@_O@A#w5AA~u*^h#id})iiD`;f03e|bvKpSQ9=fEcdBhd~R8!|KB|w?r zy(P{^(vwU&##Vszf;YHB%v?YP*e0vV@eUH0V>pz4hF3rwaw_$5H?LT>bJe63C9pQV zjgIcv07$NwJ?-VucINk=QH z_ufL?wr8b?;211NaPd7~1K?Yb%qlFOOf)GuLUN2*`T?(;0PUA}9|=ka+2^ou@t{(}7hU~A=j0IK(|guY)rXP^1;FuS_O-~u?ETw|~mvU{Cx zL+8B9uSHfR7+2?UU-W}hHS++ZEx_Rssq}h%(GBF5M>y|Lh#f76DxGrf%-zmZ50*oD z+fvogNR;GSluiJRlnyGRsy`$HwY;?!ku%*`*xa?9quP;)j+cd_1>rA~RPRm5<(u>( zcf*bB7=Y^QjU{X?q~vJ)g5q9CZVXGP=8qW83W!W$y2)PF`@vX1BU|;wRnkxPg-qw6 zmSBA`_-UrBO!MLK?gi@*8GJoC;Q`l~JE1%s&$%b!Bp>Hl--h0d)E0Clo-_AP$V<$P zWD12sVGgDmiZ?iRj&?Od%TK1hdX|qL@E0Bvt)Oc{sA2=waIkqMwEHv|Zf#1>sHDTE zAXSgF;zi~~6M`%DdBpBYs@u4zHKf#99;~)dMCEApPXJY$rT5{86E&_i5~DmVR@7Gd zr_0@XOEaW%TyYVTf{C15lJvA(6PJm09NtG8;{3N1Re@nr%qSuPbw(_kR==_EJ_py~ zKn|GOi-5PDPKJ`fkn>TiOweO$CtM&!NF5PBolqI4CpGhiIS-v0B_*lRj{5uz>=1>f twah$94ZRs3qlRupNt=a2p-{L1{{VMEla{j3>DB-M002ovPDHLkV1nKl?8*QD diff --git a/tests_zemu/snapshots/sp-sign-init_validator/00006.png b/tests_zemu/snapshots/sp-sign-init_validator/00006.png deleted file mode 100644 index 81dec174eb6bd35d9f3609fab5f33a6fe72a88b0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 561 zcmV-10?z%3P)<$1|E$}LD$O_Id13J`IVo;HmL}!akqNx zU{bbjthK{dil|ahBJR`HQn8A7PC&B)0%dN5UEQ*JWJyW!jBG$KP34_6Kw4tGKdO(l zie{su0_+lTcPl1y13LoQlhbUxlLlnex!SuT*H-~~Y%109-E*ZSdu*DOk_L1oct%Ta zfI9+UZH=v$UhXaA^Zlp%&HZGhCT$D827@lm7PR#Zbv(+!%$8cRv3ToPQzv%*^xFjU z2Gj}Le7A{7ORVMgu>7}glKaT0Y>sh91LSL#oSE_p@9fdCA&qRnnOEppw-7Eykhl`0k+FbK*r@V`g(f z1@sCYOGEb(_=ZXSx&MTd_iOXGq4z&W+%a08gO`?MUy6_Aj4`v(Eofev^zKUa;(DE_ zrp1HqZw43E!H#?H_KFrT#MDdn+f@1>@0TYBz}NdM@0Srj?OuBi`i2-hmzQ**hqB{j zVlWll3jhEB0000000000000000000005FYTcc2(QJ{M#+00000NkvXXu0mjfe18P~ diff --git a/tests_zemu/snapshots/sp-sign-init_validator/00007.png b/tests_zemu/snapshots/sp-sign-init_validator/00007.png deleted file mode 100644 index 35c050e14189c28d4f57a5704b4bad553a9a70d7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 941 zcmV;e15*5nP)mn&E%ZW;?Bz5KxGp>C&iP=x7sjRx9eHfi$uiJrWVj6H5|yKrUUpt331Y zMnOM)keMVoW;O(Mk#4PtH@ji7FS)+YIsnI_zr`bc=^Y>yd-roKzO*u;m=Xr2RcM(t zSM}T$W8l{}3Aq0ocaUrJZ^Ibs8vUCoA3RA#p(hy(a{1s=^zgdbP%lS#{s!AAX7h@- zabQcT3q#q{=w??R%k{ndFyos!QsAi&%4LE_!wDA>!u(()V|BbeSn>fn36l<-^7939 zmSASNugLEr2Y6}4ZdQiA#_=GJ{ugBkbm-7g#f!<4_AIy$AcsC-Yp%(#L`z|}Ix zWbOmJ{ClWXqRCJQv(n~_VJyt)y5qyFd*1!WCFgX_F2bAoPYUMpOV`nIhT3x(R$T~^ zogo-qMNt$*Q540&;M>px{sKLehLkl!8%Ixg?%2%O9O|jpwIqBVu{#0cCh}1<4e1FF zZQgUK(@-nMq&44$>YPF2-pW1xAtouDJd|Ao-y_Na(axB;LsN)1ZJQs0yu@TDp*!X3 z5^x%i=Ab<7ZPg6$?tnsXF5g7wCKKwIz||?zKS;?ltO-F0x@BW|j!a9-$!AiYGd$)1 z?}q2o2y8=#8?P?*nQH)f@r~6n!k28FwJyfI_Bua4_T4Iqq9}@@DBhP}ZzGlE!ge^u P00000NkvXXu0mjf?d-(& diff --git a/tests_zemu/snapshots/sp-sign-init_validator/00008.png b/tests_zemu/snapshots/sp-sign-init_validator/00008.png deleted file mode 100644 index 215cd5412d6c11c741c65b48d4b51ed58a7492f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 560 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 DY6so0 diff --git a/tests_zemu/snapshots/sp-sign-init_validator/00012.png b/tests_zemu/snapshots/sp-sign-init_validator/00012.png deleted file mode 100644 index 2f448f6c5f25a8ea27760909de2c3754d2ec3776..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 551 zcmV+?0@(eDP)Q%3b=gvyK%+G$dU!?|mf(5e3nZ5&!@I0Kn~h`9+W8s9$r=(Z+af zXoglBm-QDtWxmF6Ql{46;d|D^g?S#w(Kzojsf|=uxlp%DnW@SCtlRq@Eaz+lMR~OY zr?J}*vyDlAgRxeqe(h=QwM!#UGQ9&NcHk5%bIwNKltx?3X-1}M)kNFLL zF}(v+)xA+=LR4iuqd0S`>eppFo93kFrXBDvXYVqNwIvaGSlD(81f-yX^o_G+t)nX7 ziN~p!l`b60OcCjT)X)B@x(f|u3^5N)cjq0fm%B=LBYD+-CU;2p3v zQDIB?ciH8a5CGsFCaR(5Y5rz=#RhqZsYOavGQ_ZYl;@nN%>iiK1=l*Bv~A&22xqII zPU@m*>Q}^u9eV;&zOKR9izvIhrnC`iY0OiD>ve4YZ#@ql{m!yrEH~|dK-9xP%E;}d z?v>uF(HP6+f5IiWj3_IT@`(0y3_)h92c{!C1GB3$bYq`iaCYCk@eZJclE{N(L z8tS>?COTN&ed{C}S>82uqd7?SGG4KEuL;y_THt(?54Pi(S!fpqi;NF0h2;eR00000 p0000000000000000002Ej9(4Z8qrAjf6D*>002ovPDHLkV1g1@`J(^; diff --git a/tests_zemu/snapshots/sp-sign-init_validator/00013.png b/tests_zemu/snapshots/sp-sign-init_validator/00013.png deleted file mode 100644 index 8b7fd56bce4827fc4ff39898405eb80f09ce06b4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 392 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|{t3ba4!+nDh2V;HG8;9*4l+ z%dAiSn|>tjo_o5CS|fv*(yi)!E0kCSR^&(nH5uG}{b91^Qd?am!Glv)ztFES`QN*A z$|uGjvJZLd*{5wyy_{6f8|CSl$9C!wmy zN-6!o%0GVm_a|IgeYZz|NZ*D-d?z=Q|t2sp)WTVU&)&mZ=&XLwktDYV=c)s}lyvkMv+jsiiR!n9 i+86f%%|-?XGXF7t)RVU?v~83DiF>;GxvXIqJR)(_zt-``Jf&T8)}8F{h*a&n9-?{baY>W?Dy4aM^A-88?%8zX zkpEfbrB=HOY>u3fc^mkwby1&|6`SnZnG62p)ae(-|NWs9qRyk<)~4!Fp7TRqU)%qu z$TrFSl^61#-;zjSpV964L+(?$)65rVe!QrtDGqog@kVt;X^hXy877}g6rVr;yDxIK ze#W`jtow|bN0WXEPyhPW@wn4_;fv4g=bA66yq2?}En~woy&Vm5i|cktmpSe@yu5}} zYUX@FhK9OxWlr;xR+k$-500DfC7-%@k@eHo+ZWQ`TE*R9JnzKr;|4-HX*bU{e|BH9 z^JUCuN3OuNl3z~CsLg!CpS)z&8-6$WGe@*cgx^1$>7fq{GGtIN+x}Wdyz1Gm3B@2` MPgg&ebxsLQ09)y{jQ{`u diff --git a/tests_zemu/snapshots/sp-sign-init_validator/00015.png b/tests_zemu/snapshots/sp-sign-init_validator/00015.png deleted file mode 100644 index 9160fc9152fe033e8e272241283a0f67766e72b6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 363 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|=-zba4!+nDh2#v{17Gk3-;_ z67@Iro;SVi=NM_~%f@qlnWrD6>n!Zhs|eJ?&>y{qJwRP)rEIdz<&(dP@0LBywQZO; z`D2m9yGgHEGL(dpeS|G_1#J(0H9z=q&Gooz%r685WpA3Y@0xgI{fF5+|6|rS{GD9B zWtFG&Gpr~ z8moiTLVaqT!ZNha+gyk)RayJb+*&>;?A)E3FY52yk1my%{rAi6UDIk!zuc;~xRaJT zzad-vN5SpZTBazu+blUxIW^+V?yf3bYi-u{YW1nD6JkT0U=bZOm{O-82 ze)}h~O}~FcGurL&v!)sEeaC=92qJ1jda|r7i{Bx&q+QRBP$at^s;(iH=yVoU#q91* zYSET%!d2JM3q`($@-K?}ZAXS;X>#C&f(_BqPkE5Nm% z8=pr0DW4|PIV%4YR!R;W%R`s0PNiEEgG}_7$%LBdFUB0~#4fbcLy(z+sR%Cs00000 k0000000000001z}AGHWBtS)f~761SM07*qoM6N<$f;j-g?f?J) diff --git a/tests_zemu/snapshots/sp-sign-init_validator/00017.png b/tests_zemu/snapshots/sp-sign-init_validator/00017.png deleted file mode 100644 index 1e4be69934787c368c2b5ed677cc7f5a2470be3b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 355 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|`hpba4!+nDh2#G+&c}K^PbX0`eJS}y70`%8T>n^%dV>bk>TM}C(cF@9*Jbj^5WTF;gKGIO)y zjlJ*9*PE9W@jdm~5r5wEu#TD8y6+Pnh8_O<-8#^Bx$bnOy3REWn^jXeAFev)TXe-F zTky7j?62N_lL@yzwx7O!=&4O1W7^|)7fcr%%i5*3D%0_G;tl)cpW3Io3*7!cdXW1o sV&B=e%knGs=l(tai5cc!1_ryAe9w9}zGZ%X&;TUp>FVdQ&MBb@086r+N&o-= diff --git a/tests_zemu/snapshots/sp-sign-init_validator/00018.png b/tests_zemu/snapshots/sp-sign-init_validator/00018.png deleted file mode 100644 index 7e7f71bdbe72311b031c33e796fbcf9d90b304c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 493 zcmVa%jAO1NW; z?n0mWPC#(7*4*GY0Xg(#+Hp7gXO0u_8N9B7f*JBo$A0Fr0!FJHkIPW670}IryXXhM z2?##J-EuhveG(D?08b&ea7Zuq@YL@*>E=t_u!lT^uU5S+s=NoZFIKjf<)hpze`J4> zc0bPEtsVHIme_nNbxkT0U=bZOm{O-82 ze)}h~O}~FcGurL&v!)sEeaC=92qJ1jda|r7i{Bx&q+QRBP$at^s;(iH=yVoU#q91* zYSET%!d2JM3q`($@-K?}ZAXS;X>#C&f(_BqPkE5Nm% z8=pr0DW4|PIV%4YR!R;W%R`s0PNiEEgG}_7$%LBdFUB0~#4fbcLy(z+sR%Cs00000 k0000000000001z}AGHWBtS)f~761SM07*qoM6N<$f;j-g?f?J) diff --git a/tests_zemu/snapshots/sp-sign-init_validator/00020.png b/tests_zemu/snapshots/sp-sign-init_validator/00020.png deleted file mode 100644 index 1e4be69934787c368c2b5ed677cc7f5a2470be3b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 355 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|`hpba4!+nDh2#G+&c}K^PbX0`eJS}y70`%8T>n^%dV>bk>TM}C(cF@9*Jbj^5WTF;gKGIO)y zjlJ*9*PE9W@jdm~5r5wEu#TD8y6+Pnh8_O<-8#^Bx$bnOy3REWn^jXeAFev)TXe-F zTky7j?62N_lL@yzwx7O!=&4O1W7^|)7fcr%%i5*3D%0_G;tl)cpW3Io3*7!cdXW1o sV&B=e%knGs=l(tai5cc!1_ryAe9w9}zGZ%X&;TUp>FVdQ&MBb@086r+N&o-= diff --git a/tests_zemu/snapshots/sp-sign-init_validator/00021.png b/tests_zemu/snapshots/sp-sign-init_validator/00021.png deleted file mode 100644 index 8d9abd01a3a0f19a579d29d83b9cc302bd6aa6dd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 463 zcmV;=0WkiFP)1(b=Wx$c$rz$q76wg1000000N_c!yaU)F#<**| znOzjgiN3u9csdf`j089%0nQdqfSFa>>=L_fW#I%QdD7D#%jIDC1Z3$Ub?>99yC3fW z4l=Vm*Ll@1H~V4H3Rv`R)3sy*J_)S|XHhYyKy!5*+y7;az z%0o8cyOmw6pwo3el6z+S@N`O2ZUIqRO1 zvo&+^dz6t&R6tr0)kGYam+h7Q&x@a>S~sEmE|E`I<30000U=NIU8_}>g$nz{f0002ovPDHLk FV1oRy(MbRR diff --git a/tests_zemu/snapshots/sp-sign-init_validator/00022.png b/tests_zemu/snapshots/sp-sign-init_validator/00022.png deleted file mode 100644 index 1e4be69934787c368c2b5ed677cc7f5a2470be3b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 355 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|`hpba4!+nDh2#G+&c}K^PbX0`eJS}y70`%8T>n^%dV>bk>TM}C(cF@9*Jbj^5WTF;gKGIO)y zjlJ*9*PE9W@jdm~5r5wEu#TD8y6+Pnh8_O<-8#^Bx$bnOy3REWn^jXeAFev)TXe-F zTky7j?62N_lL@yzwx7O!=&4O1W7^|)7fcr%%i5*3D%0_G;tl)cpW3Io3*7!cdXW1o sV&B=e%knGs=l(tai5cc!1_ryAe9w9}zGZ%X&;TUp>FVdQ&MBb@086r+N&o-= diff --git a/tests_zemu/snapshots/sp-sign-init_validator/00023.png b/tests_zemu/snapshots/sp-sign-init_validator/00023.png deleted file mode 100644 index 8d9abd01a3a0f19a579d29d83b9cc302bd6aa6dd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 463 zcmV;=0WkiFP)1(b=Wx$c$rz$q76wg1000000N_c!yaU)F#<**| znOzjgiN3u9csdf`j089%0nQdqfSFa>>=L_fW#I%QdD7D#%jIDC1Z3$Ub?>99yC3fW z4l=Vm*Ll@1H~V4H3Rv`R)3sy*J_)S|XHhYyKy!5*+y7;az z%0o8cyOmw6pwo3el6z+S@N`O2ZUIqRO1 zvo&+^dz6t&R6tr0)kGYam+h7Q&x@a>S~sEmE|E`I<30000U=NIU8_}>g$nz{f0002ovPDHLk FV1oRy(MbRR diff --git a/tests_zemu/snapshots/st-sign-init_validator/00000.png b/tests_zemu/snapshots/st-sign-init_validator/00000.png deleted file mode 100644 index f6907fb5a8abf62b3006fe71979dbc8cd63eacab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8218 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 diff --git a/tests_zemu/snapshots/st-sign-init_validator/00001.png b/tests_zemu/snapshots/st-sign-init_validator/00001.png deleted file mode 100644 index f89c155fff201628088475b7ca04264079025701..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19225 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 z 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 diff --git a/tests_zemu/snapshots/st-sign-init_validator/00002.png b/tests_zemu/snapshots/st-sign-init_validator/00002.png deleted file mode 100644 index 61f4063946d2084d352d84247ea22139e04a6106..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16690 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 diff --git a/tests_zemu/snapshots/st-sign-init_validator/00003.png b/tests_zemu/snapshots/st-sign-init_validator/00003.png deleted file mode 100644 index bbe4838445f75703bd813af9baba942fb559e9f8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16244 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 S3s6l@_E=r-QIV>3=>Gx*584|5 diff --git a/tests_zemu/snapshots/st-sign-init_validator/00004.png b/tests_zemu/snapshots/st-sign-init_validator/00004.png deleted file mode 100644 index 216be0a272be779c6d61c1db4e7d34237628e698..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16041 zcmeHuXH-+)w=GhXt|CYgP^3sN(xfZWtB8~Y0tiw=?*st_1VM^|geD+eNVKMOo2J8*1OuYM##mhq~aiVj8oqS?~?pRezz{`ndL();IY zjwa>bU-=Ja*LcqCQCaqSixRZz_zy!%BRs5{+gSCB1O2>}ww2~&TY-z5PeD~vA%>Ih z)W|YCqPx@O$*N^;mX5h1h4u=vx~b{N7C$hl<{9Iw$?O!IZ2SqgyZNq?EjorPiOSHC zUAMp5X##x0?aGY(hDFITa;Vh8wd%<1Y~U(37YE2+u!By>)PO%&{KcZpR|q1Lq?15L zlLJ4jv~FZc(9d45yDfpyF_WQNAb;W0dQ=YkPD`e>>()+A#>Vj9J`VrABY&PP-!#9y z9FpZY?uMeJFA~L$r|gRy&~*DMbC1c0#s5llebJVgNkt57ku@CK|ISo7xehOJg*#3d zLI`GN#jc889rn)6_O1x32#zbF!K~7B@VAa2=%rz`8PCSk@I1$H&qk};3|GieWIi>o z?SP5DbjZX*@nyFEb|i~Bgb-!@XAtDsn0=3!BaaJ!5CU?Skopm~?oI~WY;Kb`bU2e$ z2)NV6bGY;Sc2_8bU^wQ#AlQ0cYhGv+xg%o?VkdhePYpMC_$j z-Z+WaFhO``l_+p0kBUT#V!zdXS7}BP*8{UlR-Ed_H%X($-)d#(+@i=8I2k<^vrB-F z(e?!FwC9~A zEyR7aYgU1vr3A&mjed?%nStG@`Vr-!{kDrM7mvy|9Ms2TCfCj3iHZ6nbkk<^1?G6B z$>IAQKwJc(`fl=ELw&35r{69w-`PZhpI*GK44E`54lxJTn5tb^l#bMX#75j#kuiMMq*II`W0aQc1<)G0SthW7@}M_QxX(o z+kcz4a`&*+!{N~_yl9!IzVuv*Z4sg+$8eF$a7?F#&=mTVmz+jB)-@&oe_yM1rG~18 zTJ(D6Teoy4RW{YE-LYcxIZa`Q{t{Qw_Ou9go0r(zk!C?xX2en(SS$Ao#+p<%pGsTQ zwzj-!dPqUjlW267)AUxk*iwVs3FNZ*SR{gc>NX1l&WlQFflh`Ysx48oB)S4uj;rKp zt%_-4K1?mn#B1{$-P6A%!P{!743kpPc2a1=!Jv=cAc49f+`e)4W`!fSm)SkO`$ca1I_VhMUG?R5TBa|A&^S5ZZphbvDL<-l{OLfq8!Bt2 z$(iQ2Hjh%=#%B0f>HQsLiFoyflfflF=*TNp*W9I@5#!vYyEo~jN}}3QUsGZ0SA-Hn z;rGLT*4G5Q;8ipFPA=uFpHd`9J04iya5d(7Su}5<++x(vJHO@~yVmMZ&gNz;O)ae4 zuR&zBzg@q{{bCCC<-2a|C+3vxp$$d2X<&3x2A8CFA8hT)weQeVl8^j(dqhGbhnDIr zPy27YE&|=CvM^hiQ2ET-_b$V8b#_2d>xPy=<*Naw`LD7CHX8ZmI(VV1lEbqzqcQ&};Zdi$cWLkUVIErdM^AT@FDryXAKlV4;Y{u+am5o+{`)1a zT}Rv61GN0w0gx62;du3-?%ox8xLuxr5kJ>PRK5@tVR{|SA|+4rO8w~nX+L?z3H?lCzKbov~v?{DZU zy9Qp%e6j85S@DM*r@ZtpU3qCBe~+GCV^5wIt99@#XoiKR2UgMaf=Yq@*J&xX@1i!sUK7*)1TG{ija7 zoOirM?I-5QaX64cmWMsJMNav!wK%tZhoRuqitE3C->~b5E0GR;)wkpGKtOfIE|}F&$GMMgWG!( zA$0R@(lDdaF+X;+_&iPAh_$T?kWf#L{B#3zW z_?U7MaesC3dw^Vx{?ukr#7k;OBreqa$g`0yuJI)5P7vaE$XT#5+LzTb2CI;yUkzMn z6S&YQLSti4ImZakkd-}9f~yLIFCBU|D&-i(cD6s3GQJed4(Ys4Sm+Y>X|_%vnaLv@ z*ek-)9YYjzj7n4YL!r{ceH$DSVms%2n>iUTRj}8?E=zPSaBA~en!4=@ zGvg?*bEMtYn+6A)~eEtUUN0?%LU@pat}lCp^yn_wW%TyaqqJeB%&W2*P+Qmxy~uuIlxMVH@Nk-gD27Z0^zt`v+q?MCQCPV)1HNMB$up>Z ze@l1X_bu@`fiK^(COHG@bQE30yd&_GnBb?HT($Zxz)I*UX$Rk@38DDct>!tB;R=oD zeNza+)XmR-lP&%GLWXqKTNU1?(RM2}Fya;his<^-Lx(TynFnS&xQDT%=4h5@4pIPp z z21YOr){oP98QVv_Uf4k6kQ@1_tW0HBTy&&d(u!m$5xuaJgJ9(Z<>rAWu~WijM`>2@ zV)m7K@Jk6E%aB|W(xy2iqwe`UE^e=(w%k#_0$c=BX&f4mfV(X=os#lj4C_*^cpO(MF~ zZNKn=t0305ZT3z2?x8ykyfQr^EDVM3UGW!=?|8rE-#+RP-#J%3?MXTg+tF@-wJAQA zD1@(Gknc!L^Y=$DKN;`gTw7Bj^%H zM^DQ*V7BAq1Un(PlANZBIPy0X2}Y~F{m)BU#7o2nMnzshE?I!xa8}>IgX)Y+GRp)9 zXjFDs@RXUT;<%y`asLP?K7oTstPn9UEiz9%0*Y=2Uw8-g%7cmCi6FlVQcKie{KcAGoqN4V5JgCFK!boM% zDM%R|s3p(MO9_IbCfM1MA%T_;p?*Nt$pIFmZMFY-&1a+9#UaEY!HvbGjdvO1M>we> z7KsftS{U~*4P86FW#uLkg4ee3tddLqJ%9PM_eiE|=M#fBupbSy^pD}4B$tEP8$VYH z3WO&&f0!RZNu#$d@7x7*SYFDja66!apD#&VH;1dV-o~0(x}LL^sgz4a~emoJHPc2jA(e zvMZe?LBj9P+mA4W>aF!i*@D1IdwMTrPpj$mKzy^5C&r*`zz5^t|CrUjOyb1}^fymx zyA7CP1)>l*OOYFvDvCW>ddSw%(lx)m#aYe56b@BX*=$61Mp7A@($)KKLfi*Ck&K5l zk+SuHB{JL*R_jO1PW~Q$zGnC*r+noPpt*kX%)~&mvNf&@mY%*6xql*k!wZ2$ZZd&A z1d2ACSu2-zg#@G(kurv%L+D!7O4eufxZ|2!RoDZ zkvSR+mVd9YqCC!SkuC5wALF3+*m>z;rNcCRzb1s>EAoNf*49ZvBu_iTi&;JJS$2t3 zk7Ux1yEopck2|HL(2xW*vnZGJ3*{T&pXhQLSR?ACBpyPY_2x&yFX2{}Cpbrx1Ox)a zud|Ahy=cxDXQTrdi2o!y{0~?ON9*hpcw^o9ba%c<``HD4>S@X_t^WNs$D6d6kw3x> z=@(MtcIIJ?4IVu5k;twal*?xO%-BPj<_I!jeyOq=*pg}Wy4&HPS<^QlO+lzn<#kAY z@TEf>gVUa4F=qcqw%uW8#C5YVnWbIOEGMT;GSi#4C(W4wd%7M+CAA~38umimPWyxH zetvwjzL!W-r~-rO_8Kn@xo#*X?1i@lt*H0XET?0OQ4G&Oa?8Hg+rN2jUPVFn7GbX8 zads$f)5$CyVnMn%n5uin>g*|Ui|RZi9t3}7{RtOe`fi{5*RsM7m|pAri4k+(vrWzM#J{tT9I$za-KZZoAW>xr8q_BnyzA-T>VbHY9V$w0XEz~iH%(MB)!q@Kdh z>=vzWfMQ#4;C{h!nkG+ckj590p|=Fq3I+~5OnLQX+7zYhnFqtSRu5%Uthlw)3z+(_dVxLBFU)PJ9_I=hnn{rk+{V zfqM{I_pLU?abE3jUp^+r-LhPY(}HEttr|gxY6H+|AvzrVN=!hfAZYyvFyH zs(lHe6m?dQJR?K(`vWBTXN1BdYVB5@1q~D?Qjiw!oQ}GMm5~&eeJhDlHtnz+(8Dnq zr;n4NsnfTTecMfbezDmkMBlmZq~#>c6XkcUCA=_+dbZ2HBZ!qNdfL-DhUDuPcj6)7 ziQk7`%mnFV0oACuR^8^9?E0v18E+075JK@$9X^T2yc^G-KT_d%R%Kpp7PECWU4up% z-h)8NLvr;W4HKyNAKbmFWhX zErj~~Eej2zdQ>~OlI!Z{w4JMdeQzhe-~MD4hPQ+b#~vsp=uT4W zAV+V&6n?JFWfMN{+pu8oCXc@fABeduZDj&TF&ZFou4TsyjpDOo24@ChJ){c)13s!Ms51=3z$0o`8H*OA~WObe^a|^hg-!5}i{tD`) zhBjLdb&F6!;|AKrJE*X`_M5_~Z@VW(=Cc0+-a5$ign{ABEk1+GNgY<%rMm_RLGiW~ z&!-ylQ`emu8oBo^XZDdnMh|IseVcW1z^0VR3dnE^pcJ{s$ru~O?Sb;V#Q`oI#YD<_ zAz6R1MDEwl;p&X5t#^w7YH3jo{<&U!c~5RnXf9hDJzZ&DQ6N~E53c~7ogMoBX`rym z_AJ~8$9Dyn9^g=GNyn7DuaRaNUMd{Z`CwjU-h1yj-eOGHM?Hi)Vx%~dCmgHn z2C|8-EUl|;6k1__Xz=sfk~?$orazOy?=TEu{s)S6h|{g@V3%>250BX-`6R-K< zExyDeg5uJHhx1(P7U|CjHZRSspzh06+Bw_EFJgW#ksVi=VwHzZ4JRO1h7Z~XrPRGJ zKTaZLLy@fZKJBY0u`I&81|8S>w8yov^&oUdBV`5j`$t1sg!Y+OHJ|R@ols1gCn(@Z zK257fX~IiKjCdOb``E^f8V$MYIkgu!J#e#9%E3aUR-n}pv=OM3$+RkEL2T4O>xgCk zp~J5=+q`xJO3#sxb2yjeF|{}QqHcrs-alAAdlo{(zDm0R^(29ag5EK48=tq>4OTvB zn2`ReG+0&U7=$jB3P%Y1uIjPT2S44r*p|C>D6LnS%cAJz%VfK{aW+I*xn5g}A(qryDxaNruY!0K*up+0ciLB9?ARAU zXR0ccZdus@5+~GEf3)kq*9zke$-NZr#k0)FIVx=k-4K4Pj}TASuL2v!1;J(R3=-5Y zs*rQ-F^x9M`To>WEGDi}Lb+%-O&YQ`SH1T}k`Wn^5QKS3JL_-Qb$AxjS^pdkhB-U< z=QuiA^)0kDt)ibz*sUmEb-R8fd42tqNF@FXokpmtsadJ461<3iQY*}P?pPVc1;MhY z!Z?z(NIxD3Ou!K#6*nMPujl3Ejb23Wq(x&=l|A8)662b~x#+~uZNYxSKW+U9##XGk zsO}uAyO=i{*E;2sV>XzM29)yLiW{J5;6}ohfYjfNE~Zby*N0Tb!-yu6-YCx(!S0_! zjq`(H#u?l0lsCY}89;@sB%%0tw{UR!y>(lHCM9&3hOI7GhQ8LnaU$M4)hE!>?^WKt zEXN#aXO^Uy4&$*WqzEYnX=AGjs|uWpRdfEf(KZwz*dhm2)JB?_c&V&TTN27U!JfOE z5@TRfMW`oveG+MdiBYlR6RB=hs5zYd4K=YUp7 z@s5F_=(JUjt$Azhw3Fd0uvpMVuEiCO%A_P9<#^z4t)!~~Gx zaL}`0)l;e85!K;dT#?Nl_l>**+r+s1E6sWpu9*6saxAh|$}?8wJ`J=y6zhvBb86zhtIPS;3ce6xB`heDfY}Wp^#BvqJ}bNA-IYbf34=TC-yAE@ z46l9GntnJBS=hDC`(my{v;Y#JhUl>?BiWaP|C&85UW&epdF(rC;gF4^GS$d_SSp64Qy5Tv4QDndgzSYc6HP6rm1kdF4*OsjBI(fPL zElUc^W035rfkGR&9%6CbANqrTEq_#^ROyKi%o$?IctZR>?GwW8!{3;8I+LoY?JQjs zj3ClDm1P~D&ft|~)pwy?5S7i~`KH!{*Wz7;=lD1wv4|0L#=AUOe)p`!-Q7AO zxPJ5R;gw99T>o=;=qi33&cC#)aDs0T8t2^O$a^=xeX!YfzM5XWzqh;VHyjocrME_q zt^wa^IC;HlKPdDxcL^iSao%JxyC9Um5E9-p-H(}E+6`%$ZkVyIp52_iZPxMeQ|U9) zMt5UZt81}wWtB}Mj zwAIYhJLSK5Vl`qh(tK%!_(rP|%UGGcI7QUj8w13kgFx%YmlEBrN+}>wt3u$G9E3xNH05W( zgk_zQy&F~gT(bPxk?#`NXYIy%IJ8D!jdZc_3`u=QSM}N{n9?&lxmYcEB)A9lyz_F| zn+L5r)i45`!5h+)`w4w6Y|nghAGY6m1<3h2%|ruTsXyk2d+u2c_QD(CZMNd+0GCZO z+$pNB@RBD%ux8014VRXHq$Fht?b&oF3Zk3KWv#2jbs+Q$nvuBU7^#pyA|`gRn+Unn zc)@se@Ye<3cURwruL=e2n#&LwF=nbN*=V1p)NeSqg=R8L8hfk-q}YSa#C|AKSbr?r zv5qqLq}khQG!SDG;6!n3q(d`ghM0@of4FKdSaqdxMm|C044EH?~S!g_Ve9w&X* zxS1&D;YP4ssCzaR{S#D2T{Y&@S%F>fZMFsw7m9O!^9irsnu4h#!$7S`G2Y2ZPxaYb z7RwGlGw4UV)3<20b`i=762rCH%l!R-?)80w<#oe@P2r%i>UxTZG~=NX#s@$qas&Yc zZAJcNSqV0oRz1#dwQJKB9RGUkYZ(jwA`?@eiJbyV`l}lQbLGv)th@l`QlF8mViv_D zPqL(=2t-9m#PCG44Y-;+Io7quv%??x@Mv@ySJA~Y`ry=iv zilN2>1Lh+tZs}CMCIp34>C?fvn_w5Ia(xLXdqiA}F^zLy$(zAouUPuBEOWVtYV(qo z$4cm~5({|uvM5$>V9vX`w)K(!^*J0z?ercHL{2O%T%7#;#@BmRFb0vW{pImB$xhcG zuVX5xB_`wdq2U#Z3IR$?{Rnzi?eBHWEv$J!pRL6mK}YM^P6>m?cBmLHc}ycvzpV8P zEmG8rVwI1(V1@O>UGP(_I^DJ$E5g`5Ow6^n)<8ZfUrIdPaMzp^VSK|W=nmg^diR>aEc7>qfQ4A8giz=PXxMxx_dUiBi zx^7^QJ1fw#U)EqTSlj=+!hJYy*0V81$Aj`D(mf`a{fR7(yW9;^4xl@BNj6t|zhMQ3#Rnsz+67K~{dUij)oj-;{fT&?{! z<|nUG%b*s2ztAC5J{u9e_H+Q%P$1=s7jU|!@2=;VI9QuhFZ<=~tMzgHd*0By-YqMb z0I65SCD9LOC1L$j0gv9R);bSgDB@7by&UIaBjDtRv59#8&k+_DpqW2gfMAR<9{?CR zjibZE@daRiUA0b=6~w~aajQ-8br1D};ck#DQXpsNW7CfOYr%d3Pg3}Rtgn(-S1xR7 zVEXlkYgX3lq@H=FIv?k0$bxvwVD6WN=Yoe;ZA^(#apN+HTAzCZSWWllx*^@F^=<}{ z3pak^84K02aJQ9ex=NnFon{t_X4tgfSD#1~gF_E_0;JOTOQK<0?4Q*N5MH~=gkxs- zRgbE~f{0<{!@Aor#XGE*ImTBLg7|&yCKaL2sj>9=-0iBE4<08zQ{&X#%Zn*zc34%l4(&dbOfBTjWv zJu%FhBW|=)`mgN_`%64O_vHmOL7Ape-z1T4;2v1y{_(H``$IiT=l zFwI5*FBe?&+AgD6g|l~DBC^s4)DVLZ(OAN8C&<>t~sa?&@J)TUU^37oJ~DeSpEs9;Qb8z09+XZL$XSw?i^m4d9^Z{ zEs@H08O!DC-!ffZepg#)g%`@YKPi*=S+L#qY77a^qS43XjBd=;Ur}rUG*}N4Wbu09 zg7>|8n0)L_^oB}Yrid+%<3^jubI#JSGP7Gd%9|?G&*Nu-nO%H_AmE`hX69EUcIn^& zeR_wNu%Jy3%`^C_n!hCWF6sGpTqH}11a<(c_|)quY_KBdS0f4SNAhIpZ23l8;B+RG z&%FeY+4u*;+ri&if#O%lYXy+%l(`+9Ow53a#B-eq@RHarxClr%nLj4%69^V|=^0YC zN3~u%rQJYy9bh%_sc?9=XhXO8GE;RX3*O4V1FM6TiUV$ zZs`2yD!kdI+fOsc^_A~f%>EO3TT+?lsiuj4ckaEQAp_2*uYO~#jV0$`4kNIo04V};A{z`J*|AN>DClbX+kx zA6B4&GRmCon>`vel%l=@PA};1@9-5p&)R~Zn1FS2RknGvE7eIlI)`B4^FvznibHrca5%ceSFni5{)1- zU&P$w@;%M;vGZWfBK>(C5)Hsk2$vtJyJL6%N$U7WdToH%%OH=inD2$=fn2@JZ9Ht6 z&}s1xHs)KbJ2AkRr8G%@=F{!B=Jla3>6h%`$m*jn-Zz|yN7+>to}HY0r(ug$a{EL? zmzTdK%Pu(t&glQl+C4nk-(N_QADDeP&z#yJ6iy-4?1>7^cx=8!x;tNRybrKFRZa=F z3R&7=3Pdwus79ezOJHOD055w8q{;%S`m1Jc^r3L(Qx;7?K?M9r3%(Wy%s$p_t)gi0N7mN#U_uo_zwyQ%xoP>-M;rUh__AN7CBCE zLos0mM6!{5hv}iYZXVe9X^C26XA^^#%wL3VL{F_~Cqk4GZXo3rpP|*_n zjNd)pmadU$S9volH(6Zd02`8Q2db;96%A_1F`(I}!*h6AM&e}kM$OA0?*jP^w4cU- z4|=8e2Xr;`AcA5Cyq69UmZW#*@vy){ho3J>8-k?;=FlE ztJqrkQ(}q1iDBZ&DL|@VfRwWbuK3H-c$PT7;{DTWSUso3G?!7&AbWMVi6+%6!MHT_ z!w~;sNz3%cb}+MM{&dSLx$df1fUA|kKEJ8>8uX1eoE^*klMr81yz}8&^|*UiCYxpE zKC{CGwS^zbZA_V^`XBlU(CwnwScpH@(qm>#Vmbx7Gl<_VepVcCn1#$fF~fz5MpIqi z`nluQPW#+}s6C;dyM)MF^B=)2x2TSf@YbdWuyKui?4(PT43Yi%3I5Dr`$i-q+=QvW zLutsL^xBBPJC+BqCccG<-7OlWxDM6BO=t8&V}3{#;pRUFP)|WT_wp4HS6^{^C$tWPWJ}Q*`1{Hpkos&?hP5;%#w_;o3m9S#J#=!9ZD!=M|oQJyCT`uZB)f)6-6M zkrwr1XVI#NHf&w|v_TJ=yvFs1E}w28_1iS>|3AMxDQv@Q7Xzm{isqdlD30 z6R_id3@|cSgGPTq*bE3z&x0Ym{2*}khR@%I%cEEYSxrLstInR8NuOQ zjnN4IGPBnt^X`#IV4kDRvszNPG9=ne(v-4>_r%?U4g=J<@dpDROAZ2Lu^lSC{>a+M zw$z|-{T~6_z$)VigC>=xS;Z9EI~SdnxUL=^@hRKluhI!T&GjPE*P1WDb*pT{a-;EY z-W~zFl5AZZspW&s=1WJa2p+(R+ZRDGKqsjU>U;m}1IZ^myX2~AjL*y|P!A#xZ`9-X zEd=#4>Gz?c(zT*D-1LBHI9SQ{G3n1>!!7@9Ucg&*D>`W6=>;-+@_*N2^&cYIzpcLg z&p-Z~_O}0t{eR95_&@Rb|0iB&qz%dwVZhrvCW9G_FVGp=qgpwH0yJOGyp(QA=iJst z{g)57Ed6`|VHv#<0C?X`m?dpcHU^?iBGiPI|P>I)fS}*KKYdtNS~ai|VsK%{OnOr-T|+`iueH z71N%&DeoN*OPEiKi(Jv;?lU>G88<13+QTw{+dlUY3<$R4`kZ$tVlVUfnfc&l4B?LR z=HnV4Lovq=@5VnUyJcyed5Ezam-yd$7!`1O6v0Zq%V>JPdZvFnxOLhSR;G%r9dIhV z5e6XuWrTq0@u`hs%-f}q%}45sh60}eewE-bCIg%$or_}Q3#h+q5JIy`96{ijhxYFP zKeuouF3F-IjlJSX+L2u9&Bn|2h9g<`#>o;_fTJpodK{-{>IgckMRnXHcVgIl);5dX z@dj{Z?ovo@Ntu6!IH^`pASsm(h%O|F!8L2OTNaQSP#%p|?7uQg10b8EW1C3WNLLx-z90$=`GmF|j%O5-9 zu=Vu76;t|5k(Jp21H*<%?ytpEez#<~qzW@8>OYN{b8`tycFKAs(*BV1vi*?F-Jb5bh$v7!#;m+>Sx1;O_ z)iYXVW_L?_&+X(8Cs-~0M}z?4@9$nA?@vauiX9I7007_k++{x~(hkF5B7&vveMn%_ znAs{+BfTTDilx~pwAD`NJrZjW_`373x@f#eA-?OJ(b7Lc+Ea~G`5nEe?v(0TpIIOX zsd%sBfA&^o25_JPwJJ$w_YEe?6w$_nVp>lW@1`8V2b-QYp$14 zUDyItmkSV87K1a9hu0j~v&w{+HGP!1vr9l#gs;m_QDBe~pMa?+zkqJa(xFw-!ojp; z2keG#!HYfl8uw2`7z!K$Zq8_a6W995EO%+HryIb1V`Y0fhHDCrl+PaD{_~dSbar37 z?uo~HH5GV%W>%!AsM~QRvRJF{N$!%Osl82)&sF^`fNA+L9}EyJ+2%6~_al;&HtH{m zd_l?<=6QoV?8L$Yv@%BPwyI5l=Ro{+WP)cSwecy^w`r;s^h7zS{ZU zzKQstI}~IeZp1b3sJ6FG4Y|i=b=I5;o^p4ABLPsq`&U& zp;~wUUVuu+*xb>5%-jw5yYn=H#mvmY!ov7Dg^;D(wwS8L|iGlKg8O1~he|etB8f zomhSXf?2$JdUa)>tGpAYK`=f)yv5oHRI(%l(eFs^>0}t#{GmMUE(aJ={53@=_1kuo zfocs=<1UwdeCk;|>noa3mYFX|D^JH$GxXRqH{J?io@=L_PG)(_GUtE_yLSchBKI)T zhQZZ?^fElpji$ewvMCy9G0VTi_%#%Ge<3d%xkU^m^ue(7@^CYCLKxf^inwQ74Kx#> zK2YeBSp#FB{I{9{-^etnDG&rWl+$nm*OyjxtI4pBv!$zjAUM#L05o__t|#c14FiJ; zILVb-1>>;`qx*~`rG_JK6XxuJuP&cvvH)jHa?gBt+l{NbW8b^%U-8b%P6q_IvO$wY zu|?7QKYN?#lmGPq*DC3W03k8xN_-<+MEQ}0vLaQy9c@#kWxZF3JdC8dGqfw7&U*qb zyW2)=JQ8h*hM-*^H;ua&IS^+DEc>a^j7#BdjWL@7PK}eGxG8tJl98m>VS3FW!h^K< zwb5k*2H^`XuQW;FfCKK}z$L86cI2y^_IU=M?%$1g)>A$iXVzrvK>N&4WUsnF;vw(5 z>5C-op#5oM6J{8r8N9e>W<6Nhjf7aZ#{tRSy8M;b|sRV`&fNpk)}bAHucrWTohF#OSJ2lnVIf!YNk%bywEg?Q0026=FEF? zeB82sqeQ586h|U8{jYP6ISIEo)|#Xqx;5*{rS?9k zF>YUe?Hm+A3rkylu8Ms>{=+J!=kufHkVskAht*Ee^NtrC@L_X zDSJI|lEtaXR{Ao^`rGhO!abXq8al$X?-9Ewpl}}_AJ0ad;{umpjN)yvf3Frm1%)%F z@c9G@+bL(r`p?yL-raoc;BhPCv24SWbgbqL%eXpo-kAGsLz1DlMGE+I0siJZby~a! zBEV{H;(`@b!Fw~%O?f9c?7q25?hspS*lCy;-J`1CJm471@|b*>HWC-7U0shU*kH<~ z;NDS||1%D`IK~s6_w@Q?q?|VkSZw+<=`<4O#v!g916q*&)B+GBLk8uz2JFpa(FM8m zVx>q~j*@7HVLFkCNG*Ka^mOOIU(x6kt~wXKtK4Q&g_!LE^;{@%bxXXbtYjX=dE>XB zl6=TDR!=@DPgh`%ZJRZ`eW@FGS>0;HER)-=Nye*Wpoa;ia@ln2`Rm!xUoHpQCog*_ zGEli!c6%QrA>NDnY~9y!rB4it^QF6dU8_@k?r|{8Xfq^jE=<*1$@kGYJ7FANS3@n7 zcy+RtXE5e^x3Q$m;j|?GbJ>aEcc;8B9^A65(#l?H9krwV$@;<$lO>9MrU~y1yb#mD sfvhu#qo1f)agAYJJM2pvSEh9aO8 zLvNv%P(tU7@3;5Gx!QZ3bJqIy#ThS#HA!aXU!Ujs6(iJD<%#do-UWd`#88D-njjEf z90+vd^PL;O6*0AzQV>Y~9`u#8wpZqM7CNmI^008-`|8#t^Ur_&&EI#vBXUdp*25bl z9igT#pE0N2hfqClE<&n)OpLxL$CaQz-xLEYYBKx(cF)3i-vWU$FxM^OH$k9zqFY3u z`}gjHK`)-Yr~-jHKpi(gw{HGhFLsvVZvsab=M9i#Sjt_>uM~nrpl8t&gp_V~LC+GY z2;thLn1j>wS9l<%?x(ki-rjUuSsTzdp~@`PVt*nwxQnp!7HW zYkp6SN2?P*{2Jdp>B+>L8os@q@PWIGRQD<98(M$#yQc9cR1;F>3IvMM*E_-922}}} zxEt|44>i`QF*U;j!Rg5)bJPZazsAiMpq`wX)T}o^a7%9~uni^1lug%#{(}|pnQ6J2 z>t}sXP?!GxlJ(zD^v7q6Z>Ixq9QRvzF9i4se38PCRi*}b&R(7j$KUUsw(O+xinQGX zSz$**w4pVh-++Q_Th6}te4zlD@>f!VL7>!o|JD)ux6O~ecFX+I62)siXo8^1l8CWT zIk(J;I(gT;g9|;z`zk>h?>>ZxNEeOtpQGa~v^9XQAo^VLTC*34 z(U0^%UWh8w2ayuLasFte1DcT}d}+VI-oOE!ty;_qrHrKkRXx{zPzFYg3MRK7`Ui^8 zH&v9DymS5xtQ|RH!F9$SKB(S=dpDhpp9Q_DhY^O__RnK_iiprp9UbDAEN>{~kI&jX zmoZ2B_@*wp)m5LCy?NNaZZ>r;-0yMGhZm1U1n@>aM)5c0?w*gWvmS9k6ClG=9{C-Q zdXVVt#|}mI&&YbRT2F_MJu6JQECbblfF#dgMfi^9@{@BKP%lbjAevef8mW4yCd2 z8ATC!HsYmUK+3D`l$299eCkJDlW7|BdNBDxc9(Edf<~>NmQ@Su*dU_JmX~x10(1=vQ*hKihR?ZYCWW_QVv-r~<$h}J!JR}#BOWR?!ZbBHY(Qjqnb0SKj__*Pj=Xi&e8D)U(BX^f zznwrD-WkwdtQ57}kC#!{|0bEmXz2|zCbW)pNqUdZUZbj)FQJ8PWj6)&;T}QbFB<{B z3l=jc(28m{QSp@&*Xxl2Q7`_wB-R4ol9tBJCe+HySv^Haf%>5l-oVp6Xv>g`8@Z+a zsN!`%JLb6vl4|+U$0s&tZFAcmF7&8I#%qO`o_rX)cewm@f1Gt_X5nQ(<+($nC}XU} zSRbL6V!eZ*#EhWI(UA&#zSsQdVNlRy-UkZV2S={_!fUQ39@)PLL@tgp7X{XtA_CaU zamkjP+~n7HqVgW~rOs!{l1(AGGgOlt(~J0x41DX#xipcd8LlA7kjkbCVaXop?wDas zs=l59g-Mn<|Kh+<)OV)aO~nH?Us5e;gbwg>e#nJ~l3n-N_hengd!@7P!sv0zDHc>f z*O=M6Dco6A*GX=}yA5J`0ivYb3m3v?c}9IJhv3$x>*utSwcYWMXO-VDcpYc-39JjP z)u0oFXW{suJGbvpf*w%=yGoF0kSQK07%%w$^x_?RDX^r!-5z<^a2SgDPj|-gJv=Gz>~?WpCmGSTy_qR*NvUdMdwJ;T zVan#wJ8g$QX8ZVQ*QRhLG9i_kxn10OE9@nIsu~(8B_+i%sk455g~4E8jntJp9^#EI zZ9@U=*O!;iv*n@kdskOiJc%RMtfhB!b%0~4gkE{cP3-dGqBrqv2kphx6^waIqt4w3 zb<>VFC2BiMnmgx8HDTEcVq7_~dDL%xDHk}mW+&MpUvm-{S1JTeurv<{Sp3=fP*fwi z=quy_W=7vvQtFFw!82ftc_kQ0^@(ujMx;X}NvwTK`|1__qToxeJ-pITyr1q2?FX?v zOWPjk@2}3~VPaWpv4Seejo(FLDkq*^m(uAwps@;7V5Lh1XBy^irZGKOa@;2~Q7f|p z5fr~InO5r)=*!*Aip`ReJSJOit3QfbbGXq*m2u!uN+T=3E=B^2?(0vxcoR zl*wgt=Z5#kZf=-)SNXNiMZb2c&%oOBZzMp5P;iF~X1NdFQr1i)4jhvRJbw|%r&^}* z(8uvV!X$)!IHQNfbr!uP& ziB64LycN7e=qK-_yx~d7$zkd-RFEG^ru`7)WS8EZn&)y9t_yLHlh@G!X41}^b+hJ* z^UKTa^Q-f7w3m*zhZyzm_()YW67hmHyt6~^22Q+J{k*6O~E2Dxca7%ZiIY(hzB_S0V#h%y6 z3)vbym(0=y?FW!{<4U0EIiB_CDb@y#$b9^?*6JH)l-;_*!pyjaj8bD>8AgR2obQUm z2u?z&z(u(pz1`5?pyM3=XBQWP!(~>z-#^oNDcf@Ro6sqQasLs7$A z>VfH!Pv*BA$NP2CGWic1=611D$?jh;?I>lR$WOisYhHPn_7K`7V!356c~Zn6^TL-6 zxGU|B>H?!^|F5V#k(^=7f&NCb3*Lwk&<61mdsV%Aggs`Nj0vsr#PoE{Gcm-OO%(*i zriY!=C`1y`4eaQ)hcATD-RNmn=6sV|OIyqb9x&?DSPc3{ds8ys$uc>xhUzy;N^BJ0r}Itu0BbNdr*uHC#XDPE`H!es$kJf2 zCAeQCrg3_vv^~;*_*lk3Y$VW=`n2}hvSWvk3tvfbZ7#iNnlc(Wjr*izG;)H+F#L6- z!OM!oq&svYn^fh&BxI)0`s=;#I##8$=v~+EVZGu~0UmlX`tW_<{9WIC<4jd{-O{D~ zHS_0_t4~G+j}D`9kELTYLdNGZsg5iP3QZH+H8#g!gUpZWBIR^(kCSDeP+S|5%OuB|bc z=%q>P$H#7B)jVo@H+*>$pWFN)cSj@3bOjH}ErNQ&baeWLDJ+^{%W3`%tbgwp?$v~n zt;WyYH4O|5oT^MVEB-miKWAZshF>;DA zQB@!Ao$WMTl`vJ4>^z4H;ZBVn7l|oU>s(Z3ECEY)FTht*ebe4=24sRCL%0GC$RRvQKA=8WQT;wxRA;;%5whh}g%8n&o?vW0hyG zZDX#?#{{Ph{Z>_$M}I3O>dW13zBK%}l=^(rO^imVvz3+W@*JaP)W?%c^o2Xz^@ggP z*k`(OcY}c3_GHi0X}Uin&n#-OzrQ!h%$_Q8;MUAkCnu<|%5W;M=L3#4-`o*TkBiFK z*thgOqf)M4`@pA<&V0M~-!GsS%=kt9`i10~J~j|6!M@sU{Yqx6*@E|bIuwufRr_u% z2f5B4%Vjk8=K=fL4F5_=&VCo?_Ba?-FvEp9#o=&nVk06In@wZu%Z{V2-`fh~tgBCo zMf)e%ms{A|+ZTj|oLFScD-d7`I>YO{nSH{KOE>Xj#*u6{!*wJ-#;0*c<^jL1I4u{rYkH=D5^V zDy1{b9UZBf(@=XvTZm_^uS+hgLEgXHUFn(>`= z&p*lTspX}3Gv?$UOCXedW^S+g=bZ2fkrf!<$)Y)0YAD-0Gtw zCQV0t4emg<3*-(89J1Ot{F&jmHN2B=KXM5{2 zJ2F0vbj3)41`aZb?;7*f`d=RzpS2ao!WKnlf3!uJ&kqld3a(UOF~dw}`(6;9bH18w zEv{fYZ~NNBn?vu@*(Bn@5^4?0D~i1qUbtF9omHA+?hlYicd5bsK&-a>pc1&~#a-|I3H%7cAn9rv?eEzqD=_=d6Yje-H+8 zOpx+TnV0`vq(&(~Ndc{JKG&X&D~EJHhLSb1RNdIs6ATQbyM84VgpX2*fL{khyB<%H zpSPu8+PwqH7hF@vC_VJcbGpC6RRk7ffTrQX%wo<(T``DCqwZ>up?plA!*NZrCg*`i2x)$5~M z%TsSF&9o!kuHqbucV`^g>xXqFx7HQ!N-w)YJFuspJUT*DDM-RY$YUVG&?h`8M89t_ zwAF4IZ#h8^@dZ_6vP7W?6L-cp)skqF^R%D7!`Pyg>X_F}UPg(etN6xAALk^>f5uaBYFX)^_Y3lsxH*x`4pBB%+tmhm`U^8E>KB$G>bmYRQLa3 z(UA@xraE}sf#s_#XpFbiH<|#FIN?&&gdZMFVgv<@g-qrdtPv_~D-i8N&-?(fme(}( zT=>t~HAF)T%qzZ@a#(M3arW=uVK_ilyI7H@)g)7!ZIK;rA=)Ye<1f8ojWk3#?hfjb zPsqOyke`c}?y7my4beuZ@%2Z(7{a^CpMB^BPj4EyI9z3*eayLcZOp2N*KGEDnCeF20q z`>Ad$V`EFlWWR&bdsi}l$(-1p{0h7J2WCnmlYe$_&DnvR^k+J41?{qOgyUae=AUl* z1^V{1-(M}@sN6`@BFpewQaG+r=GU;z?snJ z(m5U)v#qf`GRHg_Oz?7(z6q>mL{ofs(Z!5)Z@xL5Zj}yoPc>t|2{43oos~?52PcMl z`FG7=kq7vj`(DoV6SBI0R=X22b^XQOI3mx|(}q*3n@ow3Tg6?v6AQld!Il{`bvmh% zUl)4Onh_g6?PpH?be}A(NND!jaLyF(h$M~1H-yj#?DFd6_eV3qc{v3*^H={)M_42x zub6QBktWfh@LBDKR$TNuEF?)hhu7SwBcZ%wKTas)Wd~A`n$X^dz1(iff`H+X0|PJx z{pvXG)(=OK{b+b0cO{SXNz!>l_q4q!`qH^=>5EL&N&L}=lD^W=otLSZi;rFPLY$A? zj&gMU$)*~uJUrwjO}d+cSImtiWYe0q(b65T6qdQwJ@!!=@-o5*t~pl@1~ubR76@ak z5C*7Dqj%L};tswkzI(cNbPFYsyS^U&yyU)BQSWQ^N-~ngp@q;5^8(v-=N&`VoJuoU zHP7|1O%DfawmfdQ{bU7Duc|gxP6xhI&BH1gz*g9E0^X(T=xpPB4JQ#`6k@9>1{rLV z9u`&TV7L@M?wzd#)6s!?9@~5|rj!rZj$tUT)1b$z zu~Y#wnqVLauh=|m6W#$z&WQXJm}6;4LR(6$Y5A3SyW!=+v6 z(-ZWPL@C-lQ*>qZ1(Lr0^{?8O)ERkD%PX<>U$ zGFNP)Q0X1`^;Yr^B$P;48qJlP!0|fS@#}i4omEc;{7Z`gxvbH|;U!gIinX#v8~d1` z1Y<0@;?)j^^UCv0WB=E)Ocu=jj9AJJpCO)5Le7nKpvkAY1NRMIYtjlui@K4*aN1dc zN1P+wl!uxItT}cyEv72ZDyhFJl4)|(n@WVYX$gCjpE5YT%MkzP@OsTHO0K8QFG!s z6xizog$m{f@HcIzEc!KmM!B_AM@ZI1)7-%(xfFl#a~+NzwkBm^+gufJx@!~6z4YYTFx)?Bn6L?fE zv}9x5f8@`PoE+uY{uWN_JAIQJcMD*xqOR_645M>5n|61d&dz;WV@BooJb>V(8&k5| z7|-rK_n2E` zpx?H3Cxj~~7&hdQjTvhzzv+bcySSzi>Uq}EW=q>BBFjUP+C)p_Z}s3Z>*Sld7+Bq3 zEaM@-D^*qJGBblf4e$RuC?*oSUqjM(I*P}_?TH(t+)0Od?g%5)s=0sa!S)=htKW zwG>`Vx1`(jOKA3YtPs0i$Q)txA030a)O~?lc2k=C-4N+2#@KLlP!>2ibl--TA;XlI z(Z4M7y zrHpC<$Y;Mq)afg!S-*W)BRvTLPWnAbQn|Q&Jxz3Qk?rzqoUF#riheg9X3LD2#<`)G zJ9a6>H>bMuIP!!jBgP2-0m_d2K7ji?z~Ixpvr?IC+Qrkie2h5irVn*qoSe$Ys^xB2 z{{#NW!e^(01IO6V1C?o-IF*%Tf=&@|8C6m-G3S(zfV0IGzP&=#a@5;D#ANzw{HANc zb@rU=%9LQ$Uk!cJOZ%x`3)J>)@`niguS&5(5(Y~r z-YMJ^GpOT?3@!;TSG0_JiVScFvDR01vx;DGXS_G6F>__!Sv_UUwY36^zbRo5Gvbt? zrPzX^E@zk1cx4!S7&DiE?+D=$kYUJVaczZw%<2{SXd^5%lZzDqm|I;`Ke&tBT^Wq4P`&NHAW|C_Ef zZWO`5s~~^E7%Pt!S8rpV2_u`}Ykds4sfs$js1jP|8?qbXWb;n_j4#&v1Rkt;Z;`2+Mj2X?sTJ*O4`ky%0 zZ;BOu_Dr^a1Xavy+~{e>v~pEysYLxXRh>3ppSN9~p2pW)B^22P1O`@4lwwa}!dyh? z>AkZ}vJ=s)8Lt(USO_HQ+b5suO@B|2&HRsK7H5}23OSbOqu64sbsgMS4v+otoE@Fm zsVKp=6dX{wnZ88tyAzb3)L_9OC0OulAlRxNy0^&IJaLY5#sE?aY?Gli^%*@Ku~ z4n3@8X{_Y(t*U0xDLFAo8sA9AttxQ{`ryc?)wmJ>Gew`H^nM}8W^}+>DSVr`N5>|0113a60jk)|H`H^hn>P55@INNY*#vP+IQ zg`xfQJbfQ$@bfRa!?O6O`0Ade4s1a^y)Dtn0Hr*wZ91*I7zw7Uy5&d)-3 z66pZI3N`5MX{BF67fKO(nZgoTs+l=U`!*T7CeD=O4|M2z1Pk5U=Z?l=qw-7#A7k7- zU#^%~P;B9RdF13OK$9h@lH@5&MyM%A!<$u?k~I*jtuUZaSn3gpS^4w5c2z9A?iNa8 z?MhY9e{R=9{Hngf4u_z+lr}N)dh%cpbvz)?gG#7TG`zFr(Og+s3B<0zeOevG5Pi$F z8q%wY8ig5E<&c5(Qdx}?&w?eB-jcWYtWyb|KDyPx7=vxo(1-o5su|il^@C=8o}H6* zt7&Bjrt!y>(`~yeVoifzLnn7}Tizlk(WTL%Q`z*#9?cA~@@!rc?ySZ!g>G-PIR`tC za*UVfTRW@bQwL)Yg*c`^6uCke^=nE>Xz8ZkH=9vc^5|p>G@HRKk<OCN69_SkQ9|&Y%4dD4=I~vAu#q%<=Ega7fEKnfKVFBp-v0;=|9p zrBg#NKk5O;#hnVC`apwcIRlwCD8w>+OputA!rIE+pfgn~TL8`Kf1i z?hlcG)yoBXj>|ot)~55^GVRl;&H0FQI8&tiEyCEi@j8TDCGd7wnJQQJLk1rw8_!-w(M~C~TMPkr|X-8p4@220E!J2R9UW$%*h|qu9 zz1gVj=xZ$cK$5xs{PGIOLVyE@oA8JgtX(t|Ybh z90Q!gX$}b?N=kF_hf(-;W>R2%y|c)&tsiLwo{@+}_m>LSVgHO9!1#Kr z&WY0HpcZ-{xk=gA0SN2no;8t@G7q}TWDzB~iCgutscPNJzY0cNCs)6nUQBHFuKrn_ zG?UvgHudw^sU0PaB4Uj(_vC2Rkf7oku69V6S3+*gXSQGYc7DKDN^<~sV%&LFi?+?X zDI-k;6VKWeueI?f6>C)_dw4S5+SzIy zpwhjS%l0N;&Y$(0JN&cBeU(=oJM@B#THV8X7M>4s7K#QR(VxxB3>#)+EM9UI<`Nu| zg9|flYshEDW^4l2wVc*XlIEhHq$1R0G{`L)Q3Xd1jE6TkQ3<3jap$98!)zaY&Ia_s zfe9Tq!mFvWNxCLl2bmJz#hja0o&4*I=u#KH-QP&#E>+joIgqKD&Z(ysoBKuF7in-n zUWWPEw$-%4#>YdYFpcqSz!BB>7r%XapVp{}E}2DSVF%y!&w$zIfe|}kE zN1$&Ql5BU6ZmJ!n@r=ij6}q_d%2J<;=Z4?LC+mD#!)(R9zU?WmcQNPX|A?VtX)OmZ z=jR#YDuwm4$7zWUIaQ;!saA`a72M!YRh?P}%k&~Ukt21o_#WxdovQxKp-296WBPFy zvN38Ll9Dh3Td;9<{vQFUU3Bb`U*}g*yJqpqADQ;&p;qgLu2q|9M@_A+fZKjD!c|RFk@DA^ubTHq(GS zvae2;(3SvSGK%}mclnK#RH_rvfBsVYgn;tf& zyxe-p#Myc+wz)0Rbf+JuZr;A?`UbHOc>iPItluc{PV;GBgYa{PSB|oeT%4TmNrtEx z>ZPE%Ts$%gHpRR#93RrVzqFKRrCpOW&kT7K8KaSNb91~Ry<{!%Dnyh_36dY_T{+nw z$Z8}Nt(&qO)6}V;GRVR5LeKJOmYqd<6BXBgrM2y56fOKK4JKISk%AAB5Ju}JI81hB zXwtDlN(&ovqcEk9a+zc%MdE%uw484_} ze3RGtdRjPk(D1YGq!Y0y*)P(Wd=|4qaX`tk9JdE+bjAo~caFF-2p8pX(0hnKRnQ>! z&PI2e_|IvDLOv(Hdkc9oMombtFG|uQ;4~oEu?QX^OXao-a2}oN(|L4LO#N6Row7f= zEQS?2Nxy`zk9Jf*B&~g<8YY)k0E@7?<+NUrTW>THI9`+#@FjiHrSa&yN#K5%=oMWB zT@kQ27^drF=yL&Ol6We~>#yUKD{c%&yem{F{s6m22-E>dLX8{p)^C}Bj5OCv(jD)m zb-4`3qKGbSwBQm0Y8WOKfkl>>MyI#ZCJToVKjqmtzYJ(Kj%F_rz&N%fP)mJ4ch0f-_#ifsODAq(oHD%tor~F|lm!yZUOp_WacxO_U7J}zp#1Kd zv#I%2Y009zdZdj32OSU!AUn-7j^@P|Cu>|=pU?ZiZHhL2(Wr?wYds{1UsSqaCzju}! zlu){D*?-%e4j1;m8E;8L^CU80y;Ym%_vR8yn?=$eU~u9|RIXx9LUP?Y65c(}mF^Gb zLc#2v@81Vd3ws1Mj;KE59x8ma|20{e#_I3omXXF}R<)*bX7-X#d3{}9LRW%>Tx|^~ zII0R_u#f2O6` zg-33s(eIXxJq1T^1pD==Q;s_S0gOZV9Yu27N=^|cC4p2ng~SZS1f8er@&ux-wm!_X zPlRBwG|ihXbZLS>oj+jeT0dlZOd`MJ#bfs$?H|0t5Gs+eSxvB$7eQ*4vK^W&-x#+0 zBvNX_Oiwdj9~=mM6erwC1eZZ91w{OJOz_EUHGIwx(RWw$x(;|{WXqq8TrruI$L2Iw zXpQfBHfN1EDDK;@cG=QUT>Ar~$mk;8Pr4e-@MET8yRt9C_fis&jBQnxL>3H=@y@m1 zB?qbsQFGXjCOM9?u(X5I^YhKb&bD2kR4pWZ^%+AQGE!z?29#Bv29m_u^4|F|h^nGN zW0fKFqexs!u;Ahvm99*E*D~;4Jee8~jq_jjQ7AWg|5Ap(HB{Mq4_ZJ(nsNrbAer05 zpz!U0*>=$~1*c+*5e2`Dx$6yC3mDbV`HT^wJ$OP#*Wd7V{;RZl>9q)ol(4TO-OwU| z75E`Xq)qGGgWTy%HCmQ2M347@i$hM1@QzV!VWlK2evTB4)gs5YY%bx7ndW;ah`cMp zegQr-s^`8s&2_7o*vyd%TyyHl)`hX^O*}u|I3KQV_|T=It4fGsd7Wtv5y`!~gFC;)G-8`;FG<56-tChFYgagWKd+}(Mc?|} zwe)rtK0Ye&_+3ZKI%VO=*o?$Mp&n06Po^%uqSad>#YPpP73asU%2v^cnfcwTuVAoV z3=dz!K}2-nEjyQkegUW9z*ZS|H~J%eFOjlCgZI=|%U!dnUJKzHjHz%Vl9s zYt=r0PN+@I98&T)Y`Ak)%biJ{f`D%)SkkOc;Ki9L-1)!Ow1rW4+S#Cyw&`uV`5ci; zA}V9fI7UD#F(mB4G+8%wf_HKcP*hfIu9><4j4Cn(#Ws9!-!dwB!fX2Ccqx$B0X`VqVWE`)~h!DkUYDmayB!-fxgn77+JD6GsRCc4vrS$bo@# zQ%_aTWN3o+XbSCa#pd;<^7S9j+w}Tpuw3=#TZq`t;SP6eb7`^;(u=+(sL$byCPcI2 zqka)*RoM962TcPL<<~m~mbN^O|Ehu6bv0Usbc^PumZCxkP_yKmzjibl3v zu%Y;Aa$)SxeKyzul2e>e1_vUnwd^M=U`ETv^)!H zk*}5zs{KSo>r}Bgrr<;eOqRJY#dF$Xn+`xkQ`-_wV`=*Q7rbh=#CdAsPoOZ#927zu zqQP-9dt@|Z?WNq3w2&3vo|(5AP9s=0`nO2Dw8wjXG(}G}nbhTG+S)uIf|%UE}dh zE);*OlkaR%&DR85H2et%&2^QVKyuLjs8uPoJy1v5!Q>HXbT0H-xXD#Ak@EhLIQBC; zP7ZZttLNu(JBUglQQbKIt;P7oj@gt}^x$ ztB*#8cS@&`Vp~)&t!y&JZ5rf-fw|(;vhHnfAqN>Mrd#cXgcA!=oxea=a_9|7Qqyfy5+b#xF~eUA4_`Q0F|Pl_CRQ67 z^Q82e!_JJ{jO6EJ`lzMr1jheh!;&s3YnXl>?jfI^N^#(Ol9@l`B)WZq{_=*>#&WCr=z9&-(H ztl=B}G6Xo0WbPJ}TK{3K-%vmpT}}~D1Z_coLpv%@`^~qHupBK6tx@Ys=szF zzXX}O19qCA!f(vv|M$}1|3X6K zku_}(@T}AW^icJ?0^1T3K*Q=MlZ~nTls3pSpow>%gJ{^SZ;EZH0UTqV&0nt~TTU)O zO31f%^O5>E893dPe-=m%uD6%0tF#9IYtl<=vkvS7d`{u3;OA0S5@8ja1p-tc(y{8s;-b_0Xn-&=HHy`!~j=;ccK)rl%;pgvvd3E)D7cVHfroi;be>f2JT%5sn zsYP=2G5|1jBr*M?&tZICejDV)XGf?@-;)ukzd?1GWvQ=0t`CPMI@F_2V>R(WyjC+# zg!MA?J+c~ZMicHv8swve!0uI20%+kbTjzEGWwki=4v5+m+F>wWVj#3C5;Kgc+2-Qr zO|Wt|daaZE#`zY=KC}*~`a>EXz2%7v?g>lnyJ4CE=F}S{ft}y|@x?Df{lkW^$q~@?$&>Ag3+O;Yy+PXcf|-jNvkk zC!io%y*AhW?3|*nNsM1PHOSXX+?r=>0wiM0jdWLkT#z@9u|feb*@4fz9?&kKxW+>f z7@uqmfG+0zq8>}ei}p28i8(#3|%Ho`U@P z#-JdT>P0^lqlu=50^5!IAI>j_WM1~%?tl0e4qY?evT&dwNB{+G@99j`ZT~8h{XC32 zYl{UE2d$h~`=*Km{o;)KHH?t&(xITx&J93d4^n!czk&BZ!m;*m^F#d)aO?g5w*QYZ zPyRm{j%#1f+mexhh#q%2@8F%?<8l#vabXQaf|3%B$RW%@^T7@Ht>8LV2egNgu$SRq zy086_)LjR3w@W5#-)5pQ>5|NI6&a@(q{En?zt;FS?29TmtBTf?>sgxkGwsmXK7Q*gb*!5AuCNu`D>#y$do(ct*{YK3eq8;gDY}TMf5C|?5}ZdcL-mP z@y_^@wez-3u^zATUEl2Eyo~(#)sSJmWXH{ONoay?jXmqnkdB$JKW$=oj{McGX_dP7 z)%g>uM>fo6+8<^QldOU|d<1lK>KvXHZzQsEqBMohDmDQd9I>Bj@k94}k5$H`wSv1< z=zlxbkKH`>4;0I?xK>MG9d=by`4!UR@`n5a*)%(a&!kAqy4lL0KD@eoBY-0&lzm1b z|9O}tNw~}$4xqe7q)T3%s>^ElO}<%>3o`5!2atC`iA+{#I^am_c2Q>N_K;GE92wLg zuXC_#PK#L5Q?1a@v#i*57Kw}KdEHzgo~4?CvfSgeaP9}XxIhI#7pwBYarI6<$Gh~f zU3xzbx*eOIm!z@}ud%snJ+>}42&$@PP|>8!-=lrnH|Jd- zhjNISFSwz&hXD7@GG}GQMdnE#@(xR=SasN}=eji(?3>QvRK^DSxPHDjZGA{9Pt8kn z9_uK#e}ZyVH3}C?c6lZ%7cOokzqhmx6vpeLliHs)Ng*aXy|EdV`R)+%%a0lhi>3-E z0e_He;ve{Ct>{wNpf5wxZHFGlbn%~!%p|UFe72q%&_)ujq}^WaR$`X?)&2KT{tPcRy(O!(d#7t4GO4Cbxr+gwl(0`DD+ijB8B#fe(pY>?uj-o&7a682gbMt15j;|^g=oiILkD|%kQLxuiui(0wunsVa)Jt%5n5(2K+DW@zydE?)q?11JTCD#3;yDo%EtB zbQgWB{EqghCQG0yB1nXNnRI>Z`ec8*A%6jXB!9thNV!TY!Hnad&ufv9i)_toG3zM!-z0VK%C?PgazxiOps z*G}}s?hMT&kN=zr57i}3B<8Ob&H^^@SIl_M5s8IVZu-UTd; zBXnN%Xh23+{h-KJjG5d^9GdWXahB*7ib(Vja8RQVySuv_kxhV$V@TxLR#V09xozju z>ng!7g0oY&)~ibHm$kDr>-x z^8E;Y(c>jO6h@71wVo_ay)m|MXX1VtWVmqQTSru0)yni2{HA*k`a?f=uEnV>q@6up zu__ahuhoaspr&eW1(DoBMauluOjXBMN3M7WG|vFa;w{j{-RDT(;VQL}#6;Gwn`i$J z`E7|@hx=Y{DqjbLW4r;f!(rDMH>k)obkG7;8dq-=bdk(qitV`!uznD+l&Yn%$n2}) zVWdyHwH?n&m|P_obE10vi;7d&yvwE5VtmF?__Uy#Dp`#X#Bv|}RH&nA#u3beO>k)W zwhwq0n_XY(vAw=%_ABK@DB6sv44LV}e^syS+DBD?MtK3R$QK|X(6gk`X90MZY}gAV zi>K)+ieI5h1+lqu$)IP!P@Gv)#rfG8zi~pP&GBHolpH{P0S<8ov{*~UMJM8E9DiAy zRoBm(Dxtb`hfGIPp2FVQC_Zfsa+1LMl9J`iZtOnPtq@itn_;P+z*>9fr(m?EW4Q_RHmn!Vj;5%pEamxZ$-2 z<#&KE*rzKJ{rL;XQ1UTsxOmhGOoSc_k;)mizwccH+~o8XQHR0(JLAu4U#SEhSO=Y7 z8tXqd-)KTc^WOGFnd%84nkwkTDGfsa_|4}Zv+BA@KtO=iAN^&3BLuQG2Q-2!o=-Na zO&PV&B9|2mprI%a)Z1ZpKy!KO>U5>iC!f*l z$PPs&ZQz~kc?DYQ%DN{{&-`I?;KtMB3~qyLv5$EQCSO5g z?+rtU!C7VZF3}tIV`42;YX`dq%pP)`IYpLHPHB~ob@7kyy`O?P< zYAE9g{<*Y}aY{vbzHa41%lV#*VcF1rnvRwCY=B9D|6;(%pC1|iO6Zn&GC3{L?xj$vv=;7^_eP& z;EPs2mawtO)-#a+P-&0mMhX9m&LUeMz>qQbgAh3Oh6wk{YrkbJ4*de<`(yn`R8c`1nn;$j_85 zTSP|__$iv(Z`dVe1lF4J>#@Bdk{_m-t{iP2_T`a}*^n9&L;FZlN*3~&>5pTO)qs;x zK5-bJ1YWZ+FjNQJ`o{4{uTriF(=uvyH;5DzeDp4XHJ3);9!c~~?^*cKyU$u6<=d41 muWauB1(x++`RPyEbIUtec}HQ&z<-Yeg37ACs(5J{{J#KQ$@B97 diff --git a/tests_zemu/snapshots/st-sign-init_validator/00006.png b/tests_zemu/snapshots/st-sign-init_validator/00006.png deleted file mode 100644 index 9b66a37a12185202204e915fb7881605da0bc92f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12881 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 diff --git a/tests_zemu/snapshots/st-sign-init_validator/00008.png b/tests_zemu/snapshots/st-sign-init_validator/00008.png deleted file mode 100644 index ce7389e24c881fb1b798e4a83265f2d9444831b8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10953 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 diff --git a/tests_zemu/snapshots/x-sign-init_validator/00000.png b/tests_zemu/snapshots/x-sign-init_validator/00000.png deleted file mode 100644 index ca62a34a10cf1845786db5f6374a7907511c0eec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 466 zcmV;@0WJQCP)&Pe%d{d!3%ZeZIo%)~EbT1T-z&IcK@h zSK0|kB74mR;RMvsx3VKw{VU-Fd?UU$4C)OZtJ^?_TZF$U)S`&EHty$+ai=L=%Lzn-5L-s0dI?gy}>TgU4QC;c?e4AS1j$SeD(G|VC3pwNYN{}>qJZ=F}~ zUHmOz?dEOb)<;4N@?W#0^4X6%AKcjVSHL?jf4k+K<=itH zran=9vEv52cAV8}`&*lBL*C{$-}19lwg&u#-nanti^sYqrdK!SBYGwutNO m6;30|3ektGz(7F;ai3Y&Z~njR+_w4yAYo5eKbLh*2~7Zvaiy&Q diff --git a/tests_zemu/snapshots/x-sign-init_validator/00002.png b/tests_zemu/snapshots/x-sign-init_validator/00002.png deleted file mode 100644 index 7ef6b90f39cbf287246bfd99332fe3456f99c7bb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 952 zcmV;p14sOcP)cQX55Qufk^X>%->9~8{3d`}t20BS`2lh%r&D2k#eisCM8+qP}n*-`wE z7!0w)E%zncFWT)MJ|j^cJO-;ro%gj^?e%)?|Mu7TE{(6zC;`219vLZl|7=}LNR#%G z{@?bu)tQ#eNv)%!8n`N zGn0ZEi;ugUD~Ut8Aboitqk^ZAhshLlofQ~Ex~5NMaZ*f;&44~B_sNt$0&^u1c$U+c zer&~Cf~}ZIL4Bemh5gP9l<>I4Q55}p77x*T#5l;GWMkU0AFQVV#v{I9Ojwv)gda)D zlUt8J;!+3rq9}@cvo4?JChH+g9ku} zz7Oz72>0E3Psq!oL{Gv_eQ{1+{|_Wc5xE*~kasYid3h0N3KG{b?QNo;;0S4B90|$q zv{!$582-X$W^B++*LlXxZQ?PZP9F})&(HpkyG+|#Lng=106e4j?~?uH1a+Mx^LW&* zt}!?Oqmye4mU3qIf=!E4z(|Y)@Au3Kx$ztX-pGT^Wp0D9$KyK}X+iu@#+UDR3I9eY zC^~ZQ*ti)g{sxpBxOfH4SKlJix|~CzM`cV=K*rM{CiH z)&$Rf3OF|Yb?FK(J2L|SCTx#K%hg`mZ0ytMtTDiEQNS&uBjJqJ7yvFv`AtWd7y~iX z>oY$C+Q>UOzo}e6sG{gAj-u8OzVLef3IUd#3$iG@T(k9U=*f(wAm`@#sa$-<7e!Hw z^5L%vv0000vGR!N_*% zub?|yCoz(*^e8W0gR@uN#&KDe;!RVQ+d89z{7#P7kR97$sgm{ABBr6{vz5rdmcP?> z2cTM3E!ckDxwOjdjE)<-1Jv@`xUAw5+m73joZ_ZNWY@A^8~u1a`gP7u8cspQ zM8QpziIU^g{10ZWo}1?Q%4Jf}|2ctUDlRgW?dqvHB@P33fK1AAU)c4}l^kKST+7g& zwM)2LXVh>ClId6#%Ez*x#17hBMYrFc!^7=;sBxRbf)uJAOv~)O^(w)7OnJ;rG?F=l zUuo91W&1as{VE3lXzG6`l$VUw>FGk%Net}SCcci^Q0`tB)aki=x@liS6Ive^gV3mI zyI&XNXSmJ>#MTG9H)w6x(%5~8-P&_c*n|@d?1lPc?Y{0O8acSAr+UVl@cQ{r1t|DX z^B{Mg0i)J6u>Xw+GIin%xR_pm^9Jf3q?UWGj$Rv7YyEq&cn<>8L$MRyN8ig&(F`)t zzl;-VqJJ^g;7(+rJM9FSH8>UF1poj5000000000000000PV)oM3L%+8|HeQ70000< KMNUMnLSTaPC;UDD diff --git a/tests_zemu/snapshots/x-sign-init_validator/00004.png b/tests_zemu/snapshots/x-sign-init_validator/00004.png deleted file mode 100644 index 791bb362775d4be94b655c201901ce27e8983dba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 312 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h5*QvW?&978JRyuBXScSu2m^}@L$ zb2t1~E!F?*cuBzPqD1X_pL0JaZ*hGudLfsYp`pNj;^eo#@AXazdX=F0H28e|)4;>p z_CNgMzIV)7Q@3r(`O4^ptUfZ`k2O|C%e;NHQ%ce<%c97%de8keoz~AYZUywIwOuU# z?q@bF@xo5+PkP!3E4<(K{y4Y&%2v~z3OCkrznHWCWv+R*oL2eGCN;H_^S;kt{{7td z)fL<#8%(PML)mXn|2%2iOFvUfIR=J=1%E@mwn*(|nzT0VfYkq%|Awq8!45{ODzCXC z{`&0Rss7Q+{y^%9OZ>(iQNIqBOgO1G<)q~t&pkk2L%|2r`WlIOliu(CD+ChpboFyt I=akR{00$0=a{vGU diff --git a/tests_zemu/snapshots/x-sign-init_validator/00005.png b/tests_zemu/snapshots/x-sign-init_validator/00005.png deleted file mode 100644 index bd7187f864e22f0474a312dbb670111c94f8c812..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1019 zcmVq?^tfU|kUZ;~mJ)9q++7z+45f8Jb z=2DRE2;7_foSmJ#@%&T%k9~5cPLcGQ@OID)I6^}#k9{HYNM2jq+?z3C#h%J$$54?3 zT7{#&S<_6&{RKb#pN@W1_*-$~WnmZeY1k6E8U6_I7*8Y;iI2m1d2?4%u0P-%J!m}` z@;HfTFU#z;=@o*D3t%6_ggAwT1R-gOYM!pyO7ua`CCj?85EIg zN}-I4;6&6$0F96cYC1MAGzqi3*2>74Lto(MY(tV~L&W=VS`4%x{AH5qpenii483TW zaG8t&c)otHg)Klxj>a!2ZiFT#u!ZNA{l#DgFd^LM*=u^AbOZ#lU7uUU?L=S5G%98Z z))&c7GmEvviCp1rBFT4?3l?ylwe88%@ti{|2ds3UsWvigmM_caU+POJfI zxd>Qm%gNMYFlBtURm5po%7h!F2vf5JcNc`l<)9YUFz2aVqo$-~+F6_LfirZWh@2Tj ps-ZXIJ=D;%k?Lk5kw_$Nz(1{AnCEZ5rXBzQ002ovPDHLkV1jHe?Q8%5 diff --git a/tests_zemu/snapshots/x-sign-init_validator/00006.png b/tests_zemu/snapshots/x-sign-init_validator/00006.png deleted file mode 100644 index 8b043438e895904376cb82ccd72f8193747b3f37..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 558 zcmV+}0@3}6P)Q@-BT~hN1a0D7tFD?_tNqkc5y#mn{VV0002sa=wCl>$M|-U_`G5v3ren0Gx@v58nFz^#D5n7PBI?Y?^YlIo{t<^}{}BJZ>Vy(c>Qv-+4< zG?jr0&?@5YR#fH&egtz5is}7MI*>7ES|8fE;TDv{3wkoCH|s-)4LP=3Nk($irGXZt z0})5FZw{k{e7ygZzqy~R)TD30*I>}Zt$>;u;_=uIW|rj5ji-ARBc9kpnOnCi=|B^x z@@5k=OGnF;dC!v9((g+C))f6^^eyPWF)M9Jf0rpa4gdf%+1;1L0ZHHD#n&TN-p}z3 z2sGR(?q?lEX!J>>d1Ag==kINn)?-TMT}pcLDnyd%&!Pfqj&Ba?p5sjnJUN@sRKV!O zeVJ&U1K%yLFa0I_@jut@7X3?!JBD}d^`cFM!A0Ks1;`e3YL1L9Otj;6qAA4ULH#FJ z`P|{mMtE=aezwV!bIK{6%rW|`=$FTCfNl42(J#k*_TEr0<0X6WP~Ovpp2$X!*@IId wyZ`_I00000000000000000000005`)3tq_`kdKD(`v3p{07*qoM6N<$f>0X?;s5{u diff --git a/tests_zemu/snapshots/x-sign-init_validator/00007.png b/tests_zemu/snapshots/x-sign-init_validator/00007.png deleted file mode 100644 index 35c050e14189c28d4f57a5704b4bad553a9a70d7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 941 zcmV;e15*5nP)mn&E%ZW;?Bz5KxGp>C&iP=x7sjRx9eHfi$uiJrWVj6H5|yKrUUpt331Y zMnOM)keMVoW;O(Mk#4PtH@ji7FS)+YIsnI_zr`bc=^Y>yd-roKzO*u;m=Xr2RcM(t zSM}T$W8l{}3Aq0ocaUrJZ^Ibs8vUCoA3RA#p(hy(a{1s=^zgdbP%lS#{s!AAX7h@- zabQcT3q#q{=w??R%k{ndFyos!QsAi&%4LE_!wDA>!u(()V|BbeSn>fn36l<-^7939 zmSASNugLEr2Y6}4ZdQiA#_=GJ{ugBkbm-7g#f!<4_AIy$AcsC-Yp%(#L`z|}Ix zWbOmJ{ClWXqRCJQv(n~_VJyt)y5qyFd*1!WCFgX_F2bAoPYUMpOV`nIhT3x(R$T~^ zogo-qMNt$*Q540&;M>px{sKLehLkl!8%Ixg?%2%O9O|jpwIqBVu{#0cCh}1<4e1FF zZQgUK(@-nMq&44$>YPF2-pW1xAtouDJd|Ao-y_Na(axB;LsN)1ZJQs0yu@TDp*!X3 z5^x%i=Ab<7ZPg6$?tnsXF5g7wCKKwIz||?zKS;?ltO-F0x@BW|j!a9-$!AiYGd$)1 z?}q2o2y8=#8?P?*nQH)f@r~6n!k28FwJyfI_Bua4_T4Iqq9}@@DBhP}ZzGlE!ge^u P00000NkvXXu0mjf?d-(& diff --git a/tests_zemu/snapshots/x-sign-init_validator/00008.png b/tests_zemu/snapshots/x-sign-init_validator/00008.png deleted file mode 100644 index 215cd5412d6c11c741c65b48d4b51ed58a7492f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 560 zcmV-00?+-4P)-gMf%@mIVL+007{0Uh7Y-wH1|8tlTQ# zzPcfv=l*Y#hXj$Lt$T4AcHDMKKH%EGDq7=%`2qb&et&^@y z;GXo;Dx5WsH7jphn#2vaH4wL83lEq}Vdr9~B5g=Qo4utAhI4oI4 zxv3;=KwVX_pUGzK;qVb)`S$BVMyI;fuy@OQZn+QTF(=_RC)g{O8-_K{1tVY^Y6D|G zu09mq0dw2qE|{5(qy01(psH`swtrzyG6*jhAScibGSNQ`C)7m$Waxt{VHUcQL6GT# yLm|8X0000000000000000000000000hw%%LPBPV~sMsk00000ncU( zdHQ;Hh49kD412P02-kI4JKnM_DRWyY*yew%-Sa$cB^wn{sHUYgOLq3FNZ8-sxQ{Bf zVK9A{=Xtg|uH34s*%IGZ=;8cQsN4&$wt5L?KTRi=A1k2T^`)6z6W&~@TurnOwXf3} zj|~Q>Ih;wt``5Z>{lvNDaPvcAyZH7OdPfq@DG13M*ymojV!$$rQ&1O7*xs;v11k4y z0-Oh%`U9?EUN!F}dD9N< zuEl_pdeGg|_g#g{WBp+8_n0tbMd zEm}||ABG)=gv%fMdP_9C&eetY$9t7#DnA=(laT;i(fgp*zdT{&Qfs7qJpeP1$>e+t z1i%lqwZ`YqGUQ^~2ObDcRwR8=#AoHR|B`wI*eUk!=MI;q!*_>Wix+GF13TU@;EA?S z4c0gDg}w=LRRYKZG$&cJ{}{nkYxW;TG593PLZ2j=WW``BetIc2^rj{CltM;DNsTaO zmnfYr4FiZPpcU?D!Qm;DDzSc$$`yFd*|GvQ@j@*&%|$6&0x+Or`t*wB$@DcG zXyx%+DCuO2(4Y`P2qAa-jKJ*K=-3nB%zwZbHGx9(8-@=p`jj<96L-Z7AGAb9)U;QgwgtJ8Tmo?8L) z!r^D_Z*rqM0E{Bowat<`Xa!TJ*BNHfkev!4gb+dq@oN487Ij$}Y diff --git a/tests_zemu/snapshots/x-sign-init_validator/00010.png b/tests_zemu/snapshots/x-sign-init_validator/00010.png deleted file mode 100644 index d78b84649a1d91ea5978c0bb1faf14758151e790..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 550 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|@Xf>EaktG3V{f*h$R_JPox;>C&9g;T+Lujip4u)I(NtW_#QRe0`e|Ovywq?1*Vph(HO*6bTeEaZMp)`( zp~=dDX|B_Hgl(sop5)SA^fAvh^G_6`?(5sOMZOWSz7dwU&Q8?uo#G_f9>yp(m7%H3*RbK;x$428D&-`FcWrE(KPndC&DlzA6h z_2i#^53_kX|HzVwUPUWz-4G~CE&F5ZAT`Uy|5S1*T=IA@dpI);?^{=x<3)6w=A0iCgP4^ytav|e>^X|Jh4<7U0zTV){ z%U_dS)a$zw!%qU=}_tAPUenSVdbhEt9rF?)&siMtLELf_x_os zU+s|%Rc~Tft*kupW}R*E&H~nwm2sbcwmiNw$u{Whn~qJ#ui8wvW-ibSEZ4c8dEHt2 zQQ8--8CMs|WUjnzn@|wG!AzU+x2v(|A7|zKONIKp6IfgPj{QDe5Yziz+?nTHi&lxc lth#Ws_rblOn8E=*d?*{+? diff --git a/tests_zemu/snapshots/x-sign-init_validator/00011.png b/tests_zemu/snapshots/x-sign-init_validator/00011.png deleted file mode 100644 index 99d9395805ac97836cb8e2a094327dc877d3bca6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1033 zcmV+k1or!hP)$78}F%M?2i|*wP223lMb^p8*#G?|B>t3Ene7oYZ_CN1sFjXo>g=cu8=^ z9OOm+6XydrkFF5jSXj`kBb#D5kb9_!oXSqu3y;8!Ch zb1VH3e#?=tP$(3hj(x>6P^oi|SDe+jVdXHp+~m{9)y!&T^^SieLZu=IV})5j!gCQZ zz;P1e=TmVTr>St4M#^Y(Ol$-%1;Be3Tf&zFLO0@Xo~qh!Q4uuy&Eh;=X(Ugb!q_;+ z>V1GGwp*8q3r;=aG|Iwi0LWYeVr^$6t_SCQVk}U?jhHhA>A0oSjsRIJf(GEwucXOR zIfcdC=c^o9e#|=`zYqN8lDCLmgO*VXjUI6EIo0EKPs}3%_K-aN93K>ocLB(3{wYB< z`hJL~qNyW=ylUP)wf_&)p{^KQ0Ar9V23x_0*ZwxtS>4DcOj}e|_OhZi^XmssM_}{a zChL1xWzMMiXk{nvcf;K9d3yBoJTWIR626QxzpeDlnvL<#hf-_*ZuYCa!i7->Q|K`IwS_Wbs_u6}==dhtpkc4#( z6Q&hK%b@q!7xq{doir86Wa5{snb5{-A1>%3fGn@-+t8aa_g|7H_~v~R5|{c!JkzT} zp->25dJVuEti|I@z&NPLm}v4iLw2Gj^XfOA0FheB+MH<=h1TMf_dEi|7Y&Lq4r0VE zJ{)Q6W7h>OQ44dnD9_`8DFj}2a4(|# zR0)bx5m}W^WcomY2S_1tF-Wh};(bQ5;$a6sWN&zuiL|1|{D298hlbzM+=Z;;n70It z9dmwBd&>RODpg-XJQe8)F)$rSTLZK*>U09@t{89DH1`-M8v(vk(0YmS!E;z4KDqAo zH0mbgzDTj5H^VpyuMnT$AR4gtDEyfhDHIBY!kzdAV~M>`0&dXI00000NkvXXu0mjf DY6so0 diff --git a/tests_zemu/snapshots/x-sign-init_validator/00012.png b/tests_zemu/snapshots/x-sign-init_validator/00012.png deleted file mode 100644 index 2f448f6c5f25a8ea27760909de2c3754d2ec3776..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 551 zcmV+?0@(eDP)Q%3b=gvyK%+G$dU!?|mf(5e3nZ5&!@I0Kn~h`9+W8s9$r=(Z+af zXoglBm-QDtWxmF6Ql{46;d|D^g?S#w(Kzojsf|=uxlp%DnW@SCtlRq@Eaz+lMR~OY zr?J}*vyDlAgRxeqe(h=QwM!#UGQ9&NcHk5%bIwNKltx?3X-1}M)kNFLL zF}(v+)xA+=LR4iuqd0S`>eppFo93kFrXBDvXYVqNwIvaGSlD(81f-yX^o_G+t)nX7 ziN~p!l`b60OcCjT)X)B@x(f|u3^5N)cjq0fm%B=LBYD+-CU;2p3v zQDIB?ciH8a5CGsFCaR(5Y5rz=#RhqZsYOavGQ_ZYl;@nN%>iiK1=l*Bv~A&22xqII zPU@m*>Q}^u9eV;&zOKR9izvIhrnC`iY0OiD>ve4YZ#@ql{m!yrEH~|dK-9xP%E;}d z?v>uF(HP6+f5IiWj3_IT@`(0y3_)h92c{!C1GB3$bYq`iaCYCk@eZJclE{N(L z8tS>?COTN&ed{C}S>82uqd7?SGG4KEuL;y_THt(?54Pi(S!fpqi;NF0h2;eR00000 p0000000000000000002Ej9(4Z8qrAjf6D*>002ovPDHLkV1g1@`J(^; diff --git a/tests_zemu/snapshots/x-sign-init_validator/00013.png b/tests_zemu/snapshots/x-sign-init_validator/00013.png deleted file mode 100644 index 8b7fd56bce4827fc4ff39898405eb80f09ce06b4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 392 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|{t3ba4!+nDh2V;HG8;9*4l+ z%dAiSn|>tjo_o5CS|fv*(yi)!E0kCSR^&(nH5uG}{b91^Qd?am!Glv)ztFES`QN*A z$|uGjvJZLd*{5wyy_{6f8|CSl$9C!wmy zN-6!o%0GVm_a|IgeYZz|NZ*D-d?z=Q|t2sp)WTVU&)&mZ=&XLwktDYV=c)s}lyvkMv+jsiiR!n9 i+86f%%|-?XGXF7t)RVU?v~83DiF>;GxvXIqJR)(_zt-``Jf&T8)}8F{h*a&n9-?{baY>W?Dy4aM^A-88?%8zX zkpEfbrB=HOY>u3fc^mkwby1&|6`SnZnG62p)ae(-|NWs9qRyk<)~4!Fp7TRqU)%qu z$TrFSl^61#-;zjSpV964L+(?$)65rVe!QrtDGqog@kVt;X^hXy877}g6rVr;yDxIK ze#W`jtow|bN0WXEPyhPW@wn4_;fv4g=bA66yq2?}En~woy&Vm5i|cktmpSe@yu5}} zYUX@FhK9OxWlr;xR+k$-500DfC7-%@k@eHo+ZWQ`TE*R9JnzKr;|4-HX*bU{e|BH9 z^JUCuN3OuNl3z~CsLg!CpS)z&8-6$WGe@*cgx^1$>7fq{GGtIN+x}Wdyz1Gm3B@2` MPgg&ebxsLQ09)y{jQ{`u diff --git a/tests_zemu/snapshots/x-sign-init_validator/00015.png b/tests_zemu/snapshots/x-sign-init_validator/00015.png deleted file mode 100644 index 9160fc9152fe033e8e272241283a0f67766e72b6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 363 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|=-zba4!+nDh2#v{17Gk3-;_ z67@Iro;SVi=NM_~%f@qlnWrD6>n!Zhs|eJ?&>y{qJwRP)rEIdz<&(dP@0LBywQZO; z`D2m9yGgHEGL(dpeS|G_1#J(0H9z=q&Gooz%r685WpA3Y@0xgI{fF5+|6|rS{GD9B zWtFG&Gpr~ z8moiTLVaqT!ZNha+gyk)RayJb+*&>;?A)E3FY52yk1my%{rAi6UDIk!zuc;~xRaJT zzad-vN5SpZTBazu+blUxIW^+V?yf3bYi-u{YW1nD6JkT0U=bZOm{O-82 ze)}h~O}~FcGurL&v!)sEeaC=92qJ1jda|r7i{Bx&q+QRBP$at^s;(iH=yVoU#q91* zYSET%!d2JM3q`($@-K?}ZAXS;X>#C&f(_BqPkE5Nm% z8=pr0DW4|PIV%4YR!R;W%R`s0PNiEEgG}_7$%LBdFUB0~#4fbcLy(z+sR%Cs00000 k0000000000001z}AGHWBtS)f~761SM07*qoM6N<$f;j-g?f?J) diff --git a/tests_zemu/snapshots/x-sign-init_validator/00017.png b/tests_zemu/snapshots/x-sign-init_validator/00017.png deleted file mode 100644 index 1e4be69934787c368c2b5ed677cc7f5a2470be3b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 355 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|`hpba4!+nDh2#G+&c}K^PbX0`eJS}y70`%8T>n^%dV>bk>TM}C(cF@9*Jbj^5WTF;gKGIO)y zjlJ*9*PE9W@jdm~5r5wEu#TD8y6+Pnh8_O<-8#^Bx$bnOy3REWn^jXeAFev)TXe-F zTky7j?62N_lL@yzwx7O!=&4O1W7^|)7fcr%%i5*3D%0_G;tl)cpW3Io3*7!cdXW1o sV&B=e%knGs=l(tai5cc!1_ryAe9w9}zGZ%X&;TUp>FVdQ&MBb@086r+N&o-= diff --git a/tests_zemu/snapshots/x-sign-init_validator/00018.png b/tests_zemu/snapshots/x-sign-init_validator/00018.png deleted file mode 100644 index 7e7f71bdbe72311b031c33e796fbcf9d90b304c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 493 zcmVa%jAO1NW; z?n0mWPC#(7*4*GY0Xg(#+Hp7gXO0u_8N9B7f*JBo$A0Fr0!FJHkIPW670}IryXXhM z2?##J-EuhveG(D?08b&ea7Zuq@YL@*>E=t_u!lT^uU5S+s=NoZFIKjf<)hpze`J4> zc0bPEtsVHIme_nNbxkT0U=bZOm{O-82 ze)}h~O}~FcGurL&v!)sEeaC=92qJ1jda|r7i{Bx&q+QRBP$at^s;(iH=yVoU#q91* zYSET%!d2JM3q`($@-K?}ZAXS;X>#C&f(_BqPkE5Nm% z8=pr0DW4|PIV%4YR!R;W%R`s0PNiEEgG}_7$%LBdFUB0~#4fbcLy(z+sR%Cs00000 k0000000000001z}AGHWBtS)f~761SM07*qoM6N<$f;j-g?f?J) diff --git a/tests_zemu/snapshots/x-sign-init_validator/00020.png b/tests_zemu/snapshots/x-sign-init_validator/00020.png deleted file mode 100644 index 1e4be69934787c368c2b5ed677cc7f5a2470be3b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 355 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|`hpba4!+nDh2#G+&c}K^PbX0`eJS}y70`%8T>n^%dV>bk>TM}C(cF@9*Jbj^5WTF;gKGIO)y zjlJ*9*PE9W@jdm~5r5wEu#TD8y6+Pnh8_O<-8#^Bx$bnOy3REWn^jXeAFev)TXe-F zTky7j?62N_lL@yzwx7O!=&4O1W7^|)7fcr%%i5*3D%0_G;tl)cpW3Io3*7!cdXW1o sV&B=e%knGs=l(tai5cc!1_ryAe9w9}zGZ%X&;TUp>FVdQ&MBb@086r+N&o-= diff --git a/tests_zemu/snapshots/x-sign-init_validator/00021.png b/tests_zemu/snapshots/x-sign-init_validator/00021.png deleted file mode 100644 index 8d9abd01a3a0f19a579d29d83b9cc302bd6aa6dd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 463 zcmV;=0WkiFP)1(b=Wx$c$rz$q76wg1000000N_c!yaU)F#<**| znOzjgiN3u9csdf`j089%0nQdqfSFa>>=L_fW#I%QdD7D#%jIDC1Z3$Ub?>99yC3fW z4l=Vm*Ll@1H~V4H3Rv`R)3sy*J_)S|XHhYyKy!5*+y7;az z%0o8cyOmw6pwo3el6z+S@N`O2ZUIqRO1 zvo&+^dz6t&R6tr0)kGYam+h7Q&x@a>S~sEmE|E`I<30000U=NIU8_}>g$nz{f0002ovPDHLk FV1oRy(MbRR diff --git a/tests_zemu/snapshots/x-sign-init_validator/00022.png b/tests_zemu/snapshots/x-sign-init_validator/00022.png deleted file mode 100644 index 1e4be69934787c368c2b5ed677cc7f5a2470be3b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 355 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|`hpba4!+nDh2#G+&c}K^PbX0`eJS}y70`%8T>n^%dV>bk>TM}C(cF@9*Jbj^5WTF;gKGIO)y zjlJ*9*PE9W@jdm~5r5wEu#TD8y6+Pnh8_O<-8#^Bx$bnOy3REWn^jXeAFev)TXe-F zTky7j?62N_lL@yzwx7O!=&4O1W7^|)7fcr%%i5*3D%0_G;tl)cpW3Io3*7!cdXW1o sV&B=e%knGs=l(tai5cc!1_ryAe9w9}zGZ%X&;TUp>FVdQ&MBb@086r+N&o-= diff --git a/tests_zemu/snapshots/x-sign-init_validator/00023.png b/tests_zemu/snapshots/x-sign-init_validator/00023.png deleted file mode 100644 index 8d9abd01a3a0f19a579d29d83b9cc302bd6aa6dd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 463 zcmV;=0WkiFP)1(b=Wx$c$rz$q76wg1000000N_c!yaU)F#<**| znOzjgiN3u9csdf`j089%0nQdqfSFa>>=L_fW#I%QdD7D#%jIDC1Z3$Ub?>99yC3fW z4l=Vm*Ll@1H~V4H3Rv`R)3sy*J_)S|XHhYyKy!5*+y7;az z%0o8cyOmw6pwo3el6z+S@N`O2ZUIqRO1 zvo&+^dz6t&R6tr0)kGYam+h7Q&x@a>S~sEmE|E`I<30000U=NIU8_}>g$nz{f0002ovPDHLk FV1oRy(MbRR diff --git a/tests_zemu/tests/transactions.test.ts b/tests_zemu/tests/transactions.test.ts index aa9de01f..4279a016 100644 --- a/tests_zemu/tests/transactions.test.ts +++ b/tests_zemu/tests/transactions.test.ts @@ -82,17 +82,6 @@ const TEST_DATA = [ 0xff: Buffer.from('039a4d90beb2ead23ef48cecc0039104f865dd3c6c89ee12b90defbe8205c319', 'hex'), } as { [index: number]: Buffer }, }, - { - name: 'init_validator', - blob: Buffer.from('1d0000006c6f63616c6e65742e6664633665356661643365356535326433662d300023000000323032332d31312d31365431343a33333a31302e3636383135373431372b30303a3030b22ee9c99e4872bab5ba08de9ca303e91752467dfff0f9c553e48fd59710dd25f19e162831bc6d5727ccc116dffc00e7a8a63e70c7b839a8d8c88c411bf7cc470101000000000000000000000000000000000000000000000000000000000000000032fdd4e57f56519541491312d4e9089032244eca0048998ffa0340c473b72dad3604abd76581e71e4a334d0708ef754a0adcec66d81500000000000000a8610000000000000003000000010cd78cd88b0100000053e9023f2edc55e90bdcf6024760140a91a7904cb4a529cb1707ea3d34ee685a010c00000076705f757365722e7761736d020cd78cd88b01000000aa3b3dd227cd3199b3cef164b679fc62a4e6531ffce547eadb766c050d5fabfd011600000074785f696e69745f76616c696461746f722e7761736d000cd78cd88b0100001a010000010000000048998ffa0340c473b72dad3604abd76581e71e4a334d0708ef754a0adcec66d80100b8a1bde0e03a61c147c6f1213e0951e8947c3eabc7a81940bdb9a46da2575df1034f85391fb1d43071b7e020c2709923df792661f6436f0ee88790dd5564238fdf02ea1b59f3111bac9ec7715f569299bfd384d701d405734d7a7514df86bf5e993500bfce4de74239e46afaec08bbd6157d082a21554220a1d9e3a470d7a346aa7d5a00743ba40b00000000000000000000000000000000000000000000000000000000e40b5402000000000000000000000000000000000000000000000000000000090000006d65406d652e636f6d000000832542bf65dcc5e4846a4e9e539946ce7c81f566337c25bb4adb33c0ee16dcbe', 'hex'), - sectionHashes: { - 0: Buffer.from('1d050abff007fa2a0d4b9d133f65f6dd6c5a8334ea927a666581265267a436ce', 'hex'), - 1: Buffer.from('832542bf65dcc5e4846a4e9e539946ce7c81f566337c25bb4adb33c0ee16dcbe', 'hex'), - 2: Buffer.from('b22ee9c99e4872bab5ba08de9ca303e91752467dfff0f9c553e48fd59710dd25', 'hex'), - 3: Buffer.from('f19e162831bc6d5727ccc116dffc00e7a8a63e70c7b839a8d8c88c411bf7cc47', 'hex'), - 0xff: Buffer.from('777d23250a5436e408a1843f14477b1219bb2db05f5ec439badcfb4f6a70448b', 'hex'), - } as { [index: number]: Buffer }, - }, { name: 'update_vp', blob: Buffer.from('1d0000006c6f63616c6e65742e6664633665356661643365356535326433662d300023000000323032332d31312d31365431343a33333a30352e3139313137373835302b30303a30305df9287d1f3b893eef4643c47a4d40a8838c9fc6a39bbda275e20c308f6bb0a290f781fd267026dfd1335d092f0a46d9cf00b8816c5997e55eaf88e0e5cbf3dc0101000000000000000000000000000000000000000000000000000000000000000032fdd4e57f56519541491312d4e9089032244eca009fd0df101ba3e91d24f555893ae1bf0b271bd98363d6d4c659876731fe4a75171400000000000000a861000000000000000500000001d2c18cd88b0100000053e9023f2edc55e90bdcf6024760140a91a7904cb4a529cb1707ea3d34ee685a010c00000076705f757365722e7761736d02d3c18cd88b0100000049a9b2023b4858255845bfa3949e314f241858949214950471b0b598febd7248011600000074785f7570646174655f6163636f756e742e7761736d00d3c18cd88b0100009f00000000ba4c9645a23343896227110a902af84e7b4a4bb301a911dbc336d7feab85e374e331542d94155fe25219bad6d7f497a2e5d9d6a41703000000009fd0df101ba3e91d24f555893ae1bf0b271bd98363d6d4c659876731fe4a75170048998ffa0340c473b72dad3604abd76581e71e4a334d0708ef754a0adcec66d80075c251407a7ed91b8114f90b6f454db9071a290458e2db36106b99daf4bf83b101020301000000ae19fb14011c761f61ea480a4d9fffd1abb049be4715f5344d6f60093470c0800000ba4c9645a23343896227110a902af84e7b4a4bb30100000000000d1cfc74bd04c329f14c466b7b17ac72b00818db85bb1069415a898bfa95cd21ae416cfc38e190ff2a631f1f9dd700556d5ad25eef92a5f5dffa5af3a723390c03050000009ac0dfc46072a5736aa2257015d54ecb5490f6811bf9ffee38662c38cecb1ea8a911dbc336d7feab85e374e331542d94155fe25219bad6d7f497a2e5d9d6a4175df9287d1f3b893eef4643c47a4d40a8838c9fc6a39bbda275e20c308f6bb0a290f781fd267026dfd1335d092f0a46d9cf00b8816c5997e55eaf88e0e5cbf3dc66f097755345c31d1ccf8b764bbbd8ff8b8496f7ac88a32f4967b98138b642aa0101000000009fd0df101ba3e91d24f555893ae1bf0b271bd98363d6d4c659876731fe4a7517010000000000e7c0e073a254bccce92bb5d6b35da86f6ee1b300fa6d3f54d1414a06745a895d32d5b86fe029e0ab456d2ade56f79d066f3e9c6dd80088c9fdc6e00a4a472f0a', 'hex'), From 5a9554acbe622e763ed7647da45e29518f4fed3f Mon Sep 17 00:00:00 2001 From: ftheirs Date: Tue, 12 Dec 2023 10:16:45 -0300 Subject: [PATCH 5/8] update deps --- app/Makefile | 1 - deps/ledger-secure-sdk | 2 +- deps/ledger-zxlib | 2 +- deps/nanos-secure-sdk | 2 +- js/package.json | 14 +++++++------- tests_zemu/package.json | 18 +++++++++--------- 6 files changed, 19 insertions(+), 20 deletions(-) diff --git a/app/Makefile b/app/Makefile index 309c2cb8..34bef69c 100755 --- a/app/Makefile +++ b/app/Makefile @@ -55,7 +55,6 @@ endif APP_LOAD_PARAMS = --curve ed25519 $(COMMON_LOAD_PARAMS) --path $(APPPATH) -NANOS_STACK_SIZE := 2555 include $(CURDIR)/../deps/ledger-zxlib/makefiles/Makefile.devices $(info TARGET_NAME = [$(TARGET_NAME)]) diff --git a/deps/ledger-secure-sdk b/deps/ledger-secure-sdk index 80309475..00e153de 160000 --- a/deps/ledger-secure-sdk +++ b/deps/ledger-secure-sdk @@ -1 +1 @@ -Subproject commit 803094754f77f23c556b065317bceda3b6d2c002 +Subproject commit 00e153de17b5f2be271aa09518358b5412d63a18 diff --git a/deps/ledger-zxlib b/deps/ledger-zxlib index 82e20147..0a865227 160000 --- a/deps/ledger-zxlib +++ b/deps/ledger-zxlib @@ -1 +1 @@ -Subproject commit 82e20147eeacb09234cce1114fd42ba255ae1077 +Subproject commit 0a865227e4ea08a035cfacb255d5cbb1cad61bfd diff --git a/deps/nanos-secure-sdk b/deps/nanos-secure-sdk index 40a60bc8..0532bf20 160000 --- a/deps/nanos-secure-sdk +++ b/deps/nanos-secure-sdk @@ -1 +1 @@ -Subproject commit 40a60bc83c6b1422e047c36beb4018891bc34b12 +Subproject commit 0532bf20fbbb11dd08dada62060f8337097b6078 diff --git a/js/package.json b/js/package.json index 67a6773f..b8e278b4 100644 --- a/js/package.json +++ b/js/package.json @@ -36,22 +36,22 @@ }, "devDependencies": { "@types/ledgerhq__hw-transport": "^4.21.8", - "@typescript-eslint/eslint-plugin": "^6.13.1", - "@typescript-eslint/parser": "^6.13.1", + "@typescript-eslint/eslint-plugin": "^6.14.0", + "@typescript-eslint/parser": "^6.14.0", "bip32": "^4.0.0", "bip39": "^3.1.0", - "core-js": "^3.33.3", + "core-js": "^3.34.0", "crypto-js": "4.2.0", - "eslint": "^8.54.0", - "eslint-config-prettier": "^9.0.0", + "eslint": "^8.55.0", + "eslint-config-prettier": "^9.1.0", "eslint-plugin-import": "^2.29.0", "eslint-plugin-jest": "^27.6.0", "eslint-plugin-prettier": "^5.0.1", "jest": "^29.7.0", "leb128": "^0.0.5", - "prettier": "^3.1.0", + "prettier": "^3.1.1", "secp256k1": "^5.0.0", - "typescript": "^5.3.2" + "typescript": "^5.3.3" }, "moduleDirectories": [ "node_modules", diff --git a/tests_zemu/package.json b/tests_zemu/package.json index fe851026..165402ab 100644 --- a/tests_zemu/package.json +++ b/tests_zemu/package.json @@ -19,18 +19,18 @@ }, "dependencies": { "@zondax/ledger-namada": "../js", - "@zondax/zemu": "^0.45.0" + "@zondax/zemu": "^0.46.0" }, "devDependencies": { - "@types/jest": "^29.5.6", + "@types/jest": "^29.5.11", "@types/ledgerhq__hw-transport": "^4.21.6", - "@typescript-eslint/eslint-plugin": "^6.13.1", - "@typescript-eslint/parser": "^6.13.1", + "@typescript-eslint/eslint-plugin": "^6.14.0", + "@typescript-eslint/parser": "^6.14.0", "blakejs": "^1.1.1", "crypto-js": "4.2.0", "ed25519-supercop": "^2.0.1", - "eslint": "^8.52.0", - "eslint-config-prettier": "^9.0.0", + "eslint": "^8.55.0", + "eslint-config-prettier": "^9.1.0", "eslint-plugin-import": "^2.29.0", "eslint-plugin-jest": "^27.4.3", "eslint-plugin-prettier": "^5.0.1", @@ -38,9 +38,9 @@ "js-sha256": "0.10.1", "jssha": "^3.3.1", "leb128": "^0.0.5", - "prettier": "^3.0.3", + "prettier": "^3.1.1", "ts-jest": "^29.1.1", - "ts-node": "^10.9.1", - "typescript": "^5.2.2" + "ts-node": "^10.9.2", + "typescript": "^5.3.3" } } From fc26abb382705f04a14aaea3be47c0f6d17238c2 Mon Sep 17 00:00:00 2001 From: ftheirs Date: Tue, 12 Dec 2023 10:17:05 -0300 Subject: [PATCH 6/8] bump version & update snapshots --- app/Makefile.version | 2 +- tests_zemu/snapshots/s-mainmenu/00004.png | Bin 434 -> 428 bytes tests_zemu/snapshots/s-mainmenu/00010.png | Bin 434 -> 428 bytes tests_zemu/snapshots/sp-mainmenu/00004.png | Bin 359 -> 360 bytes tests_zemu/snapshots/sp-mainmenu/00010.png | Bin 359 -> 360 bytes tests_zemu/snapshots/st-mainmenu/00001.png | Bin 13442 -> 13471 bytes tests_zemu/snapshots/x-mainmenu/00004.png | Bin 359 -> 360 bytes tests_zemu/snapshots/x-mainmenu/00010.png | Bin 359 -> 360 bytes 8 files changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Makefile.version b/app/Makefile.version index cd7b4895..f284f298 100644 --- a/app/Makefile.version +++ b/app/Makefile.version @@ -3,4 +3,4 @@ APPVERSION_M=0 # This is the `spec_version` field of `Runtime` APPVERSION_N=0 # This is the patch version of this release -APPVERSION_P=12 +APPVERSION_P=13 diff --git a/tests_zemu/snapshots/s-mainmenu/00004.png b/tests_zemu/snapshots/s-mainmenu/00004.png index f80937ebbbe23859cd6380a64c0a66987988a728..176b46dfe6383c5c67373b58c428315f06bbae9e 100644 GIT binary patch delta 402 zcmV;D0d4-W1FQp(B!6>BL_t(|ob8#*5`r)cMbUx(|6muosK$~eAwgQ=aL>3<=mYX< z5~m3O0Kiqb4ch1V_-wd*f0pl^_Ug3w(cI5|fU7f)-thV0wn@%0Rc2d;ku8f3#HO(8 z#^RYs-~qSg{h8MCB2~3I6Q_ugM_W7%V?ChQG84oOx!9Ke+c2{>G((B;tUeM(krGU_1!JCIf?*3W` wUkK{gL#{E-XR@$jnVVz0c{QY#$2m z7{gKk008_e)1Y~tkI#hj_viAx(_EbfKbqUwH}LP=M^E^CNNv*MC``6XGt#oUfJ7H@ z-5ER+30A-~zdvPdFLG7wGqsBvd91*XEl50000BL_t(|ob8#*5`r)cMbUx(|6muosK$~eAwgQ=aL>3<=mYX< z5~m3O0Kiqb4ch1V_-wd*f0pl^_Ug3w(cI5|fU7f)-thV0wn@%0Rc2d;ku8f3#HO(8 z#^RYs-~qSg{h8MCB2~3I6Q_ugM_W7%V?ChQG84oOx!9Ke+c2{>G((B;tUeM(krGU_1!JCIf?*3W` wUkK{gL#{E-XR@$jnVVz0c{QY#$2m z7{gKk008_e)1Y~tkI#hj_viAx(_EbfKbqUwH}LP=M^E^CNNv*MC``6XGt#oUfJ7H@ z-5ER+30A-~zdvPdFLG7wGqsBvd91*XEl500000qAc{4*VQdRC{#PkSHTfmio2x&vR9WhusHE{1sidW=_2)i!6uBtw(avn`zjPFh>w*C2vVDQc5d&_-Yt9Y=cgL~Ek8UlNc8`=-5`tp zZ7QJ_{hP_bNM@mtyoX2HhIjC4Xp4hY%=S~osu8Vv delta 332 zcmaFC^qgseO1++^i(^Q|oVPb4g$^l*xCCyw!}&X2sQM%GQl-f$3hPb3*SIRHT;=ar zRLp*d@o%5nbZYq<{DJR88`}Qy>6&tTT_xStetV>mP>tFrRh+n5M>0f=dajk}gUw%*iH>CW`zrN8nd)fOdTmf3%lNP<1v+B`o4TQfL arhj7DIq#g#r>{NnAW=_OKbLh*2~7YOj+|ov diff --git a/tests_zemu/snapshots/sp-mainmenu/00010.png b/tests_zemu/snapshots/sp-mainmenu/00010.png index 17166cc025e28d0c59b05b40c60b2a7021d0df28..0dfb566ac23599114048affd3fd079a580f672ac 100644 GIT binary patch delta 333 zcmV-T0kZz*0_XyeB!4eSL_t(|obB0Ba)Tfc08rcMO}zh+yh}f58G~qv7TGrMeVM4p z?6Nq*Gywnr000000A0L|ef+X4>0qAc{4*VQdRC{#PkSHTfmio2x&vR9WhusHE{1sidW=_2)i!6uBtw(avn`zjPFh>w*C2vVDQc5d&_-Yt9Y=cgL~Ek8UlNc8`=-5`tp zZ7QJ_{hP_bNM@mtyoX2HhIjC4Xp4hY%=S~osu8Vv delta 332 zcmaFC^qgseO1++^i(^Q|oVPb4g$^l*xCCyw!}&X2sQM%GQl-f$3hPb3*SIRHT;=ar zRLp*d@o%5nbZYq<{DJR88`}Qy>6&tTT_xStetV>mP>tFrRh+n5M>0f=dajk}gUw%*iH>CW`zrN8nd)fOdTmf3%lNP<1v+B`o4TQfL arhj7DIq#g#r>{NnAW=_OKbLh*2~7YOj+|ov diff --git a/tests_zemu/snapshots/st-mainmenu/00001.png b/tests_zemu/snapshots/st-mainmenu/00001.png index 9609e64ce5258d22530f0f0e3f35a979da91f2d6..6d966217773f11d3d1ad71f9692a478a30d11fce 100644 GIT binary patch literal 13471 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 literal 13442 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 delta 332 zcmaFC^qgseO1++^i(^Q|oVPb4g$^l*xCCyw!}&X2sQM%GQl-f$3hPb3*SIRHT;=ar zRLp*d@o%5nbZYq<{DJR88`}Qy>6&tTT_xStetV>mP>tFrRh+n5M>0f=dajk}gUw%*iH>CW`zrN8nd)fOdTmf3%lNP<1v+B`o4TQfL arhj7DIq#g#r>{NnAW=_OKbLh*2~7YOj+|ov diff --git a/tests_zemu/snapshots/x-mainmenu/00010.png b/tests_zemu/snapshots/x-mainmenu/00010.png index 17166cc025e28d0c59b05b40c60b2a7021d0df28..0dfb566ac23599114048affd3fd079a580f672ac 100644 GIT binary patch delta 333 zcmV-T0kZz*0_XyeB!4eSL_t(|obB0Ba)Tfc08rcMO}zh+yh}f58G~qv7TGrMeVM4p z?6Nq*Gywnr000000A0L|ef+X4>0qAc{4*VQdRC{#PkSHTfmio2x&vR9WhusHE{1sidW=_2)i!6uBtw(avn`zjPFh>w*C2vVDQc5d&_-Yt9Y=cgL~Ek8UlNc8`=-5`tp zZ7QJ_{hP_bNM@mtyoX2HhIjC4Xp4hY%=S~osu8Vv delta 332 zcmaFC^qgseO1++^i(^Q|oVPb4g$^l*xCCyw!}&X2sQM%GQl-f$3hPb3*SIRHT;=ar zRLp*d@o%5nbZYq<{DJR88`}Qy>6&tTT_xStetV>mP>tFrRh+n5M>0f=dajk}gUw%*iH>CW`zrN8nd)fOdTmf3%lNP<1v+B`o4TQfL arhj7DIq#g#r>{NnAW=_OKbLh*2~7YOj+|ov From 445bd625c39c63a9edab9006c5c5e045f1154b65 Mon Sep 17 00:00:00 2001 From: ftheirs Date: Tue, 12 Dec 2023 10:40:37 -0300 Subject: [PATCH 7/8] update Ledger CI --- .github/workflows/guidelines_enforcer.yml | 3 -- app/src/crypto.c | 50 +++++++++++------------ app/src/crypto_helper.c | 39 +++++++++--------- app/src/leb128.c | 1 + app/src/leb128.h | 1 + ledger_app.toml | 7 ++++ 6 files changed, 54 insertions(+), 47 deletions(-) create mode 100644 ledger_app.toml diff --git a/.github/workflows/guidelines_enforcer.yml b/.github/workflows/guidelines_enforcer.yml index 4da97c9e..fdaf9f27 100644 --- a/.github/workflows/guidelines_enforcer.yml +++ b/.github/workflows/guidelines_enforcer.yml @@ -21,6 +21,3 @@ jobs: guidelines_enforcer: name: Call Ledger guidelines_enforcer uses: LedgerHQ/ledger-app-workflows/.github/workflows/reusable_guidelines_enforcer.yml@v1 - with: - relative_app_directory: app - run_for_devices: '["nanos", "nanosp", "nanox", "stax"]' diff --git a/app/src/crypto.c b/app/src/crypto.c index 9b593f5d..9b0ca4e3 100644 --- a/app/src/crypto.c +++ b/app/src/crypto.c @@ -47,11 +47,11 @@ static zxerr_t crypto_extractPublicKey_ed25519(uint8_t *pubKey, uint16_t pubKeyL privateKeyData, NULL, NULL, - 0)) + 0)); - CATCH_CXERROR(cx_ecfp_init_private_key_no_throw(CX_CURVE_Ed25519, privateKeyData, SK_LEN_25519, &cx_privateKey)) - CATCH_CXERROR(cx_ecfp_init_public_key_no_throw(CX_CURVE_Ed25519, NULL, 0, &cx_publicKey)) - CATCH_CXERROR(cx_ecfp_generate_pair_no_throw(CX_CURVE_Ed25519, &cx_publicKey, &cx_privateKey, 1)) + CATCH_CXERROR(cx_ecfp_init_private_key_no_throw(CX_CURVE_Ed25519, privateKeyData, SK_LEN_25519, &cx_privateKey)); + CATCH_CXERROR(cx_ecfp_init_public_key_no_throw(CX_CURVE_Ed25519, NULL, 0, &cx_publicKey)); + CATCH_CXERROR(cx_ecfp_generate_pair_no_throw(CX_CURVE_Ed25519, &cx_publicKey, &cx_privateKey, 1)); for (unsigned int i = 0; i < PK_LEN_25519; i++) { pubKey[i] = cx_publicKey.W[64 - i]; } @@ -88,15 +88,15 @@ static zxerr_t crypto_sign_ed25519(uint8_t *output, uint16_t outputLen, const ui privateKeyData, NULL, NULL, - 0)) + 0)); - CATCH_CXERROR(cx_ecfp_init_private_key_no_throw(CX_CURVE_Ed25519, privateKeyData, SK_LEN_25519, &cx_privateKey)) + CATCH_CXERROR(cx_ecfp_init_private_key_no_throw(CX_CURVE_Ed25519, privateKeyData, SK_LEN_25519, &cx_privateKey)); CATCH_CXERROR(cx_eddsa_sign_no_throw(&cx_privateKey, CX_SHA512, message, messageLen, output, - outputLen)) + outputLen)); error = zxerr_ok; catch_cx_error: @@ -125,7 +125,7 @@ zxerr_t crypto_fillAddress_ed25519(uint8_t *buffer, uint16_t bufferLen, uint16_t if (bufferLen < PK_LEN_25519_PLUS_TAG + ADDRESS_LEN_TESTNET) { return zxerr_unknown; } - CHECK_ZXERR(crypto_extractPublicKey_ed25519(answer->publicKey + 1, PK_LEN_25519)) + CHECK_ZXERR(crypto_extractPublicKey_ed25519(answer->publicKey + 1, PK_LEN_25519)); const bool isTestnet = hdPath[1] == HDPATH_1_TESTNET; outLen = crypto_encodePubkey_ed25519(answer->address, sizeof(answer->address), answer->publicKey + 1, isTestnet); @@ -160,9 +160,9 @@ static zxerr_t crypto_hashFeeHeader(const header_t *header, uint8_t *output, uin cx_sha256_t sha256 = {0}; cx_sha256_init(&sha256); const uint8_t discriminant = 0x07; - cx_sha256_update(&sha256, &discriminant, sizeof(discriminant)); - cx_sha256_update(&sha256, header->extBytes.ptr, header->extBytes.len); - cx_sha256_final(&sha256, output); + CHECK_CX_OK(cx_sha256_update(&sha256, &discriminant, sizeof(discriminant))); + CHECK_CX_OK(cx_sha256_update(&sha256, header->extBytes.ptr, header->extBytes.len)); + CHECK_CX_OK(cx_sha256_final(&sha256, output)); return zxerr_ok; } @@ -174,11 +174,11 @@ static zxerr_t crypto_hashRawHeader(const header_t *header, uint8_t *output, uin cx_sha256_t sha256 = {0}; cx_sha256_init(&sha256); const uint8_t discriminant = 0x07; - cx_sha256_update(&sha256, &discriminant, sizeof(discriminant)); - cx_sha256_update(&sha256, header->bytes.ptr, header->bytes.len); + CHECK_CX_OK(cx_sha256_update(&sha256, &discriminant, sizeof(discriminant))); + CHECK_CX_OK(cx_sha256_update(&sha256, header->bytes.ptr, header->bytes.len)); const uint8_t header_discriminant = 0x00; - cx_sha256_update(&sha256, &header_discriminant, sizeof(header_discriminant)); - cx_sha256_final(&sha256, output); + CHECK_CX_OK(cx_sha256_update(&sha256, &header_discriminant, sizeof(header_discriminant))); + CHECK_CX_OK(cx_sha256_final(&sha256, output)); return zxerr_ok; } @@ -190,15 +190,15 @@ zxerr_t crypto_hashSigSection(const signature_section_t *signature_section, cons cx_sha256_t sha256 = {0}; cx_sha256_init(&sha256); if (prefix != NULL) { - cx_sha256_update(&sha256, prefix, prefixLen); + CHECK_CX_OK(cx_sha256_update(&sha256, prefix, prefixLen)); } - cx_sha256_update(&sha256, (uint8_t*) &signature_section->hashes.hashesLen, 4); - cx_sha256_update(&sha256, signature_section->hashes.hashes.ptr, HASH_LEN * signature_section->hashes.hashesLen); - cx_sha256_update(&sha256, (uint8_t*) &signature_section->signerDiscriminant, 1); + CHECK_CX_OK(cx_sha256_update(&sha256, (uint8_t*) &signature_section->hashes.hashesLen, 4)); + CHECK_CX_OK(cx_sha256_update(&sha256, signature_section->hashes.hashes.ptr, HASH_LEN * signature_section->hashes.hashesLen)); + CHECK_CX_OK(cx_sha256_update(&sha256, (uint8_t*) &signature_section->signerDiscriminant, 1)); switch (signature_section->signerDiscriminant) { case PubKeys: { - cx_sha256_update(&sha256, (uint8_t*) &signature_section->pubKeysLen, 4); + CHECK_CX_OK(cx_sha256_update(&sha256, (uint8_t*) &signature_section->pubKeysLen, 4)); uint32_t pos = 0; for (uint32_t i = 0; i < signature_section->pubKeysLen; i++) { uint8_t tag = signature_section->pubKeys.ptr[pos++]; @@ -211,19 +211,19 @@ zxerr_t crypto_hashSigSection(const signature_section_t *signature_section, cons pos += pubKeySize; } if(pos > 0) { - cx_sha256_update(&sha256, signature_section->pubKeys.ptr, pos); + CHECK_CX_OK(cx_sha256_update(&sha256, signature_section->pubKeys.ptr, pos)); } break; } case Address: - cx_sha256_update(&sha256, signature_section->address.ptr, signature_section->address.len); + CHECK_CX_OK(cx_sha256_update(&sha256, signature_section->address.ptr, signature_section->address.len)); break; default: return zxerr_invalid_crypto_settings; } - cx_sha256_update(&sha256, (const uint8_t*) &signature_section->signaturesLen, 4); + CHECK_CX_OK(cx_sha256_update(&sha256, (const uint8_t*) &signature_section->signaturesLen, 4)); uint32_t pos = 0; for (uint32_t i = 0; i < signature_section->signaturesLen; i++) { // Skip the signature's 1 byte index @@ -238,9 +238,9 @@ zxerr_t crypto_hashSigSection(const signature_section_t *signature_section, cons pos += signatureSize; } if(pos > 0) { - cx_sha256_update(&sha256, signature_section->indexedSignatures.ptr, pos); + CHECK_CX_OK(cx_sha256_update(&sha256, signature_section->indexedSignatures.ptr, pos)); } - cx_sha256_final(&sha256, output); + CHECK_CX_OK(cx_sha256_final(&sha256, output)); return zxerr_ok; } diff --git a/app/src/crypto_helper.c b/app/src/crypto_helper.c index 370e948c..f44998b2 100644 --- a/app/src/crypto_helper.c +++ b/app/src/crypto_helper.c @@ -18,6 +18,7 @@ #include "bech32.h" #include "zxformat.h" #include "leb128.h" +#include "zxmacros.h" #ifdef LEDGER_SPECIFIC #include "bolos_target.h" @@ -130,14 +131,14 @@ zxerr_t crypto_hashExtraDataSection(const section_t *extraData, uint8_t *output, #if defined(TARGET_NANOS) || defined(TARGET_NANOS2) || defined(TARGET_NANOX) || defined(TARGET_STAX) cx_sha256_t sha256 = {0}; cx_sha256_init(&sha256); - cx_sha256_update(&sha256, &extraData->discriminant, 1); - cx_sha256_update(&sha256, extraData->salt.ptr, extraData->salt.len); - cx_sha256_update(&sha256, extraData->bytes.ptr, extraData->bytes.len); + CHECK_CX_OK(cx_sha256_update(&sha256, &extraData->discriminant, 1)); + CHECK_CX_OK(cx_sha256_update(&sha256, extraData->salt.ptr, extraData->salt.len)); + CHECK_CX_OK(cx_sha256_update(&sha256, extraData->bytes.ptr, extraData->bytes.len)); uint8_t has_tag = (extraData->tag.ptr == NULL) ? 0 : 1; - cx_sha256_update(&sha256, &has_tag, 1); - cx_sha256_update(&sha256, (uint8_t*) &extraData->tag.len, has_tag*sizeof(extraData->tag.len)); - cx_sha256_update(&sha256, extraData->tag.ptr, has_tag*extraData->tag.len); - cx_sha256_final(&sha256, output); + CHECK_CX_OK(cx_sha256_update(&sha256, &has_tag, 1)); + CHECK_CX_OK(cx_sha256_update(&sha256, (uint8_t*) &extraData->tag.len, has_tag*sizeof(extraData->tag.len))); + CHECK_CX_OK(cx_sha256_update(&sha256, extraData->tag.ptr, has_tag*extraData->tag.len)); + CHECK_CX_OK(cx_sha256_final(&sha256, output)); #else picohash_ctx_t sha256 = {0}; picohash_init_sha256(&sha256); @@ -162,11 +163,11 @@ zxerr_t crypto_hashDataSection(const section_t *data, uint8_t *output, uint32_t #if defined(TARGET_NANOS) || defined(TARGET_NANOS2) || defined(TARGET_NANOX) || defined(TARGET_STAX) cx_sha256_t sha256 = {0}; cx_sha256_init(&sha256); - cx_sha256_update(&sha256, &data->discriminant, 1); - cx_sha256_update(&sha256, data->salt.ptr, data->salt.len); - cx_sha256_update(&sha256, (uint8_t*) &data->bytes.len, sizeof(data->bytes.len)); - cx_sha256_update(&sha256, data->bytes.ptr, data->bytes.len); - cx_sha256_final(&sha256, output); + CHECK_CX_OK(cx_sha256_update(&sha256, &data->discriminant, 1)); + CHECK_CX_OK(cx_sha256_update(&sha256, data->salt.ptr, data->salt.len)); + CHECK_CX_OK(cx_sha256_update(&sha256, (uint8_t*) &data->bytes.len, sizeof(data->bytes.len))); + CHECK_CX_OK(cx_sha256_update(&sha256, data->bytes.ptr, data->bytes.len)); + CHECK_CX_OK(cx_sha256_final(&sha256, output)); #else picohash_ctx_t sha256 = {0}; picohash_init_sha256(&sha256); @@ -188,14 +189,14 @@ zxerr_t crypto_hashCodeSection(const section_t *code, uint8_t *output, uint32_t #if defined(TARGET_NANOS) || defined(TARGET_NANOS2) || defined(TARGET_NANOX) || defined(TARGET_STAX) cx_sha256_t sha256 = {0}; cx_sha256_init(&sha256); - cx_sha256_update(&sha256, &code->discriminant, 1); - cx_sha256_update(&sha256, code->salt.ptr, code->salt.len); - cx_sha256_update(&sha256, code->bytes.ptr, code->bytes.len); + CHECK_CX_OK(cx_sha256_update(&sha256, &code->discriminant, 1)); + CHECK_CX_OK(cx_sha256_update(&sha256, code->salt.ptr, code->salt.len)); + CHECK_CX_OK(cx_sha256_update(&sha256, code->bytes.ptr, code->bytes.len)); uint8_t has_tag = (code->tag.ptr == NULL) ? 0 : 1; - cx_sha256_update(&sha256, &has_tag, 1); - cx_sha256_update(&sha256, (uint8_t*) &code->tag.len, has_tag*sizeof(code->tag.len)); - cx_sha256_update(&sha256, code->tag.ptr, has_tag*code->tag.len); - cx_sha256_final(&sha256, output); + CHECK_CX_OK(cx_sha256_update(&sha256, &has_tag, 1)); + CHECK_CX_OK(cx_sha256_update(&sha256, (uint8_t*) &code->tag.len, has_tag*sizeof(code->tag.len))); + CHECK_CX_OK(cx_sha256_update(&sha256, code->tag.ptr, has_tag*code->tag.len)); + CHECK_CX_OK(cx_sha256_final(&sha256, output)); #else picohash_ctx_t sha256 = {0}; picohash_init_sha256(&sha256); diff --git a/app/src/leb128.c b/app/src/leb128.c index 1b5ab2a3..d6c1fdd3 100644 --- a/app/src/leb128.c +++ b/app/src/leb128.c @@ -14,6 +14,7 @@ * limitations under the License. ******************************************************************************* */ #include "leb128.h" +#include zxerr_t encodeLEB128(uint64_t number, uint8_t *encoded, uint8_t encodedLen, uint8_t *encodedBytes) { if (encoded == NULL || encodedBytes == NULL) { diff --git a/app/src/leb128.h b/app/src/leb128.h index f5da34f9..922f3773 100644 --- a/app/src/leb128.h +++ b/app/src/leb128.h @@ -20,6 +20,7 @@ extern "C" { #endif #include +#include #define MAX_LEB128_OUTPUT 10 diff --git a/ledger_app.toml b/ledger_app.toml new file mode 100644 index 00000000..3e4cbb1f --- /dev/null +++ b/ledger_app.toml @@ -0,0 +1,7 @@ +[app] +build_directory = "./app/" +sdk = "C" +devices = ["nanos", "nanox", "nanos+", "stax"] + +[tests] +unit_directory = "./tests/" From b5939d132939828e9f83ceaeec89d394dd0dfea6 Mon Sep 17 00:00:00 2001 From: ftheirs Date: Tue, 12 Dec 2023 14:48:51 -0300 Subject: [PATCH 8/8] remove unused code --- app/src/crypto.c | 3 +-- app/src/crypto_helper.c | 13 +++++-------- app/src/crypto_helper.h | 3 +-- tests/parser_impl.cpp | 2 +- 4 files changed, 8 insertions(+), 13 deletions(-) diff --git a/app/src/crypto.c b/app/src/crypto.c index 9b0ca4e3..f9879938 100644 --- a/app/src/crypto.c +++ b/app/src/crypto.c @@ -127,8 +127,7 @@ zxerr_t crypto_fillAddress_ed25519(uint8_t *buffer, uint16_t bufferLen, uint16_t } CHECK_ZXERR(crypto_extractPublicKey_ed25519(answer->publicKey + 1, PK_LEN_25519)); - const bool isTestnet = hdPath[1] == HDPATH_1_TESTNET; - outLen = crypto_encodePubkey_ed25519(answer->address, sizeof(answer->address), answer->publicKey + 1, isTestnet); + outLen = crypto_encodePubkey_ed25519(answer->address, sizeof(answer->address), answer->publicKey + 1); if (outLen == 0) { MEMZERO(buffer, bufferLen); diff --git a/app/src/crypto_helper.c b/app/src/crypto_helper.c index f44998b2..1ca2d11f 100644 --- a/app/src/crypto_helper.c +++ b/app/src/crypto_helper.c @@ -71,17 +71,15 @@ static zxerr_t crypto_publicKeyHash_ed25519(uint8_t *publicKeyHash, const uint8_ return zxerr_ok; } -uint8_t crypto_encodePubkey_ed25519(uint8_t *buffer, uint16_t bufferLen, const uint8_t *pubkey, bool isTestnet) { +uint8_t crypto_encodePubkey_ed25519(uint8_t *buffer, uint16_t bufferLen, const uint8_t *pubkey) { if (buffer == NULL || pubkey == NULL) { return 0; } - if ((bufferLen < ADDRESS_LEN_TESTNET && isTestnet) || bufferLen < ADDRESS_LEN_MAINNET) { + if (bufferLen < ADDRESS_LEN_TESTNET) { return 0; } - const char *hrp = isTestnet ? "tnam" : "a"; - // Step 1: Compute the hash of the Ed25519 public key uint8_t publicKeyHash[21] = {0}; crypto_publicKeyHash_ed25519(publicKeyHash, pubkey); @@ -90,7 +88,7 @@ uint8_t crypto_encodePubkey_ed25519(uint8_t *buffer, uint16_t bufferLen, const u char addr_out[79] = {0}; zxerr_t err = bech32EncodeFromBytes(addr_out, sizeof(addr_out), - hrp, + "tnam", publicKeyHash, sizeof(publicKeyHash), 1, @@ -100,9 +98,8 @@ uint8_t crypto_encodePubkey_ed25519(uint8_t *buffer, uint16_t bufferLen, const u return 0; } - const uint8_t addressLen = isTestnet ? ADDRESS_LEN_TESTNET : ADDRESS_LEN_MAINNET; - memcpy(buffer, addr_out, addressLen); - return addressLen; + memcpy(buffer, addr_out, ADDRESS_LEN_TESTNET); + return ADDRESS_LEN_TESTNET; } zxerr_t crypto_sha256(const uint8_t *input, uint16_t inputLen, uint8_t *output, uint16_t outputLen) { diff --git a/app/src/crypto_helper.h b/app/src/crypto_helper.h index ae158518..dc147a20 100644 --- a/app/src/crypto_helper.h +++ b/app/src/crypto_helper.h @@ -30,8 +30,7 @@ extern "C" { #define CODE_HASH_INFO_SIZE 2 -uint8_t crypto_encodePubkey_ed25519(uint8_t *buffer, uint16_t bufferLen, - const uint8_t *pubkey, bool isTestnet); +uint8_t crypto_encodePubkey_ed25519(uint8_t *buffer, uint16_t bufferLen, const uint8_t *pubkey); zxerr_t crypto_sha256(const uint8_t *input, uint16_t inputLen, uint8_t *output, uint16_t outputLen); diff --git a/tests/parser_impl.cpp b/tests/parser_impl.cpp index 251c7403..b6a71256 100644 --- a/tests/parser_impl.cpp +++ b/tests/parser_impl.cpp @@ -66,7 +66,7 @@ TEST(Address, NamadaEncoding) { testcase.pubkey.c_str()); uint8_t actualAddress[ADDRESS_LEN_TESTNET] = {0}; - const uint8_t address_len = crypto_encodePubkey_ed25519(actualAddress, sizeof(actualAddress), pubkey, true); + const uint8_t address_len = crypto_encodePubkey_ed25519(actualAddress, sizeof(actualAddress), pubkey); EXPECT_EQ(address_len, ADDRESS_LEN_TESTNET); const string namada_address(actualAddress, actualAddress + ADDRESS_LEN_TESTNET);