Skip to content

Commit 1142d4f

Browse files
Merge pull request #7 from coderofstuff/flex-support
Flex support
2 parents e176974 + c2c1e44 commit 1142d4f

File tree

326 files changed

+168
-436
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

326 files changed

+168
-436
lines changed

.gitignore

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,4 +29,6 @@ doc/html
2929
doc/latex
3030

3131
.DS_Store
32-
zz-*
32+
zz-*
33+
34+
output-scan-build/

Makefile

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ APPNAME = "Kaspa"
3030
# Application version
3131
APPVERSION_M = 1
3232
APPVERSION_N = 0
33-
APPVERSION_P = 2
33+
APPVERSION_P = 3
3434
APPVERSION = "$(APPVERSION_M).$(APPVERSION_N).$(APPVERSION_P)"
3535

3636
ifeq ($(TARGET_NAME),TARGET_NANOS)
@@ -53,6 +53,7 @@ ICON_NANOS = icons/nanos_kaspa_logo.gif
5353
ICON_NANOX = icons/nanox_kaspa_logo.gif
5454
ICON_NANOSP = icons/nanox_kaspa_logo.gif
5555
ICON_STAX = icons/stax_kaspa_logo_32px.gif
56+
ICON_FLEX = icons/stax_kaspa_logo_40px.gif
5657

5758
# Application allowed derivation curves.
5859
# Possibles curves are: secp256k1, secp256r1, ed25519 and bls12381g1

icons/stax_kaspa_logo_40px.gif

416 Bytes
Loading

ledger_app.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[app]
22
build_directory = "./"
33
sdk = "C"
4-
devices = ["nanos", "nanox", "nanos+", "stax"]
4+
devices = ["flex", "nanos", "nanox", "nanos+", "stax"]
55

66
[tests]
77
unit_directory = "./unit-tests/"

src/ui/menu_nbgl.c

Lines changed: 24 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -30,31 +30,37 @@
3030
#include "../globals.h"
3131
#include "menu.h"
3232

33+
// -----------------------------------------------------------
34+
// ----------------------- HOME PAGE -------------------------
35+
// -----------------------------------------------------------
36+
3337
void app_quit(void) {
3438
// exit app here
3539
os_sched_exit(-1);
3640
}
3741

38-
void ui_menu_main(void) {
39-
nbgl_useCaseHome(APPNAME, &C_stax_app_kaspa_64px, NULL, false, ui_menu_about, app_quit);
40-
}
41-
42-
// 'About' menu
42+
// -----------------------------------------------------------
43+
// --------------------- SETTINGS MENU -----------------------
44+
// -----------------------------------------------------------
45+
#define SETTING_INFO_NB 2
46+
static const char* const INFO_TYPES[SETTING_INFO_NB] = {"Version", "Developer"};
47+
static const char* const INFO_CONTENTS[SETTING_INFO_NB] = {APPVERSION, "coderofstuff"};
4348

44-
static const char* const INFO_TYPES[] = {"Version", "Developer"};
45-
static const char* const INFO_CONTENTS[] = {APPVERSION, "coderofstuff"};
49+
static const nbgl_contentInfoList_t infoList = {
50+
.nbInfos = SETTING_INFO_NB,
51+
.infoTypes = INFO_TYPES,
52+
.infoContents = INFO_CONTENTS,
53+
};
4654

