#ifndef _ERC721_PLUGIN_H_ #define _ERC721_PLUGIN_H_ #ifdef HAVE_NFT_SUPPORT #include #include #include "ethUstream.h" #include "nft.h" // Internal plugin for EIP 721: https://eips.ethereum.org/EIPS/eip-721 typedef enum { APPROVE, SET_APPROVAL_FOR_ALL, TRANSFER, SAFE_TRANSFER, SAFE_TRANSFER_DATA, SELECTORS_COUNT } erc721_selector_t; typedef enum { FROM, TO, DATA, TOKEN_ID, OPERATOR, APPROVED, NONE, } erc721_selector_field; typedef struct erc721_context_t { uint8_t address[ADDRESS_LENGTH]; uint8_t tokenId[INT256_LENGTH]; bool approved; erc721_selector_field next_param; uint8_t selectorIndex; } erc721_context_t; void handle_provide_parameter_721(void *parameters); void handle_query_contract_ui_721(void *parameters); #endif // HAVE_NFT_SUPPORT #endif // _ERC721_PLUGIN_H_