From e7e6bf9a867e81cb23a8f374fad9d00d7de8d8f3 Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Wed, 13 Mar 2024 18:24:29 +0700 Subject: [PATCH 1/7] update zxlib and sdk --- deps/ledger-zxlib | 2 +- deps/nanos-secure-sdk | 2 +- deps/nanosplus-secure-sdk | 2 +- deps/nanox-secure-sdk | 2 +- deps/stax-secure-sdk | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/deps/ledger-zxlib b/deps/ledger-zxlib index 52dfdeae..f19112bb 160000 --- a/deps/ledger-zxlib +++ b/deps/ledger-zxlib @@ -1 +1 @@ -Subproject commit 52dfdeae81bb0b50cf3332f4690ed5c978f15f27 +Subproject commit f19112bb6340721c276af459924b3c4261c0291a diff --git a/deps/nanos-secure-sdk b/deps/nanos-secure-sdk index 30189cfd..62dd0477 160000 --- a/deps/nanos-secure-sdk +++ b/deps/nanos-secure-sdk @@ -1 +1 @@ -Subproject commit 30189cfd070040e5c144d4dab103d549302dcfff +Subproject commit 62dd047774b5e8a6b4e6158b493ee029453b5bae diff --git a/deps/nanosplus-secure-sdk b/deps/nanosplus-secure-sdk index 45ccba9c..48bb8d49 160000 --- a/deps/nanosplus-secure-sdk +++ b/deps/nanosplus-secure-sdk @@ -1 +1 @@ -Subproject commit 45ccba9cd72eaae0d1305b9d519d3702fb4e138b +Subproject commit 48bb8d493548f840ddd261bbe60930f3f5966e7b diff --git a/deps/nanox-secure-sdk b/deps/nanox-secure-sdk index 2d6e2e0d..48bb8d49 160000 --- a/deps/nanox-secure-sdk +++ b/deps/nanox-secure-sdk @@ -1 +1 @@ -Subproject commit 2d6e2e0d2eda2a09bc79bdf57b6b2e3d708eec1d +Subproject commit 48bb8d493548f840ddd261bbe60930f3f5966e7b diff --git a/deps/stax-secure-sdk b/deps/stax-secure-sdk index cabc1590..a23bad84 160000 --- a/deps/stax-secure-sdk +++ b/deps/stax-secure-sdk @@ -1 +1 @@ -Subproject commit cabc159007c6d257636ce8fb5b779b7b69f78c91 +Subproject commit a23bad84cbf39a5071644d2191b177191c089b23 From 23ff38a7f3bf35101f26cc339350c2f7e5bb2aa8 Mon Sep 17 00:00:00 2001 From: neithanmo Date: Wed, 13 Mar 2024 18:24:37 +0700 Subject: [PATCH 2/7] remove protobuf dependencies --- CMakeLists.txt | 10 - Makefile | 3 - app/Makefile | 3 - deps/nanopb | 1 - deps/nanopb_tiny/pb.h | 880 ------------------ deps/nanopb_tiny/pb_common.c | 364 -------- deps/nanopb_tiny/pb_common.h | 50 - deps/nanopb_tiny/pb_decode.c | 1662 ---------------------------------- deps/nanopb_tiny/pb_decode.h | 207 ----- 9 files changed, 3180 deletions(-) delete mode 160000 deps/nanopb delete mode 100644 deps/nanopb_tiny/pb.h delete mode 100644 deps/nanopb_tiny/pb_common.c delete mode 100644 deps/nanopb_tiny/pb_common.h delete mode 100644 deps/nanopb_tiny/pb_decode.c delete mode 100644 deps/nanopb_tiny/pb_decode.h diff --git a/CMakeLists.txt b/CMakeLists.txt index e1bb44d2..43b4a7ac 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -85,13 +85,6 @@ file(GLOB_RECURSE TINYCBOR_SRC ${CMAKE_CURRENT_SOURCE_DIR}/deps/tinycbor/src/cborvalidation.c ) -# static libs -file(GLOB_RECURSE TINYPB_SRC - ${CMAKE_CURRENT_SOURCE_DIR}/deps/nanopb_tiny/pb_common.c - ${CMAKE_CURRENT_SOURCE_DIR}/deps/nanopb_tiny/pb_decode.c - ${CMAKE_CURRENT_SOURCE_DIR}/deps/nanopb_tiny/pb_encode.c - ) - file(GLOB_RECURSE LIB_SRC ${CMAKE_CURRENT_SOURCE_DIR}/deps/ledger-zxlib/src/hexutils.c ${CMAKE_CURRENT_SOURCE_DIR}/deps/ledger-zxlib/src/app_mode.c @@ -115,7 +108,6 @@ file(GLOB_RECURSE LIB_SRC add_library(app_lib STATIC ${LIB_SRC} ${TINYCBOR_SRC} - ${TINYPB_SRC} ) target_include_directories(app_lib PUBLIC @@ -123,7 +115,6 @@ target_include_directories(app_lib PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/deps/ledger-zxlib/include ${CMAKE_CURRENT_SOURCE_DIR}/deps/tinycbor/src ${CMAKE_CURRENT_SOURCE_DIR}/deps/picohash/ - ${CMAKE_CURRENT_SOURCE_DIR}/deps/nanopb_tiny/ ${CMAKE_CURRENT_SOURCE_DIR}/app/src ${CMAKE_CURRENT_SOURCE_DIR}/app/src/candid ${CMAKE_CURRENT_SOURCE_DIR}/app/src/lib @@ -146,7 +137,6 @@ target_include_directories(unittests PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/app/src/lib ${CMAKE_CURRENT_SOURCE_DIR}/deps/tinycbor/src ${CMAKE_CURRENT_SOURCE_DIR}/deps/picohash/ - ${CMAKE_CURRENT_SOURCE_DIR}/deps/nanopb_tiny/ ) diff --git a/Makefile b/Makefile index 52ad7147..3470d075 100644 --- a/Makefile +++ b/Makefile @@ -26,9 +26,6 @@ ifeq ($(BOLOS_SDK),) ZXLIB_COMPILE_STAX ?= 1 include $(CURDIR)/deps/ledger-zxlib/dockerized_build.mk -proto: - cd $(CURDIR)/app/src/protobuf && $(CURDIR)/deps/nanopb/generator/protoc ./base_types.proto ./types.proto ./governance.proto ./dfinity.proto --nanopb_out=. - else default: $(MAKE) -C app diff --git a/app/Makefile b/app/Makefile index 49445df7..6a5dc51a 100755 --- a/app/Makefile +++ b/app/Makefile @@ -72,9 +72,6 @@ CFLAGS += -Wvla -Wno-implicit-fallthrough CFLAGS += -I$(MY_DIR)/../deps/tinycbor/src APP_SOURCE_PATH += $(MY_DIR)/../deps/tinycbor-ledger -CFLAGS += -I$(MY_DIR)/../deps/nanopb/ -APP_SOURCE_PATH += $(MY_DIR)/../deps/nanopb_tiny/ - .PHONY: rust rust: @echo "No rust code" diff --git a/deps/nanopb b/deps/nanopb deleted file mode 160000 index f5f65a90..00000000 --- a/deps/nanopb +++ /dev/null @@ -1 +0,0 @@ -Subproject commit f5f65a90c8057a591f3cc98de40874bd78c9880d diff --git a/deps/nanopb_tiny/pb.h b/deps/nanopb_tiny/pb.h deleted file mode 100644 index f1f3a101..00000000 --- a/deps/nanopb_tiny/pb.h +++ /dev/null @@ -1,880 +0,0 @@ -/* Common parts of the nanopb library. Most of these are quite low-level - * stuff. For the high-level interface, see pb_encode.h and pb_decode.h. - */ - -#ifndef PB_H_INCLUDED -#define PB_H_INCLUDED - -/***************************************************************** - * Nanopb compilation time options. You can change these here by * - * uncommenting the lines, or on the compiler command line. * - *****************************************************************/ - -/* Enable support for dynamically allocated fields */ -/* #define PB_ENABLE_MALLOC 1 */ - -/* Define this if your CPU / compiler combination does not support - * unaligned memory access to packed structures. */ -/* #define PB_NO_PACKED_STRUCTS 1 */ - -/* Increase the number of required fields that are tracked. - * A compiler warning will tell if you need this. */ -/* #define PB_MAX_REQUIRED_FIELDS 256 */ - -/* Add support for tag numbers > 65536 and fields larger than 65536 bytes. */ -/* #define PB_FIELD_32BIT 1 */ - -/* Disable support for error messages in order to save some code space. */ -/* #define PB_NO_ERRMSG 1 */ - -/* Disable support for custom streams (support only memory buffers). */ -/* #define PB_BUFFER_ONLY 1 */ - -/* Disable support for 64-bit datatypes, for compilers without int64_t - or to save some code space. */ -/* #define PB_WITHOUT_64BIT 1 */ - -/* Don't encode scalar arrays as packed. This is only to be used when - * the decoder on the receiving side cannot process packed scalar arrays. - * Such example is older protobuf.js. */ -/* #define PB_ENCODE_ARRAYS_UNPACKED 1 */ - -/* Enable conversion of doubles to floats for platforms that do not - * support 64-bit doubles. Most commonly AVR. */ -/* #define PB_CONVERT_DOUBLE_FLOAT 1 */ - -/* Check whether incoming strings are valid UTF-8 sequences. Slows down - * the string processing slightly and slightly increases code size. */ -/* #define PB_VALIDATE_UTF8 1 */ - -/****************************************************************** - * You usually don't need to change anything below this line. * - * Feel free to look around and use the defined macros, though. * - ******************************************************************/ - - -/* Version of the nanopb library. Just in case you want to check it in - * your own program. */ -#define NANOPB_VERSION nanopb-0.4.6-dev - -/* Include all the system headers needed by nanopb. You will need the - * definitions of the following: - * - strlen, memcpy, memset functions - * - [u]int_least8_t, uint_fast8_t, [u]int_least16_t, [u]int32_t, [u]int64_t - * - size_t - * - bool - * - * If you don't have the standard header files, you can instead provide - * a custom header that defines or includes all this. In that case, - * define PB_SYSTEM_HEADER to the path of this file. - */ -#ifdef PB_SYSTEM_HEADER -#include PB_SYSTEM_HEADER -#else - -#include -#include -#include -#include -#include - -#ifdef PB_ENABLE_MALLOC -#include -#endif -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -/* Macro for defining packed structures (compiler dependent). - * This just reduces memory requirements, but is not required. - */ -#if defined(PB_NO_PACKED_STRUCTS) -/* Disable struct packing */ -# define PB_PACKED_STRUCT_START -# define PB_PACKED_STRUCT_END -# define pb_packed -#elif defined(__GNUC__) || defined(__clang__) -/* For GCC and clang */ -# define PB_PACKED_STRUCT_START -# define PB_PACKED_STRUCT_END -# define pb_packed __attribute__((packed)) -#elif defined(__ICCARM__) || defined(__CC_ARM) -/* For IAR ARM and Keil MDK-ARM compilers */ -# define PB_PACKED_STRUCT_START _Pragma("pack(push, 1)") -# define PB_PACKED_STRUCT_END _Pragma("pack(pop)") -# define pb_packed -#elif defined(_MSC_VER) && (_MSC_VER >= 1500) -/* For Microsoft Visual C++ */ -# define PB_PACKED_STRUCT_START __pragma(pack(push, 1)) -# define PB_PACKED_STRUCT_END __pragma(pack(pop)) -# define pb_packed -#else -/* Unknown compiler */ -# define PB_PACKED_STRUCT_START -# define PB_PACKED_STRUCT_END -# define pb_packed -#endif - -/* Handly macro for suppressing unreferenced-parameter compiler warnings. */ -#ifndef PB_UNUSED -#define PB_UNUSED(x) (void)(x) -#endif - -/* Harvard-architecture processors may need special attributes for storing - * field information in program memory. */ -#ifndef PB_PROGMEM -#ifdef __AVR__ -#include -#define PB_PROGMEM PROGMEM -#define PB_PROGMEM_READU32(x) pgm_read_dword(&x) -#else -#define PB_PROGMEM -#define PB_PROGMEM_READU32(x, y) *((uint32_t *)PIC(x)+(y)) -#define PB_PROGMEM_READTYPE(TYPE, VALUE, OFFSET) *((TYPE *)PIC(VALUE)+(OFFSET)) -#endif -#endif - -/* Compile-time assertion, used for checking compatible compilation options. - * If this does not work properly on your compiler, use - * #define PB_NO_STATIC_ASSERT to disable it. - * - * But before doing that, check carefully the error message / place where it - * comes from to see if the error has a real cause. Unfortunately the error - * message is not always very clear to read, but you can see the reason better - * in the place where the PB_STATIC_ASSERT macro was called. - */ -#ifndef PB_NO_STATIC_ASSERT -# ifndef PB_STATIC_ASSERT -# if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L -/* C11 standard _Static_assert mechanism */ -# define PB_STATIC_ASSERT(COND,MSG) _Static_assert(COND,#MSG); -# else -/* Classic negative-size-array static assert mechanism */ -# define PB_STATIC_ASSERT(COND, MSG) typedef char PB_STATIC_ASSERT_MSG(MSG, __LINE__, __COUNTER__)[(COND)?1:-1]; -# define PB_STATIC_ASSERT_MSG(MSG, LINE, COUNTER) PB_STATIC_ASSERT_MSG_(MSG, LINE, COUNTER) -# define PB_STATIC_ASSERT_MSG_(MSG, LINE, COUNTER) pb_static_assertion_##MSG##_##LINE##_##COUNTER -# endif -# endif -#else -/* Static asserts disabled by PB_NO_STATIC_ASSERT */ -# define PB_STATIC_ASSERT(COND,MSG) -#endif - -/* Number of required fields to keep track of. */ -#ifndef PB_MAX_REQUIRED_FIELDS -#define PB_MAX_REQUIRED_FIELDS 64 -#endif - -#if PB_MAX_REQUIRED_FIELDS < 64 -#error You should not lower PB_MAX_REQUIRED_FIELDS from the default value (64). -#endif - -#ifdef PB_WITHOUT_64BIT -#ifdef PB_CONVERT_DOUBLE_FLOAT -/* Cannot use doubles without 64-bit types */ -#undef PB_CONVERT_DOUBLE_FLOAT -#endif -#endif - -/* List of possible field types. These are used in the autogenerated code. - * Least-significant 4 bits tell the scalar type - * Most-significant 4 bits specify repeated/required/packed etc. - */ - -typedef uint_least8_t pb_type_t; - -/**** Field data types ****/ - -/* Numeric types */ -#define PB_LTYPE_BOOL 0x00U /* bool */ -#define PB_LTYPE_VARINT 0x01U /* int32, int64, enum, bool */ -#define PB_LTYPE_UVARINT 0x02U /* uint32, uint64 */ -#define PB_LTYPE_SVARINT 0x03U /* sint32, sint64 */ -#define PB_LTYPE_FIXED32 0x04U /* fixed32, sfixed32, float */ -#define PB_LTYPE_FIXED64 0x05U /* fixed64, sfixed64, double */ - -/* Marker for last packable field type. */ -#define PB_LTYPE_LAST_PACKABLE 0x05U - -/* Byte array with pre-allocated buffer. - * data_size is the length of the allocated PB_BYTES_ARRAY structure. */ -#define PB_LTYPE_BYTES 0x06U - -/* String with pre-allocated buffer. - * data_size is the maximum length. */ -#define PB_LTYPE_STRING 0x07U - -/* Submessage - * submsg_fields is pointer to field descriptions */ -#define PB_LTYPE_SUBMESSAGE 0x08U - -/* Submessage with pre-decoding callback - * The pre-decoding callback is stored as pb_callback_t right before pSize. - * submsg_fields is pointer to field descriptions */ -#define PB_LTYPE_SUBMSG_W_CB 0x09U - -/* Extension pseudo-field - * The field contains a pointer to pb_extension_t */ -#define PB_LTYPE_EXTENSION 0x0AU - -/* Byte array with inline, pre-allocated byffer. - * data_size is the length of the inline, allocated buffer. - * This differs from PB_LTYPE_BYTES by defining the element as - * pb_byte_t[data_size] rather than pb_bytes_array_t. */ -#define PB_LTYPE_FIXED_LENGTH_BYTES 0x0BU - -/* Number of declared LTYPES */ -#define PB_LTYPES_COUNT 0x0CU -#define PB_LTYPE_MASK 0x0FU - -/**** Field repetition rules ****/ - -#define PB_HTYPE_REQUIRED 0x00U -#define PB_HTYPE_OPTIONAL 0x10U -#define PB_HTYPE_SINGULAR 0x10U -#define PB_HTYPE_REPEATED 0x20U -#define PB_HTYPE_FIXARRAY 0x20U -#define PB_HTYPE_ONEOF 0x30U -#define PB_HTYPE_MASK 0x30U - -/**** Field allocation types ****/ - -#define PB_ATYPE_STATIC 0x00U -#define PB_ATYPE_POINTER 0x80U -#define PB_ATYPE_CALLBACK 0x40U -#define PB_ATYPE_MASK 0xC0U - -#define PB_ATYPE(x) ((x) & PB_ATYPE_MASK) -#define PB_HTYPE(x) ((x) & PB_HTYPE_MASK) -#define PB_LTYPE(x) ((x) & PB_LTYPE_MASK) -#define PB_LTYPE_IS_SUBMSG(x) (PB_LTYPE(x) == PB_LTYPE_SUBMESSAGE || \ - PB_LTYPE(x) == PB_LTYPE_SUBMSG_W_CB) - -/* Data type used for storing sizes of struct fields - * and array counts. - */ -#if defined(PB_FIELD_32BIT) -typedef uint32_t pb_size_t; -typedef int32_t pb_ssize_t; -#else -typedef uint_least16_t pb_size_t; -typedef int_least16_t pb_ssize_t; -#endif -#define PB_SIZE_MAX ((pb_size_t)-1) - -/* Data type for storing encoded data and other byte streams. - * This typedef exists to support platforms where uint8_t does not exist. - * You can regard it as equivalent on uint8_t on other platforms. - */ -typedef uint_least8_t pb_byte_t; - -/* Forward declaration of struct types */ -typedef struct pb_istream_s pb_istream_t; -typedef struct pb_ostream_s pb_ostream_t; -typedef struct pb_field_iter_s pb_field_iter_t; - -/* This structure is used in auto-generated constants - * to specify struct fields. - */ -typedef struct pb_msgdesc_s pb_msgdesc_t; -struct pb_msgdesc_s { - const uint32_t *field_info; - const pb_msgdesc_t *const *submsg_info; - const pb_byte_t *default_value; - - bool (*field_callback)(pb_istream_t *istream, pb_ostream_t *ostream, const pb_field_iter_t *field); - - pb_size_t field_count; - pb_size_t required_field_count; - pb_size_t largest_tag; -}; - -/* Iterator for message descriptor */ -struct pb_field_iter_s { - const pb_msgdesc_t *descriptor; /* Pointer to message descriptor constant */ - void *message; /* Pointer to start of the structure */ - - pb_size_t index; /* Index of the field */ - pb_size_t field_info_index; /* Index to descriptor->field_info array */ - pb_size_t required_field_index; /* Index that counts only the required fields */ - pb_size_t submessage_index; /* Index that counts only submessages */ - - pb_size_t tag; /* Tag of current field */ - pb_size_t data_size; /* sizeof() of a single item */ - pb_size_t array_size; /* Number of array entries */ - pb_type_t type; /* Type of current field */ - - void *pField; /* Pointer to current field in struct */ - void *pData; /* Pointer to current data contents. Different than pField for arrays and pointers. */ - void *pSize; /* Pointer to count/has field */ - - const pb_msgdesc_t *submsg_desc; /* For submessage fields, pointer to field descriptor for the submessage. */ -}; - -/* For compatibility with legacy code */ -typedef pb_field_iter_t pb_field_t; - -/* Make sure that the standard integer types are of the expected sizes. - * Otherwise fixed32/fixed64 fields can break. - * - * If you get errors here, it probably means that your stdint.h is not - * correct for your platform. - */ -#ifndef PB_WITHOUT_64BIT -PB_STATIC_ASSERT(sizeof(int64_t) == 2 * sizeof(int32_t), INT64_T_WRONG_SIZE) -PB_STATIC_ASSERT(sizeof(uint64_t) == 2 * sizeof(uint32_t), UINT64_T_WRONG_SIZE) -#endif - -/* This structure is used for 'bytes' arrays. - * It has the number of bytes in the beginning, and after that an array. - * Note that actual structs used will have a different length of bytes array. - */ -#define PB_BYTES_ARRAY_T(n) struct { pb_size_t size; pb_byte_t bytes[n]; } -#define PB_BYTES_ARRAY_T_ALLOCSIZE(n) ((size_t)n + offsetof(pb_bytes_array_t, bytes)) - -struct pb_bytes_array_s { - pb_size_t size; - pb_byte_t bytes[1]; -}; -typedef struct pb_bytes_array_s pb_bytes_array_t; - -/* This structure is used for giving the callback function. - * It is stored in the message structure and filled in by the method that - * calls pb_decode. - * - * The decoding callback will be given a limited-length stream - * If the wire type was string, the length is the length of the string. - * If the wire type was a varint/fixed32/fixed64, the length is the length - * of the actual value. - * The function may be called multiple times (especially for repeated types, - * but also otherwise if the message happens to contain the field multiple - * times.) - * - * The encoding callback will receive the actual output stream. - * It should write all the data in one call, including the field tag and - * wire type. It can write multiple fields. - * - * The callback can be null if you want to skip a field. - */ -typedef struct pb_callback_s pb_callback_t; -struct pb_callback_s { - /* Callback functions receive a pointer to the arg field. - * You can access the value of the field as *arg, and modify it if needed. - */ - union { - bool (*decode)(pb_istream_t *stream, const pb_field_t *field, void **arg); - - bool (*encode)(pb_ostream_t *stream, const pb_field_t *field, void *const *arg); - } funcs; - - /* Free arg for use by callback */ - void *arg; -}; - -extern bool pb_default_field_callback(pb_istream_t *istream, pb_ostream_t *ostream, const pb_field_t *field); - -/* Wire types. Library user needs these only in encoder callbacks. */ -typedef enum { - PB_WT_VARINT = 0, - PB_WT_64BIT = 1, - PB_WT_STRING = 2, - PB_WT_32BIT = 5 -} pb_wire_type_t; - -/* Structure for defining the handling of unknown/extension fields. - * Usually the pb_extension_type_t structure is automatically generated, - * while the pb_extension_t structure is created by the user. However, - * if you want to catch all unknown fields, you can also create a custom - * pb_extension_type_t with your own callback. - */ -typedef struct pb_extension_type_s pb_extension_type_t; -typedef struct pb_extension_s pb_extension_t; -struct pb_extension_type_s { - /* Called for each unknown field in the message. - * If you handle the field, read off all of its data and return true. - * If you do not handle the field, do not read anything and return true. - * If you run into an error, return false. - * Set to NULL for default handler. - */ - bool (*decode)(pb_istream_t *stream, pb_extension_t *extension, - uint32_t tag, pb_wire_type_t wire_type); - - /* Called once after all regular fields have been encoded. - * If you have something to write, do so and return true. - * If you do not have anything to write, just return true. - * If you run into an error, return false. - * Set to NULL for default handler. - */ - bool (*encode)(pb_ostream_t *stream, const pb_extension_t *extension); - - /* Free field for use by the callback. */ - const void *arg; -}; - -struct pb_extension_s { - /* Type describing the extension field. Usually you'll initialize - * this to a pointer to the automatically generated structure. */ - const pb_extension_type_t *type; - - /* Destination for the decoded data. This must match the datatype - * of the extension field. */ - void *dest; - - /* Pointer to the next extension handler, or NULL. - * If this extension does not match a field, the next handler is - * automatically called. */ - pb_extension_t *next; - - /* The decoder sets this to true if the extension was found. - * Ignored for encoding. */ - bool found; -}; - -#define pb_extension_init_zero {NULL,NULL,NULL,false} - -/* Memory allocation functions to use. You can define pb_realloc and - * pb_free to custom functions if you want. */ -#ifdef PB_ENABLE_MALLOC -# ifndef pb_realloc -# define pb_realloc(ptr, size) realloc(ptr, size) -# endif -# ifndef pb_free -# define pb_free(ptr) free(ptr) -# endif -#endif - -/* This is used to inform about need to regenerate .pb.h/.pb.c files. */ -#define PB_PROTO_HEADER_VERSION 40 - -/* These macros are used to declare pb_field_t's in the constant array. */ -/* Size of a structure member, in bytes. */ -#define pb_membersize(st, m) (sizeof ((st*)0)->m) -/* Number of entries in an array. */ -#define pb_arraysize(st, m) (pb_membersize(st, m) / pb_membersize(st, m[0])) -/* Delta from start of one member to the start of another member. */ -#define pb_delta(st, m1, m2) ((int)offsetof(st, m1) - (int)offsetof(st, m2)) - -/* Force expansion of macro value */ -#define PB_EXPAND(x) x - -/* Binding of a message field set into a specific structure */ -#define PB_BIND(msgname, structname, width) \ - const uint32_t structname ## _field_info[] PB_PROGMEM = \ - { \ - msgname ## _FIELDLIST(PB_GEN_FIELD_INFO_ ## width, structname) \ - 0 \ - }; \ - const pb_msgdesc_t* const structname ## _submsg_info[] = \ - { \ - msgname ## _FIELDLIST(PB_GEN_SUBMSG_INFO, structname) \ - NULL \ - }; \ - const pb_msgdesc_t structname ## _msg = \ - { \ - structname ## _field_info, \ - structname ## _submsg_info, \ - msgname ## _DEFAULT, \ - msgname ## _CALLBACK, \ - 0 msgname ## _FIELDLIST(PB_GEN_FIELD_COUNT, structname), \ - 0 msgname ## _FIELDLIST(PB_GEN_REQ_FIELD_COUNT, structname), \ - 0 msgname ## _FIELDLIST(PB_GEN_LARGEST_TAG, structname), \ - }; \ - msgname ## _FIELDLIST(PB_GEN_FIELD_INFO_ASSERT_ ## width, structname) - -#define PB_GEN_FIELD_COUNT(structname, atype, htype, ltype, fieldname, tag) +1 -#define PB_GEN_REQ_FIELD_COUNT(structname, atype, htype, ltype, fieldname, tag) \ - + (PB_HTYPE_ ## htype == PB_HTYPE_REQUIRED) -#define PB_GEN_LARGEST_TAG(structname, atype, htype, ltype, fieldname, tag) \ - * 0 + tag - -/* X-macro for generating the entries in struct_field_info[] array. */ -#define PB_GEN_FIELD_INFO_1(structname, atype, htype, ltype, fieldname, tag) \ - PB_FIELDINFO_1(tag, PB_ATYPE_ ## atype | PB_HTYPE_ ## htype | PB_LTYPE_MAP_ ## ltype, \ - PB_DATA_OFFSET_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname), \ - PB_DATA_SIZE_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname), \ - PB_SIZE_OFFSET_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname), \ - PB_ARRAY_SIZE_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname)) - -#define PB_GEN_FIELD_INFO_2(structname, atype, htype, ltype, fieldname, tag) \ - PB_FIELDINFO_2(tag, PB_ATYPE_ ## atype | PB_HTYPE_ ## htype | PB_LTYPE_MAP_ ## ltype, \ - PB_DATA_OFFSET_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname), \ - PB_DATA_SIZE_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname), \ - PB_SIZE_OFFSET_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname), \ - PB_ARRAY_SIZE_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname)) - -#define PB_GEN_FIELD_INFO_4(structname, atype, htype, ltype, fieldname, tag) \ - PB_FIELDINFO_4(tag, PB_ATYPE_ ## atype | PB_HTYPE_ ## htype | PB_LTYPE_MAP_ ## ltype, \ - PB_DATA_OFFSET_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname), \ - PB_DATA_SIZE_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname), \ - PB_SIZE_OFFSET_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname), \ - PB_ARRAY_SIZE_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname)) - -#define PB_GEN_FIELD_INFO_8(structname, atype, htype, ltype, fieldname, tag) \ - PB_FIELDINFO_8(tag, PB_ATYPE_ ## atype | PB_HTYPE_ ## htype | PB_LTYPE_MAP_ ## ltype, \ - PB_DATA_OFFSET_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname), \ - PB_DATA_SIZE_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname), \ - PB_SIZE_OFFSET_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname), \ - PB_ARRAY_SIZE_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname)) - -#define PB_GEN_FIELD_INFO_AUTO(structname, atype, htype, ltype, fieldname, tag) \ - PB_FIELDINFO_AUTO2(PB_FIELDINFO_WIDTH_AUTO(_PB_ATYPE_ ## atype, _PB_HTYPE_ ## htype, _PB_LTYPE_ ## ltype), \ - tag, PB_ATYPE_ ## atype | PB_HTYPE_ ## htype | PB_LTYPE_MAP_ ## ltype, \ - PB_DATA_OFFSET_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname), \ - PB_DATA_SIZE_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname), \ - PB_SIZE_OFFSET_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname), \ - PB_ARRAY_SIZE_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname)) - -#define PB_FIELDINFO_AUTO2(width, tag, type, data_offset, data_size, size_offset, array_size) \ - PB_FIELDINFO_AUTO3(width, tag, type, data_offset, data_size, size_offset, array_size) - -#define PB_FIELDINFO_AUTO3(width, tag, type, data_offset, data_size, size_offset, array_size) \ - PB_FIELDINFO_ ## width(tag, type, data_offset, data_size, size_offset, array_size) - -/* X-macro for generating asserts that entries fit in struct_field_info[] array. - * The structure of macros here must match the structure above in PB_GEN_FIELD_INFO_x(), - * but it is not easily reused because of how macro substitutions work. */ -#define PB_GEN_FIELD_INFO_ASSERT_1(structname, atype, htype, ltype, fieldname, tag) \ - PB_FIELDINFO_ASSERT_1(tag, PB_ATYPE_ ## atype | PB_HTYPE_ ## htype | PB_LTYPE_MAP_ ## ltype, \ - PB_DATA_OFFSET_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname), \ - PB_DATA_SIZE_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname), \ - PB_SIZE_OFFSET_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname), \ - PB_ARRAY_SIZE_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname)) - -#define PB_GEN_FIELD_INFO_ASSERT_2(structname, atype, htype, ltype, fieldname, tag) \ - PB_FIELDINFO_ASSERT_2(tag, PB_ATYPE_ ## atype | PB_HTYPE_ ## htype | PB_LTYPE_MAP_ ## ltype, \ - PB_DATA_OFFSET_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname), \ - PB_DATA_SIZE_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname), \ - PB_SIZE_OFFSET_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname), \ - PB_ARRAY_SIZE_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname)) - -#define PB_GEN_FIELD_INFO_ASSERT_4(structname, atype, htype, ltype, fieldname, tag) \ - PB_FIELDINFO_ASSERT_4(tag, PB_ATYPE_ ## atype | PB_HTYPE_ ## htype | PB_LTYPE_MAP_ ## ltype, \ - PB_DATA_OFFSET_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname), \ - PB_DATA_SIZE_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname), \ - PB_SIZE_OFFSET_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname), \ - PB_ARRAY_SIZE_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname)) - -#define PB_GEN_FIELD_INFO_ASSERT_8(structname, atype, htype, ltype, fieldname, tag) \ - PB_FIELDINFO_ASSERT_8(tag, PB_ATYPE_ ## atype | PB_HTYPE_ ## htype | PB_LTYPE_MAP_ ## ltype, \ - PB_DATA_OFFSET_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname), \ - PB_DATA_SIZE_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname), \ - PB_SIZE_OFFSET_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname), \ - PB_ARRAY_SIZE_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname)) - -#define PB_GEN_FIELD_INFO_ASSERT_AUTO(structname, atype, htype, ltype, fieldname, tag) \ - PB_FIELDINFO_ASSERT_AUTO2(PB_FIELDINFO_WIDTH_AUTO(_PB_ATYPE_ ## atype, _PB_HTYPE_ ## htype, _PB_LTYPE_ ## ltype), \ - tag, PB_ATYPE_ ## atype | PB_HTYPE_ ## htype | PB_LTYPE_MAP_ ## ltype, \ - PB_DATA_OFFSET_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname), \ - PB_DATA_SIZE_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname), \ - PB_SIZE_OFFSET_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname), \ - PB_ARRAY_SIZE_ ## atype(_PB_HTYPE_ ## htype, structname, fieldname)) - -#define PB_FIELDINFO_ASSERT_AUTO2(width, tag, type, data_offset, data_size, size_offset, array_size) \ - PB_FIELDINFO_ASSERT_AUTO3(width, tag, type, data_offset, data_size, size_offset, array_size) - -#define PB_FIELDINFO_ASSERT_AUTO3(width, tag, type, data_offset, data_size, size_offset, array_size) \ - PB_FIELDINFO_ASSERT_ ## width(tag, type, data_offset, data_size, size_offset, array_size) - -#define PB_DATA_OFFSET_STATIC(htype, structname, fieldname) PB_DO ## htype(structname, fieldname) -#define PB_DATA_OFFSET_POINTER(htype, structname, fieldname) PB_DO ## htype(structname, fieldname) -#define PB_DATA_OFFSET_CALLBACK(htype, structname, fieldname) PB_DO ## htype(structname, fieldname) -#define PB_DO_PB_HTYPE_REQUIRED(structname, fieldname) offsetof(structname, fieldname) -#define PB_DO_PB_HTYPE_SINGULAR(structname, fieldname) offsetof(structname, fieldname) -#define PB_DO_PB_HTYPE_ONEOF(structname, fieldname) offsetof(structname, PB_ONEOF_NAME(FULL, fieldname)) -#define PB_DO_PB_HTYPE_OPTIONAL(structname, fieldname) offsetof(structname, fieldname) -#define PB_DO_PB_HTYPE_REPEATED(structname, fieldname) offsetof(structname, fieldname) -#define PB_DO_PB_HTYPE_FIXARRAY(structname, fieldname) offsetof(structname, fieldname) - -#define PB_SIZE_OFFSET_STATIC(htype, structname, fieldname) PB_SO ## htype(structname, fieldname) -#define PB_SIZE_OFFSET_POINTER(htype, structname, fieldname) PB_SO_PTR ## htype(structname, fieldname) -#define PB_SIZE_OFFSET_CALLBACK(htype, structname, fieldname) PB_SO_CB ## htype(structname, fieldname) -#define PB_SO_PB_HTYPE_REQUIRED(structname, fieldname) 0 -#define PB_SO_PB_HTYPE_SINGULAR(structname, fieldname) 0 -#define PB_SO_PB_HTYPE_ONEOF(structname, fieldname) PB_SO_PB_HTYPE_ONEOF2(structname, PB_ONEOF_NAME(FULL, fieldname), PB_ONEOF_NAME(UNION, fieldname)) -#define PB_SO_PB_HTYPE_ONEOF2(structname, fullname, unionname) PB_SO_PB_HTYPE_ONEOF3(structname, fullname, unionname) -#define PB_SO_PB_HTYPE_ONEOF3(structname, fullname, unionname) pb_delta(structname, fullname, which_ ## unionname) -#define PB_SO_PB_HTYPE_OPTIONAL(structname, fieldname) pb_delta(structname, fieldname, has_ ## fieldname) -#define PB_SO_PB_HTYPE_REPEATED(structname, fieldname) pb_delta(structname, fieldname, fieldname ## _count) -#define PB_SO_PB_HTYPE_FIXARRAY(structname, fieldname) 0 -#define PB_SO_PTR_PB_HTYPE_REQUIRED(structname, fieldname) 0 -#define PB_SO_PTR_PB_HTYPE_SINGULAR(structname, fieldname) 0 -#define PB_SO_PTR_PB_HTYPE_ONEOF(structname, fieldname) PB_SO_PB_HTYPE_ONEOF(structname, fieldname) -#define PB_SO_PTR_PB_HTYPE_OPTIONAL(structname, fieldname) 0 -#define PB_SO_PTR_PB_HTYPE_REPEATED(structname, fieldname) PB_SO_PB_HTYPE_REPEATED(structname, fieldname) -#define PB_SO_PTR_PB_HTYPE_FIXARRAY(structname, fieldname) 0 -#define PB_SO_CB_PB_HTYPE_REQUIRED(structname, fieldname) 0 -#define PB_SO_CB_PB_HTYPE_SINGULAR(structname, fieldname) 0 -#define PB_SO_CB_PB_HTYPE_ONEOF(structname, fieldname) PB_SO_PB_HTYPE_ONEOF(structname, fieldname) -#define PB_SO_CB_PB_HTYPE_OPTIONAL(structname, fieldname) 0 -#define PB_SO_CB_PB_HTYPE_REPEATED(structname, fieldname) 0 -#define PB_SO_CB_PB_HTYPE_FIXARRAY(structname, fieldname) 0 - -#define PB_ARRAY_SIZE_STATIC(htype, structname, fieldname) PB_AS ## htype(structname, fieldname) -#define PB_ARRAY_SIZE_POINTER(htype, structname, fieldname) PB_AS_PTR ## htype(structname, fieldname) -#define PB_ARRAY_SIZE_CALLBACK(htype, structname, fieldname) 1 -#define PB_AS_PB_HTYPE_REQUIRED(structname, fieldname) 1 -#define PB_AS_PB_HTYPE_SINGULAR(structname, fieldname) 1 -#define PB_AS_PB_HTYPE_OPTIONAL(structname, fieldname) 1 -#define PB_AS_PB_HTYPE_ONEOF(structname, fieldname) 1 -#define PB_AS_PB_HTYPE_REPEATED(structname, fieldname) pb_arraysize(structname, fieldname) -#define PB_AS_PB_HTYPE_FIXARRAY(structname, fieldname) pb_arraysize(structname, fieldname) -#define PB_AS_PTR_PB_HTYPE_REQUIRED(structname, fieldname) 1 -#define PB_AS_PTR_PB_HTYPE_SINGULAR(structname, fieldname) 1 -#define PB_AS_PTR_PB_HTYPE_OPTIONAL(structname, fieldname) 1 -#define PB_AS_PTR_PB_HTYPE_ONEOF(structname, fieldname) 1 -#define PB_AS_PTR_PB_HTYPE_REPEATED(structname, fieldname) 1 -#define PB_AS_PTR_PB_HTYPE_FIXARRAY(structname, fieldname) pb_arraysize(structname, fieldname[0]) - -#define PB_DATA_SIZE_STATIC(htype, structname, fieldname) PB_DS ## htype(structname, fieldname) -#define PB_DATA_SIZE_POINTER(htype, structname, fieldname) PB_DS_PTR ## htype(structname, fieldname) -#define PB_DATA_SIZE_CALLBACK(htype, structname, fieldname) PB_DS_CB ## htype(structname, fieldname) -#define PB_DS_PB_HTYPE_REQUIRED(structname, fieldname) pb_membersize(structname, fieldname) -#define PB_DS_PB_HTYPE_SINGULAR(structname, fieldname) pb_membersize(structname, fieldname) -#define PB_DS_PB_HTYPE_OPTIONAL(structname, fieldname) pb_membersize(structname, fieldname) -#define PB_DS_PB_HTYPE_ONEOF(structname, fieldname) pb_membersize(structname, PB_ONEOF_NAME(FULL, fieldname)) -#define PB_DS_PB_HTYPE_REPEATED(structname, fieldname) pb_membersize(structname, fieldname[0]) -#define PB_DS_PB_HTYPE_FIXARRAY(structname, fieldname) pb_membersize(structname, fieldname[0]) -#define PB_DS_PTR_PB_HTYPE_REQUIRED(structname, fieldname) pb_membersize(structname, fieldname[0]) -#define PB_DS_PTR_PB_HTYPE_SINGULAR(structname, fieldname) pb_membersize(structname, fieldname[0]) -#define PB_DS_PTR_PB_HTYPE_OPTIONAL(structname, fieldname) pb_membersize(structname, fieldname[0]) -#define PB_DS_PTR_PB_HTYPE_ONEOF(structname, fieldname) pb_membersize(structname, PB_ONEOF_NAME(FULL, fieldname)[0]) -#define PB_DS_PTR_PB_HTYPE_REPEATED(structname, fieldname) pb_membersize(structname, fieldname[0]) -#define PB_DS_PTR_PB_HTYPE_FIXARRAY(structname, fieldname) pb_membersize(structname, fieldname[0][0]) -#define PB_DS_CB_PB_HTYPE_REQUIRED(structname, fieldname) pb_membersize(structname, fieldname) -#define PB_DS_CB_PB_HTYPE_SINGULAR(structname, fieldname) pb_membersize(structname, fieldname) -#define PB_DS_CB_PB_HTYPE_OPTIONAL(structname, fieldname) pb_membersize(structname, fieldname) -#define PB_DS_CB_PB_HTYPE_ONEOF(structname, fieldname) pb_membersize(structname, PB_ONEOF_NAME(FULL, fieldname)) -#define PB_DS_CB_PB_HTYPE_REPEATED(structname, fieldname) pb_membersize(structname, fieldname) -#define PB_DS_CB_PB_HTYPE_FIXARRAY(structname, fieldname) pb_membersize(structname, fieldname) - -#define PB_ONEOF_NAME(type, tuple) PB_EXPAND(PB_ONEOF_NAME_ ## type tuple) -#define PB_ONEOF_NAME_UNION(unionname, membername, fullname) unionname -#define PB_ONEOF_NAME_MEMBER(unionname, membername, fullname) membername -#define PB_ONEOF_NAME_FULL(unionname, membername, fullname) fullname - -#define PB_GEN_SUBMSG_INFO(structname, atype, htype, ltype, fieldname, tag) \ - PB_SUBMSG_INFO_ ## htype(_PB_LTYPE_ ## ltype, structname, fieldname) - -#define PB_SUBMSG_INFO_REQUIRED(ltype, structname, fieldname) PB_SI ## ltype(structname ## _ ## fieldname ## _MSGTYPE) -#define PB_SUBMSG_INFO_SINGULAR(ltype, structname, fieldname) PB_SI ## ltype(structname ## _ ## fieldname ## _MSGTYPE) -#define PB_SUBMSG_INFO_OPTIONAL(ltype, structname, fieldname) PB_SI ## ltype(structname ## _ ## fieldname ## _MSGTYPE) -#define PB_SUBMSG_INFO_ONEOF(ltype, structname, fieldname) PB_SUBMSG_INFO_ONEOF2(ltype, structname, PB_ONEOF_NAME(UNION, fieldname), PB_ONEOF_NAME(MEMBER, fieldname)) -#define PB_SUBMSG_INFO_ONEOF2(ltype, structname, unionname, membername) PB_SUBMSG_INFO_ONEOF3(ltype, structname, unionname, membername) -#define PB_SUBMSG_INFO_ONEOF3(ltype, structname, unionname, membername) PB_SI ## ltype(structname ## _ ## unionname ## _ ## membername ## _MSGTYPE) -#define PB_SUBMSG_INFO_REPEATED(ltype, structname, fieldname) PB_SI ## ltype(structname ## _ ## fieldname ## _MSGTYPE) -#define PB_SUBMSG_INFO_FIXARRAY(ltype, structname, fieldname) PB_SI ## ltype(structname ## _ ## fieldname ## _MSGTYPE) -#define PB_SI_PB_LTYPE_BOOL(t) -#define PB_SI_PB_LTYPE_BYTES(t) -#define PB_SI_PB_LTYPE_DOUBLE(t) -#define PB_SI_PB_LTYPE_ENUM(t) -#define PB_SI_PB_LTYPE_UENUM(t) -#define PB_SI_PB_LTYPE_FIXED32(t) -#define PB_SI_PB_LTYPE_FIXED64(t) -#define PB_SI_PB_LTYPE_FLOAT(t) -#define PB_SI_PB_LTYPE_INT32(t) -#define PB_SI_PB_LTYPE_INT64(t) -#define PB_SI_PB_LTYPE_MESSAGE(t) PB_SUBMSG_DESCRIPTOR(t) -#define PB_SI_PB_LTYPE_MSG_W_CB(t) PB_SUBMSG_DESCRIPTOR(t) -#define PB_SI_PB_LTYPE_SFIXED32(t) -#define PB_SI_PB_LTYPE_SFIXED64(t) -#define PB_SI_PB_LTYPE_SINT32(t) -#define PB_SI_PB_LTYPE_SINT64(t) -#define PB_SI_PB_LTYPE_STRING(t) -#define PB_SI_PB_LTYPE_UINT32(t) -#define PB_SI_PB_LTYPE_UINT64(t) -#define PB_SI_PB_LTYPE_EXTENSION(t) -#define PB_SI_PB_LTYPE_FIXED_LENGTH_BYTES(t) -#define PB_SUBMSG_DESCRIPTOR(t) &(t ## _msg), - -/* The field descriptors use a variable width format, with width of either - * 1, 2, 4 or 8 of 32-bit words. The two lowest bytes of the first byte always - * encode the descriptor size, 6 lowest bits of field tag number, and 8 bits - * of the field type. - * - * Descriptor size is encoded as 0 = 1 word, 1 = 2 words, 2 = 4 words, 3 = 8 words. - * - * Formats, listed starting with the least significant bit of the first word. - * 1 word: [2-bit len] [6-bit tag] [8-bit type] [8-bit data_offset] [4-bit size_offset] [4-bit data_size] - * - * 2 words: [2-bit len] [6-bit tag] [8-bit type] [12-bit array_size] [4-bit size_offset] - * [16-bit data_offset] [12-bit data_size] [4-bit tag>>6] - * - * 4 words: [2-bit len] [6-bit tag] [8-bit type] [16-bit array_size] - * [8-bit size_offset] [24-bit tag>>6] - * [32-bit data_offset] - * [32-bit data_size] - * - * 8 words: [2-bit len] [6-bit tag] [8-bit type] [16-bit reserved] - * [8-bit size_offset] [24-bit tag>>6] - * [32-bit data_offset] - * [32-bit data_size] - * [32-bit array_size] - * [32-bit reserved] - * [32-bit reserved] - * [32-bit reserved] - */ - -#define PB_FIELDINFO_1(tag, type, data_offset, data_size, size_offset, array_size) \ - (0 | (((tag) << 2) & 0xFF) | ((type) << 8) | (((uint32_t)(data_offset) & 0xFF) << 16) | \ - (((uint32_t)(size_offset) & 0x0F) << 24) | (((uint32_t)(data_size) & 0x0F) << 28)), - -#define PB_FIELDINFO_2(tag, type, data_offset, data_size, size_offset, array_size) \ - (1 | (((tag) << 2) & 0xFF) | ((type) << 8) | (((uint32_t)(array_size) & 0xFFF) << 16) | (((uint32_t)(size_offset) & 0x0F) << 28)), \ - (((uint32_t)(data_offset) & 0xFFFF) | (((uint32_t)(data_size) & 0xFFF) << 16) | (((uint32_t)(tag) & 0x3c0) << 22)), - -#define PB_FIELDINFO_4(tag, type, data_offset, data_size, size_offset, array_size) \ - (2 | (((tag) << 2) & 0xFF) | ((type) << 8) | (((uint32_t)(array_size) & 0xFFFF) << 16)), \ - ((uint32_t)(int_least8_t)(size_offset) | (((uint32_t)(tag) << 2) & 0xFFFFFF00)), \ - (data_offset), (data_size), - -#define PB_FIELDINFO_8(tag, type, data_offset, data_size, size_offset, array_size) \ - (3 | (((tag) << 2) & 0xFF) | ((type) << 8)), \ - ((uint32_t)(int_least8_t)(size_offset) | (((uint32_t)(tag) << 2) & 0xFFFFFF00)), \ - (data_offset), (data_size), (array_size), 0, 0, 0, - -/* These assertions verify that the field information fits in the allocated space. - * The generator tries to automatically determine the correct width that can fit all - * data associated with a message. These asserts will fail only if there has been a - * problem in the automatic logic - this may be worth reporting as a bug. As a workaround, - * you can increase the descriptor width by defining PB_FIELDINFO_WIDTH or by setting - * descriptorsize option in .options file. - */ -#define PB_FITS(value, bits) ((uint32_t)(value) < ((uint32_t)1<2GB messages with nanopb anyway. - */ -#define PB_FIELDINFO_ASSERT_4(tag, type, data_offset, data_size, size_offset, array_size) \ - PB_STATIC_ASSERT(PB_FITS(tag,30) && PB_FITS(data_offset,31) && PB_FITS(size_offset,8) && PB_FITS(data_size,31) && PB_FITS(array_size,16), FIELDINFO_DOES_NOT_FIT_width4_field ## tag) - -#define PB_FIELDINFO_ASSERT_8(tag, type, data_offset, data_size, size_offset, array_size) \ - PB_STATIC_ASSERT(PB_FITS(tag,30) && PB_FITS(data_offset,31) && PB_FITS(size_offset,8) && PB_FITS(data_size,31) && PB_FITS(array_size,31), FIELDINFO_DOES_NOT_FIT_width8_field ## tag) -#endif - - -/* Automatic picking of FIELDINFO width: - * Uses width 1 when possible, otherwise resorts to width 2. - * This is used when PB_BIND() is called with "AUTO" as the argument. - * The generator will give explicit size argument when it knows that a message - * structure grows beyond 1-word format limits. - */ -#define PB_FIELDINFO_WIDTH_AUTO(atype, htype, ltype) PB_FI_WIDTH ## atype(htype, ltype) -#define PB_FI_WIDTH_PB_ATYPE_STATIC(htype, ltype) PB_FI_WIDTH ## htype(ltype) -#define PB_FI_WIDTH_PB_ATYPE_POINTER(htype, ltype) PB_FI_WIDTH ## htype(ltype) -#define PB_FI_WIDTH_PB_ATYPE_CALLBACK(htype, ltype) 2 -#define PB_FI_WIDTH_PB_HTYPE_REQUIRED(ltype) PB_FI_WIDTH ## ltype -#define PB_FI_WIDTH_PB_HTYPE_SINGULAR(ltype) PB_FI_WIDTH ## ltype -#define PB_FI_WIDTH_PB_HTYPE_OPTIONAL(ltype) PB_FI_WIDTH ## ltype -#define PB_FI_WIDTH_PB_HTYPE_ONEOF(ltype) PB_FI_WIDTH ## ltype -#define PB_FI_WIDTH_PB_HTYPE_REPEATED(ltype) 2 -#define PB_FI_WIDTH_PB_HTYPE_FIXARRAY(ltype) 2 -#define PB_FI_WIDTH_PB_LTYPE_BOOL 1 -#define PB_FI_WIDTH_PB_LTYPE_BYTES 2 -#define PB_FI_WIDTH_PB_LTYPE_DOUBLE 1 -#define PB_FI_WIDTH_PB_LTYPE_ENUM 1 -#define PB_FI_WIDTH_PB_LTYPE_UENUM 1 -#define PB_FI_WIDTH_PB_LTYPE_FIXED32 1 -#define PB_FI_WIDTH_PB_LTYPE_FIXED64 1 -#define PB_FI_WIDTH_PB_LTYPE_FLOAT 1 -#define PB_FI_WIDTH_PB_LTYPE_INT32 1 -#define PB_FI_WIDTH_PB_LTYPE_INT64 1 -#define PB_FI_WIDTH_PB_LTYPE_MESSAGE 2 -#define PB_FI_WIDTH_PB_LTYPE_MSG_W_CB 2 -#define PB_FI_WIDTH_PB_LTYPE_SFIXED32 1 -#define PB_FI_WIDTH_PB_LTYPE_SFIXED64 1 -#define PB_FI_WIDTH_PB_LTYPE_SINT32 1 -#define PB_FI_WIDTH_PB_LTYPE_SINT64 1 -#define PB_FI_WIDTH_PB_LTYPE_STRING 2 -#define PB_FI_WIDTH_PB_LTYPE_UINT32 1 -#define PB_FI_WIDTH_PB_LTYPE_UINT64 1 -#define PB_FI_WIDTH_PB_LTYPE_EXTENSION 1 -#define PB_FI_WIDTH_PB_LTYPE_FIXED_LENGTH_BYTES 2 - -/* The mapping from protobuf types to LTYPEs is done using these macros. */ -#define PB_LTYPE_MAP_BOOL PB_LTYPE_BOOL -#define PB_LTYPE_MAP_BYTES PB_LTYPE_BYTES -#define PB_LTYPE_MAP_DOUBLE PB_LTYPE_FIXED64 -#define PB_LTYPE_MAP_ENUM PB_LTYPE_VARINT -#define PB_LTYPE_MAP_UENUM PB_LTYPE_UVARINT -#define PB_LTYPE_MAP_FIXED32 PB_LTYPE_FIXED32 -#define PB_LTYPE_MAP_FIXED64 PB_LTYPE_FIXED64 -#define PB_LTYPE_MAP_FLOAT PB_LTYPE_FIXED32 -#define PB_LTYPE_MAP_INT32 PB_LTYPE_VARINT -#define PB_LTYPE_MAP_INT64 PB_LTYPE_VARINT -#define PB_LTYPE_MAP_MESSAGE PB_LTYPE_SUBMESSAGE -#define PB_LTYPE_MAP_MSG_W_CB PB_LTYPE_SUBMSG_W_CB -#define PB_LTYPE_MAP_SFIXED32 PB_LTYPE_FIXED32 -#define PB_LTYPE_MAP_SFIXED64 PB_LTYPE_FIXED64 -#define PB_LTYPE_MAP_SINT32 PB_LTYPE_SVARINT -#define PB_LTYPE_MAP_SINT64 PB_LTYPE_SVARINT -#define PB_LTYPE_MAP_STRING PB_LTYPE_STRING -#define PB_LTYPE_MAP_UINT32 PB_LTYPE_UVARINT -#define PB_LTYPE_MAP_UINT64 PB_LTYPE_UVARINT -#define PB_LTYPE_MAP_EXTENSION PB_LTYPE_EXTENSION -#define PB_LTYPE_MAP_FIXED_LENGTH_BYTES PB_LTYPE_FIXED_LENGTH_BYTES - -/* These macros are used for giving out error messages. - * They are mostly a debugging aid; the main error information - * is the true/false return value from functions. - * Some code space can be saved by disabling the error - * messages if not used. - * - * PB_SET_ERROR() sets the error message if none has been set yet. - * msg must be a constant string literal. - * PB_GET_ERROR() always returns a pointer to a string. - * PB_RETURN_ERROR() sets the error and returns false from current - * function. - */ -#ifdef PB_NO_ERRMSG -#define PB_SET_ERROR(stream, msg) PB_UNUSED(stream) -#define PB_GET_ERROR(stream) "(errmsg disabled)" -#else -#define PB_SET_ERROR(stream, msg) (stream->errmsg = (stream)->errmsg ? (stream)->errmsg : (msg)) -#define PB_GET_ERROR(stream) ((stream)->errmsg ? (stream)->errmsg : "(none)") -#endif - -#define PB_RETURN_ERROR(stream, msg) return PB_SET_ERROR(stream, msg), false - -#ifdef __cplusplus -} /* extern "C" */ -#endif - -#ifndef ZX_NO_CPP -#ifdef __cplusplus -#if __cplusplus >= 201103L -#define PB_CONSTEXPR constexpr -#else // __cplusplus >= 201103L -#define PB_CONSTEXPR -#endif // __cplusplus >= 201103L - -#if __cplusplus >= 201703L -#define PB_INLINE_CONSTEXPR inline constexpr -#else // __cplusplus >= 201703L -#define PB_INLINE_CONSTEXPR PB_CONSTEXPR -#endif // __cplusplus >= 201703L - -namespace nanopb { -// Each type will be partially specialized by the generator. - template - struct MessageDescriptor; -} // namespace nanopb -#endif /* __cplusplus */ - -#endif -#endif diff --git a/deps/nanopb_tiny/pb_common.c b/deps/nanopb_tiny/pb_common.c deleted file mode 100644 index c71a118d..00000000 --- a/deps/nanopb_tiny/pb_common.c +++ /dev/null @@ -1,364 +0,0 @@ -/* pb_common.c: Common support functions for pb_encode.c and pb_decode.c. - * - * 2014 Petteri Aimonen - */ - -#include -#include "pb_common.h" - -static bool load_descriptor_values(pb_field_iter_t *iter) { - uint32_t word0; - uint32_t data_offset; - int_least8_t size_offset; - - const pb_msgdesc_t *descriptor = (const pb_msgdesc_t *)PIC(iter->descriptor); - if (iter->index >= descriptor->field_count) - return false; - - word0 = PB_PROGMEM_READU32(descriptor->field_info, iter->field_info_index); - iter->type = (pb_type_t) ((word0 >> 8) & 0xFF); - - switch (word0 & 3) { - case 0: { - /* 1-word format */ - iter->array_size = 1; - iter->tag = (pb_size_t) ((word0 >> 2) & 0x3F); - size_offset = (int_least8_t) ((word0 >> 24) & 0x0F); - data_offset = (word0 >> 16) & 0xFF; - iter->data_size = (pb_size_t) ((word0 >> 28) & 0x0F); - break; - } - - case 1: { - /* 2-word format */ - uint32_t word1 = PB_PROGMEM_READU32(descriptor->field_info, iter->field_info_index + 1); - - iter->array_size = (pb_size_t) ((word0 >> 16) & 0x0FFF); - iter->tag = (pb_size_t) (((word0 >> 2) & 0x3F) | ((word1 >> 28) << 6)); - size_offset = (int_least8_t) ((word0 >> 28) & 0x0F); - data_offset = word1 & 0xFFFF; - iter->data_size = (pb_size_t) ((word1 >> 16) & 0x0FFF); - break; - } - - case 2: { - /* 4-word format */ - uint32_t word1 = PB_PROGMEM_READU32(descriptor->field_info, iter->field_info_index + 1); - uint32_t word2 = PB_PROGMEM_READU32(descriptor->field_info, iter->field_info_index + 2); - uint32_t word3 = PB_PROGMEM_READU32(descriptor->field_info, iter->field_info_index + 3); - - iter->array_size = (pb_size_t) (word0 >> 16); - iter->tag = (pb_size_t) (((word0 >> 2) & 0x3F) | ((word1 >> 8) << 6)); - size_offset = (int_least8_t) (word1 & 0xFF); - data_offset = word2; - iter->data_size = (pb_size_t) word3; - break; - } - - default: { - /* 8-word format */ - uint32_t word1 = PB_PROGMEM_READU32(descriptor->field_info, iter->field_info_index + 1); - uint32_t word2 = PB_PROGMEM_READU32(descriptor->field_info, iter->field_info_index + 2); - uint32_t word3 = PB_PROGMEM_READU32(descriptor->field_info, iter->field_info_index + 3); - uint32_t word4 = PB_PROGMEM_READU32(descriptor->field_info, iter->field_info_index + 4); - - iter->array_size = (pb_size_t) word4; - iter->tag = (pb_size_t) (((word0 >> 2) & 0x3F) | ((word1 >> 8) << 6)); - size_offset = (int_least8_t) (word1 & 0xFF); - data_offset = word2; - iter->data_size = (pb_size_t) word3; - break; - } - } - - if (!iter->message) { - /* Avoid doing arithmetic on null pointers, it is undefined */ - iter->pField = NULL; - iter->pSize = NULL; - } else { - iter->pField = (char *) iter->message + data_offset; - - if (size_offset) { - iter->pSize = (char *) iter->pField - size_offset; - } else if (PB_HTYPE(iter->type) == PB_HTYPE_REPEATED && - (PB_ATYPE(iter->type) == PB_ATYPE_STATIC || - PB_ATYPE(iter->type) == PB_ATYPE_POINTER)) { - /* Fixed count array */ - iter->pSize = &iter->array_size; - } else { - iter->pSize = NULL; - } - - if (PB_ATYPE(iter->type) == PB_ATYPE_POINTER && iter->pField != NULL) { - iter->pData = *(void **) iter->pField; - } else { - iter->pData = iter->pField; - } - } - - if (PB_LTYPE_IS_SUBMSG(iter->type)) - { - iter->submsg_desc = PB_PROGMEM_READTYPE(const pb_msgdesc_t *, descriptor->submsg_info, iter->submessage_index); - } - else - { - iter->submsg_desc = NULL; - } - - return true; -} - -static void advance_iterator(pb_field_iter_t *iter) { - iter->index++; - - const pb_msgdesc_t *descriptor = (const pb_msgdesc_t *)PIC(iter->descriptor); - - if (iter->index >= descriptor->field_count) { - /* Restart */ - iter->index = 0; - iter->field_info_index = 0; - iter->submessage_index = 0; - iter->required_field_index = 0; - } else { - /* Increment indexes based on previous field type. - * All field info formats have the following fields: - * - lowest 2 bits tell the amount of words in the descriptor (2^n words) - * - bits 2..7 give the lowest bits of tag number. - * - bits 8..15 give the field type. - */ - uint32_t prev_descriptor = PB_PROGMEM_READU32(descriptor->field_info, iter->field_info_index); - pb_type_t prev_type = (prev_descriptor >> 8) & 0xFF; - pb_size_t descriptor_len = (pb_size_t) (1 << (prev_descriptor & 3)); - - /* Add to fields. - * The cast to pb_size_t is needed to avoid -Wconversion warning. - * Because the data is is constants from generator, there is no danger of overflow. - */ - iter->field_info_index = (pb_size_t) (iter->field_info_index + descriptor_len); - iter->required_field_index = (pb_size_t) (iter->required_field_index + - (PB_HTYPE(prev_type) == PB_HTYPE_REQUIRED)); - iter->submessage_index = (pb_size_t) (iter->submessage_index + PB_LTYPE_IS_SUBMSG(prev_type)); - } -} - -bool pb_field_iter_begin(pb_field_iter_t *iter, const pb_msgdesc_t *desc, void *message) { - memset(iter, 0, sizeof(*iter)); - - iter->descriptor = desc; - iter->message = message; - - return load_descriptor_values(iter); -} - -bool pb_field_iter_begin_extension(pb_field_iter_t *iter, pb_extension_t *extension) { - const pb_msgdesc_t *msg = (const pb_msgdesc_t *) extension->type->arg; - bool status; - - uint32_t word0 = PB_PROGMEM_READU32(msg->field_info, 0); - if (PB_ATYPE(word0 >> 8) == PB_ATYPE_POINTER) { - /* For pointer extensions, the pointer is stored directly - * in the extension structure. This avoids having an extra - * indirection. */ - status = pb_field_iter_begin(iter, msg, &extension->dest); - } else { - status = pb_field_iter_begin(iter, msg, extension->dest); - } - - iter->pSize = &extension->found; - return status; -} - -bool pb_field_iter_next(pb_field_iter_t *iter) { - advance_iterator(iter); - (void) load_descriptor_values(iter); - return iter->index != 0; -} - -bool pb_field_iter_find(pb_field_iter_t *iter, uint32_t tag) { - ZEMU_TRACE() - - if (iter->tag == tag) { - ZEMU_TRACE() - return true; /* Nothing to do, correct field already. */ - } - - { - const pb_msgdesc_t *descriptor = (const pb_msgdesc_t *) PIC(iter->descriptor); - if (tag > descriptor->largest_tag) { - ZEMU_TRACE() - return false; - } - } - - ZEMU_TRACE() - pb_size_t start = iter->index; - ZEMU_TRACE() - - uint32_t fieldinfo; - - if (tag < iter->tag) { - ZEMU_TRACE() - /* Fields are in tag number order, so we know that tag is between - * 0 and our start position. Setting index to end forces - * advance_iterator() call below to restart from beginning. */ - const pb_msgdesc_t *descriptor = (const pb_msgdesc_t *) PIC(iter->descriptor); - iter->index = descriptor->field_count; - } - - do { - ZEMU_TRACE() - /* Advance iterator but don't load values yet */ - advance_iterator(iter); - const pb_msgdesc_t *descriptor = (const pb_msgdesc_t *) PIC(iter->descriptor); - - ZEMU_TRACE() - /* Do fast check for tag number match */ - fieldinfo = PB_PROGMEM_READU32(descriptor->field_info, iter->field_info_index); - - if (((fieldinfo >> 2) & 0x3F) == (tag & 0x3F)) { - /* Good candidate, check further */ - (void) load_descriptor_values(iter); - - if (iter->tag == tag && - PB_LTYPE(iter->type) != PB_LTYPE_EXTENSION) { - /* Found it */ - return true; - } - } - } while (iter->index != start); - - /* Searched all the way back to start, and found nothing. */ - (void) load_descriptor_values(iter); - return false; -} - -bool pb_field_iter_find_extension(pb_field_iter_t *iter) { - if (PB_LTYPE(iter->type) == PB_LTYPE_EXTENSION) { - return true; - } else { - pb_size_t start = iter->index; - uint32_t fieldinfo; - - do { - /* Advance iterator but don't load values yet */ - advance_iterator(iter); - - /* Do fast check for field type */ - const pb_msgdesc_t *descriptor = (const pb_msgdesc_t *) PIC(iter->descriptor); - fieldinfo = PB_PROGMEM_READU32(descriptor->field_info, iter->field_info_index); - - if (PB_LTYPE((fieldinfo >> 8) & 0xFF) == PB_LTYPE_EXTENSION) { - return load_descriptor_values(iter); - } - } while (iter->index != start); - - /* Searched all the way back to start, and found nothing. */ - (void) load_descriptor_values(iter); - return false; - } -} - -static void *pb_const_cast(const void *p) { - /* Note: this casts away const, in order to use the common field iterator - * logic for both encoding and decoding. The cast is done using union - * to avoid spurious compiler warnings. */ - union { - void *p1; - const void *p2; - } t; - t.p2 = p; - return t.p1; -} - -bool pb_field_iter_begin_const(pb_field_iter_t *iter, const pb_msgdesc_t *desc, const void *message) { - return pb_field_iter_begin(iter, desc, pb_const_cast(message)); -} - -bool pb_field_iter_begin_extension_const(pb_field_iter_t *iter, const pb_extension_t *extension) { - return pb_field_iter_begin_extension(iter, (pb_extension_t *) pb_const_cast(extension)); -} - -bool pb_default_field_callback(pb_istream_t *istream, pb_ostream_t *ostream, const pb_field_t *field) { - if (field->data_size == sizeof(pb_callback_t)) { - pb_callback_t *pCallback = (pb_callback_t *) field->pData; - - if (pCallback != NULL) { - if (istream != NULL && pCallback->funcs.decode != NULL) { - return pCallback->funcs.decode(istream, field, &pCallback->arg); - } - - if (ostream != NULL && pCallback->funcs.encode != NULL) { - return pCallback->funcs.encode(ostream, field, &pCallback->arg); - } - } - } - - return true; /* Success, but didn't do anything */ - -} - -#ifdef PB_VALIDATE_UTF8 - -/* This function checks whether a string is valid UTF-8 text. - * - * Algorithm is adapted from https://www.cl.cam.ac.uk/~mgk25/ucs/utf8_check.c - * Original copyright: Markus Kuhn 2005-03-30 - * Licensed under "Short code license", which allows use under MIT license or - * any compatible with it. - */ - -bool pb_validate_utf8(const char *str) -{ - const pb_byte_t *s = (const pb_byte_t*)str; - while (*s) - { - if (*s < 0x80) - { - /* 0xxxxxxx */ - s++; - } - else if ((s[0] & 0xe0) == 0xc0) - { - /* 110XXXXx 10xxxxxx */ - if ((s[1] & 0xc0) != 0x80 || - (s[0] & 0xfe) == 0xc0) /* overlong? */ - return false; - else - s += 2; - } - else if ((s[0] & 0xf0) == 0xe0) - { - /* 1110XXXX 10Xxxxxx 10xxxxxx */ - if ((s[1] & 0xc0) != 0x80 || - (s[2] & 0xc0) != 0x80 || - (s[0] == 0xe0 && (s[1] & 0xe0) == 0x80) || /* overlong? */ - (s[0] == 0xed && (s[1] & 0xe0) == 0xa0) || /* surrogate? */ - (s[0] == 0xef && s[1] == 0xbf && - (s[2] & 0xfe) == 0xbe)) /* U+FFFE or U+FFFF? */ - return false; - else - s += 3; - } - else if ((s[0] & 0xf8) == 0xf0) - { - /* 11110XXX 10XXxxxx 10xxxxxx 10xxxxxx */ - if ((s[1] & 0xc0) != 0x80 || - (s[2] & 0xc0) != 0x80 || - (s[3] & 0xc0) != 0x80 || - (s[0] == 0xf0 && (s[1] & 0xf0) == 0x80) || /* overlong? */ - (s[0] == 0xf4 && s[1] > 0x8f) || s[0] > 0xf4) /* > U+10FFFF? */ - return false; - else - s += 4; - } - else - { - return false; - } - } - - return true; -} - -#endif - diff --git a/deps/nanopb_tiny/pb_common.h b/deps/nanopb_tiny/pb_common.h deleted file mode 100644 index 4cf83b56..00000000 --- a/deps/nanopb_tiny/pb_common.h +++ /dev/null @@ -1,50 +0,0 @@ -/* pb_common.h: Common support functions for pb_encode.c and pb_decode.c. - * These functions are rarely needed by applications directly. - */ - -#ifndef PB_COMMON_H_INCLUDED -#define PB_COMMON_H_INCLUDED - -#include "pb.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Initialize the field iterator structure to beginning. - * Returns false if the message type is empty. */ -bool pb_field_iter_begin(pb_field_iter_t *iter, const pb_msgdesc_t *desc, void *message); - -/* Get a field iterator for extension field. */ -bool pb_field_iter_begin_extension(pb_field_iter_t *iter, pb_extension_t *extension); - -/* Same as pb_field_iter_begin(), but for const message pointer. - * Note that the pointers in pb_field_iter_t will be non-const but shouldn't - * be written to when using these functions. */ -bool pb_field_iter_begin_const(pb_field_iter_t *iter, const pb_msgdesc_t *desc, const void *message); - -bool pb_field_iter_begin_extension_const(pb_field_iter_t *iter, const pb_extension_t *extension); - -/* Advance the iterator to the next field. - * Returns false when the iterator wraps back to the first field. */ -bool pb_field_iter_next(pb_field_iter_t *iter); - -/* Advance the iterator until it points at a field with the given tag. - * Returns false if no such field exists. */ -bool pb_field_iter_find(pb_field_iter_t *iter, uint32_t tag); - -/* Find a field with type PB_LTYPE_EXTENSION, or return false if not found. - * There can be only one extension range field per message. */ -bool pb_field_iter_find_extension(pb_field_iter_t *iter); - -#ifdef PB_VALIDATE_UTF8 -/* Validate UTF-8 text string */ -bool pb_validate_utf8(const char *s); -#endif - -#ifdef __cplusplus -} /* extern "C" */ -#endif - -#endif - diff --git a/deps/nanopb_tiny/pb_decode.c b/deps/nanopb_tiny/pb_decode.c deleted file mode 100644 index 9996c57d..00000000 --- a/deps/nanopb_tiny/pb_decode.c +++ /dev/null @@ -1,1662 +0,0 @@ -/* pb_decode.c -- decode a protobuf using minimal resources - * - * 2011 Petteri Aimonen - */ - -/* Use the GCC warn_unused_result attribute to check that all return values - * are propagated correctly. On other compilers and gcc before 3.4.0 just - * ignore the annotation. - */ -#if !defined(__GNUC__) || (__GNUC__ < 3) || (__GNUC__ == 3 && __GNUC_MINOR__ < 4) -#define checkreturn -#else -#define checkreturn __attribute__((warn_unused_result)) -#endif - -#include -#include "pb.h" -#include "pb_decode.h" -#include "pb_common.h" - -/************************************** - * Declarations internal to this file * - **************************************/ - -static bool checkreturn buf_read(pb_istream_t *stream, pb_byte_t *buf, size_t count); - -static bool checkreturn pb_decode_varint32_eof(pb_istream_t *stream, uint32_t *dest, bool *eof); - -static bool checkreturn read_raw_value(pb_istream_t *stream, pb_wire_type_t wire_type, pb_byte_t *buf, size_t *size); - -static bool checkreturn decode_basic_field(pb_istream_t *stream, pb_wire_type_t wire_type, pb_field_iter_t *field); - -static bool checkreturn decode_static_field(pb_istream_t *stream, pb_wire_type_t wire_type, pb_field_iter_t *field); - -static bool checkreturn decode_pointer_field(pb_istream_t *stream, pb_wire_type_t wire_type, pb_field_iter_t *field); - -static bool checkreturn decode_callback_field(pb_istream_t *stream, pb_wire_type_t wire_type, pb_field_iter_t *field); - -static bool checkreturn decode_field(pb_istream_t *stream, pb_wire_type_t wire_type, pb_field_iter_t *field); - -static bool checkreturn -default_extension_decoder(pb_istream_t *stream, pb_extension_t *extension, uint32_t tag, pb_wire_type_t wire_type); - -static bool checkreturn -decode_extension(pb_istream_t *stream, uint32_t tag, pb_wire_type_t wire_type, pb_extension_t *extension); - -static bool pb_field_set_to_default(pb_field_iter_t *field); - -static bool pb_message_set_to_defaults(pb_field_iter_t *iter); - -static bool checkreturn pb_dec_bool(pb_istream_t *stream, const pb_field_iter_t *field); - -static bool checkreturn pb_dec_varint(pb_istream_t *stream, const pb_field_iter_t *field); - -static bool checkreturn pb_dec_bytes(pb_istream_t *stream, const pb_field_iter_t *field); - -static bool checkreturn pb_dec_string(pb_istream_t *stream, const pb_field_iter_t *field); - -static bool checkreturn pb_dec_submessage(pb_istream_t *stream, const pb_field_iter_t *field); - -static bool checkreturn pb_dec_fixed_length_bytes(pb_istream_t *stream, const pb_field_iter_t *field); - -static bool checkreturn pb_skip_varint(pb_istream_t *stream); - -static bool checkreturn pb_skip_string(pb_istream_t *stream); - -#ifdef PB_ENABLE_MALLOC -static bool checkreturn allocate_field(pb_istream_t *stream, void *pData, size_t data_size, size_t array_size); -static void initialize_pointer_field(void *pItem, pb_field_iter_t *field); -static bool checkreturn pb_release_union_field(pb_istream_t *stream, pb_field_iter_t *field); -static void pb_release_single_field(pb_field_iter_t *field); -#endif - -#ifdef PB_WITHOUT_64BIT -#define pb_int64_t int32_t -#define pb_uint64_t uint32_t -#else -#define pb_int64_t int64_t -#define pb_uint64_t uint64_t -#endif - -#define PB_WT_PACKED ((pb_wire_type_t)0xFF) - -typedef struct { - uint32_t bitfield[(PB_MAX_REQUIRED_FIELDS + 31) / 32]; -} pb_fields_seen_t; - -/******************************* - * pb_istream_t implementation * - *******************************/ - -static bool checkreturn buf_read(pb_istream_t *stream, pb_byte_t *buf, size_t count) { - size_t i; - const pb_byte_t *source = (const pb_byte_t *) stream->state; - stream->state = (pb_byte_t *) stream->state + count; - - if (buf != NULL) { - for (i = 0; i < count; i++) - buf[i] = source[i]; - } - - return true; -} - -bool checkreturn pb_read(pb_istream_t *stream, pb_byte_t *buf, size_t count) { - if (count == 0) - return true; - -#ifndef PB_BUFFER_ONLY - if (buf == NULL && stream->callback != buf_read) { - /* Skip input bytes */ - pb_byte_t tmp[16]; - while (count > 16) { - if (!pb_read(stream, tmp, 16)) - return false; - - count -= 16; - } - - return pb_read(stream, tmp, count); - } -#endif - - if (stream->bytes_left < count) - PB_RETURN_ERROR(stream, "end-of-stream"); - -#ifndef PB_BUFFER_ONLY - if (!stream->callback(stream, buf, count)) - PB_RETURN_ERROR(stream, "io error"); -#else - if (!buf_read(stream, buf, count)) - return false; -#endif - - stream->bytes_left -= count; - return true; -} - -/* Read a single byte from input stream. buf may not be NULL. - * This is an optimization for the varint decoding. */ -static bool checkreturn pb_readbyte(pb_istream_t *stream, pb_byte_t *buf) { - if (stream->bytes_left == 0) - PB_RETURN_ERROR(stream, "end-of-stream"); - -#ifndef PB_BUFFER_ONLY - if (!stream->callback(stream, buf, 1)) - PB_RETURN_ERROR(stream, "io error"); -#else - *buf = *(const pb_byte_t*)stream->state; - stream->state = (pb_byte_t*)stream->state + 1; -#endif - - stream->bytes_left--; - - return true; -} - -pb_istream_t pb_istream_from_buffer(const pb_byte_t *buf, size_t msglen) { - pb_istream_t stream; - /* Cast away the const from buf without a compiler error. We are - * careful to use it only in a const manner in the callbacks. - */ - union { - void *state; - const void *c_state; - } state; -#ifdef PB_BUFFER_ONLY - stream.callback = NULL; -#else - stream.callback = &buf_read; -#endif - state.c_state = buf; - stream.state = state.state; - stream.bytes_left = msglen; -#ifndef PB_NO_ERRMSG - stream.errmsg = NULL; -#endif - return stream; -} - -/******************** - * Helper functions * - ********************/ - -static bool checkreturn pb_decode_varint32_eof(pb_istream_t *stream, uint32_t *dest, bool *eof) { - pb_byte_t byte; - uint32_t result; - - if (!pb_readbyte(stream, &byte)) { - if (stream->bytes_left == 0) { - if (eof) { - *eof = true; - } - } - - return false; - } - - if ((byte & 0x80) == 0) { - /* Quick case, 1 byte value */ - result = byte; - } else { - /* Multibyte case */ - uint_fast8_t bitpos = 7; - result = byte & 0x7F; - - do { - if (!pb_readbyte(stream, &byte)) - return false; - - if (bitpos >= 32) { - /* Note: The varint could have trailing 0x80 bytes, or 0xFF for negative. */ - pb_byte_t sign_extension = (bitpos < 63) ? 0xFF : 0x01; - bool valid_extension = ((byte & 0x7F) == 0x00 || - ((result >> 31) != 0 && byte == sign_extension)); - - if (bitpos >= 64 || !valid_extension) { - PB_RETURN_ERROR(stream, "varint overflow"); - } - } else { - result |= (uint32_t) (byte & 0x7F) << bitpos; - } - bitpos = (uint_fast8_t) (bitpos + 7); - } while (byte & 0x80); - - if (bitpos == 35 && (byte & 0x70) != 0) { - /* The last byte was at bitpos=28, so only bottom 4 bits fit. */ - PB_RETURN_ERROR(stream, "varint overflow"); - } - } - - *dest = result; - return true; -} - -bool checkreturn pb_decode_varint32(pb_istream_t *stream, uint32_t *dest) { - return pb_decode_varint32_eof(stream, dest, NULL); -} - -#ifndef PB_WITHOUT_64BIT - -bool checkreturn pb_decode_varint(pb_istream_t *stream, uint64_t *dest) { - pb_byte_t byte; - uint_fast8_t bitpos = 0; - uint64_t result = 0; - - do { - if (bitpos >= 64) - PB_RETURN_ERROR(stream, "varint overflow"); - - if (!pb_readbyte(stream, &byte)) - return false; - - result |= (uint64_t) (byte & 0x7F) << bitpos; - bitpos = (uint_fast8_t) (bitpos + 7); - } while (byte & 0x80); - - *dest = result; - return true; -} - -#endif - -bool checkreturn pb_skip_varint(pb_istream_t *stream) { - pb_byte_t byte; - do { - if (!pb_read(stream, &byte, 1)) - return false; - } while (byte & 0x80); - return true; -} - -bool checkreturn pb_skip_string(pb_istream_t *stream) { - uint32_t length; - if (!pb_decode_varint32(stream, &length)) - return false; - - if ((size_t) length != length) { - PB_RETURN_ERROR(stream, "size too large"); - } - - return pb_read(stream, NULL, (size_t) length); -} - -bool checkreturn pb_decode_tag(pb_istream_t *stream, pb_wire_type_t *wire_type, uint32_t *tag, bool *eof) { - uint32_t temp; - *eof = false; - *wire_type = (pb_wire_type_t) 0; - *tag = 0; - - if (!pb_decode_varint32_eof(stream, &temp, eof)) { - return false; - } - - *tag = temp >> 3; - *wire_type = (pb_wire_type_t) (temp & 7); - return true; -} - -bool checkreturn pb_skip_field(pb_istream_t *stream, pb_wire_type_t wire_type) { - switch (wire_type) { - case PB_WT_VARINT: - return pb_skip_varint(stream); - case PB_WT_64BIT: - return pb_read(stream, NULL, 8); - case PB_WT_STRING: - return pb_skip_string(stream); - case PB_WT_32BIT: - return pb_read(stream, NULL, 4); - default: - PB_RETURN_ERROR(stream, "invalid wire_type"); - } -} - -/* Read a raw value to buffer, for the purpose of passing it to callback as - * a substream. Size is maximum size on call, and actual size on return. - */ -static bool checkreturn read_raw_value(pb_istream_t *stream, pb_wire_type_t wire_type, pb_byte_t *buf, size_t *size) { - size_t max_size = *size; - switch (wire_type) { - case PB_WT_VARINT: - *size = 0; - do { - (*size)++; - if (*size > max_size) - PB_RETURN_ERROR(stream, "varint overflow"); - - if (!pb_read(stream, buf, 1)) - return false; - } while (*buf++ & 0x80); - return true; - - case PB_WT_64BIT: - *size = 8; - return pb_read(stream, buf, 8); - - case PB_WT_32BIT: - *size = 4; - return pb_read(stream, buf, 4); - - case PB_WT_STRING: - /* Calling read_raw_value with a PB_WT_STRING is an error. - * Explicitly handle this case and fallthrough to default to avoid - * compiler warnings. - */ - - default: - PB_RETURN_ERROR(stream, "invalid wire_type"); - } -} - -/* Decode string length from stream and return a substream with limited length. - * Remember to close the substream using pb_close_string_substream(). - */ -bool checkreturn pb_make_string_substream(pb_istream_t *stream, pb_istream_t *substream) { - uint32_t size; - if (!pb_decode_varint32(stream, &size)) - return false; - - *substream = *stream; - if (substream->bytes_left < size) - PB_RETURN_ERROR(stream, "parent stream too short"); - - substream->bytes_left = (size_t) size; - stream->bytes_left -= (size_t) size; - return true; -} - -bool checkreturn pb_close_string_substream(pb_istream_t *stream, pb_istream_t *substream) { - if (substream->bytes_left) { - if (!pb_read(substream, NULL, substream->bytes_left)) - return false; - } - - stream->state = substream->state; - -#ifndef PB_NO_ERRMSG - stream->errmsg = substream->errmsg; -#endif - return true; -} - -/************************* - * Decode a single field * - *************************/ - -static bool checkreturn decode_basic_field(pb_istream_t *stream, pb_wire_type_t wire_type, pb_field_iter_t *field) { - ZEMU_TRACE() - - switch (PB_LTYPE(field->type)) { - case PB_LTYPE_BOOL: - if (wire_type != PB_WT_VARINT && wire_type != PB_WT_PACKED) - PB_RETURN_ERROR(stream, "wrong wire type"); - - return pb_dec_bool(stream, field); - - case PB_LTYPE_VARINT: - case PB_LTYPE_UVARINT: - case PB_LTYPE_SVARINT: - if (wire_type != PB_WT_VARINT && wire_type != PB_WT_PACKED) - PB_RETURN_ERROR(stream, "wrong wire type"); - - return pb_dec_varint(stream, field); - - case PB_LTYPE_FIXED32: - if (wire_type != PB_WT_32BIT && wire_type != PB_WT_PACKED) - PB_RETURN_ERROR(stream, "wrong wire type"); - - return pb_decode_fixed32(stream, field->pData); - - case PB_LTYPE_FIXED64: - if (wire_type != PB_WT_64BIT && wire_type != PB_WT_PACKED) - PB_RETURN_ERROR(stream, "wrong wire type"); - -#ifdef PB_CONVERT_DOUBLE_FLOAT - if (field->data_size == sizeof(float)) - { - return pb_decode_double_as_float(stream, (float*)field->pData); - } -#endif - -#ifdef PB_WITHOUT_64BIT - PB_RETURN_ERROR(stream, "invalid data_size"); -#else - return pb_decode_fixed64(stream, field->pData); -#endif - - case PB_LTYPE_BYTES: - if (wire_type != PB_WT_STRING) - PB_RETURN_ERROR(stream, "wrong wire type"); - - return pb_dec_bytes(stream, field); - - case PB_LTYPE_STRING: - if (wire_type != PB_WT_STRING) - PB_RETURN_ERROR(stream, "wrong wire type"); - - return pb_dec_string(stream, field); - - case PB_LTYPE_SUBMESSAGE: - case PB_LTYPE_SUBMSG_W_CB: - if (wire_type != PB_WT_STRING) - PB_RETURN_ERROR(stream, "wrong wire type"); - - return pb_dec_submessage(stream, field); - - case PB_LTYPE_FIXED_LENGTH_BYTES: - if (wire_type != PB_WT_STRING) - PB_RETURN_ERROR(stream, "wrong wire type"); - - return pb_dec_fixed_length_bytes(stream, field); - - default: - PB_RETURN_ERROR(stream, "invalid field type"); - } -} - -static bool checkreturn decode_static_field(pb_istream_t *stream, pb_wire_type_t wire_type, pb_field_iter_t *field) { - ZEMU_TRACE() - - switch (PB_HTYPE(field->type)) { - case PB_HTYPE_REQUIRED: - return decode_basic_field(stream, wire_type, field); - - case PB_HTYPE_OPTIONAL: - if (field->pSize != NULL) - *(bool *) field->pSize = true; - return decode_basic_field(stream, wire_type, field); - - case PB_HTYPE_REPEATED: - if (wire_type == PB_WT_STRING - && PB_LTYPE(field->type) <= PB_LTYPE_LAST_PACKABLE) { - ZEMU_TRACE() - - /* Packed array */ - bool status = true; - pb_istream_t substream; - pb_size_t *size = (pb_size_t *) field->pSize; - field->pData = (char *) field->pField + field->data_size * (*size); - - if (!pb_make_string_substream(stream, &substream)) - return false; - - while (substream.bytes_left > 0 && *size < field->array_size) { - if (!decode_basic_field(&substream, PB_WT_PACKED, field)) { - status = false; - break; - } - (*size)++; - field->pData = (char *) field->pData + field->data_size; - } - - if (substream.bytes_left != 0) - PB_RETURN_ERROR(stream, "array overflow"); - if (!pb_close_string_substream(stream, &substream)) - return false; - - return status; - } else { - /* Repeated field */ - pb_size_t *size = (pb_size_t *) field->pSize; - field->pData = (char *) field->pField + field->data_size * (*size); - - if ((*size)++ >= field->array_size) - PB_RETURN_ERROR(stream, "array overflow"); - - return decode_basic_field(stream, wire_type, field); - } - - case PB_HTYPE_ONEOF: - if (PB_LTYPE_IS_SUBMSG(field->type) && - *(pb_size_t *) field->pSize != field->tag) { - /* We memset to zero so that any callbacks are set to NULL. - * This is because the callbacks might otherwise have values - * from some other union field. - * If callbacks are needed inside oneof field, use .proto - * option submsg_callback to have a separate callback function - * that can set the fields before submessage is decoded. - * pb_dec_submessage() will set any default values. */ - ZEMU_TRACE() - memset(field->pData, 0, (size_t) field->data_size); - - const pb_msgdesc_t *tmp = (const pb_msgdesc_t *) PIC(field->submsg_desc); - const bool validDefaultValue = tmp != NULL && tmp->default_value != NULL; - const bool validFieldCallback = tmp != NULL && tmp->field_callback != NULL; - const bool validSubmsgInfo = tmp != NULL && tmp->submsg_info != NULL; - - /* Set default values for the submessage fields. */ - if (validDefaultValue || validFieldCallback || validSubmsgInfo) { - pb_field_iter_t submsg_iter; - if (pb_field_iter_begin(&submsg_iter, field->submsg_desc, field->pData)) { - if (!pb_message_set_to_defaults(&submsg_iter)) - PB_RETURN_ERROR(stream, "failed to set defaults"); - } - } - } - *(pb_size_t *) field->pSize = field->tag; - - return decode_basic_field(stream, wire_type, field); - - default: - PB_RETURN_ERROR(stream, "invalid field type"); - } -} - -#ifdef PB_ENABLE_MALLOC -/* Allocate storage for the field and store the pointer at iter->pData. - * array_size is the number of entries to reserve in an array. - * Zero size is not allowed, use pb_free() for releasing. - */ -static bool checkreturn allocate_field(pb_istream_t *stream, void *pData, size_t data_size, size_t array_size) -{ - void *ptr = *(void**)pData; - - if (data_size == 0 || array_size == 0) - PB_RETURN_ERROR(stream, "invalid size"); - -#ifdef __AVR__ - /* Workaround for AVR libc bug 53284: http://savannah.nongnu.org/bugs/?53284 - * Realloc to size of 1 byte can cause corruption of the malloc structures. - */ - if (data_size == 1 && array_size == 1) - { - data_size = 2; - } -#endif - - /* Check for multiplication overflows. - * This code avoids the costly division if the sizes are small enough. - * Multiplication is safe as long as only half of bits are set - * in either multiplicand. - */ - { - const size_t check_limit = (size_t)1 << (sizeof(size_t) * 4); - if (data_size >= check_limit || array_size >= check_limit) - { - const size_t size_max = (size_t)-1; - if (size_max / array_size < data_size) - { - PB_RETURN_ERROR(stream, "size too large"); - } - } - } - - /* Allocate new or expand previous allocation */ - /* Note: on failure the old pointer will remain in the structure, - * the message must be freed by caller also on error return. */ - ptr = pb_realloc(ptr, array_size * data_size); - if (ptr == NULL) - PB_RETURN_ERROR(stream, "realloc failed"); - - *(void**)pData = ptr; - return true; -} - -/* Clear a newly allocated item in case it contains a pointer, or is a submessage. */ -static void initialize_pointer_field(void *pItem, pb_field_iter_t *field) -{ - if (PB_LTYPE(field->type) == PB_LTYPE_STRING || - PB_LTYPE(field->type) == PB_LTYPE_BYTES) - { - *(void**)pItem = NULL; - } - else if (PB_LTYPE_IS_SUBMSG(field->type)) - { - /* We memset to zero so that any callbacks are set to NULL. - * Default values will be set by pb_dec_submessage(). */ - memset(pItem, 0, field->data_size); - } -} -#endif - -static bool checkreturn decode_pointer_field(pb_istream_t *stream, pb_wire_type_t wire_type, pb_field_iter_t *field) { - ZEMU_TRACE() - -#ifndef PB_ENABLE_MALLOC - PB_UNUSED(wire_type); - PB_UNUSED(field); - PB_RETURN_ERROR(stream, "no malloc support"); -#else - switch (PB_HTYPE(field->type)) - { - case PB_HTYPE_REQUIRED: - case PB_HTYPE_OPTIONAL: - case PB_HTYPE_ONEOF: - if (PB_LTYPE_IS_SUBMSG(field->type) && *(void**)field->pField != NULL) - { - /* Duplicate field, have to release the old allocation first. */ - /* FIXME: Does this work correctly for oneofs? */ - pb_release_single_field(field); - } - - if (PB_HTYPE(field->type) == PB_HTYPE_ONEOF) - { - *(pb_size_t*)field->pSize = field->tag; - } - - if (PB_LTYPE(field->type) == PB_LTYPE_STRING || - PB_LTYPE(field->type) == PB_LTYPE_BYTES) - { - /* pb_dec_string and pb_dec_bytes handle allocation themselves */ - field->pData = field->pField; - return decode_basic_field(stream, wire_type, field); - } - else - { - if (!allocate_field(stream, field->pField, field->data_size, 1)) - return false; - - field->pData = *(void**)field->pField; - initialize_pointer_field(field->pData, field); - return decode_basic_field(stream, wire_type, field); - } - - case PB_HTYPE_REPEATED: - if (wire_type == PB_WT_STRING - && PB_LTYPE(field->type) <= PB_LTYPE_LAST_PACKABLE) - { - /* Packed array, multiple items come in at once. */ - bool status = true; - pb_size_t *size = (pb_size_t*)field->pSize; - size_t allocated_size = *size; - pb_istream_t substream; - - if (!pb_make_string_substream(stream, &substream)) - return false; - - while (substream.bytes_left) - { - if (*size == PB_SIZE_MAX) - { -#ifndef PB_NO_ERRMSG - stream->errmsg = "too many array entries"; -#endif - status = false; - break; - } - - if ((size_t)*size + 1 > allocated_size) - { - /* Allocate more storage. This tries to guess the - * number of remaining entries. Round the division - * upwards. */ - size_t remain = (substream.bytes_left - 1) / field->data_size + 1; - if (remain < PB_SIZE_MAX - allocated_size) - allocated_size += remain; - else - allocated_size += 1; - - if (!allocate_field(&substream, field->pField, field->data_size, allocated_size)) - { - status = false; - break; - } - } - - /* Decode the array entry */ - field->pData = *(char**)field->pField + field->data_size * (*size); - initialize_pointer_field(field->pData, field); - if (!decode_basic_field(&substream, PB_WT_PACKED, field)) - { - status = false; - break; - } - - (*size)++; - } - if (!pb_close_string_substream(stream, &substream)) - return false; - - return status; - } - else - { - /* Normal repeated field, i.e. only one item at a time. */ - pb_size_t *size = (pb_size_t*)field->pSize; - - if (*size == PB_SIZE_MAX) - PB_RETURN_ERROR(stream, "too many array entries"); - - if (!allocate_field(stream, field->pField, field->data_size, (size_t)(*size + 1))) - return false; - - field->pData = *(char**)field->pField + field->data_size * (*size); - (*size)++; - initialize_pointer_field(field->pData, field); - return decode_basic_field(stream, wire_type, field); - } - - default: - PB_RETURN_ERROR(stream, "invalid field type"); - } -#endif -} - -static bool checkreturn decode_callback_field(pb_istream_t *stream, pb_wire_type_t wire_type, pb_field_iter_t *field) { - ZEMU_TRACE() - - if (!field->descriptor->field_callback) - return pb_skip_field(stream, wire_type); - - if (wire_type == PB_WT_STRING) { - pb_istream_t substream; - size_t prev_bytes_left; - - if (!pb_make_string_substream(stream, &substream)) - return false; - - do { - prev_bytes_left = substream.bytes_left; - if (!field->descriptor->field_callback(&substream, NULL, field)) - PB_RETURN_ERROR(stream, "callback failed"); - } while (substream.bytes_left > 0 && substream.bytes_left < prev_bytes_left); - - if (!pb_close_string_substream(stream, &substream)) - return false; - - return true; - } else { - /* Copy the single scalar value to stack. - * This is required so that we can limit the stream length, - * which in turn allows to use same callback for packed and - * not-packed fields. */ - pb_istream_t substream; - pb_byte_t buffer[10]; - size_t size = sizeof(buffer); - - if (!read_raw_value(stream, wire_type, buffer, &size)) - return false; - substream = pb_istream_from_buffer(buffer, size); - - return field->descriptor->field_callback(&substream, NULL, field); - } -} - -static bool checkreturn decode_field(pb_istream_t *stream, pb_wire_type_t wire_type, pb_field_iter_t *field) { -#ifdef PB_ENABLE_MALLOC - /* When decoding an oneof field, check if there is old data that must be - * released first. */ - if (PB_HTYPE(field->type) == PB_HTYPE_ONEOF) - { - if (!pb_release_union_field(stream, field)) - return false; - } -#endif - - switch (PB_ATYPE(field->type)) { - case PB_ATYPE_STATIC: - return decode_static_field(stream, wire_type, field); - - case PB_ATYPE_POINTER: - return decode_pointer_field(stream, wire_type, field); - - case PB_ATYPE_CALLBACK: - return decode_callback_field(stream, wire_type, field); - - default: - PB_RETURN_ERROR(stream, "invalid field type"); - } -} - -/* Default handler for extension fields. Expects to have a pb_msgdesc_t - * pointer in the extension->type->arg field, pointing to a message with - * only one field in it. */ -static bool checkreturn default_extension_decoder(pb_istream_t *stream, - pb_extension_t *extension, uint32_t tag, pb_wire_type_t wire_type) { - pb_field_iter_t iter; - - if (!pb_field_iter_begin_extension(&iter, extension)) - PB_RETURN_ERROR(stream, "invalid extension"); - - if (iter.tag != tag || !iter.message) - return true; - - extension->found = true; - return decode_field(stream, wire_type, &iter); -} - -/* Try to decode an unknown field as an extension field. Tries each extension - * decoder in turn, until one of them handles the field or loop ends. */ -static bool checkreturn decode_extension(pb_istream_t *stream, - uint32_t tag, pb_wire_type_t wire_type, pb_extension_t *extension) { - size_t pos = stream->bytes_left; - - while (extension != NULL && pos == stream->bytes_left) { - bool status; - if (extension->type->decode) - status = extension->type->decode(stream, extension, tag, wire_type); - else - status = default_extension_decoder(stream, extension, tag, wire_type); - - if (!status) - return false; - - extension = extension->next; - } - - return true; -} - -/* Initialize message fields to default values, recursively */ -static bool pb_field_set_to_default(pb_field_iter_t *field) { - pb_type_t type; - type = field->type; - - if (PB_LTYPE(type) == PB_LTYPE_EXTENSION) { - pb_extension_t *ext = *(pb_extension_t *const *) field->pData; - while (ext != NULL) { - pb_field_iter_t ext_iter; - if (pb_field_iter_begin_extension(&ext_iter, ext)) { - ext->found = false; - if (!pb_message_set_to_defaults(&ext_iter)) - return false; - } - ext = ext->next; - } - } else if (PB_ATYPE(type) == PB_ATYPE_STATIC) { - bool init_data = true; - if (PB_HTYPE(type) == PB_HTYPE_OPTIONAL && field->pSize != NULL) { - /* Set has_field to false. Still initialize the optional field - * itself also. */ - *(bool *) field->pSize = false; - } else if (PB_HTYPE(type) == PB_HTYPE_REPEATED || - PB_HTYPE(type) == PB_HTYPE_ONEOF) { - /* REPEATED: Set array count to 0, no need to initialize contents. - ONEOF: Set which_field to 0. */ - *(pb_size_t *) field->pSize = 0; - init_data = false; - } - - if (init_data) { - const bool isSubmsg = PB_LTYPE_IS_SUBMSG(field->type); - const pb_msgdesc_t *tmp = (const pb_msgdesc_t *) PIC(field->submsg_desc); - const bool validDefaultValue = tmp != NULL && tmp->default_value != NULL; - const bool validFieldCallback = tmp != NULL && tmp->field_callback != NULL; - const bool validSubmsgInfo = tmp != NULL && tmp->submsg_info != NULL; - - if (isSubmsg && (validDefaultValue || validFieldCallback || validSubmsgInfo)) { - /* Initialize submessage to defaults. - * Only needed if it has default values - * or callback/submessage fields. */ - pb_field_iter_t submsg_iter; - if (pb_field_iter_begin(&submsg_iter, field->submsg_desc, field->pData)) { - if (!pb_message_set_to_defaults(&submsg_iter)) - return false; - } - } else { - /* Initialize to zeros */ - memset(field->pData, 0, (size_t) field->data_size); - } - } - } else if (PB_ATYPE(type) == PB_ATYPE_POINTER) { - /* Initialize the pointer to NULL. */ - *(void **) field->pField = NULL; - - /* Initialize array count to 0. */ - if (PB_HTYPE(type) == PB_HTYPE_REPEATED || - PB_HTYPE(type) == PB_HTYPE_ONEOF) { - *(pb_size_t *) field->pSize = 0; - } - } else if (PB_ATYPE(type) == PB_ATYPE_CALLBACK) { - /* Don't overwrite callback */ - } - - return true; -} - -static bool pb_message_set_to_defaults(pb_field_iter_t *iter) { - pb_istream_t defstream = PB_ISTREAM_EMPTY; - uint32_t tag = 0; - pb_wire_type_t wire_type = PB_WT_VARINT; - bool eof; - - const pb_msgdesc_t *descriptor = (const pb_msgdesc_t *) PIC(iter->descriptor); - - if (descriptor->default_value) { - defstream = pb_istream_from_buffer(PB_PROGMEM_READTYPE(const pb_byte_t *, descriptor->default_value, 0), - (size_t) -1); - - if (!pb_decode_tag(&defstream, &wire_type, &tag, &eof)) - return false; - } - - do { - if (!pb_field_set_to_default(iter)) - return false; - - if (tag != 0 && iter->tag == tag) { - /* We have a default value for this field in the defstream */ - if (!decode_field(&defstream, wire_type, iter)) - return false; - if (!pb_decode_tag(&defstream, &wire_type, &tag, &eof)) - return false; - - if (iter->pSize) - *(bool *) iter->pSize = false; - } - } while (pb_field_iter_next(iter)); - - return true; -} - -/********************* - * Decode all fields * - *********************/ - -static bool checkreturn -pb_decode_inner(pb_istream_t *stream, const pb_msgdesc_t *fields, void *dest_struct, unsigned int flags) { - uint32_t extension_range_start = 0; - pb_extension_t *extensions = NULL; - - ZEMU_TRACE() - - /* 'fixed_count_field' and 'fixed_count_size' track position of a repeated fixed - * count field. This can only handle _one_ repeated fixed count field that - * is unpacked and unordered among other (non repeated fixed count) fields. - */ - pb_size_t fixed_count_field = PB_SIZE_MAX; - pb_size_t fixed_count_size = 0; - pb_size_t fixed_count_total_size = 0; - - pb_fields_seen_t fields_seen = {{0, 0}}; - const uint32_t allbits = ~(uint32_t) 0; - pb_field_iter_t iter; - - ZEMU_TRACE() - - if (pb_field_iter_begin(&iter, fields, dest_struct)) { - if ((flags & PB_DECODE_NOINIT) == 0) { - if (!pb_message_set_to_defaults(&iter)) - PB_RETURN_ERROR(stream, "failed to set defaults"); - } - } - - while (stream->bytes_left) { - ZEMU_TRACE() - - uint32_t tag; - pb_wire_type_t wire_type; - bool eof; - - if (!pb_decode_tag(stream, &wire_type, &tag, &eof)) { - if (eof) - break; - else - return false; - } - - if (tag == 0) { - if (flags & PB_DECODE_NULLTERMINATED) { - break; - } else { - PB_RETURN_ERROR(stream, "zero tag"); - } - } - - ZEMU_TRACE() - const bool tag_found = pb_field_iter_find(&iter, tag); - ZEMU_TRACE() - const bool type_is_extension = PB_LTYPE(iter.type) == PB_LTYPE_EXTENSION; - ZEMU_TRACE() - - if (!tag_found || type_is_extension) { - ZEMU_TRACE() - - /* No match found, check if it matches an extension. */ - if (extension_range_start == 0) { - if (pb_field_iter_find_extension(&iter)) { - extensions = *(pb_extension_t *const *) iter.pData; - extension_range_start = iter.tag; - } - - if (!extensions) { - extension_range_start = (uint32_t) -1; - } - } - - if (tag >= extension_range_start) { - size_t pos = stream->bytes_left; - - if (!decode_extension(stream, tag, wire_type, extensions)) - return false; - - if (pos != stream->bytes_left) { - /* The field was handled */ - continue; - } - } - - /* No match found, skip data */ - if (!pb_skip_field(stream, wire_type)) - return false; - continue; - } - - ZEMU_TRACE() - - /* If a repeated fixed count field was found, get size from - * 'fixed_count_field' as there is no counter contained in the struct. - */ - if (PB_HTYPE(iter.type) == PB_HTYPE_REPEATED && iter.pSize == &iter.array_size) { - if (fixed_count_field != iter.index) { - /* If the new fixed count field does not match the previous one, - * check that the previous one is NULL or that it finished - * receiving all the expected data. - */ - if (fixed_count_field != PB_SIZE_MAX && - fixed_count_size != fixed_count_total_size) { - PB_RETURN_ERROR(stream, "wrong size for fixed count field"); - } - - fixed_count_field = iter.index; - fixed_count_size = 0; - fixed_count_total_size = iter.array_size; - } - - iter.pSize = &fixed_count_size; - } - - ZEMU_TRACE() - - if (PB_HTYPE(iter.type) == PB_HTYPE_REQUIRED - && iter.required_field_index < PB_MAX_REQUIRED_FIELDS) { - uint32_t tmp = ((uint32_t) 1 << (iter.required_field_index & 31)); - fields_seen.bitfield[iter.required_field_index >> 5] |= tmp; - } - - ZEMU_TRACE() - - if (!decode_field(stream, wire_type, &iter)) - return false; - } - - ZEMU_TRACE() - - /* Check that all elements of the last decoded fixed count field were present. */ - if (fixed_count_field != PB_SIZE_MAX && - fixed_count_size != fixed_count_total_size) { - PB_RETURN_ERROR(stream, "wrong size for fixed count field"); - } - - ZEMU_TRACE() - - /* Check that all required fields were present. */ - { - ZEMU_TRACE() - - const pb_msgdesc_t *descriptor = (const pb_msgdesc_t *) PIC(iter.descriptor); - pb_size_t req_field_count = descriptor->required_field_count; - - ZEMU_TRACE() - - if (req_field_count > 0) { - pb_size_t i; - - ZEMU_TRACE() - - if (req_field_count > PB_MAX_REQUIRED_FIELDS) - req_field_count = PB_MAX_REQUIRED_FIELDS; - - ZEMU_TRACE() - - /* Check the whole words */ - for (i = 0; i < (req_field_count >> 5); i++) { - if (fields_seen.bitfield[i] != allbits) - PB_RETURN_ERROR(stream, "missing required field"); - } - - ZEMU_TRACE() - - /* Check the remaining bits (if any) */ - if ((req_field_count & 31) != 0) { - if (fields_seen.bitfield[req_field_count >> 5] != - (allbits >> (uint_least8_t) (32 - (req_field_count & 31)))) { - PB_RETURN_ERROR(stream, "missing required field"); - } - } - } - } - - ZEMU_TRACE() - - return true; -} - -bool checkreturn pb_decode_ex(pb_istream_t *stream, const pb_msgdesc_t *fields, void *dest_struct, unsigned int flags) { - bool status; - - if ((flags & PB_DECODE_DELIMITED) == 0) { - status = pb_decode_inner(stream, fields, dest_struct, flags); - } else { - pb_istream_t substream; - if (!pb_make_string_substream(stream, &substream)) - return false; - - status = pb_decode_inner(&substream, fields, dest_struct, flags); - - if (!pb_close_string_substream(stream, &substream)) - return false; - } - -#ifdef PB_ENABLE_MALLOC - if (!status) - pb_release(fields, dest_struct); -#endif - - return status; -} - -bool checkreturn pb_decode(pb_istream_t *stream, const pb_msgdesc_t *fields, void *dest_struct) { - bool status; - - status = pb_decode_inner(stream, fields, dest_struct, 0); - -#ifdef PB_ENABLE_MALLOC - if (!status) - pb_release(fields, dest_struct); -#endif - - return status; -} - -#ifdef PB_ENABLE_MALLOC -/* Given an oneof field, if there has already been a field inside this oneof, - * release it before overwriting with a different one. */ -static bool pb_release_union_field(pb_istream_t *stream, pb_field_iter_t *field) -{ - pb_field_iter_t old_field = *field; - pb_size_t old_tag = *(pb_size_t*)field->pSize; /* Previous which_ value */ - pb_size_t new_tag = field->tag; /* New which_ value */ - - if (old_tag == 0) - return true; /* Ok, no old data in union */ - - if (old_tag == new_tag) - return true; /* Ok, old data is of same type => merge */ - - /* Release old data. The find can fail if the message struct contains - * invalid data. */ - if (!pb_field_iter_find(&old_field, old_tag)) - PB_RETURN_ERROR(stream, "invalid union tag"); - - pb_release_single_field(&old_field); - - if (PB_ATYPE(field->type) == PB_ATYPE_POINTER) - { - /* Initialize the pointer to NULL to make sure it is valid - * even in case of error return. */ - *(void**)field->pField = NULL; - field->pData = NULL; - } - - return true; -} - -static void pb_release_single_field(pb_field_iter_t *field) -{ - pb_type_t type; - type = field->type; - - if (PB_HTYPE(type) == PB_HTYPE_ONEOF) - { - if (*(pb_size_t*)field->pSize != field->tag) - return; /* This is not the current field in the union */ - } - - /* Release anything contained inside an extension or submsg. - * This has to be done even if the submsg itself is statically - * allocated. */ - if (PB_LTYPE(type) == PB_LTYPE_EXTENSION) - { - /* Release fields from all extensions in the linked list */ - pb_extension_t *ext = *(pb_extension_t**)field->pData; - while (ext != NULL) - { - pb_field_iter_t ext_iter; - if (pb_field_iter_begin_extension(&ext_iter, ext)) - { - pb_release_single_field(&ext_iter); - } - ext = ext->next; - } - } - else if (PB_LTYPE_IS_SUBMSG(type) && PB_ATYPE(type) != PB_ATYPE_CALLBACK) - { - /* Release fields in submessage or submsg array */ - pb_size_t count = 1; - - if (PB_ATYPE(type) == PB_ATYPE_POINTER) - { - field->pData = *(void**)field->pField; - } - else - { - field->pData = field->pField; - } - - if (PB_HTYPE(type) == PB_HTYPE_REPEATED) - { - count = *(pb_size_t*)field->pSize; - - if (PB_ATYPE(type) == PB_ATYPE_STATIC && count > field->array_size) - { - /* Protect against corrupted _count fields */ - count = field->array_size; - } - } - - if (field->pData) - { - for (; count > 0; count--) - { - pb_release(field->submsg_desc, field->pData); - field->pData = (char*)field->pData + field->data_size; - } - } - } - - if (PB_ATYPE(type) == PB_ATYPE_POINTER) - { - if (PB_HTYPE(type) == PB_HTYPE_REPEATED && - (PB_LTYPE(type) == PB_LTYPE_STRING || - PB_LTYPE(type) == PB_LTYPE_BYTES)) - { - /* Release entries in repeated string or bytes array */ - void **pItem = *(void***)field->pField; - pb_size_t count = *(pb_size_t*)field->pSize; - for (; count > 0; count--) - { - pb_free(*pItem); - *pItem++ = NULL; - } - } - - if (PB_HTYPE(type) == PB_HTYPE_REPEATED) - { - /* We are going to release the array, so set the size to 0 */ - *(pb_size_t*)field->pSize = 0; - } - - /* Release main pointer */ - pb_free(*(void**)field->pField); - *(void**)field->pField = NULL; - } -} - -void pb_release(const pb_msgdesc_t *fields, void *dest_struct) -{ - pb_field_iter_t iter; - - if (!dest_struct) - return; /* Ignore NULL pointers, similar to free() */ - - if (!pb_field_iter_begin(&iter, fields, dest_struct)) - return; /* Empty message type */ - - do - { - pb_release_single_field(&iter); - } while (pb_field_iter_next(&iter)); -} -#endif - -/* Field decoders */ - -bool pb_decode_bool(pb_istream_t *stream, bool *dest) { - uint32_t value; - if (!pb_decode_varint32(stream, &value)) - return false; - - *(bool *) dest = (value != 0); - return true; -} - -bool pb_decode_svarint(pb_istream_t *stream, pb_int64_t *dest) { - pb_uint64_t value; - if (!pb_decode_varint(stream, &value)) - return false; - - if (value & 1) - *dest = (pb_int64_t) (~(value >> 1)); - else - *dest = (pb_int64_t) (value >> 1); - - return true; -} - -bool pb_decode_fixed32(pb_istream_t *stream, void *dest) { - union { - uint32_t fixed32; - pb_byte_t bytes[4]; - } u; - - if (!pb_read(stream, u.bytes, 4)) - return false; - -#if defined(__BYTE_ORDER) && __BYTE_ORDER == __LITTLE_ENDIAN && CHAR_BIT == 8 - /* fast path - if we know that we're on little endian, assign directly */ - *(uint32_t*)dest = u.fixed32; -#else - *(uint32_t *) dest = ((uint32_t) u.bytes[0] << 0) | - ((uint32_t) u.bytes[1] << 8) | - ((uint32_t) u.bytes[2] << 16) | - ((uint32_t) u.bytes[3] << 24); -#endif - return true; -} - -#ifndef PB_WITHOUT_64BIT - -bool pb_decode_fixed64(pb_istream_t *stream, void *dest) { - union { - uint64_t fixed64; - pb_byte_t bytes[8]; - } u; - - if (!pb_read(stream, u.bytes, 8)) - return false; - -#if defined(__BYTE_ORDER) && __BYTE_ORDER == __LITTLE_ENDIAN && CHAR_BIT == 8 - /* fast path - if we know that we're on little endian, assign directly */ - *(uint64_t*)dest = u.fixed64; -#else - *(uint64_t *) dest = ((uint64_t) u.bytes[0] << 0) | - ((uint64_t) u.bytes[1] << 8) | - ((uint64_t) u.bytes[2] << 16) | - ((uint64_t) u.bytes[3] << 24) | - ((uint64_t) u.bytes[4] << 32) | - ((uint64_t) u.bytes[5] << 40) | - ((uint64_t) u.bytes[6] << 48) | - ((uint64_t) u.bytes[7] << 56); -#endif - return true; -} - -#endif - -static bool checkreturn pb_dec_bool(pb_istream_t *stream, const pb_field_iter_t *field) { - return pb_decode_bool(stream, (bool *) field->pData); -} - -static bool checkreturn pb_dec_varint(pb_istream_t *stream, const pb_field_iter_t *field) { - if (PB_LTYPE(field->type) == PB_LTYPE_UVARINT) { - pb_uint64_t value, clamped; - if (!pb_decode_varint(stream, &value)) - return false; - - /* Cast to the proper field size, while checking for overflows */ - if (field->data_size == sizeof(pb_uint64_t)) - clamped = *(pb_uint64_t *) field->pData = value; - else if (field->data_size == sizeof(uint32_t)) - clamped = *(uint32_t *) field->pData = (uint32_t) value; - else if (field->data_size == sizeof(uint_least16_t)) - clamped = *(uint_least16_t *) field->pData = (uint_least16_t) value; - else if (field->data_size == sizeof(uint_least8_t)) - clamped = *(uint_least8_t *) field->pData = (uint_least8_t) value; - else - PB_RETURN_ERROR(stream, "invalid data_size"); - - if (clamped != value) - PB_RETURN_ERROR(stream, "integer too large"); - - return true; - } else { - pb_uint64_t value; - pb_int64_t svalue; - pb_int64_t clamped; - - if (PB_LTYPE(field->type) == PB_LTYPE_SVARINT) { - if (!pb_decode_svarint(stream, &svalue)) - return false; - } else { - if (!pb_decode_varint(stream, &value)) - return false; - - /* See issue 97: Google's C++ protobuf allows negative varint values to - * be cast as int32_t, instead of the int64_t that should be used when - * encoding. Nanopb versions before 0.2.5 had a bug in encoding. In order to - * not break decoding of such messages, we cast <=32 bit fields to - * int32_t first to get the sign correct. - */ - if (field->data_size == sizeof(pb_int64_t)) - svalue = (pb_int64_t) value; - else - svalue = (int32_t) value; - } - - /* Cast to the proper field size, while checking for overflows */ - if (field->data_size == sizeof(pb_int64_t)) - clamped = *(pb_int64_t *) field->pData = svalue; - else if (field->data_size == sizeof(int32_t)) - clamped = *(int32_t *) field->pData = (int32_t) svalue; - else if (field->data_size == sizeof(int_least16_t)) - clamped = *(int_least16_t *) field->pData = (int_least16_t) svalue; - else if (field->data_size == sizeof(int_least8_t)) - clamped = *(int_least8_t *) field->pData = (int_least8_t) svalue; - else - PB_RETURN_ERROR(stream, "invalid data_size"); - - if (clamped != svalue) - PB_RETURN_ERROR(stream, "integer too large"); - - return true; - } -} - -static bool checkreturn pb_dec_bytes(pb_istream_t *stream, const pb_field_iter_t *field) { - uint32_t size; - size_t alloc_size; - pb_bytes_array_t *dest; - - if (!pb_decode_varint32(stream, &size)) - return false; - - if (size > PB_SIZE_MAX) - PB_RETURN_ERROR(stream, "bytes overflow"); - - alloc_size = PB_BYTES_ARRAY_T_ALLOCSIZE(size); - if (size > alloc_size) - PB_RETURN_ERROR(stream, "size too large"); - - if (PB_ATYPE(field->type) == PB_ATYPE_POINTER) { -#ifndef PB_ENABLE_MALLOC - PB_RETURN_ERROR(stream, "no malloc support"); -#else - if (stream->bytes_left < size) - PB_RETURN_ERROR(stream, "end-of-stream"); - - if (!allocate_field(stream, field->pData, alloc_size, 1)) - return false; - dest = *(pb_bytes_array_t**)field->pData; -#endif - } else { - if (alloc_size > field->data_size) - PB_RETURN_ERROR(stream, "bytes overflow"); - dest = (pb_bytes_array_t *) field->pData; - } - - dest->size = (pb_size_t) size; - return pb_read(stream, dest->bytes, (size_t) size); -} - -static bool checkreturn pb_dec_string(pb_istream_t *stream, const pb_field_iter_t *field) { - uint32_t size; - size_t alloc_size; - pb_byte_t *dest = (pb_byte_t *) field->pData; - - if (!pb_decode_varint32(stream, &size)) - return false; - - if (size == (uint32_t) -1) - PB_RETURN_ERROR(stream, "size too large"); - - /* Space for null terminator */ - alloc_size = (size_t) (size + 1); - - if (alloc_size < size) - PB_RETURN_ERROR(stream, "size too large"); - - if (PB_ATYPE(field->type) == PB_ATYPE_POINTER) { -#ifndef PB_ENABLE_MALLOC - PB_RETURN_ERROR(stream, "no malloc support"); -#else - if (stream->bytes_left < size) - PB_RETURN_ERROR(stream, "end-of-stream"); - - if (!allocate_field(stream, field->pData, alloc_size, 1)) - return false; - dest = *(pb_byte_t**)field->pData; -#endif - } else { - if (alloc_size > field->data_size) - PB_RETURN_ERROR(stream, "string overflow"); - } - - dest[size] = 0; - - if (!pb_read(stream, dest, (size_t) size)) - return false; - -#ifdef PB_VALIDATE_UTF8 - if (!pb_validate_utf8((const char*)dest)) - PB_RETURN_ERROR(stream, "invalid utf8"); -#endif - - return true; -} - -static bool checkreturn pb_dec_submessage(pb_istream_t *stream, const pb_field_iter_t *field) { - bool status = true; - bool submsg_consumed = false; - pb_istream_t substream; - - if (!pb_make_string_substream(stream, &substream)) - return false; - - if (field->submsg_desc == NULL) - PB_RETURN_ERROR(stream, "invalid field descriptor"); - - /* Submessages can have a separate message-level callback that is called - * before decoding the message. Typically it is used to set callback fields - * inside oneofs. */ - if (PB_LTYPE(field->type) == PB_LTYPE_SUBMSG_W_CB && field->pSize != NULL) { - /* Message callback is stored right before pSize. */ - pb_callback_t *callback = (pb_callback_t *) field->pSize - 1; - if (callback->funcs.decode) { - status = callback->funcs.decode(&substream, field, &callback->arg); - - if (substream.bytes_left == 0) { - submsg_consumed = true; - } - } - } - - /* Now decode the submessage contents */ - if (status && !submsg_consumed) { - unsigned int flags = 0; - - /* Static required/optional fields are already initialized by top-level - * pb_decode(), no need to initialize them again. */ - if (PB_ATYPE(field->type) == PB_ATYPE_STATIC && - PB_HTYPE(field->type) != PB_HTYPE_REPEATED) { - flags = PB_DECODE_NOINIT; - } - - status = pb_decode_inner(&substream, field->submsg_desc, field->pData, flags); - } - - if (!pb_close_string_substream(stream, &substream)) - return false; - - return status; -} - -static bool checkreturn pb_dec_fixed_length_bytes(pb_istream_t *stream, const pb_field_iter_t *field) { - uint32_t size; - - if (!pb_decode_varint32(stream, &size)) - return false; - - if (size > PB_SIZE_MAX) - PB_RETURN_ERROR(stream, "bytes overflow"); - - if (size == 0) { - /* As a special case, treat empty bytes string as all zeros for fixed_length_bytes. */ - memset(field->pData, 0, (size_t) field->data_size); - return true; - } - - if (size != field->data_size) - PB_RETURN_ERROR(stream, "incorrect fixed length bytes size"); - - return pb_read(stream, (pb_byte_t *) field->pData, (size_t) field->data_size); -} - -#ifdef PB_CONVERT_DOUBLE_FLOAT -bool pb_decode_double_as_float(pb_istream_t *stream, float *dest) -{ - uint_least8_t sign; - int exponent; - uint32_t mantissa; - uint64_t value; - union { float f; uint32_t i; } out; - - if (!pb_decode_fixed64(stream, &value)) - return false; - - /* Decompose input value */ - sign = (uint_least8_t)((value >> 63) & 1); - exponent = (int)((value >> 52) & 0x7FF) - 1023; - mantissa = (value >> 28) & 0xFFFFFF; /* Highest 24 bits */ - - /* Figure if value is in range representable by floats. */ - if (exponent == 1024) - { - /* Special value */ - exponent = 128; - mantissa >>= 1; - } - else - { - if (exponent > 127) - { - /* Too large, convert to infinity */ - exponent = 128; - mantissa = 0; - } - else if (exponent < -150) - { - /* Too small, convert to zero */ - exponent = -127; - mantissa = 0; - } - else if (exponent < -126) - { - /* Denormalized */ - mantissa |= 0x1000000; - mantissa >>= (-126 - exponent); - exponent = -127; - } - - /* Round off mantissa */ - mantissa = (mantissa + 1) >> 1; - - /* Check if mantissa went over 2.0 */ - if (mantissa & 0x800000) - { - exponent += 1; - mantissa &= 0x7FFFFF; - mantissa >>= 1; - } - } - - /* Combine fields */ - out.i = mantissa; - out.i |= (uint32_t)(exponent + 127) << 23; - out.i |= (uint32_t)sign << 31; - - *dest = out.f; - return true; -} -#endif diff --git a/deps/nanopb_tiny/pb_decode.h b/deps/nanopb_tiny/pb_decode.h deleted file mode 100644 index fa99389f..00000000 --- a/deps/nanopb_tiny/pb_decode.h +++ /dev/null @@ -1,207 +0,0 @@ -/* pb_decode.h: Functions to decode protocol buffers. Depends on pb_decode.c. - * The main function is pb_decode. You also need an input stream, and the - * field descriptions created by nanopb_generator.py. - */ - -#ifndef PB_DECODE_H_INCLUDED -#define PB_DECODE_H_INCLUDED - -#include "pb.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Structure for defining custom input streams. You will need to provide - * a callback function to read the bytes from your storage, which can be - * for example a file or a network socket. - * - * The callback must conform to these rules: - * - * 1) Return false on IO errors. This will cause decoding to abort. - * 2) You can use state to store your own data (e.g. buffer pointer), - * and rely on pb_read to verify that no-body reads past bytes_left. - * 3) Your callback may be used with substreams, in which case bytes_left - * is different than from the main stream. Don't use bytes_left to compute - * any pointers. - */ -struct pb_istream_s { -#ifdef PB_BUFFER_ONLY - /* Callback pointer is not used in buffer-only configuration. - * Having an int pointer here allows binary compatibility but - * gives an error if someone tries to assign callback function. - */ - int *callback; -#else - - bool (*callback)(pb_istream_t *stream, pb_byte_t *buf, size_t count); - -#endif - - void *state; /* Free field for use by callback implementation */ - size_t bytes_left; - -#ifndef PB_NO_ERRMSG - const char *errmsg; -#endif -}; - -#ifndef PB_NO_ERRMSG -#define PB_ISTREAM_EMPTY {0,0,0,0} -#else -#define PB_ISTREAM_EMPTY {0,0,0} -#endif - -/*************************** - * Main decoding functions * - ***************************/ - -/* Decode a single protocol buffers message from input stream into a C structure. - * Returns true on success, false on any failure. - * The actual struct pointed to by dest must match the description in fields. - * Callback fields of the destination structure must be initialized by caller. - * All other fields will be initialized by this function. - * - * Example usage: - * MyMessage msg = {}; - * uint8_t buffer[64]; - * pb_istream_t stream; - * - * // ... read some data into buffer ... - * - * stream = pb_istream_from_buffer(buffer, count); - * pb_decode(&stream, MyMessage_fields, &msg); - */ -bool pb_decode(pb_istream_t *stream, const pb_msgdesc_t *fields, void *dest_struct); - -/* Extended version of pb_decode, with several options to control - * the decoding process: - * - * PB_DECODE_NOINIT: Do not initialize the fields to default values. - * This is slightly faster if you do not need the default - * values and instead initialize the structure to 0 using - * e.g. memset(). This can also be used for merging two - * messages, i.e. combine already existing data with new - * values. - * - * PB_DECODE_DELIMITED: Input message starts with the message size as varint. - * Corresponds to parseDelimitedFrom() in Google's - * protobuf API. - * - * PB_DECODE_NULLTERMINATED: Stop reading when field tag is read as 0. This allows - * reading null terminated messages. - * NOTE: Until nanopb-0.4.0, pb_decode() also allows - * null-termination. This behaviour is not supported in - * most other protobuf implementations, so PB_DECODE_DELIMITED - * is a better option for compatibility. - * - * Multiple flags can be combined with bitwise or (| operator) - */ -#define PB_DECODE_NOINIT 0x01U -#define PB_DECODE_DELIMITED 0x02U -#define PB_DECODE_NULLTERMINATED 0x04U - -bool pb_decode_ex(pb_istream_t *stream, const pb_msgdesc_t *fields, void *dest_struct, unsigned int flags); - -/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ -#define pb_decode_noinit(s, f, d) pb_decode_ex(s,f,d, PB_DECODE_NOINIT) -#define pb_decode_delimited(s, f, d) pb_decode_ex(s,f,d, PB_DECODE_DELIMITED) -#define pb_decode_delimited_noinit(s, f, d) pb_decode_ex(s,f,d, PB_DECODE_DELIMITED | PB_DECODE_NOINIT) -#define pb_decode_nullterminated(s, f, d) pb_decode_ex(s,f,d, PB_DECODE_NULLTERMINATED) - -#ifdef PB_ENABLE_MALLOC -/* Release any allocated pointer fields. If you use dynamic allocation, you should - * call this for any successfully decoded message when you are done with it. If - * pb_decode() returns with an error, the message is already released. - */ -void pb_release(const pb_msgdesc_t *fields, void *dest_struct); -#else -/* Allocation is not supported, so release is no-op */ -#define pb_release(fields, dest_struct) PB_UNUSED(fields); PB_UNUSED(dest_struct); -#endif - - -/************************************** - * Functions for manipulating streams * - **************************************/ - -/* Create an input stream for reading from a memory buffer. - * - * msglen should be the actual length of the message, not the full size of - * allocated buffer. - * - * Alternatively, you can use a custom stream that reads directly from e.g. - * a file or a network socket. - */ -pb_istream_t pb_istream_from_buffer(const pb_byte_t *buf, size_t msglen); - -/* Function to read from a pb_istream_t. You can use this if you need to - * read some custom header data, or to read data in field callbacks. - */ -bool pb_read(pb_istream_t *stream, pb_byte_t *buf, size_t count); - - -/************************************************ - * Helper functions for writing field callbacks * - ************************************************/ - -/* Decode the tag for the next field in the stream. Gives the wire type and - * field tag. At end of the message, returns false and sets eof to true. */ -bool pb_decode_tag(pb_istream_t *stream, pb_wire_type_t *wire_type, uint32_t *tag, bool *eof); - -/* Skip the field payload data, given the wire type. */ -bool pb_skip_field(pb_istream_t *stream, pb_wire_type_t wire_type); - -/* Decode an integer in the varint format. This works for enum, int32, - * int64, uint32 and uint64 field types. */ -#ifndef PB_WITHOUT_64BIT - -bool pb_decode_varint(pb_istream_t *stream, uint64_t *dest); - -#else -#define pb_decode_varint pb_decode_varint32 -#endif - -/* Decode an integer in the varint format. This works for enum, int32, - * and uint32 field types. */ -bool pb_decode_varint32(pb_istream_t *stream, uint32_t *dest); - -/* Decode a bool value in varint format. */ -bool pb_decode_bool(pb_istream_t *stream, bool *dest); - -/* Decode an integer in the zig-zagged svarint format. This works for sint32 - * and sint64. */ -#ifndef PB_WITHOUT_64BIT - -bool pb_decode_svarint(pb_istream_t *stream, int64_t *dest); - -#else -bool pb_decode_svarint(pb_istream_t *stream, int32_t *dest); -#endif - -/* Decode a fixed32, sfixed32 or float value. You need to pass a pointer to - * a 4-byte wide C variable. */ -bool pb_decode_fixed32(pb_istream_t *stream, void *dest); - -#ifndef PB_WITHOUT_64BIT -/* Decode a fixed64, sfixed64 or double value. You need to pass a pointer to - * a 8-byte wide C variable. */ -bool pb_decode_fixed64(pb_istream_t *stream, void *dest); - -#endif - -#ifdef PB_CONVERT_DOUBLE_FLOAT -/* Decode a double value into float variable. */ -bool pb_decode_double_as_float(pb_istream_t *stream, float *dest); -#endif - -/* Make a limited-length substream for reading a PB_WT_STRING field. */ -bool pb_make_string_substream(pb_istream_t *stream, pb_istream_t *substream); - -bool pb_close_string_substream(pb_istream_t *stream, pb_istream_t *substream); - -#ifdef __cplusplus -} /* extern "C" */ -#endif - -#endif From 00b71be16e2ed07ffb5468ae48a89dc54af1cab2 Mon Sep 17 00:00:00 2001 From: ftheirs Date: Wed, 13 Mar 2024 18:28:17 +0700 Subject: [PATCH 3/7] fix small findings --- app/Makefile | 3 +-- app/src/apdu_handler.c | 18 ++++++++------ app/src/crypto.c | 56 ++++++++++++++++++------------------------ app/src/crypto.h | 2 -- 4 files changed, 35 insertions(+), 44 deletions(-) diff --git a/app/Makefile b/app/Makefile index 6a5dc51a..eacf62e5 100755 --- a/app/Makefile +++ b/app/Makefile @@ -56,8 +56,7 @@ endif APP_LOAD_PARAMS = --curve secp256k1 $(COMMON_LOAD_PARAMS) --path $(APPPATH) -NANOS_STACK_SIZE := 2050 - +APP_STACK_MIN_SIZE := 3000 include $(CURDIR)/../deps/ledger-zxlib/makefiles/Makefile.devices $(info TARGET_NAME = [$(TARGET_NAME)]) diff --git a/app/src/apdu_handler.c b/app/src/apdu_handler.c index 4bb05fba..792f873c 100644 --- a/app/src/apdu_handler.c +++ b/app/src/apdu_handler.c @@ -73,7 +73,7 @@ __Z_INLINE bool process_chunk(volatile uint32_t *tx, uint32_t rx) { THROW(APDU_CODE_DATA_INVALID); } - bool is_stake_tx = parser_tx_obj.special_transfer_type == neuron_stake_transaction; + const bool is_stake_tx = parser_tx_obj.special_transfer_type == neuron_stake_transaction; uint32_t added; switch (payloadType) { @@ -128,9 +128,9 @@ __Z_INLINE bool process_chunk(volatile uint32_t *tx, uint32_t rx) { __Z_INLINE void handleGetAddr(volatile uint32_t *flags, volatile uint32_t *tx, uint32_t rx) { extractHDPath(rx, OFFSET_DATA); - uint8_t requireConfirmation = G_io_apdu_buffer[OFFSET_P1]; + const uint8_t requireConfirmation = G_io_apdu_buffer[OFFSET_P1]; - zxerr_t zxerr = app_fill_address(); + const zxerr_t zxerr = app_fill_address(); if (zxerr != zxerr_ok) { *tx = 0; THROW(APDU_CODE_DATA_INVALID); @@ -158,7 +158,7 @@ __Z_INLINE void handleSign(volatile uint32_t *flags, volatile uint32_t *tx, uint CHECK_APP_CANARY() if (error_msg != NULL) { - int error_msg_length = strlen(error_msg); + const uint32_t error_msg_length = strnlen(error_msg, sizeof(G_io_apdu_buffer)); MEMCPY(G_io_apdu_buffer, error_msg, error_msg_length); *tx += (error_msg_length); THROW(APDU_CODE_DATA_INVALID); @@ -181,7 +181,7 @@ __Z_INLINE void handleSignCombined(volatile uint32_t *flags, volatile uint32_t * CHECK_APP_CANARY() if (error_msg != NULL) { - int error_msg_length = strlen(error_msg); + const uint32_t error_msg_length = strnlen(error_msg, sizeof(G_io_apdu_buffer)); MEMCPY(G_io_apdu_buffer, error_msg, error_msg_length); *tx += (error_msg_length); THROW(APDU_CODE_DATA_INVALID); @@ -202,7 +202,9 @@ __Z_INLINE void handle_getversion(__Z_UNUSED volatile uint32_t *flags, volatile G_io_apdu_buffer[1] = LEDGER_MAJOR_VERSION; G_io_apdu_buffer[2] = LEDGER_MINOR_VERSION; G_io_apdu_buffer[3] = LEDGER_PATCH_VERSION; - G_io_apdu_buffer[4] = !IS_UX_ALLOWED; + // sdk won't pass the apdu message if device is locked + // keeping it for backwards compatibility + G_io_apdu_buffer[4] = 0; G_io_apdu_buffer[5] = (TARGET_ID >> 24) & 0xFF; G_io_apdu_buffer[6] = (TARGET_ID >> 16) & 0xFF; @@ -214,7 +216,7 @@ __Z_INLINE void handle_getversion(__Z_UNUSED volatile uint32_t *flags, volatile } void handleApdu(volatile uint32_t *flags, volatile uint32_t *tx, uint32_t rx) { - uint16_t sw = 0; + volatile uint16_t sw = 0; BEGIN_TRY { @@ -278,7 +280,7 @@ void handleApdu(volatile uint32_t *flags, volatile uint32_t *tx, uint32_t rx) { break; } G_io_apdu_buffer[*tx] = sw >> 8; - G_io_apdu_buffer[*tx + 1] = sw; + G_io_apdu_buffer[*tx + 1] = sw & 0xFF; *tx += 2; } FINALLY diff --git a/app/src/crypto.c b/app/src/crypto.c index 9238e7fb..c039715a 100644 --- a/app/src/crypto.c +++ b/app/src/crypto.c @@ -22,11 +22,6 @@ uint32_t hdPath[HDPATH_LEN_DEFAULT]; -bool isTestnet() { - return hdPath[0] == HDPATH_0_TESTNET && - hdPath[1] == HDPATH_1_TESTNET; -} - uint8_t const DER_PREFIX[] = {0x30, 0x56, 0x30, 0x10, 0x06, 0x07, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x02, 0x01, 0x06, 0x05, 0x2b, 0x81, 0x04, 0x00, 0x0a, 0x03, 0x42, 0x00}; @@ -53,7 +48,7 @@ zxerr_t hash_sha224(uint8_t *input, uint16_t inputLen, uint8_t *output, uint16_t } cx_sha256_t ctx; cx_sha224_init(&ctx); - cx_hash_no_throw(&ctx.header, CX_LAST, input, inputLen, output, 224); + CHECK_CX_OK(cx_hash_no_throw(&ctx.header, CX_LAST, input, inputLen, output, 224)); return zxerr_ok; } @@ -69,11 +64,11 @@ zxerr_t crypto_extractPublicKey(uint8_t *pubKey, uint16_t pubKeyLen) { zxerr_t err = zxerr_ledger_api_error; CATCH_CXERROR(os_derive_bip32_no_throw(CX_CURVE_256K1, hdPath, HDPATH_LEN_DEFAULT, - privateKeyData, NULL)) + privateKeyData, NULL)); - CATCH_CXERROR(cx_ecfp_init_private_key_no_throw(CX_CURVE_256K1, privateKeyData, 32, &cx_privateKey)) - CATCH_CXERROR(cx_ecfp_init_public_key_no_throw(CX_CURVE_256K1, NULL, 0, &cx_publicKey)) - CATCH_CXERROR(cx_ecfp_generate_pair_no_throw(CX_CURVE_256K1, &cx_publicKey, &cx_privateKey, 1)) + CATCH_CXERROR(cx_ecfp_init_private_key_no_throw(CX_CURVE_256K1, privateKeyData, 32, &cx_privateKey)); + CATCH_CXERROR(cx_ecfp_init_public_key_no_throw(CX_CURVE_256K1, NULL, 0, &cx_publicKey)); + CATCH_CXERROR(cx_ecfp_generate_pair_no_throw(CX_CURVE_256K1, &cx_publicKey, &cx_privateKey, 1)); memcpy(pubKey, cx_publicKey.W, SECP256K1_PK_LEN); err = zxerr_ok; @@ -118,36 +113,36 @@ typedef struct { #define HASH_U64(FIELDNAME, FIELDVALUE, TMPDIGEST) { \ MEMZERO(TMPDIGEST,sizeof(TMPDIGEST)); \ cx_hash_sha256((uint8_t *)FIELDNAME, sizeof(FIELDNAME) - 1, TMPDIGEST, CX_SHA256_SIZE); \ - cx_hash_no_throw(&ctx.header, 0, TMPDIGEST, CX_SHA256_SIZE, NULL, 0); \ + CHECK_CX_OK(cx_hash_no_throw(&ctx.header, 0, TMPDIGEST, CX_SHA256_SIZE, NULL, 0)); \ uint8_t ingressbuf[10]; \ uint16_t enc_size = 0; \ CHECK_ZXERR(compressLEB128(FIELDVALUE, sizeof(ingressbuf), ingressbuf, &enc_size)); \ cx_hash_sha256((uint8_t *)ingressbuf, enc_size, tmpdigest, CX_SHA256_SIZE); \ - cx_hash_no_throw(&ctx.header, 0, tmpdigest, CX_SHA256_SIZE, NULL, 0); \ + CHECK_CX_OK(cx_hash_no_throw(&ctx.header, 0, tmpdigest, CX_SHA256_SIZE, NULL, 0)); \ } #define HASH_BYTES_INTERMEDIATE(FIELDNAME, FIELDVALUE, TMPDIGEST) { \ MEMZERO(TMPDIGEST,sizeof(TMPDIGEST)); \ cx_hash_sha256((uint8_t *)FIELDNAME, sizeof(FIELDNAME) - 1, TMPDIGEST, CX_SHA256_SIZE); \ - cx_hash_no_throw(&ctx.header, 0, TMPDIGEST, CX_SHA256_SIZE, NULL, 0); \ + CHECK_CX_OK(cx_hash_no_throw(&ctx.header, 0, TMPDIGEST, CX_SHA256_SIZE, NULL, 0)); \ cx_hash_sha256((uint8_t *)(FIELDVALUE).data, (FIELDVALUE).len, TMPDIGEST, CX_SHA256_SIZE); \ - cx_hash_no_throw(&ctx.header, 0, TMPDIGEST, CX_SHA256_SIZE, NULL, 0); \ + CHECK_CX_OK(cx_hash_no_throw(&ctx.header, 0, TMPDIGEST, CX_SHA256_SIZE, NULL, 0)); \ } #define HASH_BYTES_END(FIELDNAME, FIELDVALUE, TMPDIGEST, ENDDIGEST) { \ MEMZERO(TMPDIGEST,sizeof(TMPDIGEST)); \ cx_hash_sha256((uint8_t *)FIELDNAME, sizeof(FIELDNAME) - 1, TMPDIGEST, CX_SHA256_SIZE); \ - cx_hash_no_throw(&ctx.header, 0, TMPDIGEST, CX_SHA256_SIZE, NULL, 0); \ + CHECK_CX_OK(cx_hash_no_throw(&ctx.header, 0, TMPDIGEST, CX_SHA256_SIZE, NULL, 0)); \ cx_hash_sha256((uint8_t *)(FIELDVALUE).data, (FIELDVALUE).len, TMPDIGEST, CX_SHA256_SIZE); \ - cx_hash_no_throw(&ctx.header, CX_LAST, TMPDIGEST, CX_SHA256_SIZE, ENDDIGEST, CX_SHA256_SIZE); \ + CHECK_CX_OK(cx_hash_no_throw(&ctx.header, CX_LAST, TMPDIGEST, CX_SHA256_SIZE, ENDDIGEST, CX_SHA256_SIZE)); \ } #define HASH_BYTES_PTR_END(FIELDNAME, FIELDVALUE, TMPDIGEST, ENDDIGEST) { \ MEMZERO(TMPDIGEST,sizeof(TMPDIGEST)); \ cx_hash_sha256((uint8_t *)FIELDNAME, sizeof(FIELDNAME) - 1, TMPDIGEST, CX_SHA256_SIZE); \ - cx_hash_no_throw(&ctx.header, 0, TMPDIGEST, CX_SHA256_SIZE, NULL, 0); \ + CHECK_CX_OK(cx_hash_no_throw(&ctx.header, 0, TMPDIGEST, CX_SHA256_SIZE, NULL, 0)); \ cx_hash_sha256((uint8_t *)(FIELDVALUE).dataPtr, (FIELDVALUE).len, TMPDIGEST, CX_SHA256_SIZE); \ - cx_hash_no_throw(&ctx.header, CX_LAST, TMPDIGEST, CX_SHA256_SIZE, ENDDIGEST, CX_SHA256_SIZE); \ + CHECK_CX_OK(cx_hash_no_throw(&ctx.header, CX_LAST, TMPDIGEST, CX_SHA256_SIZE, ENDDIGEST, CX_SHA256_SIZE)); \ } zxerr_t crypto_getDigest(uint8_t *digest, txtype_e txtype){ @@ -178,7 +173,7 @@ zxerr_t crypto_getDigest(uint8_t *digest, txtype_e txtype){ HASH_U64("ingress_expiry",fields->ingress_expiry, tmpdigest); cx_hash_sha256((uint8_t *)"paths", 5, tmpdigest, CX_SHA256_SIZE); - cx_hash_no_throw(&ctx.header, 0, tmpdigest, CX_SHA256_SIZE, NULL, 0); + CHECK_CX_OK(cx_hash_no_throw(&ctx.header, 0, tmpdigest, CX_SHA256_SIZE, NULL, 0)); uint8_t arrayBuffer[PATH_MAX_ARRAY * CX_SHA256_SIZE]; for (size_t index = 0; index < fields->paths.arrayLen ; index++){ @@ -186,7 +181,7 @@ zxerr_t crypto_getDigest(uint8_t *digest, txtype_e txtype){ } cx_hash_sha256(arrayBuffer, fields->paths.arrayLen*CX_SHA256_SIZE, tmpdigest, CX_SHA256_SIZE); cx_hash_sha256(tmpdigest, CX_SHA256_SIZE, tmpdigest, CX_SHA256_SIZE); - cx_hash_no_throw(&ctx.header, 0, tmpdigest, CX_SHA256_SIZE, NULL, 0); + CHECK_CX_OK(cx_hash_no_throw(&ctx.header, 0, tmpdigest, CX_SHA256_SIZE, NULL, 0)); HASH_BYTES_END("request_type", parser_tx_obj.request_type, tmpdigest, digest); return zxerr_ok; @@ -205,8 +200,7 @@ zxerr_t crypto_sign(uint8_t *signatureBuffer, return zxerr_buffer_too_small; } - uint8_t message_digest[CX_SHA256_SIZE]; - MEMZERO(message_digest,sizeof(message_digest)); + uint8_t message_digest[CX_SHA256_SIZE] = {0}; signatureBuffer[0] = 0x0a; MEMCPY(&signatureBuffer[1], (uint8_t *)"ic-request",SIGN_PREFIX_SIZE - 1); @@ -228,9 +222,9 @@ zxerr_t crypto_sign(uint8_t *signatureBuffer, CATCH_CXERROR(os_derive_bip32_no_throw(CX_CURVE_SECP256K1, hdPath, HDPATH_LEN_DEFAULT, - privateKeyData, NULL)) + privateKeyData, NULL)); - CATCH_CXERROR(cx_ecfp_init_private_key_no_throw(CX_CURVE_SECP256K1, privateKeyData, 32, &cx_privateKey)) + CATCH_CXERROR(cx_ecfp_init_private_key_no_throw(CX_CURVE_SECP256K1, privateKeyData, 32, &cx_privateKey)); // Sign CATCH_CXERROR(cx_ecdsa_sign_no_throw(&cx_privateKey, @@ -240,7 +234,7 @@ zxerr_t crypto_sign(uint8_t *signatureBuffer, CX_SHA256_SIZE, signature->der_signature, &signatureLength, - &info)) + &info)); err_convert_e err_c = convertDERtoRSV(signature->der_signature, info, signature->r, signature->s, &signature->v); if (err_c != no_error) { @@ -309,9 +303,9 @@ zxerr_t crypto_sign_combined(uint8_t *signatureBuffer, CATCH_CXERROR(os_derive_bip32_no_throw(CX_CURVE_SECP256K1, hdPath, HDPATH_LEN_DEFAULT, - privateKeyData, NULL)) + privateKeyData, NULL)); - CATCH_CXERROR(cx_ecfp_init_private_key_no_throw(CX_CURVE_SECP256K1, privateKeyData, 32, &cx_privateKey)) + CATCH_CXERROR(cx_ecfp_init_private_key_no_throw(CX_CURVE_SECP256K1, privateKeyData, 32, &cx_privateKey)); // Sign request CATCH_CXERROR(cx_ecdsa_sign_no_throw(&cx_privateKey, @@ -321,7 +315,7 @@ zxerr_t crypto_sign_combined(uint8_t *signatureBuffer, CX_SHA256_SIZE, sigma.der_signature, &sigLen, - &info)) + &info)); err_convert_e err_c = convertDERtoRSV(sigma.der_signature, info, sigma.r, sigma.s, &sigma.v); if (err_c != no_error) { @@ -343,7 +337,7 @@ zxerr_t crypto_sign_combined(uint8_t *signatureBuffer, CX_SHA256_SIZE, sigma.der_signature, &sigLen, - &info)) + &info)); err_c = convertDERtoRSV(sigma.der_signature, info, sigma.r, sigma.s, &sigma.v); if (err_c != no_error) { @@ -665,9 +659,7 @@ zxerr_t crypto_fillAddress(uint8_t *buffer, uint16_t buffer_len, uint16_t *addrL CHECK_ZXERR(crypto_computePrincipal(answer->publicKey, answer->principalBytes)); //For now only defeault subaccount, maybe later grab 32 bytes from the apdu buffer. - uint8_t zero_subaccount[DFINITY_SUBACCOUNT_LEN]; - MEMZERO(zero_subaccount, DFINITY_SUBACCOUNT_LEN); - + uint8_t zero_subaccount[DFINITY_SUBACCOUNT_LEN] = {0}; CHECK_ZXERR(crypto_principalToSubaccount(answer->principalBytes, sizeof_field(answer_t, principalBytes), zero_subaccount, DFINITY_SUBACCOUNT_LEN, answer->subAccountBytes, sizeof_field(answer_t, subAccountBytes))); diff --git a/app/src/crypto.h b/app/src/crypto.h index b4759327..81306e26 100644 --- a/app/src/crypto.h +++ b/app/src/crypto.h @@ -30,8 +30,6 @@ extern "C" { extern uint32_t hdPath[HDPATH_LEN_DEFAULT]; -bool isTestnet(); - zxerr_t crypto_extractPublicKey(uint8_t *pubKey, uint16_t pubKeyLen); zxerr_t crypto_computePrincipal(const uint8_t *pubKey, uint8_t *principal); From 1053c008e639c6da1f41dc43446feb489388ba7d Mon Sep 17 00:00:00 2001 From: neithanmo Date: Wed, 13 Mar 2024 18:28:28 +0700 Subject: [PATCH 4/7] remove support for protobuf --- app/src/parser.c | 11 - app/src/parser_impl.c | 211 +----- app/src/parser_print_candid.c | 26 +- app/src/parser_print_protobuf.c | 831 ---------------------- app/src/parser_print_protobuf.h | 34 - app/src/parser_txdef.h | 86 +-- app/src/protobuf/base_types.options | 1 - app/src/protobuf/base_types.pb.c | 30 - app/src/protobuf/base_types.pb.h | 149 ---- app/src/protobuf/base_types.proto | 60 -- app/src/protobuf/common_types.pb.c | 25 - app/src/protobuf/common_types.pb.h | 124 ---- app/src/protobuf/common_types.proto | 41 -- app/src/protobuf/dfinity.pb.c | 40 -- app/src/protobuf/dfinity.pb.h | 224 ------ app/src/protobuf/dfinity.proto | 50 -- app/src/protobuf/governance.options | 1 - app/src/protobuf/governance.pb.c | 117 --- app/src/protobuf/governance.pb.h | 806 --------------------- app/src/protobuf/governance.proto | 268 ------- app/src/protobuf/types.options | 1 - app/src/protobuf/types.pb.c | 154 ---- app/src/protobuf/types.pb.h | 1015 --------------------------- app/src/protobuf/types.proto | 292 -------- 24 files changed, 74 insertions(+), 4523 deletions(-) delete mode 100644 app/src/parser_print_protobuf.c delete mode 100644 app/src/parser_print_protobuf.h delete mode 100644 app/src/protobuf/base_types.options delete mode 100644 app/src/protobuf/base_types.pb.c delete mode 100644 app/src/protobuf/base_types.pb.h delete mode 100644 app/src/protobuf/base_types.proto delete mode 100644 app/src/protobuf/common_types.pb.c delete mode 100644 app/src/protobuf/common_types.pb.h delete mode 100644 app/src/protobuf/common_types.proto delete mode 100644 app/src/protobuf/dfinity.pb.c delete mode 100644 app/src/protobuf/dfinity.pb.h delete mode 100644 app/src/protobuf/dfinity.proto delete mode 100644 app/src/protobuf/governance.options delete mode 100644 app/src/protobuf/governance.pb.c delete mode 100644 app/src/protobuf/governance.pb.h delete mode 100644 app/src/protobuf/governance.proto delete mode 100644 app/src/protobuf/types.options delete mode 100644 app/src/protobuf/types.pb.c delete mode 100644 app/src/protobuf/types.pb.h delete mode 100644 app/src/protobuf/types.proto diff --git a/app/src/parser.c b/app/src/parser.c index 694cc2ab..dff40e5d 100644 --- a/app/src/parser.c +++ b/app/src/parser.c @@ -28,7 +28,6 @@ #include "timeutils.h" #include "parser_print_candid.h" #include "parser_print_helper.h" -#include "parser_print_protobuf.h" #if defined(TARGET_NANOX) || defined(TARGET_NANOS2) || defined(TARGET_STAX) // For some reason NanoX requires this function @@ -201,16 +200,6 @@ parser_error_t parser_getItem(const parser_context_t *ctx, switch (parser_tx_obj.txtype) { case call: { switch (parser_tx_obj.tx_fields.call.method_type) { - case pb_sendrequest: - case pb_manageneuron: - case pb_listneurons: - case pb_claimneurons: { - return parser_getItemProtobuf(displayIdx, - outKey, outKeyLen, - outVal, outValLen, - pageIdx, pageCount); - } - case candid_manageneuron: case candid_listneurons: case candid_updatenodeprovider: diff --git a/app/src/parser_impl.c b/app/src/parser_impl.c index 06fb9a76..d6f023f4 100644 --- a/app/src/parser_impl.c +++ b/app/src/parser_impl.c @@ -20,9 +20,6 @@ #include "parser_txdef.h" #include "cbor.h" #include "app_mode.h" -#include "pb_decode.h" -#include "protobuf/dfinity.pb.h" -#include "protobuf/governance.pb.h" #include "candid_parser.h" parser_tx_t parser_tx_obj; @@ -245,56 +242,8 @@ parser_error_t parsePaths(CborValue *content_map, state_read_t *stateRead) { return parser_ok; } -#define GEN_PARSER_PB(OBJ) parser_error_t _parser_pb_ ## OBJ(parser_tx_t *v, uint8_t *buffer, size_t bufferLen) \ -{ \ - OBJ request = OBJ ##_init_zero; \ - pb_istream_t stream = pb_istream_from_buffer(buffer, bufferLen); \ - CHECK_APP_CANARY() \ - const bool status = pb_decode(&stream, OBJ ##_fields, &request); \ - if (!status) { return parser_unexpected_error; } \ - MEMCPY(&v->tx_fields.call.data.OBJ, &request, sizeof(OBJ)); \ - CHECK_APP_CANARY() \ - return parser_ok; \ -} \ - - -GEN_PARSER_PB(SendRequest) - -GEN_PARSER_PB(ic_nns_governance_pb_v1_ManageNeuron) - -GEN_PARSER_PB(ListNeurons) - parser_error_t getManageNeuronType(const parser_tx_t *v, manageNeuron_e *mn_type) { switch (v->tx_fields.call.method_type) { - case pb_manageneuron: { - pb_size_t command = v->tx_fields.call.data.ic_nns_governance_pb_v1_ManageNeuron.which_command; - - switch (command) { - case Configure: { - pb_size_t operation = v->tx_fields.call - .data.ic_nns_governance_pb_v1_ManageNeuron - .command.configure.which_operation; - - if (1 <= operation && operation <= 7 && operation != 6) { - *mn_type = (manageNeuron_e) (2000 + operation); - return parser_ok; - } - - return parser_unexpected_type; - } - - case Disburse: - case Spawn: - case Follow: - case RegisterVote: - *mn_type = command; - return parser_ok; - - default: { - return parser_unexpected_type; - } - } - } case candid_manageneuron: { if (!v->tx_fields.call.data.candid_manageNeuron.has_command) { return parser_unexpected_value; @@ -304,10 +253,10 @@ parser_error_t getManageNeuronType(const parser_tx_t *v, manageNeuron_e *mn_type const bool isSNS = v->tx_fields.call.is_sns; switch (command->hash) { case hash_command_Spawn: - *mn_type = SpawnCandid; + *mn_type = Spawn; return parser_ok; case hash_command_StakeMaturity: - *mn_type = isSNS ? SNS_StakeMaturity : StakeMaturityCandid; + *mn_type = isSNS ? SNS_StakeMaturity : StakeMaturity; return parser_ok; case hash_command_Split: *mn_type = Split; @@ -316,10 +265,10 @@ parser_error_t getManageNeuronType(const parser_tx_t *v, manageNeuron_e *mn_type *mn_type = Merge; return parser_ok; case hash_command_RegisterVote: - *mn_type = RegisterVoteCandid; + *mn_type = RegisterVote; return parser_ok; case hash_command_Follow: - *mn_type = FollowCandid; + *mn_type = Follow; return parser_ok; case hash_command_Configure: { if (!command->configure.has_operation) { @@ -327,31 +276,31 @@ parser_error_t getManageNeuronType(const parser_tx_t *v, manageNeuron_e *mn_type } switch (command->configure.operation.hash) { case hash_operation_SetDissolvedTimestamp: - *mn_type = isSNS ? SNS_Configure_SetDissolveDelay : Configure_SetDissolvedTimestamp; + *mn_type = isSNS ? SNS_Configure_SetDissolveDelay : Configure_SetDissolvedDelay; break; case hash_operation_LeaveNeuronsFund: - *mn_type = Configure_LeaveNeuronsFundCandid; + *mn_type = Configure_LeaveNeuronsFund; break; case hash_operation_ChangeAutoStakeMaturity: *mn_type = Configure_ChangeAutoStakeMaturity; break; case hash_operation_IncreaseDissolveDelay: - *mn_type = Configure_IncreaseDissolveDelayCandid; + *mn_type = Configure_IncreaseDissolveDelay; break; case hash_operation_StartDissolving: - *mn_type = isSNS ? SNS_Configure_StartDissolving : Configure_StartDissolvingCandid; + *mn_type = isSNS ? SNS_Configure_StartDissolving : Configure_StartDissolving; break; case hash_operation_StopDissolving: - *mn_type = isSNS ? SNS_Configure_StopDissolving : Configure_StopDissolvingCandid; + *mn_type = isSNS ? SNS_Configure_StopDissolving : Configure_StopDissolving; break; case hash_operation_JoinNeuronsFund: - *mn_type = Configure_JoinNeuronsFundCandid; + *mn_type = Configure_JoinNeuronsFund; break; case hash_operation_AddHotkey: - *mn_type = Configure_AddHotkeyCandid; + *mn_type = Configure_AddHotkey; break; case hash_operation_RemoveHotkey: - *mn_type = Configure_RemoveHotkeyCandid; + *mn_type = Configure_RemoveHotkey; break; default: return parser_unexpected_value; @@ -365,7 +314,7 @@ parser_error_t getManageNeuronType(const parser_tx_t *v, manageNeuron_e *mn_type *mn_type = SNS_RemoveNeuronPermissions; return parser_ok; case sns_hash_command_Disburse: - *mn_type = isSNS ? SNS_Disburse : DisburseCandid; + *mn_type = isSNS ? SNS_Disburse : Disburse; return parser_ok; default: @@ -382,35 +331,9 @@ parser_error_t getManageNeuronType(const parser_tx_t *v, manageNeuron_e *mn_type parser_error_t readPayload(parser_tx_t *v, uint8_t *buffer, size_t bufferLen) { char *method = v->tx_fields.call.method_name.data; - manageNeuron_e mn_type; v->tx_fields.call.is_sns = 0; // we'll set this var later if is sns - // Depending on the method, we may try to read protobuf or candid - - if (strcmp(method, "send_pb") == 0) { - v->tx_fields.call.method_type = pb_sendrequest; - return _parser_pb_SendRequest(v, buffer, bufferLen); - } - - if (strcmp(method, "manage_neuron_pb") == 0) { - v->tx_fields.call.method_type = pb_manageneuron; - CHECK_PARSER_ERR(_parser_pb_ic_nns_governance_pb_v1_ManageNeuron(v, buffer, bufferLen)) - return getManageNeuronType(v, &mn_type); - } - - if (strcmp(method, "list_neurons_pb") == 0) { - v->tx_fields.call.method_type = pb_listneurons; - return _parser_pb_ListNeurons(v, buffer, bufferLen); - } - - if (strcmp(method, "claim_neurons") == 0) { - if (130 <= bufferLen && bufferLen <= 150) { - v->tx_fields.call.method_type = pb_claimneurons; - return parser_ok; - } - } - // Candid NNS + SNS if (strcmp(method, "manage_neuron") == 0) { v->tx_fields.call.method_type = candid_manageneuron; @@ -445,31 +368,6 @@ parser_error_t readPayload(parser_tx_t *v, uint8_t *buffer, size_t bufferLen) { return parser_unexpected_type; } -static bool isCandidTransaction(parser_tx_t *v) { - char *method = v->tx_fields.call.method_name.data; - if (strcmp(method, "manage_neuron") == 0) { - return true; - } - - if (strcmp(method, "update_node_provider") == 0) { - return true; - } - - if (strcmp(method, "list_neurons") == 0) { - return true; - } - - if (strcmp(method, "icrc1_transfer") == 0) { - return true; - } - - if (strcmp(method, "transfer") == 0) { - return true; - } - - return false; -} - parser_error_t readContent(CborValue *content_map, parser_tx_t *v) { CborValue content_it; zemu_log_stack("read content"); @@ -504,17 +402,11 @@ parser_error_t readContent(CborValue *content_map, parser_tx_t *v) { READ_STRING(content_map, "method_name", fields->method_name) READ_INT64(content_map, "ingress_expiry", fields->ingress_expiry) - if (isCandidTransaction(v)) { - READ_STRING_PTR_SIZE(content_map, "arg", fields->method_args.dataPtr, fields->method_args.len) - if (fields->method_args.dataPtr == NULL) { - return parser_no_data; - } - CHECK_PARSER_ERR(readPayload(v, fields->method_args.dataPtr, fields->method_args.len)) - } else { - READ_STRING(content_map, "arg", fields->method_args) - CHECK_PARSER_ERR(readPayload(v, fields->method_args.data, fields->method_args.len)) - fields->method_args.dataPtr = fields->method_args.data; + READ_STRING_PTR_SIZE(content_map, "arg", fields->method_args.dataPtr, fields->method_args.len) + if (fields->method_args.dataPtr == NULL) { + return parser_no_data; } + CHECK_PARSER_ERR(readPayload(v, fields->method_args.dataPtr, fields->method_args.len)) } else if (strcmp(v->request_type.data, "read_state") == 0) { state_read_t *fields = &v->tx_fields.stateRead; @@ -600,24 +492,16 @@ parser_error_t readEnvelope(const parser_context_t *c, parser_tx_t *v) { parser_error_t checkPossibleCanisters(const parser_tx_t *v, char *canister_textual) { switch (v->tx_fields.call.method_type) { - case candid_transfer: - case pb_sendrequest : { + case candid_transfer: { CHECK_METHOD_WITH_CANISTER("ryjl3tyaaaaaaaaaaabacai") } - case pb_listneurons : - case pb_manageneuron : case candid_updatenodeprovider: case candid_listneurons: case candid_manageneuron: { if (v->tx_fields.call.is_sns) return parser_ok; // sns has dynamic canister id CHECK_METHOD_WITH_CANISTER("rrkahfqaaaaaaaaaaaaqcai") } - - case pb_claimneurons : { - CHECK_METHOD_WITH_CANISTER("renrkeyaaaaaaaaaaadacai") - } - case candid_icrc_transfer: { return parser_ok; } @@ -644,12 +528,6 @@ parser_error_t _validateTx(__Z_UNUSED const parser_context_t *c, const parser_tx return parser_unexpected_value; } - if (v->tx_fields.call.method_type == pb_manageneuron) { - const ic_nns_governance_pb_v1_ManageNeuron *fields = &parser_tx_obj.tx_fields.call.data.ic_nns_governance_pb_v1_ManageNeuron; - PARSER_ASSERT_OR_ERROR(fields->has_id ^ (fields->neuron_id_or_subaccount.neuron_id.id != 0), - parser_unexpected_error); - } - const uint8_t *canisterId = v->tx_fields.call.canister_id.data; char canister_textual[50]; uint16_t outLen = sizeof(canister_textual); @@ -728,10 +606,12 @@ parser_error_t _validateTx(__Z_UNUSED const parser_context_t *c, const parser_tx } } else { const bool is_candid = v->tx_fields.call.method_type == candid_transfer; - uint64_t memo = is_candid ? v->tx_fields.call.data.candid_transfer.memo - : v->tx_fields.call.data.SendRequest.memo.memo; - const uint8_t *to = is_candid ? v->tx_fields.call.data.candid_transfer.to - : v->tx_fields.call.data.SendRequest.to.hash; + if ( !is_candid ){ + return parser_unexpected_type; + } + uint64_t memo = v->tx_fields.call.data.candid_transfer.memo; + const uint8_t *to = v->tx_fields.call.data.candid_transfer.to; + PARSER_ASSERT_OR_ERROR( zxerr_ok == crypto_principalToStakeAccount(sender, DFINITY_PRINCIPAL_LEN, memo, to_hash, sizeof(to_hash)), @@ -752,53 +632,38 @@ uint8_t getNumItemsManageNeurons(__Z_UNUSED const parser_context_t *c, const par } switch (mn_type) { - case Configure_StopDissolving : case Configure_JoinNeuronsFund : case Configure_LeaveNeuronsFund : - case Configure_JoinNeuronsFundCandid: - case Configure_LeaveNeuronsFundCandid: - case Configure_StartDissolving : { return 2; - } - case Spawn : case Split: case Merge: - case Configure_RemoveHotKey : - case Configure_AddHotKey : - case Configure_RemoveHotkeyCandid: - case Configure_AddHotkeyCandid: + case Configure_RemoveHotkey : + case Configure_AddHotkey : case Configure_IncreaseDissolveDelay: - case Configure_IncreaseDissolveDelayCandid: case Configure_ChangeAutoStakeMaturity: - case Configure_SetDissolvedTimestamp: { + case Configure_SetDissolvedDelay: { return 3; } case SNS_Configure_SetDissolveDelay: - case RegisterVote : - case RegisterVoteCandid: - case DisburseCandid: - case Disburse : { + case RegisterVote: + case Disburse: { return 4; } - case SpawnCandid: { + case Spawn: { // 2 fields + opt(percentage_to_spawn) + controller (opt or self) + opt(nonce) return 3 + (v->tx_fields.call.data.candid_manageNeuron.command.spawn.has_percentage_to_spawn ? 1 : 0) + (v->tx_fields.call.data.candid_manageNeuron.command.spawn.has_nonce ? 1 : 0); } - case Configure_StartDissolvingCandid: - case Configure_StopDissolvingCandid: + case Configure_StartDissolving: + case Configure_StopDissolving: return 2; - case StakeMaturityCandid: + case StakeMaturity: // 2 fields + opt(percentage_to_stake) return 2 + (v->tx_fields.call.data.candid_manageNeuron.command.stake.has_percentage_to_stake ? 1 : 0); - case Follow : { - pb_size_t follow_count = v->tx_fields.call.data.ic_nns_governance_pb_v1_ManageNeuron.command.follow.followees_count; - return follow_count > 0 ? 3 + follow_count : 4; - } - case FollowCandid: { + case Follow: { uint8_t followees_count = v->tx_fields.call.data.candid_manageNeuron.command.follow.followees_size; return followees_count > 0 ? 3 + followees_count : 4; } @@ -831,8 +696,7 @@ uint8_t _getNumItems(__Z_UNUSED const parser_context_t *c, const parser_tx_t *v) switch (v->txtype) { case call: { switch (v->tx_fields.call.method_type) { - case candid_transfer: - case pb_sendrequest: { + case candid_transfer: { const bool is_stake_tx = v->special_transfer_type == neuron_stake_transaction; uint8_t itemCount = 6; @@ -843,16 +707,11 @@ uint8_t _getNumItems(__Z_UNUSED const parser_context_t *c, const parser_tx_t *v) return itemCount; } - case pb_claimneurons : - case pb_listneurons : { - return 1; - } case candid_updatenodeprovider: { return 2; } - case pb_manageneuron : case candid_manageneuron: { return getNumItemsManageNeurons(c, v); } diff --git a/app/src/parser_print_candid.c b/app/src/parser_print_candid.c index 5d3ab1c8..05109710 100644 --- a/app/src/parser_print_candid.c +++ b/app/src/parser_print_candid.c @@ -1201,13 +1201,13 @@ __Z_INLINE parser_error_t parser_getItemManageNeuron(const parser_context_t *ctx CHECK_PARSER_ERR(getManageNeuronType(&parser_tx_obj, &mn_type)) switch (mn_type) { - case Configure_SetDissolvedTimestamp: { + case Configure_SetDissolvedDelay: { return parser_getItemSetDissolveTimestamp(displayIdx, outKey, outKeyLen, outVal, outValLen, pageIdx, pageCount); } case Configure_ChangeAutoStakeMaturity: { return parser_getItemChangeAutoStakeMaturity(displayIdx, outKey, outKeyLen, outVal, outValLen, pageIdx, pageCount); } - case SpawnCandid: { + case Spawn: { return parser_getItemSpawnCandid(displayIdx, outKey, outKeyLen, outVal, outValLen, pageIdx, pageCount); } case Split: { @@ -1216,25 +1216,25 @@ __Z_INLINE parser_error_t parser_getItemManageNeuron(const parser_context_t *ctx case Merge: { return parser_getItemMerge(displayIdx, outKey, outKeyLen, outVal, outValLen, pageIdx, pageCount); } - case StakeMaturityCandid: { + case StakeMaturity: { return parser_getItemStakeMaturityCandid(displayIdx, outKey, outKeyLen, outVal, outValLen, pageIdx, pageCount); } - case DisburseCandid: + case Disburse: return parser_getItemDisburseCandid(displayIdx, outKey, outKeyLen, outVal, outValLen, pageIdx, pageCount); - case RegisterVoteCandid: + case RegisterVote: return parser_getItemRegisterVoteCandid(displayIdx, outKey, outKeyLen, outVal, outValLen, pageIdx, pageCount); - case FollowCandid: + case Follow: return parser_getItemFollowCandid(displayIdx, outKey, outKeyLen, outVal, outValLen, pageIdx, pageCount); - case Configure_IncreaseDissolveDelayCandid: { + case Configure_IncreaseDissolveDelay: { return parser_getItemIncreaseDissolveDelayCandid(displayIdx, outKey, outKeyLen, outVal, outValLen, pageIdx, pageCount); } - case Configure_AddHotkeyCandid: - case Configure_RemoveHotkeyCandid: + case Configure_AddHotkey: + case Configure_RemoveHotkey: return parser_getItemConfigureAddRemoveHotkeyCandid(displayIdx, outKey, outKeyLen, outVal, outValLen, pageIdx, pageCount); - case Configure_JoinNeuronsFundCandid: - case Configure_LeaveNeuronsFundCandid: - case Configure_StartDissolvingCandid: - case Configure_StopDissolvingCandid: + case Configure_JoinNeuronsFund: + case Configure_LeaveNeuronsFund: + case Configure_StartDissolving: + case Configure_StopDissolving: return parser_getItemConfigureNoElementsCandid(displayIdx, outKey, outKeyLen, outVal, outValLen, pageIdx, pageCount); case SNS_Configure_StartDissolving: case SNS_Configure_StopDissolving: diff --git a/app/src/parser_print_protobuf.c b/app/src/parser_print_protobuf.c deleted file mode 100644 index 5cc1235c..00000000 --- a/app/src/parser_print_protobuf.c +++ /dev/null @@ -1,831 +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. -********************************************************************************/ -#include "parser_print_protobuf.h" -#include "parser_print_helper.h" -#include "parser_print_strings.h" -#include "parser_txdef.h" -#include -#include - -__Z_INLINE parser_error_t print_accountBytes(sender_t sender, - const SendRequest *sendrequest, - char *outVal, uint16_t outValLen, - uint8_t pageIdx, uint8_t *pageCount) { - uint8_t address[32]; - MEMZERO(address, sizeof(address)); - - zxerr_t err = crypto_principalToSubaccount(sender.data, (uint16_t) sender.len, - sendrequest->from_subaccount.sub_account, 32, - address, sizeof(address)); - if (err != zxerr_ok) { - return parser_unexpected_error; - } - - return page_hexstring_with_delimiters(address, sizeof(address), outVal, outValLen, pageIdx, pageCount); -} - -static parser_error_t parser_getItemTokenTransfer(uint8_t displayIdx, - char *outKey, uint16_t outKeyLen, - char *outVal, uint16_t outValLen, - uint8_t pageIdx, uint8_t *pageCount) { - MEMZERO(outKey, outKeyLen); - MEMZERO(outVal, outValLen); - snprintf(outKey, outKeyLen, "?"); - snprintf(outVal, outValLen, "?"); - *pageCount = 1; - - const call_t *fields = &parser_tx_obj.tx_fields.call; - - const bool is_stake_tx = parser_tx_obj.special_transfer_type == neuron_stake_transaction; - if (is_stake_tx) { - return parser_unexpected_error; - } - - if (displayIdx == 0) { - snprintf(outKey, outKeyLen, "Transaction type"); - snprintf(outVal, outValLen, "Send ICP"); - return parser_ok; - } - - if (app_mode_expert()) { - if (displayIdx == 1) { - snprintf(outKey, outKeyLen, "Sender "); - return print_principal(fields->sender.data, (uint16_t) fields->sender.len, outVal, outValLen, pageIdx, pageCount); - } - - if (displayIdx == 2) { - snprintf(outKey, outKeyLen, "Subaccount "); - if (fields->data.SendRequest.has_from_subaccount) { - return page_hexstring_with_delimiters(fields->data.SendRequest.from_subaccount.sub_account, - DFINITY_ADDR_LEN, outVal, outValLen, pageIdx, pageCount); - } - snprintf(outVal, outValLen, "Not set"); - return parser_ok; - } - displayIdx -= 2; - } - - if (displayIdx == 1) { - snprintf(outKey, outKeyLen, "From account"); - return print_accountBytes(fields->sender, &fields->data.SendRequest, - outVal, outValLen, - pageIdx, pageCount); - } - - if (displayIdx == 2) { - PARSER_ASSERT_OR_ERROR(fields->data.SendRequest.has_to, parser_unexpected_number_items) - snprintf(outKey, outKeyLen, "To account "); - return page_hexstring_with_delimiters(fields->data.SendRequest.to.hash, 32, - outVal, outValLen, pageIdx, pageCount); - } - - if (displayIdx == 3) { - snprintf(outKey, outKeyLen, "Amount (ICP)"); - PARSER_ASSERT_OR_ERROR(fields->data.SendRequest.payment.has_receiver_gets, parser_unexpected_number_items) - return print_ICP(fields->data.SendRequest.payment.receiver_gets.e8s, - outVal, outValLen, - pageIdx, pageCount); - } - - if (displayIdx == 4) { - snprintf(outKey, outKeyLen, "Maximum fee (ICP)"); - PARSER_ASSERT_OR_ERROR(fields->data.SendRequest.has_max_fee, parser_unexpected_number_items) - return print_ICP(fields->data.SendRequest.max_fee.e8s, - outVal, outValLen, - pageIdx, pageCount); - } - - if (displayIdx == 5) { - snprintf(outKey, outKeyLen, "Memo"); - PARSER_ASSERT_OR_ERROR(fields->data.SendRequest.has_memo, parser_unexpected_number_items) - return print_u64(fields->data.SendRequest.memo.memo, outVal, outValLen, pageIdx, pageCount); - } - - return parser_no_data; -} - -static parser_error_t parser_getItemStakeNeuron(uint8_t displayIdx, - char *outKey, uint16_t outKeyLen, - char *outVal, uint16_t outValLen, - uint8_t pageIdx, uint8_t *pageCount) { - MEMZERO(outKey, outKeyLen); - MEMZERO(outVal, outValLen); - snprintf(outKey, outKeyLen, "?"); - snprintf(outVal, outValLen, "?"); - *pageCount = 1; - - const call_t *fields = &parser_tx_obj.tx_fields.call; - - const bool is_stake_tx = parser_tx_obj.special_transfer_type == neuron_stake_transaction; - if (!is_stake_tx) { - return parser_unexpected_error; - } - - if (displayIdx == 0) { - snprintf(outKey, outKeyLen, "Transaction type"); - snprintf(outVal, outValLen, "Stake Neuron"); - return parser_ok; - } - - if (app_mode_expert()) { - if (displayIdx == 1) { - snprintf(outKey, outKeyLen, "Sender "); - return print_principal(fields->sender.data, (uint16_t) fields->sender.len, outVal, outValLen, pageIdx, pageCount); - } - - if (displayIdx == 2) { - snprintf(outKey, outKeyLen, "Subaccount "); - if (fields->data.SendRequest.has_from_subaccount) { - return page_hexstring_with_delimiters(fields->data.SendRequest.from_subaccount.sub_account, 32, - outVal, outValLen, pageIdx, pageCount); - } - snprintf(outVal, outValLen, "Not set"); - return parser_ok; - } - displayIdx -= 2; - } - - if (displayIdx == 1) { - snprintf(outKey, outKeyLen, "From account"); - return print_accountBytes(fields->sender, &fields->data.SendRequest, - outVal, outValLen, - pageIdx, pageCount); - } - - if (displayIdx == 2) { - snprintf(outKey, outKeyLen, "Amount (ICP)"); - PARSER_ASSERT_OR_ERROR(fields->data.SendRequest.payment.has_receiver_gets, parser_unexpected_number_items) - return print_ICP(fields->data.SendRequest.payment.receiver_gets.e8s, - outVal, outValLen, - pageIdx, pageCount); - } - - if (displayIdx == 3) { - snprintf(outKey, outKeyLen, "Maximum fee (ICP)"); - PARSER_ASSERT_OR_ERROR(fields->data.SendRequest.has_max_fee, parser_unexpected_number_items) - return print_ICP(fields->data.SendRequest.max_fee.e8s, - outVal, outValLen, - pageIdx, pageCount); - } - - if (displayIdx == 4) { - snprintf(outKey, outKeyLen, "Memo"); - PARSER_ASSERT_OR_ERROR(fields->data.SendRequest.has_memo, parser_unexpected_number_items) - return print_u64(fields->data.SendRequest.memo.memo, outVal, outValLen, pageIdx, pageCount); - } - - return parser_no_data; -} - -static parser_error_t parser_getItemClaimNeuron(uint8_t displayIdx, - char *outKey, uint16_t outKeyLen, - char *outVal, uint16_t outValLen) { - if (displayIdx == 0) { - snprintf(outKey, outKeyLen, "Transaction type"); - snprintf(outVal, outValLen, "Claim Neurons"); - return parser_ok; - } - - return parser_no_data; -} - -static parser_error_t parser_getItemListNeurons(uint8_t displayIdx, - char *outKey, uint16_t outKeyLen, - char *outVal, uint16_t outValLen) { - if (displayIdx == 0) { - snprintf(outKey, outKeyLen, "Transaction type"); - snprintf(outVal, outValLen, "List Own Neurons"); - return parser_ok; - } - - return parser_no_data; -} - -static parser_error_t parser_getItemIncreaseNeuronTimer(uint8_t displayIdx, - char *outKey, uint16_t outKeyLen, - char *outVal, uint16_t outValLen, - uint8_t pageIdx, uint8_t *pageCount) { - *pageCount = 1; - - const ic_nns_governance_pb_v1_ManageNeuron *fields = &parser_tx_obj.tx_fields.call.data.ic_nns_governance_pb_v1_ManageNeuron; - - if (displayIdx == 0) { - snprintf(outKey, outKeyLen, "Transaction type"); - snprintf(outVal, outValLen, INCREASE_DISSOLVE_DELAY); - return parser_ok; - } - - if (displayIdx == 1) { - snprintf(outKey, outKeyLen, "Neuron ID"); - PARSER_ASSERT_OR_ERROR(!(fields->has_id && (fields->which_neuron_id_or_subaccount == 12 || - fields->which_neuron_id_or_subaccount == 11)), - parser_unexpected_number_items) - - if (fields->has_id) { - return print_u64(fields->id.id, outVal, outValLen, pageIdx, pageCount); - } - - if (fields->which_neuron_id_or_subaccount == 12) { - return print_u64(fields->neuron_id_or_subaccount.neuron_id.id, outVal, outValLen, pageIdx, pageCount); - } - - //Only accept neuron_id - return parser_unexpected_type; - } - - if (displayIdx == 2) { - snprintf(outKey, outKeyLen, "Additional Delay"); - - if (fields->command.configure.operation.increase_dissolve_delay.additional_dissolve_delay_seconds == 0) { - snprintf(outVal, outValLen, "0s"); - return parser_ok; - } - - char buffer[100]; - MEMZERO(buffer, sizeof(buffer)); - uint64_t value = 0; - MEMCPY(&value, - &fields->command.configure.operation.increase_dissolve_delay.additional_dissolve_delay_seconds, - 4); - - CHECK_PARSER_ERR(parser_printDelay(value, buffer, sizeof(buffer))) - pageString(outVal, outValLen, buffer, pageIdx, pageCount); - return parser_ok; - } - return parser_no_data; -} - -static parser_error_t parser_getItemJoinNeuronsFund(uint8_t displayIdx, - char *outKey, uint16_t outKeyLen, - char *outVal, uint16_t outValLen, - uint8_t pageIdx, uint8_t *pageCount) { - *pageCount = 1; - - const ic_nns_governance_pb_v1_ManageNeuron *fields = &parser_tx_obj.tx_fields.call.data.ic_nns_governance_pb_v1_ManageNeuron; - - if (displayIdx == 0) { - snprintf(outKey, outKeyLen, "Transaction type"); - snprintf(outVal, outValLen, "Join Neurons' Fund"); - return parser_ok; - } - - if (displayIdx == 1) { - snprintf(outKey, outKeyLen, "Neuron ID"); - PARSER_ASSERT_OR_ERROR(!(fields->has_id && (fields->which_neuron_id_or_subaccount == 12 || - fields->which_neuron_id_or_subaccount == 11)), - parser_unexpected_number_items) - - if (fields->has_id) { - return print_u64(fields->id.id, outVal, outValLen, pageIdx, pageCount); - } - - if (fields->which_neuron_id_or_subaccount == 12) { - return print_u64(fields->neuron_id_or_subaccount.neuron_id.id, outVal, outValLen, pageIdx, pageCount); - } - - //Only accept neuron_id - return parser_unexpected_type; - } - - return parser_no_data; -} - -static parser_error_t parser_getItemStartStopDissolve(uint8_t displayIdx, - char *outKey, uint16_t outKeyLen, - char *outVal, uint16_t outValLen, - uint8_t pageIdx, uint8_t *pageCount) { - *pageCount = 1; - - const ic_nns_governance_pb_v1_ManageNeuron *fields = &parser_tx_obj.tx_fields.call.data.ic_nns_governance_pb_v1_ManageNeuron; - - if (displayIdx == 0) { - snprintf(outKey, outKeyLen, "Transaction type"); - - manageNeuron_e mn_type; - CHECK_PARSER_ERR(getManageNeuronType(&parser_tx_obj, &mn_type)) - - if (mn_type == Configure_StartDissolving) { - snprintf(outVal, outValLen, "Start Dissolving"); - } else { - snprintf(outVal, outValLen, "Stop Dissolving"); - } - return parser_ok; - } - - if (displayIdx == 1) { - snprintf(outKey, outKeyLen, "Neuron ID"); - PARSER_ASSERT_OR_ERROR(!(fields->has_id && (fields->which_neuron_id_or_subaccount == 12 || - fields->which_neuron_id_or_subaccount == 11)), - parser_unexpected_number_items) - - if (fields->has_id) { - return print_u64(fields->id.id, outVal, outValLen, pageIdx, pageCount); - } else if (fields->which_neuron_id_or_subaccount == 12) { - return print_u64(fields->neuron_id_or_subaccount.neuron_id.id, outVal, outValLen, pageIdx, pageCount); - } else { - //Only accept neuron_id - return parser_unexpected_type; - } - } - - return parser_no_data; -} - -static parser_error_t parser_getItemSpawn(uint8_t displayIdx, - char *outKey, uint16_t outKeyLen, - char *outVal, uint16_t outValLen, - uint8_t pageIdx, uint8_t *pageCount) { - *pageCount = 1; - - const ic_nns_governance_pb_v1_ManageNeuron *fields = &parser_tx_obj.tx_fields.call.data.ic_nns_governance_pb_v1_ManageNeuron; - - if (displayIdx == 0) { - snprintf(outKey, outKeyLen, "Transaction type"); - snprintf(outVal, outValLen, "Spawn Neuron"); - return parser_ok; - } - - if (displayIdx == 1) { - snprintf(outKey, outKeyLen, "Neuron ID"); - - PARSER_ASSERT_OR_ERROR(!(fields->has_id && (fields->which_neuron_id_or_subaccount == 12 || - fields->which_neuron_id_or_subaccount == 11)), - parser_unexpected_number_items) - - if (fields->has_id) { - return print_u64(fields->id.id, outVal, outValLen, pageIdx, pageCount); - } - - if (fields->which_neuron_id_or_subaccount == 12) { - return print_u64(fields->neuron_id_or_subaccount.neuron_id.id, outVal, outValLen, pageIdx, pageCount); - } - - //Only accept neuron_id - return parser_unexpected_type; - } - - if (displayIdx == 2) { - snprintf(outKey, outKeyLen, "Controller "); - if (!fields->command.spawn.has_new_controller) { - - snprintf(outVal, outValLen, "Self"); - return parser_ok; - } - - PARSER_ASSERT_OR_ERROR(fields->command.spawn.new_controller.serialized_id.size <= 29, - parser_value_out_of_range) - - return print_principal(fields->command.spawn.new_controller.serialized_id.bytes, - DFINITY_PRINCIPAL_LEN, - outVal, outValLen, - pageIdx, pageCount); - } - - return parser_no_data; -} - -static parser_error_t parser_getItemAddRemoveHotkey(uint8_t displayIdx, - char *outKey, uint16_t outKeyLen, - char *outVal, uint16_t outValLen, - uint8_t pageIdx, uint8_t *pageCount) { - *pageCount = 1; - - const ic_nns_governance_pb_v1_ManageNeuron *fields = &parser_tx_obj.tx_fields.call.data.ic_nns_governance_pb_v1_ManageNeuron; - if (displayIdx == 0) { - snprintf(outKey, outKeyLen, "Transaction type"); - - manageNeuron_e mn_type; - CHECK_PARSER_ERR(getManageNeuronType(&parser_tx_obj, &mn_type)) - - if (mn_type == Configure_AddHotKey) { - snprintf(outVal, outValLen, "Add Hotkey"); - } else { - snprintf(outVal, outValLen, "Remove Hotkey"); - } - - return parser_ok; - } - - if (displayIdx == 1) { - snprintf(outKey, outKeyLen, "Neuron ID"); - PARSER_ASSERT_OR_ERROR(!(fields->has_id && (fields->which_neuron_id_or_subaccount == 12 || - fields->which_neuron_id_or_subaccount == 11)), - parser_unexpected_number_items) - - if (fields->has_id) { - return print_u64(fields->id.id, outVal, outValLen, pageIdx, pageCount); - } - - if (fields->which_neuron_id_or_subaccount == 12) { - return print_u64(fields->neuron_id_or_subaccount.neuron_id.id, outVal, outValLen, pageIdx, pageCount); - } - - //Only accept neuron_id - return parser_unexpected_type; - } - - - if (displayIdx == 2) { - snprintf(outKey, outKeyLen, "Principal "); - manageNeuron_e mn_type; - CHECK_PARSER_ERR(getManageNeuronType(&parser_tx_obj, &mn_type)) - - if (mn_type == Configure_AddHotKey) { - PARSER_ASSERT_OR_ERROR(fields->command.configure.operation.add_hot_key.has_new_hot_key, - parser_unexpected_number_items) - PARSER_ASSERT_OR_ERROR(fields->command.configure.operation.add_hot_key.new_hot_key.serialized_id.size <= 29, - parser_value_out_of_range) - return print_principal(fields->command.configure.operation.add_hot_key.new_hot_key.serialized_id.bytes, 29, - outVal, outValLen, pageIdx, pageCount); - } - - PARSER_ASSERT_OR_ERROR(fields->command.configure.operation.remove_hot_key.has_hot_key_to_remove, - parser_unexpected_number_items) - PARSER_ASSERT_OR_ERROR( - fields->command.configure.operation.remove_hot_key.hot_key_to_remove.serialized_id.size <= 29, - parser_value_out_of_range) - - return print_principal( - fields->command.configure.operation.remove_hot_key.hot_key_to_remove.serialized_id.bytes, 29, - outVal, outValLen, pageIdx, pageCount); - } - - return parser_no_data; -} - -static parser_error_t parser_getItemDisburse(uint8_t displayIdx, - char *outKey, uint16_t outKeyLen, - char *outVal, uint16_t outValLen, - uint8_t pageIdx, uint8_t *pageCount) { - *pageCount = 1; - - const ic_nns_governance_pb_v1_ManageNeuron *fields = &parser_tx_obj.tx_fields.call.data.ic_nns_governance_pb_v1_ManageNeuron; - if (displayIdx == 0) { - snprintf(outKey, outKeyLen, "Transaction type"); - snprintf(outVal, outValLen, "Disburse Neuron"); - return parser_ok; - } - - if (displayIdx == 1) { - snprintf(outKey, outKeyLen, "Neuron ID"); - PARSER_ASSERT_OR_ERROR(!(fields->has_id && (fields->which_neuron_id_or_subaccount == 12 || - fields->which_neuron_id_or_subaccount == 11)), - parser_unexpected_number_items) - if (fields->has_id) { - return print_u64(fields->id.id, outVal, outValLen, pageIdx, pageCount); - } - - if (fields->which_neuron_id_or_subaccount == 12) { - return print_u64(fields->neuron_id_or_subaccount.neuron_id.id, outVal, outValLen, pageIdx, pageCount); - } - - //Only accept neuron_id - return parser_unexpected_type; - } - - if (displayIdx == 2) { - snprintf(outKey, outKeyLen, "Disburse To "); - - if (!fields->command.disburse.has_to_account) { - snprintf(outVal, outValLen, "Self"); - return parser_ok; - } - - PARSER_ASSERT_OR_ERROR(fields->command.disburse.to_account.hash.size == 32, parser_context_unexpected_size) - - return page_hexstring_with_delimiters(fields->command.disburse.to_account.hash.bytes, - fields->command.disburse.to_account.hash.size, - outVal, outValLen, pageIdx, pageCount); - } - - if (displayIdx == 3) { - snprintf(outKey, outKeyLen, "Amount (ICP)"); - - if (!fields->command.disburse.has_amount) { - snprintf(outVal, outValLen, "All"); - return parser_ok; - } - - return print_ICP(fields->command.disburse.amount.e8s, outVal, outValLen, pageIdx, pageCount); - } - - return parser_no_data; -} - -static parser_error_t parser_getItemRegisterVote(uint8_t displayIdx, - char *outKey, uint16_t outKeyLen, - char *outVal, uint16_t outValLen, - uint8_t pageIdx, uint8_t *pageCount) { - *pageCount = 1; - - const ic_nns_governance_pb_v1_ManageNeuron *fields = &parser_tx_obj.tx_fields.call.data.ic_nns_governance_pb_v1_ManageNeuron; - - if (displayIdx == 0) { - snprintf(outKey, outKeyLen, "Transaction type"); - snprintf(outVal, outValLen, "Register Vote"); - return parser_ok; - } - - if (displayIdx == 1) { - snprintf(outKey, outKeyLen, "Neuron ID"); - PARSER_ASSERT_OR_ERROR(!(fields->has_id && (fields->which_neuron_id_or_subaccount == 12 || - fields->which_neuron_id_or_subaccount == 11)), - parser_unexpected_number_items) - - if (fields->has_id) { - return print_u64(fields->id.id, outVal, outValLen, pageIdx, pageCount); - } - - if (fields->which_neuron_id_or_subaccount == 12) { - return print_u64(fields->neuron_id_or_subaccount.neuron_id.id, outVal, outValLen, pageIdx, pageCount); - } - - //Only accept neuron_id - return parser_unexpected_type; - } - - if (displayIdx == 2) { - snprintf(outKey, outKeyLen, "Proposal ID"); - char buffer[100]; - MEMZERO(buffer, sizeof(buffer)); - uint64_t value = 0; - MEMCPY(&value, &fields->command.register_vote.proposal.id, 8); - return print_u64(value, outVal, outValLen, pageIdx, pageCount); - } - - if (displayIdx == 3) { - snprintf(outKey, outKeyLen, "Vote"); - ic_nns_governance_pb_v1_Vote v = fields->command.register_vote.vote; - - if (v == 0) { - return parser_unexpected_value; - } - - snprintf(outVal, outValLen, v == 1 ? "Yes" : "No"); - return parser_ok; - } - - return parser_no_data; -} - -static parser_error_t parser_getItemFollow(uint8_t displayIdx, - char *outKey, uint16_t outKeyLen, - char *outVal, uint16_t outValLen, - uint8_t pageIdx, uint8_t *pageCount) { - *pageCount = 1; - - const ic_nns_governance_pb_v1_ManageNeuron *fields = &parser_tx_obj.tx_fields.call.data.ic_nns_governance_pb_v1_ManageNeuron; - - if (displayIdx == 0) { - snprintf(outKey, outKeyLen, "Transaction type"); - snprintf(outVal, outValLen, "Follow"); - return parser_ok; - } - - if (displayIdx == 1) { - snprintf(outKey, outKeyLen, "Neuron ID"); - PARSER_ASSERT_OR_ERROR(!(fields->has_id && (fields->which_neuron_id_or_subaccount == 12 || - fields->which_neuron_id_or_subaccount == 11)), - parser_unexpected_number_items) - - if (fields->has_id) { - return print_u64(fields->id.id, outVal, outValLen, pageIdx, pageCount); - } - - if (fields->which_neuron_id_or_subaccount == 12) { - return print_u64(fields->neuron_id_or_subaccount.neuron_id.id, outVal, outValLen, pageIdx, pageCount); - } - - //Only accept neuron_id - return parser_unexpected_type; - } - - if (displayIdx == 2) { - snprintf(outKey, outKeyLen, "Topic"); - ic_nns_governance_pb_v1_Topic topic = fields->command.follow.topic; - - switch (topic) { - case ic_nns_governance_pb_v1_Topic_TOPIC_UNSPECIFIED : { - snprintf(outVal, outValLen, "Default"); - return parser_ok; - } - case ic_nns_governance_pb_v1_Topic_TOPIC_NEURON_MANAGEMENT : { - snprintf(outVal, outValLen, "Neuron Management"); - return parser_ok; - } - case ic_nns_governance_pb_v1_Topic_TOPIC_EXCHANGE_RATE : { - snprintf(outVal, outValLen, "Exchange Rate"); - return parser_ok; - } - case ic_nns_governance_pb_v1_Topic_TOPIC_NETWORK_ECONOMICS : { - snprintf(outVal, outValLen, "Network Economics"); - return parser_ok; - } - case ic_nns_governance_pb_v1_Topic_TOPIC_GOVERNANCE : { - snprintf(outVal, outValLen, "Governance"); - return parser_ok; - } - case ic_nns_governance_pb_v1_Topic_TOPIC_NODE_ADMIN : { - snprintf(outVal, outValLen, "Node Admin"); - return parser_ok; - } - case ic_nns_governance_pb_v1_Topic_TOPIC_PARTICIPANT_MANAGEMENT : { - snprintf(outVal, outValLen, "Participant Management"); - return parser_ok; - } - case ic_nns_governance_pb_v1_Topic_TOPIC_SUBNET_MANAGEMENT : { - snprintf(outVal, outValLen, "Subnet Management"); - return parser_ok; - } - case ic_nns_governance_pb_v1_Topic_TOPIC_NETWORK_CANISTER_MANAGEMENT : { - snprintf(outVal, outValLen, "Network Canister Management"); - return parser_ok; - } - case ic_nns_governance_pb_v1_Topic_TOPIC_KYC : { - snprintf(outVal, outValLen, "KYC"); - return parser_ok; - } - case ic_nns_governance_pb_v1_Topic_TOPIC_NODE_PROVIDER_REWARDS : { - snprintf(outVal, outValLen, "Node Provider Rewards"); - return parser_ok; - } - case ic_nns_governance_pb_v1_Topic_TOPIC_SNS_DECENTRALIZATION_SALE : { - snprintf(outVal, outValLen, "SNS Decentralization Swap"); - return parser_ok; - } - case ic_nns_governance_pb_v1_Topic_TOPIC_SUBNET_REPLICA_VERSION_MANAGEMENT : { - snprintf(outVal, outValLen, "Subnet Replica Version Management"); - return parser_ok; - } - case ic_nns_governance_pb_v1_Topic_TOPIC_REPLICA_VERSION_MANAGEMENT : { - snprintf(outVal, outValLen, "Replica Version Management"); - return parser_ok; - } - case ic_nns_governance_pb_v1_Topic_TOPIC_SNS_AND_COMMUNITY_FUND : { - snprintf(outVal, outValLen, "SNS & Neurons' Fund"); - return parser_ok; - } - default: { - return parser_unexpected_type; - } - } - } - - uint8_t new_displayIdx = displayIdx - 3; - pb_size_t follow_count = fields->command.follow.followees_count; - - if (follow_count > 99) { - //check for number of chars, but the real limit is lower - return parser_unexpected_number_items; - } - - if (follow_count == 0) { - if (new_displayIdx == 0) { - snprintf(outKey, outKeyLen, "Followees"); - snprintf(outVal, outValLen, "None"); - return parser_ok; - } - - return parser_unexpected_number_items; - } - - if (new_displayIdx < follow_count) { - uint64_t id = fields->command.follow.followees[new_displayIdx].id; - new_displayIdx++; //higher by 1 - char buffer[100]; - MEMZERO(buffer, sizeof(buffer)); - uint16_t index = 0; - MEMCPY(buffer, (char *) "Followees (", 11); - index += 11; - - uint8_t tens = new_displayIdx / 10; - if (tens > 0) { - char ten = (char) ('0' + tens); - MEMCPY(buffer + index, &ten, 1); - index++; - } - - uint8_t ones = new_displayIdx % 10; - char one = (char) ('0' + ones); - MEMCPY(buffer + index, &one, 1); - index++; - MEMCPY(buffer + index, ")", 1); - snprintf(outKey, outKeyLen, "%s", buffer); - return print_u64(id, outVal, outValLen, pageIdx, pageCount); - } - - return parser_no_data; -} - -static parser_error_t parser_getItemManageNeuron(uint8_t displayIdx, - char *outKey, uint16_t outKeyLen, - char *outVal, uint16_t outValLen, - uint8_t pageIdx, uint8_t *pageCount) { - MEMZERO(outKey, outKeyLen); - MEMZERO(outVal, outValLen); - snprintf(outKey, outKeyLen, "?"); - snprintf(outVal, outValLen, "?"); - *pageCount = 1; - - manageNeuron_e mn_type; - CHECK_PARSER_ERR(getManageNeuronType(&parser_tx_obj, &mn_type)) - - switch (mn_type) { - case Configure_IncreaseDissolveDelay: - return parser_getItemIncreaseNeuronTimer(displayIdx, - outKey, outKeyLen, outVal, outValLen, pageIdx, pageCount); - case Configure_JoinNeuronsFund : - return parser_getItemJoinNeuronsFund(displayIdx, - outKey, outKeyLen, outVal, outValLen, pageIdx, pageCount); - case Configure_StopDissolving : - case Configure_StartDissolving : { - return parser_getItemStartStopDissolve(displayIdx, - outKey, outKeyLen, outVal, outValLen, pageIdx, pageCount); - } - case Spawn : { - return parser_getItemSpawn(displayIdx, - outKey, outKeyLen, outVal, outValLen, pageIdx, pageCount); - } - case Configure_RemoveHotKey: - case Configure_AddHotKey: - return parser_getItemAddRemoveHotkey(displayIdx, outKey, outKeyLen, outVal, outValLen, pageIdx, pageCount); - - case Disburse : - return parser_getItemDisburse(displayIdx, outKey, outKeyLen, outVal, outValLen, pageIdx, pageCount); - - case RegisterVote : - return parser_getItemRegisterVote(displayIdx, outKey, outKeyLen, outVal, outValLen, pageIdx, pageCount); - - case Follow: - return parser_getItemFollow(displayIdx, outKey, outKeyLen, outVal, outValLen, pageIdx, pageCount); - - default: - return parser_no_data; - } -} - -parser_error_t parser_getItemProtobuf(uint8_t displayIdx, - char *outKey, uint16_t outKeyLen, - char *outVal, uint16_t outValLen, - uint8_t pageIdx, uint8_t *pageCount) { - - MEMZERO(outKey, outKeyLen); - MEMZERO(outVal, outValLen); - - *pageCount = 1; - switch (parser_tx_obj.tx_fields.call.method_type) { - case pb_sendrequest : { - const bool is_stake_tx = parser_tx_obj.special_transfer_type == neuron_stake_transaction; - - if (is_stake_tx) { - return parser_getItemStakeNeuron(displayIdx, - outKey, outKeyLen, - outVal, outValLen, - pageIdx, pageCount); - } - - return parser_getItemTokenTransfer( displayIdx, - outKey, outKeyLen, - outVal, outValLen, - pageIdx, pageCount); - } - - case pb_manageneuron: { - return parser_getItemManageNeuron(displayIdx, - outKey, outKeyLen, - outVal, outValLen, - pageIdx, pageCount); - } - - case pb_listneurons : { - return parser_getItemListNeurons(displayIdx, - outKey, outKeyLen, - outVal, outValLen); - } - - case pb_claimneurons : { - return parser_getItemClaimNeuron(displayIdx, - outKey, outKeyLen, - outVal, outValLen); - } - - default: - ZEMU_LOGF(50, "Protobuf type not supported\n") - break; - } - - return parser_unexpected_type; -} diff --git a/app/src/parser_print_protobuf.h b/app/src/parser_print_protobuf.h deleted file mode 100644 index 262f6bf3..00000000 --- a/app/src/parser_print_protobuf.h +++ /dev/null @@ -1,34 +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. -********************************************************************************/ -#pragma once - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include -#include "candid_types.h" -#include "parser_common.h" - -parser_error_t parser_getItemProtobuf(uint8_t displayIdx, - char *outKey, uint16_t outKeyLen, - char *outVal, uint16_t outValLen, - uint8_t pageIdx, uint8_t *pageCount); - -#ifdef __cplusplus -} -#endif diff --git a/app/src/parser_txdef.h b/app/src/parser_txdef.h index 94f390ee..a713759f 100644 --- a/app/src/parser_txdef.h +++ b/app/src/parser_txdef.h @@ -17,11 +17,7 @@ #include #include - -#define ZX_NO_CPP - -#include "protobuf/dfinity.pb.h" -#include "protobuf/governance.pb.h" +#include #ifdef __cplusplus extern "C" { @@ -38,8 +34,6 @@ extern "C" { #define METHOD_MAX_LEN 20 #define NONCE_MAX_LEN 32 -#define ARG_MAX_LEN 1000 - #define PATH_MAX_LEN 40 #define PATH_MAX_ARRAY 2 @@ -50,12 +44,6 @@ typedef enum { } txtype_e; typedef enum { - pb_unknown = 0x00, //default is not accepted - pb_sendrequest = 0x01, - pb_manageneuron = 0x02, - pb_listneurons = 0x03, - pb_claimneurons = 0x04, - candid_transfer = 0xF001, candid_manageneuron = 0xF002, candid_updatenodeprovider = 0xF003, @@ -66,47 +54,32 @@ typedef enum { typedef enum { wrong_operation = 0, //default is not accepted - Configure = 2, - Configure_IncreaseDissolveDelay = 2001, - Configure_StartDissolving = 2002, - Configure_StopDissolving = 2003, - Configure_AddHotKey = 2004, - Configure_RemoveHotKey = 2005, - Configure_SetDissolvedTimestamp = 2006, - Configure_JoinNeuronsFund = 2007, - Configure_LeaveNeuronsFund = 2008, - Configure_ChangeAutoStakeMaturity = 2009, - -//// + Merge = 1, + Spawn = 2, Disburse = 3, - Spawn = 4, - Follow = 5, - RegisterVote = 7, -// Register_Vote = 10, - Split = 11, -// DisburseToNeuron = 12, -// ClaimOrRefresh = 13, - Merge = 1000, - SpawnCandid = 1001, - StakeMaturityCandid = 1002, - Configure_IncreaseDissolveDelayCandid = 1003, - Configure_StartDissolvingCandid = 1004, - Configure_StopDissolvingCandid = 1005, - DisburseCandid = 1006, - Configure_JoinNeuronsFundCandid = 1007, - Configure_LeaveNeuronsFundCandid = 1008, - Configure_AddHotkeyCandid = 1009, - Configure_RemoveHotkeyCandid = 1010, - RegisterVoteCandid = 1011, - FollowCandid = 1012, - - SNS_AddNeuronPermissions = 3000, - SNS_RemoveNeuronPermissions = 3001, - SNS_Configure_StartDissolving = 3002, - SNS_Configure_StopDissolving = 3003, - SNS_Disburse = 3004, - SNS_StakeMaturity = 3005, - SNS_Configure_SetDissolveDelay = 3006, + StakeMaturity = 4, + RegisterVote = 5, + Follow = 6, + Split = 7, + + Configure_SetDissolvedDelay = 100, + Configure_IncreaseDissolveDelay = 101, + Configure_StartDissolving = 102, + Configure_StopDissolving = 103, + Configure_JoinNeuronsFund = 104, + Configure_LeaveNeuronsFund = 105, + Configure_AddHotkey = 106, + Configure_RemoveHotkey = 107, + Configure_ChangeAutoStakeMaturity = 108, + + SNS_AddNeuronPermissions = 200, + SNS_RemoveNeuronPermissions = 201, + SNS_Disburse = 202, + SNS_StakeMaturity = 203, + + SNS_Configure_StartDissolving = 300, + SNS_Configure_StopDissolving = 301, + SNS_Configure_SetDissolveDelay = 302, } manageNeuron_e; typedef enum { @@ -141,7 +114,6 @@ typedef struct { } nonce_t; typedef struct { - uint8_t data[ARG_MAX_LEN + 1]; uint8_t *dataPtr; size_t len; } method_arg_t; @@ -173,12 +145,9 @@ typedef struct { uint8_t is_sns; union { - ic_nns_governance_pb_v1_ManageNeuron ic_nns_governance_pb_v1_ManageNeuron; candid_ManageNeuron_t candid_manageNeuron; candid_UpdateNodeProvider_t candid_updateNodeProvider; candid_ListNeurons_t candid_listNeurons; - SendRequest SendRequest; - ListNeurons ListNeurons; sns_ManageNeuron_t sns_manageNeuron; icrc_transfer_t icrcTransfer; candid_transfer_t candid_transfer; @@ -191,9 +160,6 @@ typedef struct { pathArray_t paths; } state_read_t; -/// -/// - typedef struct { txtype_e txtype; // union selector diff --git a/app/src/protobuf/base_types.options b/app/src/protobuf/base_types.options deleted file mode 100644 index de85624b..00000000 --- a/app/src/protobuf/base_types.options +++ /dev/null @@ -1 +0,0 @@ -ic_base_types.pb.v1.PrincipalId.serialized_id max_size:30 diff --git a/app/src/protobuf/base_types.pb.c b/app/src/protobuf/base_types.pb.c deleted file mode 100644 index 84a491b9..00000000 --- a/app/src/protobuf/base_types.pb.c +++ /dev/null @@ -1,30 +0,0 @@ -/* Automatically generated nanopb constant definitions */ -/* Generated by nanopb-0.4.6-dev */ - -#include "base_types.pb.h" - -#if PB_PROTO_HEADER_VERSION != 40 -#error Regenerate this file with the current version of nanopb generator. -#endif - -PB_BIND(ic_base_types_pb_v1_PrincipalId, ic_base_types_pb_v1_PrincipalId, AUTO) - - -PB_BIND(ic_base_types_pb_v1_CanisterId, ic_base_types_pb_v1_CanisterId, AUTO) - - -PB_BIND(ic_base_types_pb_v1_NeuronId, ic_base_types_pb_v1_NeuronId, AUTO) - - -PB_BIND(ic_base_types_pb_v1_ProposalId, ic_base_types_pb_v1_ProposalId, AUTO) - - -PB_BIND(ic_base_types_pb_v1_MethodAuthzInfo, ic_base_types_pb_v1_MethodAuthzInfo, AUTO) - - -PB_BIND(ic_base_types_pb_v1_CanisterAuthzInfo, ic_base_types_pb_v1_CanisterAuthzInfo, AUTO) - - - - - diff --git a/app/src/protobuf/base_types.pb.h b/app/src/protobuf/base_types.pb.h deleted file mode 100644 index ef35efd2..00000000 --- a/app/src/protobuf/base_types.pb.h +++ /dev/null @@ -1,149 +0,0 @@ -/* Automatically generated nanopb header */ -/* Generated by nanopb-0.4.6-dev */ - -#ifndef PB_IC_BASE_TYPES_PB_V1_BASE_TYPES_PB_H_INCLUDED -#define PB_IC_BASE_TYPES_PB_V1_BASE_TYPES_PB_H_INCLUDED - -#include - -#if PB_PROTO_HEADER_VERSION != 40 -#error Regenerate this file with the current version of nanopb generator. -#endif - -/* Struct definitions */ -/* A descriptor of the authorization of all the update methods in a - canister that require authorization. - Methods that should be accessible to anyone should not appear in this list */ -typedef struct _ic_base_types_pb_v1_CanisterAuthzInfo { - pb_callback_t methods_authz; -} ic_base_types_pb_v1_CanisterAuthzInfo; - -/* A PB container for a CanisterId, which uniquely identifies - a principal. */ -typedef struct _ic_base_types_pb_v1_CanisterId { - pb_callback_t serialized_id; -} ic_base_types_pb_v1_CanisterId; - -/* A descriptor of the authorization of a single method. - Any of the principals in the list are authorized to execute - the method. */ -typedef struct _ic_base_types_pb_v1_MethodAuthzInfo { - pb_callback_t method_name; - pb_callback_t principal_ids; -} ic_base_types_pb_v1_MethodAuthzInfo; - -/* A container for a NeuronId blob, which uniquely identifies - a Neuron. */ -typedef struct _ic_base_types_pb_v1_NeuronId { - uint64_t id; -} ic_base_types_pb_v1_NeuronId; - -typedef PB_BYTES_ARRAY_T(30) ic_base_types_pb_v1_PrincipalId_serialized_id_t; -/* A PB container for a PrincipalId, which uniquely identifies - a principal. */ -typedef struct _ic_base_types_pb_v1_PrincipalId { - ic_base_types_pb_v1_PrincipalId_serialized_id_t serialized_id; -} ic_base_types_pb_v1_PrincipalId; - -/* The id of a specific proposal. */ -typedef struct _ic_base_types_pb_v1_ProposalId { - uint64_t id; -} ic_base_types_pb_v1_ProposalId; - - -/* Extensions */ -/* Extension field ic_base_types_pb_v1_tui_signed_message was skipped because only "optional" - type of extension fields is currently supported. */ -/* Extension field ic_base_types_pb_v1_tui_signed_display_q2_2021 was skipped because only "optional" - type of extension fields is currently supported. */ - -#ifdef __cplusplus -extern "C" { -#endif - -/* Initializer values for message structs */ -#define ic_base_types_pb_v1_PrincipalId_init_default {{0, {0}}} -#define ic_base_types_pb_v1_CanisterId_init_default {{{NULL}, NULL}} -#define ic_base_types_pb_v1_NeuronId_init_default {0} -#define ic_base_types_pb_v1_ProposalId_init_default {0} -#define ic_base_types_pb_v1_MethodAuthzInfo_init_default {{{NULL}, NULL}, {{NULL}, NULL}} -#define ic_base_types_pb_v1_CanisterAuthzInfo_init_default {{{NULL}, NULL}} -#define ic_base_types_pb_v1_PrincipalId_init_zero {{0, {0}}} -#define ic_base_types_pb_v1_CanisterId_init_zero {{{NULL}, NULL}} -#define ic_base_types_pb_v1_NeuronId_init_zero {0} -#define ic_base_types_pb_v1_ProposalId_init_zero {0} -#define ic_base_types_pb_v1_MethodAuthzInfo_init_zero {{{NULL}, NULL}, {{NULL}, NULL}} -#define ic_base_types_pb_v1_CanisterAuthzInfo_init_zero {{{NULL}, NULL}} - -/* Field tags (for use in manual encoding/decoding) */ -#define ic_base_types_pb_v1_CanisterAuthzInfo_methods_authz_tag 1 -#define ic_base_types_pb_v1_CanisterId_serialized_id_tag 1 -#define ic_base_types_pb_v1_MethodAuthzInfo_method_name_tag 1 -#define ic_base_types_pb_v1_MethodAuthzInfo_principal_ids_tag 2 -#define ic_base_types_pb_v1_NeuronId_id_tag 2 -#define ic_base_types_pb_v1_PrincipalId_serialized_id_tag 1 -#define ic_base_types_pb_v1_ProposalId_id_tag 1 -#define ic_base_types_pb_v1_tui_signed_message_tag 20000 -#define ic_base_types_pb_v1_tui_signed_display_q2_2021_tag 20001 - -/* Struct field encoding specification for nanopb */ -#define ic_base_types_pb_v1_PrincipalId_FIELDLIST(X, a) \ -X(a, STATIC, SINGULAR, BYTES, serialized_id, 1) -#define ic_base_types_pb_v1_PrincipalId_CALLBACK NULL -#define ic_base_types_pb_v1_PrincipalId_DEFAULT NULL - -#define ic_base_types_pb_v1_CanisterId_FIELDLIST(X, a) \ -X(a, CALLBACK, SINGULAR, BYTES, serialized_id, 1) -#define ic_base_types_pb_v1_CanisterId_CALLBACK pb_default_field_callback -#define ic_base_types_pb_v1_CanisterId_DEFAULT NULL - -#define ic_base_types_pb_v1_NeuronId_FIELDLIST(X, a) \ -X(a, STATIC, SINGULAR, UINT64, id, 2) -#define ic_base_types_pb_v1_NeuronId_CALLBACK NULL -#define ic_base_types_pb_v1_NeuronId_DEFAULT NULL - -#define ic_base_types_pb_v1_ProposalId_FIELDLIST(X, a) \ -X(a, STATIC, SINGULAR, UINT64, id, 1) -#define ic_base_types_pb_v1_ProposalId_CALLBACK NULL -#define ic_base_types_pb_v1_ProposalId_DEFAULT NULL - -#define ic_base_types_pb_v1_MethodAuthzInfo_FIELDLIST(X, a) \ -X(a, CALLBACK, SINGULAR, STRING, method_name, 1) \ -X(a, CALLBACK, REPEATED, BYTES, principal_ids, 2) -#define ic_base_types_pb_v1_MethodAuthzInfo_CALLBACK pb_default_field_callback -#define ic_base_types_pb_v1_MethodAuthzInfo_DEFAULT NULL - -#define ic_base_types_pb_v1_CanisterAuthzInfo_FIELDLIST(X, a) \ -X(a, CALLBACK, REPEATED, MESSAGE, methods_authz, 1) -#define ic_base_types_pb_v1_CanisterAuthzInfo_CALLBACK pb_default_field_callback -#define ic_base_types_pb_v1_CanisterAuthzInfo_DEFAULT NULL -#define ic_base_types_pb_v1_CanisterAuthzInfo_methods_authz_MSGTYPE ic_base_types_pb_v1_MethodAuthzInfo - -extern const pb_msgdesc_t ic_base_types_pb_v1_PrincipalId_msg; -extern const pb_msgdesc_t ic_base_types_pb_v1_CanisterId_msg; -extern const pb_msgdesc_t ic_base_types_pb_v1_NeuronId_msg; -extern const pb_msgdesc_t ic_base_types_pb_v1_ProposalId_msg; -extern const pb_msgdesc_t ic_base_types_pb_v1_MethodAuthzInfo_msg; -extern const pb_msgdesc_t ic_base_types_pb_v1_CanisterAuthzInfo_msg; - -/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ -#define ic_base_types_pb_v1_PrincipalId_fields &ic_base_types_pb_v1_PrincipalId_msg -#define ic_base_types_pb_v1_CanisterId_fields &ic_base_types_pb_v1_CanisterId_msg -#define ic_base_types_pb_v1_NeuronId_fields &ic_base_types_pb_v1_NeuronId_msg -#define ic_base_types_pb_v1_ProposalId_fields &ic_base_types_pb_v1_ProposalId_msg -#define ic_base_types_pb_v1_MethodAuthzInfo_fields &ic_base_types_pb_v1_MethodAuthzInfo_msg -#define ic_base_types_pb_v1_CanisterAuthzInfo_fields &ic_base_types_pb_v1_CanisterAuthzInfo_msg - -/* Maximum encoded size of messages (where known) */ -/* ic_base_types_pb_v1_CanisterId_size depends on runtime parameters */ -/* ic_base_types_pb_v1_MethodAuthzInfo_size depends on runtime parameters */ -/* ic_base_types_pb_v1_CanisterAuthzInfo_size depends on runtime parameters */ -#define ic_base_types_pb_v1_NeuronId_size 11 -#define ic_base_types_pb_v1_PrincipalId_size 32 -#define ic_base_types_pb_v1_ProposalId_size 11 - -#ifdef __cplusplus -} /* extern "C" */ -#endif - -#endif diff --git a/app/src/protobuf/base_types.proto b/app/src/protobuf/base_types.proto deleted file mode 100644 index 72631aa8..00000000 --- a/app/src/protobuf/base_types.proto +++ /dev/null @@ -1,60 +0,0 @@ -syntax = "proto3"; - -package ic_base_types.pb.v1; - -import "google/protobuf/descriptor.proto"; - -// The annotated message is supported by hardware wallet signing. -// The numbering was chosen as the range 19000-19999 is anyway reserved in protobuf. -extend google.protobuf.MessageOptions { - bool tui_signed_message = 20000; -} - -// The annotated field is displayed on the hardware wallet in the specification -// used by launch of the Internet Computer. -extend google.protobuf.FieldOptions { - bool tui_signed_display_q2_2021 = 20001; -} - -// A PB container for a PrincipalId, which uniquely identifies -// a principal. -message PrincipalId { - option (tui_signed_message) = true; - bytes serialized_id = 1 [(tui_signed_display_q2_2021) = true]; -} - -// A PB container for a CanisterId, which uniquely identifies -// a principal. -message CanisterId { - bytes serialized_id = 1; -} - -// A container for a NeuronId blob, which uniquely identifies -// a Neuron. -message NeuronId { - option (ic_base_types.pb.v1.tui_signed_message) = true; - // bytes serialized_id = 1; - reserved 1; - reserved 'serialized_id'; - uint64 id = 2 [(ic_base_types.pb.v1.tui_signed_display_q2_2021) = true, jstype = JS_STRING];; -} - -// The id of a specific proposal. -message ProposalId { - uint64 id = 1 [jstype = JS_STRING]; -} - -// A descriptor of the authorization of a single method. -// Any of the principals in the list are authorized to execute -// the method. -message MethodAuthzInfo { - string method_name = 1; - repeated bytes principal_ids = 2; -} - -// A descriptor of the authorization of all the update methods in a -// canister that require authorization. -// Methods that should be accessible to anyone should not appear in this list -message CanisterAuthzInfo { - repeated MethodAuthzInfo methods_authz = 1; -} \ No newline at end of file diff --git a/app/src/protobuf/common_types.pb.c b/app/src/protobuf/common_types.pb.c deleted file mode 100644 index 3000053e..00000000 --- a/app/src/protobuf/common_types.pb.c +++ /dev/null @@ -1,25 +0,0 @@ -/* Automatically generated nanopb constant definitions */ -/* Generated by nanopb-0.4.6-dev */ - -#include "common_types.pb.h" - -#if PB_PROTO_HEADER_VERSION != 40 -#error Regenerate this file with the current version of nanopb generator. -#endif - -PB_BIND(ic_nns_common_pb_v1_CanisterId, ic_nns_common_pb_v1_CanisterId, AUTO) - - -PB_BIND(ic_nns_common_pb_v1_NeuronId, ic_nns_common_pb_v1_NeuronId, AUTO) - - -PB_BIND(ic_nns_common_pb_v1_ProposalId, ic_nns_common_pb_v1_ProposalId, AUTO) - - -PB_BIND(ic_nns_common_pb_v1_MethodAuthzInfo, ic_nns_common_pb_v1_MethodAuthzInfo, AUTO) - - -PB_BIND(ic_nns_common_pb_v1_CanisterAuthzInfo, ic_nns_common_pb_v1_CanisterAuthzInfo, AUTO) - - - diff --git a/app/src/protobuf/common_types.pb.h b/app/src/protobuf/common_types.pb.h deleted file mode 100644 index 5f65a2f2..00000000 --- a/app/src/protobuf/common_types.pb.h +++ /dev/null @@ -1,124 +0,0 @@ -/* Automatically generated nanopb header */ -/* Generated by nanopb-0.4.6-dev */ - -#ifndef PB_IC_NNS_COMMON_PB_V1_COMMON_TYPES_PB_H_INCLUDED -#define PB_IC_NNS_COMMON_PB_V1_COMMON_TYPES_PB_H_INCLUDED - -#include -#include "base_types.pb.h" - -#if PB_PROTO_HEADER_VERSION != 40 -#error Regenerate this file with the current version of nanopb generator. -#endif - -/* Struct definitions */ -/* A descriptor of the authorization of all the update methods in a - canister that require authorization. - Methods that should be accessible to anyone should not appear in this list */ -typedef struct _ic_nns_common_pb_v1_CanisterAuthzInfo { - pb_callback_t methods_authz; -} ic_nns_common_pb_v1_CanisterAuthzInfo; - -/* A PB container for a CanisterId, which uniquely identifies - a principal. */ -typedef struct _ic_nns_common_pb_v1_CanisterId { - pb_callback_t serialized_id; -} ic_nns_common_pb_v1_CanisterId; - -/* A descriptor of the authorization of a single method. - Any of the principals in the list are authorized to execute - the method. */ -typedef struct _ic_nns_common_pb_v1_MethodAuthzInfo { - pb_callback_t method_name; - pb_callback_t principal_ids; -} ic_nns_common_pb_v1_MethodAuthzInfo; - -/* A container for a NeuronId blob, which uniquely identifies - a Neuron. */ -typedef struct _ic_nns_common_pb_v1_NeuronId { - uint64_t id; -} ic_nns_common_pb_v1_NeuronId; - -/* The id of a specific proposal. */ -typedef struct _ic_nns_common_pb_v1_ProposalId { - uint64_t id; -} ic_nns_common_pb_v1_ProposalId; - - -#ifdef __cplusplus -extern "C" { -#endif - -/* Initializer values for message structs */ -#define ic_nns_common_pb_v1_CanisterId_init_default {{{NULL}, NULL}} -#define ic_nns_common_pb_v1_NeuronId_init_default {0} -#define ic_nns_common_pb_v1_ProposalId_init_default {0} -#define ic_nns_common_pb_v1_MethodAuthzInfo_init_default {{{NULL}, NULL}, {{NULL}, NULL}} -#define ic_nns_common_pb_v1_CanisterAuthzInfo_init_default {{{NULL}, NULL}} -#define ic_nns_common_pb_v1_CanisterId_init_zero {{{NULL}, NULL}} -#define ic_nns_common_pb_v1_NeuronId_init_zero {0} -#define ic_nns_common_pb_v1_ProposalId_init_zero {0} -#define ic_nns_common_pb_v1_MethodAuthzInfo_init_zero {{{NULL}, NULL}, {{NULL}, NULL}} -#define ic_nns_common_pb_v1_CanisterAuthzInfo_init_zero {{{NULL}, NULL}} - -/* Field tags (for use in manual encoding/decoding) */ -#define ic_nns_common_pb_v1_CanisterAuthzInfo_methods_authz_tag 1 -#define ic_nns_common_pb_v1_CanisterId_serialized_id_tag 1 -#define ic_nns_common_pb_v1_MethodAuthzInfo_method_name_tag 1 -#define ic_nns_common_pb_v1_MethodAuthzInfo_principal_ids_tag 2 -#define ic_nns_common_pb_v1_NeuronId_id_tag 2 -#define ic_nns_common_pb_v1_ProposalId_id_tag 1 - -/* Struct field encoding specification for nanopb */ -#define ic_nns_common_pb_v1_CanisterId_FIELDLIST(X, a) \ -X(a, CALLBACK, SINGULAR, BYTES, serialized_id, 1) -#define ic_nns_common_pb_v1_CanisterId_CALLBACK pb_default_field_callback -#define ic_nns_common_pb_v1_CanisterId_DEFAULT NULL - -#define ic_nns_common_pb_v1_NeuronId_FIELDLIST(X, a) \ -X(a, STATIC, SINGULAR, UINT64, id, 2) -#define ic_nns_common_pb_v1_NeuronId_CALLBACK NULL -#define ic_nns_common_pb_v1_NeuronId_DEFAULT NULL - -#define ic_nns_common_pb_v1_ProposalId_FIELDLIST(X, a) \ -X(a, STATIC, SINGULAR, UINT64, id, 1) -#define ic_nns_common_pb_v1_ProposalId_CALLBACK NULL -#define ic_nns_common_pb_v1_ProposalId_DEFAULT NULL - -#define ic_nns_common_pb_v1_MethodAuthzInfo_FIELDLIST(X, a) \ -X(a, CALLBACK, SINGULAR, STRING, method_name, 1) \ -X(a, CALLBACK, REPEATED, BYTES, principal_ids, 2) -#define ic_nns_common_pb_v1_MethodAuthzInfo_CALLBACK pb_default_field_callback -#define ic_nns_common_pb_v1_MethodAuthzInfo_DEFAULT NULL - -#define ic_nns_common_pb_v1_CanisterAuthzInfo_FIELDLIST(X, a) \ -X(a, CALLBACK, REPEATED, MESSAGE, methods_authz, 1) -#define ic_nns_common_pb_v1_CanisterAuthzInfo_CALLBACK pb_default_field_callback -#define ic_nns_common_pb_v1_CanisterAuthzInfo_DEFAULT NULL -#define ic_nns_common_pb_v1_CanisterAuthzInfo_methods_authz_MSGTYPE ic_nns_common_pb_v1_MethodAuthzInfo - -extern const pb_msgdesc_t ic_nns_common_pb_v1_CanisterId_msg; -extern const pb_msgdesc_t ic_nns_common_pb_v1_NeuronId_msg; -extern const pb_msgdesc_t ic_nns_common_pb_v1_ProposalId_msg; -extern const pb_msgdesc_t ic_nns_common_pb_v1_MethodAuthzInfo_msg; -extern const pb_msgdesc_t ic_nns_common_pb_v1_CanisterAuthzInfo_msg; - -/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ -#define ic_nns_common_pb_v1_CanisterId_fields &ic_nns_common_pb_v1_CanisterId_msg -#define ic_nns_common_pb_v1_NeuronId_fields &ic_nns_common_pb_v1_NeuronId_msg -#define ic_nns_common_pb_v1_ProposalId_fields &ic_nns_common_pb_v1_ProposalId_msg -#define ic_nns_common_pb_v1_MethodAuthzInfo_fields &ic_nns_common_pb_v1_MethodAuthzInfo_msg -#define ic_nns_common_pb_v1_CanisterAuthzInfo_fields &ic_nns_common_pb_v1_CanisterAuthzInfo_msg - -/* Maximum encoded size of messages (where known) */ -/* ic_nns_common_pb_v1_CanisterId_size depends on runtime parameters */ -/* ic_nns_common_pb_v1_MethodAuthzInfo_size depends on runtime parameters */ -/* ic_nns_common_pb_v1_CanisterAuthzInfo_size depends on runtime parameters */ -#define ic_nns_common_pb_v1_NeuronId_size 11 -#define ic_nns_common_pb_v1_ProposalId_size 11 - -#ifdef __cplusplus -} /* extern "C" */ -#endif - -#endif diff --git a/app/src/protobuf/common_types.proto b/app/src/protobuf/common_types.proto deleted file mode 100644 index c1ca6cd6..00000000 --- a/app/src/protobuf/common_types.proto +++ /dev/null @@ -1,41 +0,0 @@ -syntax = "proto3"; - -package ic_nns_common.pb.v1; - -import "base_types.proto"; - -// A PB container for a CanisterId, which uniquely identifies -// a principal. -message CanisterId { - bytes serialized_id = 1; -} - -// A container for a NeuronId blob, which uniquely identifies -// a Neuron. -message NeuronId { - option (ic_base_types.pb.v1.tui_signed_message) = true; - // bytes serialized_id = 1; - reserved 1; - reserved 'serialized_id'; - uint64 id = 2 [(ic_base_types.pb.v1.tui_signed_display_q2_2021) = true]; -} - -// The id of a specific proposal. -message ProposalId { - uint64 id = 1; -} - -// A descriptor of the authorization of a single method. -// Any of the principals in the list are authorized to execute -// the method. -message MethodAuthzInfo { - string method_name = 1; - repeated bytes principal_ids = 2; -} - -// A descriptor of the authorization of all the update methods in a -// canister that require authorization. -// Methods that should be accessible to anyone should not appear in this list -message CanisterAuthzInfo { - repeated MethodAuthzInfo methods_authz = 1; -} diff --git a/app/src/protobuf/dfinity.pb.c b/app/src/protobuf/dfinity.pb.c deleted file mode 100644 index 6f6689d2..00000000 --- a/app/src/protobuf/dfinity.pb.c +++ /dev/null @@ -1,40 +0,0 @@ -/* Automatically generated nanopb constant definitions */ -/* Generated by nanopb-0.4.6-dev */ - -#include "dfinity.pb.h" - -#if PB_PROTO_HEADER_VERSION != 40 -#error Regenerate this file with the current version of nanopb generator. -#endif - -PB_BIND(TimeStamp, TimeStamp, AUTO) - - -PB_BIND(Memo, Memo, AUTO) - - -PB_BIND(ICPTs, ICPTs, AUTO) - - -PB_BIND(Payment, Payment, AUTO) - - -PB_BIND(Subaccount, Subaccount, AUTO) - - -PB_BIND(AccountIdentifier, AccountIdentifier, AUTO) - - -PB_BIND(BlockHeight, BlockHeight, AUTO) - - -PB_BIND(SendRequest, SendRequest, AUTO) - - -PB_BIND(ManageNeuronPb, ManageNeuronPb, AUTO) - - -PB_BIND(ListNeurons, ListNeurons, AUTO) - - - diff --git a/app/src/protobuf/dfinity.pb.h b/app/src/protobuf/dfinity.pb.h deleted file mode 100644 index 4e356ad1..00000000 --- a/app/src/protobuf/dfinity.pb.h +++ /dev/null @@ -1,224 +0,0 @@ -/* Automatically generated nanopb header */ -/* Generated by nanopb-0.4.6-dev */ - -#ifndef PB_DFINITY_PB_H_INCLUDED -#define PB_DFINITY_PB_H_INCLUDED - -#include -#include "base_types.pb.h" -#include "governance.pb.h" - -#if PB_PROTO_HEADER_VERSION != 40 -#error Regenerate this file with the current version of nanopb generator. -#endif - -/* Struct definitions */ -typedef struct _AccountIdentifier { - pb_byte_t hash[32]; /* always 32 bytes, starts with CRC32 */ -} AccountIdentifier; - -typedef struct _BlockHeight { - uint64_t height; -} BlockHeight; - -typedef struct _ICPTs { - uint64_t e8s; -} ICPTs; - -typedef struct _ListNeurons { - pb_callback_t neuron_ids; - bool caller_neuron_ids; -} ListNeurons; - -typedef struct _ManageNeuronPb { - bool has_manage_neuron; - ic_nns_governance_pb_v1_ManageNeuron manage_neuron; -} ManageNeuronPb; - -typedef struct _Memo { - uint64_t memo; -} Memo; - -typedef struct _Subaccount { - pb_byte_t sub_account[32]; /* always 32 bytes */ -} Subaccount; - -typedef struct _TimeStamp { - uint64_t timestamp_nanos; -} TimeStamp; - -typedef struct _Payment { - bool has_receiver_gets; - ICPTs receiver_gets; -} Payment; - -typedef struct _SendRequest { - bool has_memo; - Memo memo; /* required */ - bool has_payment; - Payment payment; /* required */ - bool has_max_fee; - ICPTs max_fee; /* required */ - bool has_from_subaccount; - Subaccount from_subaccount; /* optional */ - bool has_to; - AccountIdentifier to; /* required */ - bool has_created_at; - BlockHeight created_at; /* optional */ - bool has_created_at_time; - TimeStamp created_at_time; /* optional */ -} SendRequest; - - -#ifdef __cplusplus -extern "C" { -#endif - -/* Initializer values for message structs */ -#define TimeStamp_init_default {0} -#define Memo_init_default {0} -#define ICPTs_init_default {0} -#define Payment_init_default {false, ICPTs_init_default} -#define Subaccount_init_default {{0}} -#define AccountIdentifier_init_default {{0}} -#define BlockHeight_init_default {0} -#define SendRequest_init_default {false, Memo_init_default, false, Payment_init_default, false, ICPTs_init_default, false, Subaccount_init_default, false, AccountIdentifier_init_default, false, BlockHeight_init_default, false, TimeStamp_init_default} -#define ManageNeuronPb_init_default {false, ic_nns_governance_pb_v1_ManageNeuron_init_default} -#define ListNeurons_init_default {{{NULL}, NULL}, 0} -#define TimeStamp_init_zero {0} -#define Memo_init_zero {0} -#define ICPTs_init_zero {0} -#define Payment_init_zero {false, ICPTs_init_zero} -#define Subaccount_init_zero {{0}} -#define AccountIdentifier_init_zero {{0}} -#define BlockHeight_init_zero {0} -#define SendRequest_init_zero {false, Memo_init_zero, false, Payment_init_zero, false, ICPTs_init_zero, false, Subaccount_init_zero, false, AccountIdentifier_init_zero, false, BlockHeight_init_zero, false, TimeStamp_init_zero} -#define ManageNeuronPb_init_zero {false, ic_nns_governance_pb_v1_ManageNeuron_init_zero} -#define ListNeurons_init_zero {{{NULL}, NULL}, 0} - -/* Field tags (for use in manual encoding/decoding) */ -#define AccountIdentifier_hash_tag 1 -#define BlockHeight_height_tag 1 -#define ICPTs_e8s_tag 1 -#define ListNeurons_neuron_ids_tag 1 -#define ListNeurons_caller_neuron_ids_tag 2 -#define ManageNeuronPb_manage_neuron_tag 1 -#define Memo_memo_tag 1 -#define Subaccount_sub_account_tag 1 -#define TimeStamp_timestamp_nanos_tag 1 -#define Payment_receiver_gets_tag 1 -#define SendRequest_memo_tag 1 -#define SendRequest_payment_tag 2 -#define SendRequest_max_fee_tag 3 -#define SendRequest_from_subaccount_tag 4 -#define SendRequest_to_tag 5 -#define SendRequest_created_at_tag 6 -#define SendRequest_created_at_time_tag 7 - -/* Struct field encoding specification for nanopb */ -#define TimeStamp_FIELDLIST(X, a) \ -X(a, STATIC, SINGULAR, UINT64, timestamp_nanos, 1) -#define TimeStamp_CALLBACK NULL -#define TimeStamp_DEFAULT NULL - -#define Memo_FIELDLIST(X, a) \ -X(a, STATIC, SINGULAR, UINT64, memo, 1) -#define Memo_CALLBACK NULL -#define Memo_DEFAULT NULL - -#define ICPTs_FIELDLIST(X, a) \ -X(a, STATIC, SINGULAR, UINT64, e8s, 1) -#define ICPTs_CALLBACK NULL -#define ICPTs_DEFAULT NULL - -#define Payment_FIELDLIST(X, a) \ -X(a, STATIC, OPTIONAL, MESSAGE, receiver_gets, 1) -#define Payment_CALLBACK NULL -#define Payment_DEFAULT NULL -#define Payment_receiver_gets_MSGTYPE ICPTs - -#define Subaccount_FIELDLIST(X, a) \ -X(a, STATIC, SINGULAR, FIXED_LENGTH_BYTES, sub_account, 1) -#define Subaccount_CALLBACK NULL -#define Subaccount_DEFAULT NULL - -#define AccountIdentifier_FIELDLIST(X, a) \ -X(a, STATIC, SINGULAR, FIXED_LENGTH_BYTES, hash, 1) -#define AccountIdentifier_CALLBACK NULL -#define AccountIdentifier_DEFAULT NULL - -#define BlockHeight_FIELDLIST(X, a) \ -X(a, STATIC, SINGULAR, UINT64, height, 1) -#define BlockHeight_CALLBACK NULL -#define BlockHeight_DEFAULT NULL - -#define SendRequest_FIELDLIST(X, a) \ -X(a, STATIC, OPTIONAL, MESSAGE, memo, 1) \ -X(a, STATIC, OPTIONAL, MESSAGE, payment, 2) \ -X(a, STATIC, OPTIONAL, MESSAGE, max_fee, 3) \ -X(a, STATIC, OPTIONAL, MESSAGE, from_subaccount, 4) \ -X(a, STATIC, OPTIONAL, MESSAGE, to, 5) \ -X(a, STATIC, OPTIONAL, MESSAGE, created_at, 6) \ -X(a, STATIC, OPTIONAL, MESSAGE, created_at_time, 7) -#define SendRequest_CALLBACK NULL -#define SendRequest_DEFAULT NULL -#define SendRequest_memo_MSGTYPE Memo -#define SendRequest_payment_MSGTYPE Payment -#define SendRequest_max_fee_MSGTYPE ICPTs -#define SendRequest_from_subaccount_MSGTYPE Subaccount -#define SendRequest_to_MSGTYPE AccountIdentifier -#define SendRequest_created_at_MSGTYPE BlockHeight -#define SendRequest_created_at_time_MSGTYPE TimeStamp - -#define ManageNeuronPb_FIELDLIST(X, a) \ -X(a, STATIC, OPTIONAL, MESSAGE, manage_neuron, 1) -#define ManageNeuronPb_CALLBACK NULL -#define ManageNeuronPb_DEFAULT NULL -#define ManageNeuronPb_manage_neuron_MSGTYPE ic_nns_governance_pb_v1_ManageNeuron - -#define ListNeurons_FIELDLIST(X, a) \ -X(a, CALLBACK, REPEATED, FIXED64, neuron_ids, 1) \ -X(a, STATIC, SINGULAR, BOOL, caller_neuron_ids, 2) -#define ListNeurons_CALLBACK pb_default_field_callback -#define ListNeurons_DEFAULT NULL - -extern const pb_msgdesc_t TimeStamp_msg; -extern const pb_msgdesc_t Memo_msg; -extern const pb_msgdesc_t ICPTs_msg; -extern const pb_msgdesc_t Payment_msg; -extern const pb_msgdesc_t Subaccount_msg; -extern const pb_msgdesc_t AccountIdentifier_msg; -extern const pb_msgdesc_t BlockHeight_msg; -extern const pb_msgdesc_t SendRequest_msg; -extern const pb_msgdesc_t ManageNeuronPb_msg; -extern const pb_msgdesc_t ListNeurons_msg; - -/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ -#define TimeStamp_fields &TimeStamp_msg -#define Memo_fields &Memo_msg -#define ICPTs_fields &ICPTs_msg -#define Payment_fields &Payment_msg -#define Subaccount_fields &Subaccount_msg -#define AccountIdentifier_fields &AccountIdentifier_msg -#define BlockHeight_fields &BlockHeight_msg -#define SendRequest_fields &SendRequest_msg -#define ManageNeuronPb_fields &ManageNeuronPb_msg -#define ListNeurons_fields &ListNeurons_msg - -/* Maximum encoded size of messages (where known) */ -/* ListNeurons_size depends on runtime parameters */ -#define AccountIdentifier_size 34 -#define BlockHeight_size 11 -#define ICPTs_size 11 -#define ManageNeuronPb_size 250 -#define Memo_size 11 -#define Payment_size 13 -#define SendRequest_size 139 -#define Subaccount_size 34 -#define TimeStamp_size 11 - -#ifdef __cplusplus -} /* extern "C" */ -#endif - -#endif diff --git a/app/src/protobuf/dfinity.proto b/app/src/protobuf/dfinity.proto deleted file mode 100644 index 867bb80f..00000000 --- a/app/src/protobuf/dfinity.proto +++ /dev/null @@ -1,50 +0,0 @@ -syntax = "proto3"; -import "nanopb.proto"; - -import "base_types.proto"; -import "governance.proto"; - -message TimeStamp { - uint64 timestamp_nanos = 1; -} - -message Memo { - uint64 memo = 1; -} -message ICPTs { - uint64 e8s = 1; -} - -message Payment { - ICPTs receiver_gets = 1; -} - -message Subaccount { - bytes sub_account = 1 [(nanopb).max_size = 32, (nanopb).fixed_length = true]; // always 32 bytes -} -message AccountIdentifier { - bytes hash = 1 [(nanopb).max_size = 32, (nanopb).fixed_length = true]; // always 32 bytes, starts with CRC32 -} - -message BlockHeight { - uint64 height = 1; -} - -message SendRequest { - Memo memo = 1; // required - Payment payment = 2; // required - ICPTs max_fee = 3; // required - Subaccount from_subaccount = 4; // optional - AccountIdentifier to = 5; // required - BlockHeight created_at = 6; // optional - TimeStamp created_at_time = 7; // optional -} - -message ManageNeuronPb { - ic_nns_governance.pb.v1.ManageNeuron manage_neuron = 1; -} - -message ListNeurons { - repeated fixed64 neuron_ids = 1; - bool caller_neuron_ids = 2; -} diff --git a/app/src/protobuf/governance.options b/app/src/protobuf/governance.options deleted file mode 100644 index 98ad952f..00000000 --- a/app/src/protobuf/governance.options +++ /dev/null @@ -1 +0,0 @@ -ic_nns_governance.pb.v1.ManageNeuron.subaccount max_size:32 \ No newline at end of file diff --git a/app/src/protobuf/governance.pb.c b/app/src/protobuf/governance.pb.c deleted file mode 100644 index c15879cc..00000000 --- a/app/src/protobuf/governance.pb.c +++ /dev/null @@ -1,117 +0,0 @@ -/* Automatically generated nanopb constant definitions */ -/* Generated by nanopb-0.4.6-dev */ - -#include "governance.pb.h" - -#if PB_PROTO_HEADER_VERSION != 40 -#error Regenerate this file with the current version of nanopb generator. -#endif - -PB_BIND(ic_nns_governance_pb_v1_ManageNeuron, ic_nns_governance_pb_v1_ManageNeuron, AUTO) - - -PB_BIND(ic_nns_governance_pb_v1_ManageNeuron_IncreaseDissolveDelay, - ic_nns_governance_pb_v1_ManageNeuron_IncreaseDissolveDelay, AUTO) - - -PB_BIND(ic_nns_governance_pb_v1_ManageNeuron_StartDissolving, ic_nns_governance_pb_v1_ManageNeuron_StartDissolving, - AUTO) - - -PB_BIND(ic_nns_governance_pb_v1_ManageNeuron_StopDissolving, ic_nns_governance_pb_v1_ManageNeuron_StopDissolving, AUTO) - - -PB_BIND(ic_nns_governance_pb_v1_ManageNeuron_AddHotKey, ic_nns_governance_pb_v1_ManageNeuron_AddHotKey, AUTO) - - -PB_BIND(ic_nns_governance_pb_v1_ManageNeuron_RemoveHotKey, ic_nns_governance_pb_v1_ManageNeuron_RemoveHotKey, AUTO) - - -PB_BIND(ic_nns_governance_pb_v1_ManageNeuron_JoinCommunityFund, ic_nns_governance_pb_v1_ManageNeuron_JoinCommunityFund, - AUTO) - - -PB_BIND(ic_nns_governance_pb_v1_ManageNeuron_Configure, ic_nns_governance_pb_v1_ManageNeuron_Configure, AUTO) - - -PB_BIND(ic_nns_governance_pb_v1_ManageNeuron_Spawn, ic_nns_governance_pb_v1_ManageNeuron_Spawn, AUTO) - - -PB_BIND(ic_nns_governance_pb_v1_ManageNeuron_Disburse, ic_nns_governance_pb_v1_ManageNeuron_Disburse, AUTO) - - -PB_BIND(ic_nns_governance_pb_v1_ManageNeuron_Disburse_Amount, ic_nns_governance_pb_v1_ManageNeuron_Disburse_Amount, - AUTO) - - -PB_BIND(ic_nns_governance_pb_v1_ManageNeuron_Follow, ic_nns_governance_pb_v1_ManageNeuron_Follow, AUTO) - - -PB_BIND(ic_nns_governance_pb_v1_ManageNeuron_RegisterVote, ic_nns_governance_pb_v1_ManageNeuron_RegisterVote, AUTO) - - -PB_BIND(ic_nns_governance_pb_v1_ManageNeuron_MergeMaturity, ic_nns_governance_pb_v1_ManageNeuron_MergeMaturity, AUTO) - - -PB_BIND(ic_nns_governance_pb_v1_ManageNeuronResponse, ic_nns_governance_pb_v1_ManageNeuronResponse, AUTO) - - -PB_BIND(ic_nns_governance_pb_v1_ManageNeuronResponse_ConfigureResponse, - ic_nns_governance_pb_v1_ManageNeuronResponse_ConfigureResponse, AUTO) - - -PB_BIND(ic_nns_governance_pb_v1_ManageNeuronResponse_DisburseResponse, - ic_nns_governance_pb_v1_ManageNeuronResponse_DisburseResponse, AUTO) - - -PB_BIND(ic_nns_governance_pb_v1_ManageNeuronResponse_SpawnResponse, - ic_nns_governance_pb_v1_ManageNeuronResponse_SpawnResponse, AUTO) - - -PB_BIND(ic_nns_governance_pb_v1_ManageNeuronResponse_MergeMaturityResponse, - ic_nns_governance_pb_v1_ManageNeuronResponse_MergeMaturityResponse, AUTO) - - -PB_BIND(ic_nns_governance_pb_v1_ManageNeuronResponse_FollowResponse, - ic_nns_governance_pb_v1_ManageNeuronResponse_FollowResponse, AUTO) - - -PB_BIND(ic_nns_governance_pb_v1_ManageNeuronResponse_RegisterVoteResponse, - ic_nns_governance_pb_v1_ManageNeuronResponse_RegisterVoteResponse, AUTO) - - -PB_BIND(ic_nns_governance_pb_v1_GovernanceError, ic_nns_governance_pb_v1_GovernanceError, AUTO) - - -PB_BIND(ic_nns_governance_pb_v1_ListNeurons, ic_nns_governance_pb_v1_ListNeurons, AUTO) - - -PB_BIND(ic_nns_governance_pb_v1_ListNeuronsResponse, ic_nns_governance_pb_v1_ListNeuronsResponse, AUTO) - - -PB_BIND(ic_nns_governance_pb_v1_ListNeuronsResponse_NeuronMapEntry, - ic_nns_governance_pb_v1_ListNeuronsResponse_NeuronMapEntry, AUTO) - - -PB_BIND(ic_nns_governance_pb_v1_BallotInfo, ic_nns_governance_pb_v1_BallotInfo, AUTO) - - -PB_BIND(ic_nns_governance_pb_v1_NeuronInfo, ic_nns_governance_pb_v1_NeuronInfo, AUTO) - - -PB_BIND(ic_nns_governance_pb_v1_Neuron, ic_nns_governance_pb_v1_Neuron, 2) - - -PB_BIND(ic_nns_governance_pb_v1_Neuron_Followees, ic_nns_governance_pb_v1_Neuron_Followees, AUTO) - - -PB_BIND(ic_nns_governance_pb_v1_Neuron_FolloweesEntry, ic_nns_governance_pb_v1_Neuron_FolloweesEntry, AUTO) - - -PB_BIND(ic_nns_governance_pb_v1_NeuronStakeTransfer, ic_nns_governance_pb_v1_NeuronStakeTransfer, AUTO) - - - - - - diff --git a/app/src/protobuf/governance.pb.h b/app/src/protobuf/governance.pb.h deleted file mode 100644 index 862c5c86..00000000 --- a/app/src/protobuf/governance.pb.h +++ /dev/null @@ -1,806 +0,0 @@ -/* Automatically generated nanopb header */ -/* Generated by nanopb-0.4.6-dev */ - -#ifndef PB_IC_NNS_GOVERNANCE_PB_V1_GOVERNANCE_PB_H_INCLUDED -#define PB_IC_NNS_GOVERNANCE_PB_V1_GOVERNANCE_PB_H_INCLUDED - -#include -#include "types.pb.h" -#include "base_types.pb.h" - -#if PB_PROTO_HEADER_VERSION != 40 -#error Regenerate this file with the current version of nanopb generator. -#endif - -/* Enum definitions */ -typedef enum _ic_nns_governance_pb_v1_Vote { - ic_nns_governance_pb_v1_Vote_VOTE_UNSPECIFIED = 0, - ic_nns_governance_pb_v1_Vote_VOTE_YES = 1, - ic_nns_governance_pb_v1_Vote_VOTE_NO = 2 -} ic_nns_governance_pb_v1_Vote; - -typedef enum _ic_nns_governance_pb_v1_Topic { - ic_nns_governance_pb_v1_Topic_TOPIC_UNSPECIFIED = 0, - ic_nns_governance_pb_v1_Topic_TOPIC_NEURON_MANAGEMENT = 1, - ic_nns_governance_pb_v1_Topic_TOPIC_EXCHANGE_RATE = 2, - ic_nns_governance_pb_v1_Topic_TOPIC_NETWORK_ECONOMICS = 3, - ic_nns_governance_pb_v1_Topic_TOPIC_GOVERNANCE = 4, - ic_nns_governance_pb_v1_Topic_TOPIC_NODE_ADMIN = 5, - ic_nns_governance_pb_v1_Topic_TOPIC_PARTICIPANT_MANAGEMENT = 6, - ic_nns_governance_pb_v1_Topic_TOPIC_SUBNET_MANAGEMENT = 7, - ic_nns_governance_pb_v1_Topic_TOPIC_NETWORK_CANISTER_MANAGEMENT = 8, - ic_nns_governance_pb_v1_Topic_TOPIC_KYC = 9, - ic_nns_governance_pb_v1_Topic_TOPIC_NODE_PROVIDER_REWARDS = 10, - ic_nns_governance_pb_v1_Topic_TOPIC_SNS_DECENTRALIZATION_SALE = 11, - ic_nns_governance_pb_v1_Topic_TOPIC_SUBNET_REPLICA_VERSION_MANAGEMENT = 12, - ic_nns_governance_pb_v1_Topic_TOPIC_REPLICA_VERSION_MANAGEMENT = 13, - ic_nns_governance_pb_v1_Topic_TOPIC_SNS_AND_COMMUNITY_FUND = 14, -} ic_nns_governance_pb_v1_Topic; - -typedef enum _ic_nns_governance_pb_v1_GovernanceError_ErrorType { - ic_nns_governance_pb_v1_GovernanceError_ErrorType_ERROR_TYPE_UNSPECIFIED = 0, - ic_nns_governance_pb_v1_GovernanceError_ErrorType_ERROR_TYPE_OK = 1, - ic_nns_governance_pb_v1_GovernanceError_ErrorType_ERROR_TYPE_UNAVAILABLE = 2, - ic_nns_governance_pb_v1_GovernanceError_ErrorType_ERROR_TYPE_NOT_AUTHORIZED = 3, - ic_nns_governance_pb_v1_GovernanceError_ErrorType_ERROR_TYPE_NOT_FOUND = 4, - ic_nns_governance_pb_v1_GovernanceError_ErrorType_ERROR_TYPE_INVALID_COMMAND = 5, - ic_nns_governance_pb_v1_GovernanceError_ErrorType_ERROR_TYPE_REQUIRES_NOT_DISSOLVING = 6, - ic_nns_governance_pb_v1_GovernanceError_ErrorType_ERROR_TYPE_REQUIRES_DISSOLVING = 7, - ic_nns_governance_pb_v1_GovernanceError_ErrorType_ERROR_TYPE_REQUIRES_DISSOLVED = 8, - ic_nns_governance_pb_v1_GovernanceError_ErrorType_ERROR_TYPE_HOT_KEY = 9, - ic_nns_governance_pb_v1_GovernanceError_ErrorType_ERROR_TYPE_RESOURCE_EXHAUSTED = 10, - ic_nns_governance_pb_v1_GovernanceError_ErrorType_ERROR_TYPE_PRECONDITION_FAILED = 11, - ic_nns_governance_pb_v1_GovernanceError_ErrorType_ERROR_TYPE_EXTERNAL = 12, - ic_nns_governance_pb_v1_GovernanceError_ErrorType_ERROR_TYPE_LEDGER_UPDATE_ONGOING = 13, - ic_nns_governance_pb_v1_GovernanceError_ErrorType_ERROR_TYPE_INSUFFICIENT_FUNDS = 14, - ic_nns_governance_pb_v1_GovernanceError_ErrorType_ERROR_TYPE_INVALID_PRINCIPAL = 15, - ic_nns_governance_pb_v1_GovernanceError_ErrorType_ERROR_TYPE_INVALID_PROPOSAL = 16 -} ic_nns_governance_pb_v1_GovernanceError_ErrorType; - -/* Struct definitions */ -typedef struct _ic_nns_governance_pb_v1_ListNeuronsResponse { - pb_callback_t neuron_ids; - pb_callback_t full_neurons; -} ic_nns_governance_pb_v1_ListNeuronsResponse; - -typedef struct _ic_nns_governance_pb_v1_ManageNeuronResponse_ConfigureResponse { - char dummy_field; -} ic_nns_governance_pb_v1_ManageNeuronResponse_ConfigureResponse; - -typedef struct _ic_nns_governance_pb_v1_ManageNeuronResponse_FollowResponse { - char dummy_field; -} ic_nns_governance_pb_v1_ManageNeuronResponse_FollowResponse; - -typedef struct _ic_nns_governance_pb_v1_ManageNeuronResponse_RegisterVoteResponse { - char dummy_field; -} ic_nns_governance_pb_v1_ManageNeuronResponse_RegisterVoteResponse; - -typedef struct _ic_nns_governance_pb_v1_ManageNeuron_JoinCommunityFund { - char dummy_field; -} ic_nns_governance_pb_v1_ManageNeuron_JoinCommunityFund; - -typedef struct _ic_nns_governance_pb_v1_ManageNeuron_StartDissolving { - char dummy_field; -} ic_nns_governance_pb_v1_ManageNeuron_StartDissolving; - -typedef struct _ic_nns_governance_pb_v1_ManageNeuron_StopDissolving { - char dummy_field; -} ic_nns_governance_pb_v1_ManageNeuron_StopDissolving; - -typedef struct _ic_nns_governance_pb_v1_Neuron_Followees { - pb_callback_t followees; -} ic_nns_governance_pb_v1_Neuron_Followees; - -typedef struct _ic_nns_governance_pb_v1_BallotInfo { - bool has_proposal_id; - ic_base_types_pb_v1_ProposalId proposal_id; - ic_nns_governance_pb_v1_Vote vote; -} ic_nns_governance_pb_v1_BallotInfo; - -typedef struct _ic_nns_governance_pb_v1_GovernanceError { - ic_nns_governance_pb_v1_GovernanceError_ErrorType error_type; - pb_callback_t error_message; -} ic_nns_governance_pb_v1_GovernanceError; - -typedef struct _ic_nns_governance_pb_v1_ListNeurons { - pb_callback_t neuron_ids; - bool include_neurons_readable_by_caller; -} ic_nns_governance_pb_v1_ListNeurons; - -typedef struct _ic_nns_governance_pb_v1_ManageNeuronResponse_DisburseResponse { - uint64_t transfer_block_height; -} ic_nns_governance_pb_v1_ManageNeuronResponse_DisburseResponse; - -typedef struct _ic_nns_governance_pb_v1_ManageNeuronResponse_MergeMaturityResponse { - uint64_t merged_maturity_e8s; - uint64_t new_stake_e8s; -} ic_nns_governance_pb_v1_ManageNeuronResponse_MergeMaturityResponse; - -typedef struct _ic_nns_governance_pb_v1_ManageNeuronResponse_SpawnResponse { - bool has_created_neuron_id; - ic_base_types_pb_v1_NeuronId created_neuron_id; -} ic_nns_governance_pb_v1_ManageNeuronResponse_SpawnResponse; - -typedef struct _ic_nns_governance_pb_v1_ManageNeuron_AddHotKey { - /* Was originally `map neuron_infos = 1` - It had to be modified to this form to annotate the key with js_type. */ - bool has_new_hot_key; - ic_base_types_pb_v1_PrincipalId new_hot_key; -} ic_nns_governance_pb_v1_ManageNeuron_AddHotKey; - -typedef struct _ic_nns_governance_pb_v1_ManageNeuron_Disburse_Amount { - uint64_t e8s; -} ic_nns_governance_pb_v1_ManageNeuron_Disburse_Amount; - -typedef struct _ic_nns_governance_pb_v1_ManageNeuron_Follow { - ic_nns_governance_pb_v1_Topic topic; - pb_size_t followees_count; - ic_base_types_pb_v1_NeuronId followees[15]; -} ic_nns_governance_pb_v1_ManageNeuron_Follow; - -/* The response of the ManageNeuron command - - There is a dedicated response type for each `ManageNeuron.command` field */ -typedef struct _ic_nns_governance_pb_v1_ManageNeuron_IncreaseDissolveDelay { - uint32_t additional_dissolve_delay_seconds; -} ic_nns_governance_pb_v1_ManageNeuron_IncreaseDissolveDelay; - -typedef struct _ic_nns_governance_pb_v1_ManageNeuron_MergeMaturity { - uint32_t percentage_to_merge; -} ic_nns_governance_pb_v1_ManageNeuron_MergeMaturity; - -typedef struct _ic_nns_governance_pb_v1_ManageNeuron_RegisterVote { - bool has_proposal; - ic_base_types_pb_v1_ProposalId proposal; - ic_nns_governance_pb_v1_Vote vote; -} ic_nns_governance_pb_v1_ManageNeuron_RegisterVote; - -typedef struct _ic_nns_governance_pb_v1_ManageNeuron_RemoveHotKey { - bool has_hot_key_to_remove; - ic_base_types_pb_v1_PrincipalId hot_key_to_remove; -} ic_nns_governance_pb_v1_ManageNeuron_RemoveHotKey; - -typedef struct _ic_nns_governance_pb_v1_ManageNeuron_Spawn { - bool has_new_controller; - ic_base_types_pb_v1_PrincipalId new_controller; -} ic_nns_governance_pb_v1_ManageNeuron_Spawn; - -typedef struct _ic_nns_governance_pb_v1_NeuronInfo { - uint64_t retrieved_at_timestamp_seconds; - uint64_t age_seconds; - uint64_t dissolve_delay_seconds; - pb_callback_t recent_ballots; - uint64_t voting_power; - uint64_t created_timestamp_seconds; -} ic_nns_governance_pb_v1_NeuronInfo; - -typedef struct _ic_nns_governance_pb_v1_NeuronStakeTransfer { - uint64_t transfer_timestamp; - bool has_from; - ic_base_types_pb_v1_PrincipalId from; - pb_callback_t from_subaccount; - pb_callback_t to_subaccount; - uint64_t neuron_stake_e8s; - uint64_t block_height; - uint64_t memo; -} ic_nns_governance_pb_v1_NeuronStakeTransfer; - -typedef struct _ic_nns_governance_pb_v1_Neuron_FolloweesEntry { - int32_t key; - bool has_value; - ic_nns_governance_pb_v1_Neuron_Followees value; -} ic_nns_governance_pb_v1_Neuron_FolloweesEntry; - -typedef struct _ic_nns_governance_pb_v1_ListNeuronsResponse_NeuronMapEntry { - uint64_t key; - bool has_value; - ic_nns_governance_pb_v1_NeuronInfo value; -} ic_nns_governance_pb_v1_ListNeuronsResponse_NeuronMapEntry; - -typedef struct _ic_nns_governance_pb_v1_ManageNeuronResponse { - pb_size_t which_command; - union { - ic_nns_governance_pb_v1_GovernanceError error; - ic_nns_governance_pb_v1_ManageNeuronResponse_ConfigureResponse configure; - ic_nns_governance_pb_v1_ManageNeuronResponse_DisburseResponse disburse; - ic_nns_governance_pb_v1_ManageNeuronResponse_SpawnResponse spawn; - ic_nns_governance_pb_v1_ManageNeuronResponse_FollowResponse follow; - ic_nns_governance_pb_v1_ManageNeuronResponse_RegisterVoteResponse register_vote; - ic_nns_governance_pb_v1_ManageNeuronResponse_MergeMaturityResponse merge_maturity; - } command; -} ic_nns_governance_pb_v1_ManageNeuronResponse; - -typedef struct _ic_nns_governance_pb_v1_ManageNeuron_Configure { - pb_size_t which_operation; - union { - ic_nns_governance_pb_v1_ManageNeuron_IncreaseDissolveDelay increase_dissolve_delay; - ic_nns_governance_pb_v1_ManageNeuron_StartDissolving start_dissolving; - ic_nns_governance_pb_v1_ManageNeuron_StopDissolving stop_dissolving; - ic_nns_governance_pb_v1_ManageNeuron_AddHotKey add_hot_key; - ic_nns_governance_pb_v1_ManageNeuron_RemoveHotKey remove_hot_key; - ic_nns_governance_pb_v1_ManageNeuron_JoinCommunityFund join_community_fund; - } operation; -} ic_nns_governance_pb_v1_ManageNeuron_Configure; - -typedef struct _ic_nns_governance_pb_v1_ManageNeuron_Disburse { - bool has_amount; - ic_nns_governance_pb_v1_ManageNeuron_Disburse_Amount amount; - bool has_to_account; - ic_ledger_pb_v1_AccountIdentifier to_account; -} ic_nns_governance_pb_v1_ManageNeuron_Disburse; - -typedef struct _ic_nns_governance_pb_v1_Neuron { - bool has_id; - ic_base_types_pb_v1_NeuronId id; - pb_callback_t account; - bool has_controller; - ic_base_types_pb_v1_PrincipalId controller; - pb_callback_t hot_keys; - uint64_t cached_neuron_stake_e8s; - uint64_t neuron_fees_e8s; - uint64_t created_timestamp_seconds; - uint64_t aging_since_timestamp_seconds; - pb_size_t which_dissolve_state; - union { - uint64_t when_dissolved_timestamp_seconds; - uint64_t dissolve_delay_seconds; - } dissolve_state; - pb_callback_t followees; - pb_callback_t recent_ballots; - bool kyc_verified; - bool has_transfer; - ic_nns_governance_pb_v1_NeuronStakeTransfer transfer; - uint64_t maturity_e8s_equivalent; - bool not_for_profit; -} ic_nns_governance_pb_v1_Neuron; - -typedef PB_BYTES_ARRAY_T(32) ic_nns_governance_pb_v1_ManageNeuron_subaccount_t; -/* All operations that modify the state of an existing neuron are - represented by instances of `ManageNeuron`. - - All commands are available to the `controller` of the neuron. In - addition, commands related to voting, i.g., [manage_neuron::Follow] - and [manage_neuron::RegisterVote], are also available to the - registered hot keys of the neuron. */ -typedef struct _ic_nns_governance_pb_v1_ManageNeuron { - /* This is the legacy way to specify neuron IDs that is now discouraged. */ - bool has_id; - ic_base_types_pb_v1_NeuronId id; - pb_size_t which_command; - union { - ic_nns_governance_pb_v1_ManageNeuron_Configure configure; - ic_nns_governance_pb_v1_ManageNeuron_Disburse disburse; - ic_nns_governance_pb_v1_ManageNeuron_Spawn spawn; - ic_nns_governance_pb_v1_ManageNeuron_Follow follow; - ic_nns_governance_pb_v1_ManageNeuron_RegisterVote register_vote; - ic_nns_governance_pb_v1_ManageNeuron_MergeMaturity merge_maturity; - } command; - pb_size_t which_neuron_id_or_subaccount; - union { - ic_nns_governance_pb_v1_ManageNeuron_subaccount_t subaccount; - ic_base_types_pb_v1_NeuronId neuron_id; - } neuron_id_or_subaccount; -} ic_nns_governance_pb_v1_ManageNeuron; - - -/* Helper constants for enums */ -#define _ic_nns_governance_pb_v1_Vote_MIN ic_nns_governance_pb_v1_Vote_VOTE_UNSPECIFIED -#define _ic_nns_governance_pb_v1_Vote_MAX ic_nns_governance_pb_v1_Vote_VOTE_NO -#define _ic_nns_governance_pb_v1_Vote_ARRAYSIZE ((ic_nns_governance_pb_v1_Vote)(ic_nns_governance_pb_v1_Vote_VOTE_NO+1)) - -#define _ic_nns_governance_pb_v1_Topic_MIN ic_nns_governance_pb_v1_Topic_TOPIC_UNSPECIFIED -#define _ic_nns_governance_pb_v1_Topic_MAX ic_nns_governance_pb_v1_Topic_TOPIC_NODE_PROVIDER_REWARDS -#define _ic_nns_governance_pb_v1_Topic_ARRAYSIZE ((ic_nns_governance_pb_v1_Topic)(ic_nns_governance_pb_v1_Topic_TOPIC_NODE_PROVIDER_REWARDS+1)) - -#define _ic_nns_governance_pb_v1_GovernanceError_ErrorType_MIN ic_nns_governance_pb_v1_GovernanceError_ErrorType_ERROR_TYPE_UNSPECIFIED -#define _ic_nns_governance_pb_v1_GovernanceError_ErrorType_MAX ic_nns_governance_pb_v1_GovernanceError_ErrorType_ERROR_TYPE_INVALID_PROPOSAL -#define _ic_nns_governance_pb_v1_GovernanceError_ErrorType_ARRAYSIZE ((ic_nns_governance_pb_v1_GovernanceError_ErrorType)(ic_nns_governance_pb_v1_GovernanceError_ErrorType_ERROR_TYPE_INVALID_PROPOSAL+1)) - - -#ifdef __cplusplus -extern "C" { -#endif - -/* Initializer values for message structs */ -#define ic_nns_governance_pb_v1_ManageNeuron_init_default {false, ic_base_types_pb_v1_NeuronId_init_default, 0, {ic_nns_governance_pb_v1_ManageNeuron_Configure_init_default}, 0, {{0, {0}}}} -#define ic_nns_governance_pb_v1_ManageNeuron_IncreaseDissolveDelay_init_default {0} -#define ic_nns_governance_pb_v1_ManageNeuron_StartDissolving_init_default {0} -#define ic_nns_governance_pb_v1_ManageNeuron_StopDissolving_init_default {0} -#define ic_nns_governance_pb_v1_ManageNeuron_AddHotKey_init_default {false, ic_base_types_pb_v1_PrincipalId_init_default} -#define ic_nns_governance_pb_v1_ManageNeuron_RemoveHotKey_init_default {false, ic_base_types_pb_v1_PrincipalId_init_default} -#define ic_nns_governance_pb_v1_ManageNeuron_JoinCommunityFund_init_default {0} -#define ic_nns_governance_pb_v1_ManageNeuron_Configure_init_default {0, {ic_nns_governance_pb_v1_ManageNeuron_IncreaseDissolveDelay_init_default}} -#define ic_nns_governance_pb_v1_ManageNeuron_Spawn_init_default {false, ic_base_types_pb_v1_PrincipalId_init_default} -#define ic_nns_governance_pb_v1_ManageNeuron_Disburse_init_default {false, ic_nns_governance_pb_v1_ManageNeuron_Disburse_Amount_init_default, false, ic_ledger_pb_v1_AccountIdentifier_init_default} -#define ic_nns_governance_pb_v1_ManageNeuron_Disburse_Amount_init_default {0} -#define ic_nns_governance_pb_v1_ManageNeuron_Follow_init_default {_ic_nns_governance_pb_v1_Topic_MIN, 0, {ic_base_types_pb_v1_NeuronId_init_default, ic_base_types_pb_v1_NeuronId_init_default, ic_base_types_pb_v1_NeuronId_init_default, ic_base_types_pb_v1_NeuronId_init_default, ic_base_types_pb_v1_NeuronId_init_default, ic_base_types_pb_v1_NeuronId_init_default, ic_base_types_pb_v1_NeuronId_init_default, ic_base_types_pb_v1_NeuronId_init_default, ic_base_types_pb_v1_NeuronId_init_default, ic_base_types_pb_v1_NeuronId_init_default, ic_base_types_pb_v1_NeuronId_init_default, ic_base_types_pb_v1_NeuronId_init_default, ic_base_types_pb_v1_NeuronId_init_default, ic_base_types_pb_v1_NeuronId_init_default, ic_base_types_pb_v1_NeuronId_init_default}} -#define ic_nns_governance_pb_v1_ManageNeuron_RegisterVote_init_default {false, ic_base_types_pb_v1_ProposalId_init_default, _ic_nns_governance_pb_v1_Vote_MIN} -#define ic_nns_governance_pb_v1_ManageNeuron_MergeMaturity_init_default {0} -#define ic_nns_governance_pb_v1_ManageNeuronResponse_init_default {0, {ic_nns_governance_pb_v1_GovernanceError_init_default}} -#define ic_nns_governance_pb_v1_ManageNeuronResponse_ConfigureResponse_init_default {0} -#define ic_nns_governance_pb_v1_ManageNeuronResponse_DisburseResponse_init_default {0} -#define ic_nns_governance_pb_v1_ManageNeuronResponse_SpawnResponse_init_default {false, ic_base_types_pb_v1_NeuronId_init_default} -#define ic_nns_governance_pb_v1_ManageNeuronResponse_MergeMaturityResponse_init_default {0, 0} -#define ic_nns_governance_pb_v1_ManageNeuronResponse_FollowResponse_init_default {0} -#define ic_nns_governance_pb_v1_ManageNeuronResponse_RegisterVoteResponse_init_default {0} -#define ic_nns_governance_pb_v1_GovernanceError_init_default {_ic_nns_governance_pb_v1_GovernanceError_ErrorType_MIN, {{NULL}, NULL}} -#define ic_nns_governance_pb_v1_ListNeurons_init_default {{{NULL}, NULL}, 0} -#define ic_nns_governance_pb_v1_ListNeuronsResponse_init_default {{{NULL}, NULL}, {{NULL}, NULL}} -#define ic_nns_governance_pb_v1_ListNeuronsResponse_NeuronMapEntry_init_default {0, false, ic_nns_governance_pb_v1_NeuronInfo_init_default} -#define ic_nns_governance_pb_v1_BallotInfo_init_default {false, ic_base_types_pb_v1_ProposalId_init_default, _ic_nns_governance_pb_v1_Vote_MIN} -#define ic_nns_governance_pb_v1_NeuronInfo_init_default {0, 0, 0, {{NULL}, NULL}, 0, 0} -#define ic_nns_governance_pb_v1_Neuron_init_default {false, ic_base_types_pb_v1_NeuronId_init_default, {{NULL}, NULL}, false, ic_base_types_pb_v1_PrincipalId_init_default, {{NULL}, NULL}, 0, 0, 0, 0, 0, {0}, {{NULL}, NULL}, {{NULL}, NULL}, 0, false, ic_nns_governance_pb_v1_NeuronStakeTransfer_init_default, 0, 0} -#define ic_nns_governance_pb_v1_Neuron_Followees_init_default {{{NULL}, NULL}} -#define ic_nns_governance_pb_v1_Neuron_FolloweesEntry_init_default {0, false, ic_nns_governance_pb_v1_Neuron_Followees_init_default} -#define ic_nns_governance_pb_v1_NeuronStakeTransfer_init_default {0, false, ic_base_types_pb_v1_PrincipalId_init_default, {{NULL}, NULL}, {{NULL}, NULL}, 0, 0, 0} -#define ic_nns_governance_pb_v1_ManageNeuron_init_zero {false, ic_base_types_pb_v1_NeuronId_init_zero, 0, {ic_nns_governance_pb_v1_ManageNeuron_Configure_init_zero}, 0, {{0, {0}}}} -#define ic_nns_governance_pb_v1_ManageNeuron_IncreaseDissolveDelay_init_zero {0} -#define ic_nns_governance_pb_v1_ManageNeuron_StartDissolving_init_zero {0} -#define ic_nns_governance_pb_v1_ManageNeuron_StopDissolving_init_zero {0} -#define ic_nns_governance_pb_v1_ManageNeuron_AddHotKey_init_zero {false, ic_base_types_pb_v1_PrincipalId_init_zero} -#define ic_nns_governance_pb_v1_ManageNeuron_RemoveHotKey_init_zero {false, ic_base_types_pb_v1_PrincipalId_init_zero} -#define ic_nns_governance_pb_v1_ManageNeuron_JoinCommunityFund_init_zero {0} -#define ic_nns_governance_pb_v1_ManageNeuron_Configure_init_zero {0, {ic_nns_governance_pb_v1_ManageNeuron_IncreaseDissolveDelay_init_zero}} -#define ic_nns_governance_pb_v1_ManageNeuron_Spawn_init_zero {false, ic_base_types_pb_v1_PrincipalId_init_zero} -#define ic_nns_governance_pb_v1_ManageNeuron_Disburse_init_zero {false, ic_nns_governance_pb_v1_ManageNeuron_Disburse_Amount_init_zero, false, ic_ledger_pb_v1_AccountIdentifier_init_zero} -#define ic_nns_governance_pb_v1_ManageNeuron_Disburse_Amount_init_zero {0} -#define ic_nns_governance_pb_v1_ManageNeuron_Follow_init_zero {_ic_nns_governance_pb_v1_Topic_MIN, 0, {ic_base_types_pb_v1_NeuronId_init_zero, ic_base_types_pb_v1_NeuronId_init_zero, ic_base_types_pb_v1_NeuronId_init_zero, ic_base_types_pb_v1_NeuronId_init_zero, ic_base_types_pb_v1_NeuronId_init_zero, ic_base_types_pb_v1_NeuronId_init_zero, ic_base_types_pb_v1_NeuronId_init_zero, ic_base_types_pb_v1_NeuronId_init_zero, ic_base_types_pb_v1_NeuronId_init_zero, ic_base_types_pb_v1_NeuronId_init_zero, ic_base_types_pb_v1_NeuronId_init_zero, ic_base_types_pb_v1_NeuronId_init_zero, ic_base_types_pb_v1_NeuronId_init_zero, ic_base_types_pb_v1_NeuronId_init_zero, ic_base_types_pb_v1_NeuronId_init_zero}} -#define ic_nns_governance_pb_v1_ManageNeuron_RegisterVote_init_zero {false, ic_base_types_pb_v1_ProposalId_init_zero, _ic_nns_governance_pb_v1_Vote_MIN} -#define ic_nns_governance_pb_v1_ManageNeuron_MergeMaturity_init_zero {0} -#define ic_nns_governance_pb_v1_ManageNeuronResponse_init_zero {0, {ic_nns_governance_pb_v1_GovernanceError_init_zero}} -#define ic_nns_governance_pb_v1_ManageNeuronResponse_ConfigureResponse_init_zero {0} -#define ic_nns_governance_pb_v1_ManageNeuronResponse_DisburseResponse_init_zero {0} -#define ic_nns_governance_pb_v1_ManageNeuronResponse_SpawnResponse_init_zero {false, ic_base_types_pb_v1_NeuronId_init_zero} -#define ic_nns_governance_pb_v1_ManageNeuronResponse_MergeMaturityResponse_init_zero {0, 0} -#define ic_nns_governance_pb_v1_ManageNeuronResponse_FollowResponse_init_zero {0} -#define ic_nns_governance_pb_v1_ManageNeuronResponse_RegisterVoteResponse_init_zero {0} -#define ic_nns_governance_pb_v1_GovernanceError_init_zero {_ic_nns_governance_pb_v1_GovernanceError_ErrorType_MIN, {{NULL}, NULL}} -#define ic_nns_governance_pb_v1_ListNeurons_init_zero {{{NULL}, NULL}, 0} -#define ic_nns_governance_pb_v1_ListNeuronsResponse_init_zero {{{NULL}, NULL}, {{NULL}, NULL}} -#define ic_nns_governance_pb_v1_ListNeuronsResponse_NeuronMapEntry_init_zero {0, false, ic_nns_governance_pb_v1_NeuronInfo_init_zero} -#define ic_nns_governance_pb_v1_BallotInfo_init_zero {false, ic_base_types_pb_v1_ProposalId_init_zero, _ic_nns_governance_pb_v1_Vote_MIN} -#define ic_nns_governance_pb_v1_NeuronInfo_init_zero {0, 0, 0, {{NULL}, NULL}, 0, 0} -#define ic_nns_governance_pb_v1_Neuron_init_zero {false, ic_base_types_pb_v1_NeuronId_init_zero, {{NULL}, NULL}, false, ic_base_types_pb_v1_PrincipalId_init_zero, {{NULL}, NULL}, 0, 0, 0, 0, 0, {0}, {{NULL}, NULL}, {{NULL}, NULL}, 0, false, ic_nns_governance_pb_v1_NeuronStakeTransfer_init_zero, 0, 0} -#define ic_nns_governance_pb_v1_Neuron_Followees_init_zero {{{NULL}, NULL}} -#define ic_nns_governance_pb_v1_Neuron_FolloweesEntry_init_zero {0, false, ic_nns_governance_pb_v1_Neuron_Followees_init_zero} -#define ic_nns_governance_pb_v1_NeuronStakeTransfer_init_zero {0, false, ic_base_types_pb_v1_PrincipalId_init_zero, {{NULL}, NULL}, {{NULL}, NULL}, 0, 0, 0} - -/* Field tags (for use in manual encoding/decoding) */ -#define ic_nns_governance_pb_v1_ListNeuronsResponse_neuron_ids_tag 1 -#define ic_nns_governance_pb_v1_ListNeuronsResponse_full_neurons_tag 2 -#define ic_nns_governance_pb_v1_Neuron_Followees_followees_tag 1 -#define ic_nns_governance_pb_v1_BallotInfo_proposal_id_tag 1 -#define ic_nns_governance_pb_v1_BallotInfo_vote_tag 2 -#define ic_nns_governance_pb_v1_GovernanceError_error_type_tag 1 -#define ic_nns_governance_pb_v1_GovernanceError_error_message_tag 2 -#define ic_nns_governance_pb_v1_ListNeurons_neuron_ids_tag 1 -#define ic_nns_governance_pb_v1_ListNeurons_include_neurons_readable_by_caller_tag 2 -#define ic_nns_governance_pb_v1_ManageNeuronResponse_DisburseResponse_transfer_block_height_tag 1 -#define ic_nns_governance_pb_v1_ManageNeuronResponse_MergeMaturityResponse_merged_maturity_e8s_tag 1 -#define ic_nns_governance_pb_v1_ManageNeuronResponse_MergeMaturityResponse_new_stake_e8s_tag 2 -#define ic_nns_governance_pb_v1_ManageNeuronResponse_SpawnResponse_created_neuron_id_tag 1 -#define ic_nns_governance_pb_v1_ManageNeuron_AddHotKey_new_hot_key_tag 1 -#define ic_nns_governance_pb_v1_ManageNeuron_Disburse_Amount_e8s_tag 1 -#define ic_nns_governance_pb_v1_ManageNeuron_Follow_topic_tag 1 -#define ic_nns_governance_pb_v1_ManageNeuron_Follow_followees_tag 2 -#define ic_nns_governance_pb_v1_ManageNeuron_IncreaseDissolveDelay_additional_dissolve_delay_seconds_tag 1 -#define ic_nns_governance_pb_v1_ManageNeuron_MergeMaturity_percentage_to_merge_tag 1 -#define ic_nns_governance_pb_v1_ManageNeuron_RegisterVote_proposal_tag 1 -#define ic_nns_governance_pb_v1_ManageNeuron_RegisterVote_vote_tag 2 -#define ic_nns_governance_pb_v1_ManageNeuron_RemoveHotKey_hot_key_to_remove_tag 1 -#define ic_nns_governance_pb_v1_ManageNeuron_Spawn_new_controller_tag 1 -#define ic_nns_governance_pb_v1_NeuronInfo_retrieved_at_timestamp_seconds_tag 1 -#define ic_nns_governance_pb_v1_NeuronInfo_age_seconds_tag 3 -#define ic_nns_governance_pb_v1_NeuronInfo_dissolve_delay_seconds_tag 4 -#define ic_nns_governance_pb_v1_NeuronInfo_recent_ballots_tag 5 -#define ic_nns_governance_pb_v1_NeuronInfo_voting_power_tag 6 -#define ic_nns_governance_pb_v1_NeuronInfo_created_timestamp_seconds_tag 7 -#define ic_nns_governance_pb_v1_NeuronStakeTransfer_transfer_timestamp_tag 1 -#define ic_nns_governance_pb_v1_NeuronStakeTransfer_from_tag 2 -#define ic_nns_governance_pb_v1_NeuronStakeTransfer_from_subaccount_tag 3 -#define ic_nns_governance_pb_v1_NeuronStakeTransfer_to_subaccount_tag 4 -#define ic_nns_governance_pb_v1_NeuronStakeTransfer_neuron_stake_e8s_tag 5 -#define ic_nns_governance_pb_v1_NeuronStakeTransfer_block_height_tag 6 -#define ic_nns_governance_pb_v1_NeuronStakeTransfer_memo_tag 7 -#define ic_nns_governance_pb_v1_Neuron_FolloweesEntry_key_tag 1 -#define ic_nns_governance_pb_v1_Neuron_FolloweesEntry_value_tag 2 -#define ic_nns_governance_pb_v1_ListNeuronsResponse_NeuronMapEntry_key_tag 1 -#define ic_nns_governance_pb_v1_ListNeuronsResponse_NeuronMapEntry_value_tag 2 -#define ic_nns_governance_pb_v1_ManageNeuronResponse_error_tag 1 -#define ic_nns_governance_pb_v1_ManageNeuronResponse_configure_tag 2 -#define ic_nns_governance_pb_v1_ManageNeuronResponse_disburse_tag 3 -#define ic_nns_governance_pb_v1_ManageNeuronResponse_spawn_tag 4 -#define ic_nns_governance_pb_v1_ManageNeuronResponse_follow_tag 5 -#define ic_nns_governance_pb_v1_ManageNeuronResponse_register_vote_tag 7 -#define ic_nns_governance_pb_v1_ManageNeuronResponse_merge_maturity_tag 11 -#define ic_nns_governance_pb_v1_ManageNeuron_Configure_increase_dissolve_delay_tag 1 -#define ic_nns_governance_pb_v1_ManageNeuron_Configure_start_dissolving_tag 2 -#define ic_nns_governance_pb_v1_ManageNeuron_Configure_stop_dissolving_tag 3 -#define ic_nns_governance_pb_v1_ManageNeuron_Configure_add_hot_key_tag 4 -#define ic_nns_governance_pb_v1_ManageNeuron_Configure_remove_hot_key_tag 5 -#define ic_nns_governance_pb_v1_ManageNeuron_Configure_join_community_fund_tag 7 -#define ic_nns_governance_pb_v1_ManageNeuron_Disburse_amount_tag 1 -#define ic_nns_governance_pb_v1_ManageNeuron_Disburse_to_account_tag 2 -#define ic_nns_governance_pb_v1_Neuron_id_tag 1 -#define ic_nns_governance_pb_v1_Neuron_account_tag 2 -#define ic_nns_governance_pb_v1_Neuron_controller_tag 3 -#define ic_nns_governance_pb_v1_Neuron_hot_keys_tag 4 -#define ic_nns_governance_pb_v1_Neuron_cached_neuron_stake_e8s_tag 5 -#define ic_nns_governance_pb_v1_Neuron_neuron_fees_e8s_tag 6 -#define ic_nns_governance_pb_v1_Neuron_created_timestamp_seconds_tag 7 -#define ic_nns_governance_pb_v1_Neuron_aging_since_timestamp_seconds_tag 8 -#define ic_nns_governance_pb_v1_Neuron_when_dissolved_timestamp_seconds_tag 9 -#define ic_nns_governance_pb_v1_Neuron_dissolve_delay_seconds_tag 10 -#define ic_nns_governance_pb_v1_Neuron_followees_tag 11 -#define ic_nns_governance_pb_v1_Neuron_recent_ballots_tag 12 -#define ic_nns_governance_pb_v1_Neuron_kyc_verified_tag 13 -#define ic_nns_governance_pb_v1_Neuron_transfer_tag 14 -#define ic_nns_governance_pb_v1_Neuron_maturity_e8s_equivalent_tag 15 -#define ic_nns_governance_pb_v1_Neuron_not_for_profit_tag 16 -#define ic_nns_governance_pb_v1_ManageNeuron_id_tag 1 -#define ic_nns_governance_pb_v1_ManageNeuron_configure_tag 2 -#define ic_nns_governance_pb_v1_ManageNeuron_disburse_tag 3 -#define ic_nns_governance_pb_v1_ManageNeuron_spawn_tag 4 -#define ic_nns_governance_pb_v1_ManageNeuron_follow_tag 5 -#define ic_nns_governance_pb_v1_ManageNeuron_register_vote_tag 7 -#define ic_nns_governance_pb_v1_ManageNeuron_merge_maturity_tag 13 -#define ic_nns_governance_pb_v1_ManageNeuron_subaccount_tag 11 -#define ic_nns_governance_pb_v1_ManageNeuron_neuron_id_tag 12 - -/* Struct field encoding specification for nanopb */ -#define ic_nns_governance_pb_v1_ManageNeuron_FIELDLIST(X, a) \ -X(a, STATIC, OPTIONAL, MESSAGE, id, 1) \ -X(a, STATIC, ONEOF, MESSAGE, (command,configure,command.configure), 2) \ -X(a, STATIC, ONEOF, MESSAGE, (command,disburse,command.disburse), 3) \ -X(a, STATIC, ONEOF, MESSAGE, (command,spawn,command.spawn), 4) \ -X(a, STATIC, ONEOF, MESSAGE, (command,follow,command.follow), 5) \ -X(a, STATIC, ONEOF, MESSAGE, (command,register_vote,command.register_vote), 7) \ -X(a, STATIC, ONEOF, BYTES, (neuron_id_or_subaccount,subaccount,neuron_id_or_subaccount.subaccount), 11) \ -X(a, STATIC, ONEOF, MESSAGE, (neuron_id_or_subaccount,neuron_id,neuron_id_or_subaccount.neuron_id), 12) \ -X(a, STATIC, ONEOF, MESSAGE, (command,merge_maturity,command.merge_maturity), 13) -#define ic_nns_governance_pb_v1_ManageNeuron_CALLBACK NULL -#define ic_nns_governance_pb_v1_ManageNeuron_DEFAULT NULL -#define ic_nns_governance_pb_v1_ManageNeuron_id_MSGTYPE ic_base_types_pb_v1_NeuronId -#define ic_nns_governance_pb_v1_ManageNeuron_command_configure_MSGTYPE ic_nns_governance_pb_v1_ManageNeuron_Configure -#define ic_nns_governance_pb_v1_ManageNeuron_command_disburse_MSGTYPE ic_nns_governance_pb_v1_ManageNeuron_Disburse -#define ic_nns_governance_pb_v1_ManageNeuron_command_spawn_MSGTYPE ic_nns_governance_pb_v1_ManageNeuron_Spawn -#define ic_nns_governance_pb_v1_ManageNeuron_command_follow_MSGTYPE ic_nns_governance_pb_v1_ManageNeuron_Follow -#define ic_nns_governance_pb_v1_ManageNeuron_command_register_vote_MSGTYPE ic_nns_governance_pb_v1_ManageNeuron_RegisterVote -#define ic_nns_governance_pb_v1_ManageNeuron_neuron_id_or_subaccount_neuron_id_MSGTYPE ic_base_types_pb_v1_NeuronId -#define ic_nns_governance_pb_v1_ManageNeuron_command_merge_maturity_MSGTYPE ic_nns_governance_pb_v1_ManageNeuron_MergeMaturity - -#define ic_nns_governance_pb_v1_ManageNeuron_IncreaseDissolveDelay_FIELDLIST(X, a) \ -X(a, STATIC, SINGULAR, UINT32, additional_dissolve_delay_seconds, 1) -#define ic_nns_governance_pb_v1_ManageNeuron_IncreaseDissolveDelay_CALLBACK NULL -#define ic_nns_governance_pb_v1_ManageNeuron_IncreaseDissolveDelay_DEFAULT NULL - -#define ic_nns_governance_pb_v1_ManageNeuron_StartDissolving_FIELDLIST(X, a) \ - -#define ic_nns_governance_pb_v1_ManageNeuron_StartDissolving_CALLBACK NULL -#define ic_nns_governance_pb_v1_ManageNeuron_StartDissolving_DEFAULT NULL - -#define ic_nns_governance_pb_v1_ManageNeuron_StopDissolving_FIELDLIST(X, a) \ - -#define ic_nns_governance_pb_v1_ManageNeuron_StopDissolving_CALLBACK NULL -#define ic_nns_governance_pb_v1_ManageNeuron_StopDissolving_DEFAULT NULL - -#define ic_nns_governance_pb_v1_ManageNeuron_AddHotKey_FIELDLIST(X, a) \ -X(a, STATIC, OPTIONAL, MESSAGE, new_hot_key, 1) -#define ic_nns_governance_pb_v1_ManageNeuron_AddHotKey_CALLBACK NULL -#define ic_nns_governance_pb_v1_ManageNeuron_AddHotKey_DEFAULT NULL -#define ic_nns_governance_pb_v1_ManageNeuron_AddHotKey_new_hot_key_MSGTYPE ic_base_types_pb_v1_PrincipalId - -#define ic_nns_governance_pb_v1_ManageNeuron_RemoveHotKey_FIELDLIST(X, a) \ -X(a, STATIC, OPTIONAL, MESSAGE, hot_key_to_remove, 1) -#define ic_nns_governance_pb_v1_ManageNeuron_RemoveHotKey_CALLBACK NULL -#define ic_nns_governance_pb_v1_ManageNeuron_RemoveHotKey_DEFAULT NULL -#define ic_nns_governance_pb_v1_ManageNeuron_RemoveHotKey_hot_key_to_remove_MSGTYPE ic_base_types_pb_v1_PrincipalId - -#define ic_nns_governance_pb_v1_ManageNeuron_JoinCommunityFund_FIELDLIST(X, a) \ - -#define ic_nns_governance_pb_v1_ManageNeuron_JoinCommunityFund_CALLBACK NULL -#define ic_nns_governance_pb_v1_ManageNeuron_JoinCommunityFund_DEFAULT NULL - -#define ic_nns_governance_pb_v1_ManageNeuron_Configure_FIELDLIST(X, a) \ -X(a, STATIC, ONEOF, MESSAGE, (operation,increase_dissolve_delay,operation.increase_dissolve_delay), 1) \ -X(a, STATIC, ONEOF, MESSAGE, (operation,start_dissolving,operation.start_dissolving), 2) \ -X(a, STATIC, ONEOF, MESSAGE, (operation,stop_dissolving,operation.stop_dissolving), 3) \ -X(a, STATIC, ONEOF, MESSAGE, (operation,add_hot_key,operation.add_hot_key), 4) \ -X(a, STATIC, ONEOF, MESSAGE, (operation,remove_hot_key,operation.remove_hot_key), 5) \ -X(a, STATIC, ONEOF, MESSAGE, (operation,join_community_fund,operation.join_community_fund), 7) -#define ic_nns_governance_pb_v1_ManageNeuron_Configure_CALLBACK NULL -#define ic_nns_governance_pb_v1_ManageNeuron_Configure_DEFAULT NULL -#define ic_nns_governance_pb_v1_ManageNeuron_Configure_operation_increase_dissolve_delay_MSGTYPE ic_nns_governance_pb_v1_ManageNeuron_IncreaseDissolveDelay -#define ic_nns_governance_pb_v1_ManageNeuron_Configure_operation_start_dissolving_MSGTYPE ic_nns_governance_pb_v1_ManageNeuron_StartDissolving -#define ic_nns_governance_pb_v1_ManageNeuron_Configure_operation_stop_dissolving_MSGTYPE ic_nns_governance_pb_v1_ManageNeuron_StopDissolving -#define ic_nns_governance_pb_v1_ManageNeuron_Configure_operation_add_hot_key_MSGTYPE ic_nns_governance_pb_v1_ManageNeuron_AddHotKey -#define ic_nns_governance_pb_v1_ManageNeuron_Configure_operation_remove_hot_key_MSGTYPE ic_nns_governance_pb_v1_ManageNeuron_RemoveHotKey -#define ic_nns_governance_pb_v1_ManageNeuron_Configure_operation_join_community_fund_MSGTYPE ic_nns_governance_pb_v1_ManageNeuron_JoinCommunityFund - -#define ic_nns_governance_pb_v1_ManageNeuron_Spawn_FIELDLIST(X, a) \ -X(a, STATIC, OPTIONAL, MESSAGE, new_controller, 1) -#define ic_nns_governance_pb_v1_ManageNeuron_Spawn_CALLBACK NULL -#define ic_nns_governance_pb_v1_ManageNeuron_Spawn_DEFAULT NULL -#define ic_nns_governance_pb_v1_ManageNeuron_Spawn_new_controller_MSGTYPE ic_base_types_pb_v1_PrincipalId - -#define ic_nns_governance_pb_v1_ManageNeuron_Disburse_FIELDLIST(X, a) \ -X(a, STATIC, OPTIONAL, MESSAGE, amount, 1) \ -X(a, STATIC, OPTIONAL, MESSAGE, to_account, 2) -#define ic_nns_governance_pb_v1_ManageNeuron_Disburse_CALLBACK NULL -#define ic_nns_governance_pb_v1_ManageNeuron_Disburse_DEFAULT NULL -#define ic_nns_governance_pb_v1_ManageNeuron_Disburse_amount_MSGTYPE ic_nns_governance_pb_v1_ManageNeuron_Disburse_Amount -#define ic_nns_governance_pb_v1_ManageNeuron_Disburse_to_account_MSGTYPE ic_ledger_pb_v1_AccountIdentifier - -#define ic_nns_governance_pb_v1_ManageNeuron_Disburse_Amount_FIELDLIST(X, a) \ -X(a, STATIC, SINGULAR, UINT64, e8s, 1) -#define ic_nns_governance_pb_v1_ManageNeuron_Disburse_Amount_CALLBACK NULL -#define ic_nns_governance_pb_v1_ManageNeuron_Disburse_Amount_DEFAULT NULL - -#define ic_nns_governance_pb_v1_ManageNeuron_Follow_FIELDLIST(X, a) \ -X(a, STATIC, SINGULAR, UENUM, topic, 1) \ -X(a, STATIC, REPEATED, MESSAGE, followees, 2) -#define ic_nns_governance_pb_v1_ManageNeuron_Follow_CALLBACK NULL -#define ic_nns_governance_pb_v1_ManageNeuron_Follow_DEFAULT NULL -#define ic_nns_governance_pb_v1_ManageNeuron_Follow_followees_MSGTYPE ic_base_types_pb_v1_NeuronId - -#define ic_nns_governance_pb_v1_ManageNeuron_RegisterVote_FIELDLIST(X, a) \ -X(a, STATIC, OPTIONAL, MESSAGE, proposal, 1) \ -X(a, STATIC, SINGULAR, UENUM, vote, 2) -#define ic_nns_governance_pb_v1_ManageNeuron_RegisterVote_CALLBACK NULL -#define ic_nns_governance_pb_v1_ManageNeuron_RegisterVote_DEFAULT NULL -#define ic_nns_governance_pb_v1_ManageNeuron_RegisterVote_proposal_MSGTYPE ic_base_types_pb_v1_ProposalId - -#define ic_nns_governance_pb_v1_ManageNeuron_MergeMaturity_FIELDLIST(X, a) \ -X(a, STATIC, SINGULAR, UINT32, percentage_to_merge, 1) -#define ic_nns_governance_pb_v1_ManageNeuron_MergeMaturity_CALLBACK NULL -#define ic_nns_governance_pb_v1_ManageNeuron_MergeMaturity_DEFAULT NULL - -#define ic_nns_governance_pb_v1_ManageNeuronResponse_FIELDLIST(X, a) \ -X(a, STATIC, ONEOF, MESSAGE, (command,error,command.error), 1) \ -X(a, STATIC, ONEOF, MESSAGE, (command,configure,command.configure), 2) \ -X(a, STATIC, ONEOF, MESSAGE, (command,disburse,command.disburse), 3) \ -X(a, STATIC, ONEOF, MESSAGE, (command,spawn,command.spawn), 4) \ -X(a, STATIC, ONEOF, MESSAGE, (command,follow,command.follow), 5) \ -X(a, STATIC, ONEOF, MESSAGE, (command,register_vote,command.register_vote), 7) \ -X(a, STATIC, ONEOF, MESSAGE, (command,merge_maturity,command.merge_maturity), 11) -#define ic_nns_governance_pb_v1_ManageNeuronResponse_CALLBACK NULL -#define ic_nns_governance_pb_v1_ManageNeuronResponse_DEFAULT NULL -#define ic_nns_governance_pb_v1_ManageNeuronResponse_command_error_MSGTYPE ic_nns_governance_pb_v1_GovernanceError -#define ic_nns_governance_pb_v1_ManageNeuronResponse_command_configure_MSGTYPE ic_nns_governance_pb_v1_ManageNeuronResponse_ConfigureResponse -#define ic_nns_governance_pb_v1_ManageNeuronResponse_command_disburse_MSGTYPE ic_nns_governance_pb_v1_ManageNeuronResponse_DisburseResponse -#define ic_nns_governance_pb_v1_ManageNeuronResponse_command_spawn_MSGTYPE ic_nns_governance_pb_v1_ManageNeuronResponse_SpawnResponse -#define ic_nns_governance_pb_v1_ManageNeuronResponse_command_follow_MSGTYPE ic_nns_governance_pb_v1_ManageNeuronResponse_FollowResponse -#define ic_nns_governance_pb_v1_ManageNeuronResponse_command_register_vote_MSGTYPE ic_nns_governance_pb_v1_ManageNeuronResponse_RegisterVoteResponse -#define ic_nns_governance_pb_v1_ManageNeuronResponse_command_merge_maturity_MSGTYPE ic_nns_governance_pb_v1_ManageNeuronResponse_MergeMaturityResponse - -#define ic_nns_governance_pb_v1_ManageNeuronResponse_ConfigureResponse_FIELDLIST(X, a) \ - -#define ic_nns_governance_pb_v1_ManageNeuronResponse_ConfigureResponse_CALLBACK NULL -#define ic_nns_governance_pb_v1_ManageNeuronResponse_ConfigureResponse_DEFAULT NULL - -#define ic_nns_governance_pb_v1_ManageNeuronResponse_DisburseResponse_FIELDLIST(X, a) \ -X(a, STATIC, SINGULAR, UINT64, transfer_block_height, 1) -#define ic_nns_governance_pb_v1_ManageNeuronResponse_DisburseResponse_CALLBACK NULL -#define ic_nns_governance_pb_v1_ManageNeuronResponse_DisburseResponse_DEFAULT NULL - -#define ic_nns_governance_pb_v1_ManageNeuronResponse_SpawnResponse_FIELDLIST(X, a) \ -X(a, STATIC, OPTIONAL, MESSAGE, created_neuron_id, 1) -#define ic_nns_governance_pb_v1_ManageNeuronResponse_SpawnResponse_CALLBACK NULL -#define ic_nns_governance_pb_v1_ManageNeuronResponse_SpawnResponse_DEFAULT NULL -#define ic_nns_governance_pb_v1_ManageNeuronResponse_SpawnResponse_created_neuron_id_MSGTYPE ic_base_types_pb_v1_NeuronId - -#define ic_nns_governance_pb_v1_ManageNeuronResponse_MergeMaturityResponse_FIELDLIST(X, a) \ -X(a, STATIC, SINGULAR, UINT64, merged_maturity_e8s, 1) \ -X(a, STATIC, SINGULAR, UINT64, new_stake_e8s, 2) -#define ic_nns_governance_pb_v1_ManageNeuronResponse_MergeMaturityResponse_CALLBACK NULL -#define ic_nns_governance_pb_v1_ManageNeuronResponse_MergeMaturityResponse_DEFAULT NULL - -#define ic_nns_governance_pb_v1_ManageNeuronResponse_FollowResponse_FIELDLIST(X, a) \ - -#define ic_nns_governance_pb_v1_ManageNeuronResponse_FollowResponse_CALLBACK NULL -#define ic_nns_governance_pb_v1_ManageNeuronResponse_FollowResponse_DEFAULT NULL - -#define ic_nns_governance_pb_v1_ManageNeuronResponse_RegisterVoteResponse_FIELDLIST(X, a) \ - -#define ic_nns_governance_pb_v1_ManageNeuronResponse_RegisterVoteResponse_CALLBACK NULL -#define ic_nns_governance_pb_v1_ManageNeuronResponse_RegisterVoteResponse_DEFAULT NULL - -#define ic_nns_governance_pb_v1_GovernanceError_FIELDLIST(X, a) \ -X(a, STATIC, SINGULAR, UENUM, error_type, 1) \ -X(a, CALLBACK, SINGULAR, STRING, error_message, 2) -#define ic_nns_governance_pb_v1_GovernanceError_CALLBACK pb_default_field_callback -#define ic_nns_governance_pb_v1_GovernanceError_DEFAULT NULL - -#define ic_nns_governance_pb_v1_ListNeurons_FIELDLIST(X, a) \ -X(a, CALLBACK, REPEATED, FIXED64, neuron_ids, 1) \ -X(a, STATIC, SINGULAR, BOOL, include_neurons_readable_by_caller, 2) -#define ic_nns_governance_pb_v1_ListNeurons_CALLBACK pb_default_field_callback -#define ic_nns_governance_pb_v1_ListNeurons_DEFAULT NULL - -#define ic_nns_governance_pb_v1_ListNeuronsResponse_FIELDLIST(X, a) \ -X(a, CALLBACK, REPEATED, MESSAGE, neuron_ids, 1) \ -X(a, CALLBACK, REPEATED, MESSAGE, full_neurons, 2) -#define ic_nns_governance_pb_v1_ListNeuronsResponse_CALLBACK pb_default_field_callback -#define ic_nns_governance_pb_v1_ListNeuronsResponse_DEFAULT NULL -#define ic_nns_governance_pb_v1_ListNeuronsResponse_neuron_ids_MSGTYPE ic_nns_governance_pb_v1_ListNeuronsResponse_NeuronMapEntry -#define ic_nns_governance_pb_v1_ListNeuronsResponse_full_neurons_MSGTYPE ic_nns_governance_pb_v1_Neuron - -#define ic_nns_governance_pb_v1_ListNeuronsResponse_NeuronMapEntry_FIELDLIST(X, a) \ -X(a, STATIC, SINGULAR, FIXED64, key, 1) \ -X(a, STATIC, OPTIONAL, MESSAGE, value, 2) -#define ic_nns_governance_pb_v1_ListNeuronsResponse_NeuronMapEntry_CALLBACK NULL -#define ic_nns_governance_pb_v1_ListNeuronsResponse_NeuronMapEntry_DEFAULT NULL -#define ic_nns_governance_pb_v1_ListNeuronsResponse_NeuronMapEntry_value_MSGTYPE ic_nns_governance_pb_v1_NeuronInfo - -#define ic_nns_governance_pb_v1_BallotInfo_FIELDLIST(X, a) \ -X(a, STATIC, OPTIONAL, MESSAGE, proposal_id, 1) \ -X(a, STATIC, SINGULAR, UENUM, vote, 2) -#define ic_nns_governance_pb_v1_BallotInfo_CALLBACK NULL -#define ic_nns_governance_pb_v1_BallotInfo_DEFAULT NULL -#define ic_nns_governance_pb_v1_BallotInfo_proposal_id_MSGTYPE ic_base_types_pb_v1_ProposalId - -#define ic_nns_governance_pb_v1_NeuronInfo_FIELDLIST(X, a) \ -X(a, STATIC, SINGULAR, UINT64, retrieved_at_timestamp_seconds, 1) \ -X(a, STATIC, SINGULAR, UINT64, age_seconds, 3) \ -X(a, STATIC, SINGULAR, UINT64, dissolve_delay_seconds, 4) \ -X(a, CALLBACK, REPEATED, MESSAGE, recent_ballots, 5) \ -X(a, STATIC, SINGULAR, UINT64, voting_power, 6) \ -X(a, STATIC, SINGULAR, UINT64, created_timestamp_seconds, 7) -#define ic_nns_governance_pb_v1_NeuronInfo_CALLBACK pb_default_field_callback -#define ic_nns_governance_pb_v1_NeuronInfo_DEFAULT NULL -#define ic_nns_governance_pb_v1_NeuronInfo_recent_ballots_MSGTYPE ic_nns_governance_pb_v1_BallotInfo - -#define ic_nns_governance_pb_v1_Neuron_FIELDLIST(X, a) \ -X(a, STATIC, OPTIONAL, MESSAGE, id, 1) \ -X(a, CALLBACK, SINGULAR, BYTES, account, 2) \ -X(a, STATIC, OPTIONAL, MESSAGE, controller, 3) \ -X(a, CALLBACK, REPEATED, MESSAGE, hot_keys, 4) \ -X(a, STATIC, SINGULAR, UINT64, cached_neuron_stake_e8s, 5) \ -X(a, STATIC, SINGULAR, UINT64, neuron_fees_e8s, 6) \ -X(a, STATIC, SINGULAR, UINT64, created_timestamp_seconds, 7) \ -X(a, STATIC, SINGULAR, UINT64, aging_since_timestamp_seconds, 8) \ -X(a, STATIC, ONEOF, UINT64, (dissolve_state,when_dissolved_timestamp_seconds,dissolve_state.when_dissolved_timestamp_seconds), 9) \ -X(a, STATIC, ONEOF, UINT64, (dissolve_state,dissolve_delay_seconds,dissolve_state.dissolve_delay_seconds), 10) \ -X(a, CALLBACK, REPEATED, MESSAGE, followees, 11) \ -X(a, CALLBACK, REPEATED, MESSAGE, recent_ballots, 12) \ -X(a, STATIC, SINGULAR, BOOL, kyc_verified, 13) \ -X(a, STATIC, OPTIONAL, MESSAGE, transfer, 14) \ -X(a, STATIC, SINGULAR, UINT64, maturity_e8s_equivalent, 15) \ -X(a, STATIC, SINGULAR, BOOL, not_for_profit, 16) -#define ic_nns_governance_pb_v1_Neuron_CALLBACK pb_default_field_callback -#define ic_nns_governance_pb_v1_Neuron_DEFAULT NULL -#define ic_nns_governance_pb_v1_Neuron_id_MSGTYPE ic_base_types_pb_v1_NeuronId -#define ic_nns_governance_pb_v1_Neuron_controller_MSGTYPE ic_base_types_pb_v1_PrincipalId -#define ic_nns_governance_pb_v1_Neuron_hot_keys_MSGTYPE ic_base_types_pb_v1_PrincipalId -#define ic_nns_governance_pb_v1_Neuron_followees_MSGTYPE ic_nns_governance_pb_v1_Neuron_FolloweesEntry -#define ic_nns_governance_pb_v1_Neuron_recent_ballots_MSGTYPE ic_nns_governance_pb_v1_BallotInfo -#define ic_nns_governance_pb_v1_Neuron_transfer_MSGTYPE ic_nns_governance_pb_v1_NeuronStakeTransfer - -#define ic_nns_governance_pb_v1_Neuron_Followees_FIELDLIST(X, a) \ -X(a, CALLBACK, REPEATED, MESSAGE, followees, 1) -#define ic_nns_governance_pb_v1_Neuron_Followees_CALLBACK pb_default_field_callback -#define ic_nns_governance_pb_v1_Neuron_Followees_DEFAULT NULL -#define ic_nns_governance_pb_v1_Neuron_Followees_followees_MSGTYPE ic_base_types_pb_v1_NeuronId - -#define ic_nns_governance_pb_v1_Neuron_FolloweesEntry_FIELDLIST(X, a) \ -X(a, STATIC, SINGULAR, INT32, key, 1) \ -X(a, STATIC, OPTIONAL, MESSAGE, value, 2) -#define ic_nns_governance_pb_v1_Neuron_FolloweesEntry_CALLBACK NULL -#define ic_nns_governance_pb_v1_Neuron_FolloweesEntry_DEFAULT NULL -#define ic_nns_governance_pb_v1_Neuron_FolloweesEntry_value_MSGTYPE ic_nns_governance_pb_v1_Neuron_Followees - -#define ic_nns_governance_pb_v1_NeuronStakeTransfer_FIELDLIST(X, a) \ -X(a, STATIC, SINGULAR, UINT64, transfer_timestamp, 1) \ -X(a, STATIC, OPTIONAL, MESSAGE, from, 2) \ -X(a, CALLBACK, SINGULAR, BYTES, from_subaccount, 3) \ -X(a, CALLBACK, SINGULAR, BYTES, to_subaccount, 4) \ -X(a, STATIC, SINGULAR, UINT64, neuron_stake_e8s, 5) \ -X(a, STATIC, SINGULAR, UINT64, block_height, 6) \ -X(a, STATIC, SINGULAR, UINT64, memo, 7) -#define ic_nns_governance_pb_v1_NeuronStakeTransfer_CALLBACK pb_default_field_callback -#define ic_nns_governance_pb_v1_NeuronStakeTransfer_DEFAULT NULL -#define ic_nns_governance_pb_v1_NeuronStakeTransfer_from_MSGTYPE ic_base_types_pb_v1_PrincipalId - -extern const pb_msgdesc_t ic_nns_governance_pb_v1_ManageNeuron_msg; -extern const pb_msgdesc_t ic_nns_governance_pb_v1_ManageNeuron_IncreaseDissolveDelay_msg; -extern const pb_msgdesc_t ic_nns_governance_pb_v1_ManageNeuron_StartDissolving_msg; -extern const pb_msgdesc_t ic_nns_governance_pb_v1_ManageNeuron_StopDissolving_msg; -extern const pb_msgdesc_t ic_nns_governance_pb_v1_ManageNeuron_AddHotKey_msg; -extern const pb_msgdesc_t ic_nns_governance_pb_v1_ManageNeuron_RemoveHotKey_msg; -extern const pb_msgdesc_t ic_nns_governance_pb_v1_ManageNeuron_JoinCommunityFund_msg; -extern const pb_msgdesc_t ic_nns_governance_pb_v1_ManageNeuron_Configure_msg; -extern const pb_msgdesc_t ic_nns_governance_pb_v1_ManageNeuron_Spawn_msg; -extern const pb_msgdesc_t ic_nns_governance_pb_v1_ManageNeuron_Disburse_msg; -extern const pb_msgdesc_t ic_nns_governance_pb_v1_ManageNeuron_Disburse_Amount_msg; -extern const pb_msgdesc_t ic_nns_governance_pb_v1_ManageNeuron_Follow_msg; -extern const pb_msgdesc_t ic_nns_governance_pb_v1_ManageNeuron_RegisterVote_msg; -extern const pb_msgdesc_t ic_nns_governance_pb_v1_ManageNeuron_MergeMaturity_msg; -extern const pb_msgdesc_t ic_nns_governance_pb_v1_ManageNeuronResponse_msg; -extern const pb_msgdesc_t ic_nns_governance_pb_v1_ManageNeuronResponse_ConfigureResponse_msg; -extern const pb_msgdesc_t ic_nns_governance_pb_v1_ManageNeuronResponse_DisburseResponse_msg; -extern const pb_msgdesc_t ic_nns_governance_pb_v1_ManageNeuronResponse_SpawnResponse_msg; -extern const pb_msgdesc_t ic_nns_governance_pb_v1_ManageNeuronResponse_MergeMaturityResponse_msg; -extern const pb_msgdesc_t ic_nns_governance_pb_v1_ManageNeuronResponse_FollowResponse_msg; -extern const pb_msgdesc_t ic_nns_governance_pb_v1_ManageNeuronResponse_RegisterVoteResponse_msg; -extern const pb_msgdesc_t ic_nns_governance_pb_v1_GovernanceError_msg; -extern const pb_msgdesc_t ic_nns_governance_pb_v1_ListNeurons_msg; -extern const pb_msgdesc_t ic_nns_governance_pb_v1_ListNeuronsResponse_msg; -extern const pb_msgdesc_t ic_nns_governance_pb_v1_ListNeuronsResponse_NeuronMapEntry_msg; -extern const pb_msgdesc_t ic_nns_governance_pb_v1_BallotInfo_msg; -extern const pb_msgdesc_t ic_nns_governance_pb_v1_NeuronInfo_msg; -extern const pb_msgdesc_t ic_nns_governance_pb_v1_Neuron_msg; -extern const pb_msgdesc_t ic_nns_governance_pb_v1_Neuron_Followees_msg; -extern const pb_msgdesc_t ic_nns_governance_pb_v1_Neuron_FolloweesEntry_msg; -extern const pb_msgdesc_t ic_nns_governance_pb_v1_NeuronStakeTransfer_msg; - -/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ -#define ic_nns_governance_pb_v1_ManageNeuron_fields &ic_nns_governance_pb_v1_ManageNeuron_msg -#define ic_nns_governance_pb_v1_ManageNeuron_IncreaseDissolveDelay_fields &ic_nns_governance_pb_v1_ManageNeuron_IncreaseDissolveDelay_msg -#define ic_nns_governance_pb_v1_ManageNeuron_StartDissolving_fields &ic_nns_governance_pb_v1_ManageNeuron_StartDissolving_msg -#define ic_nns_governance_pb_v1_ManageNeuron_StopDissolving_fields &ic_nns_governance_pb_v1_ManageNeuron_StopDissolving_msg -#define ic_nns_governance_pb_v1_ManageNeuron_AddHotKey_fields &ic_nns_governance_pb_v1_ManageNeuron_AddHotKey_msg -#define ic_nns_governance_pb_v1_ManageNeuron_RemoveHotKey_fields &ic_nns_governance_pb_v1_ManageNeuron_RemoveHotKey_msg -#define ic_nns_governance_pb_v1_ManageNeuron_JoinCommunityFund_fields &ic_nns_governance_pb_v1_ManageNeuron_JoinCommunityFund_msg -#define ic_nns_governance_pb_v1_ManageNeuron_Configure_fields &ic_nns_governance_pb_v1_ManageNeuron_Configure_msg -#define ic_nns_governance_pb_v1_ManageNeuron_Spawn_fields &ic_nns_governance_pb_v1_ManageNeuron_Spawn_msg -#define ic_nns_governance_pb_v1_ManageNeuron_Disburse_fields &ic_nns_governance_pb_v1_ManageNeuron_Disburse_msg -#define ic_nns_governance_pb_v1_ManageNeuron_Disburse_Amount_fields &ic_nns_governance_pb_v1_ManageNeuron_Disburse_Amount_msg -#define ic_nns_governance_pb_v1_ManageNeuron_Follow_fields &ic_nns_governance_pb_v1_ManageNeuron_Follow_msg -#define ic_nns_governance_pb_v1_ManageNeuron_RegisterVote_fields &ic_nns_governance_pb_v1_ManageNeuron_RegisterVote_msg -#define ic_nns_governance_pb_v1_ManageNeuron_MergeMaturity_fields &ic_nns_governance_pb_v1_ManageNeuron_MergeMaturity_msg -#define ic_nns_governance_pb_v1_ManageNeuronResponse_fields &ic_nns_governance_pb_v1_ManageNeuronResponse_msg -#define ic_nns_governance_pb_v1_ManageNeuronResponse_ConfigureResponse_fields &ic_nns_governance_pb_v1_ManageNeuronResponse_ConfigureResponse_msg -#define ic_nns_governance_pb_v1_ManageNeuronResponse_DisburseResponse_fields &ic_nns_governance_pb_v1_ManageNeuronResponse_DisburseResponse_msg -#define ic_nns_governance_pb_v1_ManageNeuronResponse_SpawnResponse_fields &ic_nns_governance_pb_v1_ManageNeuronResponse_SpawnResponse_msg -#define ic_nns_governance_pb_v1_ManageNeuronResponse_MergeMaturityResponse_fields &ic_nns_governance_pb_v1_ManageNeuronResponse_MergeMaturityResponse_msg -#define ic_nns_governance_pb_v1_ManageNeuronResponse_FollowResponse_fields &ic_nns_governance_pb_v1_ManageNeuronResponse_FollowResponse_msg -#define ic_nns_governance_pb_v1_ManageNeuronResponse_RegisterVoteResponse_fields &ic_nns_governance_pb_v1_ManageNeuronResponse_RegisterVoteResponse_msg -#define ic_nns_governance_pb_v1_GovernanceError_fields &ic_nns_governance_pb_v1_GovernanceError_msg -#define ic_nns_governance_pb_v1_ListNeurons_fields &ic_nns_governance_pb_v1_ListNeurons_msg -#define ic_nns_governance_pb_v1_ListNeuronsResponse_fields &ic_nns_governance_pb_v1_ListNeuronsResponse_msg -#define ic_nns_governance_pb_v1_ListNeuronsResponse_NeuronMapEntry_fields &ic_nns_governance_pb_v1_ListNeuronsResponse_NeuronMapEntry_msg -#define ic_nns_governance_pb_v1_BallotInfo_fields &ic_nns_governance_pb_v1_BallotInfo_msg -#define ic_nns_governance_pb_v1_NeuronInfo_fields &ic_nns_governance_pb_v1_NeuronInfo_msg -#define ic_nns_governance_pb_v1_Neuron_fields &ic_nns_governance_pb_v1_Neuron_msg -#define ic_nns_governance_pb_v1_Neuron_Followees_fields &ic_nns_governance_pb_v1_Neuron_Followees_msg -#define ic_nns_governance_pb_v1_Neuron_FolloweesEntry_fields &ic_nns_governance_pb_v1_Neuron_FolloweesEntry_msg -#define ic_nns_governance_pb_v1_NeuronStakeTransfer_fields &ic_nns_governance_pb_v1_NeuronStakeTransfer_msg - -/* Maximum encoded size of messages (where known) */ -/* ic_nns_governance_pb_v1_ManageNeuronResponse_size depends on runtime parameters */ -/* ic_nns_governance_pb_v1_GovernanceError_size depends on runtime parameters */ -/* ic_nns_governance_pb_v1_ListNeurons_size depends on runtime parameters */ -/* ic_nns_governance_pb_v1_ListNeuronsResponse_size depends on runtime parameters */ -/* ic_nns_governance_pb_v1_ListNeuronsResponse_NeuronMapEntry_size depends on runtime parameters */ -/* ic_nns_governance_pb_v1_NeuronInfo_size depends on runtime parameters */ -/* ic_nns_governance_pb_v1_Neuron_size depends on runtime parameters */ -/* ic_nns_governance_pb_v1_Neuron_Followees_size depends on runtime parameters */ -/* ic_nns_governance_pb_v1_Neuron_FolloweesEntry_size depends on runtime parameters */ -/* ic_nns_governance_pb_v1_NeuronStakeTransfer_size depends on runtime parameters */ -#define ic_nns_governance_pb_v1_BallotInfo_size 15 -#define ic_nns_governance_pb_v1_ManageNeuronResponse_ConfigureResponse_size 0 -#define ic_nns_governance_pb_v1_ManageNeuronResponse_DisburseResponse_size 11 -#define ic_nns_governance_pb_v1_ManageNeuronResponse_FollowResponse_size 0 -#define ic_nns_governance_pb_v1_ManageNeuronResponse_MergeMaturityResponse_size 22 -#define ic_nns_governance_pb_v1_ManageNeuronResponse_RegisterVoteResponse_size 0 -#define ic_nns_governance_pb_v1_ManageNeuronResponse_SpawnResponse_size 13 -#define ic_nns_governance_pb_v1_ManageNeuron_AddHotKey_size 34 -#define ic_nns_governance_pb_v1_ManageNeuron_Configure_size 36 -#define ic_nns_governance_pb_v1_ManageNeuron_Disburse_Amount_size 11 -#define ic_nns_governance_pb_v1_ManageNeuron_Disburse_size 50 -#define ic_nns_governance_pb_v1_ManageNeuron_Follow_size 197 -#define ic_nns_governance_pb_v1_ManageNeuron_IncreaseDissolveDelay_size 6 -#define ic_nns_governance_pb_v1_ManageNeuron_JoinCommunityFund_size 0 -#define ic_nns_governance_pb_v1_ManageNeuron_MergeMaturity_size 6 -#define ic_nns_governance_pb_v1_ManageNeuron_RegisterVote_size 15 -#define ic_nns_governance_pb_v1_ManageNeuron_RemoveHotKey_size 34 -#define ic_nns_governance_pb_v1_ManageNeuron_Spawn_size 34 -#define ic_nns_governance_pb_v1_ManageNeuron_StartDissolving_size 0 -#define ic_nns_governance_pb_v1_ManageNeuron_StopDissolving_size 0 -#define ic_nns_governance_pb_v1_ManageNeuron_size 247 - -#ifdef __cplusplus -} /* extern "C" */ -#endif - -#endif diff --git a/app/src/protobuf/governance.proto b/app/src/protobuf/governance.proto deleted file mode 100644 index 1dc57f24..00000000 --- a/app/src/protobuf/governance.proto +++ /dev/null @@ -1,268 +0,0 @@ -syntax = "proto3"; -import "nanopb.proto"; -package ic_nns_governance.pb.v1; - -import "types.proto"; -import "base_types.proto"; - -// All operations that modify the state of an existing neuron are -// represented by instances of `ManageNeuron`. -// -// All commands are available to the `controller` of the neuron. In -// addition, commands related to voting, i.g., [manage_neuron::Follow] -// and [manage_neuron::RegisterVote], are also available to the -// registered hot keys of the neuron. -message ManageNeuron { - option (ic_base_types.pb.v1.tui_signed_message) = true; - - // This is the legacy way to specify neuron IDs that is now discouraged. - ic_base_types.pb.v1.NeuronId id = 1 [(ic_base_types.pb.v1.tui_signed_display_q2_2021) = true]; - - // The ID of the neuron to manage. This can either be a subaccount or a neuron ID. - oneof neuron_id_or_subaccount { - bytes subaccount = 11 [(ic_base_types.pb.v1.tui_signed_display_q2_2021) = true]; - ic_base_types.pb.v1.NeuronId neuron_id = 12 [(ic_base_types.pb.v1.tui_signed_display_q2_2021) = true]; - } - - message IncreaseDissolveDelay { - uint32 additional_dissolve_delay_seconds = 1 [(ic_base_types.pb.v1.tui_signed_display_q2_2021) = true]; - } - - message StartDissolving {} - message StopDissolving {} - - message AddHotKey { - ic_base_types.pb.v1.PrincipalId new_hot_key = 1 [(ic_base_types.pb.v1.tui_signed_display_q2_2021) = true]; - } - - message RemoveHotKey { - ic_base_types.pb.v1.PrincipalId hot_key_to_remove = 1 [(ic_base_types.pb.v1.tui_signed_display_q2_2021) = true]; - } - - // Join the Internet Computer's community fund with this neuron's - // entire stake. Caution: this operation is not reversible. - message JoinCommunityFund {} - - // Commands that only configure a given neuron, but do not interact - // with the outside world. They all require the caller to be the - // controller of the neuron. - message Configure { - oneof operation { - IncreaseDissolveDelay increase_dissolve_delay = 1; - StartDissolving start_dissolving = 2; - StopDissolving stop_dissolving = 3; - AddHotKey add_hot_key = 4; - RemoveHotKey remove_hot_key = 5; - JoinCommunityFund join_community_fund = 7; - } - } - - message Spawn { - ic_base_types.pb.v1.PrincipalId new_controller = 1 [(ic_base_types.pb.v1.tui_signed_display_q2_2021) = true]; - } - - message Disburse { - option (ic_base_types.pb.v1.tui_signed_message) = true; - message Amount { - option (ic_base_types.pb.v1.tui_signed_message) = true; - uint64 e8s = 1 [(ic_base_types.pb.v1.tui_signed_display_q2_2021) = true, jstype = JS_STRING]; - } - Amount amount = 1 [(ic_base_types.pb.v1.tui_signed_display_q2_2021) = true]; - ic_ledger.pb.v1.AccountIdentifier to_account = 2 [(ic_base_types.pb.v1.tui_signed_display_q2_2021) = true]; - } - - message Follow { - Topic topic = 1; - repeated ic_base_types.pb.v1.NeuronId followees = 2 [(nanopb).max_count = 15]; - } - - message RegisterVote { - ic_base_types.pb.v1.ProposalId proposal = 1; - Vote vote = 2; - } - - message MergeMaturity { - uint32 percentage_to_merge = 1; - } - - oneof command { - Configure configure = 2; - Disburse disburse = 3; - Spawn spawn = 4; - Follow follow = 5; - RegisterVote register_vote = 7; - MergeMaturity merge_maturity = 13; - } -} - - -// The response of the ManageNeuron command -// -// There is a dedicated response type for each `ManageNeuron.command` field -message ManageNeuronResponse { - message ConfigureResponse {} - - message DisburseResponse { - uint64 transfer_block_height = 1 [jstype = JS_STRING]; - } - - message SpawnResponse { - ic_base_types.pb.v1.NeuronId created_neuron_id = 1; - } - - message MergeMaturityResponse { - uint64 merged_maturity_e8s = 1 [jstype = JS_STRING]; - uint64 new_stake_e8s = 2 [jstype = JS_STRING]; - } - - message FollowResponse {} - - message RegisterVoteResponse {} - - oneof command { - GovernanceError error = 1; - ConfigureResponse configure = 2; - DisburseResponse disburse = 3; - SpawnResponse spawn = 4; - FollowResponse follow = 5; - RegisterVoteResponse register_vote = 7; - MergeMaturityResponse merge_maturity = 11; - } -} - -message GovernanceError { - enum ErrorType { - ERROR_TYPE_UNSPECIFIED = 0; - // The operation was successfully completed. - ERROR_TYPE_OK = 1; - // This operation is not available, e.g., not implemented. - ERROR_TYPE_UNAVAILABLE = 2; - // The caller is not authorized to perform this operation. - ERROR_TYPE_NOT_AUTHORIZED = 3; - // Some entity required for the operation (for example, a neuron) was not found. - ERROR_TYPE_NOT_FOUND = 4; - // The command was missing or invalid. This is a permanent error. - ERROR_TYPE_INVALID_COMMAND = 5; - // The neuron is dissolving or dissolved and the operation requires it to - // be not dissolving (that is, having a non-zero dissolve delay that is - // accumulating age). - ERROR_TYPE_REQUIRES_NOT_DISSOLVING = 6; - // The neuron is not dissolving or dissolved and the operation requires - // it to be dissolving (that is, having a non-zero dissolve delay with - // zero age that is not accumulating). - ERROR_TYPE_REQUIRES_DISSOLVING = 7; - // The neuron is not dissolving and not dissolved and the operation - // requires it to be dissolved (that is, having a dissolve delay of zero - // and an age of zero). - ERROR_TYPE_REQUIRES_DISSOLVED = 8; - // When adding or removing a hot key: the key to add was already - // present or the key to remove was not present or the key to add - // was invalid or adding another hot key would bring the total - // number of the maximum number of allowed hot keys per neuron. - ERROR_TYPE_HOT_KEY = 9; - // Some canister side resource is exhausted, so this operation cannot be - // performed. - ERROR_TYPE_RESOURCE_EXHAUSTED = 10; - // Some precondition for executing this method was not met. - ERROR_TYPE_PRECONDITION_FAILED = 11; - // Executing this method failed for some reason external to the - // governance canister. - ERROR_TYPE_EXTERNAL = 12; - // A neuron has an ongoing ledger update and thus can't be - // changed. - ERROR_TYPE_LEDGER_UPDATE_ONGOING = 13; - // There wasn't enough funds to perform the operation. - ERROR_TYPE_INSUFFICIENT_FUNDS = 14; - // The principal provided was invalid. - ERROR_TYPE_INVALID_PRINCIPAL = 15; - // The proposal's parameters violate size restrictions. - ERROR_TYPE_INVALID_PROPOSAL = 16; - } - - ErrorType error_type = 1; - string error_message = 2; -} - -message ListNeurons { - option (ic_base_types.pb.v1.tui_signed_message) = true; - repeated fixed64 neuron_ids = 1 [(ic_base_types.pb.v1.tui_signed_display_q2_2021) = true, jstype = JS_STRING]; - bool include_neurons_readable_by_caller = 2 [(ic_base_types.pb.v1.tui_signed_display_q2_2021) = true]; -} - -message ListNeuronsResponse { - message NeuronMapEntry { - fixed64 key = 1 [jstype = JS_STRING]; - NeuronInfo value = 2; - } - - // Was originally `map neuron_infos = 1` - // It had to be modified to this form to annotate the key with js_type. - repeated NeuronMapEntry neuron_ids = 1; - repeated Neuron full_neurons = 2; -} - -message BallotInfo { - ic_base_types.pb.v1.ProposalId proposal_id = 1; - Vote vote = 2; -} - -message NeuronInfo { - uint64 retrieved_at_timestamp_seconds = 1 [jstype = JS_STRING];; - uint64 age_seconds = 3 [jstype = JS_STRING]; - uint64 dissolve_delay_seconds = 4 [jstype = JS_STRING]; - repeated BallotInfo recent_ballots = 5; - uint64 voting_power = 6 [jstype = JS_STRING]; - uint64 created_timestamp_seconds = 7 [jstype = JS_STRING]; -} - -message Neuron { - ic_base_types.pb.v1.NeuronId id = 1; - bytes account = 2; - ic_base_types.pb.v1.PrincipalId controller = 3; - repeated ic_base_types.pb.v1.PrincipalId hot_keys = 4; - uint64 cached_neuron_stake_e8s = 5 [jstype = JS_STRING]; - uint64 neuron_fees_e8s = 6 [jstype = JS_STRING]; - uint64 created_timestamp_seconds = 7 [jstype = JS_STRING]; - uint64 aging_since_timestamp_seconds = 8 [jstype = JS_STRING]; - oneof dissolve_state { - uint64 when_dissolved_timestamp_seconds = 9 [jstype = JS_STRING]; - uint64 dissolve_delay_seconds = 10 [jstype = JS_STRING]; - } - message Followees {repeated ic_base_types.pb.v1.NeuronId followees = 1;} - map followees = 11; - repeated BallotInfo recent_ballots = 12; - bool kyc_verified = 13; - NeuronStakeTransfer transfer = 14; - uint64 maturity_e8s_equivalent = 15 [jstype = JS_STRING]; - bool not_for_profit = 16; -} - -enum Vote { - VOTE_UNSPECIFIED = 0; - VOTE_YES = 1; - VOTE_NO = 2; -} - -message NeuronStakeTransfer { - uint64 transfer_timestamp = 1 [jstype = JS_STRING]; - ic_base_types.pb.v1.PrincipalId from = 2; - bytes from_subaccount = 3; - bytes to_subaccount = 4; - uint64 neuron_stake_e8s = 5 [jstype = JS_STRING]; - uint64 block_height = 6 [jstype = JS_STRING]; - uint64 memo = 7 [jstype = JS_STRING]; -} - -enum Topic { - TOPIC_UNSPECIFIED = 0; - TOPIC_NEURON_MANAGEMENT = 1; - TOPIC_EXCHANGE_RATE = 2; - TOPIC_NETWORK_ECONOMICS = 3; - TOPIC_GOVERNANCE = 4; - TOPIC_NODE_ADMIN = 5; - TOPIC_PARTICIPANT_MANAGEMENT = 6; - TOPIC_SUBNET_MANAGEMENT = 7; - TOPIC_NETWORK_CANISTER_MANAGEMENT = 8; - TOPIC_KYC = 9; - TOPIC_NODE_PROVIDER_REWARDS = 10; -} diff --git a/app/src/protobuf/types.options b/app/src/protobuf/types.options deleted file mode 100644 index 00158178..00000000 --- a/app/src/protobuf/types.options +++ /dev/null @@ -1 +0,0 @@ -ic_ledger.pb.v1.AccountIdentifier max_size:33 diff --git a/app/src/protobuf/types.pb.c b/app/src/protobuf/types.pb.c deleted file mode 100644 index 9bd634ac..00000000 --- a/app/src/protobuf/types.pb.c +++ /dev/null @@ -1,154 +0,0 @@ -/* Automatically generated nanopb constant definitions */ -/* Generated by nanopb-0.4.6-dev */ - -#include "types.pb.h" - -#if PB_PROTO_HEADER_VERSION != 40 -#error Regenerate this file with the current version of nanopb generator. -#endif - -PB_BIND(ic_ledger_pb_v1_LedgerInit, ic_ledger_pb_v1_LedgerInit, AUTO) - - -PB_BIND(ic_ledger_pb_v1_LedgerUpgrade, ic_ledger_pb_v1_LedgerUpgrade, AUTO) - - -PB_BIND(ic_ledger_pb_v1_SendRequest, ic_ledger_pb_v1_SendRequest, AUTO) - - -PB_BIND(ic_ledger_pb_v1_SendResponse, ic_ledger_pb_v1_SendResponse, AUTO) - - -PB_BIND(ic_ledger_pb_v1_NotifyRequest, ic_ledger_pb_v1_NotifyRequest, AUTO) - - -PB_BIND(ic_ledger_pb_v1_NotifyResponse, ic_ledger_pb_v1_NotifyResponse, AUTO) - - -PB_BIND(ic_ledger_pb_v1_TransactionNotificationRequest, ic_ledger_pb_v1_TransactionNotificationRequest, AUTO) - - -PB_BIND(ic_ledger_pb_v1_TransactionNotificationResponse, ic_ledger_pb_v1_TransactionNotificationResponse, AUTO) - - -PB_BIND(ic_ledger_pb_v1_CyclesNotificationResponse, ic_ledger_pb_v1_CyclesNotificationResponse, AUTO) - - -PB_BIND(ic_ledger_pb_v1_AccountBalanceRequest, ic_ledger_pb_v1_AccountBalanceRequest, AUTO) - - -PB_BIND(ic_ledger_pb_v1_AccountBalanceResponse, ic_ledger_pb_v1_AccountBalanceResponse, AUTO) - - -PB_BIND(ic_ledger_pb_v1_TipOfChainRequest, ic_ledger_pb_v1_TipOfChainRequest, AUTO) - - -PB_BIND(ic_ledger_pb_v1_TipOfChainResponse, ic_ledger_pb_v1_TipOfChainResponse, AUTO) - - -PB_BIND(ic_ledger_pb_v1_TotalSupplyRequest, ic_ledger_pb_v1_TotalSupplyRequest, AUTO) - - -PB_BIND(ic_ledger_pb_v1_TotalSupplyResponse, ic_ledger_pb_v1_TotalSupplyResponse, AUTO) - - -PB_BIND(ic_ledger_pb_v1_LedgerArchiveRequest, ic_ledger_pb_v1_LedgerArchiveRequest, AUTO) - - -PB_BIND(ic_ledger_pb_v1_BlockRequest, ic_ledger_pb_v1_BlockRequest, AUTO) - - -PB_BIND(ic_ledger_pb_v1_EncodedBlock, ic_ledger_pb_v1_EncodedBlock, AUTO) - - -PB_BIND(ic_ledger_pb_v1_BlockResponse, ic_ledger_pb_v1_BlockResponse, AUTO) - - -PB_BIND(ic_ledger_pb_v1_GetBlocksRequest, ic_ledger_pb_v1_GetBlocksRequest, AUTO) - - -PB_BIND(ic_ledger_pb_v1_Refund, ic_ledger_pb_v1_Refund, AUTO) - - -PB_BIND(ic_ledger_pb_v1_ToppedUp, ic_ledger_pb_v1_ToppedUp, AUTO) - - -PB_BIND(ic_ledger_pb_v1_EncodedBlocks, ic_ledger_pb_v1_EncodedBlocks, AUTO) - - -PB_BIND(ic_ledger_pb_v1_GetBlocksResponse, ic_ledger_pb_v1_GetBlocksResponse, AUTO) - - -PB_BIND(ic_ledger_pb_v1_IterBlocksRequest, ic_ledger_pb_v1_IterBlocksRequest, AUTO) - - -PB_BIND(ic_ledger_pb_v1_IterBlocksResponse, ic_ledger_pb_v1_IterBlocksResponse, AUTO) - - -PB_BIND(ic_ledger_pb_v1_ArchiveIndexEntry, ic_ledger_pb_v1_ArchiveIndexEntry, AUTO) - - -PB_BIND(ic_ledger_pb_v1_ArchiveIndexResponse, ic_ledger_pb_v1_ArchiveIndexResponse, AUTO) - - -PB_BIND(ic_ledger_pb_v1_ArchiveInit, ic_ledger_pb_v1_ArchiveInit, AUTO) - - -PB_BIND(ic_ledger_pb_v1_ArchiveAddRequest, ic_ledger_pb_v1_ArchiveAddRequest, AUTO) - - -PB_BIND(ic_ledger_pb_v1_ArchiveAddResponse, ic_ledger_pb_v1_ArchiveAddResponse, AUTO) - - -PB_BIND(ic_ledger_pb_v1_GetNodesRequest, ic_ledger_pb_v1_GetNodesRequest, AUTO) - - -PB_BIND(ic_ledger_pb_v1_GetNodesResponse, ic_ledger_pb_v1_GetNodesResponse, AUTO) - - -PB_BIND(ic_ledger_pb_v1_ICPTs, ic_ledger_pb_v1_ICPTs, AUTO) - - -PB_BIND(ic_ledger_pb_v1_Payment, ic_ledger_pb_v1_Payment, AUTO) - - -PB_BIND(ic_ledger_pb_v1_BlockHeight, ic_ledger_pb_v1_BlockHeight, AUTO) - - -PB_BIND(ic_ledger_pb_v1_Block, ic_ledger_pb_v1_Block, AUTO) - - -PB_BIND(ic_ledger_pb_v1_Hash, ic_ledger_pb_v1_Hash, AUTO) - - -PB_BIND(ic_ledger_pb_v1_Account, ic_ledger_pb_v1_Account, AUTO) - - -PB_BIND(ic_ledger_pb_v1_Transaction, ic_ledger_pb_v1_Transaction, AUTO) - - -PB_BIND(ic_ledger_pb_v1_Send, ic_ledger_pb_v1_Send, AUTO) - - -PB_BIND(ic_ledger_pb_v1_Mint, ic_ledger_pb_v1_Mint, AUTO) - - -PB_BIND(ic_ledger_pb_v1_Burn, ic_ledger_pb_v1_Burn, AUTO) - - -PB_BIND(ic_ledger_pb_v1_AccountIdentifier, ic_ledger_pb_v1_AccountIdentifier, AUTO) - - -PB_BIND(ic_ledger_pb_v1_Subaccount, ic_ledger_pb_v1_Subaccount, AUTO) - - -PB_BIND(ic_ledger_pb_v1_Memo, ic_ledger_pb_v1_Memo, AUTO) - - -PB_BIND(ic_ledger_pb_v1_TimeStamp, ic_ledger_pb_v1_TimeStamp, AUTO) - - -PB_BIND(ic_ledger_pb_v1_Certification, ic_ledger_pb_v1_Certification, AUTO) - - - diff --git a/app/src/protobuf/types.pb.h b/app/src/protobuf/types.pb.h deleted file mode 100644 index c5f96cc9..00000000 --- a/app/src/protobuf/types.pb.h +++ /dev/null @@ -1,1015 +0,0 @@ -/* Automatically generated nanopb header */ -/* Generated by nanopb-0.4.6-dev */ - -#ifndef PB_IC_LEDGER_PB_V1_TYPES_PB_H_INCLUDED -#define PB_IC_LEDGER_PB_V1_TYPES_PB_H_INCLUDED - -#include -#include "base_types.pb.h" - -#if PB_PROTO_HEADER_VERSION != 40 -#error Regenerate this file with the current version of nanopb generator. -#endif - -/* Struct definitions */ -/* Add blocks to the archive canister */ -typedef struct _ic_ledger_pb_v1_ArchiveAddRequest { - pb_callback_t blocks; -} ic_ledger_pb_v1_ArchiveAddRequest; - -typedef struct _ic_ledger_pb_v1_ArchiveAddResponse { - char dummy_field; -} ic_ledger_pb_v1_ArchiveAddResponse; - -typedef struct _ic_ledger_pb_v1_ArchiveIndexResponse { - pb_callback_t entries; -} ic_ledger_pb_v1_ArchiveIndexResponse; - -typedef struct _ic_ledger_pb_v1_Certification { - pb_callback_t certification; -} ic_ledger_pb_v1_Certification; - -typedef struct _ic_ledger_pb_v1_EncodedBlock { - pb_callback_t block; -} ic_ledger_pb_v1_EncodedBlock; - -typedef struct _ic_ledger_pb_v1_EncodedBlocks { - pb_callback_t blocks; -} ic_ledger_pb_v1_EncodedBlocks; - -/* Fetch a list of all of the archive nodes */ -typedef struct _ic_ledger_pb_v1_GetNodesRequest { - char dummy_field; -} ic_ledger_pb_v1_GetNodesRequest; - -typedef struct _ic_ledger_pb_v1_GetNodesResponse { - pb_callback_t nodes; -} ic_ledger_pb_v1_GetNodesResponse; - -typedef struct _ic_ledger_pb_v1_Hash { - pb_callback_t hash; -} ic_ledger_pb_v1_Hash; - -typedef struct _ic_ledger_pb_v1_IterBlocksResponse { - pb_callback_t blocks; -} ic_ledger_pb_v1_IterBlocksResponse; - -/* The format of values serialized to/from the stable memory during and upgrade */ -typedef struct _ic_ledger_pb_v1_LedgerUpgrade { - char dummy_field; -} ic_ledger_pb_v1_LedgerUpgrade; - -typedef struct _ic_ledger_pb_v1_NotifyResponse { - char dummy_field; -} ic_ledger_pb_v1_NotifyResponse; - -typedef struct _ic_ledger_pb_v1_Subaccount { - pb_callback_t sub_account; -} ic_ledger_pb_v1_Subaccount; - -/* Get the length of the chain with a certification */ -typedef struct _ic_ledger_pb_v1_TipOfChainRequest { - char dummy_field; -} ic_ledger_pb_v1_TipOfChainRequest; - -typedef struct _ic_ledger_pb_v1_ToppedUp { - char dummy_field; -} ic_ledger_pb_v1_ToppedUp; - -/* How many ICPTs are there not in the minting account */ -typedef struct _ic_ledger_pb_v1_TotalSupplyRequest { - char dummy_field; -} ic_ledger_pb_v1_TotalSupplyRequest; - -typedef struct _ic_ledger_pb_v1_TransactionNotificationResponse { - pb_callback_t response; -} ic_ledger_pb_v1_TransactionNotificationResponse; - -typedef PB_BYTES_ARRAY_T(33) ic_ledger_pb_v1_AccountIdentifier_hash_t; -typedef struct _ic_ledger_pb_v1_AccountIdentifier { - ic_ledger_pb_v1_AccountIdentifier_hash_t hash; -} ic_ledger_pb_v1_AccountIdentifier; - -typedef struct _ic_ledger_pb_v1_ArchiveIndexEntry { - uint64_t height_from; - uint64_t height_to; - bool has_canister_id; - ic_base_types_pb_v1_PrincipalId canister_id; -} ic_ledger_pb_v1_ArchiveIndexEntry; - -/* * Archive canister * - Init the archive canister */ -typedef struct _ic_ledger_pb_v1_ArchiveInit { - uint32_t node_max_memory_size_bytes; - uint32_t max_message_size_bytes; -} ic_ledger_pb_v1_ArchiveInit; - -typedef struct _ic_ledger_pb_v1_BlockHeight { - uint64_t height; -} ic_ledger_pb_v1_BlockHeight; - -/* Get a single block */ -typedef struct _ic_ledger_pb_v1_BlockRequest { - uint64_t block_height; -} ic_ledger_pb_v1_BlockRequest; - -typedef struct _ic_ledger_pb_v1_BlockResponse { - pb_size_t which_block_content; - union { - ic_ledger_pb_v1_EncodedBlock block; - ic_base_types_pb_v1_PrincipalId canister_id; - } block_content; -} ic_ledger_pb_v1_BlockResponse; - -/* Get a set of blocks */ -typedef struct _ic_ledger_pb_v1_GetBlocksRequest { - uint64_t start; - uint64_t length; -} ic_ledger_pb_v1_GetBlocksRequest; - -typedef struct _ic_ledger_pb_v1_GetBlocksResponse { - pb_size_t which_get_blocks_content; - union { - ic_ledger_pb_v1_EncodedBlocks blocks; - pb_callback_t error; - } get_blocks_content; -} ic_ledger_pb_v1_GetBlocksResponse; - -/* ** BASIC TYPES ** */ -typedef struct _ic_ledger_pb_v1_ICPTs { - uint64_t e8s; -} ic_ledger_pb_v1_ICPTs; - -/* Iterate through blocks */ -typedef struct _ic_ledger_pb_v1_IterBlocksRequest { - uint64_t start; - uint64_t length; -} ic_ledger_pb_v1_IterBlocksRequest; - -typedef struct _ic_ledger_pb_v1_Memo { - uint64_t memo; -} ic_ledger_pb_v1_Memo; - -typedef struct _ic_ledger_pb_v1_TimeStamp { - uint64_t timestamp_nanos; -} ic_ledger_pb_v1_TimeStamp; - -typedef struct _ic_ledger_pb_v1_Account { - bool has_identifier; - ic_ledger_pb_v1_AccountIdentifier identifier; - bool has_balance; - ic_ledger_pb_v1_ICPTs balance; -} ic_ledger_pb_v1_Account; - -/* Get the balance of an account */ -typedef struct _ic_ledger_pb_v1_AccountBalanceRequest { - bool has_account; - ic_ledger_pb_v1_AccountIdentifier account; -} ic_ledger_pb_v1_AccountBalanceRequest; - -typedef struct _ic_ledger_pb_v1_AccountBalanceResponse { - bool has_balance; - ic_ledger_pb_v1_ICPTs balance; -} ic_ledger_pb_v1_AccountBalanceResponse; - -typedef struct _ic_ledger_pb_v1_Burn { - bool has_from; - ic_ledger_pb_v1_AccountIdentifier from; - bool has_amount; - ic_ledger_pb_v1_ICPTs amount; -} ic_ledger_pb_v1_Burn; - -/* Archive any blocks older than this */ -typedef struct _ic_ledger_pb_v1_LedgerArchiveRequest { - bool has_timestamp; - ic_ledger_pb_v1_TimeStamp timestamp; -} ic_ledger_pb_v1_LedgerArchiveRequest; - -/* Initialise the ledger canister */ -typedef struct _ic_ledger_pb_v1_LedgerInit { - bool has_minting_account; - ic_ledger_pb_v1_AccountIdentifier minting_account; - pb_callback_t initial_values; - bool has_archive_canister; - ic_base_types_pb_v1_PrincipalId archive_canister; - uint32_t max_message_size_bytes; -} ic_ledger_pb_v1_LedgerInit; - -typedef struct _ic_ledger_pb_v1_Mint { - bool has_to; - ic_ledger_pb_v1_AccountIdentifier to; - bool has_amount; - ic_ledger_pb_v1_ICPTs amount; -} ic_ledger_pb_v1_Mint; - -/* Notify a canister that it has received a payment */ -typedef struct _ic_ledger_pb_v1_NotifyRequest { - bool has_block_height; - ic_ledger_pb_v1_BlockHeight block_height; - bool has_max_fee; - ic_ledger_pb_v1_ICPTs max_fee; - bool has_from_subaccount; - ic_ledger_pb_v1_Subaccount from_subaccount; - bool has_to_canister; - ic_base_types_pb_v1_PrincipalId to_canister; - bool has_to_subaccount; - ic_ledger_pb_v1_Subaccount to_subaccount; -} ic_ledger_pb_v1_NotifyRequest; - -typedef struct _ic_ledger_pb_v1_Payment { - bool has_receiver_gets; - ic_ledger_pb_v1_ICPTs receiver_gets; -} ic_ledger_pb_v1_Payment; - -typedef struct _ic_ledger_pb_v1_Refund { - bool has_refund; - ic_ledger_pb_v1_BlockHeight refund; - pb_callback_t error; -} ic_ledger_pb_v1_Refund; - -typedef struct _ic_ledger_pb_v1_Send { - bool has_from; - ic_ledger_pb_v1_AccountIdentifier from; - bool has_to; - ic_ledger_pb_v1_AccountIdentifier to; - bool has_amount; - ic_ledger_pb_v1_ICPTs amount; - bool has_max_fee; - ic_ledger_pb_v1_ICPTs max_fee; -} ic_ledger_pb_v1_Send; - -typedef struct _ic_ledger_pb_v1_SendResponse { - bool has_resulting_height; - ic_ledger_pb_v1_BlockHeight resulting_height; -} ic_ledger_pb_v1_SendResponse; - -typedef struct _ic_ledger_pb_v1_TipOfChainResponse { - bool has_certification; - ic_ledger_pb_v1_Certification certification; - bool has_chain_length; - ic_ledger_pb_v1_BlockHeight chain_length; -} ic_ledger_pb_v1_TipOfChainResponse; - -typedef struct _ic_ledger_pb_v1_TotalSupplyResponse { - bool has_total_supply; - ic_ledger_pb_v1_ICPTs total_supply; -} ic_ledger_pb_v1_TotalSupplyResponse; - -typedef struct _ic_ledger_pb_v1_TransactionNotificationRequest { - bool has_from; - ic_base_types_pb_v1_PrincipalId from; - bool has_from_subaccount; - ic_ledger_pb_v1_Subaccount from_subaccount; - bool has_to; - ic_base_types_pb_v1_PrincipalId to; - bool has_to_subaccount; - ic_ledger_pb_v1_Subaccount to_subaccount; - bool has_block_height; - ic_ledger_pb_v1_BlockHeight block_height; - bool has_amount; - ic_ledger_pb_v1_ICPTs amount; - bool has_memo; - ic_ledger_pb_v1_Memo memo; -} ic_ledger_pb_v1_TransactionNotificationRequest; - -typedef struct _ic_ledger_pb_v1_CyclesNotificationResponse { - pb_size_t which_response; - union { - ic_base_types_pb_v1_PrincipalId created_canister_id; - ic_ledger_pb_v1_Refund refund; - ic_ledger_pb_v1_ToppedUp topped_up; - } response; -} ic_ledger_pb_v1_CyclesNotificationResponse; - -/* Make a payment */ -typedef struct _ic_ledger_pb_v1_SendRequest { - bool has_memo; - ic_ledger_pb_v1_Memo memo; - bool has_payment; - ic_ledger_pb_v1_Payment payment; - bool has_max_fee; - ic_ledger_pb_v1_ICPTs max_fee; - bool has_from_subaccount; - ic_ledger_pb_v1_Subaccount from_subaccount; - bool has_to; - ic_ledger_pb_v1_AccountIdentifier to; - bool has_created_at; - ic_ledger_pb_v1_BlockHeight created_at; - bool has_created_at_time; - ic_ledger_pb_v1_TimeStamp created_at_time; -} ic_ledger_pb_v1_SendRequest; - -typedef struct _ic_ledger_pb_v1_Transaction { - pb_size_t which_transfer; - union { - ic_ledger_pb_v1_Burn burn; - ic_ledger_pb_v1_Mint mint; - ic_ledger_pb_v1_Send send; - } transfer; - bool has_memo; - ic_ledger_pb_v1_Memo memo; - bool has_created_at; - ic_ledger_pb_v1_BlockHeight created_at; - bool has_created_at_time; - ic_ledger_pb_v1_TimeStamp created_at_time; -} ic_ledger_pb_v1_Transaction; - -/* This is the */ -typedef struct _ic_ledger_pb_v1_Block { - bool has_parent_hash; - ic_ledger_pb_v1_Hash parent_hash; - bool has_timestamp; - ic_ledger_pb_v1_TimeStamp timestamp; - bool has_transaction; - ic_ledger_pb_v1_Transaction transaction; -} ic_ledger_pb_v1_Block; - - -#ifdef __cplusplus -extern "C" { -#endif - -/* Initializer values for message structs */ -#define ic_ledger_pb_v1_LedgerInit_init_default {false, ic_ledger_pb_v1_AccountIdentifier_init_default, {{NULL}, NULL}, false, ic_base_types_pb_v1_PrincipalId_init_default, 0} -#define ic_ledger_pb_v1_LedgerUpgrade_init_default {0} -#define ic_ledger_pb_v1_SendRequest_init_default {false, ic_ledger_pb_v1_Memo_init_default, false, ic_ledger_pb_v1_Payment_init_default, false, ic_ledger_pb_v1_ICPTs_init_default, false, ic_ledger_pb_v1_Subaccount_init_default, false, ic_ledger_pb_v1_AccountIdentifier_init_default, false, ic_ledger_pb_v1_BlockHeight_init_default, false, ic_ledger_pb_v1_TimeStamp_init_default} -#define ic_ledger_pb_v1_SendResponse_init_default {false, ic_ledger_pb_v1_BlockHeight_init_default} -#define ic_ledger_pb_v1_NotifyRequest_init_default {false, ic_ledger_pb_v1_BlockHeight_init_default, false, ic_ledger_pb_v1_ICPTs_init_default, false, ic_ledger_pb_v1_Subaccount_init_default, false, ic_base_types_pb_v1_PrincipalId_init_default, false, ic_ledger_pb_v1_Subaccount_init_default} -#define ic_ledger_pb_v1_NotifyResponse_init_default {0} -#define ic_ledger_pb_v1_TransactionNotificationRequest_init_default {false, ic_base_types_pb_v1_PrincipalId_init_default, false, ic_ledger_pb_v1_Subaccount_init_default, false, ic_base_types_pb_v1_PrincipalId_init_default, false, ic_ledger_pb_v1_Subaccount_init_default, false, ic_ledger_pb_v1_BlockHeight_init_default, false, ic_ledger_pb_v1_ICPTs_init_default, false, ic_ledger_pb_v1_Memo_init_default} -#define ic_ledger_pb_v1_TransactionNotificationResponse_init_default {{{NULL}, NULL}} -#define ic_ledger_pb_v1_CyclesNotificationResponse_init_default {0, {ic_base_types_pb_v1_PrincipalId_init_default}} -#define ic_ledger_pb_v1_AccountBalanceRequest_init_default {false, ic_ledger_pb_v1_AccountIdentifier_init_default} -#define ic_ledger_pb_v1_AccountBalanceResponse_init_default {false, ic_ledger_pb_v1_ICPTs_init_default} -#define ic_ledger_pb_v1_TipOfChainRequest_init_default {0} -#define ic_ledger_pb_v1_TipOfChainResponse_init_default {false, ic_ledger_pb_v1_Certification_init_default, false, ic_ledger_pb_v1_BlockHeight_init_default} -#define ic_ledger_pb_v1_TotalSupplyRequest_init_default {0} -#define ic_ledger_pb_v1_TotalSupplyResponse_init_default {false, ic_ledger_pb_v1_ICPTs_init_default} -#define ic_ledger_pb_v1_LedgerArchiveRequest_init_default {false, ic_ledger_pb_v1_TimeStamp_init_default} -#define ic_ledger_pb_v1_BlockRequest_init_default {0} -#define ic_ledger_pb_v1_EncodedBlock_init_default {{{NULL}, NULL}} -#define ic_ledger_pb_v1_BlockResponse_init_default {0, {ic_ledger_pb_v1_EncodedBlock_init_default}} -#define ic_ledger_pb_v1_GetBlocksRequest_init_default {0, 0} -#define ic_ledger_pb_v1_Refund_init_default {false, ic_ledger_pb_v1_BlockHeight_init_default, {{NULL}, NULL}} -#define ic_ledger_pb_v1_ToppedUp_init_default {0} -#define ic_ledger_pb_v1_EncodedBlocks_init_default {{{NULL}, NULL}} -#define ic_ledger_pb_v1_GetBlocksResponse_init_default {0, {ic_ledger_pb_v1_EncodedBlocks_init_default}} -#define ic_ledger_pb_v1_IterBlocksRequest_init_default {0, 0} -#define ic_ledger_pb_v1_IterBlocksResponse_init_default {{{NULL}, NULL}} -#define ic_ledger_pb_v1_ArchiveIndexEntry_init_default {0, 0, false, ic_base_types_pb_v1_PrincipalId_init_default} -#define ic_ledger_pb_v1_ArchiveIndexResponse_init_default {{{NULL}, NULL}} -#define ic_ledger_pb_v1_ArchiveInit_init_default {0, 0} -#define ic_ledger_pb_v1_ArchiveAddRequest_init_default {{{NULL}, NULL}} -#define ic_ledger_pb_v1_ArchiveAddResponse_init_default {0} -#define ic_ledger_pb_v1_GetNodesRequest_init_default {0} -#define ic_ledger_pb_v1_GetNodesResponse_init_default {{{NULL}, NULL}} -#define ic_ledger_pb_v1_ICPTs_init_default {0} -#define ic_ledger_pb_v1_Payment_init_default {false, ic_ledger_pb_v1_ICPTs_init_default} -#define ic_ledger_pb_v1_BlockHeight_init_default {0} -#define ic_ledger_pb_v1_Block_init_default {false, ic_ledger_pb_v1_Hash_init_default, false, ic_ledger_pb_v1_TimeStamp_init_default, false, ic_ledger_pb_v1_Transaction_init_default} -#define ic_ledger_pb_v1_Hash_init_default {{{NULL}, NULL}} -#define ic_ledger_pb_v1_Account_init_default {false, ic_ledger_pb_v1_AccountIdentifier_init_default, false, ic_ledger_pb_v1_ICPTs_init_default} -#define ic_ledger_pb_v1_Transaction_init_default {0, {ic_ledger_pb_v1_Burn_init_default}, false, ic_ledger_pb_v1_Memo_init_default, false, ic_ledger_pb_v1_BlockHeight_init_default, false, ic_ledger_pb_v1_TimeStamp_init_default} -#define ic_ledger_pb_v1_Send_init_default {false, ic_ledger_pb_v1_AccountIdentifier_init_default, false, ic_ledger_pb_v1_AccountIdentifier_init_default, false, ic_ledger_pb_v1_ICPTs_init_default, false, ic_ledger_pb_v1_ICPTs_init_default} -#define ic_ledger_pb_v1_Mint_init_default {false, ic_ledger_pb_v1_AccountIdentifier_init_default, false, ic_ledger_pb_v1_ICPTs_init_default} -#define ic_ledger_pb_v1_Burn_init_default {false, ic_ledger_pb_v1_AccountIdentifier_init_default, false, ic_ledger_pb_v1_ICPTs_init_default} -#define ic_ledger_pb_v1_AccountIdentifier_init_default {{0, {0}}} -#define ic_ledger_pb_v1_Subaccount_init_default {{{NULL}, NULL}} -#define ic_ledger_pb_v1_Memo_init_default {0} -#define ic_ledger_pb_v1_TimeStamp_init_default {0} -#define ic_ledger_pb_v1_Certification_init_default {{{NULL}, NULL}} -#define ic_ledger_pb_v1_LedgerInit_init_zero {false, ic_ledger_pb_v1_AccountIdentifier_init_zero, {{NULL}, NULL}, false, ic_base_types_pb_v1_PrincipalId_init_zero, 0} -#define ic_ledger_pb_v1_LedgerUpgrade_init_zero {0} -#define ic_ledger_pb_v1_SendRequest_init_zero {false, ic_ledger_pb_v1_Memo_init_zero, false, ic_ledger_pb_v1_Payment_init_zero, false, ic_ledger_pb_v1_ICPTs_init_zero, false, ic_ledger_pb_v1_Subaccount_init_zero, false, ic_ledger_pb_v1_AccountIdentifier_init_zero, false, ic_ledger_pb_v1_BlockHeight_init_zero, false, ic_ledger_pb_v1_TimeStamp_init_zero} -#define ic_ledger_pb_v1_SendResponse_init_zero {false, ic_ledger_pb_v1_BlockHeight_init_zero} -#define ic_ledger_pb_v1_NotifyRequest_init_zero {false, ic_ledger_pb_v1_BlockHeight_init_zero, false, ic_ledger_pb_v1_ICPTs_init_zero, false, ic_ledger_pb_v1_Subaccount_init_zero, false, ic_base_types_pb_v1_PrincipalId_init_zero, false, ic_ledger_pb_v1_Subaccount_init_zero} -#define ic_ledger_pb_v1_NotifyResponse_init_zero {0} -#define ic_ledger_pb_v1_TransactionNotificationRequest_init_zero {false, ic_base_types_pb_v1_PrincipalId_init_zero, false, ic_ledger_pb_v1_Subaccount_init_zero, false, ic_base_types_pb_v1_PrincipalId_init_zero, false, ic_ledger_pb_v1_Subaccount_init_zero, false, ic_ledger_pb_v1_BlockHeight_init_zero, false, ic_ledger_pb_v1_ICPTs_init_zero, false, ic_ledger_pb_v1_Memo_init_zero} -#define ic_ledger_pb_v1_TransactionNotificationResponse_init_zero {{{NULL}, NULL}} -#define ic_ledger_pb_v1_CyclesNotificationResponse_init_zero {0, {ic_base_types_pb_v1_PrincipalId_init_zero}} -#define ic_ledger_pb_v1_AccountBalanceRequest_init_zero {false, ic_ledger_pb_v1_AccountIdentifier_init_zero} -#define ic_ledger_pb_v1_AccountBalanceResponse_init_zero {false, ic_ledger_pb_v1_ICPTs_init_zero} -#define ic_ledger_pb_v1_TipOfChainRequest_init_zero {0} -#define ic_ledger_pb_v1_TipOfChainResponse_init_zero {false, ic_ledger_pb_v1_Certification_init_zero, false, ic_ledger_pb_v1_BlockHeight_init_zero} -#define ic_ledger_pb_v1_TotalSupplyRequest_init_zero {0} -#define ic_ledger_pb_v1_TotalSupplyResponse_init_zero {false, ic_ledger_pb_v1_ICPTs_init_zero} -#define ic_ledger_pb_v1_LedgerArchiveRequest_init_zero {false, ic_ledger_pb_v1_TimeStamp_init_zero} -#define ic_ledger_pb_v1_BlockRequest_init_zero {0} -#define ic_ledger_pb_v1_EncodedBlock_init_zero {{{NULL}, NULL}} -#define ic_ledger_pb_v1_BlockResponse_init_zero {0, {ic_ledger_pb_v1_EncodedBlock_init_zero}} -#define ic_ledger_pb_v1_GetBlocksRequest_init_zero {0, 0} -#define ic_ledger_pb_v1_Refund_init_zero {false, ic_ledger_pb_v1_BlockHeight_init_zero, {{NULL}, NULL}} -#define ic_ledger_pb_v1_ToppedUp_init_zero {0} -#define ic_ledger_pb_v1_EncodedBlocks_init_zero {{{NULL}, NULL}} -#define ic_ledger_pb_v1_GetBlocksResponse_init_zero {0, {ic_ledger_pb_v1_EncodedBlocks_init_zero}} -#define ic_ledger_pb_v1_IterBlocksRequest_init_zero {0, 0} -#define ic_ledger_pb_v1_IterBlocksResponse_init_zero {{{NULL}, NULL}} -#define ic_ledger_pb_v1_ArchiveIndexEntry_init_zero {0, 0, false, ic_base_types_pb_v1_PrincipalId_init_zero} -#define ic_ledger_pb_v1_ArchiveIndexResponse_init_zero {{{NULL}, NULL}} -#define ic_ledger_pb_v1_ArchiveInit_init_zero {0, 0} -#define ic_ledger_pb_v1_ArchiveAddRequest_init_zero {{{NULL}, NULL}} -#define ic_ledger_pb_v1_ArchiveAddResponse_init_zero {0} -#define ic_ledger_pb_v1_GetNodesRequest_init_zero {0} -#define ic_ledger_pb_v1_GetNodesResponse_init_zero {{{NULL}, NULL}} -#define ic_ledger_pb_v1_ICPTs_init_zero {0} -#define ic_ledger_pb_v1_Payment_init_zero {false, ic_ledger_pb_v1_ICPTs_init_zero} -#define ic_ledger_pb_v1_BlockHeight_init_zero {0} -#define ic_ledger_pb_v1_Block_init_zero {false, ic_ledger_pb_v1_Hash_init_zero, false, ic_ledger_pb_v1_TimeStamp_init_zero, false, ic_ledger_pb_v1_Transaction_init_zero} -#define ic_ledger_pb_v1_Hash_init_zero {{{NULL}, NULL}} -#define ic_ledger_pb_v1_Account_init_zero {false, ic_ledger_pb_v1_AccountIdentifier_init_zero, false, ic_ledger_pb_v1_ICPTs_init_zero} -#define ic_ledger_pb_v1_Transaction_init_zero {0, {ic_ledger_pb_v1_Burn_init_zero}, false, ic_ledger_pb_v1_Memo_init_zero, false, ic_ledger_pb_v1_BlockHeight_init_zero, false, ic_ledger_pb_v1_TimeStamp_init_zero} -#define ic_ledger_pb_v1_Send_init_zero {false, ic_ledger_pb_v1_AccountIdentifier_init_zero, false, ic_ledger_pb_v1_AccountIdentifier_init_zero, false, ic_ledger_pb_v1_ICPTs_init_zero, false, ic_ledger_pb_v1_ICPTs_init_zero} -#define ic_ledger_pb_v1_Mint_init_zero {false, ic_ledger_pb_v1_AccountIdentifier_init_zero, false, ic_ledger_pb_v1_ICPTs_init_zero} -#define ic_ledger_pb_v1_Burn_init_zero {false, ic_ledger_pb_v1_AccountIdentifier_init_zero, false, ic_ledger_pb_v1_ICPTs_init_zero} -#define ic_ledger_pb_v1_AccountIdentifier_init_zero {{0, {0}}} -#define ic_ledger_pb_v1_Subaccount_init_zero {{{NULL}, NULL}} -#define ic_ledger_pb_v1_Memo_init_zero {0} -#define ic_ledger_pb_v1_TimeStamp_init_zero {0} -#define ic_ledger_pb_v1_Certification_init_zero {{{NULL}, NULL}} - -/* Field tags (for use in manual encoding/decoding) */ -#define ic_ledger_pb_v1_ArchiveAddRequest_blocks_tag 1 -#define ic_ledger_pb_v1_ArchiveIndexResponse_entries_tag 1 -#define ic_ledger_pb_v1_Certification_certification_tag 1 -#define ic_ledger_pb_v1_EncodedBlock_block_tag 1 -#define ic_ledger_pb_v1_EncodedBlocks_blocks_tag 1 -#define ic_ledger_pb_v1_GetNodesResponse_nodes_tag 1 -#define ic_ledger_pb_v1_Hash_hash_tag 1 -#define ic_ledger_pb_v1_IterBlocksResponse_blocks_tag 1 -#define ic_ledger_pb_v1_Subaccount_sub_account_tag 1 -#define ic_ledger_pb_v1_TransactionNotificationResponse_response_tag 1 -#define ic_ledger_pb_v1_AccountIdentifier_hash_tag 1 -#define ic_ledger_pb_v1_ArchiveIndexEntry_height_from_tag 1 -#define ic_ledger_pb_v1_ArchiveIndexEntry_height_to_tag 2 -#define ic_ledger_pb_v1_ArchiveIndexEntry_canister_id_tag 3 -#define ic_ledger_pb_v1_ArchiveInit_node_max_memory_size_bytes_tag 1 -#define ic_ledger_pb_v1_ArchiveInit_max_message_size_bytes_tag 2 -#define ic_ledger_pb_v1_BlockHeight_height_tag 1 -#define ic_ledger_pb_v1_BlockRequest_block_height_tag 1 -#define ic_ledger_pb_v1_BlockResponse_block_tag 1 -#define ic_ledger_pb_v1_BlockResponse_canister_id_tag 2 -#define ic_ledger_pb_v1_GetBlocksRequest_start_tag 1 -#define ic_ledger_pb_v1_GetBlocksRequest_length_tag 2 -#define ic_ledger_pb_v1_GetBlocksResponse_blocks_tag 1 -#define ic_ledger_pb_v1_GetBlocksResponse_error_tag 2 -#define ic_ledger_pb_v1_ICPTs_e8s_tag 1 -#define ic_ledger_pb_v1_IterBlocksRequest_start_tag 1 -#define ic_ledger_pb_v1_IterBlocksRequest_length_tag 2 -#define ic_ledger_pb_v1_Memo_memo_tag 1 -#define ic_ledger_pb_v1_TimeStamp_timestamp_nanos_tag 1 -#define ic_ledger_pb_v1_Account_identifier_tag 1 -#define ic_ledger_pb_v1_Account_balance_tag 2 -#define ic_ledger_pb_v1_AccountBalanceRequest_account_tag 1 -#define ic_ledger_pb_v1_AccountBalanceResponse_balance_tag 1 -#define ic_ledger_pb_v1_Burn_from_tag 1 -#define ic_ledger_pb_v1_Burn_amount_tag 3 -#define ic_ledger_pb_v1_LedgerArchiveRequest_timestamp_tag 1 -#define ic_ledger_pb_v1_LedgerInit_minting_account_tag 1 -#define ic_ledger_pb_v1_LedgerInit_initial_values_tag 2 -#define ic_ledger_pb_v1_LedgerInit_archive_canister_tag 3 -#define ic_ledger_pb_v1_LedgerInit_max_message_size_bytes_tag 4 -#define ic_ledger_pb_v1_Mint_to_tag 2 -#define ic_ledger_pb_v1_Mint_amount_tag 3 -#define ic_ledger_pb_v1_NotifyRequest_block_height_tag 1 -#define ic_ledger_pb_v1_NotifyRequest_max_fee_tag 2 -#define ic_ledger_pb_v1_NotifyRequest_from_subaccount_tag 3 -#define ic_ledger_pb_v1_NotifyRequest_to_canister_tag 4 -#define ic_ledger_pb_v1_NotifyRequest_to_subaccount_tag 5 -#define ic_ledger_pb_v1_Payment_receiver_gets_tag 1 -#define ic_ledger_pb_v1_Refund_refund_tag 2 -#define ic_ledger_pb_v1_Refund_error_tag 3 -#define ic_ledger_pb_v1_Send_from_tag 1 -#define ic_ledger_pb_v1_Send_to_tag 2 -#define ic_ledger_pb_v1_Send_amount_tag 3 -#define ic_ledger_pb_v1_Send_max_fee_tag 4 -#define ic_ledger_pb_v1_SendResponse_resulting_height_tag 1 -#define ic_ledger_pb_v1_TipOfChainResponse_certification_tag 1 -#define ic_ledger_pb_v1_TipOfChainResponse_chain_length_tag 2 -#define ic_ledger_pb_v1_TotalSupplyResponse_total_supply_tag 1 -#define ic_ledger_pb_v1_TransactionNotificationRequest_from_tag 1 -#define ic_ledger_pb_v1_TransactionNotificationRequest_from_subaccount_tag 2 -#define ic_ledger_pb_v1_TransactionNotificationRequest_to_tag 3 -#define ic_ledger_pb_v1_TransactionNotificationRequest_to_subaccount_tag 4 -#define ic_ledger_pb_v1_TransactionNotificationRequest_block_height_tag 5 -#define ic_ledger_pb_v1_TransactionNotificationRequest_amount_tag 6 -#define ic_ledger_pb_v1_TransactionNotificationRequest_memo_tag 7 -#define ic_ledger_pb_v1_CyclesNotificationResponse_created_canister_id_tag 1 -#define ic_ledger_pb_v1_CyclesNotificationResponse_refund_tag 2 -#define ic_ledger_pb_v1_CyclesNotificationResponse_topped_up_tag 3 -#define ic_ledger_pb_v1_SendRequest_memo_tag 1 -#define ic_ledger_pb_v1_SendRequest_payment_tag 2 -#define ic_ledger_pb_v1_SendRequest_max_fee_tag 3 -#define ic_ledger_pb_v1_SendRequest_from_subaccount_tag 4 -#define ic_ledger_pb_v1_SendRequest_to_tag 5 -#define ic_ledger_pb_v1_SendRequest_created_at_tag 6 -#define ic_ledger_pb_v1_SendRequest_created_at_time_tag 7 -#define ic_ledger_pb_v1_Transaction_burn_tag 1 -#define ic_ledger_pb_v1_Transaction_mint_tag 2 -#define ic_ledger_pb_v1_Transaction_send_tag 3 -#define ic_ledger_pb_v1_Transaction_memo_tag 4 -#define ic_ledger_pb_v1_Transaction_created_at_tag 5 -#define ic_ledger_pb_v1_Transaction_created_at_time_tag 6 -#define ic_ledger_pb_v1_Block_parent_hash_tag 1 -#define ic_ledger_pb_v1_Block_timestamp_tag 2 -#define ic_ledger_pb_v1_Block_transaction_tag 3 - -/* Struct field encoding specification for nanopb */ -#define ic_ledger_pb_v1_LedgerInit_FIELDLIST(X, a) \ -X(a, STATIC, OPTIONAL, MESSAGE, minting_account, 1) \ -X(a, CALLBACK, REPEATED, MESSAGE, initial_values, 2) \ -X(a, STATIC, OPTIONAL, MESSAGE, archive_canister, 3) \ -X(a, STATIC, SINGULAR, UINT32, max_message_size_bytes, 4) -#define ic_ledger_pb_v1_LedgerInit_CALLBACK pb_default_field_callback -#define ic_ledger_pb_v1_LedgerInit_DEFAULT NULL -#define ic_ledger_pb_v1_LedgerInit_minting_account_MSGTYPE ic_ledger_pb_v1_AccountIdentifier -#define ic_ledger_pb_v1_LedgerInit_initial_values_MSGTYPE ic_ledger_pb_v1_Account -#define ic_ledger_pb_v1_LedgerInit_archive_canister_MSGTYPE ic_base_types_pb_v1_PrincipalId - -#define ic_ledger_pb_v1_LedgerUpgrade_FIELDLIST(X, a) \ - -#define ic_ledger_pb_v1_LedgerUpgrade_CALLBACK NULL -#define ic_ledger_pb_v1_LedgerUpgrade_DEFAULT NULL - -#define ic_ledger_pb_v1_SendRequest_FIELDLIST(X, a) \ -X(a, STATIC, OPTIONAL, MESSAGE, memo, 1) \ -X(a, STATIC, OPTIONAL, MESSAGE, payment, 2) \ -X(a, STATIC, OPTIONAL, MESSAGE, max_fee, 3) \ -X(a, STATIC, OPTIONAL, MESSAGE, from_subaccount, 4) \ -X(a, STATIC, OPTIONAL, MESSAGE, to, 5) \ -X(a, STATIC, OPTIONAL, MESSAGE, created_at, 6) \ -X(a, STATIC, OPTIONAL, MESSAGE, created_at_time, 7) -#define ic_ledger_pb_v1_SendRequest_CALLBACK NULL -#define ic_ledger_pb_v1_SendRequest_DEFAULT NULL -#define ic_ledger_pb_v1_SendRequest_memo_MSGTYPE ic_ledger_pb_v1_Memo -#define ic_ledger_pb_v1_SendRequest_payment_MSGTYPE ic_ledger_pb_v1_Payment -#define ic_ledger_pb_v1_SendRequest_max_fee_MSGTYPE ic_ledger_pb_v1_ICPTs -#define ic_ledger_pb_v1_SendRequest_from_subaccount_MSGTYPE ic_ledger_pb_v1_Subaccount -#define ic_ledger_pb_v1_SendRequest_to_MSGTYPE ic_ledger_pb_v1_AccountIdentifier -#define ic_ledger_pb_v1_SendRequest_created_at_MSGTYPE ic_ledger_pb_v1_BlockHeight -#define ic_ledger_pb_v1_SendRequest_created_at_time_MSGTYPE ic_ledger_pb_v1_TimeStamp - -#define ic_ledger_pb_v1_SendResponse_FIELDLIST(X, a) \ -X(a, STATIC, OPTIONAL, MESSAGE, resulting_height, 1) -#define ic_ledger_pb_v1_SendResponse_CALLBACK NULL -#define ic_ledger_pb_v1_SendResponse_DEFAULT NULL -#define ic_ledger_pb_v1_SendResponse_resulting_height_MSGTYPE ic_ledger_pb_v1_BlockHeight - -#define ic_ledger_pb_v1_NotifyRequest_FIELDLIST(X, a) \ -X(a, STATIC, OPTIONAL, MESSAGE, block_height, 1) \ -X(a, STATIC, OPTIONAL, MESSAGE, max_fee, 2) \ -X(a, STATIC, OPTIONAL, MESSAGE, from_subaccount, 3) \ -X(a, STATIC, OPTIONAL, MESSAGE, to_canister, 4) \ -X(a, STATIC, OPTIONAL, MESSAGE, to_subaccount, 5) -#define ic_ledger_pb_v1_NotifyRequest_CALLBACK NULL -#define ic_ledger_pb_v1_NotifyRequest_DEFAULT NULL -#define ic_ledger_pb_v1_NotifyRequest_block_height_MSGTYPE ic_ledger_pb_v1_BlockHeight -#define ic_ledger_pb_v1_NotifyRequest_max_fee_MSGTYPE ic_ledger_pb_v1_ICPTs -#define ic_ledger_pb_v1_NotifyRequest_from_subaccount_MSGTYPE ic_ledger_pb_v1_Subaccount -#define ic_ledger_pb_v1_NotifyRequest_to_canister_MSGTYPE ic_base_types_pb_v1_PrincipalId -#define ic_ledger_pb_v1_NotifyRequest_to_subaccount_MSGTYPE ic_ledger_pb_v1_Subaccount - -#define ic_ledger_pb_v1_NotifyResponse_FIELDLIST(X, a) \ - -#define ic_ledger_pb_v1_NotifyResponse_CALLBACK NULL -#define ic_ledger_pb_v1_NotifyResponse_DEFAULT NULL - -#define ic_ledger_pb_v1_TransactionNotificationRequest_FIELDLIST(X, a) \ -X(a, STATIC, OPTIONAL, MESSAGE, from, 1) \ -X(a, STATIC, OPTIONAL, MESSAGE, from_subaccount, 2) \ -X(a, STATIC, OPTIONAL, MESSAGE, to, 3) \ -X(a, STATIC, OPTIONAL, MESSAGE, to_subaccount, 4) \ -X(a, STATIC, OPTIONAL, MESSAGE, block_height, 5) \ -X(a, STATIC, OPTIONAL, MESSAGE, amount, 6) \ -X(a, STATIC, OPTIONAL, MESSAGE, memo, 7) -#define ic_ledger_pb_v1_TransactionNotificationRequest_CALLBACK NULL -#define ic_ledger_pb_v1_TransactionNotificationRequest_DEFAULT NULL -#define ic_ledger_pb_v1_TransactionNotificationRequest_from_MSGTYPE ic_base_types_pb_v1_PrincipalId -#define ic_ledger_pb_v1_TransactionNotificationRequest_from_subaccount_MSGTYPE ic_ledger_pb_v1_Subaccount -#define ic_ledger_pb_v1_TransactionNotificationRequest_to_MSGTYPE ic_base_types_pb_v1_PrincipalId -#define ic_ledger_pb_v1_TransactionNotificationRequest_to_subaccount_MSGTYPE ic_ledger_pb_v1_Subaccount -#define ic_ledger_pb_v1_TransactionNotificationRequest_block_height_MSGTYPE ic_ledger_pb_v1_BlockHeight -#define ic_ledger_pb_v1_TransactionNotificationRequest_amount_MSGTYPE ic_ledger_pb_v1_ICPTs -#define ic_ledger_pb_v1_TransactionNotificationRequest_memo_MSGTYPE ic_ledger_pb_v1_Memo - -#define ic_ledger_pb_v1_TransactionNotificationResponse_FIELDLIST(X, a) \ -X(a, CALLBACK, SINGULAR, BYTES, response, 1) -#define ic_ledger_pb_v1_TransactionNotificationResponse_CALLBACK pb_default_field_callback -#define ic_ledger_pb_v1_TransactionNotificationResponse_DEFAULT NULL - -#define ic_ledger_pb_v1_CyclesNotificationResponse_FIELDLIST(X, a) \ -X(a, STATIC, ONEOF, MESSAGE, (response,created_canister_id,response.created_canister_id), 1) \ -X(a, STATIC, ONEOF, MESSAGE, (response,refund,response.refund), 2) \ -X(a, STATIC, ONEOF, MESSAGE, (response,topped_up,response.topped_up), 3) -#define ic_ledger_pb_v1_CyclesNotificationResponse_CALLBACK NULL -#define ic_ledger_pb_v1_CyclesNotificationResponse_DEFAULT NULL -#define ic_ledger_pb_v1_CyclesNotificationResponse_response_created_canister_id_MSGTYPE ic_base_types_pb_v1_PrincipalId -#define ic_ledger_pb_v1_CyclesNotificationResponse_response_refund_MSGTYPE ic_ledger_pb_v1_Refund -#define ic_ledger_pb_v1_CyclesNotificationResponse_response_topped_up_MSGTYPE ic_ledger_pb_v1_ToppedUp - -#define ic_ledger_pb_v1_AccountBalanceRequest_FIELDLIST(X, a) \ -X(a, STATIC, OPTIONAL, MESSAGE, account, 1) -#define ic_ledger_pb_v1_AccountBalanceRequest_CALLBACK NULL -#define ic_ledger_pb_v1_AccountBalanceRequest_DEFAULT NULL -#define ic_ledger_pb_v1_AccountBalanceRequest_account_MSGTYPE ic_ledger_pb_v1_AccountIdentifier - -#define ic_ledger_pb_v1_AccountBalanceResponse_FIELDLIST(X, a) \ -X(a, STATIC, OPTIONAL, MESSAGE, balance, 1) -#define ic_ledger_pb_v1_AccountBalanceResponse_CALLBACK NULL -#define ic_ledger_pb_v1_AccountBalanceResponse_DEFAULT NULL -#define ic_ledger_pb_v1_AccountBalanceResponse_balance_MSGTYPE ic_ledger_pb_v1_ICPTs - -#define ic_ledger_pb_v1_TipOfChainRequest_FIELDLIST(X, a) \ - -#define ic_ledger_pb_v1_TipOfChainRequest_CALLBACK NULL -#define ic_ledger_pb_v1_TipOfChainRequest_DEFAULT NULL - -#define ic_ledger_pb_v1_TipOfChainResponse_FIELDLIST(X, a) \ -X(a, STATIC, OPTIONAL, MESSAGE, certification, 1) \ -X(a, STATIC, OPTIONAL, MESSAGE, chain_length, 2) -#define ic_ledger_pb_v1_TipOfChainResponse_CALLBACK NULL -#define ic_ledger_pb_v1_TipOfChainResponse_DEFAULT NULL -#define ic_ledger_pb_v1_TipOfChainResponse_certification_MSGTYPE ic_ledger_pb_v1_Certification -#define ic_ledger_pb_v1_TipOfChainResponse_chain_length_MSGTYPE ic_ledger_pb_v1_BlockHeight - -#define ic_ledger_pb_v1_TotalSupplyRequest_FIELDLIST(X, a) \ - -#define ic_ledger_pb_v1_TotalSupplyRequest_CALLBACK NULL -#define ic_ledger_pb_v1_TotalSupplyRequest_DEFAULT NULL - -#define ic_ledger_pb_v1_TotalSupplyResponse_FIELDLIST(X, a) \ -X(a, STATIC, OPTIONAL, MESSAGE, total_supply, 1) -#define ic_ledger_pb_v1_TotalSupplyResponse_CALLBACK NULL -#define ic_ledger_pb_v1_TotalSupplyResponse_DEFAULT NULL -#define ic_ledger_pb_v1_TotalSupplyResponse_total_supply_MSGTYPE ic_ledger_pb_v1_ICPTs - -#define ic_ledger_pb_v1_LedgerArchiveRequest_FIELDLIST(X, a) \ -X(a, STATIC, OPTIONAL, MESSAGE, timestamp, 1) -#define ic_ledger_pb_v1_LedgerArchiveRequest_CALLBACK NULL -#define ic_ledger_pb_v1_LedgerArchiveRequest_DEFAULT NULL -#define ic_ledger_pb_v1_LedgerArchiveRequest_timestamp_MSGTYPE ic_ledger_pb_v1_TimeStamp - -#define ic_ledger_pb_v1_BlockRequest_FIELDLIST(X, a) \ -X(a, STATIC, SINGULAR, UINT64, block_height, 1) -#define ic_ledger_pb_v1_BlockRequest_CALLBACK NULL -#define ic_ledger_pb_v1_BlockRequest_DEFAULT NULL - -#define ic_ledger_pb_v1_EncodedBlock_FIELDLIST(X, a) \ -X(a, CALLBACK, SINGULAR, BYTES, block, 1) -#define ic_ledger_pb_v1_EncodedBlock_CALLBACK pb_default_field_callback -#define ic_ledger_pb_v1_EncodedBlock_DEFAULT NULL - -#define ic_ledger_pb_v1_BlockResponse_FIELDLIST(X, a) \ -X(a, STATIC, ONEOF, MESSAGE, (block_content,block,block_content.block), 1) \ -X(a, STATIC, ONEOF, MESSAGE, (block_content,canister_id,block_content.canister_id), 2) -#define ic_ledger_pb_v1_BlockResponse_CALLBACK NULL -#define ic_ledger_pb_v1_BlockResponse_DEFAULT NULL -#define ic_ledger_pb_v1_BlockResponse_block_content_block_MSGTYPE ic_ledger_pb_v1_EncodedBlock -#define ic_ledger_pb_v1_BlockResponse_block_content_canister_id_MSGTYPE ic_base_types_pb_v1_PrincipalId - -#define ic_ledger_pb_v1_GetBlocksRequest_FIELDLIST(X, a) \ -X(a, STATIC, SINGULAR, UINT64, start, 1) \ -X(a, STATIC, SINGULAR, UINT64, length, 2) -#define ic_ledger_pb_v1_GetBlocksRequest_CALLBACK NULL -#define ic_ledger_pb_v1_GetBlocksRequest_DEFAULT NULL - -#define ic_ledger_pb_v1_Refund_FIELDLIST(X, a) \ -X(a, STATIC, OPTIONAL, MESSAGE, refund, 2) \ -X(a, CALLBACK, SINGULAR, STRING, error, 3) -#define ic_ledger_pb_v1_Refund_CALLBACK pb_default_field_callback -#define ic_ledger_pb_v1_Refund_DEFAULT NULL -#define ic_ledger_pb_v1_Refund_refund_MSGTYPE ic_ledger_pb_v1_BlockHeight - -#define ic_ledger_pb_v1_ToppedUp_FIELDLIST(X, a) \ - -#define ic_ledger_pb_v1_ToppedUp_CALLBACK NULL -#define ic_ledger_pb_v1_ToppedUp_DEFAULT NULL - -#define ic_ledger_pb_v1_EncodedBlocks_FIELDLIST(X, a) \ -X(a, CALLBACK, REPEATED, MESSAGE, blocks, 1) -#define ic_ledger_pb_v1_EncodedBlocks_CALLBACK pb_default_field_callback -#define ic_ledger_pb_v1_EncodedBlocks_DEFAULT NULL -#define ic_ledger_pb_v1_EncodedBlocks_blocks_MSGTYPE ic_ledger_pb_v1_EncodedBlock - -#define ic_ledger_pb_v1_GetBlocksResponse_FIELDLIST(X, a) \ -X(a, STATIC, ONEOF, MESSAGE, (get_blocks_content,blocks,get_blocks_content.blocks), 1) \ -X(a, CALLBACK, ONEOF, STRING, (get_blocks_content,error,get_blocks_content.error), 2) -#define ic_ledger_pb_v1_GetBlocksResponse_CALLBACK pb_default_field_callback -#define ic_ledger_pb_v1_GetBlocksResponse_DEFAULT NULL -#define ic_ledger_pb_v1_GetBlocksResponse_get_blocks_content_blocks_MSGTYPE ic_ledger_pb_v1_EncodedBlocks - -#define ic_ledger_pb_v1_IterBlocksRequest_FIELDLIST(X, a) \ -X(a, STATIC, SINGULAR, UINT64, start, 1) \ -X(a, STATIC, SINGULAR, UINT64, length, 2) -#define ic_ledger_pb_v1_IterBlocksRequest_CALLBACK NULL -#define ic_ledger_pb_v1_IterBlocksRequest_DEFAULT NULL - -#define ic_ledger_pb_v1_IterBlocksResponse_FIELDLIST(X, a) \ -X(a, CALLBACK, REPEATED, MESSAGE, blocks, 1) -#define ic_ledger_pb_v1_IterBlocksResponse_CALLBACK pb_default_field_callback -#define ic_ledger_pb_v1_IterBlocksResponse_DEFAULT NULL -#define ic_ledger_pb_v1_IterBlocksResponse_blocks_MSGTYPE ic_ledger_pb_v1_EncodedBlock - -#define ic_ledger_pb_v1_ArchiveIndexEntry_FIELDLIST(X, a) \ -X(a, STATIC, SINGULAR, UINT64, height_from, 1) \ -X(a, STATIC, SINGULAR, UINT64, height_to, 2) \ -X(a, STATIC, OPTIONAL, MESSAGE, canister_id, 3) -#define ic_ledger_pb_v1_ArchiveIndexEntry_CALLBACK NULL -#define ic_ledger_pb_v1_ArchiveIndexEntry_DEFAULT NULL -#define ic_ledger_pb_v1_ArchiveIndexEntry_canister_id_MSGTYPE ic_base_types_pb_v1_PrincipalId - -#define ic_ledger_pb_v1_ArchiveIndexResponse_FIELDLIST(X, a) \ -X(a, CALLBACK, REPEATED, MESSAGE, entries, 1) -#define ic_ledger_pb_v1_ArchiveIndexResponse_CALLBACK pb_default_field_callback -#define ic_ledger_pb_v1_ArchiveIndexResponse_DEFAULT NULL -#define ic_ledger_pb_v1_ArchiveIndexResponse_entries_MSGTYPE ic_ledger_pb_v1_ArchiveIndexEntry - -#define ic_ledger_pb_v1_ArchiveInit_FIELDLIST(X, a) \ -X(a, STATIC, SINGULAR, UINT32, node_max_memory_size_bytes, 1) \ -X(a, STATIC, SINGULAR, UINT32, max_message_size_bytes, 2) -#define ic_ledger_pb_v1_ArchiveInit_CALLBACK NULL -#define ic_ledger_pb_v1_ArchiveInit_DEFAULT NULL - -#define ic_ledger_pb_v1_ArchiveAddRequest_FIELDLIST(X, a) \ -X(a, CALLBACK, REPEATED, MESSAGE, blocks, 1) -#define ic_ledger_pb_v1_ArchiveAddRequest_CALLBACK pb_default_field_callback -#define ic_ledger_pb_v1_ArchiveAddRequest_DEFAULT NULL -#define ic_ledger_pb_v1_ArchiveAddRequest_blocks_MSGTYPE ic_ledger_pb_v1_Block - -#define ic_ledger_pb_v1_ArchiveAddResponse_FIELDLIST(X, a) \ - -#define ic_ledger_pb_v1_ArchiveAddResponse_CALLBACK NULL -#define ic_ledger_pb_v1_ArchiveAddResponse_DEFAULT NULL - -#define ic_ledger_pb_v1_GetNodesRequest_FIELDLIST(X, a) \ - -#define ic_ledger_pb_v1_GetNodesRequest_CALLBACK NULL -#define ic_ledger_pb_v1_GetNodesRequest_DEFAULT NULL - -#define ic_ledger_pb_v1_GetNodesResponse_FIELDLIST(X, a) \ -X(a, CALLBACK, REPEATED, MESSAGE, nodes, 1) -#define ic_ledger_pb_v1_GetNodesResponse_CALLBACK pb_default_field_callback -#define ic_ledger_pb_v1_GetNodesResponse_DEFAULT NULL -#define ic_ledger_pb_v1_GetNodesResponse_nodes_MSGTYPE ic_base_types_pb_v1_PrincipalId - -#define ic_ledger_pb_v1_ICPTs_FIELDLIST(X, a) \ -X(a, STATIC, SINGULAR, UINT64, e8s, 1) -#define ic_ledger_pb_v1_ICPTs_CALLBACK NULL -#define ic_ledger_pb_v1_ICPTs_DEFAULT NULL - -#define ic_ledger_pb_v1_Payment_FIELDLIST(X, a) \ -X(a, STATIC, OPTIONAL, MESSAGE, receiver_gets, 1) -#define ic_ledger_pb_v1_Payment_CALLBACK NULL -#define ic_ledger_pb_v1_Payment_DEFAULT NULL -#define ic_ledger_pb_v1_Payment_receiver_gets_MSGTYPE ic_ledger_pb_v1_ICPTs - -#define ic_ledger_pb_v1_BlockHeight_FIELDLIST(X, a) \ -X(a, STATIC, SINGULAR, UINT64, height, 1) -#define ic_ledger_pb_v1_BlockHeight_CALLBACK NULL -#define ic_ledger_pb_v1_BlockHeight_DEFAULT NULL - -#define ic_ledger_pb_v1_Block_FIELDLIST(X, a) \ -X(a, STATIC, OPTIONAL, MESSAGE, parent_hash, 1) \ -X(a, STATIC, OPTIONAL, MESSAGE, timestamp, 2) \ -X(a, STATIC, OPTIONAL, MESSAGE, transaction, 3) -#define ic_ledger_pb_v1_Block_CALLBACK NULL -#define ic_ledger_pb_v1_Block_DEFAULT NULL -#define ic_ledger_pb_v1_Block_parent_hash_MSGTYPE ic_ledger_pb_v1_Hash -#define ic_ledger_pb_v1_Block_timestamp_MSGTYPE ic_ledger_pb_v1_TimeStamp -#define ic_ledger_pb_v1_Block_transaction_MSGTYPE ic_ledger_pb_v1_Transaction - -#define ic_ledger_pb_v1_Hash_FIELDLIST(X, a) \ -X(a, CALLBACK, SINGULAR, BYTES, hash, 1) -#define ic_ledger_pb_v1_Hash_CALLBACK pb_default_field_callback -#define ic_ledger_pb_v1_Hash_DEFAULT NULL - -#define ic_ledger_pb_v1_Account_FIELDLIST(X, a) \ -X(a, STATIC, OPTIONAL, MESSAGE, identifier, 1) \ -X(a, STATIC, OPTIONAL, MESSAGE, balance, 2) -#define ic_ledger_pb_v1_Account_CALLBACK NULL -#define ic_ledger_pb_v1_Account_DEFAULT NULL -#define ic_ledger_pb_v1_Account_identifier_MSGTYPE ic_ledger_pb_v1_AccountIdentifier -#define ic_ledger_pb_v1_Account_balance_MSGTYPE ic_ledger_pb_v1_ICPTs - -#define ic_ledger_pb_v1_Transaction_FIELDLIST(X, a) \ -X(a, STATIC, ONEOF, MESSAGE, (transfer,burn,transfer.burn), 1) \ -X(a, STATIC, ONEOF, MESSAGE, (transfer,mint,transfer.mint), 2) \ -X(a, STATIC, ONEOF, MESSAGE, (transfer,send,transfer.send), 3) \ -X(a, STATIC, OPTIONAL, MESSAGE, memo, 4) \ -X(a, STATIC, OPTIONAL, MESSAGE, created_at, 5) \ -X(a, STATIC, OPTIONAL, MESSAGE, created_at_time, 6) -#define ic_ledger_pb_v1_Transaction_CALLBACK NULL -#define ic_ledger_pb_v1_Transaction_DEFAULT NULL -#define ic_ledger_pb_v1_Transaction_transfer_burn_MSGTYPE ic_ledger_pb_v1_Burn -#define ic_ledger_pb_v1_Transaction_transfer_mint_MSGTYPE ic_ledger_pb_v1_Mint -#define ic_ledger_pb_v1_Transaction_transfer_send_MSGTYPE ic_ledger_pb_v1_Send -#define ic_ledger_pb_v1_Transaction_memo_MSGTYPE ic_ledger_pb_v1_Memo -#define ic_ledger_pb_v1_Transaction_created_at_MSGTYPE ic_ledger_pb_v1_BlockHeight -#define ic_ledger_pb_v1_Transaction_created_at_time_MSGTYPE ic_ledger_pb_v1_TimeStamp - -#define ic_ledger_pb_v1_Send_FIELDLIST(X, a) \ -X(a, STATIC, OPTIONAL, MESSAGE, from, 1) \ -X(a, STATIC, OPTIONAL, MESSAGE, to, 2) \ -X(a, STATIC, OPTIONAL, MESSAGE, amount, 3) \ -X(a, STATIC, OPTIONAL, MESSAGE, max_fee, 4) -#define ic_ledger_pb_v1_Send_CALLBACK NULL -#define ic_ledger_pb_v1_Send_DEFAULT NULL -#define ic_ledger_pb_v1_Send_from_MSGTYPE ic_ledger_pb_v1_AccountIdentifier -#define ic_ledger_pb_v1_Send_to_MSGTYPE ic_ledger_pb_v1_AccountIdentifier -#define ic_ledger_pb_v1_Send_amount_MSGTYPE ic_ledger_pb_v1_ICPTs -#define ic_ledger_pb_v1_Send_max_fee_MSGTYPE ic_ledger_pb_v1_ICPTs - -#define ic_ledger_pb_v1_Mint_FIELDLIST(X, a) \ -X(a, STATIC, OPTIONAL, MESSAGE, to, 2) \ -X(a, STATIC, OPTIONAL, MESSAGE, amount, 3) -#define ic_ledger_pb_v1_Mint_CALLBACK NULL -#define ic_ledger_pb_v1_Mint_DEFAULT NULL -#define ic_ledger_pb_v1_Mint_to_MSGTYPE ic_ledger_pb_v1_AccountIdentifier -#define ic_ledger_pb_v1_Mint_amount_MSGTYPE ic_ledger_pb_v1_ICPTs - -#define ic_ledger_pb_v1_Burn_FIELDLIST(X, a) \ -X(a, STATIC, OPTIONAL, MESSAGE, from, 1) \ -X(a, STATIC, OPTIONAL, MESSAGE, amount, 3) -#define ic_ledger_pb_v1_Burn_CALLBACK NULL -#define ic_ledger_pb_v1_Burn_DEFAULT NULL -#define ic_ledger_pb_v1_Burn_from_MSGTYPE ic_ledger_pb_v1_AccountIdentifier -#define ic_ledger_pb_v1_Burn_amount_MSGTYPE ic_ledger_pb_v1_ICPTs - -#define ic_ledger_pb_v1_AccountIdentifier_FIELDLIST(X, a) \ -X(a, STATIC, SINGULAR, BYTES, hash, 1) -#define ic_ledger_pb_v1_AccountIdentifier_CALLBACK NULL -#define ic_ledger_pb_v1_AccountIdentifier_DEFAULT NULL - -#define ic_ledger_pb_v1_Subaccount_FIELDLIST(X, a) \ -X(a, CALLBACK, SINGULAR, BYTES, sub_account, 1) -#define ic_ledger_pb_v1_Subaccount_CALLBACK pb_default_field_callback -#define ic_ledger_pb_v1_Subaccount_DEFAULT NULL - -#define ic_ledger_pb_v1_Memo_FIELDLIST(X, a) \ -X(a, STATIC, SINGULAR, UINT64, memo, 1) -#define ic_ledger_pb_v1_Memo_CALLBACK NULL -#define ic_ledger_pb_v1_Memo_DEFAULT NULL - -#define ic_ledger_pb_v1_TimeStamp_FIELDLIST(X, a) \ -X(a, STATIC, SINGULAR, UINT64, timestamp_nanos, 1) -#define ic_ledger_pb_v1_TimeStamp_CALLBACK NULL -#define ic_ledger_pb_v1_TimeStamp_DEFAULT NULL - -#define ic_ledger_pb_v1_Certification_FIELDLIST(X, a) \ -X(a, CALLBACK, SINGULAR, BYTES, certification, 1) -#define ic_ledger_pb_v1_Certification_CALLBACK pb_default_field_callback -#define ic_ledger_pb_v1_Certification_DEFAULT NULL - -extern const pb_msgdesc_t ic_ledger_pb_v1_LedgerInit_msg; -extern const pb_msgdesc_t ic_ledger_pb_v1_LedgerUpgrade_msg; -extern const pb_msgdesc_t ic_ledger_pb_v1_SendRequest_msg; -extern const pb_msgdesc_t ic_ledger_pb_v1_SendResponse_msg; -extern const pb_msgdesc_t ic_ledger_pb_v1_NotifyRequest_msg; -extern const pb_msgdesc_t ic_ledger_pb_v1_NotifyResponse_msg; -extern const pb_msgdesc_t ic_ledger_pb_v1_TransactionNotificationRequest_msg; -extern const pb_msgdesc_t ic_ledger_pb_v1_TransactionNotificationResponse_msg; -extern const pb_msgdesc_t ic_ledger_pb_v1_CyclesNotificationResponse_msg; -extern const pb_msgdesc_t ic_ledger_pb_v1_AccountBalanceRequest_msg; -extern const pb_msgdesc_t ic_ledger_pb_v1_AccountBalanceResponse_msg; -extern const pb_msgdesc_t ic_ledger_pb_v1_TipOfChainRequest_msg; -extern const pb_msgdesc_t ic_ledger_pb_v1_TipOfChainResponse_msg; -extern const pb_msgdesc_t ic_ledger_pb_v1_TotalSupplyRequest_msg; -extern const pb_msgdesc_t ic_ledger_pb_v1_TotalSupplyResponse_msg; -extern const pb_msgdesc_t ic_ledger_pb_v1_LedgerArchiveRequest_msg; -extern const pb_msgdesc_t ic_ledger_pb_v1_BlockRequest_msg; -extern const pb_msgdesc_t ic_ledger_pb_v1_EncodedBlock_msg; -extern const pb_msgdesc_t ic_ledger_pb_v1_BlockResponse_msg; -extern const pb_msgdesc_t ic_ledger_pb_v1_GetBlocksRequest_msg; -extern const pb_msgdesc_t ic_ledger_pb_v1_Refund_msg; -extern const pb_msgdesc_t ic_ledger_pb_v1_ToppedUp_msg; -extern const pb_msgdesc_t ic_ledger_pb_v1_EncodedBlocks_msg; -extern const pb_msgdesc_t ic_ledger_pb_v1_GetBlocksResponse_msg; -extern const pb_msgdesc_t ic_ledger_pb_v1_IterBlocksRequest_msg; -extern const pb_msgdesc_t ic_ledger_pb_v1_IterBlocksResponse_msg; -extern const pb_msgdesc_t ic_ledger_pb_v1_ArchiveIndexEntry_msg; -extern const pb_msgdesc_t ic_ledger_pb_v1_ArchiveIndexResponse_msg; -extern const pb_msgdesc_t ic_ledger_pb_v1_ArchiveInit_msg; -extern const pb_msgdesc_t ic_ledger_pb_v1_ArchiveAddRequest_msg; -extern const pb_msgdesc_t ic_ledger_pb_v1_ArchiveAddResponse_msg; -extern const pb_msgdesc_t ic_ledger_pb_v1_GetNodesRequest_msg; -extern const pb_msgdesc_t ic_ledger_pb_v1_GetNodesResponse_msg; -extern const pb_msgdesc_t ic_ledger_pb_v1_ICPTs_msg; -extern const pb_msgdesc_t ic_ledger_pb_v1_Payment_msg; -extern const pb_msgdesc_t ic_ledger_pb_v1_BlockHeight_msg; -extern const pb_msgdesc_t ic_ledger_pb_v1_Block_msg; -extern const pb_msgdesc_t ic_ledger_pb_v1_Hash_msg; -extern const pb_msgdesc_t ic_ledger_pb_v1_Account_msg; -extern const pb_msgdesc_t ic_ledger_pb_v1_Transaction_msg; -extern const pb_msgdesc_t ic_ledger_pb_v1_Send_msg; -extern const pb_msgdesc_t ic_ledger_pb_v1_Mint_msg; -extern const pb_msgdesc_t ic_ledger_pb_v1_Burn_msg; -extern const pb_msgdesc_t ic_ledger_pb_v1_AccountIdentifier_msg; -extern const pb_msgdesc_t ic_ledger_pb_v1_Subaccount_msg; -extern const pb_msgdesc_t ic_ledger_pb_v1_Memo_msg; -extern const pb_msgdesc_t ic_ledger_pb_v1_TimeStamp_msg; -extern const pb_msgdesc_t ic_ledger_pb_v1_Certification_msg; - -/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ -#define ic_ledger_pb_v1_LedgerInit_fields &ic_ledger_pb_v1_LedgerInit_msg -#define ic_ledger_pb_v1_LedgerUpgrade_fields &ic_ledger_pb_v1_LedgerUpgrade_msg -#define ic_ledger_pb_v1_SendRequest_fields &ic_ledger_pb_v1_SendRequest_msg -#define ic_ledger_pb_v1_SendResponse_fields &ic_ledger_pb_v1_SendResponse_msg -#define ic_ledger_pb_v1_NotifyRequest_fields &ic_ledger_pb_v1_NotifyRequest_msg -#define ic_ledger_pb_v1_NotifyResponse_fields &ic_ledger_pb_v1_NotifyResponse_msg -#define ic_ledger_pb_v1_TransactionNotificationRequest_fields &ic_ledger_pb_v1_TransactionNotificationRequest_msg -#define ic_ledger_pb_v1_TransactionNotificationResponse_fields &ic_ledger_pb_v1_TransactionNotificationResponse_msg -#define ic_ledger_pb_v1_CyclesNotificationResponse_fields &ic_ledger_pb_v1_CyclesNotificationResponse_msg -#define ic_ledger_pb_v1_AccountBalanceRequest_fields &ic_ledger_pb_v1_AccountBalanceRequest_msg -#define ic_ledger_pb_v1_AccountBalanceResponse_fields &ic_ledger_pb_v1_AccountBalanceResponse_msg -#define ic_ledger_pb_v1_TipOfChainRequest_fields &ic_ledger_pb_v1_TipOfChainRequest_msg -#define ic_ledger_pb_v1_TipOfChainResponse_fields &ic_ledger_pb_v1_TipOfChainResponse_msg -#define ic_ledger_pb_v1_TotalSupplyRequest_fields &ic_ledger_pb_v1_TotalSupplyRequest_msg -#define ic_ledger_pb_v1_TotalSupplyResponse_fields &ic_ledger_pb_v1_TotalSupplyResponse_msg -#define ic_ledger_pb_v1_LedgerArchiveRequest_fields &ic_ledger_pb_v1_LedgerArchiveRequest_msg -#define ic_ledger_pb_v1_BlockRequest_fields &ic_ledger_pb_v1_BlockRequest_msg -#define ic_ledger_pb_v1_EncodedBlock_fields &ic_ledger_pb_v1_EncodedBlock_msg -#define ic_ledger_pb_v1_BlockResponse_fields &ic_ledger_pb_v1_BlockResponse_msg -#define ic_ledger_pb_v1_GetBlocksRequest_fields &ic_ledger_pb_v1_GetBlocksRequest_msg -#define ic_ledger_pb_v1_Refund_fields &ic_ledger_pb_v1_Refund_msg -#define ic_ledger_pb_v1_ToppedUp_fields &ic_ledger_pb_v1_ToppedUp_msg -#define ic_ledger_pb_v1_EncodedBlocks_fields &ic_ledger_pb_v1_EncodedBlocks_msg -#define ic_ledger_pb_v1_GetBlocksResponse_fields &ic_ledger_pb_v1_GetBlocksResponse_msg -#define ic_ledger_pb_v1_IterBlocksRequest_fields &ic_ledger_pb_v1_IterBlocksRequest_msg -#define ic_ledger_pb_v1_IterBlocksResponse_fields &ic_ledger_pb_v1_IterBlocksResponse_msg -#define ic_ledger_pb_v1_ArchiveIndexEntry_fields &ic_ledger_pb_v1_ArchiveIndexEntry_msg -#define ic_ledger_pb_v1_ArchiveIndexResponse_fields &ic_ledger_pb_v1_ArchiveIndexResponse_msg -#define ic_ledger_pb_v1_ArchiveInit_fields &ic_ledger_pb_v1_ArchiveInit_msg -#define ic_ledger_pb_v1_ArchiveAddRequest_fields &ic_ledger_pb_v1_ArchiveAddRequest_msg -#define ic_ledger_pb_v1_ArchiveAddResponse_fields &ic_ledger_pb_v1_ArchiveAddResponse_msg -#define ic_ledger_pb_v1_GetNodesRequest_fields &ic_ledger_pb_v1_GetNodesRequest_msg -#define ic_ledger_pb_v1_GetNodesResponse_fields &ic_ledger_pb_v1_GetNodesResponse_msg -#define ic_ledger_pb_v1_ICPTs_fields &ic_ledger_pb_v1_ICPTs_msg -#define ic_ledger_pb_v1_Payment_fields &ic_ledger_pb_v1_Payment_msg -#define ic_ledger_pb_v1_BlockHeight_fields &ic_ledger_pb_v1_BlockHeight_msg -#define ic_ledger_pb_v1_Block_fields &ic_ledger_pb_v1_Block_msg -#define ic_ledger_pb_v1_Hash_fields &ic_ledger_pb_v1_Hash_msg -#define ic_ledger_pb_v1_Account_fields &ic_ledger_pb_v1_Account_msg -#define ic_ledger_pb_v1_Transaction_fields &ic_ledger_pb_v1_Transaction_msg -#define ic_ledger_pb_v1_Send_fields &ic_ledger_pb_v1_Send_msg -#define ic_ledger_pb_v1_Mint_fields &ic_ledger_pb_v1_Mint_msg -#define ic_ledger_pb_v1_Burn_fields &ic_ledger_pb_v1_Burn_msg -#define ic_ledger_pb_v1_AccountIdentifier_fields &ic_ledger_pb_v1_AccountIdentifier_msg -#define ic_ledger_pb_v1_Subaccount_fields &ic_ledger_pb_v1_Subaccount_msg -#define ic_ledger_pb_v1_Memo_fields &ic_ledger_pb_v1_Memo_msg -#define ic_ledger_pb_v1_TimeStamp_fields &ic_ledger_pb_v1_TimeStamp_msg -#define ic_ledger_pb_v1_Certification_fields &ic_ledger_pb_v1_Certification_msg - -/* Maximum encoded size of messages (where known) */ -/* ic_ledger_pb_v1_LedgerInit_size depends on runtime parameters */ -/* ic_ledger_pb_v1_SendRequest_size depends on runtime parameters */ -/* ic_ledger_pb_v1_NotifyRequest_size depends on runtime parameters */ -/* ic_ledger_pb_v1_TransactionNotificationRequest_size depends on runtime parameters */ -/* ic_ledger_pb_v1_TransactionNotificationResponse_size depends on runtime parameters */ -/* ic_ledger_pb_v1_CyclesNotificationResponse_size depends on runtime parameters */ -/* ic_ledger_pb_v1_TipOfChainResponse_size depends on runtime parameters */ -/* ic_ledger_pb_v1_EncodedBlock_size depends on runtime parameters */ -/* ic_ledger_pb_v1_BlockResponse_size depends on runtime parameters */ -/* ic_ledger_pb_v1_Refund_size depends on runtime parameters */ -/* ic_ledger_pb_v1_EncodedBlocks_size depends on runtime parameters */ -/* ic_ledger_pb_v1_GetBlocksResponse_size depends on runtime parameters */ -/* ic_ledger_pb_v1_IterBlocksResponse_size depends on runtime parameters */ -/* ic_ledger_pb_v1_ArchiveIndexResponse_size depends on runtime parameters */ -/* ic_ledger_pb_v1_ArchiveAddRequest_size depends on runtime parameters */ -/* ic_ledger_pb_v1_GetNodesResponse_size depends on runtime parameters */ -/* ic_ledger_pb_v1_Block_size depends on runtime parameters */ -/* ic_ledger_pb_v1_Hash_size depends on runtime parameters */ -/* ic_ledger_pb_v1_Subaccount_size depends on runtime parameters */ -/* ic_ledger_pb_v1_Certification_size depends on runtime parameters */ -#define ic_ledger_pb_v1_AccountBalanceRequest_size 37 -#define ic_ledger_pb_v1_AccountBalanceResponse_size 13 -#define ic_ledger_pb_v1_AccountIdentifier_size 35 -#define ic_ledger_pb_v1_Account_size 50 -#define ic_ledger_pb_v1_ArchiveAddResponse_size 0 -#define ic_ledger_pb_v1_ArchiveIndexEntry_size 56 -#define ic_ledger_pb_v1_ArchiveInit_size 12 -#define ic_ledger_pb_v1_BlockHeight_size 11 -#define ic_ledger_pb_v1_BlockRequest_size 11 -#define ic_ledger_pb_v1_Burn_size 50 -#define ic_ledger_pb_v1_GetBlocksRequest_size 22 -#define ic_ledger_pb_v1_GetNodesRequest_size 0 -#define ic_ledger_pb_v1_ICPTs_size 11 -#define ic_ledger_pb_v1_IterBlocksRequest_size 22 -#define ic_ledger_pb_v1_LedgerArchiveRequest_size 13 -#define ic_ledger_pb_v1_LedgerUpgrade_size 0 -#define ic_ledger_pb_v1_Memo_size 11 -#define ic_ledger_pb_v1_Mint_size 50 -#define ic_ledger_pb_v1_NotifyResponse_size 0 -#define ic_ledger_pb_v1_Payment_size 13 -#define ic_ledger_pb_v1_SendResponse_size 13 -#define ic_ledger_pb_v1_Send_size 100 -#define ic_ledger_pb_v1_TimeStamp_size 11 -#define ic_ledger_pb_v1_TipOfChainRequest_size 0 -#define ic_ledger_pb_v1_ToppedUp_size 0 -#define ic_ledger_pb_v1_TotalSupplyRequest_size 0 -#define ic_ledger_pb_v1_TotalSupplyResponse_size 13 -#define ic_ledger_pb_v1_Transaction_size 141 - -#ifdef __cplusplus -} /* extern "C" */ -#endif - -#endif diff --git a/app/src/protobuf/types.proto b/app/src/protobuf/types.proto deleted file mode 100644 index 1f951e7a..00000000 --- a/app/src/protobuf/types.proto +++ /dev/null @@ -1,292 +0,0 @@ -syntax = "proto3"; - -package ic_ledger.pb.v1; - -import "base_types.proto"; - -// Annotations related to the use of hardware wallets. The annotated messages are -// parsed on hardware wallets and marked fields are displayed in a trusted user -// interface (TUI). We must not, for instance, add fields that would change the -// semantics of the message such that old hardware wallets would not display -// appropriate information to users. - -// ** LEDGER CANISTER ENDPOINTS - -// Initialise the ledger canister -message LedgerInit { - AccountIdentifier minting_account = 1; - repeated Account initial_values = 2; - ic_base_types.pb.v1.PrincipalId archive_canister = 3; - uint32 max_message_size_bytes = 4; -} - - -// The format of values serialized to/from the stable memory during and upgrade -message LedgerUpgrade { -} - - -// Make a payment -message SendRequest { - option (ic_base_types.pb.v1.tui_signed_message) = true; - Memo memo = 1 [(ic_base_types.pb.v1.tui_signed_display_q2_2021) = true]; - Payment payment = 2 [(ic_base_types.pb.v1.tui_signed_display_q2_2021) = true]; - ICPTs max_fee = 3 [(ic_base_types.pb.v1.tui_signed_display_q2_2021) = true]; - Subaccount from_subaccount = 4 [(ic_base_types.pb.v1.tui_signed_display_q2_2021) = true]; - AccountIdentifier to = 5 [(ic_base_types.pb.v1.tui_signed_display_q2_2021) = true]; - BlockHeight created_at = 6; - TimeStamp created_at_time = 7; -} - -message SendResponse { - BlockHeight resulting_height = 1; -} - -// Notify a canister that it has received a payment -message NotifyRequest { - option (ic_base_types.pb.v1.tui_signed_message) = true; - BlockHeight block_height = 1 [(ic_base_types.pb.v1.tui_signed_display_q2_2021) = true]; - ICPTs max_fee = 2 [(ic_base_types.pb.v1.tui_signed_display_q2_2021) = true]; - Subaccount from_subaccount = 3 [(ic_base_types.pb.v1.tui_signed_display_q2_2021) = true]; - ic_base_types.pb.v1.PrincipalId to_canister = 4 [(ic_base_types.pb.v1.tui_signed_display_q2_2021) = true]; - Subaccount to_subaccount = 5 [(ic_base_types.pb.v1.tui_signed_display_q2_2021) = true]; -} - -message NotifyResponse { -} - -message TransactionNotificationRequest { - ic_base_types.pb.v1.PrincipalId from = 1; - Subaccount from_subaccount = 2; - ic_base_types.pb.v1.PrincipalId to = 3; - Subaccount to_subaccount = 4; - BlockHeight block_height = 5; - ICPTs amount = 6; - Memo memo = 7; -} - -message TransactionNotificationResponse { - bytes response = 1; -} - -message CyclesNotificationResponse { - oneof response { - ic_base_types.pb.v1.PrincipalId created_canister_id = 1; - Refund refund = 2; - ToppedUp topped_up = 3; - } -} - -// Get the balance of an account -message AccountBalanceRequest { - AccountIdentifier account = 1; -} - -message AccountBalanceResponse { - ICPTs balance = 1; -} - -// Get the length of the chain with a certification -message TipOfChainRequest { -} - -message TipOfChainResponse { - Certification certification = 1; - BlockHeight chain_length = 2; -} - -// How many ICPTs are there not in the minting account -message TotalSupplyRequest { -} - -message TotalSupplyResponse { - ICPTs total_supply = 1; -} - -// Archive any blocks older than this -message LedgerArchiveRequest { - TimeStamp timestamp = 1; -} - -// * Shared Endpoints * - -// Get a single block -message BlockRequest { - uint64 block_height = 1; -} - -message EncodedBlock { - bytes block = 1; -} - -message BlockResponse { - oneof block_content { - EncodedBlock block = 1; - ic_base_types.pb.v1.PrincipalId canister_id = 2; - } -} - -// Get a set of blocks -message GetBlocksRequest { - uint64 start = 1; - uint64 length = 2; -} - -message Refund { - BlockHeight refund = 2; - string error = 3; -} - -message ToppedUp { -} - -message EncodedBlocks { - repeated EncodedBlock blocks = 1; -} - -message GetBlocksResponse { - oneof get_blocks_content { - EncodedBlocks blocks = 1; - string error = 2; - } -} - -// Iterate through blocks -message IterBlocksRequest { - uint64 start = 1; - uint64 length = 2; -} - -message IterBlocksResponse { - repeated EncodedBlock blocks = 1; -} - -message ArchiveIndexEntry { - uint64 height_from = 1; - uint64 height_to = 2; - ic_base_types.pb.v1.PrincipalId canister_id = 3; -} - -message ArchiveIndexResponse { - repeated ArchiveIndexEntry entries = 1; -} - - -// ** ARCHIVE CANISTER ENDPOINTS ** - -// * Archive canister * -// Init the archive canister -message ArchiveInit { - uint32 node_max_memory_size_bytes = 1; - uint32 max_message_size_bytes = 2; -} - - -// Add blocks to the archive canister -message ArchiveAddRequest { - repeated Block blocks = 1; -} - -message ArchiveAddResponse { -} - - -// Fetch a list of all of the archive nodes -message GetNodesRequest { -} - -message GetNodesResponse { - repeated ic_base_types.pb.v1.PrincipalId nodes = 1; -} - - -// ** BASIC TYPES ** -message ICPTs { - option (ic_base_types.pb.v1.tui_signed_message) = true; - uint64 e8s = 1 [(ic_base_types.pb.v1.tui_signed_display_q2_2021) = true]; - -} - -message Payment { - option (ic_base_types.pb.v1.tui_signed_message) = true; - ICPTs receiver_gets = 1 [(ic_base_types.pb.v1.tui_signed_display_q2_2021) = true]; - -} - -message BlockHeight { - option (ic_base_types.pb.v1.tui_signed_message) = true; - uint64 height = 1 [(ic_base_types.pb.v1.tui_signed_display_q2_2021) = true]; -} - - -// This is the -message Block { - Hash parent_hash = 1; - TimeStamp timestamp = 2; - Transaction transaction = 3; -} - -message Hash { - bytes hash = 1; -} - -message Account { - AccountIdentifier identifier = 1; - ICPTs balance = 2; -} - -message Transaction { - oneof transfer { - Burn burn = 1; - Mint mint = 2; - Send send = 3; - } - Memo memo = 4; - BlockHeight created_at = 5; // obsolete - TimeStamp created_at_time = 6; -} - -message Send { - AccountIdentifier from = 1; - AccountIdentifier to = 2; - ICPTs amount = 3; - ICPTs max_fee = 4; -} - -message Mint { - AccountIdentifier to = 2; - ICPTs amount = 3; -} - -message Burn { - AccountIdentifier from = 1; - ICPTs amount = 3; -} - - -message AccountIdentifier { - option (ic_base_types.pb.v1.tui_signed_message) = true; - bytes hash = 1 [(ic_base_types.pb.v1.tui_signed_display_q2_2021) = true]; - -} - -message Subaccount { - option (ic_base_types.pb.v1.tui_signed_message) = true; - bytes sub_account = 1 [(ic_base_types.pb.v1.tui_signed_display_q2_2021) = true]; - -} - -message Memo { - option (ic_base_types.pb.v1.tui_signed_message) = true; - uint64 memo = 1 [(ic_base_types.pb.v1.tui_signed_display_q2_2021) = true]; - -} - -message TimeStamp { - uint64 timestamp_nanos = 1; -} - -message Certification { - bytes certification = 1; -} - From aebb1ef23d82d416d3e92f002a71ab1b4e8d03e0 Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Wed, 13 Mar 2024 18:28:31 +0700 Subject: [PATCH 5/7] bump version --- app/Makefile.version | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/Makefile.version b/app/Makefile.version index 77eedab5..790ee0f1 100644 --- a/app/Makefile.version +++ b/app/Makefile.version @@ -1,6 +1,6 @@ # This is the major version of this release -APPVERSION_M=2 +APPVERSION_M=3 # This is the minor version of this release -APPVERSION_N=4 +APPVERSION_N=0 # This is the patch version of this release -APPVERSION_P=9 +APPVERSION_P=0 From 908bf2dcd5f80d6bf0ace24658998b4f506da8f9 Mon Sep 17 00:00:00 2001 From: neithanmo Date: Wed, 13 Mar 2024 18:28:48 +0700 Subject: [PATCH 6/7] update tests --- CMakeLists.txt | 2 - js/package.json | 14 +- tests/cbor_parser.cpp | 515 ++++-------------- tests/ui_tests.cpp | 12 - tests_zemu/package.json | 20 +- tests_zemu/snapshots/s-mainmenu/00004.png | Bin 438 -> 409 bytes tests_zemu/snapshots/s-mainmenu/00010.png | Bin 438 -> 409 bytes .../snapshots/s-pb_add_hotkey/00000.png | Bin 410 -> 0 bytes .../snapshots/s-pb_add_hotkey/00001.png | Bin 457 -> 0 bytes .../snapshots/s-pb_add_hotkey/00002.png | Bin 613 -> 0 bytes .../snapshots/s-pb_add_hotkey/00003.png | Bin 548 -> 0 bytes .../snapshots/s-pb_add_hotkey/00004.png | Bin 249 -> 0 bytes .../snapshots/s-pb_add_hotkey/00005.png | Bin 431 -> 0 bytes .../snapshots/s-pb_check_status/00000.png | Bin 417 -> 0 bytes .../snapshots/s-pb_check_status/00001.png | Bin 249 -> 0 bytes .../snapshots/s-pb_check_status/00002.png | Bin 431 -> 0 bytes .../snapshots/s-pb_claim_neurons/00000.png | Bin 411 -> 0 bytes .../snapshots/s-pb_claim_neurons/00001.png | Bin 249 -> 0 bytes .../snapshots/s-pb_claim_neurons/00002.png | Bin 431 -> 0 bytes tests_zemu/snapshots/s-pb_disburse/00000.png | Bin 415 -> 0 bytes tests_zemu/snapshots/s-pb_disburse/00001.png | Bin 447 -> 0 bytes tests_zemu/snapshots/s-pb_disburse/00002.png | Bin 654 -> 0 bytes tests_zemu/snapshots/s-pb_disburse/00003.png | Bin 623 -> 0 bytes tests_zemu/snapshots/s-pb_disburse/00004.png | Bin 414 -> 0 bytes tests_zemu/snapshots/s-pb_disburse/00005.png | Bin 249 -> 0 bytes tests_zemu/snapshots/s-pb_disburse/00006.png | Bin 431 -> 0 bytes tests_zemu/snapshots/s-pb_follow/00000.png | Bin 366 -> 0 bytes tests_zemu/snapshots/s-pb_follow/00001.png | Bin 302 -> 0 bytes tests_zemu/snapshots/s-pb_follow/00002.png | Bin 299 -> 0 bytes tests_zemu/snapshots/s-pb_follow/00003.png | Bin 354 -> 0 bytes tests_zemu/snapshots/s-pb_follow/00004.png | Bin 345 -> 0 bytes tests_zemu/snapshots/s-pb_follow/00005.png | Bin 342 -> 0 bytes tests_zemu/snapshots/s-pb_follow/00006.png | Bin 249 -> 0 bytes tests_zemu/snapshots/s-pb_follow/00007.png | Bin 431 -> 0 bytes .../s-pb_increase_dissolve_delay/00000.png | Bin 499 -> 0 bytes .../s-pb_increase_dissolve_delay/00001.png | Bin 302 -> 0 bytes .../s-pb_increase_dissolve_delay/00002.png | Bin 346 -> 0 bytes .../s-pb_increase_dissolve_delay/00003.png | Bin 249 -> 0 bytes .../s-pb_increase_dissolve_delay/00004.png | Bin 431 -> 0 bytes .../s-pb_join_community_fund/00000.png | Bin 423 -> 0 bytes .../s-pb_join_community_fund/00001.png | Bin 302 -> 0 bytes .../s-pb_join_community_fund/00002.png | Bin 249 -> 0 bytes .../s-pb_join_community_fund/00003.png | Bin 431 -> 0 bytes .../snapshots/s-pb_list_neurons/00000.png | Bin 424 -> 0 bytes .../snapshots/s-pb_list_neurons/00001.png | Bin 249 -> 0 bytes .../snapshots/s-pb_list_neurons/00002.png | Bin 431 -> 0 bytes .../snapshots/s-pb_register_vote/00000.png | Bin 426 -> 0 bytes .../snapshots/s-pb_register_vote/00001.png | Bin 322 -> 0 bytes .../snapshots/s-pb_register_vote/00002.png | Bin 328 -> 0 bytes .../snapshots/s-pb_register_vote/00003.png | Bin 273 -> 0 bytes .../snapshots/s-pb_register_vote/00004.png | Bin 249 -> 0 bytes .../snapshots/s-pb_register_vote/00005.png | Bin 431 -> 0 bytes .../snapshots/s-pb_remove_hotkey/00000.png | Bin 420 -> 0 bytes .../snapshots/s-pb_remove_hotkey/00001.png | Bin 457 -> 0 bytes .../snapshots/s-pb_remove_hotkey/00002.png | Bin 613 -> 0 bytes .../snapshots/s-pb_remove_hotkey/00003.png | Bin 548 -> 0 bytes .../snapshots/s-pb_remove_hotkey/00004.png | Bin 249 -> 0 bytes .../snapshots/s-pb_remove_hotkey/00005.png | Bin 431 -> 0 bytes .../snapshots/s-pb_sign_update_call/00000.png | Bin 386 -> 0 bytes .../snapshots/s-pb_sign_update_call/00001.png | Bin 633 -> 0 bytes .../snapshots/s-pb_sign_update_call/00002.png | Bin 654 -> 0 bytes .../snapshots/s-pb_sign_update_call/00003.png | Bin 640 -> 0 bytes .../snapshots/s-pb_sign_update_call/00004.png | Bin 622 -> 0 bytes .../snapshots/s-pb_sign_update_call/00005.png | Bin 331 -> 0 bytes .../snapshots/s-pb_sign_update_call/00006.png | Bin 356 -> 0 bytes .../snapshots/s-pb_sign_update_call/00007.png | Bin 246 -> 0 bytes .../snapshots/s-pb_sign_update_call/00008.png | Bin 249 -> 0 bytes .../snapshots/s-pb_sign_update_call/00009.png | Bin 431 -> 0 bytes .../snapshots/s-pb_spawn_neuron/00000.png | Bin 410 -> 0 bytes .../snapshots/s-pb_spawn_neuron/00001.png | Bin 457 -> 0 bytes .../snapshots/s-pb_spawn_neuron/00002.png | Bin 320 -> 0 bytes .../snapshots/s-pb_spawn_neuron/00003.png | Bin 249 -> 0 bytes .../snapshots/s-pb_spawn_neuron/00004.png | Bin 431 -> 0 bytes .../snapshots/s-pb_stake_neuron/00000.png | Bin 413 -> 0 bytes .../snapshots/s-pb_stake_neuron/00001.png | Bin 633 -> 0 bytes .../snapshots/s-pb_stake_neuron/00002.png | Bin 654 -> 0 bytes .../snapshots/s-pb_stake_neuron/00003.png | Bin 328 -> 0 bytes .../snapshots/s-pb_stake_neuron/00004.png | Bin 356 -> 0 bytes .../snapshots/s-pb_stake_neuron/00005.png | Bin 383 -> 0 bytes .../snapshots/s-pb_stake_neuron/00006.png | Bin 249 -> 0 bytes .../snapshots/s-pb_stake_neuron/00007.png | Bin 431 -> 0 bytes .../snapshots/s-pb_start_dissolve/00000.png | Bin 442 -> 0 bytes .../snapshots/s-pb_start_dissolve/00001.png | Bin 455 -> 0 bytes .../snapshots/s-pb_start_dissolve/00002.png | Bin 249 -> 0 bytes .../snapshots/s-pb_start_dissolve/00003.png | Bin 431 -> 0 bytes .../snapshots/s-pb_stop_dissolve/00000.png | Bin 435 -> 0 bytes .../snapshots/s-pb_stop_dissolve/00001.png | Bin 455 -> 0 bytes .../snapshots/s-pb_stop_dissolve/00002.png | Bin 249 -> 0 bytes .../snapshots/s-pb_stop_dissolve/00003.png | Bin 431 -> 0 bytes .../snapshots/s-sign_basic_expert/00000.png | Bin 386 -> 0 bytes .../snapshots/s-sign_basic_expert/00001.png | Bin 619 -> 0 bytes .../snapshots/s-sign_basic_expert/00002.png | Bin 560 -> 0 bytes .../snapshots/s-sign_basic_expert/00003.png | Bin 403 -> 0 bytes .../snapshots/s-sign_basic_expert/00004.png | Bin 402 -> 0 bytes .../snapshots/s-sign_basic_expert/00005.png | Bin 637 -> 0 bytes .../snapshots/s-sign_basic_expert/00006.png | Bin 627 -> 0 bytes .../snapshots/s-sign_basic_expert/00007.png | Bin 653 -> 0 bytes .../snapshots/s-sign_basic_expert/00008.png | Bin 643 -> 0 bytes .../snapshots/s-sign_basic_expert/00009.png | Bin 330 -> 0 bytes .../snapshots/s-sign_basic_expert/00010.png | Bin 383 -> 0 bytes .../snapshots/s-sign_basic_expert/00011.png | Bin 246 -> 0 bytes .../snapshots/s-sign_basic_expert/00012.png | Bin 249 -> 0 bytes .../snapshots/s-sign_basic_expert/00013.png | Bin 431 -> 0 bytes .../snapshots/s-sign_basic_normal/00000.png | Bin 386 -> 0 bytes .../snapshots/s-sign_basic_normal/00001.png | Bin 637 -> 0 bytes .../snapshots/s-sign_basic_normal/00002.png | Bin 627 -> 0 bytes .../snapshots/s-sign_basic_normal/00003.png | Bin 653 -> 0 bytes .../snapshots/s-sign_basic_normal/00004.png | Bin 643 -> 0 bytes .../snapshots/s-sign_basic_normal/00005.png | Bin 330 -> 0 bytes .../snapshots/s-sign_basic_normal/00006.png | Bin 383 -> 0 bytes .../snapshots/s-sign_basic_normal/00007.png | Bin 246 -> 0 bytes .../snapshots/s-sign_basic_normal/00008.png | Bin 249 -> 0 bytes .../snapshots/s-sign_basic_normal/00009.png | Bin 431 -> 0 bytes .../sp-candid_auto_stake_maturity/00001.png | Bin 627 -> 626 bytes .../sp-candid_auto_stake_maturity/00003.png | Bin 408 -> 407 bytes .../snapshots/sp-candid_disburse/00003.png | Bin 904 -> 903 bytes .../snapshots/sp-candid_disburse/00004.png | Bin 557 -> 556 bytes .../snapshots/sp-candid_disburse/00005.png | Bin 382 -> 381 bytes .../snapshots/sp-candid_follow/00003.png | Bin 460 -> 458 bytes .../snapshots/sp-candid_follow/00004.png | Bin 519 -> 515 bytes .../snapshots/sp-candid_follow/00005.png | Bin 501 -> 499 bytes .../snapshots/sp-candid_follow/00006.png | Bin 567 -> 566 bytes .../sp-candid_list_neurons/00001.png | Bin 529 -> 528 bytes .../sp-candid_merge_neuron/00003.png | Bin 395 -> 400 bytes .../snapshots/sp-candid_send_icp/00002.png | Bin 906 -> 907 bytes .../snapshots/sp-candid_send_icp/00003.png | Bin 571 -> 572 bytes .../snapshots/sp-candid_send_icp/00004.png | Bin 856 -> 859 bytes .../snapshots/sp-candid_send_icp/00005.png | Bin 544 -> 541 bytes .../snapshots/sp-candid_send_icp/00006.png | Bin 395 -> 394 bytes .../sp-candid_set_dissolve_delay/00001.png | Bin 542 -> 541 bytes .../sp-candid_spawn_neuron/00003.png | Bin 446 -> 444 bytes .../sp-candid_split_neuron/00001.png | Bin 507 -> 506 bytes .../sp-candid_split_neuron/00003.png | Bin 378 -> 378 bytes .../sp-candid_stake_icrc_expert/00002.png | Bin 917 -> 911 bytes .../sp-candid_stake_icrc_expert/00003.png | Bin 502 -> 504 bytes .../sp-candid_stake_icrc_expert/00004.png | Bin 422 -> 421 bytes .../sp-candid_stake_maturity/00003.png | Bin 445 -> 441 bytes .../sp-candid_stake_neuron_expert/00002.png | Bin 876 -> 871 bytes .../sp-candid_stake_neuron_expert/00003.png | Bin 470 -> 467 bytes .../sp-candid_stake_neuron_expert/00004.png | Bin 851 -> 845 bytes .../sp-candid_stake_neuron_expert/00005.png | Bin 543 -> 544 bytes .../sp-candid_stake_neuron_expert/00006.png | Bin 906 -> 907 bytes .../sp-candid_stake_neuron_expert/00007.png | Bin 571 -> 572 bytes .../sp-candid_stake_neuron_expert/00008.png | Bin 395 -> 394 bytes .../snapshots/sp-icrc_transfer/00002.png | Bin 911 -> 913 bytes .../snapshots/sp-icrc_transfer/00003.png | Bin 884 -> 880 bytes .../snapshots/sp-icrc_transfer/00004.png | Bin 716 -> 717 bytes .../snapshots/sp-icrc_transfer/00005.png | Bin 901 -> 890 bytes .../snapshots/sp-icrc_transfer/00006.png | Bin 875 -> 872 bytes .../snapshots/sp-icrc_transfer/00007.png | Bin 705 -> 703 bytes .../snapshots/sp-icrc_transfer/00008.png | Bin 422 -> 421 bytes tests_zemu/snapshots/sp-mainmenu/00001.png | Bin 442 -> 440 bytes tests_zemu/snapshots/sp-mainmenu/00002.png | Bin 428 -> 426 bytes tests_zemu/snapshots/sp-mainmenu/00003.png | Bin 442 -> 440 bytes tests_zemu/snapshots/sp-mainmenu/00004.png | Bin 370 -> 359 bytes tests_zemu/snapshots/sp-mainmenu/00010.png | Bin 370 -> 359 bytes tests_zemu/snapshots/sp-mainmenu/00011.png | Bin 442 -> 440 bytes .../snapshots/sp-pb_add_hotkey/00000.png | Bin 453 -> 0 bytes .../snapshots/sp-pb_add_hotkey/00001.png | Bin 509 -> 0 bytes .../snapshots/sp-pb_add_hotkey/00002.png | Bin 505 -> 0 bytes .../snapshots/sp-pb_add_hotkey/00003.png | Bin 885 -> 0 bytes .../snapshots/sp-pb_add_hotkey/00004.png | Bin 477 -> 0 bytes .../snapshots/sp-pb_add_hotkey/00005.png | Bin 355 -> 0 bytes .../snapshots/sp-pb_add_hotkey/00006.png | Bin 472 -> 0 bytes .../snapshots/sp-pb_check_status/00000.png | Bin 453 -> 0 bytes .../snapshots/sp-pb_check_status/00001.png | Bin 518 -> 0 bytes .../snapshots/sp-pb_check_status/00002.png | Bin 355 -> 0 bytes .../snapshots/sp-pb_check_status/00003.png | Bin 472 -> 0 bytes .../snapshots/sp-pb_claim_neurons/00000.png | Bin 453 -> 0 bytes .../snapshots/sp-pb_claim_neurons/00001.png | Bin 501 -> 0 bytes .../snapshots/sp-pb_claim_neurons/00002.png | Bin 355 -> 0 bytes .../snapshots/sp-pb_claim_neurons/00003.png | Bin 472 -> 0 bytes tests_zemu/snapshots/sp-pb_disburse/00000.png | Bin 453 -> 0 bytes tests_zemu/snapshots/sp-pb_disburse/00001.png | Bin 512 -> 0 bytes tests_zemu/snapshots/sp-pb_disburse/00002.png | Bin 495 -> 0 bytes tests_zemu/snapshots/sp-pb_disburse/00003.png | Bin 892 -> 0 bytes tests_zemu/snapshots/sp-pb_disburse/00004.png | Bin 557 -> 0 bytes tests_zemu/snapshots/sp-pb_disburse/00005.png | Bin 463 -> 0 bytes tests_zemu/snapshots/sp-pb_disburse/00006.png | Bin 355 -> 0 bytes tests_zemu/snapshots/sp-pb_disburse/00007.png | Bin 472 -> 0 bytes tests_zemu/snapshots/sp-pb_follow/00000.png | Bin 453 -> 0 bytes tests_zemu/snapshots/sp-pb_follow/00001.png | Bin 457 -> 0 bytes tests_zemu/snapshots/sp-pb_follow/00002.png | Bin 343 -> 0 bytes tests_zemu/snapshots/sp-pb_follow/00003.png | Bin 361 -> 0 bytes tests_zemu/snapshots/sp-pb_follow/00004.png | Bin 413 -> 0 bytes tests_zemu/snapshots/sp-pb_follow/00005.png | Bin 416 -> 0 bytes tests_zemu/snapshots/sp-pb_follow/00006.png | Bin 412 -> 0 bytes tests_zemu/snapshots/sp-pb_follow/00007.png | Bin 355 -> 0 bytes tests_zemu/snapshots/sp-pb_follow/00008.png | Bin 472 -> 0 bytes .../sp-pb_increase_dissolve_delay/00000.png | Bin 453 -> 0 bytes .../sp-pb_increase_dissolve_delay/00001.png | Bin 607 -> 0 bytes .../sp-pb_increase_dissolve_delay/00002.png | Bin 343 -> 0 bytes .../sp-pb_increase_dissolve_delay/00003.png | Bin 423 -> 0 bytes .../sp-pb_increase_dissolve_delay/00004.png | Bin 355 -> 0 bytes .../sp-pb_increase_dissolve_delay/00005.png | Bin 472 -> 0 bytes .../sp-pb_join_community_fund/00000.png | Bin 453 -> 0 bytes .../sp-pb_join_community_fund/00001.png | Bin 524 -> 0 bytes .../sp-pb_join_community_fund/00002.png | Bin 343 -> 0 bytes .../sp-pb_join_community_fund/00003.png | Bin 355 -> 0 bytes .../sp-pb_join_community_fund/00004.png | Bin 472 -> 0 bytes .../snapshots/sp-pb_list_neurons/00000.png | Bin 453 -> 0 bytes .../snapshots/sp-pb_list_neurons/00001.png | Bin 529 -> 0 bytes .../snapshots/sp-pb_list_neurons/00002.png | Bin 355 -> 0 bytes .../snapshots/sp-pb_list_neurons/00003.png | Bin 472 -> 0 bytes .../snapshots/sp-pb_register_vote/00000.png | Bin 453 -> 0 bytes .../snapshots/sp-pb_register_vote/00001.png | Bin 519 -> 0 bytes .../snapshots/sp-pb_register_vote/00002.png | Bin 359 -> 0 bytes .../snapshots/sp-pb_register_vote/00003.png | Bin 360 -> 0 bytes .../snapshots/sp-pb_register_vote/00004.png | Bin 300 -> 0 bytes .../snapshots/sp-pb_register_vote/00005.png | Bin 355 -> 0 bytes .../snapshots/sp-pb_register_vote/00006.png | Bin 472 -> 0 bytes .../snapshots/sp-pb_remove_hotkey/00000.png | Bin 453 -> 0 bytes .../snapshots/sp-pb_remove_hotkey/00001.png | Bin 517 -> 0 bytes .../snapshots/sp-pb_remove_hotkey/00002.png | Bin 505 -> 0 bytes .../snapshots/sp-pb_remove_hotkey/00003.png | Bin 885 -> 0 bytes .../snapshots/sp-pb_remove_hotkey/00004.png | Bin 477 -> 0 bytes .../snapshots/sp-pb_remove_hotkey/00005.png | Bin 355 -> 0 bytes .../snapshots/sp-pb_remove_hotkey/00006.png | Bin 472 -> 0 bytes .../sp-pb_sign_update_call/00000.png | Bin 453 -> 0 bytes .../sp-pb_sign_update_call/00001.png | Bin 478 -> 0 bytes .../sp-pb_sign_update_call/00002.png | Bin 919 -> 0 bytes .../sp-pb_sign_update_call/00003.png | Bin 562 -> 0 bytes .../sp-pb_sign_update_call/00004.png | Bin 873 -> 0 bytes .../sp-pb_sign_update_call/00005.png | Bin 534 -> 0 bytes .../sp-pb_sign_update_call/00006.png | Bin 381 -> 0 bytes .../sp-pb_sign_update_call/00007.png | Bin 415 -> 0 bytes .../sp-pb_sign_update_call/00008.png | Bin 285 -> 0 bytes .../sp-pb_sign_update_call/00009.png | Bin 355 -> 0 bytes .../sp-pb_sign_update_call/00010.png | Bin 472 -> 0 bytes .../snapshots/sp-pb_spawn_neuron/00000.png | Bin 453 -> 0 bytes .../snapshots/sp-pb_spawn_neuron/00001.png | Bin 510 -> 0 bytes .../snapshots/sp-pb_spawn_neuron/00002.png | Bin 502 -> 0 bytes .../snapshots/sp-pb_spawn_neuron/00003.png | Bin 363 -> 0 bytes .../snapshots/sp-pb_spawn_neuron/00004.png | Bin 355 -> 0 bytes .../snapshots/sp-pb_spawn_neuron/00005.png | Bin 472 -> 0 bytes .../snapshots/sp-pb_stake_neuron/00000.png | Bin 453 -> 0 bytes .../snapshots/sp-pb_stake_neuron/00001.png | Bin 505 -> 0 bytes .../snapshots/sp-pb_stake_neuron/00002.png | Bin 919 -> 0 bytes .../snapshots/sp-pb_stake_neuron/00003.png | Bin 562 -> 0 bytes .../snapshots/sp-pb_stake_neuron/00004.png | Bin 378 -> 0 bytes .../snapshots/sp-pb_stake_neuron/00005.png | Bin 415 -> 0 bytes .../snapshots/sp-pb_stake_neuron/00006.png | Bin 424 -> 0 bytes .../snapshots/sp-pb_stake_neuron/00007.png | Bin 355 -> 0 bytes .../snapshots/sp-pb_stake_neuron/00008.png | Bin 472 -> 0 bytes .../snapshots/sp-pb_start_dissolve/00000.png | Bin 453 -> 0 bytes .../snapshots/sp-pb_start_dissolve/00001.png | Bin 546 -> 0 bytes .../snapshots/sp-pb_start_dissolve/00002.png | Bin 507 -> 0 bytes .../snapshots/sp-pb_start_dissolve/00003.png | Bin 355 -> 0 bytes .../snapshots/sp-pb_start_dissolve/00004.png | Bin 472 -> 0 bytes .../snapshots/sp-pb_stop_dissolve/00000.png | Bin 453 -> 0 bytes .../snapshots/sp-pb_stop_dissolve/00001.png | Bin 546 -> 0 bytes .../snapshots/sp-pb_stop_dissolve/00002.png | Bin 507 -> 0 bytes .../snapshots/sp-pb_stop_dissolve/00003.png | Bin 355 -> 0 bytes .../snapshots/sp-pb_stop_dissolve/00004.png | Bin 472 -> 0 bytes .../snapshots/sp-show_address/00001.png | Bin 899 -> 895 bytes .../snapshots/sp-show_address/00002.png | Bin 548 -> 547 bytes .../snapshots/sp-show_address/00003.png | Bin 885 -> 885 bytes .../sp-show_address_reject/00001.png | Bin 899 -> 895 bytes .../sp-show_address_reject/00002.png | Bin 548 -> 547 bytes .../sp-show_address_reject/00003.png | Bin 885 -> 885 bytes .../sp-show_address_reject/00007.png | Bin 346 -> 341 bytes .../snapshots/sp-sign_basic_expert/00000.png | Bin 453 -> 0 bytes .../snapshots/sp-sign_basic_expert/00001.png | Bin 478 -> 0 bytes .../snapshots/sp-sign_basic_expert/00002.png | Bin 876 -> 0 bytes .../snapshots/sp-sign_basic_expert/00003.png | Bin 470 -> 0 bytes .../snapshots/sp-sign_basic_expert/00004.png | Bin 504 -> 0 bytes .../snapshots/sp-sign_basic_expert/00005.png | Bin 433 -> 0 bytes .../snapshots/sp-sign_basic_expert/00006.png | Bin 878 -> 0 bytes .../snapshots/sp-sign_basic_expert/00007.png | Bin 554 -> 0 bytes .../snapshots/sp-sign_basic_expert/00008.png | Bin 907 -> 0 bytes .../snapshots/sp-sign_basic_expert/00009.png | Bin 553 -> 0 bytes .../snapshots/sp-sign_basic_expert/00010.png | Bin 381 -> 0 bytes .../snapshots/sp-sign_basic_expert/00011.png | Bin 456 -> 0 bytes .../snapshots/sp-sign_basic_expert/00012.png | Bin 285 -> 0 bytes .../snapshots/sp-sign_basic_expert/00013.png | Bin 355 -> 0 bytes .../snapshots/sp-sign_basic_expert/00014.png | Bin 472 -> 0 bytes .../snapshots/sp-sign_basic_normal/00000.png | Bin 453 -> 0 bytes .../snapshots/sp-sign_basic_normal/00001.png | Bin 478 -> 0 bytes .../snapshots/sp-sign_basic_normal/00002.png | Bin 878 -> 0 bytes .../snapshots/sp-sign_basic_normal/00003.png | Bin 554 -> 0 bytes .../snapshots/sp-sign_basic_normal/00004.png | Bin 907 -> 0 bytes .../snapshots/sp-sign_basic_normal/00005.png | Bin 553 -> 0 bytes .../snapshots/sp-sign_basic_normal/00006.png | Bin 381 -> 0 bytes .../snapshots/sp-sign_basic_normal/00007.png | Bin 456 -> 0 bytes .../snapshots/sp-sign_basic_normal/00008.png | Bin 285 -> 0 bytes .../snapshots/sp-sign_basic_normal/00009.png | Bin 355 -> 0 bytes .../snapshots/sp-sign_basic_normal/00010.png | Bin 472 -> 0 bytes .../sp-sns_add_permissions/00003.png | Bin 847 -> 844 bytes .../sp-sns_add_permissions/00005.png | Bin 871 -> 873 bytes .../snapshots/sp-sns_disburse/00003.png | Bin 847 -> 844 bytes .../snapshots/sp-sns_disburse/00005.png | Bin 921 -> 915 bytes .../snapshots/sp-sns_disburse/00006.png | Bin 895 -> 895 bytes .../snapshots/sp-sns_disburse/00007.png | Bin 733 -> 733 bytes .../sp-sns_remove_permissions/00005.png | Bin 871 -> 873 bytes .../snapshots/sp-sns_stake_maturity/00005.png | Bin 444 -> 441 bytes .../snapshots/sp-sns_start_dissolve/00001.png | Bin 546 -> 544 bytes .../snapshots/sp-sns_stop_dissolve/00003.png | Bin 847 -> 844 bytes tests_zemu/snapshots/st-mainmenu/00001.png | Bin 14153 -> 14016 bytes .../snapshots/st-pb_add_hotkey/00000.png | Bin 8043 -> 0 bytes .../snapshots/st-pb_add_hotkey/00001.png | Bin 12144 -> 0 bytes .../snapshots/st-pb_add_hotkey/00002.png | Bin 14924 -> 0 bytes .../snapshots/st-pb_add_hotkey/00003.png | Bin 8974 -> 0 bytes .../snapshots/st-pb_add_hotkey/00004.png | Bin 11824 -> 0 bytes .../snapshots/st-pb_check_status/00000.png | Bin 8043 -> 0 bytes .../snapshots/st-pb_check_status/00001.png | Bin 8734 -> 0 bytes .../snapshots/st-pb_check_status/00002.png | Bin 8974 -> 0 bytes .../snapshots/st-pb_check_status/00003.png | Bin 11824 -> 0 bytes .../snapshots/st-pb_claim_neurons/00000.png | Bin 8043 -> 0 bytes .../snapshots/st-pb_claim_neurons/00001.png | Bin 8967 -> 0 bytes .../snapshots/st-pb_claim_neurons/00002.png | Bin 8974 -> 0 bytes .../snapshots/st-pb_claim_neurons/00003.png | Bin 11824 -> 0 bytes tests_zemu/snapshots/st-pb_disburse/00000.png | Bin 8043 -> 0 bytes tests_zemu/snapshots/st-pb_disburse/00001.png | Bin 12145 -> 0 bytes tests_zemu/snapshots/st-pb_disburse/00002.png | Bin 18556 -> 0 bytes tests_zemu/snapshots/st-pb_disburse/00003.png | Bin 8974 -> 0 bytes tests_zemu/snapshots/st-pb_disburse/00004.png | Bin 11824 -> 0 bytes tests_zemu/snapshots/st-pb_follow/00000.png | Bin 8043 -> 0 bytes tests_zemu/snapshots/st-pb_follow/00001.png | Bin 12961 -> 0 bytes tests_zemu/snapshots/st-pb_follow/00002.png | Bin 9816 -> 0 bytes tests_zemu/snapshots/st-pb_follow/00003.png | Bin 8974 -> 0 bytes tests_zemu/snapshots/st-pb_follow/00004.png | Bin 11824 -> 0 bytes .../st-pb_increase_dissolve_delay/00000.png | Bin 8043 -> 0 bytes .../st-pb_increase_dissolve_delay/00001.png | Bin 13283 -> 0 bytes .../st-pb_increase_dissolve_delay/00002.png | Bin 8974 -> 0 bytes .../st-pb_increase_dissolve_delay/00003.png | Bin 11824 -> 0 bytes .../st-pb_join_community_fund/00000.png | Bin 8043 -> 0 bytes .../st-pb_join_community_fund/00001.png | Bin 10402 -> 0 bytes .../st-pb_join_community_fund/00002.png | Bin 8974 -> 0 bytes .../st-pb_join_community_fund/00003.png | Bin 11824 -> 0 bytes .../snapshots/st-pb_list_neurons/00000.png | Bin 8043 -> 0 bytes .../snapshots/st-pb_list_neurons/00001.png | Bin 9068 -> 0 bytes .../snapshots/st-pb_list_neurons/00002.png | Bin 8974 -> 0 bytes .../snapshots/st-pb_list_neurons/00003.png | Bin 11824 -> 0 bytes .../snapshots/st-pb_register_vote/00000.png | Bin 8043 -> 0 bytes .../snapshots/st-pb_register_vote/00001.png | Bin 13712 -> 0 bytes .../snapshots/st-pb_register_vote/00002.png | Bin 8974 -> 0 bytes .../snapshots/st-pb_register_vote/00003.png | Bin 11824 -> 0 bytes .../snapshots/st-pb_remove_hotkey/00000.png | Bin 8043 -> 0 bytes .../snapshots/st-pb_remove_hotkey/00001.png | Bin 12272 -> 0 bytes .../snapshots/st-pb_remove_hotkey/00002.png | Bin 14924 -> 0 bytes .../snapshots/st-pb_remove_hotkey/00003.png | Bin 8974 -> 0 bytes .../snapshots/st-pb_remove_hotkey/00004.png | Bin 11824 -> 0 bytes .../st-pb_sign_update_call/00000.png | Bin 8043 -> 0 bytes .../st-pb_sign_update_call/00001.png | Bin 18879 -> 0 bytes .../st-pb_sign_update_call/00002.png | Bin 19220 -> 0 bytes .../st-pb_sign_update_call/00003.png | Bin 6648 -> 0 bytes .../st-pb_sign_update_call/00004.png | Bin 8977 -> 0 bytes .../st-pb_sign_update_call/00005.png | Bin 11824 -> 0 bytes .../snapshots/st-pb_spawn_neuron/00000.png | Bin 8043 -> 0 bytes .../snapshots/st-pb_spawn_neuron/00001.png | Bin 14546 -> 0 bytes .../snapshots/st-pb_spawn_neuron/00002.png | Bin 8974 -> 0 bytes .../snapshots/st-pb_spawn_neuron/00003.png | Bin 11824 -> 0 bytes .../snapshots/st-pb_stake_neuron/00000.png | Bin 8043 -> 0 bytes .../snapshots/st-pb_stake_neuron/00001.png | Bin 20881 -> 0 bytes .../snapshots/st-pb_stake_neuron/00002.png | Bin 10916 -> 0 bytes .../snapshots/st-pb_stake_neuron/00003.png | Bin 8974 -> 0 bytes .../snapshots/st-pb_stake_neuron/00004.png | Bin 11824 -> 0 bytes .../snapshots/st-pb_start_dissolve/00000.png | Bin 8043 -> 0 bytes .../snapshots/st-pb_start_dissolve/00001.png | Bin 12900 -> 0 bytes .../snapshots/st-pb_start_dissolve/00002.png | Bin 8974 -> 0 bytes .../snapshots/st-pb_start_dissolve/00003.png | Bin 11824 -> 0 bytes .../snapshots/st-pb_stop_dissolve/00000.png | Bin 8043 -> 0 bytes .../snapshots/st-pb_stop_dissolve/00001.png | Bin 12830 -> 0 bytes .../snapshots/st-pb_stop_dissolve/00002.png | Bin 8974 -> 0 bytes .../snapshots/st-pb_stop_dissolve/00003.png | Bin 11824 -> 0 bytes .../snapshots/st-sign_basic_expert/00000.png | Bin 8043 -> 0 bytes .../snapshots/st-sign_basic_expert/00001.png | Bin 17596 -> 0 bytes .../snapshots/st-sign_basic_expert/00002.png | Bin 9180 -> 0 bytes .../snapshots/st-sign_basic_expert/00003.png | Bin 15720 -> 0 bytes .../snapshots/st-sign_basic_expert/00004.png | Bin 19951 -> 0 bytes .../snapshots/st-sign_basic_expert/00005.png | Bin 6646 -> 0 bytes .../snapshots/st-sign_basic_expert/00006.png | Bin 8973 -> 0 bytes .../snapshots/st-sign_basic_expert/00007.png | Bin 11824 -> 0 bytes .../snapshots/st-sign_basic_normal/00000.png | Bin 8043 -> 0 bytes .../snapshots/st-sign_basic_normal/00001.png | Bin 18404 -> 0 bytes .../snapshots/st-sign_basic_normal/00002.png | Bin 19953 -> 0 bytes .../snapshots/st-sign_basic_normal/00003.png | Bin 6648 -> 0 bytes .../snapshots/st-sign_basic_normal/00004.png | Bin 8977 -> 0 bytes .../snapshots/st-sign_basic_normal/00005.png | Bin 11824 -> 0 bytes tests_zemu/snapshots/x-mainmenu/00004.png | Bin 370 -> 359 bytes tests_zemu/snapshots/x-mainmenu/00010.png | Bin 370 -> 359 bytes .../snapshots/x-pb_add_hotkey/00000.png | Bin 453 -> 0 bytes .../snapshots/x-pb_add_hotkey/00001.png | Bin 509 -> 0 bytes .../snapshots/x-pb_add_hotkey/00002.png | Bin 505 -> 0 bytes .../snapshots/x-pb_add_hotkey/00003.png | Bin 885 -> 0 bytes .../snapshots/x-pb_add_hotkey/00004.png | Bin 477 -> 0 bytes .../snapshots/x-pb_add_hotkey/00005.png | Bin 355 -> 0 bytes .../snapshots/x-pb_add_hotkey/00006.png | Bin 472 -> 0 bytes .../snapshots/x-pb_check_status/00000.png | Bin 453 -> 0 bytes .../snapshots/x-pb_check_status/00001.png | Bin 518 -> 0 bytes .../snapshots/x-pb_check_status/00002.png | Bin 355 -> 0 bytes .../snapshots/x-pb_check_status/00003.png | Bin 472 -> 0 bytes .../snapshots/x-pb_claim_neurons/00000.png | Bin 453 -> 0 bytes .../snapshots/x-pb_claim_neurons/00001.png | Bin 501 -> 0 bytes .../snapshots/x-pb_claim_neurons/00002.png | Bin 355 -> 0 bytes .../snapshots/x-pb_claim_neurons/00003.png | Bin 472 -> 0 bytes tests_zemu/snapshots/x-pb_disburse/00000.png | Bin 453 -> 0 bytes tests_zemu/snapshots/x-pb_disburse/00001.png | Bin 512 -> 0 bytes tests_zemu/snapshots/x-pb_disburse/00002.png | Bin 495 -> 0 bytes tests_zemu/snapshots/x-pb_disburse/00003.png | Bin 893 -> 0 bytes tests_zemu/snapshots/x-pb_disburse/00004.png | Bin 556 -> 0 bytes tests_zemu/snapshots/x-pb_disburse/00005.png | Bin 463 -> 0 bytes tests_zemu/snapshots/x-pb_disburse/00006.png | Bin 355 -> 0 bytes tests_zemu/snapshots/x-pb_disburse/00007.png | Bin 472 -> 0 bytes tests_zemu/snapshots/x-pb_follow/00000.png | Bin 453 -> 0 bytes tests_zemu/snapshots/x-pb_follow/00001.png | Bin 457 -> 0 bytes tests_zemu/snapshots/x-pb_follow/00002.png | Bin 343 -> 0 bytes tests_zemu/snapshots/x-pb_follow/00003.png | Bin 361 -> 0 bytes tests_zemu/snapshots/x-pb_follow/00004.png | Bin 411 -> 0 bytes tests_zemu/snapshots/x-pb_follow/00005.png | Bin 409 -> 0 bytes tests_zemu/snapshots/x-pb_follow/00006.png | Bin 411 -> 0 bytes tests_zemu/snapshots/x-pb_follow/00007.png | Bin 355 -> 0 bytes tests_zemu/snapshots/x-pb_follow/00008.png | Bin 472 -> 0 bytes .../x-pb_increase_dissolve_delay/00000.png | Bin 453 -> 0 bytes .../x-pb_increase_dissolve_delay/00001.png | Bin 607 -> 0 bytes .../x-pb_increase_dissolve_delay/00002.png | Bin 343 -> 0 bytes .../x-pb_increase_dissolve_delay/00003.png | Bin 423 -> 0 bytes .../x-pb_increase_dissolve_delay/00004.png | Bin 355 -> 0 bytes .../x-pb_increase_dissolve_delay/00005.png | Bin 472 -> 0 bytes .../x-pb_join_community_fund/00000.png | Bin 453 -> 0 bytes .../x-pb_join_community_fund/00001.png | Bin 524 -> 0 bytes .../x-pb_join_community_fund/00002.png | Bin 343 -> 0 bytes .../x-pb_join_community_fund/00003.png | Bin 355 -> 0 bytes .../x-pb_join_community_fund/00004.png | Bin 472 -> 0 bytes .../snapshots/x-pb_list_neurons/00000.png | Bin 453 -> 0 bytes .../snapshots/x-pb_list_neurons/00001.png | Bin 528 -> 0 bytes .../snapshots/x-pb_list_neurons/00002.png | Bin 355 -> 0 bytes .../snapshots/x-pb_list_neurons/00003.png | Bin 472 -> 0 bytes .../snapshots/x-pb_register_vote/00000.png | Bin 453 -> 0 bytes .../snapshots/x-pb_register_vote/00001.png | Bin 519 -> 0 bytes .../snapshots/x-pb_register_vote/00002.png | Bin 359 -> 0 bytes .../snapshots/x-pb_register_vote/00003.png | Bin 360 -> 0 bytes .../snapshots/x-pb_register_vote/00004.png | Bin 300 -> 0 bytes .../snapshots/x-pb_register_vote/00005.png | Bin 355 -> 0 bytes .../snapshots/x-pb_register_vote/00006.png | Bin 472 -> 0 bytes .../snapshots/x-pb_remove_hotkey/00000.png | Bin 453 -> 0 bytes .../snapshots/x-pb_remove_hotkey/00001.png | Bin 517 -> 0 bytes .../snapshots/x-pb_remove_hotkey/00002.png | Bin 505 -> 0 bytes .../snapshots/x-pb_remove_hotkey/00003.png | Bin 885 -> 0 bytes .../snapshots/x-pb_remove_hotkey/00004.png | Bin 477 -> 0 bytes .../snapshots/x-pb_remove_hotkey/00005.png | Bin 355 -> 0 bytes .../snapshots/x-pb_remove_hotkey/00006.png | Bin 472 -> 0 bytes .../snapshots/x-pb_sign_update_call/00000.png | Bin 453 -> 0 bytes .../snapshots/x-pb_sign_update_call/00001.png | Bin 478 -> 0 bytes .../snapshots/x-pb_sign_update_call/00002.png | Bin 920 -> 0 bytes .../snapshots/x-pb_sign_update_call/00003.png | Bin 561 -> 0 bytes .../snapshots/x-pb_sign_update_call/00004.png | Bin 872 -> 0 bytes .../snapshots/x-pb_sign_update_call/00005.png | Bin 529 -> 0 bytes .../snapshots/x-pb_sign_update_call/00006.png | Bin 381 -> 0 bytes .../snapshots/x-pb_sign_update_call/00007.png | Bin 415 -> 0 bytes .../snapshots/x-pb_sign_update_call/00008.png | Bin 285 -> 0 bytes .../snapshots/x-pb_sign_update_call/00009.png | Bin 355 -> 0 bytes .../snapshots/x-pb_sign_update_call/00010.png | Bin 472 -> 0 bytes .../snapshots/x-pb_spawn_neuron/00000.png | Bin 453 -> 0 bytes .../snapshots/x-pb_spawn_neuron/00001.png | Bin 510 -> 0 bytes .../snapshots/x-pb_spawn_neuron/00002.png | Bin 502 -> 0 bytes .../snapshots/x-pb_spawn_neuron/00003.png | Bin 363 -> 0 bytes .../snapshots/x-pb_spawn_neuron/00004.png | Bin 355 -> 0 bytes .../snapshots/x-pb_spawn_neuron/00005.png | Bin 472 -> 0 bytes .../snapshots/x-pb_stake_neuron/00000.png | Bin 453 -> 0 bytes .../snapshots/x-pb_stake_neuron/00001.png | Bin 505 -> 0 bytes .../snapshots/x-pb_stake_neuron/00002.png | Bin 920 -> 0 bytes .../snapshots/x-pb_stake_neuron/00003.png | Bin 561 -> 0 bytes .../snapshots/x-pb_stake_neuron/00004.png | Bin 378 -> 0 bytes .../snapshots/x-pb_stake_neuron/00005.png | Bin 415 -> 0 bytes .../snapshots/x-pb_stake_neuron/00006.png | Bin 424 -> 0 bytes .../snapshots/x-pb_stake_neuron/00007.png | Bin 355 -> 0 bytes .../snapshots/x-pb_stake_neuron/00008.png | Bin 472 -> 0 bytes .../snapshots/x-pb_start_dissolve/00000.png | Bin 453 -> 0 bytes .../snapshots/x-pb_start_dissolve/00001.png | Bin 544 -> 0 bytes .../snapshots/x-pb_start_dissolve/00002.png | Bin 507 -> 0 bytes .../snapshots/x-pb_start_dissolve/00003.png | Bin 355 -> 0 bytes .../snapshots/x-pb_start_dissolve/00004.png | Bin 472 -> 0 bytes .../snapshots/x-pb_stop_dissolve/00000.png | Bin 453 -> 0 bytes .../snapshots/x-pb_stop_dissolve/00001.png | Bin 546 -> 0 bytes .../snapshots/x-pb_stop_dissolve/00002.png | Bin 507 -> 0 bytes .../snapshots/x-pb_stop_dissolve/00003.png | Bin 355 -> 0 bytes .../snapshots/x-pb_stop_dissolve/00004.png | Bin 472 -> 0 bytes .../snapshots/x-sign_basic_expert/00000.png | Bin 453 -> 0 bytes .../snapshots/x-sign_basic_expert/00001.png | Bin 478 -> 0 bytes .../snapshots/x-sign_basic_expert/00002.png | Bin 871 -> 0 bytes .../snapshots/x-sign_basic_expert/00003.png | Bin 467 -> 0 bytes .../snapshots/x-sign_basic_expert/00004.png | Bin 499 -> 0 bytes .../snapshots/x-sign_basic_expert/00005.png | Bin 434 -> 0 bytes .../snapshots/x-sign_basic_expert/00006.png | Bin 879 -> 0 bytes .../snapshots/x-sign_basic_expert/00007.png | Bin 554 -> 0 bytes .../snapshots/x-sign_basic_expert/00008.png | Bin 907 -> 0 bytes .../snapshots/x-sign_basic_expert/00009.png | Bin 546 -> 0 bytes .../snapshots/x-sign_basic_expert/00010.png | Bin 380 -> 0 bytes .../snapshots/x-sign_basic_expert/00011.png | Bin 456 -> 0 bytes .../snapshots/x-sign_basic_expert/00012.png | Bin 285 -> 0 bytes .../snapshots/x-sign_basic_expert/00013.png | Bin 355 -> 0 bytes .../snapshots/x-sign_basic_expert/00014.png | Bin 472 -> 0 bytes .../snapshots/x-sign_basic_normal/00000.png | Bin 453 -> 0 bytes .../snapshots/x-sign_basic_normal/00001.png | Bin 478 -> 0 bytes .../snapshots/x-sign_basic_normal/00002.png | Bin 879 -> 0 bytes .../snapshots/x-sign_basic_normal/00003.png | Bin 554 -> 0 bytes .../snapshots/x-sign_basic_normal/00004.png | Bin 907 -> 0 bytes .../snapshots/x-sign_basic_normal/00005.png | Bin 546 -> 0 bytes .../snapshots/x-sign_basic_normal/00006.png | Bin 380 -> 0 bytes .../snapshots/x-sign_basic_normal/00007.png | Bin 456 -> 0 bytes .../snapshots/x-sign_basic_normal/00008.png | Bin 285 -> 0 bytes .../snapshots/x-sign_basic_normal/00009.png | Bin 355 -> 0 bytes .../snapshots/x-sign_basic_normal/00010.png | Bin 472 -> 0 bytes tests_zemu/tests/candid.test.ts | 21 - tests_zemu/tests/protobuf.test.ts | 221 -------- tests_zemu/tests/standard.test.ts | 117 +--- 507 files changed, 138 insertions(+), 784 deletions(-) delete mode 100644 tests_zemu/snapshots/s-pb_add_hotkey/00000.png delete mode 100644 tests_zemu/snapshots/s-pb_add_hotkey/00001.png delete mode 100644 tests_zemu/snapshots/s-pb_add_hotkey/00002.png delete mode 100644 tests_zemu/snapshots/s-pb_add_hotkey/00003.png delete mode 100644 tests_zemu/snapshots/s-pb_add_hotkey/00004.png delete mode 100644 tests_zemu/snapshots/s-pb_add_hotkey/00005.png delete mode 100644 tests_zemu/snapshots/s-pb_check_status/00000.png delete mode 100644 tests_zemu/snapshots/s-pb_check_status/00001.png delete mode 100644 tests_zemu/snapshots/s-pb_check_status/00002.png delete mode 100644 tests_zemu/snapshots/s-pb_claim_neurons/00000.png delete mode 100644 tests_zemu/snapshots/s-pb_claim_neurons/00001.png delete mode 100644 tests_zemu/snapshots/s-pb_claim_neurons/00002.png delete mode 100644 tests_zemu/snapshots/s-pb_disburse/00000.png delete mode 100644 tests_zemu/snapshots/s-pb_disburse/00001.png delete mode 100644 tests_zemu/snapshots/s-pb_disburse/00002.png delete mode 100644 tests_zemu/snapshots/s-pb_disburse/00003.png delete mode 100644 tests_zemu/snapshots/s-pb_disburse/00004.png delete mode 100644 tests_zemu/snapshots/s-pb_disburse/00005.png delete mode 100644 tests_zemu/snapshots/s-pb_disburse/00006.png delete mode 100644 tests_zemu/snapshots/s-pb_follow/00000.png delete mode 100644 tests_zemu/snapshots/s-pb_follow/00001.png delete mode 100644 tests_zemu/snapshots/s-pb_follow/00002.png delete mode 100644 tests_zemu/snapshots/s-pb_follow/00003.png delete mode 100644 tests_zemu/snapshots/s-pb_follow/00004.png delete mode 100644 tests_zemu/snapshots/s-pb_follow/00005.png delete mode 100644 tests_zemu/snapshots/s-pb_follow/00006.png delete mode 100644 tests_zemu/snapshots/s-pb_follow/00007.png delete mode 100644 tests_zemu/snapshots/s-pb_increase_dissolve_delay/00000.png delete mode 100644 tests_zemu/snapshots/s-pb_increase_dissolve_delay/00001.png delete mode 100644 tests_zemu/snapshots/s-pb_increase_dissolve_delay/00002.png delete mode 100644 tests_zemu/snapshots/s-pb_increase_dissolve_delay/00003.png delete mode 100644 tests_zemu/snapshots/s-pb_increase_dissolve_delay/00004.png delete mode 100644 tests_zemu/snapshots/s-pb_join_community_fund/00000.png delete mode 100644 tests_zemu/snapshots/s-pb_join_community_fund/00001.png delete mode 100644 tests_zemu/snapshots/s-pb_join_community_fund/00002.png delete mode 100644 tests_zemu/snapshots/s-pb_join_community_fund/00003.png delete mode 100644 tests_zemu/snapshots/s-pb_list_neurons/00000.png delete mode 100644 tests_zemu/snapshots/s-pb_list_neurons/00001.png delete mode 100644 tests_zemu/snapshots/s-pb_list_neurons/00002.png delete mode 100644 tests_zemu/snapshots/s-pb_register_vote/00000.png delete mode 100644 tests_zemu/snapshots/s-pb_register_vote/00001.png delete mode 100644 tests_zemu/snapshots/s-pb_register_vote/00002.png delete mode 100644 tests_zemu/snapshots/s-pb_register_vote/00003.png delete mode 100644 tests_zemu/snapshots/s-pb_register_vote/00004.png delete mode 100644 tests_zemu/snapshots/s-pb_register_vote/00005.png delete mode 100644 tests_zemu/snapshots/s-pb_remove_hotkey/00000.png delete mode 100644 tests_zemu/snapshots/s-pb_remove_hotkey/00001.png delete mode 100644 tests_zemu/snapshots/s-pb_remove_hotkey/00002.png delete mode 100644 tests_zemu/snapshots/s-pb_remove_hotkey/00003.png delete mode 100644 tests_zemu/snapshots/s-pb_remove_hotkey/00004.png delete mode 100644 tests_zemu/snapshots/s-pb_remove_hotkey/00005.png delete mode 100644 tests_zemu/snapshots/s-pb_sign_update_call/00000.png delete mode 100644 tests_zemu/snapshots/s-pb_sign_update_call/00001.png delete mode 100644 tests_zemu/snapshots/s-pb_sign_update_call/00002.png delete mode 100644 tests_zemu/snapshots/s-pb_sign_update_call/00003.png delete mode 100644 tests_zemu/snapshots/s-pb_sign_update_call/00004.png delete mode 100644 tests_zemu/snapshots/s-pb_sign_update_call/00005.png delete mode 100644 tests_zemu/snapshots/s-pb_sign_update_call/00006.png delete mode 100644 tests_zemu/snapshots/s-pb_sign_update_call/00007.png delete mode 100644 tests_zemu/snapshots/s-pb_sign_update_call/00008.png delete mode 100644 tests_zemu/snapshots/s-pb_sign_update_call/00009.png delete mode 100644 tests_zemu/snapshots/s-pb_spawn_neuron/00000.png delete mode 100644 tests_zemu/snapshots/s-pb_spawn_neuron/00001.png delete mode 100644 tests_zemu/snapshots/s-pb_spawn_neuron/00002.png delete mode 100644 tests_zemu/snapshots/s-pb_spawn_neuron/00003.png delete mode 100644 tests_zemu/snapshots/s-pb_spawn_neuron/00004.png delete mode 100644 tests_zemu/snapshots/s-pb_stake_neuron/00000.png delete mode 100644 tests_zemu/snapshots/s-pb_stake_neuron/00001.png delete mode 100644 tests_zemu/snapshots/s-pb_stake_neuron/00002.png delete mode 100644 tests_zemu/snapshots/s-pb_stake_neuron/00003.png delete mode 100644 tests_zemu/snapshots/s-pb_stake_neuron/00004.png delete mode 100644 tests_zemu/snapshots/s-pb_stake_neuron/00005.png delete mode 100644 tests_zemu/snapshots/s-pb_stake_neuron/00006.png delete mode 100644 tests_zemu/snapshots/s-pb_stake_neuron/00007.png delete mode 100644 tests_zemu/snapshots/s-pb_start_dissolve/00000.png delete mode 100644 tests_zemu/snapshots/s-pb_start_dissolve/00001.png delete mode 100644 tests_zemu/snapshots/s-pb_start_dissolve/00002.png delete mode 100644 tests_zemu/snapshots/s-pb_start_dissolve/00003.png delete mode 100644 tests_zemu/snapshots/s-pb_stop_dissolve/00000.png delete mode 100644 tests_zemu/snapshots/s-pb_stop_dissolve/00001.png delete mode 100644 tests_zemu/snapshots/s-pb_stop_dissolve/00002.png delete mode 100644 tests_zemu/snapshots/s-pb_stop_dissolve/00003.png delete mode 100644 tests_zemu/snapshots/s-sign_basic_expert/00000.png delete mode 100644 tests_zemu/snapshots/s-sign_basic_expert/00001.png delete mode 100644 tests_zemu/snapshots/s-sign_basic_expert/00002.png delete mode 100644 tests_zemu/snapshots/s-sign_basic_expert/00003.png delete mode 100644 tests_zemu/snapshots/s-sign_basic_expert/00004.png delete mode 100644 tests_zemu/snapshots/s-sign_basic_expert/00005.png delete mode 100644 tests_zemu/snapshots/s-sign_basic_expert/00006.png delete mode 100644 tests_zemu/snapshots/s-sign_basic_expert/00007.png delete mode 100644 tests_zemu/snapshots/s-sign_basic_expert/00008.png delete mode 100644 tests_zemu/snapshots/s-sign_basic_expert/00009.png delete mode 100644 tests_zemu/snapshots/s-sign_basic_expert/00010.png delete mode 100644 tests_zemu/snapshots/s-sign_basic_expert/00011.png delete mode 100644 tests_zemu/snapshots/s-sign_basic_expert/00012.png delete mode 100644 tests_zemu/snapshots/s-sign_basic_expert/00013.png delete mode 100644 tests_zemu/snapshots/s-sign_basic_normal/00000.png delete mode 100644 tests_zemu/snapshots/s-sign_basic_normal/00001.png delete mode 100644 tests_zemu/snapshots/s-sign_basic_normal/00002.png delete mode 100644 tests_zemu/snapshots/s-sign_basic_normal/00003.png delete mode 100644 tests_zemu/snapshots/s-sign_basic_normal/00004.png delete mode 100644 tests_zemu/snapshots/s-sign_basic_normal/00005.png delete mode 100644 tests_zemu/snapshots/s-sign_basic_normal/00006.png delete mode 100644 tests_zemu/snapshots/s-sign_basic_normal/00007.png delete mode 100644 tests_zemu/snapshots/s-sign_basic_normal/00008.png delete mode 100644 tests_zemu/snapshots/s-sign_basic_normal/00009.png delete mode 100644 tests_zemu/snapshots/sp-pb_add_hotkey/00000.png delete mode 100644 tests_zemu/snapshots/sp-pb_add_hotkey/00001.png delete mode 100644 tests_zemu/snapshots/sp-pb_add_hotkey/00002.png delete mode 100644 tests_zemu/snapshots/sp-pb_add_hotkey/00003.png delete mode 100644 tests_zemu/snapshots/sp-pb_add_hotkey/00004.png delete mode 100644 tests_zemu/snapshots/sp-pb_add_hotkey/00005.png delete mode 100644 tests_zemu/snapshots/sp-pb_add_hotkey/00006.png delete mode 100644 tests_zemu/snapshots/sp-pb_check_status/00000.png delete mode 100644 tests_zemu/snapshots/sp-pb_check_status/00001.png delete mode 100644 tests_zemu/snapshots/sp-pb_check_status/00002.png delete mode 100644 tests_zemu/snapshots/sp-pb_check_status/00003.png delete mode 100644 tests_zemu/snapshots/sp-pb_claim_neurons/00000.png delete mode 100644 tests_zemu/snapshots/sp-pb_claim_neurons/00001.png delete mode 100644 tests_zemu/snapshots/sp-pb_claim_neurons/00002.png delete mode 100644 tests_zemu/snapshots/sp-pb_claim_neurons/00003.png delete mode 100644 tests_zemu/snapshots/sp-pb_disburse/00000.png delete mode 100644 tests_zemu/snapshots/sp-pb_disburse/00001.png delete mode 100644 tests_zemu/snapshots/sp-pb_disburse/00002.png delete mode 100644 tests_zemu/snapshots/sp-pb_disburse/00003.png delete mode 100644 tests_zemu/snapshots/sp-pb_disburse/00004.png delete mode 100644 tests_zemu/snapshots/sp-pb_disburse/00005.png delete mode 100644 tests_zemu/snapshots/sp-pb_disburse/00006.png delete mode 100644 tests_zemu/snapshots/sp-pb_disburse/00007.png delete mode 100644 tests_zemu/snapshots/sp-pb_follow/00000.png delete mode 100644 tests_zemu/snapshots/sp-pb_follow/00001.png delete mode 100644 tests_zemu/snapshots/sp-pb_follow/00002.png delete mode 100644 tests_zemu/snapshots/sp-pb_follow/00003.png delete mode 100644 tests_zemu/snapshots/sp-pb_follow/00004.png delete mode 100644 tests_zemu/snapshots/sp-pb_follow/00005.png delete mode 100644 tests_zemu/snapshots/sp-pb_follow/00006.png delete mode 100644 tests_zemu/snapshots/sp-pb_follow/00007.png delete mode 100644 tests_zemu/snapshots/sp-pb_follow/00008.png delete mode 100644 tests_zemu/snapshots/sp-pb_increase_dissolve_delay/00000.png delete mode 100644 tests_zemu/snapshots/sp-pb_increase_dissolve_delay/00001.png delete mode 100644 tests_zemu/snapshots/sp-pb_increase_dissolve_delay/00002.png delete mode 100644 tests_zemu/snapshots/sp-pb_increase_dissolve_delay/00003.png delete mode 100644 tests_zemu/snapshots/sp-pb_increase_dissolve_delay/00004.png delete mode 100644 tests_zemu/snapshots/sp-pb_increase_dissolve_delay/00005.png delete mode 100644 tests_zemu/snapshots/sp-pb_join_community_fund/00000.png delete mode 100644 tests_zemu/snapshots/sp-pb_join_community_fund/00001.png delete mode 100644 tests_zemu/snapshots/sp-pb_join_community_fund/00002.png delete mode 100644 tests_zemu/snapshots/sp-pb_join_community_fund/00003.png delete mode 100644 tests_zemu/snapshots/sp-pb_join_community_fund/00004.png delete mode 100644 tests_zemu/snapshots/sp-pb_list_neurons/00000.png delete mode 100644 tests_zemu/snapshots/sp-pb_list_neurons/00001.png delete mode 100644 tests_zemu/snapshots/sp-pb_list_neurons/00002.png delete mode 100644 tests_zemu/snapshots/sp-pb_list_neurons/00003.png delete mode 100644 tests_zemu/snapshots/sp-pb_register_vote/00000.png delete mode 100644 tests_zemu/snapshots/sp-pb_register_vote/00001.png delete mode 100644 tests_zemu/snapshots/sp-pb_register_vote/00002.png delete mode 100644 tests_zemu/snapshots/sp-pb_register_vote/00003.png delete mode 100644 tests_zemu/snapshots/sp-pb_register_vote/00004.png delete mode 100644 tests_zemu/snapshots/sp-pb_register_vote/00005.png delete mode 100644 tests_zemu/snapshots/sp-pb_register_vote/00006.png delete mode 100644 tests_zemu/snapshots/sp-pb_remove_hotkey/00000.png delete mode 100644 tests_zemu/snapshots/sp-pb_remove_hotkey/00001.png delete mode 100644 tests_zemu/snapshots/sp-pb_remove_hotkey/00002.png delete mode 100644 tests_zemu/snapshots/sp-pb_remove_hotkey/00003.png delete mode 100644 tests_zemu/snapshots/sp-pb_remove_hotkey/00004.png delete mode 100644 tests_zemu/snapshots/sp-pb_remove_hotkey/00005.png delete mode 100644 tests_zemu/snapshots/sp-pb_remove_hotkey/00006.png delete mode 100644 tests_zemu/snapshots/sp-pb_sign_update_call/00000.png delete mode 100644 tests_zemu/snapshots/sp-pb_sign_update_call/00001.png delete mode 100644 tests_zemu/snapshots/sp-pb_sign_update_call/00002.png delete mode 100644 tests_zemu/snapshots/sp-pb_sign_update_call/00003.png delete mode 100644 tests_zemu/snapshots/sp-pb_sign_update_call/00004.png delete mode 100644 tests_zemu/snapshots/sp-pb_sign_update_call/00005.png delete mode 100644 tests_zemu/snapshots/sp-pb_sign_update_call/00006.png delete mode 100644 tests_zemu/snapshots/sp-pb_sign_update_call/00007.png delete mode 100644 tests_zemu/snapshots/sp-pb_sign_update_call/00008.png delete mode 100644 tests_zemu/snapshots/sp-pb_sign_update_call/00009.png delete mode 100644 tests_zemu/snapshots/sp-pb_sign_update_call/00010.png delete mode 100644 tests_zemu/snapshots/sp-pb_spawn_neuron/00000.png delete mode 100644 tests_zemu/snapshots/sp-pb_spawn_neuron/00001.png delete mode 100644 tests_zemu/snapshots/sp-pb_spawn_neuron/00002.png delete mode 100644 tests_zemu/snapshots/sp-pb_spawn_neuron/00003.png delete mode 100644 tests_zemu/snapshots/sp-pb_spawn_neuron/00004.png delete mode 100644 tests_zemu/snapshots/sp-pb_spawn_neuron/00005.png delete mode 100644 tests_zemu/snapshots/sp-pb_stake_neuron/00000.png delete mode 100644 tests_zemu/snapshots/sp-pb_stake_neuron/00001.png delete mode 100644 tests_zemu/snapshots/sp-pb_stake_neuron/00002.png delete mode 100644 tests_zemu/snapshots/sp-pb_stake_neuron/00003.png delete mode 100644 tests_zemu/snapshots/sp-pb_stake_neuron/00004.png delete mode 100644 tests_zemu/snapshots/sp-pb_stake_neuron/00005.png delete mode 100644 tests_zemu/snapshots/sp-pb_stake_neuron/00006.png delete mode 100644 tests_zemu/snapshots/sp-pb_stake_neuron/00007.png delete mode 100644 tests_zemu/snapshots/sp-pb_stake_neuron/00008.png delete mode 100644 tests_zemu/snapshots/sp-pb_start_dissolve/00000.png delete mode 100644 tests_zemu/snapshots/sp-pb_start_dissolve/00001.png delete mode 100644 tests_zemu/snapshots/sp-pb_start_dissolve/00002.png delete mode 100644 tests_zemu/snapshots/sp-pb_start_dissolve/00003.png delete mode 100644 tests_zemu/snapshots/sp-pb_start_dissolve/00004.png delete mode 100644 tests_zemu/snapshots/sp-pb_stop_dissolve/00000.png delete mode 100644 tests_zemu/snapshots/sp-pb_stop_dissolve/00001.png delete mode 100644 tests_zemu/snapshots/sp-pb_stop_dissolve/00002.png delete mode 100644 tests_zemu/snapshots/sp-pb_stop_dissolve/00003.png delete mode 100644 tests_zemu/snapshots/sp-pb_stop_dissolve/00004.png delete mode 100644 tests_zemu/snapshots/sp-sign_basic_expert/00000.png delete mode 100644 tests_zemu/snapshots/sp-sign_basic_expert/00001.png delete mode 100644 tests_zemu/snapshots/sp-sign_basic_expert/00002.png delete mode 100644 tests_zemu/snapshots/sp-sign_basic_expert/00003.png delete mode 100644 tests_zemu/snapshots/sp-sign_basic_expert/00004.png delete mode 100644 tests_zemu/snapshots/sp-sign_basic_expert/00005.png delete mode 100644 tests_zemu/snapshots/sp-sign_basic_expert/00006.png delete mode 100644 tests_zemu/snapshots/sp-sign_basic_expert/00007.png delete mode 100644 tests_zemu/snapshots/sp-sign_basic_expert/00008.png delete mode 100644 tests_zemu/snapshots/sp-sign_basic_expert/00009.png delete mode 100644 tests_zemu/snapshots/sp-sign_basic_expert/00010.png delete mode 100644 tests_zemu/snapshots/sp-sign_basic_expert/00011.png delete mode 100644 tests_zemu/snapshots/sp-sign_basic_expert/00012.png delete mode 100644 tests_zemu/snapshots/sp-sign_basic_expert/00013.png delete mode 100644 tests_zemu/snapshots/sp-sign_basic_expert/00014.png delete mode 100644 tests_zemu/snapshots/sp-sign_basic_normal/00000.png delete mode 100644 tests_zemu/snapshots/sp-sign_basic_normal/00001.png delete mode 100644 tests_zemu/snapshots/sp-sign_basic_normal/00002.png delete mode 100644 tests_zemu/snapshots/sp-sign_basic_normal/00003.png delete mode 100644 tests_zemu/snapshots/sp-sign_basic_normal/00004.png delete mode 100644 tests_zemu/snapshots/sp-sign_basic_normal/00005.png delete mode 100644 tests_zemu/snapshots/sp-sign_basic_normal/00006.png delete mode 100644 tests_zemu/snapshots/sp-sign_basic_normal/00007.png delete mode 100644 tests_zemu/snapshots/sp-sign_basic_normal/00008.png delete mode 100644 tests_zemu/snapshots/sp-sign_basic_normal/00009.png delete mode 100644 tests_zemu/snapshots/sp-sign_basic_normal/00010.png delete mode 100644 tests_zemu/snapshots/st-pb_add_hotkey/00000.png delete mode 100644 tests_zemu/snapshots/st-pb_add_hotkey/00001.png delete mode 100644 tests_zemu/snapshots/st-pb_add_hotkey/00002.png delete mode 100644 tests_zemu/snapshots/st-pb_add_hotkey/00003.png delete mode 100644 tests_zemu/snapshots/st-pb_add_hotkey/00004.png delete mode 100644 tests_zemu/snapshots/st-pb_check_status/00000.png delete mode 100644 tests_zemu/snapshots/st-pb_check_status/00001.png delete mode 100644 tests_zemu/snapshots/st-pb_check_status/00002.png delete mode 100644 tests_zemu/snapshots/st-pb_check_status/00003.png delete mode 100644 tests_zemu/snapshots/st-pb_claim_neurons/00000.png delete mode 100644 tests_zemu/snapshots/st-pb_claim_neurons/00001.png delete mode 100644 tests_zemu/snapshots/st-pb_claim_neurons/00002.png delete mode 100644 tests_zemu/snapshots/st-pb_claim_neurons/00003.png delete mode 100644 tests_zemu/snapshots/st-pb_disburse/00000.png delete mode 100644 tests_zemu/snapshots/st-pb_disburse/00001.png delete mode 100644 tests_zemu/snapshots/st-pb_disburse/00002.png delete mode 100644 tests_zemu/snapshots/st-pb_disburse/00003.png delete mode 100644 tests_zemu/snapshots/st-pb_disburse/00004.png delete mode 100644 tests_zemu/snapshots/st-pb_follow/00000.png delete mode 100644 tests_zemu/snapshots/st-pb_follow/00001.png delete mode 100644 tests_zemu/snapshots/st-pb_follow/00002.png delete mode 100644 tests_zemu/snapshots/st-pb_follow/00003.png delete mode 100644 tests_zemu/snapshots/st-pb_follow/00004.png delete mode 100644 tests_zemu/snapshots/st-pb_increase_dissolve_delay/00000.png delete mode 100644 tests_zemu/snapshots/st-pb_increase_dissolve_delay/00001.png delete mode 100644 tests_zemu/snapshots/st-pb_increase_dissolve_delay/00002.png delete mode 100644 tests_zemu/snapshots/st-pb_increase_dissolve_delay/00003.png delete mode 100644 tests_zemu/snapshots/st-pb_join_community_fund/00000.png delete mode 100644 tests_zemu/snapshots/st-pb_join_community_fund/00001.png delete mode 100644 tests_zemu/snapshots/st-pb_join_community_fund/00002.png delete mode 100644 tests_zemu/snapshots/st-pb_join_community_fund/00003.png delete mode 100644 tests_zemu/snapshots/st-pb_list_neurons/00000.png delete mode 100644 tests_zemu/snapshots/st-pb_list_neurons/00001.png delete mode 100644 tests_zemu/snapshots/st-pb_list_neurons/00002.png delete mode 100644 tests_zemu/snapshots/st-pb_list_neurons/00003.png delete mode 100644 tests_zemu/snapshots/st-pb_register_vote/00000.png delete mode 100644 tests_zemu/snapshots/st-pb_register_vote/00001.png delete mode 100644 tests_zemu/snapshots/st-pb_register_vote/00002.png delete mode 100644 tests_zemu/snapshots/st-pb_register_vote/00003.png delete mode 100644 tests_zemu/snapshots/st-pb_remove_hotkey/00000.png delete mode 100644 tests_zemu/snapshots/st-pb_remove_hotkey/00001.png delete mode 100644 tests_zemu/snapshots/st-pb_remove_hotkey/00002.png delete mode 100644 tests_zemu/snapshots/st-pb_remove_hotkey/00003.png delete mode 100644 tests_zemu/snapshots/st-pb_remove_hotkey/00004.png delete mode 100644 tests_zemu/snapshots/st-pb_sign_update_call/00000.png delete mode 100644 tests_zemu/snapshots/st-pb_sign_update_call/00001.png delete mode 100644 tests_zemu/snapshots/st-pb_sign_update_call/00002.png delete mode 100644 tests_zemu/snapshots/st-pb_sign_update_call/00003.png delete mode 100644 tests_zemu/snapshots/st-pb_sign_update_call/00004.png delete mode 100644 tests_zemu/snapshots/st-pb_sign_update_call/00005.png delete mode 100644 tests_zemu/snapshots/st-pb_spawn_neuron/00000.png delete mode 100644 tests_zemu/snapshots/st-pb_spawn_neuron/00001.png delete mode 100644 tests_zemu/snapshots/st-pb_spawn_neuron/00002.png delete mode 100644 tests_zemu/snapshots/st-pb_spawn_neuron/00003.png delete mode 100644 tests_zemu/snapshots/st-pb_stake_neuron/00000.png delete mode 100644 tests_zemu/snapshots/st-pb_stake_neuron/00001.png delete mode 100644 tests_zemu/snapshots/st-pb_stake_neuron/00002.png delete mode 100644 tests_zemu/snapshots/st-pb_stake_neuron/00003.png delete mode 100644 tests_zemu/snapshots/st-pb_stake_neuron/00004.png delete mode 100644 tests_zemu/snapshots/st-pb_start_dissolve/00000.png delete mode 100644 tests_zemu/snapshots/st-pb_start_dissolve/00001.png delete mode 100644 tests_zemu/snapshots/st-pb_start_dissolve/00002.png delete mode 100644 tests_zemu/snapshots/st-pb_start_dissolve/00003.png delete mode 100644 tests_zemu/snapshots/st-pb_stop_dissolve/00000.png delete mode 100644 tests_zemu/snapshots/st-pb_stop_dissolve/00001.png delete mode 100644 tests_zemu/snapshots/st-pb_stop_dissolve/00002.png delete mode 100644 tests_zemu/snapshots/st-pb_stop_dissolve/00003.png delete mode 100644 tests_zemu/snapshots/st-sign_basic_expert/00000.png delete mode 100644 tests_zemu/snapshots/st-sign_basic_expert/00001.png delete mode 100644 tests_zemu/snapshots/st-sign_basic_expert/00002.png delete mode 100644 tests_zemu/snapshots/st-sign_basic_expert/00003.png delete mode 100644 tests_zemu/snapshots/st-sign_basic_expert/00004.png delete mode 100644 tests_zemu/snapshots/st-sign_basic_expert/00005.png delete mode 100644 tests_zemu/snapshots/st-sign_basic_expert/00006.png delete mode 100644 tests_zemu/snapshots/st-sign_basic_expert/00007.png delete mode 100644 tests_zemu/snapshots/st-sign_basic_normal/00000.png delete mode 100644 tests_zemu/snapshots/st-sign_basic_normal/00001.png delete mode 100644 tests_zemu/snapshots/st-sign_basic_normal/00002.png delete mode 100644 tests_zemu/snapshots/st-sign_basic_normal/00003.png delete mode 100644 tests_zemu/snapshots/st-sign_basic_normal/00004.png delete mode 100644 tests_zemu/snapshots/st-sign_basic_normal/00005.png delete mode 100644 tests_zemu/snapshots/x-pb_add_hotkey/00000.png delete mode 100644 tests_zemu/snapshots/x-pb_add_hotkey/00001.png delete mode 100644 tests_zemu/snapshots/x-pb_add_hotkey/00002.png delete mode 100644 tests_zemu/snapshots/x-pb_add_hotkey/00003.png delete mode 100644 tests_zemu/snapshots/x-pb_add_hotkey/00004.png delete mode 100644 tests_zemu/snapshots/x-pb_add_hotkey/00005.png delete mode 100644 tests_zemu/snapshots/x-pb_add_hotkey/00006.png delete mode 100644 tests_zemu/snapshots/x-pb_check_status/00000.png delete mode 100644 tests_zemu/snapshots/x-pb_check_status/00001.png delete mode 100644 tests_zemu/snapshots/x-pb_check_status/00002.png delete mode 100644 tests_zemu/snapshots/x-pb_check_status/00003.png delete mode 100644 tests_zemu/snapshots/x-pb_claim_neurons/00000.png delete mode 100644 tests_zemu/snapshots/x-pb_claim_neurons/00001.png delete mode 100644 tests_zemu/snapshots/x-pb_claim_neurons/00002.png delete mode 100644 tests_zemu/snapshots/x-pb_claim_neurons/00003.png delete mode 100644 tests_zemu/snapshots/x-pb_disburse/00000.png delete mode 100644 tests_zemu/snapshots/x-pb_disburse/00001.png delete mode 100644 tests_zemu/snapshots/x-pb_disburse/00002.png delete mode 100644 tests_zemu/snapshots/x-pb_disburse/00003.png delete mode 100644 tests_zemu/snapshots/x-pb_disburse/00004.png delete mode 100644 tests_zemu/snapshots/x-pb_disburse/00005.png delete mode 100644 tests_zemu/snapshots/x-pb_disburse/00006.png delete mode 100644 tests_zemu/snapshots/x-pb_disburse/00007.png delete mode 100644 tests_zemu/snapshots/x-pb_follow/00000.png delete mode 100644 tests_zemu/snapshots/x-pb_follow/00001.png delete mode 100644 tests_zemu/snapshots/x-pb_follow/00002.png delete mode 100644 tests_zemu/snapshots/x-pb_follow/00003.png delete mode 100644 tests_zemu/snapshots/x-pb_follow/00004.png delete mode 100644 tests_zemu/snapshots/x-pb_follow/00005.png delete mode 100644 tests_zemu/snapshots/x-pb_follow/00006.png delete mode 100644 tests_zemu/snapshots/x-pb_follow/00007.png delete mode 100644 tests_zemu/snapshots/x-pb_follow/00008.png delete mode 100644 tests_zemu/snapshots/x-pb_increase_dissolve_delay/00000.png delete mode 100644 tests_zemu/snapshots/x-pb_increase_dissolve_delay/00001.png delete mode 100644 tests_zemu/snapshots/x-pb_increase_dissolve_delay/00002.png delete mode 100644 tests_zemu/snapshots/x-pb_increase_dissolve_delay/00003.png delete mode 100644 tests_zemu/snapshots/x-pb_increase_dissolve_delay/00004.png delete mode 100644 tests_zemu/snapshots/x-pb_increase_dissolve_delay/00005.png delete mode 100644 tests_zemu/snapshots/x-pb_join_community_fund/00000.png delete mode 100644 tests_zemu/snapshots/x-pb_join_community_fund/00001.png delete mode 100644 tests_zemu/snapshots/x-pb_join_community_fund/00002.png delete mode 100644 tests_zemu/snapshots/x-pb_join_community_fund/00003.png delete mode 100644 tests_zemu/snapshots/x-pb_join_community_fund/00004.png delete mode 100644 tests_zemu/snapshots/x-pb_list_neurons/00000.png delete mode 100644 tests_zemu/snapshots/x-pb_list_neurons/00001.png delete mode 100644 tests_zemu/snapshots/x-pb_list_neurons/00002.png delete mode 100644 tests_zemu/snapshots/x-pb_list_neurons/00003.png delete mode 100644 tests_zemu/snapshots/x-pb_register_vote/00000.png delete mode 100644 tests_zemu/snapshots/x-pb_register_vote/00001.png delete mode 100644 tests_zemu/snapshots/x-pb_register_vote/00002.png delete mode 100644 tests_zemu/snapshots/x-pb_register_vote/00003.png delete mode 100644 tests_zemu/snapshots/x-pb_register_vote/00004.png delete mode 100644 tests_zemu/snapshots/x-pb_register_vote/00005.png delete mode 100644 tests_zemu/snapshots/x-pb_register_vote/00006.png delete mode 100644 tests_zemu/snapshots/x-pb_remove_hotkey/00000.png delete mode 100644 tests_zemu/snapshots/x-pb_remove_hotkey/00001.png delete mode 100644 tests_zemu/snapshots/x-pb_remove_hotkey/00002.png delete mode 100644 tests_zemu/snapshots/x-pb_remove_hotkey/00003.png delete mode 100644 tests_zemu/snapshots/x-pb_remove_hotkey/00004.png delete mode 100644 tests_zemu/snapshots/x-pb_remove_hotkey/00005.png delete mode 100644 tests_zemu/snapshots/x-pb_remove_hotkey/00006.png delete mode 100644 tests_zemu/snapshots/x-pb_sign_update_call/00000.png delete mode 100644 tests_zemu/snapshots/x-pb_sign_update_call/00001.png delete mode 100644 tests_zemu/snapshots/x-pb_sign_update_call/00002.png delete mode 100644 tests_zemu/snapshots/x-pb_sign_update_call/00003.png delete mode 100644 tests_zemu/snapshots/x-pb_sign_update_call/00004.png delete mode 100644 tests_zemu/snapshots/x-pb_sign_update_call/00005.png delete mode 100644 tests_zemu/snapshots/x-pb_sign_update_call/00006.png delete mode 100644 tests_zemu/snapshots/x-pb_sign_update_call/00007.png delete mode 100644 tests_zemu/snapshots/x-pb_sign_update_call/00008.png delete mode 100644 tests_zemu/snapshots/x-pb_sign_update_call/00009.png delete mode 100644 tests_zemu/snapshots/x-pb_sign_update_call/00010.png delete mode 100644 tests_zemu/snapshots/x-pb_spawn_neuron/00000.png delete mode 100644 tests_zemu/snapshots/x-pb_spawn_neuron/00001.png delete mode 100644 tests_zemu/snapshots/x-pb_spawn_neuron/00002.png delete mode 100644 tests_zemu/snapshots/x-pb_spawn_neuron/00003.png delete mode 100644 tests_zemu/snapshots/x-pb_spawn_neuron/00004.png delete mode 100644 tests_zemu/snapshots/x-pb_spawn_neuron/00005.png delete mode 100644 tests_zemu/snapshots/x-pb_stake_neuron/00000.png delete mode 100644 tests_zemu/snapshots/x-pb_stake_neuron/00001.png delete mode 100644 tests_zemu/snapshots/x-pb_stake_neuron/00002.png delete mode 100644 tests_zemu/snapshots/x-pb_stake_neuron/00003.png delete mode 100644 tests_zemu/snapshots/x-pb_stake_neuron/00004.png delete mode 100644 tests_zemu/snapshots/x-pb_stake_neuron/00005.png delete mode 100644 tests_zemu/snapshots/x-pb_stake_neuron/00006.png delete mode 100644 tests_zemu/snapshots/x-pb_stake_neuron/00007.png delete mode 100644 tests_zemu/snapshots/x-pb_stake_neuron/00008.png delete mode 100644 tests_zemu/snapshots/x-pb_start_dissolve/00000.png delete mode 100644 tests_zemu/snapshots/x-pb_start_dissolve/00001.png delete mode 100644 tests_zemu/snapshots/x-pb_start_dissolve/00002.png delete mode 100644 tests_zemu/snapshots/x-pb_start_dissolve/00003.png delete mode 100644 tests_zemu/snapshots/x-pb_start_dissolve/00004.png delete mode 100644 tests_zemu/snapshots/x-pb_stop_dissolve/00000.png delete mode 100644 tests_zemu/snapshots/x-pb_stop_dissolve/00001.png delete mode 100644 tests_zemu/snapshots/x-pb_stop_dissolve/00002.png delete mode 100644 tests_zemu/snapshots/x-pb_stop_dissolve/00003.png delete mode 100644 tests_zemu/snapshots/x-pb_stop_dissolve/00004.png delete mode 100644 tests_zemu/snapshots/x-sign_basic_expert/00000.png delete mode 100644 tests_zemu/snapshots/x-sign_basic_expert/00001.png delete mode 100644 tests_zemu/snapshots/x-sign_basic_expert/00002.png delete mode 100644 tests_zemu/snapshots/x-sign_basic_expert/00003.png delete mode 100644 tests_zemu/snapshots/x-sign_basic_expert/00004.png delete mode 100644 tests_zemu/snapshots/x-sign_basic_expert/00005.png delete mode 100644 tests_zemu/snapshots/x-sign_basic_expert/00006.png delete mode 100644 tests_zemu/snapshots/x-sign_basic_expert/00007.png delete mode 100644 tests_zemu/snapshots/x-sign_basic_expert/00008.png delete mode 100644 tests_zemu/snapshots/x-sign_basic_expert/00009.png delete mode 100644 tests_zemu/snapshots/x-sign_basic_expert/00010.png delete mode 100644 tests_zemu/snapshots/x-sign_basic_expert/00011.png delete mode 100644 tests_zemu/snapshots/x-sign_basic_expert/00012.png delete mode 100644 tests_zemu/snapshots/x-sign_basic_expert/00013.png delete mode 100644 tests_zemu/snapshots/x-sign_basic_expert/00014.png delete mode 100644 tests_zemu/snapshots/x-sign_basic_normal/00000.png delete mode 100644 tests_zemu/snapshots/x-sign_basic_normal/00001.png delete mode 100644 tests_zemu/snapshots/x-sign_basic_normal/00002.png delete mode 100644 tests_zemu/snapshots/x-sign_basic_normal/00003.png delete mode 100644 tests_zemu/snapshots/x-sign_basic_normal/00004.png delete mode 100644 tests_zemu/snapshots/x-sign_basic_normal/00005.png delete mode 100644 tests_zemu/snapshots/x-sign_basic_normal/00006.png delete mode 100644 tests_zemu/snapshots/x-sign_basic_normal/00007.png delete mode 100644 tests_zemu/snapshots/x-sign_basic_normal/00008.png delete mode 100644 tests_zemu/snapshots/x-sign_basic_normal/00009.png delete mode 100644 tests_zemu/snapshots/x-sign_basic_normal/00010.png delete mode 100644 tests_zemu/tests/protobuf.test.ts diff --git a/CMakeLists.txt b/CMakeLists.txt index 43b4a7ac..5dc02b49 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -101,7 +101,6 @@ file(GLOB_RECURSE LIB_SRC ${CMAKE_CURRENT_SOURCE_DIR}/app/src/parser_impl.c ${CMAKE_CURRENT_SOURCE_DIR}/app/src/crypto.c ${CMAKE_CURRENT_SOURCE_DIR}/app/src/base32.c - ${CMAKE_CURRENT_SOURCE_DIR}/app/src/protobuf/*.c ${CMAKE_CURRENT_SOURCE_DIR}/app/src/parser_print_*.c ) @@ -156,7 +155,6 @@ set_tests_properties(unittests PROPERTIES WORKING_DIRECTORY ${CMAKE_CURRENT_SOUR if (ENABLE_FUZZING) set(FUZZ_TARGETS parser_parse - parser_protobuf ) foreach (target ${FUZZ_TARGETS}) diff --git a/js/package.json b/js/package.json index 16249462..fa25610a 100644 --- a/js/package.json +++ b/js/package.json @@ -28,16 +28,16 @@ "@zondax/ledger-js": "^0.2.2" }, "devDependencies": { - "@types/node": "^18.11.18", - "@typescript-eslint/eslint-plugin": "^5.47.1", - "@typescript-eslint/parser": "^5.47.1", + "@types/node": "^20.11.24", + "@typescript-eslint/eslint-plugin": "^7.1.0", + "@typescript-eslint/parser": "^7.1.0", "eslint": "^8.31.0", - "eslint-config-prettier": "^8.5.0", - "eslint-config-standard-with-typescript": "^34.0.1", + "eslint-config-prettier": "^9.1.0", + "eslint-config-standard-with-typescript": "^43.0.1", "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.6.0", + "eslint-plugin-n": "^16.6.2", "eslint-plugin-promise": "^6.1.1", - "prettier": "^2.8.1", + "prettier": "^3.2.5", "typescript": "^5.0.2" }, "files": [ diff --git a/tests/cbor_parser.cpp b/tests/cbor_parser.cpp index 25ce390c..09bcb87d 100644 --- a/tests/cbor_parser.cpp +++ b/tests/cbor_parser.cpp @@ -23,280 +23,28 @@ #include #include -#include "pb_decode.h" -#include "protobuf/dfinity.pb.h" -#include "protobuf/governance.pb.h" -#include "protobuf/base_types.pb.h" #include "zxformat.h" // Basic CBOR test cases generated with http://cbor.me/ namespace { - TEST(TxTest, one_byte_accountid) { - parser_tx_obj.special_transfer_type = normal_transaction; - uint8_t inBuffer[1000]; - const char *tmp = "d9d9f7a167636f6e74656e74a6636172674c620210011a0612040a0211116b63616e69737465725f69644a000000000000000101016e696e67726573735f6578706972791b16a2cd02c5b2d1006b6d6574686f645f6e616d65706d616e6167655f6e6575726f6e5f70626c726571756573745f747970656463616c6c6673656e646572581d8a4aa4ffc7bc5ccdcd5a7a3d10c9bb06741063b02c7e908a624f721d02"; - - auto inBufferLen = parseHexString(inBuffer, sizeof(inBuffer), tmp); - - parser_context_t ctx; - auto err = parser_parse(&ctx, inBuffer, inBufferLen); - EXPECT_EQ(err, parser_ok); - - //SHOULD FAIL - err = parser_validate(&ctx); - EXPECT_EQ(err, parser_context_unexpected_size); - - } - - TEST(NANOPBTEST, mergeMaturity) { - uint8_t inBuffer[1000]; - const char *tmp = "620210016A02080E"; - size_t len = parseHexString(inBuffer, sizeof(inBuffer), tmp); - bool status; - - /* Allocate space for the decoded message. */ - ic_nns_governance_pb_v1_ManageNeuron request = ic_nns_governance_pb_v1_ManageNeuron_init_zero; - - /* Create a stream that reads from the buffer. */ - pb_istream_t stream = pb_istream_from_buffer(inBuffer, len); - - /* Now we are ready to decode the message. */ - status = pb_decode(&stream, ic_nns_governance_pb_v1_ManageNeuron_fields, &request); - - EXPECT_EQ(status, true); - - EXPECT_EQ(request.which_command, 13); - EXPECT_EQ(request.has_id, false); - EXPECT_EQ(request.neuron_id_or_subaccount.neuron_id.id,1); - EXPECT_EQ(request.which_neuron_id_or_subaccount,12); - EXPECT_EQ(request.command.merge_maturity.percentage_to_merge, 14); - } - - TEST(NANOPBTEST, registerVote) { - uint8_t inBuffer[1000]; - const char *tmp = "620310C8033A060A02087B1001"; - size_t len = parseHexString(inBuffer, sizeof(inBuffer), tmp); - bool status; - - /* Allocate space for the decoded message. */ - ic_nns_governance_pb_v1_ManageNeuron request = ic_nns_governance_pb_v1_ManageNeuron_init_zero; - - /* Create a stream that reads from the buffer. */ - pb_istream_t stream = pb_istream_from_buffer(inBuffer, len); - - /* Now we are ready to decode the message. */ - status = pb_decode(&stream, ic_nns_governance_pb_v1_ManageNeuron_fields, &request); - - EXPECT_EQ(status, true); - - EXPECT_EQ(request.which_command, 7); - EXPECT_EQ(request.has_id, false); - EXPECT_EQ(request.neuron_id_or_subaccount.neuron_id.id,456); - EXPECT_EQ(request.which_neuron_id_or_subaccount,12); - EXPECT_EQ(request.command.register_vote.proposal.id, 123); - EXPECT_EQ(request.command.register_vote.vote, 1); - } - - TEST(NANOPBTEST, follow) { - uint8_t inBuffer[1000]; - const char *tmp = "6202107B2A3C1202100112021002120210031202100412021005120210061202100712021008120210091202100A1202100B1202100C1202100D1202100E1202100F"; - size_t len = parseHexString(inBuffer, sizeof(inBuffer), tmp); - bool status; - - /* Allocate space for the decoded message. */ - ic_nns_governance_pb_v1_ManageNeuron request = ic_nns_governance_pb_v1_ManageNeuron_init_zero; - - /* Create a stream that reads from the buffer. */ - pb_istream_t stream = pb_istream_from_buffer(inBuffer, len); - - /* Now we are ready to decode the message. */ - status = pb_decode(&stream, ic_nns_governance_pb_v1_ManageNeuron_fields, &request); - - EXPECT_EQ(status, true); - - EXPECT_EQ(request.which_command, 5); - EXPECT_EQ(request.has_id, false); - EXPECT_EQ(request.neuron_id_or_subaccount.neuron_id.id,123); - EXPECT_EQ(request.command.follow.topic, 0); - EXPECT_EQ(request.command.follow.followees_count, 15); - EXPECT_EQ(request.which_neuron_id_or_subaccount,12); - EXPECT_EQ(request.command.follow.followees[0].id,1); - EXPECT_EQ(request.command.follow.followees[14].id,15); - } - - TEST(NANOPBTEST, test) { - uint8_t inBuffer[1000]; - const char *tmp = "0A0012050A0308E8071A0308890122220A2001010101010101010101010101010101010101010101010101010101010101012A220A2035548EC29E9D85305850E87A2D2642FE7214FF4BB36334070DEAFC3345C3B127"; - size_t len = parseHexString(inBuffer, sizeof(inBuffer), tmp); - bool status; - - /* Allocate space for the decoded message. */ - SendRequest request = SendRequest_init_zero; - - /* Create a stream that reads from the buffer. */ - pb_istream_t stream = pb_istream_from_buffer(inBuffer, len); - - /* Now we are ready to decode the message. */ - status = pb_decode(&stream, SendRequest_fields, &request); - - EXPECT_EQ(status, true); - - EXPECT_EQ(request.to.hash[0], 0x35); - } - - TEST(NANOPBTEST, increaseTimer) { - uint8_t inBuffer[1000]; - const char *tmp = "0A02107B12060A040880A305"; - size_t len = parseHexString(inBuffer, sizeof(inBuffer), tmp); - bool status; - - /* Allocate space for the decoded message. */ - ic_nns_governance_pb_v1_ManageNeuron request = ic_nns_governance_pb_v1_ManageNeuron_init_zero; - - /* Create a stream that reads from the buffer. */ - pb_istream_t stream = pb_istream_from_buffer(inBuffer, len); - - /* Now we are ready to decode the message. */ - status = pb_decode(&stream, ic_nns_governance_pb_v1_ManageNeuron_fields, &request); - - EXPECT_EQ(status, true); - - EXPECT_EQ(request.id.id, 123); - EXPECT_EQ(request.which_command, 2); - EXPECT_EQ(request.command.configure.which_operation, 1); - EXPECT_EQ(request.command.configure.operation.increase_dissolve_delay.additional_dissolve_delay_seconds, 86400); - } - - TEST(NANOPBTEST, AddHotkey) { - uint8_t inBuffer[1000]; - const char *tmp = "0A02107B122322210A1F0A1D45717A3A0E68FCEEF546AC77BAC551754B48DBB1FCCFA180673030B602"; - size_t len = parseHexString(inBuffer, sizeof(inBuffer), tmp); - bool status; - - /* Allocate space for the decoded message. */ - ic_nns_governance_pb_v1_ManageNeuron request = ic_nns_governance_pb_v1_ManageNeuron_init_zero; - - /* Create a stream that reads from the buffer. */ - pb_istream_t stream = pb_istream_from_buffer(inBuffer, len); - - /* Now we are ready to decode the message. */ - status = pb_decode(&stream, ic_nns_governance_pb_v1_ManageNeuron_fields, &request); - - EXPECT_EQ(status, true); - - EXPECT_EQ(request.which_command, 2); - - EXPECT_EQ(request.command.configure.which_operation, 4); - - EXPECT_EQ(request.id.id, 123); - - EXPECT_EQ(request.command.configure.operation.add_hot_key.has_new_hot_key, true); - EXPECT_EQ(request.command.configure.operation.add_hot_key.new_hot_key.serialized_id.size, 29); - - char buffer[100]; - array_to_hexstr(buffer, 100, request.command.configure.operation.add_hot_key.new_hot_key.serialized_id.bytes, - 29); - printf("%s\n", buffer); - } - - TEST(NANOPBTEST, RemoveHotkey) { - uint8_t inBuffer[1000]; - const char *tmp = "0A02107B12232A210A1F0A1D45717A3A0E68FCEEF546AC77BAC551754B48DBB1FCCFA180673030B602"; - size_t len = parseHexString(inBuffer, sizeof(inBuffer), tmp); - bool status; - - /* Allocate space for the decoded message. */ - ic_nns_governance_pb_v1_ManageNeuron request = ic_nns_governance_pb_v1_ManageNeuron_init_zero; - - /* Create a stream that reads from the buffer. */ - pb_istream_t stream = pb_istream_from_buffer(inBuffer, len); - - /* Now we are ready to decode the message. */ - status = pb_decode(&stream, ic_nns_governance_pb_v1_ManageNeuron_fields, &request); - - EXPECT_EQ(status, true); - - EXPECT_EQ(request.which_command, 2); - - EXPECT_EQ(request.command.configure.which_operation, 5); - } - - TEST(NANOPBTEST, StartDisolve) { - uint8_t inBuffer[1000]; - const char *tmp = "0A02107B12021200"; - size_t len = parseHexString(inBuffer, sizeof(inBuffer), tmp); - bool status; - - /* Allocate space for the decoded message. */ - ic_nns_governance_pb_v1_ManageNeuron request = ic_nns_governance_pb_v1_ManageNeuron_init_zero; - - /* Create a stream that reads from the buffer. */ - pb_istream_t stream = pb_istream_from_buffer(inBuffer, len); - - /* Now we are ready to decode the message. */ - status = pb_decode(&stream, ic_nns_governance_pb_v1_ManageNeuron_fields, &request); - - EXPECT_EQ(status, true); - - EXPECT_EQ(request.id.id, 123); - - EXPECT_EQ(request.which_command, 2); - - EXPECT_EQ(request.command.configure.which_operation, 2); - } - - TEST(NANOPBTEST, Spawn) { - uint8_t inBuffer[1000]; - const char *tmp = "620310D20922210A1F0A1D1AE9690FA70DA5046B84210162105D0F6E510B7211FA7B72AEED333702"; - size_t len = parseHexString(inBuffer, sizeof(inBuffer), tmp); - bool status; - - /* Allocate space for the decoded message. */ - ic_nns_governance_pb_v1_ManageNeuron request = ic_nns_governance_pb_v1_ManageNeuron_init_zero; - - /* Create a stream that reads from the buffer. */ - pb_istream_t stream = pb_istream_from_buffer(inBuffer, len); - - /* Now we are ready to decode the message. */ - status = pb_decode(&stream, ic_nns_governance_pb_v1_ManageNeuron_fields, &request); - - EXPECT_EQ(status, true); - - EXPECT_EQ(request.command.spawn.new_controller.serialized_id.size, 29); - - char buffer[300]; - - array_to_hexstr(buffer, 300, request.command.spawn.new_controller.serialized_id.bytes,29); - printf("%s", buffer); - - } - - TEST(NANOPBTEST, Disburse) { - uint8_t inBuffer[1000]; - const char *tmp = "0A02107B1A2B0A05088092F40112220A2035548EC29E9D85305850E87A2D2642FE7214FF4BB36334070DEAFC3345C3B127"; - size_t len = parseHexString(inBuffer, sizeof(inBuffer), tmp); - bool status; - - /* Allocate space for the decoded message. */ - ic_nns_governance_pb_v1_ManageNeuron request = ic_nns_governance_pb_v1_ManageNeuron_init_zero; - - /* Create a stream that reads from the buffer. */ - pb_istream_t stream = pb_istream_from_buffer(inBuffer, len); - - /* Now we are ready to decode the message. */ - status = pb_decode(&stream, ic_nns_governance_pb_v1_ManageNeuron_fields, &request); - - EXPECT_EQ(status, true); - - EXPECT_EQ(request.which_command, 3); - - EXPECT_EQ(request.id.id, 123); - - EXPECT_EQ(request.command.disburse.amount.e8s, 4000000); - - EXPECT_EQ(request.command.disburse.to_account.hash.size, 32); - } + // TODO: this test was removed because app no longer supports protobuf + /* TEST(TxTest, one_byte_accountid) { */ + /* parser_tx_obj.special_transfer_type = normal_transaction; */ + /* uint8_t inBuffer[1000]; */ + /* const char *tmp = "d9d9f7a167636f6e74656e74a6636172674c620210011a0612040a0211116b63616e69737465725f69644a000000000000000101016e696e67726573735f6578706972791b16a2cd02c5b2d1006b6d6574686f645f6e616d65706d616e6167655f6e6575726f6e5f70626c726571756573745f747970656463616c6c6673656e646572581d8a4aa4ffc7bc5ccdcd5a7a3d10c9bb06741063b02c7e908a624f721d02"; */ + /**/ + /* auto inBufferLen = parseHexString(inBuffer, sizeof(inBuffer), tmp); */ + /**/ + /* parser_context_t ctx; */ + /* auto err = parser_parse(&ctx, inBuffer, inBufferLen); */ + /* EXPECT_EQ(err, parser_ok); */ + /**/ + /* //SHOULD FAIL */ + /* err = parser_validate(&ctx); */ + /* EXPECT_EQ(err, parser_context_unexpected_size); */ + /**/ + /* } */ TEST(CBORParserTest, MinimalListTest) { // [1,2,3] @@ -310,7 +58,7 @@ namespace { err = cbor_parser_init(inBuffer, inBufferLen, 0, &parser, &it); EXPECT_EQ(err, CborNoError); - size_t arrLen; + size_t arrLen; err = cbor_value_get_array_length(&it, &arrLen); EXPECT_EQ(err, CborNoError); EXPECT_EQ(arrLen, 3); @@ -493,131 +241,108 @@ namespace { EXPECT_EQ(err, parser_ok); } - TEST(CBORParserTest, TokenTransfer) { - parser_tx_obj.special_transfer_type = normal_transaction; - uint8_t inBuffer[1000]; - const char *tmp = "d9d9f7a367636f6e74656e74a76c726571756573745f747970656463616c6c656e6f6e636550f5390d960c6e52f489155a4309da03da6e696e67726573735f6578706972791b1674c5e29ec9c2106673656e646572581d19aa3d42c048dd7d14f0cfa0df69a1c1381780f6e9a137abaa6a82e3026b63616e69737465725f69644a000000000000000201016b6d6574686f645f6e616d656773656e645f70626361726758560a0012050a0308e8071a0308890122220a2001010101010101010101010101010101010101010101010101010101010101012a220a2035548ec29e9d85305850e87a2d2642fe7214ff4bb36334070deafc3345c3b1276d73656e6465725f7075626b657958583056301006072a8648ce3d020106052b8104000a03420004e1142e1fbc940344d9161709196bb8bd151f94379c48dd507ab99a0776109128b94b5303cf2b2d28e25a779da175b62f8a975599b20c63d5193202640576ec5e6a73656e6465725f7369675840de5bccbb0a0173c432cd58ea4495d4d1e122d6ce04e31dcf63217f3d3a9b73130dc9bbf3b10e61c8db8bf8800bb4649e27786e5bc9418838c95864be28487a6a"; - auto inBufferLen = parseHexString(inBuffer, sizeof(inBuffer), tmp); - - parser_context_t ctx; - auto err = parser_parse(&ctx, inBuffer, inBufferLen); - EXPECT_EQ(err, parser_ok); - - err = parser_validate(&ctx); - EXPECT_EQ(err, parser_ok); - - } - - TEST(CBORParserTest, IncreaseNeuronTimer) { - parser_tx_obj.special_transfer_type = normal_transaction; - uint8_t inBuffer[1000]; - - const char *tmp = "d9d9f7a167636f6e74656e74a6636172675839620a10a7d18aaad3a2a2c6131a2b0a0508959aef3a12220a2068d518e2fd2be6566e62c36611b9794dfcbc04eb4227eefb73ab3c7a2d0ae5776b63616e69737465725f69644a000000000000000101016e696e67726573735f6578706972791b169bc8985c330d006b6d6574686f645f6e616d65706d616e6167655f6e6575726f6e5f70626c726571756573745f747970656463616c6c6673656e646572581d8a4aa4ffc7bc5ccdcd5a7a3d10c9bb06741063b02c7e908a624f721d02"; - auto inBufferLen = parseHexString(inBuffer, sizeof(inBuffer), tmp); - - parser_context_t ctx; - auto err = parser_parse(&ctx, inBuffer, inBufferLen); - EXPECT_EQ(err, parser_ok); - - err = parser_validate(&ctx); - EXPECT_EQ(err, parser_ok); - } - - TEST(CBORParserTest, StakeTx) { - parser_tx_obj.special_transfer_type = neuron_stake_transaction; - uint8_t inBuffer[1000]; - - const char *tmp = "d9d9f7a167636f6e74656e74a663617267583e0a0a08f2d4a0eca697869f0812070a050880c2d72f1a0308904e2a220a20a8a1abecdb66f57eb6eba44c3b5f11a6c433fe932680a9519b064b80ca8794e16b63616e69737465725f69644a000000000000000201016e696e67726573735f6578706972791b16985a582755f1806b6d6574686f645f6e616d656773656e645f70626c726571756573745f747970656463616c6c6673656e646572581d19aa3d42c048dd7d14f0cfa0df69a1c1381780f6e9a137abaa6a82e302"; - auto inBufferLen = parseHexString(inBuffer, sizeof(inBuffer), tmp); - - parser_context_t ctx; - auto err = parser_parse(&ctx, inBuffer, inBufferLen); - EXPECT_EQ(err, parser_ok); - - err = parser_validate(&ctx); - EXPECT_EQ(err, parser_ok); - parser_tx_obj.special_transfer_type = invalid; - } - - TEST(CBORParserTest, ClaimNeuron) { - parser_tx_obj.special_transfer_type = normal_transaction; - uint8_t inBuffer[1000]; - - const char *tmp = "d9d9f7a167636f6e74656e74a76c726571756573745f747970656463616c6c656e6f6e6365505833a6590c6d2b601e3a24557cfbb4336e696e67726573735f6578706972791b16bad506bb4ca0f06673656e646572581d2594dccb73ca0226c58299d4e21badbcee00d153deccb38fa20cd46e026b63616e69737465725f69644a000000000000000601016b6d6574686f645f6e616d656d636c61696d5f6e6575726f6e7363617267588b4449444c000171820130343139623066656363356639613164353162393033643262363234346430356531326134386661386233353731396538313262623635643966393035613365613965356137323362363537616665393136313236396431663134633164383034376530323230616461633434653731313630323531656364616662613064636535"; - auto inBufferLen = parseHexString(inBuffer, sizeof(inBuffer), tmp); - - parser_context_t ctx; - auto err = parser_parse(&ctx, inBuffer, inBufferLen); - EXPECT_EQ(err, parser_ok); - - err = parser_validate(&ctx); - EXPECT_EQ(err, parser_ok); - } - - TEST(CBORParserTest, Configure_JoinCommunityFund) { - parser_tx_obj.special_transfer_type = normal_transaction; - uint8_t inBuffer[1000]; - - const char *tmp = "d9d9f7a167636f6e74656e74a663617267486202107b12023a006b63616e69737465725f69644a000000000000000101016e696e67726573735f6578706972791b16ba67d2b864bf406b6d6574686f645f6e616d65706d616e6167655f6e6575726f6e5f70626c726571756573745f747970656463616c6c6673656e646572581dd899978f029508f4fa5fce3d2539de5aade6d229efcc458233deee7502"; - auto inBufferLen = parseHexString(inBuffer, sizeof(inBuffer), tmp); - - parser_context_t ctx; - auto err = parser_parse(&ctx, inBuffer, inBufferLen); - EXPECT_EQ(err, parser_ok); - - err = parser_validate(&ctx); - EXPECT_EQ(err, parser_ok); - } - - TEST(NANOPBTEST, JoinCommunity) { - uint8_t inBuffer[1000]; - const char *tmp = "6202107B12023A00"; - size_t len = parseHexString(inBuffer, sizeof(inBuffer), tmp); - bool status; - - /* Allocate space for the decoded message. */ - ic_nns_governance_pb_v1_ManageNeuron request = ic_nns_governance_pb_v1_ManageNeuron_init_zero; - - /* Create a stream that reads from the buffer. */ - pb_istream_t stream = pb_istream_from_buffer(inBuffer, len); - - /* Now we are ready to decode the message. */ - status = pb_decode(&stream, ic_nns_governance_pb_v1_ManageNeuron_fields, &request); - - EXPECT_EQ(status, true); - - EXPECT_EQ(request.command.configure.which_operation, 7); - - EXPECT_EQ(request.neuron_id_or_subaccount.neuron_id.id, 123); - - EXPECT_EQ(request.which_neuron_id_or_subaccount,12); - - } - - TEST(CBORParserTest, CombinedTX) { - uint8_t inBuffer[1000]; - - const char *tmp = "d9d9f7a167636f6e74656e74a46e696e67726573735f6578706972791b16bc685267142b8065706174687381824e726571756573745f737461747573582038b344ba26f15444b4f989078c952ce99b559d3eb59e829c5a463a33812e32546c726571756573745f747970656a726561645f73746174656673656e646572581dd899978f029508f4fa5fce3d2539de5aade6d229efcc458233deee7502"; - uint32_t inBufferLen = parseHexString(inBuffer + 4, sizeof(inBuffer) - 4, tmp); - EXPECT_EQ(inBufferLen, 156); - MEMCPY(&inBuffer[0], &inBufferLen, 4); - - const char *tmp2 = "d9d9f7a167636f6e74656e74a66361726758320a0012050a0308904e1a0308904e2a220a20a2a794c66495083317e4be5197eb655b1e63015469d769e2338af3d3e3f3aa866b63616e69737465725f69644a000000000000000201016e696e67726573735f6578706972791b16bc685084d14ec06b6d6574686f645f6e616d656773656e645f70626c726571756573745f747970656463616c6c6673656e646572581dd899978f029508f4fa5fce3d2539de5aade6d229efcc458233deee7502"; - uint32_t inBufferLen2 = parseHexString(inBuffer + 8 + inBufferLen, sizeof(inBuffer) - 4 - inBufferLen, tmp2); - EXPECT_EQ(inBufferLen2, 192); - MEMCPY(&inBuffer[4 + inBufferLen], &inBufferLen2, 4); -// char array[2000]; -// MEMZERO(array,2000); -// uint16_t total_len = 156 + 192 + 8; -// uint32_t strLen = array_to_hexstr(array, sizeof(array), inBuffer, 160); -// strLen += array_to_hexstr(array + strLen, sizeof(array) - strLen, inBuffer + 160, 200); -// EXPECT_EQ(strLen, 2*(156+192 + 8)); -// std::cout << array << std::endl; - parser_context_t ctx; - parser_tx_obj.special_transfer_type = normal_transaction; - auto err = parser_parse_combined(&ctx, inBuffer, inBufferLen + inBufferLen2 + 8); - EXPECT_EQ(err, parser_ok); - } + // TODO: Test disabled as internally it uses protobuf data for which + // the app is not longer compatible. + /* TEST(CBORParserTest, TokenTransfer) { */ + /* parser_tx_obj.special_transfer_type = normal_transaction; */ + /* uint8_t inBuffer[1000]; */ + /* const char *tmp = "d9d9f7a367636f6e74656e74a76c726571756573745f747970656463616c6c656e6f6e636550f5390d960c6e52f489155a4309da03da6e696e67726573735f6578706972791b1674c5e29ec9c2106673656e646572581d19aa3d42c048dd7d14f0cfa0df69a1c1381780f6e9a137abaa6a82e3026b63616e69737465725f69644a000000000000000201016b6d6574686f645f6e616d656773656e645f70626361726758560a0012050a0308e8071a0308890122220a2001010101010101010101010101010101010101010101010101010101010101012a220a2035548ec29e9d85305850e87a2d2642fe7214ff4bb36334070deafc3345c3b1276d73656e6465725f7075626b657958583056301006072a8648ce3d020106052b8104000a03420004e1142e1fbc940344d9161709196bb8bd151f94379c48dd507ab99a0776109128b94b5303cf2b2d28e25a779da175b62f8a975599b20c63d5193202640576ec5e6a73656e6465725f7369675840de5bccbb0a0173c432cd58ea4495d4d1e122d6ce04e31dcf63217f3d3a9b73130dc9bbf3b10e61c8db8bf8800bb4649e27786e5bc9418838c95864be28487a6a"; */ + /* auto inBufferLen = parseHexString(inBuffer, sizeof(inBuffer), tmp); */ + /**/ + /* parser_context_t ctx; */ + /* auto err = parser_parse(&ctx, inBuffer, inBufferLen); */ + /* EXPECT_EQ(err, parser_ok); */ + /**/ + /* err = parser_validate(&ctx); */ + /* EXPECT_EQ(err, parser_ok); */ + /**/ + /* } */ + /**/ + /* TEST(CBORParserTest, IncreaseNeuronTimer) { */ + /* parser_tx_obj.special_transfer_type = normal_transaction; */ + /* uint8_t inBuffer[1000]; */ + /**/ + /* const char *tmp = "d9d9f7a167636f6e74656e74a6636172675839620a10a7d18aaad3a2a2c6131a2b0a0508959aef3a12220a2068d518e2fd2be6566e62c36611b9794dfcbc04eb4227eefb73ab3c7a2d0ae5776b63616e69737465725f69644a000000000000000101016e696e67726573735f6578706972791b169bc8985c330d006b6d6574686f645f6e616d65706d616e6167655f6e6575726f6e5f70626c726571756573745f747970656463616c6c6673656e646572581d8a4aa4ffc7bc5ccdcd5a7a3d10c9bb06741063b02c7e908a624f721d02"; */ + /* auto inBufferLen = parseHexString(inBuffer, sizeof(inBuffer), tmp); */ + /**/ + /* parser_context_t ctx; */ + /* auto err = parser_parse(&ctx, inBuffer, inBufferLen); */ + /* EXPECT_EQ(err, parser_ok); */ + /**/ + /* err = parser_validate(&ctx); */ + /* EXPECT_EQ(err, parser_ok); */ + /* } */ + + /* TEST(CBORParserTest, StakeTx) { */ + /* parser_tx_obj.special_transfer_type = neuron_stake_transaction; */ + /* uint8_t inBuffer[1000]; */ + /**/ + /* const char *tmp = "d9d9f7a167636f6e74656e74a663617267583e0a0a08f2d4a0eca697869f0812070a050880c2d72f1a0308904e2a220a20a8a1abecdb66f57eb6eba44c3b5f11a6c433fe932680a9519b064b80ca8794e16b63616e69737465725f69644a000000000000000201016e696e67726573735f6578706972791b16985a582755f1806b6d6574686f645f6e616d656773656e645f70626c726571756573745f747970656463616c6c6673656e646572581d19aa3d42c048dd7d14f0cfa0df69a1c1381780f6e9a137abaa6a82e302"; */ + /* auto inBufferLen = parseHexString(inBuffer, sizeof(inBuffer), tmp); */ + /**/ + /* parser_context_t ctx; */ + /* auto err = parser_parse(&ctx, inBuffer, inBufferLen); */ + /* EXPECT_EQ(err, parser_ok); */ + /**/ + /* err = parser_validate(&ctx); */ + /* EXPECT_EQ(err, parser_ok); */ + /* parser_tx_obj.special_transfer_type = invalid; */ + /* } */ + + /* TEST(CBORParserTest, ClaimNeuron) { */ + /* parser_tx_obj.special_transfer_type = normal_transaction; */ + /* uint8_t inBuffer[1000]; */ + /**/ + /* const char *tmp = "d9d9f7a167636f6e74656e74a76c726571756573745f747970656463616c6c656e6f6e6365505833a6590c6d2b601e3a24557cfbb4336e696e67726573735f6578706972791b16bad506bb4ca0f06673656e646572581d2594dccb73ca0226c58299d4e21badbcee00d153deccb38fa20cd46e026b63616e69737465725f69644a000000000000000601016b6d6574686f645f6e616d656d636c61696d5f6e6575726f6e7363617267588b4449444c000171820130343139623066656363356639613164353162393033643262363234346430356531326134386661386233353731396538313262623635643966393035613365613965356137323362363537616665393136313236396431663134633164383034376530323230616461633434653731313630323531656364616662613064636535"; */ + /* auto inBufferLen = parseHexString(inBuffer, sizeof(inBuffer), tmp); */ + /**/ + /* parser_context_t ctx; */ + /* auto err = parser_parse(&ctx, inBuffer, inBufferLen); */ + /* EXPECT_EQ(err, parser_ok); */ + /**/ + /* err = parser_validate(&ctx); */ + /* EXPECT_EQ(err, parser_ok); */ + /* } */ + + /* TEST(CBORParserTest, Configure_JoinCommunityFund) { */ + /* parser_tx_obj.special_transfer_type = normal_transaction; */ + /* uint8_t inBuffer[1000]; */ + /**/ + /* const char *tmp = "d9d9f7a167636f6e74656e74a663617267486202107b12023a006b63616e69737465725f69644a000000000000000101016e696e67726573735f6578706972791b16ba67d2b864bf406b6d6574686f645f6e616d65706d616e6167655f6e6575726f6e5f70626c726571756573745f747970656463616c6c6673656e646572581dd899978f029508f4fa5fce3d2539de5aade6d229efcc458233deee7502"; */ + /* auto inBufferLen = parseHexString(inBuffer, sizeof(inBuffer), tmp); */ + /**/ + /* parser_context_t ctx; */ + /* auto err = parser_parse(&ctx, inBuffer, inBufferLen); */ + /* EXPECT_EQ(err, parser_ok); */ + /**/ + /* err = parser_validate(&ctx); */ + /* EXPECT_EQ(err, parser_ok); */ + /* } */ + +/* TEST(CBORParserTest, CombinedTX) { */ +/* uint8_t inBuffer[1000]; */ +/**/ +/* const char *tmp = "d9d9f7a167636f6e74656e74a46e696e67726573735f6578706972791b16bc685267142b8065706174687381824e726571756573745f737461747573582038b344ba26f15444b4f989078c952ce99b559d3eb59e829c5a463a33812e32546c726571756573745f747970656a726561645f73746174656673656e646572581dd899978f029508f4fa5fce3d2539de5aade6d229efcc458233deee7502"; */ +/* uint32_t inBufferLen = parseHexString(inBuffer + 4, sizeof(inBuffer) - 4, tmp); */ +/* EXPECT_EQ(inBufferLen, 156); */ +/* MEMCPY(&inBuffer[0], &inBufferLen, 4); */ +/**/ +/* const char *tmp2 = "d9d9f7a167636f6e74656e74a66361726758320a0012050a0308904e1a0308904e2a220a20a2a794c66495083317e4be5197eb655b1e63015469d769e2338af3d3e3f3aa866b63616e69737465725f69644a000000000000000201016e696e67726573735f6578706972791b16bc685084d14ec06b6d6574686f645f6e616d656773656e645f70626c726571756573745f747970656463616c6c6673656e646572581dd899978f029508f4fa5fce3d2539de5aade6d229efcc458233deee7502"; */ +/* uint32_t inBufferLen2 = parseHexString(inBuffer + 8 + inBufferLen, sizeof(inBuffer) - 4 - inBufferLen, tmp2); */ +/* EXPECT_EQ(inBufferLen2, 192); */ +/* MEMCPY(&inBuffer[4 + inBufferLen], &inBufferLen2, 4); */ +/* // char array[2000]; */ +/* // MEMZERO(array,2000); */ +/* // uint16_t total_len = 156 + 192 + 8; */ +/* // uint32_t strLen = array_to_hexstr(array, sizeof(array), inBuffer, 160); */ +/* // strLen += array_to_hexstr(array + strLen, sizeof(array) - strLen, inBuffer + 160, 200); */ +/* // EXPECT_EQ(strLen, 2*(156+192 + 8)); */ +/* // std::cout << array << std::endl; */ +/* parser_context_t ctx; */ +/* parser_tx_obj.special_transfer_type = normal_transaction; */ +/* auto err = parser_parse_combined(&ctx, inBuffer, inBufferLen + inBufferLen2 + 8); */ +/* EXPECT_EQ(err, parser_ok); */ +/* } */ TEST(CBORParserTest, CombinedTXFail) { uint8_t inBuffer[1000]; diff --git a/tests/ui_tests.cpp b/tests/ui_tests.cpp index 67405595..4d04f5bf 100644 --- a/tests/ui_tests.cpp +++ b/tests/ui_tests.cpp @@ -19,7 +19,6 @@ using ::testing::TestWithParam; -class JsonTests_Phase1 : public JsonTests_Base {}; class JsonTests_Phase2 : public JsonTests_Base {}; class JsonTests_Candid_Send : public JsonTests_Base {}; class JsonTests_SNS_AddPermission : public JsonTests_Base {}; @@ -30,17 +29,6 @@ class JsonTests_SNS_SetDissolveDelay : public JsonTests_Base {}; class JsonTests_ICRC : public JsonTests_Base {}; class JsonTests_Deprecated : public JsonTests_Base {}; -INSTANTIATE_TEST_SUITE_P ( - Phase1, - JsonTests_Phase1, - ::testing::ValuesIn(GetJsonTestCases("manual.json")), - JsonTests_Phase1::PrintToStringParamName() -); - -// Parametric test using current runtime: -TEST_P(JsonTests_Phase1, Normal) { check_testcase(GetParam(), false); } - -TEST_P(JsonTests_Phase1, Expert) { check_testcase(GetParam(), true); } //////////////////// //////////////////// diff --git a/tests_zemu/package.json b/tests_zemu/package.json index bd6ac9bc..6a5cacfe 100644 --- a/tests_zemu/package.json +++ b/tests_zemu/package.json @@ -19,26 +19,26 @@ }, "dependencies": { "@zondax/ledger-icp": "link:../js", - "@zondax/zemu": "^0.44.2" + "@zondax/zemu": "^0.47.0" }, "devDependencies": { "@types/jest": "^29.2.3", "@types/ledgerhq__hw-transport": "^4.21.4", "@types/secp256k1": "^4.0.3", - "@typescript-eslint/eslint-plugin": "^5.33.1", - "@typescript-eslint/parser": "^5.33.1", - "crypto-js": "4.1.1", + "@typescript-eslint/eslint-plugin": "^7.1.0", + "@typescript-eslint/parser": "^7.1.0", + "crypto-js": "4.2.0", "eslint": "^8.22.0", - "eslint-config-prettier": "^8.5.0", + "eslint-config-prettier": "^9.1.0", "eslint-plugin-import": "^2.26.0", "eslint-plugin-jest": "^27.1.6", - "eslint-plugin-prettier": "^4.2.1", - "jest": "29.5.0", - "js-sha256": "0.9.0", - "prettier": "^2.7.1", + "eslint-plugin-prettier": "^5.1.3", + "jest": "29.7.0", + "js-sha256": "0.11.0", + "prettier": "^3.2.5", "secp256k1": "^5.0.0", "ts-jest": "^29.0.3", "ts-node": "^10.9.1", - "typescript": "^4.7.4" + "typescript": "^5.3.3" } } diff --git a/tests_zemu/snapshots/s-mainmenu/00004.png b/tests_zemu/snapshots/s-mainmenu/00004.png index 572fb5cf0c4c0d4c709aaab58db4e1d5a5f9c851..b312d29b69101b7a13949451ea0ca2b768c27645 100644 GIT binary patch delta 382 zcmV-^0fGLu1DOMmB!6H@L_t(|ob8#-4ul{Kgsai_e_#*pfeoqs5l|7)`A!B0)=X=Q zED-;8?PcHQerq&No$S}8lf{SSy0G`Xi*>#~|{*T8CAs`lpDBvS};^PB0 zHv8phC3lv{s4!9EtsrKF7<9rdZ$L;%o|QXxlS*5W_1?s;e1DJR1)#L=tR6RfjeV36fL`whO#R0qgdF3Rp3E%)a*Unm0-ZeRmBB5%CB z!*0`_%u-5aiJT0>Hqi>|uHu6vobm;fkd#qbk(*4|s;G}{On;?2)8~NEy4Np6-BP(K zp}tKfrJx}XxyE)dr+dzF0IQ=eN@|L}FgY739?d3U>9RU51^qpPMcD5DqCwDymx3Z4 zWn9~oLJ0f-cf;1ORu-y}pf-{2AdskIir}X0N))S8XtZL}3=~)>vzZnSP;(IXyA(Z5 zmR?^h>^;rpK7aI6Pt&Hd(RB9$m&JR-k!@&yhoDmnmB;E5+gaNSy1ow#BL^|JlEmfZ zWn7u5PTU_ecn)wSZl)k^#?^z}UHR8b(Y$sv^LF--&5X3nc0fftbs~ux*U9tPxy`tG zTdklfggtWGkWX8Iska6k^xIT)zwwkje?0;K00000$rS^IoY}=378Kq90000;8?PcHQerq&No$S}8lf{SSy0G`Xi*>#~|{*T8CAs`lpDBvS};^PB0 zHv8phC3lv{s4!9EtsrKF7<9rdZ$L;%o|QXxlS*5W_1?s;e1DJR1)#L=tR6RfjeV36fL`whO#R0qgdF3Rp3E%)a*Unm0-ZeRmBB5%CB z!*0`_%u-5aiJT0>Hqi>|uHu6vobm;fkd#qbk(*4|s;G}{On;?2)8~NEy4Np6-BP(K zp}tKfrJx}XxyE)dr+dzF0IQ=eN@|L}FgY739?d3U>9RU51^qpPMcD5DqCwDymx3Z4 zWn9~oLJ0f-cf;1ORu-y}pf-{2AdskIir}X0N))S8XtZL}3=~)>vzZnSP;(IXyA(Z5 zmR?^h>^;rpK7aI6Pt&Hd(RB9$m&JR-k!@&yhoDmnmB;E5+gaNSy1ow#BL^|JlEmfZ zWn7u5PTU_ecn)wSZl)k^#?^z}UHR8b(Y$sv^LF--&5X3nc0fftbs~ux*U9tPxy`tG zTdklfggtWGkWX8Iska6k^xIT)zwwkje?0;K00000$rS^IoY}=378Kq90000ki%TSZGwOOz@6PouWu}?>W#5Ny%p=>N~|E>XtT zLR9DkMnJw${I2yPHpRMZ@GYM}YzkVvTfz6MlT54wc4)Ne@t13aD8~f0B6!0fopMp+ ztCU*p0p&p59R)Cv*yuzn0_+1VY5@QM00000001z97wYK#)kv1Sz5oCK07*qoM6N<$ Ef>SBBn*aa+ diff --git a/tests_zemu/snapshots/s-pb_add_hotkey/00001.png b/tests_zemu/snapshots/s-pb_add_hotkey/00001.png deleted file mode 100644 index 3778c3e03eae01541e7c834d573bad331e48ffd8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 457 zcmV;)0XF`LP)>ipa71Uo^(Hg$lLyH6?i3w52_d_-$j?DZf?!KSsXX(0etV0~3 zyMYN1XMD#{sB>O(o$xQk4{7{dRpJNVh(^qQ4nD;>cvg~Y zQ8)=f4%X}cs5lbL%JD$b6+rodV9yLObS0kW^%@wm4n{4$QLwjsi-w21ePIrg>w|KJ z#9MHTx9iuhZ^v;S#Zp%}swA(-VL2-l?nF{m5G4gWh%ZqR4(U81b8@%nA6CR|Fn6FY zOa7%?)e&1A)nfjv?>9}E` zJpsH#p3Q(J3Gz9s^Tk1Qa#4X>g6+=XIF9odfL6q8bUgPvO|+l;C#2Sjcmz*=@n4Yu zX8=f7)#*jK73}mSH_^{bz)Za$96$Fv&P(_Kf>kAK4{DTw00000NkvXXu0mjf&-}}t diff --git a/tests_zemu/snapshots/s-pb_add_hotkey/00002.png b/tests_zemu/snapshots/s-pb_add_hotkey/00002.png deleted file mode 100644 index e80ee8b9771e63ac67c7acab4c6928f8eae5cb83..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 613 zcmV-r0-F7aP)3*w^>0H60k z%E3m$km$oZ0}^KKOBwJ`plbqc_bN^-wmPv$gc}iCh7WOo;M7Ha3@M1UBXKXzzlx)! zQ}fve2A(-&bH??(ZMuY`XFfU-JJCK2S$3TE06frCnt|=Yieb7YtCHEGIV+9qha2jD zW;*keZ5%gIDA~y}RzjmHPoD~nRD-Is*8eJ>YtS?UI_Vdo;#NCav{?{zc&^8cGL)_i zY(50$t|4%XZl|-(0rKi>4--vfDbVYMKA|ZAc0RzeK?%eIRzk;qww>5R%;rg*Ri$lz z!X|9Q0xN73{9f&&i)?Ic5a2@iHvC<{CCl(|9J00000NkvXXu0mjfOLH0J diff --git a/tests_zemu/snapshots/s-pb_add_hotkey/00003.png b/tests_zemu/snapshots/s-pb_add_hotkey/00003.png deleted file mode 100644 index 35a7a7c1bf4db571e1cf35bf05a8e9ac3a85c28e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 548 zcmV+<0^9wGP)BWIXf79mC zSAIGsV>8o!)Rkek71AZ2_|clr<+GDLlx~MX?-Ie=5yauq-~q@h=X!7pp3!Ro25A2+ zn<>PK&W(pwPOgM=&>HN~|7Ktl?nTeMqp(ntHi(ixya?M!F`0C#JG8}&je=~QMsgV%^+iXROix9Y(I9kq7@A8PbT%}p z2+06UFUfB10eDK)HpS;tZQYbmXbI&4#&IF8>~K zzhRaAS`H?-=QM1i=Tu6{1-oD!M<5AJP1 diff --git a/tests_zemu/snapshots/s-pb_add_hotkey/00005.png b/tests_zemu/snapshots/s-pb_add_hotkey/00005.png deleted file mode 100644 index b6270f13fff423aaac593370eb0a40e0d0bfbeb9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 431 zcmV;g0Z{&lP)mSP4B7SzpTIGWqnzMk4Zu*LP8JMftZKCYdm=xf=)oS9YNz|-B@4zEJa#V%%du{ zlV{=}?L1&pdFCeMVe z3W^Fr7r>c>d!=401U5V&s8=|u4*;Uwm+qa)%R3%P>p&F(4!6nHKC?-fUq`{ekfEBJ zW11@H>!IGsmRSezo{SNSRF^$8^Epzrnq4@MpT~!I+Ea$|6U0;Qo-$PJWr~(3e_+rz zRkg&mu2q~k%7@|%L23+{4lF(EkW;mw`BE7$-Clh=aY^`q>e#Fz%4k7on>uAX`aJSo z72{4oYl{i%7*+Dwov@vN{U1+>ZdA4j)djJIX{qSr`@& zWpT0RrMW#)FO6+Bvmb@YBvZGrAzc|tG9l@aR5cZ{DKwpztk{{d57#6 z#rnLnN~L+#4zR4L{_)((*wD>Er&P<>-IL^Ng+42z!hee8G!e)3QV;;YNcys+UvBZ~ z0mIOBr;R>UA(EE~!ns8+OVIz_yFOhz z-HM|YqS&3rsvTgbJ9FihBz3vd-Tc@8dI9LpnI#Q2P+GOos)nvDj#c-7*d48uD`G1d z^Xno@c0ew$IF8>~K zzhRaAS`H?-=QM1i=Tu6{1-oD!M<5AJP1 diff --git a/tests_zemu/snapshots/s-pb_check_status/00002.png b/tests_zemu/snapshots/s-pb_check_status/00002.png deleted file mode 100644 index b6270f13fff423aaac593370eb0a40e0d0bfbeb9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 431 zcmV;g0Z{&lP)mSP4B7SzpTIGWqnzMk4Zu*LP8JMftZKCYdm=xf=)oS9YNz|-B@4zEJa#V%%du{ zlV{=}?L1&pdFCeMVe z3W^Fr7r>c>d!=401U5V&s8=|u4*;Uwm+qa)%R3%P>p&F(4!6nHKC?-fUq`{ekfEBJ zW11@H>!IGsmRSezo{SNSRF^$8^Epzrnq4@MpT~!I+Ea$|6U0;Qo-$PJWr~(3e_+rz zRkg&mu2q~k%7@|%L23+{4lF(EkW;mw`BE7$-Clh=aY^`q>e#Fz%4k7on>uAX`aJSo z72{4oYl{i%7*+Dwov@vN{U1Egt2Gaf-%m-D<|&EvW`*qn&r62GGa#z~eT z0WXiqk+<$vPrLQn7B}nGxZGv<2vIqdso7oh?DR~D2FVn};Co)|gzN({6Y)!x!TPN@ zc&KGDq7NGF*xwHEReVnBPdPJ5>i_Kb;Y@hdG*cE}k+O;+Q`W$ubrsV&q|HAMpJ*H* zY4;NEac31~Ico=4zNub3mv(LH%~4N@%h`IUlu5g)|}MKLF`j-iFa zu1IF8>~K zzhRaAS`H?-=QM1i=Tu6{1-oD!M<5AJP1 diff --git a/tests_zemu/snapshots/s-pb_claim_neurons/00002.png b/tests_zemu/snapshots/s-pb_claim_neurons/00002.png deleted file mode 100644 index b6270f13fff423aaac593370eb0a40e0d0bfbeb9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 431 zcmV;g0Z{&lP)mSP4B7SzpTIGWqnzMk4Zu*LP8JMftZKCYdm=xf=)oS9YNz|-B@4zEJa#V%%du{ zlV{=}?L1&pdFCeMVe z3W^Fr7r>c>d!=401U5V&s8=|u4*;Uwm+qa)%R3%P>p&F(4!6nHKC?-fUq`{ekfEBJ zW11@H>!IGsmRSezo{SNSRF^$8^Epzrnq4@MpT~!I+Ea$|6U0;Qo-$PJWr~(3e_+rz zRkg&mu2q~k%7@|%L23+{4lF(EkW;mw`BE7$-Clh=aY^`q>e#Fz%4k7on>uAX`aJSo z72{4oYl{i%7*+Dwov@vN{U16S+aX%bv4#cp;Z!Z($WYZ9U zm&f49b9cL^T{^eP&3q0U3nio4$)&c8DaimfseOqj7 zYFUivjYd26w_SV{pM&~C&PM%xuJ`Lc1gh?lgJWKLh5r;wHQ~qoQV;;Y#<^>yA8oJ6 z&yFY3-FkXE954Zv@8BNHtb$U>rIa_cMgA||XDCJz>~eyJL{*wj_27%HJBdAr$;W2J z%}UIK9IqyJ75%fQ2@DZc1-aw_nd=m@#RHwLvVxEmAlJK#kpXM>I|l`x16=MHx{R#7 z)v)2T0`z^!xPR({#Z-)!0ZgoU+o7ui00000000000001fmk$I}|3hyl8La>S002ov JPDHLkV1lK4x%&VB diff --git a/tests_zemu/snapshots/s-pb_disburse/00001.png b/tests_zemu/snapshots/s-pb_disburse/00001.png deleted file mode 100644 index e8f4c4ea69a714cad4c3b60c1d2caf38da190ff0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 447 zcmV;w0YLtVP)!gp6chb0DRq~E+03M@Xf(~&B>J^k` zGbbVO!FoS?=|Gr;V@L1|fO0^vX9f*J$;WxU3tZ-b*W~kpeC1nK?DF-cK0xUc*+Xm- zJ;uxR&(H552wuffDL+Fb8@bSWLTi?CfE=KJM11*3rLV(^f2>@7xkgnR=PTGXuymK8 zNzhh;MWIzwk*vJ6FQv-u_baPZSn}Jr6T|3D0#)A2;?wtR^(qME=wG`-Aq25Gti@^_ zDvY&dybDw)Z+C#+HoZ;L+?^qmr-4$#p{G3AqdMhc2x3h_5=Q4a#8$uV?#esOr^Xq8 z=J<=wb$ylh>wBjVL?gZ?=h*_lt}azQdNj&eVO8Zp5ClO_{^9Sld6{i1{HMI!0gVT- ppf}+FXTkx_gae!j2LwUj$QRA`g(3m6t5$9>hDY!?Q!fgrt6i|2!G-{i#ead>?xY9t}@1T=p_ zx|`Pa+A(bYi;{kGXcD>sc(_99QT`lqR$8s?*&H2LN!TK~zrR*(&leTn9pV@M+=_Wf zOn*Z1Q;#X_gW9d!iDm|ej@ArQqGJ2Z7YRdL;E$tOgRl4d43yCFXmCz6Yb}cTpn`A@ zLC14ZgV$Caq2(kW-^F#aProN%!=!UiLObt_Mo~KZ^gaO_qSWoAa9wBq#53Eeh-n!h zDla;~<4>CKUUe@pFk|WoLUQi7q@_{7SnO#LCh0e(cFMI@@ne1D$JE~ zU__dG1pu|UcnrZ`d99DB{GNn_{iWQ90~V@tfX9{E7DBt6d_N{kOyA1~L>5515o(Pc zO_2jonN!J2NX-pVmz(2uolULoiw}_n=se?211+)w1*g&?TWK96%XBb%i(JNy3tvM) zM$N&ger~PwWs6({=gj`;h+jkT-4UEh+)xBm;PNL@VK+=d^R^9A_a)bOVPRoGLnH@~ z@3yPOZcW8m4FMiAIcXUfly9MSi}U*^a(x27y4k$|TD)!&E2*eCETef9sRoAYfLsMw zSnhKMu-Qv2(!R&LiB5Hdf(yXIi>GksB;u_x9fCaYH$ig({{F`i!36-*4P?j~mG;Yf zMXir87*s1T9D+Ri@tRer);DZje-RRsaA107*qoM6N<$g7oq&VE_OC diff --git a/tests_zemu/snapshots/s-pb_disburse/00003.png b/tests_zemu/snapshots/s-pb_disburse/00003.png deleted file mode 100644 index 1735a76208178f4f1d62ea9fcd613ccdcb0d532e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 623 zcmV-#0+9WQP)QOBj!*j{CM77*L(?dMUkMdBjwK&w5j zy36zJo7nJwTgHl`rX}eB!sV*&#ESJd50VZsz_+7{!Q=cr0x7gS*Ikg!^vDHcNmoFj>mmoo zRE^Mbk_%?B-sZf~FW)O*$DnnPLOX7aa$Gq2f8>-J0t2rjQc_0=}{C)fuuk^?6GI+XJtek$){z$Y5Hpc0QtNrw<{RJmdu#0N-e zuG#-!fOR3kO1yK$JNXdD2C+ z0q6|?@-{?lj-Tcbq&x$(YMDITJECU{--IV7CMNQ+_{_Qfj9;}{RAyGy$q_cPGb4n0 zOOTSWaGjKcGDAcpAccMEjjL<-U&O?@03H&|iOiY7mLN9Q=?X#ci#RS1a3!)u>n%i_ z>Vly1u}O+)#)Ua!1(0`hyb<14dn8$5GiJlM#yZAWGo|oE9z3rNw z^aRL>R!l?vVwIR?lZI?M#}MK)G&i$`+Rub7dk=6uA1D1=31ZHLov{bepf1IJ9wXZx z&Kl<5)f=~D2Fda%`q|b^i819NW7~45@mJD>S-a~ZYlvzybW4Yc*n)qO-T9!5Wf1^g z%+T6kZc5UOV~ISK6mAz}Xs3B?rPjQbkSD2qMIMv{6T;}{_xd4E+a6$&SuNk1_%oG7 zZiFonxr($RSFrQ#`~Tfr!`WE?=;%NfDMB-lYZ2Aod^+nX07XY9Eu^*Px#07*qo IM6N<$g5G?$egFUf diff --git a/tests_zemu/snapshots/s-pb_disburse/00005.png b/tests_zemu/snapshots/s-pb_disburse/00005.png deleted file mode 100644 index 006c26abaac6c76b2e871b194165596c0b416694..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 249 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!2~2j9iA5fsRN!ajv*Cu-d?-N*JQxc`taO| z-}VOL1%{U&gdOO)vH0QtN3CIpH=On}yd9NxI9#@L#=GYozkR+NZ@s(h_s<*5szDx| zmTO$v85!1fT#rxFzI@yL`PcK^*L-*W3fIF8>~K zzhRaAS`H?-=QM1i=Tu6{1-oD!M<5AJP1 diff --git a/tests_zemu/snapshots/s-pb_disburse/00006.png b/tests_zemu/snapshots/s-pb_disburse/00006.png deleted file mode 100644 index b6270f13fff423aaac593370eb0a40e0d0bfbeb9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 431 zcmV;g0Z{&lP)mSP4B7SzpTIGWqnzMk4Zu*LP8JMftZKCYdm=xf=)oS9YNz|-B@4zEJa#V%%du{ zlV{=}?L1&pdFCeMVe z3W^Fr7r>c>d!=401U5V&s8=|u4*;Uwm+qa)%R3%P>p&F(4!6nHKC?-fUq`{ekfEBJ zW11@H>!IGsmRSezo{SNSRF^$8^Epzrnq4@MpT~!I+Ea$|6U0;Qo-$PJWr~(3e_+rz zRkg&mu2q~k%7@|%L23+{4lF(EkW;mw`BE7$-Clh=aY^`q>e#Fz%4k7on>uAX`aJSo z72{4oYl{i%7*+Dwov@vN{U1z5 z%Hm+pQ**&mFO6+96V}A!CX=_YF1s?6%|uO4O;u4L8$!|fniV;xtOGWZ;!MRx`nA}& z+e@OP-6+%}|JudB<6GHZWlSX5{@ML-#62?1ApuxQS*0NpV<72u73v(4=AW01H-@mZ zdx`b)&MKMaQ7b?)r|r#iNn=A72OUx_BX_SRpDWZ^=@ot`lGB78{!-Ax7?pyipq+@$ z!R{hvg|M&@ce7cF5EWdmfSD(>mr3@3?P$2WA2PAp1=#1s!VBtBK|?Hmy1``%YShkd zhsyxmebOnD>;YwnB_IG z^>y{a7emBev)y@k{`IFki<1kF|2Vid?!;An;mHxdL)kuFbbb3P^qEqhX4Q?Om)qPY xOmeKV`+4|`u)+Tq$-k@@{65Yg2m=$pGoQ<;-`8AutpykW44$rjF6*2UngHnNfs_CM diff --git a/tests_zemu/snapshots/s-pb_follow/00002.png b/tests_zemu/snapshots/s-pb_follow/00002.png deleted file mode 100644 index b5eb232d66799e08e123763969cf2d1e62f6e3c2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 299 zcmV+`0o4A9P)>UuOG+iDgw$+7aSf=c#D7+cWrYr0Jph9=OQQA2Q+3Z x0)8GU$U~~DP|)vwN!DT#1^@s60002~#|*;%k2etIyF35@002ovPDHLkV1kw&eYOAq diff --git a/tests_zemu/snapshots/s-pb_follow/00003.png b/tests_zemu/snapshots/s-pb_follow/00003.png deleted file mode 100644 index 79197993324c9bcc7e6e5ffce2155fa578a9a95e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 354 zcmV-o0iFJdP)rLcy&?F!#h5f?ZoElu_p>+v?QW*5DDu?0hIfjYfXz`XgyG z8hNGKP6Dtu>;k|P`m1+Zlr7abAsdavsFTSySIafXb{kB>w6NJWU36S|a(xL6-pSv0 z8}%OMe)T7ZPVZbYCML$dw(KZQrE9*|lMo+{6l5BMW&`Giq8^^g+7nuzuMc|+I)^Tl zpBK%8BV`Wz;B%XGLB}sxtP~UEc~4TI97x^m@_6>^l$r~Q4RcupfEP18?ZADaE7(cy z@&z<07HazcBNsB%8PLNWN*iAm>4e0000000000002ON55%v(QqH9c3IG5A07*qoM6N<$f-9Pm AG5`Po diff --git a/tests_zemu/snapshots/s-pb_follow/00004.png b/tests_zemu/snapshots/s-pb_follow/00004.png deleted file mode 100644 index a53d266779375892a4cabc8de7c18376d1a4313a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 345 zcmV-f0jBdq}731C;!D5g9K=yR7=E}Cvs<=4ws=87ef~AJ&Dsd9?M$L z$P3Ljk^m`jkLPG`*rna*?5QLO+i9Z4gH)fTS!tofZz$a;W;?X#jN&4#(A3gPgz|p% z!H)3EyCbX3fk@3sh_kP+IP7F^l57mo{eanDTTo~Ys;zhFD3QokCaF04MAYvumK-z= zFO=IwV~n)!?9;vi7V4BLAHU(TP|eVn64hXmNMq;!od-AnrYZSBiJ{M{0Px3jPX|zp z`YpQ%d1I9l;LPnGt|q}A04|Y~_Swnhdse`ZS7{c01}DGbfj_eRRkV`+3Xyag@t85KRNq<3tx2nK>2LT#*hBoMQ0ti{yitFI*F@$w(2*#`^@Ql zR_Z!a_IEFP=o5Ls+azYW-l3n`a@IF8>~K zzhRaAS`H?-=QM1i=Tu6{1-oD!M<5AJP1 diff --git a/tests_zemu/snapshots/s-pb_follow/00007.png b/tests_zemu/snapshots/s-pb_follow/00007.png deleted file mode 100644 index b6270f13fff423aaac593370eb0a40e0d0bfbeb9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 431 zcmV;g0Z{&lP)mSP4B7SzpTIGWqnzMk4Zu*LP8JMftZKCYdm=xf=)oS9YNz|-B@4zEJa#V%%du{ zlV{=}?L1&pdFCeMVe z3W^Fr7r>c>d!=401U5V&s8=|u4*;Uwm+qa)%R3%P>p&F(4!6nHKC?-fUq`{ekfEBJ zW11@H>!IGsmRSezo{SNSRF^$8^Epzrnq4@MpT~!I+Ea$|6U0;Qo-$PJWr~(3e_+rz zRkg&mu2q~k%7@|%L23+{4lF(EkW;mw`BE7$-Clh=aY^`q>e#Fz%4k7on>uAX`aJSo z72{4oYl{i%7*+Dwov@vN{U1ap4$}Wd=()t8`@HJxwXl;LbUv}T(J(TDX@cYMZp=e4yu{3zf@|> zud(H^JOy{ zL#nd7B>K3$3h_K^1t7nv{O~-=+~kWRpAxmfhu5;F4s}s_jsGdgZo&?KB`65?!O8yQ zdTgdo-u}er1~?hzh^jqnYDT*twnB_IG z^>y{a7emBev)y@k{`IFki<1kF|2Vid?!;An;mHxdL)kuFbbb3P^qEqhX4Q?Om)qPY xOmeKV`+4|`u)+Tq$-k@@{65Yg2m=$pGoQ<;-`8AutpykW44$rjF6*2UngHnNfs_CM diff --git a/tests_zemu/snapshots/s-pb_increase_dissolve_delay/00002.png b/tests_zemu/snapshots/s-pb_increase_dissolve_delay/00002.png deleted file mode 100644 index 5fd49b3e531db891c182047a8b25264a12387d3a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 346 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!2~2j9iA64Ffb~5x;TbZ%y~P*QK(sg$2GJ4 z-v0x7Z<+*K6F6A9H~#PCmOi7dCb8#{@=_d zgQJJv@3eA#y-3n&)tmCyuZv&$EI(%Obz{rJ^d9wH0p3?{2IujfRwFRc)*nQG-V<@Ab`^;(uGnc0rNr0z5d)W;i~ z*_)lBnK|#T-GY^l8wKsB?nwUn)@0>$|F*AP8@mio`NV&E-p|E#c=D9}JHkJ2=7|a2 z{Oj{&iSS9^H53`@oW6?w(ofiwpli(*ec?!WFZYM9-tXKDe_s>ZSG#JyZBN1mR$Fe7 p1S5?DDLi?Hro0m81BMP9{9t+AjqlAx~F7mvv4FO#nWFl(hf= diff --git a/tests_zemu/snapshots/s-pb_increase_dissolve_delay/00003.png b/tests_zemu/snapshots/s-pb_increase_dissolve_delay/00003.png deleted file mode 100644 index 006c26abaac6c76b2e871b194165596c0b416694..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 249 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!2~2j9iA5fsRN!ajv*Cu-d?-N*JQxc`taO| z-}VOL1%{U&gdOO)vH0QtN3CIpH=On}yd9NxI9#@L#=GYozkR+NZ@s(h_s<*5szDx| zmTO$v85!1fT#rxFzI@yL`PcK^*L-*W3fIF8>~K zzhRaAS`H?-=QM1i=Tu6{1-oD!M<5AJP1 diff --git a/tests_zemu/snapshots/s-pb_increase_dissolve_delay/00004.png b/tests_zemu/snapshots/s-pb_increase_dissolve_delay/00004.png deleted file mode 100644 index b6270f13fff423aaac593370eb0a40e0d0bfbeb9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 431 zcmV;g0Z{&lP)mSP4B7SzpTIGWqnzMk4Zu*LP8JMftZKCYdm=xf=)oS9YNz|-B@4zEJa#V%%du{ zlV{=}?L1&pdFCeMVe z3W^Fr7r>c>d!=401U5V&s8=|u4*;Uwm+qa)%R3%P>p&F(4!6nHKC?-fUq`{ekfEBJ zW11@H>!IGsmRSezo{SNSRF^$8^Epzrnq4@MpT~!I+Ea$|6U0;Qo-$PJWr~(3e_+rz zRkg&mu2q~k%7@|%L23+{4lF(EkW;mw`BE7$-Clh=aY^`q>e#Fz%4k7on>uAX`aJSo z72{4oYl{i%7*+Dwov@vN{U1``&3g(vEn>5+HuJ7#9f?c7LF0vZEOj7yoMBnOXC7+paI=W}=gU z1c>ob?5DP7b3CGWeTdTDf#6aWAK0000000026nLogZ_j4xq Rp`HK$002ovPDHLkV1h+wykh_W diff --git a/tests_zemu/snapshots/s-pb_join_community_fund/00001.png b/tests_zemu/snapshots/s-pb_join_community_fund/00001.png deleted file mode 100644 index d945a16d5415b6ba77dca165a4515b122c213de7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 302 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!2~2j9iA5fsjr?cjv*Cu-rhXT*Q_AGdSUg! z|Nj%j%N!3SGh7TwKX7NVo`AvO*;`nHj`PVXO^AvSe0O7Wf7*-Lsrp-#dDATzuhz_c z!N4G1Jl$8hW<$=`1q*BUX{;5#lsfl|V5R!h-&d!W-(eJ6d_Rb<(A!d5DfX<4ixGQv z&9wnB_IG z^>y{a7emBev)y@k{`IFki<1kF|2Vid?!;An;mHxdL)kuFbbb3P^qEqhX4Q?Om)qPY xOmeKV`+4|`u)+Tq$-k@@{65Yg2m=$pGoQ<;-`8AutpykW44$rjF6*2UngHnNfs_CM diff --git a/tests_zemu/snapshots/s-pb_join_community_fund/00002.png b/tests_zemu/snapshots/s-pb_join_community_fund/00002.png deleted file mode 100644 index 006c26abaac6c76b2e871b194165596c0b416694..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 249 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!2~2j9iA5fsRN!ajv*Cu-d?-N*JQxc`taO| z-}VOL1%{U&gdOO)vH0QtN3CIpH=On}yd9NxI9#@L#=GYozkR+NZ@s(h_s<*5szDx| zmTO$v85!1fT#rxFzI@yL`PcK^*L-*W3fIF8>~K zzhRaAS`H?-=QM1i=Tu6{1-oD!M<5AJP1 diff --git a/tests_zemu/snapshots/s-pb_join_community_fund/00003.png b/tests_zemu/snapshots/s-pb_join_community_fund/00003.png deleted file mode 100644 index b6270f13fff423aaac593370eb0a40e0d0bfbeb9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 431 zcmV;g0Z{&lP)mSP4B7SzpTIGWqnzMk4Zu*LP8JMftZKCYdm=xf=)oS9YNz|-B@4zEJa#V%%du{ zlV{=}?L1&pdFCeMVe z3W^Fr7r>c>d!=401U5V&s8=|u4*;Uwm+qa)%R3%P>p&F(4!6nHKC?-fUq`{ekfEBJ zW11@H>!IGsmRSezo{SNSRF^$8^Epzrnq4@MpT~!I+Ea$|6U0;Qo-$PJWr~(3e_+rz zRkg&mu2q~k%7@|%L23+{4lF(EkW;mw`BE7$-Clh=aY^`q>e#Fz%4k7on>uAX`aJSo z72{4oYl{i%7*+Dwov@vN{U1Clv#CgApzw4G@(-FfIzr75MlP$vq zWO=+e^3vU!X_v0;;bz?mm%EG{VJfFGl-)(kPRmr)Ae%xp_?8ztL-qliN%c-0gY;^3 z@KnoUL?1NTv0v@ttN3*4yPTOM^@sgFM8YG}ykr5ET2@hHjy14o&BC2S%KY=li6#-2 zcBgnBSE~riSM31HJ=G7-rCb}jIp~z6j6J-Tyfok$-e=AJ|>QP>j<&*T%>V@bnjYv-- zgz^Y?wIy2W@|$V3EGP{FU&q4NL9sEc3Yz{h#mG8lsst>Lc@dM_d^+PIiA{Fodw{#C zK=XJjrw?-N#_KV*1MIzWy=NdT#9`fn(>{l;t}yKo1^@s60000000000^zZ>;CL*kc S?Szv60000IF8>~K zzhRaAS`H?-=QM1i=Tu6{1-oD!M<5AJP1 diff --git a/tests_zemu/snapshots/s-pb_list_neurons/00002.png b/tests_zemu/snapshots/s-pb_list_neurons/00002.png deleted file mode 100644 index b6270f13fff423aaac593370eb0a40e0d0bfbeb9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 431 zcmV;g0Z{&lP)mSP4B7SzpTIGWqnzMk4Zu*LP8JMftZKCYdm=xf=)oS9YNz|-B@4zEJa#V%%du{ zlV{=}?L1&pdFCeMVe z3W^Fr7r>c>d!=401U5V&s8=|u4*;Uwm+qa)%R3%P>p&F(4!6nHKC?-fUq`{ekfEBJ zW11@H>!IGsmRSezo{SNSRF^$8^Epzrnq4@MpT~!I+Ea$|6U0;Qo-$PJWr~(3e_+rz zRkg&mu2q~k%7@|%L23+{4lF(EkW;mw`BE7$-Clh=aY^`q>e#Fz%4k7on>uAX`aJSo z72{4oYl{i%7*+Dwov@vN{U1ah ztt29RqfkfwZ5Lm|=b-(NGf_|e&wd?d!b^r}G6AlYRhT|;4kT8)7|tPi{(0y`qezi< zw|HN7R;iS&R)FL;!lz7eu%K4g;%ek zRsf5X?*U%{O$w^Vuw!nlPC*6Ct%J+27V0aF^u$8xNDdoKTSokr2nDIpG6hsARNqhVI*OQN9;-Uw^n$@3+<^DqPpo9e zCfuy!sU45%8754)PuBT|vKqI9aqL50LO(T4?Z1teAe^(W66OYR_{FL&WRKBmS{Kf;3#pt(`L)=nkMI2WP z2f=c%rgN))2x`l*Avpu6y&&itp%1^x$9YW^CiB2*@>waK@{m=VJbgR|;`nl(q3R{i zDR0-)&u;*5WwGwSd*a1EDhsjTey{rt!`nO6+HW$BLH?i_@%07*qoM6N<$f(C|&VE_OC diff --git a/tests_zemu/snapshots/s-pb_register_vote/00002.png b/tests_zemu/snapshots/s-pb_register_vote/00002.png deleted file mode 100644 index dea9390b9f46e39622a9f3a352c5a5bee57c0630..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 328 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!2~2j9iA64Ffj6ax;TbZ%y~QWF5h7Vj@FGE z-~T_b_l4e>KdW7*cbq8Nx7yXy@qqJo%Tqh`i_|#_<6mx`BW~AlDnI6Avhv9fJ9xq! zJ$}SJTP^LdH7K{UE!^(T^3b*GctYk%G*|96?|Hg;WoX~GHf#BtahLngN`ENRt!RFi zbosrS`GS&%owH0Qe${%aZQt5;ig(h{pHml@nhMm`h0J@g)H30!=I5Fvy#dUxbLzU> zr~gihE{}M+^YQcC%ai0E#9rfhyEcx!?Z(cz=>=bW8&otJjQp${;yH>;lzx3%QdaL& zG+VjxXWLfWGL;wpvu}O(%?UgyGULpGTMkWP3%@GAv(XVhQ1|WRAD$Qg<^qEP0UG(& WSx%hTYV>9=NX*mK&t;ucLK6UhV3HI7 diff --git a/tests_zemu/snapshots/s-pb_register_vote/00003.png b/tests_zemu/snapshots/s-pb_register_vote/00003.png deleted file mode 100644 index aac72e6022b0966837cf45cbbba2648283600008..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 273 zcmV+s0q*{ZP)WGUOZRNFdTLIr1rQ~2!2zgF4m2AB=x~;mMs``@u zf^O=IF8>~K zzhRaAS`H?-=QM1i=Tu6{1-oD!M<5AJP1 diff --git a/tests_zemu/snapshots/s-pb_register_vote/00005.png b/tests_zemu/snapshots/s-pb_register_vote/00005.png deleted file mode 100644 index b6270f13fff423aaac593370eb0a40e0d0bfbeb9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 431 zcmV;g0Z{&lP)mSP4B7SzpTIGWqnzMk4Zu*LP8JMftZKCYdm=xf=)oS9YNz|-B@4zEJa#V%%du{ zlV{=}?L1&pdFCeMVe z3W^Fr7r>c>d!=401U5V&s8=|u4*;Uwm+qa)%R3%P>p&F(4!6nHKC?-fUq`{ekfEBJ zW11@H>!IGsmRSezo{SNSRF^$8^Epzrnq4@MpT~!I+Ea$|6U0;Qo-$PJWr~(3e_+rz zRkg&mu2q~k%7@|%L23+{4lF(EkW;mw`BE7$-Clh=aY^`q>e#Fz%4k7on>uAX`aJSo z72{4oYl{i%7*+Dwov@vN{U1yb6L1f3KZK*p1Kd_e zPl6BOvsZSdyrB}%8X^=S%=HEki1(?0QUv%GhF|gl000000001hAK(Q7)f(2w)~(k7 O0000>ipa71Uo^(Hg$lLyH6?i3w52_d_-$j?DZf?!KSsXX(0etV0~3 zyMYN1XMD#{sB>O(o$xQk4{7{dRpJNVh(^qQ4nD;>cvg~Y zQ8)=f4%X}cs5lbL%JD$b6+rodV9yLObS0kW^%@wm4n{4$QLwjsi-w21ePIrg>w|KJ z#9MHTx9iuhZ^v;S#Zp%}swA(-VL2-l?nF{m5G4gWh%ZqR4(U81b8@%nA6CR|Fn6FY zOa7%?)e&1A)nfjv?>9}E` zJpsH#p3Q(J3Gz9s^Tk1Qa#4X>g6+=XIF9odfL6q8bUgPvO|+l;C#2Sjcmz*=@n4Yu zX8=f7)#*jK73}mSH_^{bz)Za$96$Fv&P(_Kf>kAK4{DTw00000NkvXXu0mjf&-}}t diff --git a/tests_zemu/snapshots/s-pb_remove_hotkey/00002.png b/tests_zemu/snapshots/s-pb_remove_hotkey/00002.png deleted file mode 100644 index e80ee8b9771e63ac67c7acab4c6928f8eae5cb83..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 613 zcmV-r0-F7aP)3*w^>0H60k z%E3m$km$oZ0}^KKOBwJ`plbqc_bN^-wmPv$gc}iCh7WOo;M7Ha3@M1UBXKXzzlx)! zQ}fve2A(-&bH??(ZMuY`XFfU-JJCK2S$3TE06frCnt|=Yieb7YtCHEGIV+9qha2jD zW;*keZ5%gIDA~y}RzjmHPoD~nRD-Is*8eJ>YtS?UI_Vdo;#NCav{?{zc&^8cGL)_i zY(50$t|4%XZl|-(0rKi>4--vfDbVYMKA|ZAc0RzeK?%eIRzk;qww>5R%;rg*Ri$lz z!X|9Q0xN73{9f&&i)?Ic5a2@iHvC<{CCl(|9J00000NkvXXu0mjfOLH0J diff --git a/tests_zemu/snapshots/s-pb_remove_hotkey/00003.png b/tests_zemu/snapshots/s-pb_remove_hotkey/00003.png deleted file mode 100644 index 35a7a7c1bf4db571e1cf35bf05a8e9ac3a85c28e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 548 zcmV+<0^9wGP)BWIXf79mC zSAIGsV>8o!)Rkek71AZ2_|clr<+GDLlx~MX?-Ie=5yauq-~q@h=X!7pp3!Ro25A2+ zn<>PK&W(pwPOgM=&>HN~|7Ktl?nTeMqp(ntHi(ixya?M!F`0C#JG8}&je=~QMsgV%^+iXROix9Y(I9kq7@A8PbT%}p z2+06UFUfB10eDK)HpS;tZQYbmXbI&4#&IF8>~K zzhRaAS`H?-=QM1i=Tu6{1-oD!M<5AJP1 diff --git a/tests_zemu/snapshots/s-pb_remove_hotkey/00005.png b/tests_zemu/snapshots/s-pb_remove_hotkey/00005.png deleted file mode 100644 index b6270f13fff423aaac593370eb0a40e0d0bfbeb9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 431 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 diff --git a/tests_zemu/snapshots/s-pb_sign_update_call/00006.png b/tests_zemu/snapshots/s-pb_sign_update_call/00006.png deleted file mode 100644 index d53a8f4c238036e474e4134f7d35656209412e77..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 356 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!2~2j9iA64FfeL+x;TbZ%y~QWAYY3DkITge z|LZrfe|J!Eh}P&haI8{Y>~w%c@D)?FCsw`_U;7-+@DEI6*c#c&Jh?5L+cdL3P^XvW z#*15JTT)_9H$?tgcl524=oi~xFSjXk?&EziweZCT;V-9hlu!1^u8wU(%df~<;jQ1^=#p=HO yXk+ANW>y0u2JdI{mpyAgr#in07))@`{DblFtzY#|MI|19#5`U7T-G@yGywoZ_?z(n diff --git a/tests_zemu/snapshots/s-pb_sign_update_call/00007.png b/tests_zemu/snapshots/s-pb_sign_update_call/00007.png deleted file mode 100644 index 9404c03acc8c3f2bdc6243244745315d41ab7129..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 246 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!2~2j9iA5fslA>qjv*Cu-d;Z_)MUWpdhtTz z|NjYM8&;GAO_D4Wx%|Rbdg7*vg}khSxzVXCx2yb;&a0%Z(zttLOO5GS`B~F0%be-I zA5*^nYJl*?y}vd$@?2>@SIF8>~K zzhRaAS`H?-=QM1i=Tu6{1-oD!M<5AJP1 diff --git a/tests_zemu/snapshots/s-pb_sign_update_call/00009.png b/tests_zemu/snapshots/s-pb_sign_update_call/00009.png deleted file mode 100644 index b6270f13fff423aaac593370eb0a40e0d0bfbeb9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 431 zcmV;g0Z{&lP)mSP4B7SzpTIGWqnzMk4Zu*LP8JMftZKCYdm=xf=)oS9YNz|-B@4zEJa#V%%du{ zlV{=}?L1&pdFCeMVe z3W^Fr7r>c>d!=401U5V&s8=|u4*;Uwm+qa)%R3%P>p&F(4!6nHKC?-fUq`{ekfEBJ zW11@H>!IGsmRSezo{SNSRF^$8^Epzrnq4@MpT~!I+Ea$|6U0;Qo-$PJWr~(3e_+rz zRkg&mu2q~k%7@|%L23+{4lF(EkW;mw`BE7$-Clh=aY^`q>e#Fz%4k7on>uAX`aJSo z72{4oYl{i%7*+Dwov@vN{U1VS6w$3P`C{s@pwT7Hbi(Dk@>S&ihq7hP{K%1|M#*dzOKIl3{S5 zmqlmKOLL*8-h6D6nXnfoqYSShO%7#pqKTTGnkrEt>4NBd&5E5N>wxq`{8Fhhe=AlV zwz4SED~)>WZ%^@U_-t(7WXvR~Pxg7Z;$GHGmjT$MsG`WEF|f3{i{=>ipa1w|+W-Qk-(lwzRdZ@K^}-w)V;9GUq=?!KSwXX#p5_d*=0 zJI4eR%Wb>^0Kj&YF1v;MlVvYEJ>xs7Qk(Od+N8ITchb0DP4bR!03M@XgAQ>GniX_i zEF6R+2kUk36$iphjvc`>0P2EZ&j>NRNlYT;4@Tg zBFA{S{`>hI1i@4+jrv0(Q{_S>MGd{tiq~SacGaFHDUq0Idnb%j&C$MiW>DMB^EQkz zU&6;Ad0H=H-iF56`o>$i$`O|AL3SriXq>XJx3-DIx5j1G5H+Dw`1a`6WDr;h62_@D zsPi}h!mo9M-4+@Jbe1Pvek5^r?Msgt(4^RT$?Fff<}zBF3bq_z==;faFkN9@wLZ;C&{P zAni$N&>7VM=kSCCITHzRX2LZ91pkNyK`;kDx7aU8M7(WP00000NkvXXu0mjfWZci? diff --git a/tests_zemu/snapshots/s-pb_spawn_neuron/00002.png b/tests_zemu/snapshots/s-pb_spawn_neuron/00002.png deleted file mode 100644 index f94d0a53adce808688e8e85dc646572a55755fcf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 320 zcmV-G0l)r#b%@o)iDI+OCl)i; zoM<{LwZ^1P=?fI*o?-xJ4>*S)pQ>N^Z-8E^xaVa0000000000fax4O<(E>5 S9XEUc0000IF8>~K zzhRaAS`H?-=QM1i=Tu6{1-oD!M<5AJP1 diff --git a/tests_zemu/snapshots/s-pb_spawn_neuron/00004.png b/tests_zemu/snapshots/s-pb_spawn_neuron/00004.png deleted file mode 100644 index b6270f13fff423aaac593370eb0a40e0d0bfbeb9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 431 zcmV;g0Z{&lP)mSP4B7SzpTIGWqnzMk4Zu*LP8JMftZKCYdm=xf=)oS9YNz|-B@4zEJa#V%%du{ zlV{=}?L1&pdFCeMVe z3W^Fr7r>c>d!=401U5V&s8=|u4*;Uwm+qa)%R3%P>p&F(4!6nHKC?-fUq`{ekfEBJ zW11@H>!IGsmRSezo{SNSRF^$8^Epzrnq4@MpT~!I+Ea$|6U0;Qo-$PJWr~(3e_+rz zRkg&mu2q~k%7@|%L23+{4lF(EkW;mw`BE7$-Clh=aY^`q>e#Fz%4k7on>uAX`aJSo z72{4oYl{i%7*+Dwov@vN{U14%P)OIqirFj)34YB4r?^keZj}A5)Vp!t0mVt4yWtc!O zkCP)0-PxXY>DqcX_6S@$nRtY$6lEyRMb1vnRMH@Og=FwKFM5XT1NJ7#nev15X>zcr zr7R&gpm8}*xjZRqBpuN2GZ!^_FX2HU*U3jZmZYN8+er62%)1@|>`mr}mU zc(d+K3{FAz_+E~_({$TOr_8E?%sF4a-jLe^LSKPuCF{kwQli$_*&=ysj1=B&h?9?| zKcVbWFk#J);-E&LHzRjIu2gsA7DH~9#V%@9He-AW5>B?st|yz&hV6f=jIrN2ptcpU zwsmotkvl-h_{uJu^2E=?iY<*cF8}}l0000000000fLrqcGLruF5rK&{00000NkvXX Hu0mjfD=WU< diff --git a/tests_zemu/snapshots/s-pb_stake_neuron/00001.png b/tests_zemu/snapshots/s-pb_stake_neuron/00001.png deleted file mode 100644 index ef1b54f3f939a27c0d258f9024feaad92d7b3fcf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 633 zcmV-<0*3vGP)T&J=BD_>Oeci{KK`| zxY@0JJUVkgoPF_0{u@HuqT-skHTaE~-l^%(X5^D@_!z1|xb;URvv_3qh|mlJ*R7Eu zlb|%4xUGJ)EezF(p&13(8L;l#Pe>ha7*R>9i0#f7Vk(tmFZVU>Bz8ehXWX6yBCV&F z(A=vK?bq^&-JA%fpmDdL5^>iEt3B3NZNJz_On`&Ib$B}OOSYkDrx_t>V^t4294gnf@vEzMWVqzi+@pi10 z>72%%arL_Mu0XJDfXurt9}A=)5{qYz3(*BC3W;)yN?RkSSHY*+(c-5J`{E&bh}e zDXlVU-UQzFZlgt5$bd&)7aqWX9dMR>rlhV3_44<-z3@Aoo4Tdc-Vo=H3#wX!>-Mbl z7@q~6ljhk^DLsyk+&fRC5wo9;9k8R_w81}?fsAo;HvDLjxa#mM=OeMA2L4O`Sk&Gh zjXt3M^`|fL-w=yUr}w@omR17mUsSXgW@TkYd5fivkpYVEIIRIo)gWyg=jgZ9%v^Bp z!(?GqUCfYp&e(t%VFB(RUZfs+`+gVGvmLRbi-_faESumKf97pqTMlwn@5v zRkcdn3k5UznP-IZ0M}{A!Cj3Hs%`_Z0FBj!qI#fQXX+Dfh5_6$>8UL$P+&+}R8~6)9Z&>(vJ1S0Z!k~Qi)7&;JQz|Pf%-7C zCD9F_dk#3dUgn_Fd4Sx=ZVp8Tc2(Jp}O0|hStX5vB_e`oYdwjaL8Fx;wy&gDXvvpyWMW!+m}_9{ouEzN7bA$K(E z*Znecy_Y>pPVauOC3ohcgx1MEvD2P<>|Nv<(Q7Sr)nTRi;Z1io2xfoq-)!warL3NV z;SR&s+oi8V(hTM(ezsTstofaVS8fyAp6^c|Dl+X6XW1bELJdVm`@1W7S%JX;1`Rgx XDvJ;877Cqz6vX#*^>bP0l+XkKWo?PG diff --git a/tests_zemu/snapshots/s-pb_stake_neuron/00004.png b/tests_zemu/snapshots/s-pb_stake_neuron/00004.png deleted file mode 100644 index d53a8f4c238036e474e4134f7d35656209412e77..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 356 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!2~2j9iA64FfeL+x;TbZ%y~QWAYY3DkITge z|LZrfe|J!Eh}P&haI8{Y>~w%c@D)?FCsw`_U;7-+@DEI6*c#c&Jh?5L+cdL3P^XvW z#*15JTT)_9H$?tgcl524=oi~xFSjXk?&EziweZCT;V-9hlu!1^u8wU(%df~<;jQ1^=#p=HO yXk+ANW>y0u2JdI{mpyAgr#in07))@`{DblFtzY#|MI|19#5`U7T-G@yGywoZ_?z(n diff --git a/tests_zemu/snapshots/s-pb_stake_neuron/00005.png b/tests_zemu/snapshots/s-pb_stake_neuron/00005.png deleted file mode 100644 index 4af2a1734a6d801347982fe8dc1f58f741aaf9e4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 383 zcmV-_0f7FAP)w#v6aJ;llrkJ*a$P3ay0000mcO?fMDs8FwQ z8rc{nR8`(vxyP7s8vaovRyQ$KbsJ+X<|UQ_%~-@Kt&$#9*0jltSZbQQRT*oQTSaXN zy(Nj1lq|7P3NeppQ?a77#GrUIyghXS_y+By%IF8>~K zzhRaAS`H?-=QM1i=Tu6{1-oD!M<5AJP1 diff --git a/tests_zemu/snapshots/s-pb_stake_neuron/00007.png b/tests_zemu/snapshots/s-pb_stake_neuron/00007.png deleted file mode 100644 index b6270f13fff423aaac593370eb0a40e0d0bfbeb9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 431 zcmV;g0Z{&lP)mSP4B7SzpTIGWqnzMk4Zu*LP8JMftZKCYdm=xf=)oS9YNz|-B@4zEJa#V%%du{ zlV{=}?L1&pdFCeMVe z3W^Fr7r>c>d!=401U5V&s8=|u4*;Uwm+qa)%R3%P>p&F(4!6nHKC?-fUq`{ekfEBJ zW11@H>!IGsmRSezo{SNSRF^$8^Epzrnq4@MpT~!I+Ea$|6U0;Qo-$PJWr~(3e_+rz zRkg&mu2q~k%7@|%L23+{4lF(EkW;mw`BE7$-Clh=aY^`q>e#Fz%4k7on>uAX`aJSo z72{4oYl{i%7*+Dwov@vN{U1`_fx#a#XxhQ4~O{e#j&4c8YW=n zadOW~chOQepWD?&%>VXWy72@0fCDug3USynpQ_K97D?Z^RnrUAtdY` z;@vM-sg!4}0L?d*H_uScO};qtA=Nhe?zQY|!7(qr#t%i4P1te15Cp(X><(f1|sVnuOz%CAFSeP#Wr*V8|B|VJj6OmPCPlWlM-c{#whjQmo)9 zNEtLKVa@8=t`(rUoM`EHJ!qWn!*m6-a`S}K+Gqde>)?=v3geH9@z+U$d7N=QNIM*o zZ*dN&HyF(v4BR@H|3JneNQmQ_Yc)1@$*HZp2@hWw$UU@D10A^CPuwB|T^ZAp@VzlV k=K}x$00000000l<2RW(|_*E9!GI4adO zS@;mL7|h4LmyU{I)3GD<2!Qs4FrFu9Fr|FY^HJe44!j1R7w9WrifWgyFONZWo!}!x zJ|buEa{c-79R$Ivm^$@oiWDAjsuiX+n`0Y&38~?NTBd|wXB-g<1{+%?q zd_lG>KSK!B@+I=ty5$)&S1Avj-5J6{1GdBu>ix>}EM1F!(~N>dOUJ&0)CZ60tx)Z~ ze#Krc1wcqQtCMGbgu8yZjS+W`_45HB*RFhC*65Rj0oyPd?o}&n?Ti=o2(TO778*2a z`IUoA#0tEaO+k2mmy}473Yx@&5=YlT5CjJFQW1|rnJoxZNb(lg`0=o*h`=7pldubS xIF8>~K zzhRaAS`H?-=QM1i=Tu6{1-oD!M<5AJP1 diff --git a/tests_zemu/snapshots/s-pb_start_dissolve/00003.png b/tests_zemu/snapshots/s-pb_start_dissolve/00003.png deleted file mode 100644 index b6270f13fff423aaac593370eb0a40e0d0bfbeb9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 431 zcmV;g0Z{&lP)mSP4B7SzpTIGWqnzMk4Zu*LP8JMftZKCYdm=xf=)oS9YNz|-B@4zEJa#V%%du{ zlV{=}?L1&pdFCeMVe z3W^Fr7r>c>d!=401U5V&s8=|u4*;Uwm+qa)%R3%P>p&F(4!6nHKC?-fUq`{ekfEBJ zW11@H>!IGsmRSezo{SNSRF^$8^Epzrnq4@MpT~!I+Ea$|6U0;Qo-$PJWr~(3e_+rz zRkg&mu2q~k%7@|%L23+{4lF(EkW;mw`BE7$-Clh=aY^`q>e#Fz%4k7on>uAX`aJSo z72{4oYl{i%7*+Dwov@vN{U17zB^?>PN}D&cstq;_N$6qXt%7^jK^yfP`s=$91;vg#nOg3P#ALI$0+ z@So*H0&*0;MTAuZv+@IlY8K?T-$lj@+pJNY0coh^-rQYIepP3{CHWTjfU;;T@j*k? zAvjnS)kBymL6<+(aum5X{*>kq;pT!t4PCVy?=8oD~nf0F9!GI4adO zS@;mL7|h4LmyU{I)3GD<2!Qs4FrFu9Fr|FY^HJe44!j1R7w9WrifWgyFONZWo!}!x zJ|buEa{c-79R$Ivm^$@oiWDAjsuiX+n`0Y&38~?NTBd|wXB-g<1{+%?q zd_lG>KSK!B@+I=ty5$)&S1Avj-5J6{1GdBu>ix>}EM1F!(~N>dOUJ&0)CZ60tx)Z~ ze#Krc1wcqQtCMGbgu8yZjS+W`_45HB*RFhC*65Rj0oyPd?o}&n?Ti=o2(TO778*2a z`IUoA#0tEaO+k2mmy}473Yx@&5=YlT5CjJFQW1|rnJoxZNb(lg`0=o*h`=7pldubS xIF8>~K zzhRaAS`H?-=QM1i=Tu6{1-oD!M<5AJP1 diff --git a/tests_zemu/snapshots/s-pb_stop_dissolve/00003.png b/tests_zemu/snapshots/s-pb_stop_dissolve/00003.png deleted file mode 100644 index b6270f13fff423aaac593370eb0a40e0d0bfbeb9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 431 zcmV;g0Z{&lP)mSP4B7SzpTIGWqnzMk4Zu*LP8JMftZKCYdm=xf=)oS9YNz|-B@4zEJa#V%%du{ zlV{=}?L1&pdFCeMVe z3W^Fr7r>c>d!=401U5V&s8=|u4*;Uwm+qa)%R3%P>p&F(4!6nHKC?-fUq`{ekfEBJ zW11@H>!IGsmRSezo{SNSRF^$8^Epzrnq4@MpT~!I+Ea$|6U0;Qo-$PJWr~(3e_+rz zRkg&mu2q~k%7@|%L23+{4lF(EkW;mw`BE7$-Clh=aY^`q>e#Fz%4k7on>uAX`aJSo z72{4oYl{i%7*+Dwov@vN{U1B0g^rCf1X<&oAhv`OQJGz_geB);h2?P;hQ44P3Yk-1>KBQDd;EQ6VV*> z3b8Sm5~)iGEw7j=OvR`Y4o<+-EognzX?RRy;2;1LNl#)E{~oQsaUKT&piLyc7ewnd zpOu;n>i|@*^9wfgN-Iqj>i`@uO~-i_eQ<+1z;}YOJ^^%hgjK$B2D1SaHsLi7&1^pXaRm+1DtM9XGn3IJkfFQJuL#0U_Eh z$_zUDk$LIR@qvC4l0oV6%=`$ra()s)pZEbL-=2**8intAP9{jC{HCCxK8XC&#~xOL zFx~n@^f>>>Z1indVSPFyAYg}!L zynHEF-T3!7EQ@;TnfW(9C{CH~ZP7CvGpqRV&48(*8Jyk$=|PKQIZ(1CkSy)q@S6mz zkuv_ufaCgSqBA|=aYvR6y`Sj=Ob&pr9Zl~ZqS{?ZZORj|;T;J5 zRE?_9tr350kYPu`Z)=Y_$&DK~7}7$Re{_WO8ZxTAO9sJ(|KgM@i0|(SZ|i_H7cml> zT)ZCu$pYjSMSO&}(8!_GA%J732Aqj?SBYmj82wE*M`jWEnl4}cWzL#O{gNI*{8uBT z29GM}c-6lr2bvoU8+;Kf-Cg-v%fjE_(ft|{0~{dq14{JOdAWDgq?>J3RKPpecRQe| z+2Ex&7pm`$aILD$HOlN1Reg}H27C05Me6ig{%%Dq#t$cJ+2Z$zSpfh5002ovPDHLk FV1k-RBl-XU diff --git a/tests_zemu/snapshots/s-sign_basic_expert/00002.png b/tests_zemu/snapshots/s-sign_basic_expert/00002.png deleted file mode 100644 index f1fced3b6fd7c1bbea5345384fa9202f1a3310b7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 560 zcmV-00?+-4P)%onZ%6Q) zb{@UWRaU}H1Z&Dx$#aMEK0>7p_bVXj(j+u~rz9Y5eae@diahW^0l%wDeY zbfWXWs?}m4pcre{wv~&xetHqPwo(5QiKCgg0K?$(H3hG7l~gd9+)4^1Hp`^Va$_%M zv$+Zl1}@CWGgKbJxinH(D9MCzfLIh^8#rRQxX`M9im_3UtAOe~%`o?OO$$@G0J)n0xi4<^La7Ml0U){O zP)_#27@iisV)mH&Fm$n4*kN*u;M>XY_;W!|)@B24!q5-;I46xk$?O-{I3yR(fL$E* z4PcGq68T%mY#Mp1se8`B4&d__)3lT5d^Qfw0RCfus!s)KFEY2|_csp*3jlU&Fk71q yIB-EJ%tcV!w=+FHuvj#Da0h-LP)h{wJlkx4j)6p-@iWsL zM?rdGXQrdSo^UpW2&+`ItPZaM{*C3#A6Lg!s+26rsB8upI)k0=)Q3)>UT`Id`D48OpO4h@IL5&{_$8O(_(R&WFGfTaq`~MLzb0IgaBz4YPT_Sz(%(&HK#?W6^kqn$7#o x3Ili^Fc=TOU_1bW@c`Trvw6Q+VUFX_d;tBK1J23vH+=vA002ovPDHLkV1h4Rwk7}o diff --git a/tests_zemu/snapshots/s-sign_basic_expert/00004.png b/tests_zemu/snapshots/s-sign_basic_expert/00004.png deleted file mode 100644 index e741e9c8814cb3856293a6c311ad4b711403002b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 402 zcmV;D0d4+?P)2=yr{cNRQ#xdmLOk$N z#dM4=VKnd1W6y2LeIeXRjH@cow?fR!6L2+ILm+b^1MaU{a|`zpL+L1&B(2Vuw+Mb- zYH1E7Zu%Dj3BSJMRzI8x2z@zt5))THoFC!DkZXh&!YMM%tjOd4^3yTVO5QQ6O7Z=J z!w_Qg#Ou>}^gGPgdzC-ok)?z)8nW|sev8ld>#9N30Uq`7$i65OdXX; z`wE-B1UTJz0+jItDB}tEEy#LHQj>j2$9`ar<2X;lY~OD-u#uSU`^^T%GNKGM+xMFd w4B&l$GM)fsJORph0)7#*eZSej9LJ$~0Tw9<&K>u<(*OVf07*qoM6N<$f@@5)Q~&?~ diff --git a/tests_zemu/snapshots/s-sign_basic_expert/00005.png b/tests_zemu/snapshots/s-sign_basic_expert/00005.png deleted file mode 100644 index 38f39e68c5add2ccd427f6b7ad456f7888d02961..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 637 zcmV-@0)qXCP)zCdLSW=N6SbC8dA^e0gNPTLs&|0rN%Os+fT8v%x||Y{k5=Jx7xMd zHa4za5-E`w<*NjZXI&Mq4$+W$alLNHkPBHN`%bUbbS}HOP;ZI3BWi}cqHu99yhh2j zb2Y;cdbw8*ya^8_HJ<|8wY#VZw6ia_m#u(polC%b@<}&v&o6H1rCjBx zxSk~_6ocbFyjU?l8QtD5rQBZ+>gqh;Vh`_^*Bh{+Kedf-ECW2_*3#@-O^CZ4si#XH4Rp}hD-acRz| z??xM9G&s2x<`F~8D;Bba=_mEyu1-0{{0N82ohT=&=M^G7FfcHX#WFwsaM50=ACZd%&U~TqazoFnlr|^C*bAc( zw_9_ur+3W@wfoxGK+{J&+BX*o4TB?!gGUjD0r&%4)XVPKLn9D(XLt|DYdQe#xMMR( z`wx*?6v`2aQKsDokzfxGb~00000NkvXXu0mjf7nLAv diff --git a/tests_zemu/snapshots/s-sign_basic_expert/00006.png b/tests_zemu/snapshots/s-sign_basic_expert/00006.png deleted file mode 100644 index ff65830059ea8d6dd98e45503d2a06d33fc51ba5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 627 zcmV-(0*w8MP)+q2wb zTnl?ns%M{wKHG=AckZAwW}mhlu%O{pG6E6$$fy(U`JfRFTLQF}Zp zeL#Nq(I@$DD2q+I_kJjb>>i-s)G{ffi`a|woXgfKx5bcXC|`5nmB8I-Mw*kKrsuWr zgvidnG<~8p$B=Ud@btYnBa1a0&IBwe=DPbv8E6I&tC=S!p~rU#UM+CBfja;+e`LHE z>Y^Y~-F0&$-qsD(k<_Lv{fUC8wm4oG)nO=7JmAW4U6C?N>)A&nMi)yyK1n5_?D|^U zZ-(j}pcM~9hqE+_C4{nQ6^E!;0kl)iA;*k`f;2rzeC*`N?T$#SIh{Sd^B?$Ms5vv>|Uz?DL zYnF$%FGXC7d(S=v+=yxCp3#onQgIPT9La@>YPdq(G1{Zas6hH7f_)vR3z>EL@ N002ovPDHLkV1n;YCsqIe diff --git a/tests_zemu/snapshots/s-sign_basic_expert/00007.png b/tests_zemu/snapshots/s-sign_basic_expert/00007.png deleted file mode 100644 index e3e0efd1c7b77aaafb75d2f442384378f0ed2636..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 653 zcmV;80&@L{P)EftN$j{%W zyvR(z_V~VXP5r%3X8>q=489HnyiaElPUy8N<)KaL0qF5-NeFgTb3~pa{mZE~C0UCC#Bb%8KbJ_teIQY)h za7)4pxTIkkIoc-EZ_bn&z?xZrETPn&@J?Fgy+9uK1VHXGi_6sG^AQiw&xxG7)$UM< zhN*2gvq!@51mG|!Jz%F}eCU!7%p~E800yU^yctO~jjP6#*ny8Q%>^(x z0Bj>i*2~Ox;Y9Q}h8k;T^%#l;g4K;171gt&I;q#pdB@O&g@uJ~FxP+tSJDJDK)B^d z0~EvM$5Jg+M$9`e^;_Bi-CG5&gCp)VcvUj?EduylJG!CG;Mx-ub5ON?l3#HGy%T=` z*c`^YyA&dGg1VjaB+z_k#`MPa34{D6gQfo=;0%B?$#{2{V54et0<)+D#+{Lqxx9v_ zxM(+2MT4gZI;+k5DgkLL%);xh#&`KivX}R%+&&r83vmWOrc1T4T&3B>A00|Hprk-m nw^9jhn^)y!kVY*mEL89deZT(5)P7c600000NkvXXu0mjfd37`y diff --git a/tests_zemu/snapshots/s-sign_basic_expert/00008.png b/tests_zemu/snapshots/s-sign_basic_expert/00008.png deleted file mode 100644 index bf388d43b1e13e349078fa61efef730029a1058d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 643 zcmV-}0(||6P)rttP_8X&y>VH8HqE;tE8MQakhtw$L~;i$xOiV zI!izx!0)&B+fUmDr0IKbLQH@AX}g41^zurO(q%gUJ$}@L0QfIql9lrK!_5fcoag>X zG#>iqnDMkpE|0n-^~=NcWw6*JT6L48h^$3?K&dg}bP&iVW{cMbsP8yeXd!^T6`&+3 z3rXj z%BniRqlScjr&)DeLowK-+Cr?oDDSJ$lThZs0%-i};?i#1xN+mZ!O@B!@V6WqMXiWN zXVSpP@M{5-p3B3uunD-V4`q#^#MH?cYG8;m!MdDF4yMjM+R@lD@&5|tk}5I~%?wWg zWoi-Ar?Y^23a-wbod%84Y!YCxy!T*g33W}JG!VmnkZHDTJ37P@E6O^cJu0(AkGgEw z25`%GEb0Xkqvw>+73~=bm-tC?egmVQmf!~P`dhsB#Q!m1-zO|BO@a*2jnK6C70qwP d+_-T;`~Z2DD_9b{A;tgz002ovPDHLkV1ieKJJSFF diff --git a/tests_zemu/snapshots/s-sign_basic_expert/00009.png b/tests_zemu/snapshots/s-sign_basic_expert/00009.png deleted file mode 100644 index 1e9bf193c78fe2e0818df6aa47578c41f0765b3c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 330 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!2~2j9iA64Ffa;wx;TbZ%y~QWu8@lXkK5r7 z|M=e=iu;i(eI+mGZsEBd3LZ-Ft4v+K^)y#Jc=D~A<=f1j!`oydk68UQ&R=&`e_5lH zhN!}-qN??)W^yh(oVVF*Z{dAMWrdHkc5h3!Vmc@N zb`$UC-tBs)Jugi-nyxLhZDHjM&#e6d+tw5}y#8_HXMCLFsT~`*zqyN4=(m>UHQ$gs zn)R!4b+5aX^2<+p7P-;OG$NiU1TRnB8N5D2DD1JHn`ywSvm10o&5}6lGRvMfUW$un zVptkrAJFd?8JVE=Jo!}0ay7;{GxjUnIVxu|d~IalZw8?a&!6N^dAMlvvQPnFctC*2 ZBj$|9&-~9BUwZ};@O1TaS?83{1OPhbi|haZ diff --git a/tests_zemu/snapshots/s-sign_basic_expert/00010.png b/tests_zemu/snapshots/s-sign_basic_expert/00010.png deleted file mode 100644 index 26b39bbb6f2b257354f6c717a54bb20f990532ae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 383 zcmV-_0f7FAP)?X^x$8OY;RTw~NRQ|xI;naLh zYB7qX5eFOeEn7{*r3{#*?OM)Vqk_(&pKjSA=PLoNBK9+U3OZ%B5km)vmR>6}~ZiDVlRp@ak`nZ-J;A|y0 zjhcd!ts>9X;s4-H*2~APc^3da%<{mTiC?9(tCJ;hFOy>X2%6hdr$+WZC0Tkh$1~u? zC)(y+z6x6jhrN-!nByD3@{a4_#0j7bKmG;@n3BZ5NSeRf>MZO;iFeTe0000000000 d004lG@dJLO9Dm0P0MP&d002ovPDHLkV1kj&r^NsO diff --git a/tests_zemu/snapshots/s-sign_basic_expert/00011.png b/tests_zemu/snapshots/s-sign_basic_expert/00011.png deleted file mode 100644 index 9404c03acc8c3f2bdc6243244745315d41ab7129..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 246 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!2~2j9iA5fslA>qjv*Cu-d;Z_)MUWpdhtTz z|NjYM8&;GAO_D4Wx%|Rbdg7*vg}khSxzVXCx2yb;&a0%Z(zttLOO5GS`B~F0%be-I zA5*^nYJl*?y}vd$@?2>@SIF8>~K zzhRaAS`H?-=QM1i=Tu6{1-oD!M<5AJP1 diff --git a/tests_zemu/snapshots/s-sign_basic_expert/00013.png b/tests_zemu/snapshots/s-sign_basic_expert/00013.png deleted file mode 100644 index b6270f13fff423aaac593370eb0a40e0d0bfbeb9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 431 zcmV;g0Z{&lP)mSP4B7SzpTIGWqnzMk4Zu*LP8JMftZKCYdm=xf=)oS9YNz|-B@4zEJa#V%%du{ zlV{=}?L1&pdFCeMVe z3W^Fr7r>c>d!=401U5V&s8=|u4*;Uwm+qa)%R3%P>p&F(4!6nHKC?-fUq`{ekfEBJ zW11@H>!IGsmRSezo{SNSRF^$8^Epzrnq4@MpT~!I+Ea$|6U0;Qo-$PJWr~(3e_+rz zRkg&mu2q~k%7@|%L23+{4lF(EkW;mw`BE7$-Clh=aY^`q>e#Fz%4k7on>uAX`aJSo z72{4oYl{i%7*+Dwov@vN{U1B0g^rCf1X<&oAhv`OQJGz_geB);h2?P;hQ44P3Yk-1>KBQDd;EQ6VV*> z3b8Sm5~)iGEw7j=OvR`Y4o<+-EognzX?RRy;2;1LNl#)E{~oQsaUKT&piLyc7ewnd zpOu;n>i|@*^9wfgN-Iqj>i`@uO~-i_eQ<+1z;}YOJ^^%hgjK$zCdLSW=N6SbC8dA^e0gNPTLs&|0rN%Os+fT8v%x||Y{k5=Jx7xMd zHa4za5-E`w<*NjZXI&Mq4$+W$alLNHkPBHN`%bUbbS}HOP;ZI3BWi}cqHu99yhh2j zb2Y;cdbw8*ya^8_HJ<|8wY#VZw6ia_m#u(polC%b@<}&v&o6H1rCjBx zxSk~_6ocbFyjU?l8QtD5rQBZ+>gqh;Vh`_^*Bh{+Kedf-ECW2_*3#@-O^CZ4si#XH4Rp}hD-acRz| z??xM9G&s2x<`F~8D;Bba=_mEyu1-0{{0N82ohT=&=M^G7FfcHX#WFwsaM50=ACZd%&U~TqazoFnlr|^C*bAc( zw_9_ur+3W@wfoxGK+{J&+BX*o4TB?!gGUjD0r&%4)XVPKLn9D(XLt|DYdQe#xMMR( z`wx*?6v`2aQKsDokzfxGb~00000NkvXXu0mjf7nLAv diff --git a/tests_zemu/snapshots/s-sign_basic_normal/00002.png b/tests_zemu/snapshots/s-sign_basic_normal/00002.png deleted file mode 100644 index ff65830059ea8d6dd98e45503d2a06d33fc51ba5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 627 zcmV-(0*w8MP)+q2wb zTnl?ns%M{wKHG=AckZAwW}mhlu%O{pG6E6$$fy(U`JfRFTLQF}Zp zeL#Nq(I@$DD2q+I_kJjb>>i-s)G{ffi`a|woXgfKx5bcXC|`5nmB8I-Mw*kKrsuWr zgvidnG<~8p$B=Ud@btYnBa1a0&IBwe=DPbv8E6I&tC=S!p~rU#UM+CBfja;+e`LHE z>Y^Y~-F0&$-qsD(k<_Lv{fUC8wm4oG)nO=7JmAW4U6C?N>)A&nMi)yyK1n5_?D|^U zZ-(j}pcM~9hqE+_C4{nQ6^E!;0kl)iA;*k`f;2rzeC*`N?T$#SIh{Sd^B?$Ms5vv>|Uz?DL zYnF$%FGXC7d(S=v+=yxCp3#onQgIPT9La@>YPdq(G1{Zas6hH7f_)vR3z>EL@ N002ovPDHLkV1n;YCsqIe diff --git a/tests_zemu/snapshots/s-sign_basic_normal/00003.png b/tests_zemu/snapshots/s-sign_basic_normal/00003.png deleted file mode 100644 index e3e0efd1c7b77aaafb75d2f442384378f0ed2636..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 653 zcmV;80&@L{P)EftN$j{%W zyvR(z_V~VXP5r%3X8>q=489HnyiaElPUy8N<)KaL0qF5-NeFgTb3~pa{mZE~C0UCC#Bb%8KbJ_teIQY)h za7)4pxTIkkIoc-EZ_bn&z?xZrETPn&@J?Fgy+9uK1VHXGi_6sG^AQiw&xxG7)$UM< zhN*2gvq!@51mG|!Jz%F}eCU!7%p~E800yU^yctO~jjP6#*ny8Q%>^(x z0Bj>i*2~Ox;Y9Q}h8k;T^%#l;g4K;171gt&I;q#pdB@O&g@uJ~FxP+tSJDJDK)B^d z0~EvM$5Jg+M$9`e^;_Bi-CG5&gCp)VcvUj?EduylJG!CG;Mx-ub5ON?l3#HGy%T=` z*c`^YyA&dGg1VjaB+z_k#`MPa34{D6gQfo=;0%B?$#{2{V54et0<)+D#+{Lqxx9v_ zxM(+2MT4gZI;+k5DgkLL%);xh#&`KivX}R%+&&r83vmWOrc1T4T&3B>A00|Hprk-m nw^9jhn^)y!kVY*mEL89deZT(5)P7c600000NkvXXu0mjfd37`y diff --git a/tests_zemu/snapshots/s-sign_basic_normal/00004.png b/tests_zemu/snapshots/s-sign_basic_normal/00004.png deleted file mode 100644 index bf388d43b1e13e349078fa61efef730029a1058d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 643 zcmV-}0(||6P)rttP_8X&y>VH8HqE;tE8MQakhtw$L~;i$xOiV zI!izx!0)&B+fUmDr0IKbLQH@AX}g41^zurO(q%gUJ$}@L0QfIql9lrK!_5fcoag>X zG#>iqnDMkpE|0n-^~=NcWw6*JT6L48h^$3?K&dg}bP&iVW{cMbsP8yeXd!^T6`&+3 z3rXj z%BniRqlScjr&)DeLowK-+Cr?oDDSJ$lThZs0%-i};?i#1xN+mZ!O@B!@V6WqMXiWN zXVSpP@M{5-p3B3uunD-V4`q#^#MH?cYG8;m!MdDF4yMjM+R@lD@&5|tk}5I~%?wWg zWoi-Ar?Y^23a-wbod%84Y!YCxy!T*g33W}JG!VmnkZHDTJ37P@E6O^cJu0(AkGgEw z25`%GEb0Xkqvw>+73~=bm-tC?egmVQmf!~P`dhsB#Q!m1-zO|BO@a*2jnK6C70qwP d+_-T;`~Z2DD_9b{A;tgz002ovPDHLkV1ieKJJSFF diff --git a/tests_zemu/snapshots/s-sign_basic_normal/00005.png b/tests_zemu/snapshots/s-sign_basic_normal/00005.png deleted file mode 100644 index 1e9bf193c78fe2e0818df6aa47578c41f0765b3c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 330 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!2~2j9iA64Ffa;wx;TbZ%y~QWu8@lXkK5r7 z|M=e=iu;i(eI+mGZsEBd3LZ-Ft4v+K^)y#Jc=D~A<=f1j!`oydk68UQ&R=&`e_5lH zhN!}-qN??)W^yh(oVVF*Z{dAMWrdHkc5h3!Vmc@N zb`$UC-tBs)Jugi-nyxLhZDHjM&#e6d+tw5}y#8_HXMCLFsT~`*zqyN4=(m>UHQ$gs zn)R!4b+5aX^2<+p7P-;OG$NiU1TRnB8N5D2DD1JHn`ywSvm10o&5}6lGRvMfUW$un zVptkrAJFd?8JVE=Jo!}0ay7;{GxjUnIVxu|d~IalZw8?a&!6N^dAMlvvQPnFctC*2 ZBj$|9&-~9BUwZ};@O1TaS?83{1OPhbi|haZ diff --git a/tests_zemu/snapshots/s-sign_basic_normal/00006.png b/tests_zemu/snapshots/s-sign_basic_normal/00006.png deleted file mode 100644 index 26b39bbb6f2b257354f6c717a54bb20f990532ae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 383 zcmV-_0f7FAP)?X^x$8OY;RTw~NRQ|xI;naLh zYB7qX5eFOeEn7{*r3{#*?OM)Vqk_(&pKjSA=PLoNBK9+U3OZ%B5km)vmR>6}~ZiDVlRp@ak`nZ-J;A|y0 zjhcd!ts>9X;s4-H*2~APc^3da%<{mTiC?9(tCJ;hFOy>X2%6hdr$+WZC0Tkh$1~u? zC)(y+z6x6jhrN-!nByD3@{a4_#0j7bKmG;@n3BZ5NSeRf>MZO;iFeTe0000000000 d004lG@dJLO9Dm0P0MP&d002ovPDHLkV1kj&r^NsO diff --git a/tests_zemu/snapshots/s-sign_basic_normal/00007.png b/tests_zemu/snapshots/s-sign_basic_normal/00007.png deleted file mode 100644 index 9404c03acc8c3f2bdc6243244745315d41ab7129..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 246 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!2~2j9iA5fslA>qjv*Cu-d;Z_)MUWpdhtTz z|NjYM8&;GAO_D4Wx%|Rbdg7*vg}khSxzVXCx2yb;&a0%Z(zttLOO5GS`B~F0%be-I zA5*^nYJl*?y}vd$@?2>@SIF8>~K zzhRaAS`H?-=QM1i=Tu6{1-oD!M<5AJP1 diff --git a/tests_zemu/snapshots/s-sign_basic_normal/00009.png b/tests_zemu/snapshots/s-sign_basic_normal/00009.png deleted file mode 100644 index b6270f13fff423aaac593370eb0a40e0d0bfbeb9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 431 zcmV;g0Z{&lP)mSP4B7SzpTIGWqnzMk4Zu*LP8JMftZKCYdm=xf=)oS9YNz|-B@4zEJa#V%%du{ zlV{=}?L1&pdFCeMVe z3W^Fr7r>c>d!=401U5V&s8=|u4*;Uwm+qa)%R3%P>p&F(4!6nHKC?-fUq`{ekfEBJ zW11@H>!IGsmRSezo{SNSRF^$8^Epzrnq4@MpT~!I+Ea$|6U0;Qo-$PJWr~(3e_+rz zRkg&mu2q~k%7@|%L23+{4lF(EkW;mw`BE7$-Clh=aY^`q>e#Fz%4k7on>uAX`aJSo z72{4oYl{i%7*+Dwov@vN{U13!yNA09~V3TIIIy}0tHhK-?6HEV*Z+Xjd5qS*`? yza3wnx^eL3gTs8BZ{>~$d@x~)+sw#-2H5s{HOF$SW>=jIlJIo(b6Mw<&;$U8XIHHN delta 206 zcmeyw@|k6V3ZvCV)jr1h=Nd*Y`^1#9pJzzUUh>1^&H>Xm|7Ne)@txEC!P~&OJn!|L z3rzRympJmkYeMU~C67{$BxwEKRsPESMs0lc;qDoe)#jJ|PtIZd&f%cN;kx&X-kie9 zOXs%U<1SSFo^w-9WO+F2w5t|>*Zh_%Xk$NrVK0-wP5HB@-5+*NyrIpYZP?_vchYSZ zhui#7;m7#=*yYPSGQL~1H7z&%FpHM~4H*1j_4J74ILIJW3X<`3^>bP0l+XkK4!c*s diff --git a/tests_zemu/snapshots/sp-candid_auto_stake_maturity/00003.png b/tests_zemu/snapshots/sp-candid_auto_stake_maturity/00003.png index 6743db0db625e6903f099d1cae3c586f439cf11e..7847be1b8a7605a8be56dcd0b9b3dee422d234c9 100644 GIT binary patch delta 380 zcmV-?0fYXS1D6AkB!6B>L_t(|obB0LZUZ37=JdSRAkrnUal+P4;|AF zr<8^h*)G9umGk!HIsk9!n~1X5cEsJ8)nk{xn#UGY@8Hed)-V%}y4a`aEzaMULmj$@ z`h?8adU&2ag!SuUq(#ts6*cPu006*0Vkg%w%DY`@CUxr5l0`OWLv1;@y>vn|>kvAB z$JRIYL-i)O&UKyjGM$Gnk)v0DW=B&b;|>q~9ftGz(urUAeUkK{vu}r!TTt_J$5Do- zLirGO;2}H+?_G1}Qr#dEeK(Cz6Mbil!A|T#I}L)&7%WA20RR9100000000000001h aWqtvXKNJe0000F1DfMMF{O}PJ&beBFbWjqoHXF)*ve@{+g zvxsdXrvv~10DLwP5s}rcNNJ~*e23LkJ3Q?9i_zI9xOe=lt-eGm=d3QSKc&lP*c*Gp|#sN=WF!UNZ6;!4fgT;XMfm?T9IGZdxfrmCpuRfg4;_cG_ww= z^LK21V?R`Hf_B^7SufMM`4ZWB1z3JGRWfe#(4S#AuMeI0RopAd7&iO1IlTonUw3R} zcq-HvVH+O8gYcd;cMjDJGSLsy2sP0U#u%)`F0|4h$c({Mgckq+000000000000000 b0GQ?%^G6y4|Ll@y00000NkvXXu0mjfL8q@_ diff --git a/tests_zemu/snapshots/sp-candid_disburse/00003.png b/tests_zemu/snapshots/sp-candid_disburse/00003.png index dca8aae3b48942dee1268badeb74e2156506f03b..27ac175233e6e6187d65fc873febbd1b6e37cbd2 100644 GIT binary patch delta 880 zcmV-$1CRWO2ZslcB!5mxL_t(|ob8)ik{clmMM)|<@&1?8d&!3@6wzBkO^;{p`LeN) z#GAgh#{d8T0002sIKNWX*LAILU$56%KHrM9v`@Prxuqhmb&W=?C9?{7n~FQe_#HQ0 z1Mnp7?q8QRhgv>sEk2ynW=JDZ?twprIvjCo3~BldmN%)pmVX!%ll!-G3mWqfVqxQK ztE_+sd`1M57IzZ9E%3oMyakQLh<9_>09@ClHQ4P4(*EgcRy3U3f#PEzRwSd+a<=sk zfVl1Sx_T{?9d5GOw8Lt=jv)- z?kr;~J9ESS{(l4yl{@_OTtmMHJJY%ANB{r;@PkOJq5O;@h5U|44mWZ)#A~5@WwveXphS>xJ!pY6FGZnisPUj=JVvF6JX_h*YR5xk zL$de-pe;;s)eqJYL~s^u#{WyWwww(Qwv%8(w7Ra1O@IG`7}0)b^X3cpOAqd<*1UM2 zTHPK0lcE?mH&bI*{Rkd!NO1*_{p54isK*;Z2Y@G$I-U5A&r6K^rE6xe@4@yKX^42> z5w}({pSzQM5Nao*_m3fTHG2Or7=tIlF7zZ$Cu0n5g?DdG4PCuNlo?w`H12a*DRjQh zs-9Z;T7TW}AB@;ZMDQaYX>TL4XiW;WLm1kkRx6%)b_;3Hg2)6}dy2m;M`@W^qUtHW zJv5zbXp=~r1(6lNeTq@ExD(r<7}w2T%XSTMZUtOS-E29xx$qg6LixVTlWd2#z19ys za&+TJ+yps7vIFDVm!;{S^24mhRZord0NCGf)qgw$ub~>;*i|KYGAV)*F8}}l007V^ z{!>0Bg_4gVS><)6IHvGJMda=Sye9m+fd$s_e8L(jAf%I`zbFE#y!K`adRu6mW?)>zN|tyIgnN5 z3z_!|ZLP(XNR8BfEt+u;k&?)z)6MNGTnzvK00000aQF*yCm=Tlenffz0000%`sI_EPA#X!*#~8nH z(=`B3;_m)+S#!wcv)1CnIcWHr^b+`&tQ3zx_@hlF)_J+J2%jnhY$-3 zXIo|kAn+LhCN1tHd|TjyZFmEX#fW!v*8p7Cr8U^?2-5!PYF0Fy+kx;g5G#^VDLLEf z2SD6*YF)h+cKq+K*|f5fHh&ST3(7iI-Hg-@VNVp!fK$>x3L-0!xbPY8gl#Iuy5XiHYJ*{>; z6gDJ^KLFao6j%LV9YF+V(PsR=gmcT;@L)Ru8=}>9ZGUX)AH<0EJDWFOxLxjmEE-Ho2 z*HP6|D}P_B8~(wFl^}v2`AB<<$f7wZ)DB^2i&`x_^XL{*paqc$vi1~zn~qX4vqaTX ze0yj*=g=mRHVcpyzr+n(!( z8acXfByNHnA<=Y97F6W87x^`wK0P9-0}+zo{D9Q;8C} zuWIhOKT)-7xdX4|7FFfKzYXOLcuxeo%2+mfvY+yDFzy-djvHG6xoouA^ko&w$$_jg zU&y>)Xlo5uA~iz$wP?mYASKA9)6MNGTn(D0X_}^Kn#SQT)Gr`6<{5V^00000NkvXX Hu0mjf1ERNm diff --git a/tests_zemu/snapshots/sp-candid_disburse/00004.png b/tests_zemu/snapshots/sp-candid_disburse/00004.png index 07c96a8923464e6426cb87f3ee5e238de25c4d05..54dcc00c0faee8357bba1dfbfd56813c5cf6da43 100644 GIT binary patch delta 337 zcmZ3>vW8`X3ghRAsz>T07oNYxq+gK2{$t(DPqVz%Zcg(#$!|J?%iKNE^H5!sv|6I- znn`QdzY^+u9;&%t;NP>t1?s{fd~64o6gh>SGyGzGqvz>)n^Z=I1J8}Zc})wo%qAK= zEETFP_1kXUS(q{7{-ZBm=B3>~diR%$zSz2jf411FNo|)O-4?DCP5CJCsy?Rm$&@(- z5t}P^%&b~p^;VNndQOqlsq)YSt}VUiHviPxbh7GDaP8TbTiRT8cqSDH8f$;GUiEIx zg-84oOGSe$J<~M5UcBG`y*=-c=C(MCqqXXXmrq{$^U8n5`@WBMy^<9O)Lq^D%F<$0 zeEgKJ>Cby!M2l`Ya#7eMIcrU0wWhkQtHbq^75@!+!XN)_PvpJF8NaaHsK6+@K;#ZL c0~S!wQ?I7*Mo-9naz04b)78&qol`;+0A{O|`Tzg` delta 323 zcmV-J0lfaK1g!*+Bmwl1CB%P6zr)%BFK}cB_^z4qno6y+X6y{z%A4IcgJ2~I`)O^M zgq5&Lw!W%MIG$If{KBc!JP!0^g37@lm{d-v$~lI92b;0{nWroO0Qg+ys-Y%M#U@fF zyiTI8&gph1F%Av$Tby3$rfw0x@%OF*y_WW2(?V6!a9VtOBCmoh9z%bftB{wcqRj)lIV1rXmL;0=>Oo6u1c{X1~Hd#-2s;@bn*06|$K@u)vW~F{d)twbu{2{Wg zLMkW8ETumB`|x;7f?3@vO ztAds|dV*$5jWuvD<)j-2=sFqiKZfCIy#Fw)!8_qA^iBp&W(|&ldjXRH0u&dH@ehb7 V>@K<*0c8LH002ovPDHLkV1kv<{9aQ8ADeO=d-(y}b3vrI;k!%!jRx0(Dw{h?77Z;L^*l8H*mbjIdfy#UH$ zWb&)J+(ub^ECwCOr&7thWL2M%>JxdC8b=LvpUZBB)fJ%57k~Lyb^}!=RpQMl1zlLdgWNip$rT`5bMtwlsm?h{A3wsd1<9to z>yT#Go_P=)KSvIJ-+O$Lv)3VE)@FSjM)-Hf7vQW&000QCx788uZfUy}VMOi3g%)xF zo`eO!PHJbn_gf+g?>}Tt5w6MuAs1kNhc%v?r_}q?CQ1w12=C_6KSQ_3RNqab)KuRY zYj7pH(3Q9kUy1Sp0000000000000000001HzKgWv$2K{GBme*a07*qoM6N<$f_M*~ A761SM delta 355 zcmV-p0i6E*0{#M!B!5LoL_t(|obB0B4uc>JfMK@mCf@%@-enIYgcJ~*wovzfPi|A7 z1*>5p00000=3c6;@B1D?*tSizm%)+5VTd8ck5PU?`K3}6Z;eKy6p08)wa02-tpTLT zi1MGxbSp*i(P;EQTuLeO6jiw-#W(p?q8-uHI=9^jtvf)hmw)_YUJXQ=M2fpz&o zv7B$2kHI1RK(PdcA{WQX@XTsg$*gPL5;QS`7nxNsl{+9W&DHmfsxoFTb^Hp&5|kI^ zQBZd@IBVf}~9E!<`KfXfLO-(mG<@sL`7+IT5Jo#8D$`e$e+ne3aXq?+s- zV-9Ab3eCiGcqY;d0000000000000000001}`2r}g=U%kqAHM(q002ovPDHLkV1m=F BqxS#+ diff --git a/tests_zemu/snapshots/sp-candid_follow/00003.png b/tests_zemu/snapshots/sp-candid_follow/00003.png index d1a07a70b63da3e394a1c230e1209d645f3c804f..2d26ae5e9e76807b628145e428c4a2be3d937aeb 100644 GIT binary patch delta 432 zcmV;h0Z;zS1Ih!CB!7`fL_t(|obA|Ka>F1DKvB}^PT2pF*h@c{@em=zBL$3e&sRbK zW64%*oC5#=0G500UVtKmAX>cly~DePKoLU7Gx0pXyBE;m%ExteiwwnfaR;P*Zg^Y# z>|Q{tG^}de?NQO>HI6tV0eLM_tCMIvqJo`~fCoDx0eSUM>wk%8yl2f3&PaeO{J};> zskugd$urez4+!fqcfeDT002Olc!o3HHjSsf>Vx1NUSjh#r2cDKp|TklLdaid+8f1B z_EL-)c3H5Vk=;=5{fuChrWKo@X`ei`>R0!k`@Au>RL{shw3wmsrl}{OJ=Ue3F|uyx zf@-{b+0X^OQ=@G+1nURB}k1+ zZ_nYvHLnooSL?DvU&h~r+p{8u*k?5`?T6MMF(vPSQn|2;d$ni!YgZ1$XE9sLaHD5q zH+6`ul+?<(pT4trgkq41{xV9aiT+~bU?-~3PL&{&gDI&9F8}}l000000000000000 aFwGx)#9c||nP?*b0000Y3 delta 434 zcmV;j0ZsnO1Iz=EB!81hL_t(|obA|Ka>F1DKvCN1PT2pF*h@c{VW0lIn=>wk%8d}hrN&Paf({J};> zsY#>$$vxF-F9_=~JK(KI005v)+`}19o5tOqeIxjUCs@6P+*Q+Rjl;MQf_|LoZxkOH zt1*V}vSvLqr=i~a%i~p>Q=EY2eRN)nZ{6R->&Dp9{5tlf#SHzMrk#NPSl4>S;JWeO zRL|B)m(Xj-Uw_+;pD1Rfc3`eGo&(}3uC9YArp=yCC8o9}J*T_*S=XNVlK+6Ft`bxX z&1lcL!gXIE*1y(em(I;U3HN733^Bgg#GD^me?>v=fLgh*i+i(Y{%L;>#A`8C&v2t> zXSd=In~~H;4LJQ|@d(u*6a8fhp(gr^k%OJ6LOV5rOe+p`Ny*?v82|tP07*qoM6N<$g7U=8Z2$lO diff --git a/tests_zemu/snapshots/sp-candid_follow/00004.png b/tests_zemu/snapshots/sp-candid_follow/00004.png index c0849e10473756053a7981a120891eb6dd496661..f5a6e5aa603b41c16be82565325e70860dd46206 100644 GIT binary patch delta 489 zcmV#<}ShpIP;D~?)FlT;phUixoE2;~1g}ShAay3l)ec()RUHlfbfqq*i zwaC{vnn^bLHP4I2SY?{nkd&&GVR>o9@RinNX5Tv5(g?$vA(b*Z&FW zb~Ww3or7!-hajZXte9%g`n549EG@7 zP2ReNyH@D-=2i$MC|iw8a74laxHI1cLyRk{6}5%7f-ICx&W6dp4}uA<%in@-VBeO- z>@)KHnfT63m+%c}>?DI}_bR)agZk6>N6f|j&eh6XfO7JzIdL#;P2}F<7Rp<-pOpS) z(%ZyTKQB2<|9@8#FNX9UzTNr)WQ_y>@V%C@p@BHv7^H5_rgwsdy%P7gTaXY9N?uBx z(%iH`&~~NHTsma#B1Q5KvGVTU{V$Z93mT7pZ=*QO^SGOv?I$jo(2`5JkJmHFxOk(t z{|PzlYUG7sv)t}N_O$xBU-8TZs3JRGuGx#S`c(Z4E@t)>G8Z7&C|>1NW7EgbiypDw zG4$-lZHG5;d>lCh5B7Z4L3qhA-Jly}qJJAF)I|SgtihAmg`RW}WY*wPgckq+00000 j00000000000JzK_slelwfS8$b00000NkvXXu0mjfntA$b diff --git a/tests_zemu/snapshots/sp-candid_follow/00005.png b/tests_zemu/snapshots/sp-candid_follow/00005.png index ad1a23218e84f964b35f4d4d5db3fe41eb1a8bb8..498d023468f86df23bd77e89b41f41ce8af9933c 100644 GIT binary patch delta 473 zcmV;~0Ve+S1M>rrB!9X|L_t(|obA|ca)clZfMMI|O}zh+xJ!RH%VbE1S%SD9@AIot za3M%Qw+#RQ09fuP)3}r(FZX?SsvZB8f8VH-Qu|Ox(e$czRSr|Onlg&t{4Mr}{H@lI z0o4zObd<{h>b6OL`CBx44^*UbZ>{vgq@QBHn&z+C1tzS3Qh!SAuKz&khTB<)d)4Hn zS$NP(b1VneG1i8`F`k;1g3R7H{qrj~GpY-91z9MYL}JtgS5J~N#-#ZvXaO0TUdC%S zPe&%E`JHdV3aE5%o=U!T$E%mkdN=Rp|3o}Mdj5h9lV(o9_T*V};9y#t$lPKUHkam) zZdL~CQ|4!TLnqwuOqd9$> z2Z`o*=hyVx`ZWhit}yvUEXer=Is8Vd+rEWG--05qyO{{SY4le!zccI0f&7qZ8!WlV zJt;`5x!y_ova;T#&9-`FjFo%{e+4+@dRvbC#EU=shf;PAxMK3BAMD~ce6^G4NqG6d zv_Ln=M1L70)I@(V=HO0bp*x)fnK`%=;ROHy000000000000000050>(W$v(w#H7j1V3rtu6rGFIZZu~&mhTB<)Th;WX zTX?Wbvo8nA7^PuyjHjlhAh$O`|KiHkjM_q5K^N*KnHW{UwUZQ#anSq}w15sxE92?S zGu|+lWgFLo6(H;&UrN5RU-rc*!Kao#0cK(tL2hE&-?ZvZZ$H7#Z=-lEK>dPvb zY+j0!%B?(hnt!H{mE0H>+~jjjnSd!h0RViip|7Dy?z>WOjH}+8-1A?it*zNt@;<85 zw|kJNj(2g*xNTgsqvQ&cU&NAvZ;;(@r1AHL$6E9)DD&Pp62X5O{ngy>%=WS)Ka8|Z zmR#hX6l6)R50bvFY>X85d diff --git a/tests_zemu/snapshots/sp-candid_follow/00006.png b/tests_zemu/snapshots/sp-candid_follow/00006.png index 06931f6dd96e12992da77e99063391d2f52215a2..e9e838173f121b6047aeb42a7bb2ee76cd2692a1 100644 GIT binary patch delta 541 zcmV+&0^O7E07)u8ng2hDzvMs-MIj+}a5CK|Tb8jF zz(URe000009OrB1W$%4@`+B_$weU2(zKHiewI`5S6-`xj;s}%c%nxxrn!S_)Dq|XM zOFBz(upj{$(Y+SqGUd`*k=NNLq|lh!U0&?wdwz&8FXFY+LVr+t(bYm+QcG`DVIT_C z(K7puJV~8KAFC`#fa-a`u+LV`GAe~qAr+>tRAVIVm-#S!oMinLbbxIBN}&@!&jXf> zv0w#6q&0?pCFOLDXX{-Z&Hlu2fR0rbi&sFHca61Xm$H1tC5e&3()5qYrGK@(H>$sV z=%eMwaAuItWq(NmmRJG+0G~^x8>$}MomPz*hapDBji=~w(;d!R!%fo2Scc1qe3sBTJb zXlb`wY>Zaz5viNofSs!;piU zunXO!5@d3)mH!srmTnj9qW!r4WS-KB_*h85Wk|qfNWf)C08Bs`3IG5A0000000000 f00000B^G`Gj$&^^c<{_Y00000NkvXXu0mjfNq79q delta 542 zcmV+(0^$9(1h)i`B!B)%L_t(|ob8xfa>XDBKy9Zxx%*#|d+CQ$$BH7xXM4~2GK3HT zpEw5q00026osW@^z4z(k>-AF9!rQcc5bu53pFq~D*wvy=v@pomxQXM@?4=e^8Po7s z)0vWk2?@xE?pZpQDc9zTY-hiaLS<-od9j+$aT8%&#I`GipnvwEYlXO`mOd7Rfha6m z%lfb6N$MDVY%(DMMb86D|8(Unqf#gpQepZ@Ge)xiG9QYMgUnxoHjs^9DRjR#&siJh z3MR~eh;&kMyQZAZ@oc^qt?9pb9QSPrn>+);xHFzLyOiZ8E=i0O);8g&TvOB6#%$Za zc4A$PWnj#d_mKS!4@`7u;K0!oSHST=ZcYg)5Nq*;r1D}2%Nv0~ywMm5Mpe;b8R6aCGQ zgOjidoum976#B0000000000 g0000002iRfH^a?2y#UF2y85}Sb4q9e0GdrFod5s; delta 109 zcmbQhGLdD13geB9sy&PeYu|d;Lw=mR?hH4zq^WW-!^Ra`O?3z wW!4M%Hp3mln=Z@^X*wg3)B1sl0Sm}^EY8#N(B@~ymdKI;Vst09{=tg8%>k diff --git a/tests_zemu/snapshots/sp-candid_merge_neuron/00003.png b/tests_zemu/snapshots/sp-candid_merge_neuron/00003.png index b60d7e3e266f2e0abe9c89d5526fca955c8ea727..288a177b6cad6460beb76190daa0f502fff69726 100644 GIT binary patch delta 359 zcmV-t0hs=a1CRrdB!5>)L_t(|obA|Kj>8}fKv6pCPQ3pmc`x%3i6Y~q#3DSZd%jR+ z;t)d&B_#j=0ARRRuRyArQWBAl(Q?4P!S8mX>_gV8Gk;y8v`|&^4m%PNcRa%0U7{GO zDk9}9&TV&2UCgE#jy$I_Rk{z$7lW&3_CE%%*%}%f01a&z|Ux z@i5~`P^r$En@2ZUxzRXm$51ssalA)LP{7?eIC0MQHRlUxPoMeEaNg@17a78F1CZ-U zU5jt!qKsq8$aOXEvZFQq2LJ#-Ot;g}VamN`eJGULj+hW+_WsKrFtnTVOE_lkso6tT zIScygEc@;WvqZVFvTX*yb+H)iQj7K|K}R<80NJQN6==K^C#ZXld zDQ9tRyL0MdHXWhri@9x2fcF;A?!+WXR-?pgsRak*_~P=Cj4$~U&$TmE|XM0bqC z#Fd~@oi#U)ZnAQtaoCQbYJ6h6TS`!XiF0g{ZV3*{!*kc8h#pEx)1Rv{9F0%`A&qSAfi!U8p zw%`BcG|6N?jFW1zAB-`Wi7GS`-{F}^F8}}l000000000000000aGN)Yw)sFjleSF& O00007{BugF{PVu= zozDCg%2wwlKZRuk%95;7{du*5_RTo-VR5&ibg{9HWU|4OQcCH*Z`%zKR0oti6@bpS zGFHI0Dr#*spxjE!>atknKz=5>;R@o&k8#XDM(F8Sw{Ev5u2;*;2h07U)XfH~pWKp* z7-f|M`8iu_!b=V?xCDPijR)bjxawmihZjkA_V81xgqi_6D981?d{_vx+`CM5Kr}P9 z8eCrK7;dElp3KewyD0Z6x+mTA0+-lIndOK-qPT!n(Kbhnuquv>o$h1k-(hT1Ep>$u zLI^}78`>l~_JJL&QmG`PBu`ZW_C_X^#Ar1eh4Z6_z=6`Xj$;nD=!+nd8ib{K_yHZa1mvnr)5}TW)3S zQn_Po8J_`5#DKaDHyHwEJF)J$U2=f#4j2nTwPNm@D?F1Kp;a78MeuX^d~*N2)E$7^ z?|xsL*_K`GT5NxYK}xcds>a7^3PJhmIG72pN)G!@1V;> z6X?L_k@HX;00zFz9fF)Cvw2PuE%6}7$+QmJ!8HmYgb+dqOW)m4_l#vvpV$Jv7)stW z1*bi0Gyi`Cu5~h=U-8Lx%;q>u64ceQ*^*}dq^m9Eht;MGK%`>axC3vu(Tpe}MT>{S7d z&9EgIM`kzoReizv2lnT#U13QpPJ9vjye#IzR&+W4f57uVCP4>assOhznY{rVA~Vg4 np;4mu1BRCnLI@#*_(*h@ZT`R9G# zJDvG0l&#K9ehSM7lqFfE`txc9?LXtthsE87(#6I)lF0^BN-3rLzHK)|P#sY6Q~)~P z%2)y0s;ITmfO0D>tIJ}Q1NoWkhAW68KgKa%jL_4uZryHAT(6dw50?8yshbT}Ke;6r zG0G|j@^iM$<&`LGaXxp$fBfM{lH zHMqReG2BWAJei#Vc2VwCbWghJ1un6bGRsj^H3?W1hi!@JFZNy=6xMd<~Va9zcNgQ+f8b^W}BnLmRlLS zRPI}pWJ^hbqC<~ zyWbaQwq+N)7F&O7pbF9-cY`fu+{Oa#pI<|xrXf>rpO1fmFvyDjF`Q5<`iD^;yc4ZL z@1zlA^}$xg!)rfpHcQfr8CT}j@rT(c4;ZzjH~F{*TLJT6)tiM@1_Y?>H&Gq7Lq>L{ z15SUG$K7LJm|c0d9GHs4z>6LO_F?7wJUQOGW+?87XiR_g4oT}(WU#4KEkR9h$=Sfp zfab!Ig4?*MmD^dkZn~zrGO3Z)zFcYFt?i{Ie9W<-pYMXX75wJLode z1Um3}8cCJjQNZuXKX&Ke-q}jn_#d0Bmo1FB_V$=LJSyV6JlO300000fZO?sU)NgYV=3iIWj+Nt>to8T zrnA6NZ_4OSOujP;l{Y#4Kb=}@=U66f%BGd2m?@LA*w2FYrIcXhwM^_j`c>e7@t|_J zCe|s?%2F)GlS%q`Oez98m(gWyreo%^ppk*4?V=qp>5^J`sX!}#NKAjHB0wwZO+GNU z#%#V;bAu_nh%o~wA61Q11YE(?M)^3IZ$?H&v$X(TWL(4WC!1~SK;Rc1E=^rk%9 z&^+nZH*t*~G_xHgKOVBrRyfMR#+W=}LBxqh9CkH*4E;YWgtcxC007`J$c8TC9S4WU zMDvI9VBve{_12}WlKp?gI%H&S!aI8n&tzRj$b2=WhSx9{DAVV@Ok?gC>ZQE9T&7Gq z2K8&+9k-GyCHwRetFdCIq(bNDY-&1@=UK7G>9=0%Zy70JY8v?PLZj1)|lN4(3|pX zNAsjx-^49iX=Xd}RC~zx({UYajQL@~&jNiabkZPGBP*eoxO%li4?jJYqDF_V z4vXZ03fU_olVNKC%wnvJV!2c4_Lskvb%AMC!7lyO4E}IT$qY<6vlOA<1abQxB4hU2 z)cOSoM(O_T1^*iJczb>3s5-PT=xF`{^?r+bVi_4N5KWEx(G9px#{0KnxEk-@3~TTt s>_Sg6a58IfDYzGt5dsq#0N^ry0md*QfqE8i0RR9107*qoM6N<$g3*TUD*ylh diff --git a/tests_zemu/snapshots/sp-candid_send_icp/00004.png b/tests_zemu/snapshots/sp-candid_send_icp/00004.png index d66076d5d741192194729e3e612d0d35f9dbb4f3..f2f42cddfa33ef284766e6bead5488ca1a808b1f 100644 GIT binary patch delta 836 zcmV-K1H1g#2HOUZB!41FL_t(|ob8)ga_k@sMR}>W6YqaX>?I$mxQJ$ipxwzmUmcl2 z7V|Y}4FCWD004mF{7dBNy%WoIT@}u}fbm`KxA-!SFEv{3EacCYio-|3>Fc`gn#SJ` zr1#Fd3uk-_E&Uj7@_Qu$|I;}+q-%(en$)vKyJ6uyl!W89jDJs?)T7;3h&W$DW(0_c zgY@S5W_&vKAl|369%uV71}HI1&kyLD2H>F~mi|pVOVF|#arDH8luOwNAc!m2lUIv4 zwVj}*0TPkrS#p*Gh?Q1(QZ@qkl+7QJzBAg%T+c1MSTf_gUL`Q*z~KH0I8?WX8OxqK~;yR<%{y1{Ff~$^=7E$V0)I6q~ zOzem<+fYpqxBJmlnRXh^$*#9m9G$DaNsTY|CcD##c@6PSYY9;Sw3G2Pyk4#(M#>3N za1e7V9`*WoA(33RS7HfWlB`FgVbNUG>WWa%0Eqx`M}ND+a%vIQHg@7C4x`NWv&TiYr`k3&=y|*xo<_q7FLb2?s6j^bk0FE_(LW5@;FVw& zdL>Sf(FR-L;mxa|3H4DlY8%j2aXQng8~@aHw4&$6{`Ke~!;pZcl*Nc;-ATg}TP$*A zPB($edw+bCj~vqs`&8jt0{5tut9@?+Xal*KGZhcFeTpV_Q8zV$;!Y!9=lS3rB%>UW zd;>%VovSQzi+JKsyJR%UIwkXdvH@1Yw2!Gyx>#4$s{4o3&_W9LJjre7lxk?Cnab6E zPAS@Vd0tv%y>Y#=b=lh8GXMYp0Kl)OQVmU%5P#W9^15t+!Imwx(x$HUMNaa2Syutw zyrc?SwsgzX9G+5Y7axgi{7-q~`UX!E5zB%O7(+9tYib#1bM2+~E{a_7?*W=dMoQL- zwd->IOt?M%xUt=KNsfRn-G(&cJ4NuGWl)gG-P$y?hh{1nvlUfNLA>I^JCuY%IV@86 zzCF6$QVl&E{jKD`2au&qyaviguDb{am%FND{6%=KLbm|`00000cm$s=w%P#D-YsST O0000O7EMM)|*@%@j)U9w2UMKmJ>?XLW{>c}8u zF&Ms`)&Kwi0000u&PSq7@10n#>#7Lm1&sG{-^Gt{ys6Q0S0R74R31JPL0{K(w>18K zAiZ}!TsY%hXywOrliw>D_)6F0kf9-7YSPFW?S_SqP?C<@GJjre(uj6%ArgEEnHeA= zPSTs}m+|U2g7}!yMw}hPn4rWoJwKsqI)JB!So$yVDnZL`#Mu*{QZ8jPz@TKUd=9mP zpr!+OX5CyzswCX*Ky0)slCl}Vmu!BCjGfU=)_QK?Zpn&oN0l44#u}LR3I0%($F!fy zZRq>5@=(P*0Dk}gkR+pqPN69|#OT%{S2ejwlQ8W_42v6#*81bf=?bnoHd;ifV^Q;% z3No=H%4|b5LEIikQ$Fo7oRdRut2jE>e3Lp~98LD16YCn{oz@eg0%#ZGWq7+>NsRaj zQg9G+8y@xgxRXdNJ1Wsbmn7@aXjrsRwYDM@bU-3OJb%zLb2;6egy8#$2q)y|hftOM zTIe=366MrGSlif%uQ&{!?eB<-Y)`dqXfX1)A6`boNiTGz1E@(x_KzW?8reS#`rwsd z6?!F3lFrj*5qWj#nE5?d^C zWlpz%%YS>kl#d+K4EvOGt$=&f%C)|?1GI_U%$16#+df4TyQrHQNpY8vpYweDQ?se% zDBl5*N#`ny+#;U%(;*pMvQEjmpX`8@H0@(*kS?}W_0;`GYG@&ad!FPrbV@Ze%1qU2 z^ABOyxwh-IcdNz{%A*1R00000oJut`;X(VvvwzKRRmH+_Z&RQ3MNaa2Syutwx}*tP zwsd`J0Z%ElidL_t(|ob8!ga>F1DMQNuy@&1>@Uiy(KgLTC-fYX_Cz7kmo zEF@veApigX00124Yji-2(MYcATC|wczxRFle3m@GwmD?D5(-Sg-*T zp4B09l1-S2+<8|mW=#fY$<|9IaB{h+^(s-brs6kO)r0$})6{`^7CQ0y$I$=FnNL$8XvVY!IIuw!){aJUUHidP0jjrqh3C_0hN1H_CAKj zdy{gjX8!7AdLgP`-#^m`3f?=N>g*zBR3y5ZQXptNzOPvl))(d~^aOI}{VvOZX0yI? zvXHe9;z%#yOc$tGZ2N<~Uvo_f(tOMdLZ~`%hvuAqe|$r*?%$#6wCfDeDtuCNPX7_? z2IxY~$3Iu1$5#m*TcY3QDDD|O7AKy9Zt$^DPyUHY+8#{~p6YPK`)eeDuN zMNmUh0ssI2065OqXoH-ykX+ZbXfUU#=kl6Gk%&pX?HF+aP)ka~5{x1$i==*<-h0o zHuQB*lL@n{5FMHQt{Tjm4A5J)ek1~?mW#b!OSDN003Yo=6|bfe>KW{F%C6#7mm%)_^6!;mel3~yP?EJ+)F>0VKNB_J_5Ad^QBgK zB$`qi0ssI2(A~?m^?lz%2-~)~_R=_#I1DwUxEsk6>_MklygeF?(oEEpTzky+RT@A_ zMkGJ7;dYwE$D`2$@m5MRPqVVOq&gz6Qthaw=6UQ|cs&8?et(g>vKpu`sSsDYke8=z zbvr+jkH#Tg;8=o!iN!HHy>7M3>ejVy2^tu|o4QpnmnT4$=InYS%g*^%>i8XwB}f+K zQxvPv z39zqJTQ*c9jc6wi;rlMA-I_mx!#oLC76}-P1Pn$3CNp+zQ2Iyr>@rks&$A4z^gGGQ z?7tO*O!T|SgqrAgMh-@z3XR0~@JNIg0000000000000000001R^94i|AY&=)%nASi N002ovPDHLkV1glCrXc_T delta 368 zcmV-$0gwKQ1B(NYB!5y#L_t(|obB0LvV$NDfMMF{PTc>J+)E#rVKNB{UP5U7zbETa zE(xa8lM(;`05IIkwe@vfQ%cLSxc1UHk~|DGr2H|H7ub_dvv_+nnw6QTDY^Do?Q3fQ zB^jCglMT1iEIuBM?#N52%)HFXE=hGp-lf`6P0jPz_3(NE)PH)BA7wRAVNxM(b|G&s z$7(s>l8??Io#0r4l8MDWJH27G%No|TZwU&F;6=kKn9CC&OLKL+SZ;4_F75UE>*Ke+*r(Hs?|>Gb?s@|58VLXZ^HDnu`EJL)*l3ek$}m>?hUs7qkD84s*dN`hBo@0 zWM}r@HiJy`hpB{`=nqB?B2k4R@jV=g@B#n;0000000000000000B*kF0wVf-r$OKV O0000buvAWbD`~%i@n=9HUBTn vF+ZIS$k=d(zVP&GIwPag`hkf73($Ei?t0>fk0RH38IY`}tDnm{r-UW|>@Fl? delta 109 zcmbQsGLL0~3ggp_sxuiA?zX&Lve7(ot2lFX+}9)Pg&wHviCMumgZEazycfq$+kDypD&o*(-T}i%j28UiD^4a757|G z+hZ?#knh>ElT$XOhHAQA6*FJBDs=kZSyyAH{_C22^>4`b<2{FFgas{EuyL>F)X)B- zUR9vP)Uf}dX|=;sIjhL^>Ko?&%ePrr%rjT#clno~h=OScgj%Ex7`r3?>v~O-H!BSD zsAPBCw}?Ogx@?MDy+ry7$-f6@G|!A^O-quW*ZGi@0Tsx7=6zh1!}zRx!x4~#r>mdK II;Vst04ecXbN~PV delta 216 zcmdnPypMT;3S;X;)pPZml2;zxV9xHCb6rN?apt?5HvGAd-wGA3>hx(T``h{XcC`2* z@7zPbFAKg&$eZV*867q?C?vN~cvV#C&DD{2Ltn19h`j4xT75>NCsVbQ>rnBR=^r*7 zt6#*fuEg*|I&L$2$h(D;zg98*e)<2Hu+{MkCpXo*>$kF|bLu$mU=-dk!{_V$q@Rhx z>8(@B1)gaC`cQV)G3`rxVcV>W@;#O_IzuzmzCD~N5yyZE9vI$totVS8gFo>rNW#_nvhZwS7MBV8q@D+)g4;0NJ^<3 ziRU)pgSXSX0uExvrIccf=f(VH)R^;n8L8$5ZRO=*WqUle8zqaP#7(Jng{~#|-I`D% z+Hnxqk6tKq&){0_*$er%B2l!YsrFjc<<2Hb$Qu^SSyJ=UnqW{Tg-3s_%Q{L^(`P&z z#L#w^Gjae9c5e##(l&Od#mWumGQPX6VOvl)bsG@@O{Kk)p0j^hT{hck`~aNu*E5OI zOZdB!s!u!-T&pEtK+Zn$xB0SR7^CdaNnQN;EogHLfMUD%Y5~58E>9$-jVuJQ+_r+l)0WP zyO!2~Nmi_YjSekSIm$)%E}KyQVCHtK-uuc<*?9nhdi#reWb*+CcNjE-o!w#=+SWxUGX_)9 qy#N3J000000000000000z%;*aU8l4qpFRHo0000rX5&{4K0I=LwYd}g#T!}Fb>P)|*S9j>iA}OVE zB%a%W58h7m3OI-vmr{x`o)`0*QOlgy%aUqr&{kevtn81cb)#lcmAEOjtlG(FNoRnDO^T`Jk&^ti>8< z!g)RR6ZJCOyooU`(z|Rz{ezj?t$Ob(ld|&w1oie8XJqpM2zNCYgPq-C7uwcEk{N@k rNG|{Y00000000000000005HujZX&0&?Hj|~00000NkvXXu0mjfbQjU$ diff --git a/tests_zemu/snapshots/sp-candid_split_neuron/00003.png b/tests_zemu/snapshots/sp-candid_split_neuron/00003.png index 77f37bab1c55afd6813f4c3fafee0bd69485b193..1da9ce14d4a117229ca320e43996f7191e170e4a 100644 GIT binary patch delta 342 zcmeyx^owbNZhf>+vjUGp;H{T_cm7Yh<8419(TGzi?9kzRpHpicIA#S&GchnQT)2CB z>(|=*&K$S5?fe!b>B-~VDq`>UiDmcYOp*M4x5XwxrYhIvHrL9sPEb>x)Sk0zuG`0t z8Cw+Yd1XGy4EZ)Kr20wdD%q=7Z2Dt)*Q-0+)&I134V#v)*3sqlu_sPn-nMJ*>@)7E z9`*$~jt8GCI>Wa<`t7D&rEjB~*wQ{M%M(5GlykyT%iZ@*Y)Xz>+IRn9L{m!Oz7o%E zS=V(~PQN~J=%@Q>^_#nSIk)!Tk-_W;C!TGqHh?Ka-mA=TnY<*Q#v~k8GRgVw!$|zj#Kb5f~20z&w6^;~V*XUdNAuL_J;oT-G@yGywqRU73~u delta 342 zcmeyx^owbNZhfTCAqAd>#F9Op@9US`JIbCm!>6fX+J-Ctt6!ZG%IGp>VPIfL*wLQ- z@_A*OK;PqnwM#duZj@Z*S!g~<{6@3i-ij&_sipH)=_s?_C6td!mdJzcTrTIHLl3R}jkeJ5gP@`lU^=~x|Ff8zG#ZL`kB9$UQ8 z)4ssR@!*j~XUg&;-fe0NeLK5J&F#aYM9DKxIVY^N+y{l_0>)w1#iuW_!$L#f^{5t!BaBl{N8@`FMN&Xu%Uh24Q{lwZix}*@=zOGX zEF>`rtmmW@1VIo4K@bGT`GX(loa@``x^_DA7V1`)Cf|j157Z^4N^_ffo%WY;=)?M5 zcBP8!YfGjm%sJkgL+;+<-Pa_$gG;1QCLHlc z6crE^Wpe@#tAF~D(KCDu{XO_L)w*sF1VIoiV&BH{_?A_lao@|lf0l;#wEVm$o?~d8 zXuC`5EMtOiI@a0FN~x;XQqr=k8dB9VVvS~CS2aD$Z2+f5<#m0_tN>M57Fs%i8(p8f z&GET}8CwC4yyNmz<)$dnO`dOJYyj?cx5P#Fd#0nx%zr!WZbQR+z|a`rUt>m1yE$gd zVW=H|nF+3LN@^jq2`4Su$gQs_X^sQf&r$1LR6UIV>fV{~`ktd?;iOC8EPy4y>Ia|k z?1;9H7(5F$P zkO0ApiGN>eYZv9)miYP)vt)*=I})l4bCgyO9^E+sssQC!e&`6a4Al?tlzAk}W!uy) z#!tIGH~s_7s(iOO7ArqX*%X>(-oGoKPi5Z4oe^-Tg!AkAC+g=`(<32cQcM+C4UYROn@R+v+Bu*K%Ro0^<{q%-j!xAPA1ay!;C;RAIo_3Sho`0<(Jt z@^Pc9NoO`W4_N;ujJv6h80r7%vm*pI&U7Q8V~ihwi44rn){XC=3Lk=iAxjAv(ACYr z61EsfMHG#r{}J!2h)pk1`w47XusO7AhHa-e$^DPyUHT)l4i$Jo)Fiv*`O!%X z0)C-k(^8ToNs=TETla^OInrgwpg9^<8kQ2`ki;B z2=8l6rYWqo)>@C_;KQKd8UV^^01Q5t;R3u>T5GilB^ssXntxd5K)ZGhLs9zCKgTiO z9-(t!Mcd*?lvm5?1?PA{>o$emBeA47W?APzyKdS{{E`8JAxLXH=x&Z!JyvpYkQ7&s ze@RhXD_{q7Uf<=zLOkJKWNHAkm9bUfa-%UsqXAE5R{#&nqZP%IZhe7ExKU3y(o8!6 zQ8BDD`NOJy^nd6XK8F4uVw)u!mQ;rGlym6>z`w?fnhtZBt$?9^ z0A?n*xG9N+o=vz&(S~n*T}gKwzOot$H^72dtZx1pvM?FCZY(s7oC3xnKF9vMo3 z*$=#uhJV)C@v+T2!eL-kM z%$iJAFPyEFeH;&xvQ)VF9s@&qX7nif6z1pKF<+nt%=w*L=E zPM-L2u5<1uNs=Vj;YoB11!%u;EXQKH+Nph;-Nlo@@hAy2c*g+WI{@)xC`hq&w_+;I ze5(>~yGKo}n6UFG0X~SyxFSs*-ny`9+cS_OG+ozfc?3WsHH+LCU<)|U|AGrq7%;X1 zJa=C{f!RHS^P{UtXEr$xSpO!ByNO1O@^|{|2*I5*W+V)Z@eOz)gJ)+m<2$J04?)0? zroxPG5g)6FO)pXV32a)hZx9C-k=f9H{U%tL` US~mShfdBvi07*qoM6N<$f@oW^m;e9( diff --git a/tests_zemu/snapshots/sp-candid_stake_icrc_expert/00003.png b/tests_zemu/snapshots/sp-candid_stake_icrc_expert/00003.png index 5b7cc63824e7ca372e2621077ceb467ddc528715..66e009be5f8982dfd190dda734c056d03cd3ff22 100644 GIT binary patch delta 377 zcmV-<0fzqe1NZ}wBmuvXB_)4Qz5-Ss4*&oF;Br6y>729tnNnI=nO(?MA5AVPRSz8L zW*&VJ({H3g=_OYG-Q}FCiDfEHHhWoSGxG#{>^V{Ul#(;@I*&hn^eJZo`ZtxgE7__F zlw+CA*UA%|ux$)E)O&rSh`>I1Po3|U3po7a=b}Qhay-&SG3i5r@J+? z_*}{bU0Fqp89?!<=}X`#^56sJSTRO9|0)=^OH#dB!4~KCW@Qyy@zzi>@r&{ zL1!8I?>hA1aGiS(K1tz~GY9jh785$D71-C<0b=LtCA9hFdd> z&!t>2lvTu-0Thp_A`}5D3~iMEE^^O^oA14cbm#0cTWmpR z8T#)!^x<%wdrv^?W6O=y6R`T@hJU}6pR4qSV15dnzH{n(_ysrN&hYN}oVRDIrZu~> zZ9lhd*fgU@J9l#DwoSX)9DJDj?LwcVGsw)rQVcHu000000000000000006MeAD2F* V)OUS3egFUp002ovPDHLkV1iSLwE_SD diff --git a/tests_zemu/snapshots/sp-candid_stake_icrc_expert/00004.png b/tests_zemu/snapshots/sp-candid_stake_icrc_expert/00004.png index f9eb76738e76ab41c00bf32d02888cae07acd628..98b4504e1671cb4a9eeea45a481568701a5ab00c 100644 GIT binary patch delta 395 zcmV;60d)SR1Em9yB!6s4L_t(|obB0Ja>F1DfMMFnO?>|&`7V9X45NxQu?2Gbe@|I# z76CFLDFFZg0Ly*3mVTaRO6fQb*IFi9BF!*OlD9%%P=4sti*JuYMed2|l536Cx>^m$ zgCX=+Ww@Ps@$x9NL#9&hdG1v?CCw-LE>n&vD$cT-;k5$He1Fkzbv7_zG9eyTp>NNx z&2+wHJSLm;0ml@SidgiO-CLHsO3SMDO+gzYc+s*9=CT5GYOd}#s>(h;C68a>n1Xat ze(RQM)}Gl2_Vs#9=U3=Li%o@gbK?(oe^#Qo6B>(_CLFaI-{Hn82;Su@?iQ3He zynk`<9i;DB(0>(g{px95?01fTm(|D7cbWNV8bA6e@(SpaQ>MtdWztgzU?@KoW}YP* zJv9Xlng3+M<|4ZS!p@ZRd(R`nhP7o7-pJAaGnzpr`pZ;8P4pLI40a+5?Zk6F1DKvCMsPQ3pmc`yCY3_~RhB(^}b_k87H z^AK1Nk`e#_05IK`Yw72Crj(B3aIIyqCDIJlBzY^!3+#tZz4-PhROFthF1glNt?Q}* zc`!uzl?}I3FJ2ynHpo=UJMa6mSMtD5|YJa|zZ_8|;!lXjnt)jd= zzgE-vk?|O8(gz$sqq6!{5glT)V1xnl!_mw*QqL7>M={R(u9h4Gqf{I)zg`kD(+_M&gRAnD1X(i9wToikIBQ_Qh844 zb&9l=xWSbs+-gg6Mb)2j=+DZ1TMCXEE5P<_siIOF^-}$<_k{JtyBRho@=#Wl*=aQf zz|G*ZgJHB(eV)1<^h#oC+fm>4te$%P%D@)X^LRF9(lMUa^=K2FPw}6z9J&!TuA$8{ z%8l$igr97>*?&_@9d~Y3ZozumqlfTNR_a>O%<4YsMmY6?xW?Em2(K${LC4}JIsm-o z;xoWrd^r!6vcL6jypnPa-E8>p=o7Hv9DyweFJJ%;bN(upKla02DfMe4dBro_uGq=+ z{xVKi)BB4t20O6}?Zi2}6Wt2{00000000000000002lyF^9vlnV9>UBkhcH;002ov JPDHLkV1hie%2@ya delta 419 zcmV;U0bKsM1HA)~B!7fSL_t(|obA|Ij>8}ffZ@z&Zo>VK#9ihA6(QR!uEHk$-&5Ow zaR^)bJOBUyz;Zve3o*v>YY1U}G8aqT^+hlJwl6R4_ZXvi@F#?wlvVQQtx%?t9#4!h zgisCvvrMB_`Z0gbp>(ZBP0dCVqP&@*9$_NRU{<2KnXNgRJAX5v7G2y%*-TlcEN0d! zbIPA{Ngc#2+-SlKTN^7Pe$HV$EAwluaMGCpx@T*FYHhS@jki8hY^1!IVRstqoCFoeZ zq65HNF5Uz5!I%ADDgCa0hs7~%i` N002ovPDHLkV1kg5%3=Tj diff --git a/tests_zemu/snapshots/sp-candid_stake_neuron_expert/00002.png b/tests_zemu/snapshots/sp-candid_stake_neuron_expert/00002.png index 5b7d0c4dfafbbabe39aca39ec8d8b6b17e1b3e92..d0010466a130ada8d765834208048621820289b2 100644 GIT binary patch delta 848 zcmV-W1F!t-2ImHlB!4bRL_t(|ob8)ga^xTkKs~9siSK_T?vf8G6oVFo7N943A1OC& z30cSj)Z}@RBuSDaNs?qcf8tb^Qrh+VzG@9RS;hvawr^=7!$+ef6o1_{R_wlW1p1n~ zroW8dmPs|=gCt3kBno9U)UvmN zwTDos?qC6m5`UlGa{$ZQU{y9^9U|1ZVF~264DAE0UGp!>AcEf37c=^r68s3oTNz4N zC>`t{x*qIA8~42^r2|?fX`J2* zJ7Jg^@0T^97xL1x4FJD4uE{hs(%;LpIapp6#AlZMwt4~U5NJ^o3N~@7NQqvf zHlQv234c^nXMZ8Dyt*+sg)bKJ1xQA%q){$n=?MOn^uptIFsq(>Gzx@`ikO8(J>E9zg6hH;;Cx36%4KLFDzw5z$;rlk$3N|2b?+*9G&npF zOWrg40N#QR?od&!3@6oVdIKmt0W^O17X zNWu~pSWQw2f*=TjAP9o({P9zrb1v7<^Gs`)lU2q*)z&RVr1`iw5{bX&8ei6ZX9)GR z)TazP=bUqXo`;6P7Ow!X(Ao6fWHafKaKpMd5^PZIPQF~V*MIj`+|o0whvfr*R637g2!Z8KaF{m3Cb*>JphhMs9aY;e+9&pF8Jzf32 z-(rnR0Lm_+d`#7{S$`#oClWMGp{sLr{6k~LnS28D!hIL11dRwH+7P^d zX#qL&CQLH}UJ#yk+?~tmu~LMdopCqOKuV6j&Gj#B0Dtf$>%Hjy+=?tv?5~nk37z}R zaxzr(rg7>%RnoGL51`{-^MrUj!}>9OYog%6?e-^P{3hh&sR+P;_%C+WZEVd#K|{yM z5d&8&-P`=v-6&$zsvgDO>_DbY@@armQ8?9-I@b^Sf=XHweH`z0+#k)F@t{rK9R9M+S4x zQ?-ijwdUIsf@W1m7iK57s@AnCs?t2@cViIk`eWW}=qiIdD)RsU@KW_HPPqYY zy-&{gBi3Z=Xn%Hi%4=wRYLvb>#%FfQvklF$e(CeT4@v)#roZc{t}tozrPj{5^)nzn zk=Cb<-`c2Vz4d!Qd|us}DzqLLJmH(&`VMgS^}+IJc92Vu>6BNhoZd7|h^J4k delta 444 zcmV;t0Ym=N1J(nOB!8VrL_t(|obB0Ju7n^EKvDXocf$UcITJl12p&SVChSAFbfQ(MPu6ySQin`-W3wFJo+$cuw@4z@}&V{V>R^OvB~{-%-5IejEX z72b2xlKBBR$9}Z6hP7KJm5RG0iu&Reaw$t^XDJW*P3%Owc-;3Iy2{{=$~*u7yi|RQ zQ*MA;?~{gSL4SR=?#&KQc@34PM(K;AJhM}tZD@}5OP>dRNcxX7{asIWg-N3?wRX;} zp8@HKv_5tG)ZP(@ zL#0VvCI=u1#0000a<1(A%qY@$Z`G@Yvc)9_5m=xDX-aJ57fgU z6?Vn3(9VW5^ncf|a;Wk-AcPQ-Cas1BC)G0}6xGbk)igA_(@lXXukJMEzgN?23Ncw_ zC8aBRP zP5l>5jcQux2KP6Qqc38JY#`7of;Y`(97Xsx_WPWYr+?y|?e5$J6r!N1J#AZf>1aKq zhHi=euSBMyNTfs^{m3`98wPc}LQ??^js))j(3K1R2kmDw*C@PHln&qqnbALn5o$*N zFr0%=!d>W-OoGfgcoiMq%D17-O5Mz4&a|4QdT|~c%bB40w3=sYroVUu_Jb>k`c-~< zk?JmGUVj6Wa$i(KvzS3ot&T+v5|{Pc>}Ali`XoZD8tA*hPu)nWPEgsr@SH^4_WTKk zIc3`uur8CC`XZu1#%-E@1`#|=eFDztYl~eV<{L**h{+)}lz0@=(B^B3UZGwcNE$lT zAdv=R^VA_cm2#=N6G8|fgdnV{q0ayXwUJ^@qh6E86fFYD`j1Z^0U+}Gl#_6Iy&x18jJ5JCtc bgq+|%O%2c!r6&JX00000NkvXXu0mjfgQJST delta 777 zcmV+k1NQvQ2Ga(RB!3!7L_t(|ob8%flH?!^M45@XiSK_T?lK=0MYy$*5}4}l$oJ*K z2xPIz>1vG-LI@#*kmLL**!14V^>tlA9q;aU!+awB2=|gkJVrcCba_ysXQ-H%qvU?KWq+oQ8OQP*kNI0O1BY5T zdcC=~FybO^nI%ZquQAX*jMfmhk1g@^0Eh_)@~Yh5h;m&sTke;dzS60Bv7@VA3 zkFskLn)Pc*qS)SEb|Mq`8_9$+rpvZ3CK zQjd-AS5yB*Q=^&|y21U;DP{ME_SJ(@-Q*qK;njP3?w39k0+-K!YQ}I{W-@15O;f!%502$b(0p3Wvo+ISJOcZ{ z6-50iKV!W}b(b=)0ZO?Ks-aoTpr>ZXq6Ue}`fc_y=vjRdp;Zm^-QcHgBvmJ`;AvKhE6w}b=Yl>c> zo|An79xmk?H1wLnzs`dRVvtYo{p-;lVhyq^UZy0PxE$AOvp%deKG>;-mX*t?;j6-! zlgR=dXE??7QXa*^;|uBo0PcN(9{JFw8Ho5ep3t(LXFte%@UNUJ1XJ6qQ-*4&LI@#*5ORY5r&QIdBLo@+00000NkvXX Hu0mjfZbp9o diff --git a/tests_zemu/snapshots/sp-candid_stake_neuron_expert/00005.png b/tests_zemu/snapshots/sp-candid_stake_neuron_expert/00005.png index f68eabd5eea6f4d34ffbf9d6660e2ad34d40b656..b7879476b30a42c77e345b718d15a1e550978c77 100644 GIT binary patch delta 518 zcmV+h0{Q))1fT?vB!A~gL_t(|obB0LZp0uAKv7!FPO|?cv6p^CgAg{xm?T8iJzpsS zhL}ePO$h)10C?QbY=N9}xjv4=$kV&~Hu8x|O7jTyb2WK9VNv}C+IoCVmE9%hTt}y; zJdqmZI-8m&9FR|-Os)L99QDpIVhli;QVOcSn{zHH_1!cxDSz#0ZRZJ?n*p*ZhNhME zypeH{1JF4nW!viCE!VG|vU45K3_zzdbN*`5WzN}@J2W#!oj{ko>ZWJFN*}y-7&bhQ zcGWnDEJ3q+L6_;Vl$*#UbeJb#dKaW_(VCUFB$n&4f;R)FPH)zFnUb_cU>E}D%R@H1 zG{9H}om(teE`JPSpsLkv=)bY}Mr9rV0H#f!hMtD6tlnTFZ*b(;G7MOpLkC2YJNjAd>3Z&9P!GEX?g(>&$2T^{SYK_>c- zQ9@1hA4VVS#45DYAjtH=tq3mw000000000000000003~CKLKp(qwRi}j{pDw07*qo IM6N<$f-76~-T(jq delta 517 zcmV+g0{Z=+1fK+uB!A{fL_t(|obB0LZiOHafMMEnC+>eq?4=Lp5W-x5LB*W>-_t1q z;sAm)B>(^b;Bh~*1#-^i_i-Ff9_#Ac$R{c(%_G#$)#Mooi|RMf*5hNU>@GRyIy#o} zL~4}lY-*lxK>h+{YUTEF)DMmkX8_8SQc%5b&bg%2SJTX-^na(dpC@2$2FRv3npW2H zM#e=Bz`-FY+g9JV{C@3}o$G*R01i4c=Z_{`=A2ErLo;L433SO)H$4MZ`rx(0urcyz zSB-;-4hY}U3c5^>rQAfmLc4haCOY6;)6^|m^X4syb=jnCNb2sZP}S--^lL1xsLTTZz_jVp&{KEGvUaO}DXWqsjv~}b23sY+CH+Rm zQf}0ox)T00000NkvXX Hu0mjfzRCWe diff --git a/tests_zemu/snapshots/sp-candid_stake_neuron_expert/00006.png b/tests_zemu/snapshots/sp-candid_stake_neuron_expert/00006.png index f8eb5edb25ec84713ae15b56ff0828713a6c4562..9abb0616b945375f755a10a8af3e9c346a9cf570 100644 GIT binary patch delta 861 zcmV-j1ETzj2a5-gBpFgkL_t(|ob8)ia_k@sM4emNiTA%G_HsXwJsW>7{BugF{PVu= zozDCg%2wwlKZRuk%95;7{du*5_RTo-VR5&ibg{9HWU|4OQcCH*Z`%zKR0oti6@bpS zGFHI0Dr#*spxjE!>atknKz=5>;R@o&k8#XDM(F8Sw{Ev5u2;*;2h07U)XfH~pWKp* z7-f|M`8iu_!b=V?xCDPijR)bjxawmihZjkA_V81xgqi_6D981?d{_vx+`CM5Kr}P9 z8eCrK7;dElp3KewyD0Z6x+mTA0+-lIndOK-qPT!n(Kbhnuquv>o$h1k-(hT1Ep>$u zLI^}78`>l~_JJL&QmG`PBu`ZW_C_X^#Ar1eh4Z6_z=6`Xj$;nD=!+nd8ib{K_yHZa1mvnr)5}TW)3S zQn_Po8J_`5#DKaDHyHwEJF)J$U2=f#4j2nTwPNm@D?F1Kp;a78MeuX^d~*N2)E$7^ z?|xsL*_K`GT5NxYK}xcds>a7^3PJhmIG72pN)G!@1V;> z6X?L_k@HX;00zFz9fF)Cvw2PuE%6}7$+QmJ!8HmYgb+dqOW)m4_l#vvpV$Jv7)stW z1*bi0Gyi`Cu5~h=U-8Lx%;q>u64ceQ*^*}dq^m9Eht;MGK%`>axC3vu(Tpe}MT>{S7d z&9EgIM`kzoReizv2lnT#U13QpPJ9vjye#IzR&+W4f57uVCP4>assOhznY{rVA~Vg4 np;4mu1BRCnLI@#*_(*h@ZT`R9G# zJDvG0l&#K9ehSM7lqFfE`txc9?LXtthsE87(#6I)lF0^BN-3rLzHK)|P#sY6Q~)~P z%2)y0s;ITmfO0D>tIJ}Q1NoWkhAW68KgKa%jL_4uZryHAT(6dw50?8yshbT}Ke;6r zG0G|j@^iM$<&`LGaXxp$fBfM{lH zHMqReG2BWAJei#Vc2VwCbWghJ1un6bGRsj^H3?W1hi!@JFZNy=6xMd<~Va9zcNgQ+f8b^W}BnLmRlLS zRPI}pWJ^hbqC<~ zyWbaQwq+N)7F&O7pbF9-cY`fu+{Oa#pI<|xrXf>rpO1fmFvyDjF`Q5<`iD^;yc4ZL z@1zlA^}$xg!)rfpHcQfr8CT}j@rT(c4;ZzjH~F{*TLJT6)tiM@1_Y?>H&Gq7Lq>L{ z15SUG$K7LJm|c0d9GHs4z>6LO_F?7wJUQOGW+?87XiR_g4oT}(WU#4KEkR9h$=Sfp zfab!Ig4?*MmD^dkZn~zrGO3Z)zFcYFt?i{Ie9W<-pYMXX75wJLode z1Um3}8cCJjQNZuXKX&Ke-q}jn_#d0Bmo1FB_V$=LJSyV6JlO300000fZO?sU)NgYV=3iIWj+Nt>to8T zrnA6NZ_4OSOujP;l{Y#4Kb=}@=U66f%BGd2m?@LA*w2FYrIcXhwM^_j`c>e7@t|_J zCe|s?%2F)GlS%q`Oez98m(gWyreo%^ppk*4?V=qp>5^J`sX!}#NKAjHB0wwZO+GNU z#%#V;bAu_nh%o~wA61Q11YE(?M)^3IZ$?H&v$X(TWL(4WC!1~SK;Rc1E=^rk%9 z&^+nZH*t*~G_xHgKOVBrRyfMR#+W=}LBxqh9CkH*4E;YWgtcxC007`J$c8TC9S4WU zMDvI9VBve{_12}WlKp?gI%H&S!aI8n&tzRj$b2=WhSx9{DAVV@Ok?gC>ZQE9T&7Gq z2K8&+9k-GyCHwRetFdCIq(bNDY-&1@=UK7G>9=0%Zy70JY8v?PLZj1)|lN4(3|pX zNAsjx-^49iX=Xd}RC~zx({UYajQL@~&jNiabkZPGBP*eoxO%li4?jJYqDF_V z4vXZ03fU_olVNKC%wnvJV!2c4_Lskvb%AMC!7lyO4E}IT$qY<6vlOA<1abQxB4hU2 z)cOSoM(O_T1^*iJczb>3s5-PT=xF`{^?r+bVi_4N5KWEx(G9px#{0KnxEk-@3~TTt s>_Sg6a58IfDYzGt5dsq#0N^ry0md*QfqE8i0RR9107*qoM6N<$g3*TUD*ylh diff --git a/tests_zemu/snapshots/sp-candid_stake_neuron_expert/00008.png b/tests_zemu/snapshots/sp-candid_stake_neuron_expert/00008.png index b6bbd0337166183cc0fb5dd28d4c8d2a8d52b17b..57c10fc315960dbbc760757bf357f880b97dbeb7 100644 GIT binary patch delta 367 zcmV-#0g(QS1BwHXB!5v!L_t(|obB0L5`!QNKvCN1PTc>J+)F>0VKNB_J_5Ad^QBgK zB$`qi0ssI2(A~?m^?lz%2-~)~_R=_#I1DwUxEsk6>_MklygeF?(oEEpTzky+RT@A_ zMkGJ7;dYwE$D`2$@m5MRPqVVOq&gz6Qthaw=6UQ|cs&8?et(g>vKpu`sSsDYke8=z zbvr+jkH#Tg;8=o!iN!HHy>7M3>ejVy2^tu|o4QpnmnT4$=InYS%g*^%>i8XwB}f+K zQxvPv z39zqJTQ*c9jc6wi;rlMA-I_mx!#oLC76}-P1Pn$3CNp+zQ2Iyr>@rks&$A4z^gGGQ z?7tO*O!T|SgqrAgMh-@z3XR0~@JNIg0000000000000000001R^94i|AY&=)%nASi N002ovPDHLkV1glCrXc_T delta 368 zcmV-$0gwKQ1B(NYB!5y#L_t(|obB0LvV$NDfMMF{PTc>J+)E#rVKNB{UP5U7zbETa zE(xa8lM(;`05IIkwe@vfQ%cLSxc1UHk~|DGr2H|H7ub_dvv_+nnw6QTDY^Do?Q3fQ zB^jCglMT1iEIuBM?#N52%)HFXE=hGp-lf`6P0jPz_3(NE)PH)BA7wRAVNxM(b|G&s z$7(s>l8??Io#0r4l8MDWJH27G%No|TZwU&F;6=kKn9CC&OLKL+SZ;4_F75UE>*Ke+*r(Hs?|>Gb?s@|58VLXZ^HDnu`EJL)*l3ek$}m>?hUs7qkD84s*dN`hBo@0 zWM}r@HiJy`hpB{`=nqB?B2k4R@jV=g@B#n;0000000000000000B*kF0wVf-r$OKV O0000Md)VrA zR1j=b+TH64f*=TjAP9oT`O<$*Dbc^)_q|e?Q=p?RL(YZN0;L4&vpulZFv?ec$K?36ldTSpXeF5kvK$b+7`CN*b*+p;)0*Tz{!nDNvq`Zny+HT8wMq z+fpezmX*zV;(CpoJ|OoC+O~99{lu1B218T|l;_f06HCovqTXoX3_;T16>}qOb6?5B zK@x3U4AQHN=?z!`o!7f`IDsJtNN>i{4yOzCF-z#^8-PK%w;{XJO)vBk6l#e8_ALqv z8w1^IK)`_0Vt-vf-P_Rr!^n)DwMh+vAP7F0MmAK!p6z4XKDk$u#7P+{w%T!<%aK*S zx9y4@g|W{EHZ#+

(3rOkAmelc;LKR?Fp5<{b@GWmR(>W6G1w=2mZj@~MCw<0=vX zHM0~p>*KFVA@M!YOSDw-^@AQDU zJ;JVIVm5oUM~|@gXYxsCk)^@`9nC-3Sf}x56bdRDMh+h=WwLqcaoqC#(_YP3IFTv+ z@1MSk27iOwhGQMDCl^#?OXnucO0w1RgMPIn{k`9L!I&{iiv2WoU`z0JW#TfpwOKmaH@<4vDn~e^zv>iv!-1+ctL)lqi zEOg9SOzP>nNe_~U!3nMlQgCiVlaQe`7FupL(i4AEMDN+vGBkA0iY@P+bHLo7!Mb6@ zWOJw<&Vvi4g-_zntBIE!Ro5M_EdBRhXCL9Llkf%q0fWyUZ0y4R-C(zhL>>S2bT;hT zW3f95p@@+MfQ>d)hl3-1Z)U9)$L-l)L^gCY$E^W{S*!7}b3X`zAo%b60{30|>HG_; QC;$Ke07*qoM6N<$f*DS=1poj5 delta 888 zcmV-;1Bd*P2agAkB!5;(L_t(|ob8-ZlI0)>MV+bHN%p@a_c9;WvnT<*B1Zc)=c6la zR1gd*Nq0&?5ClOG1VQjRfBLs`&h*#kd3Gvu3v|?V$fb~4pqB9ZVhZF|W^E})Q8ju4hMF1T`6+`u)b$A6nDs8mdgc5~PaeuX1qd>g|-H;SJBF07d zi&QF(6=jQ_NS~3@3(oU_wyhmDx5SbJ7@|?2Uf14+AT_IrW}}5M1Zjisn42Rux0Spc zB)P4tL1vYKo`4q{?ISsLXildi3Sm4 zpm_}l1kAoM^nWwG4gEc=%xJGoY7hiL@XZXep&EF$Pi*_xsFhA&Q$1*-Gfl6E4#cLPOe5{LS0dg97c2Ih4Sh{q%B zKFmW?8y?(l|3sWmLYpiV4wz{E#m2ggSEEqSFfelXU@M;HrDt*E z^zDdWUw^W$b-QJ^Hi~GdnEj&N%v~qp#Qp(;%^zay5=EHdJ@Q!+F^BSySe$u)1LyXO4`=lrG5+Z>WdV#*O{ z1rk8JZr-YBt(0;bngQISR(YejIb!y)lnsj$XfL7~-sv?g)P! zmKPd_6jV~~>IEd z=O+LF08he|wC0^WiWSmi@k#h0t+^tM`-D-x$FJFj_M#)-z4eD9O#$T&dmAyAEwXYg zRxFpur7er7&Wdu7TbG6KV`pC z2h^rUA8f#BWc0yOc=I~{hNhf~`iZ;q(>9T=<`eYkX3s7XuC(>CPxH1uBN}T;j;rtl z1DM$$YBqLkM!iHv{ta!{sZJ&%(HM`BGfrw+4CK|OwHw>MfluT>e%mKTG)3Dis6LiN zBH9?UDw3ixH3J&$#NYq=dMJMt7=ZiNVylW|+h$}$j2jaU-MLBLp6kwr+$}H5_{c-- zC*yq3k6GGBv?s7Gwvi6d-k$xeCtERByo?lQ_;<@qMKTjD000000EkeahTgauQBXJ} zDOtJE*gjs;|8A+@-1;oTn%Hu(nx(C`7&1#rfzi~YxRY#pknxl7u%>?4*fwy23aglr z-&TEBm?EVqY6eD@{vs%6ipF-R!C+F=(GoQZW000000DwpH4T@YAS|cgY QBLDyZ07*qoM6N<$f|+uGcmMzZ delta 791 zcmV+y1L*wl2J{AyBmp~-B_ja>kx3?h!-ae0LLq(d2Dp_X2JMzR@_aO3jjwpzEyvd3 z+UOuQ_VD44BBMzxv@foikpS9tZ)T&}lnl+!h!O8qa?P9Ru6cjKIe+PWTZZJ3m~sSK zfdtU5TW(dfR!U_XngKjVt@1{5b42&Clnsj$XfL7~-sv?g)P~ zEH5+;DX65}*%`oJ%2`Kor+fWkr|?1}(_brEqhFuec8J@ItpPxwaPwWi4gEh%4(Inf zKLG#$coMFpHJ{0&DBK-2ici81Y0VX3+$W6kJ$}tLv=<%u?yWx@X$mOMu(uJtY>|~~ zv0}MIE^RKNIxEUSZe13_kA?i&etLf>qc!docaQkSjkO4~%+3J&=)Y8_EPT(r@Xa~f z0er&7pAxbsPwngASkA$(3*{870ablauB2*@$X7GXWskB(J7E5$VZ<#ii7whgsx87i z4BN7|pNz`IY2KX^aICDXm$7mdlFF7CfA$X`WN&~>ou60GyS6^x!E*CU;v)K7F$&$+cqO3V%(T;=*~^@_FQ*1Zf-`osYqs`1poj5000pR)X*DOBMJ(K zBqb|18r#Q9`rj?}n_KTPtcfirt6AE5iy^b56c|lSif58d4>Eod9@c*p8`}m>P+=7v z`EAvAg(*^+qGn*Y^cO)nQ#7_i4F;2{j+UrVFav5K*^2LIgP>3->ZX&7HOP1eL^Q>$ zLAJSFQVMIfGc*l#(+v0%JXvAA8SH>Xnj*K4NUgj?x46{*xdZV7000000PtwO0l^Iz V@p^TC@c;k-07*qoM6LruV1g!rdTIaw diff --git a/tests_zemu/snapshots/sp-icrc_transfer/00004.png b/tests_zemu/snapshots/sp-icrc_transfer/00004.png index c78324feec50e1b29e0e37fc4c22dff5bb89d449..e0eebadd7335c2a422bf39ca738ba98f018c8b86 100644 GIT binary patch delta 693 zcmV;m0!sbN1H7NV$EzHa1{Y0T+F96W108*R$PWQsPL^jf>0%$^`u^ZUji6LNsW?Z?ZwKY9U1{bL^HE* zmf#UEq{_9%jVbWyQ@uaJ1F<`RS~YZujDUdV7iQE8_e{&s%ZT<8R*yi#M!C zs}X>Y4g2tXR$S5%w>N;E33hw@TgV3J=16?=t4q?z{DbQeA%*MIfoU5P;naM_K;Q4A zm-^8Gnn`B%k71;m**^^1;7RxvdXi3(*#=wD>5ZtNqn=u#BUspZ)`(r32qAJ5Yl9~P*`!pS00000NkvXXu0mjf5)V$p delta 692 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 Eg1VYIhyVZp delta 673 zcmV;S0$%;-2I~fpBmpv!CANQq(XV&6wa)p4tzZCn&rbW=Ba%>C1!-t&yER_`pR)NQ z;#^}nnd^B8S4(Dm+bXADkLyzphj^XZHQ--U7)(DOhQ2S0?)>`uApigXe}y*COA_LH zth3s67J5`^f+yZ+<*!f^hKi|BEeR@C;B|;NX+l(PWMqG*Mv6*|VH1`R2fO|?poV;YhYYOM|MHapOwRXaxP3iPR zuq0z+D_Ng;9v*TIrA%DG_&K7c&;wt?6N|9Fl@gtk?%gzp zzG=E@eS!6;{Tv@4!F_)KIlA5Iq;L8KTzcGGqS;Xd_Mmn(#^3;xPR1B)g?DfGZYWU~ zx*th4HAX(ih;gSoFWUxgykVGK@_ft^%8YuFHe_cIZ6a64lV~!e7Rl^{ooy#JK0AEM z_<(9PU*^}T5gq{kyy_3QgbPqErSFVTKnrb`;CY(cF=lp;;= znw~nE{UO^#YVL-nU7$Qi?`)z;H}Xn4G)m1BRC6yZ!ip-7tTywIK^p(eomRfq<=g{Q zIYH>0z#wxXMl9f$GM(#E`i#tvrwO}`Q33z}0002MyYdwcrl}c|>Fva~00000NkvXX Hu0mjfES5l| diff --git a/tests_zemu/snapshots/sp-icrc_transfer/00007.png b/tests_zemu/snapshots/sp-icrc_transfer/00007.png index 9492c68d7a0efb3e6f6bf3856bf7132c29c15a4c..9652ab9d09643a5d70f80ddc3dccc458a516998a 100644 GIT binary patch delta 679 zcmV;Y0$BaQ1-}K5B!7lUL_t(|ob8%XlI$P|MSWAV6ZgNQ>}5Vu)#c+NBBDuG-SgE= z5DBPJl2QmEgb+dqInKY?2G?~7Nv$=>nbWlQQfn1|QB&11T5aUIF3iN+7&_TgKsl-j zop3;Y18r13-Qy_ejS&>O>OO2^O7x(Ri9ioZBvXN{hz5)u%IEH;Tr z&ak!LoEgwt*4s;B!nShpI7JDX9X=97a}T|)Z5R5ZpsDK{Yn~F2KeW|BBRIt0A(usAUDo@?J zlM~y}+ow&Xv319WUA(Ir8mKbfO@{g+-0FOvO384QQ&%T6qN<^(*b+3IfHp4T-g>ou zCq}qi1;e=TLHLQy!$Vs&rG{ll+WP>!^Rhg7XVMP(sbV{amdd&jc28MT|I*Qqw1OFZZJ*=pcF_ zy)$6(9e=fsCO|D)s%rNSELvd!F7OqQp**`FIG03E*F%zLfFW^~y__}0#YJ{lyA={= z{WU;N0@SbJO41@THKIMrp4x5i!$>h%F^gEBw)wsfvvS9Nq8;Pyh(W>|vHJg4`9)hg z?N+Vdcr!@sncr(}cw5ZbyyylYgb+dqA%qY@2p}PZ5JCtcgb+fu@&~b^4g8>jSTX$*ru@4d*F(~N!Ty_3IOQj{@jZRENxJ`!)kHBuAcFB%XDff#}BC6#! zh+{D2dSe<*$;A0tS0OG>@|Q2zStVjgIlXtX^7trnnH35Kz~U)qA$I#oRO{uYU!`vp`l?_c~8Sg5tJaMkneMdlWE~6B~$~yn1?Si>gGoxRkvQ;5~24i+46&C4VASVPZK)&HI3lr={LtLk@Zj zjR$MvcqbkKwb$HkiJ_KD+BRqE1rN$d~^m{VK~vTp8{ zlmzpy32FvF{2Hzm1(~TC9TAS?ZnY01$ztWB$P?5y-}hlw?c6WaW4s+PD0m~*|Nkn# zNukrOHQLQP!^!RWT6M$PX0GN%GXMYp0000003rYY00000000000I-!miOmp`^63fk P00000NkvXXu0mjfF1DfMMFnO?>|&`7V9X45NxQu?2Gbe@|I# z76CFLDFFZg0Ly*3mVTaRO6fQb*IFi9BF!*OlD9%%P=4sti*JuYMed2|l536Cx>^m$ zgCX=+Ww@Ps@$x9NL#9&hdG1v?CCw-LE>n&vD$cT-;k5$He1Fkzbv7_zG9eyTp>NNx z&2+wHJSLm;0ml@SidgiO-CLHsO3SMDO+gzYc+s*9=CT5GYOd}#s>(h;C68a>n1Xat ze(RQM)}Gl2_Vs#9=U3=Li%o@gbK?(oe^#Qo6B>(_CLFaI-{Hn82;Su@?iQ3He zynk`<9i;DB(0>(g{px95?01fTm(|D7cbWNV8bA6e@(SpaQ>MtdWztgzU?@KoW}YP* zJv9Xlng3+M<|4ZS!p@ZRd(R`nhP7o7-pJAaGnzpr`pZ;8P4pLI40a+5?Zk6F1DKvCMsPQ3pmc`yCY3_~RhB(^}b_k87H z^AK1Nk`e#_05IK`Yw72Crj(B3aIIyqCDIJlBzY^!3+#tZz4-PhROFthF1glNt?Q}* zc`!uzl?}I3FJ2ynHpo=UJMa6mSMtD5|YJa|zZ_8|;!lXjnt)jd= zzgE-vk?|O8(gz$sqq6!{5glT)V1xn(ACCl zZgGnlY(Db(zPM)sirLkdbi{2FQ1ay9o)XPMH0+T4ZNxs6 zVJEysilYc~r#5Vn^p43t(Ge#k+HnS-`p7FMpvFBfuvQmM6L_LoYkBCqN(W ze|ivr QWdHyG07*qoM6N<$g5@`WIRF3v delta 268 zcmV+n0rUR21G)o{Bp`uFL_t(|obB1su7e;9fML#Z-h}smB;I8g%Sc0OWzLaAav;eV zA}pGMUhkv-63OQ@pZS}&Pgl6rtvco3x9(Um1s##rD1T;IW^3OPR<>qNC>|OEhTx1q-ZuiSyD8&fy$%EwsU6!Gj9oZA0 z5BEPkqdiZ)oFrX@2l{i^&$xaB_?FO_XzQQc43=QD3#U*XoU_EUbo^??~%&;b$l_c<{*Zb3D<{2Ovh zxr*EdWpjfC>aiEK6L4W0CF1e&mn+@=$(oOC&GIajRqcu4m^Zb#o;I?%$t^~(+2#3T zvE~FMIn=id#DB6AkmAh2ngZ=Y3yO6Pujbo^_iY;I(`VBL_t(|obB0BZo?oDMNwLHC+vSo?4=)3DT3z-i9L7}?)kDD z3UGZ9qlwEsVqPEZk6+b(ow;kUJUC83RTo6g zSzgyWUHN*mlrokdr=cy@wKYaEh9_fgV@M9O{(WtAty0QS(0}cn?$`QA+wG*ru9oQ@ zZ|6+bJXSjygNH?1(BplyU!u03vd?GUzOlliVI8OZeCvi4ThJRK?C)!0aNL4ga`|`U zmU0!j4a(+>1?sUE^%HPm8#Q8k`OB4F{>Yl!GV}4svsAtlGcmm9No}sDjcjglixC`l zdHq=IIRQxy^?xk`vF!w;ICHS4K)cX}Vx7ag`LyAEn#Otc+4UCv5yO!vsfaGuCch}y zH|0NABO!`^WB$ud%-O|eE@ZX02)6=GmO1~(Vo@ewG7a}?f<8i4)y5%wvk)slem<0p w^FSt?yI;reng9R*0000000000;8XnqQ@t$#Ev@g}01E&B07*qoM6N<$f{!-4NB{r; diff --git a/tests_zemu/snapshots/sp-mainmenu/00003.png b/tests_zemu/snapshots/sp-mainmenu/00003.png index e10e0049c4e39446eb67baea703f77a107925640..8472e5d9cda5ebb93b4d7b4e7b9096cc96903486 100644 GIT binary patch delta 266 zcmV+l0rmd61Goc_Bp`oDL_t(|obB1su7e;9fML#Z-h}smB;I8g%Sc0Ob(ACCl zZgGnlY(Db(zPM)sirLkdbi{2FQ1ay9o)XPMH0+T4ZNxs6 zVJEysilYc~r#5Vn^p43t(Ge#k+HnS-`p7FMpvFBfuvQmM6L_LoYkBCqN(W ze|ivr QWdHyG07*qoM6N<$g5@`WIRF3v delta 268 zcmV+n0rUR21G)o{Bp`uFL_t(|obB1su7e;9fML#Z-h}smB;I8g%Sc0OWzLaAav;eV zA}pGMUhkv-63OQ@pZS}&Pgl6rtvco3x9(Um1s##rD1T;IW^3OPR<>qNC>|OEhTx1q-ZuiSyD8&fy$%EwsU6!Gj9oZA0 z5BEPkqdiZ)oFrX@2l{i^&$xaB_?C8=w z+nesLWxp_evCd@P_o1GjOmE4qid)IHU-GNqH~)HvS(BcwkvSqeD>M3R)!N0|?->7P z;^|Rd?e*07zOUT$1%CsxUi(*H%B_6GG-J=PrzNYHD_?%oir#u;YnZn5N5Ahvw#ud{ zm-hRpXI=*TEj%}_eD*_!$-;8`TUKwllUB~v z&w9bE@>2QxB-ifF<4hTs&Ye%zopr0GWA{ga7~l delta 343 zcmaFP^oePLO1-70i(^Q|oVPdc@*Ps(X-iDnBmD0Fq$+(m0nfK?<{y{4-hZBP^T34l zJkP?o7!cq`ppuf(?Z@KvS)$ipFzyLnYg)zOe>$4Mc6#(CrJ(HG=f4{>141OLm}}k2 z&jf7n{=)F>t48UjryI3=^NoM8US56mf$`#bg7x+6TQpauFBLAo=@V`I+Ff?@(|bq7 z4?J{F^O|aW-&u0{g3p0{*XF-Hx#j6bR*uS^*Dq%<@4WqX>H0n)`Pkkff%irH7qz9@ ze164m7B+oZFKOCwL`$Tz*5cBtkH5|@-Zk^`U*^ZZ?EU%{Px&h@{qWLXVKc+IKE2_B z`NkjH((iup{uD61@L0(OOY!+>GnslWuyMD7E0)Syg0rO>nm%rvOENKOadb;|#taD0e0stQjp7;O& diff --git a/tests_zemu/snapshots/sp-mainmenu/00010.png b/tests_zemu/snapshots/sp-mainmenu/00010.png index c8b61779d42e29d27e1adb1c72da1eb58d9176fa..f4f2127966c7e3ed9d15ceaa83b94aab08f2de9f 100644 GIT binary patch delta 332 zcmeyw^qgseO1++^i(^Q|oVPaC8=w z+nesLWxp_evCd@P_o1GjOmE4qid)IHU-GNqH~)HvS(BcwkvSqeD>M3R)!N0|?->7P z;^|Rd?e*07zOUT$1%CsxUi(*H%B_6GG-J=PrzNYHD_?%oir#u;YnZn5N5Ahvw#ud{ zm-hRpXI=*TEj%}_eD*_!$-;8`TUKwllUB~v z&w9bE@>2QxB-ifF<4hTs&Ye%zopr0GWA{ga7~l delta 343 zcmaFP^oePLO1-70i(^Q|oVPdc@*Ps(X-iDnBmD0Fq$+(m0nfK?<{y{4-hZBP^T34l zJkP?o7!cq`ppuf(?Z@KvS)$ipFzyLnYg)zOe>$4Mc6#(CrJ(HG=f4{>141OLm}}k2 z&jf7n{=)F>t48UjryI3=^NoM8US56mf$`#bg7x+6TQpauFBLAo=@V`I+Ff?@(|bq7 z4?J{F^O|aW-&u0{g3p0{*XF-Hx#j6bR*uS^*Dq%<@4WqX>H0n)`Pkkff%irH7qz9@ ze164m7B+oZFKOCwL`$Tz*5cBtkH5|@-Zk^`U*^ZZ?EU%{Px&h@{qWLXVKc+IKE2_B z`NkjH((iup{uD61@L0(OOY!+>GnslWuyMD7E0)Syg0rO>nm%rvOENKOadb;|#taD0e0stQjp7;O& diff --git a/tests_zemu/snapshots/sp-mainmenu/00011.png b/tests_zemu/snapshots/sp-mainmenu/00011.png index e10e0049c4e39446eb67baea703f77a107925640..8472e5d9cda5ebb93b4d7b4e7b9096cc96903486 100644 GIT binary patch delta 266 zcmV+l0rmd61Goc_Bp`oDL_t(|obB1su7e;9fML#Z-h}smB;I8g%Sc0Ob(ACCl zZgGnlY(Db(zPM)sirLkdbi{2FQ1ay9o)XPMH0+T4ZNxs6 zVJEysilYc~r#5Vn^p43t(Ge#k+HnS-`p7FMpvFBfuvQmM6L_LoYkBCqN(W ze|ivr QWdHyG07*qoM6N<$g5@`WIRF3v delta 268 zcmV+n0rUR21G)o{Bp`uFL_t(|obB1su7e;9fML#Z-h}smB;I8g%Sc0OWzLaAav;eV zA}pGMUhkv-63OQ@pZS}&Pgl6rtvco3x9(Um1s##rD1T;IW^3OPR<>qNC>|OEhTx1q-ZuiSyD8&fy$%EwsU6!Gj9oZA0 z5BEPkqdiZ)oFrX@2l{i^&$xaB_??e8vSM=g;SA}V#zI-#lF0K9Zv=MLCZ|(ZWwoe=N<(mOk zi*hL?OSnh56L15$6VUH{>i&PQCH_LArhGHNMs~X7W(j@6UQn=nGvH=OKrj*j08cSK z$O%1$y1})F$oswM)>`e)kz0iC6zeIsb(rixW;}s8Jd;^BhG;oxW00Ex3%wk<>f~Cw z-oDp2imgI&Ghi!bs3fn|(4UkK~VR5h**d^Lkm}$_%7Z?})El~+N8#`Nn z!sFhJBawRybwhNG>qU6lD7Xj%001DpME^j6B9#}h_KtqIwJ>h3t>4tfFH}2b5Za0u z|6FA^FKyuV!nf`n1Id1`qWeAwO#-K0000003P8NoS+x_OJ!Ml00000NkvXXu0mjf4g1N= diff --git a/tests_zemu/snapshots/sp-pb_add_hotkey/00001.png b/tests_zemu/snapshots/sp-pb_add_hotkey/00001.png deleted file mode 100644 index 5a1d32745174cfe265540728eaea7f0aa10795a4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 509 zcmVyh}s0bIPD=@pQO85d)Go+n={Z$>SXuh%8jx$s+a61t8UnX z_76awzax_<{s_N!QuP~86mIoWE}+32jmO*#413fGJ(S}6ThN^};&$U^D?+J_;)~cW2x&>Xo+j{J;Z!)d}u>8VcZw$uzt6#32 zCI{f$>kBdO(iQcgXzfYKe&g7B7p7J@r<306Tf{3korGrlWIu7pgVF`r55E7L!Wi7d zE_72T$&A5Kq!$1H0000000000000000669w_-L+*2sa`-00000NkvXXu0mjfiCgG+ diff --git a/tests_zemu/snapshots/sp-pb_add_hotkey/00002.png b/tests_zemu/snapshots/sp-pb_add_hotkey/00002.png deleted file mode 100644 index cf3affa5171222f508488826cd88bd71ed64e002..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 505 zcmVlljUr%E@6G9NU+(kb zLF?8$;h{{c&QS}Cl0%CcpJ<9AgBP(A-%9jjwpHsiUG!=#wIF>G=nqA+NcDP#s_I^? zjAYPe#u9+MC||VHGLQ6#YV~>^|C5HQtC7L_*w)it)ljzzevzX)c9oOBJo1eK;CX)1 zT5~quXea|P)K#a*;&f2iqS?;cY}IIFTBA}v67*s{fwRt%4yEa2yzhqKYP|0ZF<1#% zXe9$D6N9PL?)CmQ^gR2X6g`YgrF(G&ka1OOIr`X`}h(?5-ZxwIU8XaF`U vN9%Duv;qJC000000000000000fD`!xWe}sSsQR3|00000NkvXXu0mjf86@5J diff --git a/tests_zemu/snapshots/sp-pb_add_hotkey/00003.png b/tests_zemu/snapshots/sp-pb_add_hotkey/00003.png deleted file mode 100644 index 0f81cda7c92a86d48a7387cca2c5b9a9f6c9527c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 885 zcmV-*1B(2KP)lgKwDcMfo1tn_BCvy9N=1W)MAnokI15uU9`_iZIu8 z)mod=;7wXdL6O)B$uR6i)`O93ecu?D@f-mdF1X684{+uBf|LT~ePzLxz`jAI#B&6Y zO`v?e+2#Xd$Psc0v8_fLJUigwP!cAn9fmfscM8&DSf4j}!YSWmF-ixNE|zb|I(T^$ zDjUG6T8Xcr_rvS`qv_eW4UNpoqWYoZ;L~S-BuSDD7_*@(*%F+D*a~M3XQDXqVVwi4 ztcQlIgW1-i&Igu#w{2)2Xzf`ZC_sd)c9(;cYO9GG2;}tdI-2;!{sYs%PqOg2fpT?V z&oqU@`uJC&5NjCfob`XoXFbLdF#I<|hRa231U1?;JdnlHaONb8X9j)x*W7S1m(ydZ z2zhqaHxuqiuA!qf{SE8@{gQP*;6Ji8H38(`lUNCkeXyM9o0#mU;i%%4eZ2#N=5?PC zkI%6CFuxircyPP@jyRu$HnmiCz=ZfeZmeiLItwL$K_h1$Y{j#A`?I*_?*#{oa0~zXk=ZGlXnK}+fXtDl!cm@ zCHMQB2~O6Qk5gLF7#(8VhF(mDR#~XI+1Q`>hbCsvuFAK=-Q&LNJ#!B5oixa9SZpus zAr6ItBEw+xj_ItiD*Z*C4`a_%Bcn8BK5qa60@>EyJlpNq}2 z5H_*60Fbi{(7E`sZ;az=5o^!>BD0}~3AY9`99QF*v7aPKl6*S9$=ADphFTV600000 LNkvXXu0mjfVP&by diff --git a/tests_zemu/snapshots/sp-pb_add_hotkey/00004.png b/tests_zemu/snapshots/sp-pb_add_hotkey/00004.png deleted file mode 100644 index fc58dfb670461f560b18b6d193d5d4a41b15dcbf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 477 zcmV<30V4j1P)GQ%){W${n|`<|~h2893u8#@O8004a5&v=LsLi(@w{;Ev% zk{q_F%5AN*sh=|OldMV_Co5A18Sy(D%6N0rvd)m~1ERm;q6*x#%`nGk~a zKDIdf8SxXBj9fOegx;Ao6ZMH=XIci7$~l!@x=MLrer2Dhg@y0h+_Vg+c7byGw02*X zLxZwyqq>XqZAco^2EaO1GxGA?8fUyrH^U`JuVa5UZ9p}?(G1&S09-PcKdNP_H<44O ze~eQ`E6cpmtRFwI6K938x((gg;EwvnJa~2b1HeEWI7s8Vx?fAuopMat*T@^AU7yGR;+t+hF~J_E|5Y5mpluQrOTw|)yDyfIkbn;r5c$Ta1ZgtMBy_b}C3)z_ldZn}4eHBqmxwab6wWdoMC ztkt0dP;bKy&1!Y-0Jz7D!J(eB3Z3YtlNke3bT0q^0000000000000000AS`H^YK+Y T<#lt%00000NkvXXu0mjfq1)f7 diff --git a/tests_zemu/snapshots/sp-pb_add_hotkey/00005.png b/tests_zemu/snapshots/sp-pb_add_hotkey/00005.png deleted file mode 100644 index 1e4be69934787c368c2b5ed677cc7f5a2470be3b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 355 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|`hpba4!+nDh2#G+&c}K^PbX0`eJS}y70`%8T>n^%dV>bk>TM}C(cF@9*Jbj^5WTF;gKGIO)y zjlJ*9*PE9W@jdm~5r5wEu#TD8y6+Pnh8_O<-8#^Bx$bnOy3REWn^jXeAFev)TXe-F zTky7j?62N_lL@yzwx7O!=&4O1W7^|)7fcr%%i5*3D%0_G;tl)cpW3Io3*7!cdXW1o sV&B=e%knGs=l(tai5cc!1_ryAe9w9}zGZ%X&;TUp>FVdQ&MBb@086r+N&o-= diff --git a/tests_zemu/snapshots/sp-pb_add_hotkey/00006.png b/tests_zemu/snapshots/sp-pb_add_hotkey/00006.png deleted file mode 100644 index 4c3747edad754c34867ec5f1a66fbe0bb59f7edd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 472 zcmV;}0Vn>6P)NklWPJwn1du000000JxKn=m8widp~r1 zYwblNxzK0y0Pc*P_TM4;LVVLU?czl?jqeS za-k=ts|?>a`zHL-427hBC>;hri0MjB?_Ceh);Q%b+oFp?wjcdj^Ujyq2f1aN0Wz$e ze&3>_Km5Cyc|G*wo@hH?Mt^#xSCaFWEt4RodP_509F-CvPG7L$)ge1Ib1gx0b>lAV zNU|qDmh54>K6(S=o;Y+4004kxVroI|k7}{V`upz8clwD+5pMl*D0AuqCbd%ctl?44 zo*42wyDU$_kD?>R6I(^u{TZy&CDk=jB*6V`;q#r$4|CV0^`+@VOVDCTHvbeez{cW4 zbpCltlDLb21k4MQ+rb#QE06nT?fH@_etD1ZrC5UQj06Ax0001hg}wnoqe+{v@krbN O0000?e8vSM=g;SA}V#zI-#lF0K9Zv=MLCZ|(ZWwoe=N<(mOk zi*hL?OSnh56L15$6VUH{>i&PQCH_LArhGHNMs~X7W(j@6UQn=nGvH=OKrj*j08cSK z$O%1$y1})F$oswM)>`e)kz0iC6zeIsb(rixW;}s8Jd;^BhG;oxW00Ex3%wk<>f~Cw z-oDp2imgI&Ghi!bs3fn|(4UkK~VR5h**d^Lkm}$_%7Z?})El~+N8#`Nn z!sFhJBawRybwhNG>qU6lD7Xj%001DpME^j6B9#}h_KtqIwJ>h3t>4tfFH}2b5Za0u z|6FA^FKyuV!nf`n1Id1`qWeAwO#-K0000003P8NoS+x_OJ!Ml00000NkvXXu0mjf4g1N= diff --git a/tests_zemu/snapshots/sp-pb_check_status/00001.png b/tests_zemu/snapshots/sp-pb_check_status/00001.png deleted file mode 100644 index 030585c6bdff2e722700745500c84176d4730282..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 518 zcmV+h0{Q)kP)jrJ-<;BYJwDj(@ESeHG zrS=tuw%~Vf1&bI*BCe+>ly%R-R^2lS`KO|y7)e*}R@ddpCR)e`7Ti^0`RT3TP!~lD zD`W$$snu6J8^qKOw=;7B5{G*E6UuaH}W4FL|GdoS%wNsc#g1Zqi9@1}(#r7Za&8kti%b6-iU8(@&)?H#M2% z{E`1#ZLnI#N~OJdLJrup1KPDD1FThPeKdUBZCL)dn}F&)i$g&6tBLaSC0j5@hCJDZ&c?000000000000000001oW3y}1{aivR!s diff --git a/tests_zemu/snapshots/sp-pb_check_status/00002.png b/tests_zemu/snapshots/sp-pb_check_status/00002.png deleted file mode 100644 index 1e4be69934787c368c2b5ed677cc7f5a2470be3b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 355 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|`hpba4!+nDh2#G+&c}K^PbX0`eJS}y70`%8T>n^%dV>bk>TM}C(cF@9*Jbj^5WTF;gKGIO)y zjlJ*9*PE9W@jdm~5r5wEu#TD8y6+Pnh8_O<-8#^Bx$bnOy3REWn^jXeAFev)TXe-F zTky7j?62N_lL@yzwx7O!=&4O1W7^|)7fcr%%i5*3D%0_G;tl)cpW3Io3*7!cdXW1o sV&B=e%knGs=l(tai5cc!1_ryAe9w9}zGZ%X&;TUp>FVdQ&MBb@086r+N&o-= diff --git a/tests_zemu/snapshots/sp-pb_check_status/00003.png b/tests_zemu/snapshots/sp-pb_check_status/00003.png deleted file mode 100644 index 4c3747edad754c34867ec5f1a66fbe0bb59f7edd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 472 zcmV;}0Vn>6P)NklWPJwn1du000000JxKn=m8widp~r1 zYwblNxzK0y0Pc*P_TM4;LVVLU?czl?jqeS za-k=ts|?>a`zHL-427hBC>;hri0MjB?_Ceh);Q%b+oFp?wjcdj^Ujyq2f1aN0Wz$e ze&3>_Km5Cyc|G*wo@hH?Mt^#xSCaFWEt4RodP_509F-CvPG7L$)ge1Ib1gx0b>lAV zNU|qDmh54>K6(S=o;Y+4004kxVroI|k7}{V`upz8clwD+5pMl*D0AuqCbd%ctl?44 zo*42wyDU$_kD?>R6I(^u{TZy&CDk=jB*6V`;q#r$4|CV0^`+@VOVDCTHvbeez{cW4 zbpCltlDLb21k4MQ+rb#QE06nT?fH@_etD1ZrC5UQj06Ax0001hg}wnoqe+{v@krbN O0000?e8vSM=g;SA}V#zI-#lF0K9Zv=MLCZ|(ZWwoe=N<(mOk zi*hL?OSnh56L15$6VUH{>i&PQCH_LArhGHNMs~X7W(j@6UQn=nGvH=OKrj*j08cSK z$O%1$y1})F$oswM)>`e)kz0iC6zeIsb(rixW;}s8Jd;^BhG;oxW00Ex3%wk<>f~Cw z-oDp2imgI&Ghi!bs3fn|(4UkK~VR5h**d^Lkm}$_%7Z?})El~+N8#`Nn z!sFhJBawRybwhNG>qU6lD7Xj%001DpME^j6B9#}h_KtqIwJ>h3t>4tfFH}2b5Za0u z|6FA^FKyuV!nf`n1Id1`qWeAwO#-K0000003P8NoS+x_OJ!Ml00000NkvXXu0mjf4g1N= diff --git a/tests_zemu/snapshots/sp-pb_claim_neurons/00001.png b/tests_zemu/snapshots/sp-pb_claim_neurons/00001.png deleted file mode 100644 index 3006c983b81433f0503671305b3bb584294d4a4f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 501 zcmV^wggR6ml085sI@EAbM~86Gwe?O z18_dSJr7a*6aKHH>W(K0*Luk(P-l+%V{QfpA7w%prTG3O=)*ApijVuQ1^`Dfb6znD zk2Zd#`qQla67Dgv*DX3-xP|`!1T&}V@uzwYs-9ftzt)c7%9hn$)PL0o)nZ|D1olxv!oC11jO-b_Xhji1@0 zoB`JdIYnvgT8{T1_G)`aZB{o*dTqju^uGO_`W324Ci~kcsV4iIF$Q;H6}nR+$&A5L rq!$1H00000000000000009fW1cs!D!WSlPX00000NkvXXu0mjft%>F8 diff --git a/tests_zemu/snapshots/sp-pb_claim_neurons/00002.png b/tests_zemu/snapshots/sp-pb_claim_neurons/00002.png deleted file mode 100644 index 1e4be69934787c368c2b5ed677cc7f5a2470be3b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 355 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|`hpba4!+nDh2#G+&c}K^PbX0`eJS}y70`%8T>n^%dV>bk>TM}C(cF@9*Jbj^5WTF;gKGIO)y zjlJ*9*PE9W@jdm~5r5wEu#TD8y6+Pnh8_O<-8#^Bx$bnOy3REWn^jXeAFev)TXe-F zTky7j?62N_lL@yzwx7O!=&4O1W7^|)7fcr%%i5*3D%0_G;tl)cpW3Io3*7!cdXW1o sV&B=e%knGs=l(tai5cc!1_ryAe9w9}zGZ%X&;TUp>FVdQ&MBb@086r+N&o-= diff --git a/tests_zemu/snapshots/sp-pb_claim_neurons/00003.png b/tests_zemu/snapshots/sp-pb_claim_neurons/00003.png deleted file mode 100644 index 4c3747edad754c34867ec5f1a66fbe0bb59f7edd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 472 zcmV;}0Vn>6P)NklWPJwn1du000000JxKn=m8widp~r1 zYwblNxzK0y0Pc*P_TM4;LVVLU?czl?jqeS za-k=ts|?>a`zHL-427hBC>;hri0MjB?_Ceh);Q%b+oFp?wjcdj^Ujyq2f1aN0Wz$e ze&3>_Km5Cyc|G*wo@hH?Mt^#xSCaFWEt4RodP_509F-CvPG7L$)ge1Ib1gx0b>lAV zNU|qDmh54>K6(S=o;Y+4004kxVroI|k7}{V`upz8clwD+5pMl*D0AuqCbd%ctl?44 zo*42wyDU$_kD?>R6I(^u{TZy&CDk=jB*6V`;q#r$4|CV0^`+@VOVDCTHvbeez{cW4 zbpCltlDLb21k4MQ+rb#QE06nT?fH@_etD1ZrC5UQj06Ax0001hg}wnoqe+{v@krbN O0000?e8vSM=g;SA}V#zI-#lF0K9Zv=MLCZ|(ZWwoe=N<(mOk zi*hL?OSnh56L15$6VUH{>i&PQCH_LArhGHNMs~X7W(j@6UQn=nGvH=OKrj*j08cSK z$O%1$y1})F$oswM)>`e)kz0iC6zeIsb(rixW;}s8Jd;^BhG;oxW00Ex3%wk<>f~Cw z-oDp2imgI&Ghi!bs3fn|(4UkK~VR5h**d^Lkm}$_%7Z?})El~+N8#`Nn z!sFhJBawRybwhNG>qU6lD7Xj%001DpME^j6B9#}h_KtqIwJ>h3t>4tfFH}2b5Za0u z|6FA^FKyuV!nf`n1Id1`qWeAwO#-K0000003P8NoS+x_OJ!Ml00000NkvXXu0mjf4g1N= diff --git a/tests_zemu/snapshots/sp-pb_disburse/00001.png b/tests_zemu/snapshots/sp-pb_disburse/00001.png deleted file mode 100644 index d3d8670a67c2f95cb5fa33f55b9689bba9f14123..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 512 zcmV+b0{{JqP)w2ayV0^}O1zZX zSD0FYpWX^BB925nPg$tz=EAMIISb`~MMV*btM^vd_0A?*C<6=TENS`jRxqfOVni!t z6RoM$cbpAkXs6p*IRJ^BO`%-c#_n`jz2S7rPxrNK3!0{GBcgz-wRftQ>|a*hum`Ol zfINRkCQEpJM~Q?gEaktG3V_p&%PrHJg%45 z?&ADzFI4{0Ri$Nvp|i2-*LzybhmW(d$CSnbH8C)p{uy~^{`Y_T3eL6O{#~`VC&D>l zUV|-oCS9 z(XSsS-z*$V!*;CTVcNbr<>67oC-ZZ-9WBqz-<*6?tVzhZ{B~?u%`|TQUu-QqR2EN= zJ=^{!!+H7nPx3$)9B|f5aqgWPxyf{jYO%lGTNRn-1y6FzB|~er7w!Hi6`Fg;cZK@z zl+|+TLS5pUrd?bdxccSPwR=i+b{^VRB>Gxm+UMJQRIa~qo)BWU>iD~|S;dZ1ulZj( zx-hR|cJ-of5jx7PPlc|yK4o4RXs0bH?k3HD`^4Snw^nKEJxz=-ni0PK6O-@UU z?f9cL&b@nh%6;wfZK4y_d}M#R_L!Eu#kVVrwZ5l2;y*8W&%B^6wyWw`-%_`lywzEr zR_aUk%vdvV<3A&j;N-tYA2iPuXe|peFtVF*>h>A!`hD%CbIPRt2hDre(ELyQ%iISI hXQ2oj@JK|3dOgpxnT5Ciwp)QjJzf1=);T3K0RZ@)-~Rvr diff --git a/tests_zemu/snapshots/sp-pb_disburse/00003.png b/tests_zemu/snapshots/sp-pb_disburse/00003.png deleted file mode 100644 index b872e9c11e6cb729a82f662f8fdbdd6d62f4c95a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 892 zcmV-?1B3jDP)bw)Goerk%B>UL7*_Ge|D&#+D}lhsG5( zQChujWTs|x^CuuugmGD$7GWVQiY+$v7Ut_}FCPvTNM&a_?B5TvsO+$_rVafa$QYub5y$@cFWV#}}gcPP7G5@Pz7pA6o zPx5ZZri(Q~TiQ^@mDst%V&Vz#1{ZL*`{3RH;hEr*+uskhdB8_Y0;U-LP9&3&8>X(F zPR~2ay?A5__XY^hw9`PV%@Tz+1qckU=Pq@V6>l);T86>XZ^EFW#z3n7^X~&T;Y{>T zLbjn(7n$A>JeB&L25Aa3e9EYmD>9d?{5G^XZ}1BlNAeS(wH)VVeN*Gj;S0VCBDq6t#JsqMQxF6GJxol1r(kbH zHUNYh$h6t2G!@G52YDouY7%Qw5OW?MNQAXP?G>(S8Bt&|OFKkIKQsDajNbeN5P2aZ zl67B*Mz6`5O5Z|DCwDMWc)_uv!WSN0lM97Hp-?Ck3d@jZpu!gTCQn?f#Ef9X+eh{) zCwkC)fMVn#Zy(rU7*o#tCMLb20S|xjrG8LZZdQu znW?ZI#0(&qbTsJlAN#|&r}6Yp6BlMxP1;OpoMeJx@Q4invJAmZ{THA|op-?Ck3WY+UkjD>_A^W{m SE(+KH0000Nklq~2veCTR#F0@Zf1dGBk+A|j$#`g#EX0002o&QD7EI1c%@wI?1DZvRe^Hq`7<^XlDtikULCLEqU9 zCL@cbL1w(P)>L2FVyemp+9;MC{H>hT=2O`L5&CclT5LvKf7Xq{)6^CeeuP~Ma2&^I z!c#}6#XD7<9UbNVK&drQsmsh{*VEhj1u&1DwW^xnihhUM0vFh_1ANz{yrxoX){HAd z_wr`)ll{7pH4fb3NO=}ajk+~4sc`+fp13PRbasmkfr>T5vt>q z$YGU@*~kK$pCVR~UVz9XSJmJ9u^i0>?~il_&$qrbT`*wR_kf!zd;f9t4#>{L%va9g z=p;H>bd20h{UOW}ruqVE>g>%}n3E^&rJQsFLnq_?+b~>>_iu(ZcoI&bCz&{zHP{O7 v1poj5000000000000000000000NBPKd4AylN<6v000000NkvXXu0mjf-Yo*l diff --git a/tests_zemu/snapshots/sp-pb_disburse/00005.png b/tests_zemu/snapshots/sp-pb_disburse/00005.png deleted file mode 100644 index d89c0380acdb3e1a44fbc7447210dcdcd7327d69..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 463 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|^i)>EaktG3V{g=)S`WJPv_Y zv*xD!_dXT(tXa^>jPZG*^Ofp-x27yt^m7RY={i&!6Mg@??b0o|v$OS&O?;Brq4;!t zWUNDc$*iOO?u#R5cFvfT-G6ppA6tN!^6L6a56fm9UGKhFwo-fQ%;}LYbv4&r+3I4w zXk}@hHTQaJhd0xIWzXexnc>pW9((2L>GX|rx@-M_3ASt<++e?HstUhTX0T&LY>QO$Fg;PCfTD*xO`imj}gX8!J>XyFc%HH+#u z)o?th7E`g=wE0ipv*jIjeRfM{D)ku!{kw2Jp|rGcpY7==?h7`Fa(R`%??(eYD5q{H z7S)ir;HdJG9KBuJCfo~)WcVF9d+#6Z6RaHbB0hf;znN?y7kg>a{Zh&5{^`7jPEQPO zIIJN2*Pu5*_;13RgFYz>XR(w-@6bj>gnp|vd$@?2>>v8 B%3%Ni diff --git a/tests_zemu/snapshots/sp-pb_disburse/00006.png b/tests_zemu/snapshots/sp-pb_disburse/00006.png deleted file mode 100644 index 1e4be69934787c368c2b5ed677cc7f5a2470be3b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 355 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|`hpba4!+nDh2#G+&c}K^PbX0`eJS}y70`%8T>n^%dV>bk>TM}C(cF@9*Jbj^5WTF;gKGIO)y zjlJ*9*PE9W@jdm~5r5wEu#TD8y6+Pnh8_O<-8#^Bx$bnOy3REWn^jXeAFev)TXe-F zTky7j?62N_lL@yzwx7O!=&4O1W7^|)7fcr%%i5*3D%0_G;tl)cpW3Io3*7!cdXW1o sV&B=e%knGs=l(tai5cc!1_ryAe9w9}zGZ%X&;TUp>FVdQ&MBb@086r+N&o-= diff --git a/tests_zemu/snapshots/sp-pb_disburse/00007.png b/tests_zemu/snapshots/sp-pb_disburse/00007.png deleted file mode 100644 index 4c3747edad754c34867ec5f1a66fbe0bb59f7edd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 472 zcmV;}0Vn>6P)NklWPJwn1du000000JxKn=m8widp~r1 zYwblNxzK0y0Pc*P_TM4;LVVLU?czl?jqeS za-k=ts|?>a`zHL-427hBC>;hri0MjB?_Ceh);Q%b+oFp?wjcdj^Ujyq2f1aN0Wz$e ze&3>_Km5Cyc|G*wo@hH?Mt^#xSCaFWEt4RodP_509F-CvPG7L$)ge1Ib1gx0b>lAV zNU|qDmh54>K6(S=o;Y+4004kxVroI|k7}{V`upz8clwD+5pMl*D0AuqCbd%ctl?44 zo*42wyDU$_kD?>R6I(^u{TZy&CDk=jB*6V`;q#r$4|CV0^`+@VOVDCTHvbeez{cW4 zbpCltlDLb21k4MQ+rb#QE06nT?fH@_etD1ZrC5UQj06Ax0001hg}wnoqe+{v@krbN O0000?e8vSM=g;SA}V#zI-#lF0K9Zv=MLCZ|(ZWwoe=N<(mOk zi*hL?OSnh56L15$6VUH{>i&PQCH_LArhGHNMs~X7W(j@6UQn=nGvH=OKrj*j08cSK z$O%1$y1})F$oswM)>`e)kz0iC6zeIsb(rixW;}s8Jd;^BhG;oxW00Ex3%wk<>f~Cw z-oDp2imgI&Ghi!bs3fn|(4UkK~VR5h**d^Lkm}$_%7Z?})El~+N8#`Nn z!sFhJBawRybwhNG>qU6lD7Xj%001DpME^j6B9#}h_KtqIwJ>h3t>4tfFH}2b5Za0u z|6FA^FKyuV!nf`n1Id1`qWeAwO#-K0000003P8NoS+x_OJ!Ml00000NkvXXu0mjf4g1N= diff --git a/tests_zemu/snapshots/sp-pb_follow/00001.png b/tests_zemu/snapshots/sp-pb_follow/00001.png deleted file mode 100644 index 0541da9337630f65fcacfb9d977567fbd4e20bca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 457 zcmV;)0XF`LP)oNt|=>NSqtM!rN(H0iK$1&N*vsxF~NXSteYMOD5}@)XI~^;&^I$FSM+hQa6?C z%XBTl@74-ADh^Lw_gRSRhQhhJAq(=as-lXdsrOvh@y@1Nkb#-vEXnz4tx%Ah6g6@w z>u4=m{fTFT8rtr5Mh<{i&ZZ)lc42p#EZ%S~%XjxRYzyj^+(uM^rq=FMm&$Kemtj{L zKLBC=)=VPz$Nb+(lTSQVIM<6@K$SVFkNGk%j1edFp%ky*f?kdRNO;|MHGsG3JPUeG z?#LxB7G435-mJ%e3Ey{gLR+2j7F7AAql)E@YxrU+DIdng$t|Z_9%{;;``B>{x_QEW zmK_J+zV(W_M%_-kZY5~X_+$27-AYgv=&$2m9ynJD2f7EOx>Q!7 z<7$4(6K(2ruKWQ2Ose&2=oQ&xVs-r|+rn+u;8vFzre2L0=tb<g0yZ`_I000000002+m^aw#vRE1WcLo3e002ovPDHLkV1oMzmmL5A diff --git a/tests_zemu/snapshots/sp-pb_follow/00003.png b/tests_zemu/snapshots/sp-pb_follow/00003.png deleted file mode 100644 index 5d9026314f65e5dff70577c8d3e9625e31b45214..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 361 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|=-xba4!+nDh2#AYZcrPebCi zH){9(d+a?e7r~*qz(Z;2oB#88P92I`*`Wy3!*F@;8ukE1rBzQY`gY&VFLi9~m@@Om z`Qud#=1Xdp?2b;=*tS}7Lj2|jTPmXY7lg}Q%er&E+Lgb*u%(}6%GMQ8b3+z)b3IdL zl>R)iVN+Ge>&~p0&CfLKgaoAcZ@gG?Wl3E9re(8on>Xy5$+%mIk>SIBv0J=v?sn z@15G5vki@#yMY#+jtczi_kbz?(6KK(8)8?7+RHCv&(H90J*RK>>dl|}D#5t^;2U$( zCUpKYnHnJc_vDF2)m0Ogb}LM7b{C8Tc^U~kFpS^+?(msMv6Z$UQBPMtmvv4FO#pqA BpXvYr diff --git a/tests_zemu/snapshots/sp-pb_follow/00004.png b/tests_zemu/snapshots/sp-pb_follow/00004.png deleted file mode 100644 index f22b053b3bfe99f02eb069de8ffde42d9af22921..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 413 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|>w~ba4!+nDh2VE?=_(PebCi zH)?nOd)!I2_wfksI_37$;Qi-prQ(3JqisMv3_RaI?a1)*lshKjze_g#>GRGYuOgnT z7P-T}OZF$3+0I&f<-eOO+kDf47zWkz&(Fz(JioO!s4mPt&}`OSKeh*N-c8FXl(Vt%)rhV(yigW8Gs2pFqfbrDxbd5za z$y2h8Yk6gY1H$}1rQF(jF0CkF`Mdu|zU)X>7E>^JXIg(_#YJp5 z(|x}^S2?QvIxMkJ?N{?gHsgt{X^$*zgdehk0tyM-sbReEUVZ(2xpkL8qMojPF6*2U FngIHXx}*RA diff --git a/tests_zemu/snapshots/sp-pb_follow/00005.png b/tests_zemu/snapshots/sp-pb_follow/00005.png deleted file mode 100644 index 58f4dc38e60683128dafd75bbc82c9bca39eef12..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 416 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|>x5ba4!+nDh2#;G|{+o`%Hj zo6R5obAO~)TW~7H!=c3U$h-fxS3M$mIHue+1L{(^bN-7|@wrb%ORs2dyFYb){*+?9 zTn&FkWjWm%-}Qyl?dH6i@7E`7Yf&;YvTphHj7!W}dkS91W-j&Ye^h6vTXd&lFQeu2 zPg~adY~8m*cIl2#pSW2E=hm6JKRa;n+x(|r*=8Kx;PQ*xd3C|n#p%sg?;cK++ib+@ z>&Te0EXp{}%k!JB`cApadrxL_X?<~?H>>8mN9XCAi+7p+Q$NODdLZe+J;vK7_daXw z&HULFQ*ma&o+(qqKUaswvB_^)UoA27bvEmV@OD{&YeEbM_8a^+x#IbJi~E0;e`5&LkoK>0B_47$En;J;e)78&q Iol`;+0Fg7fsQ>@~ diff --git a/tests_zemu/snapshots/sp-pb_follow/00006.png b/tests_zemu/snapshots/sp-pb_follow/00006.png deleted file mode 100644 index e95f1f2f313cb6a5f6fbad092be5b3e9c4399289..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 412 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|>x4ba4!+nDh2#;HG8;9*4kR z%d89kdnf6?Z=UJH#+2dB@YXiI%R_PF#ajX(?JwgFyZ0Ery8GBd>h7h$y?X$SD&e7R@E%JKf8nqdVx7sJQ@8JH<($al?mb}f3Q<}TB z&FHNP=bslUz4^A<`BVK@_ZrUGS^PlzE{o4>PKF2SJ@wMBj@RhrY)_E*+jiXMO5V+D zJ@QG;HeVOjo!h;j<^Jk@eqqvH7gT2Nx%lT;ukeS47wwFVdQ&MBb@ E0Nc&J#Q*>R diff --git a/tests_zemu/snapshots/sp-pb_follow/00007.png b/tests_zemu/snapshots/sp-pb_follow/00007.png deleted file mode 100644 index 1e4be69934787c368c2b5ed677cc7f5a2470be3b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 355 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|`hpba4!+nDh2#G+&c}K^PbX0`eJS}y70`%8T>n^%dV>bk>TM}C(cF@9*Jbj^5WTF;gKGIO)y zjlJ*9*PE9W@jdm~5r5wEu#TD8y6+Pnh8_O<-8#^Bx$bnOy3REWn^jXeAFev)TXe-F zTky7j?62N_lL@yzwx7O!=&4O1W7^|)7fcr%%i5*3D%0_G;tl)cpW3Io3*7!cdXW1o sV&B=e%knGs=l(tai5cc!1_ryAe9w9}zGZ%X&;TUp>FVdQ&MBb@086r+N&o-= diff --git a/tests_zemu/snapshots/sp-pb_follow/00008.png b/tests_zemu/snapshots/sp-pb_follow/00008.png deleted file mode 100644 index 4c3747edad754c34867ec5f1a66fbe0bb59f7edd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 472 zcmV;}0Vn>6P)NklWPJwn1du000000JxKn=m8widp~r1 zYwblNxzK0y0Pc*P_TM4;LVVLU?czl?jqeS za-k=ts|?>a`zHL-427hBC>;hri0MjB?_Ceh);Q%b+oFp?wjcdj^Ujyq2f1aN0Wz$e ze&3>_Km5Cyc|G*wo@hH?Mt^#xSCaFWEt4RodP_509F-CvPG7L$)ge1Ib1gx0b>lAV zNU|qDmh54>K6(S=o;Y+4004kxVroI|k7}{V`upz8clwD+5pMl*D0AuqCbd%ctl?44 zo*42wyDU$_kD?>R6I(^u{TZy&CDk=jB*6V`;q#r$4|CV0^`+@VOVDCTHvbeez{cW4 zbpCltlDLb21k4MQ+rb#QE06nT?fH@_etD1ZrC5UQj06Ax0001hg}wnoqe+{v@krbN O0000?e8vSM=g;SA}V#zI-#lF0K9Zv=MLCZ|(ZWwoe=N<(mOk zi*hL?OSnh56L15$6VUH{>i&PQCH_LArhGHNMs~X7W(j@6UQn=nGvH=OKrj*j08cSK z$O%1$y1})F$oswM)>`e)kz0iC6zeIsb(rixW;}s8Jd;^BhG;oxW00Ex3%wk<>f~Cw z-oDp2imgI&Ghi!bs3fn|(4UkK~VR5h**d^Lkm}$_%7Z?})El~+N8#`Nn z!sFhJBawRybwhNG>qU6lD7Xj%001DpME^j6B9#}h_KtqIwJ>h3t>4tfFH}2b5Za0u z|6FA^FKyuV!nf`n1Id1`qWeAwO#-K0000003P8NoS+x_OJ!Ml00000NkvXXu0mjf4g1N= diff --git a/tests_zemu/snapshots/sp-pb_increase_dissolve_delay/00001.png b/tests_zemu/snapshots/sp-pb_increase_dissolve_delay/00001.png deleted file mode 100644 index 814335b0c778e6d4c317668280f4301a1de47754..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 607 zcmV-l0-*hgP)m15i<&+LX}Vv3xU zIM>y+1;1MrG>9JwGM=Kqb+fRho1;)3C5pt8rrEWrd1WIOO2;m9m1z95Dj0~1!h;sF z4r`+N9oGhu+HN~D6Ogc@Nhr6rQJogU3rFZBkCpgomJIsC-W1K z*RN+0#XqjkN-AFQh_E(Gxq+N9^7~wM49tNC^rjH+FF`K{2@rVQb2R_}ba2RxSNx09m_{G8+7>l>oK>&vxvG{)A4xN~4c^Al2Awh<^=h|{ zOWIq+cFgl*g!#=lC!V^&7vRWr;#%&u)~!p}mH@45#>++7uOFE!o8p%H3{K(nC*ju4 zu-}x^auOTdF$Q!8Oq@x31*jd;ic(&-#-&fY3lL2;S#CP7DwXgaa$EVoQG<-=FGC15 zqQ4mAU?-?TJE;U2Ik*)b-p()M)*!wC*Cg=*Yd-!q=W{piwpPR-M*lMZPESk|TR^YF z-{$mmRnOcdkKX~#@nd;v0*p$s{nOGWo|*tZf&F{nC{9m+*yi+iM!^xBoRZUD$be@< tz7zrg0000000000000000000i<`*7SCs)eF+vNZN002ovPDHLkV1itx3ZVc1 diff --git a/tests_zemu/snapshots/sp-pb_increase_dissolve_delay/00002.png b/tests_zemu/snapshots/sp-pb_increase_dissolve_delay/00002.png deleted file mode 100644 index 35c03a15d647ed477ea55c22a0efdbc0d5a64f99..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 343 zcmV-d0jU0oP)-kZY5~X_+$27-AYgv=&$2m9ynJD2f7EOx>Q!7 z<7$4(6K(2ruKWQ2Ose&2=oQ&xVs-r|+rn+u;8vFzre2L0=tb<g0yZ`_I000000002+m^aw#vRE1WcLo3e002ovPDHLkV1oMzmmL5A diff --git a/tests_zemu/snapshots/sp-pb_increase_dissolve_delay/00003.png b/tests_zemu/snapshots/sp-pb_increase_dissolve_delay/00003.png deleted file mode 100644 index f8b982022eefc8d951a826eb95e951ef557d1d0d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 423 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|`Jiba4!+nDh2#bl+hG9*4j* z6YIqP-bwnO1CKhH1tf7yc{Oi+SIhEd;fn$w?N96Omat0yyBxjZ#Y$M3Q<_9!him?d)%b( zEw5kn#qSoZ-fD4W_ulHVhNytu9pAEYBZA^;KIC4TR8(5L=f=a*N&B*TZ|Hrx|1Ra} zea5T>bI;f9f3$Dq*#d*fUsA5LPnv4aaC`Ie6}ckqWewdg^EMp6t*PO^PfP#yZ1=e3 z+ujxHKR-Cl-EP{Pc*n|jVXa5s?>UyNWG-?!@5PL`#jR31BYjn3kL^C7)Erp&j^Tmw zgeeROTiu@7>M76vE_%gcg2lxrmoKnN{Z~qmEwzaHQ`_=6=)!bGhS`D*XG<9RPA`0D zHO2l>$b+*S_VrBh3wE7Y^UtVtY1&tDWj5=Ht!0mF_XwZn28I|iuz4o`hEu8TO0}g7 ONZ8ZW&t;ucLK6U)P`*3> diff --git a/tests_zemu/snapshots/sp-pb_increase_dissolve_delay/00004.png b/tests_zemu/snapshots/sp-pb_increase_dissolve_delay/00004.png deleted file mode 100644 index 1e4be69934787c368c2b5ed677cc7f5a2470be3b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 355 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|`hpba4!+nDh2#G+&c}K^PbX0`eJS}y70`%8T>n^%dV>bk>TM}C(cF@9*Jbj^5WTF;gKGIO)y zjlJ*9*PE9W@jdm~5r5wEu#TD8y6+Pnh8_O<-8#^Bx$bnOy3REWn^jXeAFev)TXe-F zTky7j?62N_lL@yzwx7O!=&4O1W7^|)7fcr%%i5*3D%0_G;tl)cpW3Io3*7!cdXW1o sV&B=e%knGs=l(tai5cc!1_ryAe9w9}zGZ%X&;TUp>FVdQ&MBb@086r+N&o-= diff --git a/tests_zemu/snapshots/sp-pb_increase_dissolve_delay/00005.png b/tests_zemu/snapshots/sp-pb_increase_dissolve_delay/00005.png deleted file mode 100644 index 4c3747edad754c34867ec5f1a66fbe0bb59f7edd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 472 zcmV;}0Vn>6P)NklWPJwn1du000000JxKn=m8widp~r1 zYwblNxzK0y0Pc*P_TM4;LVVLU?czl?jqeS za-k=ts|?>a`zHL-427hBC>;hri0MjB?_Ceh);Q%b+oFp?wjcdj^Ujyq2f1aN0Wz$e ze&3>_Km5Cyc|G*wo@hH?Mt^#xSCaFWEt4RodP_509F-CvPG7L$)ge1Ib1gx0b>lAV zNU|qDmh54>K6(S=o;Y+4004kxVroI|k7}{V`upz8clwD+5pMl*D0AuqCbd%ctl?44 zo*42wyDU$_kD?>R6I(^u{TZy&CDk=jB*6V`;q#r$4|CV0^`+@VOVDCTHvbeez{cW4 zbpCltlDLb21k4MQ+rb#QE06nT?fH@_etD1ZrC5UQj06Ax0001hg}wnoqe+{v@krbN O0000?e8vSM=g;SA}V#zI-#lF0K9Zv=MLCZ|(ZWwoe=N<(mOk zi*hL?OSnh56L15$6VUH{>i&PQCH_LArhGHNMs~X7W(j@6UQn=nGvH=OKrj*j08cSK z$O%1$y1})F$oswM)>`e)kz0iC6zeIsb(rixW;}s8Jd;^BhG;oxW00Ex3%wk<>f~Cw z-oDp2imgI&Ghi!bs3fn|(4UkK~VR5h**d^Lkm}$_%7Z?})El~+N8#`Nn z!sFhJBawRybwhNG>qU6lD7Xj%001DpME^j6B9#}h_KtqIwJ>h3t>4tfFH}2b5Za0u z|6FA^FKyuV!nf`n1Id1`qWeAwO#-K0000003P8NoS+x_OJ!Ml00000NkvXXu0mjf4g1N= diff --git a/tests_zemu/snapshots/sp-pb_join_community_fund/00001.png b/tests_zemu/snapshots/sp-pb_join_community_fund/00001.png deleted file mode 100644 index 890d0a4ccc76da1a385d54985d668ff28cf4c92e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 524 zcmV+n0`vWeP)3_wwm%1yZck+@41uDEC+WFf##SO2$*n?V+XZITiI003~iuh9yn6mcczyeOEs zBdY%p$xTWr?MS?D01w{I@CrDH8COclIiDBnn^DW0*V~e6-K4F&x>y^Jr+1@e(UiC; zwXYOfg5RSRdPE!tas9|bTlXy7t9xdl{#8^Ikqq_T>$=_9L<@Cb$($uUKcf{4>ZI`K zr7X~zT7Ac}K@4rUos|P{u(K)DOWW9;Zq{x%m*vBKE!%>^)NMo*7;0^%dd+^bx(wTC z{Q#Wv*E5OApY*zus!u#oxYtX)fSft<$9x$W)@T#DDaFrkK_89*P<-5XH2^r-ZvxKu zg!TnvDy9(iC1?JHa`8i3xRV|twky(2Jn4B7(;qjB}mUhksV zWxDOIMGN6Y6CVIIzMB23-KOUd$qvK5I71zk@ImDI!#F>65o~=P*i&KhWIyJ~0Z{F` z^LDo0*0tf`FX7RH-*@cMCRc!ezs{Zi@Qo7f*iY1%Faps!hsr;w7wL5#AbWa3Pd9;{ zqj0jngpx)wdo#x1N%36>^DdIi7;Hs)0RR9100000000000001hZGHhM53M+n26Dv! O0000-kZY5~X_+$27-AYgv=&$2m9ynJD2f7EOx>Q!7 z<7$4(6K(2ruKWQ2Ose&2=oQ&xVs-r|+rn+u;8vFzre2L0=tb<g0yZ`_I000000002+m^aw#vRE1WcLo3e002ovPDHLkV1oMzmmL5A diff --git a/tests_zemu/snapshots/sp-pb_join_community_fund/00003.png b/tests_zemu/snapshots/sp-pb_join_community_fund/00003.png deleted file mode 100644 index 1e4be69934787c368c2b5ed677cc7f5a2470be3b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 355 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|`hpba4!+nDh2#G+&c}K^PbX0`eJS}y70`%8T>n^%dV>bk>TM}C(cF@9*Jbj^5WTF;gKGIO)y zjlJ*9*PE9W@jdm~5r5wEu#TD8y6+Pnh8_O<-8#^Bx$bnOy3REWn^jXeAFev)TXe-F zTky7j?62N_lL@yzwx7O!=&4O1W7^|)7fcr%%i5*3D%0_G;tl)cpW3Io3*7!cdXW1o sV&B=e%knGs=l(tai5cc!1_ryAe9w9}zGZ%X&;TUp>FVdQ&MBb@086r+N&o-= diff --git a/tests_zemu/snapshots/sp-pb_join_community_fund/00004.png b/tests_zemu/snapshots/sp-pb_join_community_fund/00004.png deleted file mode 100644 index 4c3747edad754c34867ec5f1a66fbe0bb59f7edd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 472 zcmV;}0Vn>6P)NklWPJwn1du000000JxKn=m8widp~r1 zYwblNxzK0y0Pc*P_TM4;LVVLU?czl?jqeS za-k=ts|?>a`zHL-427hBC>;hri0MjB?_Ceh);Q%b+oFp?wjcdj^Ujyq2f1aN0Wz$e ze&3>_Km5Cyc|G*wo@hH?Mt^#xSCaFWEt4RodP_509F-CvPG7L$)ge1Ib1gx0b>lAV zNU|qDmh54>K6(S=o;Y+4004kxVroI|k7}{V`upz8clwD+5pMl*D0AuqCbd%ctl?44 zo*42wyDU$_kD?>R6I(^u{TZy&CDk=jB*6V`;q#r$4|CV0^`+@VOVDCTHvbeez{cW4 zbpCltlDLb21k4MQ+rb#QE06nT?fH@_etD1ZrC5UQj06Ax0001hg}wnoqe+{v@krbN O0000?e8vSM=g;SA}V#zI-#lF0K9Zv=MLCZ|(ZWwoe=N<(mOk zi*hL?OSnh56L15$6VUH{>i&PQCH_LArhGHNMs~X7W(j@6UQn=nGvH=OKrj*j08cSK z$O%1$y1})F$oswM)>`e)kz0iC6zeIsb(rixW;}s8Jd;^BhG;oxW00Ex3%wk<>f~Cw z-oDp2imgI&Ghi!bs3fn|(4UkK~VR5h**d^Lkm}$_%7Z?})El~+N8#`Nn z!sFhJBawRybwhNG>qU6lD7Xj%001DpME^j6B9#}h_KtqIwJ>h3t>4tfFH}2b5Za0u z|6FA^FKyuV!nf`n1Id1`qWeAwO#-K0000003P8NoS+x_OJ!Ml00000NkvXXu0mjf4g1N= diff --git a/tests_zemu/snapshots/sp-pb_list_neurons/00001.png b/tests_zemu/snapshots/sp-pb_list_neurons/00001.png deleted file mode 100644 index c436da5a411e682155c5c3869feb9e114f45428f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 529 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|_uA>EaktG3V_}@4O=lJPw&x zXFvJp{zxx&fl^k^zX>j%?#`>rKW14!@4-pM zJ>P$N?77}3z5DWBCZ?ogmG9TT?$W<}ZiUguTD_I8ta6_&P1J9trWR&-tl zXWe(L2o8IuN3|VJ>!e$C?@F|OiC?H;^D^shmeu*3Lr$+|XrB}6o*&oB^lC}QL9Uw( zrlGaR?kYO^@kiiq^7f{uZG>A8wnrbV1@36D5{iYtF7%KE*#Qbh~t< zJwxHYZ9Yo>+kemZyejL@5xsT^_XDyT)JiL(k98%uU9Yh zi+;9!^ZCgq&*kmm{4Q47n)IT7>Sc3N+cO2-MXV)XuiX+_`_{WADoDF~wSc_BY3r=e zy$UzCa)uxJ-Bo=1wqdi+m;Qw^PbX0`eJS}y70`%8T>n^%dV>bk>TM}C(cF@9*Jbj^5WTF;gKGIO)y zjlJ*9*PE9W@jdm~5r5wEu#TD8y6+Pnh8_O<-8#^Bx$bnOy3REWn^jXeAFev)TXe-F zTky7j?62N_lL@yzwx7O!=&4O1W7^|)7fcr%%i5*3D%0_G;tl)cpW3Io3*7!cdXW1o sV&B=e%knGs=l(tai5cc!1_ryAe9w9}zGZ%X&;TUp>FVdQ&MBb@086r+N&o-= diff --git a/tests_zemu/snapshots/sp-pb_list_neurons/00003.png b/tests_zemu/snapshots/sp-pb_list_neurons/00003.png deleted file mode 100644 index 4c3747edad754c34867ec5f1a66fbe0bb59f7edd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 472 zcmV;}0Vn>6P)NklWPJwn1du000000JxKn=m8widp~r1 zYwblNxzK0y0Pc*P_TM4;LVVLU?czl?jqeS za-k=ts|?>a`zHL-427hBC>;hri0MjB?_Ceh);Q%b+oFp?wjcdj^Ujyq2f1aN0Wz$e ze&3>_Km5Cyc|G*wo@hH?Mt^#xSCaFWEt4RodP_509F-CvPG7L$)ge1Ib1gx0b>lAV zNU|qDmh54>K6(S=o;Y+4004kxVroI|k7}{V`upz8clwD+5pMl*D0AuqCbd%ctl?44 zo*42wyDU$_kD?>R6I(^u{TZy&CDk=jB*6V`;q#r$4|CV0^`+@VOVDCTHvbeez{cW4 zbpCltlDLb21k4MQ+rb#QE06nT?fH@_etD1ZrC5UQj06Ax0001hg}wnoqe+{v@krbN O0000?e8vSM=g;SA}V#zI-#lF0K9Zv=MLCZ|(ZWwoe=N<(mOk zi*hL?OSnh56L15$6VUH{>i&PQCH_LArhGHNMs~X7W(j@6UQn=nGvH=OKrj*j08cSK z$O%1$y1})F$oswM)>`e)kz0iC6zeIsb(rixW;}s8Jd;^BhG;oxW00Ex3%wk<>f~Cw z-oDp2imgI&Ghi!bs3fn|(4UkK~VR5h**d^Lkm}$_%7Z?})El~+N8#`Nn z!sFhJBawRybwhNG>qU6lD7Xj%001DpME^j6B9#}h_KtqIwJ>h3t>4tfFH}2b5Za0u z|6FA^FKyuV!nf`n1Id1`qWeAwO#-K0000003P8NoS+x_OJ!Ml00000NkvXXu0mjf4g1N= diff --git a/tests_zemu/snapshots/sp-pb_register_vote/00001.png b/tests_zemu/snapshots/sp-pb_register_vote/00001.png deleted file mode 100644 index b497a3604e4e1a04aae0d46ad9d76232a3a4c93d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 519 zcmV+i0{H!jP)m@rg`hX~-fzUQlTKo(EO#5n)}0N}VUYlRSkxZ=HEl+3)C z)hA?fNC=@EiTfsSVROtYAQCe!gy6kT7xTubWzzMsq*~W$D=#lr<}-5lMr096G)ldf zn_7b3)(SNuk4RjPy-?Oog==+FFXW$!iXs!!-D|flcQz3rPs}xENzIS7LW4RfM%21& zBAQx#$Fo5U?R1=#0}!=)Q^=QgV|O~N+;F<(r|-3F3!0{GBcgyQ+B?;A?Qd4yv*FWIf=l&B2j4X+2qwMbGR=+XtYw$%taLcb`Y9-@<4L&E!{ipr&q$#*br+Y7%WsS$|zf^7DRV{zo064Xc*EW0l zh55cdZVVpf<94A(>2xwDi6bW1c9pKFyfMd%(LO{YM02sZr$)kj^FNPnJSmPoV)mdAidWainAu_o0jGIsUa$)x+0Rrn0x*B%=i=TW?7G?#WJ>iYrJyS>EePp;Yn%SUZ-xYxO&Rk$1>>ewf&jq z59j7`n#&2_R=zs>!};v}drscJVz0RFkSq5tW1#20r*4$K<^A^J=0cXcIS;RuDf9L3 z*m@@TLa6xG>E;jPu9Rn%6mPnHp{ZxZ?rYhRI~c@0?5BKh*!nLt_x1g^@fIEB3$N{5 zmvv%EzFX(4FTH`yGha9v%eMINwkgGd{EP$=W|&VqevC!5K~fSV>gnp|vd$@?2>{`Y Bo|FIp diff --git a/tests_zemu/snapshots/sp-pb_register_vote/00004.png b/tests_zemu/snapshots/sp-pb_register_vote/00004.png deleted file mode 100644 index 0a0b3ec17d9644ba0068eff79abda4ef06a1373f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 300 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h5*QlC9t978JRyuInzb=ZK1;lP_s z_8Cx-sd vF7sOZD?W`k%&0YN6aV@pdw@QLf)9rOi~HAmE)z4*}Q$iB}sJ@3; diff --git a/tests_zemu/snapshots/sp-pb_register_vote/00005.png b/tests_zemu/snapshots/sp-pb_register_vote/00005.png deleted file mode 100644 index 1e4be69934787c368c2b5ed677cc7f5a2470be3b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 355 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|`hpba4!+nDh2#G+&c}K^PbX0`eJS}y70`%8T>n^%dV>bk>TM}C(cF@9*Jbj^5WTF;gKGIO)y zjlJ*9*PE9W@jdm~5r5wEu#TD8y6+Pnh8_O<-8#^Bx$bnOy3REWn^jXeAFev)TXe-F zTky7j?62N_lL@yzwx7O!=&4O1W7^|)7fcr%%i5*3D%0_G;tl)cpW3Io3*7!cdXW1o sV&B=e%knGs=l(tai5cc!1_ryAe9w9}zGZ%X&;TUp>FVdQ&MBb@086r+N&o-= diff --git a/tests_zemu/snapshots/sp-pb_register_vote/00006.png b/tests_zemu/snapshots/sp-pb_register_vote/00006.png deleted file mode 100644 index 4c3747edad754c34867ec5f1a66fbe0bb59f7edd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 472 zcmV;}0Vn>6P)NklWPJwn1du000000JxKn=m8widp~r1 zYwblNxzK0y0Pc*P_TM4;LVVLU?czl?jqeS za-k=ts|?>a`zHL-427hBC>;hri0MjB?_Ceh);Q%b+oFp?wjcdj^Ujyq2f1aN0Wz$e ze&3>_Km5Cyc|G*wo@hH?Mt^#xSCaFWEt4RodP_509F-CvPG7L$)ge1Ib1gx0b>lAV zNU|qDmh54>K6(S=o;Y+4004kxVroI|k7}{V`upz8clwD+5pMl*D0AuqCbd%ctl?44 zo*42wyDU$_kD?>R6I(^u{TZy&CDk=jB*6V`;q#r$4|CV0^`+@VOVDCTHvbeez{cW4 zbpCltlDLb21k4MQ+rb#QE06nT?fH@_etD1ZrC5UQj06Ax0001hg}wnoqe+{v@krbN O0000?e8vSM=g;SA}V#zI-#lF0K9Zv=MLCZ|(ZWwoe=N<(mOk zi*hL?OSnh56L15$6VUH{>i&PQCH_LArhGHNMs~X7W(j@6UQn=nGvH=OKrj*j08cSK z$O%1$y1})F$oswM)>`e)kz0iC6zeIsb(rixW;}s8Jd;^BhG;oxW00Ex3%wk<>f~Cw z-oDp2imgI&Ghi!bs3fn|(4UkK~VR5h**d^Lkm}$_%7Z?})El~+N8#`Nn z!sFhJBawRybwhNG>qU6lD7Xj%001DpME^j6B9#}h_KtqIwJ>h3t>4tfFH}2b5Za0u z|6FA^FKyuV!nf`n1Id1`qWeAwO#-K0000003P8NoS+x_OJ!Ml00000NkvXXu0mjf4g1N= diff --git a/tests_zemu/snapshots/sp-pb_remove_hotkey/00001.png b/tests_zemu/snapshots/sp-pb_remove_hotkey/00001.png deleted file mode 100644 index 0d62dfccadba89f35c16710b5bb45481624358e7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 517 zcmV+g0{Z=lP)YW_w$7}Q14 zqgJwsXlnNr-wk4Fr{j1|z{#$rkZ*0{blR*uaGLF>$8tM@rm4q>XfPD*O81=oX4Oo) zlm7&y_1m+E;!AixN!4#W(YQ8BzJWSx)Sq)RG59D8x~RnWA3lljUr%E@6G9NU+(kb zLF?8$;h{{c&QS}Cl0%CcpJ<9AgBP(A-%9jjwpHsiUG!=#wIF>G=nqA+NcDP#s_I^? zjAYPe#u9+MC||VHGLQ6#YV~>^|C5HQtC7L_*w)it)ljzzevzX)c9oOBJo1eK;CX)1 zT5~quXea|P)K#a*;&f2iqS?;cY}IIFTBA}v67*s{fwRt%4yEa2yzhqKYP|0ZF<1#% zXe9$D6N9PL?)CmQ^gR2X6g`YgrF(G&ka1OOIr`X`}h(?5-ZxwIU8XaF`U vN9%Duv;qJC000000000000000fD`!xWe}sSsQR3|00000NkvXXu0mjf86@5J diff --git a/tests_zemu/snapshots/sp-pb_remove_hotkey/00003.png b/tests_zemu/snapshots/sp-pb_remove_hotkey/00003.png deleted file mode 100644 index 0f81cda7c92a86d48a7387cca2c5b9a9f6c9527c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 885 zcmV-*1B(2KP)lgKwDcMfo1tn_BCvy9N=1W)MAnokI15uU9`_iZIu8 z)mod=;7wXdL6O)B$uR6i)`O93ecu?D@f-mdF1X684{+uBf|LT~ePzLxz`jAI#B&6Y zO`v?e+2#Xd$Psc0v8_fLJUigwP!cAn9fmfscM8&DSf4j}!YSWmF-ixNE|zb|I(T^$ zDjUG6T8Xcr_rvS`qv_eW4UNpoqWYoZ;L~S-BuSDD7_*@(*%F+D*a~M3XQDXqVVwi4 ztcQlIgW1-i&Igu#w{2)2Xzf`ZC_sd)c9(;cYO9GG2;}tdI-2;!{sYs%PqOg2fpT?V z&oqU@`uJC&5NjCfob`XoXFbLdF#I<|hRa231U1?;JdnlHaONb8X9j)x*W7S1m(ydZ z2zhqaHxuqiuA!qf{SE8@{gQP*;6Ji8H38(`lUNCkeXyM9o0#mU;i%%4eZ2#N=5?PC zkI%6CFuxircyPP@jyRu$HnmiCz=ZfeZmeiLItwL$K_h1$Y{j#A`?I*_?*#{oa0~zXk=ZGlXnK}+fXtDl!cm@ zCHMQB2~O6Qk5gLF7#(8VhF(mDR#~XI+1Q`>hbCsvuFAK=-Q&LNJ#!B5oixa9SZpus zAr6ItBEw+xj_ItiD*Z*C4`a_%Bcn8BK5qa60@>EyJlpNq}2 z5H_*60Fbi{(7E`sZ;az=5o^!>BD0}~3AY9`99QF*v7aPKl6*S9$=ADphFTV600000 LNkvXXu0mjfVP&by diff --git a/tests_zemu/snapshots/sp-pb_remove_hotkey/00004.png b/tests_zemu/snapshots/sp-pb_remove_hotkey/00004.png deleted file mode 100644 index fc58dfb670461f560b18b6d193d5d4a41b15dcbf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 477 zcmV<30V4j1P)GQ%){W${n|`<|~h2893u8#@O8004a5&v=LsLi(@w{;Ev% zk{q_F%5AN*sh=|OldMV_Co5A18Sy(D%6N0rvd)m~1ERm;q6*x#%`nGk~a zKDIdf8SxXBj9fOegx;Ao6ZMH=XIci7$~l!@x=MLrer2Dhg@y0h+_Vg+c7byGw02*X zLxZwyqq>XqZAco^2EaO1GxGA?8fUyrH^U`JuVa5UZ9p}?(G1&S09-PcKdNP_H<44O ze~eQ`E6cpmtRFwI6K938x((gg;EwvnJa~2b1HeEWI7s8Vx?fAuopMat*T@^AU7yGR;+t+hF~J_E|5Y5mpluQrOTw|)yDyfIkbn;r5c$Ta1ZgtMBy_b}C3)z_ldZn}4eHBqmxwab6wWdoMC ztkt0dP;bKy&1!Y-0Jz7D!J(eB3Z3YtlNke3bT0q^0000000000000000AS`H^YK+Y T<#lt%00000NkvXXu0mjfq1)f7 diff --git a/tests_zemu/snapshots/sp-pb_remove_hotkey/00005.png b/tests_zemu/snapshots/sp-pb_remove_hotkey/00005.png deleted file mode 100644 index 1e4be69934787c368c2b5ed677cc7f5a2470be3b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 355 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|`hpba4!+nDh2#G+&c}K^PbX0`eJS}y70`%8T>n^%dV>bk>TM}C(cF@9*Jbj^5WTF;gKGIO)y zjlJ*9*PE9W@jdm~5r5wEu#TD8y6+Pnh8_O<-8#^Bx$bnOy3REWn^jXeAFev)TXe-F zTky7j?62N_lL@yzwx7O!=&4O1W7^|)7fcr%%i5*3D%0_G;tl)cpW3Io3*7!cdXW1o sV&B=e%knGs=l(tai5cc!1_ryAe9w9}zGZ%X&;TUp>FVdQ&MBb@086r+N&o-= diff --git a/tests_zemu/snapshots/sp-pb_remove_hotkey/00006.png b/tests_zemu/snapshots/sp-pb_remove_hotkey/00006.png deleted file mode 100644 index 4c3747edad754c34867ec5f1a66fbe0bb59f7edd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 472 zcmV;}0Vn>6P)NklWPJwn1du000000JxKn=m8widp~r1 zYwblNxzK0y0Pc*P_TM4;LVVLU?czl?jqeS za-k=ts|?>a`zHL-427hBC>;hri0MjB?_Ceh);Q%b+oFp?wjcdj^Ujyq2f1aN0Wz$e ze&3>_Km5Cyc|G*wo@hH?Mt^#xSCaFWEt4RodP_509F-CvPG7L$)ge1Ib1gx0b>lAV zNU|qDmh54>K6(S=o;Y+4004kxVroI|k7}{V`upz8clwD+5pMl*D0AuqCbd%ctl?44 zo*42wyDU$_kD?>R6I(^u{TZy&CDk=jB*6V`;q#r$4|CV0^`+@VOVDCTHvbeez{cW4 zbpCltlDLb21k4MQ+rb#QE06nT?fH@_etD1ZrC5UQj06Ax0001hg}wnoqe+{v@krbN O0000?e8vSM=g;SA}V#zI-#lF0K9Zv=MLCZ|(ZWwoe=N<(mOk zi*hL?OSnh56L15$6VUH{>i&PQCH_LArhGHNMs~X7W(j@6UQn=nGvH=OKrj*j08cSK z$O%1$y1})F$oswM)>`e)kz0iC6zeIsb(rixW;}s8Jd;^BhG;oxW00Ex3%wk<>f~Cw z-oDp2imgI&Ghi!bs3fn|(4UkK~VR5h**d^Lkm}$_%7Z?})El~+N8#`Nn z!sFhJBawRybwhNG>qU6lD7Xj%001DpME^j6B9#}h_KtqIwJ>h3t>4tfFH}2b5Za0u z|6FA^FKyuV!nf`n1Id1`qWeAwO#-K0000003P8NoS+x_OJ!Ml00000NkvXXu0mjf4g1N= diff --git a/tests_zemu/snapshots/sp-pb_sign_update_call/00001.png b/tests_zemu/snapshots/sp-pb_sign_update_call/00001.png deleted file mode 100644 index 76706da37adeb20b7c40085af6b9e1e396f8b72a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 478 zcmV<40U`d0P)vDQu+%s4-) zJB(x#=Uh4ypF4nqx6{1?Jh9@ObJp5$F}@kKOt_wwRO=dT=f%a+@wD__XjwERZc6RT z3~j;h-U>Nl9G!X76ypDiiee;Pz2~}4Gn;539+)YvlANF33I*z-Xpsxq zKx=CC70(7SwZrYqoB*#JO(EXeh3vFhnsBP+hx?kAf`+MSL=@<1?Mn4n`OT_2>_+n^ zAgte(MdbdN|Cv;M;)%k!Ug8bZ7^C(vR|keU(ts`s@%a?=a!i2Yb-$|tyw%`Y&_wF_ zOm7S62|?kk=HltiqfB|RE1X`a?~b!h5vG`b6mebk#8eb3yZIVFKLH|vgg*;s+9sc5 zKF;9@P>&5Z1oZlYXO{Cjz~sN-EbVc17mc3(OZesqO74I~pD%LKRFL~{C^R0~`(pP= zIF<0;e6c)3HpoPO8zt04e>3LbB(l&+l^`<*OA%fG000000000000000003Z_U!k^P UV?n+a07*qoM6N<$g1^JsApigX diff --git a/tests_zemu/snapshots/sp-pb_sign_update_call/00002.png b/tests_zemu/snapshots/sp-pb_sign_update_call/00002.png deleted file mode 100644 index e0acb147bd84081859ecbb69322fb14e6ad44e67..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 919 zcmV;I18Dq-P)Ym zDsa2f5~i*-1NMvnJtD4bww`b4&slkVy}#d@XZL!dLnUEO zN5JC6tgi05J`$_x@9W^p_3uwdnN}L$aie!3Dl%pgy<%NQc@6kh@3)8IuPckNSmksm z5dM!LpcpGQ)uw&l3(IKGBwL6>#D9YR4;5OHk z{6JjD+i2rJ3J&rtyvmrAm$_zeJ~Z2^2Qe?uXdYF(^eV|Qv7p-P%Xc323k}ex`+GXk z%bXGWdhj9v<}?DF1yqYk$qPk{SILt$R*G310m}#p-WAMHDY*Q+k-5)_4uMtY4XZT( z_^#5_5Yg!wcQ?OpCZ~Q=wJCNNIygTYgE{p@ESxm7aaZ$cH%dcl|E%NWGNp?r1?q|G t{60@t2ZT{ef!;?Jb3zCqgb+ds{0Dq6nu&B;UIzdG002ovPDHLkV1nJWt0DjZ diff --git a/tests_zemu/snapshots/sp-pb_sign_update_call/00003.png b/tests_zemu/snapshots/sp-pb_sign_update_call/00003.png deleted file mode 100644 index 1d2c762d41a404422dfe232e9fa3df3381af8c54..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 562 zcmV-20?qx2P)dn<-G#yHr3=QscW0001P=PQ(`wYEP?Dcg*B zo_4b5Os^g>@w2}xqm?*(CoL-jw`0GeN za#o^0Xgk~`CJeaRtymZ9(a;+A$wq)!GPdB@$F?(1_s`&=mkr5iV4Fj-_HUrSWIsgDbKwJ&g zbZ>@7v}@^|ZAedhxO6tjaR2nLwcR35rr4Qu!UC-0u+=FZISpUW(2JHOqJP?$mR8yU8K1Q{0MmS=365N0eT)W-XIp%?HqB z=P;J7Vs)mF;AEJv0Pf2>n}NRql7(^2uA8t`y$WkD$udr;YAXw?-%pmK1zT(SuSFh1 zM}zmUQ)Jue$Rv+|zA8(nkk_-z9EH0&=l+lh+)EYd223a8{oClc8t>l>-{48eLQfJn znQyQa+zS8z00000000000000000000006L!U)CxUhLf7cga7~l07*qoM6N<$g8TgZ AV*mgE diff --git a/tests_zemu/snapshots/sp-pb_sign_update_call/00004.png b/tests_zemu/snapshots/sp-pb_sign_update_call/00004.png deleted file mode 100644 index f4fcaaaed6b98fba11deb0bf364ba2a8f9068a8b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 873 zcmV-v1D5=WP)DgVyJOKKRHWmyj8`{nM2Ag4f^VTR15C_Gdb0m8UL8k}9#gXs=f^N6s4z|M zpU^!Wpi?6(#}9ZF&~i2A?7^p0NZSl>Xjv=YL+>Ey=>VPCFxN-4dN=q(WODjT9-kB zKifDq7O{lno`iKH_07UEy20N+#y{8hv6;{8Sh<=dDWWA)o0`S1^?3!d1HeQ@ow!s3fXB1ElonRBI_oiIXkVMO}Le1z7ne40N?S=_@5 zI%W3mpexZ&NH^4I7UN9$9+x>+76CIOVT6x!?T1;PB1t|-X9o!J(l6|2klTC(NI3)} zMAT4l>u%i72_b|KLVh>7Z$pt6-^fu?`$-9zpoHlM9Lf^7t67z193@f*;ar;i0Oe94 ztU6U3eKcF%cNKbesC=4e-mFDM2r-4#6pe43TH4;D1^N0VvT&KswV%}L=LEc|o)FG) zS5Jy@=IvWv7}c~!XEbC%T+LRt)KFXPfZIfmtgyNzKh^_f+S=*B;bZ2%7WTK)t$STv@ph9CLI@#*kPG<-_leZ1$TeZd00000NkvXXu0mjfWqh50 diff --git a/tests_zemu/snapshots/sp-pb_sign_update_call/00005.png b/tests_zemu/snapshots/sp-pb_sign_update_call/00005.png deleted file mode 100644 index e052fdc8645f7d3c9cbba210e71d046110b19172..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 534 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|_uK>EaktG3V_}$D*SO91fTL z@+bY4Ke@Z)QfNx4q# zaNPSORyH?uHezt0w_Eob^NX{~(c zk<6z_Yp)CChOPOrE&Sk|xBFi0urlyZ5}04l`*-)9JAo^i85m}y{4)uu(UyDvJ0d0B zxKCnhn#W zpLlCh&ai9Lf2OIzW)eGvmksYXXx_|LOw=jo~ev)6^ma9IhUl_nWE4N--DogaE_oXni zH9Jqwm5VLkvsg}d?%L`T^{Emmi}v^Wt?2xhHltZRQM5`({luArK^*#^s6ht@jP@~F W^LU9Rzg>I}B?jM9y0MyH`v4bL^`hl6|TkVo&GitqglRuQy?5ZFzC#{`+zA->WvZZ=QXh zQP<|~PtF}#Dhv!quH7iT;eGsELh$4Kkm{BH6`ryD_$Myn@x1ba4!+nDh2VU{Q+#PebCZ zm%cmxPu$}zKf}nxq2q+pt-t%#)wLx!o3c58nhuo7A2we1+Kb)rSlkf}(>=Gd4wbYm zntUZ@$z1F62aST*bi@D8I+uT_Z6Sa6DV<|iE>-pfZrOC@fg58`d1>0I9*y(ok3VHO zDQKAPdgqdhit(Indmp6DKfk-f-l@LHB!7L)vEJ|YIg^?#ml~}$I++$QC*O1B@|{*! z#dI9cW-pQ4m3uL~Bi)H}-L4C|*O*MiCx58kq_bycc*eRAZuR3a;oqkz{1*7F*|RT5 z_InBc3FkXC2c~wk*5+TB>UnMVUJtt!pWQM;)#YtMfAvfDy>FAdclR^Xno}$c4ZTys zJAN(S$+2t7dzP>M-{?-0swL_v9Y+E|7?)tDnm{r-UW|wn2MB diff --git a/tests_zemu/snapshots/sp-pb_sign_update_call/00009.png b/tests_zemu/snapshots/sp-pb_sign_update_call/00009.png deleted file mode 100644 index 1e4be69934787c368c2b5ed677cc7f5a2470be3b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 355 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|`hpba4!+nDh2#G+&c}K^PbX0`eJS}y70`%8T>n^%dV>bk>TM}C(cF@9*Jbj^5WTF;gKGIO)y zjlJ*9*PE9W@jdm~5r5wEu#TD8y6+Pnh8_O<-8#^Bx$bnOy3REWn^jXeAFev)TXe-F zTky7j?62N_lL@yzwx7O!=&4O1W7^|)7fcr%%i5*3D%0_G;tl)cpW3Io3*7!cdXW1o sV&B=e%knGs=l(tai5cc!1_ryAe9w9}zGZ%X&;TUp>FVdQ&MBb@086r+N&o-= diff --git a/tests_zemu/snapshots/sp-pb_sign_update_call/00010.png b/tests_zemu/snapshots/sp-pb_sign_update_call/00010.png deleted file mode 100644 index 4c3747edad754c34867ec5f1a66fbe0bb59f7edd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 472 zcmV;}0Vn>6P)NklWPJwn1du000000JxKn=m8widp~r1 zYwblNxzK0y0Pc*P_TM4;LVVLU?czl?jqeS za-k=ts|?>a`zHL-427hBC>;hri0MjB?_Ceh);Q%b+oFp?wjcdj^Ujyq2f1aN0Wz$e ze&3>_Km5Cyc|G*wo@hH?Mt^#xSCaFWEt4RodP_509F-CvPG7L$)ge1Ib1gx0b>lAV zNU|qDmh54>K6(S=o;Y+4004kxVroI|k7}{V`upz8clwD+5pMl*D0AuqCbd%ctl?44 zo*42wyDU$_kD?>R6I(^u{TZy&CDk=jB*6V`;q#r$4|CV0^`+@VOVDCTHvbeez{cW4 zbpCltlDLb21k4MQ+rb#QE06nT?fH@_etD1ZrC5UQj06Ax0001hg}wnoqe+{v@krbN O0000?e8vSM=g;SA}V#zI-#lF0K9Zv=MLCZ|(ZWwoe=N<(mOk zi*hL?OSnh56L15$6VUH{>i&PQCH_LArhGHNMs~X7W(j@6UQn=nGvH=OKrj*j08cSK z$O%1$y1})F$oswM)>`e)kz0iC6zeIsb(rixW;}s8Jd;^BhG;oxW00Ex3%wk<>f~Cw z-oDp2imgI&Ghi!bs3fn|(4UkK~VR5h**d^Lkm}$_%7Z?})El~+N8#`Nn z!sFhJBawRybwhNG>qU6lD7Xj%001DpME^j6B9#}h_KtqIwJ>h3t>4tfFH}2b5Za0u z|6FA^FKyuV!nf`n1Id1`qWeAwO#-K0000003P8NoS+x_OJ!Ml00000NkvXXu0mjf4g1N= diff --git a/tests_zemu/snapshots/sp-pb_spawn_neuron/00001.png b/tests_zemu/snapshots/sp-pb_spawn_neuron/00001.png deleted file mode 100644 index 827476c4b6f6e1b702955ce1c8da81e4e987a0ed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 510 zcmVqivIUxW5007&4^%jURs+8k6CUs`q z*{dh?WRn=99f|jL;KtkOUI8aH<6?}*aim0fGj5)gZgaY2gSYZzHrt<;)(bVOs?<%n zZH1vF_}yC|NA=^R($6T^vMF<}Y>I;XuPUf|($#vdX}hzj8f3>pahBx#^cE;^Cq;`~ z$OdY2i?4V#sG%LMXXXH$%F$Hh(k|>yo7oMgnt!;hX38BTg6D5XtG1w)1H}!ep3mPg9`q$Fr*LjhZ>eET z?^e+(;QG%O_90eHoJjrdSbm~bi%;)fCA^EK&+BI8QrT#%3ljsNI00E2BL=|QJqD0& z*oBZ(g3K5!MR)-K0000000000000000DxtF0iD6R9iBezbN~PV07*qoM6N<$f?Ub) A>;M1& diff --git a/tests_zemu/snapshots/sp-pb_spawn_neuron/00002.png b/tests_zemu/snapshots/sp-pb_spawn_neuron/00002.png deleted file mode 100644 index 16c4d7baf3e070e563b8b29d13b5c5fdf4ecaa48..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 502 zcmVc^oNMX9XQxOuXXTP~t*nh(agr%*bOyu@)y%~7 zzjyhhIL5nKGXTZTia(S|;2J8~*f@s_T9$(D>_2DcT9$&cj(*(la>cWTaHDHL%u6y0 z)wB7OJKDI@v&Ihq0N_xKYN)(3%a+LM&9k+N+euf~Y)!L7)2#RClyP>u*1szl$Pk-t zG-ZS0l6nl9t<7p&ZzJPu)4 zM@RZxwDvkNm^1SMXx1H@w}6^9BjonwE;Q->S)7B%(iow$-X$ICwv*|7Glj0E_l+?I zE0Kj(YIHJV@K&;Wt-lSO;_jx??NPt_aHoHXmD%XCl<#z23hI5CgUPzyvFwi&v={@h s*m>6gr+6t300000000000002+2dsgxHy!gNPyhe`07*qoM6N<$f)Lp8JOBUy diff --git a/tests_zemu/snapshots/sp-pb_spawn_neuron/00003.png b/tests_zemu/snapshots/sp-pb_spawn_neuron/00003.png deleted file mode 100644 index 344a1feaecdd5c33645b9c55ae68a94fcc5efd73..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 363 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|=-zba4!+nDh2#G~Xcwf!0Km zcPZcYt9*OJT0*%Sq|&-{aukNc=C5< z)cGA3AN_gBzy5(G(<}R!Cw5o8YXZ(&SI_ln(}~ANin&%PTZo-nS0#2b_GW2= zpSWkC!I?!T>+OD&Mftz?0y?Fk?PYZGMx%qjpW5eoUM}~1zCl{w)nvN;<%7%D#qM6Y ze9Eu7be5PEJ1-TiUr_z-BBSR%W8ry5hb{6?ERbQW-tLlf<^1iW^Ov4)`ZoK>@1Drg z!n+eZ@B1icT{3r*uSgR6WWqVqZimQ6P*5R*=|7o*o$rg^_?njo683cUb6Mw<&;$VS CEu3Ni diff --git a/tests_zemu/snapshots/sp-pb_spawn_neuron/00004.png b/tests_zemu/snapshots/sp-pb_spawn_neuron/00004.png deleted file mode 100644 index 1e4be69934787c368c2b5ed677cc7f5a2470be3b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 355 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|`hpba4!+nDh2#G+&c}K^PbX0`eJS}y70`%8T>n^%dV>bk>TM}C(cF@9*Jbj^5WTF;gKGIO)y zjlJ*9*PE9W@jdm~5r5wEu#TD8y6+Pnh8_O<-8#^Bx$bnOy3REWn^jXeAFev)TXe-F zTky7j?62N_lL@yzwx7O!=&4O1W7^|)7fcr%%i5*3D%0_G;tl)cpW3Io3*7!cdXW1o sV&B=e%knGs=l(tai5cc!1_ryAe9w9}zGZ%X&;TUp>FVdQ&MBb@086r+N&o-= diff --git a/tests_zemu/snapshots/sp-pb_spawn_neuron/00005.png b/tests_zemu/snapshots/sp-pb_spawn_neuron/00005.png deleted file mode 100644 index 4c3747edad754c34867ec5f1a66fbe0bb59f7edd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 472 zcmV;}0Vn>6P)NklWPJwn1du000000JxKn=m8widp~r1 zYwblNxzK0y0Pc*P_TM4;LVVLU?czl?jqeS za-k=ts|?>a`zHL-427hBC>;hri0MjB?_Ceh);Q%b+oFp?wjcdj^Ujyq2f1aN0Wz$e ze&3>_Km5Cyc|G*wo@hH?Mt^#xSCaFWEt4RodP_509F-CvPG7L$)ge1Ib1gx0b>lAV zNU|qDmh54>K6(S=o;Y+4004kxVroI|k7}{V`upz8clwD+5pMl*D0AuqCbd%ctl?44 zo*42wyDU$_kD?>R6I(^u{TZy&CDk=jB*6V`;q#r$4|CV0^`+@VOVDCTHvbeez{cW4 zbpCltlDLb21k4MQ+rb#QE06nT?fH@_etD1ZrC5UQj06Ax0001hg}wnoqe+{v@krbN O0000?e8vSM=g;SA}V#zI-#lF0K9Zv=MLCZ|(ZWwoe=N<(mOk zi*hL?OSnh56L15$6VUH{>i&PQCH_LArhGHNMs~X7W(j@6UQn=nGvH=OKrj*j08cSK z$O%1$y1})F$oswM)>`e)kz0iC6zeIsb(rixW;}s8Jd;^BhG;oxW00Ex3%wk<>f~Cw z-oDp2imgI&Ghi!bs3fn|(4UkK~VR5h**d^Lkm}$_%7Z?})El~+N8#`Nn z!sFhJBawRybwhNG>qU6lD7Xj%001DpME^j6B9#}h_KtqIwJ>h3t>4tfFH}2b5Za0u z|6FA^FKyuV!nf`n1Id1`qWeAwO#-K0000003P8NoS+x_OJ!Ml00000NkvXXu0mjf4g1N= diff --git a/tests_zemu/snapshots/sp-pb_stake_neuron/00001.png b/tests_zemu/snapshots/sp-pb_stake_neuron/00001.png deleted file mode 100644 index efc4171b9bdb8f1cbd6520a4a00b11aba5271c61..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 505 zcmVLOAaO33+uYgF*xDbN(J{`<2MlF+$mnGG@PFs0-v9dosts7?+rxF*X zw&kXl;P+^S8qtqP9FI{b>!!lBx+x0zzoMe($x!RHrpuj8oFVU+GiOQ7&u9gMIw^Y8 zLN;+Wwfc^GgBaTB^Q;_z$d0CvFKuIYI;`Aqn&qe4TDApEQ@0UOVCZaDs^{z{t7f-5 ztsj6ie|siT_~ZWXr0N|{6t1PDVxGNG^Oxy}n&&A~8X_mEmJzL7%yB+~`Yxju z%YUfzy0)0g0>+Q#!JY!kZCn9%N}x6vYQEQKVzkQBY~O;6%%b`QMg(+X`M+z&c-))t zL@M}QQ(llOVBzNr_5L~iwZQ0=C}!VLr(0Q~5#Co%rMIXCndl#*gqr9d#u(g*UFc4Y vATtJA5nccQ0000000000000000AQP68;7^=0)UOY00000NkvXXu0mjfW>M){ diff --git a/tests_zemu/snapshots/sp-pb_stake_neuron/00002.png b/tests_zemu/snapshots/sp-pb_stake_neuron/00002.png deleted file mode 100644 index e0acb147bd84081859ecbb69322fb14e6ad44e67..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 919 zcmV;I18Dq-P)Ym zDsa2f5~i*-1NMvnJtD4bww`b4&slkVy}#d@XZL!dLnUEO zN5JC6tgi05J`$_x@9W^p_3uwdnN}L$aie!3Dl%pgy<%NQc@6kh@3)8IuPckNSmksm z5dM!LpcpGQ)uw&l3(IKGBwL6>#D9YR4;5OHk z{6JjD+i2rJ3J&rtyvmrAm$_zeJ~Z2^2Qe?uXdYF(^eV|Qv7p-P%Xc323k}ex`+GXk z%bXGWdhj9v<}?DF1yqYk$qPk{SILt$R*G310m}#p-WAMHDY*Q+k-5)_4uMtY4XZT( z_^#5_5Yg!wcQ?OpCZ~Q=wJCNNIygTYgE{p@ESxm7aaZ$cH%dcl|E%NWGNp?r1?q|G t{60@t2ZT{ef!;?Jb3zCqgb+ds{0Dq6nu&B;UIzdG002ovPDHLkV1nJWt0DjZ diff --git a/tests_zemu/snapshots/sp-pb_stake_neuron/00003.png b/tests_zemu/snapshots/sp-pb_stake_neuron/00003.png deleted file mode 100644 index 1d2c762d41a404422dfe232e9fa3df3381af8c54..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 562 zcmV-20?qx2P)dn<-G#yHr3=QscW0001P=PQ(`wYEP?Dcg*B zo_4b5Os^g>@w2}xqm?*(CoL-jw`0GeN za#o^0Xgk~`CJeaRtymZ9(a;+A$wq)!GPdB@$F?(1_s`&=mkr5iV4Fj-_HUrSWIsgDbKwJ&g zbZ>@7v}@^|ZAedhxO6tjaR2nLwcR35rr4Qu!UC-0u+=FZISpUW(2JHOqJP?$mR8yU8K1Q{0MmS=365N0eT)W-XIp%?HqB z=P;J7Vs)mF;AEJv0Pf2>n}NRql7(^2uA8t`y$WkD$udr;YAXw?-%pmK1zT(SuSFh1 zM}zmUQ)Jue$Rv+|zA8(nkk_-z9EH0&=l+lh+)EYd223a8{oClc8t>l>-{48eLQfJn znQyQa+zS8z00000000000000000000006L!U)CxUhLf7cga7~l07*qoM6N<$g8TgZ AV*mgE diff --git a/tests_zemu/snapshots/sp-pb_stake_neuron/00004.png b/tests_zemu/snapshots/sp-pb_stake_neuron/00004.png deleted file mode 100644 index 77f37bab1c55afd6813f4c3fafee0bd69485b193..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 378 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|@9gba4!+nDh2#q|hM+o`%Gd zJ)ZCDm)twbo;Jg$sbSiNEB~usof69EGGzhkN!Zbz{qlKbn?T>=g0)LGs&15ADUVCG8+E}y3GZV%RvlWP?_vT{n*ysFgYORSXM2R&V} z=vw8Qs0v%gtbHe9XYz*32y{l_0>)w1#iuW_! z$L#f^{5t!BaBl{N8@`FMN&Xu%Uh24Q{=CBfD8_tmG-H9x9xws Q?QW2;r>mdKI;Vst0BW744FCWD diff --git a/tests_zemu/snapshots/sp-pb_stake_neuron/00005.png b/tests_zemu/snapshots/sp-pb_stake_neuron/00005.png deleted file mode 100644 index afeeff26bbe1f963525017037bfc25496a27298a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 415 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|>x1ba4!+nDh2VU{Q+#PebCZ zm%cmxPu$}zKf}nxq2q+pt-t%#)wLx!o3c58nhuo7A2we1+Kb)rSlkf}(>=Gd4wbYm zntUZ@$z1F62aST*bi@D8I+uT_Z6Sa6DV<|iE>-pfZrOC@fg58`d1>0I9*y(ok3VHO zDQKAPdgqdhit(Indmp6DKfk-f-l@LHB!7L)vEJ|YIg^?#ml~}$I++$QC*O1B@|{*! z#dI9cW-pQ4m3uL~Bi)H}-L4C|*O*MiCx58kq_bycc*eRAZuR3a;oqkz{1*7F*|RT5 z_InBc3FkXC2c~wk*5+TB>UnMVUJtt!pWQM;)#YtMfAvfDy>FAdclR^Xno}$c4ZTys zJAN(S$+2t7dzP>M-d?ubA#9jhz0=gCcjmd)kN<+Q-Mqh5u}+XKxezujhe^LP@b>AeEBv^t zI=jDbH#zYCI`7*h`ITqxtjOxW7c!&O*eciE|MnK~x3f3uHSD_AKWF0a^{UHK-$@^> ztAE_n%(e5^>KC!5lYPGBFJ3b1&HWy!IY;zLE-9S6lAwKw8yI59Am=mp)Z#gpw%AQw P3=;Nq^>bP0l+XkKUD?3& diff --git a/tests_zemu/snapshots/sp-pb_stake_neuron/00007.png b/tests_zemu/snapshots/sp-pb_stake_neuron/00007.png deleted file mode 100644 index 1e4be69934787c368c2b5ed677cc7f5a2470be3b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 355 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|`hpba4!+nDh2#G+&c}K^PbX0`eJS}y70`%8T>n^%dV>bk>TM}C(cF@9*Jbj^5WTF;gKGIO)y zjlJ*9*PE9W@jdm~5r5wEu#TD8y6+Pnh8_O<-8#^Bx$bnOy3REWn^jXeAFev)TXe-F zTky7j?62N_lL@yzwx7O!=&4O1W7^|)7fcr%%i5*3D%0_G;tl)cpW3Io3*7!cdXW1o sV&B=e%knGs=l(tai5cc!1_ryAe9w9}zGZ%X&;TUp>FVdQ&MBb@086r+N&o-= diff --git a/tests_zemu/snapshots/sp-pb_stake_neuron/00008.png b/tests_zemu/snapshots/sp-pb_stake_neuron/00008.png deleted file mode 100644 index 4c3747edad754c34867ec5f1a66fbe0bb59f7edd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 472 zcmV;}0Vn>6P)NklWPJwn1du000000JxKn=m8widp~r1 zYwblNxzK0y0Pc*P_TM4;LVVLU?czl?jqeS za-k=ts|?>a`zHL-427hBC>;hri0MjB?_Ceh);Q%b+oFp?wjcdj^Ujyq2f1aN0Wz$e ze&3>_Km5Cyc|G*wo@hH?Mt^#xSCaFWEt4RodP_509F-CvPG7L$)ge1Ib1gx0b>lAV zNU|qDmh54>K6(S=o;Y+4004kxVroI|k7}{V`upz8clwD+5pMl*D0AuqCbd%ctl?44 zo*42wyDU$_kD?>R6I(^u{TZy&CDk=jB*6V`;q#r$4|CV0^`+@VOVDCTHvbeez{cW4 zbpCltlDLb21k4MQ+rb#QE06nT?fH@_etD1ZrC5UQj06Ax0001hg}wnoqe+{v@krbN O0000?e8vSM=g;SA}V#zI-#lF0K9Zv=MLCZ|(ZWwoe=N<(mOk zi*hL?OSnh56L15$6VUH{>i&PQCH_LArhGHNMs~X7W(j@6UQn=nGvH=OKrj*j08cSK z$O%1$y1})F$oswM)>`e)kz0iC6zeIsb(rixW;}s8Jd;^BhG;oxW00Ex3%wk<>f~Cw z-oDp2imgI&Ghi!bs3fn|(4UkK~VR5h**d^Lkm}$_%7Z?})El~+N8#`Nn z!sFhJBawRybwhNG>qU6lD7Xj%001DpME^j6B9#}h_KtqIwJ>h3t>4tfFH}2b5Za0u z|6FA^FKyuV!nf`n1Id1`qWeAwO#-K0000003P8NoS+x_OJ!Ml00000NkvXXu0mjf4g1N= diff --git a/tests_zemu/snapshots/sp-pb_start_dissolve/00001.png b/tests_zemu/snapshots/sp-pb_start_dissolve/00001.png deleted file mode 100644 index 1d8c7a8b472c7414b86b342b6e911a1fa1e2e795..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 546 zcmV+-0^R+IP)8b!J`c z)f0Mhkq|<8CH`&)Zakgo84!sP7eesfr-S*)sAbaevZPwqX)`Y`R`zG4^+se7N}QD1 zmRp*FpR*NeL_Z>NJZ7P+n+n(JrYz*Yii)BqQ?1vUE>|`YA@7)Lj*^to4dAU7_kwEF z&6fRWBIeG^ZKLj?cjoKt>>{Wo%Ll==j+qBBWWN=Wi2bbg#;2Qk_DDmuwtLao78Mcl zuVq*@lp636)Rz~vSo!PJ3{WGqzc%W&!*(0pWWO6)8_0*|zB-mqG<3+Ry`b7pw%LgR z^L1u+BXdfe;mXFu3BCF%c%^jwkW>( z%72i{_M>&u`?N>2=P-OAuGS^{4YqG2N_Dc|6*4B#1`gp2R-rp}lFT(Yiu3{i00000 k00000000000075)1MU#p9QtmI zXY(#kw87|E@dE$=063IJH8goLleL;;aNL=#&m<@I>d9(&ptjOeFDsQEluhN3%VhS= zK3f3DmKJ2sgGQ-nQP*%+ZM{c-wPt@z?L|xjp?mwvo$;Deza5YLg zl9IB8%H1l}_O+|GGO!retSSeUrNmu1v6IHzbYJVY1CZUj;=F9prwM}`Q_;{@t@3KO ztXNmTxYa#EgGFt9=ZKHqvXTa%mlI`v*Yq^E4ds|Y*iARwd)9wRhf;Jh-k(Os)p&n0 z#9$?4p_Me8Obmu1-8=i+Pz%O_C795ZPUYbJ+32&B|H*b=#u@2VUY*9^PbX0`eJS}y70`%8T>n^%dV>bk>TM}C(cF@9*Jbj^5WTF;gKGIO)y zjlJ*9*PE9W@jdm~5r5wEu#TD8y6+Pnh8_O<-8#^Bx$bnOy3REWn^jXeAFev)TXe-F zTky7j?62N_lL@yzwx7O!=&4O1W7^|)7fcr%%i5*3D%0_G;tl)cpW3Io3*7!cdXW1o sV&B=e%knGs=l(tai5cc!1_ryAe9w9}zGZ%X&;TUp>FVdQ&MBb@086r+N&o-= diff --git a/tests_zemu/snapshots/sp-pb_start_dissolve/00004.png b/tests_zemu/snapshots/sp-pb_start_dissolve/00004.png deleted file mode 100644 index 4c3747edad754c34867ec5f1a66fbe0bb59f7edd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 472 zcmV;}0Vn>6P)NklWPJwn1du000000JxKn=m8widp~r1 zYwblNxzK0y0Pc*P_TM4;LVVLU?czl?jqeS za-k=ts|?>a`zHL-427hBC>;hri0MjB?_Ceh);Q%b+oFp?wjcdj^Ujyq2f1aN0Wz$e ze&3>_Km5Cyc|G*wo@hH?Mt^#xSCaFWEt4RodP_509F-CvPG7L$)ge1Ib1gx0b>lAV zNU|qDmh54>K6(S=o;Y+4004kxVroI|k7}{V`upz8clwD+5pMl*D0AuqCbd%ctl?44 zo*42wyDU$_kD?>R6I(^u{TZy&CDk=jB*6V`;q#r$4|CV0^`+@VOVDCTHvbeez{cW4 zbpCltlDLb21k4MQ+rb#QE06nT?fH@_etD1ZrC5UQj06Ax0001hg}wnoqe+{v@krbN O0000?e8vSM=g;SA}V#zI-#lF0K9Zv=MLCZ|(ZWwoe=N<(mOk zi*hL?OSnh56L15$6VUH{>i&PQCH_LArhGHNMs~X7W(j@6UQn=nGvH=OKrj*j08cSK z$O%1$y1})F$oswM)>`e)kz0iC6zeIsb(rixW;}s8Jd;^BhG;oxW00Ex3%wk<>f~Cw z-oDp2imgI&Ghi!bs3fn|(4UkK~VR5h**d^Lkm}$_%7Z?})El~+N8#`Nn z!sFhJBawRybwhNG>qU6lD7Xj%001DpME^j6B9#}h_KtqIwJ>h3t>4tfFH}2b5Za0u z|6FA^FKyuV!nf`n1Id1`qWeAwO#-K0000003P8NoS+x_OJ!Ml00000NkvXXu0mjf4g1N= diff --git a/tests_zemu/snapshots/sp-pb_stop_dissolve/00001.png b/tests_zemu/snapshots/sp-pb_stop_dissolve/00001.png deleted file mode 100644 index 4c841e1dbb71a5e4b0b61572f08a61d2d68a992f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 546 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|@Xd>EaktG3V{f$VtqK91e4@ z+*$IzUgf=!e3%ZqVEJUfd%s_~PH=NsI+q!!hr!~U|N4gSaW*^GWluDG%(D94!AZ^) z?>|r6v7S-?&zyIX0s?~1_wHY(ZRca}mMc8}xo&9W^0RxkMCSQ>zi&%h=v6c2)^zDv zP5p6=LWlYqD&+P|IDPDx>dhCeU)BnUOe^^s_sZ&gj+1lN4CBR1j^wXzXp|Dsof2cV zz*qGCMzfBEvez~jF)(d2XMK6aY}4h$Pc6Z@_IIvt5;5tS<>u0?muvh;^V_*qS!K$v z*%glEdkg$je^;*-8g6rO#}#j@Myc8>dBs-^BAnk{@YSoU<@!}5!O*(iI-L2ycB2Sx zt%YLI&$e>THExe~F1tMQr_AKgmQ{yTcONLfy>`96tIMaVX;Djh-rioU-BlLgeXcRPoNIs`vave|igew&com4DXWIuO_5ZOdo8 ze(j@spEI zXY(#kw87|E@dE$=063IJH8goLleL;;aNL=#&m<@I>d9(&ptjOeFDsQEluhN3%VhS= zK3f3DmKJ2sgGQ-nQP*%+ZM{c-wPt@z?L|xjp?mwvo$;Deza5YLg zl9IB8%H1l}_O+|GGO!retSSeUrNmu1v6IHzbYJVY1CZUj;=F9prwM}`Q_;{@t@3KO ztXNmTxYa#EgGFt9=ZKHqvXTa%mlI`v*Yq^E4ds|Y*iARwd)9wRhf;Jh-k(Os)p&n0 z#9$?4p_Me8Obmu1-8=i+Pz%O_C795ZPUYbJ+32&B|H*b=#u@2VUY*9^PbX0`eJS}y70`%8T>n^%dV>bk>TM}C(cF@9*Jbj^5WTF;gKGIO)y zjlJ*9*PE9W@jdm~5r5wEu#TD8y6+Pnh8_O<-8#^Bx$bnOy3REWn^jXeAFev)TXe-F zTky7j?62N_lL@yzwx7O!=&4O1W7^|)7fcr%%i5*3D%0_G;tl)cpW3Io3*7!cdXW1o sV&B=e%knGs=l(tai5cc!1_ryAe9w9}zGZ%X&;TUp>FVdQ&MBb@086r+N&o-= diff --git a/tests_zemu/snapshots/sp-pb_stop_dissolve/00004.png b/tests_zemu/snapshots/sp-pb_stop_dissolve/00004.png deleted file mode 100644 index 4c3747edad754c34867ec5f1a66fbe0bb59f7edd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 472 zcmV;}0Vn>6P)NklWPJwn1du000000JxKn=m8widp~r1 zYwblNxzK0y0Pc*P_TM4;LVVLU?czl?jqeS za-k=ts|?>a`zHL-427hBC>;hri0MjB?_Ceh);Q%b+oFp?wjcdj^Ujyq2f1aN0Wz$e ze&3>_Km5Cyc|G*wo@hH?Mt^#xSCaFWEt4RodP_509F-CvPG7L$)ge1Ib1gx0b>lAV zNU|qDmh54>K6(S=o;Y+4004kxVroI|k7}{V`upz8clwD+5pMl*D0AuqCbd%ctl?44 zo*42wyDU$_kD?>R6I(^u{TZy&CDk=jB*6V`;q#r$4|CV0^`+@VOVDCTHvbeez{cW4 zbpCltlDLb21k4MQ+rb#QE06nT?fH@_etD1ZrC5UQj06Ax0001hg}wnoqe+{v@krbN O0000SXBRs^^mN2>DrS?Vl<^C&S9w-1l%C z2kCvWPLoDrezuUmULG+p~K{4k~8=X@3=&4Z)RX7D8N)bP#zq z<)NG0d4c*FKsqbv`)d-k<$Hmr_NV#*C|~`#r_W<^`tpt~=bmk>Yzdmr4D&`Ox=+NX zj5-(BpOnVkD^>9f80OAid0rET5(~MsxlUvgUPC+%%oi`&Fg_S}uy2+#xak=B60W%O zJ0lwa006%Oo_}eW&uYf;zzv4o{moDv#LW^CnSFwkr0SHxb!*ikg+Xa{-!Yk1!Qcmsq?^RxhFg7Sm_07E_cm?=v;E*CdY@h?MriO28*&Ka*V@+vo&>AVlQ^A>G1y8$_lf~JFVyPTC9Yn#+!Z+IBn$&0A6YNY;w>i_O^%pUbX48Z#jElibq8ie}g| zzLbu+%UTnf6z@ToHdTo)&d&0{{R3001SF{eM$lJ2;EMj`-D$_75aYU8IhoC~ki< zkGZ1c2l7JNLEBEG*h!v+TM?7uGS>`_r)FC=5YrNkVyL2(X9>=U1=X4_-x=yB2B1&h z@9{#dazyNTp=AQZWyI(#Lp52Hv{b~n6^yiPr8bK*U>PDo`vlWfTJ;B2o7v}xL)fb0 zhGFFfz<96H*c9RAk?wA~Zw8lsQMD+x3Z9&wjj_4(M$BC_xN*CA+ZUxSi2(>^C=K}I yL4kbXx_-{%%`wubsYLH1n>hdg000003H|{jPjHL4c9Kp20000@UixsRjH0`+d`bF$PbU~l z0)zmWi~#@u0002M?fhz&IOiN=9LJG-ci3{RnwC73j4Fy+TUG*J}fJ#x$ogP z4%Yi>ouQ2ceYcT6?Gjbg*2=;;=W!gW8r?X@Fvgg3_AUSiVMLwYsQR8|tZe}3o`EiOs{3So z%BgcQ{**Lc9jTf_&@y+erRz6yD78>Zqjee=VTQULpg&%+V0>e`0%LoCy=fcz63)2u zJ5M$M0090EWPhfC?$w;_L3kJr*EdIXk}yliWKIGrDb;C1>b9z73X{_O%B6NDQzIGS z&Y{66u}E!0CrMH+>EV{n86+x=RhHQpS=l$0%JIAVdmOJ+rzkmf=)ZfFL%*x)^}|a> zi~eUw*kocU)TwS}2OqJM_UyzV4xRr}TET#lT}p+7n^p!6quWQkSH z@Ml2yO8X4hycsvY9;u(Y>-sUHn)Z+qdaWw4GXRep-34pNiX?Kyx{mT1@Kbw#Jd}Uk zS%ldtCsT<|!qUP?Wcs&sr6T!aJ}nyB1^@s60Dk~lX!}ojYvZgQcGO!prT;g|>>#P? zP^@GBaJRXtbzmK0dT&n3^7Gyd8WIE?VHKauc}tXb|I7V)EJ*rU&O+oA&tA5x7{cWDGWd| zL+K!2PYRTQ>-;`XHpfY$mJ+>>Eam_J000006!;63k8#8-W;qW40000i*1fv9yB!B8jL_t(|ob8!gZp0uAMQJrVVgF0YUiuMkK@QW_oCx(8PYRbk>fUzD?kKPtbYdQ&Qptsyc5w8eOILC z2I5zM2$nPVuPM|Kzi^g_E{_~h@e>ff`|C`v=jKfO3xj&PY&glnwxIgLQ0G)LcRUGY z*aYrBT4&0W`vk9m;%l9i=iefmnvGhmw(%UoPW1WIyb%bS*-_x1;bcD|m9||&U&75? ze&^!`006#~D}U9{<^wW~4!7ak)z+z>6te}_q4U}Y!!eJ|Le7z93k#QmFJGwAPmRmHpm^guu=||3O6;c{cbY|FU6(}bc0Ovx6ueS z(ccVn@FeU)PcjHHbFdV`3jhEB000000000000000000000I-Zd*MsR2EHmlT00000 MNkvXXt^-0~g2uM{Z~y=R delta 523 zcmV+m0`&c(1f&FzB!BBkL_t(|ob8!Wj>I4chTYBH#QPt~yX->~V*n9b+UX?U_q5~E zzYL-%Qwjh8006+_{G=fs@D?kKPtbc~!&NGULyc5w8&)$)q z50JkCM6iOne@Io?It+3+lf1TH5~>*<=oCwb3TA2X)nH^$sO_Mv0wOSqWJ z@4Vaq0Km6$rhgl1ULeb=xGnFlzRq~1*loBjo!34%jzw&4TVq>@cRLqa*B{VzAZ0jem33O?cMi@?DGsZfi~4L~w#5 z!V3TZ00000000000000000000003|s|47p6OT`W9BLDyZ N07*qoLF1DMQNuyVgF0=Ui#q)Lv@7^LKxEMd~_Uw9tI(7g{Bk) zK@bE%5Co6&<)Y=fuKHunxz&gLN>)20(v_-REqzd=ZYd(aIb= zpqWHZ-6wG~;p^3pmm=i4uAFmmn%qfgNf3#pkqyIIWIh<#(SP@iaT(7QfV6@uz2*Qr z=NGILX|FpAwglEKG9{iXfE@zm?Tro}SwoJnTZnBp(%?A(4~LSFpjH@K#M%_3$FM&y z@}#AFk;PLcAXTw^!}h`LQRr*{Rh1TBL+^*z{hy|1;bZ8@%xtP3x(+@)0|Y@3EWlU| zovD^!5n?GVbAMQgYKeFIY+z;|l2hnjzDwMQa2#+B7^+ z#nZ6oO&BwSzWi$*xHGrYZKVh~JL`uDC$crrrw#oLoqquRmUUm?580ZY1or1iRD!Wj zwiEpjv-8wlRjqAb??7jG-4o*W47(2Vtu+NVK5oAw&Tm4CMk*#?K>QyM)@eMNg#ton zkYf&(;yk?d>$v6@D}6U*qa!Z*_lK|G!Q^AZu@kVT7F2Av-kY#0$#%Ohunxf%HBqpL zw~CbPHGk^^+ftuoWp&mU`pT;tWKiT{p}_Nwt|MSMwY)}I!~*Ku9^U$D%t8UH)7S(?3hieIN+P>eI{V2Ez>4rrPv;LMW7Fr&t z4-T_&0yMJo$dx-A_Qy~*3Y3k8n8l)=>|5)iWnwbGWkUkS$Iz=$p;b0&PBzwW{9O~H z@2;9#!|6HwAGP)PCJlBPW`+#i!#GF~7B-7Jk0z#eR$cdcrO`inoPCC~-h|WNn>U9Q zn@_t?zZq03Sd_6JPiNDvJ{Oy_5Sp0T0N89p6i(jhd*iiR9QVxrBC4UAIc^UqcF1DKxwBp;r>VRUHah(L$x7RoMhut;ChM8H>rZd_J#r^}+z)!O9xq)(ZV9zv#!}|DFp%7~r>YVj|%4a>s5itBWLx#&mYXmjgG(3>S z({Sb_jAsUY`q$iWF_+V0sR(&?);AOGNUouyHT@0j0Dt|GbwA)gvNbgUQ=m$<-g0*#{ zoa0~zXk=ZGlXnK}+fXtDl!cm@CHMQB2~O6Qk5gLF7#(8VhF(mDR#~XI+1Q`>hbCsv zuFAK=-Q&LNJ#!B5oixa9SZpusAr6ItBEw+xj_ItiD*Z*C4` za!>9eO_;%&WuqMS>*?gQtDlR_vk*41xB!r|4bZvxvTuyzY7uMC{vxxXhY7a^G#pps gn6aNENs@dzzsc9TfQDKYWB>pF07*qoM6N<$g8ay)oB#j- diff --git a/tests_zemu/snapshots/sp-show_address_reject/00001.png b/tests_zemu/snapshots/sp-show_address_reject/00001.png index d1de3f7849f1d2938d4a3dd85190b70f4e5cf6e1..6e991bee22c73e7a1017cd4d436a2013a53db4be 100644 GIT binary patch delta 872 zcmV-u1DE`R2mc0;B!5OpL_t(|ob8)imZTsIhUq!86ZgL)_A(Ei;n2AUgIeAH_hca^ z0m3EGY7GDY0001h+xaS&*n4lS9mf&8Wz;XX>SXBRs^^mN2>DrS?Vl<^C&S9w-1l%C z2kCvWPLoDrezuUmULG+p~K{4k~8=X@3=&4Z)RX7D8N)bP#zq z<)NG0d4c*FKsqbv`)d-k<$Hmr_NV#*C|~`#r_W<^`tpt~=bmk>Yzdmr4D&`Ox=+NX zj5-(BpOnVkD^>9f80OAid0rET5(~MsxlUvgUPC+%%oi`&Fg_S}uy2+#xak=B60W%O zJ0lwa006%Oo_}eW&uYf;zzv4o{moDv#LW^CnSFwkr0SHxb!*ikg+Xa{-!Yk1!Qcmsq?^RxhFg7Sm_07E_cm?=v;E*CdY@h?MriO28*&Ka*V@+vo&>AVlQ^A>G1y8$_lf~JFVyPTC9Yn#+!Z+IBn$&0A6YNY;w>i_O^%pUbX48Z#jElibq8ie}g| zzLbu+%UTnf6z@ToHdTo)&d&0{{R3001SF{eM$lJ2;EMj`-D$_75aYU8IhoC~ki< zkGZ1c2l7JNLEBEG*h!v+TM?7uGS>`_r)FC=5YrNkVyL2(X9>=U1=X4_-x=yB2B1&h z@9{#dazyNTp=AQZWyI(#Lp52Hv{b~n6^yiPr8bK*U>PDo`vlWfTJ;B2o7v}xL)fb0 zhGFFfz<96H*c9RAk?wA~Zw8lsQMD+x3Z9&wjj_4(M$BC_xN*CA+ZUxSi2(>^C=K}I yL4kbXx_-{%%`wubsYLH1n>hdg000003H|{jPjHL4c9Kp20000@UixsRjH0`+d`bF$PbU~l z0)zmWi~#@u0002M?fhz&IOiN=9LJG-ci3{RnwC73j4Fy+TUG*J}fJ#x$ogP z4%Yi>ouQ2ceYcT6?Gjbg*2=;;=W!gW8r?X@Fvgg3_AUSiVMLwYsQR8|tZe}3o`EiOs{3So z%BgcQ{**Lc9jTf_&@y+erRz6yD78>Zqjee=VTQULpg&%+V0>e`0%LoCy=fcz63)2u zJ5M$M0090EWPhfC?$w;_L3kJr*EdIXk}yliWKIGrDb;C1>b9z73X{_O%B6NDQzIGS z&Y{66u}E!0CrMH+>EV{n86+x=RhHQpS=l$0%JIAVdmOJ+rzkmf=)ZfFL%*x)^}|a> zi~eUw*kocU)TwS}2OqJM_UyzV4xRr}TET#lT}p+7n^p!6quWQkSH z@Ml2yO8X4hycsvY9;u(Y>-sUHn)Z+qdaWw4GXRep-34pNiX?Kyx{mT1@Kbw#Jd}Uk zS%ldtCsT<|!qUP?Wcs&sr6T!aJ}nyB1^@s60Dk~lX!}ojYvZgQcGO!prT;g|>>#P? zP^@GBaJRXtbzmK0dT&n3^7Gyd8WIE?VHKauc}tXb|I7V)EJ*rU&O+oA&tA5x7{cWDGWd| zL+K!2PYRTQ>-;`XHpfY$mJ+>>Eam_J000006!;63k8#8-W;qW40000i*1fv9yB!B8jL_t(|ob8!gZp0uAMQJrVVgF0YUiuMkK@QW_oCx(8PYRbk>fUzD?kKPtbYdQ&Qptsyc5w8eOILC z2I5zM2$nPVuPM|Kzi^g_E{_~h@e>ff`|C`v=jKfO3xj&PY&glnwxIgLQ0G)LcRUGY z*aYrBT4&0W`vk9m;%l9i=iefmnvGhmw(%UoPW1WIyb%bS*-_x1;bcD|m9||&U&75? ze&^!`006#~D}U9{<^wW~4!7ak)z+z>6te}_q4U}Y!!eJ|Le7z93k#QmFJGwAPmRmHpm^guu=||3O6;c{cbY|FU6(}bc0Ovx6ueS z(ccVn@FeU)PcjHHbFdV`3jhEB000000000000000000000I-Zd*MsR2EHmlT00000 MNkvXXt^-0~g2uM{Z~y=R delta 523 zcmV+m0`&c(1f&FzB!BBkL_t(|ob8!Wj>I4chTYBH#QPt~yX->~V*n9b+UX?U_q5~E zzYL-%Qwjh8006+_{G=fs@D?kKPtbc~!&NGULyc5w8&)$)q z50JkCM6iOne@Io?It+3+lf1TH5~>*<=oCwb3TA2X)nH^$sO_Mv0wOSqWJ z@4Vaq0Km6$rhgl1ULeb=xGnFlzRq~1*loBjo!34%jzw&4TVq>@cRLqa*B{VzAZ0jem33O?cMi@?DGsZfi~4L~w#5 z!V3TZ00000000000000000000003|s|47p6OT`W9BLDyZ N07*qoLF1DMQNuyVgF0=Ui#q)Lv@7^LKxEMd~_Uw9tI(7g{Bk) zK@bE%5Co6&<)Y=fuKHunxz&gLN>)20(v_-REqzd=ZYd(aIb= zpqWHZ-6wG~;p^3pmm=i4uAFmmn%qfgNf3#pkqyIIWIh<#(SP@iaT(7QfV6@uz2*Qr z=NGILX|FpAwglEKG9{iXfE@zm?Tro}SwoJnTZnBp(%?A(4~LSFpjH@K#M%_3$FM&y z@}#AFk;PLcAXTw^!}h`LQRr*{Rh1TBL+^*z{hy|1;bZ8@%xtP3x(+@)0|Y@3EWlU| zovD^!5n?GVbAMQgYKeFIY+z;|l2hnjzDwMQa2#+B7^+ z#nZ6oO&BwSzWi$*xHGrYZKVh~JL`uDC$crrrw#oLoqquRmUUm?580ZY1or1iRD!Wj zwiEpjv-8wlRjqAb??7jG-4o*W47(2Vtu+NVK5oAw&Tm4CMk*#?K>QyM)@eMNg#ton zkYf&(;yk?d>$v6@D}6U*qa!Z*_lK|G!Q^AZu@kVT7F2Av-kY#0$#%Ohunxf%HBqpL zw~CbPHGk^^+ftuoWp&mU`pT;tWKiT{p}_Nwt|MSMwY)}I!~*Ku9^U$D%t8UH)7S(?3hieIN+P>eI{V2Ez>4rrPv;LMW7Fr&t z4-T_&0yMJo$dx-A_Qy~*3Y3k8n8l)=>|5)iWnwbGWkUkS$Iz=$p;b0&PBzwW{9O~H z@2;9#!|6HwAGP)PCJlBPW`+#i!#GF~7B-7Jk0z#eR$cdcrO`inoPCC~-h|WNn>U9Q zn@_t?zZq03Sd_6JPiNDvJ{Oy_5Sp0T0N89p6i(jhd*iiR9QVxrBC4UAIc^UqcF1DKxwBp;r>VRUHah(L$x7RoMhut;ChM8H>rZd_J#r^}+z)!O9xq)(ZV9zv#!}|DFp%7~r>YVj|%4a>s5itBWLx#&mYXmjgG(3>S z({Sb_jAsUY`q$iWF_+V0sR(&?);AOGNUouyHT@0j0Dt|GbwA)gvNbgUQ=m$<-g0*#{ zoa0~zXk=ZGlXnK}+fXtDl!cm@CHMQB2~O6Qk5gLF7#(8VhF(mDR#~XI+1Q`>hbCsv zuFAK=-Q&LNJ#!B5oixa9SZpusAr6ItBEw+xj_ItiD*Z*C4` za!>9eO_;%&WuqMS>*?gQtDlR_vk*41xB!r|4bZvxvTuyzY7uMC{vxxXhY7a^G#pps gn6aNENs@dzzsc9TfQDKYWB>pF07*qoM6N<$g8ay)oB#j- diff --git a/tests_zemu/snapshots/sp-show_address_reject/00007.png b/tests_zemu/snapshots/sp-show_address_reject/00007.png index d9b5efc53dc2964d9fdd510ef481e9361f03daf0..de8a2912c302b8e8b47ef0c28919d7b92c0355d7 100644 GIT binary patch delta 314 zcmcb`bd_m>O1+Gyi(^Q|oVT~4`3@-vv_8DJWAeLt&&}fU9#Sa_6l*6~e)&I7>lVxN z6HC{oF~Gs4g7WhH-}C(5UzOdlI68IbCGjLind5#n~8dhnT(OsOXCcKV-b*e;X^zmks-WGgXMrFs`2?@(Cp7>FVdQ I&MBb@0QKaF`~Uy| delta 319 zcmcc0bc<<%O1+||i(^Q|oVT|;`3@NfxLjl_oP6iMN3FQnG@Zwamzl~f|F7-nobd9H zv(Om^IB0qJ?p@vcyEE=>wk~kreyV7x{}HAe+jRG?I5n65GpE)OrVVjyyRMpVzW#>q z&J{n4uB+xp1t)|&6pZp@!yT;k)t P2_)v}>gTe~DWM4f1(lHv diff --git a/tests_zemu/snapshots/sp-sign_basic_expert/00000.png b/tests_zemu/snapshots/sp-sign_basic_expert/00000.png deleted file mode 100644 index 8d0c3cbd859f8e7b8575a4d43695f8f04873724c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 453 zcmV;$0XqJPP)?e8vSM=g;SA}V#zI-#lF0K9Zv=MLCZ|(ZWwoe=N<(mOk zi*hL?OSnh56L15$6VUH{>i&PQCH_LArhGHNMs~X7W(j@6UQn=nGvH=OKrj*j08cSK z$O%1$y1})F$oswM)>`e)kz0iC6zeIsb(rixW;}s8Jd;^BhG;oxW00Ex3%wk<>f~Cw z-oDp2imgI&Ghi!bs3fn|(4UkK~VR5h**d^Lkm}$_%7Z?})El~+N8#`Nn z!sFhJBawRybwhNG>qU6lD7Xj%001DpME^j6B9#}h_KtqIwJ>h3t>4tfFH}2b5Za0u z|6FA^FKyuV!nf`n1Id1`qWeAwO#-K0000003P8NoS+x_OJ!Ml00000NkvXXu0mjf4g1N= diff --git a/tests_zemu/snapshots/sp-sign_basic_expert/00001.png b/tests_zemu/snapshots/sp-sign_basic_expert/00001.png deleted file mode 100644 index 76706da37adeb20b7c40085af6b9e1e396f8b72a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 478 zcmV<40U`d0P)vDQu+%s4-) zJB(x#=Uh4ypF4nqx6{1?Jh9@ObJp5$F}@kKOt_wwRO=dT=f%a+@wD__XjwERZc6RT z3~j;h-U>Nl9G!X76ypDiiee;Pz2~}4Gn;539+)YvlANF33I*z-Xpsxq zKx=CC70(7SwZrYqoB*#JO(EXeh3vFhnsBP+hx?kAf`+MSL=@<1?Mn4n`OT_2>_+n^ zAgte(MdbdN|Cv;M;)%k!Ug8bZ7^C(vR|keU(ts`s@%a?=a!i2Yb-$|tyw%`Y&_wF_ zOm7S62|?kk=HltiqfB|RE1X`a?~b!h5vG`b6mebk#8eb3yZIVFKLH|vgg*;s+9sc5 zKF;9@P>&5Z1oZlYXO{Cjz~sN-EbVc17mc3(OZesqO74I~pD%LKRFL~{C^R0~`(pP= zIF<0;e6c)3HpoPO8zt04e>3LbB(l&+l^`<*OA%fG000000000000000003Z_U!k^P UV?n+a07*qoM6N<$g1^JsApigX diff --git a/tests_zemu/snapshots/sp-sign_basic_expert/00002.png b/tests_zemu/snapshots/sp-sign_basic_expert/00002.png deleted file mode 100644 index 5b7d0c4dfafbbabe39aca39ec8d8b6b17e1b3e92..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 876 zcmV-y1C#uTP)o0whvfr*R637g2 z!Z8KaF{m3Cb*>JphhMs9aY;e+9&pF8Jzf32-(rnR0Lm_+d`#7{S$`#oClWkmpJ!gi~R8FfvGex%~13FV_EKuyPl2i$u`^|DPRP?5C>ONJ{vX2j-<6iTGcs#@UF@0;I z;KA+oCu002fs|)+t;9Fmz^L>87kD(;l1? ztn<5Vt~Ut4P`%S?+|(#uprxbgDn|x$&r`LE?zQIICQW%;H^=usWP&bNEW!n3_DQ?` zAP9osBr8?Sm2R}ov0_4!rRA0lCBiWd1^|&YK`-7-Fux6DrvTW9%vpB7FPV^J=jw5w z6~t(l$!%yBDzsoDaQ0000 CPp2jT diff --git a/tests_zemu/snapshots/sp-sign_basic_expert/00003.png b/tests_zemu/snapshots/sp-sign_basic_expert/00003.png deleted file mode 100644 index 2664a3da9c669d65d50dc819ac71a55c2baa7c30..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 470 zcmV;{0V)28P)oaBQ=qbVevotTy?T}+GHwf`O_GawAiXpCR>SAFbfQ(MPu6ySQin`-W3 zwFJo+$cuw@4z@}&V{V>R^OvB~{-%-5IejEX72b2xlKBBR$9}Z6hP7KJm5RG0iu&Re zaw$t^XDJW*P3%Owc-;3Iy2{{=$~*u7yi|RQQ*MA;?~{gSL4CIF%??j_4V9-x>5HR0 zvs0dJXpZ$up9g+O`j0gIT~Bp|Nuw{dcFwJz0qKdfK6U)oMm6iL-vi`%b!%#*^}yf> z-|W^0z|D)n^4{zaFF~eLUa4|=(=;LKrLtc`tzC5Q6V^n%zSb^(#$p4Ox2)Bs0m!%E z3C(J?ZvfnDVz80TwW3__2e6#@VN004kFKNIhyl=ANwW5?&} zsW+MW`++a#6r4(b7GAJ1qKvG5%E{4&cCeq%q z$QfEq%xo#2hLNe$%;WSN@AEtNno{a2(0Ed|kn>VKYFad19~#IQa%-Bf&6fDE0M!Ik zayX}x$}T-eEl<;2Jxg}unH6wH1Ix+vD61yHm;lqgUL{@H=PU*^JG~#tm;m|Qm)%!8 zZ#I_ihI1FH+6?czQ^yio`+)L#BfD18*#oEBgf~{@aiX0C*U*2%okNv%0000c$g_U0 z#Yq@OSJLtdT>fYl7z}*;2i9k@7+0dXw^{mZ>2&&&c!28EUvL%&t;Oyz8Q^FlYL{*U?=QCJK-GO$+Gmitvk96Y$dDeg{yr02i9TD zm$2KqquanTlp;2R0GmO8%^<*MVp&tv`1lVD000007T~t%=r*vGxGg%m4XgvzP^zKd u4FYTi0XBmGpNZR|quam$000009PtNkbG?MF>(QJ50000M+t$JNmHeF)z8b8mf#W_<`qs)%SPOv|29F%qM+^=JnK{Ff7Cdr-I zCY|gf_%ruKD9KT{8nrS?xw7KVfL=uCu#eI+cNEaj1_Y; zZ)(rFRT&&$CtV~iBpF`4x3}evT0wME&}G$6HD0ry=kooL(^>R*x!d}M^2r}uQe_z! zrfo?7d+&te-G~y^so@Df9k=Z@dj6;HYURJ4V7Grsb0%(H8u(L*_rm X>G{7tobWr74HEWr^>bP0l+XkKySKh8 diff --git a/tests_zemu/snapshots/sp-sign_basic_expert/00006.png b/tests_zemu/snapshots/sp-sign_basic_expert/00006.png deleted file mode 100644 index 00bb8c3df5eb5efc4471bb489f13d8887c381324..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 878 zcmV-!1CjiRP)--8V5c-a95uhcU?nQa2~d@1>CoAuvVP|? zlcBBttOo2e>~ESiOHi&?d$>cUUfAD<<>zYPT=wl)mhf*i!jz3vei%st2>jR6EKt{D{u}simVe!+uZ1+ z$JAQ-Kz4tS>DJc7Y|W3dY(1UYh>GR2djdLzYqM1OZ0jn}1jy-CS7*zDpgPMsi=A1j zGYInVP$P5_{|&QC2qA-_Oh7M0v{sl7om$oy%PC4gk|1 z>F^Q$Pmie-*$jYe8C^QDi$doef=;*DsMU z7qaFK=yJhVF)s-|Cne52x@QzqHHP_+2qAfk*$CgOstsq6P8y}rpMVA(5sB43NJSr(&#tM&G~Ra z1?WY2bf9_CtzY~*+Gu7u>X~kk+tPmRtcRgCh`BI`NmVn)(0|YLjw*)(000EU-OvWz z`SUj`DWEsE%y!os6%Oo4hDOa#-{y`v{N(N(lj#cd1oSz&d6XHRv3OFCBjAsn^YDUW zsFP)qWM1U6+Zj7Le8T7%KPAI2KpWPDsh6F+@=SxXH~Eawrdi#1YYO!An8QaIegVl2 z@H83CP9wIb)6Wu9xDi;?aDCmE@Fl%G^KXeWtZR2a*^a(}mq&lo$I#5Na_g+N{(p+5 z{>%|Ge|XhKO*cZL;T-*0`v+VvymXOnpc`bOe;Y=qiT=&-4xWTn=t+Vg^A46mcmV(a s00000000000000000000005Tp2PA3&!9JN))Bpeg07*qoM6N<$f=}rK7XSbN diff --git a/tests_zemu/snapshots/sp-sign_basic_expert/00008.png b/tests_zemu/snapshots/sp-sign_basic_expert/00008.png deleted file mode 100644 index e204fa2790ca958d89e312abe03d6ea50340b473..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 907 zcmV;619bd}P)$$PmEo_Z8X=nt^n&iS4ajIaZPV-7Hv0LWQMYETrKo!(=ytfLd5wcR4PD4Ez*nr1HDQ!NaoZi<7^*jfC^=Le?hNV z02vzAa{LfC3AXG;t)6&Exh$&ygC%?Adsv$UYZgF8){S+NKOqM$uhLjR!-R2 zG5hp0lRU{f)1>K={f2p)k;+(3I_@Mgzj3|qMPv|WfkGRV<=NAjc(@) znSF)Kir7ATj!Z9rtg=YR)K9HUPo~{yHkB({j%M^>ZpWuNx#6T2fQs+Z8?|Kw4N%;w zjaOxro+=%)9|mvvLT1G2bTFyi$&Ad67}6+{o7DNjp*MD*5FC73q6SwWURqfWO&oR z4NV=|j6TNTk&je{WA^bka#~dlZQJ`kokV2FrzlRE%W4;@&%bQRTFJ4 zK(2gCC6=;wTUh{hkDzua2a$V%TF!J6C~J0h|Db%!I2~4nmiWRK)zJ1?h7s*h!mg^~ zsBNNl2v!E|mWowEV>B>VKwKU1iEYzJK5Mvu_ieMeKH$VmYJ00000m4q59b(pL=Xn!L=GK`x0^=F%iRj7FSsuoxW+i)FDRqGOS$33@3vls4c2XH4%65-&9@c?RwkDOxW9z)zvss ziQTL7?D#O8_P}i%y-ihsYh`B~doACpjcl~kM1nQVSWp4aCxu7vUH+&`YJ6&+eZ_Q= zTL2krH~Q*s6S+~rYAY$1;z>EBhDL5PQWkeuZDo^7vvRb3T-$+rKx9{COGLhn&nqRS h0ssI2008g`{sW>aHT>2m-8002ovPDHLkV1f`Ps1yJI diff --git a/tests_zemu/snapshots/sp-sign_basic_expert/00009.png b/tests_zemu/snapshots/sp-sign_basic_expert/00009.png deleted file mode 100644 index 88ef26d33a49f0b0c567001b38ef05670237d81e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 553 zcmV+^0@nSBP)x&r?W_<5=X( z)wFAQtfET9q8@T{j8<|5=XvU#_%uQ%#en)%Ppn^iW2OW0Gcm`cmpi4OBTfQpNu5}e zQDkM6v`@=x^7{0~Y|ZiSC0fi1tsGCvYbu$KOo^#h`_M+Gey-X+lLZ@~L!;|g7wo7K zQ?dh5F=heft14to1vs>Mz1!CNWcGM%9xT`Z9oaC}nJE)$S0N0Uc2_yGrULYltsjZR zY31Uq*AlH(ocO+1$(%K>I^h_YXJHWUzlQ!@-uy+S4gdgPlF4qU`ID8o8s=3!K8QEc z-gwi8u!mz>aYj1MZ0#3GKT7APf9O6idNzMy6=z+^C68W;7F3prN;6@3U>^P583~ohfF~E?Am}{D{aSnqd23N#3f^NqCKVg53LCCFWW8ApGIzguUh;O*h;7&M&?j#5@d$1M43jhEB r000000000000000000000I-c;_S+WVmIV*~00000NkvXXu0mjfN)h)P diff --git a/tests_zemu/snapshots/sp-sign_basic_expert/00010.png b/tests_zemu/snapshots/sp-sign_basic_expert/00010.png deleted file mode 100644 index 8fe1f906a0e09dc979fe36d314c322f3f1bb2d31..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 381 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|@9dba4!+nDh2#w9p|19*4k^ zJD%V7FL`&AU#87d!&Py@t?GSQ*_A3Li`syC7<|4P1J!QZwqZP zXqvk$)L^o@g8tc~f88d|`yBeJg8#746!E9)^EAWWPU}tB^|z#W<^A}0`Rl(D%AcF; z6OP)k`yWe>6ek0NUZ|P$uS+Y8f2{aZwMzf1%nq-HxA~6uEdHpKu4l1uVG>hj?4HPw ze(jyW5xGE_{#zx#{?0#s_1~L#S+qxa)p`EmR1SSmKp=sHXS^{x VWRssard5DMJzf1=);T3K0RX=un$rLP diff --git a/tests_zemu/snapshots/sp-sign_basic_expert/00011.png b/tests_zemu/snapshots/sp-sign_basic_expert/00011.png deleted file mode 100644 index 0e4a6001ca012849b03f1b36b15847422519fb90..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 456 zcmV;(0XP1MP)lHqD?^_Y2 z&~UWXgy{^kPD1l6?bvw?rjazLIs4CaeiIf9y)&BTY)mzsd+)PWnmHJlfY4o;nNShw z@$qw7ATg5FY!=rv$&%@oZ7aCg_w_FPn`;+H_43ktTzUQ7CNUUOO0!CntOm2=H7T`J zSErJ}5>!1$sL*ALz973NgrL=lhG-|Cx|q1X#bS6dcc`vZhQ%@0)z}iGAL4T+Mqa75 zyZQ`>LtMSVg@}g!*&s`kET8sS@=mN9p;ei@J87o>neO;5=;7(EPk>b>0D#Zb-wib< z{5~tcx+x-T@wRgN5W*fn`IYU5>dz9ZSC(l8n{nqmxuTc;A8?fFN@(@&t@nsKpek%c zZ+~5S?gW(9m%n2Iju`3zZImPw`@d=uP%;+yu8EQs{?-0swL_v9Y+E|7?)tDnm{r-UW|wn2MB diff --git a/tests_zemu/snapshots/sp-sign_basic_expert/00013.png b/tests_zemu/snapshots/sp-sign_basic_expert/00013.png deleted file mode 100644 index 1e4be69934787c368c2b5ed677cc7f5a2470be3b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 355 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|`hpba4!+nDh2#G+&c}K^PbX0`eJS}y70`%8T>n^%dV>bk>TM}C(cF@9*Jbj^5WTF;gKGIO)y zjlJ*9*PE9W@jdm~5r5wEu#TD8y6+Pnh8_O<-8#^Bx$bnOy3REWn^jXeAFev)TXe-F zTky7j?62N_lL@yzwx7O!=&4O1W7^|)7fcr%%i5*3D%0_G;tl)cpW3Io3*7!cdXW1o sV&B=e%knGs=l(tai5cc!1_ryAe9w9}zGZ%X&;TUp>FVdQ&MBb@086r+N&o-= diff --git a/tests_zemu/snapshots/sp-sign_basic_expert/00014.png b/tests_zemu/snapshots/sp-sign_basic_expert/00014.png deleted file mode 100644 index 4c3747edad754c34867ec5f1a66fbe0bb59f7edd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 472 zcmV;}0Vn>6P)NklWPJwn1du000000JxKn=m8widp~r1 zYwblNxzK0y0Pc*P_TM4;LVVLU?czl?jqeS za-k=ts|?>a`zHL-427hBC>;hri0MjB?_Ceh);Q%b+oFp?wjcdj^Ujyq2f1aN0Wz$e ze&3>_Km5Cyc|G*wo@hH?Mt^#xSCaFWEt4RodP_509F-CvPG7L$)ge1Ib1gx0b>lAV zNU|qDmh54>K6(S=o;Y+4004kxVroI|k7}{V`upz8clwD+5pMl*D0AuqCbd%ctl?44 zo*42wyDU$_kD?>R6I(^u{TZy&CDk=jB*6V`;q#r$4|CV0^`+@VOVDCTHvbeez{cW4 zbpCltlDLb21k4MQ+rb#QE06nT?fH@_etD1ZrC5UQj06Ax0001hg}wnoqe+{v@krbN O0000?e8vSM=g;SA}V#zI-#lF0K9Zv=MLCZ|(ZWwoe=N<(mOk zi*hL?OSnh56L15$6VUH{>i&PQCH_LArhGHNMs~X7W(j@6UQn=nGvH=OKrj*j08cSK z$O%1$y1})F$oswM)>`e)kz0iC6zeIsb(rixW;}s8Jd;^BhG;oxW00Ex3%wk<>f~Cw z-oDp2imgI&Ghi!bs3fn|(4UkK~VR5h**d^Lkm}$_%7Z?})El~+N8#`Nn z!sFhJBawRybwhNG>qU6lD7Xj%001DpME^j6B9#}h_KtqIwJ>h3t>4tfFH}2b5Za0u z|6FA^FKyuV!nf`n1Id1`qWeAwO#-K0000003P8NoS+x_OJ!Ml00000NkvXXu0mjf4g1N= diff --git a/tests_zemu/snapshots/sp-sign_basic_normal/00001.png b/tests_zemu/snapshots/sp-sign_basic_normal/00001.png deleted file mode 100644 index 76706da37adeb20b7c40085af6b9e1e396f8b72a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 478 zcmV<40U`d0P)vDQu+%s4-) zJB(x#=Uh4ypF4nqx6{1?Jh9@ObJp5$F}@kKOt_wwRO=dT=f%a+@wD__XjwERZc6RT z3~j;h-U>Nl9G!X76ypDiiee;Pz2~}4Gn;539+)YvlANF33I*z-Xpsxq zKx=CC70(7SwZrYqoB*#JO(EXeh3vFhnsBP+hx?kAf`+MSL=@<1?Mn4n`OT_2>_+n^ zAgte(MdbdN|Cv;M;)%k!Ug8bZ7^C(vR|keU(ts`s@%a?=a!i2Yb-$|tyw%`Y&_wF_ zOm7S62|?kk=HltiqfB|RE1X`a?~b!h5vG`b6mebk#8eb3yZIVFKLH|vgg*;s+9sc5 zKF;9@P>&5Z1oZlYXO{Cjz~sN-EbVc17mc3(OZesqO74I~pD%LKRFL~{C^R0~`(pP= zIF<0;e6c)3HpoPO8zt04e>3LbB(l&+l^`<*OA%fG000000000000000003Z_U!k^P UV?n+a07*qoM6N<$g1^JsApigX diff --git a/tests_zemu/snapshots/sp-sign_basic_normal/00002.png b/tests_zemu/snapshots/sp-sign_basic_normal/00002.png deleted file mode 100644 index 00bb8c3df5eb5efc4471bb489f13d8887c381324..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 878 zcmV-!1CjiRP)--8V5c-a95uhcU?nQa2~d@1>CoAuvVP|? zlcBBttOo2e>~ESiOHi&?d$>cUUfAD<<>zYPT=wl)mhf*i!jz3vei%st2>jR6EKt{D{u}simVe!+uZ1+ z$JAQ-Kz4tS>DJc7Y|W3dY(1UYh>GR2djdLzYqM1OZ0jn}1jy-CS7*zDpgPMsi=A1j zGYInVP$P5_{|&QC2qA-_Oh7M0v{sl7om$oy%PC4gk|1 z>F^Q$Pmie-*$jYe8C^QDi$doef=;*DsMU z7qaFK=yJhVF)s-|Cne52x@QzqHHP_+2qAfk*$CgOstsq6P8y}rpMVA(5sB43NJSr(&#tM&G~Ra z1?WY2bf9_CtzY~*+Gu7u>X~kk+tPmRtcRgCh`BI`NmVn)(0|YLjw*)(000EU-OvWz z`SUj`DWEsE%y!os6%Oo4hDOa#-{y`v{N(N(lj#cd1oSz&d6XHRv3OFCBjAsn^YDUW zsFP)qWM1U6+Zj7Le8T7%KPAI2KpWPDsh6F+@=SxXH~Eawrdi#1YYO!An8QaIegVl2 z@H83CP9wIb)6Wu9xDi;?aDCmE@Fl%G^KXeWtZR2a*^a(}mq&lo$I#5Na_g+N{(p+5 z{>%|Ge|XhKO*cZL;T-*0`v+VvymXOnpc`bOe;Y=qiT=&-4xWTn=t+Vg^A46mcmV(a s00000000000000000000005Tp2PA3&!9JN))Bpeg07*qoM6N<$f=}rK7XSbN diff --git a/tests_zemu/snapshots/sp-sign_basic_normal/00004.png b/tests_zemu/snapshots/sp-sign_basic_normal/00004.png deleted file mode 100644 index e204fa2790ca958d89e312abe03d6ea50340b473..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 907 zcmV;619bd}P)$$PmEo_Z8X=nt^n&iS4ajIaZPV-7Hv0LWQMYETrKo!(=ytfLd5wcR4PD4Ez*nr1HDQ!NaoZi<7^*jfC^=Le?hNV z02vzAa{LfC3AXG;t)6&Exh$&ygC%?Adsv$UYZgF8){S+NKOqM$uhLjR!-R2 zG5hp0lRU{f)1>K={f2p)k;+(3I_@Mgzj3|qMPv|WfkGRV<=NAjc(@) znSF)Kir7ATj!Z9rtg=YR)K9HUPo~{yHkB({j%M^>ZpWuNx#6T2fQs+Z8?|Kw4N%;w zjaOxro+=%)9|mvvLT1G2bTFyi$&Ad67}6+{o7DNjp*MD*5FC73q6SwWURqfWO&oR z4NV=|j6TNTk&je{WA^bka#~dlZQJ`kokV2FrzlRE%W4;@&%bQRTFJ4 zK(2gCC6=;wTUh{hkDzua2a$V%TF!J6C~J0h|Db%!I2~4nmiWRK)zJ1?h7s*h!mg^~ zsBNNl2v!E|mWowEV>B>VKwKU1iEYzJK5Mvu_ieMeKH$VmYJ00000m4q59b(pL=Xn!L=GK`x0^=F%iRj7FSsuoxW+i)FDRqGOS$33@3vls4c2XH4%65-&9@c?RwkDOxW9z)zvss ziQTL7?D#O8_P}i%y-ihsYh`B~doACpjcl~kM1nQVSWp4aCxu7vUH+&`YJ6&+eZ_Q= zTL2krH~Q*s6S+~rYAY$1;z>EBhDL5PQWkeuZDo^7vvRb3T-$+rKx9{COGLhn&nqRS h0ssI2008g`{sW>aHT>2m-8002ovPDHLkV1f`Ps1yJI diff --git a/tests_zemu/snapshots/sp-sign_basic_normal/00005.png b/tests_zemu/snapshots/sp-sign_basic_normal/00005.png deleted file mode 100644 index 88ef26d33a49f0b0c567001b38ef05670237d81e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 553 zcmV+^0@nSBP)x&r?W_<5=X( z)wFAQtfET9q8@T{j8<|5=XvU#_%uQ%#en)%Ppn^iW2OW0Gcm`cmpi4OBTfQpNu5}e zQDkM6v`@=x^7{0~Y|ZiSC0fi1tsGCvYbu$KOo^#h`_M+Gey-X+lLZ@~L!;|g7wo7K zQ?dh5F=heft14to1vs>Mz1!CNWcGM%9xT`Z9oaC}nJE)$S0N0Uc2_yGrULYltsjZR zY31Uq*AlH(ocO+1$(%K>I^h_YXJHWUzlQ!@-uy+S4gdgPlF4qU`ID8o8s=3!K8QEc z-gwi8u!mz>aYj1MZ0#3GKT7APf9O6idNzMy6=z+^C68W;7F3prN;6@3U>^P583~ohfF~E?Am}{D{aSnqd23N#3f^NqCKVg53LCCFWW8ApGIzguUh;O*h;7&M&?j#5@d$1M43jhEB r000000000000000000000I-c;_S+WVmIV*~00000NkvXXu0mjfN)h)P diff --git a/tests_zemu/snapshots/sp-sign_basic_normal/00006.png b/tests_zemu/snapshots/sp-sign_basic_normal/00006.png deleted file mode 100644 index 8fe1f906a0e09dc979fe36d314c322f3f1bb2d31..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 381 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|@9dba4!+nDh2#w9p|19*4k^ zJD%V7FL`&AU#87d!&Py@t?GSQ*_A3Li`syC7<|4P1J!QZwqZP zXqvk$)L^o@g8tc~f88d|`yBeJg8#746!E9)^EAWWPU}tB^|z#W<^A}0`Rl(D%AcF; z6OP)k`yWe>6ek0NUZ|P$uS+Y8f2{aZwMzf1%nq-HxA~6uEdHpKu4l1uVG>hj?4HPw ze(jyW5xGE_{#zx#{?0#s_1~L#S+qxa)p`EmR1SSmKp=sHXS^{x VWRssard5DMJzf1=);T3K0RX=un$rLP diff --git a/tests_zemu/snapshots/sp-sign_basic_normal/00007.png b/tests_zemu/snapshots/sp-sign_basic_normal/00007.png deleted file mode 100644 index 0e4a6001ca012849b03f1b36b15847422519fb90..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 456 zcmV;(0XP1MP)lHqD?^_Y2 z&~UWXgy{^kPD1l6?bvw?rjazLIs4CaeiIf9y)&BTY)mzsd+)PWnmHJlfY4o;nNShw z@$qw7ATg5FY!=rv$&%@oZ7aCg_w_FPn`;+H_43ktTzUQ7CNUUOO0!CntOm2=H7T`J zSErJ}5>!1$sL*ALz973NgrL=lhG-|Cx|q1X#bS6dcc`vZhQ%@0)z}iGAL4T+Mqa75 zyZQ`>LtMSVg@}g!*&s`kET8sS@=mN9p;ei@J87o>neO;5=;7(EPk>b>0D#Zb-wib< z{5~tcx+x-T@wRgN5W*fn`IYU5>dz9ZSC(l8n{nqmxuTc;A8?fFN@(@&t@nsKpek%c zZ+~5S?gW(9m%n2Iju`3zZImPw`@d=uP%;+yu8EQs{?-0swL_v9Y+E|7?)tDnm{r-UW|wn2MB diff --git a/tests_zemu/snapshots/sp-sign_basic_normal/00009.png b/tests_zemu/snapshots/sp-sign_basic_normal/00009.png deleted file mode 100644 index 1e4be69934787c368c2b5ed677cc7f5a2470be3b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 355 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|`hpba4!+nDh2#G+&c}K^PbX0`eJS}y70`%8T>n^%dV>bk>TM}C(cF@9*Jbj^5WTF;gKGIO)y zjlJ*9*PE9W@jdm~5r5wEu#TD8y6+Pnh8_O<-8#^Bx$bnOy3REWn^jXeAFev)TXe-F zTky7j?62N_lL@yzwx7O!=&4O1W7^|)7fcr%%i5*3D%0_G;tl)cpW3Io3*7!cdXW1o sV&B=e%knGs=l(tai5cc!1_ryAe9w9}zGZ%X&;TUp>FVdQ&MBb@086r+N&o-= diff --git a/tests_zemu/snapshots/sp-sign_basic_normal/00010.png b/tests_zemu/snapshots/sp-sign_basic_normal/00010.png deleted file mode 100644 index 4c3747edad754c34867ec5f1a66fbe0bb59f7edd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 472 zcmV;}0Vn>6P)NklWPJwn1du000000JxKn=m8widp~r1 zYwblNxzK0y0Pc*P_TM4;LVVLU?czl?jqeS za-k=ts|?>a`zHL-427hBC>;hri0MjB?_Ceh);Q%b+oFp?wjcdj^Ujyq2f1aN0Wz$e ze&3>_Km5Cyc|G*wo@hH?Mt^#xSCaFWEt4RodP_509F-CvPG7L$)ge1Ib1gx0b>lAV zNU|qDmh54>K6(S=o;Y+4004kxVroI|k7}{V`upz8clwD+5pMl*D0AuqCbd%ctl?44 zo*42wyDU$_kD?>R6I(^u{TZy&CDk=jB*6V`;q#r$4|CV0^`+@VOVDCTHvbeez{cW4 zbpCltlDLb21k4MQ+rb#QE06nT?fH@_etD1ZrC5UQj06Ax0001hg}wnoqe+{v@krbN O0000mS3K=K3NQ5K^WqT!wr(pjT}VJWGbX23`A&N}OhljHi8!4=mIX{+ipcesAli#p^~LIhzm0l2^$b{)9b#Nal2lQDv%Onc^L%<- zPsAMq@cxqIgJcGv>IYD4r^laS(q>3c1)Zw*NcocxLI@#*d?dfwrP6oeABJ zRcKK#18Nz}PJbUCaLR?Mdb&t1Ao&6CD2vew(Qr=*>8#Pgu$0tIGvFh5XPxy$asY0B zQWj->kKihMoOb7_x#B+|gb+dq!6ent>Hf^xk~pS2f7p^&t+~~@x3*0)z)~pH(`IBJ7C5Kb zZOt215S6D=4aF02I)N+;n7kB`>n}lCv={4()d_za^>pePuqZpkxR4~NqW)%kx3cE> z^thggI|ktWCCLZL3_#Tnpx922KgFcYke&)URqv7VCn1CoLJ0XtegW91-Dknlo3j7_ N002ovPDHLkV1neku}lB} diff --git a/tests_zemu/snapshots/sp-sns_add_permissions/00005.png b/tests_zemu/snapshots/sp-sns_add_permissions/00005.png index 977e35a7e20d1684c4b1f880fed25b0ef7f25091..9315690f4f75ef4d90e8db48b467a2b02e75b32d 100644 GIT binary patch delta 850 zcmV-Y1Fih$2I&TnB!4hTL_t(|ob8)glH4E+hDjVRUGm@x#b`qkyQA-6sv83m zh{gQPq!a`}5ClOG1k3qlE$}=~{Wa&z5Dk#czGq z8req9+1izkBEzYD0OPFAlc-3z{r}_h74SSy&bhb({3|I5jeoC_NDi*Lhm!#9=TR>D&DsQqP4%194pS3GB6o+Z4mI=WEe}<{)^3}Iz~^m{1DPA$TprE*RT|Q`Ay=!fN@$%4 z{|p#41O&BU!K%9bz~PspCrv=GTntx0$@=^2bl2kvz<<=`Z}!5vf8qWK41lt8!3L%I z!Gz2MevA|hai&dA1(zoMnuLo>hPE$=KHM+0TVS2M!h4dt0+2{QZ*d&}USTh4#dl(G zBOhFaE~3%N5re7h?A`^E;fneTp)j*$;c)v z1Aw3Yhy7kKwcT(K6E00UJQF0zgicTL)z6Z`sglYIETjWX6M`ztnKl3pfx>5yqLe?$ zvWc2Wotmi0md}K~r8Vt?m|g|}IZu#3&tD1K0Z>XYKH+fcF8z)GFexY5a--S&LJi$a1Rw~4 cAP6?`7kr_1hTWsNiSK`;++`l3u`D(N-qU;!ttuB7 zyeEIsDFs0g1VIo4!E%1A4$t${Uvti!4f&H?t;vP+(iehXUy2QOsY{9r_-bv%AH8Xf z93$s!?MjEsaOxbuJgaRIH4^Up|N3$TJkOJJE~$Y0N=ZWVtA7-dldE=dPcg15tuF2a zWSlDiBee4!18kiCLwbSo+F0MGzMXC5a&)c$vI~?+Tc;#gLncS7i(HlITv6g2fW`Z@ zutDu&R2sv!AU%!^VND=MZT%rO3_z;p@(XE$4?V%S8OWb2bOX%c8=4Ll%qglLiAZsRa&HAc@2I}#z zfKlTws0C}b)V=o{emQ#5>H~Yl37fCt_3gzJCR~>h@=!HE;lwoeNGU%>xtC z20V-u0&$_6x#_c-^gs#tN>T1rVBFWW>tQoIKXrkN1|X41UXeEmxQe}{A)gw9>-gp_ zbPJ76jxm_Z&hA~H7hZP~tYfjLuu<5sqPi0%B}PslOpHz`*D2o(aT=$_MWcz5swd8k zEWycRdw-ms4M7*gf4L9B^`d^}D&0+*s3Q|)bj_Mu_hQxwFQA*iYV(Zz4}C947Kj$q zk9XR!^%wjD@a}!J7*`9tojo{vttjg+?Xr%9-dH;TR>=@2>m zsRuf{i>+=u=VZcxPY&6B&)d;K;m||)UhrMQ#(!jjAPBk;o{57(taL7rKhI=jla&L2 zfBl91UNE)Ya3dzaooUTXkR%hjdy?P#EG3*OsgX;$1ezfPRhSEH0Nex$pFxRI{v>@9 zwURnDQBy2m2z^Uy+Baf)83b6KAb*~}6SfCHDaH7N!>OnAI|IO?oD|EA>I`Vgfo|EB z^GWL0Q$bZHEJqUO%en6dEHsuv+=D(*v*2(SPC~~kq0J~a(V6s>ZDt5HbTcskK@bE% au!(;mS3K=K3NQ5K^WqT!wr(pjT}VJWGbX23`A&N}OhljHi8!4=mIX{+ipcesAli#p^~LIhzm0l2^$b{)9b#Nal2lQDv%Onc^L%<- zPsAMq@cxqIgJcGv>IYD4r^laS(q>3c1)Zw*NcocxLI@#*d?dfwrP6oeABJ zRcKK#18Nz}PJbUCaLR?Mdb&t1Ao&6CD2vew(Qr=*>8#Pgu$0tIGvFh5XPxy$asY0B zQWj->kKihMoOb7_x#B+|gb+dq!6ent>Hf^xk~pS2f7p^&t+~~@x3*0)z)~pH(`IBJ7C5Kb zZOt215S6D=4aF02I)N+;n7kB`>n}lCv={4()d_za^>pePuqZpkxR4~NqW)%kx3cE> z^thggI|ktWCCLZL3_#Tnpx922KgFcYke&)URqv7VCn1CoLJ0XtegW91-Dknlo3j7_ N002ovPDHLkV1neku}lB} diff --git a/tests_zemu/snapshots/sp-sns_disburse/00005.png b/tests_zemu/snapshots/sp-sns_disburse/00005.png index 5032b7387f74c29fd8a61f7e3820f8d0cf01362e..c30eb711ca35a0df1bc4156809f722a7c07717bc 100644 GIT binary patch delta 859 zcmV-h1ElG;)7STn(InW};Yy z+jc|HR8b#Sm2d&K7xS@R2|JXK39tmyMOANtPuoL?S^;=yW=D<2mZ^qz;ltV*&P^Ea zZ0aW233r<iNS0vZrPv`Dhw+y5SRnteUECS#m zM?G?5KwrRk{u5k?!hpFIVEOV1c=rm%kFFMt2{InA|4kSV6O9<@_KL28pENs{Do`~?gmVL1T5Y#jgq002ovPDHLkV1l|WmvjIC delta 865 zcmV-n1D^bo2bl+uBmrQNB_)4BL{T(MW=cttBuSDaNs{CInXOQ3rMK_*o0hj*vDWD6 z?a)qv9<>rKFKV#xWa+VjzLXysI_O{i8# zOTgR&`bA^xUJ=L9F}N095lS!Gyr3nPioB~-RU2I3?C$C8^yHR{Ms9zJtAP$^CW?=6 z-EIh)DmuqiC0xKgi}_fugdIwV11!OGQPrEUqW^ZHRsbHFsZpb+$bIJa z9jyLxuNeyK_PH|?$2fm)iRT#FQqc5m2&c$t-69?J_={C*g zHoZ!h4l`cUTgwU%g?ZsfCon^`S?!L`B+T3j08?gT6;+4EDVil-0wyuJc z#6=z6mGJtUqh#ZxN#HDiC13PGrnV0tuhF=dtQ$FOQYBb~4Mj-|!=X+e96%Z5^g$?m zc&EP&?X-+uAjK_x>UY_r3=Gi!-vP28cqL7(v+axWQLB9OcR@V8rFvo{V|1Z-_E2XA zr~;H@`KeRT21I`gz*Ea3QOrKXyij#5wY=*E&@9SZI>p)fb#zcr=6Qchm3k@x*YHhz zX9(iMZArq273rh6#d{_)IKEZg`C-;#vU=ler6;JCvl}%^WmNlTXE?ZUnsi)w18_G5Mz zO9IED#L?jh2jA-e|1lJ#*t%OWm8QN`iMQROrdCYYS(E@9#AIBNrVj6&yJ_7rkRw!0 zAJwu5fKHBD!ufbsk%xDbT_b1T5|Nfrds(i~(KT3`W8uCQ=biI6ni!ffaIL8pnrOgT)pyEJ?Ane_&jJ@Ww~Uf? z&-3yC2-9;NXo@yQ$-P>{nv(-CRYWdj<_e|{AV&%r^co&mg!xudbWXZ=lMnsUMAiBN z%c%Y7A5?1l0e|f1cIzbl(l6i`$IU64iK1c;!>+C|cz{VK*BER?cdzems8%=K4e93b z9XGx4VX{DGP11N^7%q7~W^rXknWT-_8F-tB)nO7%Kx&btYbj(kex~f0Q{V&2)qKFO zbA)>U^p`t&q!YGN_cCfx)ZvF#I0|6A*(lbpUpA1b+<%x08V!%vTr=|yq*A=InPubi zG(2eoppAQFjoP<1lA67aZrAPTS9rbm14P2mQTR9w3a8PYsfv^WhV>;(?8~gKxGmGX zq9}@@D2k%t4nw_>7S5RJ7!jO(lhGcIDa|N0d@-PjKNpF5ciXOnqN!Y`NEzio;nWNl zqXSD)?SHPjq2agEs=WVS$K=sS8xFYbI{wc6M^CY?j#e`IrYvp=&aA zM)tdGGs(Fd8lD2_IeM~*%es-5(xF~*Tu{!vFb^xL7}=5M5rfqKjGb0~*5%v>$eIMM za{@r*L`+zqFJ+SJQuvIFhiL-W0VPFI6h%=KMHum|`~h;yB6RSeyZ`_I002ovPDHLk FV1f=oMsWZD delta 671 zcmV;Q0$~0B2LA?-?0+lzM?AA)-E8>+aM!qctykq0TxnO=-!#~fMHsJa(?wEL7K<%b zbypr4&_BILF5s#4VvfDp$A;HmLt>QtS{V8duo%)jxoi|gQ563xS4S%ei0`ouwM!N< zs=}N61Xi~AFNO+P1Cag-nc2_-CJ%s=Sx1PQ$y6ao?hrwaR)3U$VKcL>_r6k#WP)AL zw9s@x)9DG^oqiP4Miyer1K)@H3o!HYUUBh~fmxI2(-&Es^`Es9c5O$eXMu~GTSm#c z=XrSmgz32sG({VuM)5WAhpQSwG^@%KT~$hDewX1YChoC zIl?^v`pX?X(h1wCdl|JT>hMD=90f4mY!vI)FB`~IZhy=LjfTf-u9OT)aB7B& z(SaqYc7NC1(C}MnRo?%vWAbRE4F}wI9e?Nkqo-I`M=Kfqalk1FRAIqUi76$T&^4Jl zBl}&pndICJ4Nrme96i~@W!=b2=}<2@E-2?-n1>ZrjO@tsh(YRq#!f3g>vHY`WK9Cs zIRPMYA|@=*momw9DSSr8!!&{GfRdspilQirq8RvA{s7d|B6OywnfCwy002ovPDHLk FV1iITM8N<6 diff --git a/tests_zemu/snapshots/sp-sns_disburse/00007.png b/tests_zemu/snapshots/sp-sns_disburse/00007.png index ac7bb7c0fefe25767263c94ad5bd799e54cc18de..957ffe01743b760c1ef63ab2198fb22f29ea5d0a 100644 GIT binary patch delta 700 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 au!(;F1DKvAdDov{BUv6p@@Wf&m@N(_efp06Yp zAoDOd*98Co04(=vU5GK3UqcAYi;?)M~>nHQxG2*hsvZVRs_CvNC38 ztup{>2JdYQ-ct5FRXgaG#KdDqTpd|GcKw3m5j1jpbX`^AWTyUeN*I zE(h-c>KXBwoc<@{Z;yj;4256){`Cjm$j-wf2sdB=HnaaKj=zjww$(}Uh8}fK+()-cEbLb#9rnD6(M5`t^$Gfp0Bn6 z;}BlybpZeX0L%TfF2oqiuOWo_$s8w+VWSB(Y-_BD_&JC1tkkcq!bxWa)IHk@)M~@7HQxG2v61p>hTVbe%E}m> zwax=jGk9-f@Yb@&soFue>{w#i5iv(*PaV*>>R5tCZm%vgX&cY;+S|lPhGlSXR+sZc z)H#NB_b9dG;D0836~nFGwZwL(hEglqX?r(eS61R!(aq{S;zT(0fVhV56olI~m!NI& ziVgsGId~6H&xp_D^qq{qJr2S#6n^#l*9W|jorfg|H{bzmX8&0nUyNV2)k*S*dpKRQ zlj;3sl&+@t7vmW`iB;%H?88r@djS9d000000000002=@R0Dx)!0dFQ{k<%7QAOHXW M07*qoM6N<$f=kE8rvLx| diff --git a/tests_zemu/snapshots/sp-sns_start_dissolve/00001.png b/tests_zemu/snapshots/sp-sns_start_dissolve/00001.png index 1d8c7a8b472c7414b86b342b6e911a1fa1e2e795..df8203cb4695a5de348a3f264a2f32f76f9da76d 100644 GIT binary patch delta 518 zcmV+h0{Q)-1fT?vB!A~gL_t(|obB0LR>U9-fMN8wlkR^>?8OI;91IE9(5cSB*s|ZiND){7hcZv3`oR?i!ol;l@FE| zqn63X>ym2Spv}CpSlyqI)*F#UC~;A0TVZJme$G~~h<+sEcz?=5T{joD>gFtzXGKNP zld0CNrt6hWL?}BJnxn+>HCv%U9TX$1lr2P4tDkr_h+DfH$MXgx?Q9C=)NZU!H>($% zZu#Z5+?Jqa>M|kUAfd+Fl-sf(| z;G<6Hp%lM<34eNX+yKSfeOCi`SBrZ=7Im{_KbnZS^Ksj#d+3|_K0CVzYRURVaIItR zK^*ySMPy<>tG)3VX5KyWP_=e18rz~GLiw`}tA_+C4G=If?FX2CY3D*ypk$aGeO(oQQ z0EK!9+I+)He~2|97*E}irq$=6)uQ-$8UKS^wjZsN-lx5yJ%{59v00bwH~4;$DAmb+ zS1h|`YA@7)Lj*^p$%Wb3Xp?Bu%?Cc__CCdlFwT_tw zF=W3Lk%;}Q_Qt21dG<&{wYGcF*cKHL@~>rBHIy3g5!9C#wOIM<)C^D~w7)j$w!?NC z-DJNTS{ulR=Ds?XPc(GMslA}uPqx{K0rPccb|Z62oPXlBr|=)%gv%Su$Tf(?rV?sC zfLyr*Z9d_}4`NMlmAkH5UH!|c46C*%zWU04kjwU?b<+E^N3`cKd?2pYCHoDwZzM`} zvfmXlCea2C;S5%xJ9U!GH8_g&0ssI2000000000000000$9x0s5ZfI3Zo|O<0000< LMNUMnLIPld9&G^W diff --git a/tests_zemu/snapshots/sp-sns_stop_dissolve/00003.png b/tests_zemu/snapshots/sp-sns_stop_dissolve/00003.png index 4c04b100022d0df386c313f0dff0e8d494cff225..ec74130d12757dd47b6c0dbb13660857aaca0d3b 100644 GIT binary patch delta 364 zcmV-y0h9jE2FwPKBmon#C7=NVfcmS3K=K3NQ5K^WqT!wr(pjT}VJWGbX23`A&N}OhljHi8!4=mIX{+ipcesAli#p^~LIhzm0l2^$b{)9b#Nal2lQDv%Onc^L%<- zPsAMq@cxqIgJcGv>IYD4r^laS(q>3c1)Zw*NcocxLI@#*d?dfwrP6oeABJ zRcKK#18Nz}PJbUCaLR?Mdb&t1Ao&6CD2vew(Qr=*>8#Pgu$0tIGvFh5XPxy$asY0B zQWj->kKihMoOb7_x#B+|gb+dq!6ent>Hf^xk~pS2f7p^&t+~~@x3*0)z)~pH(`IBJ7C5Kb zZOt215S6D=4aF02I)N+;n7kB`>n}lCv={4()d_za^>pePuqZpkxR4~NqW)%kx3cE> z^thggI|ktWCCLZL3_#Tnpx922KgFcYke&)URqv7VCn1CoLJ0XtegW91-Dknlo3j7_ N002ovPDHLkV1neku}lB} diff --git a/tests_zemu/snapshots/st-mainmenu/00001.png b/tests_zemu/snapshots/st-mainmenu/00001.png index ddd88b8416b1fc2411176eb4ec6b013953aeb00a..38a93e7312e7d3e91be7108f19c3edd6522cdcc2 100644 GIT binary patch literal 14016 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 E1&r7}TL1t6 literal 14153 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๿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 Y_D8OkU*Q6d$g!9jTU;x@;`aD|0qCrgRR910 diff --git a/tests_zemu/snapshots/st-pb_add_hotkey/00000.png b/tests_zemu/snapshots/st-pb_add_hotkey/00000.png deleted file mode 100644 index b9bb14c49da744f9b9326770c705d9336c15c6f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8043 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 a>_}d8GWI-!0zRVeyJ>3m8~*y8-~S6gvIk`V diff --git a/tests_zemu/snapshots/st-pb_add_hotkey/00001.png b/tests_zemu/snapshots/st-pb_add_hotkey/00001.png deleted file mode 100644 index d65fc52af60c92999036b0fc874db1a018c745f9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12144 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 diff --git a/tests_zemu/snapshots/st-pb_add_hotkey/00002.png b/tests_zemu/snapshots/st-pb_add_hotkey/00002.png deleted file mode 100644 index 803ea3e5f1555d404fa9533ee5063d371368384a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14924 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 diff --git a/tests_zemu/snapshots/st-pb_add_hotkey/00003.png b/tests_zemu/snapshots/st-pb_add_hotkey/00003.png deleted file mode 100644 index ec1aef6ea3ca2fdaae7c421ca53efad5139f7996..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8974 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 Yos(B7C>jpD=fY)WX@9l(vhThB1Kk4lhX4Qo diff --git a/tests_zemu/snapshots/st-pb_add_hotkey/00004.png b/tests_zemu/snapshots/st-pb_add_hotkey/00004.png deleted file mode 100644 index bf582528cb83b604cb8f8e07ff17f71d1a14a981..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11824 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 diff --git a/tests_zemu/snapshots/st-pb_check_status/00000.png b/tests_zemu/snapshots/st-pb_check_status/00000.png deleted file mode 100644 index b9bb14c49da744f9b9326770c705d9336c15c6f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8043 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 a>_}d8GWI-!0zRVeyJ>3m8~*y8-~S6gvIk`V diff --git a/tests_zemu/snapshots/st-pb_check_status/00001.png b/tests_zemu/snapshots/st-pb_check_status/00001.png deleted file mode 100644 index 073c247445724a13f5a5dac435f7817bdbcc7d6c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8734 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 Vt)5DH0pGcRtSoIW)SvfG{~tTbV1obv diff --git a/tests_zemu/snapshots/st-pb_check_status/00003.png b/tests_zemu/snapshots/st-pb_check_status/00003.png deleted file mode 100644 index bf582528cb83b604cb8f8e07ff17f71d1a14a981..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11824 zcmeHtS6EZ;w=eIm%p0De~tlM8PuH5yR+p4mwzd!Ht_UD!-Sd5mXNt$mw2OqhuwMq5+Y)T{I>8e&fG7~C~d~r`}wDY%tLnm+I)WE;A-o#!4 zov1sM49syaRRzT9WV$Q|+rWn?6rh}^yr`m_+bO(0$L35PRObFf6)3`rSZT~nd%)56 zxjE~-CBIkq$qMt-lO5*17A*KZQy_WP;uF1eqy9y!{doh!MK4E%fO00z2`8B#Uu z-%0VlH|t*n*xo89%;Xa7>s?tcnf8EGum7|TAlBI>kRIn5M-nrLLY|Y0dy2OMf%pu{pyeO z9Pi>Y7Xq$P=KwpfYn)3u$C1zP!1uiSs(39k`R2V0a^$z$1q13f^EP?xj5dgyfJAF| zJ>aAlmm~n?1wOtBh@vICT|KFNfS`T(%z_pWljIUcrEL|SUd)EMXxih^clC{t%$Qq( zm(KOTh-&QYCwH(d1^a4eb# zD#|5>Yi15Ib+-UhirE~>zESh%=xzH@_FtQN+h8G3l3ln9m=`OAKYBcu{=#3I8_E{{ zdtqwaP`2#fqx8XQG6!Uu+p@L{a79LJWT80niqmgRO5oP!QE~Ua=D5Ie`HKpex#zV- zOn6mTVHDN6txOA_=d&5j+H)V6{sq^5e5nVCfm`CM1l8ARQzhIaLDB|BEBM5KHt|fABxW1i*T_kGJjZA zv81Ct_p1Vi8ahW#$I`HTnLR%XefD+DRrc0vij#o~~w_03!Lx)nrd za9;k-sOuWo{R%^1Cw;L%Tt3Qq-q-4uaDaJ%2U^kDdF}pM0uvx4+&s1H5PN@ZOTu^T z0(Hf!Uj+-_Mt^_ZTT4h%wq3Fb0vmk73*YyQ;H&w0qyFb+n$mqI1rPRJz4cz@mgw$X zwvy5|x`JF~3UWFv)i+Fyv{v34H2*hq^#6+WQ0* zE$>MgzkpvX7FgwWIJRd~xmnZ3qpnc8(D@MoJb*-+^)%&GPbqih><51Ov}G!86G;6l z-m;w0LPUAuKP&w3kj@!aJ?)zJ)UwUft{`5BIx`2c@})F_X1D#-Q>HI(5l96E+*xaZ zV9!>ICYf_Omb_ocCb2E|E)U_4{p9YsvZ#D>YmqBJmB)B@%xjxJ>ZH;VsjgjBHoBtX znvHNR39(lg!gq#Psz+LuHz>vy3m_Z!5A?3w=So`H6L7xo&56v#{yvQ_zB4saYDhZi z7KrO#NyZS}S~jir7s@sp5F;;#4%Aa5bFsYYjkDY7$TDJjwbwj&7-BcW2+4R+HqQS$ zm|3V`KuUwigYtC_@}-hM`C{sdJ97X%hru(Lnn3Q;;^=vdgc1#lPDJn0uHk?}S6xn@ zVbtQH4GI1MjM}c7!x5sNwajiKG%IJvq4|rzPkl5rtjl^ka`Z~M+F)?T`+gz$tx#{d zJo5^fe(Q8c*kwb$*H6N`tdZk6+f6ebTSN}^l!3G4(3_gFgxBK1c(Z8Y>wi_G>=2~1_gxnTM>@S(GF>r0O`~iOlYfnEu)Q336 zVJulHeScTwk|*`AV6n*NOa$HU-@o6_T~kFnYP5w2O4J=!`L^}!;qeAg@?bDm4qP_H zRmi$fp(u)1@x9NC3L^_fX6|%8opuOilESk_<{S2LYf)gM5U|22?8NDY=6G|h;h102 ziYy90|Hmeu;7e_QH${ZQgtL6#PPk3Tc}vLSO2xK>M_OA2UMo^b3D?coM zl33C-S))jQL^)Ev!)9u~5XaW7LtBmLPKq8$n+$RYLvLoYlLi-#PlUHtCf#tjMFlR@ z4lwXz`VF0!VsKf z2G)X1zNyh`Cm+Vtn(I~3zWgf(Ivd%IhGyx5L{~hG;7TA^L-S_hN-ah8@FiI@iJ~Gw z88hKJ{Y(}w4@zV1qqYaKIsw^LhR}RXTdBoo4%JicgV#xk7fGXT>y{GicRg?xk>-!$YPi$-TX9#s!n7iK_3bvh@uGcfc+l6l)!M+UsU_4U3 zesn+K2(t!<*ldOFa5{a>VUC!HNnlP7KRZ4))Hb;Cl|Uc_b$NzrY;vR_EbTKoR5!)3 zf#B?yyz0yJBYvI~qD?06cfxw_8hSo~UbS$i3G08(gg; z4Y!e+GbNf4KX*~lO)o~s2rDFGT4T)T37GxV)Rccm%Pd>#>@&atRfH7%zL(~wjT5mb zRFdnrC&y3a<(;Dplrda4I<7Zcif+GYoA<=NR28TR9M_W^o3Duc;6vs&KfGSPkfFvR z-|9C&rtLi1X21pA$9cB8cUP6P7>cEL+Eju~+RWNacoSC;3w!N3fw{L8QFy@phn-dq z=KX$H4mg3&pbza9qFJlT{@L}7d% z+8TLA3<_EQlI5*FB$2Rl88$n@F!_05`4=Wt6DMH>Xnk#*KC#*dTUSG1=ZK>O00Sk2P&P?$+1RgmxkrsNp7J&*=e zsO)HK=by_={=cI9xnp|6J1Z)SkdPPpl&rc+!|^JL^cAoE9mxNmE+=%4*Dx!4zXHML z{75`FaYZ2Rh!ncIr@DwlH(H982((+*J-i}8Gt!RgNc3upx(_w}%yl_D4oEWJ1(D)s zENKq6)l(*CJf%5^%ft|_aNcrVYr^2hK++_+%oH= zTMGg|cTDhU19C42xy4i>us!%thxm&j+JgpBg)uQTygDCH*LfRL>dHdo!*WgcLe+BhbidH4Qr%$do;6 znwge*m`$7S2-FnXkU{+1#=u*&1~E^y*x+;6xPBszw z=Cy2Mj;3RJuw332s%&$%rN6rm$9bo+GQ=l@OGcC-BQPMV zBiE-^#u8MI$D1v+F})g%g%fU$;Q|wdov|UT-(7PujWh9WlFM5YUeg-+Q8*I^3W9fp zktbO5x_Ci`aGd4pd+=_^1%LRWFzS77wzG!mDMQ+OW2h`qXYN>?XrY>qam~(#9a`o& zXY{z4wo|_Hl{0JO&U2|UG%3X_g6>)NJgu`eb8qHdm#O<#?h082vc&W*g(&2} zw%g^zM6HZ<`R+Wuo+nslIPBxcLV>t#e-4#zPEEv< zlV>M8Vem!IR{uk(L)S0N0juGKi4AhYx2a1%xiGB+e*0>D+p9xhB5x48xlaYgfh(TR_-j+Lj&j)^z zfYo8;Epi$L#m8;OwQ?2Ad3>IH5$J=TX%MSCZOyv56o!@H;5!v6-d(l$tp+V23-y}F z$0U|+_csij5feN99ovLpjLBVf<^pSLqI(;w^rMGFoiPyrs}MhKOL|8lM4cNfMd5I` z<6&_1NW5l->@Lm{+jZj}Wb-bHYqr!!Nj$U{l>pd4WkV6^ogD)tV|#mBm*5eJ_?D?R z;pmm)7c4*ZVR*O)?JZ-U;BBh6V%k)(C<{89fSQ*?ZRPX%V)_us4;82 z*fBop8iy=7Qn-GH&@paIfJ-2`zB~=HLbHAJeCk^$_#^FKH^)4erJqpRr43pniBkApQ@y(2 z*;-du$D_Wg>l#M(up&0tC6xIAb~CMluxLN5<9>CtUPpYrU8{I1fAXiSKZ^C64hM3<6R@?vnCBXb*yZuy1<3)-p zB75xqND{(XFP*#7ER0lsa@fD}ZTA9d|K%}!w(>CytV4}n70?>rcSDSeVdJJ8tiT0U zGwm)Gy(L;4A09ls{`v=(soX-GOn7L|zN`dJ(h-|$!7VM{RG7a31m>+_!>|jG`IVl! zsVd)>&t*9gNoeVUG;Z#N_8Vt7e0v^piXy*tlsGx8h8$m4KzsYF3BZ_AAfOYG0krSbvfr1=?8T}|lc>!U?Zn_3DKI*VTcsWB0@$57GF<1W7I4Yx`gn zevUHzWSJA1ln5P+Yoa-W?9GUs#)qAfCd5XH(Sb)Z46Gax2sW)@fwZ0!cTU*sJh86n5;~rt&fz_MwU0$>BcBnqF*ZP+rBd5nrCNSM z=!{2WSQzey3b!&R#Ge&Ac5N=S@>R4Sr71*A+|jwWpLe;;&ZN^LVP8_Lswh7V1A0?A zxqW=h@pL3a3UQ3VNKA6SMQ3RDY{_G*iNjcF z%Pq0GY*hO%92-hS#v>QNnPHy_lA@uA*!TD#f}Kf7_WpqZwCKT_$7EGYyIfhGiGT@h zD$ihJwZH{-!&_b*hwLunyG}9~m6X)1uE!a0&+x;1qp6dzb{FE)X&IzcXR03K6qiL| zKon;s_~e)6M(Sn|mr z?!bzx+J91z+SJdON4;TtHq9Qnb{#5D^I@}-zRgdu$0x$8lxX(!dyqHSVGCsofe1*) z{1K@OUy{b7?mks=yaR)i0>NQnVSR!g@ojND7L{|5eGR$5KdvKlumZ#t91h2YNnpUI z@oax{oa|6eG|bneI6 z*7!Eh#OtMx_nRgwRro9hp~a7ZY!7z$;tRaAIkh?vIMF_?;iq`KFPIC>%1ZnaPFL!h z?Pvzg2V#jIxTS6repvhVHmpKBDQNla7(%`4qz#O-YcPEUGmA**4N@p*+!)TBN9eUd zS{>6OZvfFI@LjaL!&645=NbTl`s=b3S&{T?E?gK9AP)dV90M})s(ej63eeXEj_2%OppsAt_42iV&PHytm_!82fqabXYCwi>IV#` zUjzzH#vtGFQPk_rRM`cIqrLBdoT57wq%V`Il-Qk2DanXjZzzi^7DyUQ^To9VHBy80 zrx;Rr2CudZJLg-mZMO-^4g2mw!cT6k=<;USD%q{2UDBu^2?HDhTYQvn){0Nt0B@UF zU&nbdsq%IH0Bh@pqnMr42m4g26#Yzw(^3UTj#uP zf6)#gdw0MXYD%U6bYlMZ9PsVe7QU;4&yo*ssI}G2&rQ9g&Oo98Xzz@3GVAM#TX%*p z_Iq<4Jl?)!r*5xO3F$bdTZE2bAo7Pp>^23D{nel^fQIWj^DLBp#1jv z_sI$D1FVx@gDZ&bF!X%{*jETC4h_n^a32AZF+tvbyARHI#;bD+ZYdi7)xLH1UeZ$o ztrgFj18HIL_#5O%NhS1mK4fDdN15H*W&nmk>Bik!#8I~~x!1f@wJJy}d-aRo#&(q* zP*b%7c|vr1Fbx%j5N9UL((hfr;N%Sucn5Xrb#I;3kJ&H=YvO`N#GC6!K90sCF{e80 z@I{^Pel=QnohGvx6#zT8)yr1f_%izT!in;6ebZ~LQ9euXHY&sTO{ zIwp8o&5Pm~@e0Z93{qt`v}sR7SmTlC6bv+lXI}vcxOJ`j0G+mIhNj*XZ%)nahNSlX zm78AOsa3Au7Hu+tng>s`R0sz6W1k-rEj*|3?jpW3XrE-L^b^+pJv{ENu4uv)eO6$L ztcb6RzS{2vf=j`qlhZ&j5Lsja2pF1=0oIjQUSKfV0a?^dkxmqljgne`$~p&5ecBGz zKW6!~8fQD%V4z`OuK415XZMBFHL$mZLaR)0(h0Wd(yElrxx0=t z(dhKXz;T`o+hCF@k?J1$UVum}W;q*a$>%Eok1IDrbF>bzml5q`giXVciS;@3`YHRt zv9C^MJ;PAjA7Y*9G!xn_gta>B9BpLf2Rw%Mkvpq0gMu&4PHU=W{aqv7ENC4gjJmIG zZ6!H}M!D4Nt!?#yMqCR5gksN@v-w4)@O25)&YlpgsNz?2>-WJgYw$HJ40o>T z$y+uG_qX%ruFIh!&U^m!>Lum5Nhy*3RDq#q3Ys0adzyim<|a2^BA@|)V0$EHVoBMW zR&R#7HpC*JH#jRqV+`VL1qtd!iM7#dMe){_F7W~z;=0At+t&ne&7;+QP2WWuUA+4LP6f<`)N z7LJ+I2g?E^o*RY*3!i_U-BC_rDNi}h&rr;W9L6LHpB=3LB5sKfFg?+`GV%e@_@uoR zaozM=AxTC(1)%GIvi?HJobD2Fo;F0+R?06t`*)F}_n0n#{veS9j)7^!XC49xoMe$_ zap@V3(Meg6{kgMp8>`XURvz}n*L&Ep*5Q4j#ETw!13$!~YpynQ zzHBG`yzszO9?PYgmHPZ}nd}6<3?1!?RCP(x80lR{%a|qU$E)O~nxW_#PUo}b(;AY2 zOC-ljnreVu;}cW(A3N!sH&$1Jy(1~ptLqH?HZCR)A`Tb2866Q~6+C*b)uVy`Jafyq!Z-&d z+@IX_F`VO+r)gVq#|x}PX^h3!w^L7^gvkUWiNk`6yS(z#`A+Y8_AM>lvp90K`6~)0 z7=Q2I0^_8D@7L#Z5ty@$>H(9kFrl9OXJvEc&N)iqMHAipXSkEuU4CD>r!-7v!FZDi z%?kDTf>mW){mC!`@1CXQ!z_-+&gqzUj|HDh-Aq&XOZNiJ5PcGw_Iz^xYlF5pT-)-} z)+8Hp)XOHA)i&WozC(ry^kj$@WNXUp2fO&f|DRb3`k}U;boA>hp2MHst#^HX_a6eW z|E6K3|1@*?U!RBi|Bv`Tm`*sB2sqb%k1NTS?OdQRG#_R4icy&f#C+i@%=a}_zD)$R zv6VJex70aEuEX%L%#ee~$DT15;f4RmO((_&L^YT5whtm4)r?$nXn$Q?8%iyP;C* zAzgek`9XGTr4+J4(?SDN%>)RLi2T31XK#u&^+#+Y8+ zCS?TAOw;f=HFhXM~nq1AF#Oy{!HNy|(ESKK`w3;fp3=jt!>M;{crr zz&0hmXjRHd`8#T^R_6D@Q&Ric&`{5Sw}at26$bMypOI+$Mu*nfc^m zPQt?5EK3zfJhN-2u>0&b6|qHEA`Tgc&Iy|AZDzt5nN7Vpoz0xq1mAQ-e@Q5IX_|Rl z3ozrdiK#p@+y2bYArJKfI`R(sfpg;2aq(DLH$QTUFqTjgFwqh{?=b2Z@S+T>p9eIF|e_{_bzfpYF zZJ%6JyV4zM$G_;tu}aHjwO!Jjlup@L0B zs1(pK?(QK3f``J9?B8AO1ylf214#VnM<>U}A)%on8AzX<tlZ@Ep%ye_BU*;i)`{D}WOCRjkf3ngD)$O!C<_s`31IPThBwI^gwVStmPy z#@GHUc4FNi6+U()3@)?SI=6Ldf=vT3ny9H+n_vKZ5$HIghvc;qVj1#jEqOyMw2^2( zxvU0r*qdy&ez{-aU21F}L)T=tzKllo{Jt`BsPv%ZCaJzJSW$`$(iixSUj+2(v9|er z9SM0Y`Ux5kB|wf5ZGK=S?>2J;no>ANkrjWl-tUnGf(kvisbu2|CYc5K=0ADaA+4u4 znJT1O&qhz>&we~rgZ z=e#@`DMAivDQhF^;ge5sP`s0?dfQ=T=aNf(tz|5YXnL~ zs6xmqeEFIw?iBVgkNg_zk>M`1vLbkA_M1PC;N6T?7?oj45E{xACuacl&V*31-l^`n tjJOnJd(ZEgC0Xxs*3N%x$Mlptcxou$+rvQ@m;@(NSJ8e{t8Dx7e*m6rX_5c{ diff --git a/tests_zemu/snapshots/st-pb_claim_neurons/00000.png b/tests_zemu/snapshots/st-pb_claim_neurons/00000.png deleted file mode 100644 index b9bb14c49da744f9b9326770c705d9336c15c6f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8043 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 a>_}d8GWI-!0zRVeyJ>3m8~*y8-~S6gvIk`V diff --git a/tests_zemu/snapshots/st-pb_claim_neurons/00001.png b/tests_zemu/snapshots/st-pb_claim_neurons/00001.png deleted file mode 100644 index 6b00eabd92ac681c83b17d9191f2a64c26fe264a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8967 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 Vt)5DH0pGcRtSoIW)SvfG{~tTbV1obv diff --git a/tests_zemu/snapshots/st-pb_claim_neurons/00003.png b/tests_zemu/snapshots/st-pb_claim_neurons/00003.png deleted file mode 100644 index bf582528cb83b604cb8f8e07ff17f71d1a14a981..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11824 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 diff --git a/tests_zemu/snapshots/st-pb_disburse/00000.png b/tests_zemu/snapshots/st-pb_disburse/00000.png deleted file mode 100644 index b9bb14c49da744f9b9326770c705d9336c15c6f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8043 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 a>_}d8GWI-!0zRVeyJ>3m8~*y8-~S6gvIk`V diff --git a/tests_zemu/snapshots/st-pb_disburse/00001.png b/tests_zemu/snapshots/st-pb_disburse/00001.png deleted file mode 100644 index 2d73b0bec3d5dae1d02eabbfe5dba2dd856fcaa7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12145 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 diff --git a/tests_zemu/snapshots/st-pb_disburse/00003.png b/tests_zemu/snapshots/st-pb_disburse/00003.png deleted file mode 100644 index ec1aef6ea3ca2fdaae7c421ca53efad5139f7996..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8974 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 Yos(B7C>jpD=fY)WX@9l(vhThB1Kk4lhX4Qo diff --git a/tests_zemu/snapshots/st-pb_disburse/00004.png b/tests_zemu/snapshots/st-pb_disburse/00004.png deleted file mode 100644 index bf582528cb83b604cb8f8e07ff17f71d1a14a981..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11824 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 diff --git a/tests_zemu/snapshots/st-pb_follow/00000.png b/tests_zemu/snapshots/st-pb_follow/00000.png deleted file mode 100644 index b9bb14c49da744f9b9326770c705d9336c15c6f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8043 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 a>_}d8GWI-!0zRVeyJ>3m8~*y8-~S6gvIk`V diff --git a/tests_zemu/snapshots/st-pb_follow/00001.png b/tests_zemu/snapshots/st-pb_follow/00001.png deleted file mode 100644 index d133eb55442338f608b93ad3cb9d8fb0dc6d5f9e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12961 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 TAAzr)fb?~Z?p54zeEI(XnO^nG diff --git a/tests_zemu/snapshots/st-pb_follow/00002.png b/tests_zemu/snapshots/st-pb_follow/00002.png deleted file mode 100644 index bf567edbf279a37db0927b832d556fdaeda8e808..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9816 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 Yos(B7C>jpD=fY)WX@9l(vhThB1Kk4lhX4Qo diff --git a/tests_zemu/snapshots/st-pb_follow/00004.png b/tests_zemu/snapshots/st-pb_follow/00004.png deleted file mode 100644 index bf582528cb83b604cb8f8e07ff17f71d1a14a981..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11824 zcmeHtS6EZ;w=eIm%p0De~tlM8PuH5yR+p4mwzd!Ht_UD!-Sd5mXNt$mw2OqhuwMq5+Y)T{I>8e&fG7~C~d~r`}wDY%tLnm+I)WE;A-o#!4 zov1sM49syaRRzT9WV$Q|+rWn?6rh}^yr`m_+bO(0$L35PRObFf6)3`rSZT~nd%)56 zxjE~-CBIkq$qMt-lO5*17A*KZQy_WP;uF1eqy9y!{doh!MK4E%fO00z2`8B#Uu z-%0VlH|t*n*xo89%;Xa7>s?tcnf8EGum7|TAlBI>kRIn5M-nrLLY|Y0dy2OMf%pu{pyeO z9Pi>Y7Xq$P=KwpfYn)3u$C1zP!1uiSs(39k`R2V0a^$z$1q13f^EP?xj5dgyfJAF| zJ>aAlmm~n?1wOtBh@vICT|KFNfS`T(%z_pWljIUcrEL|SUd)EMXxih^clC{t%$Qq( zm(KOTh-&QYCwH(d1^a4eb# zD#|5>Yi15Ib+-UhirE~>zESh%=xzH@_FtQN+h8G3l3ln9m=`OAKYBcu{=#3I8_E{{ zdtqwaP`2#fqx8XQG6!Uu+p@L{a79LJWT80niqmgRO5oP!QE~Ua=D5Ie`HKpex#zV- zOn6mTVHDN6txOA_=d&5j+H)V6{sq^5e5nVCfm`CM1l8ARQzhIaLDB|BEBM5KHt|fABxW1i*T_kGJjZA zv81Ct_p1Vi8ahW#$I`HTnLR%XefD+DRrc0vij#o~~w_03!Lx)nrd za9;k-sOuWo{R%^1Cw;L%Tt3Qq-q-4uaDaJ%2U^kDdF}pM0uvx4+&s1H5PN@ZOTu^T z0(Hf!Uj+-_Mt^_ZTT4h%wq3Fb0vmk73*YyQ;H&w0qyFb+n$mqI1rPRJz4cz@mgw$X zwvy5|x`JF~3UWFv)i+Fyv{v34H2*hq^#6+WQ0* zE$>MgzkpvX7FgwWIJRd~xmnZ3qpnc8(D@MoJb*-+^)%&GPbqih><51Ov}G!86G;6l z-m;w0LPUAuKP&w3kj@!aJ?)zJ)UwUft{`5BIx`2c@})F_X1D#-Q>HI(5l96E+*xaZ zV9!>ICYf_Omb_ocCb2E|E)U_4{p9YsvZ#D>YmqBJmB)B@%xjxJ>ZH;VsjgjBHoBtX znvHNR39(lg!gq#Psz+LuHz>vy3m_Z!5A?3w=So`H6L7xo&56v#{yvQ_zB4saYDhZi z7KrO#NyZS}S~jir7s@sp5F;;#4%Aa5bFsYYjkDY7$TDJjwbwj&7-BcW2+4R+HqQS$ zm|3V`KuUwigYtC_@}-hM`C{sdJ97X%hru(Lnn3Q;;^=vdgc1#lPDJn0uHk?}S6xn@ zVbtQH4GI1MjM}c7!x5sNwajiKG%IJvq4|rzPkl5rtjl^ka`Z~M+F)?T`+gz$tx#{d zJo5^fe(Q8c*kwb$*H6N`tdZk6+f6ebTSN}^l!3G4(3_gFgxBK1c(Z8Y>wi_G>=2~1_gxnTM>@S(GF>r0O`~iOlYfnEu)Q336 zVJulHeScTwk|*`AV6n*NOa$HU-@o6_T~kFnYP5w2O4J=!`L^}!;qeAg@?bDm4qP_H zRmi$fp(u)1@x9NC3L^_fX6|%8opuOilESk_<{S2LYf)gM5U|22?8NDY=6G|h;h102 ziYy90|Hmeu;7e_QH${ZQgtL6#PPk3Tc}vLSO2xK>M_OA2UMo^b3D?coM zl33C-S))jQL^)Ev!)9u~5XaW7LtBmLPKq8$n+$RYLvLoYlLi-#PlUHtCf#tjMFlR@ z4lwXz`VF0!VsKf z2G)X1zNyh`Cm+Vtn(I~3zWgf(Ivd%IhGyx5L{~hG;7TA^L-S_hN-ah8@FiI@iJ~Gw z88hKJ{Y(}w4@zV1qqYaKIsw^LhR}RXTdBoo4%JicgV#xk7fGXT>y{GicRg?xk>-!$YPi$-TX9#s!n7iK_3bvh@uGcfc+l6l)!M+UsU_4U3 zesn+K2(t!<*ldOFa5{a>VUC!HNnlP7KRZ4))Hb;Cl|Uc_b$NzrY;vR_EbTKoR5!)3 zf#B?yyz0yJBYvI~qD?06cfxw_8hSo~UbS$i3G08(gg; z4Y!e+GbNf4KX*~lO)o~s2rDFGT4T)T37GxV)Rccm%Pd>#>@&atRfH7%zL(~wjT5mb zRFdnrC&y3a<(;Dplrda4I<7Zcif+GYoA<=NR28TR9M_W^o3Duc;6vs&KfGSPkfFvR z-|9C&rtLi1X21pA$9cB8cUP6P7>cEL+Eju~+RWNacoSC;3w!N3fw{L8QFy@phn-dq z=KX$H4mg3&pbza9qFJlT{@L}7d% z+8TLA3<_EQlI5*FB$2Rl88$n@F!_05`4=Wt6DMH>Xnk#*KC#*dTUSG1=ZK>O00Sk2P&P?$+1RgmxkrsNp7J&*=e zsO)HK=by_={=cI9xnp|6J1Z)SkdPPpl&rc+!|^JL^cAoE9mxNmE+=%4*Dx!4zXHML z{75`FaYZ2Rh!ncIr@DwlH(H982((+*J-i}8Gt!RgNc3upx(_w}%yl_D4oEWJ1(D)s zENKq6)l(*CJf%5^%ft|_aNcrVYr^2hK++_+%oH= zTMGg|cTDhU19C42xy4i>us!%thxm&j+JgpBg)uQTygDCH*LfRL>dHdo!*WgcLe+BhbidH4Qr%$do;6 znwge*m`$7S2-FnXkU{+1#=u*&1~E^y*x+;6xPBszw z=Cy2Mj;3RJuw332s%&$%rN6rm$9bo+GQ=l@OGcC-BQPMV zBiE-^#u8MI$D1v+F})g%g%fU$;Q|wdov|UT-(7PujWh9WlFM5YUeg-+Q8*I^3W9fp zktbO5x_Ci`aGd4pd+=_^1%LRWFzS77wzG!mDMQ+OW2h`qXYN>?XrY>qam~(#9a`o& zXY{z4wo|_Hl{0JO&U2|UG%3X_g6>)NJgu`eb8qHdm#O<#?h082vc&W*g(&2} zw%g^zM6HZ<`R+Wuo+nslIPBxcLV>t#e-4#zPEEv< zlV>M8Vem!IR{uk(L)S0N0juGKi4AhYx2a1%xiGB+e*0>D+p9xhB5x48xlaYgfh(TR_-j+Lj&j)^z zfYo8;Epi$L#m8;OwQ?2Ad3>IH5$J=TX%MSCZOyv56o!@H;5!v6-d(l$tp+V23-y}F z$0U|+_csij5feN99ovLpjLBVf<^pSLqI(;w^rMGFoiPyrs}MhKOL|8lM4cNfMd5I` z<6&_1NW5l->@Lm{+jZj}Wb-bHYqr!!Nj$U{l>pd4WkV6^ogD)tV|#mBm*5eJ_?D?R z;pmm)7c4*ZVR*O)?JZ-U;BBh6V%k)(C<{89fSQ*?ZRPX%V)_us4;82 z*fBop8iy=7Qn-GH&@paIfJ-2`zB~=HLbHAJeCk^$_#^FKH^)4erJqpRr43pniBkApQ@y(2 z*;-du$D_Wg>l#M(up&0tC6xIAb~CMluxLN5<9>CtUPpYrU8{I1fAXiSKZ^C64hM3<6R@?vnCBXb*yZuy1<3)-p zB75xqND{(XFP*#7ER0lsa@fD}ZTA9d|K%}!w(>CytV4}n70?>rcSDSeVdJJ8tiT0U zGwm)Gy(L;4A09ls{`v=(soX-GOn7L|zN`dJ(h-|$!7VM{RG7a31m>+_!>|jG`IVl! zsVd)>&t*9gNoeVUG;Z#N_8Vt7e0v^piXy*tlsGx8h8$m4KzsYF3BZ_AAfOYG0krSbvfr1=?8T}|lc>!U?Zn_3DKI*VTcsWB0@$57GF<1W7I4Yx`gn zevUHzWSJA1ln5P+Yoa-W?9GUs#)qAfCd5XH(Sb)Z46Gax2sW)@fwZ0!cTU*sJh86n5;~rt&fz_MwU0$>BcBnqF*ZP+rBd5nrCNSM z=!{2WSQzey3b!&R#Ge&Ac5N=S@>R4Sr71*A+|jwWpLe;;&ZN^LVP8_Lswh7V1A0?A zxqW=h@pL3a3UQ3VNKA6SMQ3RDY{_G*iNjcF z%Pq0GY*hO%92-hS#v>QNnPHy_lA@uA*!TD#f}Kf7_WpqZwCKT_$7EGYyIfhGiGT@h zD$ihJwZH{-!&_b*hwLunyG}9~m6X)1uE!a0&+x;1qp6dzb{FE)X&IzcXR03K6qiL| zKon;s_~e)6M(Sn|mr z?!bzx+J91z+SJdON4;TtHq9Qnb{#5D^I@}-zRgdu$0x$8lxX(!dyqHSVGCsofe1*) z{1K@OUy{b7?mks=yaR)i0>NQnVSR!g@ojND7L{|5eGR$5KdvKlumZ#t91h2YNnpUI z@oax{oa|6eG|bneI6 z*7!Eh#OtMx_nRgwRro9hp~a7ZY!7z$;tRaAIkh?vIMF_?;iq`KFPIC>%1ZnaPFL!h z?Pvzg2V#jIxTS6repvhVHmpKBDQNla7(%`4qz#O-YcPEUGmA**4N@p*+!)TBN9eUd zS{>6OZvfFI@LjaL!&645=NbTl`s=b3S&{T?E?gK9AP)dV90M})s(ej63eeXEj_2%OppsAt_42iV&PHytm_!82fqabXYCwi>IV#` zUjzzH#vtGFQPk_rRM`cIqrLBdoT57wq%V`Il-Qk2DanXjZzzi^7DyUQ^To9VHBy80 zrx;Rr2CudZJLg-mZMO-^4g2mw!cT6k=<;USD%q{2UDBu^2?HDhTYQvn){0Nt0B@UF zU&nbdsq%IH0Bh@pqnMr42m4g26#Yzw(^3UTj#uP zf6)#gdw0MXYD%U6bYlMZ9PsVe7QU;4&yo*ssI}G2&rQ9g&Oo98Xzz@3GVAM#TX%*p z_Iq<4Jl?)!r*5xO3F$bdTZE2bAo7Pp>^23D{nel^fQIWj^DLBp#1jv z_sI$D1FVx@gDZ&bF!X%{*jETC4h_n^a32AZF+tvbyARHI#;bD+ZYdi7)xLH1UeZ$o ztrgFj18HIL_#5O%NhS1mK4fDdN15H*W&nmk>Bik!#8I~~x!1f@wJJy}d-aRo#&(q* zP*b%7c|vr1Fbx%j5N9UL((hfr;N%Sucn5Xrb#I;3kJ&H=YvO`N#GC6!K90sCF{e80 z@I{^Pel=QnohGvx6#zT8)yr1f_%izT!in;6ebZ~LQ9euXHY&sTO{ zIwp8o&5Pm~@e0Z93{qt`v}sR7SmTlC6bv+lXI}vcxOJ`j0G+mIhNj*XZ%)nahNSlX zm78AOsa3Au7Hu+tng>s`R0sz6W1k-rEj*|3?jpW3XrE-L^b^+pJv{ENu4uv)eO6$L ztcb6RzS{2vf=j`qlhZ&j5Lsja2pF1=0oIjQUSKfV0a?^dkxmqljgne`$~p&5ecBGz zKW6!~8fQD%V4z`OuK415XZMBFHL$mZLaR)0(h0Wd(yElrxx0=t z(dhKXz;T`o+hCF@k?J1$UVum}W;q*a$>%Eok1IDrbF>bzml5q`giXVciS;@3`YHRt zv9C^MJ;PAjA7Y*9G!xn_gta>B9BpLf2Rw%Mkvpq0gMu&4PHU=W{aqv7ENC4gjJmIG zZ6!H}M!D4Nt!?#yMqCR5gksN@v-w4)@O25)&YlpgsNz?2>-WJgYw$HJ40o>T z$y+uG_qX%ruFIh!&U^m!>Lum5Nhy*3RDq#q3Ys0adzyim<|a2^BA@|)V0$EHVoBMW zR&R#7HpC*JH#jRqV+`VL1qtd!iM7#dMe){_F7W~z;=0At+t&ne&7;+QP2WWuUA+4LP6f<`)N z7LJ+I2g?E^o*RY*3!i_U-BC_rDNi}h&rr;W9L6LHpB=3LB5sKfFg?+`GV%e@_@uoR zaozM=AxTC(1)%GIvi?HJobD2Fo;F0+R?06t`*)F}_n0n#{veS9j)7^!XC49xoMe$_ zap@V3(Meg6{kgMp8>`XURvz}n*L&Ep*5Q4j#ETw!13$!~YpynQ zzHBG`yzszO9?PYgmHPZ}nd}6<3?1!?RCP(x80lR{%a|qU$E)O~nxW_#PUo}b(;AY2 zOC-ljnreVu;}cW(A3N!sH&$1Jy(1~ptLqH?HZCR)A`Tb2866Q~6+C*b)uVy`Jafyq!Z-&d z+@IX_F`VO+r)gVq#|x}PX^h3!w^L7^gvkUWiNk`6yS(z#`A+Y8_AM>lvp90K`6~)0 z7=Q2I0^_8D@7L#Z5ty@$>H(9kFrl9OXJvEc&N)iqMHAipXSkEuU4CD>r!-7v!FZDi z%?kDTf>mW){mC!`@1CXQ!z_-+&gqzUj|HDh-Aq&XOZNiJ5PcGw_Iz^xYlF5pT-)-} z)+8Hp)XOHA)i&WozC(ry^kj$@WNXUp2fO&f|DRb3`k}U;boA>hp2MHst#^HX_a6eW z|E6K3|1@*?U!RBi|Bv`Tm`*sB2sqb%k1NTS?OdQRG#_R4icy&f#C+i@%=a}_zD)$R zv6VJex70aEuEX%L%#ee~$DT15;f4RmO((_&L^YT5whtm4)r?$nXn$Q?8%iyP;C* zAzgek`9XGTr4+J4(?SDN%>)RLi2T31XK#u&^+#+Y8+ zCS?TAOw;f=HFhXM~nq1AF#Oy{!HNy|(ESKK`w3;fp3=jt!>M;{crr zz&0hmXjRHd`8#T^R_6D@Q&Ric&`{5Sw}at26$bMypOI+$Mu*nfc^m zPQt?5EK3zfJhN-2u>0&b6|qHEA`Tgc&Iy|AZDzt5nN7Vpoz0xq1mAQ-e@Q5IX_|Rl z3ozrdiK#p@+y2bYArJKfI`R(sfpg;2aq(DLH$QTUFqTjgFwqh{?=b2Z@S+T>p9eIF|e_{_bzfpYF zZJ%6JyV4zM$G_;tu}aHjwO!Jjlup@L0B zs1(pK?(QK3f``J9?B8AO1ylf214#VnM<>U}A)%on8AzX<tlZ@Ep%ye_BU*;i)`{D}WOCRjkf3ngD)$O!C<_s`31IPThBwI^gwVStmPy z#@GHUc4FNi6+U()3@)?SI=6Ldf=vT3ny9H+n_vKZ5$HIghvc;qVj1#jEqOyMw2^2( zxvU0r*qdy&ez{-aU21F}L)T=tzKllo{Jt`BsPv%ZCaJzJSW$`$(iixSUj+2(v9|er z9SM0Y`Ux5kB|wf5ZGK=S?>2J;no>ANkrjWl-tUnGf(kvisbu2|CYc5K=0ADaA+4u4 znJT1O&qhz>&we~rgZ z=e#@`DMAivDQhF^;ge5sP`s0?dfQ=T=aNf(tz|5YXnL~ zs6xmqeEFIw?iBVgkNg_zk>M`1vLbkA_M1PC;N6T?7?oj45E{xACuacl&V*31-l^`n tjJOnJd(ZEgC0Xxs*3N%x$Mlptcxou$+rvQ@m;@(NSJ8e{t8Dx7e*m6rX_5c{ diff --git a/tests_zemu/snapshots/st-pb_increase_dissolve_delay/00000.png b/tests_zemu/snapshots/st-pb_increase_dissolve_delay/00000.png deleted file mode 100644 index b9bb14c49da744f9b9326770c705d9336c15c6f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8043 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 a>_}d8GWI-!0zRVeyJ>3m8~*y8-~S6gvIk`V diff --git a/tests_zemu/snapshots/st-pb_increase_dissolve_delay/00001.png b/tests_zemu/snapshots/st-pb_increase_dissolve_delay/00001.png deleted file mode 100644 index 2405c1e061c7acce478aacde390e7088a2cd3557..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13283 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 diff --git a/tests_zemu/snapshots/st-pb_increase_dissolve_delay/00002.png b/tests_zemu/snapshots/st-pb_increase_dissolve_delay/00002.png deleted file mode 100644 index 846218ba1b211a007e4149bbf7b0212b37feb512..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8974 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 Vt)5DH0pGcRtSoIW)SvfG{~tTbV1obv diff --git a/tests_zemu/snapshots/st-pb_increase_dissolve_delay/00003.png b/tests_zemu/snapshots/st-pb_increase_dissolve_delay/00003.png deleted file mode 100644 index bf582528cb83b604cb8f8e07ff17f71d1a14a981..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11824 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 diff --git a/tests_zemu/snapshots/st-pb_join_community_fund/00000.png b/tests_zemu/snapshots/st-pb_join_community_fund/00000.png deleted file mode 100644 index b9bb14c49da744f9b9326770c705d9336c15c6f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8043 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 a>_}d8GWI-!0zRVeyJ>3m8~*y8-~S6gvIk`V diff --git a/tests_zemu/snapshots/st-pb_join_community_fund/00001.png b/tests_zemu/snapshots/st-pb_join_community_fund/00001.png deleted file mode 100644 index 9e9889d70533ac2dc61fdf6c7275a70a8e69a937..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10402 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 W7=??p0A>#b?5v#rYWXwZ_WuAnO(;$P diff --git a/tests_zemu/snapshots/st-pb_join_community_fund/00002.png b/tests_zemu/snapshots/st-pb_join_community_fund/00002.png deleted file mode 100644 index 846218ba1b211a007e4149bbf7b0212b37feb512..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8974 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 Vt)5DH0pGcRtSoIW)SvfG{~tTbV1obv diff --git a/tests_zemu/snapshots/st-pb_join_community_fund/00003.png b/tests_zemu/snapshots/st-pb_join_community_fund/00003.png deleted file mode 100644 index bf582528cb83b604cb8f8e07ff17f71d1a14a981..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11824 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 diff --git a/tests_zemu/snapshots/st-pb_list_neurons/00000.png b/tests_zemu/snapshots/st-pb_list_neurons/00000.png deleted file mode 100644 index b9bb14c49da744f9b9326770c705d9336c15c6f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8043 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 a>_}d8GWI-!0zRVeyJ>3m8~*y8-~S6gvIk`V diff --git a/tests_zemu/snapshots/st-pb_list_neurons/00001.png b/tests_zemu/snapshots/st-pb_list_neurons/00001.png deleted file mode 100644 index c22372104235c513875e04ddb0227452d8c4912a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9068 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 Vt)5DH0pGcRtSoIW)SvfG{~tTbV1obv diff --git a/tests_zemu/snapshots/st-pb_list_neurons/00003.png b/tests_zemu/snapshots/st-pb_list_neurons/00003.png deleted file mode 100644 index bf582528cb83b604cb8f8e07ff17f71d1a14a981..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11824 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 diff --git a/tests_zemu/snapshots/st-pb_register_vote/00000.png b/tests_zemu/snapshots/st-pb_register_vote/00000.png deleted file mode 100644 index b9bb14c49da744f9b9326770c705d9336c15c6f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8043 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 a>_}d8GWI-!0zRVeyJ>3m8~*y8-~S6gvIk`V diff --git a/tests_zemu/snapshots/st-pb_register_vote/00001.png b/tests_zemu/snapshots/st-pb_register_vote/00001.png deleted file mode 100644 index 2087ab239230bf3f8b3f3008397e8948c7fc55e4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13712 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 diff --git a/tests_zemu/snapshots/st-pb_register_vote/00002.png b/tests_zemu/snapshots/st-pb_register_vote/00002.png deleted file mode 100644 index 846218ba1b211a007e4149bbf7b0212b37feb512..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8974 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 Vt)5DH0pGcRtSoIW)SvfG{~tTbV1obv diff --git a/tests_zemu/snapshots/st-pb_register_vote/00003.png b/tests_zemu/snapshots/st-pb_register_vote/00003.png deleted file mode 100644 index bf582528cb83b604cb8f8e07ff17f71d1a14a981..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11824 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 diff --git a/tests_zemu/snapshots/st-pb_remove_hotkey/00000.png b/tests_zemu/snapshots/st-pb_remove_hotkey/00000.png deleted file mode 100644 index b9bb14c49da744f9b9326770c705d9336c15c6f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8043 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 a>_}d8GWI-!0zRVeyJ>3m8~*y8-~S6gvIk`V diff --git a/tests_zemu/snapshots/st-pb_remove_hotkey/00001.png b/tests_zemu/snapshots/st-pb_remove_hotkey/00001.png deleted file mode 100644 index de4d9126472b0976730d9f2eed3770666a5d18cb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12272 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 H?LYqqEQxG* diff --git a/tests_zemu/snapshots/st-pb_remove_hotkey/00002.png b/tests_zemu/snapshots/st-pb_remove_hotkey/00002.png deleted file mode 100644 index 803ea3e5f1555d404fa9533ee5063d371368384a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14924 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 diff --git a/tests_zemu/snapshots/st-pb_remove_hotkey/00003.png b/tests_zemu/snapshots/st-pb_remove_hotkey/00003.png deleted file mode 100644 index ec1aef6ea3ca2fdaae7c421ca53efad5139f7996..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8974 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 Yos(B7C>jpD=fY)WX@9l(vhThB1Kk4lhX4Qo diff --git a/tests_zemu/snapshots/st-pb_remove_hotkey/00004.png b/tests_zemu/snapshots/st-pb_remove_hotkey/00004.png deleted file mode 100644 index bf582528cb83b604cb8f8e07ff17f71d1a14a981..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11824 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 diff --git a/tests_zemu/snapshots/st-pb_sign_update_call/00000.png b/tests_zemu/snapshots/st-pb_sign_update_call/00000.png deleted file mode 100644 index b9bb14c49da744f9b9326770c705d9336c15c6f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8043 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 a>_}d8GWI-!0zRVeyJ>3m8~*y8-~S6gvIk`V diff --git a/tests_zemu/snapshots/st-pb_sign_update_call/00001.png b/tests_zemu/snapshots/st-pb_sign_update_call/00001.png deleted file mode 100644 index 8e710b1c72dd14da0eb8837243451b8707141b07..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18879 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 diff --git a/tests_zemu/snapshots/st-pb_sign_update_call/00002.png b/tests_zemu/snapshots/st-pb_sign_update_call/00002.png deleted file mode 100644 index b28e1487ba230e5d758fd7e2432587841cb7d9f0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19220 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

  • o7ej_xaU)A{ZB0=Q2WggaN3%?yS_Q!s@wFYH9 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 Cx?#}( diff --git a/tests_zemu/snapshots/st-pb_sign_update_call/00004.png b/tests_zemu/snapshots/st-pb_sign_update_call/00004.png deleted file mode 100644 index 3f259bab529a39860c2d4f6a7078146954633fb7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8977 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 diff --git a/tests_zemu/snapshots/st-pb_spawn_neuron/00000.png b/tests_zemu/snapshots/st-pb_spawn_neuron/00000.png deleted file mode 100644 index b9bb14c49da744f9b9326770c705d9336c15c6f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8043 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 a>_}d8GWI-!0zRVeyJ>3m8~*y8-~S6gvIk`V diff --git a/tests_zemu/snapshots/st-pb_spawn_neuron/00001.png b/tests_zemu/snapshots/st-pb_spawn_neuron/00001.png deleted file mode 100644 index 36744235c86f4c4093bf3c0348a5b32d65fd2559..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14546 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 diff --git a/tests_zemu/snapshots/st-pb_spawn_neuron/00002.png b/tests_zemu/snapshots/st-pb_spawn_neuron/00002.png deleted file mode 100644 index 846218ba1b211a007e4149bbf7b0212b37feb512..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8974 zcmeHtdo+~Y`}ZVC;h~d+kW$V$Qw&KeG$hIS9AX@D8fT(V6i>=vJch_rj>8y(F^DqN z(3I1d8AB42!wkXffPrqE|_1B`-jC?Dy=Y?=J?ERhU^U4 z<1FBi4!@&xYmamKpUP#R@>D@-qvKt86!UA@{qleMxpCMUDS@7#{Q|26C#()y%7Ly- zZ1bXbfy&hcMDB?Gi{)YL?okSbQbG~-HkgohK3Vrp9mMZAjee&BI-TI)-4+znH93j7 z2GU*4?N+PGOmR-!YU)k&`Um<$a>^imVa_^w6i)Eede;uFT48ppHm4x-Ypy6u5k@(yTkL zUqI_=tchYVVDB69_w5C)FHCR)JBv2{`eGT*x2QgexvU91CC_f;$qi6KVyyR$bK!!L zpdV-2L5dhEDDqfngI-}3mT{2px^LCN_Ml+|2a%GBVsrsTr0^BV2TQH&TK$U7eJ^rhn2mLc9<_)Ql=NKD!c>E;UG3s_rLEJ~p`Kv(R)h=r;-N?C z*Y`QcITrR;_+*$%I7^*dT2cR^A}E<@9xx>)tS*|_-!lf72mL)S0n<%rEbi}#6Rw?P zuTyuzHhpv#-fl`3DG7-19m}LFj72IH(VsAnM|hI|q+|?rq+jxWX2o0OAQReq9WqvH z?VG=>=q#I%@smpsa?Hv<x~^&-WXS!s@>+QOl@gz*o zWJn51(jH37-#mb{ER^_H!|=Zs@@s09vn!NMJw&b?%pwNzH=}p;6)@uwsCZ<_wvaj6 zUGuKOE!Pwro&W1s9P%)6C8aCXLF1Tjde$ZTgD-~O%T1AHBHP?kTCAt7^S_y1Vy>PM z?WIBfO8=5%>SPv)XNflFH6b-|1Qx(pw$e=8hyYV{gns zW+^?{(_@ToE> zHj_+c|6(s-LIMXg(DjrWeowkWt7k*it|s-UuHihxMcy%VUwM-g1LYt~tcqn#fmiCj z2ZlNA$s<s1{eD`wvS=@= zCe26cqJ4Cmdv!R~CVMu)mqi@7dl*6^%GIa?3H(CuhRAaH|O(s@Kb`-1^im_kJT_S!^oz!c4waX8Rur(b}_ z`NVN9RGgl7$^LpWZn#vPWx*Rw>54V;&kI>iV5NED+p9Tgp0WKs^-9?l3+wZ8Z>nMn zgiPH_22ie9hYeq-6b18^_`$avqo~fBh3xkBr4deVrT>C8R5mzpG}8DX1b>|}-hPks z&OjF}q`n#1rsq-U(m**%!MfH37n+pXF0B6?Q8jRGpkN2A$g3@M77QOcZzP*XTv}R! z=a(`50W8Wi4#~`UTjBa7MPEJJx6!$EdS|^Jgnqhl-FtMbIVK39DVf8$d-J7VFTr$z zFr(=gpi!$%8m~*_oVOy`-I{B^l7GSlUP=yJ)s+)WVU-aKTtuR)AaNX<-Z-CR(+}X}Z72?ys{fp^}YDbR|42efWwOOWaV)*c0t!T5s zhD`3Zfn$GR48fDZpXKAkCL$VIWaZe>mC9$!$dmbqU`8kj&9znq3J#4``726HFPi+6#hrpt1#RSJsp@a}M!9w`o}3{J z#QF%R2@B{>y$rJLcFtm5zb8$^X*JJ}_;W9YKC^sBOUr%5xajRad=nk>o zO54I_AA?PVwy9C_T!WDJ2lQ$*pBcL}^OK^Og{JDG;GRLfy3iPAeElJ34oZT&%Hi=9 zddZAp5_Wbn9!Y;yH(Px_zQ#+8ahf!4s(*V#Z9LPHBu&gYWcSaccy&a)T`|5>N=cb$r1q5 zjzaXKyJ~4yb)BSQ@ri(CO2*Jz@#O^fs1cL?R?2dd$>;+=aNbov$Y0@Xv?__X_F2km41Vxp%w8v^Y z5~$TP0gZ!v!x6^Da*!AV$1ofi3!5^1@rh^1`c$gQzg-m@IN!#MFBv##m4CvD!y^zH z20D%3&9=@-WIj7$ZfLQ@&g}5)O`JI+Rx%LKH5qOo!#zH73T!f7qmgxK{R}Q(ye?Vb z=K?VkKhZXkJB{%1W`yB1j}mBZ7W6Xtuc&;|iDBcN3!bs0n?uw72aPvRC;tXk zoad`&Z5CB$6+-jtRrY#OYi7+wuu#457{Y$(u=Wg??d+yglsmihPUljdA^nr- z$GHKFpl6q-=fMoBP3KY^&?NH7(^$-KaJ^W8Dm){v9 z$ZzxK&xF=~eoCqZB=fxYj@8df&uC^kE58)cpm=cPypR3R6-@yV2?OuzBXAS!7|?7r zZRr@JG4wzKXkJCWtgesP+i2;%LuW$XaRi%c&{CAO>()kyt4mp(kcPVV{K@@}qq|F7 zo6&cyN?cuC5V?R z>J{%DLyCnr`Vy-l-a8H`B5w4_sM>k&_}d)#?=eP)PTz!}fJo83BhL%8=QAaoK{q9w zyO{&1c>jmEGynU(mwj}ho=1*{9!%SHPAF|x(x7^YQ=e4H#sBR@UUz!7Kzl=I|DRjC zEbR|k+9$P3cH3lbA3qp`K%}Y{l6(%c70FRiu0K2F1z%(2yWBNr<;^8FI?XN@puGRj zjAlDJ=1Y86x!J9x%_P$@Ru5$%=I^~1>~HRUSn-lb486?a z^33OTcj4#*{5}9`UqJ8ik_A$qu7wJX2mLB;aH(zRYJmU09oL-|o#47)uk5r~l{)w`B5ft<%%hc7mt0%IpziDv@+x@(_xqWiU zLC(E0V^>o5@cGxFZekN3rEmM~a&@+}2Z(Zo@(&ZP$!XEvnaCrVQ)>RGAOz}_#%&CB zO^SL(E)N;y^SSeD{6u71E#cysjTRvM(GQ9BY6%M@QeXQU8VIMOM4AG$G|8(9!s!ZV z-kXkF1|RBz5vTzAz>P7d#T@&C>#bLFxN1tn!#!(eCsPX0oV8Vx@HY3+ly6gxJ?f-j zvSO4An&;RvScS{)om&3c(hODA5Ka#cV&SWT%8LAYI~{4K3^w`~uxG}WTv_3tB9}X; ziK+&}DJ5ZrXyxp;zMu8-OHp&ajp(7)vjFM?(A<338ir?Js$vW`T9Q&z4GZARP2a|s zj6PQl-c5pMZ0$%ew%X%I^w~PfLazR69wUQx1IdKMi$V#WbPSNou5Km~JTdAy(_@+# z*E%GEK=5o}{Xq4rlRh#rL3cuMbavHdXR2u#nYkK((QXhlzrFQh_}3AbTS`hwh?!ot zA{}X+|E49gop=v#2PgUGp9m-`V$C<%-}JVnOzWG!%51O&IXVOd0n_p!RhbIaZ7U zomhN}Z2QIM#S%QZB{!F5FFP>W7oVV#Wc^Yr7`^@Zwrb(S@y;-lDk}u4W~BOOd!i!t zO5WbyPwLc}-Q!}pa2*yn*5Zht+gBsgQrm!>>xQw#s#vPsWn=anTM#VL`R_$gl1p-5(c^lL7c>p(!~h3jWJ(mx{1 zUE>GS{K>2rA90)u8^g!h2_ZJJL?CGZk_0YKIeT0j@yb!$=KGlVOk-*`jh9&wGy~B^ zk2mJQ;pxdWBq@v=iVlu`v~uO6cFWsCg66VBtNfznNMhT-0iJ8?5sIGqu&Knp-h^Ik z8|r#Os;gLQql2h=EU4Ar6bF8f7iG7T^a`jmdl{I%G5ASyiJL9~elJxD%c|*5%Zl%2 zRa2kSTXaxT&d4ZD{fu{EILtO%r*DzhIUo?li-;-K79hzaxcx9Oth^4S#jvy&v|C|} z>PNMtnIGul%m+~itig31?}gx{s(^+QV-$d+Q@yrOR*oZ_438$|?D=FZHbd90amQn3 zd?;~#Jyb=zP#9{Q%$a{i(I7G&bOH$vkoc_afJ}J^^=Kt~Z6~!WS`;k~Nm~yYRVve# zxDm2=jr$zq^Zou?G~??b#SyafeNb+MG9$3PFd)20C7^0x4yOSbuM_SCw8v9czL^t@ z;Ng_#2|Lg6bT2b_2TB6k4H@<~yK+#8pp-T^!&KLT-TYo?ln{w597ax!yy$#ti$R%J zCrspEaNPu(uj)ds@VW zUZ%VmU!zAtKA9YUrkALYtr*+dehDm|bvN-N1$McN0hbJryP@yjFW&<&Q@ckui!Yg; zuxg@)09y|bC^8;KH0)o_Za86e*7o66d4+QSqwrZxcy3^&OXr+N;wcZQOpAek7IloD zO|~@Ge$K3n|N336YNW}IqQe+_P1+s^(5W8|9?N`w(R=FdqSf1HI+^i-qhA;kR-VF7)_ea>C9xo92CAP`yR%->tuhv3|dFV)VGgTGkn$|cDA z4SnCg1*;-9;)gzrANFcfPJ>0U4(0B1ZbqjVa~sztx_I}j^FAonUDPLC9K9@KDI$X8 zE{UI{nR$KZ^F%Tmw)b3)*6z9}nYOE+`i~B@!{E5bd5{i(-1`G`^YwoNZ};_n1UsnvwJgsUuYauG@7#UC>gMPl)F0Ac=}-8> z1O`u*0PJ9_jN7ok+u@4d6=p!Mc!08o`nlc<2-iPk;#^-~iL1lqE5C`y))?aab>MVG zVGi7=U-}Yo=-gObqdxXe4JlSgc>+b8@!#j%o%Hl8$|eP3^2{3Wxuv=1rO2$$9}e-G zNBqaj3P9F|=GNwdLEU};hs&w>J~RTlL;Sv9;6Fap|GoRk7m>_D(hNWdhO#TZEv;_gb;@V@NC*;aOy%;c(^@pcbo3BAGMs$lpOoi@aK){4=JZJ#{o% z697KIe}rfjyXV=2$Qr}KbuDE*)Zv?EKQ#S zbS2UB@}KqK9&6)e7~azU8{0>h1}K3GlHiR> zPIpt_ef&}g3$W`u0X0eUi{eW|nQwC~sp;zr@gDuwI&VNtD1Ndt?9DoTbUV@p(F=n7#yTXFp=1D}h zhi0LoA z?=r8>rcrS8j&LopUnzJsJW=Kg46os#kI6p~H1B0%;wG0eYS8q$VK_&|Z{n5ka zD`)ql0&0Np0h!)ac-PRdtGv3Ysq5~3P6q$2oo$A#2>a@%gTbo^&n>SuW>TQr^mq>Ua3MP z0D~JSId6MPW7(Y70}Bj_>0k;}b@Z>JaY!e^wY06G(NE9)<=}h`EJjQe@5FMiUfo=@ zMeF2@*!q6opeEurFH{|h2ab&*cp7+!h#{m+nYA}I08Sr$X{-Jc?svGQVN3zNiXMM8 z#gUooyMl0)HbIg&w2n`+{UgN7UsmG?WTrX3`CzoCsf*uWf`Ntek|9Xelt>&6(Jkw zGHN>Xf*07U)!$UhLADM~gOVptV~t$voxxbNzns5Q-9*k#LzK=4VV~va^#p7|QZVZ{ z%g`Z&MYzXavlsoUW|fa3t;SiB9&L!18PWJBw{r7#qy4}hs7t2U+pkXgnZ%WoCgNZ$ zzeODTZG~a|{@kjW{`ifK4{T-J4Y1I6B>ZHtVrsGr3Gqdu7`a)_(?`X{Wp;Rzb{*6dpEN3 Vt)5DH0pGcRtSoIW)SvfG{~tTbV1obv diff --git a/tests_zemu/snapshots/st-pb_spawn_neuron/00003.png b/tests_zemu/snapshots/st-pb_spawn_neuron/00003.png deleted file mode 100644 index bf582528cb83b604cb8f8e07ff17f71d1a14a981..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11824 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 diff --git a/tests_zemu/snapshots/st-pb_stake_neuron/00000.png b/tests_zemu/snapshots/st-pb_stake_neuron/00000.png deleted file mode 100644 index b9bb14c49da744f9b9326770c705d9336c15c6f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8043 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 a>_}d8GWI-!0zRVeyJ>3m8~*y8-~S6gvIk`V diff --git a/tests_zemu/snapshots/st-pb_stake_neuron/00001.png b/tests_zemu/snapshots/st-pb_stake_neuron/00001.png deleted file mode 100644 index 62334686620a16ac67ae5b7fe57d1d13f8dee5ac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20881 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 diff --git a/tests_zemu/snapshots/st-pb_stake_neuron/00002.png b/tests_zemu/snapshots/st-pb_stake_neuron/00002.png deleted file mode 100644 index 2029c5b4ab06bf2cbb31c10a6284dec1e7a0f6ef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10916 zcmeHtdpOho|MyT*iVh-&s8Gp}DNHUiW{$zwZ0{{a)97UH7#=Uhlo%+w1*0JYUb}e80&SV4z=~p43xkVzBlvm zn}0r4yOb_NULLO6rEuBo<>4oXXVwET9offE{IP3zJFztB5~BF>X>itKfq=FtRbr(8 zD0h5YAI}Tw6+`U4bbwdzfy6FRkh%aEf(I66XJ-u(cq3KW0^t6AO<+;soyHk;V5dnI z-M`b+qxS7Ii=umXn#0`8*d&#=wi3n2go%fg7^C8WdANEe1O-dQK9o?aDR)FHXbS!5}rqP2RY> zq7Uk5Q-?c%)`2#ES_Ek4nGxA4r@!#MnZs({dfj!Z4wy5`X(-(mWK4)~<7vA0U)+HI z#2y#kf>K}(m5}Yy> zRdTYk^3{fvP@??j?So;^fEp*sBZ)0{-Zw-HgcC66P9}9=eo(^26e(xgf4?3K$≪ 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 E7r-WgEC2ui diff --git a/tests_zemu/snapshots/st-pb_stake_neuron/00003.png b/tests_zemu/snapshots/st-pb_stake_neuron/00003.png deleted file mode 100644 index ec1aef6ea3ca2fdaae7c421ca53efad5139f7996..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8974 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 Yos(B7C>jpD=fY)WX@9l(vhThB1Kk4lhX4Qo diff --git a/tests_zemu/snapshots/st-pb_stake_neuron/00004.png b/tests_zemu/snapshots/st-pb_stake_neuron/00004.png deleted file mode 100644 index bf582528cb83b604cb8f8e07ff17f71d1a14a981..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11824 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 diff --git a/tests_zemu/snapshots/st-pb_start_dissolve/00000.png b/tests_zemu/snapshots/st-pb_start_dissolve/00000.png deleted file mode 100644 index b9bb14c49da744f9b9326770c705d9336c15c6f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8043 zcmeHM`8!+r+wK^;P&LzqHtkT;QPo;nwF{ZnplvL*gv8ofYNvL!B<-~5P_#9uTGFCa zB0w@*Ry=5N>RWAaxf*$G8mBHcS%$b$V~ zr7ER*;P?Ef#i3GhyX&ggpih;24>?^|Ros5OQ?T>l;8WC5PNy5a*l2&!chf6>U%ro2 z&FRKqBp+(9MUzCaeI|!g&mMjx@kFue;bn2zACg+dKK%gy^`w~8L6bY*-97m4&3}{d zFB1N{%b^Xjjo;@!mZ1Pihs2{$B7P!A?U3qNUFpqP>zqWWb>~i{N2){P6Dg?h#95(Mp*`+?Rbs3F=Tae$+a1&r4Rp@=hpJGgU^Zs{RrGagSzd#q50{iPabfTGmpf92RE5+|FZ~9-gp!Pki_;6{(G7^4Il1!$ z1n(uhD3%IwS+h!fgmqavSX*0k?M{D$!+zKQPsNj55be$8<0XrP1 zlSf^Qu4wbs0;QRi_vZ)`+Pm@tn%ycLutgWliu)5}W}^pC_9p1dXjQK}mgh6ulv!K@ z(eBPp!-bSxx4`as&AJt`D~H96t%e^rwaNCb??NGzGyErxEo3GhuAtNDvodn2l-XHN z{x*lh3DhCZY7Bd6jslU58BFWl-7k4{2{{m9fJ4of7f8e_D>}nn+h#)%*}H<43n?p6 z<8>p`_u)7P=F|)jV@5j+R;SY*whTnF9y8%I7Dep&X<#%kTUhN@X{X)w0leB;=$tl` zcf&BoB`pH2C5SU9*s3tjwdnc~h_i63Ku$P0f~V>z9>D))l1*T+_7m_*`uK_t?q$^5 z0Nufte!2Ex{9jOT7|dFbsg<5ffMt8bU;^yn%Da<5AeHnTto3OF{1nB!E;2QhGIL+A zL}}1w*+4BM>@un7Y4o8u*=`>nL^e*U)@{Jl#vT?KAAKHe;QB67EfZ@486eI-Ev?)ELYSxzS6i=6k3d#o}ZtO35UT}qKJHn!I9CNoE$u~2xY#&dEiNE)UlzT zu<%Ait?(MO|88t)>GZN?(AJ7$H=Z!Zh;6bVk(WsoqzhG3Q&Ww|^p`+x4yGzP#<`s> zIF;sq27OG<{v3PPS8KWaSDWKCqZRA)iKPHnf*ZE*Vx)wFr}?tsc;robbd60iUz;}E zb-_TrMrh(xn~)$kbor(mRWGzniRW)s>|#wSuf-37wm5W zHjW~?3O*Ydn}^fi6q+L(i@5nHIeSmS_&h{=>^4_&lO2i5oE8WK+;2a?tP$>9l{jSlX89xrF6tnk`Yo@f=X# zCb0-|B9a=5iwm<3T!kdv@`x{#EZubRz z{ouprcV34Cl|&@oI41=P7`7{4pM4<(ZW#-wWtbK7vmPL%Sy!U>zIPA>%=)6i7*}Nr zsvAl4;FFd^6YmZ(l%ZS&vYS3FH_(}6CX^1$FXo2N@Cff&;w%4bDr^efm>1(5a;m&3 zIO;z+QC%a3^|9I-A0H2E2y{K`u9jvw1PvC9vi*&>-Q$Rp__|st|B*pt$k*$$yUlu4 zR>9TsMmXu|aG3=;InAoBa}+eF2g|>Gov!V`j?xwm4PW~D$733Y{o21a_>$Z!{`vOZ zsT1KwNe3JP#=V{bNA9%IiEX@Ou8tpg4x*7>%IEk)h$HxBPKri@(aPO{1#l z`2&ckr40KIAFPPbDU;avj29r$(0b^dcL$a>4i}%!p17RXGw|%=3~4loX{*|;X{on7 zCaCd;yDx;x7oDu9tjFYM2TrDjYgv!P4dV^@`eG-2%b#s0~D%-WjBT&)wZ-Q#|_XQ*573#HRvJF-Ge~g_9US zYfVm0b|)dVG3z_pd*bdZN>BwwFDY!OanB-W;?9Hk_`nHfh;PD?YSLa2joH!s=?vT` z(3?ADwU;eohJ!)*&hgoP&mjhJwMv;d7AVw#O;)#tO*z;3C!T zCW-(lT3dV0F)})e3YBJs_MM#HJIfuc_epI?LZ&v5R|}OY$D_-3%3cOVlemg2x+) zl(}U6BV1K>=d1osOnVUag`>3zg<=C$6Zxo%GV>fw@|&PB*+b9xTo#>*hB(XBznScZ zk>g`H>}%xN*;!!L0?Qk6L*N|f`Ud%P!e4Cu*3Z3Uf7dt0it{o4H>vqwwjs(*n_$;S zuvs4$ZbApQvatQ{O{mXmx?32+1|Az_3>|U0o^W`bclWE=XEZE~72nIhc3N+DZw5p& zmsifb>8a_OKxunx_`p6n|8jdKbGe7y*5V#@nbg8Q24|y?s5Eorw&ixZbFq6LjI7ROk$CJQe$AT7l~1-I==MUZvTmS9y7Vq`_FS9; zxauu!%gMoDdFmpkwt>Hx22;mQ$Bol<(bU0L2?BC>hClVt;8LvvEURr2WKxt?Cr&Gn zj^{P7#4WA1zBr)-AKDBRM-#kY&{zKCpB z>w_-gX~HUuM3wh#q9qNyS2t^D(za71sN0Eq%y{W*1^FE-4& zY>+@82=k)T4q3{{oN}>Cn^oKjm(%kD>c{Q)Fh}RJ12d6?t1$rur8(c^RHY|l2Sl59 z3FF$r2utZfdi35;?@CxHp90eTWBaeOWCzjvvpLdxaP=G%1wM%$FgfWrQOouFOu~R% z@g(;`VaQ9r1;L`l0VtJLf-2KZ-_k%?O0!r;M0~tHCMRg!a0mLm)YBzmtC_O76l zVpePegQ0JulUAY(L1|qd_Vz4M`LqJ3N;)&glQ@~)K5Ga|15_zNOFo0;*bB&wV1hS7 zN4>1mYl8{9^l^NJ!wE-Zb9VMP1mU&DD1Tt+$Y$5_?}^jYw8t#5!~VocSyO=Lvh9mW zL%v$Cd+u%HB?!t@ElTCG4*Pmj0qp(S52P2ojvbe9H{cf8b3wK z8p?yB49*;3LYy-!s8+*L`h=0$$X$r_{#8Tz5Af)ZaMh3FK?(0$RJ%t59Ux5Ltp*3} zmU&2zyrboeKT~64V)WeB@9P2A>6M}ns#px@)gSFxfU_|p#^4DZ4gv6gxnH(gkW zMh~vtM`X{g$AIO5heiAqp@!a18Te#s6G#}xC)V`)+AFv~SvqZFg@uK-$23HdBnAWm z0VaQDoQ=EDaF7=0T_DE2Z82C$EniAC#iQA6QOSDMK1b+5&5F7xy+@C}m=J@=-R%3+ zmL8V~-0;+bd#d34m5ch)cv{8e_>y#J#TU=_mwc2Db3t{x`S5Gb= zy~Yexd^ARGoqIfhTBt5dova$EwQCQ}fpqN%&l(}@;8Y=)kcO{#zU8y^j$ygjstA6 z;ANdUZCK+{w`QcjdLFnxyhb%)1f^6)D$GYj%{#P|+Aj`W2@%+RF5u6I(~N#%{A^+Q zFf|V<#{%K4dIwhy-Vx$6a8I0 zL#o(W!o_=McFw8GI0*{GX_FLp(L*1!TEx{440uv%ZQE-aG^nZG)J zrOpie6JvulT0RlK@DbQ%?&D1XnHxKK44y_RJq4#!`9w61>G|P3U++VR;=eq8zN6#q z$pz(Pel*x_VRtJ_LZm2Log;O}`1nPQ%DOC7{mbGuRtW>1<0WR`9@Si2-i*JslvG zon8as*=2sKekt*{ut1^gMPA|TfZgr6*-o#ixlX?}ocA-Hd(INYaEG8c>n;-V(&Fln z_CTvg0@8tg+jFdZJ;sGmuGQSj`q}tX#(Wr4zCB@OdpABiTJ1LK%=QO@wwB~q&{e)< zNI*T%BV1L}yrfliR))6YOlNY6pfRZS5FU$uEQm~q`3s$N5?-BAUjixmyWdv}Y&$=s z+@~b|ABX%>QVsw7n(HaDx<}y!Te}GxOQJkF$CXyA}{A${ADlY8oo${)_;Wg>GfkBmhHhe$PFE zD=&^^aGW@~8s4JU=zF)oA$y+13gAbBKE(i?j?^k6BLm!=5Nn@Zmk0=r_D1k$R-t#K zZP|Pva9~n#7O6!S0M&*hg{+)h-QFcn-$!iw^BT+TMjPjVQ7NS2#dhU__k6~dV!+1g za}`$JV?F)8LyQ{v`VoXPiC526Xe;z^mY&cSn&(tOSC3|UKiH$kCutw~0yt_g824Ph z8F9ILZhZ`c>2)Opbbe4}3I4<@P6PCHc7QL}iz?{3S6NxPV;lHqUq|J7%pRXV)|fRK z2n*o9_3r6J5%L!b1h<1nt2EN&Q=+44>+`3Up`P(M!Kya?PtV3 zfZugHEoPW4wfD3YgTYMQ@4x~?8ULDa@2}9qN@?HyRcL0Ops_z#aK0VKO=YP>Y3A0- zFFrDV=qZM^v%b^Z++0`arBC_C69gOtN@Vd81}eHaXwIzGMv+GpU*0c#?d(5g$l94I@JpTw|hgGK!-f3ZO=`}=0M-e5w2ny6lrv(seL3EZ(BllqA4 z31#iffG7(@EpCAU>tJ8kn_a(Mfv`P80f)kfep_tN=gOoOoy-965ks8Z`nwU-5?m-b zwB#_9ccLt6={hr*yq?@%%oYIY+9@OXs zEwQq}#TuVS6;_6y+nb(#%RN;ZQ1bShYfww_<9GPi#m2^BFw67vO1e*h6MvjO{@g=? zCVi-4a6oN&lf8HH3t+d-;t?NR)QNmK<;v_#)`A%gNrDhGwtkdXP_T3R$8T#B?Eqpo zYo$V~ISPOTowX8`XQ!fFI$$|G?JRmTt5Y&k$r;>`K3Ksi!QV14M;8_@li&GOm0w61 zLg`~irdbP@yoi%J*)FQG4KICy1R#C$*wt0{V&hwYxon%GPbHjb;mQ~U8&MV-4^^Dr zh|R5;4`l#34p~_oG)i+B0;D->dU~44EXV#0JPqmV**Ub?t(I<`xtK`T=w>ng+SuIO zTw7ZMYMI}}iB$k67{{{|A|@JBdQ1+O+MHpOe+etqj$q~{XQ7~+z{kHR41;q3S+gFK=6oqaLM|WrQ7rWOsYhS03Q|IcJ5Py6HzyPf=f3-)+FD&zUcL)F$3{nm5JV z>FC#sW+?zZm0UMvLTT@Ukz;S?HtYy#;lNZnn8k1S>akm|FKd$CCPDB{R*hPH%ac52 z*`n+EiRyq}S`z-4Z+a);BY!iWntxe>@vxO2=#41-5uq`j7=DV(4-Au3FHQU({q8J; a>_}d8GWI-!0zRVeyJ>3m8~*y8-~S6gvIk`V diff --git a/tests_zemu/snapshots/st-pb_start_dissolve/00001.png b/tests_zemu/snapshots/st-pb_start_dissolve/00001.png deleted file mode 100644 index c224890eac25405c15865e250d7b9e9e42aa3416..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12900 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 Vt)5DH0pGcRtSoIW)SvfG{~tTbV1obv diff --git a/tests_zemu/snapshots/st-pb_start_dissolve/00003.png b/tests_zemu/snapshots/st-pb_start_dissolve/00003.png deleted file mode 100644 index bf582528cb83b604cb8f8e07ff17f71d1a14a981..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11824 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 diff --git a/tests_zemu/snapshots/st-pb_stop_dissolve/00000.png b/tests_zemu/snapshots/st-pb_stop_dissolve/00000.png deleted file mode 100644 index b9bb14c49da744f9b9326770c705d9336c15c6f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8043 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 a>_}d8GWI-!0zRVeyJ>3m8~*y8-~S6gvIk`V diff --git a/tests_zemu/snapshots/st-pb_stop_dissolve/00001.png b/tests_zemu/snapshots/st-pb_stop_dissolve/00001.png deleted file mode 100644 index 5fe85250907ff1c0ef3aac1f3da72ff7493584b2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12830 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 ZC@CPX>~4Sp@V^f(GZU+8HGjK5`fm^FVR8Tf diff --git a/tests_zemu/snapshots/st-pb_stop_dissolve/00002.png b/tests_zemu/snapshots/st-pb_stop_dissolve/00002.png deleted file mode 100644 index 846218ba1b211a007e4149bbf7b0212b37feb512..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8974 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 Vt)5DH0pGcRtSoIW)SvfG{~tTbV1obv diff --git a/tests_zemu/snapshots/st-pb_stop_dissolve/00003.png b/tests_zemu/snapshots/st-pb_stop_dissolve/00003.png deleted file mode 100644 index bf582528cb83b604cb8f8e07ff17f71d1a14a981..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11824 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 diff --git a/tests_zemu/snapshots/st-sign_basic_expert/00000.png b/tests_zemu/snapshots/st-sign_basic_expert/00000.png deleted file mode 100644 index b9bb14c49da744f9b9326770c705d9336c15c6f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8043 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 a>_}d8GWI-!0zRVeyJ>3m8~*y8-~S6gvIk`V diff --git a/tests_zemu/snapshots/st-sign_basic_expert/00001.png b/tests_zemu/snapshots/st-sign_basic_expert/00001.png deleted file mode 100644 index 74197fd8a191c94791f3c7a0e6acc0477f80b784..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17596 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 E1z9=Rt^fc4 diff --git a/tests_zemu/snapshots/st-sign_basic_expert/00003.png b/tests_zemu/snapshots/st-sign_basic_expert/00003.png deleted file mode 100644 index 5fe2d0de49db2b73b83ee546cbec9b3b85fcbd83..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15720 zcmeIZX*8Q_|2C{t?GET}m6~cRtr|*e9)jJfs+zW{SqvrSq2`*K-IiUgq12F=c4?_8 zG>Rq!ZQ2?lQbK|dwULyFASF^m-b?TMdEd3(wVp5c`ak!l=knoNvN+E(=lL6s^Y|UV z$A8#b2p^F;!pFxaYjxqN*5fB(V{d}3(VSFdyIP%pU%~4?zWg7v?{DU+SPZpUy98e8I(le*Vc}9^T}WSE-X$+&Oj=Y(}q&xTsBjx(?#i_#X_S zNs%;cRrxgZ0)%k}U;?GJY)jyhyYLgG2tGCD+&$1x>|soxzde@!68+rl+}hv5M|-0D z!()o%KbfDspMakceKN@3oNI2Fo#)C|*gRTg;3s~6;^Nk-7EI9F6W8UL4lKXwlh;=Z z{{zK1Ezf7x!246a$<-_V2Y%sn5|W44WPks=CiTXcpLoBZH#{J%uKX?krHK}SqkQKT z{?G05f8ikar`XYB&5L9_pp&(2h}vcG*?fDlT0%~)g|XoHT{p50bfawm`E*X-GS6A! z;5Y4PZ^5WF|K)3IX( zCeykbpZJo`tPXjeba8YH(=E}@CNnm|+qHyl*^9Xr!VWBo1KGc#i^_9_VN*|beMxf-g0@PWOJ8sf%+OMD5WaBE0F zJ7poEoQ~3ZhW9_YtDRc_2@)Mes@a_TblXL}$V$u{1B3VuIo-7uyxTINFDZ`;Dwbr% zb!;StIrx9@HY-fj*K!ST{1_QpE!i6hulDzh(;4}m&G|miqbWpRyBD(;?qIFUSCQ)H zO7qz0lea+@`$lw3PYST^>U*e5xXuPUIu=M?cj8oDaBFmm1cm-D3%eR(^?T3w8~CJK)tP?ke)BWT0{fQw zBGBhN#mn*q)wK=hi~nAWK{Z#gINKYE7l|rAYUBHc@jAXOrHqZqLGnY|>if^?8+UCF z!FZGBFaG|_JlLi2;yZl(vFMcfoneo6t)6-F3E?84ylaDLHDeZ)6;>}v74yHYDAyb- zTYc|Vl=zNRawt-!qzB$vc)!S{&i#RdndDHk60U9e;q$P+fo)vq3%(e@x|1!nykI5V ziF#$2eW-0RE^F^$-4(X@i`tj^v8B+%nks>w??&$*i5M2G?~lO+?_uhXj(DgSJwX{- zr4=WD)g@|9^*_A9Iw&OK-x*wc;39P;Ot?+y3R{WYYo6nt57;*>E}qaCn#)zv4{q*x zMMM7DO{EAH2CW1c$Jo_4e1EQf6(4NdV*0SAv;^

    ISR$AQW9VsT*XlHd^wyM`JY( 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 E7exj^D*ylh diff --git a/tests_zemu/snapshots/st-sign_basic_expert/00006.png b/tests_zemu/snapshots/st-sign_basic_expert/00006.png deleted file mode 100644 index 88dd6c8a4a96dcd5f14d3748f3615f2fd574d541..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8973 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 Ty_vw@TtEhTCiiOYIzIhBwLZ@v diff --git a/tests_zemu/snapshots/st-sign_basic_expert/00007.png b/tests_zemu/snapshots/st-sign_basic_expert/00007.png deleted file mode 100644 index bf582528cb83b604cb8f8e07ff17f71d1a14a981..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11824 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 diff --git a/tests_zemu/snapshots/st-sign_basic_normal/00000.png b/tests_zemu/snapshots/st-sign_basic_normal/00000.png deleted file mode 100644 index b9bb14c49da744f9b9326770c705d9336c15c6f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8043 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 a>_}d8GWI-!0zRVeyJ>3m8~*y8-~S6gvIk`V diff --git a/tests_zemu/snapshots/st-sign_basic_normal/00001.png b/tests_zemu/snapshots/st-sign_basic_normal/00001.png deleted file mode 100644 index 68e4ae0610ceb70ec199e33583cccb59075ec96c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18404 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 W(vXi_175I023FU7RH14c{@(yw%UnGG diff --git a/tests_zemu/snapshots/st-sign_basic_normal/00002.png b/tests_zemu/snapshots/st-sign_basic_normal/00002.png deleted file mode 100644 index 95b7e90e778650d99709a5d5b5d81ff17c4f8131..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19953 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 YfipE9=IVR`9=68d>FVdQ&MBb@092md8vp? z!Pf;BTrd$ZNh=8%MI=R3CY2Cz$sGjVr}@rz&iCJU&U?;#&Uel?59e?L56^w`{C@ZK z`(4+?@7J9iH*eUpK}$<(^W{rF-O$on^F&Ka`^9=~;FB}XEfrc?yP21NI(PFZ4PuASVH13dD!T>6Hjb97(Uw^#qz67bE-#OvqH{M9CX$8A?J`+m9pYY0(N zy8FT1gFdjLR#0e=mhX^;wxqB1_<+aRUH8`|?)%RTw`G2+<=Iaio;r*ag6

  • o7ej_xaU)A{ZB0=Q2WggaN3%?yS_Q!s@wFYH9 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 Cx?#}( diff --git a/tests_zemu/snapshots/st-sign_basic_normal/00004.png b/tests_zemu/snapshots/st-sign_basic_normal/00004.png deleted file mode 100644 index 3f259bab529a39860c2d4f6a7078146954633fb7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8977 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 diff --git a/tests_zemu/snapshots/x-mainmenu/00004.png b/tests_zemu/snapshots/x-mainmenu/00004.png index c8b61779d42e29d27e1adb1c72da1eb58d9176fa..f4f2127966c7e3ed9d15ceaa83b94aab08f2de9f 100644 GIT binary patch delta 332 zcmeyw^qgseO1++^i(^Q|oVPaC8=w z+nesLWxp_evCd@P_o1GjOmE4qid)IHU-GNqH~)HvS(BcwkvSqeD>M3R)!N0|?->7P z;^|Rd?e*07zOUT$1%CsxUi(*H%B_6GG-J=PrzNYHD_?%oir#u;YnZn5N5Ahvw#ud{ zm-hRpXI=*TEj%}_eD*_!$-;8`TUKwllUB~v z&w9bE@>2QxB-ifF<4hTs&Ye%zopr0GWA{ga7~l delta 343 zcmaFP^oePLO1-70i(^Q|oVPdc@*Ps(X-iDnBmD0Fq$+(m0nfK?<{y{4-hZBP^T34l zJkP?o7!cq`ppuf(?Z@KvS)$ipFzyLnYg)zOe>$4Mc6#(CrJ(HG=f4{>141OLm}}k2 z&jf7n{=)F>t48UjryI3=^NoM8US56mf$`#bg7x+6TQpauFBLAo=@V`I+Ff?@(|bq7 z4?J{F^O|aW-&u0{g3p0{*XF-Hx#j6bR*uS^*Dq%<@4WqX>H0n)`Pkkff%irH7qz9@ ze164m7B+oZFKOCwL`$Tz*5cBtkH5|@-Zk^`U*^ZZ?EU%{Px&h@{qWLXVKc+IKE2_B z`NkjH((iup{uD61@L0(OOY!+>GnslWuyMD7E0)Syg0rO>nm%rvOENKOadb;|#taD0e0stQjp7;O& diff --git a/tests_zemu/snapshots/x-mainmenu/00010.png b/tests_zemu/snapshots/x-mainmenu/00010.png index c8b61779d42e29d27e1adb1c72da1eb58d9176fa..f4f2127966c7e3ed9d15ceaa83b94aab08f2de9f 100644 GIT binary patch delta 332 zcmeyw^qgseO1++^i(^Q|oVPaC8=w z+nesLWxp_evCd@P_o1GjOmE4qid)IHU-GNqH~)HvS(BcwkvSqeD>M3R)!N0|?->7P z;^|Rd?e*07zOUT$1%CsxUi(*H%B_6GG-J=PrzNYHD_?%oir#u;YnZn5N5Ahvw#ud{ zm-hRpXI=*TEj%}_eD*_!$-;8`TUKwllUB~v z&w9bE@>2QxB-ifF<4hTs&Ye%zopr0GWA{ga7~l delta 343 zcmaFP^oePLO1-70i(^Q|oVPdc@*Ps(X-iDnBmD0Fq$+(m0nfK?<{y{4-hZBP^T34l zJkP?o7!cq`ppuf(?Z@KvS)$ipFzyLnYg)zOe>$4Mc6#(CrJ(HG=f4{>141OLm}}k2 z&jf7n{=)F>t48UjryI3=^NoM8US56mf$`#bg7x+6TQpauFBLAo=@V`I+Ff?@(|bq7 z4?J{F^O|aW-&u0{g3p0{*XF-Hx#j6bR*uS^*Dq%<@4WqX>H0n)`Pkkff%irH7qz9@ ze164m7B+oZFKOCwL`$Tz*5cBtkH5|@-Zk^`U*^ZZ?EU%{Px&h@{qWLXVKc+IKE2_B z`NkjH((iup{uD61@L0(OOY!+>GnslWuyMD7E0)Syg0rO>nm%rvOENKOadb;|#taD0e0stQjp7;O& diff --git a/tests_zemu/snapshots/x-pb_add_hotkey/00000.png b/tests_zemu/snapshots/x-pb_add_hotkey/00000.png deleted file mode 100644 index 8d0c3cbd859f8e7b8575a4d43695f8f04873724c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 453 zcmV;$0XqJPP)?e8vSM=g;SA}V#zI-#lF0K9Zv=MLCZ|(ZWwoe=N<(mOk zi*hL?OSnh56L15$6VUH{>i&PQCH_LArhGHNMs~X7W(j@6UQn=nGvH=OKrj*j08cSK z$O%1$y1})F$oswM)>`e)kz0iC6zeIsb(rixW;}s8Jd;^BhG;oxW00Ex3%wk<>f~Cw z-oDp2imgI&Ghi!bs3fn|(4UkK~VR5h**d^Lkm}$_%7Z?})El~+N8#`Nn z!sFhJBawRybwhNG>qU6lD7Xj%001DpME^j6B9#}h_KtqIwJ>h3t>4tfFH}2b5Za0u z|6FA^FKyuV!nf`n1Id1`qWeAwO#-K0000003P8NoS+x_OJ!Ml00000NkvXXu0mjf4g1N= diff --git a/tests_zemu/snapshots/x-pb_add_hotkey/00001.png b/tests_zemu/snapshots/x-pb_add_hotkey/00001.png deleted file mode 100644 index 5a1d32745174cfe265540728eaea7f0aa10795a4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 509 zcmVyh}s0bIPD=@pQO85d)Go+n={Z$>SXuh%8jx$s+a61t8UnX z_76awzax_<{s_N!QuP~86mIoWE}+32jmO*#413fGJ(S}6ThN^};&$U^D?+J_;)~cW2x&>Xo+j{J;Z!)d}u>8VcZw$uzt6#32 zCI{f$>kBdO(iQcgXzfYKe&g7B7p7J@r<306Tf{3korGrlWIu7pgVF`r55E7L!Wi7d zE_72T$&A5Kq!$1H0000000000000000669w_-L+*2sa`-00000NkvXXu0mjfiCgG+ diff --git a/tests_zemu/snapshots/x-pb_add_hotkey/00002.png b/tests_zemu/snapshots/x-pb_add_hotkey/00002.png deleted file mode 100644 index cf3affa5171222f508488826cd88bd71ed64e002..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 505 zcmVlljUr%E@6G9NU+(kb zLF?8$;h{{c&QS}Cl0%CcpJ<9AgBP(A-%9jjwpHsiUG!=#wIF>G=nqA+NcDP#s_I^? zjAYPe#u9+MC||VHGLQ6#YV~>^|C5HQtC7L_*w)it)ljzzevzX)c9oOBJo1eK;CX)1 zT5~quXea|P)K#a*;&f2iqS?;cY}IIFTBA}v67*s{fwRt%4yEa2yzhqKYP|0ZF<1#% zXe9$D6N9PL?)CmQ^gR2X6g`YgrF(G&ka1OOIr`X`}h(?5-ZxwIU8XaF`U vN9%Duv;qJC000000000000000fD`!xWe}sSsQR3|00000NkvXXu0mjf86@5J diff --git a/tests_zemu/snapshots/x-pb_add_hotkey/00003.png b/tests_zemu/snapshots/x-pb_add_hotkey/00003.png deleted file mode 100644 index 54c6f66990f04b15f50d855c5a3142ad269ec292..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 885 zcmV-*1B(2KP)f*uATY=x#21VIo4K@bFw^W~!Dx~}?T z&bifx{Yq9lB+`|tT`hf3q;4r9JnF7N#Gsi(Pu(YRGvVvikC!6k zx~`maahlvoX-N=?rI8K8T4X*L+0plnaT(7QfV6@uz2*Qr=NGILX|FpAwglEKG9{iX zfE@zm?Tro}SwoJnTZnBp(%?A(4~LSFpjH@K#M%_3$FM&y@}#AFk;PLcAXTw^!}h`L zQRr*{Rh1TBL+^*z{hy|1;bZ8@%xtP3x(+@)0|Y@3EWlU|ovD^!5n?GVb6AOLiFf;K zU}irwR2|H=CUrir?YljO)`3>8<%L2-*lu?_DXEs8I6$PPfA`VEFZxeR6F=F;=N8IU zfu3m^yZ!N7p%FE7b&mQ!xT&^vNh1B4gC$B0R5JAU*Hefnw|vq=Sft8u}`)W{SdSB)Lm7rZC~#|XL#Kc z;`R)?4)d)w1vfr!za!3XLW@Q!CSXAP9}m`PJeq|9LT8X;4wm9Py!Gq2<`*k{H)W$E zF8cR}ui(MtW5cl%u%{MOY`5Nru|}4^VLDH%iLROe zp(@$xFE?V<)9jc{syN`A>wP9*sO0J5I$G2hXwjvva*Z?Rtg2b$Q6t}yG_~5gI|rSP z{!C8Ugl{y_*Lvy?f*=TXGE>Ez>4rrPv;LMW7Fr&t4-T_&0yMJo$dx-A_Qy~*3Y3k8 zn8l)=>|5)iWnwbGWkUkS$Iz=$p;b0&PBzwW{9O~H@2;9#!|6HwAGP)PCJlBPW`+#i z!#GF~7B-7Jk0z#eR$cdcrO`inoPCC~-h|WNn>U9Qo4ZiI8B{A+l(8RAXVb1e7n`#X znwZ%D*la@-PTuKzsf@ag;l1NyswFkXnf00000 LNkvXXu0mjff7GXh diff --git a/tests_zemu/snapshots/x-pb_add_hotkey/00004.png b/tests_zemu/snapshots/x-pb_add_hotkey/00004.png deleted file mode 100644 index fc58dfb670461f560b18b6d193d5d4a41b15dcbf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 477 zcmV<30V4j1P)GQ%){W${n|`<|~h2893u8#@O8004a5&v=LsLi(@w{;Ev% zk{q_F%5AN*sh=|OldMV_Co5A18Sy(D%6N0rvd)m~1ERm;q6*x#%`nGk~a zKDIdf8SxXBj9fOegx;Ao6ZMH=XIci7$~l!@x=MLrer2Dhg@y0h+_Vg+c7byGw02*X zLxZwyqq>XqZAco^2EaO1GxGA?8fUyrH^U`JuVa5UZ9p}?(G1&S09-PcKdNP_H<44O ze~eQ`E6cpmtRFwI6K938x((gg;EwvnJa~2b1HeEWI7s8Vx?fAuopMat*T@^AU7yGR;+t+hF~J_E|5Y5mpluQrOTw|)yDyfIkbn;r5c$Ta1ZgtMBy_b}C3)z_ldZn}4eHBqmxwab6wWdoMC ztkt0dP;bKy&1!Y-0Jz7D!J(eB3Z3YtlNke3bT0q^0000000000000000AS`H^YK+Y T<#lt%00000NkvXXu0mjfq1)f7 diff --git a/tests_zemu/snapshots/x-pb_add_hotkey/00005.png b/tests_zemu/snapshots/x-pb_add_hotkey/00005.png deleted file mode 100644 index 1e4be69934787c368c2b5ed677cc7f5a2470be3b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 355 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|`hpba4!+nDh2#G+&c}K^PbX0`eJS}y70`%8T>n^%dV>bk>TM}C(cF@9*Jbj^5WTF;gKGIO)y zjlJ*9*PE9W@jdm~5r5wEu#TD8y6+Pnh8_O<-8#^Bx$bnOy3REWn^jXeAFev)TXe-F zTky7j?62N_lL@yzwx7O!=&4O1W7^|)7fcr%%i5*3D%0_G;tl)cpW3Io3*7!cdXW1o sV&B=e%knGs=l(tai5cc!1_ryAe9w9}zGZ%X&;TUp>FVdQ&MBb@086r+N&o-= diff --git a/tests_zemu/snapshots/x-pb_add_hotkey/00006.png b/tests_zemu/snapshots/x-pb_add_hotkey/00006.png deleted file mode 100644 index 4c3747edad754c34867ec5f1a66fbe0bb59f7edd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 472 zcmV;}0Vn>6P)NklWPJwn1du000000JxKn=m8widp~r1 zYwblNxzK0y0Pc*P_TM4;LVVLU?czl?jqeS za-k=ts|?>a`zHL-427hBC>;hri0MjB?_Ceh);Q%b+oFp?wjcdj^Ujyq2f1aN0Wz$e ze&3>_Km5Cyc|G*wo@hH?Mt^#xSCaFWEt4RodP_509F-CvPG7L$)ge1Ib1gx0b>lAV zNU|qDmh54>K6(S=o;Y+4004kxVroI|k7}{V`upz8clwD+5pMl*D0AuqCbd%ctl?44 zo*42wyDU$_kD?>R6I(^u{TZy&CDk=jB*6V`;q#r$4|CV0^`+@VOVDCTHvbeez{cW4 zbpCltlDLb21k4MQ+rb#QE06nT?fH@_etD1ZrC5UQj06Ax0001hg}wnoqe+{v@krbN O0000?e8vSM=g;SA}V#zI-#lF0K9Zv=MLCZ|(ZWwoe=N<(mOk zi*hL?OSnh56L15$6VUH{>i&PQCH_LArhGHNMs~X7W(j@6UQn=nGvH=OKrj*j08cSK z$O%1$y1})F$oswM)>`e)kz0iC6zeIsb(rixW;}s8Jd;^BhG;oxW00Ex3%wk<>f~Cw z-oDp2imgI&Ghi!bs3fn|(4UkK~VR5h**d^Lkm}$_%7Z?})El~+N8#`Nn z!sFhJBawRybwhNG>qU6lD7Xj%001DpME^j6B9#}h_KtqIwJ>h3t>4tfFH}2b5Za0u z|6FA^FKyuV!nf`n1Id1`qWeAwO#-K0000003P8NoS+x_OJ!Ml00000NkvXXu0mjf4g1N= diff --git a/tests_zemu/snapshots/x-pb_check_status/00001.png b/tests_zemu/snapshots/x-pb_check_status/00001.png deleted file mode 100644 index 030585c6bdff2e722700745500c84176d4730282..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 518 zcmV+h0{Q)kP)jrJ-<;BYJwDj(@ESeHG zrS=tuw%~Vf1&bI*BCe+>ly%R-R^2lS`KO|y7)e*}R@ddpCR)e`7Ti^0`RT3TP!~lD zD`W$$snu6J8^qKOw=;7B5{G*E6UuaH}W4FL|GdoS%wNsc#g1Zqi9@1}(#r7Za&8kti%b6-iU8(@&)?H#M2% z{E`1#ZLnI#N~OJdLJrup1KPDD1FThPeKdUBZCL)dn}F&)i$g&6tBLaSC0j5@hCJDZ&c?000000000000000001oW3y}1{aivR!s diff --git a/tests_zemu/snapshots/x-pb_check_status/00002.png b/tests_zemu/snapshots/x-pb_check_status/00002.png deleted file mode 100644 index 1e4be69934787c368c2b5ed677cc7f5a2470be3b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 355 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|`hpba4!+nDh2#G+&c}K^PbX0`eJS}y70`%8T>n^%dV>bk>TM}C(cF@9*Jbj^5WTF;gKGIO)y zjlJ*9*PE9W@jdm~5r5wEu#TD8y6+Pnh8_O<-8#^Bx$bnOy3REWn^jXeAFev)TXe-F zTky7j?62N_lL@yzwx7O!=&4O1W7^|)7fcr%%i5*3D%0_G;tl)cpW3Io3*7!cdXW1o sV&B=e%knGs=l(tai5cc!1_ryAe9w9}zGZ%X&;TUp>FVdQ&MBb@086r+N&o-= diff --git a/tests_zemu/snapshots/x-pb_check_status/00003.png b/tests_zemu/snapshots/x-pb_check_status/00003.png deleted file mode 100644 index 4c3747edad754c34867ec5f1a66fbe0bb59f7edd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 472 zcmV;}0Vn>6P)NklWPJwn1du000000JxKn=m8widp~r1 zYwblNxzK0y0Pc*P_TM4;LVVLU?czl?jqeS za-k=ts|?>a`zHL-427hBC>;hri0MjB?_Ceh);Q%b+oFp?wjcdj^Ujyq2f1aN0Wz$e ze&3>_Km5Cyc|G*wo@hH?Mt^#xSCaFWEt4RodP_509F-CvPG7L$)ge1Ib1gx0b>lAV zNU|qDmh54>K6(S=o;Y+4004kxVroI|k7}{V`upz8clwD+5pMl*D0AuqCbd%ctl?44 zo*42wyDU$_kD?>R6I(^u{TZy&CDk=jB*6V`;q#r$4|CV0^`+@VOVDCTHvbeez{cW4 zbpCltlDLb21k4MQ+rb#QE06nT?fH@_etD1ZrC5UQj06Ax0001hg}wnoqe+{v@krbN O0000?e8vSM=g;SA}V#zI-#lF0K9Zv=MLCZ|(ZWwoe=N<(mOk zi*hL?OSnh56L15$6VUH{>i&PQCH_LArhGHNMs~X7W(j@6UQn=nGvH=OKrj*j08cSK z$O%1$y1})F$oswM)>`e)kz0iC6zeIsb(rixW;}s8Jd;^BhG;oxW00Ex3%wk<>f~Cw z-oDp2imgI&Ghi!bs3fn|(4UkK~VR5h**d^Lkm}$_%7Z?})El~+N8#`Nn z!sFhJBawRybwhNG>qU6lD7Xj%001DpME^j6B9#}h_KtqIwJ>h3t>4tfFH}2b5Za0u z|6FA^FKyuV!nf`n1Id1`qWeAwO#-K0000003P8NoS+x_OJ!Ml00000NkvXXu0mjf4g1N= diff --git a/tests_zemu/snapshots/x-pb_claim_neurons/00001.png b/tests_zemu/snapshots/x-pb_claim_neurons/00001.png deleted file mode 100644 index 3006c983b81433f0503671305b3bb584294d4a4f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 501 zcmV^wggR6ml085sI@EAbM~86Gwe?O z18_dSJr7a*6aKHH>W(K0*Luk(P-l+%V{QfpA7w%prTG3O=)*ApijVuQ1^`Dfb6znD zk2Zd#`qQla67Dgv*DX3-xP|`!1T&}V@uzwYs-9ftzt)c7%9hn$)PL0o)nZ|D1olxv!oC11jO-b_Xhji1@0 zoB`JdIYnvgT8{T1_G)`aZB{o*dTqju^uGO_`W324Ci~kcsV4iIF$Q;H6}nR+$&A5L rq!$1H00000000000000009fW1cs!D!WSlPX00000NkvXXu0mjft%>F8 diff --git a/tests_zemu/snapshots/x-pb_claim_neurons/00002.png b/tests_zemu/snapshots/x-pb_claim_neurons/00002.png deleted file mode 100644 index 1e4be69934787c368c2b5ed677cc7f5a2470be3b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 355 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|`hpba4!+nDh2#G+&c}K^PbX0`eJS}y70`%8T>n^%dV>bk>TM}C(cF@9*Jbj^5WTF;gKGIO)y zjlJ*9*PE9W@jdm~5r5wEu#TD8y6+Pnh8_O<-8#^Bx$bnOy3REWn^jXeAFev)TXe-F zTky7j?62N_lL@yzwx7O!=&4O1W7^|)7fcr%%i5*3D%0_G;tl)cpW3Io3*7!cdXW1o sV&B=e%knGs=l(tai5cc!1_ryAe9w9}zGZ%X&;TUp>FVdQ&MBb@086r+N&o-= diff --git a/tests_zemu/snapshots/x-pb_claim_neurons/00003.png b/tests_zemu/snapshots/x-pb_claim_neurons/00003.png deleted file mode 100644 index 4c3747edad754c34867ec5f1a66fbe0bb59f7edd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 472 zcmV;}0Vn>6P)NklWPJwn1du000000JxKn=m8widp~r1 zYwblNxzK0y0Pc*P_TM4;LVVLU?czl?jqeS za-k=ts|?>a`zHL-427hBC>;hri0MjB?_Ceh);Q%b+oFp?wjcdj^Ujyq2f1aN0Wz$e ze&3>_Km5Cyc|G*wo@hH?Mt^#xSCaFWEt4RodP_509F-CvPG7L$)ge1Ib1gx0b>lAV zNU|qDmh54>K6(S=o;Y+4004kxVroI|k7}{V`upz8clwD+5pMl*D0AuqCbd%ctl?44 zo*42wyDU$_kD?>R6I(^u{TZy&CDk=jB*6V`;q#r$4|CV0^`+@VOVDCTHvbeez{cW4 zbpCltlDLb21k4MQ+rb#QE06nT?fH@_etD1ZrC5UQj06Ax0001hg}wnoqe+{v@krbN O0000?e8vSM=g;SA}V#zI-#lF0K9Zv=MLCZ|(ZWwoe=N<(mOk zi*hL?OSnh56L15$6VUH{>i&PQCH_LArhGHNMs~X7W(j@6UQn=nGvH=OKrj*j08cSK z$O%1$y1})F$oswM)>`e)kz0iC6zeIsb(rixW;}s8Jd;^BhG;oxW00Ex3%wk<>f~Cw z-oDp2imgI&Ghi!bs3fn|(4UkK~VR5h**d^Lkm}$_%7Z?})El~+N8#`Nn z!sFhJBawRybwhNG>qU6lD7Xj%001DpME^j6B9#}h_KtqIwJ>h3t>4tfFH}2b5Za0u z|6FA^FKyuV!nf`n1Id1`qWeAwO#-K0000003P8NoS+x_OJ!Ml00000NkvXXu0mjf4g1N= diff --git a/tests_zemu/snapshots/x-pb_disburse/00001.png b/tests_zemu/snapshots/x-pb_disburse/00001.png deleted file mode 100644 index d3d8670a67c2f95cb5fa33f55b9689bba9f14123..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 512 zcmV+b0{{JqP)w2ayV0^}O1zZX zSD0FYpWX^BB925nPg$tz=EAMIISb`~MMV*btM^vd_0A?*C<6=TENS`jRxqfOVni!t z6RoM$cbpAkXs6p*IRJ^BO`%-c#_n`jz2S7rPxrNK3!0{GBcgz-wRftQ>|a*hum`Ol zfINRkCQEpJM~Q?gEaktG3V_p&%PrHJg%45 z?&ADzFI4{0Ri$Nvp|i2-*LzybhmW(d$CSnbH8C)p{uy~^{`Y_T3eL6O{#~`VC&D>l zUV|-oCS9 z(XSsS-z*$V!*;CTVcNbr<>67oC-ZZ-9WBqz-<*6?tVzhZ{B~?u%`|TQUu-QqR2EN= zJ=^{!!+H7nPx3$)9B|f5aqgWPxyf{jYO%lGTNRn-1y6FzB|~er7w!Hi6`Fg;cZK@z zl+|+TLS5pUrd?bdxccSPwR=i+b{^VRB>Gxm+UMJQRIa~qo)BWU>iD~|S;dZ1ulZj( zx-hR|cJ-of5jx7PPlc|yK4o4RXs0bH?k3HD`^4Snw^nKEJxz=-ni0PK6O-@UU z?f9cL&b@nh%6;wfZK4y_d}M#R_L!Eu#kVVrwZ5l2;y*8W&%B^6wyWw`-%_`lywzEr zR_aUk%vdvV<3A&j;N-tYA2iPuXe|peFtVF*>h>A!`hD%CbIPRt2hDre(ELyQ%iISI hXQ2oj@JK|3dOgpxnT5Ciwp)QjJzf1=);T3K0RZ@)-~Rvr diff --git a/tests_zemu/snapshots/x-pb_disburse/00003.png b/tests_zemu/snapshots/x-pb_disburse/00003.png deleted file mode 100644 index 4646209c59dad1e611ebdb544bde88a0fdc42dd8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 893 zcmV-@1A_dCP)a$=v@)zDqu)%B2O=0`wSfw)-p5076Ix)V2sg5ClOG1VJ3fpOo}Hn0{Hc4yp; zT^n#+S8u_?K&bWKrfx-G98VPA16NV)%97f)egoXJv)0tBLD}FWCYN?&%M*Y@lZt{W ztywox@&#-2Q&fsDE^EUgtb|pu#iriE@w(c|mxBdT*_jUe_aj(TcGy|dhW-xB9OqRf zfglKi_>YidL&fVsLG5~XnbPS^G2IxP-TrESvTn3KWI2-IitrMqFzkrqzbbZNXe#c> zyxX{J}gXlj|1fo!YBhwKA%}%q;B?9sSJcm(hFkQ$Xc~ zj7rvRA?m#*6O+D`mQC(pqVj@kMI~N%Y)vKzf*=TjAeLdCfht>wH+kw}rDg;p**>yW zInjg82dG9a#_a<;5r#Dt#7QPjvKO)T3f{ZRxYw58eFu<>@vD<-rv^NGBpU01_uOUZ zdNM;{JBS%TFllcvriwj^|Y=UkHEmIxv$7DhGpLQaPb&&o%Ua@L??f&07`# z0Q_C*)lk1`sCtc0mmO1um*vekShx*Z5@|V0>Mh^D9t7(-Wy4;>oqdbW*`w@TX#X|T zFJb!8QG3OUSQ3%RTKgDkVzXBdGu+hg*`q>ZWKd@ZI5J(}n^AZb*sud+DL-X|>bN9w zSY=~2vcTr2h+U)?ATr5a_4jcsM{~jZGo8WnZ7fX}3^?^Y;AYC+e;mC7vNJLBm2)^c ziB1+BBX?7O2(yH#zJQuKM>96&EVUtE-kES z-xRbkf)9mdFqb!=PR-5zMw1@%r{wV`98*x8lrKHf%-WWX;CLT7DBs&Y)vfC;!D<@c zfExb0=M(T&PXGY;<9iya_4ad?Lm^RqaH6RnAC!6h++tsOc$OXa^o}@Onm(exvRnl4 zJqr?ESy_HZ^Gie@M_$!G*6hPOWywXR^PbX0`eJS}y70`%8T>n^%dV>bk>TM}C(cF@9*Jbj^5WTF;gKGIO)y zjlJ*9*PE9W@jdm~5r5wEu#TD8y6+Pnh8_O<-8#^Bx$bnOy3REWn^jXeAFev)TXe-F zTky7j?62N_lL@yzwx7O!=&4O1W7^|)7fcr%%i5*3D%0_G;tl)cpW3Io3*7!cdXW1o sV&B=e%knGs=l(tai5cc!1_ryAe9w9}zGZ%X&;TUp>FVdQ&MBb@086r+N&o-= diff --git a/tests_zemu/snapshots/x-pb_disburse/00007.png b/tests_zemu/snapshots/x-pb_disburse/00007.png deleted file mode 100644 index 4c3747edad754c34867ec5f1a66fbe0bb59f7edd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 472 zcmV;}0Vn>6P)NklWPJwn1du000000JxKn=m8widp~r1 zYwblNxzK0y0Pc*P_TM4;LVVLU?czl?jqeS za-k=ts|?>a`zHL-427hBC>;hri0MjB?_Ceh);Q%b+oFp?wjcdj^Ujyq2f1aN0Wz$e ze&3>_Km5Cyc|G*wo@hH?Mt^#xSCaFWEt4RodP_509F-CvPG7L$)ge1Ib1gx0b>lAV zNU|qDmh54>K6(S=o;Y+4004kxVroI|k7}{V`upz8clwD+5pMl*D0AuqCbd%ctl?44 zo*42wyDU$_kD?>R6I(^u{TZy&CDk=jB*6V`;q#r$4|CV0^`+@VOVDCTHvbeez{cW4 zbpCltlDLb21k4MQ+rb#QE06nT?fH@_etD1ZrC5UQj06Ax0001hg}wnoqe+{v@krbN O0000?e8vSM=g;SA}V#zI-#lF0K9Zv=MLCZ|(ZWwoe=N<(mOk zi*hL?OSnh56L15$6VUH{>i&PQCH_LArhGHNMs~X7W(j@6UQn=nGvH=OKrj*j08cSK z$O%1$y1})F$oswM)>`e)kz0iC6zeIsb(rixW;}s8Jd;^BhG;oxW00Ex3%wk<>f~Cw z-oDp2imgI&Ghi!bs3fn|(4UkK~VR5h**d^Lkm}$_%7Z?})El~+N8#`Nn z!sFhJBawRybwhNG>qU6lD7Xj%001DpME^j6B9#}h_KtqIwJ>h3t>4tfFH}2b5Za0u z|6FA^FKyuV!nf`n1Id1`qWeAwO#-K0000003P8NoS+x_OJ!Ml00000NkvXXu0mjf4g1N= diff --git a/tests_zemu/snapshots/x-pb_follow/00001.png b/tests_zemu/snapshots/x-pb_follow/00001.png deleted file mode 100644 index 0541da9337630f65fcacfb9d977567fbd4e20bca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 457 zcmV;)0XF`LP)oNt|=>NSqtM!rN(H0iK$1&N*vsxF~NXSteYMOD5}@)XI~^;&^I$FSM+hQa6?C z%XBTl@74-ADh^Lw_gRSRhQhhJAq(=as-lXdsrOvh@y@1Nkb#-vEXnz4tx%Ah6g6@w z>u4=m{fTFT8rtr5Mh<{i&ZZ)lc42p#EZ%S~%XjxRYzyj^+(uM^rq=FMm&$Kemtj{L zKLBC=)=VPz$Nb+(lTSQVIM<6@K$SVFkNGk%j1edFp%ky*f?kdRNO;|MHGsG3JPUeG z?#LxB7G435-mJ%e3Ey{gLR+2j7F7AAql)E@YxrU+DIdng$t|Z_9%{;;``B>{x_QEW zmK_J+zV(W_M%_-kZY5~X_+$27-AYgv=&$2m9ynJD2f7EOx>Q!7 z<7$4(6K(2ruKWQ2Ose&2=oQ&xVs-r|+rn+u;8vFzre2L0=tb<g0yZ`_I000000002+m^aw#vRE1WcLo3e002ovPDHLkV1oMzmmL5A diff --git a/tests_zemu/snapshots/x-pb_follow/00003.png b/tests_zemu/snapshots/x-pb_follow/00003.png deleted file mode 100644 index 5d9026314f65e5dff70577c8d3e9625e31b45214..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 361 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|=-xba4!+nDh2#AYZcrPebCi zH){9(d+a?e7r~*qz(Z;2oB#88P92I`*`Wy3!*F@;8ukE1rBzQY`gY&VFLi9~m@@Om z`Qud#=1Xdp?2b;=*tS}7Lj2|jTPmXY7lg}Q%er&E+Lgb*u%(}6%GMQ8b3+z)b3IdL zl>R)iVN+Ge>&~p0&CfLKgaoAcZ@gG?Wl3E9re(8on>Xy5$+%mIk>SIBv0J=v?sn z@15G5vki@#yMY#+jtczi_kbz?(6KK(8)8?7+RHCv&(H90J*RK>>dl|}D#5t^;2U$( zCUpKYnHnJc_vDF2)m0Ogb}LM7b{C8Tc^U~kFpS^+?(msMv6Z$UQBPMtmvv4FO#pqA BpXvYr diff --git a/tests_zemu/snapshots/x-pb_follow/00004.png b/tests_zemu/snapshots/x-pb_follow/00004.png deleted file mode 100644 index 4844ee2b14834d7651c05e780ce25835a37b3f79..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 411 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|>x0ba4!+nDh2VU|)*@PeWpv zvH8P)?vM0-CpdX%a&6wy@N@riLCK?wM5RHR9=tpLXo2R^BI9Efm*3us{uigQG^Ee5 z=R#7&{Fm-$rnwhS*^z%FZNp6F!<+)2zJ7^mesQNN?A858BBhIOy-j1dR`-@~ZqTXe z7rR1U_dnD;vNrGOvRf4=dtY6=!Z){B{^`V~ws}u~pG$Icmp*z=cG8k~uA+eb_RgYD zB^F0ly-b|ZwCR`I?wwzw=3afGQ1*3xQhW9PM}~}v1#5pEJ!JBKY0bwKy-C5gE3@XW z`5N`=NXfgSGX4HQS6`kH;_SOp{+Q$M4{0YY=0|X^D&@W}_;>o{_8TH@qCdCxtz_N0 zC|-Te=Aa9P!V6xl`ThP)kI0nQzf%|fmpxa(ZoNo(KRoV2>{V-b&BBv@G)Kn3!S>IJdIHQetR>eIgIBrh(b>Z8=xv(k%uGo` zP=Yp6-iTL98BF1b;ocNA1XVhNrUu`$q?Wg%M|Wua65~moFd2k*z%lu*`GXhJ`jd9z zF$=q0^P=5`Ig?>Mvty-+L^KISR*k8tn7~Y3o z6CGcJ+tVLjjH?T!=87rSGyf9Mx0ba4!+nDh2#U{Q+#PebCZ zm%e-cPu$@xZ*(}tiQ%qL!0&qht`31a3-Y{xnhq4jUyeRw`TFi-3#+S7R@}R%@qEp1 zWv}(8F7B*bwq0YJ`{z|*7fSCaKU2tJ>M`15%xo|;!9Dtl$!9qUx< zO2v%1Gu#yOLND*mTd2{Rm%Z%&(hn*B*LTfgD1WlZxUDYLcyVcBtfTm=;I_gyU+UMn zYGyDN|G(C{Nm};8>P2;ou5+`jPi_y5e9kyo_|COo(|34&6MrZ?LC-F`?n6S9-^HCr zbxn4^bM-adyySk?r?}J|26G}UKd2w(jJPJuaA3c||LhEz?>jfdH)Vbim-`;D|H-zn zJsrLuug(5td%ub0{pyW=Y0^O#lpO1Y*L``wS>gC4crTkxcF4Q=(_bFTKA^CN-)rvq zt2{;*^PbX0`eJS}y70`%8T>n^%dV>bk>TM}C(cF@9*Jbj^5WTF;gKGIO)y zjlJ*9*PE9W@jdm~5r5wEu#TD8y6+Pnh8_O<-8#^Bx$bnOy3REWn^jXeAFev)TXe-F zTky7j?62N_lL@yzwx7O!=&4O1W7^|)7fcr%%i5*3D%0_G;tl)cpW3Io3*7!cdXW1o sV&B=e%knGs=l(tai5cc!1_ryAe9w9}zGZ%X&;TUp>FVdQ&MBb@086r+N&o-= diff --git a/tests_zemu/snapshots/x-pb_follow/00008.png b/tests_zemu/snapshots/x-pb_follow/00008.png deleted file mode 100644 index 4c3747edad754c34867ec5f1a66fbe0bb59f7edd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 472 zcmV;}0Vn>6P)NklWPJwn1du000000JxKn=m8widp~r1 zYwblNxzK0y0Pc*P_TM4;LVVLU?czl?jqeS za-k=ts|?>a`zHL-427hBC>;hri0MjB?_Ceh);Q%b+oFp?wjcdj^Ujyq2f1aN0Wz$e ze&3>_Km5Cyc|G*wo@hH?Mt^#xSCaFWEt4RodP_509F-CvPG7L$)ge1Ib1gx0b>lAV zNU|qDmh54>K6(S=o;Y+4004kxVroI|k7}{V`upz8clwD+5pMl*D0AuqCbd%ctl?44 zo*42wyDU$_kD?>R6I(^u{TZy&CDk=jB*6V`;q#r$4|CV0^`+@VOVDCTHvbeez{cW4 zbpCltlDLb21k4MQ+rb#QE06nT?fH@_etD1ZrC5UQj06Ax0001hg}wnoqe+{v@krbN O0000?e8vSM=g;SA}V#zI-#lF0K9Zv=MLCZ|(ZWwoe=N<(mOk zi*hL?OSnh56L15$6VUH{>i&PQCH_LArhGHNMs~X7W(j@6UQn=nGvH=OKrj*j08cSK z$O%1$y1})F$oswM)>`e)kz0iC6zeIsb(rixW;}s8Jd;^BhG;oxW00Ex3%wk<>f~Cw z-oDp2imgI&Ghi!bs3fn|(4UkK~VR5h**d^Lkm}$_%7Z?})El~+N8#`Nn z!sFhJBawRybwhNG>qU6lD7Xj%001DpME^j6B9#}h_KtqIwJ>h3t>4tfFH}2b5Za0u z|6FA^FKyuV!nf`n1Id1`qWeAwO#-K0000003P8NoS+x_OJ!Ml00000NkvXXu0mjf4g1N= diff --git a/tests_zemu/snapshots/x-pb_increase_dissolve_delay/00001.png b/tests_zemu/snapshots/x-pb_increase_dissolve_delay/00001.png deleted file mode 100644 index 814335b0c778e6d4c317668280f4301a1de47754..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 607 zcmV-l0-*hgP)m15i<&+LX}Vv3xU zIM>y+1;1MrG>9JwGM=Kqb+fRho1;)3C5pt8rrEWrd1WIOO2;m9m1z95Dj0~1!h;sF z4r`+N9oGhu+HN~D6Ogc@Nhr6rQJogU3rFZBkCpgomJIsC-W1K z*RN+0#XqjkN-AFQh_E(Gxq+N9^7~wM49tNC^rjH+FF`K{2@rVQb2R_}ba2RxSNx09m_{G8+7>l>oK>&vxvG{)A4xN~4c^Al2Awh<^=h|{ zOWIq+cFgl*g!#=lC!V^&7vRWr;#%&u)~!p}mH@45#>++7uOFE!o8p%H3{K(nC*ju4 zu-}x^auOTdF$Q!8Oq@x31*jd;ic(&-#-&fY3lL2;S#CP7DwXgaa$EVoQG<-=FGC15 zqQ4mAU?-?TJE;U2Ik*)b-p()M)*!wC*Cg=*Yd-!q=W{piwpPR-M*lMZPESk|TR^YF z-{$mmRnOcdkKX~#@nd;v0*p$s{nOGWo|*tZf&F{nC{9m+*yi+iM!^xBoRZUD$be@< tz7zrg0000000000000000000i<`*7SCs)eF+vNZN002ovPDHLkV1itx3ZVc1 diff --git a/tests_zemu/snapshots/x-pb_increase_dissolve_delay/00002.png b/tests_zemu/snapshots/x-pb_increase_dissolve_delay/00002.png deleted file mode 100644 index 35c03a15d647ed477ea55c22a0efdbc0d5a64f99..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 343 zcmV-d0jU0oP)-kZY5~X_+$27-AYgv=&$2m9ynJD2f7EOx>Q!7 z<7$4(6K(2ruKWQ2Ose&2=oQ&xVs-r|+rn+u;8vFzre2L0=tb<g0yZ`_I000000002+m^aw#vRE1WcLo3e002ovPDHLkV1oMzmmL5A diff --git a/tests_zemu/snapshots/x-pb_increase_dissolve_delay/00003.png b/tests_zemu/snapshots/x-pb_increase_dissolve_delay/00003.png deleted file mode 100644 index f8b982022eefc8d951a826eb95e951ef557d1d0d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 423 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|`Jiba4!+nDh2#bl+hG9*4j* z6YIqP-bwnO1CKhH1tf7yc{Oi+SIhEd;fn$w?N96Omat0yyBxjZ#Y$M3Q<_9!him?d)%b( zEw5kn#qSoZ-fD4W_ulHVhNytu9pAEYBZA^;KIC4TR8(5L=f=a*N&B*TZ|Hrx|1Ra} zea5T>bI;f9f3$Dq*#d*fUsA5LPnv4aaC`Ie6}ckqWewdg^EMp6t*PO^PfP#yZ1=e3 z+ujxHKR-Cl-EP{Pc*n|jVXa5s?>UyNWG-?!@5PL`#jR31BYjn3kL^C7)Erp&j^Tmw zgeeROTiu@7>M76vE_%gcg2lxrmoKnN{Z~qmEwzaHQ`_=6=)!bGhS`D*XG<9RPA`0D zHO2l>$b+*S_VrBh3wE7Y^UtVtY1&tDWj5=Ht!0mF_XwZn28I|iuz4o`hEu8TO0}g7 ONZ8ZW&t;ucLK6U)P`*3> diff --git a/tests_zemu/snapshots/x-pb_increase_dissolve_delay/00004.png b/tests_zemu/snapshots/x-pb_increase_dissolve_delay/00004.png deleted file mode 100644 index 1e4be69934787c368c2b5ed677cc7f5a2470be3b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 355 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|`hpba4!+nDh2#G+&c}K^PbX0`eJS}y70`%8T>n^%dV>bk>TM}C(cF@9*Jbj^5WTF;gKGIO)y zjlJ*9*PE9W@jdm~5r5wEu#TD8y6+Pnh8_O<-8#^Bx$bnOy3REWn^jXeAFev)TXe-F zTky7j?62N_lL@yzwx7O!=&4O1W7^|)7fcr%%i5*3D%0_G;tl)cpW3Io3*7!cdXW1o sV&B=e%knGs=l(tai5cc!1_ryAe9w9}zGZ%X&;TUp>FVdQ&MBb@086r+N&o-= diff --git a/tests_zemu/snapshots/x-pb_increase_dissolve_delay/00005.png b/tests_zemu/snapshots/x-pb_increase_dissolve_delay/00005.png deleted file mode 100644 index 4c3747edad754c34867ec5f1a66fbe0bb59f7edd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 472 zcmV;}0Vn>6P)NklWPJwn1du000000JxKn=m8widp~r1 zYwblNxzK0y0Pc*P_TM4;LVVLU?czl?jqeS za-k=ts|?>a`zHL-427hBC>;hri0MjB?_Ceh);Q%b+oFp?wjcdj^Ujyq2f1aN0Wz$e ze&3>_Km5Cyc|G*wo@hH?Mt^#xSCaFWEt4RodP_509F-CvPG7L$)ge1Ib1gx0b>lAV zNU|qDmh54>K6(S=o;Y+4004kxVroI|k7}{V`upz8clwD+5pMl*D0AuqCbd%ctl?44 zo*42wyDU$_kD?>R6I(^u{TZy&CDk=jB*6V`;q#r$4|CV0^`+@VOVDCTHvbeez{cW4 zbpCltlDLb21k4MQ+rb#QE06nT?fH@_etD1ZrC5UQj06Ax0001hg}wnoqe+{v@krbN O0000?e8vSM=g;SA}V#zI-#lF0K9Zv=MLCZ|(ZWwoe=N<(mOk zi*hL?OSnh56L15$6VUH{>i&PQCH_LArhGHNMs~X7W(j@6UQn=nGvH=OKrj*j08cSK z$O%1$y1})F$oswM)>`e)kz0iC6zeIsb(rixW;}s8Jd;^BhG;oxW00Ex3%wk<>f~Cw z-oDp2imgI&Ghi!bs3fn|(4UkK~VR5h**d^Lkm}$_%7Z?})El~+N8#`Nn z!sFhJBawRybwhNG>qU6lD7Xj%001DpME^j6B9#}h_KtqIwJ>h3t>4tfFH}2b5Za0u z|6FA^FKyuV!nf`n1Id1`qWeAwO#-K0000003P8NoS+x_OJ!Ml00000NkvXXu0mjf4g1N= diff --git a/tests_zemu/snapshots/x-pb_join_community_fund/00001.png b/tests_zemu/snapshots/x-pb_join_community_fund/00001.png deleted file mode 100644 index 890d0a4ccc76da1a385d54985d668ff28cf4c92e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 524 zcmV+n0`vWeP)3_wwm%1yZck+@41uDEC+WFf##SO2$*n?V+XZITiI003~iuh9yn6mcczyeOEs zBdY%p$xTWr?MS?D01w{I@CrDH8COclIiDBnn^DW0*V~e6-K4F&x>y^Jr+1@e(UiC; zwXYOfg5RSRdPE!tas9|bTlXy7t9xdl{#8^Ikqq_T>$=_9L<@Cb$($uUKcf{4>ZI`K zr7X~zT7Ac}K@4rUos|P{u(K)DOWW9;Zq{x%m*vBKE!%>^)NMo*7;0^%dd+^bx(wTC z{Q#Wv*E5OApY*zus!u#oxYtX)fSft<$9x$W)@T#DDaFrkK_89*P<-5XH2^r-ZvxKu zg!TnvDy9(iC1?JHa`8i3xRV|twky(2Jn4B7(;qjB}mUhksV zWxDOIMGN6Y6CVIIzMB23-KOUd$qvK5I71zk@ImDI!#F>65o~=P*i&KhWIyJ~0Z{F` z^LDo0*0tf`FX7RH-*@cMCRc!ezs{Zi@Qo7f*iY1%Faps!hsr;w7wL5#AbWa3Pd9;{ zqj0jngpx)wdo#x1N%36>^DdIi7;Hs)0RR9100000000000001hZGHhM53M+n26Dv! O0000-kZY5~X_+$27-AYgv=&$2m9ynJD2f7EOx>Q!7 z<7$4(6K(2ruKWQ2Ose&2=oQ&xVs-r|+rn+u;8vFzre2L0=tb<g0yZ`_I000000002+m^aw#vRE1WcLo3e002ovPDHLkV1oMzmmL5A diff --git a/tests_zemu/snapshots/x-pb_join_community_fund/00003.png b/tests_zemu/snapshots/x-pb_join_community_fund/00003.png deleted file mode 100644 index 1e4be69934787c368c2b5ed677cc7f5a2470be3b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 355 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|`hpba4!+nDh2#G+&c}K^PbX0`eJS}y70`%8T>n^%dV>bk>TM}C(cF@9*Jbj^5WTF;gKGIO)y zjlJ*9*PE9W@jdm~5r5wEu#TD8y6+Pnh8_O<-8#^Bx$bnOy3REWn^jXeAFev)TXe-F zTky7j?62N_lL@yzwx7O!=&4O1W7^|)7fcr%%i5*3D%0_G;tl)cpW3Io3*7!cdXW1o sV&B=e%knGs=l(tai5cc!1_ryAe9w9}zGZ%X&;TUp>FVdQ&MBb@086r+N&o-= diff --git a/tests_zemu/snapshots/x-pb_join_community_fund/00004.png b/tests_zemu/snapshots/x-pb_join_community_fund/00004.png deleted file mode 100644 index 4c3747edad754c34867ec5f1a66fbe0bb59f7edd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 472 zcmV;}0Vn>6P)NklWPJwn1du000000JxKn=m8widp~r1 zYwblNxzK0y0Pc*P_TM4;LVVLU?czl?jqeS za-k=ts|?>a`zHL-427hBC>;hri0MjB?_Ceh);Q%b+oFp?wjcdj^Ujyq2f1aN0Wz$e ze&3>_Km5Cyc|G*wo@hH?Mt^#xSCaFWEt4RodP_509F-CvPG7L$)ge1Ib1gx0b>lAV zNU|qDmh54>K6(S=o;Y+4004kxVroI|k7}{V`upz8clwD+5pMl*D0AuqCbd%ctl?44 zo*42wyDU$_kD?>R6I(^u{TZy&CDk=jB*6V`;q#r$4|CV0^`+@VOVDCTHvbeez{cW4 zbpCltlDLb21k4MQ+rb#QE06nT?fH@_etD1ZrC5UQj06Ax0001hg}wnoqe+{v@krbN O0000?e8vSM=g;SA}V#zI-#lF0K9Zv=MLCZ|(ZWwoe=N<(mOk zi*hL?OSnh56L15$6VUH{>i&PQCH_LArhGHNMs~X7W(j@6UQn=nGvH=OKrj*j08cSK z$O%1$y1})F$oswM)>`e)kz0iC6zeIsb(rixW;}s8Jd;^BhG;oxW00Ex3%wk<>f~Cw z-oDp2imgI&Ghi!bs3fn|(4UkK~VR5h**d^Lkm}$_%7Z?})El~+N8#`Nn z!sFhJBawRybwhNG>qU6lD7Xj%001DpME^j6B9#}h_KtqIwJ>h3t>4tfFH}2b5Za0u z|6FA^FKyuV!nf`n1Id1`qWeAwO#-K0000003P8NoS+x_OJ!Ml00000NkvXXu0mjf4g1N= diff --git a/tests_zemu/snapshots/x-pb_list_neurons/00001.png b/tests_zemu/snapshots/x-pb_list_neurons/00001.png deleted file mode 100644 index 5d2a4a1fff27fe94fdda726d9d92129be4051afa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 528 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|_uN>EaktG3V_}@4O=lJPw&x zXFvJp{zxx&fl^k^zX>j%?#`>rKW14!@4-pM zJ>P$N?77}3z5DWBCZ?ogmG9TT?$W<}ZiUguTD_I8ta6_&P1J9trWR&-tl zXWe(L2o8IuN3|VJ>!e$C?@F|OiC?H;^D^shmeu*3Lr$+|XrB}6o*&oB^lC}QL9Uw( zrlGaR?kYO^@kiiq^7f{uZG>A8wnrbV1@36D5{iYtF7%KE*#Qbh~t< zJwxHYZ9Yo>+kemZyejL@5xsT^_XDyT)JiL(k98%uU9Yh zi+;9!^ZCgq&*kmm{4Q47n)IT7>Sc3N+cO2-MXV)XuiX;5`qq1fZq1YErXLKE_X1bH zVm-OecZblu@Hw~d^+~2Is^?L?;_~01=iuB4t?!lyr5sDpZV?B?3OY!T-p{-Lp^fRr QtQR0DPgg&ebxsLQ01nFNDgXcg diff --git a/tests_zemu/snapshots/x-pb_list_neurons/00002.png b/tests_zemu/snapshots/x-pb_list_neurons/00002.png deleted file mode 100644 index 1e4be69934787c368c2b5ed677cc7f5a2470be3b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 355 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|`hpba4!+nDh2#G+&c}K^PbX0`eJS}y70`%8T>n^%dV>bk>TM}C(cF@9*Jbj^5WTF;gKGIO)y zjlJ*9*PE9W@jdm~5r5wEu#TD8y6+Pnh8_O<-8#^Bx$bnOy3REWn^jXeAFev)TXe-F zTky7j?62N_lL@yzwx7O!=&4O1W7^|)7fcr%%i5*3D%0_G;tl)cpW3Io3*7!cdXW1o sV&B=e%knGs=l(tai5cc!1_ryAe9w9}zGZ%X&;TUp>FVdQ&MBb@086r+N&o-= diff --git a/tests_zemu/snapshots/x-pb_list_neurons/00003.png b/tests_zemu/snapshots/x-pb_list_neurons/00003.png deleted file mode 100644 index 4c3747edad754c34867ec5f1a66fbe0bb59f7edd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 472 zcmV;}0Vn>6P)NklWPJwn1du000000JxKn=m8widp~r1 zYwblNxzK0y0Pc*P_TM4;LVVLU?czl?jqeS za-k=ts|?>a`zHL-427hBC>;hri0MjB?_Ceh);Q%b+oFp?wjcdj^Ujyq2f1aN0Wz$e ze&3>_Km5Cyc|G*wo@hH?Mt^#xSCaFWEt4RodP_509F-CvPG7L$)ge1Ib1gx0b>lAV zNU|qDmh54>K6(S=o;Y+4004kxVroI|k7}{V`upz8clwD+5pMl*D0AuqCbd%ctl?44 zo*42wyDU$_kD?>R6I(^u{TZy&CDk=jB*6V`;q#r$4|CV0^`+@VOVDCTHvbeez{cW4 zbpCltlDLb21k4MQ+rb#QE06nT?fH@_etD1ZrC5UQj06Ax0001hg}wnoqe+{v@krbN O0000?e8vSM=g;SA}V#zI-#lF0K9Zv=MLCZ|(ZWwoe=N<(mOk zi*hL?OSnh56L15$6VUH{>i&PQCH_LArhGHNMs~X7W(j@6UQn=nGvH=OKrj*j08cSK z$O%1$y1})F$oswM)>`e)kz0iC6zeIsb(rixW;}s8Jd;^BhG;oxW00Ex3%wk<>f~Cw z-oDp2imgI&Ghi!bs3fn|(4UkK~VR5h**d^Lkm}$_%7Z?})El~+N8#`Nn z!sFhJBawRybwhNG>qU6lD7Xj%001DpME^j6B9#}h_KtqIwJ>h3t>4tfFH}2b5Za0u z|6FA^FKyuV!nf`n1Id1`qWeAwO#-K0000003P8NoS+x_OJ!Ml00000NkvXXu0mjf4g1N= diff --git a/tests_zemu/snapshots/x-pb_register_vote/00001.png b/tests_zemu/snapshots/x-pb_register_vote/00001.png deleted file mode 100644 index b497a3604e4e1a04aae0d46ad9d76232a3a4c93d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 519 zcmV+i0{H!jP)m@rg`hX~-fzUQlTKo(EO#5n)}0N}VUYlRSkxZ=HEl+3)C z)hA?fNC=@EiTfsSVROtYAQCe!gy6kT7xTubWzzMsq*~W$D=#lr<}-5lMr096G)ldf zn_7b3)(SNuk4RjPy-?Oog==+FFXW$!iXs!!-D|flcQz3rPs}xENzIS7LW4RfM%21& zBAQx#$Fo5U?R1=#0}!=)Q^=QgV|O~N+;F<(r|-3F3!0{GBcgyQ+B?;A?Qd4yv*FWIf=l&B2j4X+2qwMbGR=+XtYw$%taLcb`Y9-@<4L&E!{ipr&q$#*br+Y7%WsS$|zf^7DRV{zo064Xc*EW0l zh55cdZVVpf<94A(>2xwDi6bW1c9pKFyfMd%(LO{YM02sZr$)kj^FNPnJSmPoV)mdAidWainAu_o0jGIsUa$)x+0Rrn0x*B%=i=TW?7G?#WJ>iYrJyS>EePp;Yn%SUZ-xYxO&Rk$1>>ewf&jq z59j7`n#&2_R=zs>!};v}drscJVz0RFkSq5tW1#20r*4$K<^A^J=0cXcIS;RuDf9L3 z*m@@TLa6xG>E;jPu9Rn%6mPnHp{ZxZ?rYhRI~c@0?5BKh*!nLt_x1g^@fIEB3$N{5 zmvv%EzFX(4FTH`yGha9v%eMINwkgGd{EP$=W|&VqevC!5K~fSV>gnp|vd$@?2>{`Y Bo|FIp diff --git a/tests_zemu/snapshots/x-pb_register_vote/00004.png b/tests_zemu/snapshots/x-pb_register_vote/00004.png deleted file mode 100644 index 0a0b3ec17d9644ba0068eff79abda4ef06a1373f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 300 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h5*QlC9t978JRyuInzb=ZK1;lP_s z_8Cx-sd vF7sOZD?W`k%&0YN6aV@pdw@QLf)9rOi~HAmE)z4*}Q$iB}sJ@3; diff --git a/tests_zemu/snapshots/x-pb_register_vote/00005.png b/tests_zemu/snapshots/x-pb_register_vote/00005.png deleted file mode 100644 index 1e4be69934787c368c2b5ed677cc7f5a2470be3b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 355 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|`hpba4!+nDh2#G+&c}K^PbX0`eJS}y70`%8T>n^%dV>bk>TM}C(cF@9*Jbj^5WTF;gKGIO)y zjlJ*9*PE9W@jdm~5r5wEu#TD8y6+Pnh8_O<-8#^Bx$bnOy3REWn^jXeAFev)TXe-F zTky7j?62N_lL@yzwx7O!=&4O1W7^|)7fcr%%i5*3D%0_G;tl)cpW3Io3*7!cdXW1o sV&B=e%knGs=l(tai5cc!1_ryAe9w9}zGZ%X&;TUp>FVdQ&MBb@086r+N&o-= diff --git a/tests_zemu/snapshots/x-pb_register_vote/00006.png b/tests_zemu/snapshots/x-pb_register_vote/00006.png deleted file mode 100644 index 4c3747edad754c34867ec5f1a66fbe0bb59f7edd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 472 zcmV;}0Vn>6P)NklWPJwn1du000000JxKn=m8widp~r1 zYwblNxzK0y0Pc*P_TM4;LVVLU?czl?jqeS za-k=ts|?>a`zHL-427hBC>;hri0MjB?_Ceh);Q%b+oFp?wjcdj^Ujyq2f1aN0Wz$e ze&3>_Km5Cyc|G*wo@hH?Mt^#xSCaFWEt4RodP_509F-CvPG7L$)ge1Ib1gx0b>lAV zNU|qDmh54>K6(S=o;Y+4004kxVroI|k7}{V`upz8clwD+5pMl*D0AuqCbd%ctl?44 zo*42wyDU$_kD?>R6I(^u{TZy&CDk=jB*6V`;q#r$4|CV0^`+@VOVDCTHvbeez{cW4 zbpCltlDLb21k4MQ+rb#QE06nT?fH@_etD1ZrC5UQj06Ax0001hg}wnoqe+{v@krbN O0000?e8vSM=g;SA}V#zI-#lF0K9Zv=MLCZ|(ZWwoe=N<(mOk zi*hL?OSnh56L15$6VUH{>i&PQCH_LArhGHNMs~X7W(j@6UQn=nGvH=OKrj*j08cSK z$O%1$y1})F$oswM)>`e)kz0iC6zeIsb(rixW;}s8Jd;^BhG;oxW00Ex3%wk<>f~Cw z-oDp2imgI&Ghi!bs3fn|(4UkK~VR5h**d^Lkm}$_%7Z?})El~+N8#`Nn z!sFhJBawRybwhNG>qU6lD7Xj%001DpME^j6B9#}h_KtqIwJ>h3t>4tfFH}2b5Za0u z|6FA^FKyuV!nf`n1Id1`qWeAwO#-K0000003P8NoS+x_OJ!Ml00000NkvXXu0mjf4g1N= diff --git a/tests_zemu/snapshots/x-pb_remove_hotkey/00001.png b/tests_zemu/snapshots/x-pb_remove_hotkey/00001.png deleted file mode 100644 index 0d62dfccadba89f35c16710b5bb45481624358e7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 517 zcmV+g0{Z=lP)YW_w$7}Q14 zqgJwsXlnNr-wk4Fr{j1|z{#$rkZ*0{blR*uaGLF>$8tM@rm4q>XfPD*O81=oX4Oo) zlm7&y_1m+E;!AixN!4#W(YQ8BzJWSx)Sq)RG59D8x~RnWA3lljUr%E@6G9NU+(kb zLF?8$;h{{c&QS}Cl0%CcpJ<9AgBP(A-%9jjwpHsiUG!=#wIF>G=nqA+NcDP#s_I^? zjAYPe#u9+MC||VHGLQ6#YV~>^|C5HQtC7L_*w)it)ljzzevzX)c9oOBJo1eK;CX)1 zT5~quXea|P)K#a*;&f2iqS?;cY}IIFTBA}v67*s{fwRt%4yEa2yzhqKYP|0ZF<1#% zXe9$D6N9PL?)CmQ^gR2X6g`YgrF(G&ka1OOIr`X`}h(?5-ZxwIU8XaF`U vN9%Duv;qJC000000000000000fD`!xWe}sSsQR3|00000NkvXXu0mjf86@5J diff --git a/tests_zemu/snapshots/x-pb_remove_hotkey/00003.png b/tests_zemu/snapshots/x-pb_remove_hotkey/00003.png deleted file mode 100644 index 54c6f66990f04b15f50d855c5a3142ad269ec292..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 885 zcmV-*1B(2KP)f*uATY=x#21VIo4K@bFw^W~!Dx~}?T z&bifx{Yq9lB+`|tT`hf3q;4r9JnF7N#Gsi(Pu(YRGvVvikC!6k zx~`maahlvoX-N=?rI8K8T4X*L+0plnaT(7QfV6@uz2*Qr=NGILX|FpAwglEKG9{iX zfE@zm?Tro}SwoJnTZnBp(%?A(4~LSFpjH@K#M%_3$FM&y@}#AFk;PLcAXTw^!}h`L zQRr*{Rh1TBL+^*z{hy|1;bZ8@%xtP3x(+@)0|Y@3EWlU|ovD^!5n?GVb6AOLiFf;K zU}irwR2|H=CUrir?YljO)`3>8<%L2-*lu?_DXEs8I6$PPfA`VEFZxeR6F=F;=N8IU zfu3m^yZ!N7p%FE7b&mQ!xT&^vNh1B4gC$B0R5JAU*Hefnw|vq=Sft8u}`)W{SdSB)Lm7rZC~#|XL#Kc z;`R)?4)d)w1vfr!za!3XLW@Q!CSXAP9}m`PJeq|9LT8X;4wm9Py!Gq2<`*k{H)W$E zF8cR}ui(MtW5cl%u%{MOY`5Nru|}4^VLDH%iLROe zp(@$xFE?V<)9jc{syN`A>wP9*sO0J5I$G2hXwjvva*Z?Rtg2b$Q6t}yG_~5gI|rSP z{!C8Ugl{y_*Lvy?f*=TXGE>Ez>4rrPv;LMW7Fr&t4-T_&0yMJo$dx-A_Qy~*3Y3k8 zn8l)=>|5)iWnwbGWkUkS$Iz=$p;b0&PBzwW{9O~H@2;9#!|6HwAGP)PCJlBPW`+#i z!#GF~7B-7Jk0z#eR$cdcrO`inoPCC~-h|WNn>U9Qo4ZiI8B{A+l(8RAXVb1e7n`#X znwZ%D*la@-PTuKzsf@ag;l1NyswFkXnf00000 LNkvXXu0mjff7GXh diff --git a/tests_zemu/snapshots/x-pb_remove_hotkey/00004.png b/tests_zemu/snapshots/x-pb_remove_hotkey/00004.png deleted file mode 100644 index fc58dfb670461f560b18b6d193d5d4a41b15dcbf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 477 zcmV<30V4j1P)GQ%){W${n|`<|~h2893u8#@O8004a5&v=LsLi(@w{;Ev% zk{q_F%5AN*sh=|OldMV_Co5A18Sy(D%6N0rvd)m~1ERm;q6*x#%`nGk~a zKDIdf8SxXBj9fOegx;Ao6ZMH=XIci7$~l!@x=MLrer2Dhg@y0h+_Vg+c7byGw02*X zLxZwyqq>XqZAco^2EaO1GxGA?8fUyrH^U`JuVa5UZ9p}?(G1&S09-PcKdNP_H<44O ze~eQ`E6cpmtRFwI6K938x((gg;EwvnJa~2b1HeEWI7s8Vx?fAuopMat*T@^AU7yGR;+t+hF~J_E|5Y5mpluQrOTw|)yDyfIkbn;r5c$Ta1ZgtMBy_b}C3)z_ldZn}4eHBqmxwab6wWdoMC ztkt0dP;bKy&1!Y-0Jz7D!J(eB3Z3YtlNke3bT0q^0000000000000000AS`H^YK+Y T<#lt%00000NkvXXu0mjfq1)f7 diff --git a/tests_zemu/snapshots/x-pb_remove_hotkey/00005.png b/tests_zemu/snapshots/x-pb_remove_hotkey/00005.png deleted file mode 100644 index 1e4be69934787c368c2b5ed677cc7f5a2470be3b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 355 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|`hpba4!+nDh2#G+&c}K^PbX0`eJS}y70`%8T>n^%dV>bk>TM}C(cF@9*Jbj^5WTF;gKGIO)y zjlJ*9*PE9W@jdm~5r5wEu#TD8y6+Pnh8_O<-8#^Bx$bnOy3REWn^jXeAFev)TXe-F zTky7j?62N_lL@yzwx7O!=&4O1W7^|)7fcr%%i5*3D%0_G;tl)cpW3Io3*7!cdXW1o sV&B=e%knGs=l(tai5cc!1_ryAe9w9}zGZ%X&;TUp>FVdQ&MBb@086r+N&o-= diff --git a/tests_zemu/snapshots/x-pb_remove_hotkey/00006.png b/tests_zemu/snapshots/x-pb_remove_hotkey/00006.png deleted file mode 100644 index 4c3747edad754c34867ec5f1a66fbe0bb59f7edd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 472 zcmV;}0Vn>6P)NklWPJwn1du000000JxKn=m8widp~r1 zYwblNxzK0y0Pc*P_TM4;LVVLU?czl?jqeS za-k=ts|?>a`zHL-427hBC>;hri0MjB?_Ceh);Q%b+oFp?wjcdj^Ujyq2f1aN0Wz$e ze&3>_Km5Cyc|G*wo@hH?Mt^#xSCaFWEt4RodP_509F-CvPG7L$)ge1Ib1gx0b>lAV zNU|qDmh54>K6(S=o;Y+4004kxVroI|k7}{V`upz8clwD+5pMl*D0AuqCbd%ctl?44 zo*42wyDU$_kD?>R6I(^u{TZy&CDk=jB*6V`;q#r$4|CV0^`+@VOVDCTHvbeez{cW4 zbpCltlDLb21k4MQ+rb#QE06nT?fH@_etD1ZrC5UQj06Ax0001hg}wnoqe+{v@krbN O0000?e8vSM=g;SA}V#zI-#lF0K9Zv=MLCZ|(ZWwoe=N<(mOk zi*hL?OSnh56L15$6VUH{>i&PQCH_LArhGHNMs~X7W(j@6UQn=nGvH=OKrj*j08cSK z$O%1$y1})F$oswM)>`e)kz0iC6zeIsb(rixW;}s8Jd;^BhG;oxW00Ex3%wk<>f~Cw z-oDp2imgI&Ghi!bs3fn|(4UkK~VR5h**d^Lkm}$_%7Z?})El~+N8#`Nn z!sFhJBawRybwhNG>qU6lD7Xj%001DpME^j6B9#}h_KtqIwJ>h3t>4tfFH}2b5Za0u z|6FA^FKyuV!nf`n1Id1`qWeAwO#-K0000003P8NoS+x_OJ!Ml00000NkvXXu0mjf4g1N= diff --git a/tests_zemu/snapshots/x-pb_sign_update_call/00001.png b/tests_zemu/snapshots/x-pb_sign_update_call/00001.png deleted file mode 100644 index 76706da37adeb20b7c40085af6b9e1e396f8b72a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 478 zcmV<40U`d0P)vDQu+%s4-) zJB(x#=Uh4ypF4nqx6{1?Jh9@ObJp5$F}@kKOt_wwRO=dT=f%a+@wD__XjwERZc6RT z3~j;h-U>Nl9G!X76ypDiiee;Pz2~}4Gn;539+)YvlANF33I*z-Xpsxq zKx=CC70(7SwZrYqoB*#JO(EXeh3vFhnsBP+hx?kAf`+MSL=@<1?Mn4n`OT_2>_+n^ zAgte(MdbdN|Cv;M;)%k!Ug8bZ7^C(vR|keU(ts`s@%a?=a!i2Yb-$|tyw%`Y&_wF_ zOm7S62|?kk=HltiqfB|RE1X`a?~b!h5vG`b6mebk#8eb3yZIVFKLH|vgg*;s+9sc5 zKF;9@P>&5Z1oZlYXO{Cjz~sN-EbVc17mc3(OZesqO74I~pD%LKRFL~{C^R0~`(pP= zIF<0;e6c)3HpoPO8zt04e>3LbB(l&+l^`<*OA%fG000000000000000003Z_U!k^P UV?n+a07*qoM6N<$g1^JsApigX diff --git a/tests_zemu/snapshots/x-pb_sign_update_call/00002.png b/tests_zemu/snapshots/x-pb_sign_update_call/00002.png deleted file mode 100644 index 41e9e067b3b5aacd8213a061715d29c83e4cd1f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 920 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 diff --git a/tests_zemu/snapshots/x-pb_sign_update_call/00007.png b/tests_zemu/snapshots/x-pb_sign_update_call/00007.png deleted file mode 100644 index afeeff26bbe1f963525017037bfc25496a27298a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 415 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|>x1ba4!+nDh2VU{Q+#PebCZ zm%cmxPu$}zKf}nxq2q+pt-t%#)wLx!o3c58nhuo7A2we1+Kb)rSlkf}(>=Gd4wbYm zntUZ@$z1F62aST*bi@D8I+uT_Z6Sa6DV<|iE>-pfZrOC@fg58`d1>0I9*y(ok3VHO zDQKAPdgqdhit(Indmp6DKfk-f-l@LHB!7L)vEJ|YIg^?#ml~}$I++$QC*O1B@|{*! z#dI9cW-pQ4m3uL~Bi)H}-L4C|*O*MiCx58kq_bycc*eRAZuR3a;oqkz{1*7F*|RT5 z_InBc3FkXC2c~wk*5+TB>UnMVUJtt!pWQM;)#YtMfAvfDy>FAdclR^Xno}$c4ZTys zJAN(S$+2t7dzP>M-{?-0swL_v9Y+E|7?)tDnm{r-UW|wn2MB diff --git a/tests_zemu/snapshots/x-pb_sign_update_call/00009.png b/tests_zemu/snapshots/x-pb_sign_update_call/00009.png deleted file mode 100644 index 1e4be69934787c368c2b5ed677cc7f5a2470be3b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 355 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|`hpba4!+nDh2#G+&c}K^PbX0`eJS}y70`%8T>n^%dV>bk>TM}C(cF@9*Jbj^5WTF;gKGIO)y zjlJ*9*PE9W@jdm~5r5wEu#TD8y6+Pnh8_O<-8#^Bx$bnOy3REWn^jXeAFev)TXe-F zTky7j?62N_lL@yzwx7O!=&4O1W7^|)7fcr%%i5*3D%0_G;tl)cpW3Io3*7!cdXW1o sV&B=e%knGs=l(tai5cc!1_ryAe9w9}zGZ%X&;TUp>FVdQ&MBb@086r+N&o-= diff --git a/tests_zemu/snapshots/x-pb_sign_update_call/00010.png b/tests_zemu/snapshots/x-pb_sign_update_call/00010.png deleted file mode 100644 index 4c3747edad754c34867ec5f1a66fbe0bb59f7edd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 472 zcmV;}0Vn>6P)NklWPJwn1du000000JxKn=m8widp~r1 zYwblNxzK0y0Pc*P_TM4;LVVLU?czl?jqeS za-k=ts|?>a`zHL-427hBC>;hri0MjB?_Ceh);Q%b+oFp?wjcdj^Ujyq2f1aN0Wz$e ze&3>_Km5Cyc|G*wo@hH?Mt^#xSCaFWEt4RodP_509F-CvPG7L$)ge1Ib1gx0b>lAV zNU|qDmh54>K6(S=o;Y+4004kxVroI|k7}{V`upz8clwD+5pMl*D0AuqCbd%ctl?44 zo*42wyDU$_kD?>R6I(^u{TZy&CDk=jB*6V`;q#r$4|CV0^`+@VOVDCTHvbeez{cW4 zbpCltlDLb21k4MQ+rb#QE06nT?fH@_etD1ZrC5UQj06Ax0001hg}wnoqe+{v@krbN O0000?e8vSM=g;SA}V#zI-#lF0K9Zv=MLCZ|(ZWwoe=N<(mOk zi*hL?OSnh56L15$6VUH{>i&PQCH_LArhGHNMs~X7W(j@6UQn=nGvH=OKrj*j08cSK z$O%1$y1})F$oswM)>`e)kz0iC6zeIsb(rixW;}s8Jd;^BhG;oxW00Ex3%wk<>f~Cw z-oDp2imgI&Ghi!bs3fn|(4UkK~VR5h**d^Lkm}$_%7Z?})El~+N8#`Nn z!sFhJBawRybwhNG>qU6lD7Xj%001DpME^j6B9#}h_KtqIwJ>h3t>4tfFH}2b5Za0u z|6FA^FKyuV!nf`n1Id1`qWeAwO#-K0000003P8NoS+x_OJ!Ml00000NkvXXu0mjf4g1N= diff --git a/tests_zemu/snapshots/x-pb_spawn_neuron/00001.png b/tests_zemu/snapshots/x-pb_spawn_neuron/00001.png deleted file mode 100644 index 827476c4b6f6e1b702955ce1c8da81e4e987a0ed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 510 zcmVqivIUxW5007&4^%jURs+8k6CUs`q z*{dh?WRn=99f|jL;KtkOUI8aH<6?}*aim0fGj5)gZgaY2gSYZzHrt<;)(bVOs?<%n zZH1vF_}yC|NA=^R($6T^vMF<}Y>I;XuPUf|($#vdX}hzj8f3>pahBx#^cE;^Cq;`~ z$OdY2i?4V#sG%LMXXXH$%F$Hh(k|>yo7oMgnt!;hX38BTg6D5XtG1w)1H}!ep3mPg9`q$Fr*LjhZ>eET z?^e+(;QG%O_90eHoJjrdSbm~bi%;)fCA^EK&+BI8QrT#%3ljsNI00E2BL=|QJqD0& z*oBZ(g3K5!MR)-K0000000000000000DxtF0iD6R9iBezbN~PV07*qoM6N<$f?Ub) A>;M1& diff --git a/tests_zemu/snapshots/x-pb_spawn_neuron/00002.png b/tests_zemu/snapshots/x-pb_spawn_neuron/00002.png deleted file mode 100644 index 16c4d7baf3e070e563b8b29d13b5c5fdf4ecaa48..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 502 zcmVc^oNMX9XQxOuXXTP~t*nh(agr%*bOyu@)y%~7 zzjyhhIL5nKGXTZTia(S|;2J8~*f@s_T9$(D>_2DcT9$&cj(*(la>cWTaHDHL%u6y0 z)wB7OJKDI@v&Ihq0N_xKYN)(3%a+LM&9k+N+euf~Y)!L7)2#RClyP>u*1szl$Pk-t zG-ZS0l6nl9t<7p&ZzJPu)4 zM@RZxwDvkNm^1SMXx1H@w}6^9BjonwE;Q->S)7B%(iow$-X$ICwv*|7Glj0E_l+?I zE0Kj(YIHJV@K&;Wt-lSO;_jx??NPt_aHoHXmD%XCl<#z23hI5CgUPzyvFwi&v={@h s*m>6gr+6t300000000000002+2dsgxHy!gNPyhe`07*qoM6N<$f)Lp8JOBUy diff --git a/tests_zemu/snapshots/x-pb_spawn_neuron/00003.png b/tests_zemu/snapshots/x-pb_spawn_neuron/00003.png deleted file mode 100644 index 344a1feaecdd5c33645b9c55ae68a94fcc5efd73..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 363 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|=-zba4!+nDh2#G~Xcwf!0Km zcPZcYt9*OJT0*%Sq|&-{aukNc=C5< z)cGA3AN_gBzy5(G(<}R!Cw5o8YXZ(&SI_ln(}~ANin&%PTZo-nS0#2b_GW2= zpSWkC!I?!T>+OD&Mftz?0y?Fk?PYZGMx%qjpW5eoUM}~1zCl{w)nvN;<%7%D#qM6Y ze9Eu7be5PEJ1-TiUr_z-BBSR%W8ry5hb{6?ERbQW-tLlf<^1iW^Ov4)`ZoK>@1Drg z!n+eZ@B1icT{3r*uSgR6WWqVqZimQ6P*5R*=|7o*o$rg^_?njo683cUb6Mw<&;$VS CEu3Ni diff --git a/tests_zemu/snapshots/x-pb_spawn_neuron/00004.png b/tests_zemu/snapshots/x-pb_spawn_neuron/00004.png deleted file mode 100644 index 1e4be69934787c368c2b5ed677cc7f5a2470be3b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 355 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|`hpba4!+nDh2#G+&c}K^PbX0`eJS}y70`%8T>n^%dV>bk>TM}C(cF@9*Jbj^5WTF;gKGIO)y zjlJ*9*PE9W@jdm~5r5wEu#TD8y6+Pnh8_O<-8#^Bx$bnOy3REWn^jXeAFev)TXe-F zTky7j?62N_lL@yzwx7O!=&4O1W7^|)7fcr%%i5*3D%0_G;tl)cpW3Io3*7!cdXW1o sV&B=e%knGs=l(tai5cc!1_ryAe9w9}zGZ%X&;TUp>FVdQ&MBb@086r+N&o-= diff --git a/tests_zemu/snapshots/x-pb_spawn_neuron/00005.png b/tests_zemu/snapshots/x-pb_spawn_neuron/00005.png deleted file mode 100644 index 4c3747edad754c34867ec5f1a66fbe0bb59f7edd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 472 zcmV;}0Vn>6P)NklWPJwn1du000000JxKn=m8widp~r1 zYwblNxzK0y0Pc*P_TM4;LVVLU?czl?jqeS za-k=ts|?>a`zHL-427hBC>;hri0MjB?_Ceh);Q%b+oFp?wjcdj^Ujyq2f1aN0Wz$e ze&3>_Km5Cyc|G*wo@hH?Mt^#xSCaFWEt4RodP_509F-CvPG7L$)ge1Ib1gx0b>lAV zNU|qDmh54>K6(S=o;Y+4004kxVroI|k7}{V`upz8clwD+5pMl*D0AuqCbd%ctl?44 zo*42wyDU$_kD?>R6I(^u{TZy&CDk=jB*6V`;q#r$4|CV0^`+@VOVDCTHvbeez{cW4 zbpCltlDLb21k4MQ+rb#QE06nT?fH@_etD1ZrC5UQj06Ax0001hg}wnoqe+{v@krbN O0000?e8vSM=g;SA}V#zI-#lF0K9Zv=MLCZ|(ZWwoe=N<(mOk zi*hL?OSnh56L15$6VUH{>i&PQCH_LArhGHNMs~X7W(j@6UQn=nGvH=OKrj*j08cSK z$O%1$y1})F$oswM)>`e)kz0iC6zeIsb(rixW;}s8Jd;^BhG;oxW00Ex3%wk<>f~Cw z-oDp2imgI&Ghi!bs3fn|(4UkK~VR5h**d^Lkm}$_%7Z?})El~+N8#`Nn z!sFhJBawRybwhNG>qU6lD7Xj%001DpME^j6B9#}h_KtqIwJ>h3t>4tfFH}2b5Za0u z|6FA^FKyuV!nf`n1Id1`qWeAwO#-K0000003P8NoS+x_OJ!Ml00000NkvXXu0mjf4g1N= diff --git a/tests_zemu/snapshots/x-pb_stake_neuron/00001.png b/tests_zemu/snapshots/x-pb_stake_neuron/00001.png deleted file mode 100644 index efc4171b9bdb8f1cbd6520a4a00b11aba5271c61..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 505 zcmVLOAaO33+uYgF*xDbN(J{`<2MlF+$mnGG@PFs0-v9dosts7?+rxF*X zw&kXl;P+^S8qtqP9FI{b>!!lBx+x0zzoMe($x!RHrpuj8oFVU+GiOQ7&u9gMIw^Y8 zLN;+Wwfc^GgBaTB^Q;_z$d0CvFKuIYI;`Aqn&qe4TDApEQ@0UOVCZaDs^{z{t7f-5 ztsj6ie|siT_~ZWXr0N|{6t1PDVxGNG^Oxy}n&&A~8X_mEmJzL7%yB+~`Yxju z%YUfzy0)0g0>+Q#!JY!kZCn9%N}x6vYQEQKVzkQBY~O;6%%b`QMg(+X`M+z&c-))t zL@M}QQ(llOVBzNr_5L~iwZQ0=C}!VLr(0Q~5#Co%rMIXCndl#*gqr9d#u(g*UFc4Y vATtJA5nccQ0000000000000000AQP68;7^=0)UOY00000NkvXXu0mjfW>M){ diff --git a/tests_zemu/snapshots/x-pb_stake_neuron/00002.png b/tests_zemu/snapshots/x-pb_stake_neuron/00002.png deleted file mode 100644 index 41e9e067b3b5aacd8213a061715d29c83e4cd1f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 920 zcmV;J184k+P)J15 z-Ax!Uo`*D#G{Z?wO+jAe19xl8;%h1QOp@lHNk@`LVFX;k+^?Ut>1>eOlfUCW&IyQG9_tyRc}GN^?Zj*Mu7N4wK2>IcBNga z&vTItvH{lA=w+?6a+(r6#OFryReOJ902g5`)3hfw63Gx%@Dqml*W)^w-oFjQ)%5<& zunnGsv(S?yPG%ci$_DqE2Xvk2<%v^Ly=i(XaE?g?1|aEam9J&4N%~5kX4g&$prVo} zGX>WO>h-wkqr7>KEI#{~HAD`H@fiv!9t3Mm`_1ZHjvmWte+))I>8E(*i8alLM?hL+ z`v_RPnAO!?*GFPC{e2yLx&Hm>DAP&izam{B>m!7OR{N zB?bXYk06j42r(7uf_PXowT%!$2qA=Q0s2dM1aISP9(K%IH#!7_T)T_&1d4F`Te!_N zB|i`s@;2IWASDj+EWAQY!ey=*jE81h^&sX28qK4MmtF-N6AP-nzI^9Vzt8}Ey1%Cr zz08Q%*Mk=cFsG5gS%GRXDS4rY@d`X?$4X-sN5C>df_DWoRl4>^rd8%XCptu|8aJ%g z0Ks>ariO@4N8H`~z6nnKrfO5{E_85yHYVoO7qN8G(8gWOr`;$`sr|E#lgpGY4hqy0 u*ZF;(u1*j}Ed_cXSP{ZpBoYAxHhpSzk(VmVlJ;*O7eW ztVDm%cDPHdGvI2sVk*|7p*8N4jeu^+$hLITIrFw5X#-38MXto;+LXq(23+ko#B??S zq@mX29d}FA*XMfnxv~osHEzOSvdBij4kj|@{e1hv_&L$b|pZ>L0E%IcFok=Gwz&Z|Fo!uj+;p-WC(XyoLpEf2rT!!Ie zXz~lMS`mLg(y2~=Pw`{TJwOI>c-8ER#+F(&IplSAw_;fqwG!hIr5CAL%4Asc0c6=Z zjAg4>ohc+Z873@%`|{3a;IDvWZ9}r_CTvx&d=v9!oKV$P7FNHXEJt^2t?9p({unwM zyoa44+fGL&c?9%TSvos;IlIhJSk*cAhfLsJsz^6rIvMZZhT>|xe=~f8Cm{(|=*&K$S5?fe!b>B-~VDq`>U ziDmcYOp*M4x5XwxrYhIvHrL9sPEb>x)Sk0zuG`0t8Cw+Yd1XGy4EZ)Kr20wdD%q=7 zZ2Dt)*Q-0+)&I134V#v)*3sp$Cr)49wrlR}Gw!J#_60hQ2cIlD!?!;A?WSF&Z=;*o z(mpK96Fu{kbHY-~-SJC@$WW(7{&F8lE&iuKLJL~De{SDVS#`mqhQHsXiV+wJ$iO^)ed8PXeO||p Pfx1ba4!+nDh2VU{Q+#PebCZ zm%cmxPu$}zKf}nxq2q+pt-t%#)wLx!o3c58nhuo7A2we1+Kb)rSlkf}(>=Gd4wbYm zntUZ@$z1F62aST*bi@D8I+uT_Z6Sa6DV<|iE>-pfZrOC@fg58`d1>0I9*y(ok3VHO zDQKAPdgqdhit(Indmp6DKfk-f-l@LHB!7L)vEJ|YIg^?#ml~}$I++$QC*O1B@|{*! z#dI9cW-pQ4m3uL~Bi)H}-L4C|*O*MiCx58kq_bycc*eRAZuR3a;oqkz{1*7F*|RT5 z_InBc3FkXC2c~wk*5+TB>UnMVUJtt!pWQM;)#YtMfAvfDy>FAdclR^Xno}$c4ZTys zJAN(S$+2t7dzP>M-d?ubA#9jhz0=gCcjmd)kN<+Q-Mqh5u}+XKxezujhe^LP@b>AeEBv^t zI=jDbH#zYCI`7*h`ITqxtjOxW7c!&O*eciE|MnK~x3f3uHSD_AKWF0a^{UHK-$@^> ztAE_n%(e5^>KC!5lYPGBFJ3b1&HWy!IY;zLE-9S6lAwKw8yI59Am=mp)Z#gpw%AQw P3=;Nq^>bP0l+XkKUD?3& diff --git a/tests_zemu/snapshots/x-pb_stake_neuron/00007.png b/tests_zemu/snapshots/x-pb_stake_neuron/00007.png deleted file mode 100644 index 1e4be69934787c368c2b5ed677cc7f5a2470be3b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 355 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|`hpba4!+nDh2#G+&c}K^PbX0`eJS}y70`%8T>n^%dV>bk>TM}C(cF@9*Jbj^5WTF;gKGIO)y zjlJ*9*PE9W@jdm~5r5wEu#TD8y6+Pnh8_O<-8#^Bx$bnOy3REWn^jXeAFev)TXe-F zTky7j?62N_lL@yzwx7O!=&4O1W7^|)7fcr%%i5*3D%0_G;tl)cpW3Io3*7!cdXW1o sV&B=e%knGs=l(tai5cc!1_ryAe9w9}zGZ%X&;TUp>FVdQ&MBb@086r+N&o-= diff --git a/tests_zemu/snapshots/x-pb_stake_neuron/00008.png b/tests_zemu/snapshots/x-pb_stake_neuron/00008.png deleted file mode 100644 index 4c3747edad754c34867ec5f1a66fbe0bb59f7edd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 472 zcmV;}0Vn>6P)NklWPJwn1du000000JxKn=m8widp~r1 zYwblNxzK0y0Pc*P_TM4;LVVLU?czl?jqeS za-k=ts|?>a`zHL-427hBC>;hri0MjB?_Ceh);Q%b+oFp?wjcdj^Ujyq2f1aN0Wz$e ze&3>_Km5Cyc|G*wo@hH?Mt^#xSCaFWEt4RodP_509F-CvPG7L$)ge1Ib1gx0b>lAV zNU|qDmh54>K6(S=o;Y+4004kxVroI|k7}{V`upz8clwD+5pMl*D0AuqCbd%ctl?44 zo*42wyDU$_kD?>R6I(^u{TZy&CDk=jB*6V`;q#r$4|CV0^`+@VOVDCTHvbeez{cW4 zbpCltlDLb21k4MQ+rb#QE06nT?fH@_etD1ZrC5UQj06Ax0001hg}wnoqe+{v@krbN O0000?e8vSM=g;SA}V#zI-#lF0K9Zv=MLCZ|(ZWwoe=N<(mOk zi*hL?OSnh56L15$6VUH{>i&PQCH_LArhGHNMs~X7W(j@6UQn=nGvH=OKrj*j08cSK z$O%1$y1})F$oswM)>`e)kz0iC6zeIsb(rixW;}s8Jd;^BhG;oxW00Ex3%wk<>f~Cw z-oDp2imgI&Ghi!bs3fn|(4UkK~VR5h**d^Lkm}$_%7Z?})El~+N8#`Nn z!sFhJBawRybwhNG>qU6lD7Xj%001DpME^j6B9#}h_KtqIwJ>h3t>4tfFH}2b5Za0u z|6FA^FKyuV!nf`n1Id1`qWeAwO#-K0000003P8NoS+x_OJ!Ml00000NkvXXu0mjf4g1N= diff --git a/tests_zemu/snapshots/x-pb_start_dissolve/00001.png b/tests_zemu/snapshots/x-pb_start_dissolve/00001.png deleted file mode 100644 index df8203cb4695a5de348a3f264a2f32f76f9da76d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 544 zcmV+*0^j|KP)dMfPMuko zdi8{!+$6?W--*B5ffruR^bAPEh>I~^*Od>J7o(QR$Lo@6-Js39vRK`pk=7fLMJRDm zYFlAx3VzO3u!w#n;&{qJT{joD>gFtzXGKNPld0CNrt6hWL?}BJnxn+>HCv%U9TX$1 zlr2P4tDkr_h+DfH$MXgx?Q9C=)NZU!H>($%Zu#Z5+?Jqa>M|kUAfd+Fl-sf(|;G<6Hp%lM<33_wf0L9yVR|9xgi+e#9 zb+ctZnuxjcaoebS=$rXIJG%&K$@)cbtz+&%9QkiWWMV(7z3~}l-aYbAwRSHW+oB>u z`LhnIhEfAQg8K2I7OT%r%>Xq*`)8wWJ8ZYnP5!%~)<8Zq_tmj{qM<`h?FCt#eFZ~KYR(-515gAkcv$u)O`SjdI{Qm!%KgNH6a*J-I1o%=b_c2_<0%s zgIu;Bt&`rTy`nvb;|sA_m+UwAevv5E$$nQXxI`N`gfm!$Ua6C0?!i%{7XSbN00000 i0000000000IOZGgOWPdgh|1jn0000I zXY(#kw87|E@dE$=063IJH8goLleL;;aNL=#&m<@I>d9(&ptjOeFDsQEluhN3%VhS= zK3f3DmKJ2sgGQ-nQP*%+ZM{c-wPt@z?L|xjp?mwvo$;Deza5YLg zl9IB8%H1l}_O+|GGO!retSSeUrNmu1v6IHzbYJVY1CZUj;=F9prwM}`Q_;{@t@3KO ztXNmTxYa#EgGFt9=ZKHqvXTa%mlI`v*Yq^E4ds|Y*iARwd)9wRhf;Jh-k(Os)p&n0 z#9$?4p_Me8Obmu1-8=i+Pz%O_C795ZPUYbJ+32&B|H*b=#u@2VUY*9^PbX0`eJS}y70`%8T>n^%dV>bk>TM}C(cF@9*Jbj^5WTF;gKGIO)y zjlJ*9*PE9W@jdm~5r5wEu#TD8y6+Pnh8_O<-8#^Bx$bnOy3REWn^jXeAFev)TXe-F zTky7j?62N_lL@yzwx7O!=&4O1W7^|)7fcr%%i5*3D%0_G;tl)cpW3Io3*7!cdXW1o sV&B=e%knGs=l(tai5cc!1_ryAe9w9}zGZ%X&;TUp>FVdQ&MBb@086r+N&o-= diff --git a/tests_zemu/snapshots/x-pb_start_dissolve/00004.png b/tests_zemu/snapshots/x-pb_start_dissolve/00004.png deleted file mode 100644 index 4c3747edad754c34867ec5f1a66fbe0bb59f7edd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 472 zcmV;}0Vn>6P)NklWPJwn1du000000JxKn=m8widp~r1 zYwblNxzK0y0Pc*P_TM4;LVVLU?czl?jqeS za-k=ts|?>a`zHL-427hBC>;hri0MjB?_Ceh);Q%b+oFp?wjcdj^Ujyq2f1aN0Wz$e ze&3>_Km5Cyc|G*wo@hH?Mt^#xSCaFWEt4RodP_509F-CvPG7L$)ge1Ib1gx0b>lAV zNU|qDmh54>K6(S=o;Y+4004kxVroI|k7}{V`upz8clwD+5pMl*D0AuqCbd%ctl?44 zo*42wyDU$_kD?>R6I(^u{TZy&CDk=jB*6V`;q#r$4|CV0^`+@VOVDCTHvbeez{cW4 zbpCltlDLb21k4MQ+rb#QE06nT?fH@_etD1ZrC5UQj06Ax0001hg}wnoqe+{v@krbN O0000?e8vSM=g;SA}V#zI-#lF0K9Zv=MLCZ|(ZWwoe=N<(mOk zi*hL?OSnh56L15$6VUH{>i&PQCH_LArhGHNMs~X7W(j@6UQn=nGvH=OKrj*j08cSK z$O%1$y1})F$oswM)>`e)kz0iC6zeIsb(rixW;}s8Jd;^BhG;oxW00Ex3%wk<>f~Cw z-oDp2imgI&Ghi!bs3fn|(4UkK~VR5h**d^Lkm}$_%7Z?})El~+N8#`Nn z!sFhJBawRybwhNG>qU6lD7Xj%001DpME^j6B9#}h_KtqIwJ>h3t>4tfFH}2b5Za0u z|6FA^FKyuV!nf`n1Id1`qWeAwO#-K0000003P8NoS+x_OJ!Ml00000NkvXXu0mjf4g1N= diff --git a/tests_zemu/snapshots/x-pb_stop_dissolve/00001.png b/tests_zemu/snapshots/x-pb_stop_dissolve/00001.png deleted file mode 100644 index 4c841e1dbb71a5e4b0b61572f08a61d2d68a992f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 546 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|@Xd>EaktG3V{f$VtqK91e4@ z+*$IzUgf=!e3%ZqVEJUfd%s_~PH=NsI+q!!hr!~U|N4gSaW*^GWluDG%(D94!AZ^) z?>|r6v7S-?&zyIX0s?~1_wHY(ZRca}mMc8}xo&9W^0RxkMCSQ>zi&%h=v6c2)^zDv zP5p6=LWlYqD&+P|IDPDx>dhCeU)BnUOe^^s_sZ&gj+1lN4CBR1j^wXzXp|Dsof2cV zz*qGCMzfBEvez~jF)(d2XMK6aY}4h$Pc6Z@_IIvt5;5tS<>u0?muvh;^V_*qS!K$v z*%glEdkg$je^;*-8g6rO#}#j@Myc8>dBs-^BAnk{@YSoU<@!}5!O*(iI-L2ycB2Sx zt%YLI&$e>THExe~F1tMQr_AKgmQ{yTcONLfy>`96tIMaVX;Djh-rioU-BlLgeXcRPoNIs`vave|igew&com4DXWIuO_5ZOdo8 ze(j@spEI zXY(#kw87|E@dE$=063IJH8goLleL;;aNL=#&m<@I>d9(&ptjOeFDsQEluhN3%VhS= zK3f3DmKJ2sgGQ-nQP*%+ZM{c-wPt@z?L|xjp?mwvo$;Deza5YLg zl9IB8%H1l}_O+|GGO!retSSeUrNmu1v6IHzbYJVY1CZUj;=F9prwM}`Q_;{@t@3KO ztXNmTxYa#EgGFt9=ZKHqvXTa%mlI`v*Yq^E4ds|Y*iARwd)9wRhf;Jh-k(Os)p&n0 z#9$?4p_Me8Obmu1-8=i+Pz%O_C795ZPUYbJ+32&B|H*b=#u@2VUY*9^PbX0`eJS}y70`%8T>n^%dV>bk>TM}C(cF@9*Jbj^5WTF;gKGIO)y zjlJ*9*PE9W@jdm~5r5wEu#TD8y6+Pnh8_O<-8#^Bx$bnOy3REWn^jXeAFev)TXe-F zTky7j?62N_lL@yzwx7O!=&4O1W7^|)7fcr%%i5*3D%0_G;tl)cpW3Io3*7!cdXW1o sV&B=e%knGs=l(tai5cc!1_ryAe9w9}zGZ%X&;TUp>FVdQ&MBb@086r+N&o-= diff --git a/tests_zemu/snapshots/x-pb_stop_dissolve/00004.png b/tests_zemu/snapshots/x-pb_stop_dissolve/00004.png deleted file mode 100644 index 4c3747edad754c34867ec5f1a66fbe0bb59f7edd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 472 zcmV;}0Vn>6P)NklWPJwn1du000000JxKn=m8widp~r1 zYwblNxzK0y0Pc*P_TM4;LVVLU?czl?jqeS za-k=ts|?>a`zHL-427hBC>;hri0MjB?_Ceh);Q%b+oFp?wjcdj^Ujyq2f1aN0Wz$e ze&3>_Km5Cyc|G*wo@hH?Mt^#xSCaFWEt4RodP_509F-CvPG7L$)ge1Ib1gx0b>lAV zNU|qDmh54>K6(S=o;Y+4004kxVroI|k7}{V`upz8clwD+5pMl*D0AuqCbd%ctl?44 zo*42wyDU$_kD?>R6I(^u{TZy&CDk=jB*6V`;q#r$4|CV0^`+@VOVDCTHvbeez{cW4 zbpCltlDLb21k4MQ+rb#QE06nT?fH@_etD1ZrC5UQj06Ax0001hg}wnoqe+{v@krbN O0000?e8vSM=g;SA}V#zI-#lF0K9Zv=MLCZ|(ZWwoe=N<(mOk zi*hL?OSnh56L15$6VUH{>i&PQCH_LArhGHNMs~X7W(j@6UQn=nGvH=OKrj*j08cSK z$O%1$y1})F$oswM)>`e)kz0iC6zeIsb(rixW;}s8Jd;^BhG;oxW00Ex3%wk<>f~Cw z-oDp2imgI&Ghi!bs3fn|(4UkK~VR5h**d^Lkm}$_%7Z?})El~+N8#`Nn z!sFhJBawRybwhNG>qU6lD7Xj%001DpME^j6B9#}h_KtqIwJ>h3t>4tfFH}2b5Za0u z|6FA^FKyuV!nf`n1Id1`qWeAwO#-K0000003P8NoS+x_OJ!Ml00000NkvXXu0mjf4g1N= diff --git a/tests_zemu/snapshots/x-sign_basic_expert/00001.png b/tests_zemu/snapshots/x-sign_basic_expert/00001.png deleted file mode 100644 index 76706da37adeb20b7c40085af6b9e1e396f8b72a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 478 zcmV<40U`d0P)vDQu+%s4-) zJB(x#=Uh4ypF4nqx6{1?Jh9@ObJp5$F}@kKOt_wwRO=dT=f%a+@wD__XjwERZc6RT z3~j;h-U>Nl9G!X76ypDiiee;Pz2~}4Gn;539+)YvlANF33I*z-Xpsxq zKx=CC70(7SwZrYqoB*#JO(EXeh3vFhnsBP+hx?kAf`+MSL=@<1?Mn4n`OT_2>_+n^ zAgte(MdbdN|Cv;M;)%k!Ug8bZ7^C(vR|keU(ts`s@%a?=a!i2Yb-$|tyw%`Y&_wF_ zOm7S62|?kk=HltiqfB|RE1X`a?~b!h5vG`b6mebk#8eb3yZIVFKLH|vgg*;s+9sc5 zKF;9@P>&5Z1oZlYXO{Cjz~sN-EbVc17mc3(OZesqO74I~pD%LKRFL~{C^R0~`(pP= zIF<0;e6c)3HpoPO8zt04e>3LbB(l&+l^`<*OA%fG000000000000000003Z_U!k^P UV?n+a07*qoM6N<$g1^JsApigX diff --git a/tests_zemu/snapshots/x-sign_basic_expert/00002.png b/tests_zemu/snapshots/x-sign_basic_expert/00002.png deleted file mode 100644 index d0010466a130ada8d765834208048621820289b2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 871 zcmV-t1DO1YP)oW8dmPs|=gCt3kBno9U)UvmNwTDos?qC6m5})340L$87RW@QBBGkEI z3FNj6?E|e{^DoLEg5K5_Gy0km{0PNc8A@0v9qb>v9_&OL_q`~k16n3&oZb(=Wg4M| zsm@jVmu!}!d;|Ex{S>MMEfJJxlMww&i;y!rVVD`@1!1-0?wn4Kl_L1;EO!$eNXpT- zxxO+EfPBiT7t^0xB@-0-t0YtcV}F=VmWtkRoThITHSNm{n7G$HAs)}Lai|}S6g;@x z{zRO2LP4I&0ay_KkDYZJTeDCyFmZB@K`74d9e%=|YM0+8Y;?p$|M~D`EHEw`t{s3g zwV>8FwQqt|N%XdQ0qYQGQ4F6Ngr=x|BIz6BXtDb7ZbW+U# z-(2rA081rL7t>*n@&YY1X{uae%sp?F72a#Zw?mqW?%kbD$I}yvTPER(B>JdTf086g zauQ1w({dXua;WuFvaryyp+30G!2yuS+TkmAI`qp>Gzx@`ikO8(J>E9zg6hH;;Cx36 z%4KLFDzw5z$;rlk$3N|2b?+*9G&npFOWrg40NjKc0@JU3o56XCc^yWdcC6&7jcuq@Rt~ xY;oP1{fDfE9_G3^py4$eUmN>Lk|fD*=Nmmk#g<&5;#mLy002ovPDHLkV1kq!lTQEu diff --git a/tests_zemu/snapshots/x-sign_basic_expert/00003.png b/tests_zemu/snapshots/x-sign_basic_expert/00003.png deleted file mode 100644 index b0579ca6da2b0771ef8b88d7d6e4639e1b8eaf72..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 467 zcmV;^0WAKBP)nC zs?t2@cViIk`eWW}=qiIdD)RsU@KW_HPPqYYy-&{gBi3Z=Xm)tYYiN9Gl)gB|XLic7 z4b8EB>GQx3N&k_izw4>4FlqFq*3P;0Gax;Y)~Al&+Nfr|^?N{kUfr51v>q5d;hWw1 z4siGN!SZN!kV}y1lvk>p-ZV{!da3N!P-_?AeZrck*Vo$R&sc20@|LyQv;*>OctW#U z?b`wFHGQzD_pCxYx(G6TV2bbp0000000000000000001H{s9GcTV2A(C$Rtk002ov JPDHLkV1kJZ=Y;?O diff --git a/tests_zemu/snapshots/x-sign_basic_expert/00004.png b/tests_zemu/snapshots/x-sign_basic_expert/00004.png deleted file mode 100644 index 5f87255f38a1db37cdcab118c112a9b4ad4a4388..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 499 zcmV12c?0g`z_Pd=Wmgd_EEZ6K{4V2S?6?VmOVVn)e(0{|7O_lcm002yod;M996B$NF z(((vg{%AHB41D|x8?)g{SaWW(^f~g-rlVV71L%g*4gGFNz+p(h pVMxGd;`9Bkx?pVZTXh3HQBq$MFlli7rWlqSW`4p>{*HUljV=+O|rY!|LcjwN*)LKi_(Xm zcXha(itnH189D#j*ExK-#s|!o9@?^Lj`=>lItI1&CHc`mWA@%FJGHH}L9)SfeM+Tq z;ryFYk_XSsC}6VPbk+2HgLUnOw+1Fg>%U#GcoEqY6)Sr8_;01=AF5xH{o0=e2UNHi zYp-Yf8Wmn(TySbfAW54X(uD;@UzK>eX|JHx&ck)JNS`~14cUvR|&X0gQ} zWH$Nc@x!0Pp81$*r2lVA6;6{${=fIMQt;o*rl8=zCtoyAjc5%^l8@{B1PXCvaQF|C WPV(1C`@}CHAYo5eKbLh*2~7YQBEz8o diff --git a/tests_zemu/snapshots/x-sign_basic_expert/00006.png b/tests_zemu/snapshots/x-sign_basic_expert/00006.png deleted file mode 100644 index 7050bd94a6bd1f5de9198066a22dd933a592b453..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 879 zcmV-#1CacQP)G_@#MFt6Ef{!VM5JCtcgplq0LY!)??bqWt z?g{1tXp2jxu)^c6aeJ#LP{os*(*|^IwZINSb`CRSPT5GMxamZ2-Lc40?PBW!xIX*SP>gX5)ws`Z-1VGcH3)Sk$|v*ogXH+oUVAmz{iIq7 zP;OlS*XOG>i=o3LQ%jJQyffSq_41r$&myVbG{ZZ|B5()XL0i|)Mlu7q+^Z~@0PD`U zwZY|`hEV&;1+eB0kc)EkLUpHGKlm2eDY6`e_9|`5mPKYkGOQX$u$|;K^y^9gsg}9F z1VRWQ{}GTHDse=Z&OtR=7DVjdxk@ZT`Igb+dqA+KfXZ0PV*R%mnPKg%FTMXfz6ZgF~ag5SOM9PaKNMQ}#f zL@ZL{L{!gQ49HbO!cW3&R(Op#O+~M=kd1%`4x^86>3o-gRE;I~BQ=P~)Vaz9?*Op; zk$i_N(1O%(Rb^CuRa-+U_rV8!HSDw!yz*?QUji~X|E&OSSqswRj3V2y>1^n#x_*g- zxsWw?KvxUCig`)!IVo}GuX{!@Rb!YBi4Z~vA%u_z_ye3b6+_JXIgbDU002ovPDHLk FV1iD%rg#7V diff --git a/tests_zemu/snapshots/x-sign_basic_expert/00007.png b/tests_zemu/snapshots/x-sign_basic_expert/00007.png deleted file mode 100644 index 5cd43ab212153687344e4994556d15724cdbb427..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 554 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|{^{>EaktG3V{f*uEA8o`$<; z@3j1u@7(>SS@QA)d9JQmXTRGT-nbML?T~gGsEL6g@A-1=!0f5^-kPW9RLWW2tX<~r zZ~SrZ{V5llS^lWmYR6Cdq`&;yEtP3cW~`J<)l56Z!}`kjd99|Z2cxd=^NDpLDM>jY zv#gIuvG;8gG5#pW`?SJm8`G>Q7jtEo)jr#_aANDy$BT>&XU@J=`SQTUI%nT>Z3pXD zzIGhjkA=*C9VvclS-_cHFU2OiZ(|BG*qC(BfBT+EMsn%#4dIgB?0fEHOi!!1d}j{7 zct}Is6nD|Hlk@%xea~1t^Qp%EN}1lhvTNEup5zLOkvQ@s!1(xu`tx7le*Ge0q`p zOJbH~Sl+oT>Ho_!`sQ0EJ>y@0YsE{q>lx*JAJ;r)&J&5to0xZi*XZJYUgaw;|I;ei q{SRqS3tg+Hb$RD82)cKxlBpO13^s&1&00000003_1t6*~+2W#oQ zuW;r8=vb~%oQ-r)wB<5kA6qF7{|Zj`-mg2+;}>!qhfEg<9mS|W4L3WUiNJT+Qo>S0 zJ=L_#qU}bD%up7NtA(CzT1LA=h&aE5N(HE>MS9VHpl4|Y$($Nxob3Y*P@zokFX%NB zAVb4ijvwMC!Is^q)e|o%mt_^eP@iCLepINZpJ~%D#Cr+P^MNI-OdA< zeTB@5*gm_DOi#e*WkoYXrhaQ>dNS=sv#DIs@@hsO=5~CTlM7CI0;u>dy-{06&;Z4) z+IUu0>8a8&`(f~w7cwJGr-MoD4rXL-#K`XREO$%*E99AcnKXYPd>d+yFu2^a7UTNa zCyJ5X#=fwT<-+JAZ<-yZ`&4ie=skt`hZzPL(Z3BP)QJAgU=E%HtI(4;LB2ELx08qrxm>DD)upX;W?c&Ere&UdDPNE|Q#H}% z0_4iKRAMP>x0MNC_Xui-@*;9gP|KMv0%gt4?jMwI8K=Xl&=Q~cq8i#h%P^uHO4wOd z9JNi<4#CQx-BM8tsx?8LT!IRbYG$x%(N{Y(EyE(V*{AW}`C-?@{| z+yuy2yU|xyo5+m{R$EEA6i>=2H8gUYk+QhMYAc&unw6vN?b;694I(=$TO#spd|W9p h6#xJL004kj@E_5{Gi5p8VtfDq002ovPDHLkV1h~MuHgUx diff --git a/tests_zemu/snapshots/x-sign_basic_expert/00009.png b/tests_zemu/snapshots/x-sign_basic_expert/00009.png deleted file mode 100644 index 2e38100b8a160337947691702b2af0470d38e431..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 546 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|@Xd>EaktG3V{fz)6P{I2<-x zS5Ln4-{W4Yy-}&o0*%ngcPrnoR_*9W;I-ugYGP=3Thq(up~-o&a^B=QH+^?b%NC7P z5-UCFE1R3buBp0L*#B^8kj9hsRSEy1E_1R!Q8zfYWSX_Rt-BQG3f0O4KevffBZKU0 z?@iwB>zkh0SMR?uDJ zE<^4W`&Y$03u$neZ_Mw1*yp_5`LoTO(gGc8cIQgWUvpzl3QglIo&R-7|KTYxU zz0)!_KRQyr_tn8YuXb1oq$dfy-{1Bx*6xq%QlL*1JT^#Y{Y&{8!~5GeR{n@|rtkeP z2j4!NvDw5#`drSd&MrT{w=XBG4BUFmVf({}=PpHrKcD2T?<%}*Vea`eX6ZYZT$IV* z5oqQZn}7FS`pt9PKQ^<>)l55PDzxg`i7O_vtLFBl{wK za;x{fl)TXP_lmQVZfG1_#k*qbrLaBbUB*>jF;!~3Tb7&rUnr`$>;85Z`<^=u+cH18 zCuka8?b}!Ez|R@)d^GBaK>4(Pok`(r>Cazi=Pr;+S+t*5`HD-u@tcEl3%Krf3a5Na h&}#qO+ diff --git a/tests_zemu/snapshots/x-sign_basic_expert/00010.png b/tests_zemu/snapshots/x-sign_basic_expert/00010.png deleted file mode 100644 index 68986d113b055b32ce46fc432e0fced4a8858158..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 380 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|@9iba4!+nDh2#w9p|19*4k^ zJD%V7FL`&AUq)?mK-VRQE7kk5ECKdE= z#!2Bfe#;~8*h-x}<#T09O!b;?r6vuNdVJ(IJuI7b^zh<~Z8h3cXHJj286EU?V))9k zkl;eO-EwjM4ZGr>xJUAa%n0f5-#uaa^xRVG_(}ce6l)J`WKk9FHnZNFx%Kp{Yg_X< zqa+SGUe=m%T3ErmxO8t|>hnLkr8Os=}sf#HA*%>DQ8 Vkvj90U*kPU)YH|^Wt~$(69CtqplHqD?^_Y2 z&~UWXgy{^kPD1l6?bvw?rjazLIs4CaeiIf9y)&BTY)mzsd+)PWnmHJlfY4o;nNShw z@$qw7ATg5FY!=rv$&%@oZ7aCg_w_FPn`;+H_43ktTzUQ7CNUUOO0!CntOm2=H7T`J zSErJ}5>!1$sL*ALz973NgrL=lhG-|Cx|q1X#bS6dcc`vZhQ%@0)z}iGAL4T+Mqa75 zyZQ`>LtMSVg@}g!*&s`kET8sS@=mN9p;ei@J87o>neO;5=;7(EPk>b>0D#Zb-wib< z{5~tcx+x-T@wRgN5W*fn`IYU5>dz9ZSC(l8n{nqmxuTc;A8?fFN@(@&t@nsKpek%c zZ+~5S?gW(9m%n2Iju`3zZImPw`@d=uP%;+yu8EQs{?-0swL_v9Y+E|7?)tDnm{r-UW|wn2MB diff --git a/tests_zemu/snapshots/x-sign_basic_expert/00013.png b/tests_zemu/snapshots/x-sign_basic_expert/00013.png deleted file mode 100644 index 1e4be69934787c368c2b5ed677cc7f5a2470be3b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 355 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|`hpba4!+nDh2#G+&c}K^PbX0`eJS}y70`%8T>n^%dV>bk>TM}C(cF@9*Jbj^5WTF;gKGIO)y zjlJ*9*PE9W@jdm~5r5wEu#TD8y6+Pnh8_O<-8#^Bx$bnOy3REWn^jXeAFev)TXe-F zTky7j?62N_lL@yzwx7O!=&4O1W7^|)7fcr%%i5*3D%0_G;tl)cpW3Io3*7!cdXW1o sV&B=e%knGs=l(tai5cc!1_ryAe9w9}zGZ%X&;TUp>FVdQ&MBb@086r+N&o-= diff --git a/tests_zemu/snapshots/x-sign_basic_expert/00014.png b/tests_zemu/snapshots/x-sign_basic_expert/00014.png deleted file mode 100644 index 4c3747edad754c34867ec5f1a66fbe0bb59f7edd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 472 zcmV;}0Vn>6P)NklWPJwn1du000000JxKn=m8widp~r1 zYwblNxzK0y0Pc*P_TM4;LVVLU?czl?jqeS za-k=ts|?>a`zHL-427hBC>;hri0MjB?_Ceh);Q%b+oFp?wjcdj^Ujyq2f1aN0Wz$e ze&3>_Km5Cyc|G*wo@hH?Mt^#xSCaFWEt4RodP_509F-CvPG7L$)ge1Ib1gx0b>lAV zNU|qDmh54>K6(S=o;Y+4004kxVroI|k7}{V`upz8clwD+5pMl*D0AuqCbd%ctl?44 zo*42wyDU$_kD?>R6I(^u{TZy&CDk=jB*6V`;q#r$4|CV0^`+@VOVDCTHvbeez{cW4 zbpCltlDLb21k4MQ+rb#QE06nT?fH@_etD1ZrC5UQj06Ax0001hg}wnoqe+{v@krbN O0000?e8vSM=g;SA}V#zI-#lF0K9Zv=MLCZ|(ZWwoe=N<(mOk zi*hL?OSnh56L15$6VUH{>i&PQCH_LArhGHNMs~X7W(j@6UQn=nGvH=OKrj*j08cSK z$O%1$y1})F$oswM)>`e)kz0iC6zeIsb(rixW;}s8Jd;^BhG;oxW00Ex3%wk<>f~Cw z-oDp2imgI&Ghi!bs3fn|(4UkK~VR5h**d^Lkm}$_%7Z?})El~+N8#`Nn z!sFhJBawRybwhNG>qU6lD7Xj%001DpME^j6B9#}h_KtqIwJ>h3t>4tfFH}2b5Za0u z|6FA^FKyuV!nf`n1Id1`qWeAwO#-K0000003P8NoS+x_OJ!Ml00000NkvXXu0mjf4g1N= diff --git a/tests_zemu/snapshots/x-sign_basic_normal/00001.png b/tests_zemu/snapshots/x-sign_basic_normal/00001.png deleted file mode 100644 index 76706da37adeb20b7c40085af6b9e1e396f8b72a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 478 zcmV<40U`d0P)vDQu+%s4-) zJB(x#=Uh4ypF4nqx6{1?Jh9@ObJp5$F}@kKOt_wwRO=dT=f%a+@wD__XjwERZc6RT z3~j;h-U>Nl9G!X76ypDiiee;Pz2~}4Gn;539+)YvlANF33I*z-Xpsxq zKx=CC70(7SwZrYqoB*#JO(EXeh3vFhnsBP+hx?kAf`+MSL=@<1?Mn4n`OT_2>_+n^ zAgte(MdbdN|Cv;M;)%k!Ug8bZ7^C(vR|keU(ts`s@%a?=a!i2Yb-$|tyw%`Y&_wF_ zOm7S62|?kk=HltiqfB|RE1X`a?~b!h5vG`b6mebk#8eb3yZIVFKLH|vgg*;s+9sc5 zKF;9@P>&5Z1oZlYXO{Cjz~sN-EbVc17mc3(OZesqO74I~pD%LKRFL~{C^R0~`(pP= zIF<0;e6c)3HpoPO8zt04e>3LbB(l&+l^`<*OA%fG000000000000000003Z_U!k^P UV?n+a07*qoM6N<$g1^JsApigX diff --git a/tests_zemu/snapshots/x-sign_basic_normal/00002.png b/tests_zemu/snapshots/x-sign_basic_normal/00002.png deleted file mode 100644 index 7050bd94a6bd1f5de9198066a22dd933a592b453..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 879 zcmV-#1CacQP)G_@#MFt6Ef{!VM5JCtcgplq0LY!)??bqWt z?g{1tXp2jxu)^c6aeJ#LP{os*(*|^IwZINSb`CRSPT5GMxamZ2-Lc40?PBW!xIX*SP>gX5)ws`Z-1VGcH3)Sk$|v*ogXH+oUVAmz{iIq7 zP;OlS*XOG>i=o3LQ%jJQyffSq_41r$&myVbG{ZZ|B5()XL0i|)Mlu7q+^Z~@0PD`U zwZY|`hEV&;1+eB0kc)EkLUpHGKlm2eDY6`e_9|`5mPKYkGOQX$u$|;K^y^9gsg}9F z1VRWQ{}GTHDse=Z&OtR=7DVjdxk@ZT`Igb+dqA+KfXZ0PV*R%mnPKg%FTMXfz6ZgF~ag5SOM9PaKNMQ}#f zL@ZL{L{!gQ49HbO!cW3&R(Op#O+~M=kd1%`4x^86>3o-gRE;I~BQ=P~)Vaz9?*Op; zk$i_N(1O%(Rb^CuRa-+U_rV8!HSDw!yz*?QUji~X|E&OSSqswRj3V2y>1^n#x_*g- zxsWw?KvxUCig`)!IVo}GuX{!@Rb!YBi4Z~vA%u_z_ye3b6+_JXIgbDU002ovPDHLk FV1iD%rg#7V diff --git a/tests_zemu/snapshots/x-sign_basic_normal/00003.png b/tests_zemu/snapshots/x-sign_basic_normal/00003.png deleted file mode 100644 index 5cd43ab212153687344e4994556d15724cdbb427..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 554 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|{^{>EaktG3V{f*uEA8o`$<; z@3j1u@7(>SS@QA)d9JQmXTRGT-nbML?T~gGsEL6g@A-1=!0f5^-kPW9RLWW2tX<~r zZ~SrZ{V5llS^lWmYR6Cdq`&;yEtP3cW~`J<)l56Z!}`kjd99|Z2cxd=^NDpLDM>jY zv#gIuvG;8gG5#pW`?SJm8`G>Q7jtEo)jr#_aANDy$BT>&XU@J=`SQTUI%nT>Z3pXD zzIGhjkA=*C9VvclS-_cHFU2OiZ(|BG*qC(BfBT+EMsn%#4dIgB?0fEHOi!!1d}j{7 zct}Is6nD|Hlk@%xea~1t^Qp%EN}1lhvTNEup5zLOkvQ@s!1(xu`tx7le*Ge0q`p zOJbH~Sl+oT>Ho_!`sQ0EJ>y@0YsE{q>lx*JAJ;r)&J&5to0xZi*XZJYUgaw;|I;ei q{SRqS3tg+Hb$RD82)cKxlBpO13^s&1&00000003_1t6*~+2W#oQ zuW;r8=vb~%oQ-r)wB<5kA6qF7{|Zj`-mg2+;}>!qhfEg<9mS|W4L3WUiNJT+Qo>S0 zJ=L_#qU}bD%up7NtA(CzT1LA=h&aE5N(HE>MS9VHpl4|Y$($Nxob3Y*P@zokFX%NB zAVb4ijvwMC!Is^q)e|o%mt_^eP@iCLepINZpJ~%D#Cr+P^MNI-OdA< zeTB@5*gm_DOi#e*WkoYXrhaQ>dNS=sv#DIs@@hsO=5~CTlM7CI0;u>dy-{06&;Z4) z+IUu0>8a8&`(f~w7cwJGr-MoD4rXL-#K`XREO$%*E99AcnKXYPd>d+yFu2^a7UTNa zCyJ5X#=fwT<-+JAZ<-yZ`&4ie=skt`hZzPL(Z3BP)QJAgU=E%HtI(4;LB2ELx08qrxm>DD)upX;W?c&Ere&UdDPNE|Q#H}% z0_4iKRAMP>x0MNC_Xui-@*;9gP|KMv0%gt4?jMwI8K=Xl&=Q~cq8i#h%P^uHO4wOd z9JNi<4#CQx-BM8tsx?8LT!IRbYG$x%(N{Y(EyE(V*{AW}`C-?@{| z+yuy2yU|xyo5+m{R$EEA6i>=2H8gUYk+QhMYAc&unw6vN?b;694I(=$TO#spd|W9p h6#xJL004kj@E_5{Gi5p8VtfDq002ovPDHLkV1h~MuHgUx diff --git a/tests_zemu/snapshots/x-sign_basic_normal/00005.png b/tests_zemu/snapshots/x-sign_basic_normal/00005.png deleted file mode 100644 index 2e38100b8a160337947691702b2af0470d38e431..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 546 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|@Xd>EaktG3V{fz)6P{I2<-x zS5Ln4-{W4Yy-}&o0*%ngcPrnoR_*9W;I-ugYGP=3Thq(up~-o&a^B=QH+^?b%NC7P z5-UCFE1R3buBp0L*#B^8kj9hsRSEy1E_1R!Q8zfYWSX_Rt-BQG3f0O4KevffBZKU0 z?@iwB>zkh0SMR?uDJ zE<^4W`&Y$03u$neZ_Mw1*yp_5`LoTO(gGc8cIQgWUvpzl3QglIo&R-7|KTYxU zz0)!_KRQyr_tn8YuXb1oq$dfy-{1Bx*6xq%QlL*1JT^#Y{Y&{8!~5GeR{n@|rtkeP z2j4!NvDw5#`drSd&MrT{w=XBG4BUFmVf({}=PpHrKcD2T?<%}*Vea`eX6ZYZT$IV* z5oqQZn}7FS`pt9PKQ^<>)l55PDzxg`i7O_vtLFBl{wK za;x{fl)TXP_lmQVZfG1_#k*qbrLaBbUB*>jF;!~3Tb7&rUnr`$>;85Z`<^=u+cH18 zCuka8?b}!Ez|R@)d^GBaK>4(Pok`(r>Cazi=Pr;+S+t*5`HD-u@tcEl3%Krf3a5Na h&}#qO+ diff --git a/tests_zemu/snapshots/x-sign_basic_normal/00006.png b/tests_zemu/snapshots/x-sign_basic_normal/00006.png deleted file mode 100644 index 68986d113b055b32ce46fc432e0fced4a8858158..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 380 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|@9iba4!+nDh2#w9p|19*4k^ zJD%V7FL`&AUq)?mK-VRQE7kk5ECKdE= z#!2Bfe#;~8*h-x}<#T09O!b;?r6vuNdVJ(IJuI7b^zh<~Z8h3cXHJj286EU?V))9k zkl;eO-EwjM4ZGr>xJUAa%n0f5-#uaa^xRVG_(}ce6l)J`WKk9FHnZNFx%Kp{Yg_X< zqa+SGUe=m%T3ErmxO8t|>hnLkr8Os=}sf#HA*%>DQ8 Vkvj90U*kPU)YH|^Wt~$(69CtqplHqD?^_Y2 z&~UWXgy{^kPD1l6?bvw?rjazLIs4CaeiIf9y)&BTY)mzsd+)PWnmHJlfY4o;nNShw z@$qw7ATg5FY!=rv$&%@oZ7aCg_w_FPn`;+H_43ktTzUQ7CNUUOO0!CntOm2=H7T`J zSErJ}5>!1$sL*ALz973NgrL=lhG-|Cx|q1X#bS6dcc`vZhQ%@0)z}iGAL4T+Mqa75 zyZQ`>LtMSVg@}g!*&s`kET8sS@=mN9p;ei@J87o>neO;5=;7(EPk>b>0D#Zb-wib< z{5~tcx+x-T@wRgN5W*fn`IYU5>dz9ZSC(l8n{nqmxuTc;A8?fFN@(@&t@nsKpek%c zZ+~5S?gW(9m%n2Iju`3zZImPw`@d=uP%;+yu8EQs{?-0swL_v9Y+E|7?)tDnm{r-UW|wn2MB diff --git a/tests_zemu/snapshots/x-sign_basic_normal/00009.png b/tests_zemu/snapshots/x-sign_basic_normal/00009.png deleted file mode 100644 index 1e4be69934787c368c2b5ed677cc7f5a2470be3b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 355 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|`hpba4!+nDh2#G+&c}K^PbX0`eJS}y70`%8T>n^%dV>bk>TM}C(cF@9*Jbj^5WTF;gKGIO)y zjlJ*9*PE9W@jdm~5r5wEu#TD8y6+Pnh8_O<-8#^Bx$bnOy3REWn^jXeAFev)TXe-F zTky7j?62N_lL@yzwx7O!=&4O1W7^|)7fcr%%i5*3D%0_G;tl)cpW3Io3*7!cdXW1o sV&B=e%knGs=l(tai5cc!1_ryAe9w9}zGZ%X&;TUp>FVdQ&MBb@086r+N&o-= diff --git a/tests_zemu/snapshots/x-sign_basic_normal/00010.png b/tests_zemu/snapshots/x-sign_basic_normal/00010.png deleted file mode 100644 index 4c3747edad754c34867ec5f1a66fbe0bb59f7edd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 472 zcmV;}0Vn>6P)NklWPJwn1du000000JxKn=m8widp~r1 zYwblNxzK0y0Pc*P_TM4;LVVLU?czl?jqeS za-k=ts|?>a`zHL-427hBC>;hri0MjB?_Ceh);Q%b+oFp?wjcdj^Ujyq2f1aN0Wz$e ze&3>_Km5Cyc|G*wo@hH?Mt^#xSCaFWEt4RodP_509F-CvPG7L$)ge1Ib1gx0b>lAV zNU|qDmh54>K6(S=o;Y+4004kxVroI|k7}{V`upz8clwD+5pMl*D0AuqCbd%ctl?44 zo*42wyDU$_kD?>R6I(^u{TZy&CDk=jB*6V`;q#r$4|CV0^`+@VOVDCTHvbeez{cW4 zbpCltlDLb21k4MQ+rb#QE06nT?fH@_etD1ZrC5UQj06Ax0001hg}wnoqe+{v@krbN O0000 Date: Wed, 13 Mar 2024 18:28:51 +0700 Subject: [PATCH 7/7] update ci --- .github/workflows/guidelines_enforcer.yml | 2 - .github/workflows/sonarcloud.yml | 60 ----------------------- ledger_app.toml | 7 +++ 3 files changed, 7 insertions(+), 62 deletions(-) delete mode 100644 .github/workflows/sonarcloud.yml create mode 100644 ledger_app.toml diff --git a/.github/workflows/guidelines_enforcer.yml b/.github/workflows/guidelines_enforcer.yml index e2dae281..fdaf9f27 100644 --- a/.github/workflows/guidelines_enforcer.yml +++ b/.github/workflows/guidelines_enforcer.yml @@ -21,5 +21,3 @@ jobs: guidelines_enforcer: name: Call Ledger guidelines_enforcer uses: LedgerHQ/ledger-app-workflows/.github/workflows/reusable_guidelines_enforcer.yml@v1 - with: - relative_app_directory: app diff --git a/.github/workflows/sonarcloud.yml b/.github/workflows/sonarcloud.yml deleted file mode 100644 index 51f5b65a..00000000 --- a/.github/workflows/sonarcloud.yml +++ /dev/null @@ -1,60 +0,0 @@ -name: Sonarcloud - -on: - push: - branches: - - main - pull_request: - branches: - - main - types: [opened, synchronize, reopened] - -jobs: - build: - name: SonarQube analyze - runs-on: ubuntu-latest - container: - image: ghcr.io/ledgerhq/ledger-app-builder/ledger-app-builder-legacy:latest - env: - SONAR_SCANNER_VERSION: 4.7.0.2747 - SONAR_SERVER_URL: "https://sonarcloud.io" - BUILD_WRAPPER_OUT_DIR: build_wrapper_output_directory # Directory where build-wrapper output will be placed - steps: - - uses: actions/checkout@v3 - with: - submodules: true - fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis - - name: Set up JDK 11 - uses: actions/setup-java@v3 - with: - java-version: 11 - distribution: zulu - - name: Download and set up sonar-scanner - env: - SONAR_SCANNER_DOWNLOAD_URL: https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-${{ env.SONAR_SCANNER_VERSION }}-linux.zip - run: | - export DEBIAN_FRONTEND=noninteractive - apt-get update -y - apt-get upgrade -y - curl -sL https://deb.nodesource.com/setup_16.x | bash - - apt-get install -y gcovr nodejs unzip - mkdir -p $HOME/.sonar - curl -sSLo $HOME/.sonar/sonar-scanner.zip ${{ env.SONAR_SCANNER_DOWNLOAD_URL }} - unzip -o $HOME/.sonar/sonar-scanner.zip -d $HOME/.sonar/ - echo "$HOME/.sonar/sonar-scanner-${{ env.SONAR_SCANNER_VERSION }}-linux/bin" >> $GITHUB_PATH - - name: Download and set up build-wrapper - env: - BUILD_WRAPPER_DOWNLOAD_URL: ${{ env.SONAR_SERVER_URL }}/static/cpp/build-wrapper-linux-x86.zip - run: | - curl -sSLo $HOME/.sonar/build-wrapper-linux-x86.zip ${{ env.BUILD_WRAPPER_DOWNLOAD_URL }} - unzip -o $HOME/.sonar/build-wrapper-linux-x86.zip -d $HOME/.sonar/ - echo "$HOME/.sonar/build-wrapper-linux-x86" >> $GITHUB_PATH - - name: Run build-wrapper - run: | - build-wrapper-linux-x86-64 --out-dir ${{ env.BUILD_WRAPPER_OUT_DIR }} make clean all - - name: Run sonar-scanner - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} - run: | - sonar-scanner --define sonar.host.url="${{ env.SONAR_SERVER_URL }}" --define sonar.cfamily.build-wrapper-output="${{ env.BUILD_WRAPPER_OUT_DIR }}" diff --git a/ledger_app.toml b/ledger_app.toml new file mode 100644 index 00000000..3e4cbb1f --- /dev/null +++ b/ledger_app.toml @@ -0,0 +1,7 @@ +[app] +build_directory = "./app/" +sdk = "C" +devices = ["nanos", "nanox", "nanos+", "stax"] + +[tests] +unit_directory = "./tests/"