Skip to content

Commit ef33289

Browse files
authored
Merge pull request #77 from LedgerHQ/y333/settings_management
Y333/settings management
2 parents 5718519 + 1181357 commit ef33289

File tree

121 files changed

+23
-15
lines changed

Some content is hidden

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

121 files changed

+23
-15
lines changed

Cargo.lock

Lines changed: 5 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
[package]
22
name = "app-boilerplate-rust"
3-
version = "1.6.1"
3+
version = "1.6.2"
44
authors = ["yhql", "agrojean-ledger"]
55
edition = "2021"
66

77
[dependencies]
8-
ledger_device_sdk = { version="1.16.1" }
8+
ledger_device_sdk = "1.17.2"
99
include_gif = "1.2.0"
1010
serde = {version="1.0.192", default_features = false, features = ["derive"]}
1111
serde-json-core = { git = "https://github.com/rust-embedded-community/serde-json-core"}

src/app_ui/menu.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ pub fn ui_menu_main(_: &mut Comm) -> NbglHomeAndSettings {
8383
// Display the home screen.
8484
NbglHomeAndSettings::new()
8585
.glyph(&FERRIS)
86-
.settings(settings.get_mut_ref(), &settings_strings)
86+
.settings(settings.get_mut(), &settings_strings)
8787
.infos(
8888
"Boilerplate",
8989
env!("CARGO_PKG_VERSION"),

src/app_ui/sign.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ pub fn ui_display_tx(tx: &Tx) -> Result<bool, AppSW> {
8181
const FERRIS: NbglGlyph = NbglGlyph::from_include(include_gif!("crab_64x64.gif", NBGL));
8282
// Create NBGL review. Maximum number of fields and string buffer length can be customised
8383
// with constant generic parameters of NbglReview. Default values are 32 and 1024 respectively.
84-
let mut review: NbglReview = NbglReview::new()
84+
let review: NbglReview = NbglReview::new()
8585
.titles(
8686
"Review transaction\nto send CRAB",
8787
"",

src/settings.rs

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ use ledger_device_sdk::NVMData;
55
const SETTINGS_SIZE: usize = 10;
66
#[link_section = ".nvm_data"]
77
static mut DATA: NVMData<AtomicStorage<[u8; SETTINGS_SIZE]>> =
8-
NVMData::new(AtomicStorage::new(&[0u8; 10]));
8+
NVMData::new(AtomicStorage::new(&[0u8; SETTINGS_SIZE]));
99

1010
#[derive(Clone, Copy)]
1111
pub struct Settings;
@@ -19,23 +19,31 @@ impl Default for Settings {
1919
impl Settings {
2020
#[inline(never)]
2121
#[allow(unused)]
22-
pub fn get_mut_ref(&mut self) -> &mut AtomicStorage<[u8; SETTINGS_SIZE]> {
22+
pub fn get_mut(&mut self) -> &mut AtomicStorage<[u8; SETTINGS_SIZE]> {
2323
return unsafe { DATA.get_mut() };
2424
}
2525

26+
#[inline(never)]
27+
#[allow(unused)]
28+
pub fn get_ref(&mut self) -> &AtomicStorage<[u8; SETTINGS_SIZE]> {
29+
return unsafe { DATA.get_ref() };
30+
}
31+
2632
#[allow(unused)]
2733
pub fn get_element(&self, index: usize) -> u8 {
28-
let settings = unsafe { DATA.get_mut() };
29-
settings.get_ref()[index]
34+
let storage = unsafe { DATA.get_ref() };
35+
let settings = storage.get_ref();
36+
settings[index]
3037
}
3138

3239
#[allow(unused)]
3340
// Not used in this boilerplate, but can be used to set a value in the settings
3441
pub fn set_element(&self, index: usize, value: u8) {
35-
let mut updated_data: [u8; SETTINGS_SIZE] = unsafe { *DATA.get_mut().get_ref() };
42+
let storage = unsafe { DATA.get_mut() };
43+
let mut updated_data = *storage.get_ref();
3644
updated_data[index] = value;
3745
unsafe {
38-
DATA.get_mut().update(&updated_data);
46+
storage.update(&updated_data);
3947
}
4048
}
4149
}

tests/.DS_Store

6 KB
Binary file not shown.
175 Bytes
-1 Bytes
-3 Bytes
0 Bytes

0 commit comments

Comments
 (0)