From 9a83d5a9d257c16333b830553adb44071a47ef18 Mon Sep 17 00:00:00 2001 From: sc Date: Tue, 8 Aug 2023 23:15:59 -0600 Subject: [PATCH 01/15] fix: remove startscreen --- flipbip.c | 7 +- flipbip.h | 2 - icons/Auth_62x31.png | Bin 3761 -> 0 bytes icons/ButtonCenter_7x7.png | Bin 1440 -> 0 bytes icons/ButtonDown_10x5.png | Bin 6223 -> 0 bytes icons/ButtonLeftSmall_3x5.png | Bin 1741 -> 0 bytes icons/ButtonLeft_4x7.png | Bin 1415 -> 0 bytes icons/ButtonRightSmall_3x5.png | Bin 1738 -> 0 bytes icons/ButtonRight_4x7.png | Bin 1839 -> 0 bytes icons/ButtonUp_10x5.png | Bin 6233 -> 0 bytes scenes/flipbip_scene_config.h | 1 - scenes/flipbip_scene_startscreen.c | 55 ------------ views/flipbip_startscreen.c | 130 ----------------------------- views/flipbip_startscreen.h | 19 ----- 14 files changed, 1 insertion(+), 213 deletions(-) delete mode 100644 icons/Auth_62x31.png delete mode 100644 icons/ButtonCenter_7x7.png delete mode 100644 icons/ButtonDown_10x5.png delete mode 100644 icons/ButtonLeftSmall_3x5.png delete mode 100644 icons/ButtonLeft_4x7.png delete mode 100644 icons/ButtonRightSmall_3x5.png delete mode 100644 icons/ButtonRight_4x7.png delete mode 100644 icons/ButtonUp_10x5.png delete mode 100644 scenes/flipbip_scene_startscreen.c delete mode 100644 views/flipbip_startscreen.c delete mode 100644 views/flipbip_startscreen.h diff --git a/flipbip.c b/flipbip.c index a14305e..b3ba3cb 100644 --- a/flipbip.c +++ b/flipbip.c @@ -118,11 +118,6 @@ FlipBip* flipbip_app_alloc() { view_dispatcher_add_view( app->view_dispatcher, FlipBipViewIdMenu, submenu_get_view(app->submenu)); - app->flipbip_startscreen = flipbip_startscreen_alloc(); - view_dispatcher_add_view( - app->view_dispatcher, - FlipBipViewIdStartscreen, - flipbip_startscreen_get_view(app->flipbip_startscreen)); app->flipbip_scene_1 = flipbip_scene_1_alloc(); view_dispatcher_add_view( app->view_dispatcher, FlipBipViewIdScene1, flipbip_scene_1_get_view(app->flipbip_scene_1)); @@ -189,7 +184,7 @@ int32_t flipbip_app(void* p) { view_dispatcher_attach_to_gui(app->view_dispatcher, app->gui, ViewDispatcherTypeFullscreen); scene_manager_next_scene( - app->scene_manager, FlipBipSceneStartscreen); //Start with start screen + app->scene_manager, FlipBipSceneMenu); //Start with start screen //scene_manager_next_scene(app->scene_manager, FlipBipSceneMenu); //if you want to directly start with Menu furi_hal_power_suppress_charge_enter(); diff --git a/flipbip.h b/flipbip.h index 2ae0a44..22664d1 100644 --- a/flipbip.h +++ b/flipbip.h @@ -12,7 +12,6 @@ #include #include #include "scenes/flipbip_scene.h" -#include "views/flipbip_startscreen.h" #include "views/flipbip_scene_1.h" #define FLIPBIP_VERSION "v1.12.0" @@ -32,7 +31,6 @@ typedef struct { SceneManager* scene_manager; VariableItemList* variable_item_list; TextInput* text_input; - FlipBipStartscreen* flipbip_startscreen; FlipBipScene1* flipbip_scene_1; // Settings options int haptic; diff --git a/icons/Auth_62x31.png b/icons/Auth_62x31.png deleted file mode 100644 index 40f094ac9ba758ea06838c2bb8376cf6f28f8050..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3761 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 diff --git a/icons/ButtonCenter_7x7.png b/icons/ButtonCenter_7x7.png deleted file mode 100644 index a66461b227b321f11bc85a38c63afda0d982d78d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1440 zcmbVMO>5LZ7>3B0UTd{6LeL$!>SMgR$1#+OC>f>WbBi&Q4}`hi)=4nY!B^ zRS++F@uGMUJb3aT=s^*^`ByxtKS0pQengRK)xc!Fo_XHy_wM4t+~~;u5yLP>tMip5 zJ#SCPj;;EC7QMf%r=8LK<-{;{ji+Oa@#yhB!`QZ0)RxtQGk2+A_%pkO15A>@E!$;O3zzJQJa2RR6$Nr)W_ z7YND|Tm*y9)Y4+VL6$0~2eS0eHCswW1j0_IV|Q}4jGGXbN+pOK=s1=}Sjk$bXx9pp z14D)iPgpD>C1eOvMp~Dv$~Cp7eG`HxqYaaRo3z7VmqrlVC^e}E^jU_BR^xV0xX&PO z^MHpc(O8^ewU<0EgKtP11Q|L}vp2Lx1KT!4C$+VR!zG@`)tK?w8(QLlp<+=>Dw(w8 zZ|umfGixGJjyY8_u1VP*25NE00vv2R;P538`m&Q8Nu>-P@CsGjHFeamg|L;wH8e#W zO!E1o7!ic}P*3N9PZj+;u=GV^ZBwYvNJGW})m{<-ZE_fe&7L&RBh@fbG-SM5aZRnN zErd@BC0xw0I=6BS)Uc*#9$8bxdfj3UYD_xCJf@Ru_`V|9Y8t`ed;cHbpO1yEAlm+a zo-9J7EZZ{nq_4f4Gr^DZYPq}^%Z6y{i)3l;6sXRY3%FD$SdNX;MDHaWnHPzU>e`@m zF7WGvRa<~wjuFbzGH^|n#-ID<;8^^(3;VR47T2VI$csKKkqyJgp_fv5X;ksj_%dA!DP1fvqs5@M&TiMq)XFS~oQMEEt+wm~CH#1^@v8^9I ze!KeW*2}SvVq)w;aB`3F^wYBk_vc38mDg{_-`&1AJ@Mku!7q1qAAXYd(CX|$<@u>= GH@^cCN4$jq diff --git a/icons/ButtonDown_10x5.png b/icons/ButtonDown_10x5.png deleted file mode 100644 index b492b926c45def68d88b03c380527e226740beb6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6223 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 diff --git a/icons/ButtonLeft_4x7.png b/icons/ButtonLeft_4x7.png deleted file mode 100644 index 0b4655d43247083aa705620e9836ac415b42ca46..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1415 zcmbVM+iKK67*5rq)>aU2M7$VM1Vxif;vTv~W2u`S7ED{V3s&&L*<`XiG|9wd+THd> z5CnY!sdyuJtrvQyAo>KpiLcV|{Tkc)riAbluXfwSZCApL`ztB&p zx6LGKvks4K_4~)qD&oGa-YdJlW)hAKMNJd7<=t?6c^RI1>c$ifyjaM>^|&8!ey zB4!nh9u>5uen6Ve@<H5rru6h<2Ef#GQdQ*CmZOlQi~N!?9H`Rp;C% zU}CB21#?;r`&0|6C0}b-=jODa5|nEJ#ntxQ&{~jpgtwDta4hftr~G=#p@V36e4Zjh zq%J~{y26Jjn=1Nw-l*3%QW5YFE*v4z3gt0$&(*xf2en34c?JpH8+FYldo+Alvg8af-pG4(=!fyUi-Wsg z`g#n9VUcf(DFr{poMSNzw-lz>w+HV+n1ELr&SLA#LHUb0p(xWQ(1*vJ-i+1!`swxZ Z!O7;c$;lT_->m1Ovaz)0yuI`A$q$F8u*d)a diff --git a/icons/ButtonRightSmall_3x5.png b/icons/ButtonRightSmall_3x5.png deleted file mode 100644 index b9d5f87db1ca55141449cfcc3bf054417eaa84e1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1738 zcmcIl%Wm676lEHu%>zLLWYHwZf?zfc+Tjd`l=wgx!?E02K7gZd!)A>b-AnNYDb z=UD-0O?$90FBm_PwI0iHnuo^kzrHc_RD{NpUPPi|OHR_A(^5V@-5v4MBkl`h`li))oId$h zr-Twrdf1}K>IcLLELU%T22?9W66_DYYiq$%XiVz52r!<_X6DQ`RXN6%@B5fgOeq2c zsup?8<|wc3bqoVp@iHyyRONcZ$YOO|hXyEJO(84Rw0YIq1cu=`E3jpfW=b6}iq3{+ z*&1Ed+b2+^)%#K6YP2XM-j|g+F1g%3k$HWuD^^TYt*VLogtqnH|4=CSx?pi!PM7uw zj^$Klz+C~>TIwr;tx~dDl_RC5T~K>nMV(qE)xUm{=0eS?`;DS@fE=(|h6bc&Ap((k zBdZr!eqejwSR^211&yE&1gqKkz)Gaa;ylnO3Wj-Avz*J}AT&UfnWiG(Hm6?C6^L<1 zqL@1bP64XW zqKrwxT^V~c?$~}TQ}}Y&^h4H0l>o-Xk=)_jK{NqDuJ0r$_IQFAaV$sJiQn_7p}()Y zrKYNklmK^aLl-wVr`&ul_BH)&R_4UgD(ZOFr}nOx%X#N!gVeJ4h)=Wyh? zQXrf4V!h1m}&`|!B-3a0&FC= whJ($~<(FI>9{%<2-NwbcKNmOR7sY+;Hox}g7dMW6Yj&IA_U_=9M~Bb;1{rl65&!@I diff --git a/icons/ButtonRight_4x7.png b/icons/ButtonRight_4x7.png deleted file mode 100644 index 8e1c74c1c0038ea55172f19ac875003fc80c2d06..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1839 zcmcIlO>f*p7#Yw)M6zw!O+@VZ{?d|D~WYi~8rHRY?X-&T}Yen`g$^+EJ;z+|RV zE@PoDvZ9%#+_}3bC_5Cj8jDGq541mi{7F+&KF}W65sr$Xn5H|YrMQ2(J7%Yc%;(zO z57ax000=TsQ+1Ke@+w#iw3au3cGGQWY740k2ijH>P(6tD)S)be>gX6Tj7`<`b>di- zgWp$8Y+?i31~CzF0&E4uRlA=C(Mp~K`{74jEchB|)4DDK!ZVhSwdFyw0YIZ1cDh0S{OvfO-U_~ zvmRF*m9sWDXNH)GOyqS1Skhxbr6}s*7t&@~kFM(NW5}qh?Lu@lJ}HE;FDiLdGO>LO z5pS*%E2grR)l^;|?O5b_?u0me&c1U}%jrk8*%=Wk%i)8yp2P|kuxmKg<=(u_`oQRI_0 zS`-DNysBx=#3&qSkgA@hJP>~D+ZM(s5jI6Owp`?yE=3e`YGUqkVOp#Cp=3wR3O4hX zX6BLsN3UBzV(vI5;|SZHgOb=HD0VFjpTyfFW}GnQuh>2*Q`k>*cAmA#iUT7EXSpo# zkPm5~#I-o^cpgfe#P$=4-Pi*SpT!-@nJgp8L347xe>5EKl`=_ZFc8XGy+_j=_R_7! z@vZZMowS1GJ?Zw)eetks%~G{BTR>T}9|jt0j3Btyb*C3-`C?fwY3EY`q*oYZ39DpM z&uJ;PCZPLs4QO1Jd_|A1PF)azZJ)RZ`^-VMWr6e#XUOA%3eLG_Ch@BDOHzMk*MF0G zCo7xMd?Mg*HMIXw%nNz?%60fZiZPlqb?GqUpXO`F&Yi!okZl(n>P@r1P2i)yk3DgRwbHeNn6e|;J^SK4TM LH~i+q&mR8;k>NTA diff --git a/icons/ButtonUp_10x5.png b/icons/ButtonUp_10x5.png deleted file mode 100644 index 5da99d01ee968c974521c414e6f789237f888be2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6233 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, event); -} - -void flipbip_scene_startscreen_on_enter(void* context) { - furi_assert(context); - FlipBip* app = context; - flipbip_startscreen_set_callback( - app->flipbip_startscreen, flipbip_scene_startscreen_callback, app); - view_dispatcher_switch_to_view(app->view_dispatcher, FlipBipViewIdStartscreen); -} - -bool flipbip_scene_startscreen_on_event(void* context, SceneManagerEvent event) { - FlipBip* app = context; - bool consumed = false; - - if(event.type == SceneManagerEventTypeCustom) { - switch(event.event) { - case FlipBipCustomEventStartscreenLeft: - case FlipBipCustomEventStartscreenRight: - break; - case FlipBipCustomEventStartscreenUp: - case FlipBipCustomEventStartscreenDown: - break; - case FlipBipCustomEventStartscreenOk: - scene_manager_next_scene(app->scene_manager, FlipBipSceneMenu); - consumed = true; - break; - case FlipBipCustomEventStartscreenBack: - notification_message(app->notification, &sequence_reset_red); - notification_message(app->notification, &sequence_reset_green); - notification_message(app->notification, &sequence_reset_blue); - if(!scene_manager_search_and_switch_to_previous_scene( - app->scene_manager, FlipBipSceneStartscreen)) { - scene_manager_stop(app->scene_manager); - view_dispatcher_stop(app->view_dispatcher); - } - consumed = true; - break; - } - } - - return consumed; -} - -void flipbip_scene_startscreen_on_exit(void* context) { - FlipBip* app = context; - UNUSED(app); -} \ No newline at end of file diff --git a/views/flipbip_startscreen.c b/views/flipbip_startscreen.c deleted file mode 100644 index 76b060e..0000000 --- a/views/flipbip_startscreen.c +++ /dev/null @@ -1,130 +0,0 @@ -#include "../flipbip.h" -#include -#include -#include -#include -#include "flipbip_icons.h" - -struct FlipBipStartscreen { - View* view; - FlipBipStartscreenCallback callback; - void* context; -}; - -typedef struct { - int some_value; -} FlipBipStartscreenModel; - -void flipbip_startscreen_set_callback( - FlipBipStartscreen* instance, - FlipBipStartscreenCallback callback, - void* context) { - furi_assert(instance); - furi_assert(callback); - instance->callback = callback; - instance->context = context; -} - -void flipbip_startscreen_draw(Canvas* canvas, FlipBipStartscreenModel* model) { - UNUSED(model); - canvas_clear(canvas); - canvas_set_color(canvas, ColorBlack); - - canvas_draw_icon(canvas, 1, 33, &I_Auth_62x31); - - canvas_set_font(canvas, FontPrimary); - canvas_draw_str(canvas, 18, 11, "FlipBIP - BIP32/39/44"); - - canvas_set_font(canvas, FontSecondary); - canvas_draw_str(canvas, 23, 22, "Crypto toolkit for Flipper"); - canvas_draw_str(canvas, 99, 34, FLIPBIP_VERSION); - - elements_button_right(canvas, "Start"); -} - -static void flipbip_startscreen_model_init(FlipBipStartscreenModel* const model) { - model->some_value = 1; -} - -bool flipbip_startscreen_input(InputEvent* event, void* context) { - furi_assert(context); - FlipBipStartscreen* instance = context; - if(event->type == InputTypeRelease) { - switch(event->key) { - case InputKeyBack: - with_view_model( - instance->view, - FlipBipStartscreenModel * model, - { - UNUSED(model); - instance->callback(FlipBipCustomEventStartscreenBack, instance->context); - }, - true); - break; - case InputKeyLeft: - case InputKeyRight: - case InputKeyUp: - case InputKeyDown: - case InputKeyOk: - with_view_model( - instance->view, - FlipBipStartscreenModel * model, - { - UNUSED(model); - instance->callback(FlipBipCustomEventStartscreenOk, instance->context); - }, - true); - break; - case InputKeyMAX: - break; - } - } - return true; -} - -void flipbip_startscreen_exit(void* context) { - furi_assert(context); -} - -void flipbip_startscreen_enter(void* context) { - furi_assert(context); - FlipBipStartscreen* instance = (FlipBipStartscreen*)context; - with_view_model( - instance->view, - FlipBipStartscreenModel * model, - { flipbip_startscreen_model_init(model); }, - true); -} - -FlipBipStartscreen* flipbip_startscreen_alloc() { - FlipBipStartscreen* instance = malloc(sizeof(FlipBipStartscreen)); - instance->view = view_alloc(); - view_allocate_model(instance->view, ViewModelTypeLocking, sizeof(FlipBipStartscreenModel)); - view_set_context(instance->view, instance); // furi_assert crashes in events without this - view_set_draw_callback(instance->view, (ViewDrawCallback)flipbip_startscreen_draw); - view_set_input_callback(instance->view, flipbip_startscreen_input); - //view_set_enter_callback(instance->view, flipbip_startscreen_enter); - //view_set_exit_callback(instance->view, flipbip_startscreen_exit); - - with_view_model( - instance->view, - FlipBipStartscreenModel * model, - { flipbip_startscreen_model_init(model); }, - true); - - return instance; -} - -void flipbip_startscreen_free(FlipBipStartscreen* instance) { - furi_assert(instance); - - with_view_model( - instance->view, FlipBipStartscreenModel * model, { UNUSED(model); }, true); - view_free(instance->view); - free(instance); -} - -View* flipbip_startscreen_get_view(FlipBipStartscreen* instance) { - furi_assert(instance); - return instance->view; -} diff --git a/views/flipbip_startscreen.h b/views/flipbip_startscreen.h deleted file mode 100644 index d6eb1fa..0000000 --- a/views/flipbip_startscreen.h +++ /dev/null @@ -1,19 +0,0 @@ -#pragma once - -#include -#include "../helpers/flipbip_custom_event.h" - -typedef struct FlipBipStartscreen FlipBipStartscreen; - -typedef void (*FlipBipStartscreenCallback)(FlipBipCustomEvent event, void* context); - -void flipbip_startscreen_set_callback( - FlipBipStartscreen* flipbip_startscreen, - FlipBipStartscreenCallback callback, - void* context); - -View* flipbip_startscreen_get_view(FlipBipStartscreen* flipbip_static); - -FlipBipStartscreen* flipbip_startscreen_alloc(); - -void flipbip_startscreen_free(FlipBipStartscreen* flipbip_static); \ No newline at end of file From 8cb7f0994dfaff2d9c3e21adad0ff03e7be5f50e Mon Sep 17 00:00:00 2001 From: sc Date: Tue, 8 Aug 2023 23:24:29 -0600 Subject: [PATCH 02/15] fix: comment fix --- flipbip.c | 3 +-- views/flipbip_scene_1.c | 3 ++- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/flipbip.c b/flipbip.c index b3ba3cb..1e6d30c 100644 --- a/flipbip.c +++ b/flipbip.c @@ -183,8 +183,7 @@ int32_t flipbip_app(void* p) { view_dispatcher_attach_to_gui(app->view_dispatcher, app->gui, ViewDispatcherTypeFullscreen); - scene_manager_next_scene( - app->scene_manager, FlipBipSceneMenu); //Start with start screen + scene_manager_next_scene(app->scene_manager, FlipBipSceneMenu); //Start with start screen //scene_manager_next_scene(app->scene_manager, FlipBipSceneMenu); //if you want to directly start with Menu furi_hal_power_suppress_charge_enter(); diff --git a/views/flipbip_scene_1.c b/views/flipbip_scene_1.c index 162c8e7..997370f 100644 --- a/views/flipbip_scene_1.c +++ b/views/flipbip_scene_1.c @@ -161,7 +161,8 @@ static void flipbip_scene_1_init_address( addr_text[1] = 'x'; // Convert the hash to a hex string flipbip_btox((uint8_t*)buf, 20, addr_text + 2); - } else if(coin_info[5] == FlipBipCoinZEC133) { // ETH + + } else if(coin_info[5] == FlipBipCoinZEC133) { // ZEC ecdsa_get_address( s_addr_node->public_key, coin_info[3], HASHER_SHA2_RIPEMD, HASHER_SHA2D, buf, buflen); addr_text[0] = 't'; From 1057242f879023168352df0dce58c1efb847a756 Mon Sep 17 00:00:00 2001 From: sc Date: Tue, 8 Aug 2023 23:49:06 -0600 Subject: [PATCH 03/15] fix: remove led --- flipbip.c | 1 - flipbip.h | 6 ----- helpers/flipbip_led.c | 39 --------------------------------- helpers/flipbip_led.h | 2 -- helpers/flipbip_speaker.c | 27 ----------------------- helpers/flipbip_speaker.h | 4 ---- scenes/flipbip_scene_menu.c | 12 ++++++++++ scenes/flipbip_scene_settings.c | 23 ------------------- views/flipbip_scene_1.c | 3 +-- 9 files changed, 13 insertions(+), 104 deletions(-) delete mode 100644 helpers/flipbip_led.c delete mode 100644 helpers/flipbip_led.h delete mode 100644 helpers/flipbip_speaker.c delete mode 100644 helpers/flipbip_speaker.h diff --git a/flipbip.c b/flipbip.c index 1e6d30c..6ec2356 100644 --- a/flipbip.c +++ b/flipbip.c @@ -104,7 +104,6 @@ FlipBip* flipbip_app_alloc() { // Settings app->haptic = FlipBipHapticOn; - app->led = FlipBipLedOn; app->bip39_strength = FlipBipStrength256; // 256 bits (24 words) app->passphrase = FlipBipPassphraseOff; diff --git a/flipbip.h b/flipbip.h index 22664d1..ef7d493 100644 --- a/flipbip.h +++ b/flipbip.h @@ -34,7 +34,6 @@ typedef struct { FlipBipScene1* flipbip_scene_1; // Settings options int haptic; - int led; int bip39_strength; int passphrase; // Main menu options @@ -61,11 +60,6 @@ typedef enum { FlipBipHapticOn, } FlipBipHapticState; -typedef enum { - FlipBipLedOff, - FlipBipLedOn, -} FlipBipLedState; - typedef enum { FlipBipStrength128, FlipBipStrength192, diff --git a/helpers/flipbip_led.c b/helpers/flipbip_led.c deleted file mode 100644 index 7a6fd17..0000000 --- a/helpers/flipbip_led.c +++ /dev/null @@ -1,39 +0,0 @@ -#include "flipbip_led.h" -#include "../flipbip.h" - -void flipbip_led_set_rgb(void* context, int red, int green, int blue) { - FlipBip* app = context; - if(app->led != 1) { - return; - } - NotificationMessage notification_led_message_1; - notification_led_message_1.type = NotificationMessageTypeLedRed; - NotificationMessage notification_led_message_2; - notification_led_message_2.type = NotificationMessageTypeLedGreen; - NotificationMessage notification_led_message_3; - notification_led_message_3.type = NotificationMessageTypeLedBlue; - - notification_led_message_1.data.led.value = red; - notification_led_message_2.data.led.value = green; - notification_led_message_3.data.led.value = blue; - const NotificationSequence notification_sequence = { - ¬ification_led_message_1, - ¬ification_led_message_2, - ¬ification_led_message_3, - &message_do_not_reset, - NULL, - }; - notification_message(app->notification, ¬ification_sequence); - furi_thread_flags_wait( - 0, FuriFlagWaitAny, 10); //Delay, prevent removal from RAM before LED value set -} - -void flipbip_led_reset(void* context) { - FlipBip* app = context; - notification_message(app->notification, &sequence_reset_red); - notification_message(app->notification, &sequence_reset_green); - notification_message(app->notification, &sequence_reset_blue); - - furi_thread_flags_wait( - 0, FuriFlagWaitAny, 300); //Delay, prevent removal from RAM before LED value set -} diff --git a/helpers/flipbip_led.h b/helpers/flipbip_led.h deleted file mode 100644 index bbacc97..0000000 --- a/helpers/flipbip_led.h +++ /dev/null @@ -1,2 +0,0 @@ -void flipbip_led_set_rgb(void* context, int red, int green, int blue); -void flipbip_led_reset(void* context); diff --git a/helpers/flipbip_speaker.c b/helpers/flipbip_speaker.c deleted file mode 100644 index f7ae219..0000000 --- a/helpers/flipbip_speaker.c +++ /dev/null @@ -1,27 +0,0 @@ -// #include "flipbip_speaker.h" -// #include "../flipbip.h" - -// #define NOTE_INPUT 587.33f - -// void flipbip_play_input_sound(void* context) { -// FlipBip* app = context; -// if (app->speaker != 1) { -// return; -// } -// float volume = 1.0f; -// if(furi_hal_speaker_is_mine() || furi_hal_speaker_acquire(30)) { -// furi_hal_speaker_start(NOTE_INPUT, volume); -// } - -// } - -// void flipbip_stop_all_sound(void* context) { -// FlipBip* app = context; -// if (app->speaker != 1) { -// return; -// } -// if(furi_hal_speaker_is_mine()) { -// furi_hal_speaker_stop(); -// furi_hal_speaker_release(); -// } -// } diff --git a/helpers/flipbip_speaker.h b/helpers/flipbip_speaker.h deleted file mode 100644 index 150ba91..0000000 --- a/helpers/flipbip_speaker.h +++ /dev/null @@ -1,4 +0,0 @@ -// #define NOTE_INPUT 587.33f - -// void flipbip_play_input_sound(void* context); -// void flipbip_stop_all_sound(void* context); diff --git a/scenes/flipbip_scene_menu.c b/scenes/flipbip_scene_menu.c index 0a4bf18..862be6d 100644 --- a/scenes/flipbip_scene_menu.c +++ b/scenes/flipbip_scene_menu.c @@ -1,6 +1,8 @@ #include "../flipbip.h" #include "../helpers/flipbip_file.h" +#define FLIPBIP_MENU_HEADER_TEXT "- FlipBIP wallet " FLIPBIP_VERSION " -" + enum SubmenuIndex { SubmenuIndexScene1BTC = 10, SubmenuIndexScene1ETH, @@ -9,6 +11,7 @@ enum SubmenuIndex { SubmenuIndexScene1New, SubmenuIndexScene1Import, SubmenuIndexSettings, + SubmenuIndexNOP, }; void flipbip_scene_menu_submenu_callback(void* context, uint32_t index) { @@ -19,6 +22,13 @@ void flipbip_scene_menu_submenu_callback(void* context, uint32_t index) { void flipbip_scene_menu_on_enter(void* context) { FlipBip* app = context; + submenu_add_item( + app->submenu, + FLIPBIP_MENU_HEADER_TEXT, + SubmenuIndexNOP, + flipbip_scene_menu_submenu_callback, + app); + if(flipbip_has_file(FlipBipFileKey, NULL, false) && flipbip_has_file(FlipBipFileDat, NULL, false)) { submenu_add_item( @@ -134,6 +144,8 @@ bool flipbip_scene_menu_on_event(void* context, SceneManagerEvent event) { app->scene_manager, FlipBipSceneMenu, SubmenuIndexSettings); scene_manager_next_scene(app->scene_manager, FlipBipSceneSettings); return true; + } else if(event.event == SubmenuIndexNOP) { + return true; } } return false; diff --git a/scenes/flipbip_scene_settings.c b/scenes/flipbip_scene_settings.c index c743c97..2fbbb6e 100644 --- a/scenes/flipbip_scene_settings.c +++ b/scenes/flipbip_scene_settings.c @@ -15,15 +15,6 @@ const uint32_t haptic_value[2] = { FlipBipHapticOn, }; -const char* const led_text[2] = { - TEXT_LABEL_OFF, - TEXT_LABEL_ON, -}; -const uint32_t led_value[2] = { - FlipBipLedOff, - FlipBipLedOn, -}; - const char* const bip39_strength_text[3] = { "12", "18", @@ -51,13 +42,6 @@ static void flipbip_scene_settings_set_haptic(VariableItem* item) { app->haptic = haptic_value[index]; } -static void flipbip_scene_settings_set_led(VariableItem* item) { - FlipBip* app = variable_item_get_context(item); - uint8_t index = variable_item_get_current_value_index(item); - variable_item_set_current_value_text(item, led_text[index]); - app->led = led_value[index]; -} - static void flipbip_scene_settings_set_bip39_strength(VariableItem* item) { FlipBip* app = variable_item_get_context(item); uint8_t index = variable_item_get_current_value_index(item); @@ -115,13 +99,6 @@ void flipbip_scene_settings_on_enter(void* context) { variable_item_set_current_value_index(item, value_index); variable_item_set_current_value_text(item, haptic_text[value_index]); - // LED Effects on/off - item = variable_item_list_add( - app->variable_item_list, "LED FX:", 2, flipbip_scene_settings_set_led, app); - value_index = value_index_uint32(app->led, led_value, 2); - variable_item_set_current_value_index(item, value_index); - variable_item_set_current_value_text(item, led_text[value_index]); - view_dispatcher_switch_to_view(app->view_dispatcher, FlipBipViewIdSettings); } diff --git a/views/flipbip_scene_1.c b/views/flipbip_scene_1.c index 997370f..3230331 100644 --- a/views/flipbip_scene_1.c +++ b/views/flipbip_scene_1.c @@ -8,7 +8,6 @@ #include #include "flipbip_icons.h" #include "../helpers/flipbip_haptic.h" -#include "../helpers/flipbip_led.h" #include "../helpers/flipbip_string.h" #include "../helpers/flipbip_file.h" // From: /lib/crypto @@ -666,7 +665,7 @@ void flipbip_scene_1_enter(void* context) { flipbip_play_happy_bump(app); //notification_message(app->notification, &sequence_blink_cyan_100); - flipbip_led_set_rgb(app, 255, 0, 0); + //flipbip_led_set_rgb(app, 255, 0, 0); with_view_model( instance->view, From b81adf67582408f06751e91c53196a29f5fe5004 Mon Sep 17 00:00:00 2001 From: sc Date: Wed, 9 Aug 2023 00:13:26 -0600 Subject: [PATCH 04/15] chore: 1.13 --- application.fam | 4 ++-- flipbip.h | 2 +- scenes/flipbip_scene_menu.c | 5 +++-- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/application.fam b/application.fam index 07bc5bb..6e5f866 100644 --- a/application.fam +++ b/application.fam @@ -19,6 +19,6 @@ App( fap_category="Tools", fap_author="Struan Clark (xtruan)", fap_weburl="https://github.com/xtruan/FlipBIP", - fap_version=(1, 12), - fap_description="Crypto wallet tools for Flipper", + fap_version=(1, 13), + fap_description="Crypto wallet for Flipper", ) diff --git a/flipbip.h b/flipbip.h index ef7d493..4c3766a 100644 --- a/flipbip.h +++ b/flipbip.h @@ -14,7 +14,7 @@ #include "scenes/flipbip_scene.h" #include "views/flipbip_scene_1.h" -#define FLIPBIP_VERSION "v1.12.0" +#define FLIPBIP_VERSION "v1.13.0" #define COIN_BTC 0 #define COIN_DOGE 3 diff --git a/scenes/flipbip_scene_menu.c b/scenes/flipbip_scene_menu.c index 862be6d..e577794 100644 --- a/scenes/flipbip_scene_menu.c +++ b/scenes/flipbip_scene_menu.c @@ -1,7 +1,7 @@ #include "../flipbip.h" #include "../helpers/flipbip_file.h" -#define FLIPBIP_MENU_HEADER_TEXT "- FlipBIP wallet " FLIPBIP_VERSION " -" +#define FLIPBIP_SUBMENU_TEXT "- FlipBIP wallet " FLIPBIP_VERSION " -" enum SubmenuIndex { SubmenuIndexScene1BTC = 10, @@ -22,9 +22,10 @@ void flipbip_scene_menu_submenu_callback(void* context, uint32_t index) { void flipbip_scene_menu_on_enter(void* context) { FlipBip* app = context; + // FlipBIP header with version submenu_add_item( app->submenu, - FLIPBIP_MENU_HEADER_TEXT, + FLIPBIP_SUBMENU_TEXT, SubmenuIndexNOP, flipbip_scene_menu_submenu_callback, app); From 75f3c960140c6452f99677ec94385b3cda244d66 Mon Sep 17 00:00:00 2001 From: Struan Clark Date: Thu, 10 Aug 2023 17:10:28 -0600 Subject: [PATCH 05/15] chore: slight refactor of crypto lib for consistency --- lib/crypto/bip32.c | 2 ++ lib/crypto/memzero.c | 1 + lib/crypto/options.h | 7 ++++++- lib/crypto/rand.c | 10 +++++----- lib/crypto/rand.h | 1 + 5 files changed, 15 insertions(+), 6 deletions(-) diff --git a/lib/crypto/bip32.c b/lib/crypto/bip32.c index 09f00d6..efa511e 100644 --- a/lib/crypto/bip32.c +++ b/lib/crypto/bip32.c @@ -26,7 +26,9 @@ #include #include "address.h" +#if USE_NEM #include "aes/aes.h" +#endif #include "base58.h" #include "bignum.h" #include "bip32.h" diff --git a/lib/crypto/memzero.c b/lib/crypto/memzero.c index 64866ee..234f7dd 100644 --- a/lib/crypto/memzero.c +++ b/lib/crypto/memzero.c @@ -50,6 +50,7 @@ void memzero(void* const pnt, const size_t len) { SecureZeroMemory(pnt, len); #elif defined(HAVE_MEMSET_S) memset_s(pnt, (rsize_t)len, 0, (rsize_t)len); +// REMOVED - Flipper Zero does not have this function // #elif defined(HAVE_EXPLICIT_BZERO) // explicit_bzero(pnt, len); #elif defined(HAVE_EXPLICIT_MEMSET) diff --git a/lib/crypto/options.h b/lib/crypto/options.h index f0edcc6..8510cb3 100644 --- a/lib/crypto/options.h +++ b/lib/crypto/options.h @@ -86,9 +86,14 @@ #define USE_KECCAK 1 #endif -// add way how to mark confidential data +// add a way to mark confidential data #ifndef CONFIDENTIAL #define CONFIDENTIAL #endif +// use Flipper Zero hardware random number generator +#ifndef USE_FLIPPER_HAL_RANDOM +#define USE_FLIPPER_HAL_RANDOM 1 +#endif + #endif diff --git a/lib/crypto/rand.c b/lib/crypto/rand.c index a108587..64ee3d7 100644 --- a/lib/crypto/rand.c +++ b/lib/crypto/rand.c @@ -21,11 +21,9 @@ * OTHER DEALINGS IN THE SOFTWARE. */ -#define FLIPPER_HAL_RANDOM - #include "rand.h" -#ifdef FLIPPER_HAL_RANDOM +#if USE_FLIPPER_HAL_RANDOM // NOTE: // random32() and random_buffer() have been replaced in this implementation @@ -67,6 +65,8 @@ void random_buffer(uint8_t* buf, size_t len) { // The following code is platform independent // +static uint32_t seed = 0; + uint32_t random32(void) { // Linear congruential generator from Numerical Recipes // https://en.wikipedia.org/wiki/Linear_congruential_generator @@ -74,7 +74,7 @@ uint32_t random32(void) { return seed; } -void __attribute__((weak)) random_buffer(uint8_t *buf, size_t len) { +void random_buffer(uint8_t *buf, size_t len) { uint32_t r = 0; for (size_t i = 0; i < len; i++) { if (i % 4 == 0) { @@ -84,7 +84,7 @@ void __attribute__((weak)) random_buffer(uint8_t *buf, size_t len) { } } -#endif /* FLIPPER_HAL_RANDOM */ +#endif /* USE_FLIPPER_HAL_RANDOM */ uint32_t random_uniform(uint32_t n) { uint32_t x = 0, max = 0xFFFFFFFF - (0xFFFFFFFF % n); diff --git a/lib/crypto/rand.h b/lib/crypto/rand.h index fa85489..14c2bfc 100644 --- a/lib/crypto/rand.h +++ b/lib/crypto/rand.h @@ -26,6 +26,7 @@ #include #include +#include "options.h" void random_reseed(const uint32_t value); uint32_t random32(void); From 2e4023bfe9d91139dcb889dc31cae6c2ffaa13df Mon Sep 17 00:00:00 2001 From: Struan Clark Date: Thu, 10 Aug 2023 17:10:46 -0600 Subject: [PATCH 06/15] fix: remove keychain icon --- application.fam | 2 -- icons/Keychain_39x36.png | Bin 3775 -> 0 bytes views/flipbip_scene_1.c | 8 ++++---- 3 files changed, 4 insertions(+), 6 deletions(-) delete mode 100644 icons/Keychain_39x36.png diff --git a/application.fam b/application.fam index 6e5f866..bae1c0f 100644 --- a/application.fam +++ b/application.fam @@ -9,8 +9,6 @@ App( stack_size=3 * 1024, order=10, fap_icon="flipbip_10px.png", - fap_icon_assets="icons", - fap_icon_assets_symbol="flipbip", fap_private_libs=[ Lib( name="crypto", diff --git a/icons/Keychain_39x36.png b/icons/Keychain_39x36.png deleted file mode 100644 index d15850b5b7f70672f90ff6c67a3e12341071fc61..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3775 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 #include #include -#include "flipbip_icons.h" +// #include "flipbip_icons.h" #include "../helpers/flipbip_haptic.h" #include "../helpers/flipbip_string.h" #include "../helpers/flipbip_file.h" @@ -42,7 +42,7 @@ #define TEXT_NEW_WALLET "New wallet" #define TEXT_DEFAULT_COIN "Coin" #define TEXT_RECEIVE_ADDRESS "receive address:" -#define TEXT_DEFAULT_DERIV "m/44'/X'/0'/0" +// #define TEXT_DEFAULT_DERIV "m/44'/X'/0'/0" const char* TEXT_INFO = "-Scroll pages with up/down-" "p1,2) BIP39 Mnemonic/Seed" "p3) BIP32 Root Key " @@ -100,7 +100,7 @@ static CONFIDENTIAL char* s_disp_text4 = NULL; static CONFIDENTIAL char* s_disp_text5 = NULL; static CONFIDENTIAL char* s_disp_text6 = NULL; // Derivation path text -static const char* s_derivation_text = TEXT_DEFAULT_DERIV; +static const char* s_derivation_text = TEXT_DEFAULT_COIN; // TEXT_DEFAULT_DERIV; // Warning text static bool s_warn_insecure = false; #define WARN_INSECURE_TEXT_1 "Recommendation:" @@ -320,7 +320,7 @@ void flipbip_scene_1_draw(Canvas* canvas, FlipBipScene1Model* model) { canvas_set_font(canvas, FontPrimary); canvas_draw_str(canvas, 2, 10, TEXT_LOADING); canvas_draw_str(canvas, 7, 30, s_derivation_text); - canvas_draw_icon(canvas, 86, 22, &I_Keychain_39x36); + // canvas_draw_icon(canvas, 86, 22, &I_Keychain_39x36); if(s_warn_insecure) { canvas_set_font(canvas, FontSecondary); canvas_draw_str(canvas, 2, 50, WARN_INSECURE_TEXT_1); From 39c8dfe480930f0a0c5b612140f51e69fdb9afed Mon Sep 17 00:00:00 2001 From: Struan Clark Date: Thu, 10 Aug 2023 23:42:23 -0600 Subject: [PATCH 07/15] fix: remove haptic, add mnemonic import status text --- flipbip.c | 27 +++++++++++++++++--------- flipbip.h | 5 +++-- helpers/flipbip_haptic.c | 35 ---------------------------------- helpers/flipbip_haptic.h | 7 ------- scenes/flipbip_scene_menu.c | 9 ++++++--- scenes/flipbip_scene_scene_1.c | 31 +++++++++++++++++++----------- views/flipbip_scene_1.c | 18 ++++++++++------- 7 files changed, 58 insertions(+), 74 deletions(-) delete mode 100644 helpers/flipbip_haptic.c delete mode 100644 helpers/flipbip_haptic.h diff --git a/flipbip.c b/flipbip.c index 6ec2356..5d489a0 100644 --- a/flipbip.c +++ b/flipbip.c @@ -1,10 +1,14 @@ #include "flipbip.h" #include "helpers/flipbip_file.h" -#include "helpers/flipbip_haptic.h" +//#include "helpers/flipbip_haptic.h" // From: lib/crypto #include #include +#define MNEMONIC_MENU_DEFAULT "Import mnemonic seed" +#define MNEMONIC_MENU_SUCCESS "Import seed (success)" +#define MNEMONIC_MENU_FAILURE "Import seed (failure)" + bool flipbip_custom_event_callback(void* context, uint32_t event) { furi_assert(context); FlipBip* app = context; @@ -40,7 +44,7 @@ static void text_input_callback(void* context) { // reset input state app->input_state = FlipBipTextInputDefault; handled = true; - view_dispatcher_switch_to_view(app->view_dispatcher, FlipBipViewIdSettings); + //view_dispatcher_switch_to_view(app->view_dispatcher, FlipBipViewIdSettings); } else if(app->input_state == FlipBipTextInputMnemonic) { if(app->import_from_mnemonic == 1) { strcpy(app->import_mnemonic_text, app->input_text); @@ -54,11 +58,13 @@ static void text_input_callback(void* context) { status = FlipBipStatusSaveError; // 12 = save error if(status == FlipBipStatusSuccess) { + app->mnemonic_menu_text = MNEMONIC_MENU_SUCCESS; //notification_message(app->notification, &sequence_blink_cyan_100); - flipbip_play_happy_bump(app); + //flipbip_play_happy_bump(app); } else { + app->mnemonic_menu_text = MNEMONIC_MENU_FAILURE; //notification_message(app->notification, &sequence_blink_red_100); - flipbip_play_long_bump(app); + //flipbip_play_long_bump(app); } memzero(app->import_mnemonic_text, TEXT_BUFFER_SIZE); @@ -68,7 +74,9 @@ static void text_input_callback(void* context) { // reset input state app->input_state = FlipBipTextInputDefault; handled = true; - view_dispatcher_switch_to_view(app->view_dispatcher, FlipBipViewIdMenu); + // exit scene 1 instance that's being used for text input and go back to menu + scene_manager_previous_scene(app->scene_manager); + //view_dispatcher_switch_to_view(app->view_dispatcher, FlipBipViewIdMenu); } } @@ -77,17 +85,17 @@ static void text_input_callback(void* context) { memzero(app->input_text, TEXT_BUFFER_SIZE); // reset input state app->input_state = FlipBipTextInputDefault; - view_dispatcher_switch_to_view(app->view_dispatcher, FlipBipViewIdMenu); + //view_dispatcher_switch_to_view(app->view_dispatcher, FlipBipViewIdMenu); } } FlipBip* flipbip_app_alloc() { FlipBip* app = malloc(sizeof(FlipBip)); app->gui = furi_record_open(RECORD_GUI); - app->notification = furi_record_open(RECORD_NOTIFICATION); + //app->notification = furi_record_open(RECORD_NOTIFICATION); //Turn backlight on, believe me this makes testing your app easier - notification_message(app->notification, &sequence_display_backlight_on); + //notification_message(app->notification, &sequence_display_backlight_on); //Scene additions app->view_dispatcher = view_dispatcher_alloc(); @@ -111,6 +119,7 @@ FlipBip* flipbip_app_alloc() { app->bip44_coin = FlipBipCoinBTC0; // 0 (BTC) app->overwrite_saved_seed = 0; app->import_from_mnemonic = 0; + app->mnemonic_menu_text = MNEMONIC_MENU_DEFAULT; // Text input app->input_state = FlipBipTextInputDefault; @@ -163,7 +172,7 @@ void flipbip_app_free(FlipBip* app) { furi_record_close(RECORD_GUI); app->gui = NULL; - app->notification = NULL; + //app->notification = NULL; //Remove whatever is left memzero(app, sizeof(FlipBip)); diff --git a/flipbip.h b/flipbip.h index 4c3766a..f2b316a 100644 --- a/flipbip.h +++ b/flipbip.h @@ -5,7 +5,7 @@ #include #include #include -#include +//#include #include #include #include @@ -25,13 +25,14 @@ typedef struct { Gui* gui; - NotificationApp* notification; + // NotificationApp* notification; ViewDispatcher* view_dispatcher; Submenu* submenu; SceneManager* scene_manager; VariableItemList* variable_item_list; TextInput* text_input; FlipBipScene1* flipbip_scene_1; + char* mnemonic_menu_text; // Settings options int haptic; int bip39_strength; diff --git a/helpers/flipbip_haptic.c b/helpers/flipbip_haptic.c deleted file mode 100644 index c5608ef..0000000 --- a/helpers/flipbip_haptic.c +++ /dev/null @@ -1,35 +0,0 @@ -#include "flipbip_haptic.h" -#include "../flipbip.h" - -void flipbip_play_happy_bump(void* context) { - FlipBip* app = context; - if(app->haptic != 1) { - return; - } - notification_message(app->notification, &sequence_set_vibro_on); - furi_thread_flags_wait(0, FuriFlagWaitAny, 20); - notification_message(app->notification, &sequence_reset_vibro); -} - -void flipbip_play_bad_bump(void* context) { - FlipBip* app = context; - if(app->haptic != 1) { - return; - } - notification_message(app->notification, &sequence_set_vibro_on); - furi_thread_flags_wait(0, FuriFlagWaitAny, 100); - notification_message(app->notification, &sequence_reset_vibro); -} - -void flipbip_play_long_bump(void* context) { - FlipBip* app = context; - if(app->haptic != 1) { - return; - } - for(int i = 0; i < 4; i++) { - notification_message(app->notification, &sequence_set_vibro_on); - furi_thread_flags_wait(0, FuriFlagWaitAny, 50); - notification_message(app->notification, &sequence_reset_vibro); - furi_thread_flags_wait(0, FuriFlagWaitAny, 100); - } -} diff --git a/helpers/flipbip_haptic.h b/helpers/flipbip_haptic.h deleted file mode 100644 index cab1d3a..0000000 --- a/helpers/flipbip_haptic.h +++ /dev/null @@ -1,7 +0,0 @@ -#include - -void flipbip_play_happy_bump(void* context); - -void flipbip_play_bad_bump(void* context); - -void flipbip_play_long_bump(void* context); diff --git a/scenes/flipbip_scene_menu.c b/scenes/flipbip_scene_menu.c index e577794..ba80812 100644 --- a/scenes/flipbip_scene_menu.c +++ b/scenes/flipbip_scene_menu.c @@ -72,7 +72,7 @@ void flipbip_scene_menu_on_enter(void* context) { } submenu_add_item( app->submenu, - "Import from mnemonic", + app->mnemonic_menu_text, SubmenuIndexScene1Import, flipbip_scene_menu_submenu_callback, app); @@ -137,8 +137,11 @@ bool flipbip_scene_menu_on_event(void* context, SceneManagerEvent event) { } else if(event.event == SubmenuIndexScene1Import) { app->import_from_mnemonic = 1; app->input_state = FlipBipTextInputMnemonic; - text_input_set_header_text(app->text_input, "Enter mnemonic phrase"); - view_dispatcher_switch_to_view(app->view_dispatcher, FlipBipViewIdTextInput); + + scene_manager_set_scene_state( + app->scene_manager, FlipBipSceneMenu, SubmenuIndexScene1Import); + scene_manager_next_scene(app->scene_manager, FlipBipSceneScene_1); + return true; } else if(event.event == SubmenuIndexSettings) { scene_manager_set_scene_state( diff --git a/scenes/flipbip_scene_scene_1.c b/scenes/flipbip_scene_scene_1.c index 6f4064c..dfa12a8 100644 --- a/scenes/flipbip_scene_scene_1.c +++ b/scenes/flipbip_scene_scene_1.c @@ -11,8 +11,17 @@ void flipbip_scene_1_callback(FlipBipCustomEvent event, void* context) { void flipbip_scene_scene_1_on_enter(void* context) { furi_assert(context); FlipBip* app = context; - flipbip_scene_1_set_callback(app->flipbip_scene_1, flipbip_scene_1_callback, app); - view_dispatcher_switch_to_view(app->view_dispatcher, FlipBipViewIdScene1); + + if(app->import_from_mnemonic == 1) { + // handle mnemonic seed import mode with text input, this only + // uses this scene to have a correct stack os scenes + text_input_set_header_text(app->text_input, "Enter mnemonic phrase"); + view_dispatcher_switch_to_view(app->view_dispatcher, FlipBipViewIdTextInput); + } else { + // handle all other modes, these actually use this scene's logic + flipbip_scene_1_set_callback(app->flipbip_scene_1, flipbip_scene_1_callback, app); + view_dispatcher_switch_to_view(app->view_dispatcher, FlipBipViewIdScene1); + } } bool flipbip_scene_scene_1_on_event(void* context, SceneManagerEvent event) { @@ -21,16 +30,16 @@ bool flipbip_scene_scene_1_on_event(void* context, SceneManagerEvent event) { if(event.type == SceneManagerEventTypeCustom) { switch(event.event) { - case FlipBipCustomEventScene1Left: - case FlipBipCustomEventScene1Right: - break; - case FlipBipCustomEventScene1Up: - case FlipBipCustomEventScene1Down: - break; + // case FlipBipCustomEventScene1Left: + // case FlipBipCustomEventScene1Right: + // break; + // case FlipBipCustomEventScene1Up: + // case FlipBipCustomEventScene1Down: + // break; case FlipBipCustomEventScene1Back: - notification_message(app->notification, &sequence_reset_red); - notification_message(app->notification, &sequence_reset_green); - notification_message(app->notification, &sequence_reset_blue); + //notification_message(app->notification, &sequence_reset_red); + //notification_message(app->notification, &sequence_reset_green); + //notification_message(app->notification, &sequence_reset_blue); if(!scene_manager_search_and_switch_to_previous_scene( app->scene_manager, FlipBipSceneMenu)) { scene_manager_stop(app->scene_manager); diff --git a/views/flipbip_scene_1.c b/views/flipbip_scene_1.c index 8dd7cfc..40df0a4 100644 --- a/views/flipbip_scene_1.c +++ b/views/flipbip_scene_1.c @@ -6,8 +6,8 @@ //#include #include #include -// #include "flipbip_icons.h" -#include "../helpers/flipbip_haptic.h" +//#include "flipbip_icons.h" +//#include "../helpers/flipbip_haptic.h" #include "../helpers/flipbip_string.h" #include "../helpers/flipbip_file.h" // From: /lib/crypto @@ -663,7 +663,10 @@ void flipbip_scene_1_enter(void* context) { s_derivation_text = TEXT_NEW_WALLET; } - flipbip_play_happy_bump(app); + // Wait a beat to allow the display time to update to the loading screen + furi_thread_flags_wait(0, FuriFlagWaitAny, 20); + + //flipbip_play_happy_bump(app); //notification_message(app->notification, &sequence_blink_cyan_100); //flipbip_led_set_rgb(app, 255, 0, 0); @@ -678,7 +681,8 @@ void flipbip_scene_1_enter(void* context) { // nonzero status, free the mnemonic if(status != FlipBipStatusSuccess) { - memzero((void*)model->mnemonic, strlen(model->mnemonic)); + // calling strlen on mnemonic here can cause a crash, don't. + // it wasn't loaded properly anyways, no need to zero the memory free((void*)model->mnemonic); } @@ -686,15 +690,15 @@ void flipbip_scene_1_enter(void* context) { if(status == FlipBipStatusSaveError) { model->mnemonic = "ERROR:,Save error"; model->page = PAGE_MNEMONIC; - flipbip_play_long_bump(app); + //flipbip_play_long_bump(app); } else if(status == FlipBipStatusLoadError) { model->mnemonic = "ERROR:,Load error"; model->page = PAGE_MNEMONIC; - flipbip_play_long_bump(app); + //flipbip_play_long_bump(app); } else if(status == FlipBipStatusMnemonicCheckError) { model->mnemonic = "ERROR:,Mnemonic check error"; model->page = PAGE_MNEMONIC; - flipbip_play_long_bump(app); + //flipbip_play_long_bump(app); } // s_busy = false; From 49a22aace98f6ad4673dff4996a16028a82243bf Mon Sep 17 00:00:00 2001 From: Struan Clark Date: Thu, 10 Aug 2023 23:47:06 -0600 Subject: [PATCH 08/15] fix: text input behavior --- flipbip.c | 12 ++++++------ views/flipbip_scene_1.c | 1 - 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/flipbip.c b/flipbip.c index 5d489a0..13987ba 100644 --- a/flipbip.c +++ b/flipbip.c @@ -1,6 +1,5 @@ #include "flipbip.h" #include "helpers/flipbip_file.h" -//#include "helpers/flipbip_haptic.h" // From: lib/crypto #include #include @@ -44,7 +43,8 @@ static void text_input_callback(void* context) { // reset input state app->input_state = FlipBipTextInputDefault; handled = true; - //view_dispatcher_switch_to_view(app->view_dispatcher, FlipBipViewIdSettings); + // switch back to settings view + view_dispatcher_switch_to_view(app->view_dispatcher, FlipBipViewIdSettings); } else if(app->input_state == FlipBipTextInputMnemonic) { if(app->import_from_mnemonic == 1) { strcpy(app->import_mnemonic_text, app->input_text); @@ -85,7 +85,8 @@ static void text_input_callback(void* context) { memzero(app->input_text, TEXT_BUFFER_SIZE); // reset input state app->input_state = FlipBipTextInputDefault; - //view_dispatcher_switch_to_view(app->view_dispatcher, FlipBipViewIdMenu); + // something went wrong, switch to menu view + view_dispatcher_switch_to_view(app->view_dispatcher, FlipBipViewIdMenu); } } @@ -191,9 +192,8 @@ int32_t flipbip_app(void* p) { view_dispatcher_attach_to_gui(app->view_dispatcher, app->gui, ViewDispatcherTypeFullscreen); - scene_manager_next_scene(app->scene_manager, FlipBipSceneMenu); //Start with start screen - //scene_manager_next_scene(app->scene_manager, FlipBipSceneMenu); //if you want to directly start with Menu - + scene_manager_next_scene(app->scene_manager, FlipBipSceneMenu); //Start with menu + furi_hal_power_suppress_charge_enter(); view_dispatcher_run(app->view_dispatcher); diff --git a/views/flipbip_scene_1.c b/views/flipbip_scene_1.c index 40df0a4..eefd0bc 100644 --- a/views/flipbip_scene_1.c +++ b/views/flipbip_scene_1.c @@ -7,7 +7,6 @@ #include #include //#include "flipbip_icons.h" -//#include "../helpers/flipbip_haptic.h" #include "../helpers/flipbip_string.h" #include "../helpers/flipbip_file.h" // From: /lib/crypto From 656c41041d89ec06f360139c1b57de0c43f427a9 Mon Sep 17 00:00:00 2001 From: Struan Clark Date: Thu, 10 Aug 2023 23:58:57 -0600 Subject: [PATCH 09/15] chore: comments --- flipbip.c | 10 +++++----- scenes/flipbip_scene_menu.c | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/flipbip.c b/flipbip.c index 13987ba..966c805 100644 --- a/flipbip.c +++ b/flipbip.c @@ -95,10 +95,10 @@ FlipBip* flipbip_app_alloc() { app->gui = furi_record_open(RECORD_GUI); //app->notification = furi_record_open(RECORD_NOTIFICATION); - //Turn backlight on, believe me this makes testing your app easier + // Turn backlight on, believe me this makes testing your app easier //notification_message(app->notification, &sequence_display_backlight_on); - //Scene additions + // Scene additions app->view_dispatcher = view_dispatcher_alloc(); view_dispatcher_enable_queue(app->view_dispatcher); @@ -143,13 +143,13 @@ FlipBip* flipbip_app_alloc() { (void*)app, app->input_text, TEXT_BUFFER_SIZE, - //clear default text + // clear default text true); - text_input_set_header_text(app->text_input, "Input"); + //text_input_set_header_text(app->text_input, "Input"); view_dispatcher_add_view( app->view_dispatcher, FlipBipViewIdTextInput, text_input_get_view(app->text_input)); - //End Scene Additions + // End Scene Additions return app; } diff --git a/scenes/flipbip_scene_menu.c b/scenes/flipbip_scene_menu.c index ba80812..72d2f2b 100644 --- a/scenes/flipbip_scene_menu.c +++ b/scenes/flipbip_scene_menu.c @@ -1,7 +1,7 @@ #include "../flipbip.h" #include "../helpers/flipbip_file.h" -#define FLIPBIP_SUBMENU_TEXT "- FlipBIP wallet " FLIPBIP_VERSION " -" +#define FLIPBIP_SUBMENU_TEXT "* FlipBIP wallet " FLIPBIP_VERSION " *" enum SubmenuIndex { SubmenuIndexScene1BTC = 10, From 26552bdaac632a53998bc0aab59bfc906ec2d140 Mon Sep 17 00:00:00 2001 From: Struan Clark Date: Fri, 11 Aug 2023 00:00:33 -0600 Subject: [PATCH 10/15] chore: fmt --- flipbip.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flipbip.c b/flipbip.c index 966c805..23cada1 100644 --- a/flipbip.c +++ b/flipbip.c @@ -193,7 +193,7 @@ int32_t flipbip_app(void* p) { view_dispatcher_attach_to_gui(app->view_dispatcher, app->gui, ViewDispatcherTypeFullscreen); scene_manager_next_scene(app->scene_manager, FlipBipSceneMenu); //Start with menu - + furi_hal_power_suppress_charge_enter(); view_dispatcher_run(app->view_dispatcher); From 7dceca60efb5b4be0b9663e4a91502368668a67d Mon Sep 17 00:00:00 2001 From: Struan Clark Date: Fri, 11 Aug 2023 00:20:22 -0600 Subject: [PATCH 11/15] fix: remove haptic setting, cleanup --- flipbip.c | 3 +-- flipbip.h | 8 +------- helpers/flipbip_custom_event.h | 6 ------ scenes/flipbip_scene_menu.c | 2 +- scenes/flipbip_scene_settings.c | 23 ----------------------- 5 files changed, 3 insertions(+), 39 deletions(-) diff --git a/flipbip.c b/flipbip.c index 23cada1..7a72376 100644 --- a/flipbip.c +++ b/flipbip.c @@ -6,7 +6,7 @@ #define MNEMONIC_MENU_DEFAULT "Import mnemonic seed" #define MNEMONIC_MENU_SUCCESS "Import seed (success)" -#define MNEMONIC_MENU_FAILURE "Import seed (failure)" +#define MNEMONIC_MENU_FAILURE "Import seed (failed!)" bool flipbip_custom_event_callback(void* context, uint32_t event) { furi_assert(context); @@ -112,7 +112,6 @@ FlipBip* flipbip_app_alloc() { app->submenu = submenu_alloc(); // Settings - app->haptic = FlipBipHapticOn; app->bip39_strength = FlipBipStrength256; // 256 bits (24 words) app->passphrase = FlipBipPassphraseOff; diff --git a/flipbip.h b/flipbip.h index f2b316a..9f5994b 100644 --- a/flipbip.h +++ b/flipbip.h @@ -14,7 +14,7 @@ #include "scenes/flipbip_scene.h" #include "views/flipbip_scene_1.h" -#define FLIPBIP_VERSION "v1.13.0" +#define FLIPBIP_VERSION "v1.13" #define COIN_BTC 0 #define COIN_DOGE 3 @@ -34,7 +34,6 @@ typedef struct { FlipBipScene1* flipbip_scene_1; char* mnemonic_menu_text; // Settings options - int haptic; int bip39_strength; int passphrase; // Main menu options @@ -56,11 +55,6 @@ typedef enum { FlipBipViewIdTextInput, } FlipBipViewId; -typedef enum { - FlipBipHapticOff, - FlipBipHapticOn, -} FlipBipHapticState; - typedef enum { FlipBipStrength128, FlipBipStrength192, diff --git a/helpers/flipbip_custom_event.h b/helpers/flipbip_custom_event.h index 2dbaf51..882c504 100644 --- a/helpers/flipbip_custom_event.h +++ b/helpers/flipbip_custom_event.h @@ -1,12 +1,6 @@ #pragma once typedef enum { - FlipBipCustomEventStartscreenUp, - FlipBipCustomEventStartscreenDown, - FlipBipCustomEventStartscreenLeft, - FlipBipCustomEventStartscreenRight, - FlipBipCustomEventStartscreenOk, - FlipBipCustomEventStartscreenBack, FlipBipCustomEventScene1Up, FlipBipCustomEventScene1Down, FlipBipCustomEventScene1Left, diff --git a/scenes/flipbip_scene_menu.c b/scenes/flipbip_scene_menu.c index 72d2f2b..c685d7f 100644 --- a/scenes/flipbip_scene_menu.c +++ b/scenes/flipbip_scene_menu.c @@ -1,7 +1,7 @@ #include "../flipbip.h" #include "../helpers/flipbip_file.h" -#define FLIPBIP_SUBMENU_TEXT "* FlipBIP wallet " FLIPBIP_VERSION " *" +#define FLIPBIP_SUBMENU_TEXT "** FlipBIP wallet " FLIPBIP_VERSION " **" enum SubmenuIndex { SubmenuIndexScene1BTC = 10, diff --git a/scenes/flipbip_scene_settings.c b/scenes/flipbip_scene_settings.c index 2fbbb6e..0e43033 100644 --- a/scenes/flipbip_scene_settings.c +++ b/scenes/flipbip_scene_settings.c @@ -6,15 +6,6 @@ #define TEXT_LABEL_ON "ON" #define TEXT_LABEL_OFF "OFF" -const char* const haptic_text[2] = { - TEXT_LABEL_OFF, - TEXT_LABEL_ON, -}; -const uint32_t haptic_value[2] = { - FlipBipHapticOff, - FlipBipHapticOn, -}; - const char* const bip39_strength_text[3] = { "12", "18", @@ -35,13 +26,6 @@ const uint32_t passphrase_value[2] = { FlipBipPassphraseOn, }; -static void flipbip_scene_settings_set_haptic(VariableItem* item) { - FlipBip* app = variable_item_get_context(item); - uint8_t index = variable_item_get_current_value_index(item); - variable_item_set_current_value_text(item, haptic_text[index]); - app->haptic = haptic_value[index]; -} - static void flipbip_scene_settings_set_bip39_strength(VariableItem* item) { FlipBip* app = variable_item_get_context(item); uint8_t index = variable_item_get_current_value_index(item); @@ -92,13 +76,6 @@ void flipbip_scene_settings_on_enter(void* context) { variable_item_set_current_value_index(item, value_index); variable_item_set_current_value_text(item, passphrase_text[value_index]); - // Vibro on/off - item = variable_item_list_add( - app->variable_item_list, "Vibro/Haptic:", 2, flipbip_scene_settings_set_haptic, app); - value_index = value_index_uint32(app->haptic, haptic_value, 2); - variable_item_set_current_value_index(item, value_index); - variable_item_set_current_value_text(item, haptic_text[value_index]); - view_dispatcher_switch_to_view(app->view_dispatcher, FlipBipViewIdSettings); } From 3d488648c38b112cda9f59efd86ebc5513c3c7b2 Mon Sep 17 00:00:00 2001 From: Struan Clark Date: Fri, 11 Aug 2023 00:22:31 -0600 Subject: [PATCH 12/15] chore: credit --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 446128a..1a4726c 100644 --- a/README.md +++ b/README.md @@ -43,7 +43,7 @@ The application will be compiled and copied onto your device - Generation of offline `m/44'/0'/0'/0` BTC wallet - Generation of offline `m/44'/60'/0'/0` ETH wallet (coded from the $SPORK Castle of ETHDenver 2023!) - Generation of offline `m/44'/3'/0'/0` DOGE wallet - - Generation of offline `m/44'/133'/0'/0` ZEC transparent address wallet + - Generation of offline `m/44'/133'/0'/0` ZEC transparent address wallet (by @wh00hw) - Similar features to: https://iancoleman.io/bip39/ - Saving wallets to SD card - Wallets are saved to SD card upon creation in `apps_data/flipbip` From ccf7debd57ad29a8151fc2ae8d3ac1491cc4a9d3 Mon Sep 17 00:00:00 2001 From: Struan Clark Date: Fri, 11 Aug 2023 00:24:52 -0600 Subject: [PATCH 13/15] chore: spacing --- scenes/flipbip_scene_menu.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/scenes/flipbip_scene_menu.c b/scenes/flipbip_scene_menu.c index c685d7f..58d657f 100644 --- a/scenes/flipbip_scene_menu.c +++ b/scenes/flipbip_scene_menu.c @@ -137,11 +137,9 @@ bool flipbip_scene_menu_on_event(void* context, SceneManagerEvent event) { } else if(event.event == SubmenuIndexScene1Import) { app->import_from_mnemonic = 1; app->input_state = FlipBipTextInputMnemonic; - scene_manager_set_scene_state( app->scene_manager, FlipBipSceneMenu, SubmenuIndexScene1Import); scene_manager_next_scene(app->scene_manager, FlipBipSceneScene_1); - return true; } else if(event.event == SubmenuIndexSettings) { scene_manager_set_scene_state( From 15657826722f0ea277d2f5f065bb9142df837c52 Mon Sep 17 00:00:00 2001 From: Struan Clark Date: Fri, 11 Aug 2023 00:34:32 -0600 Subject: [PATCH 14/15] chore: spelling, move param setting --- scenes/flipbip_scene_menu.c | 1 - scenes/flipbip_scene_scene_1.c | 3 ++- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/scenes/flipbip_scene_menu.c b/scenes/flipbip_scene_menu.c index 58d657f..928a002 100644 --- a/scenes/flipbip_scene_menu.c +++ b/scenes/flipbip_scene_menu.c @@ -136,7 +136,6 @@ bool flipbip_scene_menu_on_event(void* context, SceneManagerEvent event) { return true; } else if(event.event == SubmenuIndexScene1Import) { app->import_from_mnemonic = 1; - app->input_state = FlipBipTextInputMnemonic; scene_manager_set_scene_state( app->scene_manager, FlipBipSceneMenu, SubmenuIndexScene1Import); scene_manager_next_scene(app->scene_manager, FlipBipSceneScene_1); diff --git a/scenes/flipbip_scene_scene_1.c b/scenes/flipbip_scene_scene_1.c index dfa12a8..3b0f1ff 100644 --- a/scenes/flipbip_scene_scene_1.c +++ b/scenes/flipbip_scene_scene_1.c @@ -14,7 +14,8 @@ void flipbip_scene_scene_1_on_enter(void* context) { if(app->import_from_mnemonic == 1) { // handle mnemonic seed import mode with text input, this only - // uses this scene to have a correct stack os scenes + // uses this scene to have a correct stack of scenes + app->input_state = FlipBipTextInputMnemonic; text_input_set_header_text(app->text_input, "Enter mnemonic phrase"); view_dispatcher_switch_to_view(app->view_dispatcher, FlipBipViewIdTextInput); } else { From b426b69d5838f9f059762e01b0f414e0627cd670 Mon Sep 17 00:00:00 2001 From: Struan Clark Date: Fri, 11 Aug 2023 00:38:38 -0600 Subject: [PATCH 15/15] chore: bump ci to 0.88.0 --- .github/workflows/build.yml | 2 +- .github/workflows/release.yml | 2 +- README.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 683d162..bfbdf49 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -7,7 +7,7 @@ on: - develop env: - firmware_version: '0.86.1' + firmware_version: '0.88.0' jobs: build: diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index ca62b99..8e9d151 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -6,7 +6,7 @@ on: - 'v[0-9]+.[0-9]+.[0-9]+' env: - firmware_version: '0.86.1' + firmware_version: '0.88.0' jobs: build: diff --git a/README.md b/README.md index 1a4726c..8dc5b05 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ [![Build](https://github.com/xtruan/FlipBIP/actions/workflows/build.yml/badge.svg?branch=main)](https://github.com/xtruan/FlipBIP/actions/workflows/build.yml) ## Crypto toolkit for Flipper Zero -- Last built against `0.86.1` Flipper Zero firmware release +- Last built against `0.88.0` Flipper Zero firmware release - Using Trezor crypto libs from `core/v2.5.3` release - Included in [RogueMaster Custom Firmware](https://github.com/RogueMaster/flipperzero-firmware-wPlugins) - NOTE: This app uses very close to the maximum Flipper Zero RAM. If you get `furi_check failed` on launch, try running again!