Fixes the location in memory of the address between nftInfo_t & tokenDefinition_t

Both used as members of the same union, also unifies the type (array of uint8_t)
This commit is contained in:
Alexandre Paillier
2022-03-07 10:07:17 +01:00
parent 14fb8c87a4
commit 76c7f9dbd8
3 changed files with 20 additions and 32 deletions

View File

@@ -1,14 +1,8 @@
#include "tokens.h"
// An `nftInfo_t` must be the same size as a `tokenDefinition_t`. This is because both will be held
// in a `extraInfo_t` which is a union of a `nftInfo_t` and a `tokenDefinition_t`. By having both
// struct the same size, we know they will be aligned, which facilitates accessing the items.
// We defined the collection name max length to be the size of a `tokenDefinition_t` and remove the
// `ADDRESS_LENGTH` which corresponds to `sizeof(contractAddress`).
#define COLLECTION_NAME_MAX_LEN (sizeof(tokenDefinition_t) - ADDRESS_LENGTH)
#define COLLECTION_NAME_MAX_LEN 70
typedef struct nftInfo_t {
char collectionName[COLLECTION_NAME_MAX_LEN];
char contractAddress[ADDRESS_LENGTH];
} nftInfo_t;
uint8_t contractAddress[ADDRESS_LENGTH]; // must be first item
char collectionName[COLLECTION_NAME_MAX_LEN + 1];
} nftInfo_t;