47-
static bool nav_callback(uint8_t page, nbgl_pageContent_t* content) {
48-
UNUSED(page);
49-
content->type = INFOS_LIST;
50-
content->infosList.nbInfos = 2;
51-
content->infosList.infoTypes = (const char**) INFO_TYPES;
52-
content->infosList.infoContents = (const char**) INFO_CONTENTS;
53-
return true;
54-
}
55-
56-
void ui_menu_about() {
57-
nbgl_useCaseSettings(APPNAME, 0, 1, false, ui_menu_main, nav_callback, NULL);
55+
void ui_menu_main(void) {
56+
nbgl_useCaseHomeAndSettings(APPNAME,
57+
&C_stax_app_kaspa_64px,
58+
NULL,
59+
INIT_HOME_PAGE,
60+
NULL,
61+
&infoList,
62+
NULL,
63+
app_quit);
5864
}
5965

6066
#endif

src/ui/nbgl_display_address.c

Lines changed: 21 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -29,18 +29,17 @@
2929
#include "os.h"
3030
#include "glyphs.h"
3131
#include "nbgl_use_case.h"
32+
#include "io.h"
33+
#include "bip32.h"
34+
#include "format.h"
3235

3336
#include "display.h"
3437
#include "constants.h"
3538
#include "../globals.h"
36-
#include "io.h"
3739
#include "../sw.h"
3840
#include "../address.h"
3941
#include "action/validate.h"
40-
#include "../types.h"
4142
#include "../transaction/types.h"
42-
#include "bip32.h"
43-
#include "format.h"
4443
#include "../menu.h"
4544

4645
static char g_address[ECDSA_ADDRESS_LEN + 6];
@@ -49,37 +48,16 @@ static char g_bip32_path[60];
4948
static nbgl_layoutTagValue_t pairs[1];
5049
static nbgl_layoutTagValueList_t pairList;
5150

52-
static void confirm_address_rejection(void) {
53-
// display a status page and go back to main
54-
validate_pubkey(false);
55-
nbgl_useCaseStatus("Address verification\ncancelled", false, ui_menu_main);
56-
}
57-
58-
static void confirm_address_approval(void) {
59-
// display a success status page and go back to main
60-
validate_pubkey(true);
61-
nbgl_useCaseStatus("ADDRESS\nVERIFIED", true, ui_menu_main);
62-
}
63-
6451
static void review_choice(bool confirm) {
52+
// Answer, display a status page and go back to main
53+
validate_pubkey(confirm);
6554
if (confirm) {
66-
confirm_address_approval();
55+
nbgl_useCaseReviewStatus(STATUS_TYPE_ADDRESS_VERIFIED, ui_menu_main);
6756
} else {
68-
confirm_address_rejection();
57+
nbgl_useCaseReviewStatus(STATUS_TYPE_ADDRESS_REJECTED, ui_menu_main);
6958
}
7059
}
7160

72-
static void continue_review(void) {
73-
// Fill pairs
74-
pairs[0].item = "BIP32 Path";
75-
pairs[0].value = g_bip32_path;
76-
77-
pairList.nbMaxLinesForValue = 0;
78-
pairList.nbPairs = 1;
79-
pairList.pairs = pairs;
80-
nbgl_useCaseAddressConfirmationExt(g_address, review_choice, &pairList);
81-
}
82-
8361
int ui_display_address() {
8462
if (G_context.req_type != CONFIRM_ADDRESS || G_context.state != STATE_NONE) {
8563
G_context.state = STATE_NONE;
@@ -101,12 +79,20 @@ int ui_display_address() {
10179
}
10280
snprintf(g_address, sizeof(g_address), "%.*s", sizeof(address), address);
10381

104-
nbgl_useCaseReviewStart(&C_stax_app_kaspa_64px,
105-
"Verify KAS address",
106-
NULL,
107-
"Cancel",
108-
continue_review,
109-
confirm_address_rejection);
82+
// Fill pairs
83+
pairs[0].item = "BIP32 Path";
84+
pairs[0].value = g_bip32_path;
85+
86+
pairList.nbMaxLinesForValue = 0;
87+
pairList.nbPairs = 1;
88+
pairList.pairs = pairs;
89+
90+
nbgl_useCaseAddressReview(g_address,
91+
&pairList,
92+
&C_stax_app_kaspa_64px,
93+
"Verify KAS address",
94+
NULL,
95+
review_choice);
11096
return 0;
11197
}
11298

src/ui/nbgl_display_message.c

Lines changed: 27 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -21,85 +21,45 @@
2121
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
2222
* SOFTWARE.
2323
*****************************************************************************/
24+
2425
#ifdef HAVE_NBGL
2526

2627
#include <stdbool.h> // bool
2728
#include <string.h> // memset
2829

2930
#include "os.h"
3031
#include "glyphs.h"
32+
#include "os_io_seproxyhal.h"
3133
#include "nbgl_use_case.h"
34+
#include "io.h"
35+
#include "bip32.h"
36+
#include "format.h"
3237

3338
#include "display.h"
3439
#include "constants.h"
3540
#include "../globals.h"
36-
#include "io.h"
3741
#include "../sw.h"
3842
#include "../address.h"
3943
#include "action/validate.h"
40-
#include "../types.h"
4144
#include "../transaction/types.h"
42-
#include "bip32.h"
4345
#include "../common/format_local.h"
44-
#include "format.h"
4546
#include "../menu.h"
4647

4748
static char g_message[MAX_MESSAGE_LEN];
4849
static char g_bip32_path[60];
4950

5051
static nbgl_layoutTagValue_t pairs[2];
5152
static nbgl_layoutTagValueList_t pairList;
52-
static nbgl_pageInfoLongPress_t infoLongPress;
53-
54-
static void confirm_message_rejection(void) {
55-
// display a status page and go back to main
56-
validate_message(false);
57-
nbgl_useCaseStatus("Message signing\ncancelled", false, ui_menu_main);
58-
}
59-
60-
static void ask_message_rejection_confirmation(void) {
61-
// display a choice to confirm/cancel rejection
62-
nbgl_useCaseConfirm("Reject message?",
63-
NULL,
64-
"Yes, Reject",
65-
"Go back to message",
66-
confirm_message_rejection);
67-
}
68-
69-
static void confirm_message_approval(void) {
70-
// display a success status page and go back to main
71-
validate_message(true);
72-
nbgl_useCaseStatus("MESSAGE\nSIGNED", true, ui_menu_main);
73-
}
7453

7554
static void review_message_choice(bool confirm) {
55+
validate_message(confirm);
7656
if (confirm) {
77-
confirm_message_approval();
57+
nbgl_useCaseReviewStatus(STATUS_TYPE_MESSAGE_SIGNED, ui_menu_main);
7858
} else {
79-
ask_message_rejection_confirmation();
59+
nbgl_useCaseReviewStatus(STATUS_TYPE_MESSAGE_REJECTED, ui_menu_main);
8060
}
8161
}
8262

83-
static void continue_message_review(void) {
84-
// Fill pairs
85-
pairs[0].item = "BIP32 Path";
86-
pairs[0].value = g_bip32_path;
87-
pairs[1].item = "Message";
88-
pairs[1].value = g_message;
89-
90-
// Setup list
91-
pairList.nbMaxLinesForValue = 0;
92-
pairList.nbPairs = 2;
93-
pairList.pairs = pairs;
94-
95-
// Info long press
96-
infoLongPress.icon = &C_stax_app_kaspa_64px;
97-
infoLongPress.text = "Sign message?";
98-
infoLongPress.longPressText = "Hold to sign";
99-
100-
nbgl_useCaseStaticReview(&pairList, &infoLongPress, "Reject message", review_message_choice);
101-
}
102-
10363
int ui_display_message() {
10464
if (G_context.req_type != CONFIRM_MESSAGE || G_context.state != STATE_NONE) {
10565
G_context.state = STATE_NONE;
@@ -120,12 +80,25 @@ int ui_display_message() {
12080
(char *) G_context.msg_info.message,
12181
G_context.msg_info.message_len);
12282

123-
nbgl_useCaseReviewStart(&C_stax_app_kaspa_64px,
124-
"Review Message",
125-
NULL,
126-
"Reject message",
127-
continue_message_review,
128-
ask_message_rejection_confirmation);
83+
// Fill pairs
84+
pairs[0].item = "BIP32 Path";
85+
pairs[0].value = g_bip32_path;
86+
pairs[1].item = "Message";
87+
pairs[1].value = g_message;
88+
89+
// Setup list
90+
pairList.nbMaxLinesForValue = 0;
91+
pairList.nbPairs = 2;
92+
pairList.pairs = pairs;
93+
94+
// Start review flow
95+
nbgl_useCaseReview(TYPE_MESSAGE,
96+
&pairList,
97+
&C_stax_app_kaspa_64px,
98+
"Review message",
99+
NULL,
100+
"Sign message?",
101+
review_message_choice);
129102
return 0;
130103
}
131104

0 commit comments

Comments
 (0)