Open DiePutze5853 opened 12 months ago
I'm sorry for the confusion, we need to improve the documentation and UX with regards to native assets massively.
You should be able to register that alias/foundry output on the chain using the following command:
wasp-cli register-erc20-native-token-on-remote-chain
https://wiki.iota.org/wasp-evm/reference/core-contracts/evm/#registererc20nativetokenonremotechain
Mhmm that still didn't work for me.
Created a new wallet in wasp-cli and firefly and then minted the alias and native tokens in firefly.
.\wasp-cli.exe chain register-erc20-native-token-on-remote-chain -s --foundry-sn 1 --target "shimmerevm-testnet" --ticker-symbol "DUST" --token-decimals 0 --token-name "Dust"
Request 0x3cdd9463a349ae3abe1e7eed96db4671058a952a27a1d37604354a744d6b90910000:
Kind: on-ledger
Sender: rms1qrkweypvkdql99xjsk6gnpvpwa94pcly59vmshq026fksx796g3xxvhf732
Contract Hname: 07cb02c1 (evm)
Function Hname: 08732fb1 (registerERC20NativeTokenOnRemoteChain)
Arguments:
"A": 0x0842f7da9bdb55b3ec87e5ac1a1e6d88e16768663fde5eca3429eb6f579cc538ac
"d": 0x00
"fs": 0x01000000
"n": 0x44757374
"t": 0x44555354
Error: foundry with serial number 1 not owned by caller
Gas budget: 141100
Gas burned: 10000
Gas fee charged: 10000
Storage deposit charged: 0
Total 0 events
Hex seed: 0xbfd3dcd415cc049d7e47e32864071340c56ede076b9021724de99e4c29bded39e29f5d6659db05e6234fe1d8a30536c69261f49af9ffe5eec53dd3425a15692f
Alias
Wallet
What is the difference between the --target and --chain flags for the register-erc20-native-token-on-remote-chain command? When should I use register-erc20-native-token-on-remote-chain and when register-erc20-native-token?
Sigh, you're right. It seems that function is intended to register a foundry that was created on some chain on another (target) chain. Even myself get confused with the current state of registering L1 assets :sweat: .
Right now the only way to actually register it is to make a request on behalf of your alias, and invoke registerERC20ExternalNativeToken
on the chain. (there is no wasp-cli helper for this).
The UX sucks right now, this is because the Chain cannot see outputs that don't belong directly to it. With Iota2.0 we will have a way to prove the contents of outputs, and that should make this whole process more streamlined.
The simplest way, as it stands right now, is to use the chain itself to create a foundry/mint native tokens and then call register-erc20-native-token
. (In the future we might do this registering automatically)
Thank you for reporting the issue, it is important to us to identify sore spots like this in the UX and address them :+1:
Thanks for the response @jorgemmsilva
Is there documentation on how to encode the metadata of the transaction for on-ledger-requests? I guess if I know in which order the arguments have to be encoded in the metadata field of the transaction I could just send the on-ledger-request with iota-sdk?
I also tried adding a register-erc721-nft-collection command to wasp-cli, but I always get Error: NFTID not found
when trying to register a collection. I've sent the collection NFT to the chain as mentioned in a comment in evmimpl/impl.go.
I noticed NFTs aren't listed at all when looking at the total assets of the chain, even though I can see 78 deposited NFTs on the shimmer explorer . Am I doing something wrong, or is registering native NFT collections simply not supported yet?
you can find the request metadata specs here: https://github.com/iotaledger/tips/pull/155
That endpoint will only show fungible tokens, to see NFTs that belong to some account, you need to use:
/v1/chains/{chainID}/core/accounts/account/{agentID}/nfts
To call registerERC721NFTCollection
you do need to deposit the NFT to the chain and call that function with the same account that owns the collectionNFT. You can find an example of how it should work in this test: https://github.com/iotaledger/wasp/blob/develop/packages/vm/core/evm/evmtest/evm_test.go#L903
Thank you for the PR #3059 @jorgemmsilva ! My wallets in Firefly and Wasp-CLI now generate the same addresses.
Now I have a new problem: I have created an alias and native token via Firefly and tried to register the token on the chain, but when calling the
register-erc20-native-token
command I'm getting this error:I think this might be due to the fact that I'm calling the wasp-cli command from my wallet address instead of the alias address?
For further reference: wallet address alias address