XLabs / portal-bridge-ui

Portal Bridge UI
https://www.portalbridge.com/
21 stars 34 forks source link

[bug] Our wrapped SPL token got deployed with metaplex metadata standard 1(FungibleAsset) instead of metadata 2 (Fungible) #816

Closed destructioneth closed 3 months ago

destructioneth commented 3 months ago

Is there an existing issue for this?

Current Behavior

Hi, we are crow with knife , we recently expanded our reach to Solana via portal bridge.

Due to our token having 0 decimals, the wrapped wormhole token got deployed with metadata standard 1, this is significantly problematic as wallets and explorers are detecting it as an NFT. image

Expected Behavior

The SPL token metadata simply needs to be updated to tokenStandard 2.

Since this requires a metadata update, we would like to update our "uri" field so it points to: https://www.crowwithknife.com/metadata.json

Thanks!

Steps To Reproduce

No response

Environment

- OS:all
- Wallet:all
- Browser:all

Anything else?

No response

sebastianscatularo commented 3 months ago

Hi @destructioneth, since the Token Bridge contract is permissionless, we do not have a way to manually update any kind of metadata. To update metadata, you need to attest the token by using https://portalbridge.com/advanced-tools/#/register or interacting directly with the blockchain itself. If the token has already been attested, the process must update the metadata instead.

You can check:

sebastianscatularo commented 3 months ago

the decimals normalization, for evm happens here https://github.com/wormhole-foundation/wormhole/blob/main/ethereum/contracts/bridge/Bridge.sol#L288 for sure you can find similar functions on other smart contracts here is the evm version for createWrapped https://github.com/wormhole-foundation/wormhole/blob/main/ethereum/contracts/bridge/Bridge.sol#L365, that is where the attest vaa should be redeemed or here if it is an update https://github.com/wormhole-foundation/wormhole/blob/main/ethereum/contracts/bridge/Bridge.sol#L385

for solana you can check:

destructioneth commented 3 months ago

So assuming we can't change the token decimal on the EVM side, you're telling me there's no possible way to update the metadata to the correct standard on the SOL side? I don't buy it.

There are messages on discord of users who have gotten metadata updates on SOL from the developers, there has to be a way

updateAuthority: "BCD75RNBHrJJpW4dXVagL5mPjzRLnVZq4YirJdjEYMV7" the update authority address is owned by wormhole and doing transactions

this is already our second time bridging to solana and it's a mess if we have to tell our community to bridge back to another contract again, and we also burnt $40k of LP on Raydium on this token,

Are we really stuck with the wrong tokenStandard forever? Can we at least get the URI field updated so at least we get a picture on the NFT display since we're stuck with that ?

https://www.crowwithknife.com/metadata.json

sebastianscatularo commented 3 months ago

well, asking partners, and checking the source code, we arrived to the next conclusion, when the Solana bridge was written that standard didn’t exist, and it’s never been updated to support, so, the token bridge contract needs an update to support token standard 2

sebastianscatularo commented 3 months ago

cc: @mliu-xlabs @chase-45 to be aware of it, it is out of our scope as UI, but, just in case

sebastianscatularo commented 3 months ago

I'll close this issue since it is an issue at contract level and not an issue at the UI

destructioneth commented 3 months ago

other wormhole wrapped tokens are deployed with the correct token standard 2, so it definitely is supported

here is an example of a wormhole wrapped token with the correct tokenStandard

https://solscan.io/token/ACE91xu5bSLHHKGtLjgrDtv8QkFN6a81QaGa5N8e9YWV image

the updateAuthority of the metaplex metadata is BCD75RNBHrJJpW4dXVagL5mPjzRLnVZq4YirJdjEYMV7 , this address has permission to edit the metadata so it can easily be fixed.

destructioneth commented 3 months ago

is there a correct channel to open issues for the contract level? thanks

destructioneth commented 3 months ago

it looks like the tokenStandard field might actually NOT be able to be updated, and if that is the case, my apologies.

assuming we're stuck with this standard though, we'd like to at least get our URI field pointing to this endpoint, so at least we get the picture on the NFT display: https://www.crowwithknife.com/metadata.json

some wallets such as solflare and backpack have been updated to properly support tokenStandard 1 so it might not be that bad.

sebastianscatularo commented 3 months ago

as far as I know, we do not have that ability. You could open an issue at https://github.com/wormhole-foundation/wormhole to see what other folks can do