1. Sudo 调用 assetManager.registerLocalAsset

    1. 0x04001f05f24ff3a9cf04c71dbc94d0b566f7a27b94566cacf24ff3a9cf04c71dbc94d0b566f7a27b94566cac0101000000000000000000000000000000

    2. LocalAsset 代表 可铸造XC-20

    3. isSufficient: 若为 True ,则代表可以将该代币发送给一个没有原生代币(如DOT)的账户

    4. minBalance: 一个账户的最小持有量

  2. Extrinsic 调用 localAssets.setMetadata

    1. 0x240e3394c1c088cc9453996779630ad3af45cb1054455354105445535403

    2. Caller should be the asset owner

    3. Id: 上一步创建后生成的asset id,需要查询 Chain state,从localAssets.asset 接口拿到,不 include option

      1. https://docs.moonbeam.network/builders/xcm/xc20/mintable-xc20/#retrieve-list-of-mintable-xc-20s
      2. 该接口会返回所有的localAssets信息,我们需要找到在上一步创建的代币
      3. 最后需要手动将逗号去掉,否则复制粘贴后id会不完整

      Untitled

    4. Name: 代币名字,如 Test

    5. Symbol: 代币符号,如 TEST

    6. Decimals: 代币单位,有多少位小数位

    Untitled

  3. Polkadot.js interact

    1. View its metadata: chain state → localAssets.metadata
    2. localAssets.mint 0x24033394c1c088cc9453996779630ad3af45cbf24ff3a9cf04c71dbc94d0b566f7a27b94566cac0284d717
  4. Remix interact

    1. MetaMask 连接测试区块链网络,需要你的区块链节点暴露在公网上,有一个公网ip
    2. 计算预编译合约地址:
      1. https://docs.moonbeam.network/builders/xcm/xc20/mintable-xc20/#calculate-xc20-address
      2. address = "0xFFFFFFFE..." + DecimalToHex(AssetId)
    3. 使用同一个预编译合约地址可以与其支持的三类接口交互
      1. ERC-20 Interface — as described in the XC-20 overview page
      2. Permit Interface (EIP-712 compliant) — as described in the XC-20 overview page
      3. Mintable interface — as described in the following section
    4. 其余参见How to Connect MetaMask | Moonbeam Docs
  5. 最终得到的可铸造XC-20信息

Local Asset Id: 
270195117769614861929703564202131636628
Name: TEST
Symbol: TEST
Contract Address: 
0xFFFFFFFECB45AFD30A637967995394CC88C0C194