diff --git a/.clang-format b/.clang-format new file mode 100644 index 00000000..13ac32fb --- /dev/null +++ b/.clang-format @@ -0,0 +1,20 @@ +--- +BasedOnStyle: Google +IndentWidth: 4 +--- +Language: Cpp +ColumnLimit: 100 +PointerAlignment: Right +AlignAfterOpenBracket: Align +AlignConsecutiveMacros: true +AllowAllParametersOfDeclarationOnNextLine: false +SortIncludes: false +SpaceAfterCStyleCast: true +AllowShortCaseLabelsOnASingleLine: false +AllowAllArgumentsOnNextLine: false +AllowAllParametersOfDeclarationOnNextLine: false +AllowShortBlocksOnASingleLine: Never +AllowShortFunctionsOnASingleLine: None +BinPackArguments: false +BinPackParameters: false +--- \ No newline at end of file diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 00000000..ad0e6307 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,8 @@ +# Checklist + +- [ ] App update process has been followed +- [ ] Target branch is `develop` +- [ ] Application version has been bumped + + \ No newline at end of file diff --git a/.sonarcloud.properties b/.sonarcloud.properties deleted file mode 100644 index c5d2136c..00000000 --- a/.sonarcloud.properties +++ /dev/null @@ -1,17 +0,0 @@ -# Path to sources -# sonar.sources= -# sonar.exclusions= -# sonar.inclusions= - -# Path to tests -# sonar.tests= -# sonar.test.exclusions= -# sonar.test.inclusions= - -# Source encoding -# sonar.sourceEncoding= - -# Exclusions for copy-paste detection -# sonar.cpd.exclusions= -# Python version (for python projects only) -# sonar.python.version= \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt index 2b45a519..9da34799 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -14,7 +14,7 @@ #* limitations under the License. #******************************************************************************** cmake_minimum_required(VERSION 3.0) -project(ledger-cosmos VERSION 0.0.0) +project(ledger-thorchain VERSION 0.0.0) enable_testing() cmake_policy(SET CMP0025 NEW) diff --git a/README.md b/README.md index d89ed074..579646f3 100644 --- a/README.md +++ b/README.md @@ -1,21 +1,15 @@ -# Ledger Cosmos app +# Ledger THORChain app [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) -[![GithubActions](https://github.com/cosmos/ledger-cosmos/actions/workflows/main.yml/badge.svg)](https://github.com/cosmos/ledger-cosmos/blob/main/.github/workflows/main.yaml) --- -![zondax_light](docs/zondax_light.png#gh-light-mode-only) -![zondax_dark](docs/zondax_dark.png#gh-dark-mode-only) - -_Please visit our website at [zondax.ch](zondax.ch)_ - -You can also visit [Zondax Hub](https://hub.zondax.ch/cosmos) to test any of the versions of the app +Forked from [Cosmos App](https://github.com/LedgerHQ/app-cosmos) by Zondax --- -This project contains the Cosmos app for Ledger Nano S, Nano S+, X and Stax. +This project contains the THORChain app for Ledger Nano S, Nano S+, X and Stax. -- Ledger Nano S/S+/X/Stax Cosmos app +- Ledger Nano S/S+/X/Stax THORChain app - Specs / Documentation - C++ unit tests - Zemu tests @@ -28,28 +22,6 @@ Please: - **Do not use a Ledger device with funds for development purposes.** - **Have a separate and marked device that is used ONLY for development and testing** -Tip: - -- In releases, you will find a precompiled test app. If you are just curious, you can run `zxtool.sh` and avoid building. - -## Download and install a prerelease - -*Once the app is approved by Ledger, it will be available in their app store (Ledger Live). -You can get builds generated by CircleCI from the release tab. THESE ARE UNVETTED DEVELOPMENT RELEASES* - -Download a release from here (https://github.com/Zondax/ledger-cosmos/releases). You only need `zxtool.sh` - -If the file is not executable, run -```sh -chmod +x ./zxtool.sh -``` - -then run: - -```sh -./installer_s.sh load -``` - # Development ## Preconditions @@ -116,14 +88,7 @@ If you see conan is not found, check that you installed the package in the same ## How to test with Zemu? -> What is Zemu?? Great you asked!! -> As part of this project, we are making public a beta version of our internal testing+emulation framework for Ledger apps. -> -> Npm Package here: https://www.npmjs.com/package/@zondax/zemu -> -> Repo here: https://github.com/Zondax/zemu - -Let's go! First install everything: +First, install everything: > At this moment, if you change the app you will need to run `make` before running the test again. ```bash diff --git a/SECURITY.md b/SECURITY.md deleted file mode 100644 index 636d34e8..00000000 --- a/SECURITY.md +++ /dev/null @@ -1,79 +0,0 @@ -# Coordinated Vulnerability Disclosure Policy - -The Cosmos ecosystem believes that strong security is a blend of highly -technical security researchers who care about security and the forward -progression of the ecosystem and the attentiveness and openness of Cosmos core -contributors to help continually secure our operations. - -> **IMPORTANT**: *DO NOT* open public issues on this repository for security -> vulnerabilities. - -## Scope - -| Scope | -|-----------------------| -| last release (tagged) | -| main branch | - -The latest **release tag** of this repository is supported for security updates -as well as the **main** branch. Security vulnerabilities should be reported if -the vulnerability can be reproduced on either one of those. - -## Reporting a Vulnerability - -| Reporting methods | -|---------------------------------------------------------------| -| [GitHub Private Vulnerability Reporting][gh-private-advisory] | -| [HackerOne bug bounty program][h1] | - -All security vulnerabilities can be reported under GitHub's [Private -vulnerability reporting][gh-private-advisory] system. This will open a private -issue for the developers. Try to fill in as much of the questions as possible. -If you are not familiar with the CVSS system for assessing vulnerabilities, just -use the Low/High/Critical severity ratings. A partially filled in report for a -critical vulnerability is still better than no report at all. - -Vulnerabilities associated with the **Go, Rust or Protobuf code** of the -repository may be eligible for a [bug bounty][h1]. Please see the bug bounty -page for more details on submissions and rewards. If you think the vulnerability -is eligible for a payout, **report on HackerOne first**. - -Vulnerabilities in services and their source codes (JavaScript, web page, Google -Workspace) are not in scope for the bug bounty program, but they are welcome to -be reported in GitHub. - -### Guidelines - -We require that all researchers: - -* Abide by this policy to disclose vulnerabilities, and avoid posting - vulnerability information in public places, including GitHub, Discord, - Telegram, and Twitter. -* Make every effort to avoid privacy violations, degradation of user experience, - disruption to production systems (including but not limited to the Cosmos - Hub), and destruction of data. -* Keep any information about vulnerabilities that you’ve discovered confidential - between yourself and the Cosmos engineering team until the issue has been - resolved and disclosed. -* Avoid posting personally identifiable information, privately or publicly. - -If you follow these guidelines when reporting an issue to us, we commit to: - -* Not pursue or support any legal action related to your research on this - vulnerability -* Work with you to understand, resolve and ultimately disclose the issue in a - timely fashion - -### More information - -* See [TIMELINE.md] for an example timeline of a disclosure. -* See [DISCLOSURE.md] to see more into the inner workings of the disclosure - process. -* See [EXAMPLES.md] for some of the examples that we are interested in for the - bug bounty program. - -[gh-private-advisory]: /../../security/advisories/new -[h1]: https://hackerone.com/cosmos -[TIMELINE.md]: https://github.com/cosmos/security/blob/main/TIMELINE.md -[DISCLOSURE.md]: https://github.com/cosmos/security/blob/main/DISCLOSURE.md -[EXAMPLES.md]: https://github.com/cosmos/security/blob/main/EXAMPLES.md diff --git a/app/Makefile b/app/Makefile index 247db685..3a58b953 100755 --- a/app/Makefile +++ b/app/Makefile @@ -32,15 +32,15 @@ $(info ************ TARGET_NAME = [$(TARGET_NAME)]) include $(CURDIR)/../deps/ledger-zxlib/makefiles/Makefile.app_testing ifndef COIN -COIN=ATOM +COIN=RUNE endif $(info COIN = [$(COIN)]) -ifeq ($(COIN),ATOM) +ifeq ($(COIN),RUNE) # Main app configuration -APPNAME = "Cosmos" -APPPATH = "44'/118'" --path "44'/60'" +APPNAME = "THORChain" +APPPATH = "44'/931'" else define error_message @@ -52,6 +52,8 @@ endif APP_LOAD_PARAMS = --curve secp256k1 $(COMMON_LOAD_PARAMS) --path $(APPPATH) +ENABLE_PENDING_REVIEW_SCREEN ?= 1 + include $(CURDIR)/../deps/ledger-zxlib/makefiles/Makefile.devices $(info TARGET_NAME = [$(TARGET_NAME)]) @@ -64,9 +66,11 @@ endif include $(CURDIR)/../deps/ledger-zxlib/makefiles/Makefile.platform DEFINES += HAVE_HASH HAVE_BLAKE2 HAVE_SHA256 HAVE_SHA512 CFLAGS += -I$(MY_DIR)/../deps/tinycbor/src +CFLAGS += -g3 -ggdb3 -O3 APP_SOURCE_PATH += $(MY_DIR)/../deps/tinycbor-ledger APP_SOURCE_PATH += $(MY_DIR)/../deps/jsmn/src + .PHONY: rust rust: @echo "No rust code" @@ -87,7 +91,7 @@ dep/%.d: %.c Makefile .PHONY: listvariants listvariants: - @echo VARIANTS COIN ATOM + @echo VARIANTS COIN RUNE .PHONY: version version: diff --git a/app/Makefile.version b/app/Makefile.version index 140ebb66..42b9d951 100644 --- a/app/Makefile.version +++ b/app/Makefile.version @@ -1,6 +1,6 @@ # This is the `transaction_version` field of `Runtime` APPVERSION_M=2 # This is the `spec_version` field of `Runtime` -APPVERSION_N=35 +APPVERSION_N=3 # This is the patch version of this release -APPVERSION_P=18 +APPVERSION_P=0 diff --git a/app/glyphs/icon_app.gif b/app/glyphs/icon_app.gif index 4f7d7164..5f5c1e7c 100644 Binary files a/app/glyphs/icon_app.gif and b/app/glyphs/icon_app.gif differ diff --git a/app/src/apdu_handler.c b/app/src/apdu_handler.c index 18ca7d10..b75983e8 100644 --- a/app/src/apdu_handler.c +++ b/app/src/apdu_handler.c @@ -37,9 +37,6 @@ #include "chain_config.h" -static const char *msg_error1 = "Expert Mode"; -static const char *msg_error2 = "Required"; - __Z_INLINE void handle_getversion(__Z_UNUSED volatile uint32_t *flags, volatile uint32_t *tx, __Z_UNUSED uint32_t rx) { #ifdef DEBUG G_io_apdu_buffer[0] = 0xFF; @@ -95,7 +92,7 @@ __Z_INLINE void extractHDPath(uint32_t rx, uint32_t offset) { // Check values if (hdPath[0] != HDPATH_0_DEFAULT || - ((hdPath[1] != HDPATH_1_DEFAULT) && (hdPath[1] != HDPATH_ETH_1_DEFAULT)) || + (hdPath[1] != HDPATH_1_DEFAULT) || hdPath[3] != HDPATH_3_DEFAULT) { THROW(APDU_CODE_DATA_INVALID); } @@ -116,14 +113,11 @@ static void extractHDPath_HRP(uint32_t rx, uint32_t offset) { // Check if HRP was sent if ((rx - offset) > sizeof(uint32_t) * HDPATH_LEN_DEFAULT) { - uint8_t hrp_bech32_len = extractHRP(rx, offset + sizeof(uint32_t) * HDPATH_LEN_DEFAULT); - encoding = checkChainConfig(hdPath[1], bech32_hrp, hrp_bech32_len); + encoding = checkChainConfig(hdPath[1]); if (encoding == UNSUPPORTED) { ZEMU_LOGF(50, "Chain config not supported for: %s\n", bech32_hrp) THROW(APDU_CODE_COMMAND_NOT_ALLOWED); } - } else if (hdPath[1] == HDPATH_ETH_1_DEFAULT) { - THROW(APDU_CODE_COMMAND_NOT_ALLOWED); } } @@ -165,7 +159,7 @@ __Z_INLINE void handleGetAddrSecp256K1(volatile uint32_t *flags, volatile uint32 extractHDPath(rx, OFFSET_DATA + 1 + len); // Verify encoding - encoding = checkChainConfig(hdPath[1], bech32_hrp, bech32_hrp_len); + encoding = checkChainConfig(hdPath[1]); if (encoding == UNSUPPORTED) { ZEMU_LOGF(50, "Chain config not supported for: %s\n", bech32_hrp) THROW(APDU_CODE_COMMAND_NOT_ALLOWED); @@ -197,12 +191,6 @@ __Z_INLINE void handleSign(volatile uint32_t *flags, volatile uint32_t *tx, uint // Let grab P2 value and if it's not valid, the parser should reject it const tx_type_e sign_type = (tx_type_e) G_io_apdu_buffer[OFFSET_P2]; - if ((hdPath[1] == HDPATH_ETH_1_DEFAULT) && !app_mode_expert()) { - *flags |= IO_ASYNCH_REPLY; - view_custom_error_show(PIC(msg_error1),PIC(msg_error2)); - THROW(APDU_CODE_DATA_INVALID); - } - parser_tx_obj.tx_json.own_addr = (const char *) (G_io_apdu_buffer + VIEW_ADDRESS_OFFSET_SECP256K1); const char *error_msg = tx_parse(sign_type); if (error_msg != NULL) { diff --git a/app/src/chain_config.c b/app/src/chain_config.c index 8ffac9cf..34b6d0ff 100644 --- a/app/src/chain_config.c +++ b/app/src/chain_config.c @@ -16,37 +16,10 @@ #include "chain_config.h" #include -typedef struct { - const uint32_t path; - const char *hrp; - const address_encoding_e encoding; -} chain_config_t; - -// To enable custom config for a new chain, just add a new entry in this array with path, hrp and encoding -static const chain_config_t chainConfig[] = { - // {118, cosmos, BECH32_COSMOS}, - {60, "inj", BECH32_ETH}, - {60, "evmos", BECH32_ETH} -}; - -static const uint32_t chainConfigLen = sizeof(chainConfig) / sizeof(chainConfig[0]); - -address_encoding_e checkChainConfig(uint32_t path, const char* hrp, uint8_t hrpLen) { +address_encoding_e checkChainConfig(uint32_t path) { // Always allowed for 118 (default Cosmos) if (path == HDPATH_1_DEFAULT) { return BECH32_COSMOS; } - - // Check special cases - for (uint32_t i = 0; i < chainConfigLen; i++) { - if (path == (0x80000000u | chainConfig[i].path)) { - const char* hrpPtr = (const char *) PIC(chainConfig[i].hrp); - const uint16_t hrpPtrLen = strlen(hrpPtr); - if (hrpPtrLen == hrpLen && memcmp(hrpPtr, hrp, hrpLen) == 0) { - return chainConfig[i].encoding; - } - } - } - return UNSUPPORTED; } diff --git a/app/src/chain_config.h b/app/src/chain_config.h index 3c0409b7..81382220 100644 --- a/app/src/chain_config.h +++ b/app/src/chain_config.h @@ -23,7 +23,7 @@ extern "C" { #include #include "coin.h" -address_encoding_e checkChainConfig(uint32_t path, const char* hrp, uint8_t hrpLen); +address_encoding_e checkChainConfig(uint32_t path); #ifdef __cplusplus } diff --git a/app/src/coin.h b/app/src/coin.h index 2c5a7fae..5ff033c3 100644 --- a/app/src/coin.h +++ b/app/src/coin.h @@ -24,8 +24,7 @@ extern "C" { #define HDPATH_LEN_DEFAULT 5 #define HDPATH_0_DEFAULT (0x80000000u | 0x2cu) -#define HDPATH_1_DEFAULT (0x80000000u | 0x76u) -#define HDPATH_ETH_1_DEFAULT (0x80000000u | 0x3cu) +#define HDPATH_1_DEFAULT (0x80000000u | 0x3a3u) #define HDPATH_2_DEFAULT (0x80000000u | 0u) #define HDPATH_3_DEFAULT (0u) @@ -38,7 +37,6 @@ typedef enum { typedef enum { tx_json = 0, - tx_textual } tx_type_e; typedef enum { @@ -50,18 +48,17 @@ typedef enum { #define VIEW_ADDRESS_OFFSET_SECP256K1 PK_LEN_SECP256K1 #define VIEW_ADDRESS_LAST_PAGE_DEFAULT 0 -#define MENU_MAIN_APP_LINE1 "Cosmos" +#define MENU_MAIN_APP_LINE1 "THORChain" #define MENU_MAIN_APP_LINE2 "Ready" #define APPVERSION_LINE1 "Version:" #define APPVERSION_LINE2 ("v" APPVERSION) -#define COIN_DEFAULT_CHAINID "cosmoshub-4" +#define COIN_DEFAULT_CHAINID "thorchain" -// In non-expert mode, the app will convert from uatom to ATOM -#define COIN_DEFAULT_DENOM_BASE "uatom" -#define COIN_DEFAULT_DENOM_REPR "ATOM" -#define COIN_DEFAULT_DENOM_FACTOR 6u -#define COIN_DEFAULT_DENOM_TRIMMING 6u +#define COIN_DEFAULT_DENOM_BASE "rune" +#define COIN_DEFAULT_DENOM_REPR "RUNE" +#define COIN_DEFAULT_DENOM_FACTOR 8u +#define COIN_DEFAULT_DENOM_TRIMMING 0u // Coin denoms may be up to 128 characters long // https://github.com/cosmos/cosmos-sdk/blob/master/types/coin.go#L780 diff --git a/app/src/common/parser.h b/app/src/common/parser.h index 212734e0..2f74cc63 100644 --- a/app/src/common/parser.h +++ b/app/src/common/parser.h @@ -50,11 +50,10 @@ parser_error_t parser_parse(parser_context_t *ctx, parser_error_t parser_validate(const parser_context_t *ctx); //// returns the number of items in the current parsing context -parser_error_t parser_getNumItems(const parser_context_t *ctx, uint8_t *num_items); +parser_error_t parser_getNumItems(uint8_t *num_items); // retrieves a readable output for each field / page -parser_error_t parser_getItem(const parser_context_t *ctx, - uint8_t displayIdx, +parser_error_t parser_getItem(uint8_t displayIdx, char *outKey, uint16_t outKeyLen, char *outVal, uint16_t outValLen, uint8_t pageIdx, uint8_t *pageCount); diff --git a/app/src/common/tx.c b/app/src/common/tx.c index 9a7c8a4e..fa766ce7 100644 --- a/app/src/common/tx.c +++ b/app/src/common/tx.c @@ -78,7 +78,7 @@ static parser_tx_t tx_obj; const char *tx_parse(tx_type_e type) { - if (type != tx_json && type != tx_textual) { + if (type != tx_json) { return parser_getErrorDescription(parser_value_out_of_range); } @@ -114,7 +114,7 @@ void tx_parse_reset() zxerr_t tx_getNumItems(uint8_t *num_items) { - parser_error_t err = parser_getNumItems(&ctx_parsed_tx, num_items); + parser_error_t err = parser_getNumItems(num_items); if (err != parser_ok) { @@ -138,8 +138,7 @@ zxerr_t tx_getItem(int8_t displayIdx, return zxerr_no_data; } - parser_error_t err = parser_getItem(&ctx_parsed_tx, - displayIdx, + parser_error_t err = parser_getItem(displayIdx, outKey, outKeyLen, outVal, outValLen, pageIdx, pageCount); diff --git a/app/src/common/tx.h b/app/src/common/tx.h index 54b22b37..98e58549 100644 --- a/app/src/common/tx.h +++ b/app/src/common/tx.h @@ -46,7 +46,6 @@ const char *tx_parse(tx_type_e type); /// Return the number of items in the transaction zxerr_t tx_getNumItems(uint8_t *num_items); -zxerr_t tx_getTextualNumItems(uint8_t *num_items); /// Gets an specific item from the transaction (including paging) zxerr_t tx_getItem(int8_t displayIdx, diff --git a/app/src/parser.c b/app/src/parser.c index c590eeb7..4108e356 100644 --- a/app/src/parser.c +++ b/app/src/parser.c @@ -52,11 +52,7 @@ parser_error_t parser_parse(parser_context_t *ctx, CHECK_PARSER_ERR(parser_init_context(ctx, data, dataLen)) ctx->tx_obj = tx_obj; - if (tx_obj->tx_type == tx_textual) { - CHECK_PARSER_ERR(_read_text_tx(ctx, tx_obj)) - } else { - CHECK_PARSER_ERR(_read_json_tx(ctx, tx_obj)) - } + CHECK_PARSER_ERR(_read_json_tx(ctx, tx_obj)) extraDepthLevel = false; return parser_ok; @@ -69,69 +65,29 @@ parser_error_t parser_validate(const parser_context_t *ctx) { // Iterate through all items to check that all can be shown and are valid uint8_t numItems = 0; - CHECK_PARSER_ERR(parser_getNumItems(ctx, &numItems)) + CHECK_PARSER_ERR(parser_getNumItems(&numItems)) char tmpKey[40]; char tmpVal[40]; uint8_t pageCount = 0; for (uint8_t idx = 0; idx < numItems; idx++) { - CHECK_PARSER_ERR(parser_getItem(ctx, idx, tmpKey, sizeof(tmpKey), tmpVal, sizeof(tmpVal), 0, &pageCount)) + CHECK_PARSER_ERR(parser_getItem(idx, tmpKey, sizeof(tmpKey), tmpVal, sizeof(tmpVal), 0, &pageCount)) } return parser_ok; } -parser_error_t parser_getNumItems(const parser_context_t *ctx, uint8_t *num_items) { +parser_error_t parser_getNumItems(uint8_t *num_items) { *num_items = 0; - if (ctx->tx_obj->tx_type == tx_textual) { - *num_items = app_mode_expert() ? (uint8_t) ctx->tx_obj->tx_text.n_containers : (uint8_t) (ctx->tx_obj->tx_text.n_containers - ctx->tx_obj->tx_text.n_expert); - return parser_ok; - } return tx_display_numItems(num_items); } -__Z_INLINE bool parser_areEqual(uint16_t tokenIdx, const char *expected) { - if (parser_tx_obj.tx_json.json.tokens[tokenIdx].type != JSMN_STRING) { - return false; - } - - int32_t len = parser_tx_obj.tx_json.json.tokens[tokenIdx].end - parser_tx_obj.tx_json.json.tokens[tokenIdx].start; - if (len < 0) { - return false; - } - - if (strlen(expected) != (size_t) len) { - return false; - } - - const char *p = parser_tx_obj.tx_json.tx + parser_tx_obj.tx_json.json.tokens[tokenIdx].start; - for (int32_t i = 0; i < len; i++) { - if (expected[i] != *(p + i)) { - return false; - } - } - - return true; -} - __Z_INLINE bool parser_isAmount(char *key) { - if (strcmp(key, "fee/amount") == 0) { - return true; - } - - if (strcmp(key, "msgs/inputs/coins") == 0) { - return true; - } - - if (strcmp(key, "msgs/outputs/coins") == 0) { - return true; - } - - if (strcmp(key, "msgs/value/inputs/coins") == 0) { + if (strcmp(key, "msgs/value/coins") == 0){ return true; } - if (strcmp(key, "msgs/value/outputs/coins") == 0) { + if (strcmp(key, "fee/amount") == 0) { return true; } @@ -139,10 +95,6 @@ __Z_INLINE bool parser_isAmount(char *key) { return true; } - if (strcmp(key, "tip/amount") == 0) { - return true; - } - return false; } @@ -193,11 +145,7 @@ __Z_INLINE parser_error_t parser_formatAmountItem(uint16_t amountToken, return parser_unexpected_field; } - if (!parser_areEqual(amountToken + 1u, "amount")) { - return parser_unexpected_field; - } - - if (!parser_areEqual(amountToken + 3u, "denom")) { + if (parser_tx_obj.tx_json.json.tokens[amountToken + 2].type != JSMN_STRING) { return parser_unexpected_field; } @@ -311,176 +259,7 @@ __Z_INLINE parser_error_t parser_formatAmount(uint16_t amountToken, return parser_formatAmountItem(showItemTokenIdx, outVal, outValLen, showPageIdx, &dummy); } -__Z_INLINE parser_error_t parser_screenPrint(const parser_context_t *ctx, - Cbor_container *container, - char *outKey, uint16_t outKeyLen, - char *outVal, uint16_t outValLen, - uint8_t pageIdx, uint8_t *pageCount) { - - //verification assures that content + title < size(tmp), to be used in string manipulation - if (container->screen.titleLen > MAX_TITLE_SIZE || container->screen.contentLen > MAX_CONTENT_SIZE) { - return parser_unexpected_value; - } - MEMZERO(ctx->tx_obj->tx_text.tmpBuffer, sizeof(ctx->tx_obj->tx_text.tmpBuffer)); - char *tmp = (char*) ctx->tx_obj->tx_text.tmpBuffer; - size_t tmp_len = sizeof(ctx->tx_obj->tx_text.tmpBuffer); - char out[OUTPUT_HANDLER_SIZE] = {0}; - - // No Tittle screen - if (container->screen.titleLen == 0) { - MEMCPY(tmp, container->screen.contentPtr, container->screen.contentLen); - CHECK_PARSER_ERR(tx_display_translation(out, sizeof(out),tmp, container->screen.contentLen)) - - for (uint8_t i = 0; i < container->screen.indent; i++) { - z_str3join(out, sizeof(out), SCREEN_INDENT, ""); - } - - snprintf(outKey, outKeyLen, " "); - pageString(outVal, outValLen, out, pageIdx, pageCount); - return parser_ok; - } - - //Translate output, cpy to tmp to assure it ends in \0 - MEMZERO(tmp, tmp_len); - if(container->screen.contentPtr == NULL) { - return parser_unexpected_value; - } - MEMCPY(tmp, container->screen.contentPtr, container->screen.contentLen); - CHECK_PARSER_ERR(tx_display_translation(out, sizeof(out), tmp,container->screen.contentLen)) - - uint8_t titleLen = container->screen.titleLen + container->screen.indent; - //Title needs to be truncated, so we concat title witn content - if ((titleLen > PRINTABLE_TITLE_SIZE ) || (outValLen > 0 && ((strlen(out)/outValLen) >= 1 - && titleLen > PRINTABLE_PAGINATED_TITLE_SIZE))) { - - char key[MAX_TITLE_SIZE + 2] = {0}; - MEMCPY(key, TITLE_TRUNCATE_REPLACE, strlen(TITLE_TRUNCATE_REPLACE)); - for (uint8_t i = 0; i < container->screen.indent; i++) { - z_str3join(key, sizeof(key), SCREEN_INDENT, ""); - } - - MEMZERO(ctx->tx_obj->tx_text.tmpBuffer, sizeof(ctx->tx_obj->tx_text.tmpBuffer)); - if(container->screen.titlePtr == NULL) { - return parser_unexpected_value; - } - MEMCPY(tmp, container->screen.titlePtr, container->screen.titleLen); - MEMCPY(tmp + container->screen.titleLen,": ",2); - MEMCPY(tmp + container->screen.titleLen + 2, out, sizeof(out) - container->screen.titleLen -2); - snprintf(outKey, outKeyLen, "%s", key); - pageString(outVal, outValLen, tmp, pageIdx, pageCount); - return parser_ok; - } - - //Normal print case - Prepare title - char key[MAX_TITLE_SIZE + 2] = {0}; - if(container->screen.titlePtr == NULL) { - return parser_unexpected_value; - } - MEMCPY(key, container->screen.titlePtr, container->screen.titleLen); - for (uint8_t i = 0; i < container->screen.indent; i++) { - z_str3join(key, sizeof(key), SCREEN_INDENT, ""); - } - snprintf(outKey, outKeyLen, "%s", key); - pageString(outVal, outValLen, out, pageIdx, pageCount); - - return parser_ok; -} - -__Z_INLINE parser_error_t parser_getScreenInfo(const parser_context_t *ctx, - Cbor_container *container, - uint8_t index) { - CborValue it; - CborValue containerArray_ptr; - CborValue mapStruct_ptr; - INIT_CBOR_PARSER(ctx, mapStruct_ptr) - - PARSER_ASSERT_OR_ERROR(!cbor_value_at_end(&mapStruct_ptr), parser_unexpected_buffer_end) - PARSER_ASSERT_OR_ERROR(cbor_value_is_map(&mapStruct_ptr), parser_unexpected_type) - CHECK_CBOR_MAP_ERR(cbor_value_enter_container(&mapStruct_ptr, &it)) - CHECK_CBOR_MAP_ERR(cbor_value_advance(&it)) - CHECK_CBOR_MAP_ERR(cbor_value_enter_container(&it, &containerArray_ptr)) - - for (int i = 0; i < index ; i ++) { - CHECK_CBOR_MAP_ERR(cbor_value_advance(&containerArray_ptr)) - } - - CborValue data; - CHECK_CBOR_MAP_ERR(cbor_value_get_map_length(&containerArray_ptr, &container->n_field)) - CHECK_CBOR_MAP_ERR(cbor_value_enter_container(&containerArray_ptr, &data)) - CHECK_PARSER_ERR(cbor_get_containerInfo(&data, container)) - - return parser_ok; -} - -__Z_INLINE parser_error_t parser_getNextNonExpert(const parser_context_t *ctx, - Cbor_container *container, - uint8_t displayIdx) { - - PARSER_ASSERT_OR_ERROR(displayIdx < ctx->tx_obj->tx_text.n_containers, parser_unexpected_value); - - uint8_t non_expert = 0; - for (size_t containerIdx = 0; containerIdx < ctx->tx_obj->tx_text.n_containers; containerIdx++) { - parser_getScreenInfo(ctx, container, containerIdx); - if (!container->screen.expert) { - non_expert++; - } else { - continue; - } - if (non_expert == displayIdx + 1) { - break; - } - PARSER_ASSERT_OR_ERROR(non_expert <= displayIdx, parser_unexpected_value); - } - return parser_ok; -} - -__Z_INLINE parser_error_t parser_getTextualItem(const parser_context_t *ctx, - uint8_t displayIdx, - char *outKey, uint16_t outKeyLen, - char *outVal, uint16_t outValLen, - uint8_t pageIdx, uint8_t *pageCount) { - *pageCount = 0; - - MEMZERO(outKey, outKeyLen); - MEMZERO(outVal, outValLen); - - uint8_t numItems; - CHECK_PARSER_ERR(parser_getNumItems(ctx, &numItems)) - PARSER_ASSERT_OR_ERROR((numItems != 0), parser_unexpected_number_items) - PARSER_ASSERT_OR_ERROR((displayIdx < numItems), parser_display_idx_out_of_range) - - CHECK_APP_CANARY() - - Cbor_container container; - container.screen.titlePtr = NULL; - container.screen.titleLen = 0; - container.screen.contentPtr = NULL; - container.screen.contentLen = 0; - container.screen.indent = 0; - container.screen.expert = false; - CHECK_PARSER_ERR(parser_getScreenInfo(ctx, &container, displayIdx)) - - // title and content can be Null depending on the screen for chain id they cant be null - if (container.screen.titlePtr != NULL && container.screen.contentPtr != NULL) { - if (!strncmp(container.screen.titlePtr, "Chain id", container.screen.titleLen)){ - if(!strncmp(container.screen.contentPtr, "0", container.screen.contentLen) || - !strncmp(container.screen.contentPtr, "1", container.screen.contentLen)) { - return parser_unexpected_chain; - } - } - } - - if (!app_mode_expert()) { - CHECK_PARSER_ERR(parser_getNextNonExpert(ctx, &container, displayIdx)) - } - - CHECK_PARSER_ERR(parser_screenPrint(ctx, &container, outKey, outKeyLen, outVal, outValLen, pageIdx, pageCount)) - - return parser_ok; -} - -__Z_INLINE parser_error_t parser_getJsonItem(const parser_context_t *ctx, - uint8_t displayIdx, +__Z_INLINE parser_error_t parser_getJsonItem(uint8_t displayIdx, char *outKey, uint16_t outKeyLen, char *outVal, uint16_t outValLen, uint8_t pageIdx, uint8_t *pageCount) { @@ -492,7 +271,7 @@ __Z_INLINE parser_error_t parser_getJsonItem(const parser_context_t *ctx, MEMZERO(outVal, outValLen); uint8_t numItems; - CHECK_PARSER_ERR(parser_getNumItems(ctx, &numItems)) + CHECK_PARSER_ERR(parser_getNumItems(&numItems)) CHECK_APP_CANARY() if (numItems == 0) { @@ -528,24 +307,15 @@ __Z_INLINE parser_error_t parser_getJsonItem(const parser_context_t *ctx, return parser_ok; } -parser_error_t parser_getItem(const parser_context_t *ctx, - uint8_t displayIdx, +parser_error_t parser_getItem(uint8_t displayIdx, char *outKey, uint16_t outKeyLen, char *outVal, uint16_t outValLen, uint8_t pageIdx, uint8_t *pageCount) { - if (ctx->tx_obj->tx_type == tx_textual) { - CHECK_PARSER_ERR(parser_getTextualItem(ctx,displayIdx, + CHECK_PARSER_ERR(parser_getJsonItem(displayIdx, outKey, outKeyLen, outVal, outValLen, pageIdx, pageCount)); - } else { - CHECK_PARSER_ERR(parser_getJsonItem(ctx,displayIdx, - outKey, outKeyLen, - outVal, outValLen, - pageIdx, pageCount)); - } - return parser_ok; } diff --git a/app/src/parser_impl.c b/app/src/parser_impl.c index 0a3149d5..b12e81a3 100644 --- a/app/src/parser_impl.c +++ b/app/src/parser_impl.c @@ -114,56 +114,4 @@ parser_error_t _read_json_tx(parser_context_t *c, __Z_UNUSED parser_tx_t *v) { parser_tx_obj.tx_json.filter_msg_from_count = 0; return parser_ok; -} - -parser_error_t _read_text_tx(parser_context_t *c, parser_tx_t *v) { - CborValue it; - CborValue mapStruct_ptr; - CHECK_APP_CANARY() - INIT_CBOR_PARSER(c, mapStruct_ptr) - CHECK_APP_CANARY() - - //Make sure we have a map/struct - PARSER_ASSERT_OR_ERROR(cbor_value_is_map(&mapStruct_ptr), parser_unexpected_type) - CHECK_CBOR_MAP_ERR(cbor_value_enter_container(&mapStruct_ptr, &it)) - - //Make sure we have screen_key set to 1 - int screen_key = 0; - PARSER_ASSERT_OR_ERROR(cbor_value_is_integer(&it), parser_unexpected_type) - CHECK_CBOR_MAP_ERR(cbor_value_get_int(&it, &screen_key)) - PARSER_ASSERT_OR_ERROR(screen_key == 1, parser_unexpected_type) - CHECK_CBOR_MAP_ERR(cbor_value_advance(&it)) - - //Make sure we have an array of containers and check size - PARSER_ASSERT_OR_ERROR(cbor_value_is_array(&it), parser_unexpected_type) - - CHECK_CBOR_MAP_ERR(cbor_value_get_array_length(&it, &v->tx_text.n_containers)) - // Limit max fields to 255 - PARSER_ASSERT_OR_ERROR((v->tx_text.n_containers > 0 && v->tx_text.n_containers <= UINT8_MAX), parser_unexpected_number_items) - - CborValue containerArray_ptr; - CborValue data; - Cbor_container container; - - // Enter array of containers - CHECK_CBOR_MAP_ERR(cbor_value_enter_container(&it, &containerArray_ptr)) - - for (size_t i = 0; i < v->tx_text.n_containers; i++) { - MEMZERO(&container, sizeof(container)); - - CHECK_CBOR_MAP_ERR(cbor_value_get_map_length(&containerArray_ptr, &container.n_field)) - PARSER_ASSERT_OR_ERROR((container.n_field > 0 && container.n_field < 5), parser_unexpected_value) - - CHECK_CBOR_MAP_ERR(cbor_value_enter_container(&containerArray_ptr, &data)) - CHECK_PARSER_ERR(cbor_check_expert(&data, &container)) - - v->tx_text.n_expert += container.screen.expert ? 1 : 0; - CHECK_CBOR_MAP_ERR(cbor_value_advance(&containerArray_ptr)) - } - CHECK_CBOR_MAP_ERR(cbor_value_leave_container(&it, &containerArray_ptr)) - - // End of buffer does not match end of parsed data - PARSER_ASSERT_OR_ERROR(it.source.ptr == c->buffer + c->bufferLen, parser_cbor_unexpected_EOF) - - return parser_ok; -} +} \ No newline at end of file diff --git a/app/src/parser_impl.h b/app/src/parser_impl.h index 1af7a28f..862e7c4b 100644 --- a/app/src/parser_impl.h +++ b/app/src/parser_impl.h @@ -45,7 +45,6 @@ typedef struct { extern parser_tx_t parser_tx_obj; parser_error_t _read_json_tx(parser_context_t *c, parser_tx_t *v); -parser_error_t _read_text_tx(parser_context_t *c, parser_tx_t *v); #ifdef __cplusplus } diff --git a/app/src/parser_txdef.h b/app/src/parser_txdef.h index c3c75146..41d08e60 100644 --- a/app/src/parser_txdef.h +++ b/app/src/parser_txdef.h @@ -40,12 +40,6 @@ typedef struct screen_arg_t { bool expert; } screen_arg_t; -typedef struct tx_textual_t{ - size_t n_containers; - uint8_t n_expert; - uint8_t tmpBuffer[625]; -} tx_textual_t; - typedef struct { // These are internal values used for tracking the state of the query/search uint16_t _item_index_current; @@ -103,7 +97,6 @@ typedef struct { union { tx_json_t tx_json; - tx_textual_t tx_text; }; } parser_tx_t; diff --git a/app/src/tx_display.c b/app/src/tx_display.c index 2b414332..87dc5fd4 100644 --- a/app/src/tx_display.c +++ b/app/src/tx_display.c @@ -384,7 +384,7 @@ __Z_INLINE parser_error_t get_subitem_count(root_item_e root_item, uint8_t *num_ case root_item_fee: CHECK_PARSER_ERR(tx_is_expert_mode_or_not_default_chainid(&is_expert_or_default)) if (!is_expert_or_default) { - tmp_num_items = 1; // Only Amount + tmp_num_items = 0; } break; case root_item_tip: @@ -508,42 +508,17 @@ static const key_subst_t key_substitutions[] = { {"memo", "Memo"}, {"fee/amount", "Fee"}, {"fee/gas", "Gas"}, - {"fee/gas_limit", "Gas Limit"}, - {"fee/granter", "Granter"}, - {"fee/payer", "Payer"}, {"msgs/type", "Type"}, - {"tip/amount", "Tip"}, - {"tip/tipper", "Tipper"}, - - {"msgs/inputs/address", "Source Address"}, - {"msgs/inputs/coins", "Source Coins"}, - {"msgs/outputs/address", "Dest Address"}, - {"msgs/outputs/coins", "Dest Coins"}, - - {"msgs/value/inputs/address", "Source Address"}, - {"msgs/value/inputs/coins", "Source Coins"}, - {"msgs/value/outputs/address", "Dest Address"}, - {"msgs/value/outputs/coins", "Dest Coins"}, - + // MsgSend {"msgs/value/from_address", "From"}, {"msgs/value/to_address", "To"}, {"msgs/value/amount", "Amount"}, - {"msgs/value/delegator_address", "Delegator"}, - {"msgs/value/validator_address", "Validator"}, - {"msgs/value/withdraw_address", "Withdraw Address"}, - {"msgs/value/validator_src_address", "Validator Source"}, - {"msgs/value/validator_dst_address", "Validator Dest"}, - {"msgs/value/description", "Description"}, - {"msgs/value/initial_deposit/amount", "Deposit Amount"}, - {"msgs/value/initial_deposit/denom", "Deposit Denom"}, - {"msgs/value/proposal_type", "Proposal"}, - {"msgs/value/proposer", "Proposer"}, - {"msgs/value/title", "Title"}, - {"msgs/value/depositor", "Sender"}, - {"msgs/value/proposal_id", "Proposal ID"}, - {"msgs/value/voter", "Description"}, - {"msgs/value/option", "Option"}, + + // MsgDeposit + {"msgs/value/signer", "Sender"}, + {"msgs/value/memo", "Memo"}, + {"msgs/value/coins", "Amount"}, }; parser_error_t tx_display_make_friendly() { diff --git a/app/src/tx_parser.c b/app/src/tx_parser.c index 43296511..24a0f6e7 100644 --- a/app/src/tx_parser.c +++ b/app/src/tx_parser.c @@ -55,17 +55,9 @@ __Z_INLINE void strcat_chunk_s(char *dst, uint16_t dst_max, const char *src_chun /////////////////////////// static const key_subst_t value_substitutions[] = { - {"cosmos-sdk/MsgSend", "Send"}, - {"cosmos-sdk/MsgDelegate", "Delegate"}, - {"cosmos-sdk/MsgUndelegate", "Undelegate"}, - {"cosmos-sdk/MsgBeginRedelegate", "Redelegate"}, - {"cosmos-sdk/MsgSubmitProposal", "Propose"}, - {"cosmos-sdk/MsgDeposit", "Deposit"}, - {"cosmos-sdk/MsgVote", "Vote"}, - {"cosmos-sdk/MsgWithdrawDelegationReward", "Withdraw Reward"}, - {"cosmos-sdk/MsgWithdrawValidatorCommission", "Withdraw Val. Commission"}, - {"cosmos-sdk/MsgSetWithdrawAddress", "Withdraw Set Address"}, - {"cosmos-sdk/MsgMultiSend", "Multi Send"}, + {"thorchain/MsgSend", "Send"}, + {"thorchain/MsgDeposit", "Deposit"}, + {"[]", "Empty"}, }; diff --git a/docs/APDUSPEC.md b/docs/APDUSPEC.md index b125614e..cab34af5 100644 --- a/docs/APDUSPEC.md +++ b/docs/APDUSPEC.md @@ -1,4 +1,4 @@ -# Cosmos App - Ledger Nano S +# THORChain App - Ledger Nano S ## General structure The general structure of commands and responses is as follows: @@ -64,7 +64,7 @@ The general structure of commands and responses is as follows: -------------- -### INS_GET_ADDR +### INS_GET_ADDR_SECP256K1 #### Command @@ -79,7 +79,7 @@ The general structure of commands and responses is as follows: | HRP_LEN | byte(1) | Bech32 HRP Length | 1<=HRP_LEN<=83 | | HRP | byte (HRP_LEN) | Bech32 HRP | | | Path[0] | byte (4) | Derivation Path Data | 44 | -| Path[1] | byte (4) | Derivation Path Data | 118 / 60 | +| Path[1] | byte (4) | Derivation Path Data | 931 | | Path[2] | byte (4) | Derivation Path Data | ? | | Path[3] | byte (4) | Derivation Path Data | ? | | Path[4] | byte (4) | Derivation Path Data | ? | @@ -106,11 +106,9 @@ First three items in the derivation path will be hardened automatically hardened | | | | 1 = add | | | | | 2 = last | | P2 | byte (1) | Transaction Format | 0 = json | -| | | | 1 = textual | | L | byte (1) | Bytes in payload | (depends) | The first packet/chunk includes only the derivation path and HRP. -At the moment, seding HRP is optional but it will be mandatory in a future version. All other packets/chunks should contain message to sign @@ -118,13 +116,11 @@ All other packets/chunks should contain message to sign | Field | Type | Content | Expected | | ---------- | -------- | ---------------------- | --------- | -| Path[0] | byte (4) | Derivation Path Data | 44 | -| Path[1] | byte (4) | Derivation Path Data | 118 / 60 | -| Path[2] | byte (4) | Derivation Path Data | ? | -| Path[3] | byte (4) | Derivation Path Data | ? | -| Path[4] | byte (4) | Derivation Path Data | ? | -| HRP_LEN | byte(1) | Bech32 HRP Length | 1<=HRP_LEN<=83 | -| HRP | byte (HRP_LEN) | Bech32 HRP | | +| Path[0] | byte (4) | Derivation Path Data | 44 | +| Path[1] | byte (4) | Derivation Path Data | 931 | +| Path[2] | byte (4) | Derivation Path Data | ? | +| Path[3] | byte (4) | Derivation Path Data | ? | +| Path[4] | byte (4) | Derivation Path Data | ? | *Other Chunks/Packets* diff --git a/docs/TXSPEC.md b/docs/TXSPEC.md index 037e1915..d43a0fcc 100644 --- a/docs/TXSPEC.md +++ b/docs/TXSPEC.md @@ -1,8 +1,7 @@ Transaction Specification ------------------------- -Two types of transaction formats are supported by the Cosmos App, Json format and Textual format. -### JSON Format +### Format Transactions passed to the Ledger device will be in the following format. The Ledger device MUST accept any transaction (valid as below) in this format. @@ -11,7 +10,7 @@ Transactions passed to the Ledger device will be in the following format. The Le "account_number": {number}, "chain_id": {string}, "fee": { - "amount": [{"amount": {number}, "denom": {string}}, ...], + "amount": [], "gas": {number} }, "memo": {string}, @@ -20,31 +19,71 @@ Transactions passed to the Ledger device will be in the following format. The Le } ``` -`msgs` is a list of messages, which are arbitrary JSON structures. +`msgs` is a list of messages, which are arbitrary JSON structures. Ledger app currently supports `MsgDeposit` & `MsgSend` (examples below). #### Examples ```json { - "account_number": "123", - "chain_id": "cosmoshub-4", + "account_number": "588", + "chain_id": "thorchain", "fee": { - "amount": [{"amount": "4000", "denom": "uatom"}, ...], - "gas": "40000" + "amount": [], + "gas": "2000000" }, - "memo": "this is a comment", - "msgs": [{arbitrary}], - "sequence": "42" + "memo": "TestMemo", + "msgs": [ + { + "type": "thorchain/MsgSend", + "value": { + "amount": [ + { + "amount": "150000000", + "denom": "rune" + } + ], + "from_address": "tthor1c648xgpter9xffhmcqvs7lzd7hxh0prgv5t5gp", + "to_address": "tthor10xgrknu44d83qr4s4uw56cqxg0hsev5e68lc9z" + } + } + ], + "sequence": "5" } ``` -Note, all the `{number}` values must be passed as string. +```json +{ + "account_number": "588", + "chain_id": "thorchain", + "fee": { + "amount": [], + "gas": "10000000" + }, + "memo": "", + "msgs": [ + { + "type": "thorchain/MsgDeposit", + "value": { + "coins": [ + { + "amount": "330000000", + "asset": "THOR.RUNE" + } + ], + "memo": "SWAP:BNB.BNB:tbnb1qk2m905ypazwfau9cn0qnr4c4yxz63v9u9md20:", + "signer": "tthor1c648xgpter9xffhmcqvs7lzd7hxh0prgv5t5gp" + } + } + ], + "sequence": "6" +} +``` #### Display Logic The Ledger device SHOULD pick a suitable display representation for the transaction. -The key type (secp256k1 / ed25519), `chain_id`, `account_number`, `sequence`, `fee`, and `memo` should be displayed in that order, each on their own page, autoscrolling if necessary. +The key type (secp256k1 / ed25519), `account_number`, `chain_id`, `fee` , `memo`, and `sequence`, should be displayed in that order, each on their own page, autoscrolling if necessary. Some fields may be clipped when not in advanced mode. `msgs` should be iterated through and each displayed according to the following recursive logic: @@ -93,72 +132,4 @@ assert ledger_validate('{"a ":2,"b":3}') assert not ledger_validate('{"a":2,\n"b":3}') assert not ledger_validate('{"b":2,"a":3}') assert not ledger_validate('{"a" : 2 }') -``` - -### Textual Format - -In Textual Format, a transaction is rendered into a textual representation, which is then sent to Ledger device, where transmitted data can be simply decoded into legible text. - -The textual representation is a sequence of screens. Each screen is meant to be displayed in its entirety. This textual representation must be encoded using CBOR deterministic encoding (RFC 8949). - -A screen consists of a text string, an indentation, and the expert flag,represented as an integer-keyed map. All entries are optional and MUST be omitted from the encoding if empty, zero, or false. Text defaults to the empty string, indent defaults to zero, and expert defaults to false. -```json -screen = { - text_key: tstr, - indent_key: uint, - expert_key: bool, -} -```` -To keep the enconding small on the CBOR the entry keys are represented by small integers. -``` -text_key = 1 -indent_key = 2 -expert_key = 3 -``` - -#### Examples -Textual Representation -``` -Chain id: my-chain -Account number: 1 -Sequence: 2 -Public key: cosmos.crypto.secp256k1.PubKey -> PubKey object ->> Key: Auvdf+T963bciiBe9l15DNMOijdaXCUo6zqSOvH7TXlN -Transaction: 1 Messages -> Message (1/1): cosmos.bank.v1beta1.MsgSend -> From address: cosmos1ulav3hsenupswqfkw2y3sup5kgtqwnvqa8eyhs -> To address: cosmos1ejrf4cur2wy6kfurg9f2jppp2h3afe5h6pkh5t -> Amount: 10 ATOM -End of Messages -Fees: 0.002 uatom -Gas limit: 100'000 -Hash of raw bytes: e237dc2e3f8f0b1d0310e1cd0b0ab5fc4a59e4bc3454d67eb65c3fdb0fa599c9 -```` - -CBOR Envelope -``` -[ - {1: "Chain id: my-chain"}, - {1: "Account number: 1"}, - {1: "Sequence: 2"}, - {1: "Public key: cosmos.crypto.secp256k1.PubKey", 3: true}, - {1: "PubKey object", 2: 1, 3: true}, - {1: "Key: Auvdf+T963bciiBe9l15DNMOijdaXCUo6zqSOvH7TXlN", 2: 2, 3: true}, - {1: "Transaction: 1 Messages"}, - {1: "Message (1/1): cosmos.bank.v1beta1.MsgSend", 2: 1}, - {1: "From address: cosmos1ulav3hsenupswqfkw2y3sup5kgtqwnvqa8eyhs", 2: 1}, - {1: "To address: cosmos1ejrf4cur2wy6kfurg9f2jppp2h3afe5h6pkh5t", 2: 1}, - {1: "Amount: 10 ATOM", 2: 1}, - {1: "End of Messages"}, - {1: "Fees: 0.002 uatom"}, - {1: "Gas limit: 100'000", 3: true}, - { 1: "Hash of raw bytes: e237dc2e3f8f0b1d0310e1cd0b0ab5fc4a59e4bc3454d67eb65c3fdb0fa599c9", 3: true,}, -] -``` -CBOR Encoded -``` -8fa10172436861696e2069643a206d792d636861696ea101714163636f756e74206e756d6265723a2031a1016b53657175656e63653a2032a201782a5075626c6963206b65793a20636f736d6f732e63727970746f2e736563703235366b312e5075624b657903f5a3016d5075624b6579206f626a656374020103f5a30178314b65793a2041757664662b54393633626369694265396c3135444e4d4f696a64615843556f367a71534f76483754586c4e020203f5a101775472616e73616374696f6e3a2031204d65737361676573a201782a4d6573736167652028312f31293a20636f736d6f732e62616e6b2e763162657461312e4d736753656e640201a201783b46726f6d20616464726573733a20636f736d6f7331756c6176336873656e7570737771666b77327933737570356b677471776e76716138657968730201a2017839546f20616464726573733a20636f736d6f7331656a726634637572327779366b667572673966326a707070326833616665356836706b6835740201a2016f416d6f756e743a2031302041544f4d0201a1016f456e64206f66204d65737361676573a10171466565733a20302e303032207561746f6da20172476173206c696d69743a203130302730303003f5a201785348617368206f66207261772062797465733a206532333764633265336638663062316430333130653163643062306162356663346135396534626333343534643637656236356333666462306661353939633903f5 -``` - -The CBOR envelope is decoded using Intel TinyCbor library. Each CBOR container size is verified and the text string is slip into title and content to later be displayed in the Ledger Screen. \ No newline at end of file +``` \ No newline at end of file diff --git a/docs/img/clion_debugging.png b/docs/img/clion_debugging.png deleted file mode 100644 index f26ff759..00000000 Binary files a/docs/img/clion_debugging.png and /dev/null differ diff --git a/docs/img/cosmos_app1.png b/docs/img/cosmos_app1.png deleted file mode 100644 index d971cef2..00000000 Binary files a/docs/img/cosmos_app1.png and /dev/null differ diff --git a/docs/img/cosmos_app2.png b/docs/img/cosmos_app2.png deleted file mode 100644 index 10c10ea9..00000000 Binary files a/docs/img/cosmos_app2.png and /dev/null differ diff --git a/docs/img/cosmos_app3.png b/docs/img/cosmos_app3.png deleted file mode 100644 index 4011eeac..00000000 Binary files a/docs/img/cosmos_app3.png and /dev/null differ diff --git a/docs/img/tendermint_app.png b/docs/img/tendermint_app.png deleted file mode 100644 index a21a37b0..00000000 Binary files a/docs/img/tendermint_app.png and /dev/null differ diff --git a/docs/zondax_dark.png b/docs/zondax_dark.png deleted file mode 100644 index c14ba368..00000000 Binary files a/docs/zondax_dark.png and /dev/null differ diff --git a/docs/zondax_light.png b/docs/zondax_light.png deleted file mode 100644 index 3d25fda0..00000000 Binary files a/docs/zondax_light.png and /dev/null differ diff --git a/fuzz/parser_parse.cpp b/fuzz/parser_parse.cpp index 1cc4fd9e..55a2f469 100644 --- a/fuzz/parser_parse.cpp +++ b/fuzz/parser_parse.cpp @@ -43,7 +43,7 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) } uint8_t num_items; - rc = parser_getNumItems(&ctx, &num_items); + rc = parser_getNumItems(&num_items); if (rc != parser_ok) { (void)fprintf(stderr, "error in parser_getNumItems: %s\n", @@ -55,7 +55,7 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) uint8_t page_idx = 0; uint8_t page_count = 1; while (page_idx < page_count) { - rc = parser_getItem(&ctx, i, + rc = parser_getItem(i, PARSER_KEY, sizeof(PARSER_KEY), PARSER_VALUE, sizeof(PARSER_VALUE), page_idx, &page_count); diff --git a/sonar-project.properties b/sonar-project.properties deleted file mode 100644 index da91272d..00000000 --- a/sonar-project.properties +++ /dev/null @@ -1,2 +0,0 @@ -sonar.projectKey=Cosmos_ledger-cosmos -sonar.organization=cosmos \ No newline at end of file diff --git a/tests/common.cpp b/tests/common.cpp index f8e49866..56482969 100644 --- a/tests/common.cpp +++ b/tests/common.cpp @@ -25,13 +25,12 @@ #include "gmock/gmock.h" #include "coin.h" -std::vector dumpUI(parser_context_t *ctx, - uint16_t maxKeyLen, +std::vector dumpUI(uint16_t maxKeyLen, uint16_t maxValueLen) { auto answer = std::vector(); uint8_t numItems; - parser_error_t err = parser_getNumItems(ctx, &numItems); + parser_error_t err = parser_getNumItems(&numItems); if (err != parser_ok) { return answer; } @@ -45,8 +44,7 @@ std::vector dumpUI(parser_context_t *ctx, while (pageIdx < pageCount) { std::stringstream ss; - err = parser_getItem(ctx, - idx, + err = parser_getItem(idx, keyBuffer, maxKeyLen, valueBuffer, maxValueLen, pageIdx, &pageCount); diff --git a/tests/common.h b/tests/common.h index beb78755..600e873f 100644 --- a/tests/common.h +++ b/tests/common.h @@ -27,6 +27,6 @@ else FAIL() << "One of the strings is null"; } parser_error_t parse_tx(parsed_json_t *parsed_json, const char *tx); -std::vector dumpUI(parser_context_t *ctx, uint16_t maxKeyLen, uint16_t maxValueLen); +std::vector dumpUI(uint16_t maxKeyLen, uint16_t maxValueLen); #define JSON_PARSE(parsed_json, buffer) json_parse(parsed_json, buffer, strlen(buffer)) diff --git a/tests/json_parser.cpp b/tests/json_parser.cpp index 7bcc484d..90ec3640 100644 --- a/tests/json_parser.cpp +++ b/tests/json_parser.cpp @@ -365,7 +365,7 @@ namespace { TEST(TxValidationTest, ObjectGetValueCorrectFormat) { auto transaction = - R"({"account_number":"0","chain_id":"test-chain-1","fee":{"amount":[{"amount":"5","denom":"photon"}],"gas":"10000"},"memo":"testmemo","msgs":[{"inputs":[{"address":"cosmosaccaddr1d9h8qat5e4ehc5","coins":[{"amount":"10","denom":"atom"}]}],"outputs":[{"address":"cosmosaccaddr1da6hgur4wse3jx32","coins":[{"amount":"10","denom":"atom"}]}]}],"sequence":"1"})"; + R"({"account_number":"588","chain_id":"thorchain","fee":{"amount":[],"gas":"2000000"},"memo":"TestMemo","msgs":[{"type":"thorchain/MsgSend","value":{"amount":[{"amount":"150000000","denom":"rune"}],"from_address":"tthor1c648xgpter9xffhmcqvs7lzd7hxh0prgv5t5gp","to_address":"tthor10xgrknu44d83qr4s4uw56cqxg0hsev5e68lc9z","test":"test"}}],"sequence":"5"})"; parsed_json_t parsed_json; JSON_PARSE(&parsed_json, transaction); @@ -383,9 +383,9 @@ namespace { EXPECT_EQ(token_index, 6) << "Wrong token index"; EXPECT_EQ(object_get_value(&parsed_json, 0, "msgs", &token_index), parser_ok); - EXPECT_EQ(token_index, 19) << "Wrong token index"; + EXPECT_EQ(token_index, 14) << "Wrong token index"; EXPECT_EQ(object_get_value(&parsed_json, 0, "sequence", &token_index), parser_ok); - EXPECT_EQ(token_index, 46) << "Wrong token index"; + EXPECT_EQ(token_index, 34) << "Wrong token index"; } } diff --git a/tests/testcases.cpp b/tests/testcases.cpp index 8fc64886..634e2ce7 100644 --- a/tests/testcases.cpp +++ b/tests/testcases.cpp @@ -69,47 +69,3 @@ std::vector GetJsonTestCases(const std::string &jsonFile) { return answer; } - -std::vector GetJsonTextualTestCases(const std::string &jsonFile) { - auto answer = std::vector(); - - const Json::CharReaderBuilder builder; - Json::Value obj; - - const std::string fullPathJsonFile = std::string(TESTVECTORS_DIR) + jsonFile; - - std::ifstream inFile(fullPathJsonFile); - if (!inFile.is_open()) { - return answer; - } - - // Retrieve all test cases - JSONCPP_STRING errs; - Json::parseFromStream(builder, inFile, &obj, &errs); - std::cout << "Number of testcases: " << obj.size() << std::endl; - - for (int i = 0; i < obj.size(); i++) { - - auto outputs = std::vector(); - for (auto s : obj[i]["output"]) { - outputs.push_back(s.asString()); - } - - auto outputs_expert = std::vector(); - for (auto s : obj[i]["output_expert"]) { - outputs_expert.push_back(s.asString()); - } - - answer.push_back(testcase_t{ - obj[i]["index"].asUInt64(), - obj[i]["name"].asString(), - obj[i]["blob"].asString(), - "", - "", - outputs, - outputs_expert, - false - }); - } - return answer; -} diff --git a/tests/testcases.h b/tests/testcases.h index ed9fcd47..c7bc3744 100644 --- a/tests/testcases.h +++ b/tests/testcases.h @@ -28,5 +28,4 @@ typedef struct { bool expert; } testcase_t; -std::vector GetJsonTestCases(const std::string& filename); -std::vector GetJsonTextualTestCases(const std::string &jsonFile); +std::vector GetJsonTestCases(const std::string& filename); \ No newline at end of file diff --git a/tests/testcases/manual.json b/tests/testcases/manual.json deleted file mode 100644 index b7d00e03..00000000 --- a/tests/testcases/manual.json +++ /dev/null @@ -1,2269 +0,0 @@ -[ - { - "name": "empty", - "tx": "", - "parsingErr": "No error", - "validationErr": "JSON Missing chain_id", - "expected": [], - "expert": true - }, - { - "name": "minimal", - "tx": { - "account_number": "V1", - "chain_id": "V2", - "fee": { - "amount": [ - { - "amount": "b" - }, - { - "c": "d" - }, - { - "x": "y" - } - ], - "gas": "V3" - }, - "memo": "V4", - "msgs": [], - "sequence": "V5" - }, - "parsingErr": "No error", - "validationErr": "Unexpected field", - "expected": [ - "0 | Chain ID : V2", - "1 | Account : V1", - "2 | Sequence : V5", - "3 | Memo : V4", - "4 | fee/amount : Unexpected field", - "5 | Gas : V3" - ], - "expert": true - }, - { - "name": "multipleMessages", - "tx": { - "account_number": "V1", - "chain_id": "V2", - "fee": { - "amount": [ - { - "amount": "b", - "denom": "d" - } - ], - "gas": "V3" - }, - "memo": "V4", - "msgs": [ - { - "m1": "z1" - }, - { - "m2": "z2" - }, - { - "m3": "z3" - } - ], - "sequence": "V5" - }, - "parsingErr": "No error", - "validationErr": "No error", - "expected": [ - "0 | Chain ID : V2", - "1 | Account : V1", - "2 | Sequence : V5", - "3 | msgs/m1 : z1", - "4 | msgs/m2 : z2", - "5 | msgs/m3 : z3", - "6 | Memo : V4", - "7 | Fee : b d", - "8 | Gas : V3" - ], - "expert": true - }, - { - "name": "completeTransferExpert", - "tx": { - "account_number": "0", - "chain_id": "cosmoshub-4", - "fee": { - "amount": [ - { - "amount": "5", - "denom": "photon" - } - ], - "gas": "10000" - }, - "memo": "testmemo", - "msgs": [ - { - "inputs": [ - { - "address": "cosmosaccaddr1d9h8qat5e4ehc5", - "coins": [ - { - "amount": "10", - "denom": "atom" - } - ] - } - ], - "outputs": [ - { - "address": "cosmosaccaddr1da6hgur4wse3jx32", - "coins": [ - { - "amount": "10", - "denom": "atom" - } - ] - } - ] - } - ], - "sequence": "1" - }, - "parsingErr": "No error", - "validationErr": "No error", - "expected": [ - "0 | Chain ID : cosmoshub-4", - "1 | Account : 0", - "2 | Sequence : 1", - "3 | Source Address : cosmosaccaddr1d9h8qat5e4ehc5", - "4 | Source Coins : 10 atom", - "5 | Dest Address : cosmosaccaddr1da6hgur4wse3jx32", - "6 | Dest Coins : 10 atom", - "7 | Memo : testmemo", - "8 | Fee : 5 photon", - "9 | Gas : 10000" - ], - "expert": true - }, - { - "name": "completeTransfer", - "tx": { - "account_number": "0", - "chain_id": "cosmoshub-4", - "fee": { - "amount": [ - { - "amount": "5", - "denom": "photon" - } - ], - "gas": "10000" - }, - "memo": "testmemo", - "msgs": [ - { - "inputs": [ - { - "address": "cosmosaccaddr1d9h8qat5e4ehc5", - "coins": [ - { - "amount": "10", - "denom": "atom" - } - ] - } - ], - "outputs": [ - { - "address": "cosmosaccaddr1da6hgur4wse3jx32", - "coins": [ - { - "amount": "10", - "denom": "atom" - } - ] - } - ] - } - ], - "sequence": "1" - }, - "parsingErr": "No error", - "validationErr": "No error", - "expected": [ - "0 | Source Address : cosmosaccaddr1d9h8qat5e4ehc5", - "1 | Source Coins : 10 atom", - "2 | Dest Address : cosmosaccaddr1da6hgur4wse3jx32", - "3 | Dest Coins : 10 atom", - "4 | Memo : testmemo", - "5 | Fee : 5 photon" - ], - "expert": false - }, - { - "name": "completeTransferNoMemoExpert", - "tx": { - "account_number": "0", - "chain_id": "test-chain-1", - "fee": { - "amount": [ - { - "amount": "5", - "denom": "photon" - } - ], - "gas": "10000" - }, - "msgs": [ - { - "inputs": [ - { - "address": "cosmosaccaddr1d9h8qat5e4ehc5", - "coins": [ - { - "amount": "10", - "denom": "atom" - } - ] - } - ], - "outputs": [ - { - "address": "cosmosaccaddr1da6hgur4wse3jx32", - "coins": [ - { - "amount": "10", - "denom": "atom" - } - ] - } - ] - } - ], - "sequence": "1" - }, - "parsingErr": "No error", - "validationErr": "JSON Missing memo", - "expected": [ - "0 | Chain ID : test-chain-1", - "1 | Account : 0", - "2 | Sequence : 1", - "3 | Source Address : cosmosaccaddr1d9h8qat5e4ehc5", - "4 | Source Coins : 10 atom", - "5 | Dest Address : cosmosaccaddr1da6hgur4wse3jx32", - "6 | Dest Coins : 10 atom", - "7 | Fee : 5 photon", - "8 | Gas : 10000" - ], - "expert": true - }, - { - "name": "completeTransferNoMemo", - "tx": { - "account_number": "0", - "chain_id": "cosmoshub-4", - "fee": { - "amount": [ - { - "amount": "5", - "denom": "photon" - } - ], - "gas": "10000" - }, - "msgs": [ - { - "inputs": [ - { - "address": "cosmosaccaddr1d9h8qat5e4ehc5", - "coins": [ - { - "amount": "10", - "denom": "atom" - } - ] - } - ], - "outputs": [ - { - "address": "cosmosaccaddr1da6hgur4wse3jx32", - "coins": [ - { - "amount": "10", - "denom": "atom" - } - ] - } - ] - } - ], - "sequence": "1" - }, - "parsingErr": "No error", - "validationErr": "JSON Missing memo", - "expected": [ - "0 | Source Address : cosmosaccaddr1d9h8qat5e4ehc5", - "1 | Source Coins : 10 atom", - "2 | Dest Address : cosmosaccaddr1da6hgur4wse3jx32", - "3 | Dest Coins : 10 atom", - "4 | Fee : 5 photon" - ], - "expert": false - }, - { - "name": "completeTransferEmptyMemoExpert", - "tx": { - "account_number": "0", - "chain_id": "test-chain-1", - "fee": { - "amount": [ - { - "amount": "5", - "denom": "photon" - } - ], - "gas": "10000" - }, - "memo": "", - "msgs": [ - { - "inputs": [ - { - "address": "cosmosaccaddr1d9h8qat5e4ehc5", - "coins": [ - { - "amount": "10", - "denom": "atom" - } - ] - } - ], - "outputs": [ - { - "address": "cosmosaccaddr1da6hgur4wse3jx32", - "coins": [ - { - "amount": "10", - "denom": "atom" - } - ] - } - ] - } - ], - "sequence": "1" - }, - "parsingErr": "No error", - "validationErr": "No error", - "expected": [ - "0 | Chain ID : test-chain-1", - "1 | Account : 0", - "2 | Sequence : 1", - "3 | Source Address : cosmosaccaddr1d9h8qat5e4ehc5", - "4 | Source Coins : 10 atom", - "5 | Dest Address : cosmosaccaddr1da6hgur4wse3jx32", - "6 | Dest Coins : 10 atom", - "7 | Fee : 5 photon", - "8 | Gas : 10000" - ], - "expert": true - }, - { - "name": "completeTransferEmptyMemo", - "tx": { - "account_number": "0", - "chain_id": "cosmoshub-4", - "fee": { - "amount": [ - { - "amount": "5", - "denom": "photon" - } - ], - "gas": "10000" - }, - "memo": "", - "msgs": [ - { - "inputs": [ - { - "address": "cosmosaccaddr1d9h8qat5e4ehc5", - "coins": [ - { - "amount": "10", - "denom": "atom" - } - ] - } - ], - "outputs": [ - { - "address": "cosmosaccaddr1da6hgur4wse3jx32", - "coins": [ - { - "amount": "10", - "denom": "atom" - } - ] - } - ] - } - ], - "sequence": "1" - }, - "parsingErr": "No error", - "validationErr": "No error", - "expected": [ - "0 | Source Address : cosmosaccaddr1d9h8qat5e4ehc5", - "1 | Source Coins : 10 atom", - "2 | Dest Address : cosmosaccaddr1da6hgur4wse3jx32", - "3 | Dest Coins : 10 atom", - "4 | Fee : 5 photon" - ], - "expert": false - }, - { - "name": "multipleTransfersExpert", - "tx": { - "account_number": "0", - "chain_id": "test-chain-1", - "fee": { - "amount": [ - { - "amount": "5", - "denom": "photon" - } - ], - "gas": "10000" - }, - "memo": "testmemo", - "msgs": [ - { - "inputs": [ - { - "address": "cosmosaccaddr1d9h8qat5e4ehc5", - "coins": [ - { - "amount": "10", - "denom": "atom" - } - ] - } - ], - "outputs": [ - { - "address": "cosmosaccaddr1da6hgur4wse3jx32", - "coins": [ - { - "amount": "10", - "denom": "atom" - } - ] - } - ] - }, - { - "inputs": [ - { - "address": "test2", - "coins": [ - { - "amount": "20", - "denom": "bitcoin" - } - ] - } - ], - "outputs": [ - { - "address": "test3", - "coins": [ - { - "amount": "50", - "denom": "ripple" - } - ] - } - ] - } - ], - "sequence": "1" - }, - "parsingErr": "No error", - "validationErr": "No error", - "expected": [ - "0 | Chain ID : test-chain-1", - "1 | Account : 0", - "2 | Sequence : 1", - "3 | Source Address : cosmosaccaddr1d9h8qat5e4ehc5", - "4 | Source Coins : 10 atom", - "5 | Dest Address : cosmosaccaddr1da6hgur4wse3jx32", - "6 | Dest Coins : 10 atom", - "7 | Source Address : test2", - "8 | Source Coins : 20 bitcoin", - "9 | Dest Address : test3", - "10 | Dest Coins : 50 ripple", - "11 | Memo : testmemo", - "12 | Fee : 5 photon", - "13 | Gas : 10000" - ], - "expert": true - }, - { - "name": "multipleTransfers", - "tx": { - "account_number": "0", - "chain_id": "cosmoshub-4", - "fee": { - "amount": [ - { - "amount": "5", - "denom": "photon" - } - ], - "gas": "10000" - }, - "memo": "testmemo", - "msgs": [ - { - "inputs": [ - { - "address": "cosmosaccaddr1d9h8qat5e4ehc5", - "coins": [ - { - "amount": "10", - "denom": "atom" - } - ] - } - ], - "outputs": [ - { - "address": "cosmosaccaddr1da6hgur4wse3jx32", - "coins": [ - { - "amount": "10", - "denom": "atom" - } - ] - } - ] - }, - { - "inputs": [ - { - "address": "test2", - "coins": [ - { - "amount": "20", - "denom": "bitcoin" - } - ] - } - ], - "outputs": [ - { - "address": "test3", - "coins": [ - { - "amount": "50", - "denom": "ripple" - } - ] - } - ] - } - ], - "sequence": "1" - }, - "parsingErr": "No error", - "validationErr": "No error", - "expected": [ - "0 | Source Address : cosmosaccaddr1d9h8qat5e4ehc5", - "1 | Source Coins : 10 atom", - "2 | Dest Address : cosmosaccaddr1da6hgur4wse3jx32", - "3 | Dest Coins : 10 atom", - "4 | Source Address : test2", - "5 | Source Coins : 20 bitcoin", - "6 | Dest Address : test3", - "7 | Dest Coins : 50 ripple", - "8 | Memo : testmemo", - "9 | Fee : 5 photon" - ], - "expert": false - }, - { - "name": "delegationExpert", - "tx": { - "account_number": "6571", - "chain_id": "cosmoshub-4", - "fee": { - "amount": [ - { - "amount": "5000", - "denom": "uatom" - } - ], - "gas": "200000" - }, - "memo": "Zondax.ch", - "msgs": [ - { - "type": "cosmos-sdk/MsgDelegate", - "value": { - "amount": { - "amount": "1000000", - "denom": "uatom" - }, - "delegator_address": "cosmos102hty0jv2s29lyc4u0tv97z9v298e24t3vwtpl", - "validator_address": "cosmosvaloper1grgelyng2v6v3t8z87wu3sxgt9m5s03xfytvz7" - } - } - ], - "sequence": "1" - }, - "parsingErr": "No error", - "validationErr": "No error", - "expected": [ - "0 | Chain ID : cosmoshub-4", - "1 | Account : 6571", - "2 | Sequence : 1", - "3 | Type : Delegate", - "4 | Amount : 1000000 uatom", - "5 | Delegator [1/2] : cosmos102hty0jv2s29lyc4u0tv97z9v298e24t", - "5 | Delegator [2/2] : 3vwtpl", - "6 | Validator [1/2] : cosmosvaloper1grgelyng2v6v3t8z87wu3sxgt", - "6 | Validator [2/2] : 9m5s03xfytvz7", - "7 | Memo : Zondax.ch", - "8 | Fee : 5000 uatom", - "9 | Gas : 200000" - ], - "expert": true - }, - { - "name": "delegationDifferentChain", - "tx": { - "account_number": "6571", - "chain_id": "otherhub", - "fee": { - "amount": [ - { - "amount": "5000", - "denom": "uatom" - } - ], - "gas": "200000" - }, - "memo": "Zondax.ch", - "msgs": [ - { - "type": "cosmos-sdk/MsgDelegate", - "value": { - "amount": { - "amount": "1000000", - "denom": "uatom" - }, - "delegator_address": "cosmos102hty0jv2s29lyc4u0tv97z9v298e24t3vwtpl", - "validator_address": "cosmosvaloper1grgelyng2v6v3t8z87wu3sxgt9m5s03xfytvz7" - } - } - ], - "sequence": "1" - }, - "parsingErr": "No error", - "validationErr": "No error", - "expected": [ - "0 | Chain ID : otherhub", - "1 | Account : 6571", - "2 | Sequence : 1", - "3 | Type : Delegate", - "4 | Amount : 1000000 uatom", - "5 | Delegator [1/2] : cosmos102hty0jv2s29lyc4u0tv97z9v298e24t", - "5 | Delegator [2/2] : 3vwtpl", - "6 | Validator [1/2] : cosmosvaloper1grgelyng2v6v3t8z87wu3sxgt", - "6 | Validator [2/2] : 9m5s03xfytvz7", - "7 | Memo : Zondax.ch", - "8 | Fee : 5000 uatom", - "9 | Gas : 200000" - ], - "expert": false - }, - { - "name": "delegation", - "tx": { - "account_number": "6571", - "chain_id": "cosmoshub-4", - "fee": { - "amount": [ - { - "amount": "5000", - "denom": "uatom" - } - ], - "gas": "200000" - }, - "memo": "Zondax.ch", - "msgs": [ - { - "type": "cosmos-sdk/MsgDelegate", - "value": { - "amount": { - "amount": "1000000", - "denom": "uatom" - }, - "delegator_address": "cosmos102hty0jv2s29lyc4u0tv97z9v298e24t3vwtpl", - "validator_address": "cosmosvaloper1grgelyng2v6v3t8z87wu3sxgt9m5s03xfytvz7" - } - } - ], - "sequence": "1" - }, - "parsingErr": "No error", - "validationErr": "No error", - "expected": [ - "0 | Type : Delegate", - "1 | Amount : 1.000000 ATOM", - "2 | Delegator [1/2] : cosmos102hty0jv2s29lyc4u0tv97z9v298e24t", - "2 | Delegator [2/2] : 3vwtpl", - "3 | Validator [1/2] : cosmosvaloper1grgelyng2v6v3t8z87wu3sxgt", - "3 | Validator [2/2] : 9m5s03xfytvz7", - "4 | Memo : Zondax.ch", - "5 | Fee : 0.005000 ATOM" - ], - "expert": false - }, - { - "name": "proposalExpert", - "tx": { - "account_number": "2", - "chain_id": "local-testnet", - "fee": { - "amount": [], - "gas": "500000" - }, - "memo": "abc", - "msgs": [ - { - "description": "test", - "initial_deposit": [ - { - "amount": "1", - "denom": "stake" - } - ], - "proposal_type": "Text", - "proposer": "cosmos101234567890abcdefghijklmnopqrstuvwxyz0", - "title": "test" - } - ], - "sequence": "0" - }, - "parsingErr": "No error", - "validationErr": "No error", - "expected": [ - "0 | Chain ID : local-testnet", - "1 | Account : 2", - "2 | Sequence : 0", - "3 | msgs/description : test", - "4 | msgs/initial_deposit/amount : 1", - "5 | msgs/initial_deposit/denom : stake", - "6 | msgs/proposal_type : Text", - "7 | msgs/proposer [1/2] : cosmos101234567890abcdefghijklmnopqrstu", - "7 | msgs/proposer [2/2] : vwxyz0", - "8 | msgs/title : test", - "9 | Memo : abc", - "10 | Fee : Empty", - "11 | Gas : 500000" - ], - "expert": true - }, - { - "name": "proposal", - "tx": { - "account_number": "2", - "chain_id": "cosmoshub-4", - "fee": { - "amount": [], - "gas": "500000" - }, - "memo": "abc", - "msgs": [ - { - "description": "test", - "initial_deposit": [ - { - "amount": "1", - "denom": "stake" - } - ], - "proposal_type": "Text", - "proposer": "cosmos101234567890abcdefghijklmnopqrstuvwxyz0", - "title": "test" - } - ], - "sequence": "0" - }, - "parsingErr": "No error", - "validationErr": "No error", - "expected": [ - "0 | msgs/description : test", - "1 | msgs/initial_deposit/amount : 1", - "2 | msgs/initial_deposit/denom : stake", - "3 | msgs/proposal_type : Text", - "4 | msgs/proposer [1/2] : cosmos101234567890abcdefghijklmnopqrstu", - "4 | msgs/proposer [2/2] : vwxyz0", - "5 | msgs/title : test", - "6 | Memo : abc", - "7 | Fee : Empty" - ], - "expert": false - }, - { - "name": "delegation2Expert", - "tx": { - "account_number": "6571", - "chain_id": "cosmoshub-4", - "fee": { - "amount": [ - { - "amount": "5000", - "denom": "uatom" - } - ], - "gas": "200000" - }, - "memo": "Delegated with Ledger from union.market", - "msgs": [ - { - "type": "cosmos-sdk/MsgDelegate", - "value": { - "amount": { - "amount": "1000000", - "denom": "uatom" - }, - "delegator_address": "cosmos102hty0jv2s29lyc4u0tv97z9v298e24t3vwtpl", - "validator_address": "cosmosvaloper1grgelyng2v6v3t8z87wu3sxgt9m5s03xfytvz7" - } - } - ], - "sequence": "0" - }, - "parsingErr": "No error", - "validationErr": "No error", - "expected": [ - "0 | Chain ID : cosmoshub-4", - "1 | Account : 6571", - "2 | Sequence : 0", - "3 | Type : Delegate", - "4 | Amount : 1000000 uatom", - "5 | Delegator [1/2] : cosmos102hty0jv2s29lyc4u0tv97z9v298e24t", - "5 | Delegator [2/2] : 3vwtpl", - "6 | Validator [1/2] : cosmosvaloper1grgelyng2v6v3t8z87wu3sxgt", - "6 | Validator [2/2] : 9m5s03xfytvz7", - "7 | Memo : Delegated with Ledger from union.market", - "8 | Fee : 5000 uatom", - "9 | Gas : 200000" - ], - "expert": true - }, - { - "name": "delegation2", - "tx": { - "account_number": "6571", - "chain_id": "cosmoshub-4", - "fee": { - "amount": [ - { - "amount": "5000", - "denom": "uatom" - } - ], - "gas": "200000" - }, - "memo": "Delegated with Ledger from union.market", - "msgs": [ - { - "type": "cosmos-sdk/MsgDelegate", - "value": { - "amount": { - "amount": "1000000", - "denom": "uatom" - }, - "delegator_address": "cosmos102hty0jv2s29lyc4u0tv97z9v298e24t3vwtpl", - "validator_address": "cosmosvaloper1grgelyng2v6v3t8z87wu3sxgt9m5s03xfytvz7" - } - } - ], - "sequence": "0" - }, - "parsingErr": "No error", - "validationErr": "No error", - "expected": [ - "0 | Type : Delegate", - "1 | Amount : 1.000000 ATOM", - "2 | Delegator [1/2] : cosmos102hty0jv2s29lyc4u0tv97z9v298e24t", - "2 | Delegator [2/2] : 3vwtpl", - "3 | Validator [1/2] : cosmosvaloper1grgelyng2v6v3t8z87wu3sxgt", - "3 | Validator [2/2] : 9m5s03xfytvz7", - "4 | Memo : Delegated with Ledger from union.market", - "5 | Fee : 0.005000 ATOM" - ], - "expert": false - }, - { - "name": "badcase", - "tx": { - "chain_id": "1234567890AB", - "fee": "1234" - }, - "parsingErr": "No error", - "validationErr": "JSON Missing sequence", - "expected": [ - "0 | Chain ID : 1234567890AB", - "1 | fee : 1234" - ], - "expert": true - }, - { - "name": "badcase2", - "tx": { - "account_number": "6571", - "chain_id": "cosmoshub-4", - "fee": { - "amount": [ - { - "amount": "5000", - "denom": "uatom" - } - ], - "gas": "200000" - }, - "memo": "Delegated with Ledger from union.market", - "msgs": [ - { - "type": "cosmos-sdk/MsgDelegate", - "value": { - "amount": { - "amount": "1000000", - "denom": "uatom" - }, - "delegator_address": "cosmos102hty0jv2s29lyc4u0tv97z9v298e24t3vwtpl", - "validator_address": "cosmosvaloper1grgelyng2v6v3t8z87wu3sxgt9m5s03xfytvz7" - } - } - ], - "sequence": "0" - }, - "parsingErr": "No error", - "validationErr": "No error", - "expected": [ - "0 | Chain ID : cosmoshub-4", - "1 | Account : 6571", - "2 | Sequence : 0", - "3 | Type : Delegate", - "4 | Amount : 1000000 uatom", - "5 | Delegator [1/2] : cosmos102hty0jv2s29lyc4u0tv97z9v298e24t", - "5 | Delegator [2/2] : 3vwtpl", - "6 | Validator [1/2] : cosmosvaloper1grgelyng2v6v3t8z87wu3sxgt", - "6 | Validator [2/2] : 9m5s03xfytvz7", - "7 | Memo : Delegated with Ledger from union.market", - "8 | Fee : 5000 uatom", - "9 | Gas : 200000" - ], - "expert": true - }, - { - "name": "oldStackOverflow", - "tx": { - "1": [ - [ - [ - [ - [ - [ - [ - [ - [ - [ - [ - [ - { - "2": "4" - } - ] - ] - ] - ] - ] - ] - ] - ] - ] - ] - ] - ] - }, - "parsingErr": "No error", - "validationErr": "JSON Missing chain_id", - "expected": [ - ], - "expert": true - }, - { - "name": "groupingSmallExpert", - "tx": { - "account_number": "108", - "chain_id": "cosmoshub-4", - "fee": { - "amount": [ - { - "amount": "600", - "denom": "uatom" - } - ], - "gas": "200000" - }, - "memo": "", - "msgs": [ - { - "type": "cosmos-sdk/MsgWithdrawDelegationReward", - "value": { - "delegator_address": "cosmos14lultfckehtszvzw4ehu0apvsr77afvyhgqhwh", - "validator_address": "cosmosvaloper1qwl879nx9t6kef4supyazayf7vjhennyh568ys" - } - }, - { - "type": "cosmos-sdk/MsgWithdrawDelegationReward", - "value": { - "delegator_address": "cosmos14lultfckehtszvzw4ehu0apvsr77afvyhgqhwh", - "validator_address": "cosmosvaloper1x88j7vp2xnw3zec8ur3g4waxycyz7m0mahdv3p" - } - } - ], - "sequence": "106" - }, - "parsingErr": "No error", - "validationErr": "No error", - "expected": [ - "0 | Chain ID : cosmoshub-4", - "1 | Account : 108", - "2 | Sequence : 106", - "3 | Type : Withdraw Reward", - "4 | Delegator [1/2] : cosmos14lultfckehtszvzw4ehu0apvsr77afvy", - "4 | Delegator [2/2] : hgqhwh", - "5 | Validator [1/2] : cosmosvaloper1qwl879nx9t6kef4supyazayf7", - "5 | Validator [2/2] : vjhennyh568ys", - "6 | Delegator [1/2] : cosmos14lultfckehtszvzw4ehu0apvsr77afvy", - "6 | Delegator [2/2] : hgqhwh", - "7 | Validator [1/2] : cosmosvaloper1x88j7vp2xnw3zec8ur3g4waxy", - "7 | Validator [2/2] : cyz7m0mahdv3p", - "8 | Fee : 600 uatom", - "9 | Gas : 200000" - ], - "expert": true - }, - { - "name": "groupingSmall", - "tx": { - "account_number": "108", - "chain_id": "cosmoshub-4", - "fee": { - "amount": [ - { - "amount": "600", - "denom": "uatom" - } - ], - "gas": "200000" - }, - "memo": "", - "msgs": [ - { - "type": "cosmos-sdk/MsgWithdrawDelegationReward", - "value": { - "delegator_address": "cosmos14lultfckehtszvzw4ehu0apvsr77afvyhgqhwh", - "validator_address": "cosmosvaloper1qwl879nx9t6kef4supyazayf7vjhennyh568ys" - } - }, - { - "type": "cosmos-sdk/MsgWithdrawDelegationReward", - "value": { - "delegator_address": "cosmos14lultfckehtszvzw4ehu0apvsr77afvyhgqhwh", - "validator_address": "cosmosvaloper1x88j7vp2xnw3zec8ur3g4waxycyz7m0mahdv3p" - } - } - ], - "sequence": "106" - }, - "parsingErr": "No error", - "validationErr": "No error", - "expected": [ - "0 | Type : Withdraw Reward", - "1 | Delegator [1/2] : cosmos14lultfckehtszvzw4ehu0apvsr77afvy", - "1 | Delegator [2/2] : hgqhwh", - "2 | Validator [1/2] : cosmosvaloper1qwl879nx9t6kef4supyazayf7", - "2 | Validator [2/2] : vjhennyh568ys", - "3 | Validator [1/2] : cosmosvaloper1x88j7vp2xnw3zec8ur3g4waxy", - "3 | Validator [2/2] : cyz7m0mahdv3p", - "4 | Fee : 0.000600 ATOM" - ], - "expert": false - }, - { - "name": "groupingExpert", - "tx": { - "account_number": "108", - "chain_id": "cosmoshub-4", - "fee": { - "amount": [ - { - "amount": "600", - "denom": "uatom" - } - ], - "gas": "200000" - }, - "memo": "", - "msgs": [ - { - "type": "cosmos-sdk/MsgWithdrawDelegationReward", - "value": { - "delegator_address": "cosmos14lultfckehtszvzw4ehu0apvsr77afvyhgqhwh", - "validator_address": "cosmosvaloper1qwl879nx9t6kef4supyazayf7vjhennyh568ys" - } - }, - { - "type": "cosmos-sdk/MsgWithdrawDelegationReward", - "value": { - "delegator_address": "cosmos14lultfckehtszvzw4ehu0apvsr77afvyhgqhwh", - "validator_address": "cosmosvaloper1x88j7vp2xnw3zec8ur3g4waxycyz7m0mahdv3p" - } - }, - { - "type": "cosmos-sdk/MsgWithdrawDelegationReward", - "value": { - "delegator_address": "cosmos14lultfckehtszvzw4ehu0apvsr77afvyhgqhwh", - "validator_address": "cosmosvaloper1grgelyng2v6v3t8z87wu3sxgt9m5s03xfytvz7" - } - }, - { - "type": "cosmos-sdk/MsgWithdrawDelegationReward", - "value": { - "delegator_address": "cosmos14lultfckehtszvzw4ehu0apvsr77afvyhgqhwh", - "validator_address": "cosmosvaloper1ttfytaf43nkytzp8hkfjfgjc693ky4t3y2n2ku" - } - } - ], - "sequence": "106" - }, - "parsingErr": "No error", - "validationErr": "No error", - "expected": [ - "0 | Chain ID : cosmoshub-4", - "1 | Account : 108", - "2 | Sequence : 106", - "3 | Type : Withdraw Reward", - "4 | Delegator [1/2] : cosmos14lultfckehtszvzw4ehu0apvsr77afvy", - "4 | Delegator [2/2] : hgqhwh", - "5 | Validator [1/2] : cosmosvaloper1qwl879nx9t6kef4supyazayf7", - "5 | Validator [2/2] : vjhennyh568ys", - "6 | Delegator [1/2] : cosmos14lultfckehtszvzw4ehu0apvsr77afvy", - "6 | Delegator [2/2] : hgqhwh", - "7 | Validator [1/2] : cosmosvaloper1x88j7vp2xnw3zec8ur3g4waxy", - "7 | Validator [2/2] : cyz7m0mahdv3p", - "8 | Delegator [1/2] : cosmos14lultfckehtszvzw4ehu0apvsr77afvy", - "8 | Delegator [2/2] : hgqhwh", - "9 | Validator [1/2] : cosmosvaloper1grgelyng2v6v3t8z87wu3sxgt", - "9 | Validator [2/2] : 9m5s03xfytvz7", - "10 | Delegator [1/2] : cosmos14lultfckehtszvzw4ehu0apvsr77afvy", - "10 | Delegator [2/2] : hgqhwh", - "11 | Validator [1/2] : cosmosvaloper1ttfytaf43nkytzp8hkfjfgjc6", - "11 | Validator [2/2] : 93ky4t3y2n2ku", - "12 | Fee : 600 uatom", - "13 | Gas : 200000" - ], - "expert": true - }, - { - "name": "grouping_ledger_testcase", - "tx": { - "account_number": "108", - "chain_id": "cosmoshub-4", - "fee": { - "amount": [ - { - "amount": "600", - "denom": "uatom" - } - ], - "gas": "200000" - }, - "memo": "", - "msgs": [ - { - "type": "cosmos-sdk/MsgWithdrawDelegationReward", - "value": { - "delegator_address": "cosmos1kky4yzth6gdrm8ga5zlfwhav33yr7hl87jycah", - "validator_address": "cosmosvaloper1kn3wugetjuy4zetlq6wadchfhvu3x740ae6z6x" - } - }, - { - "type": "cosmos-sdk/MsgWithdrawDelegationReward", - "value": { - "delegator_address": "cosmos1kky4yzth6gdrm8ga5zlfwhav33yr7hl87jycah", - "validator_address": "cosmosvaloper1sjllsnramtg3ewxqwwrwjxfgc4n4ef9u2lcnj0" - } - }, - { - "type": "cosmos-sdk/MsgWithdrawDelegationReward", - "value": { - "delegator_address": "cosmos1kky4yzth6gdrm8ga5zlfwhav33yr7hl87jycah", - "validator_address": "cosmosvaloper1ey69r37gfxvxg62sh4r0ktpuc46pzjrm873ae8" - } - }, - { - "type": "cosmos-sdk/MsgWithdrawDelegationReward", - "value": { - "delegator_address": "cosmos1kky4yzth6gdrm8ga5zlfwhav33yr7hl87jycah", - "validator_address": "cosmosvaloper1648ynlpdw7fqa2axt0w2yp3fk542junl7rsvq6" - } - } - ], - "sequence": "106" - }, - "parsingErr": "No error", - "validationErr": "No error", - "expected": [ - "0 | Chain ID : cosmoshub-4", - "1 | Account : 108", - "2 | Sequence : 106", - "3 | Type : Withdraw Reward", - "4 | Delegator [1/2] : cosmos1kky4yzth6gdrm8ga5zlfwhav33yr7hl8", - "4 | Delegator [2/2] : 7jycah", - "5 | Validator [1/2] : cosmosvaloper1kn3wugetjuy4zetlq6wadchfh", - "5 | Validator [2/2] : vu3x740ae6z6x", - "6 | Delegator [1/2] : cosmos1kky4yzth6gdrm8ga5zlfwhav33yr7hl8", - "6 | Delegator [2/2] : 7jycah", - "7 | Validator [1/2] : cosmosvaloper1sjllsnramtg3ewxqwwrwjxfgc", - "7 | Validator [2/2] : 4n4ef9u2lcnj0", - "8 | Delegator [1/2] : cosmos1kky4yzth6gdrm8ga5zlfwhav33yr7hl8", - "8 | Delegator [2/2] : 7jycah", - "9 | Validator [1/2] : cosmosvaloper1ey69r37gfxvxg62sh4r0ktpuc", - "9 | Validator [2/2] : 46pzjrm873ae8", - "10 | Delegator [1/2] : cosmos1kky4yzth6gdrm8ga5zlfwhav33yr7hl8", - "10 | Delegator [2/2] : 7jycah", - "11 | Validator [1/2] : cosmosvaloper1648ynlpdw7fqa2axt0w2yp3fk", - "11 | Validator [2/2] : 542junl7rsvq6", - "12 | Fee : 600 uatom", - "13 | Gas : 200000" - ], - "expert": true - }, - { - "name": "massive", - "tx": { - "account_number": "108", - "chain_id": "cosmoshub-4", - "fee": { - "amount": [ - { - "amount": "600", - "denom": "uatom" - } - ], - "gas": "200000" - }, - "memo": "", - "msgs": [ - { - "type": "cosmos-sdk/MsgWithdrawDelegationReward", - "value": { - "delegator_address": "cosmos14lultfckehtszvzw4ehu0apvsr77afvyhgqhwh", - "validator_address": "cosmosvaloper1qwl879nx9t6kef4supyazayf7vjhennyh568ys" - } - }, - { - "type": "cosmos-sdk/MsgWithdrawDelegationReward", - "value": { - "delegator_address": "cosmos14lultfckehtszvzw4ehu0apvsr77afvyhgqhwh", - "validator_address": "cosmosvaloper1x88j7vp2xnw3zec8ur3g4waxycyz7m0mahdv3p" - } - }, - { - "type": "cosmos-sdk/MsgWithdrawDelegationReward", - "value": { - "delegator_address": "cosmos14lultfckehtszvzw4ehu0apvsr77afvyhgqhwh", - "validator_address": "cosmosvaloper1grgelyng2v6v3t8z87wu3sxgt9m5s03xfytvz7" - } - }, - { - "type": "cosmos-sdk/MsgWithdrawDelegationReward", - "value": { - "delegator_address": "cosmos14lultfckehtszvzw4ehu0apvsr77afvyhgqhwh", - "validator_address": "cosmosvaloper1ttfytaf43nkytzp8hkfjfgjc693ky4t3y2n2ku" - } - }, - { - "type": "cosmos-sdk/MsgWithdrawDelegationReward", - "value": { - "delegator_address": "cosmos14lultfckehtszvzw4ehu0apvsr77afvyhgqhwh", - "validator_address": "cosmosvaloper1wdrypwex63geqswmcy5qynv4w3z3dyef2qmyna" - } - }, - { - "type": "cosmos-sdk/MsgWithdrawDelegationReward", - "value": { - "delegator_address": "cosmos14lultfckehtszvzw4ehu0apvsr77afvyhgqhwh", - "validator_address": "cosmosvaloper102ruvpv2srmunfffxavttxnhezln6fnc54at8c" - } - }, - { - "type": "cosmos-sdk/MsgWithdrawDelegationReward", - "value": { - "delegator_address": "cosmos14lultfckehtszvzw4ehu0apvsr77afvyhgqhwh", - "validator_address": "cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv" - } - }, - { - "type": "cosmos-sdk/MsgWithdrawDelegationReward", - "value": { - "delegator_address": "cosmos14lultfckehtszvzw4ehu0apvsr77afvyhgqhwh", - "validator_address": "cosmosvaloper1sxx9mszve0gaedz5ld7qdkjkfv8z992ax69k08" - } - }, - { - "type": "cosmos-sdk/MsgWithdrawDelegationReward", - "value": { - "delegator_address": "cosmos14lultfckehtszvzw4ehu0apvsr77afvyhgqhwh", - "validator_address": "cosmosvaloper1ssm0d433seakyak8kcf93yefhknjleeds4y3em" - } - }, - { - "type": "cosmos-sdk/MsgWithdrawDelegationReward", - "value": { - "delegator_address": "cosmos14lultfckehtszvzw4ehu0apvsr77afvyhgqhwh", - "validator_address": "cosmosvaloper13sduv92y3xdhy3rpmhakrc3v7t37e7ps9l0kpv" - } - }, - { - "type": "cosmos-sdk/MsgWithdrawDelegationReward", - "value": { - "delegator_address": "cosmos14lultfckehtszvzw4ehu0apvsr77afvyhgqhwh", - "validator_address": "cosmosvaloper15urq2dtp9qce4fyc85m6upwm9xul3049e02707" - } - }, - { - "type": "cosmos-sdk/MsgWithdrawDelegationReward", - "value": { - "delegator_address": "cosmos14lultfckehtszvzw4ehu0apvsr77afvyhgqhwh", - "validator_address": "cosmosvaloper14kn0kk33szpwus9nh8n87fjel8djx0y070ymmj" - } - }, - { - "type": "cosmos-sdk/MsgWithdrawDelegationReward", - "value": { - "delegator_address": "cosmos14lultfckehtszvzw4ehu0apvsr77afvyhgqhwh", - "validator_address": "cosmosvaloper14lultfckehtszvzw4ehu0apvsr77afvyju5zzy" - } - }, - { - "type": "cosmos-sdk/MsgWithdrawDelegationReward", - "value": { - "delegator_address": "cosmos14lultfckehtszvzw4ehu0apvsr77afvyhgqhwh", - "validator_address": "cosmosvaloper1k9a0cs97vul8w2vwknlfmpez6prv8klv03lv3d" - } - }, - { - "type": "cosmos-sdk/MsgWithdrawDelegationReward", - "value": { - "delegator_address": "cosmos14lultfckehtszvzw4ehu0apvsr77afvyhgqhwh", - "validator_address": "cosmosvaloper1kj0h4kn4z5xvedu2nd9c4a9a559wvpuvu0h6qn" - } - }, - { - "type": "cosmos-sdk/MsgWithdrawDelegationReward", - "value": { - "delegator_address": "cosmos14lultfckehtszvzw4ehu0apvsr77afvyhgqhwh", - "validator_address": "cosmosvaloper1hjct6q7npsspsg3dgvzk3sdf89spmlpfdn6m9d" - } - } - ], - "sequence": "106" - }, - "parsingErr": "No error", - "validationErr": "No error", - "expected": [ - "0 | Chain ID : cosmoshub-4", - "1 | Account : 108", - "2 | Sequence : 106", - "3 | Type : Withdraw Reward", - "4 | Delegator [1/2] : cosmos14lultfckehtszvzw4ehu0apvsr77afvy", - "4 | Delegator [2/2] : hgqhwh", - "5 | Validator [1/2] : cosmosvaloper1qwl879nx9t6kef4supyazayf7", - "5 | Validator [2/2] : vjhennyh568ys", - "6 | Delegator [1/2] : cosmos14lultfckehtszvzw4ehu0apvsr77afvy", - "6 | Delegator [2/2] : hgqhwh", - "7 | Validator [1/2] : cosmosvaloper1x88j7vp2xnw3zec8ur3g4waxy", - "7 | Validator [2/2] : cyz7m0mahdv3p", - "8 | Delegator [1/2] : cosmos14lultfckehtszvzw4ehu0apvsr77afvy", - "8 | Delegator [2/2] : hgqhwh", - "9 | Validator [1/2] : cosmosvaloper1grgelyng2v6v3t8z87wu3sxgt", - "9 | Validator [2/2] : 9m5s03xfytvz7", - "10 | Delegator [1/2] : cosmos14lultfckehtszvzw4ehu0apvsr77afvy", - "10 | Delegator [2/2] : hgqhwh", - "11 | Validator [1/2] : cosmosvaloper1ttfytaf43nkytzp8hkfjfgjc6", - "11 | Validator [2/2] : 93ky4t3y2n2ku", - "12 | Delegator [1/2] : cosmos14lultfckehtszvzw4ehu0apvsr77afvy", - "12 | Delegator [2/2] : hgqhwh", - "13 | Validator [1/2] : cosmosvaloper1wdrypwex63geqswmcy5qynv4w", - "13 | Validator [2/2] : 3z3dyef2qmyna", - "14 | Delegator [1/2] : cosmos14lultfckehtszvzw4ehu0apvsr77afvy", - "14 | Delegator [2/2] : hgqhwh", - "15 | Validator [1/2] : cosmosvaloper102ruvpv2srmunfffxavttxnhe", - "15 | Validator [2/2] : zln6fnc54at8c", - "16 | Delegator [1/2] : cosmos14lultfckehtszvzw4ehu0apvsr77afvy", - "16 | Delegator [2/2] : hgqhwh", - "17 | Validator [1/2] : cosmosvaloper10e4vsut6suau8tk9m6dnrm0sl", - "17 | Validator [2/2] : gd6npe3jx5xpv", - "18 | Delegator [1/2] : cosmos14lultfckehtszvzw4ehu0apvsr77afvy", - "18 | Delegator [2/2] : hgqhwh", - "19 | Validator [1/2] : cosmosvaloper1sxx9mszve0gaedz5ld7qdkjkf", - "19 | Validator [2/2] : v8z992ax69k08", - "20 | Delegator [1/2] : cosmos14lultfckehtszvzw4ehu0apvsr77afvy", - "20 | Delegator [2/2] : hgqhwh", - "21 | Validator [1/2] : cosmosvaloper1ssm0d433seakyak8kcf93yefh", - "21 | Validator [2/2] : knjleeds4y3em", - "22 | Delegator [1/2] : cosmos14lultfckehtszvzw4ehu0apvsr77afvy", - "22 | Delegator [2/2] : hgqhwh", - "23 | Validator [1/2] : cosmosvaloper13sduv92y3xdhy3rpmhakrc3v7", - "23 | Validator [2/2] : t37e7ps9l0kpv", - "24 | Delegator [1/2] : cosmos14lultfckehtszvzw4ehu0apvsr77afvy", - "24 | Delegator [2/2] : hgqhwh", - "25 | Validator [1/2] : cosmosvaloper15urq2dtp9qce4fyc85m6upwm9", - "25 | Validator [2/2] : xul3049e02707", - "26 | Delegator [1/2] : cosmos14lultfckehtszvzw4ehu0apvsr77afvy", - "26 | Delegator [2/2] : hgqhwh", - "27 | Validator [1/2] : cosmosvaloper14kn0kk33szpwus9nh8n87fjel", - "27 | Validator [2/2] : 8djx0y070ymmj", - "28 | Delegator [1/2] : cosmos14lultfckehtszvzw4ehu0apvsr77afvy", - "28 | Delegator [2/2] : hgqhwh", - "29 | Validator [1/2] : cosmosvaloper14lultfckehtszvzw4ehu0apvs", - "29 | Validator [2/2] : r77afvyju5zzy", - "30 | Delegator [1/2] : cosmos14lultfckehtszvzw4ehu0apvsr77afvy", - "30 | Delegator [2/2] : hgqhwh", - "31 | Validator [1/2] : cosmosvaloper1k9a0cs97vul8w2vwknlfmpez6", - "31 | Validator [2/2] : prv8klv03lv3d", - "32 | Delegator [1/2] : cosmos14lultfckehtszvzw4ehu0apvsr77afvy", - "32 | Delegator [2/2] : hgqhwh", - "33 | Validator [1/2] : cosmosvaloper1kj0h4kn4z5xvedu2nd9c4a9a5", - "33 | Validator [2/2] : 59wvpuvu0h6qn", - "34 | Delegator [1/2] : cosmos14lultfckehtszvzw4ehu0apvsr77afvy", - "34 | Delegator [2/2] : hgqhwh", - "35 | Validator [1/2] : cosmosvaloper1hjct6q7npsspsg3dgvzk3sdf8", - "35 | Validator [2/2] : 9spmlpfdn6m9d", - "36 | Fee : 600 uatom", - "37 | Gas : 200000" - ], - "expert": true - }, - { - "name": "combined", - "tx": { - "account_number": "108", - "chain_id": "cosmoshub-4", - "fee": { - "amount": [ - { - "amount": "600", - "denom": "uatom" - } - ], - "gas": "200000" - }, - "memo": "", - "msgs": [ - { - "type": "cosmos-sdk/MsgWithdrawDelegationReward", - "value": { - "delegator_address": "cosmos19umvgcvk8cxsvzemy239nj9ngc2ltukantgyp3", - "validator_address": "cosmosvaloper1648ynlpdw7fqa2axt0w2yp3fk542junl7rsvq6" - } - }, - { - "type": "cosmos-sdk/MsgDelegate", - "value": { - "delegator_address": "cosmos19umvgcvk8cxsvzemy239nj9ngc2ltukantgyp3", - "validator_address": "cosmosvaloper1648ynlpdw7fqa2axt0w2yp3fk542junl7rsvq6", - "amount": { - "denom": "uatom", - "amount": "20139397" - } - } - } - ], - "sequence": "106" - }, - "parsingErr": "No error", - "validationErr": "No error", - "expected": [ - "0 | Type : Withdraw Reward", - "1 | Delegator [1/2] : cosmos19umvgcvk8cxsvzemy239nj9ngc2ltuka", - "1 | Delegator [2/2] : ntgyp3", - "2 | Validator [1/2] : cosmosvaloper1648ynlpdw7fqa2axt0w2yp3fk", - "2 | Validator [2/2] : 542junl7rsvq6", - "3 | Type : Delegate", - "4 | Amount : 20.139397 ATOM", - "5 | Validator [1/2] : cosmosvaloper1648ynlpdw7fqa2axt0w2yp3fk", - "5 | Validator [2/2] : 542junl7rsvq6", - "6 | Fee : 0.000600 ATOM" - ], - "expert": false - }, - { - "name": "completeTransferWithTips", - "tx": { - "account_number": "0", - "chain_id": "cosmoshub-4", - "fee": { - "amount": [ - { - "amount": "5", - "denom": "feecoin1" - }, - { - "amount": "6", - "denom": "feecoin2" - } - ], - "gas": "10000", - "granter": "cosmosaccaddr1d9h8xxxGRANTER", - "payer": "cosmosaccaddr1d9h8qatxxPAYER" - }, - "memo": "testmemo", - "msgs": [ - { - "inputs": [ - { - "address": "cosmosaccaddr1d9h8qatxxINPUT", - "coins": [ - { - "amount": "10", - "denom": "atom" - } - ] - } - ], - "outputs": [ - { - "address": "cosmosaccaddr1da6hguxxOUTPUT", - "coins": [ - { - "amount": "10", - "denom": "atom" - } - ] - } - ] - } - ], - "sequence": "1", - "tip": { - "amount": [ - { - "amount": "65", - "denom": "tipcoin" - }, - { - "amount": "66", - "denom": "tipcoin2" - } - ], - "tipper": "cosmosaccaddr1d9h8qatxTIPPER" - } - }, - "parsingErr": "No error", - "validationErr": "No error", - "expected": [ - "0 | Chain ID : cosmoshub-4", - "1 | Account : 0", - "2 | Sequence : 1", - "3 | Source Address : cosmosaccaddr1d9h8qatxxINPUT", - "4 | Source Coins : 10 atom", - "5 | Dest Address : cosmosaccaddr1da6hguxxOUTPUT", - "6 | Dest Coins : 10 atom", - "7 | Memo : testmemo", - "8 | Fee [1/2] : 5 feecoin1", - "8 | Fee [2/2] : 6 feecoin2", - "9 | Gas : 10000", - "10 | Granter : cosmosaccaddr1d9h8xxxGRANTER", - "11 | Payer : cosmosaccaddr1d9h8qatxxPAYER", - "12 | Tip [1/2] : 65 tipcoin", - "12 | Tip [2/2] : 66 tipcoin2", - "13 | Tipper : cosmosaccaddr1d9h8qatxTIPPER" - ], - "expert": true - }, - { - "name": "completeTransferWithTipsBasic", - "tx": { - "account_number": "0", - "chain_id": "cosmoshub-4", - "fee": { - "amount": [ - { - "amount": "5", - "denom": "photon" - } - ], - "gas": "10000", - "granter": "cosmosaccaddr1d9h8xxxGRANTER", - "payer": "cosmosaccaddr1d9h8qatxxPAYER" - }, - "memo": "testmemo", - "msgs": [ - { - "inputs": [ - { - "address": "cosmosaccaddr1d9h8qatxxINPUT", - "coins": [ - { - "amount": "10", - "denom": "atom" - } - ] - } - ], - "outputs": [ - { - "address": "cosmosaccaddr1da6hguxxOUTPUT", - "coins": [ - { - "amount": "10", - "denom": "atom" - } - ] - } - ] - } - ], - "sequence": "1", - "tip": { - "amount": [ - { - "amount": "65", - "denom": "tipcoin" - }, - { - "amount": "66", - "denom": "tipcoin2" - } - ], - "tipper": "cosmosaccaddr1d9h8qatxTIPPER" - } - }, - "parsingErr": "No error", - "validationErr": "No error", - "expected": [ - "0 | Source Address : cosmosaccaddr1d9h8qatxxINPUT", - "1 | Source Coins : 10 atom", - "2 | Dest Address : cosmosaccaddr1da6hguxxOUTPUT", - "3 | Dest Coins : 10 atom", - "4 | Memo : testmemo", - "5 | Fee : 5 photon", - "6 | Tip [1/2] : 65 tipcoin", - "6 | Tip [2/2] : 66 tipcoin2", - "7 | Tipper : cosmosaccaddr1d9h8qatxTIPPER" - ], - "expert": false - }, - { - "name": "doubleFees", - "tx": { - "account_number": "0", - "chain_id": "cosmoshub-4", - "fee": { - "amount": [ - { - "amount": "5", - "denom": "feecoin1" - }, - { - "amount": "6", - "denom": "feecoin2" - } - ], - "gas": "10000", - "granter": "cosmosaccaddr1d9h8xxxGRANTER", - "payer": "cosmosaccaddr1d9h8qatxxPAYER" - }, - "memo": "", - "msgs": [], - "sequence": "1", - "tip": { - "amount": [ - { - "amount": "65", - "denom": "tipcoin" - }, - { - "amount": "66", - "denom": "tipcoin2" - } - ], - "tipper": "cosmosaccaddr1d9h8qatxTIPPER" - } - }, - "parsingErr": "No error", - "validationErr": "No error", - "expected": [ - "0 | Chain ID : cosmoshub-4", - "1 | Account : 0", - "2 | Sequence : 1", - "3 | Fee [1/2] : 5 feecoin1", - "3 | Fee [2/2] : 6 feecoin2", - "4 | Gas : 10000", - "5 | Granter : cosmosaccaddr1d9h8xxxGRANTER", - "6 | Payer : cosmosaccaddr1d9h8qatxxPAYER", - "7 | Tip [1/2] : 65 tipcoin", - "7 | Tip [2/2] : 66 tipcoin2", - "8 | Tipper : cosmosaccaddr1d9h8qatxTIPPER" - ], - "expert": true - }, - { - "name": "MsgWithdrawValidatorCommission", - "tx": { - "account_number": "6571", - "chain_id": "cosmoshub-4", - "fee": { - "amount": [ - { - "amount": "5000", - "denom": "uatom" - } - ], - "gas": "200000" - }, - "memo": "Zondax.ch", - "msgs": [ - { - "type": "cosmos-sdk/MsgWithdrawValidatorCommission", - "value": { - "validator_address": "cosmosvaloper1grgelyng2v6v3t8z87wu3sxgt9m5s03xfytvz7" - } - } - ], - "sequence": "1" - }, - "parsingErr": "No error", - "validationErr": "No error", - "expected": [ - "0 | Type : Withdraw Val. Commission", - "1 | Validator [1/2] : cosmosvaloper1grgelyng2v6v3t8z87wu3sxgt", - "1 | Validator [2/2] : 9m5s03xfytvz7", - "2 | Memo : Zondax.ch", - "3 | Fee : 0.005000 ATOM" - ], - "expert": false - }, - { - "name": "MsgMultiSend", - "tx": { - "account_number": "8", - "chain_id": "testing", - "fee": { - "amount": [ - { - "amount": "0", - "denom": "uatom" - } - ], - "gas": "200000" - }, - "memo": "", - "msgs": [ - { - "type": "cosmos-sdk/MsgMultiSend", - "value": { - "inputs": [ - { - "address": "cosmos1hr9x0sjvel6z3vt9qny8sdd5gnnlgk0p69d6cv", - "coins": [ - { - "amount": "101000", - "denom": "uatom" - } - ] - } - ], - "outputs": [ - { - "address": "cosmos13dr26wdygna3s8fdl5tlc45m2le2ydydgjk8ek", - "coins": [ - { - "amount": "1000", - "denom": "uatom" - } - ] - }, - { - "address": "cosmos1hr9x0sjvel6z3vt9qny8sdd5gnnlgk0p69d6cv", - "coins": [ - { - "amount": "100000", - "denom": "uatom" - } - ] - } - ] - } - } - ], - "sequence": "0" - }, - "parsingErr": "No error", - "validationErr": "No error", - "expected": [ - "0 | Chain ID : testing", - "1 | Account : 8", - "2 | Sequence : 0", - "3 | Type : Multi Send", - "4 | Source Address [1/2] : cosmos1hr9x0sjvel6z3vt9qny8sdd5gnnlgk0p", - "4 | Source Address [2/2] : 69d6cv", - "5 | Source Coins : 101000 uatom", - "6 | Dest Address [1/2] : cosmos13dr26wdygna3s8fdl5tlc45m2le2ydyd", - "6 | Dest Address [2/2] : gjk8ek", - "7 | Dest Coins : 1000 uatom", - "8 | Dest Address [1/2] : cosmos1hr9x0sjvel6z3vt9qny8sdd5gnnlgk0p", - "8 | Dest Address [2/2] : 69d6cv", - "9 | Dest Coins : 100000 uatom", - "10 | Fee : 0 uatom", - "11 | Gas : 200000" - ], - "expert": true - }, - { - "name": "minimal_extra_field", - "tx": { - "account_number": "V1", - "chain_id": "V2", - "fee": { - "amount": [ - { - "amount": "b" - }, - { - "c": "d" - }, - { - "x": "y" - } - ], - "gas": "V3" - }, - "foo": "bar", - "memo": "V4", - "msgs": [], - "sequence": "V5", - "unknown_param": "123456" - }, - "foo": "bar", - "parsingErr": "No error", - "validationErr": "Unexpected field", - "expected": [ - "0 | Chain ID : V2", - "1 | Account : V1", - "2 | Sequence : V5", - "3 | Memo : V4", - "4 | fee/amount : Unexpected field", - "5 | Gas : V3" - ], - "expert": true - }, - { - "name": "ibc_denoms", - "tx": { - "account_number": "0", - "chain_id": "cosmoshub-4", - "fee": { - "amount": [ - { - "amount": "5", - "denom": "uatom" - } - ], - "gas": "10000" - }, - "memo": "testmemo", - "msgs": [ - { - "inputs": [ - { - "address": "cosmosaccaddr1d9h8qat5e4ehc5", - "coins": [ - { - "amount": "10", - "denom": "ibc/27394FB092D2ECCD56123C74F36E4C1F926001CEADA9CA97EA622B25F41E5EB2" - } - ] - } - ], - "outputs": [ - { - "address": "cosmosaccaddr1da6hgur4wse3jx32", - "coins": [ - { - "amount": "10", - "denom": "ibc/27394FB092D2ECCD56123C74F36E4C1F926001CEADA9CA97EA622B25F41E5EB2" - } - ] - } - ] - } - ], - "sequence": "1" - }, - "parsingErr": "No error", - "validationErr": "No error", - "expected": [ - "0 | Chain ID : cosmoshub-4", - "1 | Account : 0", - "2 | Sequence : 1", - "3 | Source Address : cosmosaccaddr1d9h8qat5e4ehc5", - "4 | Source Coins [1/2] : 10 ibc/27394FB092D2ECCD56123C74F36E4C1F", - "4 | Source Coins [2/2] : 926001CEADA9CA97EA622B25F41E5EB2", - "5 | Dest Address : cosmosaccaddr1da6hgur4wse3jx32", - "6 | Dest Coins [1/2] : 10 ibc/27394FB092D2ECCD56123C74F36E4C1F", - "6 | Dest Coins [2/2] : 926001CEADA9CA97EA622B25F41E5EB2", - "7 | Memo : testmemo", - "8 | Fee : 5 uatom", - "9 | Gas : 10000" - ], - "expert": true - }, - { - "name": "huge_test", - "tx": { - "account_number": "1", - "chain_id": "my-chain", - "fee": { "amount": [{ "amount": "2000", "denom": "uatom" }], "gas": "100000", "granter": "cosmos1ulav3hsenupswqfkw2y3sup5kgtqwnvqa8eyhs", "payer": "cosmos1ulav3hsenupswqfkw2y3sup5kgtqwnvqa8eyhs" }, - "memo": "\\u003e ⚛️\\u269B⚛️ ", - "msgs": [ - { - "type": "cosmos-sdk/MsgExec", - "value": { - "grantee": "cosmos1ulav3hsenupswqfkw2y3sup5kgtqwnvqa8eyhs", - "msgs": [ - { - "type": "cosmos-sdk/MsgSend", - "value": { - "amount": [{ "amount": "10000000", "denom": "uatom" }], - "from_address": "cosmos1ulav3hsenupswqfkw2y3sup5kgtqwnvqa8eyhs", - "to_address": "cosmos1ejrf4cur2wy6kfurg9f2jppp2h3afe5h6pkh5t" - } - } - ] - } - }, - { - "type": "cosmos-sdk/v1/MsgVote", - "value": { - "metadata": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Also it ends in a single ampersand @", - "option": 1, - "proposal_id": "1", - "voter": "cosmos1ulav3hsenupswqfkw2y3sup5kgtqwnvqa8eyhs" - } - } - ], - "sequence": "2", - "timeout_height": "20", - "tip": { - "amount": [ - { "amount": "20000", "denom": "uatom" }, - { "amount": "30000", "denom": "uosmo" } - ], - "tipper": "cosmos1ejrf4cur2wy6kfurg9f2jppp2h3afe5h6pkh5t" - } - }, - "parsingErr": "No error", - "validationErr": "No error", - "expected": [ - "0 | Chain ID : my-chain", - "1 | Account : 1", - "2 | Sequence : 2", - "3 | Type : cosmos-sdk/MsgExec", - "4 | msgs/value/grantee [1/2] : cosmos1ulav3hsenupswqfkw2y3sup5kgtqwnvq", - "4 | msgs/value/grantee [2/2] : a8eyhs", - "5 | msgs/value/msgs [1/6] : [{\"type\":\"cosmos-sdk/MsgSend\",\"value\":{", - "5 | msgs/value/msgs [2/6] : \"amount\":[{\"amount\":\"10000000\",\"denom\":", - "5 | msgs/value/msgs [3/6] : \"uatom\"}],\"from_address\":\"cosmos1ulav3h", - "5 | msgs/value/msgs [4/6] : senupswqfkw2y3sup5kgtqwnvqa8eyhs\",\"to_a", - "5 | msgs/value/msgs [5/6] : ddress\":\"cosmos1ejrf4cur2wy6kfurg9f2jpp", - "5 | msgs/value/msgs [6/6] : p2h3afe5h6pkh5t\"}}]", - "6 | Type : cosmos-sdk/v1/MsgVote", - "7 | msgs/value/metadata [1/13] : Lorem ipsum dolor sit amet, consectetur", - "7 | msgs/value/metadata [2/13] : adipiscing elit, sed do eiusmod tempor", - "7 | msgs/value/metadata [3/13] : incididunt ut labore et dolore magna a", - "7 | msgs/value/metadata [4/13] : liqua. Ut enim ad minim veniam, quis no", - "7 | msgs/value/metadata [5/13] : strud exercitation ullamco laboris nisi", - "7 | msgs/value/metadata [6/13] : ut aliquip ex ea commodo consequat. Du", - "7 | msgs/value/metadata [7/13] : is aute irure dolor in reprehenderit in", - "7 | msgs/value/metadata [8/13] : voluptate velit esse cillum dolore eu", - "7 | msgs/value/metadata [9/13] : fugiat nulla pariatur. Excepteur sint o", - "7 | msgs/value/metadata [10/13] : ccaecat cupidatat non proident, sunt in", - "7 | msgs/value/metadata [11/13] : culpa qui officia deserunt mollit anim", - "7 | msgs/value/metadata [12/13] : id est laborum. Also it ends in a sin", - "7 | msgs/value/metadata [13/13] : gle ampersand @", - "8 | Option : 1", - "9 | Proposal ID : 1", - "10 | Description [1/2] : cosmos1ulav3hsenupswqfkw2y3sup5kgtqwnvq", - "10 | Description [2/2] : a8eyhs", - "11 | Memo [1/2] : \\\\u003e \\u269b\\ufe0f\\\\u269B\\u269b\\ufe0f", - "11 | Memo [2/2] : ", - "12 | Fee : 2000 uatom", - "13 | Gas : 100000", - "14 | Granter [1/2] : cosmos1ulav3hsenupswqfkw2y3sup5kgtqwnvq", - "14 | Granter [2/2] : a8eyhs", - "15 | Payer [1/2] : cosmos1ulav3hsenupswqfkw2y3sup5kgtqwnvq", - "15 | Payer [2/2] : a8eyhs", - "16 | Tip [1/2] : 20000 uatom", - "16 | Tip [2/2] : 30000 uosmo", - "17 | Tipper [1/2] : cosmos1ejrf4cur2wy6kfurg9f2jppp2h3afe5h", - "17 | Tipper [2/2] : 6pkh5t" - ], - "expert": true - }, - { - "name": "MsgSetWithdrawAddress", - "tx":{ - "account_number": "8", - "chain_id": "testing", - "fee": { - "amount": [ - { - "amount": "5000", - "denom": "uatom" - } - ], - "gas": "200000" - }, - "memo": "", - "msgs": [ - { - "type": "cosmos-sdk/MsgSetWithdrawAddress", - "value": { - "delegator_address": "cosmos1hr9x0sjvel6z3vt9qny8sdd5gnnlgk0p69d6cv", - "withdraw_address": "cosmos12d64j98tjjpqkx70r08aspc4nvntqp2w6wr2de" - } - }, - { - "type": "cosmos-sdk/MsgWithdrawDelegationReward", - "value": { - "delegator_address": "cosmos1hr9x0sjvel6z3vt9qny8sdd5gnnlgk0p69d6cv", - "validator_address": "cosmosvaloper13dr26wdygna3s8fdl5tlc45m2le2ydyddxzj49" - } - } - ], - "sequence": "7" - }, - "parsingErr": "No error", - "validationErr": "No error", - "expected": [ - "0 | Chain ID : testing", - "1 | Account : 8", - "2 | Sequence : 7", - "3 | Type : Withdraw Set Address", - "4 | Delegator [1/2] : cosmos1hr9x0sjvel6z3vt9qny8sdd5gnnlgk0p", - "4 | Delegator [2/2] : 69d6cv", - "5 | Withdraw Address [1/2] : cosmos12d64j98tjjpqkx70r08aspc4nvntqp2w", - "5 | Withdraw Address [2/2] : 6wr2de", - "6 | Type : Withdraw Reward", - "7 | Delegator [1/2] : cosmos1hr9x0sjvel6z3vt9qny8sdd5gnnlgk0p", - "7 | Delegator [2/2] : 69d6cv", - "8 | Validator [1/2] : cosmosvaloper13dr26wdygna3s8fdl5tlc45m2", - "8 | Validator [2/2] : le2ydyddxzj49", - "9 | Fee : 5000 uatom", - "10 | Gas : 200000" - ], - "expert": true - }, - { - "name": "Gaia_Sign_00", - "tx": { - "account_number":"8", - "sequence":"2", - "chain_id":"my-chain", - "memo":"A B C", - "fee":{ - "amount":[], - "gas":"200000" - }, - "msgs":[{ - "type":"cosmos-sdk/MsgDeposit", - "value":{ - "amount":[{ - "amount":"10", - "denom":"stake" - }], - "depositor":"cosmos1xl2256vdh0j68khz9wq88hnyqcq0f5f4za2480", - "proposal_id":"1" - } - }] - }, - "parsingErr": "No error", - "validationErr": "No error", - "expected": [ - "0 | Chain ID : my-chain", - "1 | Account : 8", - "2 | Sequence : 2", - "3 | Type : Deposit", - "4 | Amount : 10 stake", - "5 | Sender [1/2] : cosmos1xl2256vdh0j68khz9wq88hnyqcq0f5f4", - "5 | Sender [2/2] : za2480", - "6 | Proposal ID : 1", - "7 | Memo : A B C", - "8 | Fee : Empty", - "9 | Gas : 200000" - ], - "expert": true - }, - { - "name": "Gaia_Sign_01", - "tx": { - "account_number":"123", - "sequence":"8", - "chain_id":"my-chain", - "fee":{ - "amount":[{ - "denom":"uatom", - "amount":"54" - }], - "gas_limit":"106309", - "granter": "cosmosaccaddr1d9h8xxxGRANTER", - "payer": "cosmosaccaddr1d9h8qatxxPAYER" - }, - - "msgs":[{ - "type":"cosmos-sdk/MsgDeposit", - "value":{ - "amount":[{ - "amount":"255000000", - "denom":"uatom" - }], - "depositor":"cosmos1849m9wncrqp6v4tkss6a3j8uzvuv0cp7wcgvqa", - "proposal_id":"44" - } - }], - "memo":"", - "timeout_height":"0", - "extension_options":[], - "non_critical_extension_options":[], - "auth_info":{ - "signer_infos":[] - }, - "signatures":[] - }, - "parsingErr": "No error", - "validationErr": "No error", - "expected": [ - "0 | Chain ID : my-chain", - "1 | Account : 123", - "2 | Sequence : 8", - "3 | Type : Deposit", - "4 | Amount : 255000000 uatom", - "5 | Sender [1/2] : cosmos1849m9wncrqp6v4tkss6a3j8uzvuv0cp7", - "5 | Sender [2/2] : wcgvqa", - "6 | Proposal ID : 44", - "7 | Fee : 54 uatom", - "8 | Gas Limit : 106309", - "9 | Granter : cosmosaccaddr1d9h8xxxGRANTER", - "10 | Payer : cosmosaccaddr1d9h8qatxxPAYER" - ], - "expert": true - }, - { - "name": "AMINO_MultiSend", - "tx": { - "account_number": "10", - "chain_id": "chain-WiONzW", - "fee": { - "amount": [], - "gas": "200000" - }, - "memo": "", - "msgs": [ - { - "type": "cosmos-sdk/MsgMultiSend", - "value": { - "inputs": [ - { - "address": "cosmos1w4efqfklkezgyt6lncjdwxncrzyzpr2efzcqal", - "coins": [ - { - "amount": "30", - "denom": "stake" - } - ] - } - ], - "outputs": [ - { - "address": "cosmos184hgxlzat3qhm7p28563w4jyw4aa3wcgnj6gtv", - "coins": [ - { - "amount": "10", - "denom": "stake" - } - ] - }, - { - "address": "cosmos1pfyz36qx8z8dm8ktd75mwx5j5vsmkzfn7wrgp9", - "coins": [ - { - "amount": "10", - "denom": "stake" - } - ] - }, - { - "address": "cosmos1xu388ml6krya3ysmlrup2ylxjtzhl4hlaem3ng", - "coins": [ - { - "amount": "10", - "denom": "stake" - } - ] - } - ] - } - } - ], - "sequence": "16" - }, - "parsingErr": "No error", - "validationErr": "No error", - "expected": [ - "0 | Chain ID : chain-WiONzW", - "1 | Account : 10", - "2 | Sequence : 16", - "3 | Type : Multi Send", - "4 | Source Address [1/2] : cosmos1w4efqfklkezgyt6lncjdwxncrzyzpr2e", - "4 | Source Address [2/2] : fzcqal", - "5 | Source Coins : 30 stake", - "6 | Dest Address [1/2] : cosmos184hgxlzat3qhm7p28563w4jyw4aa3wcg", - "6 | Dest Address [2/2] : nj6gtv", - "7 | Dest Coins : 10 stake", - "8 | Dest Address [1/2] : cosmos1pfyz36qx8z8dm8ktd75mwx5j5vsmkzfn", - "8 | Dest Address [2/2] : 7wrgp9", - "9 | Dest Coins : 10 stake", - "10 | Dest Address [1/2] : cosmos1xu388ml6krya3ysmlrup2ylxjtzhl4hl", - "10 | Dest Address [2/2] : aem3ng", - "11 | Dest Coins : 10 stake", - "12 | Fee : Empty", - "13 | Gas : 200000" - ], - "expert": true - -} - - -] diff --git a/tests/testcases/textual.json b/tests/testcases/textual.json deleted file mode 100644 index d057f323..00000000 --- a/tests/testcases/textual.json +++ /dev/null @@ -1,322 +0,0 @@ -[ - { - "index": 0, - "name": "minimal", - "blob": "a10191a20168436861696e20696402686d792d636861696ea2016e4163636f756e74206e756d626572026131a2016853657175656e6365026132a301674164647265737302782d636f736d6f7331756c6176336873656e7570737771666b77327933737570356b677471776e767161386579687304f5a3016a5075626c6963206b657902781f2f636f736d6f732e63727970746f2e736563703235366b312e5075624b657904f5a3026d5075624b6579206f626a656374030104f5a401634b657902785230324542204444374620453446442045423736204443384120323035452046363544203739304320443330452038413337203541354320323532382045423341203932334120463146422034443739203444030204f5a102781e54686973207472616e73616374696f6e206861732031204d657373616765a3016d4d6573736167652028312f312902781c2f636f736d6f732e62616e6b2e763162657461312e4d736753656e640301a2026e4d736753656e64206f626a6563740302a3016c46726f6d206164647265737302782d636f736d6f7331756c6176336873656e7570737771666b77327933737570356b677471776e76716138657968730303a3016a546f206164647265737302782d636f736d6f7331656a726634637572327779366b667572673966326a707070326833616665356836706b6835740303a30166416d6f756e74026731302041544f4d0303a1026e456e64206f66204d657373616765a2016446656573026a302e3030322041544f4da30169476173206c696d697402673130302730303004f5a3017148617368206f66207261772062797465730278403738356264333036656138393632636462393630303038396264643635663364633032396531616561313132646565363965313935343663396164616438366504f5", - "output": [ - - "0 | Chain id : my-chain", - "1 | Account number : 1", - "2 | Sequence : 2", - "3 | : This transaction has 1 Message", - "4 | >Message (1/1) : /cosmos.bank.v1beta1.MsgSend", - "5 | : MsgSend object", - "6 | >>>--- [1/2] : From address: cosmos1ulav3hsenupswqfkw2", - "6 | >>>--- [2/2] : y3sup5kgtqwnvqa8eyhs", - "7 | >>>--- [1/2] : To address: cosmos1ejrf4cur2wy6kfurg9f2", - "7 | >>>--- [2/2] : jppp2h3afe5h6pkh5t", - "8 | >>>Amount : 10 ATOM", - "9 | : End of Message", - "10 | Fees : 0.002 ATOM" - ], - "output_expert": [ - "0 | Chain id : my-chain", - "1 | Account number : 1", - "2 | Sequence : 2", - "3 | Address [1/2] : cosmos1ulav3hsenupswqfkw2y3sup5kgtqwnvq", - "3 | Address [2/2] : a8eyhs", - "4 | Public key : /cosmos.crypto.secp256k1.PubKey", - "5 | : >PubKey object", - "6 | >>Key [1/3] : 02EB DD7F E4FD EB76 DC8A 205E F65D 790C", - "6 | >>Key [2/3] : D30E 8A37 5A5C 2528 EB3A 923A F1FB 4D7", - "6 | >>Key [3/3] : 9 4D", - "7 | : This transaction has 1 Message", - "8 | >Message (1/1) : /cosmos.bank.v1beta1.MsgSend", - "9 | : MsgSend object", - "10 | >>>--- [1/2] : From address: cosmos1ulav3hsenupswqfkw2", - "10 | >>>--- [2/2] : y3sup5kgtqwnvqa8eyhs", - "11 | >>>--- [1/2] : To address: cosmos1ejrf4cur2wy6kfurg9f2", - "11 | >>>--- [2/2] : jppp2h3afe5h6pkh5t", - "12 | >>>Amount : 10 ATOM", - "13 | : End of Message", - "14 | Fees : 0.002 ATOM", - "15 | Gas limit : 100'000", - "16 | --- [1/3] : Hash of raw bytes: 785bd306ea8962cdb960", - "16 | --- [2/3] : 0089bdd65f3dc029e1aea112dee69e19546c9ad", - "16 | --- [3/3] : ad86e" - ] - }, - { - "index": 1, - "name": "utf8_test", - "blob": "a10192a20168436861696e20696402686d792d636861696ea2016e4163636f756e74206e756d626572026131a2016853657175656e6365026132a301674164647265737302782d636f736d6f7331756c6176336873656e7570737771666b77327933737570356b677471776e767161386579687304f5a3016a5075626c6963206b657902781f2f636f736d6f732e63727970746f2e736563703235366b312e5075624b657904f5a3026d5075624b6579206f626a656374030104f5a401634b657902785230324542204444374620453446442045423736204443384120323035452046363544203739304320443330452038413337203541354320323532382045423341203932334120463146422034443739203444030204f5a102781e54686973207472616e73616374696f6e206861732031204d657373616765a3016d4d6573736167652028312f312902781c2f636f736d6f732e62616e6b2e763162657461312e4d736753656e640301a2026e4d736753656e64206f626a6563740302a3016c46726f6d206164647265737302782d636f736d6f7331756c6176336873656e7570737771666b77327933737570356b677471776e76716138657968730303a3016a546f206164647265737302782d636f736d6f7331656a726634637572327779366b667572673966326a707070326833616665356836706b6835740303a30166416d6f756e74026731302041544f4d0303a1026e456e64206f66204d657373616765a201644d656d6f0278193e20e29a9befb88f5c7532363942e29a9befb88f2020202020a2016446656573026a302e3030322041544f4da30169476173206c696d697402673130302730303004f5a3017148617368206f66207261772062797465730278403963303433323930313039633237306232666661396633633066613535613039306330313235656265663838316637646135333937386462663933663733383504f5", - "output": [ - "0 | Chain id : my-chain", - "1 | Account number : 1", - "2 | Sequence : 2", - "3 | : This transaction has 1 Message", - "4 | >Message (1/1) : /cosmos.bank.v1beta1.MsgSend", - "5 | : MsgSend object", - "6 | >>>--- [1/2] : From address: cosmos1ulav3hsenupswqfkw2", - "6 | >>>--- [2/2] : y3sup5kgtqwnvqa8eyhs", - "7 | >>>--- [1/2] : To address: cosmos1ejrf4cur2wy6kfurg9f2", - "7 | >>>--- [2/2] : jppp2h3afe5h6pkh5t", - "8 | >>>Amount : 10 ATOM", - "9 | : End of Message", - "10 | Memo : > \\u269B\\uFE0F\\\\u269B\\u269B\\uFE0F @", - "11 | Fees : 0.002 ATOM" - ], - "output_expert": [ - "0 | Chain id : my-chain", - "1 | Account number : 1", - "2 | Sequence : 2", - "3 | Address [1/2] : cosmos1ulav3hsenupswqfkw2y3sup5kgtqwnvq", - "3 | Address [2/2] : a8eyhs", - "4 | Public key : /cosmos.crypto.secp256k1.PubKey", - "5 | : >PubKey object", - "6 | >>Key [1/3] : 02EB DD7F E4FD EB76 DC8A 205E F65D 790C", - "6 | >>Key [2/3] : D30E 8A37 5A5C 2528 EB3A 923A F1FB 4D7", - "6 | >>Key [3/3] : 9 4D", - "7 | : This transaction has 1 Message", - "8 | >Message (1/1) : /cosmos.bank.v1beta1.MsgSend", - "9 | : MsgSend object", - "10 | >>>--- [1/2] : From address: cosmos1ulav3hsenupswqfkw2", - "10 | >>>--- [2/2] : y3sup5kgtqwnvqa8eyhs", - "11 | >>>--- [1/2] : To address: cosmos1ejrf4cur2wy6kfurg9f2", - "11 | >>>--- [2/2] : jppp2h3afe5h6pkh5t", - "12 | >>>Amount : 10 ATOM", - "13 | : End of Message", - "14 | Memo : > \\u269B\\uFE0F\\\\u269B\\u269B\\uFE0F @", - "15 | Fees : 0.002 ATOM", - "16 | Gas limit : 100'000", - "17 | --- [1/3] : Hash of raw bytes: 9c043290109c270b2ffa", - "17 | --- [2/3] : 9f3c0fa55a090c0125ebef881f7da53978dbf93", - "17 | --- [3/3] : f7385" - ] - }, - { - "index": 3, - "name": "long_text", - "blob": "a10192a20168436861696e20696402686d792d636861696ea2016e4163636f756e74206e756d626572026131a2016853657175656e6365026132a301674164647265737302782d636f736d6f7331756c6176336873656e7570737771666b77327933737570356b677471776e767161386579687304f5a3016a5075626c6963206b657902781f2f636f736d6f732e63727970746f2e736563703235366b312e5075624b657904f5a3026d5075624b6579206f626a656374030104f5a401634b657902785230324542204444374620453446442045423736204443384120323035452046363544203739304320443330452038413337203541354320323532382045423341203932334120463146422034443739203444030204f5a102781e54686973207472616e73616374696f6e206861732031204d657373616765a3016d4d6573736167652028312f312902762f636f736d6f732e676f762e76312e4d7367566f74650301a2026e4d7367566f7465206f626a6563740302a3016b50726f706f73616c2069640261310303a30165566f74657202782d636f736d6f7331756c6176336873656e7570737771666b77327933737570356b677471776e76716138657968730303a301664f7074696f6e026f564f54455f4f5054494f4e5f5945530303a301684d65746164617461027901e34c6f72656d20697073756d20646f6c6f722073697420616d65742c20636f6e73656374657475722061646970697363696e6720656c69742c2073656420646f20656975736d6f642074656d706f7220696e6369646964756e74207574206c61626f726520657420646f6c6f7265206d61676e6120616c697175612e20557420656e696d206164206d696e696d2076656e69616d2c2071756973206e6f737472756420657865726369746174696f6e20756c6c616d636f206c61626f726973206e69736920757420616c697175697020657820656120636f6d6d6f646f20636f6e7365717561742e2044756973206175746520697275726520646f6c6f7220696e20726570726568656e646572697420696e20766f6c7570746174652076656c697420657373652063696c6c756d20646f6c6f726520657520667567696174206e756c6c612070617269617475722e204578636570746575722073696e74206f6363616563617420637570696461746174206e6f6e2070726f6964656e742c2073756e7420696e2063756c706120717569206f666669636961206465736572756e74206d6f6c6c697420616e696d20696420657374206c61626f72756d2e20416c736f20697420656e647320696e2020612073696e676c6520616d70657273616e6420400303a1026e456e64206f66204d657373616765a2016446656573026a302e3030322041544f4da30169476173206c696d697402673130302730303004f5a3017148617368206f66207261772062797465730278403033393761383830333861396435663463633630653365303662623032626239663039333230396664373230353730303866646461656162366630333964373404f5", - "output": [ - "0 | Chain id : my-chain", - "1 | Account number : 1", - "2 | Sequence : 2", - "3 | : This transaction has 1 Message", - "4 | >Message (1/1) : /cosmos.gov.v1.MsgVote", - "5 | : MsgVote object", - "6 | >>>Proposal id : 1", - "7 | >>>Voter [1/2] : cosmos1ulav3hsenupswqfkw2y3sup5kgtqwnvq", - "7 | >>>Voter [2/2] : a8eyhs", - "8 | >>>Option : VOTE_OPTION_YES", - "9 | >>>--- [1/13] : Metadata: Lorem ipsum dolor sit amet, c", - "9 | >>>--- [2/13] : onsectetur adipiscing elit, sed do eius", - "9 | >>>--- [3/13] : mod tempor incididunt ut labore et dolo", - "9 | >>>--- [4/13] : re magna aliqua. Ut enim ad minim venia", - "9 | >>>--- [5/13] : m, quis nostrud exercitation ullamco la", - "9 | >>>--- [6/13] : boris nisi ut aliquip ex ea commodo con", - "9 | >>>--- [7/13] : sequat. Duis aute irure dolor in repreh", - "9 | >>>--- [8/13] : enderit in voluptate velit esse cillum", - "9 | >>>--- [9/13] : dolore eu fugiat nulla pariatur. Except", - "9 | >>>--- [10/13] : eur sint occaecat cupidatat non proiden", - "9 | >>>--- [11/13] : t, sunt in culpa qui officia deserunt m", - "9 | >>>--- [12/13] : ollit anim id est laborum. Also it ends", - "9 | >>>--- [13/13] : in a single ampersand @@", - "10 | : End of Message", - "11 | Fees : 0.002 ATOM" - ], - "output_expert": [ - "0 | Chain id : my-chain", - "1 | Account number : 1", - "2 | Sequence : 2", - "3 | Address [1/2] : cosmos1ulav3hsenupswqfkw2y3sup5kgtqwnvq", - "3 | Address [2/2] : a8eyhs", - "4 | Public key : /cosmos.crypto.secp256k1.PubKey", - "5 | : >PubKey object", - "6 | >>Key [1/3] : 02EB DD7F E4FD EB76 DC8A 205E F65D 790C", - "6 | >>Key [2/3] : D30E 8A37 5A5C 2528 EB3A 923A F1FB 4D7", - "6 | >>Key [3/3] : 9 4D", - "7 | : This transaction has 1 Message", - "8 | >Message (1/1) : /cosmos.gov.v1.MsgVote", - "9 | : MsgVote object", - "10 | >>>Proposal id : 1", - "11 | >>>Voter [1/2] : cosmos1ulav3hsenupswqfkw2y3sup5kgtqwnvq", - "11 | >>>Voter [2/2] : a8eyhs", - "12 | >>>Option : VOTE_OPTION_YES", - "13 | >>>--- [1/13] : Metadata: Lorem ipsum dolor sit amet, c", - "13 | >>>--- [2/13] : onsectetur adipiscing elit, sed do eius", - "13 | >>>--- [3/13] : mod tempor incididunt ut labore et dolo", - "13 | >>>--- [4/13] : re magna aliqua. Ut enim ad minim venia", - "13 | >>>--- [5/13] : m, quis nostrud exercitation ullamco la", - "13 | >>>--- [6/13] : boris nisi ut aliquip ex ea commodo con", - "13 | >>>--- [7/13] : sequat. Duis aute irure dolor in repreh", - "13 | >>>--- [8/13] : enderit in voluptate velit esse cillum", - "13 | >>>--- [9/13] : dolore eu fugiat nulla pariatur. Except", - "13 | >>>--- [10/13] : eur sint occaecat cupidatat non proiden", - "13 | >>>--- [11/13] : t, sunt in culpa qui officia deserunt m", - "13 | >>>--- [12/13] : ollit anim id est laborum. Also it ends", - "13 | >>>--- [13/13] : in a single ampersand @@", - "14 | : End of Message", - "15 | Fees : 0.002 ATOM", - "16 | Gas limit : 100'000", - "17 | --- [1/3] : Hash of raw bytes: 0397a88038a9d5f4cc60", - "17 | --- [2/3] : e3e06bb02bb9f093209fd72057008fddaeab6f0", - "17 | --- [3/3] : 39d74" - ] - }, - { - "index": 4, - "name": "big_test", - "blob": "a1019847a20168436861696e20696402686d792d636861696ea2016e4163636f756e74206e756d626572026131a2016853657175656e6365026132a301674164647265737302782d636f736d6f7331756c6176336873656e7570737771666b77327933737570356b677471776e767161386579687304f5a3016a5075626c6963206b657902781f2f636f736d6f732e63727970746f2e736563703235366b312e5075624b657904f5a3026d5075624b6579206f626a656374030104f5a401634b657902785230324542204444374620453446442045423736204443384120323035452046363544203739304320443330452038413337203541354320323532382045423341203932334120463146422034443739203444030204f5a102781f54686973207472616e73616374696f6e206861732032204d65737361676573a3016d4d6573736167652028312f322902781d2f636f736d6f732e617574687a2e763162657461312e4d7367457865630301a2026e4d736745786563206f626a6563740302a301674772616e74656502782d636f736d6f7331756c6176336873656e7570737771666b77327933737570356b677471776e76716138657968730303a301644d73677302653120416e790303a3016a4d7367732028312f312902781c2f636f736d6f732e62616e6b2e763162657461312e4d736753656e640304a2026e4d736753656e64206f626a6563740305a3016c46726f6d206164647265737302782d636f736d6f7331756c6176336873656e7570737771666b77327933737570356b677471776e76716138657968730306a3016a546f206164647265737302782d636f736d6f7331656a726634637572327779366b667572673966326a707070326833616665356836706b6835740306a30166416d6f756e74026731302041544f4d0306a2026b456e64206f66204d7367730303a3016d4d6573736167652028322f322902762f636f736d6f732e676f762e76312e4d7367566f74650301a2026e4d7367566f7465206f626a6563740302a3016b50726f706f73616c2069640261310303a30165566f74657202782d636f736d6f7331756c6176336873656e7570737771666b77327933737570356b677471776e76716138657968730303a301664f7074696f6e026f564f54455f4f5054494f4e5f5945530303a301684d65746164617461027901e34c6f72656d20697073756d20646f6c6f722073697420616d65742c20636f6e73656374657475722061646970697363696e6720656c69742c2073656420646f20656975736d6f642074656d706f7220696e6369646964756e74207574206c61626f726520657420646f6c6f7265206d61676e6120616c697175612e20557420656e696d206164206d696e696d2076656e69616d2c2071756973206e6f737472756420657865726369746174696f6e20756c6c616d636f206c61626f726973206e69736920757420616c697175697020657820656120636f6d6d6f646f20636f6e7365717561742e2044756973206175746520697275726520646f6c6f7220696e20726570726568656e646572697420696e20766f6c7570746174652076656c697420657373652063696c6c756d20646f6c6f726520657520667567696174206e756c6c612070617269617475722e204578636570746575722073696e74206f6363616563617420637570696461746174206e6f6e2070726f6964656e742c2073756e7420696e2063756c706120717569206f666669636961206465736572756e74206d6f6c6c697420616e696d20696420657374206c61626f72756d2e20416c736f20697420656e647320696e2020612073696e676c6520616d70657273616e6420400303a1026e456e64206f66204d657373616765a201644d656d6f0278193e20e29a9befb88f5c7532363942e29a9befb88f2020202020a2016446656573026a302e3030322041544f4da3016946656520706179657202782d636f736d6f7331656a726634637572327779366b667572673966326a707070326833616665356836706b68357404f5a3016b466565206772616e74657202782d636f736d6f7331756c6176336873656e7570737771666b77327933737570356b677471776e767161386579687304f5a201635469700277302e30322041544f4d2c2033302730303020756f736d6fa2016654697070657202782d636f736d6f7331656a726634637572327779366b667572673966326a707070326833616665356836706b683574a30169476173206c696d697402673130302730303004f5a3016e54696d656f7574206865696768740262323004f5a3016c4f74686572207369676e6572026c31205369676e6572496e666f04f5a401724f74686572207369676e65722028312f312902715369676e6572496e666f206f626a656374030104f5a4016a5075626c6963206b65790278292f636f736d6f732e63727970746f2e6d756c74697369672e4c6567616379416d696e6f5075624b6579030204f5a30278184c6567616379416d696e6f5075624b6579206f626a656374030304f5a401695468726573686f6c64026132030404f5a4016b5075626c6963206b65797302653220416e79030404f5a401715075626c6963206b6579732028312f322902781f2f636f736d6f732e63727970746f2e736563703235366b312e5075624b6579030504f5a3026d5075624b6579206f626a656374030604f5a401634b657902785230323537203445424520304246432037353446203539363720334241312031423237203530304620393135382041444532204531374520314130312038324230204341384220433635322034444230203933030704f5a401715075626c6963206b6579732028322f322902781d2f636f736d6f732e63727970746f2e656432353531392e5075624b6579030504f5a3026d5075624b6579206f626a656374030604f5a401634b657902785230333135203043343720463138412041333237203136413620353437452044413842203733363920303637442043453131204431343120363234352042373738203735364320463833352039363738203737030704f5a30272456e64206f66205075626c6963206b657973030404f5a401694d6f646520696e666f026f4d6f6465496e666f206f626a656374030204f5a401654d756c7469026c4d756c7469206f626a656374030304f5a4016842697461727261790276436f6d706163744269744172726179206f626a656374030404f5a40171457874726120626974732073746f726564026135030504f5a40165456c656d7302623438030504f5a4016a4d6f646520696e666f73026a32204d6f6465496e666f030404f5a401704d6f646520696e666f732028312f3229026f4d6f6465496e666f206f626a656374030504f5a4016653696e676c65026d53696e676c65206f626a656374030604f5a401644d6f646502781b5349474e5f4d4f44455f4c45474143595f414d494e4f5f4a534f4e030704f5a401704d6f646520696e666f732028322f3229026f4d6f6465496e666f206f626a656374030504f5a4016653696e676c65026d53696e676c65206f626a656374030604f5a401644d6f646502781b5349474e5f4d4f44455f4c45474143595f414d494e4f5f4a534f4e030704f5a30271456e64206f66204d6f646520696e666f73030404f5a4016853657175656e6365026135030204f5a20273456e64206f66204f74686572207369676e657204f5a30171457874656e73696f6e206f7074696f6e7302653120416e7904f5a40177457874656e73696f6e206f7074696f6e732028312f31290278192f636f736d6f732e626173652e763162657461312e436f696e030104f5a30266352041544f4d030204f5a2027818456e64206f6620457874656e73696f6e206f7074696f6e7304f5a301781e4e6f6e20637269746963616c20657874656e73696f6e206f7074696f6e7302653120416e7904f5a40178244e6f6e20637269746963616c20657874656e73696f6e206f7074696f6e732028312f312902781b2f636f736d6f732e617574682e763162657461312e506172616d73030104f5a3026d506172616d73206f626a656374030204f5a401734d6178206d656d6f206368617261637465727302623130030304f5a2027825456e64206f66204e6f6e20637269746963616c20657874656e73696f6e206f7074696f6e7304f5a3017148617368206f66207261772062797465730278403765613032653866306261656432646239363965326439616534646335316661333131313632353962643432383937353838303732666166306562623464326504f5", - "output": [ - "0 | Chain id : my-chain", - "1 | Account number : 1", - "2 | Sequence : 2", - "3 | : This transaction has 2 Messages", - "4 | >Message (1/2) : /cosmos.authz.v1beta1.MsgExec", - "5 | : MsgExec object", - "6 | >>>Grantee [1/2] : cosmos1ulav3hsenupswqfkw2y3sup5kgtqwnvq", - "6 | >>>Grantee [2/2] : a8eyhs", - "7 | >>>Msgs : 1 Any", - "8 | >>>>Msgs (1/1) : /cosmos.bank.v1beta1.MsgSend", - "9 | : MsgSend object", - "10 | >>>>>>--- [1/2] : From address: cosmos1ulav3hsenupswqfkw2", - "10 | >>>>>>--- [2/2] : y3sup5kgtqwnvqa8eyhs", - "11 | >>>>>>--- [1/2] : To address: cosmos1ejrf4cur2wy6kfurg9f2", - "11 | >>>>>>--- [2/2] : jppp2h3afe5h6pkh5t", - "12 | >>>>>>Amount : 10 ATOM", - "13 | : End of Msgs", - "14 | >Message (2/2) : /cosmos.gov.v1.MsgVote", - "15 | : MsgVote object", - "16 | >>>Proposal id : 1", - "17 | >>>Voter [1/2] : cosmos1ulav3hsenupswqfkw2y3sup5kgtqwnvq", - "17 | >>>Voter [2/2] : a8eyhs", - "18 | >>>Option : VOTE_OPTION_YES", - "19 | >>>--- [1/13] : Metadata: Lorem ipsum dolor sit amet, c", - "19 | >>>--- [2/13] : onsectetur adipiscing elit, sed do eius", - "19 | >>>--- [3/13] : mod tempor incididunt ut labore et dolo", - "19 | >>>--- [4/13] : re magna aliqua. Ut enim ad minim venia", - "19 | >>>--- [5/13] : m, quis nostrud exercitation ullamco la", - "19 | >>>--- [6/13] : boris nisi ut aliquip ex ea commodo con", - "19 | >>>--- [7/13] : sequat. Duis aute irure dolor in repreh", - "19 | >>>--- [8/13] : enderit in voluptate velit esse cillum", - "19 | >>>--- [9/13] : dolore eu fugiat nulla pariatur. Except", - "19 | >>>--- [10/13] : eur sint occaecat cupidatat non proiden", - "19 | >>>--- [11/13] : t, sunt in culpa qui officia deserunt m", - "19 | >>>--- [12/13] : ollit anim id est laborum. Also it ends", - "19 | >>>--- [13/13] : in a single ampersand @@", - "20 | : End of Message", - "21 | Memo : > \\u269B\\uFE0F\\\\u269B\\u269B\\uFE0F @", - "22 | Fees : 0.002 ATOM", - "23 | Tip : 0.02 ATOM, 30'000 uosmo", - "24 | Tipper [1/2] : cosmos1ejrf4cur2wy6kfurg9f2jppp2h3afe5h", - "24 | Tipper [2/2] : 6pkh5t" - ], - "output_expert": [ - "0 | Chain id : my-chain", - "1 | Account number : 1", - "2 | Sequence : 2", - "3 | Address [1/2] : cosmos1ulav3hsenupswqfkw2y3sup5kgtqwnvq", - "3 | Address [2/2] : a8eyhs", - "4 | Public key : /cosmos.crypto.secp256k1.PubKey", - "5 | : >PubKey object", - "6 | >>Key [1/3] : 02EB DD7F E4FD EB76 DC8A 205E F65D 790C", - "6 | >>Key [2/3] : D30E 8A37 5A5C 2528 EB3A 923A F1FB 4D7", - "6 | >>Key [3/3] : 9 4D", - "7 | : This transaction has 2 Messages", - "8 | >Message (1/2) : /cosmos.authz.v1beta1.MsgExec", - "9 | : MsgExec object", - "10 | >>>Grantee [1/2] : cosmos1ulav3hsenupswqfkw2y3sup5kgtqwnvq", - "10 | >>>Grantee [2/2] : a8eyhs", - "11 | >>>Msgs : 1 Any", - "12 | >>>>Msgs (1/1) : /cosmos.bank.v1beta1.MsgSend", - "13 | : MsgSend object", - "14 | >>>>>>--- [1/2] : From address: cosmos1ulav3hsenupswqfkw2", - "14 | >>>>>>--- [2/2] : y3sup5kgtqwnvqa8eyhs", - "15 | >>>>>>--- [1/2] : To address: cosmos1ejrf4cur2wy6kfurg9f2", - "15 | >>>>>>--- [2/2] : jppp2h3afe5h6pkh5t", - "16 | >>>>>>Amount : 10 ATOM", - "17 | : End of Msgs", - "18 | >Message (2/2) : /cosmos.gov.v1.MsgVote", - "19 | : MsgVote object", - "20 | >>>Proposal id : 1", - "21 | >>>Voter [1/2] : cosmos1ulav3hsenupswqfkw2y3sup5kgtqwnvq", - "21 | >>>Voter [2/2] : a8eyhs", - "22 | >>>Option : VOTE_OPTION_YES", - "23 | >>>--- [1/13] : Metadata: Lorem ipsum dolor sit amet, c", - "23 | >>>--- [2/13] : onsectetur adipiscing elit, sed do eius", - "23 | >>>--- [3/13] : mod tempor incididunt ut labore et dolo", - "23 | >>>--- [4/13] : re magna aliqua. Ut enim ad minim venia", - "23 | >>>--- [5/13] : m, quis nostrud exercitation ullamco la", - "23 | >>>--- [6/13] : boris nisi ut aliquip ex ea commodo con", - "23 | >>>--- [7/13] : sequat. Duis aute irure dolor in repreh", - "23 | >>>--- [8/13] : enderit in voluptate velit esse cillum", - "23 | >>>--- [9/13] : dolore eu fugiat nulla pariatur. Except", - "23 | >>>--- [10/13] : eur sint occaecat cupidatat non proiden", - "23 | >>>--- [11/13] : t, sunt in culpa qui officia deserunt m", - "23 | >>>--- [12/13] : ollit anim id est laborum. Also it ends", - "23 | >>>--- [13/13] : in a single ampersand @@", - "24 | : End of Message", - "25 | Memo : > \\u269B\\uFE0F\\\\u269B\\u269B\\uFE0F @", - "26 | Fees : 0.002 ATOM", - "27 | Fee payer [1/2] : cosmos1ejrf4cur2wy6kfurg9f2jppp2h3afe5h", - "27 | Fee payer [2/2] : 6pkh5t", - "28 | --- [1/2] : Fee granter: cosmos1ulav3hsenupswqfkw2y", - "28 | --- [2/2] : 3sup5kgtqwnvqa8eyhs", - "29 | Tip : 0.02 ATOM, 30'000 uosmo", - "30 | Tipper [1/2] : cosmos1ejrf4cur2wy6kfurg9f2jppp2h3afe5h", - "30 | Tipper [2/2] : 6pkh5t", - "31 | Gas limit : 100'000", - "32 | Timeout height : 20", - "33 | Other signer : 1 SignerInfo", - "34 | >--- : Other signer (1/1): SignerInfo object", - "35 | >>--- [1/2] : Public key: /cosmos.crypto.multisig.Leg", - "35 | >>--- [2/2] : acyAminoPubKey", - "36 | : >>>LegacyAminoPubKey object", - "37 | >>>>Threshold : 2", - "38 | >>>>Public keys : 2 Any", - "39 | >>>>>--- [1/2] : Public keys (1/2): /cosmos.crypto.secp2", - "39 | >>>>>--- [2/2] : 56k1.PubKey", - "40 | : >>>>>>PubKey object", - "41 | >>>>>>>Key [1/3] : 0257 4EBE 0BFC 754F 5967 3BA1 1B27 500F", - "41 | >>>>>>>Key [2/3] : 9158 ADE2 E17E 1A01 82B0 CA8B C652 4DB", - "41 | >>>>>>>Key [3/3] : 0 93", - "42 | >>>>>--- [1/2] : Public keys (2/2): /cosmos.crypto.ed255", - "42 | >>>>>--- [2/2] : 19.PubKey", - "43 | : >>>>>>PubKey object", - "44 | >>>>>>>Key [1/3] : 0315 0C47 F18A A327 16A6 547E DA8B 7369", - "44 | >>>>>>>Key [2/3] : 067D CE11 D141 6245 B778 756C F835 967", - "44 | >>>>>>>Key [3/3] : 8 77", - "45 | : >>>>End of Public keys", - "46 | >>Mode info : ModeInfo object", - "47 | >>>Multi : Multi object", - "48 | >>>>Bitarray : CompactBitArray object", - "49 | >>>>>--- : Extra bits stored: 5", - "50 | >>>>>Elems : 48", - "51 | >>>>Mode infos : 2 ModeInfo", - "52 | >>>>>--- : Mode infos (1/2): ModeInfo object", - "53 | >>>>>>Single : Single object", - "54 | >>>>>>>Mode : SIGN_MODE_LEGACY_AMINO_JSON", - "55 | >>>>>--- : Mode infos (2/2): ModeInfo object", - "56 | >>>>>>Single : Single object", - "57 | >>>>>>>Mode : SIGN_MODE_LEGACY_AMINO_JSON", - "58 | : >>>>End of Mode infos", - "59 | >>Sequence : 5", - "60 | : End of Other signer", - "61 | Extension options : 1 Any", - "62 | >--- [1/2] : Extension options (1/1): /cosmos.base.v", - "62 | >--- [2/2] : 1beta1.Coin", - "63 | : >>5 ATOM", - "64 | : End of Extension options", - "65 | --- : Non critical extension options: 1 Any", - "66 | >--- [1/2] : Non critical extension options (1/1): /", - "66 | >--- [2/2] : cosmos.auth.v1beta1.Params", - "67 | : >>Params object", - "68 | >>>--- : Max memo characters: 10", - "69 | : End of Non critical extension options", - "70 | --- [1/3] : Hash of raw bytes: 7ea02e8f0baed2db969e", - "70 | --- [2/3] : 2d9ae4dc51fa31116259bd42897588072faf0eb", - "70 | --- [3/3] : b4d2e" - ] - } -] diff --git a/tests/testcases/thor.json b/tests/testcases/thor.json new file mode 100644 index 00000000..05cc61f6 --- /dev/null +++ b/tests/testcases/thor.json @@ -0,0 +1,363 @@ +[ + { + "name": "empty", + "tx": "", + "parsingErr": "No error", + "validationErr": "JSON Missing chain_id", + "expected": [], + "expert": true + }, + { + "name": "multipleMessages", + "tx": { + "account_number": "588", + "chain_id": "thorchain", + "fee": { + "amount": [], + "gas": "2000000" + }, + "memo": "TestMemo", + "msgs": [ + { + "type": "thorchain/MsgSend", + "value": { + "amount": [ + { + "amount": "150000000", + "denom": "rune" + } + ], + "from_address": "tthor1c648xgpter9xffhmcqvs7lzd7hxh0prgv5t5gp", + "to_address": "tthor10xgrknu44d83qr4s4uw56cqxg0hsev5e68lc9z" + } + }, + { + "type": "thorchain/MsgSend", + "value": { + "amount": [ + { + "amount": "50000000", + "denom": "rune" + } + ], + "from_address": "tthor1c648xgpter9xffhmcqvs7lzd7hxh0prgv5t5gp", + "to_address": "tthor10xgrknu44d83qr4s4uw56cqxg0hsev5e68lc9z" + } + } + ], + "sequence": "5" + }, + "parsingErr": "No error", + "validationErr": "No error", + "expected": [ + "0 | Chain ID : thorchain", + "1 | Account : 588", + "2 | Sequence : 5", + "3 | Type : Send", + "4 | Amount : 150000000 rune", + "5 | From [1/2] : tthor1c648xgpter9xffhmcqvs7lzd7hxh0prgv", + "5 | From [2/2] : 5t5gp", + "6 | To [1/2] : tthor10xgrknu44d83qr4s4uw56cqxg0hsev5e6", + "6 | To [2/2] : 8lc9z", + "7 | Amount : 50000000 rune", + "8 | From [1/2] : tthor1c648xgpter9xffhmcqvs7lzd7hxh0prgv", + "8 | From [2/2] : 5t5gp", + "9 | To [1/2] : tthor10xgrknu44d83qr4s4uw56cqxg0hsev5e6", + "9 | To [2/2] : 8lc9z", + "10 | Memo : TestMemo", + "11 | Fee : Empty", + "12 | Gas : 2000000" + ], + "expert": true + }, + { + "name": "msgSendNoMemoExpert", + "tx": { + "account_number": "588", + "chain_id": "thorchain", + "fee": { + "amount": [], + "gas": "2000000" + }, + "msgs": [ + { + "type": "thorchain/MsgSend", + "value": { + "amount": [ + { + "amount": "150000000", + "denom": "rune" + } + ], + "from_address": "tthor1c648xgpter9xffhmcqvs7lzd7hxh0prgv5t5gp", + "to_address": "tthor10xgrknu44d83qr4s4uw56cqxg0hsev5e68lc9z" + } + } + ], + "sequence": "5" + }, + "parsingErr": "No error", + "validationErr": "JSON Missing memo", + "expected": [ + "0 | Chain ID : thorchain", + "1 | Account : 588", + "2 | Sequence : 5", + "3 | Type : Send", + "4 | Amount : 150000000 rune", + "5 | From [1/2] : tthor1c648xgpter9xffhmcqvs7lzd7hxh0prgv", + "5 | From [2/2] : 5t5gp", + "6 | To [1/2] : tthor10xgrknu44d83qr4s4uw56cqxg0hsev5e6", + "6 | To [2/2] : 8lc9z", + "7 | Fee : Empty", + "8 | Gas : 2000000" + ], + "expert": true + }, + { + "name": "msgSendNoMemo", + "tx": { + "account_number": "588", + "chain_id": "thorchain", + "fee": { + "amount": [], + "gas": "2000000" + }, + "msgs": [ + { + "type": "thorchain/MsgSend", + "value": { + "amount": [ + { + "amount": "150000000", + "denom": "rune" + } + ], + "from_address": "tthor1c648xgpter9xffhmcqvs7lzd7hxh0prgv5t5gp", + "to_address": "tthor10xgrknu44d83qr4s4uw56cqxg0hsev5e68lc9z" + } + } + ], + "sequence": "5" + }, + "parsingErr": "No error", + "validationErr": "JSON Missing memo", + "expected": [ + "0 | Type : Send", + "1 | Amount : 1.5 RUNE", + "2 | From [1/2] : tthor1c648xgpter9xffhmcqvs7lzd7hxh0prgv", + "2 | From [2/2] : 5t5gp", + "3 | To [1/2] : tthor10xgrknu44d83qr4s4uw56cqxg0hsev5e6", + "3 | To [2/2] : 8lc9z" + ], + "expert": false + }, + { + "name": "msgSendEmptyMemoExpert", + "tx": { + "account_number": "588", + "chain_id": "thorchain", + "fee": { + "amount": [], + "gas": "2000000" + }, + "memo": "", + "msgs": [ + { + "type": "thorchain/MsgSend", + "value": { + "amount": [ + { + "amount": "150000000", + "denom": "rune" + } + ], + "from_address": "tthor1c648xgpter9xffhmcqvs7lzd7hxh0prgv5t5gp", + "to_address": "tthor10xgrknu44d83qr4s4uw56cqxg0hsev5e68lc9z" + } + } + ], + "sequence": "5" + }, + "parsingErr": "No error", + "validationErr": "No error", + "expected": [ + "0 | Chain ID : thorchain", + "1 | Account : 588", + "2 | Sequence : 5", + "3 | Type : Send", + "4 | Amount : 150000000 rune", + "5 | From [1/2] : tthor1c648xgpter9xffhmcqvs7lzd7hxh0prgv", + "5 | From [2/2] : 5t5gp", + "6 | To [1/2] : tthor10xgrknu44d83qr4s4uw56cqxg0hsev5e6", + "6 | To [2/2] : 8lc9z", + "7 | Fee : Empty", + "8 | Gas : 2000000" + ], + "expert": true + }, + { + "name": "msgSendEmptyMemo", + "tx": { + "account_number": "588", + "chain_id": "thorchain", + "fee": { + "amount": [], + "gas": "2000000" + }, + "memo": "", + "msgs": [ + { + "type": "thorchain/MsgSend", + "value": { + "amount": [ + { + "amount": "150000000", + "denom": "rune" + } + ], + "from_address": "tthor1c648xgpter9xffhmcqvs7lzd7hxh0prgv5t5gp", + "to_address": "tthor10xgrknu44d83qr4s4uw56cqxg0hsev5e68lc9z" + } + } + ], + "sequence": "5" + }, + "parsingErr": "No error", + "validationErr": "No error", + "expected": [ + "0 | Type : Send", + "1 | Amount : 1.5 RUNE", + "2 | From [1/2] : tthor1c648xgpter9xffhmcqvs7lzd7hxh0prgv", + "2 | From [2/2] : 5t5gp", + "3 | To [1/2] : tthor10xgrknu44d83qr4s4uw56cqxg0hsev5e6", + "3 | To [2/2] : 8lc9z" + ], + "expert": false + }, + { + "name": "oldStackOverflow", + "tx": { + "1": [ + [ + [ + [ + [ + [ + [ + [ + [ + [ + [ + [ + { + "2": "4" + } + ] + ] + ] + ] + ] + ] + ] + ] + ] + ] + ] + ] + }, + "parsingErr": "No error", + "validationErr": "JSON Missing chain_id", + "expected": [ + ], + "expert": true + }, + { + "name": "msgDepositMultipleAmountsExpert", + "tx": { + "account_number": "588", + "chain_id": "thorchain", + "fee": { + "amount": [], + "gas": "10000000" + }, + "memo": "", + "msgs": [ + { + "type": "thorchain/MsgDeposit", + "value": { + "coins": [ + { + "amount": "330000000", + "asset": "THOR.RUNE" + }, + { + "amount": "220000000", + "asset": "BSC.USDT" + } + ], + "memo": "SWAP:BNB.BNB:tbnb1qk2m905ypazwfau9cn0qnr4c4yxz63v9u9md20:", + "signer": "tthor1c648xgpter9xffhmcqvs7lzd7hxh0prgv5t5gp" + } + } + ], + "sequence": "6" + }, + "parsingErr": "No error", + "validationErr": "No error", + "expected": [ + "0 | Chain ID : thorchain", + "1 | Account : 588", + "2 | Sequence : 6", + "3 | Type : Deposit", + "4 | Amount [1/2] : 330000000 THOR.RUNE", + "4 | Amount [2/2] : 220000000 BSC.USDT", + "5 | Memo [1/2] : SWAP:BNB.BNB:tbnb1qk2m905ypazwfau9cn0qn", + "5 | Memo [2/2] : r4c4yxz63v9u9md20:", + "6 | Sender [1/2] : tthor1c648xgpter9xffhmcqvs7lzd7hxh0prgv", + "6 | Sender [2/2] : 5t5gp", + "7 | Fee : Empty", + "8 | Gas : 10000000" + ], + "expert": true + }, + { + "name": "msgDepositNoMemoExpert", + "tx": { + "account_number": "588", + "chain_id": "thorchain", + "fee": { + "amount": [], + "gas": "10000000" + }, + "msgs": [ + { + "type": "thorchain/MsgDeposit", + "value": { + "coins": [ + { + "amount": "330000000", + "asset": "THOR.RUNE" + } + ], + "signer": "tthor1c648xgpter9xffhmcqvs7lzd7hxh0prgv5t5gp" + } + } + ], + "sequence": "6" + }, + "parsingErr": "No error", + "validationErr": "JSON Missing memo", + "expected": [ + "0 | Chain ID : thorchain", + "1 | Account : 588", + "2 | Sequence : 6", + "3 | Type : Deposit", + "4 | Amount : 330000000 THOR.RUNE", + "5 | Sender [1/2] : tthor1c648xgpter9xffhmcqvs7lzd7hxh0prgv", + "5 | Sender [2/2] : 5t5gp", + "6 | Fee : Empty", + "7 | Gas : 10000000" + ], + "expert": true + } +] \ No newline at end of file diff --git a/tests/tx_parse.cpp b/tests/tx_parse.cpp index f4c7b2aa..15da7d5b 100644 --- a/tests/tx_parse.cpp +++ b/tests/tx_parse.cpp @@ -141,7 +141,7 @@ namespace { } TEST(TxParse, Tx_Chain_not_Allowed) { - auto transaction = R"({"account_number":"0","chain_id":"0","fee":{"amount":[{"amount":"5","denom":"photon"}],"gas":"10000"},"memo":"testmemo","msgs":[{"inputs":[{"address":"cosmosaccaddr1d9h8qat5e4ehc5","coins":[{"amount":"10","denom":"atom"}]}],"outputs":[{"address":"cosmosaccaddr1da6hgur4wse3jx32","coins":[{"amount":"10","denom":"atom"}]}]}],"sequence":"1"})"; + auto transaction = R"({"account_number":"588","chain_id":"0","fee":{"amount":[],"gas":"2000000"},"memo":"TestMemo","msgs":[{"type":"thorchain/MsgSend","value":{"amount":[{"amount":"150000000","denom":"rune"}],"from_address":"tthor1c648xgpter9xffhmcqvs7lzd7hxh0prgv5t5gp","to_address":"tthor10xgrknu44d83qr4s4uw56cqxg0hsev5e68lc9z","test":"test"}}],"sequence":"5"})"; parser_tx_obj.tx_json.tx = transaction; parser_tx_obj.tx_json.flags.cache_valid = false; @@ -154,7 +154,7 @@ namespace { } TEST(TxParse, Tx_Page_Count) { - auto transaction = R"({"account_number":"0","chain_id":"test-chain-1","fee":{"amount":[{"amount":"5","denom":"photon"}],"gas":"10000"},"memo":"testmemo","msgs":[{"inputs":[{"address":"cosmosaccaddr1d9h8qat5e4ehc5","coins":[{"amount":"10","denom":"atom"}]}],"outputs":[{"address":"cosmosaccaddr1da6hgur4wse3jx32","coins":[{"amount":"10","denom":"atom"}]}]}],"sequence":"1"})"; + auto transaction = R"({"account_number":"588","chain_id":"thorchain","fee":{"amount":[],"gas":"2000000"},"memo":"TestMemo","msgs":[{"type":"thorchain/MsgSend","value":{"amount":[{"amount":"150000000","denom":"rune"}],"from_address":"tthor1c648xgpter9xffhmcqvs7lzd7hxh0prgv5t5gp","to_address":"tthor10xgrknu44d83qr4s4uw56cqxg0hsev5e68lc9z","test":"test"}}],"sequence":"5"})"; parser_tx_obj.tx_json.tx = transaction; parser_tx_obj.tx_json.flags.cache_valid = false; @@ -163,20 +163,6 @@ namespace { uint8_t numItems; tx_display_numItems(&numItems); - EXPECT_EQ(10, numItems) << "Wrong number of items"; - } - - TEST(TxParse, Page_Count_MultipleMsgs) { - auto transaction = - R"({"account_number":"0","chain_id":"test-chain-1","fee":{"amount":[{"amount":"5","denom":"photon"}],"gas":"10000"},"memo":"testmemo","msgs":[{"inputs":[{"address":"cosmosaccaddr1d9h8qat5e4ehc5","coins":[{"amount":"10","denom":"atom"}]}],"outputs":[{"address":"cosmosaccaddr1da6hgur4wse3jx32","coins":[{"amount":"10","denom":"atom"}]}]},{"inputs":[{"address":"cosmosaccaddr1d9h8qat5e4ehc5","coins":[{"amount":"10","denom":"atom"}]}],"outputs":[{"address":"cosmosaccaddr1da6hgur4wse3jx32","coins":[{"amount":"10","denom":"atom"}]}]},{"inputs":[{"address":"cosmosaccaddr1d9h8qat5e4ehc5","coins":[{"amount":"10","denom":"atom"}]}],"outputs":[{"address":"cosmosaccaddr1da6hgur4wse3jx32","coins":[{"amount":"10","denom":"atom"}]}]},{"inputs":[{"address":"cosmosaccaddr1d9h8qat5e4ehc5","coins":[{"amount":"10","denom":"atom"}]}],"outputs":[{"address":"cosmosaccaddr1da6hgur4wse3jx32","coins":[{"amount":"10","denom":"atom"}]}]}],"sequence":"1"})"; - - parser_tx_obj.tx_json.tx = transaction; - parser_tx_obj.tx_json.flags.cache_valid = false; - parser_error_t err = JSON_PARSE(&parser_tx_obj.tx_json.json, parser_tx_obj.tx_json.tx); - EXPECT_EQ(err, parser_ok); - - uint8_t numItems; - tx_display_numItems(&numItems); - EXPECT_EQ(22, numItems) << "Wrong number of items"; + EXPECT_EQ(6, numItems) << "Wrong number of items"; } } diff --git a/tests/tx_validate.cpp b/tests/tx_validate.cpp index 8e533085..e1976285 100644 --- a/tests/tx_validate.cpp +++ b/tests/tx_validate.cpp @@ -23,7 +23,7 @@ namespace { TEST(TxValidationTest, CorrectFormat) { auto transaction = - R"({"account_number":"0","chain_id":"test-chain-1","fee":{"amount":[{"amount":"5","denom":"photon"}],"gas":"10000"},"memo":"testmemo","msgs":[{"inputs":[{"address":"cosmosaccaddr1d9h8qat5e4ehc5","coins":[{"amount":"10","denom":"atom"}]}],"outputs":[{"address":"cosmosaccaddr1da6hgur4wse3jx32","coins":[{"amount":"10","denom":"atom"}]}]}],"sequence":"1"})"; + R"({"account_number":"588","chain_id":"thorchain","fee":{"amount":[],"gas":"2000000"},"memo":"TestMemo","msgs":[{"type":"thorchain/MsgSend","value":{"amount":[{"amount":"150000000","denom":"rune"}],"from_address":"tthor1c648xgpter9xffhmcqvs7lzd7hxh0prgv5t5gp","to_address":"tthor10xgrknu44d83qr4s4uw56cqxg0hsev5e68lc9z"}}],"sequence":"5"})"; parsed_json_t json; parser_error_t err; @@ -37,7 +37,7 @@ namespace { TEST(TxValidationTest, MissingAccountNumber) { auto transaction = - R"({"chain_id":"test-chain-1","fee":{"amount":[{"amount":"5","denom":"photon"}],"gas":"10000"},"memo":"testmemo","msgs":[{"inputs":[{"address":"cosmosaccaddr1d9h8qat5e4ehc5","coins":[{"amount":"10","denom":"atom"}]}],"outputs":[{"address":"cosmosaccaddr1da6hgur4wse3jx32","coins":[{"amount":"10","denom":"atom"}]}]}],"sequence":"1"})"; + R"({"chain_id":"thorchain","fee":{"amount":[],"gas":"2000000"},"memo":"TestMemo","msgs":[{"type":"thorchain/MsgSend","value":{"amount":[{"amount":"150000000","denom":"rune"}],"from_address":"tthor1c648xgpter9xffhmcqvs7lzd7hxh0prgv5t5gp","to_address":"tthor10xgrknu44d83qr4s4uw56cqxg0hsev5e68lc9z"}}],"sequence":"5"})"; parsed_json_t json; parser_error_t err; @@ -52,7 +52,7 @@ namespace { TEST(TxValidationTest, MissingChainId) { auto transaction = - R"({"account_number":"0","fee":{"amount":[{"amount":"5","denom":"photon"}],"gas":"10000"},"memo":"testmemo","msgs":[{"inputs":[{"address":"cosmosaccaddr1d9h8qat5e4ehc5","coins":[{"amount":"10","denom":"atom"}]}],"outputs":[{"address":"cosmosaccaddr1da6hgur4wse3jx32","coins":[{"amount":"10","denom":"atom"}]}]}],"sequence":"1"})"; + R"({"account_number":"588","fee":{"amount":[],"gas":"2000000"},"memo":"TestMemo","msgs":[{"type":"thorchain/MsgSend","value":{"amount":[{"amount":"150000000","denom":"rune"}],"from_address":"tthor1c648xgpter9xffhmcqvs7lzd7hxh0prgv5t5gp","to_address":"tthor10xgrknu44d83qr4s4uw56cqxg0hsev5e68lc9z"}}],"sequence":"5"})"; parsed_json_t json; parser_error_t err; @@ -66,7 +66,7 @@ namespace { TEST(TxValidationTest, MissingFee) { auto transaction = - R"({"account_number":"0","chain_id":"test-chain-1","fees":{"amount":[{"amount":"5","denom":"photon"}],"gas":"10000"},"memo":"testmemo","msgs":[{"inputs":[{"address":"cosmosaccaddr1d9h8qat5e4ehc5","coins":[{"amount":"10","denom":"atom"}]}],"outputs":[{"address":"cosmosaccaddr1da6hgur4wse3jx32","coins":[{"amount":"10","denom":"atom"}]}]}],"sequence":"1"})"; + R"({"account_number":"588","chain_id":"thorchain","memo":"TestMemo","msgs":[{"type":"thorchain/MsgSend","value":{"amount":[{"amount":"150000000","denom":"rune"}],"from_address":"tthor1c648xgpter9xffhmcqvs7lzd7hxh0prgv5t5gp","to_address":"tthor10xgrknu44d83qr4s4uw56cqxg0hsev5e68lc9z"}}],"sequence":"5"})"; parsed_json_t json; parser_error_t err; @@ -80,7 +80,7 @@ namespace { TEST(TxValidationTest, MissingMsgs) { auto transaction = - R"({"account_number":"0","chain_id":"test-chain-1","fee":{"amount":[{"amount":"5","denom":"photon"}],"gas":"10000"},"memo":"testmemo","msgsble":[{"inputs":[{"address":"cosmosaccaddr1d9h8qat5e4ehc5","coins":[{"amount":"10","denom":"atom"}]}],"outputs":[{"address":"cosmosaccaddr1da6hgur4wse3jx32","coins":[{"amount":"10","denom":"atom"}]}]}],"sequence":"1"})"; + R"({"account_number":"588","chain_id":"thorchain","fee":{"amount":[],"gas":"2000000"},"memo":"TestMemo","sequence":"5"})"; parsed_json_t json; parser_error_t err; @@ -94,7 +94,7 @@ namespace { TEST(TxValidationTest, MissingSequence) { auto transaction = - R"({"account_number":"0","chain_id":"test-chain-1","fee":{"amount":[{"amount":"5","denom":"photon"}],"gas":"10000"},"memo":"testmemo","msgs":[{"inputs":[{"address":"cosmosaccaddr1d9h8qat5e4ehc5","coins":[{"amount":"10","denom":"atom"}]}],"outputs":[{"address":"cosmosaccaddr1da6hgur4wse3jx32","coins":[{"amount":"10","denom":"atom"}]}]}]})"; + R"({"account_number":"588","chain_id":"thorchain","fee":{"amount":[],"gas":"2000000"},"memo":"TestMemo","msgs":[{"type":"thorchain/MsgSend","value":{"amount":[{"amount":"150000000","denom":"rune"}],"from_address":"tthor1c648xgpter9xffhmcqvs7lzd7hxh0prgv5t5gp","to_address":"tthor10xgrknu44d83qr4s4uw56cqxg0hsev5e68lc9z"}}]})"; parsed_json_t json; parser_error_t err; @@ -108,7 +108,7 @@ namespace { TEST(TxValidationTest, Spaces_InTheMiddle) { auto transaction = - R"({"account_number":"0","chain_id":"test-chain-1", "fee":{"amount":[{"amount":"5","denom":"photon"}],"gas":"10000"},"memo":"testmemo","msgs":[{"inputs":[{"address":"cosmosaccaddr1d9h8qat5e4ehc5","coins":[{"amount":"10","denom":"atom"}]}],"outputs":[{"address":"cosmosaccaddr1da6hgur4wse3jx32","coins":[{"amount":"10","denom":"atom"}]}]}],"sequence":"1"})"; + R"({"account_number":"588", "chain_id":"thorchain","fee":{"amount":[],"gas":"2000000"},"memo":"TestMemo","msgs":[{"type":"thorchain/MsgSend","value":{"amount":[{"amount":"150000000","denom":"rune"}],"from_address":"tthor1c648xgpter9xffhmcqvs7lzd7hxh0prgv5t5gp","to_address":"tthor10xgrknu44d83qr4s4uw56cqxg0hsev5e68lc9z"}}],"sequence":"5"})"; parsed_json_t json; parser_error_t err; @@ -122,7 +122,7 @@ namespace { TEST(TxValidationTest, Spaces_AtTheFront) { auto transaction = - R"({ "account_number":"0","chain_id":"test-chain-1","fee":{"amount":[{"amount":"5","denom":"photon"}],"gas":"10000"},"memo":"testmemo","msgs":[{"inputs":[{"address":"cosmosaccaddr1d9h8qat5e4ehc5","coins":[{"amount":"10","denom":"atom"}]}],"outputs":[{"address":"cosmosaccaddr1da6hgur4wse3jx32","coins":[{"amount":"10","denom":"atom"}]}]}],"sequence":"1"})"; + R"({ "account_number":"588","chain_id":"thorchain","fee":{"amount":[],"gas":"2000000"},"memo":"TestMemo","msgs":[{"type":"thorchain/MsgSend","value":{"amount":[{"amount":"150000000","denom":"rune"}],"from_address":"tthor1c648xgpter9xffhmcqvs7lzd7hxh0prgv5t5gp","to_address":"tthor10xgrknu44d83qr4s4uw56cqxg0hsev5e68lc9z"}}],"sequence":"5"})"; parsed_json_t json; parser_error_t err; @@ -136,8 +136,7 @@ namespace { TEST(TxValidationTest, Spaces_AtTheEnd) { auto transaction = - R"({"account_number":"0","chain_id":"test-chain-1","fee":{"amount":[{"amount":"5","denom":"photon"}],"gas":"10000"},"memo":"testmemo","msgs":[{"inputs":[{"address":"cosmosaccaddr1d9h8qat5e4ehc5","coins":[{"amount":"10","denom":"atom"}]}],"outputs":[{"address":"cosmosaccaddr1da6hgur4wse3jx32","coins":[{"amount":"10","denom":"atom"}]}]}],"sequence":"1" })"; - + R"({"account_number":"588","chain_id":"thorchain","fee":{"amount":[],"gas":"2000000"},"memo":"TestMemo","msgs":[{"type":"thorchain/MsgSend","value":{"amount":[{"amount":"150000000","denom":"rune"}],"from_address":"tthor1c648xgpter9xffhmcqvs7lzd7hxh0prgv5t5gp","to_address":"tthor10xgrknu44d83qr4s4uw56cqxg0hsev5e68lc9z"}}],"sequence":"5" })"; parsed_json_t json; parser_error_t err; @@ -150,7 +149,7 @@ namespace { TEST(TxValidationTest, Spaces_Lots) { auto transaction = - R"({"account_number":"0", "chain_id":"test-chain-1", "fee":{"amount": [{"amount":"5","denom":"photon"}],"gas":"10000"},"memo":"testmemo","msgs":[{"inputs":[{"address":"cosmosaccaddr1d9h8qat5e4ehc5","coins":[{"amount":"10","denom":"atom"}]}],"outputs":[{"address":"cosmosaccaddr1da6hgur4wse3jx32","coins":[{"amount":"10","denom":"atom"}]}]}],"sequence":"1"})"; + R"({"account_number": "588","chain_id":"thorchain" ,"fee":{"amount": [ ],"gas":"2000000"},"memo":"TestMemo","msgs":[{"type":"thorchain/MsgSend","value":{"amount":[{"amount":"150000000","denom":"rune"}],"from_address":"tthor1c648xgpter9xffhmcqvs7lzd7hxh0prgv5t5gp","to_address":"tthor10xgrknu44d83qr4s4uw56cqxg0hsev5e68lc9z"}}],"sequence":"5"})"; parsed_json_t json; parser_error_t err; @@ -164,7 +163,7 @@ namespace { TEST(TxValidationTest, AllowSpacesInString) { auto transaction = - R"({"account_number":"0","chain_id":" test-chain-1 ","fee":{"amount":[{"amount":"5","denom":" photon"}],"gas":"10000"},"memo":"testmemo","msgs":[{"inputs":[{"address":"cosmosaccaddr1d9h8qat5e4ehc5","coins":[{"amount":"10","denom":"atom"}]}],"outputs":[{"address":"cosmosaccaddr1da6hgur4wse3jx32","coins":[{"amount":"10","denom":"atom"}]}]}],"sequence":"1"})"; + R"({"account_number":"588","chain_id":" thorchain ","fee":{"amount":[],"gas":"2000000"},"memo":" TestMemo ","msgs":[{"type":"thorchain/MsgSend","value":{"amount":[{"amount":"150000000","denom":"rune"}],"from_address":"tthor1c648xgpter9xffhmcqvs7lzd7hxh0prgv5t5gp","to_address":"tthor10xgrknu44d83qr4s4uw56cqxg0hsev5e68lc9z"}}],"sequence":"5"})"; parsed_json_t json; parser_error_t err; @@ -178,7 +177,7 @@ namespace { TEST(TxValidationTest, SortedDictionary) { auto transaction = - R"({"account_number":"0","chain_id":"test-chain-1","fee":{"amount":[{"amount":"5","denom":"photon"}],"gas":"10000"},"memo":"testmemo","msgs":[{"inputs":[{"address":"cosmosaccaddr1d9h8qat5e4ehc5","coins":[{"amount":"10","denom":"atom"}]}],"outputs":[{"address":"cosmosaccaddr1da6hgur4wse3jx32","coins":[{"amount":"10","denom":"atom"}]}]}],"sequence":"1"})"; + R"({"account_number":"588","chain_id":"thorchain","fee":{"amount":[],"gas":"2000000"},"memo":"TestMemo","msgs":[{"type":"thorchain/MsgSend","value":{"amount":[{"amount":"150000000","denom":"rune"}],"from_address":"tthor1c648xgpter9xffhmcqvs7lzd7hxh0prgv5t5gp","to_address":"tthor10xgrknu44d83qr4s4uw56cqxg0hsev5e68lc9z"}}],"sequence":"5"})"; parsed_json_t json; parser_error_t err; @@ -192,7 +191,7 @@ namespace { TEST(TxValidationTest, NotSortedDictionary_FirstElement) { auto transaction = - R"({"chain_id":"test-chain-1","account_number":"0","fee":{"amount":[{"amount":"5","denom":"photon"}],"gas":"10000"},"memo":"testmemo","msgs":[{"inputs":[{"address":"cosmosaccaddr1d9h8qat5e4ehc5","coins":[{"amount":"10","denom":"atom"}]}],"outputs":[{"address":"cosmosaccaddr1da6hgur4wse3jx32","coins":[{"amount":"10","denom":"atom"}]}]}],"sequence":"1"})"; + R"({"chain_id":"thorchain","account_number":"588","fee":{"amount":[],"gas":"2000000"},"memo":"TestMemo","msgs":[{"type":"thorchain/MsgSend","value":{"amount":[{"amount":"150000000","denom":"rune"}],"from_address":"tthor1c648xgpter9xffhmcqvs7lzd7hxh0prgv5t5gp","to_address":"tthor10xgrknu44d83qr4s4uw56cqxg0hsev5e68lc9z"}}],"sequence":"5"})"; parsed_json_t json; parser_error_t err; @@ -206,7 +205,7 @@ namespace { TEST(TxValidationTest, NotSortedDictionary_MiddleElement) { auto transaction = - R"({"account_number":"0","chain_id":"test-chain-1","memo":"testmemo","fee":{"amount":[{"amount":"5","denom":"photon"}],"gas":"10000"},"msgs":[{"inputs":[{"address":"cosmosaccaddr1d9h8qat5e4ehc5","coins":[{"amount":"10","denom":"atom"}]}],"outputs":[{"address":"cosmosaccaddr1da6hgur4wse3jx32","coins":[{"amount":"10","denom":"atom"}]}]}],"sequence":"1"})"; + R"({"account_number":"588","chain_id":"thorchain","fee":{"gas":"2000000","amount":[]},"memo":"TestMemo","msgs":[{"type":"thorchain/MsgSend","value":{"amount":[{"amount":"150000000","denom":"rune"}],"from_address":"tthor1c648xgpter9xffhmcqvs7lzd7hxh0prgv5t5gp","to_address":"tthor10xgrknu44d83qr4s4uw56cqxg0hsev5e68lc9z"}}],"sequence":"5"})"; parsed_json_t json; parser_error_t err; @@ -220,7 +219,7 @@ namespace { TEST(TxValidationTest, NotSortedDictionary_LastElement) { auto transaction = - R"({"account_number":"0","chain_id":"test-chain-1","fee":{"amount":[{"amount":"5","denom":"photon"}],"gas":"10000"},"memo":"testmemo","sequence":"1","msgs":[{"inputs":[{"address":"cosmosaccaddr1d9h8qat5e4ehc5","coins":[{"amount":"10","denom":"atom"}]}],"outputs":[{"address":"cosmosaccaddr1da6hgur4wse3jx32","coins":[{"amount":"10","denom":"atom"}]}]}]})"; + R"({"account_number":"588","chain_id":"thorchain","fee":{"amount":[],"gas":"2000000"},"memo":"TestMemo","sequence":"5","msgs":[{"type":"thorchain/MsgSend","value":{"amount":[{"amount":"150000000","denom":"rune"}],"from_address":"tthor1c648xgpter9xffhmcqvs7lzd7hxh0prgv5t5gp","to_address":"tthor10xgrknu44d83qr4s4uw56cqxg0hsev5e68lc9z"}}]})"; parsed_json_t json; parser_error_t err; @@ -231,70 +230,4 @@ namespace { err = tx_validate(&json); EXPECT_EQ(err, parser_json_is_not_sorted) << "Validation failed, error: " << parser_getErrorDescription(err); } - -// This json has been taken directly from goclient which uses cosmos to serialize a simple tx -// This test is currently failing the validation. -// We are reviewing the validation code and cosmos serialization to find the culprit. - - TEST(TxValidationTest, CosmosExample) { - auto transaction = - R"({"account_number":"0","chain_id":"test-chain-1","fee":{"amount":[{"amount":"5","denom":"photon"}],"gas":"10000"},"memo":"testmemo","msgs":[{"inputs":[{"address":"cosmosaccaddr1d9h8qat5e4ehc5","coins":[{"amount":"10","denom":"atom"}]}],"outputs":[{"address":"cosmosaccaddr1da6hgur4wse3jx32","coins":[{"amount":"10","denom":"atom"}]}]}],"sequence":"1"})"; - - parsed_json_t json; - parser_error_t err; - - err = JSON_PARSE(&json, transaction); - ASSERT_EQ(err, parser_ok); - - err = tx_validate(&json); - EXPECT_EQ(err, parser_ok) << "Validation failed, error: " << parser_getErrorDescription(err); - } - - TEST(TxValidationTest, GaiaCLIissue) { - auto transaction = R"({"account_number":"811","chain_id":"cosmoshub-1","fee":{"amount":[],"gas":"5000000"},"memo":"","msgs":[{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper14kn0kk33szpwus9nh8n87fjel8djx0y070ymmj","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper14kn0kk33szpwus9nh8n87fjel8djx0y070ymmj","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper14kn0kk33szpwus9nh8n87fjel8djx0y070ymmj","value":{"amount":"8000000000","denom":"uatom"}}}],"sequence":"1"})"; - - parsed_json_t json; - parser_error_t err; - - err = JSON_PARSE(&json, transaction); - ASSERT_EQ(err, parser_ok); - - err = tx_validate(&json); - EXPECT_EQ(err, parser_ok) << "Validation failed, error: " << parser_getErrorDescription(err); - } - - TEST(TxValidationTest, GaiaCLIissueBigTX) { - auto transaction = R"({"account_number":"811","chain_id":"cosmoshub-1","fee":{"amount":[],"gas":"5000000"},"memo":"","msgs":[{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx", - "validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx", - "validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx", - "validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx", -"validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx", - "validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx", - "validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx", -"validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx", - "validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx", - "validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx", - "validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx", - "validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx", - "validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx", - "validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx", - "validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx", - "validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx", - "validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx", - "validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx", - "validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx", - "validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx", - "validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx", - "validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx", - "validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper10e4vsut6suau8tk9m6dnrm0slgd6npe3jx5xpv","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper14kn0kk33szpwus9nh8n87fjel8djx0y070ymmj","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper14kn0kk33szpwus9nh8n87fjel8djx0y070ymmj","value":{"amount":"8000000000","denom":"uatom"}}},{"type":"cosmos-sdk/MsgDelegate","value":{"delegator_address":"cosmos13vfzpfmg6jgzfk4rke9glzpngrzucjtanq9awx","validator_address":"cosmosvaloper14kn0kk33szpwus9nh8n87fjel8djx0y070ymmj","value":{"amount":"8000000000","denom":"uatom"}}}],"sequence":"1"})"; - - parsed_json_t json; - parser_error_t err; - - err = JSON_PARSE(&json, transaction); - ASSERT_EQ( err, parser_json_too_many_tokens); - - err = tx_validate(&json); - EXPECT_EQ(err, parser_json_missing_chain_id) << "Validation failed, error: " << parser_getErrorDescription(err); - } } diff --git a/tests/ui_tests.cpp b/tests/ui_tests.cpp index 8b5aa8f7..1041fb04 100644 --- a/tests/ui_tests.cpp +++ b/tests/ui_tests.cpp @@ -27,7 +27,6 @@ using ::testing::TestWithParam; -using ::testing::Values; void validate_testcase(const testcase_t &tc) { parser_context_t ctx; @@ -67,7 +66,7 @@ void check_testcase(const testcase_t &tc) { if (err != parser_ok) return; - auto output = dumpUI(&ctx, 40, 40); + auto output = dumpUI(40, 40); for (const auto &i : output) { std::cout << i << std::endl; @@ -82,42 +81,6 @@ void check_testcase(const testcase_t &tc) { } } -void check_Textualtestcase(const testcase_t &tc, bool expert_mode) { - parser_context_t ctx; - parser_error_t err; - - app_mode_set_expert(expert_mode); - - uint8_t buffer[10000]; - uint16_t bufferLen = parseHexString(buffer, sizeof(buffer), tc.tx.c_str()); - - parser_tx_t tx_obj; - memset(&tx_obj, 0, sizeof(tx_obj)); - tx_obj.tx_type = tx_textual; - err = parser_parse(&ctx, buffer, bufferLen, &tx_obj); - ASSERT_EQ(err, parser_ok) << parser_getErrorDescription(err); - - if (err != parser_ok) - return; - - auto output = dumpUI(&ctx, 40, 40); - - for (const auto &i : output) { - std::cout << i << std::endl; - } - std::cout << std::endl << std::endl; - - std::vector expected = tc.expected; - - expected = app_mode_expert() ? tc.expected_expert : tc.expected; - EXPECT_EQ(output.size(), expected.size()); - for (size_t i = 0; i < expected.size(); i++) { - if (i < output.size()) { - EXPECT_THAT(output[i], testing::Eq(expected[i])); - } - } -} - /////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////// @@ -136,24 +99,13 @@ class JsonTests : public ::testing::TestWithParam { }; class JsonTests_Secp256 : public JsonTests {}; -class JsonTests_Textual : public JsonTests {}; INSTANTIATE_TEST_SUITE_P ( // NOLINT(cert-err58-cpp) JsonTestCases, JsonTests_Secp256, - ::testing::ValuesIn(GetJsonTestCases("testcases/manual.json")), + ::testing::ValuesIn(GetJsonTestCases("testcases/thor.json")), JsonTests_Secp256::PrintToStringParamName() ); -INSTANTIATE_TEST_SUITE_P ( // NOLINT(cert-err58-cpp) - JsonTestTextualCases, - JsonTests_Textual, - ::testing::ValuesIn(GetJsonTextualTestCases("testcases/textual.json")), - JsonTests_Textual::PrintToStringParamName() -); - TEST_P(JsonTests_Secp256, ValidateTestcase) { validate_testcase(GetParam()); } TEST_P(JsonTests_Secp256, CheckUIOutput) { check_testcase(GetParam()); } - -TEST_P(JsonTests_Textual, Normal) { check_Textualtestcase(GetParam(), false); } -TEST_P(JsonTests_Textual, Expert) { check_Textualtestcase(GetParam(), true); } diff --git a/tests_zemu/snapshots/s-govDeposit/00000.png b/tests_zemu/snapshots/s-govDeposit/00000.png deleted file mode 100644 index ff615887..00000000 Binary files a/tests_zemu/snapshots/s-govDeposit/00000.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-govDeposit/00001.png b/tests_zemu/snapshots/s-govDeposit/00001.png deleted file mode 100644 index 74c74ba3..00000000 Binary files a/tests_zemu/snapshots/s-govDeposit/00001.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-govDeposit/00002.png b/tests_zemu/snapshots/s-govDeposit/00002.png deleted file mode 100644 index 99ba8e04..00000000 Binary files a/tests_zemu/snapshots/s-govDeposit/00002.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-govDeposit/00003.png b/tests_zemu/snapshots/s-govDeposit/00003.png deleted file mode 100644 index 5fcf6cec..00000000 Binary files a/tests_zemu/snapshots/s-govDeposit/00003.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-govDeposit/00004.png b/tests_zemu/snapshots/s-govDeposit/00004.png deleted file mode 100644 index da09bb9b..00000000 Binary files a/tests_zemu/snapshots/s-govDeposit/00004.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-govDeposit/00005.png b/tests_zemu/snapshots/s-govDeposit/00005.png deleted file mode 100644 index 217f452c..00000000 Binary files a/tests_zemu/snapshots/s-govDeposit/00005.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-govDeposit/00006.png b/tests_zemu/snapshots/s-govDeposit/00006.png deleted file mode 100644 index 29e56bcd..00000000 Binary files a/tests_zemu/snapshots/s-govDeposit/00006.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-govDeposit/00007.png b/tests_zemu/snapshots/s-govDeposit/00007.png deleted file mode 100644 index db7eee0a..00000000 Binary files a/tests_zemu/snapshots/s-govDeposit/00007.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-govDeposit/00008.png b/tests_zemu/snapshots/s-govDeposit/00008.png deleted file mode 100644 index 56ebb532..00000000 Binary files a/tests_zemu/snapshots/s-govDeposit/00008.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-govDeposit/00009.png b/tests_zemu/snapshots/s-govDeposit/00009.png deleted file mode 100644 index aeed27a4..00000000 Binary files a/tests_zemu/snapshots/s-govDeposit/00009.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-govDeposit/00010.png b/tests_zemu/snapshots/s-govDeposit/00010.png deleted file mode 100644 index 1162e20a..00000000 Binary files a/tests_zemu/snapshots/s-govDeposit/00010.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-govDeposit/00012.png b/tests_zemu/snapshots/s-govDeposit/00012.png deleted file mode 100644 index 131855e2..00000000 Binary files a/tests_zemu/snapshots/s-govDeposit/00012.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-ibc_denoms/00000.png b/tests_zemu/snapshots/s-ibc_denoms/00000.png deleted file mode 100644 index a3f6466f..00000000 Binary files a/tests_zemu/snapshots/s-ibc_denoms/00000.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-ibc_denoms/00001.png b/tests_zemu/snapshots/s-ibc_denoms/00001.png deleted file mode 100644 index 04f0c145..00000000 Binary files a/tests_zemu/snapshots/s-ibc_denoms/00001.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-ibc_denoms/00002.png b/tests_zemu/snapshots/s-ibc_denoms/00002.png deleted file mode 100644 index a1f2ec1d..00000000 Binary files a/tests_zemu/snapshots/s-ibc_denoms/00002.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-ibc_denoms/00003.png b/tests_zemu/snapshots/s-ibc_denoms/00003.png deleted file mode 100644 index b0b0090a..00000000 Binary files a/tests_zemu/snapshots/s-ibc_denoms/00003.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-ibc_denoms/00004.png b/tests_zemu/snapshots/s-ibc_denoms/00004.png deleted file mode 100644 index 75e3e0c0..00000000 Binary files a/tests_zemu/snapshots/s-ibc_denoms/00004.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-ibc_denoms/00005.png b/tests_zemu/snapshots/s-ibc_denoms/00005.png deleted file mode 100644 index 0759e66d..00000000 Binary files a/tests_zemu/snapshots/s-ibc_denoms/00005.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-ibc_denoms/00006.png b/tests_zemu/snapshots/s-ibc_denoms/00006.png deleted file mode 100644 index 893bf19a..00000000 Binary files a/tests_zemu/snapshots/s-ibc_denoms/00006.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-ibc_denoms/00007.png b/tests_zemu/snapshots/s-ibc_denoms/00007.png deleted file mode 100644 index 89a6d2f5..00000000 Binary files a/tests_zemu/snapshots/s-ibc_denoms/00007.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-ibc_denoms/00008.png b/tests_zemu/snapshots/s-ibc_denoms/00008.png deleted file mode 100644 index c3bc9c05..00000000 Binary files a/tests_zemu/snapshots/s-ibc_denoms/00008.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-ibc_denoms/00009.png b/tests_zemu/snapshots/s-ibc_denoms/00009.png deleted file mode 100644 index 8af7ed67..00000000 Binary files a/tests_zemu/snapshots/s-ibc_denoms/00009.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-ibc_denoms/00010.png b/tests_zemu/snapshots/s-ibc_denoms/00010.png deleted file mode 100644 index 006c26ab..00000000 Binary files a/tests_zemu/snapshots/s-ibc_denoms/00010.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-ibc_denoms/00011.png b/tests_zemu/snapshots/s-ibc_denoms/00011.png deleted file mode 100644 index 131855e2..00000000 Binary files a/tests_zemu/snapshots/s-ibc_denoms/00011.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-mainmenu/00000.png b/tests_zemu/snapshots/s-mainmenu/00000.png deleted file mode 100644 index 131855e2..00000000 Binary files a/tests_zemu/snapshots/s-mainmenu/00000.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-mainmenu/00001.png b/tests_zemu/snapshots/s-mainmenu/00001.png deleted file mode 100644 index b6adc7f9..00000000 Binary files a/tests_zemu/snapshots/s-mainmenu/00001.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-mainmenu/00002.png b/tests_zemu/snapshots/s-mainmenu/00002.png deleted file mode 100644 index 9c0b9e23..00000000 Binary files a/tests_zemu/snapshots/s-mainmenu/00002.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-mainmenu/00003.png b/tests_zemu/snapshots/s-mainmenu/00003.png deleted file mode 100644 index b6adc7f9..00000000 Binary files a/tests_zemu/snapshots/s-mainmenu/00003.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-mainmenu/00004.png b/tests_zemu/snapshots/s-mainmenu/00004.png deleted file mode 100644 index 8de0d02d..00000000 Binary files a/tests_zemu/snapshots/s-mainmenu/00004.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-mainmenu/00005.png b/tests_zemu/snapshots/s-mainmenu/00005.png deleted file mode 100644 index 6ebf27a6..00000000 Binary files a/tests_zemu/snapshots/s-mainmenu/00005.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-mainmenu/00006.png b/tests_zemu/snapshots/s-mainmenu/00006.png deleted file mode 100644 index ba5be199..00000000 Binary files a/tests_zemu/snapshots/s-mainmenu/00006.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-mainmenu/00007.png b/tests_zemu/snapshots/s-mainmenu/00007.png deleted file mode 100644 index 3ad12346..00000000 Binary files a/tests_zemu/snapshots/s-mainmenu/00007.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-mainmenu/00008.png b/tests_zemu/snapshots/s-mainmenu/00008.png deleted file mode 100644 index ba5be199..00000000 Binary files a/tests_zemu/snapshots/s-mainmenu/00008.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-mainmenu/00009.png b/tests_zemu/snapshots/s-mainmenu/00009.png deleted file mode 100644 index 6ebf27a6..00000000 Binary files a/tests_zemu/snapshots/s-mainmenu/00009.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-mainmenu/00010.png b/tests_zemu/snapshots/s-mainmenu/00010.png deleted file mode 100644 index 8de0d02d..00000000 Binary files a/tests_zemu/snapshots/s-mainmenu/00010.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-mainmenu/00011.png b/tests_zemu/snapshots/s-mainmenu/00011.png deleted file mode 100644 index b6adc7f9..00000000 Binary files a/tests_zemu/snapshots/s-mainmenu/00011.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-mainmenu/00012.png b/tests_zemu/snapshots/s-mainmenu/00012.png deleted file mode 100644 index 131855e2..00000000 Binary files a/tests_zemu/snapshots/s-mainmenu/00012.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-msgMultiSend/00000.png b/tests_zemu/snapshots/s-msgMultiSend/00000.png deleted file mode 100644 index b5413296..00000000 Binary files a/tests_zemu/snapshots/s-msgMultiSend/00000.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-msgMultiSend/00001.png b/tests_zemu/snapshots/s-msgMultiSend/00001.png deleted file mode 100644 index 769d6cb3..00000000 Binary files a/tests_zemu/snapshots/s-msgMultiSend/00001.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-msgMultiSend/00002.png b/tests_zemu/snapshots/s-msgMultiSend/00002.png deleted file mode 100644 index 0bfffd75..00000000 Binary files a/tests_zemu/snapshots/s-msgMultiSend/00002.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-msgMultiSend/00003.png b/tests_zemu/snapshots/s-msgMultiSend/00003.png deleted file mode 100644 index bd280af4..00000000 Binary files a/tests_zemu/snapshots/s-msgMultiSend/00003.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-msgMultiSend/00004.png b/tests_zemu/snapshots/s-msgMultiSend/00004.png deleted file mode 100644 index 26459590..00000000 Binary files a/tests_zemu/snapshots/s-msgMultiSend/00004.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-msgMultiSend/00005.png b/tests_zemu/snapshots/s-msgMultiSend/00005.png deleted file mode 100644 index 576c78bc..00000000 Binary files a/tests_zemu/snapshots/s-msgMultiSend/00005.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-msgMultiSend/00006.png b/tests_zemu/snapshots/s-msgMultiSend/00006.png deleted file mode 100644 index f0050f2c..00000000 Binary files a/tests_zemu/snapshots/s-msgMultiSend/00006.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-msgMultiSend/00007.png b/tests_zemu/snapshots/s-msgMultiSend/00007.png deleted file mode 100644 index 512c636e..00000000 Binary files a/tests_zemu/snapshots/s-msgMultiSend/00007.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-msgMultiSend/00008.png b/tests_zemu/snapshots/s-msgMultiSend/00008.png deleted file mode 100644 index 50b13bc5..00000000 Binary files a/tests_zemu/snapshots/s-msgMultiSend/00008.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-msgMultiSend/00009.png b/tests_zemu/snapshots/s-msgMultiSend/00009.png deleted file mode 100644 index c39ddfe9..00000000 Binary files a/tests_zemu/snapshots/s-msgMultiSend/00009.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-msgMultiSend/00010.png b/tests_zemu/snapshots/s-msgMultiSend/00010.png deleted file mode 100644 index 4c1d4f20..00000000 Binary files a/tests_zemu/snapshots/s-msgMultiSend/00010.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-msgMultiSend/00011.png b/tests_zemu/snapshots/s-msgMultiSend/00011.png deleted file mode 100644 index 8b9aaf55..00000000 Binary files a/tests_zemu/snapshots/s-msgMultiSend/00011.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-msgMultiSend/00012.png b/tests_zemu/snapshots/s-msgMultiSend/00012.png deleted file mode 100644 index c39ddfe9..00000000 Binary files a/tests_zemu/snapshots/s-msgMultiSend/00012.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-msgMultiSend/00013.png b/tests_zemu/snapshots/s-msgMultiSend/00013.png deleted file mode 100644 index c2437187..00000000 Binary files a/tests_zemu/snapshots/s-msgMultiSend/00013.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-msgMultiSend/00014.png b/tests_zemu/snapshots/s-msgMultiSend/00014.png deleted file mode 100644 index e529d924..00000000 Binary files a/tests_zemu/snapshots/s-msgMultiSend/00014.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-msgMultiSend/00015.png b/tests_zemu/snapshots/s-msgMultiSend/00015.png deleted file mode 100644 index c39ddfe9..00000000 Binary files a/tests_zemu/snapshots/s-msgMultiSend/00015.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-msgMultiSend/00016.png b/tests_zemu/snapshots/s-msgMultiSend/00016.png deleted file mode 100644 index aeed27a4..00000000 Binary files a/tests_zemu/snapshots/s-msgMultiSend/00016.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-msgMultiSend/00017.png b/tests_zemu/snapshots/s-msgMultiSend/00017.png deleted file mode 100644 index 1162e20a..00000000 Binary files a/tests_zemu/snapshots/s-msgMultiSend/00017.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-msgMultiSend/00018.png b/tests_zemu/snapshots/s-msgMultiSend/00018.png deleted file mode 100644 index 006c26ab..00000000 Binary files a/tests_zemu/snapshots/s-msgMultiSend/00018.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-msgMultiSend/00019.png b/tests_zemu/snapshots/s-msgMultiSend/00019.png deleted file mode 100644 index 131855e2..00000000 Binary files a/tests_zemu/snapshots/s-msgMultiSend/00019.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-setWithdrawAddress-eth/00000.png b/tests_zemu/snapshots/s-setWithdrawAddress-eth/00000.png deleted file mode 100644 index 9708f9ac..00000000 Binary files a/tests_zemu/snapshots/s-setWithdrawAddress-eth/00000.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-setWithdrawAddress-eth/00001.png b/tests_zemu/snapshots/s-setWithdrawAddress-eth/00001.png deleted file mode 100644 index 74c74ba3..00000000 Binary files a/tests_zemu/snapshots/s-setWithdrawAddress-eth/00001.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-setWithdrawAddress-eth/00002.png b/tests_zemu/snapshots/s-setWithdrawAddress-eth/00002.png deleted file mode 100644 index 24d43572..00000000 Binary files a/tests_zemu/snapshots/s-setWithdrawAddress-eth/00002.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-setWithdrawAddress-eth/00003.png b/tests_zemu/snapshots/s-setWithdrawAddress-eth/00003.png deleted file mode 100644 index d5fd7c5c..00000000 Binary files a/tests_zemu/snapshots/s-setWithdrawAddress-eth/00003.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-setWithdrawAddress-eth/00004.png b/tests_zemu/snapshots/s-setWithdrawAddress-eth/00004.png deleted file mode 100644 index cbcd3e91..00000000 Binary files a/tests_zemu/snapshots/s-setWithdrawAddress-eth/00004.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-setWithdrawAddress-eth/00005.png b/tests_zemu/snapshots/s-setWithdrawAddress-eth/00005.png deleted file mode 100644 index 4daa424c..00000000 Binary files a/tests_zemu/snapshots/s-setWithdrawAddress-eth/00005.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-setWithdrawAddress-eth/00006.png b/tests_zemu/snapshots/s-setWithdrawAddress-eth/00006.png deleted file mode 100644 index e8125389..00000000 Binary files a/tests_zemu/snapshots/s-setWithdrawAddress-eth/00006.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-setWithdrawAddress-eth/00007.png b/tests_zemu/snapshots/s-setWithdrawAddress-eth/00007.png deleted file mode 100644 index 4505dd80..00000000 Binary files a/tests_zemu/snapshots/s-setWithdrawAddress-eth/00007.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-setWithdrawAddress-eth/00008.png b/tests_zemu/snapshots/s-setWithdrawAddress-eth/00008.png deleted file mode 100644 index 6355910e..00000000 Binary files a/tests_zemu/snapshots/s-setWithdrawAddress-eth/00008.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-setWithdrawAddress-eth/00009.png b/tests_zemu/snapshots/s-setWithdrawAddress-eth/00009.png deleted file mode 100644 index cbcd3e91..00000000 Binary files a/tests_zemu/snapshots/s-setWithdrawAddress-eth/00009.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-setWithdrawAddress-eth/00010.png b/tests_zemu/snapshots/s-setWithdrawAddress-eth/00010.png deleted file mode 100644 index 4daa424c..00000000 Binary files a/tests_zemu/snapshots/s-setWithdrawAddress-eth/00010.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-setWithdrawAddress-eth/00011.png b/tests_zemu/snapshots/s-setWithdrawAddress-eth/00011.png deleted file mode 100644 index d0b78b88..00000000 Binary files a/tests_zemu/snapshots/s-setWithdrawAddress-eth/00011.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-setWithdrawAddress-eth/00012.png b/tests_zemu/snapshots/s-setWithdrawAddress-eth/00012.png deleted file mode 100644 index 0ca7eb7d..00000000 Binary files a/tests_zemu/snapshots/s-setWithdrawAddress-eth/00012.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-setWithdrawAddress-eth/00013.png b/tests_zemu/snapshots/s-setWithdrawAddress-eth/00013.png deleted file mode 100644 index 27b467d0..00000000 Binary files a/tests_zemu/snapshots/s-setWithdrawAddress-eth/00013.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-setWithdrawAddress-eth/00014.png b/tests_zemu/snapshots/s-setWithdrawAddress-eth/00014.png deleted file mode 100644 index 1162e20a..00000000 Binary files a/tests_zemu/snapshots/s-setWithdrawAddress-eth/00014.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-setWithdrawAddress-eth/00015.png b/tests_zemu/snapshots/s-setWithdrawAddress-eth/00015.png deleted file mode 100644 index 006c26ab..00000000 Binary files a/tests_zemu/snapshots/s-setWithdrawAddress-eth/00015.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-setWithdrawAddress-eth/00016.png b/tests_zemu/snapshots/s-setWithdrawAddress-eth/00016.png deleted file mode 100644 index 131855e2..00000000 Binary files a/tests_zemu/snapshots/s-setWithdrawAddress-eth/00016.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-setWithdrawAddress/00000.png b/tests_zemu/snapshots/s-setWithdrawAddress/00000.png deleted file mode 100644 index 9708f9ac..00000000 Binary files a/tests_zemu/snapshots/s-setWithdrawAddress/00000.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-setWithdrawAddress/00001.png b/tests_zemu/snapshots/s-setWithdrawAddress/00001.png deleted file mode 100644 index 74c74ba3..00000000 Binary files a/tests_zemu/snapshots/s-setWithdrawAddress/00001.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-setWithdrawAddress/00002.png b/tests_zemu/snapshots/s-setWithdrawAddress/00002.png deleted file mode 100644 index 24d43572..00000000 Binary files a/tests_zemu/snapshots/s-setWithdrawAddress/00002.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-setWithdrawAddress/00003.png b/tests_zemu/snapshots/s-setWithdrawAddress/00003.png deleted file mode 100644 index d5fd7c5c..00000000 Binary files a/tests_zemu/snapshots/s-setWithdrawAddress/00003.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-setWithdrawAddress/00004.png b/tests_zemu/snapshots/s-setWithdrawAddress/00004.png deleted file mode 100644 index cbcd3e91..00000000 Binary files a/tests_zemu/snapshots/s-setWithdrawAddress/00004.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-setWithdrawAddress/00005.png b/tests_zemu/snapshots/s-setWithdrawAddress/00005.png deleted file mode 100644 index 4daa424c..00000000 Binary files a/tests_zemu/snapshots/s-setWithdrawAddress/00005.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-setWithdrawAddress/00006.png b/tests_zemu/snapshots/s-setWithdrawAddress/00006.png deleted file mode 100644 index e8125389..00000000 Binary files a/tests_zemu/snapshots/s-setWithdrawAddress/00006.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-setWithdrawAddress/00007.png b/tests_zemu/snapshots/s-setWithdrawAddress/00007.png deleted file mode 100644 index 4505dd80..00000000 Binary files a/tests_zemu/snapshots/s-setWithdrawAddress/00007.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-setWithdrawAddress/00008.png b/tests_zemu/snapshots/s-setWithdrawAddress/00008.png deleted file mode 100644 index 6355910e..00000000 Binary files a/tests_zemu/snapshots/s-setWithdrawAddress/00008.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-setWithdrawAddress/00009.png b/tests_zemu/snapshots/s-setWithdrawAddress/00009.png deleted file mode 100644 index cbcd3e91..00000000 Binary files a/tests_zemu/snapshots/s-setWithdrawAddress/00009.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-setWithdrawAddress/00010.png b/tests_zemu/snapshots/s-setWithdrawAddress/00010.png deleted file mode 100644 index 4daa424c..00000000 Binary files a/tests_zemu/snapshots/s-setWithdrawAddress/00010.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-setWithdrawAddress/00011.png b/tests_zemu/snapshots/s-setWithdrawAddress/00011.png deleted file mode 100644 index d0b78b88..00000000 Binary files a/tests_zemu/snapshots/s-setWithdrawAddress/00011.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-setWithdrawAddress/00012.png b/tests_zemu/snapshots/s-setWithdrawAddress/00012.png deleted file mode 100644 index 0ca7eb7d..00000000 Binary files a/tests_zemu/snapshots/s-setWithdrawAddress/00012.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-setWithdrawAddress/00013.png b/tests_zemu/snapshots/s-setWithdrawAddress/00013.png deleted file mode 100644 index 27b467d0..00000000 Binary files a/tests_zemu/snapshots/s-setWithdrawAddress/00013.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-setWithdrawAddress/00014.png b/tests_zemu/snapshots/s-setWithdrawAddress/00014.png deleted file mode 100644 index 1162e20a..00000000 Binary files a/tests_zemu/snapshots/s-setWithdrawAddress/00014.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-setWithdrawAddress/00015.png b/tests_zemu/snapshots/s-setWithdrawAddress/00015.png deleted file mode 100644 index 006c26ab..00000000 Binary files a/tests_zemu/snapshots/s-setWithdrawAddress/00015.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-setWithdrawAddress/00016.png b/tests_zemu/snapshots/s-setWithdrawAddress/00016.png deleted file mode 100644 index 131855e2..00000000 Binary files a/tests_zemu/snapshots/s-setWithdrawAddress/00016.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-show_address/00000.png b/tests_zemu/snapshots/s-show_address/00000.png deleted file mode 100644 index acdde29b..00000000 Binary files a/tests_zemu/snapshots/s-show_address/00000.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-show_address/00001.png b/tests_zemu/snapshots/s-show_address/00001.png deleted file mode 100644 index febbb082..00000000 Binary files a/tests_zemu/snapshots/s-show_address/00001.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-show_address/00002.png b/tests_zemu/snapshots/s-show_address/00002.png deleted file mode 100644 index 006c26ab..00000000 Binary files a/tests_zemu/snapshots/s-show_address/00002.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-show_address/00003.png b/tests_zemu/snapshots/s-show_address/00003.png deleted file mode 100644 index 131855e2..00000000 Binary files a/tests_zemu/snapshots/s-show_address/00003.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-show_address_huge/00000.png b/tests_zemu/snapshots/s-show_address_huge/00000.png deleted file mode 100644 index 3c3dee6a..00000000 Binary files a/tests_zemu/snapshots/s-show_address_huge/00000.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-show_address_huge/00001.png b/tests_zemu/snapshots/s-show_address_huge/00001.png deleted file mode 100644 index 8f81acdd..00000000 Binary files a/tests_zemu/snapshots/s-show_address_huge/00001.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-show_address_huge/00002.png b/tests_zemu/snapshots/s-show_address_huge/00002.png deleted file mode 100644 index 0cfe59e0..00000000 Binary files a/tests_zemu/snapshots/s-show_address_huge/00002.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-show_address_huge/00003.png b/tests_zemu/snapshots/s-show_address_huge/00003.png deleted file mode 100644 index 006c26ab..00000000 Binary files a/tests_zemu/snapshots/s-show_address_huge/00003.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-show_address_huge/00004.png b/tests_zemu/snapshots/s-show_address_huge/00004.png deleted file mode 100644 index 131855e2..00000000 Binary files a/tests_zemu/snapshots/s-show_address_huge/00004.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-show_eth_address/00000.png b/tests_zemu/snapshots/s-show_eth_address/00000.png deleted file mode 100644 index 7e3a8f23..00000000 Binary files a/tests_zemu/snapshots/s-show_eth_address/00000.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-show_eth_address/00001.png b/tests_zemu/snapshots/s-show_eth_address/00001.png deleted file mode 100644 index 05d02753..00000000 Binary files a/tests_zemu/snapshots/s-show_eth_address/00001.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-show_eth_address/00002.png b/tests_zemu/snapshots/s-show_eth_address/00002.png deleted file mode 100644 index e4fd77c0..00000000 Binary files a/tests_zemu/snapshots/s-show_eth_address/00002.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-show_eth_address/00003.png b/tests_zemu/snapshots/s-show_eth_address/00003.png deleted file mode 100644 index 006c26ab..00000000 Binary files a/tests_zemu/snapshots/s-show_eth_address/00003.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-show_eth_address/00004.png b/tests_zemu/snapshots/s-show_eth_address/00004.png deleted file mode 100644 index 131855e2..00000000 Binary files a/tests_zemu/snapshots/s-show_eth_address/00004.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-sign_basic/00000.png b/tests_zemu/snapshots/s-sign_basic/00000.png deleted file mode 100644 index 49639ec9..00000000 Binary files a/tests_zemu/snapshots/s-sign_basic/00000.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-sign_basic/00001.png b/tests_zemu/snapshots/s-sign_basic/00001.png deleted file mode 100644 index 5be09342..00000000 Binary files a/tests_zemu/snapshots/s-sign_basic/00001.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-sign_basic/00002.png b/tests_zemu/snapshots/s-sign_basic/00002.png deleted file mode 100644 index 0041b258..00000000 Binary files a/tests_zemu/snapshots/s-sign_basic/00002.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-sign_basic/00003.png b/tests_zemu/snapshots/s-sign_basic/00003.png deleted file mode 100644 index 368d6198..00000000 Binary files a/tests_zemu/snapshots/s-sign_basic/00003.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-sign_basic/00004.png b/tests_zemu/snapshots/s-sign_basic/00004.png deleted file mode 100644 index 56fe9ab2..00000000 Binary files a/tests_zemu/snapshots/s-sign_basic/00004.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-sign_basic/00005.png b/tests_zemu/snapshots/s-sign_basic/00005.png deleted file mode 100644 index 9dae9154..00000000 Binary files a/tests_zemu/snapshots/s-sign_basic/00005.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-sign_basic/00006.png b/tests_zemu/snapshots/s-sign_basic/00006.png deleted file mode 100644 index 08fc31e0..00000000 Binary files a/tests_zemu/snapshots/s-sign_basic/00006.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-sign_basic/00007.png b/tests_zemu/snapshots/s-sign_basic/00007.png deleted file mode 100644 index 7ee7a7ba..00000000 Binary files a/tests_zemu/snapshots/s-sign_basic/00007.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-sign_basic/00008.png b/tests_zemu/snapshots/s-sign_basic/00008.png deleted file mode 100644 index 006c26ab..00000000 Binary files a/tests_zemu/snapshots/s-sign_basic/00008.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-sign_basic/00009.png b/tests_zemu/snapshots/s-sign_basic/00009.png deleted file mode 100644 index 131855e2..00000000 Binary files a/tests_zemu/snapshots/s-sign_basic/00009.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-sign_basic2/00000.png b/tests_zemu/snapshots/s-sign_basic2/00000.png deleted file mode 100644 index 46f96f65..00000000 Binary files a/tests_zemu/snapshots/s-sign_basic2/00000.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-sign_basic2/00001.png b/tests_zemu/snapshots/s-sign_basic2/00001.png deleted file mode 100644 index c28f2c88..00000000 Binary files a/tests_zemu/snapshots/s-sign_basic2/00001.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-sign_basic2/00002.png b/tests_zemu/snapshots/s-sign_basic2/00002.png deleted file mode 100644 index cea9f194..00000000 Binary files a/tests_zemu/snapshots/s-sign_basic2/00002.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-sign_basic2/00003.png b/tests_zemu/snapshots/s-sign_basic2/00003.png deleted file mode 100644 index 5a0273aa..00000000 Binary files a/tests_zemu/snapshots/s-sign_basic2/00003.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-sign_basic2/00004.png b/tests_zemu/snapshots/s-sign_basic2/00004.png deleted file mode 100644 index c9d452db..00000000 Binary files a/tests_zemu/snapshots/s-sign_basic2/00004.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-sign_basic2/00005.png b/tests_zemu/snapshots/s-sign_basic2/00005.png deleted file mode 100644 index 688a4d94..00000000 Binary files a/tests_zemu/snapshots/s-sign_basic2/00005.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-sign_basic2/00006.png b/tests_zemu/snapshots/s-sign_basic2/00006.png deleted file mode 100644 index aeed27a4..00000000 Binary files a/tests_zemu/snapshots/s-sign_basic2/00006.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-sign_basic2/00008.png b/tests_zemu/snapshots/s-sign_basic2/00008.png deleted file mode 100644 index 131855e2..00000000 Binary files a/tests_zemu/snapshots/s-sign_basic2/00008.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-sign_basic_eth/00000.png b/tests_zemu/snapshots/s-sign_basic_eth/00000.png deleted file mode 100644 index f2cb467e..00000000 Binary files a/tests_zemu/snapshots/s-sign_basic_eth/00000.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-sign_basic_eth/00001.png b/tests_zemu/snapshots/s-sign_basic_eth/00001.png deleted file mode 100644 index 3f4788dd..00000000 Binary files a/tests_zemu/snapshots/s-sign_basic_eth/00001.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-sign_basic_eth/00002.png b/tests_zemu/snapshots/s-sign_basic_eth/00002.png deleted file mode 100644 index 43305911..00000000 Binary files a/tests_zemu/snapshots/s-sign_basic_eth/00002.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-sign_basic_eth/00003.png b/tests_zemu/snapshots/s-sign_basic_eth/00003.png deleted file mode 100644 index 6355910e..00000000 Binary files a/tests_zemu/snapshots/s-sign_basic_eth/00003.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-sign_basic_eth/00004.png b/tests_zemu/snapshots/s-sign_basic_eth/00004.png deleted file mode 100644 index 5be09342..00000000 Binary files a/tests_zemu/snapshots/s-sign_basic_eth/00004.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-sign_basic_eth/00005.png b/tests_zemu/snapshots/s-sign_basic_eth/00005.png deleted file mode 100644 index 0041b258..00000000 Binary files a/tests_zemu/snapshots/s-sign_basic_eth/00005.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-sign_basic_eth/00006.png b/tests_zemu/snapshots/s-sign_basic_eth/00006.png deleted file mode 100644 index 368d6198..00000000 Binary files a/tests_zemu/snapshots/s-sign_basic_eth/00006.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-sign_basic_eth/00007.png b/tests_zemu/snapshots/s-sign_basic_eth/00007.png deleted file mode 100644 index 56fe9ab2..00000000 Binary files a/tests_zemu/snapshots/s-sign_basic_eth/00007.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-sign_basic_eth/00008.png b/tests_zemu/snapshots/s-sign_basic_eth/00008.png deleted file mode 100644 index 5be09342..00000000 Binary files a/tests_zemu/snapshots/s-sign_basic_eth/00008.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-sign_basic_eth/00009.png b/tests_zemu/snapshots/s-sign_basic_eth/00009.png deleted file mode 100644 index 0041b258..00000000 Binary files a/tests_zemu/snapshots/s-sign_basic_eth/00009.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-sign_basic_eth/00010.png b/tests_zemu/snapshots/s-sign_basic_eth/00010.png deleted file mode 100644 index 9dae9154..00000000 Binary files a/tests_zemu/snapshots/s-sign_basic_eth/00010.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-sign_basic_eth/00011.png b/tests_zemu/snapshots/s-sign_basic_eth/00011.png deleted file mode 100644 index 08fc31e0..00000000 Binary files a/tests_zemu/snapshots/s-sign_basic_eth/00011.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-sign_basic_eth/00012.png b/tests_zemu/snapshots/s-sign_basic_eth/00012.png deleted file mode 100644 index 4f7507c0..00000000 Binary files a/tests_zemu/snapshots/s-sign_basic_eth/00012.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-sign_basic_eth/00013.png b/tests_zemu/snapshots/s-sign_basic_eth/00013.png deleted file mode 100644 index 1162e20a..00000000 Binary files a/tests_zemu/snapshots/s-sign_basic_eth/00013.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-sign_basic_eth/00014.png b/tests_zemu/snapshots/s-sign_basic_eth/00014.png deleted file mode 100644 index 006c26ab..00000000 Binary files a/tests_zemu/snapshots/s-sign_basic_eth/00014.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-sign_basic_eth/00015.png b/tests_zemu/snapshots/s-sign_basic_eth/00015.png deleted file mode 100644 index 131855e2..00000000 Binary files a/tests_zemu/snapshots/s-sign_basic_eth/00015.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-sign_basic_eth_warning/00000.png b/tests_zemu/snapshots/s-sign_basic_eth_warning/00000.png deleted file mode 100644 index 90ebb922..00000000 Binary files a/tests_zemu/snapshots/s-sign_basic_eth_warning/00000.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-sign_basic_eth_warning/00001.png b/tests_zemu/snapshots/s-sign_basic_eth_warning/00001.png deleted file mode 100644 index 5b102cb2..00000000 Binary files a/tests_zemu/snapshots/s-sign_basic_eth_warning/00001.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-sign_basic_eth_warning/00002.png b/tests_zemu/snapshots/s-sign_basic_eth_warning/00002.png deleted file mode 100644 index 131855e2..00000000 Binary files a/tests_zemu/snapshots/s-sign_basic_eth_warning/00002.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-sign_basic_extra_fields/00000.png b/tests_zemu/snapshots/s-sign_basic_extra_fields/00000.png deleted file mode 100644 index 49639ec9..00000000 Binary files a/tests_zemu/snapshots/s-sign_basic_extra_fields/00000.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-sign_basic_extra_fields/00001.png b/tests_zemu/snapshots/s-sign_basic_extra_fields/00001.png deleted file mode 100644 index 5be09342..00000000 Binary files a/tests_zemu/snapshots/s-sign_basic_extra_fields/00001.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-sign_basic_extra_fields/00002.png b/tests_zemu/snapshots/s-sign_basic_extra_fields/00002.png deleted file mode 100644 index 0041b258..00000000 Binary files a/tests_zemu/snapshots/s-sign_basic_extra_fields/00002.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-sign_basic_extra_fields/00003.png b/tests_zemu/snapshots/s-sign_basic_extra_fields/00003.png deleted file mode 100644 index 368d6198..00000000 Binary files a/tests_zemu/snapshots/s-sign_basic_extra_fields/00003.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-sign_basic_extra_fields/00004.png b/tests_zemu/snapshots/s-sign_basic_extra_fields/00004.png deleted file mode 100644 index 56fe9ab2..00000000 Binary files a/tests_zemu/snapshots/s-sign_basic_extra_fields/00004.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-sign_basic_extra_fields/00005.png b/tests_zemu/snapshots/s-sign_basic_extra_fields/00005.png deleted file mode 100644 index 9dae9154..00000000 Binary files a/tests_zemu/snapshots/s-sign_basic_extra_fields/00005.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-sign_basic_extra_fields/00006.png b/tests_zemu/snapshots/s-sign_basic_extra_fields/00006.png deleted file mode 100644 index 08fc31e0..00000000 Binary files a/tests_zemu/snapshots/s-sign_basic_extra_fields/00006.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-sign_basic_extra_fields/00007.png b/tests_zemu/snapshots/s-sign_basic_extra_fields/00007.png deleted file mode 100644 index 7ee7a7ba..00000000 Binary files a/tests_zemu/snapshots/s-sign_basic_extra_fields/00007.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-sign_basic_extra_fields/00008.png b/tests_zemu/snapshots/s-sign_basic_extra_fields/00008.png deleted file mode 100644 index 006c26ab..00000000 Binary files a/tests_zemu/snapshots/s-sign_basic_extra_fields/00008.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-sign_basic_extra_fields/00009.png b/tests_zemu/snapshots/s-sign_basic_extra_fields/00009.png deleted file mode 100644 index 131855e2..00000000 Binary files a/tests_zemu/snapshots/s-sign_basic_extra_fields/00009.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-sign_msgDeposit/00000.png b/tests_zemu/snapshots/s-sign_msgDeposit/00000.png new file mode 100644 index 00000000..9d416d5f Binary files /dev/null and b/tests_zemu/snapshots/s-sign_msgDeposit/00000.png differ diff --git a/tests_zemu/snapshots/s-sign_msgDeposit/00001.png b/tests_zemu/snapshots/s-sign_msgDeposit/00001.png new file mode 100644 index 00000000..c882ca34 Binary files /dev/null and b/tests_zemu/snapshots/s-sign_msgDeposit/00001.png differ diff --git a/tests_zemu/snapshots/s-sign_msgDeposit/00002.png b/tests_zemu/snapshots/s-sign_msgDeposit/00002.png new file mode 100644 index 00000000..a07a571c Binary files /dev/null and b/tests_zemu/snapshots/s-sign_msgDeposit/00002.png differ diff --git a/tests_zemu/snapshots/s-sign_msgDeposit/00003.png b/tests_zemu/snapshots/s-sign_msgDeposit/00003.png new file mode 100644 index 00000000..ff57ad16 Binary files /dev/null and b/tests_zemu/snapshots/s-sign_msgDeposit/00003.png differ diff --git a/tests_zemu/snapshots/s-sign_msgDeposit/00004.png b/tests_zemu/snapshots/s-sign_msgDeposit/00004.png new file mode 100644 index 00000000..9ebadfbf Binary files /dev/null and b/tests_zemu/snapshots/s-sign_msgDeposit/00004.png differ diff --git a/tests_zemu/snapshots/s-sign_msgDeposit/00005.png b/tests_zemu/snapshots/s-sign_msgDeposit/00005.png new file mode 100644 index 00000000..107c36db Binary files /dev/null and b/tests_zemu/snapshots/s-sign_msgDeposit/00005.png differ diff --git a/tests_zemu/snapshots/s-govDeposit/00011.png b/tests_zemu/snapshots/s-sign_msgDeposit/00006.png similarity index 100% rename from tests_zemu/snapshots/s-govDeposit/00011.png rename to tests_zemu/snapshots/s-sign_msgDeposit/00006.png diff --git a/tests_zemu/snapshots/s-sign_msgDeposit/00007.png b/tests_zemu/snapshots/s-sign_msgDeposit/00007.png new file mode 100644 index 00000000..f1867e44 Binary files /dev/null and b/tests_zemu/snapshots/s-sign_msgDeposit/00007.png differ diff --git a/tests_zemu/snapshots/s-sign_msgSend/00000.png b/tests_zemu/snapshots/s-sign_msgSend/00000.png new file mode 100644 index 00000000..9267a374 Binary files /dev/null and b/tests_zemu/snapshots/s-sign_msgSend/00000.png differ diff --git a/tests_zemu/snapshots/s-sign_msgSend/00001.png b/tests_zemu/snapshots/s-sign_msgSend/00001.png new file mode 100644 index 00000000..75062e32 Binary files /dev/null and b/tests_zemu/snapshots/s-sign_msgSend/00001.png differ diff --git a/tests_zemu/snapshots/s-sign_msgSend/00002.png b/tests_zemu/snapshots/s-sign_msgSend/00002.png new file mode 100644 index 00000000..30eee797 Binary files /dev/null and b/tests_zemu/snapshots/s-sign_msgSend/00002.png differ diff --git a/tests_zemu/snapshots/s-sign_msgSend/00003.png b/tests_zemu/snapshots/s-sign_msgSend/00003.png new file mode 100644 index 00000000..b03f628e Binary files /dev/null and b/tests_zemu/snapshots/s-sign_msgSend/00003.png differ diff --git a/tests_zemu/snapshots/s-sign_msgSend/00004.png b/tests_zemu/snapshots/s-sign_msgSend/00004.png new file mode 100644 index 00000000..cd8deb4e Binary files /dev/null and b/tests_zemu/snapshots/s-sign_msgSend/00004.png differ diff --git a/tests_zemu/snapshots/s-sign_msgSend/00005.png b/tests_zemu/snapshots/s-sign_msgSend/00005.png new file mode 100644 index 00000000..afefc58e Binary files /dev/null and b/tests_zemu/snapshots/s-sign_msgSend/00005.png differ diff --git a/tests_zemu/snapshots/s-sign_msgSend/00006.png b/tests_zemu/snapshots/s-sign_msgSend/00006.png new file mode 100644 index 00000000..65e5ed80 Binary files /dev/null and b/tests_zemu/snapshots/s-sign_msgSend/00006.png differ diff --git a/tests_zemu/snapshots/s-sign_basic2/00007.png b/tests_zemu/snapshots/s-sign_msgSend/00007.png similarity index 100% rename from tests_zemu/snapshots/s-sign_basic2/00007.png rename to tests_zemu/snapshots/s-sign_msgSend/00007.png diff --git a/tests_zemu/snapshots/s-sign_msgSend/00008.png b/tests_zemu/snapshots/s-sign_msgSend/00008.png new file mode 100644 index 00000000..f1867e44 Binary files /dev/null and b/tests_zemu/snapshots/s-sign_msgSend/00008.png differ diff --git a/tests_zemu/snapshots/s-textual-sign_basic/00000.png b/tests_zemu/snapshots/s-textual-sign_basic/00000.png deleted file mode 100644 index 535fe502..00000000 Binary files a/tests_zemu/snapshots/s-textual-sign_basic/00000.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-textual-sign_basic/00001.png b/tests_zemu/snapshots/s-textual-sign_basic/00001.png deleted file mode 100644 index 628b6d73..00000000 Binary files a/tests_zemu/snapshots/s-textual-sign_basic/00001.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-textual-sign_basic/00002.png b/tests_zemu/snapshots/s-textual-sign_basic/00002.png deleted file mode 100644 index 99ba8e04..00000000 Binary files a/tests_zemu/snapshots/s-textual-sign_basic/00002.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-textual-sign_basic/00003.png b/tests_zemu/snapshots/s-textual-sign_basic/00003.png deleted file mode 100644 index a17144ad..00000000 Binary files a/tests_zemu/snapshots/s-textual-sign_basic/00003.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-textual-sign_basic/00004.png b/tests_zemu/snapshots/s-textual-sign_basic/00004.png deleted file mode 100644 index 43e76c54..00000000 Binary files a/tests_zemu/snapshots/s-textual-sign_basic/00004.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-textual-sign_basic/00005.png b/tests_zemu/snapshots/s-textual-sign_basic/00005.png deleted file mode 100644 index 5b529988..00000000 Binary files a/tests_zemu/snapshots/s-textual-sign_basic/00005.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-textual-sign_basic/00006.png b/tests_zemu/snapshots/s-textual-sign_basic/00006.png deleted file mode 100644 index d1273580..00000000 Binary files a/tests_zemu/snapshots/s-textual-sign_basic/00006.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-textual-sign_basic/00007.png b/tests_zemu/snapshots/s-textual-sign_basic/00007.png deleted file mode 100644 index f6f50f67..00000000 Binary files a/tests_zemu/snapshots/s-textual-sign_basic/00007.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-textual-sign_basic/00008.png b/tests_zemu/snapshots/s-textual-sign_basic/00008.png deleted file mode 100644 index cc0815ba..00000000 Binary files a/tests_zemu/snapshots/s-textual-sign_basic/00008.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-textual-sign_basic/00009.png b/tests_zemu/snapshots/s-textual-sign_basic/00009.png deleted file mode 100644 index 4b2a89ad..00000000 Binary files a/tests_zemu/snapshots/s-textual-sign_basic/00009.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-textual-sign_basic/00010.png b/tests_zemu/snapshots/s-textual-sign_basic/00010.png deleted file mode 100644 index d88e549f..00000000 Binary files a/tests_zemu/snapshots/s-textual-sign_basic/00010.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-textual-sign_basic/00011.png b/tests_zemu/snapshots/s-textual-sign_basic/00011.png deleted file mode 100644 index 10ff9c8c..00000000 Binary files a/tests_zemu/snapshots/s-textual-sign_basic/00011.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-textual-sign_basic/00012.png b/tests_zemu/snapshots/s-textual-sign_basic/00012.png deleted file mode 100644 index 60383553..00000000 Binary files a/tests_zemu/snapshots/s-textual-sign_basic/00012.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-textual-sign_basic/00013.png b/tests_zemu/snapshots/s-textual-sign_basic/00013.png deleted file mode 100644 index 9fa5fab9..00000000 Binary files a/tests_zemu/snapshots/s-textual-sign_basic/00013.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-textual-sign_basic/00014.png b/tests_zemu/snapshots/s-textual-sign_basic/00014.png deleted file mode 100644 index c23b6c41..00000000 Binary files a/tests_zemu/snapshots/s-textual-sign_basic/00014.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-textual-sign_basic/00015.png b/tests_zemu/snapshots/s-textual-sign_basic/00015.png deleted file mode 100644 index 006c26ab..00000000 Binary files a/tests_zemu/snapshots/s-textual-sign_basic/00015.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-textual-sign_basic/00016.png b/tests_zemu/snapshots/s-textual-sign_basic/00016.png deleted file mode 100644 index 131855e2..00000000 Binary files a/tests_zemu/snapshots/s-textual-sign_basic/00016.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-textual-sign_basic_eth/00000.png b/tests_zemu/snapshots/s-textual-sign_basic_eth/00000.png deleted file mode 100644 index 535fe502..00000000 Binary files a/tests_zemu/snapshots/s-textual-sign_basic_eth/00000.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-textual-sign_basic_eth/00001.png b/tests_zemu/snapshots/s-textual-sign_basic_eth/00001.png deleted file mode 100644 index 628b6d73..00000000 Binary files a/tests_zemu/snapshots/s-textual-sign_basic_eth/00001.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-textual-sign_basic_eth/00002.png b/tests_zemu/snapshots/s-textual-sign_basic_eth/00002.png deleted file mode 100644 index 99ba8e04..00000000 Binary files a/tests_zemu/snapshots/s-textual-sign_basic_eth/00002.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-textual-sign_basic_eth/00003.png b/tests_zemu/snapshots/s-textual-sign_basic_eth/00003.png deleted file mode 100644 index 55031c74..00000000 Binary files a/tests_zemu/snapshots/s-textual-sign_basic_eth/00003.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-textual-sign_basic_eth/00004.png b/tests_zemu/snapshots/s-textual-sign_basic_eth/00004.png deleted file mode 100644 index 2673a3a8..00000000 Binary files a/tests_zemu/snapshots/s-textual-sign_basic_eth/00004.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-textual-sign_basic_eth/00005.png b/tests_zemu/snapshots/s-textual-sign_basic_eth/00005.png deleted file mode 100644 index 982e1d3f..00000000 Binary files a/tests_zemu/snapshots/s-textual-sign_basic_eth/00005.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-textual-sign_basic_eth/00006.png b/tests_zemu/snapshots/s-textual-sign_basic_eth/00006.png deleted file mode 100644 index 1444d170..00000000 Binary files a/tests_zemu/snapshots/s-textual-sign_basic_eth/00006.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-textual-sign_basic_eth/00007.png b/tests_zemu/snapshots/s-textual-sign_basic_eth/00007.png deleted file mode 100644 index 05baa700..00000000 Binary files a/tests_zemu/snapshots/s-textual-sign_basic_eth/00007.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-textual-sign_basic_eth/00008.png b/tests_zemu/snapshots/s-textual-sign_basic_eth/00008.png deleted file mode 100644 index 3f8a8d52..00000000 Binary files a/tests_zemu/snapshots/s-textual-sign_basic_eth/00008.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-textual-sign_basic_eth/00009.png b/tests_zemu/snapshots/s-textual-sign_basic_eth/00009.png deleted file mode 100644 index f55c9e97..00000000 Binary files a/tests_zemu/snapshots/s-textual-sign_basic_eth/00009.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-textual-sign_basic_eth/00010.png b/tests_zemu/snapshots/s-textual-sign_basic_eth/00010.png deleted file mode 100644 index a17144ad..00000000 Binary files a/tests_zemu/snapshots/s-textual-sign_basic_eth/00010.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-textual-sign_basic_eth/00011.png b/tests_zemu/snapshots/s-textual-sign_basic_eth/00011.png deleted file mode 100644 index 43e76c54..00000000 Binary files a/tests_zemu/snapshots/s-textual-sign_basic_eth/00011.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-textual-sign_basic_eth/00012.png b/tests_zemu/snapshots/s-textual-sign_basic_eth/00012.png deleted file mode 100644 index 5b529988..00000000 Binary files a/tests_zemu/snapshots/s-textual-sign_basic_eth/00012.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-textual-sign_basic_eth/00013.png b/tests_zemu/snapshots/s-textual-sign_basic_eth/00013.png deleted file mode 100644 index d1273580..00000000 Binary files a/tests_zemu/snapshots/s-textual-sign_basic_eth/00013.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-textual-sign_basic_eth/00014.png b/tests_zemu/snapshots/s-textual-sign_basic_eth/00014.png deleted file mode 100644 index f6f50f67..00000000 Binary files a/tests_zemu/snapshots/s-textual-sign_basic_eth/00014.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-textual-sign_basic_eth/00015.png b/tests_zemu/snapshots/s-textual-sign_basic_eth/00015.png deleted file mode 100644 index cc0815ba..00000000 Binary files a/tests_zemu/snapshots/s-textual-sign_basic_eth/00015.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-textual-sign_basic_eth/00016.png b/tests_zemu/snapshots/s-textual-sign_basic_eth/00016.png deleted file mode 100644 index 4b2a89ad..00000000 Binary files a/tests_zemu/snapshots/s-textual-sign_basic_eth/00016.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-textual-sign_basic_eth/00017.png b/tests_zemu/snapshots/s-textual-sign_basic_eth/00017.png deleted file mode 100644 index d88e549f..00000000 Binary files a/tests_zemu/snapshots/s-textual-sign_basic_eth/00017.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-textual-sign_basic_eth/00018.png b/tests_zemu/snapshots/s-textual-sign_basic_eth/00018.png deleted file mode 100644 index 10ff9c8c..00000000 Binary files a/tests_zemu/snapshots/s-textual-sign_basic_eth/00018.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-textual-sign_basic_eth/00019.png b/tests_zemu/snapshots/s-textual-sign_basic_eth/00019.png deleted file mode 100644 index 60383553..00000000 Binary files a/tests_zemu/snapshots/s-textual-sign_basic_eth/00019.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-textual-sign_basic_eth/00020.png b/tests_zemu/snapshots/s-textual-sign_basic_eth/00020.png deleted file mode 100644 index 9fa5fab9..00000000 Binary files a/tests_zemu/snapshots/s-textual-sign_basic_eth/00020.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-textual-sign_basic_eth/00021.png b/tests_zemu/snapshots/s-textual-sign_basic_eth/00021.png deleted file mode 100644 index c23b6c41..00000000 Binary files a/tests_zemu/snapshots/s-textual-sign_basic_eth/00021.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-textual-sign_basic_eth/00022.png b/tests_zemu/snapshots/s-textual-sign_basic_eth/00022.png deleted file mode 100644 index a88fbb82..00000000 Binary files a/tests_zemu/snapshots/s-textual-sign_basic_eth/00022.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-textual-sign_basic_eth/00023.png b/tests_zemu/snapshots/s-textual-sign_basic_eth/00023.png deleted file mode 100644 index 28cd767b..00000000 Binary files a/tests_zemu/snapshots/s-textual-sign_basic_eth/00023.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-textual-sign_basic_eth/00024.png b/tests_zemu/snapshots/s-textual-sign_basic_eth/00024.png deleted file mode 100644 index a8dbed4b..00000000 Binary files a/tests_zemu/snapshots/s-textual-sign_basic_eth/00024.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-textual-sign_basic_eth/00025.png b/tests_zemu/snapshots/s-textual-sign_basic_eth/00025.png deleted file mode 100644 index 644199ab..00000000 Binary files a/tests_zemu/snapshots/s-textual-sign_basic_eth/00025.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-textual-sign_basic_eth/00026.png b/tests_zemu/snapshots/s-textual-sign_basic_eth/00026.png deleted file mode 100644 index 006c26ab..00000000 Binary files a/tests_zemu/snapshots/s-textual-sign_basic_eth/00026.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-textual-sign_basic_eth/00027.png b/tests_zemu/snapshots/s-textual-sign_basic_eth/00027.png deleted file mode 100644 index 131855e2..00000000 Binary files a/tests_zemu/snapshots/s-textual-sign_basic_eth/00027.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-textual-sign_basic_eth_warning/00000.png b/tests_zemu/snapshots/s-textual-sign_basic_eth_warning/00000.png deleted file mode 100644 index 90ebb922..00000000 Binary files a/tests_zemu/snapshots/s-textual-sign_basic_eth_warning/00000.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-textual-sign_basic_eth_warning/00001.png b/tests_zemu/snapshots/s-textual-sign_basic_eth_warning/00001.png deleted file mode 100644 index 5b102cb2..00000000 Binary files a/tests_zemu/snapshots/s-textual-sign_basic_eth_warning/00001.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-textual-sign_basic_eth_warning/00002.png b/tests_zemu/snapshots/s-textual-sign_basic_eth_warning/00002.png deleted file mode 100644 index 131855e2..00000000 Binary files a/tests_zemu/snapshots/s-textual-sign_basic_eth_warning/00002.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-textual-sign_basic_expert/00000.png b/tests_zemu/snapshots/s-textual-sign_basic_expert/00000.png deleted file mode 100644 index 535fe502..00000000 Binary files a/tests_zemu/snapshots/s-textual-sign_basic_expert/00000.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-textual-sign_basic_expert/00001.png b/tests_zemu/snapshots/s-textual-sign_basic_expert/00001.png deleted file mode 100644 index 628b6d73..00000000 Binary files a/tests_zemu/snapshots/s-textual-sign_basic_expert/00001.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-textual-sign_basic_expert/00002.png b/tests_zemu/snapshots/s-textual-sign_basic_expert/00002.png deleted file mode 100644 index 99ba8e04..00000000 Binary files a/tests_zemu/snapshots/s-textual-sign_basic_expert/00002.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-textual-sign_basic_expert/00003.png b/tests_zemu/snapshots/s-textual-sign_basic_expert/00003.png deleted file mode 100644 index 55031c74..00000000 Binary files a/tests_zemu/snapshots/s-textual-sign_basic_expert/00003.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-textual-sign_basic_expert/00004.png b/tests_zemu/snapshots/s-textual-sign_basic_expert/00004.png deleted file mode 100644 index 2673a3a8..00000000 Binary files a/tests_zemu/snapshots/s-textual-sign_basic_expert/00004.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-textual-sign_basic_expert/00005.png b/tests_zemu/snapshots/s-textual-sign_basic_expert/00005.png deleted file mode 100644 index 982e1d3f..00000000 Binary files a/tests_zemu/snapshots/s-textual-sign_basic_expert/00005.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-textual-sign_basic_expert/00006.png b/tests_zemu/snapshots/s-textual-sign_basic_expert/00006.png deleted file mode 100644 index 1444d170..00000000 Binary files a/tests_zemu/snapshots/s-textual-sign_basic_expert/00006.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-textual-sign_basic_expert/00007.png b/tests_zemu/snapshots/s-textual-sign_basic_expert/00007.png deleted file mode 100644 index 05baa700..00000000 Binary files a/tests_zemu/snapshots/s-textual-sign_basic_expert/00007.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-textual-sign_basic_expert/00008.png b/tests_zemu/snapshots/s-textual-sign_basic_expert/00008.png deleted file mode 100644 index 3f8a8d52..00000000 Binary files a/tests_zemu/snapshots/s-textual-sign_basic_expert/00008.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-textual-sign_basic_expert/00009.png b/tests_zemu/snapshots/s-textual-sign_basic_expert/00009.png deleted file mode 100644 index f55c9e97..00000000 Binary files a/tests_zemu/snapshots/s-textual-sign_basic_expert/00009.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-textual-sign_basic_expert/00010.png b/tests_zemu/snapshots/s-textual-sign_basic_expert/00010.png deleted file mode 100644 index a17144ad..00000000 Binary files a/tests_zemu/snapshots/s-textual-sign_basic_expert/00010.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-textual-sign_basic_expert/00011.png b/tests_zemu/snapshots/s-textual-sign_basic_expert/00011.png deleted file mode 100644 index 43e76c54..00000000 Binary files a/tests_zemu/snapshots/s-textual-sign_basic_expert/00011.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-textual-sign_basic_expert/00012.png b/tests_zemu/snapshots/s-textual-sign_basic_expert/00012.png deleted file mode 100644 index 5b529988..00000000 Binary files a/tests_zemu/snapshots/s-textual-sign_basic_expert/00012.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-textual-sign_basic_expert/00013.png b/tests_zemu/snapshots/s-textual-sign_basic_expert/00013.png deleted file mode 100644 index d1273580..00000000 Binary files a/tests_zemu/snapshots/s-textual-sign_basic_expert/00013.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-textual-sign_basic_expert/00014.png b/tests_zemu/snapshots/s-textual-sign_basic_expert/00014.png deleted file mode 100644 index f6f50f67..00000000 Binary files a/tests_zemu/snapshots/s-textual-sign_basic_expert/00014.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-textual-sign_basic_expert/00015.png b/tests_zemu/snapshots/s-textual-sign_basic_expert/00015.png deleted file mode 100644 index cc0815ba..00000000 Binary files a/tests_zemu/snapshots/s-textual-sign_basic_expert/00015.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-textual-sign_basic_expert/00016.png b/tests_zemu/snapshots/s-textual-sign_basic_expert/00016.png deleted file mode 100644 index 4b2a89ad..00000000 Binary files a/tests_zemu/snapshots/s-textual-sign_basic_expert/00016.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-textual-sign_basic_expert/00017.png b/tests_zemu/snapshots/s-textual-sign_basic_expert/00017.png deleted file mode 100644 index d88e549f..00000000 Binary files a/tests_zemu/snapshots/s-textual-sign_basic_expert/00017.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-textual-sign_basic_expert/00018.png b/tests_zemu/snapshots/s-textual-sign_basic_expert/00018.png deleted file mode 100644 index 10ff9c8c..00000000 Binary files a/tests_zemu/snapshots/s-textual-sign_basic_expert/00018.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-textual-sign_basic_expert/00019.png b/tests_zemu/snapshots/s-textual-sign_basic_expert/00019.png deleted file mode 100644 index 60383553..00000000 Binary files a/tests_zemu/snapshots/s-textual-sign_basic_expert/00019.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-textual-sign_basic_expert/00020.png b/tests_zemu/snapshots/s-textual-sign_basic_expert/00020.png deleted file mode 100644 index 9fa5fab9..00000000 Binary files a/tests_zemu/snapshots/s-textual-sign_basic_expert/00020.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-textual-sign_basic_expert/00021.png b/tests_zemu/snapshots/s-textual-sign_basic_expert/00021.png deleted file mode 100644 index c23b6c41..00000000 Binary files a/tests_zemu/snapshots/s-textual-sign_basic_expert/00021.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-textual-sign_basic_expert/00022.png b/tests_zemu/snapshots/s-textual-sign_basic_expert/00022.png deleted file mode 100644 index a88fbb82..00000000 Binary files a/tests_zemu/snapshots/s-textual-sign_basic_expert/00022.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-textual-sign_basic_expert/00023.png b/tests_zemu/snapshots/s-textual-sign_basic_expert/00023.png deleted file mode 100644 index 28cd767b..00000000 Binary files a/tests_zemu/snapshots/s-textual-sign_basic_expert/00023.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-textual-sign_basic_expert/00024.png b/tests_zemu/snapshots/s-textual-sign_basic_expert/00024.png deleted file mode 100644 index a8dbed4b..00000000 Binary files a/tests_zemu/snapshots/s-textual-sign_basic_expert/00024.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-textual-sign_basic_expert/00025.png b/tests_zemu/snapshots/s-textual-sign_basic_expert/00025.png deleted file mode 100644 index 644199ab..00000000 Binary files a/tests_zemu/snapshots/s-textual-sign_basic_expert/00025.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-textual-sign_basic_expert/00026.png b/tests_zemu/snapshots/s-textual-sign_basic_expert/00026.png deleted file mode 100644 index 006c26ab..00000000 Binary files a/tests_zemu/snapshots/s-textual-sign_basic_expert/00026.png and /dev/null differ diff --git a/tests_zemu/snapshots/s-textual-sign_basic_expert/00027.png b/tests_zemu/snapshots/s-textual-sign_basic_expert/00027.png deleted file mode 100644 index 131855e2..00000000 Binary files a/tests_zemu/snapshots/s-textual-sign_basic_expert/00027.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-govDeposit/00000.png b/tests_zemu/snapshots/sp-govDeposit/00000.png deleted file mode 100644 index 50c23a06..00000000 Binary files a/tests_zemu/snapshots/sp-govDeposit/00000.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-govDeposit/00001.png b/tests_zemu/snapshots/sp-govDeposit/00001.png deleted file mode 100644 index 54b3e630..00000000 Binary files a/tests_zemu/snapshots/sp-govDeposit/00001.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-govDeposit/00002.png b/tests_zemu/snapshots/sp-govDeposit/00002.png deleted file mode 100644 index 5e8c47b6..00000000 Binary files a/tests_zemu/snapshots/sp-govDeposit/00002.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-govDeposit/00003.png b/tests_zemu/snapshots/sp-govDeposit/00003.png deleted file mode 100644 index 84bc70f9..00000000 Binary files a/tests_zemu/snapshots/sp-govDeposit/00003.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-govDeposit/00005.png b/tests_zemu/snapshots/sp-govDeposit/00005.png deleted file mode 100644 index eaecc407..00000000 Binary files a/tests_zemu/snapshots/sp-govDeposit/00005.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-govDeposit/00006.png b/tests_zemu/snapshots/sp-govDeposit/00006.png deleted file mode 100644 index b3a92e31..00000000 Binary files a/tests_zemu/snapshots/sp-govDeposit/00006.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-govDeposit/00007.png b/tests_zemu/snapshots/sp-govDeposit/00007.png deleted file mode 100644 index 5ecf01cc..00000000 Binary files a/tests_zemu/snapshots/sp-govDeposit/00007.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-govDeposit/00008.png b/tests_zemu/snapshots/sp-govDeposit/00008.png deleted file mode 100644 index 9d32864f..00000000 Binary files a/tests_zemu/snapshots/sp-govDeposit/00008.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-govDeposit/00009.png b/tests_zemu/snapshots/sp-govDeposit/00009.png deleted file mode 100644 index 480a738d..00000000 Binary files a/tests_zemu/snapshots/sp-govDeposit/00009.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-govDeposit/00010.png b/tests_zemu/snapshots/sp-govDeposit/00010.png deleted file mode 100644 index 62eac008..00000000 Binary files a/tests_zemu/snapshots/sp-govDeposit/00010.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-govDeposit/00011.png b/tests_zemu/snapshots/sp-govDeposit/00011.png deleted file mode 100644 index 1e4be699..00000000 Binary files a/tests_zemu/snapshots/sp-govDeposit/00011.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-govDeposit/00012.png b/tests_zemu/snapshots/sp-govDeposit/00012.png deleted file mode 100644 index 430a37e8..00000000 Binary files a/tests_zemu/snapshots/sp-govDeposit/00012.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-ibc_denoms/00000.png b/tests_zemu/snapshots/sp-ibc_denoms/00000.png deleted file mode 100644 index 50c23a06..00000000 Binary files a/tests_zemu/snapshots/sp-ibc_denoms/00000.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-ibc_denoms/00001.png b/tests_zemu/snapshots/sp-ibc_denoms/00001.png deleted file mode 100644 index 70772708..00000000 Binary files a/tests_zemu/snapshots/sp-ibc_denoms/00001.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-ibc_denoms/00002.png b/tests_zemu/snapshots/sp-ibc_denoms/00002.png deleted file mode 100644 index 46ba8198..00000000 Binary files a/tests_zemu/snapshots/sp-ibc_denoms/00002.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-ibc_denoms/00003.png b/tests_zemu/snapshots/sp-ibc_denoms/00003.png deleted file mode 100644 index e42e6ee7..00000000 Binary files a/tests_zemu/snapshots/sp-ibc_denoms/00003.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-ibc_denoms/00004.png b/tests_zemu/snapshots/sp-ibc_denoms/00004.png deleted file mode 100644 index 19374588..00000000 Binary files a/tests_zemu/snapshots/sp-ibc_denoms/00004.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-ibc_denoms/00005.png b/tests_zemu/snapshots/sp-ibc_denoms/00005.png deleted file mode 100644 index e234dbb0..00000000 Binary files a/tests_zemu/snapshots/sp-ibc_denoms/00005.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-ibc_denoms/00006.png b/tests_zemu/snapshots/sp-ibc_denoms/00006.png deleted file mode 100644 index a1980245..00000000 Binary files a/tests_zemu/snapshots/sp-ibc_denoms/00006.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-ibc_denoms/00007.png b/tests_zemu/snapshots/sp-ibc_denoms/00007.png deleted file mode 100644 index 1c1128d5..00000000 Binary files a/tests_zemu/snapshots/sp-ibc_denoms/00007.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-ibc_denoms/00008.png b/tests_zemu/snapshots/sp-ibc_denoms/00008.png deleted file mode 100644 index 709fbea8..00000000 Binary files a/tests_zemu/snapshots/sp-ibc_denoms/00008.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-ibc_denoms/00009.png b/tests_zemu/snapshots/sp-ibc_denoms/00009.png deleted file mode 100644 index 1e4be699..00000000 Binary files a/tests_zemu/snapshots/sp-ibc_denoms/00009.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-ibc_denoms/00010.png b/tests_zemu/snapshots/sp-ibc_denoms/00010.png deleted file mode 100644 index 430a37e8..00000000 Binary files a/tests_zemu/snapshots/sp-ibc_denoms/00010.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-mainmenu/00000.png b/tests_zemu/snapshots/sp-mainmenu/00000.png deleted file mode 100644 index 430a37e8..00000000 Binary files a/tests_zemu/snapshots/sp-mainmenu/00000.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-mainmenu/00001.png b/tests_zemu/snapshots/sp-mainmenu/00001.png deleted file mode 100644 index e10e0049..00000000 Binary files a/tests_zemu/snapshots/sp-mainmenu/00001.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-mainmenu/00002.png b/tests_zemu/snapshots/sp-mainmenu/00002.png deleted file mode 100644 index 7e236da6..00000000 Binary files a/tests_zemu/snapshots/sp-mainmenu/00002.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-mainmenu/00003.png b/tests_zemu/snapshots/sp-mainmenu/00003.png deleted file mode 100644 index e10e0049..00000000 Binary files a/tests_zemu/snapshots/sp-mainmenu/00003.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-mainmenu/00004.png b/tests_zemu/snapshots/sp-mainmenu/00004.png deleted file mode 100644 index 57e29fc4..00000000 Binary files a/tests_zemu/snapshots/sp-mainmenu/00004.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-mainmenu/00005.png b/tests_zemu/snapshots/sp-mainmenu/00005.png deleted file mode 100644 index 1adff7ee..00000000 Binary files a/tests_zemu/snapshots/sp-mainmenu/00005.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-mainmenu/00006.png b/tests_zemu/snapshots/sp-mainmenu/00006.png deleted file mode 100644 index 86e715d1..00000000 Binary files a/tests_zemu/snapshots/sp-mainmenu/00006.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-mainmenu/00007.png b/tests_zemu/snapshots/sp-mainmenu/00007.png deleted file mode 100644 index c7703726..00000000 Binary files a/tests_zemu/snapshots/sp-mainmenu/00007.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-mainmenu/00008.png b/tests_zemu/snapshots/sp-mainmenu/00008.png deleted file mode 100644 index 86e715d1..00000000 Binary files a/tests_zemu/snapshots/sp-mainmenu/00008.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-mainmenu/00009.png b/tests_zemu/snapshots/sp-mainmenu/00009.png deleted file mode 100644 index 1adff7ee..00000000 Binary files a/tests_zemu/snapshots/sp-mainmenu/00009.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-mainmenu/00010.png b/tests_zemu/snapshots/sp-mainmenu/00010.png deleted file mode 100644 index 57e29fc4..00000000 Binary files a/tests_zemu/snapshots/sp-mainmenu/00010.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-mainmenu/00011.png b/tests_zemu/snapshots/sp-mainmenu/00011.png deleted file mode 100644 index e10e0049..00000000 Binary files a/tests_zemu/snapshots/sp-mainmenu/00011.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-mainmenu/00012.png b/tests_zemu/snapshots/sp-mainmenu/00012.png deleted file mode 100644 index 430a37e8..00000000 Binary files a/tests_zemu/snapshots/sp-mainmenu/00012.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-msgMultiSend/00000.png b/tests_zemu/snapshots/sp-msgMultiSend/00000.png deleted file mode 100644 index 50c23a06..00000000 Binary files a/tests_zemu/snapshots/sp-msgMultiSend/00000.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-msgMultiSend/00001.png b/tests_zemu/snapshots/sp-msgMultiSend/00001.png deleted file mode 100644 index 5713013d..00000000 Binary files a/tests_zemu/snapshots/sp-msgMultiSend/00001.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-msgMultiSend/00002.png b/tests_zemu/snapshots/sp-msgMultiSend/00002.png deleted file mode 100644 index 1b9311c7..00000000 Binary files a/tests_zemu/snapshots/sp-msgMultiSend/00002.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-msgMultiSend/00003.png b/tests_zemu/snapshots/sp-msgMultiSend/00003.png deleted file mode 100644 index c572861c..00000000 Binary files a/tests_zemu/snapshots/sp-msgMultiSend/00003.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-msgMultiSend/00004.png b/tests_zemu/snapshots/sp-msgMultiSend/00004.png deleted file mode 100644 index 0f7c39b4..00000000 Binary files a/tests_zemu/snapshots/sp-msgMultiSend/00004.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-msgMultiSend/00005.png b/tests_zemu/snapshots/sp-msgMultiSend/00005.png deleted file mode 100644 index b84ba3b4..00000000 Binary files a/tests_zemu/snapshots/sp-msgMultiSend/00005.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-msgMultiSend/00006.png b/tests_zemu/snapshots/sp-msgMultiSend/00006.png deleted file mode 100644 index c498f6b2..00000000 Binary files a/tests_zemu/snapshots/sp-msgMultiSend/00006.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-msgMultiSend/00007.png b/tests_zemu/snapshots/sp-msgMultiSend/00007.png deleted file mode 100644 index f1418b66..00000000 Binary files a/tests_zemu/snapshots/sp-msgMultiSend/00007.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-msgMultiSend/00008.png b/tests_zemu/snapshots/sp-msgMultiSend/00008.png deleted file mode 100644 index e4149aaf..00000000 Binary files a/tests_zemu/snapshots/sp-msgMultiSend/00008.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-msgMultiSend/00009.png b/tests_zemu/snapshots/sp-msgMultiSend/00009.png deleted file mode 100644 index 6425843f..00000000 Binary files a/tests_zemu/snapshots/sp-msgMultiSend/00009.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-msgMultiSend/00010.png b/tests_zemu/snapshots/sp-msgMultiSend/00010.png deleted file mode 100644 index e4149aaf..00000000 Binary files a/tests_zemu/snapshots/sp-msgMultiSend/00010.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-msgMultiSend/00011.png b/tests_zemu/snapshots/sp-msgMultiSend/00011.png deleted file mode 100644 index 7279040d..00000000 Binary files a/tests_zemu/snapshots/sp-msgMultiSend/00011.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-msgMultiSend/00012.png b/tests_zemu/snapshots/sp-msgMultiSend/00012.png deleted file mode 100644 index e4149aaf..00000000 Binary files a/tests_zemu/snapshots/sp-msgMultiSend/00012.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-msgMultiSend/00013.png b/tests_zemu/snapshots/sp-msgMultiSend/00013.png deleted file mode 100644 index 480a738d..00000000 Binary files a/tests_zemu/snapshots/sp-msgMultiSend/00013.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-msgMultiSend/00014.png b/tests_zemu/snapshots/sp-msgMultiSend/00014.png deleted file mode 100644 index 62eac008..00000000 Binary files a/tests_zemu/snapshots/sp-msgMultiSend/00014.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-msgMultiSend/00015.png b/tests_zemu/snapshots/sp-msgMultiSend/00015.png deleted file mode 100644 index 1e4be699..00000000 Binary files a/tests_zemu/snapshots/sp-msgMultiSend/00015.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-msgMultiSend/00016.png b/tests_zemu/snapshots/sp-msgMultiSend/00016.png deleted file mode 100644 index 430a37e8..00000000 Binary files a/tests_zemu/snapshots/sp-msgMultiSend/00016.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-setWithdrawAddress-eth/00000.png b/tests_zemu/snapshots/sp-setWithdrawAddress-eth/00000.png deleted file mode 100644 index 50c23a06..00000000 Binary files a/tests_zemu/snapshots/sp-setWithdrawAddress-eth/00000.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-setWithdrawAddress-eth/00001.png b/tests_zemu/snapshots/sp-setWithdrawAddress-eth/00001.png deleted file mode 100644 index 797d0277..00000000 Binary files a/tests_zemu/snapshots/sp-setWithdrawAddress-eth/00001.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-setWithdrawAddress-eth/00002.png b/tests_zemu/snapshots/sp-setWithdrawAddress-eth/00002.png deleted file mode 100644 index 5e8c47b6..00000000 Binary files a/tests_zemu/snapshots/sp-setWithdrawAddress-eth/00002.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-setWithdrawAddress-eth/00003.png b/tests_zemu/snapshots/sp-setWithdrawAddress-eth/00003.png deleted file mode 100644 index 350ef295..00000000 Binary files a/tests_zemu/snapshots/sp-setWithdrawAddress-eth/00003.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-setWithdrawAddress-eth/00004.png b/tests_zemu/snapshots/sp-setWithdrawAddress-eth/00004.png deleted file mode 100644 index 65b749f5..00000000 Binary files a/tests_zemu/snapshots/sp-setWithdrawAddress-eth/00004.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-setWithdrawAddress-eth/00005.png b/tests_zemu/snapshots/sp-setWithdrawAddress-eth/00005.png deleted file mode 100644 index 8c729777..00000000 Binary files a/tests_zemu/snapshots/sp-setWithdrawAddress-eth/00005.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-setWithdrawAddress-eth/00006.png b/tests_zemu/snapshots/sp-setWithdrawAddress-eth/00006.png deleted file mode 100644 index 4dc44ae4..00000000 Binary files a/tests_zemu/snapshots/sp-setWithdrawAddress-eth/00006.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-setWithdrawAddress-eth/00007.png b/tests_zemu/snapshots/sp-setWithdrawAddress-eth/00007.png deleted file mode 100644 index 0f9cfb13..00000000 Binary files a/tests_zemu/snapshots/sp-setWithdrawAddress-eth/00007.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-setWithdrawAddress-eth/00008.png b/tests_zemu/snapshots/sp-setWithdrawAddress-eth/00008.png deleted file mode 100644 index 8c729777..00000000 Binary files a/tests_zemu/snapshots/sp-setWithdrawAddress-eth/00008.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-setWithdrawAddress-eth/00009.png b/tests_zemu/snapshots/sp-setWithdrawAddress-eth/00009.png deleted file mode 100644 index 21583d12..00000000 Binary files a/tests_zemu/snapshots/sp-setWithdrawAddress-eth/00009.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-setWithdrawAddress-eth/00010.png b/tests_zemu/snapshots/sp-setWithdrawAddress-eth/00010.png deleted file mode 100644 index d666b4d0..00000000 Binary files a/tests_zemu/snapshots/sp-setWithdrawAddress-eth/00010.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-setWithdrawAddress-eth/00011.png b/tests_zemu/snapshots/sp-setWithdrawAddress-eth/00011.png deleted file mode 100644 index 62eac008..00000000 Binary files a/tests_zemu/snapshots/sp-setWithdrawAddress-eth/00011.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-setWithdrawAddress-eth/00012.png b/tests_zemu/snapshots/sp-setWithdrawAddress-eth/00012.png deleted file mode 100644 index 1e4be699..00000000 Binary files a/tests_zemu/snapshots/sp-setWithdrawAddress-eth/00012.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-setWithdrawAddress-eth/00013.png b/tests_zemu/snapshots/sp-setWithdrawAddress-eth/00013.png deleted file mode 100644 index 430a37e8..00000000 Binary files a/tests_zemu/snapshots/sp-setWithdrawAddress-eth/00013.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-setWithdrawAddress/00000.png b/tests_zemu/snapshots/sp-setWithdrawAddress/00000.png deleted file mode 100644 index 50c23a06..00000000 Binary files a/tests_zemu/snapshots/sp-setWithdrawAddress/00000.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-setWithdrawAddress/00001.png b/tests_zemu/snapshots/sp-setWithdrawAddress/00001.png deleted file mode 100644 index 797d0277..00000000 Binary files a/tests_zemu/snapshots/sp-setWithdrawAddress/00001.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-setWithdrawAddress/00002.png b/tests_zemu/snapshots/sp-setWithdrawAddress/00002.png deleted file mode 100644 index 5e8c47b6..00000000 Binary files a/tests_zemu/snapshots/sp-setWithdrawAddress/00002.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-setWithdrawAddress/00003.png b/tests_zemu/snapshots/sp-setWithdrawAddress/00003.png deleted file mode 100644 index 350ef295..00000000 Binary files a/tests_zemu/snapshots/sp-setWithdrawAddress/00003.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-setWithdrawAddress/00004.png b/tests_zemu/snapshots/sp-setWithdrawAddress/00004.png deleted file mode 100644 index 65b749f5..00000000 Binary files a/tests_zemu/snapshots/sp-setWithdrawAddress/00004.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-setWithdrawAddress/00005.png b/tests_zemu/snapshots/sp-setWithdrawAddress/00005.png deleted file mode 100644 index 8c729777..00000000 Binary files a/tests_zemu/snapshots/sp-setWithdrawAddress/00005.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-setWithdrawAddress/00006.png b/tests_zemu/snapshots/sp-setWithdrawAddress/00006.png deleted file mode 100644 index 4dc44ae4..00000000 Binary files a/tests_zemu/snapshots/sp-setWithdrawAddress/00006.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-setWithdrawAddress/00007.png b/tests_zemu/snapshots/sp-setWithdrawAddress/00007.png deleted file mode 100644 index 0f9cfb13..00000000 Binary files a/tests_zemu/snapshots/sp-setWithdrawAddress/00007.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-setWithdrawAddress/00008.png b/tests_zemu/snapshots/sp-setWithdrawAddress/00008.png deleted file mode 100644 index 8c729777..00000000 Binary files a/tests_zemu/snapshots/sp-setWithdrawAddress/00008.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-setWithdrawAddress/00009.png b/tests_zemu/snapshots/sp-setWithdrawAddress/00009.png deleted file mode 100644 index 21583d12..00000000 Binary files a/tests_zemu/snapshots/sp-setWithdrawAddress/00009.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-setWithdrawAddress/00010.png b/tests_zemu/snapshots/sp-setWithdrawAddress/00010.png deleted file mode 100644 index d666b4d0..00000000 Binary files a/tests_zemu/snapshots/sp-setWithdrawAddress/00010.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-setWithdrawAddress/00011.png b/tests_zemu/snapshots/sp-setWithdrawAddress/00011.png deleted file mode 100644 index 62eac008..00000000 Binary files a/tests_zemu/snapshots/sp-setWithdrawAddress/00011.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-setWithdrawAddress/00012.png b/tests_zemu/snapshots/sp-setWithdrawAddress/00012.png deleted file mode 100644 index 1e4be699..00000000 Binary files a/tests_zemu/snapshots/sp-setWithdrawAddress/00012.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-setWithdrawAddress/00013.png b/tests_zemu/snapshots/sp-setWithdrawAddress/00013.png deleted file mode 100644 index 430a37e8..00000000 Binary files a/tests_zemu/snapshots/sp-setWithdrawAddress/00013.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-show_address/00000.png b/tests_zemu/snapshots/sp-show_address/00000.png deleted file mode 100644 index 50c23a06..00000000 Binary files a/tests_zemu/snapshots/sp-show_address/00000.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-show_address/00001.png b/tests_zemu/snapshots/sp-show_address/00001.png deleted file mode 100644 index 4a1aa7e1..00000000 Binary files a/tests_zemu/snapshots/sp-show_address/00001.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-show_address/00002.png b/tests_zemu/snapshots/sp-show_address/00002.png deleted file mode 100644 index 1e4be699..00000000 Binary files a/tests_zemu/snapshots/sp-show_address/00002.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-show_address/00003.png b/tests_zemu/snapshots/sp-show_address/00003.png deleted file mode 100644 index 430a37e8..00000000 Binary files a/tests_zemu/snapshots/sp-show_address/00003.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-show_address_huge/00000.png b/tests_zemu/snapshots/sp-show_address_huge/00000.png deleted file mode 100644 index 50c23a06..00000000 Binary files a/tests_zemu/snapshots/sp-show_address_huge/00000.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-show_address_huge/00001.png b/tests_zemu/snapshots/sp-show_address_huge/00001.png deleted file mode 100644 index 280b6933..00000000 Binary files a/tests_zemu/snapshots/sp-show_address_huge/00001.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-show_address_huge/00002.png b/tests_zemu/snapshots/sp-show_address_huge/00002.png deleted file mode 100644 index 85877f0f..00000000 Binary files a/tests_zemu/snapshots/sp-show_address_huge/00002.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-show_address_huge/00003.png b/tests_zemu/snapshots/sp-show_address_huge/00003.png deleted file mode 100644 index 1e4be699..00000000 Binary files a/tests_zemu/snapshots/sp-show_address_huge/00003.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-show_address_huge/00004.png b/tests_zemu/snapshots/sp-show_address_huge/00004.png deleted file mode 100644 index 430a37e8..00000000 Binary files a/tests_zemu/snapshots/sp-show_address_huge/00004.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-show_eth_address/00000.png b/tests_zemu/snapshots/sp-show_eth_address/00000.png deleted file mode 100644 index 50c23a06..00000000 Binary files a/tests_zemu/snapshots/sp-show_eth_address/00000.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-show_eth_address/00001.png b/tests_zemu/snapshots/sp-show_eth_address/00001.png deleted file mode 100644 index 84ed31e4..00000000 Binary files a/tests_zemu/snapshots/sp-show_eth_address/00001.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-show_eth_address/00002.png b/tests_zemu/snapshots/sp-show_eth_address/00002.png deleted file mode 100644 index be6a7d82..00000000 Binary files a/tests_zemu/snapshots/sp-show_eth_address/00002.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-show_eth_address/00003.png b/tests_zemu/snapshots/sp-show_eth_address/00003.png deleted file mode 100644 index 1e4be699..00000000 Binary files a/tests_zemu/snapshots/sp-show_eth_address/00003.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-show_eth_address/00004.png b/tests_zemu/snapshots/sp-show_eth_address/00004.png deleted file mode 100644 index 430a37e8..00000000 Binary files a/tests_zemu/snapshots/sp-show_eth_address/00004.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-sign_basic/00000.png b/tests_zemu/snapshots/sp-sign_basic/00000.png deleted file mode 100644 index 50c23a06..00000000 Binary files a/tests_zemu/snapshots/sp-sign_basic/00000.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-sign_basic/00001.png b/tests_zemu/snapshots/sp-sign_basic/00001.png deleted file mode 100644 index 0f9cfb13..00000000 Binary files a/tests_zemu/snapshots/sp-sign_basic/00001.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-sign_basic/00002.png b/tests_zemu/snapshots/sp-sign_basic/00002.png deleted file mode 100644 index d5c15863..00000000 Binary files a/tests_zemu/snapshots/sp-sign_basic/00002.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-sign_basic/00003.png b/tests_zemu/snapshots/sp-sign_basic/00003.png deleted file mode 100644 index b47dabb4..00000000 Binary files a/tests_zemu/snapshots/sp-sign_basic/00003.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-sign_basic/00004.png b/tests_zemu/snapshots/sp-sign_basic/00004.png deleted file mode 100644 index 4e0f2906..00000000 Binary files a/tests_zemu/snapshots/sp-sign_basic/00004.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-sign_basic/00005.png b/tests_zemu/snapshots/sp-sign_basic/00005.png deleted file mode 100644 index a51f4624..00000000 Binary files a/tests_zemu/snapshots/sp-sign_basic/00005.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-sign_basic/00007.png b/tests_zemu/snapshots/sp-sign_basic/00007.png deleted file mode 100644 index 430a37e8..00000000 Binary files a/tests_zemu/snapshots/sp-sign_basic/00007.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-sign_basic2/00000.png b/tests_zemu/snapshots/sp-sign_basic2/00000.png deleted file mode 100644 index 50c23a06..00000000 Binary files a/tests_zemu/snapshots/sp-sign_basic2/00000.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-sign_basic2/00001.png b/tests_zemu/snapshots/sp-sign_basic2/00001.png deleted file mode 100644 index ee857c17..00000000 Binary files a/tests_zemu/snapshots/sp-sign_basic2/00001.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-sign_basic2/00002.png b/tests_zemu/snapshots/sp-sign_basic2/00002.png deleted file mode 100644 index e7c45dc8..00000000 Binary files a/tests_zemu/snapshots/sp-sign_basic2/00002.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-sign_basic2/00003.png b/tests_zemu/snapshots/sp-sign_basic2/00003.png deleted file mode 100644 index 17f84d47..00000000 Binary files a/tests_zemu/snapshots/sp-sign_basic2/00003.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-sign_basic2/00004.png b/tests_zemu/snapshots/sp-sign_basic2/00004.png deleted file mode 100644 index 0e82ee25..00000000 Binary files a/tests_zemu/snapshots/sp-sign_basic2/00004.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-sign_basic2/00005.png b/tests_zemu/snapshots/sp-sign_basic2/00005.png deleted file mode 100644 index 480a738d..00000000 Binary files a/tests_zemu/snapshots/sp-sign_basic2/00005.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-sign_basic2/00007.png b/tests_zemu/snapshots/sp-sign_basic2/00007.png deleted file mode 100644 index 430a37e8..00000000 Binary files a/tests_zemu/snapshots/sp-sign_basic2/00007.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-sign_basic_eth/00000.png b/tests_zemu/snapshots/sp-sign_basic_eth/00000.png deleted file mode 100644 index 50c23a06..00000000 Binary files a/tests_zemu/snapshots/sp-sign_basic_eth/00000.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-sign_basic_eth/00001.png b/tests_zemu/snapshots/sp-sign_basic_eth/00001.png deleted file mode 100644 index a2bcacba..00000000 Binary files a/tests_zemu/snapshots/sp-sign_basic_eth/00001.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-sign_basic_eth/00002.png b/tests_zemu/snapshots/sp-sign_basic_eth/00002.png deleted file mode 100644 index 45403abc..00000000 Binary files a/tests_zemu/snapshots/sp-sign_basic_eth/00002.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-sign_basic_eth/00003.png b/tests_zemu/snapshots/sp-sign_basic_eth/00003.png deleted file mode 100644 index 7da06771..00000000 Binary files a/tests_zemu/snapshots/sp-sign_basic_eth/00003.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-sign_basic_eth/00004.png b/tests_zemu/snapshots/sp-sign_basic_eth/00004.png deleted file mode 100644 index 0f9cfb13..00000000 Binary files a/tests_zemu/snapshots/sp-sign_basic_eth/00004.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-sign_basic_eth/00005.png b/tests_zemu/snapshots/sp-sign_basic_eth/00005.png deleted file mode 100644 index d5c15863..00000000 Binary files a/tests_zemu/snapshots/sp-sign_basic_eth/00005.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-sign_basic_eth/00006.png b/tests_zemu/snapshots/sp-sign_basic_eth/00006.png deleted file mode 100644 index b47dabb4..00000000 Binary files a/tests_zemu/snapshots/sp-sign_basic_eth/00006.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-sign_basic_eth/00007.png b/tests_zemu/snapshots/sp-sign_basic_eth/00007.png deleted file mode 100644 index d5c15863..00000000 Binary files a/tests_zemu/snapshots/sp-sign_basic_eth/00007.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-sign_basic_eth/00008.png b/tests_zemu/snapshots/sp-sign_basic_eth/00008.png deleted file mode 100644 index 4e0f2906..00000000 Binary files a/tests_zemu/snapshots/sp-sign_basic_eth/00008.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-sign_basic_eth/00009.png b/tests_zemu/snapshots/sp-sign_basic_eth/00009.png deleted file mode 100644 index be5df525..00000000 Binary files a/tests_zemu/snapshots/sp-sign_basic_eth/00009.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-sign_basic_eth/00010.png b/tests_zemu/snapshots/sp-sign_basic_eth/00010.png deleted file mode 100644 index 62eac008..00000000 Binary files a/tests_zemu/snapshots/sp-sign_basic_eth/00010.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-sign_basic_eth/00011.png b/tests_zemu/snapshots/sp-sign_basic_eth/00011.png deleted file mode 100644 index 1e4be699..00000000 Binary files a/tests_zemu/snapshots/sp-sign_basic_eth/00011.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-sign_basic_eth/00012.png b/tests_zemu/snapshots/sp-sign_basic_eth/00012.png deleted file mode 100644 index 430a37e8..00000000 Binary files a/tests_zemu/snapshots/sp-sign_basic_eth/00012.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-sign_basic_eth_warning/00000.png b/tests_zemu/snapshots/sp-sign_basic_eth_warning/00000.png deleted file mode 100644 index 53e74dc2..00000000 Binary files a/tests_zemu/snapshots/sp-sign_basic_eth_warning/00000.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-sign_basic_eth_warning/00001.png b/tests_zemu/snapshots/sp-sign_basic_eth_warning/00001.png deleted file mode 100644 index 1a4653e1..00000000 Binary files a/tests_zemu/snapshots/sp-sign_basic_eth_warning/00001.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-sign_basic_eth_warning/00002.png b/tests_zemu/snapshots/sp-sign_basic_eth_warning/00002.png deleted file mode 100644 index 430a37e8..00000000 Binary files a/tests_zemu/snapshots/sp-sign_basic_eth_warning/00002.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-sign_basic_extra_fields/00000.png b/tests_zemu/snapshots/sp-sign_basic_extra_fields/00000.png deleted file mode 100644 index 50c23a06..00000000 Binary files a/tests_zemu/snapshots/sp-sign_basic_extra_fields/00000.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-sign_basic_extra_fields/00001.png b/tests_zemu/snapshots/sp-sign_basic_extra_fields/00001.png deleted file mode 100644 index 0f9cfb13..00000000 Binary files a/tests_zemu/snapshots/sp-sign_basic_extra_fields/00001.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-sign_basic_extra_fields/00002.png b/tests_zemu/snapshots/sp-sign_basic_extra_fields/00002.png deleted file mode 100644 index d5c15863..00000000 Binary files a/tests_zemu/snapshots/sp-sign_basic_extra_fields/00002.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-sign_basic_extra_fields/00003.png b/tests_zemu/snapshots/sp-sign_basic_extra_fields/00003.png deleted file mode 100644 index b47dabb4..00000000 Binary files a/tests_zemu/snapshots/sp-sign_basic_extra_fields/00003.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-sign_basic_extra_fields/00004.png b/tests_zemu/snapshots/sp-sign_basic_extra_fields/00004.png deleted file mode 100644 index 4e0f2906..00000000 Binary files a/tests_zemu/snapshots/sp-sign_basic_extra_fields/00004.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-sign_basic_extra_fields/00005.png b/tests_zemu/snapshots/sp-sign_basic_extra_fields/00005.png deleted file mode 100644 index a51f4624..00000000 Binary files a/tests_zemu/snapshots/sp-sign_basic_extra_fields/00005.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-sign_basic_extra_fields/00007.png b/tests_zemu/snapshots/sp-sign_basic_extra_fields/00007.png deleted file mode 100644 index 430a37e8..00000000 Binary files a/tests_zemu/snapshots/sp-sign_basic_extra_fields/00007.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-sign_msgDeposit/00000.png b/tests_zemu/snapshots/sp-sign_msgDeposit/00000.png new file mode 100644 index 00000000..07b7c037 Binary files /dev/null and b/tests_zemu/snapshots/sp-sign_msgDeposit/00000.png differ diff --git a/tests_zemu/snapshots/sp-govDeposit/00004.png b/tests_zemu/snapshots/sp-sign_msgDeposit/00001.png similarity index 100% rename from tests_zemu/snapshots/sp-govDeposit/00004.png rename to tests_zemu/snapshots/sp-sign_msgDeposit/00001.png diff --git a/tests_zemu/snapshots/sp-sign_msgDeposit/00002.png b/tests_zemu/snapshots/sp-sign_msgDeposit/00002.png new file mode 100644 index 00000000..3b0813cc Binary files /dev/null and b/tests_zemu/snapshots/sp-sign_msgDeposit/00002.png differ diff --git a/tests_zemu/snapshots/sp-sign_msgDeposit/00003.png b/tests_zemu/snapshots/sp-sign_msgDeposit/00003.png new file mode 100644 index 00000000..3a272aad Binary files /dev/null and b/tests_zemu/snapshots/sp-sign_msgDeposit/00003.png differ diff --git a/tests_zemu/snapshots/sp-sign_msgDeposit/00004.png b/tests_zemu/snapshots/sp-sign_msgDeposit/00004.png new file mode 100644 index 00000000..88d37332 Binary files /dev/null and b/tests_zemu/snapshots/sp-sign_msgDeposit/00004.png differ diff --git a/tests_zemu/snapshots/sp-sign_msgDeposit/00005.png b/tests_zemu/snapshots/sp-sign_msgDeposit/00005.png new file mode 100644 index 00000000..a7124526 Binary files /dev/null and b/tests_zemu/snapshots/sp-sign_msgDeposit/00005.png differ diff --git a/tests_zemu/snapshots/sp-sign_basic/00006.png b/tests_zemu/snapshots/sp-sign_msgDeposit/00006.png similarity index 100% rename from tests_zemu/snapshots/sp-sign_basic/00006.png rename to tests_zemu/snapshots/sp-sign_msgDeposit/00006.png diff --git a/tests_zemu/snapshots/sp-sign_msgDeposit/00007.png b/tests_zemu/snapshots/sp-sign_msgDeposit/00007.png new file mode 100644 index 00000000..1d4449e7 Binary files /dev/null and b/tests_zemu/snapshots/sp-sign_msgDeposit/00007.png differ diff --git a/tests_zemu/snapshots/sp-sign_msgSend/00000.png b/tests_zemu/snapshots/sp-sign_msgSend/00000.png new file mode 100644 index 00000000..07b7c037 Binary files /dev/null and b/tests_zemu/snapshots/sp-sign_msgSend/00000.png differ diff --git a/tests_zemu/snapshots/sp-sign_msgSend/00001.png b/tests_zemu/snapshots/sp-sign_msgSend/00001.png new file mode 100644 index 00000000..5e79e908 Binary files /dev/null and b/tests_zemu/snapshots/sp-sign_msgSend/00001.png differ diff --git a/tests_zemu/snapshots/sp-sign_msgSend/00002.png b/tests_zemu/snapshots/sp-sign_msgSend/00002.png new file mode 100644 index 00000000..145d0f0a Binary files /dev/null and b/tests_zemu/snapshots/sp-sign_msgSend/00002.png differ diff --git a/tests_zemu/snapshots/sp-sign_msgSend/00003.png b/tests_zemu/snapshots/sp-sign_msgSend/00003.png new file mode 100644 index 00000000..dbca8c33 Binary files /dev/null and b/tests_zemu/snapshots/sp-sign_msgSend/00003.png differ diff --git a/tests_zemu/snapshots/sp-sign_msgSend/00004.png b/tests_zemu/snapshots/sp-sign_msgSend/00004.png new file mode 100644 index 00000000..291df6b0 Binary files /dev/null and b/tests_zemu/snapshots/sp-sign_msgSend/00004.png differ diff --git a/tests_zemu/snapshots/sp-sign_msgSend/00005.png b/tests_zemu/snapshots/sp-sign_msgSend/00005.png new file mode 100644 index 00000000..223eca6c Binary files /dev/null and b/tests_zemu/snapshots/sp-sign_msgSend/00005.png differ diff --git a/tests_zemu/snapshots/sp-sign_basic2/00006.png b/tests_zemu/snapshots/sp-sign_msgSend/00006.png similarity index 100% rename from tests_zemu/snapshots/sp-sign_basic2/00006.png rename to tests_zemu/snapshots/sp-sign_msgSend/00006.png diff --git a/tests_zemu/snapshots/sp-sign_msgSend/00007.png b/tests_zemu/snapshots/sp-sign_msgSend/00007.png new file mode 100644 index 00000000..1d4449e7 Binary files /dev/null and b/tests_zemu/snapshots/sp-sign_msgSend/00007.png differ diff --git a/tests_zemu/snapshots/sp-textual-sign_basic/00000.png b/tests_zemu/snapshots/sp-textual-sign_basic/00000.png deleted file mode 100644 index 50c23a06..00000000 Binary files a/tests_zemu/snapshots/sp-textual-sign_basic/00000.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-textual-sign_basic/00001.png b/tests_zemu/snapshots/sp-textual-sign_basic/00001.png deleted file mode 100644 index 34c29484..00000000 Binary files a/tests_zemu/snapshots/sp-textual-sign_basic/00001.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-textual-sign_basic/00002.png b/tests_zemu/snapshots/sp-textual-sign_basic/00002.png deleted file mode 100644 index 4b37d348..00000000 Binary files a/tests_zemu/snapshots/sp-textual-sign_basic/00002.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-textual-sign_basic/00003.png b/tests_zemu/snapshots/sp-textual-sign_basic/00003.png deleted file mode 100644 index 84bc70f9..00000000 Binary files a/tests_zemu/snapshots/sp-textual-sign_basic/00003.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-textual-sign_basic/00004.png b/tests_zemu/snapshots/sp-textual-sign_basic/00004.png deleted file mode 100644 index 966622a8..00000000 Binary files a/tests_zemu/snapshots/sp-textual-sign_basic/00004.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-textual-sign_basic/00005.png b/tests_zemu/snapshots/sp-textual-sign_basic/00005.png deleted file mode 100644 index ea6458ea..00000000 Binary files a/tests_zemu/snapshots/sp-textual-sign_basic/00005.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-textual-sign_basic/00006.png b/tests_zemu/snapshots/sp-textual-sign_basic/00006.png deleted file mode 100644 index 9236c111..00000000 Binary files a/tests_zemu/snapshots/sp-textual-sign_basic/00006.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-textual-sign_basic/00007.png b/tests_zemu/snapshots/sp-textual-sign_basic/00007.png deleted file mode 100644 index 4922d8db..00000000 Binary files a/tests_zemu/snapshots/sp-textual-sign_basic/00007.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-textual-sign_basic/00008.png b/tests_zemu/snapshots/sp-textual-sign_basic/00008.png deleted file mode 100644 index b7dffacb..00000000 Binary files a/tests_zemu/snapshots/sp-textual-sign_basic/00008.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-textual-sign_basic/00009.png b/tests_zemu/snapshots/sp-textual-sign_basic/00009.png deleted file mode 100644 index bb32e1a1..00000000 Binary files a/tests_zemu/snapshots/sp-textual-sign_basic/00009.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-textual-sign_basic/00010.png b/tests_zemu/snapshots/sp-textual-sign_basic/00010.png deleted file mode 100644 index 0d60b42f..00000000 Binary files a/tests_zemu/snapshots/sp-textual-sign_basic/00010.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-textual-sign_basic/00011.png b/tests_zemu/snapshots/sp-textual-sign_basic/00011.png deleted file mode 100644 index 66bca893..00000000 Binary files a/tests_zemu/snapshots/sp-textual-sign_basic/00011.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-textual-sign_basic/00012.png b/tests_zemu/snapshots/sp-textual-sign_basic/00012.png deleted file mode 100644 index ece93bda..00000000 Binary files a/tests_zemu/snapshots/sp-textual-sign_basic/00012.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-textual-sign_basic/00013.png b/tests_zemu/snapshots/sp-textual-sign_basic/00013.png deleted file mode 100644 index 1e4be699..00000000 Binary files a/tests_zemu/snapshots/sp-textual-sign_basic/00013.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-textual-sign_basic/00014.png b/tests_zemu/snapshots/sp-textual-sign_basic/00014.png deleted file mode 100644 index 430a37e8..00000000 Binary files a/tests_zemu/snapshots/sp-textual-sign_basic/00014.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-textual-sign_basic_eth/00000.png b/tests_zemu/snapshots/sp-textual-sign_basic_eth/00000.png deleted file mode 100644 index 50c23a06..00000000 Binary files a/tests_zemu/snapshots/sp-textual-sign_basic_eth/00000.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-textual-sign_basic_eth/00001.png b/tests_zemu/snapshots/sp-textual-sign_basic_eth/00001.png deleted file mode 100644 index 34c29484..00000000 Binary files a/tests_zemu/snapshots/sp-textual-sign_basic_eth/00001.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-textual-sign_basic_eth/00002.png b/tests_zemu/snapshots/sp-textual-sign_basic_eth/00002.png deleted file mode 100644 index 4b37d348..00000000 Binary files a/tests_zemu/snapshots/sp-textual-sign_basic_eth/00002.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-textual-sign_basic_eth/00003.png b/tests_zemu/snapshots/sp-textual-sign_basic_eth/00003.png deleted file mode 100644 index 84bc70f9..00000000 Binary files a/tests_zemu/snapshots/sp-textual-sign_basic_eth/00003.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-textual-sign_basic_eth/00004.png b/tests_zemu/snapshots/sp-textual-sign_basic_eth/00004.png deleted file mode 100644 index 9eb885b4..00000000 Binary files a/tests_zemu/snapshots/sp-textual-sign_basic_eth/00004.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-textual-sign_basic_eth/00005.png b/tests_zemu/snapshots/sp-textual-sign_basic_eth/00005.png deleted file mode 100644 index bdfcf1a0..00000000 Binary files a/tests_zemu/snapshots/sp-textual-sign_basic_eth/00005.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-textual-sign_basic_eth/00006.png b/tests_zemu/snapshots/sp-textual-sign_basic_eth/00006.png deleted file mode 100644 index 41277be7..00000000 Binary files a/tests_zemu/snapshots/sp-textual-sign_basic_eth/00006.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-textual-sign_basic_eth/00007.png b/tests_zemu/snapshots/sp-textual-sign_basic_eth/00007.png deleted file mode 100644 index 58e46d54..00000000 Binary files a/tests_zemu/snapshots/sp-textual-sign_basic_eth/00007.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-textual-sign_basic_eth/00008.png b/tests_zemu/snapshots/sp-textual-sign_basic_eth/00008.png deleted file mode 100644 index 2e818453..00000000 Binary files a/tests_zemu/snapshots/sp-textual-sign_basic_eth/00008.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-textual-sign_basic_eth/00009.png b/tests_zemu/snapshots/sp-textual-sign_basic_eth/00009.png deleted file mode 100644 index 966622a8..00000000 Binary files a/tests_zemu/snapshots/sp-textual-sign_basic_eth/00009.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-textual-sign_basic_eth/00010.png b/tests_zemu/snapshots/sp-textual-sign_basic_eth/00010.png deleted file mode 100644 index ea6458ea..00000000 Binary files a/tests_zemu/snapshots/sp-textual-sign_basic_eth/00010.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-textual-sign_basic_eth/00011.png b/tests_zemu/snapshots/sp-textual-sign_basic_eth/00011.png deleted file mode 100644 index 9236c111..00000000 Binary files a/tests_zemu/snapshots/sp-textual-sign_basic_eth/00011.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-textual-sign_basic_eth/00012.png b/tests_zemu/snapshots/sp-textual-sign_basic_eth/00012.png deleted file mode 100644 index 4922d8db..00000000 Binary files a/tests_zemu/snapshots/sp-textual-sign_basic_eth/00012.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-textual-sign_basic_eth/00013.png b/tests_zemu/snapshots/sp-textual-sign_basic_eth/00013.png deleted file mode 100644 index b7dffacb..00000000 Binary files a/tests_zemu/snapshots/sp-textual-sign_basic_eth/00013.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-textual-sign_basic_eth/00014.png b/tests_zemu/snapshots/sp-textual-sign_basic_eth/00014.png deleted file mode 100644 index bb32e1a1..00000000 Binary files a/tests_zemu/snapshots/sp-textual-sign_basic_eth/00014.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-textual-sign_basic_eth/00015.png b/tests_zemu/snapshots/sp-textual-sign_basic_eth/00015.png deleted file mode 100644 index 0d60b42f..00000000 Binary files a/tests_zemu/snapshots/sp-textual-sign_basic_eth/00015.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-textual-sign_basic_eth/00016.png b/tests_zemu/snapshots/sp-textual-sign_basic_eth/00016.png deleted file mode 100644 index 66bca893..00000000 Binary files a/tests_zemu/snapshots/sp-textual-sign_basic_eth/00016.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-textual-sign_basic_eth/00017.png b/tests_zemu/snapshots/sp-textual-sign_basic_eth/00017.png deleted file mode 100644 index ece93bda..00000000 Binary files a/tests_zemu/snapshots/sp-textual-sign_basic_eth/00017.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-textual-sign_basic_eth/00018.png b/tests_zemu/snapshots/sp-textual-sign_basic_eth/00018.png deleted file mode 100644 index 46f31cef..00000000 Binary files a/tests_zemu/snapshots/sp-textual-sign_basic_eth/00018.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-textual-sign_basic_eth/00019.png b/tests_zemu/snapshots/sp-textual-sign_basic_eth/00019.png deleted file mode 100644 index dacd2afc..00000000 Binary files a/tests_zemu/snapshots/sp-textual-sign_basic_eth/00019.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-textual-sign_basic_eth/00020.png b/tests_zemu/snapshots/sp-textual-sign_basic_eth/00020.png deleted file mode 100644 index a8292f84..00000000 Binary files a/tests_zemu/snapshots/sp-textual-sign_basic_eth/00020.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-textual-sign_basic_eth/00021.png b/tests_zemu/snapshots/sp-textual-sign_basic_eth/00021.png deleted file mode 100644 index 1e4be699..00000000 Binary files a/tests_zemu/snapshots/sp-textual-sign_basic_eth/00021.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-textual-sign_basic_eth/00022.png b/tests_zemu/snapshots/sp-textual-sign_basic_eth/00022.png deleted file mode 100644 index 430a37e8..00000000 Binary files a/tests_zemu/snapshots/sp-textual-sign_basic_eth/00022.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-textual-sign_basic_eth_warning/00000.png b/tests_zemu/snapshots/sp-textual-sign_basic_eth_warning/00000.png deleted file mode 100644 index 53e74dc2..00000000 Binary files a/tests_zemu/snapshots/sp-textual-sign_basic_eth_warning/00000.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-textual-sign_basic_eth_warning/00001.png b/tests_zemu/snapshots/sp-textual-sign_basic_eth_warning/00001.png deleted file mode 100644 index 1a4653e1..00000000 Binary files a/tests_zemu/snapshots/sp-textual-sign_basic_eth_warning/00001.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-textual-sign_basic_eth_warning/00002.png b/tests_zemu/snapshots/sp-textual-sign_basic_eth_warning/00002.png deleted file mode 100644 index 430a37e8..00000000 Binary files a/tests_zemu/snapshots/sp-textual-sign_basic_eth_warning/00002.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-textual-sign_basic_expert/00000.png b/tests_zemu/snapshots/sp-textual-sign_basic_expert/00000.png deleted file mode 100644 index 50c23a06..00000000 Binary files a/tests_zemu/snapshots/sp-textual-sign_basic_expert/00000.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-textual-sign_basic_expert/00001.png b/tests_zemu/snapshots/sp-textual-sign_basic_expert/00001.png deleted file mode 100644 index 34c29484..00000000 Binary files a/tests_zemu/snapshots/sp-textual-sign_basic_expert/00001.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-textual-sign_basic_expert/00002.png b/tests_zemu/snapshots/sp-textual-sign_basic_expert/00002.png deleted file mode 100644 index 4b37d348..00000000 Binary files a/tests_zemu/snapshots/sp-textual-sign_basic_expert/00002.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-textual-sign_basic_expert/00003.png b/tests_zemu/snapshots/sp-textual-sign_basic_expert/00003.png deleted file mode 100644 index 84bc70f9..00000000 Binary files a/tests_zemu/snapshots/sp-textual-sign_basic_expert/00003.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-textual-sign_basic_expert/00004.png b/tests_zemu/snapshots/sp-textual-sign_basic_expert/00004.png deleted file mode 100644 index 9eb885b4..00000000 Binary files a/tests_zemu/snapshots/sp-textual-sign_basic_expert/00004.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-textual-sign_basic_expert/00005.png b/tests_zemu/snapshots/sp-textual-sign_basic_expert/00005.png deleted file mode 100644 index bdfcf1a0..00000000 Binary files a/tests_zemu/snapshots/sp-textual-sign_basic_expert/00005.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-textual-sign_basic_expert/00006.png b/tests_zemu/snapshots/sp-textual-sign_basic_expert/00006.png deleted file mode 100644 index 41277be7..00000000 Binary files a/tests_zemu/snapshots/sp-textual-sign_basic_expert/00006.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-textual-sign_basic_expert/00007.png b/tests_zemu/snapshots/sp-textual-sign_basic_expert/00007.png deleted file mode 100644 index 58e46d54..00000000 Binary files a/tests_zemu/snapshots/sp-textual-sign_basic_expert/00007.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-textual-sign_basic_expert/00008.png b/tests_zemu/snapshots/sp-textual-sign_basic_expert/00008.png deleted file mode 100644 index 2e818453..00000000 Binary files a/tests_zemu/snapshots/sp-textual-sign_basic_expert/00008.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-textual-sign_basic_expert/00009.png b/tests_zemu/snapshots/sp-textual-sign_basic_expert/00009.png deleted file mode 100644 index 966622a8..00000000 Binary files a/tests_zemu/snapshots/sp-textual-sign_basic_expert/00009.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-textual-sign_basic_expert/00010.png b/tests_zemu/snapshots/sp-textual-sign_basic_expert/00010.png deleted file mode 100644 index ea6458ea..00000000 Binary files a/tests_zemu/snapshots/sp-textual-sign_basic_expert/00010.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-textual-sign_basic_expert/00011.png b/tests_zemu/snapshots/sp-textual-sign_basic_expert/00011.png deleted file mode 100644 index 9236c111..00000000 Binary files a/tests_zemu/snapshots/sp-textual-sign_basic_expert/00011.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-textual-sign_basic_expert/00012.png b/tests_zemu/snapshots/sp-textual-sign_basic_expert/00012.png deleted file mode 100644 index 4922d8db..00000000 Binary files a/tests_zemu/snapshots/sp-textual-sign_basic_expert/00012.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-textual-sign_basic_expert/00013.png b/tests_zemu/snapshots/sp-textual-sign_basic_expert/00013.png deleted file mode 100644 index b7dffacb..00000000 Binary files a/tests_zemu/snapshots/sp-textual-sign_basic_expert/00013.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-textual-sign_basic_expert/00014.png b/tests_zemu/snapshots/sp-textual-sign_basic_expert/00014.png deleted file mode 100644 index bb32e1a1..00000000 Binary files a/tests_zemu/snapshots/sp-textual-sign_basic_expert/00014.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-textual-sign_basic_expert/00015.png b/tests_zemu/snapshots/sp-textual-sign_basic_expert/00015.png deleted file mode 100644 index 0d60b42f..00000000 Binary files a/tests_zemu/snapshots/sp-textual-sign_basic_expert/00015.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-textual-sign_basic_expert/00016.png b/tests_zemu/snapshots/sp-textual-sign_basic_expert/00016.png deleted file mode 100644 index 66bca893..00000000 Binary files a/tests_zemu/snapshots/sp-textual-sign_basic_expert/00016.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-textual-sign_basic_expert/00017.png b/tests_zemu/snapshots/sp-textual-sign_basic_expert/00017.png deleted file mode 100644 index ece93bda..00000000 Binary files a/tests_zemu/snapshots/sp-textual-sign_basic_expert/00017.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-textual-sign_basic_expert/00018.png b/tests_zemu/snapshots/sp-textual-sign_basic_expert/00018.png deleted file mode 100644 index 46f31cef..00000000 Binary files a/tests_zemu/snapshots/sp-textual-sign_basic_expert/00018.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-textual-sign_basic_expert/00019.png b/tests_zemu/snapshots/sp-textual-sign_basic_expert/00019.png deleted file mode 100644 index dacd2afc..00000000 Binary files a/tests_zemu/snapshots/sp-textual-sign_basic_expert/00019.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-textual-sign_basic_expert/00020.png b/tests_zemu/snapshots/sp-textual-sign_basic_expert/00020.png deleted file mode 100644 index a8292f84..00000000 Binary files a/tests_zemu/snapshots/sp-textual-sign_basic_expert/00020.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-textual-sign_basic_expert/00021.png b/tests_zemu/snapshots/sp-textual-sign_basic_expert/00021.png deleted file mode 100644 index 1e4be699..00000000 Binary files a/tests_zemu/snapshots/sp-textual-sign_basic_expert/00021.png and /dev/null differ diff --git a/tests_zemu/snapshots/sp-textual-sign_basic_expert/00022.png b/tests_zemu/snapshots/sp-textual-sign_basic_expert/00022.png deleted file mode 100644 index 430a37e8..00000000 Binary files a/tests_zemu/snapshots/sp-textual-sign_basic_expert/00022.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-govDeposit/00001.png b/tests_zemu/snapshots/st-govDeposit/00001.png deleted file mode 100644 index 2a5ad8a8..00000000 Binary files a/tests_zemu/snapshots/st-govDeposit/00001.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-govDeposit/00002.png b/tests_zemu/snapshots/st-govDeposit/00002.png deleted file mode 100644 index 524b0425..00000000 Binary files a/tests_zemu/snapshots/st-govDeposit/00002.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-govDeposit/00003.png b/tests_zemu/snapshots/st-govDeposit/00003.png deleted file mode 100644 index 9bfecf27..00000000 Binary files a/tests_zemu/snapshots/st-govDeposit/00003.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-govDeposit/00004.png b/tests_zemu/snapshots/st-govDeposit/00004.png deleted file mode 100644 index 7da083e4..00000000 Binary files a/tests_zemu/snapshots/st-govDeposit/00004.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-govDeposit/00005.png b/tests_zemu/snapshots/st-govDeposit/00005.png deleted file mode 100644 index ba2e8a92..00000000 Binary files a/tests_zemu/snapshots/st-govDeposit/00005.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-ibc_denoms/00001.png b/tests_zemu/snapshots/st-ibc_denoms/00001.png deleted file mode 100644 index ff5a113d..00000000 Binary files a/tests_zemu/snapshots/st-ibc_denoms/00001.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-ibc_denoms/00002.png b/tests_zemu/snapshots/st-ibc_denoms/00002.png deleted file mode 100644 index 493649b3..00000000 Binary files a/tests_zemu/snapshots/st-ibc_denoms/00002.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-ibc_denoms/00003.png b/tests_zemu/snapshots/st-ibc_denoms/00003.png deleted file mode 100644 index 49d196c0..00000000 Binary files a/tests_zemu/snapshots/st-ibc_denoms/00003.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-ibc_denoms/00004.png b/tests_zemu/snapshots/st-ibc_denoms/00004.png deleted file mode 100644 index 7da083e4..00000000 Binary files a/tests_zemu/snapshots/st-ibc_denoms/00004.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-ibc_denoms/00005.png b/tests_zemu/snapshots/st-ibc_denoms/00005.png deleted file mode 100644 index ba2e8a92..00000000 Binary files a/tests_zemu/snapshots/st-ibc_denoms/00005.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-mainmenu/00000.png b/tests_zemu/snapshots/st-mainmenu/00000.png deleted file mode 100644 index ba2e8a92..00000000 Binary files a/tests_zemu/snapshots/st-mainmenu/00000.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-mainmenu/00001.png b/tests_zemu/snapshots/st-mainmenu/00001.png deleted file mode 100644 index 47b645c3..00000000 Binary files a/tests_zemu/snapshots/st-mainmenu/00001.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-mainmenu/00002.png b/tests_zemu/snapshots/st-mainmenu/00002.png deleted file mode 100644 index 8dd2cdc2..00000000 Binary files a/tests_zemu/snapshots/st-mainmenu/00002.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-mainmenu/00003.png b/tests_zemu/snapshots/st-mainmenu/00003.png deleted file mode 100644 index f1012e76..00000000 Binary files a/tests_zemu/snapshots/st-mainmenu/00003.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-mainmenu/00004.png b/tests_zemu/snapshots/st-mainmenu/00004.png deleted file mode 100644 index 8dd2cdc2..00000000 Binary files a/tests_zemu/snapshots/st-mainmenu/00004.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-mainmenu/00005.png b/tests_zemu/snapshots/st-mainmenu/00005.png deleted file mode 100644 index ba2e8a92..00000000 Binary files a/tests_zemu/snapshots/st-mainmenu/00005.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-msgMultiSend/00000.png b/tests_zemu/snapshots/st-msgMultiSend/00000.png deleted file mode 100644 index c1874b1e..00000000 Binary files a/tests_zemu/snapshots/st-msgMultiSend/00000.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-msgMultiSend/00001.png b/tests_zemu/snapshots/st-msgMultiSend/00001.png deleted file mode 100644 index ea564414..00000000 Binary files a/tests_zemu/snapshots/st-msgMultiSend/00001.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-msgMultiSend/00002.png b/tests_zemu/snapshots/st-msgMultiSend/00002.png deleted file mode 100644 index 5f7e2fdd..00000000 Binary files a/tests_zemu/snapshots/st-msgMultiSend/00002.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-msgMultiSend/00003.png b/tests_zemu/snapshots/st-msgMultiSend/00003.png deleted file mode 100644 index 4e7f82c1..00000000 Binary files a/tests_zemu/snapshots/st-msgMultiSend/00003.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-msgMultiSend/00004.png b/tests_zemu/snapshots/st-msgMultiSend/00004.png deleted file mode 100644 index 5b392f6e..00000000 Binary files a/tests_zemu/snapshots/st-msgMultiSend/00004.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-msgMultiSend/00005.png b/tests_zemu/snapshots/st-msgMultiSend/00005.png deleted file mode 100644 index ec8695b4..00000000 Binary files a/tests_zemu/snapshots/st-msgMultiSend/00005.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-msgMultiSend/00006.png b/tests_zemu/snapshots/st-msgMultiSend/00006.png deleted file mode 100644 index 5cc4bafc..00000000 Binary files a/tests_zemu/snapshots/st-msgMultiSend/00006.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-msgMultiSend/00007.png b/tests_zemu/snapshots/st-msgMultiSend/00007.png deleted file mode 100644 index f618d705..00000000 Binary files a/tests_zemu/snapshots/st-msgMultiSend/00007.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-msgMultiSend/00008.png b/tests_zemu/snapshots/st-msgMultiSend/00008.png deleted file mode 100644 index ba2e8a92..00000000 Binary files a/tests_zemu/snapshots/st-msgMultiSend/00008.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-setWithdrawAddress-eth/00000.png b/tests_zemu/snapshots/st-setWithdrawAddress-eth/00000.png deleted file mode 100644 index c1874b1e..00000000 Binary files a/tests_zemu/snapshots/st-setWithdrawAddress-eth/00000.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-setWithdrawAddress-eth/00001.png b/tests_zemu/snapshots/st-setWithdrawAddress-eth/00001.png deleted file mode 100644 index 66ffedaf..00000000 Binary files a/tests_zemu/snapshots/st-setWithdrawAddress-eth/00001.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-setWithdrawAddress-eth/00002.png b/tests_zemu/snapshots/st-setWithdrawAddress-eth/00002.png deleted file mode 100644 index 3d7f5c46..00000000 Binary files a/tests_zemu/snapshots/st-setWithdrawAddress-eth/00002.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-setWithdrawAddress-eth/00003.png b/tests_zemu/snapshots/st-setWithdrawAddress-eth/00003.png deleted file mode 100644 index 265f2286..00000000 Binary files a/tests_zemu/snapshots/st-setWithdrawAddress-eth/00003.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-setWithdrawAddress-eth/00004.png b/tests_zemu/snapshots/st-setWithdrawAddress-eth/00004.png deleted file mode 100644 index 80170bf5..00000000 Binary files a/tests_zemu/snapshots/st-setWithdrawAddress-eth/00004.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-setWithdrawAddress-eth/00005.png b/tests_zemu/snapshots/st-setWithdrawAddress-eth/00005.png deleted file mode 100644 index fe642927..00000000 Binary files a/tests_zemu/snapshots/st-setWithdrawAddress-eth/00005.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-setWithdrawAddress-eth/00006.png b/tests_zemu/snapshots/st-setWithdrawAddress-eth/00006.png deleted file mode 100644 index ba2e8a92..00000000 Binary files a/tests_zemu/snapshots/st-setWithdrawAddress-eth/00006.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-setWithdrawAddress/00000.png b/tests_zemu/snapshots/st-setWithdrawAddress/00000.png deleted file mode 100644 index c1874b1e..00000000 Binary files a/tests_zemu/snapshots/st-setWithdrawAddress/00000.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-setWithdrawAddress/00001.png b/tests_zemu/snapshots/st-setWithdrawAddress/00001.png deleted file mode 100644 index 66ffedaf..00000000 Binary files a/tests_zemu/snapshots/st-setWithdrawAddress/00001.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-setWithdrawAddress/00002.png b/tests_zemu/snapshots/st-setWithdrawAddress/00002.png deleted file mode 100644 index 3d7f5c46..00000000 Binary files a/tests_zemu/snapshots/st-setWithdrawAddress/00002.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-setWithdrawAddress/00003.png b/tests_zemu/snapshots/st-setWithdrawAddress/00003.png deleted file mode 100644 index 265f2286..00000000 Binary files a/tests_zemu/snapshots/st-setWithdrawAddress/00003.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-setWithdrawAddress/00004.png b/tests_zemu/snapshots/st-setWithdrawAddress/00004.png deleted file mode 100644 index 80170bf5..00000000 Binary files a/tests_zemu/snapshots/st-setWithdrawAddress/00004.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-setWithdrawAddress/00005.png b/tests_zemu/snapshots/st-setWithdrawAddress/00005.png deleted file mode 100644 index fe642927..00000000 Binary files a/tests_zemu/snapshots/st-setWithdrawAddress/00005.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-setWithdrawAddress/00006.png b/tests_zemu/snapshots/st-setWithdrawAddress/00006.png deleted file mode 100644 index ba2e8a92..00000000 Binary files a/tests_zemu/snapshots/st-setWithdrawAddress/00006.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-show_address/00000.png b/tests_zemu/snapshots/st-show_address/00000.png deleted file mode 100644 index c10c1fb7..00000000 Binary files a/tests_zemu/snapshots/st-show_address/00000.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-show_address/00001.png b/tests_zemu/snapshots/st-show_address/00001.png deleted file mode 100644 index 8b119985..00000000 Binary files a/tests_zemu/snapshots/st-show_address/00001.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-show_address/00002.png b/tests_zemu/snapshots/st-show_address/00002.png deleted file mode 100644 index ba2e8a92..00000000 Binary files a/tests_zemu/snapshots/st-show_address/00002.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-show_address_huge/00000.png b/tests_zemu/snapshots/st-show_address_huge/00000.png deleted file mode 100644 index c10c1fb7..00000000 Binary files a/tests_zemu/snapshots/st-show_address_huge/00000.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-show_address_huge/00001.png b/tests_zemu/snapshots/st-show_address_huge/00001.png deleted file mode 100644 index 02dfca11..00000000 Binary files a/tests_zemu/snapshots/st-show_address_huge/00001.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-show_address_huge/00002.png b/tests_zemu/snapshots/st-show_address_huge/00002.png deleted file mode 100644 index 38861a7f..00000000 Binary files a/tests_zemu/snapshots/st-show_address_huge/00002.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-show_address_huge/00003.png b/tests_zemu/snapshots/st-show_address_huge/00003.png deleted file mode 100644 index ba2e8a92..00000000 Binary files a/tests_zemu/snapshots/st-show_address_huge/00003.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-show_eth_address/00000.png b/tests_zemu/snapshots/st-show_eth_address/00000.png deleted file mode 100644 index c10c1fb7..00000000 Binary files a/tests_zemu/snapshots/st-show_eth_address/00000.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-show_eth_address/00001.png b/tests_zemu/snapshots/st-show_eth_address/00001.png deleted file mode 100644 index e0c21f9c..00000000 Binary files a/tests_zemu/snapshots/st-show_eth_address/00001.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-show_eth_address/00002.png b/tests_zemu/snapshots/st-show_eth_address/00002.png deleted file mode 100644 index b134010b..00000000 Binary files a/tests_zemu/snapshots/st-show_eth_address/00002.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-show_eth_address/00003.png b/tests_zemu/snapshots/st-show_eth_address/00003.png deleted file mode 100644 index ba2e8a92..00000000 Binary files a/tests_zemu/snapshots/st-show_eth_address/00003.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-sign_basic/00000.png b/tests_zemu/snapshots/st-sign_basic/00000.png deleted file mode 100644 index c1874b1e..00000000 Binary files a/tests_zemu/snapshots/st-sign_basic/00000.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-sign_basic/00001.png b/tests_zemu/snapshots/st-sign_basic/00001.png deleted file mode 100644 index e3f499c1..00000000 Binary files a/tests_zemu/snapshots/st-sign_basic/00001.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-sign_basic/00002.png b/tests_zemu/snapshots/st-sign_basic/00002.png deleted file mode 100644 index ed9f206f..00000000 Binary files a/tests_zemu/snapshots/st-sign_basic/00002.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-sign_basic/00003.png b/tests_zemu/snapshots/st-sign_basic/00003.png deleted file mode 100644 index c78dbcd7..00000000 Binary files a/tests_zemu/snapshots/st-sign_basic/00003.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-sign_basic/00004.png b/tests_zemu/snapshots/st-sign_basic/00004.png deleted file mode 100644 index 7da083e4..00000000 Binary files a/tests_zemu/snapshots/st-sign_basic/00004.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-sign_basic/00005.png b/tests_zemu/snapshots/st-sign_basic/00005.png deleted file mode 100644 index ba2e8a92..00000000 Binary files a/tests_zemu/snapshots/st-sign_basic/00005.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-sign_basic2/00000.png b/tests_zemu/snapshots/st-sign_basic2/00000.png deleted file mode 100644 index c1874b1e..00000000 Binary files a/tests_zemu/snapshots/st-sign_basic2/00000.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-sign_basic2/00001.png b/tests_zemu/snapshots/st-sign_basic2/00001.png deleted file mode 100644 index 2abb6f8d..00000000 Binary files a/tests_zemu/snapshots/st-sign_basic2/00001.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-sign_basic2/00002.png b/tests_zemu/snapshots/st-sign_basic2/00002.png deleted file mode 100644 index c229b26d..00000000 Binary files a/tests_zemu/snapshots/st-sign_basic2/00002.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-sign_basic2/00004.png b/tests_zemu/snapshots/st-sign_basic2/00004.png deleted file mode 100644 index ba2e8a92..00000000 Binary files a/tests_zemu/snapshots/st-sign_basic2/00004.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-sign_basic_eth/00000.png b/tests_zemu/snapshots/st-sign_basic_eth/00000.png deleted file mode 100644 index c1874b1e..00000000 Binary files a/tests_zemu/snapshots/st-sign_basic_eth/00000.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-sign_basic_eth/00001.png b/tests_zemu/snapshots/st-sign_basic_eth/00001.png deleted file mode 100644 index fc500d3a..00000000 Binary files a/tests_zemu/snapshots/st-sign_basic_eth/00001.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-sign_basic_eth/00002.png b/tests_zemu/snapshots/st-sign_basic_eth/00002.png deleted file mode 100644 index 24fbff89..00000000 Binary files a/tests_zemu/snapshots/st-sign_basic_eth/00002.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-sign_basic_eth/00003.png b/tests_zemu/snapshots/st-sign_basic_eth/00003.png deleted file mode 100644 index b57125f1..00000000 Binary files a/tests_zemu/snapshots/st-sign_basic_eth/00003.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-sign_basic_eth/00004.png b/tests_zemu/snapshots/st-sign_basic_eth/00004.png deleted file mode 100644 index a1bda4ee..00000000 Binary files a/tests_zemu/snapshots/st-sign_basic_eth/00004.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-sign_basic_eth/00005.png b/tests_zemu/snapshots/st-sign_basic_eth/00005.png deleted file mode 100644 index fe642927..00000000 Binary files a/tests_zemu/snapshots/st-sign_basic_eth/00005.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-sign_basic_eth/00006.png b/tests_zemu/snapshots/st-sign_basic_eth/00006.png deleted file mode 100644 index ba2e8a92..00000000 Binary files a/tests_zemu/snapshots/st-sign_basic_eth/00006.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-sign_basic_eth_warning/00000.png b/tests_zemu/snapshots/st-sign_basic_eth_warning/00000.png deleted file mode 100644 index ec85a9bb..00000000 Binary files a/tests_zemu/snapshots/st-sign_basic_eth_warning/00000.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-sign_basic_eth_warning/00001.png b/tests_zemu/snapshots/st-sign_basic_eth_warning/00001.png deleted file mode 100644 index ba2e8a92..00000000 Binary files a/tests_zemu/snapshots/st-sign_basic_eth_warning/00001.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-sign_basic_extra_fields/00000.png b/tests_zemu/snapshots/st-sign_basic_extra_fields/00000.png deleted file mode 100644 index c1874b1e..00000000 Binary files a/tests_zemu/snapshots/st-sign_basic_extra_fields/00000.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-sign_basic_extra_fields/00001.png b/tests_zemu/snapshots/st-sign_basic_extra_fields/00001.png deleted file mode 100644 index e3f499c1..00000000 Binary files a/tests_zemu/snapshots/st-sign_basic_extra_fields/00001.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-sign_basic_extra_fields/00002.png b/tests_zemu/snapshots/st-sign_basic_extra_fields/00002.png deleted file mode 100644 index ed9f206f..00000000 Binary files a/tests_zemu/snapshots/st-sign_basic_extra_fields/00002.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-sign_basic_extra_fields/00003.png b/tests_zemu/snapshots/st-sign_basic_extra_fields/00003.png deleted file mode 100644 index c78dbcd7..00000000 Binary files a/tests_zemu/snapshots/st-sign_basic_extra_fields/00003.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-sign_basic_extra_fields/00004.png b/tests_zemu/snapshots/st-sign_basic_extra_fields/00004.png deleted file mode 100644 index 7da083e4..00000000 Binary files a/tests_zemu/snapshots/st-sign_basic_extra_fields/00004.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-sign_basic_extra_fields/00005.png b/tests_zemu/snapshots/st-sign_basic_extra_fields/00005.png deleted file mode 100644 index ba2e8a92..00000000 Binary files a/tests_zemu/snapshots/st-sign_basic_extra_fields/00005.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-govDeposit/00000.png b/tests_zemu/snapshots/st-sign_msgDeposit/00000.png similarity index 100% rename from tests_zemu/snapshots/st-govDeposit/00000.png rename to tests_zemu/snapshots/st-sign_msgDeposit/00000.png diff --git a/tests_zemu/snapshots/st-sign_msgDeposit/00001.png b/tests_zemu/snapshots/st-sign_msgDeposit/00001.png new file mode 100644 index 00000000..56e83921 Binary files /dev/null and b/tests_zemu/snapshots/st-sign_msgDeposit/00001.png differ diff --git a/tests_zemu/snapshots/st-sign_msgDeposit/00002.png b/tests_zemu/snapshots/st-sign_msgDeposit/00002.png new file mode 100644 index 00000000..98cbd8be Binary files /dev/null and b/tests_zemu/snapshots/st-sign_msgDeposit/00002.png differ diff --git a/tests_zemu/snapshots/st-sign_basic2/00003.png b/tests_zemu/snapshots/st-sign_msgDeposit/00003.png similarity index 100% rename from tests_zemu/snapshots/st-sign_basic2/00003.png rename to tests_zemu/snapshots/st-sign_msgDeposit/00003.png diff --git a/tests_zemu/snapshots/st-sign_msgDeposit/00004.png b/tests_zemu/snapshots/st-sign_msgDeposit/00004.png new file mode 100644 index 00000000..a4630a5a Binary files /dev/null and b/tests_zemu/snapshots/st-sign_msgDeposit/00004.png differ diff --git a/tests_zemu/snapshots/st-ibc_denoms/00000.png b/tests_zemu/snapshots/st-sign_msgSend/00000.png similarity index 100% rename from tests_zemu/snapshots/st-ibc_denoms/00000.png rename to tests_zemu/snapshots/st-sign_msgSend/00000.png diff --git a/tests_zemu/snapshots/st-sign_msgSend/00001.png b/tests_zemu/snapshots/st-sign_msgSend/00001.png new file mode 100644 index 00000000..a7d15489 Binary files /dev/null and b/tests_zemu/snapshots/st-sign_msgSend/00001.png differ diff --git a/tests_zemu/snapshots/st-sign_msgSend/00002.png b/tests_zemu/snapshots/st-sign_msgSend/00002.png new file mode 100644 index 00000000..ae890fc3 Binary files /dev/null and b/tests_zemu/snapshots/st-sign_msgSend/00002.png differ diff --git a/tests_zemu/snapshots/st-textual-sign_basic_eth/00008.png b/tests_zemu/snapshots/st-sign_msgSend/00003.png similarity index 90% rename from tests_zemu/snapshots/st-textual-sign_basic_eth/00008.png rename to tests_zemu/snapshots/st-sign_msgSend/00003.png index bcafe5ca..f384cce6 100644 Binary files a/tests_zemu/snapshots/st-textual-sign_basic_eth/00008.png and b/tests_zemu/snapshots/st-sign_msgSend/00003.png differ diff --git a/tests_zemu/snapshots/st-sign_msgSend/00004.png b/tests_zemu/snapshots/st-sign_msgSend/00004.png new file mode 100644 index 00000000..a4630a5a Binary files /dev/null and b/tests_zemu/snapshots/st-sign_msgSend/00004.png differ diff --git a/tests_zemu/snapshots/st-textual-sign_basic/00000.png b/tests_zemu/snapshots/st-textual-sign_basic/00000.png deleted file mode 100644 index c1874b1e..00000000 Binary files a/tests_zemu/snapshots/st-textual-sign_basic/00000.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-textual-sign_basic/00001.png b/tests_zemu/snapshots/st-textual-sign_basic/00001.png deleted file mode 100644 index 60bd1e9b..00000000 Binary files a/tests_zemu/snapshots/st-textual-sign_basic/00001.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-textual-sign_basic/00002.png b/tests_zemu/snapshots/st-textual-sign_basic/00002.png deleted file mode 100644 index 7a6a5ac3..00000000 Binary files a/tests_zemu/snapshots/st-textual-sign_basic/00002.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-textual-sign_basic/00003.png b/tests_zemu/snapshots/st-textual-sign_basic/00003.png deleted file mode 100644 index a9c25d2b..00000000 Binary files a/tests_zemu/snapshots/st-textual-sign_basic/00003.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-textual-sign_basic/00004.png b/tests_zemu/snapshots/st-textual-sign_basic/00004.png deleted file mode 100644 index e54582a5..00000000 Binary files a/tests_zemu/snapshots/st-textual-sign_basic/00004.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-textual-sign_basic/00005.png b/tests_zemu/snapshots/st-textual-sign_basic/00005.png deleted file mode 100644 index fe642927..00000000 Binary files a/tests_zemu/snapshots/st-textual-sign_basic/00005.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-textual-sign_basic/00006.png b/tests_zemu/snapshots/st-textual-sign_basic/00006.png deleted file mode 100644 index ba2e8a92..00000000 Binary files a/tests_zemu/snapshots/st-textual-sign_basic/00006.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-textual-sign_basic_eth/00000.png b/tests_zemu/snapshots/st-textual-sign_basic_eth/00000.png deleted file mode 100644 index c1874b1e..00000000 Binary files a/tests_zemu/snapshots/st-textual-sign_basic_eth/00000.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-textual-sign_basic_eth/00001.png b/tests_zemu/snapshots/st-textual-sign_basic_eth/00001.png deleted file mode 100644 index a68d599f..00000000 Binary files a/tests_zemu/snapshots/st-textual-sign_basic_eth/00001.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-textual-sign_basic_eth/00002.png b/tests_zemu/snapshots/st-textual-sign_basic_eth/00002.png deleted file mode 100644 index 9aaa234b..00000000 Binary files a/tests_zemu/snapshots/st-textual-sign_basic_eth/00002.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-textual-sign_basic_eth/00003.png b/tests_zemu/snapshots/st-textual-sign_basic_eth/00003.png deleted file mode 100644 index 276bf01b..00000000 Binary files a/tests_zemu/snapshots/st-textual-sign_basic_eth/00003.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-textual-sign_basic_eth/00004.png b/tests_zemu/snapshots/st-textual-sign_basic_eth/00004.png deleted file mode 100644 index 62d2fbd5..00000000 Binary files a/tests_zemu/snapshots/st-textual-sign_basic_eth/00004.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-textual-sign_basic_eth/00005.png b/tests_zemu/snapshots/st-textual-sign_basic_eth/00005.png deleted file mode 100644 index c62a1df2..00000000 Binary files a/tests_zemu/snapshots/st-textual-sign_basic_eth/00005.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-textual-sign_basic_eth/00006.png b/tests_zemu/snapshots/st-textual-sign_basic_eth/00006.png deleted file mode 100644 index 6d397962..00000000 Binary files a/tests_zemu/snapshots/st-textual-sign_basic_eth/00006.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-textual-sign_basic_eth/00007.png b/tests_zemu/snapshots/st-textual-sign_basic_eth/00007.png deleted file mode 100644 index 0733415b..00000000 Binary files a/tests_zemu/snapshots/st-textual-sign_basic_eth/00007.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-textual-sign_basic_eth/00009.png b/tests_zemu/snapshots/st-textual-sign_basic_eth/00009.png deleted file mode 100644 index ba2e8a92..00000000 Binary files a/tests_zemu/snapshots/st-textual-sign_basic_eth/00009.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-textual-sign_basic_eth_warning/00000.png b/tests_zemu/snapshots/st-textual-sign_basic_eth_warning/00000.png deleted file mode 100644 index ec85a9bb..00000000 Binary files a/tests_zemu/snapshots/st-textual-sign_basic_eth_warning/00000.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-textual-sign_basic_eth_warning/00001.png b/tests_zemu/snapshots/st-textual-sign_basic_eth_warning/00001.png deleted file mode 100644 index ba2e8a92..00000000 Binary files a/tests_zemu/snapshots/st-textual-sign_basic_eth_warning/00001.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-textual-sign_basic_expert/00000.png b/tests_zemu/snapshots/st-textual-sign_basic_expert/00000.png deleted file mode 100644 index c1874b1e..00000000 Binary files a/tests_zemu/snapshots/st-textual-sign_basic_expert/00000.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-textual-sign_basic_expert/00001.png b/tests_zemu/snapshots/st-textual-sign_basic_expert/00001.png deleted file mode 100644 index a68d599f..00000000 Binary files a/tests_zemu/snapshots/st-textual-sign_basic_expert/00001.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-textual-sign_basic_expert/00002.png b/tests_zemu/snapshots/st-textual-sign_basic_expert/00002.png deleted file mode 100644 index 9aaa234b..00000000 Binary files a/tests_zemu/snapshots/st-textual-sign_basic_expert/00002.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-textual-sign_basic_expert/00003.png b/tests_zemu/snapshots/st-textual-sign_basic_expert/00003.png deleted file mode 100644 index 276bf01b..00000000 Binary files a/tests_zemu/snapshots/st-textual-sign_basic_expert/00003.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-textual-sign_basic_expert/00004.png b/tests_zemu/snapshots/st-textual-sign_basic_expert/00004.png deleted file mode 100644 index 62d2fbd5..00000000 Binary files a/tests_zemu/snapshots/st-textual-sign_basic_expert/00004.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-textual-sign_basic_expert/00005.png b/tests_zemu/snapshots/st-textual-sign_basic_expert/00005.png deleted file mode 100644 index c62a1df2..00000000 Binary files a/tests_zemu/snapshots/st-textual-sign_basic_expert/00005.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-textual-sign_basic_expert/00006.png b/tests_zemu/snapshots/st-textual-sign_basic_expert/00006.png deleted file mode 100644 index 6d397962..00000000 Binary files a/tests_zemu/snapshots/st-textual-sign_basic_expert/00006.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-textual-sign_basic_expert/00007.png b/tests_zemu/snapshots/st-textual-sign_basic_expert/00007.png deleted file mode 100644 index 0733415b..00000000 Binary files a/tests_zemu/snapshots/st-textual-sign_basic_expert/00007.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-textual-sign_basic_expert/00008.png b/tests_zemu/snapshots/st-textual-sign_basic_expert/00008.png deleted file mode 100644 index bcafe5ca..00000000 Binary files a/tests_zemu/snapshots/st-textual-sign_basic_expert/00008.png and /dev/null differ diff --git a/tests_zemu/snapshots/st-textual-sign_basic_expert/00009.png b/tests_zemu/snapshots/st-textual-sign_basic_expert/00009.png deleted file mode 100644 index ba2e8a92..00000000 Binary files a/tests_zemu/snapshots/st-textual-sign_basic_expert/00009.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-govDeposit/00000.png b/tests_zemu/snapshots/x-govDeposit/00000.png deleted file mode 100644 index 50c23a06..00000000 Binary files a/tests_zemu/snapshots/x-govDeposit/00000.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-govDeposit/00001.png b/tests_zemu/snapshots/x-govDeposit/00001.png deleted file mode 100644 index 54b3e630..00000000 Binary files a/tests_zemu/snapshots/x-govDeposit/00001.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-govDeposit/00002.png b/tests_zemu/snapshots/x-govDeposit/00002.png deleted file mode 100644 index 5e8c47b6..00000000 Binary files a/tests_zemu/snapshots/x-govDeposit/00002.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-govDeposit/00003.png b/tests_zemu/snapshots/x-govDeposit/00003.png deleted file mode 100644 index 2ced4d49..00000000 Binary files a/tests_zemu/snapshots/x-govDeposit/00003.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-govDeposit/00005.png b/tests_zemu/snapshots/x-govDeposit/00005.png deleted file mode 100644 index eaecc407..00000000 Binary files a/tests_zemu/snapshots/x-govDeposit/00005.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-govDeposit/00006.png b/tests_zemu/snapshots/x-govDeposit/00006.png deleted file mode 100644 index 70d09100..00000000 Binary files a/tests_zemu/snapshots/x-govDeposit/00006.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-govDeposit/00007.png b/tests_zemu/snapshots/x-govDeposit/00007.png deleted file mode 100644 index 5ecf01cc..00000000 Binary files a/tests_zemu/snapshots/x-govDeposit/00007.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-govDeposit/00008.png b/tests_zemu/snapshots/x-govDeposit/00008.png deleted file mode 100644 index d8fcf1cc..00000000 Binary files a/tests_zemu/snapshots/x-govDeposit/00008.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-govDeposit/00009.png b/tests_zemu/snapshots/x-govDeposit/00009.png deleted file mode 100644 index 480a738d..00000000 Binary files a/tests_zemu/snapshots/x-govDeposit/00009.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-govDeposit/00010.png b/tests_zemu/snapshots/x-govDeposit/00010.png deleted file mode 100644 index 62eac008..00000000 Binary files a/tests_zemu/snapshots/x-govDeposit/00010.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-govDeposit/00011.png b/tests_zemu/snapshots/x-govDeposit/00011.png deleted file mode 100644 index 1e4be699..00000000 Binary files a/tests_zemu/snapshots/x-govDeposit/00011.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-govDeposit/00012.png b/tests_zemu/snapshots/x-govDeposit/00012.png deleted file mode 100644 index 430a37e8..00000000 Binary files a/tests_zemu/snapshots/x-govDeposit/00012.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-ibc_denoms/00000.png b/tests_zemu/snapshots/x-ibc_denoms/00000.png deleted file mode 100644 index 50c23a06..00000000 Binary files a/tests_zemu/snapshots/x-ibc_denoms/00000.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-ibc_denoms/00001.png b/tests_zemu/snapshots/x-ibc_denoms/00001.png deleted file mode 100644 index b8f6cdc1..00000000 Binary files a/tests_zemu/snapshots/x-ibc_denoms/00001.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-ibc_denoms/00002.png b/tests_zemu/snapshots/x-ibc_denoms/00002.png deleted file mode 100644 index 1009a3c2..00000000 Binary files a/tests_zemu/snapshots/x-ibc_denoms/00002.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-ibc_denoms/00003.png b/tests_zemu/snapshots/x-ibc_denoms/00003.png deleted file mode 100644 index da1b3f2b..00000000 Binary files a/tests_zemu/snapshots/x-ibc_denoms/00003.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-ibc_denoms/00004.png b/tests_zemu/snapshots/x-ibc_denoms/00004.png deleted file mode 100644 index 58eed79e..00000000 Binary files a/tests_zemu/snapshots/x-ibc_denoms/00004.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-ibc_denoms/00005.png b/tests_zemu/snapshots/x-ibc_denoms/00005.png deleted file mode 100644 index b5ec39f8..00000000 Binary files a/tests_zemu/snapshots/x-ibc_denoms/00005.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-ibc_denoms/00006.png b/tests_zemu/snapshots/x-ibc_denoms/00006.png deleted file mode 100644 index 5d38a7e5..00000000 Binary files a/tests_zemu/snapshots/x-ibc_denoms/00006.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-ibc_denoms/00007.png b/tests_zemu/snapshots/x-ibc_denoms/00007.png deleted file mode 100644 index 1c1128d5..00000000 Binary files a/tests_zemu/snapshots/x-ibc_denoms/00007.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-ibc_denoms/00008.png b/tests_zemu/snapshots/x-ibc_denoms/00008.png deleted file mode 100644 index 709fbea8..00000000 Binary files a/tests_zemu/snapshots/x-ibc_denoms/00008.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-ibc_denoms/00009.png b/tests_zemu/snapshots/x-ibc_denoms/00009.png deleted file mode 100644 index 1e4be699..00000000 Binary files a/tests_zemu/snapshots/x-ibc_denoms/00009.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-ibc_denoms/00010.png b/tests_zemu/snapshots/x-ibc_denoms/00010.png deleted file mode 100644 index 430a37e8..00000000 Binary files a/tests_zemu/snapshots/x-ibc_denoms/00010.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-mainmenu/00000.png b/tests_zemu/snapshots/x-mainmenu/00000.png deleted file mode 100644 index 430a37e8..00000000 Binary files a/tests_zemu/snapshots/x-mainmenu/00000.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-mainmenu/00001.png b/tests_zemu/snapshots/x-mainmenu/00001.png deleted file mode 100644 index 8472e5d9..00000000 Binary files a/tests_zemu/snapshots/x-mainmenu/00001.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-mainmenu/00002.png b/tests_zemu/snapshots/x-mainmenu/00002.png deleted file mode 100644 index f7921677..00000000 Binary files a/tests_zemu/snapshots/x-mainmenu/00002.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-mainmenu/00003.png b/tests_zemu/snapshots/x-mainmenu/00003.png deleted file mode 100644 index 8472e5d9..00000000 Binary files a/tests_zemu/snapshots/x-mainmenu/00003.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-mainmenu/00004.png b/tests_zemu/snapshots/x-mainmenu/00004.png deleted file mode 100644 index 57e29fc4..00000000 Binary files a/tests_zemu/snapshots/x-mainmenu/00004.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-mainmenu/00005.png b/tests_zemu/snapshots/x-mainmenu/00005.png deleted file mode 100644 index 1adff7ee..00000000 Binary files a/tests_zemu/snapshots/x-mainmenu/00005.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-mainmenu/00006.png b/tests_zemu/snapshots/x-mainmenu/00006.png deleted file mode 100644 index 86e715d1..00000000 Binary files a/tests_zemu/snapshots/x-mainmenu/00006.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-mainmenu/00007.png b/tests_zemu/snapshots/x-mainmenu/00007.png deleted file mode 100644 index c7703726..00000000 Binary files a/tests_zemu/snapshots/x-mainmenu/00007.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-mainmenu/00008.png b/tests_zemu/snapshots/x-mainmenu/00008.png deleted file mode 100644 index 86e715d1..00000000 Binary files a/tests_zemu/snapshots/x-mainmenu/00008.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-mainmenu/00009.png b/tests_zemu/snapshots/x-mainmenu/00009.png deleted file mode 100644 index 1adff7ee..00000000 Binary files a/tests_zemu/snapshots/x-mainmenu/00009.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-mainmenu/00010.png b/tests_zemu/snapshots/x-mainmenu/00010.png deleted file mode 100644 index 57e29fc4..00000000 Binary files a/tests_zemu/snapshots/x-mainmenu/00010.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-mainmenu/00011.png b/tests_zemu/snapshots/x-mainmenu/00011.png deleted file mode 100644 index 8472e5d9..00000000 Binary files a/tests_zemu/snapshots/x-mainmenu/00011.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-mainmenu/00012.png b/tests_zemu/snapshots/x-mainmenu/00012.png deleted file mode 100644 index 430a37e8..00000000 Binary files a/tests_zemu/snapshots/x-mainmenu/00012.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-msgMultiSend/00000.png b/tests_zemu/snapshots/x-msgMultiSend/00000.png deleted file mode 100644 index 50c23a06..00000000 Binary files a/tests_zemu/snapshots/x-msgMultiSend/00000.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-msgMultiSend/00001.png b/tests_zemu/snapshots/x-msgMultiSend/00001.png deleted file mode 100644 index 5713013d..00000000 Binary files a/tests_zemu/snapshots/x-msgMultiSend/00001.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-msgMultiSend/00002.png b/tests_zemu/snapshots/x-msgMultiSend/00002.png deleted file mode 100644 index 1b9311c7..00000000 Binary files a/tests_zemu/snapshots/x-msgMultiSend/00002.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-msgMultiSend/00003.png b/tests_zemu/snapshots/x-msgMultiSend/00003.png deleted file mode 100644 index f43853dd..00000000 Binary files a/tests_zemu/snapshots/x-msgMultiSend/00003.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-msgMultiSend/00004.png b/tests_zemu/snapshots/x-msgMultiSend/00004.png deleted file mode 100644 index 0f7c39b4..00000000 Binary files a/tests_zemu/snapshots/x-msgMultiSend/00004.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-msgMultiSend/00005.png b/tests_zemu/snapshots/x-msgMultiSend/00005.png deleted file mode 100644 index 0ab9cc3d..00000000 Binary files a/tests_zemu/snapshots/x-msgMultiSend/00005.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-msgMultiSend/00006.png b/tests_zemu/snapshots/x-msgMultiSend/00006.png deleted file mode 100644 index 74e5092c..00000000 Binary files a/tests_zemu/snapshots/x-msgMultiSend/00006.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-msgMultiSend/00007.png b/tests_zemu/snapshots/x-msgMultiSend/00007.png deleted file mode 100644 index 50456f70..00000000 Binary files a/tests_zemu/snapshots/x-msgMultiSend/00007.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-msgMultiSend/00008.png b/tests_zemu/snapshots/x-msgMultiSend/00008.png deleted file mode 100644 index d4deb7e0..00000000 Binary files a/tests_zemu/snapshots/x-msgMultiSend/00008.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-msgMultiSend/00009.png b/tests_zemu/snapshots/x-msgMultiSend/00009.png deleted file mode 100644 index 1271607c..00000000 Binary files a/tests_zemu/snapshots/x-msgMultiSend/00009.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-msgMultiSend/00010.png b/tests_zemu/snapshots/x-msgMultiSend/00010.png deleted file mode 100644 index d4deb7e0..00000000 Binary files a/tests_zemu/snapshots/x-msgMultiSend/00010.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-msgMultiSend/00011.png b/tests_zemu/snapshots/x-msgMultiSend/00011.png deleted file mode 100644 index 328b356c..00000000 Binary files a/tests_zemu/snapshots/x-msgMultiSend/00011.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-msgMultiSend/00012.png b/tests_zemu/snapshots/x-msgMultiSend/00012.png deleted file mode 100644 index d4deb7e0..00000000 Binary files a/tests_zemu/snapshots/x-msgMultiSend/00012.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-msgMultiSend/00013.png b/tests_zemu/snapshots/x-msgMultiSend/00013.png deleted file mode 100644 index 480a738d..00000000 Binary files a/tests_zemu/snapshots/x-msgMultiSend/00013.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-msgMultiSend/00014.png b/tests_zemu/snapshots/x-msgMultiSend/00014.png deleted file mode 100644 index 62eac008..00000000 Binary files a/tests_zemu/snapshots/x-msgMultiSend/00014.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-msgMultiSend/00015.png b/tests_zemu/snapshots/x-msgMultiSend/00015.png deleted file mode 100644 index 1e4be699..00000000 Binary files a/tests_zemu/snapshots/x-msgMultiSend/00015.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-msgMultiSend/00016.png b/tests_zemu/snapshots/x-msgMultiSend/00016.png deleted file mode 100644 index 430a37e8..00000000 Binary files a/tests_zemu/snapshots/x-msgMultiSend/00016.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-setWithdrawAddress-eth/00000.png b/tests_zemu/snapshots/x-setWithdrawAddress-eth/00000.png deleted file mode 100644 index 50c23a06..00000000 Binary files a/tests_zemu/snapshots/x-setWithdrawAddress-eth/00000.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-setWithdrawAddress-eth/00001.png b/tests_zemu/snapshots/x-setWithdrawAddress-eth/00001.png deleted file mode 100644 index 797d0277..00000000 Binary files a/tests_zemu/snapshots/x-setWithdrawAddress-eth/00001.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-setWithdrawAddress-eth/00002.png b/tests_zemu/snapshots/x-setWithdrawAddress-eth/00002.png deleted file mode 100644 index 5e8c47b6..00000000 Binary files a/tests_zemu/snapshots/x-setWithdrawAddress-eth/00002.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-setWithdrawAddress-eth/00003.png b/tests_zemu/snapshots/x-setWithdrawAddress-eth/00003.png deleted file mode 100644 index eb470379..00000000 Binary files a/tests_zemu/snapshots/x-setWithdrawAddress-eth/00003.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-setWithdrawAddress-eth/00004.png b/tests_zemu/snapshots/x-setWithdrawAddress-eth/00004.png deleted file mode 100644 index 9ae6d13c..00000000 Binary files a/tests_zemu/snapshots/x-setWithdrawAddress-eth/00004.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-setWithdrawAddress-eth/00005.png b/tests_zemu/snapshots/x-setWithdrawAddress-eth/00005.png deleted file mode 100644 index ddde590b..00000000 Binary files a/tests_zemu/snapshots/x-setWithdrawAddress-eth/00005.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-setWithdrawAddress-eth/00006.png b/tests_zemu/snapshots/x-setWithdrawAddress-eth/00006.png deleted file mode 100644 index db3ad2c1..00000000 Binary files a/tests_zemu/snapshots/x-setWithdrawAddress-eth/00006.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-setWithdrawAddress-eth/00007.png b/tests_zemu/snapshots/x-setWithdrawAddress-eth/00007.png deleted file mode 100644 index 0f9cfb13..00000000 Binary files a/tests_zemu/snapshots/x-setWithdrawAddress-eth/00007.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-setWithdrawAddress-eth/00008.png b/tests_zemu/snapshots/x-setWithdrawAddress-eth/00008.png deleted file mode 100644 index ddde590b..00000000 Binary files a/tests_zemu/snapshots/x-setWithdrawAddress-eth/00008.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-setWithdrawAddress-eth/00009.png b/tests_zemu/snapshots/x-setWithdrawAddress-eth/00009.png deleted file mode 100644 index 7a814c79..00000000 Binary files a/tests_zemu/snapshots/x-setWithdrawAddress-eth/00009.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-setWithdrawAddress-eth/00010.png b/tests_zemu/snapshots/x-setWithdrawAddress-eth/00010.png deleted file mode 100644 index d666b4d0..00000000 Binary files a/tests_zemu/snapshots/x-setWithdrawAddress-eth/00010.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-setWithdrawAddress-eth/00011.png b/tests_zemu/snapshots/x-setWithdrawAddress-eth/00011.png deleted file mode 100644 index 62eac008..00000000 Binary files a/tests_zemu/snapshots/x-setWithdrawAddress-eth/00011.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-setWithdrawAddress-eth/00012.png b/tests_zemu/snapshots/x-setWithdrawAddress-eth/00012.png deleted file mode 100644 index 1e4be699..00000000 Binary files a/tests_zemu/snapshots/x-setWithdrawAddress-eth/00012.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-setWithdrawAddress-eth/00013.png b/tests_zemu/snapshots/x-setWithdrawAddress-eth/00013.png deleted file mode 100644 index 430a37e8..00000000 Binary files a/tests_zemu/snapshots/x-setWithdrawAddress-eth/00013.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-setWithdrawAddress/00000.png b/tests_zemu/snapshots/x-setWithdrawAddress/00000.png deleted file mode 100644 index 50c23a06..00000000 Binary files a/tests_zemu/snapshots/x-setWithdrawAddress/00000.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-setWithdrawAddress/00001.png b/tests_zemu/snapshots/x-setWithdrawAddress/00001.png deleted file mode 100644 index 797d0277..00000000 Binary files a/tests_zemu/snapshots/x-setWithdrawAddress/00001.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-setWithdrawAddress/00002.png b/tests_zemu/snapshots/x-setWithdrawAddress/00002.png deleted file mode 100644 index 5e8c47b6..00000000 Binary files a/tests_zemu/snapshots/x-setWithdrawAddress/00002.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-setWithdrawAddress/00003.png b/tests_zemu/snapshots/x-setWithdrawAddress/00003.png deleted file mode 100644 index eb470379..00000000 Binary files a/tests_zemu/snapshots/x-setWithdrawAddress/00003.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-setWithdrawAddress/00004.png b/tests_zemu/snapshots/x-setWithdrawAddress/00004.png deleted file mode 100644 index 9ae6d13c..00000000 Binary files a/tests_zemu/snapshots/x-setWithdrawAddress/00004.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-setWithdrawAddress/00005.png b/tests_zemu/snapshots/x-setWithdrawAddress/00005.png deleted file mode 100644 index ddde590b..00000000 Binary files a/tests_zemu/snapshots/x-setWithdrawAddress/00005.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-setWithdrawAddress/00006.png b/tests_zemu/snapshots/x-setWithdrawAddress/00006.png deleted file mode 100644 index db3ad2c1..00000000 Binary files a/tests_zemu/snapshots/x-setWithdrawAddress/00006.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-setWithdrawAddress/00007.png b/tests_zemu/snapshots/x-setWithdrawAddress/00007.png deleted file mode 100644 index 0f9cfb13..00000000 Binary files a/tests_zemu/snapshots/x-setWithdrawAddress/00007.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-setWithdrawAddress/00008.png b/tests_zemu/snapshots/x-setWithdrawAddress/00008.png deleted file mode 100644 index ddde590b..00000000 Binary files a/tests_zemu/snapshots/x-setWithdrawAddress/00008.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-setWithdrawAddress/00009.png b/tests_zemu/snapshots/x-setWithdrawAddress/00009.png deleted file mode 100644 index 7a814c79..00000000 Binary files a/tests_zemu/snapshots/x-setWithdrawAddress/00009.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-setWithdrawAddress/00010.png b/tests_zemu/snapshots/x-setWithdrawAddress/00010.png deleted file mode 100644 index d666b4d0..00000000 Binary files a/tests_zemu/snapshots/x-setWithdrawAddress/00010.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-setWithdrawAddress/00011.png b/tests_zemu/snapshots/x-setWithdrawAddress/00011.png deleted file mode 100644 index 62eac008..00000000 Binary files a/tests_zemu/snapshots/x-setWithdrawAddress/00011.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-setWithdrawAddress/00012.png b/tests_zemu/snapshots/x-setWithdrawAddress/00012.png deleted file mode 100644 index 1e4be699..00000000 Binary files a/tests_zemu/snapshots/x-setWithdrawAddress/00012.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-setWithdrawAddress/00013.png b/tests_zemu/snapshots/x-setWithdrawAddress/00013.png deleted file mode 100644 index 430a37e8..00000000 Binary files a/tests_zemu/snapshots/x-setWithdrawAddress/00013.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-show_address/00000.png b/tests_zemu/snapshots/x-show_address/00000.png deleted file mode 100644 index 50c23a06..00000000 Binary files a/tests_zemu/snapshots/x-show_address/00000.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-show_address/00001.png b/tests_zemu/snapshots/x-show_address/00001.png deleted file mode 100644 index 79a82065..00000000 Binary files a/tests_zemu/snapshots/x-show_address/00001.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-show_address/00002.png b/tests_zemu/snapshots/x-show_address/00002.png deleted file mode 100644 index 1e4be699..00000000 Binary files a/tests_zemu/snapshots/x-show_address/00002.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-show_address/00003.png b/tests_zemu/snapshots/x-show_address/00003.png deleted file mode 100644 index 430a37e8..00000000 Binary files a/tests_zemu/snapshots/x-show_address/00003.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-show_address_huge/00000.png b/tests_zemu/snapshots/x-show_address_huge/00000.png deleted file mode 100644 index 50c23a06..00000000 Binary files a/tests_zemu/snapshots/x-show_address_huge/00000.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-show_address_huge/00001.png b/tests_zemu/snapshots/x-show_address_huge/00001.png deleted file mode 100644 index 280b6933..00000000 Binary files a/tests_zemu/snapshots/x-show_address_huge/00001.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-show_address_huge/00002.png b/tests_zemu/snapshots/x-show_address_huge/00002.png deleted file mode 100644 index 85877f0f..00000000 Binary files a/tests_zemu/snapshots/x-show_address_huge/00002.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-show_address_huge/00003.png b/tests_zemu/snapshots/x-show_address_huge/00003.png deleted file mode 100644 index 1e4be699..00000000 Binary files a/tests_zemu/snapshots/x-show_address_huge/00003.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-show_address_huge/00004.png b/tests_zemu/snapshots/x-show_address_huge/00004.png deleted file mode 100644 index 430a37e8..00000000 Binary files a/tests_zemu/snapshots/x-show_address_huge/00004.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-show_eth_address/00000.png b/tests_zemu/snapshots/x-show_eth_address/00000.png deleted file mode 100644 index 50c23a06..00000000 Binary files a/tests_zemu/snapshots/x-show_eth_address/00000.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-show_eth_address/00001.png b/tests_zemu/snapshots/x-show_eth_address/00001.png deleted file mode 100644 index 35024425..00000000 Binary files a/tests_zemu/snapshots/x-show_eth_address/00001.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-show_eth_address/00002.png b/tests_zemu/snapshots/x-show_eth_address/00002.png deleted file mode 100644 index be6a7d82..00000000 Binary files a/tests_zemu/snapshots/x-show_eth_address/00002.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-show_eth_address/00003.png b/tests_zemu/snapshots/x-show_eth_address/00003.png deleted file mode 100644 index 1e4be699..00000000 Binary files a/tests_zemu/snapshots/x-show_eth_address/00003.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-show_eth_address/00004.png b/tests_zemu/snapshots/x-show_eth_address/00004.png deleted file mode 100644 index 430a37e8..00000000 Binary files a/tests_zemu/snapshots/x-show_eth_address/00004.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-sign_basic/00000.png b/tests_zemu/snapshots/x-sign_basic/00000.png deleted file mode 100644 index 50c23a06..00000000 Binary files a/tests_zemu/snapshots/x-sign_basic/00000.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-sign_basic/00001.png b/tests_zemu/snapshots/x-sign_basic/00001.png deleted file mode 100644 index 0f9cfb13..00000000 Binary files a/tests_zemu/snapshots/x-sign_basic/00001.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-sign_basic/00002.png b/tests_zemu/snapshots/x-sign_basic/00002.png deleted file mode 100644 index 88e2d4c9..00000000 Binary files a/tests_zemu/snapshots/x-sign_basic/00002.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-sign_basic/00003.png b/tests_zemu/snapshots/x-sign_basic/00003.png deleted file mode 100644 index 5a83f183..00000000 Binary files a/tests_zemu/snapshots/x-sign_basic/00003.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-sign_basic/00004.png b/tests_zemu/snapshots/x-sign_basic/00004.png deleted file mode 100644 index 88e82f3d..00000000 Binary files a/tests_zemu/snapshots/x-sign_basic/00004.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-sign_basic/00005.png b/tests_zemu/snapshots/x-sign_basic/00005.png deleted file mode 100644 index a51f4624..00000000 Binary files a/tests_zemu/snapshots/x-sign_basic/00005.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-sign_basic/00007.png b/tests_zemu/snapshots/x-sign_basic/00007.png deleted file mode 100644 index 430a37e8..00000000 Binary files a/tests_zemu/snapshots/x-sign_basic/00007.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-sign_basic2/00000.png b/tests_zemu/snapshots/x-sign_basic2/00000.png deleted file mode 100644 index 50c23a06..00000000 Binary files a/tests_zemu/snapshots/x-sign_basic2/00000.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-sign_basic2/00001.png b/tests_zemu/snapshots/x-sign_basic2/00001.png deleted file mode 100644 index ee857c17..00000000 Binary files a/tests_zemu/snapshots/x-sign_basic2/00001.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-sign_basic2/00002.png b/tests_zemu/snapshots/x-sign_basic2/00002.png deleted file mode 100644 index e7c45dc8..00000000 Binary files a/tests_zemu/snapshots/x-sign_basic2/00002.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-sign_basic2/00003.png b/tests_zemu/snapshots/x-sign_basic2/00003.png deleted file mode 100644 index c9e22f2d..00000000 Binary files a/tests_zemu/snapshots/x-sign_basic2/00003.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-sign_basic2/00004.png b/tests_zemu/snapshots/x-sign_basic2/00004.png deleted file mode 100644 index 262628b3..00000000 Binary files a/tests_zemu/snapshots/x-sign_basic2/00004.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-sign_basic2/00005.png b/tests_zemu/snapshots/x-sign_basic2/00005.png deleted file mode 100644 index 480a738d..00000000 Binary files a/tests_zemu/snapshots/x-sign_basic2/00005.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-sign_basic2/00006.png b/tests_zemu/snapshots/x-sign_basic2/00006.png deleted file mode 100644 index 1e4be699..00000000 Binary files a/tests_zemu/snapshots/x-sign_basic2/00006.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-sign_basic2/00007.png b/tests_zemu/snapshots/x-sign_basic2/00007.png deleted file mode 100644 index 430a37e8..00000000 Binary files a/tests_zemu/snapshots/x-sign_basic2/00007.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-sign_basic_eth/00000.png b/tests_zemu/snapshots/x-sign_basic_eth/00000.png deleted file mode 100644 index 50c23a06..00000000 Binary files a/tests_zemu/snapshots/x-sign_basic_eth/00000.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-sign_basic_eth/00001.png b/tests_zemu/snapshots/x-sign_basic_eth/00001.png deleted file mode 100644 index a2bcacba..00000000 Binary files a/tests_zemu/snapshots/x-sign_basic_eth/00001.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-sign_basic_eth/00002.png b/tests_zemu/snapshots/x-sign_basic_eth/00002.png deleted file mode 100644 index 45403abc..00000000 Binary files a/tests_zemu/snapshots/x-sign_basic_eth/00002.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-sign_basic_eth/00003.png b/tests_zemu/snapshots/x-sign_basic_eth/00003.png deleted file mode 100644 index 8f46e011..00000000 Binary files a/tests_zemu/snapshots/x-sign_basic_eth/00003.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-sign_basic_eth/00004.png b/tests_zemu/snapshots/x-sign_basic_eth/00004.png deleted file mode 100644 index 0f9cfb13..00000000 Binary files a/tests_zemu/snapshots/x-sign_basic_eth/00004.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-sign_basic_eth/00005.png b/tests_zemu/snapshots/x-sign_basic_eth/00005.png deleted file mode 100644 index 88e2d4c9..00000000 Binary files a/tests_zemu/snapshots/x-sign_basic_eth/00005.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-sign_basic_eth/00006.png b/tests_zemu/snapshots/x-sign_basic_eth/00006.png deleted file mode 100644 index 5a83f183..00000000 Binary files a/tests_zemu/snapshots/x-sign_basic_eth/00006.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-sign_basic_eth/00007.png b/tests_zemu/snapshots/x-sign_basic_eth/00007.png deleted file mode 100644 index 88e2d4c9..00000000 Binary files a/tests_zemu/snapshots/x-sign_basic_eth/00007.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-sign_basic_eth/00008.png b/tests_zemu/snapshots/x-sign_basic_eth/00008.png deleted file mode 100644 index 88e82f3d..00000000 Binary files a/tests_zemu/snapshots/x-sign_basic_eth/00008.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-sign_basic_eth/00009.png b/tests_zemu/snapshots/x-sign_basic_eth/00009.png deleted file mode 100644 index be5df525..00000000 Binary files a/tests_zemu/snapshots/x-sign_basic_eth/00009.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-sign_basic_eth/00010.png b/tests_zemu/snapshots/x-sign_basic_eth/00010.png deleted file mode 100644 index 62eac008..00000000 Binary files a/tests_zemu/snapshots/x-sign_basic_eth/00010.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-sign_basic_eth/00011.png b/tests_zemu/snapshots/x-sign_basic_eth/00011.png deleted file mode 100644 index 1e4be699..00000000 Binary files a/tests_zemu/snapshots/x-sign_basic_eth/00011.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-sign_basic_eth/00012.png b/tests_zemu/snapshots/x-sign_basic_eth/00012.png deleted file mode 100644 index 430a37e8..00000000 Binary files a/tests_zemu/snapshots/x-sign_basic_eth/00012.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-sign_basic_eth_warning/00000.png b/tests_zemu/snapshots/x-sign_basic_eth_warning/00000.png deleted file mode 100644 index 50d75f83..00000000 Binary files a/tests_zemu/snapshots/x-sign_basic_eth_warning/00000.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-sign_basic_eth_warning/00001.png b/tests_zemu/snapshots/x-sign_basic_eth_warning/00001.png deleted file mode 100644 index 1a4653e1..00000000 Binary files a/tests_zemu/snapshots/x-sign_basic_eth_warning/00001.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-sign_basic_eth_warning/00002.png b/tests_zemu/snapshots/x-sign_basic_eth_warning/00002.png deleted file mode 100644 index 430a37e8..00000000 Binary files a/tests_zemu/snapshots/x-sign_basic_eth_warning/00002.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-sign_basic_extra_fields/00000.png b/tests_zemu/snapshots/x-sign_basic_extra_fields/00000.png deleted file mode 100644 index 50c23a06..00000000 Binary files a/tests_zemu/snapshots/x-sign_basic_extra_fields/00000.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-sign_basic_extra_fields/00001.png b/tests_zemu/snapshots/x-sign_basic_extra_fields/00001.png deleted file mode 100644 index 0f9cfb13..00000000 Binary files a/tests_zemu/snapshots/x-sign_basic_extra_fields/00001.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-sign_basic_extra_fields/00002.png b/tests_zemu/snapshots/x-sign_basic_extra_fields/00002.png deleted file mode 100644 index 88e2d4c9..00000000 Binary files a/tests_zemu/snapshots/x-sign_basic_extra_fields/00002.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-sign_basic_extra_fields/00003.png b/tests_zemu/snapshots/x-sign_basic_extra_fields/00003.png deleted file mode 100644 index 5a83f183..00000000 Binary files a/tests_zemu/snapshots/x-sign_basic_extra_fields/00003.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-sign_basic_extra_fields/00004.png b/tests_zemu/snapshots/x-sign_basic_extra_fields/00004.png deleted file mode 100644 index 88e82f3d..00000000 Binary files a/tests_zemu/snapshots/x-sign_basic_extra_fields/00004.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-sign_basic_extra_fields/00005.png b/tests_zemu/snapshots/x-sign_basic_extra_fields/00005.png deleted file mode 100644 index a51f4624..00000000 Binary files a/tests_zemu/snapshots/x-sign_basic_extra_fields/00005.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-sign_basic_extra_fields/00006.png b/tests_zemu/snapshots/x-sign_basic_extra_fields/00006.png deleted file mode 100644 index 1e4be699..00000000 Binary files a/tests_zemu/snapshots/x-sign_basic_extra_fields/00006.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-sign_basic_extra_fields/00007.png b/tests_zemu/snapshots/x-sign_basic_extra_fields/00007.png deleted file mode 100644 index 430a37e8..00000000 Binary files a/tests_zemu/snapshots/x-sign_basic_extra_fields/00007.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-sign_msgDeposit/00000.png b/tests_zemu/snapshots/x-sign_msgDeposit/00000.png new file mode 100644 index 00000000..07b7c037 Binary files /dev/null and b/tests_zemu/snapshots/x-sign_msgDeposit/00000.png differ diff --git a/tests_zemu/snapshots/x-govDeposit/00004.png b/tests_zemu/snapshots/x-sign_msgDeposit/00001.png similarity index 100% rename from tests_zemu/snapshots/x-govDeposit/00004.png rename to tests_zemu/snapshots/x-sign_msgDeposit/00001.png diff --git a/tests_zemu/snapshots/x-sign_msgDeposit/00002.png b/tests_zemu/snapshots/x-sign_msgDeposit/00002.png new file mode 100644 index 00000000..3b0813cc Binary files /dev/null and b/tests_zemu/snapshots/x-sign_msgDeposit/00002.png differ diff --git a/tests_zemu/snapshots/x-sign_msgDeposit/00003.png b/tests_zemu/snapshots/x-sign_msgDeposit/00003.png new file mode 100644 index 00000000..8e2ae03e Binary files /dev/null and b/tests_zemu/snapshots/x-sign_msgDeposit/00003.png differ diff --git a/tests_zemu/snapshots/x-sign_msgDeposit/00004.png b/tests_zemu/snapshots/x-sign_msgDeposit/00004.png new file mode 100644 index 00000000..a888d147 Binary files /dev/null and b/tests_zemu/snapshots/x-sign_msgDeposit/00004.png differ diff --git a/tests_zemu/snapshots/x-sign_msgDeposit/00005.png b/tests_zemu/snapshots/x-sign_msgDeposit/00005.png new file mode 100644 index 00000000..d9fd802f Binary files /dev/null and b/tests_zemu/snapshots/x-sign_msgDeposit/00005.png differ diff --git a/tests_zemu/snapshots/sp-sign_basic_extra_fields/00006.png b/tests_zemu/snapshots/x-sign_msgDeposit/00006.png similarity index 100% rename from tests_zemu/snapshots/sp-sign_basic_extra_fields/00006.png rename to tests_zemu/snapshots/x-sign_msgDeposit/00006.png diff --git a/tests_zemu/snapshots/x-sign_msgDeposit/00007.png b/tests_zemu/snapshots/x-sign_msgDeposit/00007.png new file mode 100644 index 00000000..1d4449e7 Binary files /dev/null and b/tests_zemu/snapshots/x-sign_msgDeposit/00007.png differ diff --git a/tests_zemu/snapshots/x-sign_msgSend/00000.png b/tests_zemu/snapshots/x-sign_msgSend/00000.png new file mode 100644 index 00000000..07b7c037 Binary files /dev/null and b/tests_zemu/snapshots/x-sign_msgSend/00000.png differ diff --git a/tests_zemu/snapshots/x-sign_msgSend/00001.png b/tests_zemu/snapshots/x-sign_msgSend/00001.png new file mode 100644 index 00000000..5e79e908 Binary files /dev/null and b/tests_zemu/snapshots/x-sign_msgSend/00001.png differ diff --git a/tests_zemu/snapshots/x-sign_msgSend/00002.png b/tests_zemu/snapshots/x-sign_msgSend/00002.png new file mode 100644 index 00000000..145d0f0a Binary files /dev/null and b/tests_zemu/snapshots/x-sign_msgSend/00002.png differ diff --git a/tests_zemu/snapshots/x-sign_msgSend/00003.png b/tests_zemu/snapshots/x-sign_msgSend/00003.png new file mode 100644 index 00000000..dbca8c33 Binary files /dev/null and b/tests_zemu/snapshots/x-sign_msgSend/00003.png differ diff --git a/tests_zemu/snapshots/x-sign_msgSend/00004.png b/tests_zemu/snapshots/x-sign_msgSend/00004.png new file mode 100644 index 00000000..291df6b0 Binary files /dev/null and b/tests_zemu/snapshots/x-sign_msgSend/00004.png differ diff --git a/tests_zemu/snapshots/x-sign_msgSend/00005.png b/tests_zemu/snapshots/x-sign_msgSend/00005.png new file mode 100644 index 00000000..223eca6c Binary files /dev/null and b/tests_zemu/snapshots/x-sign_msgSend/00005.png differ diff --git a/tests_zemu/snapshots/x-sign_basic/00006.png b/tests_zemu/snapshots/x-sign_msgSend/00006.png similarity index 100% rename from tests_zemu/snapshots/x-sign_basic/00006.png rename to tests_zemu/snapshots/x-sign_msgSend/00006.png diff --git a/tests_zemu/snapshots/x-sign_msgSend/00007.png b/tests_zemu/snapshots/x-sign_msgSend/00007.png new file mode 100644 index 00000000..1d4449e7 Binary files /dev/null and b/tests_zemu/snapshots/x-sign_msgSend/00007.png differ diff --git a/tests_zemu/snapshots/x-textual-sign_basic/00000.png b/tests_zemu/snapshots/x-textual-sign_basic/00000.png deleted file mode 100644 index 50c23a06..00000000 Binary files a/tests_zemu/snapshots/x-textual-sign_basic/00000.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-textual-sign_basic/00001.png b/tests_zemu/snapshots/x-textual-sign_basic/00001.png deleted file mode 100644 index 34c29484..00000000 Binary files a/tests_zemu/snapshots/x-textual-sign_basic/00001.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-textual-sign_basic/00002.png b/tests_zemu/snapshots/x-textual-sign_basic/00002.png deleted file mode 100644 index 3d76db2e..00000000 Binary files a/tests_zemu/snapshots/x-textual-sign_basic/00002.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-textual-sign_basic/00003.png b/tests_zemu/snapshots/x-textual-sign_basic/00003.png deleted file mode 100644 index 2ced4d49..00000000 Binary files a/tests_zemu/snapshots/x-textual-sign_basic/00003.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-textual-sign_basic/00004.png b/tests_zemu/snapshots/x-textual-sign_basic/00004.png deleted file mode 100644 index fcf0fafa..00000000 Binary files a/tests_zemu/snapshots/x-textual-sign_basic/00004.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-textual-sign_basic/00005.png b/tests_zemu/snapshots/x-textual-sign_basic/00005.png deleted file mode 100644 index ea6458ea..00000000 Binary files a/tests_zemu/snapshots/x-textual-sign_basic/00005.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-textual-sign_basic/00006.png b/tests_zemu/snapshots/x-textual-sign_basic/00006.png deleted file mode 100644 index 3da6cc6b..00000000 Binary files a/tests_zemu/snapshots/x-textual-sign_basic/00006.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-textual-sign_basic/00007.png b/tests_zemu/snapshots/x-textual-sign_basic/00007.png deleted file mode 100644 index 4922d8db..00000000 Binary files a/tests_zemu/snapshots/x-textual-sign_basic/00007.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-textual-sign_basic/00008.png b/tests_zemu/snapshots/x-textual-sign_basic/00008.png deleted file mode 100644 index 057e364b..00000000 Binary files a/tests_zemu/snapshots/x-textual-sign_basic/00008.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-textual-sign_basic/00009.png b/tests_zemu/snapshots/x-textual-sign_basic/00009.png deleted file mode 100644 index bb32e1a1..00000000 Binary files a/tests_zemu/snapshots/x-textual-sign_basic/00009.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-textual-sign_basic/00010.png b/tests_zemu/snapshots/x-textual-sign_basic/00010.png deleted file mode 100644 index 0d60b42f..00000000 Binary files a/tests_zemu/snapshots/x-textual-sign_basic/00010.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-textual-sign_basic/00011.png b/tests_zemu/snapshots/x-textual-sign_basic/00011.png deleted file mode 100644 index 66bca893..00000000 Binary files a/tests_zemu/snapshots/x-textual-sign_basic/00011.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-textual-sign_basic/00012.png b/tests_zemu/snapshots/x-textual-sign_basic/00012.png deleted file mode 100644 index ece93bda..00000000 Binary files a/tests_zemu/snapshots/x-textual-sign_basic/00012.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-textual-sign_basic/00013.png b/tests_zemu/snapshots/x-textual-sign_basic/00013.png deleted file mode 100644 index 1e4be699..00000000 Binary files a/tests_zemu/snapshots/x-textual-sign_basic/00013.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-textual-sign_basic/00014.png b/tests_zemu/snapshots/x-textual-sign_basic/00014.png deleted file mode 100644 index 430a37e8..00000000 Binary files a/tests_zemu/snapshots/x-textual-sign_basic/00014.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-textual-sign_basic_eth/00000.png b/tests_zemu/snapshots/x-textual-sign_basic_eth/00000.png deleted file mode 100644 index 50c23a06..00000000 Binary files a/tests_zemu/snapshots/x-textual-sign_basic_eth/00000.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-textual-sign_basic_eth/00001.png b/tests_zemu/snapshots/x-textual-sign_basic_eth/00001.png deleted file mode 100644 index 34c29484..00000000 Binary files a/tests_zemu/snapshots/x-textual-sign_basic_eth/00001.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-textual-sign_basic_eth/00002.png b/tests_zemu/snapshots/x-textual-sign_basic_eth/00002.png deleted file mode 100644 index 3d76db2e..00000000 Binary files a/tests_zemu/snapshots/x-textual-sign_basic_eth/00002.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-textual-sign_basic_eth/00003.png b/tests_zemu/snapshots/x-textual-sign_basic_eth/00003.png deleted file mode 100644 index 2ced4d49..00000000 Binary files a/tests_zemu/snapshots/x-textual-sign_basic_eth/00003.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-textual-sign_basic_eth/00004.png b/tests_zemu/snapshots/x-textual-sign_basic_eth/00004.png deleted file mode 100644 index 9eb885b4..00000000 Binary files a/tests_zemu/snapshots/x-textual-sign_basic_eth/00004.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-textual-sign_basic_eth/00005.png b/tests_zemu/snapshots/x-textual-sign_basic_eth/00005.png deleted file mode 100644 index b384c6dc..00000000 Binary files a/tests_zemu/snapshots/x-textual-sign_basic_eth/00005.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-textual-sign_basic_eth/00006.png b/tests_zemu/snapshots/x-textual-sign_basic_eth/00006.png deleted file mode 100644 index 115b7ce4..00000000 Binary files a/tests_zemu/snapshots/x-textual-sign_basic_eth/00006.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-textual-sign_basic_eth/00007.png b/tests_zemu/snapshots/x-textual-sign_basic_eth/00007.png deleted file mode 100644 index ec1db5ad..00000000 Binary files a/tests_zemu/snapshots/x-textual-sign_basic_eth/00007.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-textual-sign_basic_eth/00008.png b/tests_zemu/snapshots/x-textual-sign_basic_eth/00008.png deleted file mode 100644 index 8de335a2..00000000 Binary files a/tests_zemu/snapshots/x-textual-sign_basic_eth/00008.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-textual-sign_basic_eth/00009.png b/tests_zemu/snapshots/x-textual-sign_basic_eth/00009.png deleted file mode 100644 index fcf0fafa..00000000 Binary files a/tests_zemu/snapshots/x-textual-sign_basic_eth/00009.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-textual-sign_basic_eth/00010.png b/tests_zemu/snapshots/x-textual-sign_basic_eth/00010.png deleted file mode 100644 index ea6458ea..00000000 Binary files a/tests_zemu/snapshots/x-textual-sign_basic_eth/00010.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-textual-sign_basic_eth/00011.png b/tests_zemu/snapshots/x-textual-sign_basic_eth/00011.png deleted file mode 100644 index 3da6cc6b..00000000 Binary files a/tests_zemu/snapshots/x-textual-sign_basic_eth/00011.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-textual-sign_basic_eth/00012.png b/tests_zemu/snapshots/x-textual-sign_basic_eth/00012.png deleted file mode 100644 index 4922d8db..00000000 Binary files a/tests_zemu/snapshots/x-textual-sign_basic_eth/00012.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-textual-sign_basic_eth/00013.png b/tests_zemu/snapshots/x-textual-sign_basic_eth/00013.png deleted file mode 100644 index 057e364b..00000000 Binary files a/tests_zemu/snapshots/x-textual-sign_basic_eth/00013.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-textual-sign_basic_eth/00014.png b/tests_zemu/snapshots/x-textual-sign_basic_eth/00014.png deleted file mode 100644 index bb32e1a1..00000000 Binary files a/tests_zemu/snapshots/x-textual-sign_basic_eth/00014.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-textual-sign_basic_eth/00015.png b/tests_zemu/snapshots/x-textual-sign_basic_eth/00015.png deleted file mode 100644 index 0d60b42f..00000000 Binary files a/tests_zemu/snapshots/x-textual-sign_basic_eth/00015.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-textual-sign_basic_eth/00016.png b/tests_zemu/snapshots/x-textual-sign_basic_eth/00016.png deleted file mode 100644 index 66bca893..00000000 Binary files a/tests_zemu/snapshots/x-textual-sign_basic_eth/00016.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-textual-sign_basic_eth/00017.png b/tests_zemu/snapshots/x-textual-sign_basic_eth/00017.png deleted file mode 100644 index ece93bda..00000000 Binary files a/tests_zemu/snapshots/x-textual-sign_basic_eth/00017.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-textual-sign_basic_eth/00018.png b/tests_zemu/snapshots/x-textual-sign_basic_eth/00018.png deleted file mode 100644 index a73d7695..00000000 Binary files a/tests_zemu/snapshots/x-textual-sign_basic_eth/00018.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-textual-sign_basic_eth/00019.png b/tests_zemu/snapshots/x-textual-sign_basic_eth/00019.png deleted file mode 100644 index dd0bbb34..00000000 Binary files a/tests_zemu/snapshots/x-textual-sign_basic_eth/00019.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-textual-sign_basic_eth/00020.png b/tests_zemu/snapshots/x-textual-sign_basic_eth/00020.png deleted file mode 100644 index 9da0fe80..00000000 Binary files a/tests_zemu/snapshots/x-textual-sign_basic_eth/00020.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-textual-sign_basic_eth/00021.png b/tests_zemu/snapshots/x-textual-sign_basic_eth/00021.png deleted file mode 100644 index 1e4be699..00000000 Binary files a/tests_zemu/snapshots/x-textual-sign_basic_eth/00021.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-textual-sign_basic_eth/00022.png b/tests_zemu/snapshots/x-textual-sign_basic_eth/00022.png deleted file mode 100644 index 430a37e8..00000000 Binary files a/tests_zemu/snapshots/x-textual-sign_basic_eth/00022.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-textual-sign_basic_eth_warning/00000.png b/tests_zemu/snapshots/x-textual-sign_basic_eth_warning/00000.png deleted file mode 100644 index 50d75f83..00000000 Binary files a/tests_zemu/snapshots/x-textual-sign_basic_eth_warning/00000.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-textual-sign_basic_eth_warning/00001.png b/tests_zemu/snapshots/x-textual-sign_basic_eth_warning/00001.png deleted file mode 100644 index 1a4653e1..00000000 Binary files a/tests_zemu/snapshots/x-textual-sign_basic_eth_warning/00001.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-textual-sign_basic_eth_warning/00002.png b/tests_zemu/snapshots/x-textual-sign_basic_eth_warning/00002.png deleted file mode 100644 index 430a37e8..00000000 Binary files a/tests_zemu/snapshots/x-textual-sign_basic_eth_warning/00002.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-textual-sign_basic_expert/00000.png b/tests_zemu/snapshots/x-textual-sign_basic_expert/00000.png deleted file mode 100644 index 50c23a06..00000000 Binary files a/tests_zemu/snapshots/x-textual-sign_basic_expert/00000.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-textual-sign_basic_expert/00001.png b/tests_zemu/snapshots/x-textual-sign_basic_expert/00001.png deleted file mode 100644 index 34c29484..00000000 Binary files a/tests_zemu/snapshots/x-textual-sign_basic_expert/00001.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-textual-sign_basic_expert/00002.png b/tests_zemu/snapshots/x-textual-sign_basic_expert/00002.png deleted file mode 100644 index 3d76db2e..00000000 Binary files a/tests_zemu/snapshots/x-textual-sign_basic_expert/00002.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-textual-sign_basic_expert/00003.png b/tests_zemu/snapshots/x-textual-sign_basic_expert/00003.png deleted file mode 100644 index 2ced4d49..00000000 Binary files a/tests_zemu/snapshots/x-textual-sign_basic_expert/00003.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-textual-sign_basic_expert/00004.png b/tests_zemu/snapshots/x-textual-sign_basic_expert/00004.png deleted file mode 100644 index 9eb885b4..00000000 Binary files a/tests_zemu/snapshots/x-textual-sign_basic_expert/00004.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-textual-sign_basic_expert/00005.png b/tests_zemu/snapshots/x-textual-sign_basic_expert/00005.png deleted file mode 100644 index b384c6dc..00000000 Binary files a/tests_zemu/snapshots/x-textual-sign_basic_expert/00005.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-textual-sign_basic_expert/00006.png b/tests_zemu/snapshots/x-textual-sign_basic_expert/00006.png deleted file mode 100644 index 115b7ce4..00000000 Binary files a/tests_zemu/snapshots/x-textual-sign_basic_expert/00006.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-textual-sign_basic_expert/00007.png b/tests_zemu/snapshots/x-textual-sign_basic_expert/00007.png deleted file mode 100644 index ec1db5ad..00000000 Binary files a/tests_zemu/snapshots/x-textual-sign_basic_expert/00007.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-textual-sign_basic_expert/00008.png b/tests_zemu/snapshots/x-textual-sign_basic_expert/00008.png deleted file mode 100644 index 8de335a2..00000000 Binary files a/tests_zemu/snapshots/x-textual-sign_basic_expert/00008.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-textual-sign_basic_expert/00009.png b/tests_zemu/snapshots/x-textual-sign_basic_expert/00009.png deleted file mode 100644 index fcf0fafa..00000000 Binary files a/tests_zemu/snapshots/x-textual-sign_basic_expert/00009.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-textual-sign_basic_expert/00010.png b/tests_zemu/snapshots/x-textual-sign_basic_expert/00010.png deleted file mode 100644 index ea6458ea..00000000 Binary files a/tests_zemu/snapshots/x-textual-sign_basic_expert/00010.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-textual-sign_basic_expert/00011.png b/tests_zemu/snapshots/x-textual-sign_basic_expert/00011.png deleted file mode 100644 index 3da6cc6b..00000000 Binary files a/tests_zemu/snapshots/x-textual-sign_basic_expert/00011.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-textual-sign_basic_expert/00012.png b/tests_zemu/snapshots/x-textual-sign_basic_expert/00012.png deleted file mode 100644 index 4922d8db..00000000 Binary files a/tests_zemu/snapshots/x-textual-sign_basic_expert/00012.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-textual-sign_basic_expert/00013.png b/tests_zemu/snapshots/x-textual-sign_basic_expert/00013.png deleted file mode 100644 index 057e364b..00000000 Binary files a/tests_zemu/snapshots/x-textual-sign_basic_expert/00013.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-textual-sign_basic_expert/00014.png b/tests_zemu/snapshots/x-textual-sign_basic_expert/00014.png deleted file mode 100644 index bb32e1a1..00000000 Binary files a/tests_zemu/snapshots/x-textual-sign_basic_expert/00014.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-textual-sign_basic_expert/00015.png b/tests_zemu/snapshots/x-textual-sign_basic_expert/00015.png deleted file mode 100644 index 0d60b42f..00000000 Binary files a/tests_zemu/snapshots/x-textual-sign_basic_expert/00015.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-textual-sign_basic_expert/00016.png b/tests_zemu/snapshots/x-textual-sign_basic_expert/00016.png deleted file mode 100644 index 66bca893..00000000 Binary files a/tests_zemu/snapshots/x-textual-sign_basic_expert/00016.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-textual-sign_basic_expert/00017.png b/tests_zemu/snapshots/x-textual-sign_basic_expert/00017.png deleted file mode 100644 index ece93bda..00000000 Binary files a/tests_zemu/snapshots/x-textual-sign_basic_expert/00017.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-textual-sign_basic_expert/00018.png b/tests_zemu/snapshots/x-textual-sign_basic_expert/00018.png deleted file mode 100644 index a73d7695..00000000 Binary files a/tests_zemu/snapshots/x-textual-sign_basic_expert/00018.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-textual-sign_basic_expert/00019.png b/tests_zemu/snapshots/x-textual-sign_basic_expert/00019.png deleted file mode 100644 index dd0bbb34..00000000 Binary files a/tests_zemu/snapshots/x-textual-sign_basic_expert/00019.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-textual-sign_basic_expert/00020.png b/tests_zemu/snapshots/x-textual-sign_basic_expert/00020.png deleted file mode 100644 index 9da0fe80..00000000 Binary files a/tests_zemu/snapshots/x-textual-sign_basic_expert/00020.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-textual-sign_basic_expert/00021.png b/tests_zemu/snapshots/x-textual-sign_basic_expert/00021.png deleted file mode 100644 index 1e4be699..00000000 Binary files a/tests_zemu/snapshots/x-textual-sign_basic_expert/00021.png and /dev/null differ diff --git a/tests_zemu/snapshots/x-textual-sign_basic_expert/00022.png b/tests_zemu/snapshots/x-textual-sign_basic_expert/00022.png deleted file mode 100644 index 430a37e8..00000000 Binary files a/tests_zemu/snapshots/x-textual-sign_basic_expert/00022.png and /dev/null differ diff --git a/tests_zemu/tests/amino.test.ts b/tests_zemu/tests/amino.test.ts deleted file mode 100644 index 9bc28d0f..00000000 --- a/tests_zemu/tests/amino.test.ts +++ /dev/null @@ -1,522 +0,0 @@ -/** ****************************************************************************** - * (c) 2018-2022 Zondax GmbH - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - ******************************************************************************* */ - -import Zemu, { ClickNavigation, TouchNavigation } from '@zondax/zemu' -// @ts-ignore -import { CosmosApp } from '@zondax/ledger-cosmos-js' -import { - defaultOptions, - DEVICE_MODELS, - example_tx_str_basic, - example_tx_str_basic2, - ibc_denoms, - AMINO_JSON_TX, - setWithdrawAddress, - cliGovDeposit, - example_tx_str_msgMultiSend, -} from './common' - -// @ts-ignore -import secp256k1 from 'secp256k1/elliptic' -// @ts-ignore -import crypto from 'crypto' -import { ButtonKind, IButton } from '@zondax/zemu/dist/types' - -jest.setTimeout(120000) - -describe('Amino', function () { - // eslint-disable-next-line jest/expect-expect - test.concurrent.each(DEVICE_MODELS)('can start and stop container', async function (m) { - const sim = new Zemu(m.path) - try { - await sim.start({ ...defaultOptions, model: m.name }) - } finally { - await sim.close() - } - }) - - test.concurrent.each(DEVICE_MODELS)('sign basic normal', async function (m) { - const sim = new Zemu(m.path) - try { - await sim.start({ ...defaultOptions, model: m.name }) - const app = new CosmosApp(sim.getTransport()) - - const path = [44, 118, 0, 0, 0] - const tx = Buffer.from(JSON.stringify(example_tx_str_basic), "utf-8") - const hrp = 'cosmos' - - // get address / publickey - const respPk = await app.getAddressAndPubKey(path, hrp) - expect(respPk.return_code).toEqual(0x9000) - expect(respPk.error_message).toEqual('No errors') - console.log(respPk) - - // do not wait here.. - const signatureRequest = app.sign(path, tx, hrp, AMINO_JSON_TX) - - // Wait until we are not in the main menu - await sim.waitUntilScreenIsNot(sim.getMainMenuSnapshot()) - await sim.compareSnapshotsAndApprove('.', `${m.prefix.toLowerCase()}-sign_basic`) - - const resp = await signatureRequest - console.log(resp) - - expect(resp.return_code).toEqual(0x9000) - expect(resp.error_message).toEqual('No errors') - expect(resp).toHaveProperty('signature') - - // Now verify the signature - const hash = crypto.createHash('sha256') - const msgHash = Uint8Array.from(hash.update(tx).digest()) - - const signatureDER = resp.signature - const signature = secp256k1.signatureImport(Uint8Array.from(signatureDER)) - - const pk = Uint8Array.from(respPk.compressed_pk) - - const signatureOk = secp256k1.ecdsaVerify(signature, msgHash, pk) - expect(signatureOk).toEqual(true) - } finally { - await sim.close() - } - }) - - test.concurrent.each(DEVICE_MODELS)('sign basic normal2', async function (m) { - const sim = new Zemu(m.path) - try { - await sim.start({ ...defaultOptions, model: m.name }) - const app = new CosmosApp(sim.getTransport()) - - const path = [44, 118, 0, 0, 0] - const tx = Buffer.from(JSON.stringify(example_tx_str_basic2)) - const hrp = 'cosmos' - - // get address / publickey - const respPk = await app.getAddressAndPubKey(path, hrp) - expect(respPk.return_code).toEqual(0x9000) - expect(respPk.error_message).toEqual('No errors') - console.log(respPk) - - // do not wait here.. - const signatureRequest = app.sign(path, tx, hrp, AMINO_JSON_TX) - - // Wait until we are not in the main menu - await sim.waitUntilScreenIsNot(sim.getMainMenuSnapshot()) - await sim.compareSnapshotsAndApprove('.', `${m.prefix.toLowerCase()}-sign_basic2`) - - const resp = await signatureRequest - console.log(resp) - - expect(resp.return_code).toEqual(0x9000) - expect(resp.error_message).toEqual('No errors') - - // Now verify the signature - const hash = crypto.createHash('sha256') - const msgHash = Uint8Array.from(hash.update(tx).digest()) - - const signatureDER = resp.signature - const signature = secp256k1.signatureImport(Uint8Array.from(signatureDER)) - - const pk = Uint8Array.from(respPk.compressed_pk) - - const signatureOk = secp256k1.ecdsaVerify(signature, msgHash, pk) - expect(signatureOk).toEqual(true) - } finally { - await sim.close() - } - }) - - test.concurrent.each(DEVICE_MODELS)('sign basic with extra fields', async function (m) { - const sim = new Zemu(m.path) - try { - await sim.start({ ...defaultOptions, model: m.name }) - const app = new CosmosApp(sim.getTransport()) - - const path = [44, 118, 0, 0, 0] - const tx = Buffer.from(JSON.stringify(example_tx_str_basic)) - const hrp = 'cosmos' - - // get address / publickey - const respPk = await app.getAddressAndPubKey(path, hrp) - expect(respPk.return_code).toEqual(0x9000) - expect(respPk.error_message).toEqual('No errors') - console.log(respPk) - - // do not wait here.. - const signatureRequest = app.sign(path, tx, hrp, AMINO_JSON_TX) - - // Wait until we are not in the main menu - await sim.waitUntilScreenIsNot(sim.getMainMenuSnapshot()) - await sim.compareSnapshotsAndApprove('.', `${m.prefix.toLowerCase()}-sign_basic_extra_fields`) - - const resp = await signatureRequest - console.log(resp) - - expect(resp.return_code).toEqual(0x9000) - expect(resp.error_message).toEqual('No errors') - expect(resp).toHaveProperty('signature') - - // Now verify the signature - const hash = crypto.createHash('sha256') - const msgHash = Uint8Array.from(hash.update(tx).digest()) - - const signatureDER = resp.signature - const signature = secp256k1.signatureImport(Uint8Array.from(signatureDER)) - - const pk = Uint8Array.from(respPk.compressed_pk) - - const signatureOk = secp256k1.ecdsaVerify(signature, msgHash, pk) - expect(signatureOk).toEqual(true) - } finally { - await sim.close() - } - }) - - test.concurrent.each(DEVICE_MODELS)('ibc denoms', async function (m) { - const sim = new Zemu(m.path) - try { - await sim.start({ ...defaultOptions, model: m.name }) - const app = new CosmosApp(sim.getTransport()) - - const path = [44, 118, 0, 0, 0] - const tx = Buffer.from(JSON.stringify(ibc_denoms)) - const hrp = 'cosmos' - - // get address / publickey - const respPk = await app.getAddressAndPubKey(path, hrp) - expect(respPk.return_code).toEqual(0x9000) - expect(respPk.error_message).toEqual('No errors') - console.log(respPk) - - // do not wait here.. - const signatureRequest = app.sign(path, tx, hrp, AMINO_JSON_TX) - - // Wait until we are not in the main menu - await sim.waitUntilScreenIsNot(sim.getMainMenuSnapshot()) - await sim.compareSnapshotsAndApprove('.', `${m.prefix.toLowerCase()}-ibc_denoms`) - - const resp = await signatureRequest - console.log(resp) - - expect(resp.return_code).toEqual(0x9000) - expect(resp.error_message).toEqual('No errors') - expect(resp).toHaveProperty('signature') - - // Now verify the signature - const hash = crypto.createHash('sha256') - const msgHash = Uint8Array.from(hash.update(tx).digest()) - - const signatureDER = resp.signature - const signature = secp256k1.signatureImport(Uint8Array.from(signatureDER)) - - const pk = Uint8Array.from(respPk.compressed_pk) - - const signatureOk = secp256k1.ecdsaVerify(signature, msgHash, pk) - expect(signatureOk).toEqual(true) - } finally { - await sim.close() - } - }) - - test.concurrent.each(DEVICE_MODELS)('SetWithdrawAddress', async function (m) { - const sim = new Zemu(m.path) - try { - await sim.start({ ...defaultOptions, model: m.name }) - const app = new CosmosApp(sim.getTransport()) - - const path = [44, 118, 0, 0, 0] - const tx = Buffer.from(JSON.stringify(setWithdrawAddress)) - const hrp = 'cosmos' - - // get address / publickey - const respPk = await app.getAddressAndPubKey(path, hrp) - expect(respPk.return_code).toEqual(0x9000) - expect(respPk.error_message).toEqual('No errors') - console.log(respPk) - - // do not wait here.. - const signatureRequest = app.sign(path, tx, hrp, AMINO_JSON_TX) - - // Wait until we are not in the main menu - await sim.waitUntilScreenIsNot(sim.getMainMenuSnapshot()) - await sim.compareSnapshotsAndApprove('.', `${m.prefix.toLowerCase()}-setWithdrawAddress`) - - const resp = await signatureRequest - console.log(resp) - - expect(resp.return_code).toEqual(0x9000) - expect(resp.error_message).toEqual('No errors') - expect(resp).toHaveProperty('signature') - - // Now verify the signature - const hash = crypto.createHash('sha256') - const msgHash = Uint8Array.from(hash.update(tx).digest()) - - const signatureDER = resp.signature - const signature = secp256k1.signatureImport(Uint8Array.from(signatureDER)) - - const pk = Uint8Array.from(respPk.compressed_pk) - - const signatureOk = secp256k1.ecdsaVerify(signature, msgHash, pk) - expect(signatureOk).toEqual(true) - } finally { - await sim.close() - } - }) - - test.concurrent.each(DEVICE_MODELS)('CLIGovDeposit', async function (m) { - const sim = new Zemu(m.path) - try { - await sim.start({ ...defaultOptions, model: m.name }) - const app = new CosmosApp(sim.getTransport()) - - const path = [44, 118, 0, 0, 0] - const tx = Buffer.from(JSON.stringify(cliGovDeposit)) - const hrp = 'cosmos' - - // get address / publickey - const respPk = await app.getAddressAndPubKey(path, hrp) - expect(respPk.return_code).toEqual(0x9000) - expect(respPk.error_message).toEqual('No errors') - console.log(respPk) - - // do not wait here.. - const signatureRequest = app.sign(path, tx, hrp, AMINO_JSON_TX) - - // Wait until we are not in the main menu - await sim.waitUntilScreenIsNot(sim.getMainMenuSnapshot()) - await sim.compareSnapshotsAndApprove('.', `${m.prefix.toLowerCase()}-govDeposit`) - - const resp = await signatureRequest - console.log(resp) - - expect(resp.return_code).toEqual(0x9000) - expect(resp.error_message).toEqual('No errors') - expect(resp).toHaveProperty('signature') - - // Now verify the signature - const hash = crypto.createHash('sha256') - const msgHash = Uint8Array.from(hash.update(tx).digest()) - - const signatureDER = resp.signature - const signature = secp256k1.signatureImport(Uint8Array.from(signatureDER)) - - const pk = Uint8Array.from(respPk.compressed_pk) - - const signatureOk = secp256k1.ecdsaVerify(signature, msgHash, pk) - expect(signatureOk).toEqual(true) - } finally { - await sim.close() - } - }) - - test.concurrent.each(DEVICE_MODELS)('MsgMultisend', async function (m) { - const sim = new Zemu(m.path) - try { - await sim.start({ ...defaultOptions, model: m.name }) - const app = new CosmosApp(sim.getTransport()) - - // Activate expert mode - await sim.toggleExpertMode(); - - const path = [44, 118, 0, 0, 0] - const tx = Buffer.from(JSON.stringify(example_tx_str_msgMultiSend)) - const hrp = 'cosmos' - - // get address / publickey - const respPk = await app.getAddressAndPubKey(path, hrp) - expect(respPk.return_code).toEqual(0x9000) - expect(respPk.error_message).toEqual('No errors') - console.log(respPk) - - // do not wait here.. - const signatureRequest = app.sign(path, tx, hrp, AMINO_JSON_TX) - - // Wait until we are not in the main menu - await sim.waitUntilScreenIsNot(sim.getMainMenuSnapshot()) - await sim.compareSnapshotsAndApprove('.', `${m.prefix.toLowerCase()}-msgMultiSend`) - - const resp = await signatureRequest - console.log(resp) - - expect(resp.return_code).toEqual(0x9000) - expect(resp.error_message).toEqual('No errors') - expect(resp).toHaveProperty('signature') - - // Now verify the signature - const hash = crypto.createHash('sha256') - const msgHash = Uint8Array.from(hash.update(tx).digest()) - - const signatureDER = resp.signature - const signature = secp256k1.signatureImport(Uint8Array.from(signatureDER)) - - const pk = Uint8Array.from(respPk.compressed_pk) - - const signatureOk = secp256k1.ecdsaVerify(signature, msgHash, pk) - expect(signatureOk).toEqual(true) - } finally { - await sim.close() - } - }) - - test.concurrent.each(DEVICE_MODELS)('SetWithdrawAddress-eth', async function (m) { - const sim = new Zemu(m.path) - try { - await sim.start({ ...defaultOptions, model: m.name }) - const app = new CosmosApp(sim.getTransport()) - - // Change to expert mode so we can skip fields - await sim.toggleExpertMode(); - - const path = [44, 60, 0, 0, 0] - const tx = Buffer.from(JSON.stringify(setWithdrawAddress)) - const hrp = 'inj' - - // get address / publickey - const respPk = await app.getAddressAndPubKey(path, hrp) - expect(respPk.return_code).toEqual(0x9000) - expect(respPk.error_message).toEqual('No errors') - console.log(respPk) - - // do not wait here.. - const signatureRequest = app.sign(path, tx, hrp, AMINO_JSON_TX) - - // Wait until we are not in the main menu - await sim.waitUntilScreenIsNot(sim.getMainMenuSnapshot()) - await sim.compareSnapshotsAndApprove('.', `${m.prefix.toLowerCase()}-setWithdrawAddress-eth`) - - const resp = await signatureRequest - console.log(resp) - - expect(resp.return_code).toEqual(0x9000) - expect(resp.error_message).toEqual('No errors') - expect(resp).toHaveProperty('signature') - - // Now verify the signature - const sha3 = require('js-sha3') - const msgHash = Buffer.from(sha3.keccak256(tx), 'hex') - - const signatureDER = resp.signature - const signature = secp256k1.signatureImport(Uint8Array.from(signatureDER)) - - const pk = Uint8Array.from(respPk.compressed_pk) - - const signatureOk = secp256k1.ecdsaVerify(signature, msgHash, pk) - expect(signatureOk).toEqual(true) - } finally { - await sim.close() - } - }) - - test.concurrent.each(DEVICE_MODELS)('sign basic normal Eth', async function (m) { - const sim = new Zemu(m.path) - try { - await sim.start({ ...defaultOptions, model: m.name }) - const app = new CosmosApp(sim.getTransport()) - - // Enable expert to allow sign with eth path - await sim.toggleExpertMode(); - - const path = [44, 60, 0, 0, 0] - const tx = Buffer.from(JSON.stringify(example_tx_str_basic), "utf-8") - const hrp = 'inj' - - // check with invalid HRP - const errorRespPk = await app.getAddressAndPubKey(path, 'forbiddenHRP') - expect(errorRespPk.return_code).toEqual(0x6986) - expect(errorRespPk.error_message).toEqual('Transaction rejected') - - // do not wait here.. - const signatureRequest = app.sign(path, tx, hrp) - - // Wait until we are not in the main menu - await sim.waitUntilScreenIsNot(sim.getMainMenuSnapshot()) - await sim.compareSnapshotsAndApprove('.', `${m.prefix.toLowerCase()}-sign_basic_eth`) - - const resp = await signatureRequest - console.log(resp) - - expect(resp.return_code).toEqual(0x9000) - expect(resp.error_message).toEqual('No errors') - expect(resp).toHaveProperty('signature') - - // get address / publickey - const respPk = await app.getAddressAndPubKey(path, hrp) - expect(respPk.return_code).toEqual(0x9000) - expect(respPk.error_message).toEqual('No errors') - console.log(respPk) - - // Now verify the signature - const sha3 = require('js-sha3') - const msgHash = Buffer.from(sha3.keccak256(tx), 'hex') - - const signatureDER = resp.signature - const signature = secp256k1.signatureImport(Uint8Array.from(signatureDER)) - - const pk = Uint8Array.from(respPk.compressed_pk) - - const signatureOk = secp256k1.ecdsaVerify(signature, msgHash, pk) - expect(signatureOk).toEqual(true) - } finally { - await sim.close() - } - }) - - test.concurrent.each(DEVICE_MODELS)('sign basic normal Eth no expert', async function (m) { - const sim = new Zemu(m.path) - try { - await sim.start({ ...defaultOptions, model: m.name }) - const app = new CosmosApp(sim.getTransport()) - - const path = [44, 60, 0, 0, 0] - const tx = Buffer.from(JSON.stringify(example_tx_str_basic), "utf-8") - - // get address / publickey - const respPk = await app.getAddressAndPubKey(path, 'inj') - expect(respPk.return_code).toEqual(0x9000) - expect(respPk.error_message).toEqual('No errors') - console.log(respPk) - - // do not wait here.. - const signatureRequest = app.sign(path, tx) - - // Wait until we are not in the main menu - await sim.waitUntilScreenIsNot(sim.getMainMenuSnapshot()) - let nav = undefined; - if (m.name === 'stax') { - const okButton: IButton = { - x: 200, - y: 540, - delay: 0.25, - }; - nav = new TouchNavigation([ - ButtonKind.ConfirmYesButton, - ]); - nav.schedule[0].button = okButton; - } else { - nav = new ClickNavigation([1, 0]); - } - await sim.navigate('.', `${m.prefix.toLowerCase()}-sign_basic_eth_warning`, nav.schedule); - - const resp = await signatureRequest - console.log(resp) - - expect(resp.return_code).toEqual(0x6984) - } finally { - await sim.close() - } - }) -}) diff --git a/tests_zemu/tests/common.ts b/tests_zemu/tests/common.ts index 722cae2a..6dad1e83 100644 --- a/tests_zemu/tests/common.ts +++ b/tests_zemu/tests/common.ts @@ -18,7 +18,6 @@ import { DEFAULT_START_OPTIONS, IDeviceModel } from '@zondax/zemu' const Resolve = require('path').resolve export const AMINO_JSON_TX = 0x0 -export const TEXTUAL_TX = 0x1 export const APP_SEED = 'equip will roof matter pink blind book anxiety banner elbow sun young' const APP_PATH_S = Resolve('../app/output/app_s.elf') @@ -40,321 +39,54 @@ export const DEVICE_MODELS: IDeviceModel[] = [ { name: 'stax', prefix: 'ST', path: APP_PATH_ST }, ] -export const tx_sign_textual = 'a10192a20168436861696e20696402686d792d636861696ea2016e4163636f756e74206e756d626572026131a2016853657175656e6365026132a301674164647265737302782d636f736d6f7331756c6176336873656e7570737771666b77327933737570356b677471776e767161386579687304f5a3016a5075626c6963206b657902781f2f636f736d6f732e63727970746f2e736563703235366b312e5075624b657904f5a3026d5075624b6579206f626a656374030104f5a401634b657902785230324542204444374620453446442045423736204443384120323035452046363544203739304320443330452038413337203541354320323532382045423341203932334120463146422034443739203444030204f5a102781e54686973207472616e73616374696f6e206861732031204d657373616765a3016d4d6573736167652028312f312902781c2f636f736d6f732e62616e6b2e763162657461312e4d736753656e640301a2026e4d736753656e64206f626a6563740302a3016c46726f6d206164647265737302782d636f736d6f7331756c6176336873656e7570737771666b77327933737570356b677471776e76716138657968730303a3016a546f206164647265737302782d636f736d6f7331656a726634637572327779366b667572673966326a707070326833616665356836706b6835740303a30166416d6f756e74026731302041544f4d0303a1026e456e64206f66204d657373616765a201644d656d6f0278193e20e29a9befb88f5c7532363942e29a9befb88f2020202020a2016446656573026a302e3030322041544f4da30169476173206c696d697402673130302730303004f5a3017148617368206f66207261772062797465730278403963303433323930313039633237306232666661396633633066613535613039306330313235656265663838316637646135333937386462663933663733383504f5' - -export const example_tx_str_msgMultiSend = { - "account_number":"10", - "chain_id":"chain-WiONzW", - "fee":{ - "amount":[], - "gas":"200000" - }, - "memo":"", - "msgs":[ - { - "type":"cosmos-sdk/MsgMultiSend", +export const example_tx_str_MsgSend = { + "account_number": "588", + "chain_id": "thorchain", + "fee": { + "amount": [], + "gas": "2000000" + }, + "memo": "TestMemo", + "msgs": [ + { + "type": "thorchain/MsgSend", "value": { - "inputs":[ - { - "address":"cosmos1w4efqfklkezgyt6lncjdwxncrzyzpr2efzcqal", - "coins":[ - { - "amount":"30", - "denom":"stake" - } - ] - } - ], - "outputs":[ - { - "address":"cosmos184hgxlzat3qhm7p28563w4jyw4aa3wcgnj6gtv", - "coins":[ - { - "amount":"10", - "denom":"stake" - } - ] - }, - { - "address":"cosmos1pfyz36qx8z8dm8ktd75mwx5j5vsmkzfn7wrgp9", - "coins":[ - { - "amount":"10", - "denom":"stake" - } - ] - }, - { - "address":"cosmos1xu388ml6krya3ysmlrup2ylxjtzhl4hlaem3ng", - "coins":[ + "amount": [ { - "amount":"10", - "denom":"stake" + "amount": "150000000", + "denom": "rune" } - ] - } - ] + ], + "from_address": "tthor1c648xgpter9xffhmcqvs7lzd7hxh0prgv5t5gp", + "to_address": "tthor10xgrknu44d83qr4s4uw56cqxg0hsev5e68lc9z" } - } - ], - "sequence":"16", -} - -export const example_tx_str_basic = { - account_number: '108', - chain_id: 'cosmoshub-4', - fee: { - amount: [ - { - amount: '600', - denom: 'uatom', - }, - ], - gas: '200000', - }, - memo: '', - msgs: [ - { - type: 'cosmos-sdk/MsgWithdrawDelegationReward', - value: { - delegator_address: 'cosmos1w34k53py5v5xyluazqpq65agyajavep2rflq6h', - validator_address: 'cosmosvaloper1kn3wugetjuy4zetlq6wadchfhvu3x740ae6z6x', - }, - }, - { - type: 'cosmos-sdk/MsgWithdrawDelegationReward', - value: { - delegator_address: 'cosmos1w34k53py5v5xyluazqpq65agyajavep2rflq6h', - validator_address: 'cosmosvaloper1sjllsnramtg3ewxqwwrwjxfgc4n4ef9u2lcnj0', - }, - }, - ], - sequence: '106', -} - -export const example_tx_str_expert = { - account_number: '108', - chain_id: 'cosmoshub-2', - fee: { - amount: [ - { - amount: '600', - denom: 'uatom', - }, - ], - gas: '200000', - }, - memo: '', - msgs: [ - { - type: 'cosmos-sdk/MsgWithdrawDelegationReward', - value: { - delegator_address: 'cosmos1kky4yzth6gdrm8ga5zlfwhav33yr7hl87jycah', - validator_address: 'cosmosvaloper1kn3wugetjuy4zetlq6wadchfhvu3x740ae6z6x', - }, - }, - { - type: 'cosmos-sdk/MsgWithdrawDelegationReward', - value: { - delegator_address: 'cosmos1kky4yzth6gdrm8ga5zlfwhav33yr7hl87jycah', - validator_address: 'cosmosvaloper1sjllsnramtg3ewxqwwrwjxfgc4n4ef9u2lcnj0', - }, - }, - ], - sequence: '106', -} - -export const example_tx_str_combined = { - account_number: '108', - chain_id: 'cosmoshub-4', - fee: { - amount: [ - { - amount: '600', - denom: 'uatom', - }, - ], - gas: '200000', - }, - memo: '', - msgs: [ - { - type: 'cosmos-sdk/MsgWithdrawDelegationReward', - value: { - delegator_address: 'cosmos1w34k53py5v5xyluazqpq65agyajavep2rflq6h', - validator_address: 'cosmosvaloper1648ynlpdw7fqa2axt0w2yp3fk542junl7rsvq6', - }, - }, - { - type: 'cosmos-sdk/MsgDelegate', - value: { - amount: { - amount: '20139397', - denom: 'uatom', - }, - delegator_address: 'cosmos1w34k53py5v5xyluazqpq65agyajavep2rflq6h', - validator_address: 'cosmosvaloper1648ynlpdw7fqa2axt0w2yp3fk542junl7rsvq6', - }, - }, + } ], - sequence: '106', -} + "sequence": "5" +}; -export const example_tx_str_basic2 = { - account_number: '482', - chain_id: 'cosmoshub-4', - fee: { - amount: [], - gas: '10000000', +export const example_tx_str_MsgDeposit = { + "account_number": "588", + "chain_id": "thorchain", + "fee": { + "amount": [], + "gas": "10000000" }, - memo: '', - msgs: [ - { - type: 'somechain/MsgNew', - value: { - coins: [ - { - amount: '20139397', - asset: 'uatom', - }, - ], - memo: 'memo_text_goes_here', - signer: 'cosmos1w34k53py5v5xyluazqpq65agyajavep2rflq6h', - }, - }, - ], - sequence: '6', -} - -export const example_tx_str_basic_extra_fields = { - account_number: '108', - chain_id: 'cosmoshub-4', - extra_field: 'empty', - fee: { - amount: [ + "memo": "", + "msgs": [ { - amount: '600', - denom: 'uatom', - }, - ], - gas: '200000', - }, - foo: 'bar', - memo: '', - msgs: [ - { - type: 'cosmos-sdk/MsgWithdrawDelegationReward', - value: { - delegator_address: 'cosmos1w34k53py5v5xyluazqpq65agyajavep2rflq6h', - validator_address: 'cosmosvaloper1kn3wugetjuy4zetlq6wadchfhvu3x740ae6z6x', - }, - }, - { - type: 'cosmos-sdk/MsgWithdrawDelegationReward', - value: { - delegator_address: 'cosmos1w34k53py5v5xyluazqpq65agyajavep2rflq6h', - validator_address: 'cosmosvaloper1sjllsnramtg3ewxqwwrwjxfgc4n4ef9u2lcnj0', - }, - }, - ], - sequence: '106', - unknown_field: 123456 -} - -export const ibc_denoms = { - account_number: "0", - chain_id: "cosmoshub-4", - fee: { - amount: [ - { - "amount": '5', - "denom": 'uatom', + "type": "thorchain/MsgDeposit", + "value": { + "coins": [ + { + "amount": "330000000", + "asset": "THOR.RUNE" + } + ], + "memo": "SWAP:BNB.BNB:tbnb1qk2m905ypazwfau9cn0qnr4c4yxz63v9u9md20:", + "signer": "tthor1c648xgpter9xffhmcqvs7lzd7hxh0prgv5t5gp" + } } - ], - gas: '10000', - }, - memo: "testmemo", - msgs: [ - { - inputs: [ - { - address: "cosmosaccaddr1d9h8qat5e4ehc5", - coins: [ - { - amount: '10', - denom: 'ibc/27394FB092D2ECCD56123C74F36E4C1F926001CEADA9CA97EA622B25F41E5EB2' - } - ] - } - ], - outputs: [ - { - address: 'cosmosaccaddr1da6hgur4wse3jx32', - coins: [ - { - amount: '10', - denom: 'ibc/27394FB092D2ECCD56123C74F36E4C1F926001CEADA9CA97EA622B25F41E5EB2' - } - ] - } - ] - } ], - sequence: '1' -} - -export const setWithdrawAddress = { - account_number: '8', - chain_id: 'testing', - fee: { - amount: [ - { - amount: '5000', - denom: 'uatom' - } - ], - gas: '200000' - }, - memo: '', - msgs: [ - { - type: 'cosmos-sdk/MsgSetWithdrawAddress', - value: { - delegator_address: 'cosmos1hr9x0sjvel6z3vt9qny8sdd5gnnlgk0p69d6cv', - withdraw_address: 'cosmos12d64j98tjjpqkx70r08aspc4nvntqp2w6wr2de' - } - }, - { - type: 'cosmos-sdk/MsgWithdrawDelegationReward', - value: { - delegator_address: 'cosmos1hr9x0sjvel6z3vt9qny8sdd5gnnlgk0p69d6cv', - validator_address: 'cosmosvaloper13dr26wdygna3s8fdl5tlc45m2le2ydyddxzj49' - } - } - ], - sequence: '7' - } - - export const cliGovDeposit = { - account_number: '8', - chain_id: 'my-chain', - fee: { - amount: [], - gas: '200000' - }, - memo: 'A B C', - msgs: [ - { - type: 'cosmos-sdk/MsgDeposit', - value: { - amount: [{ - amount: '10', - denom: 'stake', - }], - depositor: 'cosmos1xl2256vdh0j68khz9wq88hnyqcq0f5f4za2480', - proposal_id: '1' - } - }, - ], - sequence: '2' - } + "sequence": "6" +}; \ No newline at end of file diff --git a/tests_zemu/tests/standard.test.ts b/tests_zemu/tests/standard.test.ts deleted file mode 100644 index 9ec51ca4..00000000 --- a/tests_zemu/tests/standard.test.ts +++ /dev/null @@ -1,244 +0,0 @@ -/** ****************************************************************************** - * (c) 2018 - 2023 Zondax AG - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - ******************************************************************************* */ - -import Zemu, { zondaxMainmenuNavigation, ButtonKind, ClickNavigation, TouchNavigation } from '@zondax/zemu' -import { CosmosApp } from '@zondax/ledger-cosmos-js' -import { defaultOptions, DEVICE_MODELS, example_tx_str_basic, example_tx_str_basic2, ibc_denoms } from './common' - -// @ts-ignore -import secp256k1 from 'secp256k1/elliptic' -// @ts-ignore -import crypto from 'crypto' -import { ActionKind, IButton, INavElement } from '@zondax/zemu/dist/types' - -jest.setTimeout(90000) - -describe('Standard', function () { - test.concurrent.each(DEVICE_MODELS)('can start and stop container', async function (m) { - const sim = new Zemu(m.path) - try { - await sim.start({ ...defaultOptions, model: m.name }) - } finally { - await sim.close() - } - }) - - test.concurrent.each(DEVICE_MODELS)('main menu', async function (m) { - const sim = new Zemu(m.path) - try { - await sim.start({ ...defaultOptions, model: m.name }) - const nav = zondaxMainmenuNavigation(m.name, [1, 0, 0, 4, -5]) - await sim.navigateAndCompareSnapshots('.', `${m.prefix.toLowerCase()}-mainmenu`, nav.schedule) - } finally { - await sim.close() - } - }) - - test.concurrent.each(DEVICE_MODELS)('get app version', async function (m) { - const sim = new Zemu(m.path) - try { - await sim.start({ ...defaultOptions, model: m.name }) - const app = new CosmosApp(sim.getTransport()) - const resp = await app.getVersion() - - console.log(resp) - - expect(resp.return_code).toEqual(0x9000) - expect(resp.error_message).toEqual('No errors') - expect(resp).toHaveProperty('test_mode') - expect(resp).toHaveProperty('major') - expect(resp).toHaveProperty('minor') - expect(resp).toHaveProperty('patch') - } finally { - await sim.close() - } - }) - - test.concurrent.each(DEVICE_MODELS)('get address', async function (m) { - const sim = new Zemu(m.path) - try { - await sim.start({ ...defaultOptions, model: m.name }) - const app = new CosmosApp(sim.getTransport()) - - // Derivation path. First 3 items are automatically hardened! - const path = [44, 118, 5, 0, 3] - const resp = await app.getAddressAndPubKey(path, 'cosmos') - - console.log(resp) - - expect(resp.return_code).toEqual(0x9000) - expect(resp.error_message).toEqual('No errors') - - expect(resp).toHaveProperty('bech32_address') - expect(resp).toHaveProperty('compressed_pk') - - expect(resp.bech32_address).toEqual('cosmos1wkd9tfm5pqvhhaxq77wv9tvjcsazuaykwsld65') - expect(resp.compressed_pk.length).toEqual(33) - expect(resp.compressed_pk.toString("hex")).toEqual('035c986b9ae5fbfb8e1e9c12c817f5ef8fdb821cdecaa407f1420ec4f8f1d766bf') - } finally { - await sim.close() - } - }) - - test.concurrent.each(DEVICE_MODELS)('show address', async function (m) { - const sim = new Zemu(m.path) - try { - await sim.start({ - ...defaultOptions, - model: m.name, - approveKeyword: m.name === 'stax' ? 'QR' : '', - approveAction: ButtonKind.ApproveTapButton, - }) - const app = new CosmosApp(sim.getTransport()) - - // Derivation path. First 3 items are automatically hardened! - const path = [44, 118, 5, 0, 3] - const respRequest = app.showAddressAndPubKey(path, 'cosmos') - // Wait until we are not in the main menu - await sim.waitUntilScreenIsNot(sim.getMainMenuSnapshot()) - await sim.compareSnapshotsAndApprove('.', `${m.prefix.toLowerCase()}-show_address`) - - const resp = await respRequest - console.log(resp) - - expect(resp.return_code).toEqual(0x9000) - expect(resp.error_message).toEqual('No errors') - - expect(resp).toHaveProperty('bech32_address') - expect(resp).toHaveProperty('compressed_pk') - - expect(resp.bech32_address).toEqual('cosmos1wkd9tfm5pqvhhaxq77wv9tvjcsazuaykwsld65') - expect(resp.compressed_pk.length).toEqual(33) - expect(resp.compressed_pk.toString("hex")).toEqual('035c986b9ae5fbfb8e1e9c12c817f5ef8fdb821cdecaa407f1420ec4f8f1d766bf') - } finally { - await sim.close() - } - }) - - test.concurrent.each(DEVICE_MODELS)('show Eth address', async function (m) { - const sim = new Zemu(m.path) - try { - await sim.start({ - ...defaultOptions, - model: m.name, - approveKeyword: m.name === 'stax' ? 'Path' : '', - approveAction: ButtonKind.ApproveTapButton, - }) - const app = new CosmosApp(sim.getTransport()) - - // Derivation path. First 3 items are automatically hardened! - const path = [44, 60, 0, 0, 1] - const hrp = 'inj' - - // check with invalid HRP - const errorRespPk = await app.getAddressAndPubKey(path, 'cosmos') - expect(errorRespPk.return_code).toEqual(0x6986) - expect(errorRespPk.error_message).toEqual('Transaction rejected') - - const respRequest = app.showAddressAndPubKey(path, hrp) - // Wait until we are not in the main menu - await sim.waitUntilScreenIsNot(sim.getMainMenuSnapshot()) - await sim.compareSnapshotsAndApprove('.', `${m.prefix.toLowerCase()}-show_eth_address`) - - const resp = await respRequest - console.log(resp) - - expect(resp.return_code).toEqual(0x9000) - expect(resp.error_message).toEqual('No errors') - - expect(resp).toHaveProperty('bech32_address') - expect(resp).toHaveProperty('compressed_pk') - - expect(resp.compressed_pk.length).toEqual(33) - - // Verify address - const secp256k1 = require("secp256k1"); - const keccak = require("keccak256"); - const { bech32 } = require("bech32"); - - // Take the compressed pubkey and verify that the expected address can be computed - const uncompressPubKeyUint8Array = secp256k1.publicKeyConvert(resp.compressed_pk, false).subarray(1); - const ethereumAddressBuffer = Buffer.from(keccak(Buffer.from(uncompressPubKeyUint8Array))).subarray(-20); - const eth_address = bech32.encode(hrp, bech32.toWords(ethereumAddressBuffer)); // "cosmos15n2h0lzvfgc8x4fm6fdya89n78x6ee2fm7fxr3" - - expect(resp.bech32_address).toEqual(eth_address) - expect(resp.bech32_address).toEqual('inj15n2h0lzvfgc8x4fm6fdya89n78x6ee2f3h7z3f') - } finally { - await sim.close() - } - }) - - test.concurrent.each(DEVICE_MODELS)('show address HUGE', async function (m) { - const sim = new Zemu(m.path) - try { - await sim.start({ - ...defaultOptions, - model: m.name, - approveKeyword: m.name === 'stax' ? 'QR' : '', - approveAction: ButtonKind.ApproveTapButton, - }) - const app = new CosmosApp(sim.getTransport()) - - // Derivation path. First 3 items are automatically hardened! - const path = [44, 118, 2147483647, 0, 4294967295] - const resp = await app.showAddressAndPubKey(path, 'cosmos') - console.log(resp) - - expect(resp.return_code).toEqual(0x6985) - expect(resp.error_message).toEqual('Conditions not satisfied') - } finally { - await sim.close() - } - }) - - test.concurrent.each(DEVICE_MODELS)('show address HUGE Expert', async function (m) { - const sim = new Zemu(m.path) - try { - await sim.start({ - ...defaultOptions, - model: m.name, - approveKeyword: m.name === 'stax' ? 'Path' : '', - approveAction: ButtonKind.ApproveTapButton, - }) - const app = new CosmosApp(sim.getTransport()) - - // Activate expert mode - await sim.toggleExpertMode(); - - // Derivation path. First 3 items are automatically hardened! - const path = [44, 118, 2147483647, 0, 4294967295] - const respRequest = app.showAddressAndPubKey(path, 'cosmos') - - // Wait until we are not in the main menu - await sim.waitUntilScreenIsNot(sim.getMainMenuSnapshot()) - await sim.compareSnapshotsAndApprove('.', `${m.prefix.toLowerCase()}-show_address_huge`) - - const resp = await respRequest - console.log(resp) - - expect(resp.return_code).toEqual(0x9000) - expect(resp.error_message).toEqual('No errors') - - expect(resp).toHaveProperty('bech32_address') - expect(resp).toHaveProperty('compressed_pk') - - expect(resp.bech32_address).toEqual('cosmos1ex7gkwwmq4vcgdwcalaq3t20pgwr37u6ntkqzh') - expect(resp.compressed_pk.length).toEqual(33) - } finally { - await sim.close() - } - }) -}) diff --git a/tests_zemu/tests/textual.test.ts b/tests_zemu/tests/textual.test.ts deleted file mode 100644 index 96532027..00000000 --- a/tests_zemu/tests/textual.test.ts +++ /dev/null @@ -1,284 +0,0 @@ -/** ****************************************************************************** - * (c) 2018-2022 Zondax GmbH - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - ******************************************************************************* */ - -import Zemu, { ClickNavigation, TouchNavigation } from '@zondax/zemu' -// @ts-ignore -import { CosmosApp } from '@zondax/ledger-cosmos-js' -import { defaultOptions, DEVICE_MODELS, tx_sign_textual, TEXTUAL_TX } from './common' -// @ts-ignore -import secp256k1 from 'secp256k1/elliptic' -// @ts-ignore -import crypto from 'crypto' -import { ButtonKind, IButton } from '@zondax/zemu/dist/types' - -jest.setTimeout(90000) - -describe('Textual', function () { - // eslint-disable-next-line jest/expect-expect - test.concurrent.each(DEVICE_MODELS)('can start and stop container', async function (m) { - const sim = new Zemu(m.path) - try { - await sim.start({ ...defaultOptions, model: m.name }) - } finally { - await sim.close() - } - }) - - test.concurrent.each(DEVICE_MODELS)('sign basic textual', async function (m) { - const sim = new Zemu(m.path) - try { - await sim.start({ ...defaultOptions, model: m.name }) - const app = new CosmosApp(sim.getTransport()) - - const path = [44, 118, 0, 0, 0] - const tx = Buffer.from(tx_sign_textual, 'hex') - const hrp = 'cosmos' - - // get address / publickey - const respPk = await app.getAddressAndPubKey(path, hrp) - expect(respPk.return_code).toEqual(0x9000) - expect(respPk.error_message).toEqual('No errors') - console.log(respPk) - - // do not wait here.. - const signatureRequest = app.sign(path, tx, hrp, TEXTUAL_TX) - - // Wait until we are not in the main menu - await sim.waitUntilScreenIsNot(sim.getMainMenuSnapshot()) - await sim.compareSnapshotsAndApprove('.', `${m.prefix.toLowerCase()}-textual-sign_basic`) - - const resp = await signatureRequest - console.log(resp) - - expect(resp.return_code).toEqual(0x9000) - expect(resp.error_message).toEqual('No errors') - expect(resp).toHaveProperty('signature') - - // Now verify the signature - const hash = crypto.createHash('sha256') - const msgHash = Uint8Array.from(hash.update(tx).digest()) - - const signatureDER = resp.signature - const signature = secp256k1.signatureImport(Uint8Array.from(signatureDER)) - - const pk = Uint8Array.from(respPk.compressed_pk) - - const signatureOk = secp256k1.ecdsaVerify(signature, msgHash, pk) - expect(signatureOk).toEqual(true) - } finally { - await sim.close() - } - }) - - test.concurrent.each(DEVICE_MODELS)('sign basic textual expert', async function (m) { - const sim = new Zemu(m.path) - try { - await sim.start({ ...defaultOptions, model: m.name }) - const app = new CosmosApp(sim.getTransport()) - - // Change to expert mode so we can skip fields - await sim.toggleExpertMode() - - const path = [44, 118, 0, 0, 0] - const tx = Buffer.from(tx_sign_textual, 'hex') - const hrp = 'cosmos' - - // get address / publickey - const respPk = await app.getAddressAndPubKey(path, hrp) - expect(respPk.return_code).toEqual(0x9000) - expect(respPk.error_message).toEqual('No errors') - console.log(respPk) - - // do not wait here.. - const signatureRequest = app.sign(path, tx, hrp, TEXTUAL_TX) - - // Wait until we are not in the main menu - await sim.waitUntilScreenIsNot(sim.getMainMenuSnapshot()) - await sim.compareSnapshotsAndApprove('.', `${m.prefix.toLowerCase()}-textual-sign_basic_expert`) - - const resp = await signatureRequest - console.log(resp) - - expect(resp.return_code).toEqual(0x9000) - expect(resp.error_message).toEqual('No errors') - expect(resp).toHaveProperty('signature') - - // Now verify the signature - const hash = crypto.createHash('sha256') - const msgHash = Uint8Array.from(hash.update(tx).digest()) - - const signatureDER = resp.signature - const signature = secp256k1.signatureImport(Uint8Array.from(signatureDER)) - - const pk = Uint8Array.from(respPk.compressed_pk) - - const signatureOk = secp256k1.ecdsaVerify(signature, msgHash, pk) - expect(signatureOk).toEqual(true) - } finally { - await sim.close() - } - }) - - test.concurrent.each(DEVICE_MODELS)('sign basic textual eth ', async function (m) { - const sim = new Zemu(m.path) - try { - await sim.start({ ...defaultOptions, model: m.name }) - const app = new CosmosApp(sim.getTransport()) - - // Enable expert to allow sign with eth path - await sim.toggleExpertMode(); - - const path = [44, 60, 0, 0, 0] - const tx = Buffer.from(tx_sign_textual, 'hex') - const hrp = 'inj' - - // get address / publickey - const respPk = await app.getAddressAndPubKey(path, hrp) - expect(respPk.return_code).toEqual(0x9000) - expect(respPk.error_message).toEqual('No errors') - console.log(respPk) - - // do not wait here.. - const signatureRequest = app.sign(path, tx, hrp, TEXTUAL_TX) - - // Wait until we are not in the main menu - await sim.waitUntilScreenIsNot(sim.getMainMenuSnapshot()) - await sim.compareSnapshotsAndApprove('.', `${m.prefix.toLowerCase()}-textual-sign_basic_eth`) - - const resp = await signatureRequest - console.log(resp) - - expect(resp.return_code).toEqual(0x9000) - expect(resp.error_message).toEqual('No errors') - expect(resp).toHaveProperty('signature') - - // Now verify the signature - const sha3 = require('js-sha3') - const msgHash = Buffer.from(sha3.keccak256(tx), 'hex') - - const signatureDER = resp.signature - const signature = secp256k1.signatureImport(Uint8Array.from(signatureDER)) - - const pk = Uint8Array.from(respPk.compressed_pk) - - const signatureOk = secp256k1.ecdsaVerify(signature, msgHash, pk) - expect(signatureOk).toEqual(true) - } finally { - await sim.close() - } - }) - - test.concurrent.each(DEVICE_MODELS)('sign basic textual eth warning ', async function (m) { - const sim = new Zemu(m.path) - try { - await sim.start({ ...defaultOptions, model: m.name }) - const app = new CosmosApp(sim.getTransport()) - - const path = [44, 60, 0, 0, 0] - const tx = Buffer.from(tx_sign_textual, 'hex') - const hrp = 'inj' - - // get address / publickey - const respPk = await app.getAddressAndPubKey(path, hrp) - expect(respPk.return_code).toEqual(0x9000) - expect(respPk.error_message).toEqual('No errors') - console.log(respPk) - - // do not wait here.. - const signatureRequest = app.sign(path, tx, hrp, TEXTUAL_TX) - - // Wait until we are not in the main menu - await sim.waitUntilScreenIsNot(sim.getMainMenuSnapshot()) - let nav = undefined; - if (m.name === 'stax') { - const okButton: IButton = { - x: 200, - y: 540, - delay: 0.25, - }; - nav = new TouchNavigation([ - ButtonKind.ConfirmYesButton, - ]); - nav.schedule[0].button = okButton; - } else { - nav = new ClickNavigation([1, 0]); - } - await sim.navigate('.', `${m.prefix.toLowerCase()}-textual-sign_basic_eth_warning`, nav.schedule); - - const resp = await signatureRequest - console.log(resp) - - expect(resp.return_code).toEqual(0x6984) - } finally { - await sim.close() - } - }) - - test.concurrent.each(DEVICE_MODELS)('sign basic textual evmos ', async function (m) { - const sim = new Zemu(m.path) - try { - await sim.start({ ...defaultOptions, model: m.name }) - const app = new CosmosApp(sim.getTransport()) - - // Enable expert to allow sign with eth path - await sim.toggleExpertMode() - - const path = [44, 60, 0, 0, 0] - const tx = Buffer.from(tx_sign_textual, 'hex') - const hrp = 'evmos' - - // get address / publickey - const respPk = await app.getAddressAndPubKey(path, hrp) - expect(respPk.return_code).toEqual(0x9000) - expect(respPk.error_message).toEqual('No errors') - console.log(respPk) - - // do not wait here.. - const signatureRequest = app.sign(path, tx, hrp, TEXTUAL_TX) - - // Wait until we are not in the main menu - await sim.waitUntilScreenIsNot(sim.getMainMenuSnapshot()) - const last_index = await sim.navigateUntilText( - '.', - `${m.prefix.toLowerCase()}-textual-sign_basic_evmos`, - sim.startOptions.approveKeyword, - false, - false, - ) - - const resp = await signatureRequest - console.log(resp) - - expect(resp.return_code).toEqual(0x9000) - expect(resp.error_message).toEqual('No errors') - expect(resp).toHaveProperty('signature') - - // Now verify the signature - const sha3 = require('js-sha3') - const msgHash = Buffer.from(sha3.keccak256(tx), 'hex') - - const signatureDER = resp.signature - const signature = secp256k1.signatureImport(Uint8Array.from(signatureDER)) - - const pk = Uint8Array.from(respPk.compressed_pk) - - const signatureOk = secp256k1.ecdsaVerify(signature, msgHash, pk) - expect(signatureOk).toEqual(true) - } finally { - await sim.close() - } - }) -}) diff --git a/tests_zemu/tests/thor.test.ts b/tests_zemu/tests/thor.test.ts new file mode 100644 index 00000000..0425dd5e --- /dev/null +++ b/tests_zemu/tests/thor.test.ts @@ -0,0 +1,101 @@ +/** ****************************************************************************** + * (c) 2018-2022 Zondax GmbH + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + ******************************************************************************* */ + +import Zemu, { ClickNavigation, TouchNavigation, IDeviceModel } from '@zondax/zemu' +// @ts-ignore +import { CosmosApp } from '@zondax/ledger-cosmos-js' +import { + defaultOptions, + DEVICE_MODELS, + AMINO_JSON_TX, + example_tx_str_MsgSend, + example_tx_str_MsgDeposit, +} from './common' + +// @ts-ignore +import secp256k1 from 'secp256k1/elliptic' +// @ts-ignore +import crypto from 'crypto' +import { ButtonKind, IButton } from '@zondax/zemu/dist/types' + +jest.setTimeout(120000) + +async function signAndVerifyTransaction(m: IDeviceModel, test_name: String, transaction: any) { + const sim = new Zemu(m.path); + try { + await sim.start({ ...defaultOptions, model: m.name }); + const app = new CosmosApp(sim.getTransport()); + + const path = [44, 931, 0, 0, 0]; + const tx = Buffer.from(JSON.stringify(transaction), "utf-8"); + const hrp = 'thor'; + + // get address / publickey + const respPk = await app.getAddressAndPubKey(path, hrp); + expect(respPk.return_code).toEqual(0x9000) + expect(respPk.error_message).toEqual('No errors') + console.log(respPk); + + // do not wait here.. + const signatureRequest = app.sign(path, tx, hrp, AMINO_JSON_TX); + + // Wait until we are not in the main menu + await sim.waitUntilScreenIsNot(sim.getMainMenuSnapshot()); + await sim.compareSnapshotsAndApprove('.', `${m.prefix.toLowerCase()}-${test_name}`); + + const resp = await signatureRequest; + console.log(resp); + + expect(resp.return_code).toEqual(0x9000) + expect(resp.error_message).toEqual('No errors') + expect(resp).toHaveProperty('signature') + + // Now verify the signature + const hash = crypto.createHash('sha256'); + const msgHash = Uint8Array.from(hash.update(tx).digest()); + + const signatureDER = resp.signature; + const signature = secp256k1.signatureImport(Uint8Array.from(signatureDER)); + + const pk = Uint8Array.from(respPk.compressed_pk); + + const signatureOk = secp256k1.ecdsaVerify(signature, msgHash, pk); + expect(signatureOk).toEqual(true); + } finally { + await sim.close(); + } +} + +describe('Thor', function () { + // eslint-disable-next-line jest/expect-expect + test.concurrent.each([DEVICE_MODELS])('can start and stop container', async function (m) { + const sim = new Zemu(m.path) + try { + await sim.start({ ...defaultOptions, model: m.name }) + } finally { + await sim.close() + } + }); + + test.concurrent.each(DEVICE_MODELS)('sign msgSend normal', async function (m) { + await signAndVerifyTransaction(m, 'sign_msgSend', example_tx_str_MsgSend); + }); + + test.concurrent.each(DEVICE_MODELS)('sign msgDeposit normal', async function (m) { + await signAndVerifyTransaction(m, 'sign_msgDeposit', example_tx_str_MsgDeposit); + }); + +})