Fix nft transactions (#229)
* Removed pluginType "hack" * Fix some ERC 721 & 1155 function signature hashes * Fix UI for ERC721 operations * Explicit Batch Transfer UI with ERC1155 * Unified some ERC721 & 1155 non-static functions naming * Fix UI for ERC1155 operations * Added missing pin-lock check when signing transactions * Fix the shell script that builds the elf files for testing * Add tests dependency ethers * Removed the space in the test filename * Tests build script refactoring * Now works when called from anywhere (not just the script's directory) * Now handles LNS & LNX builds together (less duplicated code) * Temporarily disable Nano X tests Until Zemu supports Nano X 2.0 SDK * Tests now start with blind signing disabled Makes it closer to reality & very few of them requires it * Update to the latest sdk version * make eth_plugin_perform_init() readable Introduce 2 functions. * Now properly parses the apdu and displays the total quantity of NFT IDs transferred in ERC1155 batch transfer * Add NFT prod public keys * Added extra checks for the chain ID handling Following the security review * NFTs now only supported by LNS * Version bump Co-authored-by: Alexandre Paillier <alexandre.paillier@ledger.fr> Co-authored-by: greenknot <greenknot@users.noreply.github.com>
This commit is contained in:
@@ -1,3 +1,5 @@
|
||||
#ifdef HAVE_NFT_SUPPORT
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <string.h>
|
||||
@@ -5,6 +7,7 @@
|
||||
#include "shared_context.h"
|
||||
#include "ethUtils.h"
|
||||
#include "utils.h"
|
||||
#include "uint256.h"
|
||||
|
||||
// Internal plugin for EIP 1155: https://eips.ethereum.org/EIPS/eip-1155
|
||||
|
||||
@@ -31,19 +34,22 @@ typedef enum {
|
||||
} erc1155_selector_field;
|
||||
|
||||
typedef struct erc1155_context_t {
|
||||
uint8_t address[ADDRESS_LENGTH];
|
||||
uint8_t tokenId[INT256_LENGTH];
|
||||
uint8_t value[INT256_LENGTH];
|
||||
uint8_t address[ADDRESS_LENGTH];
|
||||
uint8_t tokenId[INT256_LENGTH];
|
||||
uint256_t value;
|
||||
|
||||
uint32_t valueOffset;
|
||||
uint32_t tokenIdsOffset;
|
||||
uint32_t targetOffset;
|
||||
uint16_t ids_array_len;
|
||||
uint32_t ids_offset;
|
||||
uint16_t values_array_len;
|
||||
uint32_t values_offset;
|
||||
uint16_t array_index;
|
||||
|
||||
bool approved;
|
||||
erc1155_selector_field next_param;
|
||||
uint8_t selectorIndex;
|
||||
} erc1155_context_t;
|
||||
|
||||
// TODO: Find out why there is a duplicate if we remove 1155 suffix
|
||||
void handle_provide_parameter_1155(void *parameters);
|
||||
void handle_query_contract_ui_1155(void *parameters);
|
||||
void handle_query_contract_ui_1155(void *parameters);
|
||||
|
||||
#endif // HAVE_NFT_SUPPORT
|
||||
|
||||
Reference in New Issue
Block a user