Read RUN_APPLICATION from sdk

This commit is contained in:
Francois Beutin
2024-01-15 17:17:29 +01:00
parent 6fe2d92d3b
commit 6430c8f463
8 changed files with 71 additions and 26 deletions

View File

@@ -1,11 +1,13 @@
#include <stdint.h>
#include <os.h>
#include "swap_utils.h"
#include "handle_get_printable_amount.h"
#include "shared_context.h"
#include "ethUtils.h"
#include "utils.h"
#include "uint256.h"
#include "string.h"
#include <stdint.h>
#include <os.h>
void handle_get_printable_amount(get_printable_amount_parameters_t* params,
chain_config_t* config) {

View File

@@ -1,6 +1,7 @@
#include "os_io_seproxyhal.h"
#include "os.h"
#include "ux.h"
#include "swap_utils.h"
#include "handle_swap_sign_transaction.h"
#include "shared_context.h"
#include "utils.h"

43
src/swap_utils.c Normal file
View File

@@ -0,0 +1,43 @@
/*******************************************************************************
* Ledger Ethereum App
* (c) 2016-2019 Ledger
*
* 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 <stdint.h>
#include <string.h>
#include <stdbool.h>
#include "tokens.h"
#include "swap_utils.h"
bool parse_swap_config(const uint8_t *config, uint8_t config_len, char *ticker, uint8_t *decimals) {
uint8_t ticker_len, offset = 0;
if (config_len == 0) {
return false;
}
ticker_len = config[offset++];
if (ticker_len == 0 || ticker_len > MAX_TICKER_LEN - 2 || config_len - offset < ticker_len) {
return false;
}
memcpy(ticker, config + offset, ticker_len);
offset += ticker_len;
ticker[ticker_len] = '\0';
if (config_len - offset < 1) {
return false;
}
*decimals = config[offset];
return true;
}

22
src/swap_utils.h Normal file
View File

@@ -0,0 +1,22 @@
/*******************************************************************************
* Ledger Ethereum App
* (c) 2016-2019 Ledger
*
* 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
#include <stdint.h>
bool parse_swap_config(const uint8_t* config, uint8_t config_len, char* ticker, uint8_t* decimals);

View File

@@ -147,23 +147,3 @@ bool amountToString(const uint8_t *amount,
out_buffer[out_buffer_size - 1] = '\0';
return true;
}
bool parse_swap_config(const uint8_t *config, uint8_t config_len, char *ticker, uint8_t *decimals) {
uint8_t ticker_len, offset = 0;
if (config_len == 0) {
return false;
}
ticker_len = config[offset++];
if (ticker_len == 0 || ticker_len > MAX_TICKER_LEN - 2 || config_len - offset < ticker_len) {
return false;
}
memcpy(ticker, config + offset, ticker_len);
offset += ticker_len;
ticker[ticker_len] = '\0';
if (config_len - offset < 1) {
return false;
}
*decimals = config[offset];
return true;
}

View File

@@ -41,6 +41,4 @@ bool amountToString(const uint8_t* amount,
char* out_buffer,
size_t out_buffer_size);
bool parse_swap_config(const uint8_t* config, uint8_t config_len, char* ticker, uint8_t* decimals);
#endif // _UTILS_H_

View File

@@ -17,6 +17,7 @@
#include "eth_internals.h"
#include "eth_plugin_interface.h"
#include "lib_standard_app/swap_lib_calls.h" // RUN_APPLICATION
// Functions implemented by the plugin
void handle_init_contract(ethPluginInitContract_t *parameters);

View File

@@ -161,7 +161,6 @@ if __name__ == "__main__":
"src/shared_context.h",
"src/eth_plugin_internal.h",
"src/nft.h",
"src/swap_lib_calls.h",
]
nodes_to_extract = {
"#define": ["MAX_TICKER_LEN",
@@ -170,7 +169,6 @@ if __name__ == "__main__":
"WEI_TO_ETHER",
"SELECTOR_SIZE",
"PARAMETER_LENGTH",
"RUN_APPLICATION",
"COLLECTION_NAME_MAX_LEN"],
"typedef enum": [],
"typedef struct": ["tokenDefinition_t",