# Invalid enum data size in metadata SRC7

**URL:** <https://forum.fuel.network/t/invalid-enum-data-size-in-metadata-src7/6040>\
**Category:** Sway\
**Tags:** nft\
**Created:** [June 25, 2024, 4:41pm UTC](https://forum.fuel.network/t/invalid-enum-data-size-in-metadata-src7/6040 "2024-06-25T16:41:20Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![lokesh-lync](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.fuel.network/lokesh-lync/32/2902_2.png) [@lokesh-lync](https://forum.fuel.network/u/lokesh-lync)\
**Post date:** [June 25, 2024, 4:41pm UTC](https://forum.fuel.network/t/invalid-enum-data-size-in-metadata-src7/6040/1 "2024-06-25T16:41:20Z")

</div>

### In this code:

```auto
storage {
     metadatas: StorageMetadata = StorageMetadata {},
    ctr: u256 = 0,
    total_assets: u64 = 0,

}

impl SRC7 for Contract {
    #[storage(read)]
    fn metadata(asset: AssetId, key: String) -> Option<Metadata> {
        // Return the stored metadata
        storage.metadatas.get(asset, key)
    }
}

```

When I try to query the data like this using TS SDK:

```ts
    let assetId: AssetIdInput = {
      bits: "0xa875fa4f00180c89155ee08e726a3c9ca2924cf9389ef6bbb82b8ebcd4a64649",
    };
    const data = await contract.functions.metadata(assetId, "key1").get();

```

I am getting this error:

```plaintext
Error: _FuelError: Invalid enum data size.
    at OptionCoder.decode

```

This is how I set the metadata in my mint function:

```auto
abi MintWithMetadata {
    #[storage(read, write)]
    fn mint(recipient: Identity, keys: Vec<String>, metadatas: Vec<Metadata>);
}

impl MintWithMetadata for Contract {
    #[storage(read, write)]
    fn mint(recipient: Identity, keys: Vec<String>, metadatas: Vec<Metadata>) {
        require(keys.len() == metadatas.len(), "invalid-key-metadata-length");
        only_owner();
        let sub_id = storage.ctr.read().as_b256();
        let mut i:u64 = 0;
        while i < keys.len() {
            let asset_id = AssetId::new(ContractId::this(), sub_id);
            _set_metadata(storage.metadatas, asset_id, keys.get(i).unwrap(), metadatas.get(i).unwrap());
            i += 1;
        }
        storage.ctr.write(storage.ctr.read() + 1);
        mint_to(recipient, sub_id, 1);
        storage.total_assets.write(storage.total_assets.read() + 1);
    }
}

```

What am I doing wrong here?

#### `fuelup show`:

```auto
testnet-x86_64-unknown-linux-gnu (override)

```

---

<div class="post-metadata">

**Author:** ![danielbate](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.fuel.network/danielbate/32/1617_2.png) [@danielbate](https://forum.fuel.network/u/danielbate)\
**Post date:** [June 25, 2024, 5:15pm UTC](https://forum.fuel.network/t/invalid-enum-data-size-in-metadata-src7/6040/2 "2024-06-25T17:15:33Z")

</div>

Hey, would you mind sharing the version of the `fuels` TS SDK you are using? And the complete contents of `fuelup show`, so that it includes all the versions.

---

<div class="post-metadata">

**Author:** ![lokesh-lync](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.fuel.network/lokesh-lync/32/2902_2.png) [@lokesh-lync](https://forum.fuel.network/u/lokesh-lync)\
**Post date:** [June 25, 2024, 8:00pm UTC](https://forum.fuel.network/t/invalid-enum-data-size-in-metadata-src7/6040/3 "2024-06-25T20:00:12Z")

</div>

sure,

- `fuels` TS SDK version: `0.88.0`
- complete `fuelup show`

```auto
Default host: x86_64-unknown-linux-gnu
fuelup home: /home/tit4n/.fuelup

installed toolchains
--------------------
beta-5-x86_64-unknown-linux-gnu
latest-x86_64-unknown-linux-gnu
nightly-x86_64-unknown-linux-gnu (default)
nightly-2024-04-12-x86_64-unknown-linux-gnu
testnet-x86_64-unknown-linux-gnu (override)

active toolchain
----------------
testnet-x86_64-unknown-linux-gnu (override), path: /home/tit4n/lync/fuel/Fuel-Contracts/deployer-contracts/fuel-toolchain.toml
  forc : 0.59.0
    - forc-client
      - forc-deploy : 0.59.0
      - forc-run : 0.59.0
    - forc-crypto : 0.59.0
    - forc-debug : 0.59.0
    - forc-doc : 0.59.0
    - forc-explore : 0.28.1
    - forc-fmt : 0.59.0
    - forc-lsp : 0.59.0
    - forc-tx : 0.59.0
    - forc-wallet : 0.7.1
  fuel-core : 0.26.0
  fuel-core-keygen : 0.26.0

fuels versions
--------------
forc : 0.62.0
forc-wallet : 0.62.0

```

---

<div class="post-metadata">

**Author:** ![danielbate](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.fuel.network/danielbate/32/1617_2.png) [@danielbate](https://forum.fuel.network/u/danielbate)\
**Post date:** [June 25, 2024, 9:16pm UTC](https://forum.fuel.network/t/invalid-enum-data-size-in-metadata-src7/6040/4 "2024-06-25T21:16:27Z")

</div>

Please could you upgrade your `fuels` version to the latest, `0.90.0`. We found an issue with `enum` validation that was resolved [here](https://github.com/FuelLabs/fuels-ts/pull/2336) and included in `0.88.1`. However I’d recommend upgrading to the latest version if you are working on testnet.

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/flex022/uploads/fuel/original/2X/5/57d5a345cc15a64b636e0d56e042857f8a0e80b1.png) [@system](https://forum.fuel.network/u/system)\
**Post date:** [July 16, 2024, 5:16pm UTC](https://forum.fuel.network/t/invalid-enum-data-size-in-metadata-src7/6040/5 "2024-07-16T17:16:45Z")

</div>

This topic was automatically closed 20 days after the last reply. New replies are no longer allowed.
