@@ -168,78 +168,78 @@ static uint16_t prepare_coin_specific_data_tlv(
168
168
coin_specific_data , & coin_data_len , & coin_data_addr );
169
169
}
170
170
171
- static void purge_coin_specific_data () {
172
- // Store all the unique data length and address in an array
173
- Coin_Type coin_type_arr [MAX_UNIQUE_COIN_COUNT ] = {COIN_TYPE_NEAR };
174
- struct meta_data_t {
175
- Coin_Specific_Data_Struct data_struct ;
176
- uint16_t data_length ;
177
- uint32_t data_addr ;
178
- } meta_data_arr [MAX_UNIQUE_COIN_COUNT * MAX_WALLETS_ALLOWED ] = {0 };
179
-
180
- for (size_t coin_type_index = 0 ; coin_type_index < MAX_UNIQUE_COIN_COUNT ;
181
- coin_type_index ++ ) {
182
- for (size_t wallet_id_index = 0 ; wallet_id_index < MAX_WALLETS_ALLOWED ;
183
- wallet_id_index ++ ) {
184
- size_t current_index =
185
- coin_type_index * MAX_WALLETS_ALLOWED + wallet_id_index ;
186
-
187
- meta_data_arr [current_index ].data_length = 0 ;
188
- meta_data_arr [current_index ].data_addr = 0 ;
189
-
190
- meta_data_arr [current_index ].data_struct .coin_type =
191
- coin_type_arr [coin_type_index ];
192
- memcpy (meta_data_arr [current_index ].data_struct .wallet_id ,
193
- get_wallet_id (wallet_id_index ),
194
- WALLET_ID_SIZE );
195
- find_latest_coin_data (& meta_data_arr [current_index ].data_struct ,
196
- & meta_data_arr [current_index ].data_length ,
197
- & meta_data_arr [current_index ].data_addr );
198
-
199
- if (meta_data_arr [current_index ].data_length > 0 &&
200
- FLASH_COIN_SPECIFIC_BASE_ADDRESS <
201
- meta_data_arr [current_index ].data_addr &&
202
- meta_data_arr [current_index ].data_addr +
203
- meta_data_arr [current_index ].data_length <
204
- FLASH_END ) {
205
- // Allocate a proper size array to store the data
206
- meta_data_arr [current_index ].data_struct .coin_data =
207
- (uint8_t * )malloc (meta_data_arr [current_index ].data_length );
208
- ASSERT (meta_data_arr [current_index ].data_struct .coin_data != NULL );
209
- read_cmd (meta_data_arr [current_index ].data_addr ,
210
- (uint32_t * )meta_data_arr [current_index ].data_struct .coin_data ,
211
- meta_data_arr [current_index ].data_length );
212
- }
213
- }
214
- }
215
-
216
- // Erase everything from flash
217
- erase_flash_coin_specific_data ();
218
-
219
- // Write the data back to flash
220
- for (size_t i = 0 ; i < MAX_UNIQUE_COIN_COUNT * MAX_WALLETS_ALLOWED ; i ++ ) {
221
- if (meta_data_arr [i ].data_length > 0 &&
222
- FLASH_COIN_SPECIFIC_BASE_ADDRESS < meta_data_arr [i ].data_addr &&
223
- meta_data_arr [i ].data_addr + meta_data_arr [i ].data_length < FLASH_END ) {
224
- uint16_t data_length =
225
- (3 + WALLET_ID_SIZE ) + (3 + meta_data_arr [i ].data_length );
226
- uint16_t tlv_size = 6 + data_length ;
227
- tlv_size = GET_NEXT_MULTIPLE_OF_8 (tlv_size );
228
- uint8_t tlv [tlv_size ];
229
- memzero (tlv , sizeof (tlv ));
230
-
231
- uint16_t offset =
232
- prepare_coin_specific_data_tlv (& meta_data_arr [i ].data_struct ,
233
- meta_data_arr [i ].data_length ,
234
- tlv ,
235
- data_length );
236
- write_cmd (
237
- FLASH_COIN_SPECIFIC_BASE_ADDRESS + offset , (uint32_t * )tlv , tlv_size );
238
-
239
- free (meta_data_arr [i ].data_struct .coin_data );
240
- }
241
- }
242
- }
171
+ // static void purge_coin_specific_data() {
172
+ // // Store all the unique data length and address in an array
173
+ // Coin_Type coin_type_arr[MAX_UNIQUE_COIN_COUNT] = {COIN_TYPE_NEAR};
174
+ // struct meta_data_t {
175
+ // Coin_Specific_Data_Struct data_struct;
176
+ // uint16_t data_length;
177
+ // uint32_t data_addr;
178
+ // } meta_data_arr[MAX_UNIQUE_COIN_COUNT * MAX_WALLETS_ALLOWED] = {0};
179
+
180
+ // for (size_t coin_type_index = 0; coin_type_index < MAX_UNIQUE_COIN_COUNT;
181
+ // coin_type_index++) {
182
+ // for (size_t wallet_id_index = 0; wallet_id_index < MAX_WALLETS_ALLOWED;
183
+ // wallet_id_index++) {
184
+ // size_t current_index =
185
+ // coin_type_index * MAX_WALLETS_ALLOWED + wallet_id_index;
186
+
187
+ // meta_data_arr[current_index].data_length = 0;
188
+ // meta_data_arr[current_index].data_addr = 0;
189
+
190
+ // meta_data_arr[current_index].data_struct.coin_type =
191
+ // coin_type_arr[coin_type_index];
192
+ // memcpy(meta_data_arr[current_index].data_struct.wallet_id,
193
+ // get_wallet_id(wallet_id_index),
194
+ // WALLET_ID_SIZE);
195
+ // find_latest_coin_data(&meta_data_arr[current_index].data_struct,
196
+ // &meta_data_arr[current_index].data_length,
197
+ // &meta_data_arr[current_index].data_addr);
198
+
199
+ // if (meta_data_arr[current_index].data_length > 0 &&
200
+ // FLASH_COIN_SPECIFIC_BASE_ADDRESS <
201
+ // meta_data_arr[current_index].data_addr &&
202
+ // meta_data_arr[current_index].data_addr +
203
+ // meta_data_arr[current_index].data_length <
204
+ // FLASH_END) {
205
+ // // Allocate a proper size array to store the data
206
+ // meta_data_arr[current_index].data_struct.coin_data =
207
+ // (uint8_t *)malloc(meta_data_arr[current_index].data_length);
208
+ // ASSERT(meta_data_arr[current_index].data_struct.coin_data != NULL);
209
+ // read_cmd(meta_data_arr[current_index].data_addr,
210
+ // (uint32_t *)meta_data_arr[current_index].data_struct.coin_data,
211
+ // meta_data_arr[current_index].data_length);
212
+ // }
213
+ // }
214
+ // }
215
+
216
+ // // Erase everything from flash
217
+ // erase_flash_coin_specific_data();
218
+
219
+ // // Write the data back to flash
220
+ // for (size_t i = 0; i < MAX_UNIQUE_COIN_COUNT * MAX_WALLETS_ALLOWED; i++) {
221
+ // if (meta_data_arr[i].data_length > 0 &&
222
+ // FLASH_COIN_SPECIFIC_BASE_ADDRESS < meta_data_arr[i].data_addr &&
223
+ // meta_data_arr[i].data_addr + meta_data_arr[i].data_length < FLASH_END) {
224
+ // uint16_t data_length =
225
+ // (3 + WALLET_ID_SIZE) + (3 + meta_data_arr[i].data_length);
226
+ // uint16_t tlv_size = 6 + data_length;
227
+ // tlv_size = GET_NEXT_MULTIPLE_OF_8(tlv_size);
228
+ // uint8_t tlv[tlv_size];
229
+ // memzero(tlv, sizeof(tlv));
230
+
231
+ // uint16_t offset =
232
+ // prepare_coin_specific_data_tlv(&meta_data_arr[i].data_struct,
233
+ // meta_data_arr[i].data_length,
234
+ // tlv,
235
+ // data_length);
236
+ // write_cmd(
237
+ // FLASH_COIN_SPECIFIC_BASE_ADDRESS + offset, (uint32_t *)tlv, tlv_size);
238
+
239
+ // free(meta_data_arr[i].data_struct.coin_data);
240
+ // }
241
+ // }
242
+ // }
243
243
244
244
static int store_coin_data (const uint8_t * tlv_data ,
245
245
uint16_t tlv_data_size ,
@@ -250,7 +250,7 @@ static int store_coin_data(const uint8_t *tlv_data,
250
250
(uint32_t * )tlv_data ,
251
251
tlv_data_size );
252
252
} else {
253
- purge_coin_specific_data ();
253
+ // purge_coin_specific_data();
254
254
uint16_t coin_data_len = 0 ;
255
255
uint32_t coin_data_addr = 0 ;
256
256
Coin_Specific_Data_Struct dummy = {0 };
0 commit comments