From 6430c8f463f7cd97ad55dc76d9f1b5ab976376bf Mon Sep 17 00:00:00 2001 From: Francois Beutin Date: Mon, 15 Jan 2024 17:17:29 +0100 Subject: [PATCH] Read RUN_APPLICATION from sdk --- src/handle_get_printable_amount.c | 6 +++-- src/handle_swap_sign_transaction.c | 1 + src/swap_utils.c | 43 ++++++++++++++++++++++++++++++ src/swap_utils.h | 22 +++++++++++++++ src/utils.c | 20 -------------- src/utils.h | 2 -- src_plugin_sdk/main.c | 1 + tools/build_sdk.py | 2 -- 8 files changed, 71 insertions(+), 26 deletions(-) create mode 100644 src/swap_utils.c create mode 100644 src/swap_utils.h diff --git a/src/handle_get_printable_amount.c b/src/handle_get_printable_amount.c index ced188a..208b76b 100644 --- a/src/handle_get_printable_amount.c +++ b/src/handle_get_printable_amount.c @@ -1,11 +1,13 @@ +#include +#include + +#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 -#include void handle_get_printable_amount(get_printable_amount_parameters_t* params, chain_config_t* config) { diff --git a/src/handle_swap_sign_transaction.c b/src/handle_swap_sign_transaction.c index 7161833..a2e71f2 100644 --- a/src/handle_swap_sign_transaction.c +++ b/src/handle_swap_sign_transaction.c @@ -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" diff --git a/src/swap_utils.c b/src/swap_utils.c new file mode 100644 index 0000000..8cc0054 --- /dev/null +++ b/src/swap_utils.c @@ -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 +#include +#include + +#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; +} diff --git a/src/swap_utils.h b/src/swap_utils.h new file mode 100644 index 0000000..00af3d3 --- /dev/null +++ b/src/swap_utils.h @@ -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 + +bool parse_swap_config(const uint8_t* config, uint8_t config_len, char* ticker, uint8_t* decimals); diff --git a/src/utils.c b/src/utils.c index 3926bf2..3db24b5 100644 --- a/src/utils.c +++ b/src/utils.c @@ -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; -} diff --git a/src/utils.h b/src/utils.h index c276b6d..472ea51 100644 --- a/src/utils.h +++ b/src/utils.h @@ -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_ diff --git a/src_plugin_sdk/main.c b/src_plugin_sdk/main.c index b36171f..f3acb54 100644 --- a/src_plugin_sdk/main.c +++ b/src_plugin_sdk/main.c @@ -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); diff --git a/tools/build_sdk.py b/tools/build_sdk.py index 4079181..12f71e1 100755 --- a/tools/build_sdk.py +++ b/tools/build_sdk.py @@ -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",