diff --git a/src/stark_crypto.c b/src/stark_crypto.c index 77571b6..f5b2520 100644 --- a/src/stark_crypto.c +++ b/src/stark_crypto.c @@ -2,6 +2,7 @@ #include "shared_context.h" #include "stark_utils.h" +#include "uint256.h" #include "common_utils.h" extraInfo_t *getKnownToken(uint8_t *contractAddress); diff --git a/src/uint128.c b/src/uint128.c index 54d8f6b..b720e35 100644 --- a/src/uint128.c +++ b/src/uint128.c @@ -290,3 +290,21 @@ bool tostring128_signed(const uint128_t *const number, } return tostring128(number, base, out, out_length); // positive value } + +void convertUint64BEto128(const uint8_t *const data, uint32_t length, uint128_t *const target) { + uint8_t tmp[INT128_LENGTH]; + int64_t value; + + value = u64_from_BE(data, length); + memset(tmp, ((value < 0) ? 0xff : 0), sizeof(tmp) - length); + memmove(tmp + sizeof(tmp) - length, data, length); + readu128BE(tmp, target); +} + +void convertUint128BE(const uint8_t *const data, uint32_t length, uint128_t *const target) { + uint8_t tmp[INT128_LENGTH]; + + memset(tmp, 0, sizeof(tmp) - length); + memmove(tmp + sizeof(tmp) - length, data, length); + readu128BE(tmp, target); +} diff --git a/src/uint128.h b/src/uint128.h index e1166c2..b857089 100644 --- a/src/uint128.h +++ b/src/uint128.h @@ -56,5 +56,7 @@ bool tostring128_signed(const uint128_t *const number, uint32_t base, char *const out, uint32_t out_length); +void convertUint64BEto128(const uint8_t *const data, uint32_t length, uint128_t *const target); +void convertUint128BE(const uint8_t *const data, uint32_t length, uint128_t *const target); #endif // _UINT128_H_ diff --git a/src/uint256.c b/src/uint256.c index f43588a..8829c90 100644 --- a/src/uint256.c +++ b/src/uint256.c @@ -21,7 +21,7 @@ #include #include "uint256.h" #include "uint_common.h" -#include "ethUstream.h" // INT256_LENGTH +#include "common_utils.h" // INT256_LENGTH void readu256BE(const uint8_t *const buffer, uint256_t *const target) { readu128BE(buffer, &UPPER_P(target)); @@ -289,3 +289,11 @@ bool tostring256_signed(const uint256_t *const number, } return tostring256(number, base, out, out_length); // positive value } + +void convertUint256BE(const uint8_t *const data, uint32_t length, uint256_t *const target) { + uint8_t tmp[INT256_LENGTH]; + + memset(tmp, 0, sizeof(tmp) - length); + memmove(tmp + sizeof(tmp) - length, data, length); + readu256BE(tmp, target); +} diff --git a/src/uint256.h b/src/uint256.h index 97b8cfb..4addf7f 100644 --- a/src/uint256.h +++ b/src/uint256.h @@ -57,5 +57,6 @@ bool tostring256_signed(const uint256_t *const number, uint32_t base, char *const out, uint32_t out_length); +void convertUint256BE(const uint8_t *const data, uint32_t length, uint256_t *const target); #endif // _UINT256_H_ diff --git a/src_common/common_utils.c b/src_common/common_utils.c index c24d53a..92debc6 100644 --- a/src_common/common_utils.c +++ b/src_common/common_utils.c @@ -18,8 +18,6 @@ #include #include -#include "uint128.h" -#include "uint256.h" #include "tokens.h" #include "common_utils.h" @@ -32,32 +30,6 @@ void array_hexstr(char *strbuf, const void *bin, unsigned int len) { *strbuf = 0; // EOS } -void convertUint64BEto128(const uint8_t *const data, uint32_t length, uint128_t *const target) { - uint8_t tmp[INT128_LENGTH]; - int64_t value; - - value = u64_from_BE(data, length); - memset(tmp, ((value < 0) ? 0xff : 0), sizeof(tmp) - length); - memmove(tmp + sizeof(tmp) - length, data, length); - readu128BE(tmp, target); -} - -void convertUint128BE(const uint8_t *const data, uint32_t length, uint128_t *const target) { - uint8_t tmp[INT128_LENGTH]; - - memset(tmp, 0, sizeof(tmp) - length); - memmove(tmp + sizeof(tmp) - length, data, length); - readu128BE(tmp, target); -} - -void convertUint256BE(const uint8_t *const data, uint32_t length, uint256_t *const target) { - uint8_t tmp[INT256_LENGTH]; - - memset(tmp, 0, sizeof(tmp) - length); - memmove(tmp + sizeof(tmp) - length, data, length); - readu256BE(tmp, target); -} - uint64_t u64_from_BE(const uint8_t *in, uint8_t size) { uint8_t i = 0; uint64_t res = 0; diff --git a/src_common/common_utils.h b/src_common/common_utils.h index c70cf5a..fd198d9 100644 --- a/src_common/common_utils.h +++ b/src_common/common_utils.h @@ -22,7 +22,6 @@ #include "os.h" #include "cx.h" -#include "uint256.h" #define WEI_TO_ETHER 18 @@ -38,10 +37,6 @@ static const char HEXDIGITS[] = "0123456789abcdef"; void array_hexstr(char *strbuf, const void *bin, unsigned int len); -void convertUint128BE(const uint8_t *const data, uint32_t length, uint128_t *const target); -void convertUint256BE(const uint8_t *const data, uint32_t length, uint256_t *const target); -void convertUint64BEto128(const uint8_t *const data, uint32_t length, uint128_t *const target); - uint64_t u64_from_BE(const uint8_t *in, uint8_t size); bool u64_to_string(uint64_t src, char *dst, uint8_t dst_size); diff --git a/src_features/signTx/logic_signTx.c b/src_features/signTx/logic_signTx.c index abf3234..de62f6c 100644 --- a/src_features/signTx/logic_signTx.c +++ b/src_features/signTx/logic_signTx.c @@ -5,6 +5,7 @@ #ifdef HAVE_STARKWARE #include "stark_utils.h" #endif +#include "uint256.h" #include "eth_plugin_handler.h" #include "network.h" #include "common_ui.h" diff --git a/src_plugins/starkware/starkware_plugin.c b/src_plugins/starkware/starkware_plugin.c index e7a59e2..427fca7 100644 --- a/src_plugins/starkware/starkware_plugin.c +++ b/src_plugins/starkware/starkware_plugin.c @@ -1,5 +1,6 @@ #include #include "os_io_seproxyhal.h" +#include "uint256.h" #include "eth_plugin_interface.h" #include "shared_context.h" // TODO : rewrite as independant code #include "eth_plugin_internal.h" // TODO : rewrite as independant code