ERC-1155 令牌合约 API

您可以使用与 ERC-1155 令牌合同中的令牌功能相关的以下方法。

标记配置方法

__ERC1155Token_init
部署令牌合同时会调用此方法。此方法只能由 Token Admin 调用。
参数:
  • uri: string- 所有标记类型的 URI。

标记设置方法

saveNFTClass
此方法将 NFT 分类信息保存在分类账中。此方法只能由 Token Admin 调用。
参数:
  • classInfo: NFTClassInfo- 客户合同地址,具体取决于 NFT 是整数还是小数。整个 NFT:
    {
        "nftClassId": (BigInt(1)),
        "tokenName": "ArtCollection2",
        "tokenDesc": "this is art collection contract",
        "tokenStandard": "erc1155",
        "tokenUnit": 0,
        "behaviors": ["mintable", "burnable", "transferable", "roles", "indivisible"],
        "divisible": { "decimals": 0 },
        "mintable": { "maxMintQuantity": 2 }
    }
    小数 NFT:
     "nftClassId": (BigInt(0)),
      tokenName": "ArtCollection",
      "tokenDesc": "this is art collection contract",
      "tokenStandard": "erc1155",
      "tokenUnit": 1,
      "behaviors": ["mintable", "burnable", "transferable", "roles", "divisible"],
      "divisible": { "decimals": 0 },
      "mintable": { "maxMintQuantity": 1 }
createNonFungibleToken
此方法根据保存的 NFT 类信息生成 NFT。此方法可由具有 minter 角色的用户或由 Token Admin 调用。
参数:
  • token: uint256- 包含 NFT 类信息的 NFT 的 ID。tokenId 参数的前 128 位表示 NFT 类 ID,而后 128 位表示 NFT 的唯一索引。
  • quantity: uint256-NFT 到 mint 的数量(创建)。
createFungibleToken
部署令牌合同时会调用此方法。此方法只能由 Token Admin 调用。
参数:
  • tokenID: ERC1155Token- 要记录在分类账中的可替换标记定义,如以下示例中所示。
    "tokenId": BigInt(0),
     "tokenName": "wcbdc",
     "tokenDesc": "this is wcbdc token",
     "tokenStandard": "erc1155",
     "tokenType": 1,
     "tokenUnit": 1,
     "behaviors": ["mintable", "burnable", "transferable", "roles", "divisible"],
     "divisible": { "decimals": 2 },
     "quantity": 1,
     "mintable": { "maxMintQuantity": 1 }
getTokenById
此方法获取指定标记的详细信息。此方法只能由 Token Admin 或令牌所有者调用。
参数:
  • token: ERC1155Token- 标记定义,如以下示例中所示:
     "tokenId": BigInt(0),
     "tokenName": "wcbdc",
     "tokenDesc": "this is wcbdc token",
     "tokenStandard": "erc1155",
     "tokenType": 1,
     "tokenUnit": 1,
     "behaviors": ["mintable", "burnable", "transferable", "roles", "divisible"],
     "divisible": { "decimals": 2 },
     "quantity": 1,
     "mintable": { "maxMintQuantity": 1 }
  • metainfo: bytes- 对于可变标记,metainfo 参数为空。对于整个 NFT,metainfo 参数包含以下结构的编码数据:
    struct ERC1155WholeNFT {
        bool isBurned;
        bool isLocked;
        uint256 creationDate;
        uint256 quantity;
        address createdBy;
        address owner;
    }
    对于小数 NFT,metainfo 参数包含以下结构的编码数据:
    struct ERC1155FractionalNFT {
        bool isBurned;
        bool isLocked;
        uint256 creationDate;
        uint256 quantity;
        address createdBy;
        Owners[] owners;
    }
getTokenDecimals
此方法返回为令牌配置的小数位数。此方法只能由 Token Admin 调用。
参数:
  • id: uint256- 令牌 ID。
退货:
  • 指示小数位数的 uint8 值。
tokenIdOf
此方法返回令牌 ID。此方法只能由 Token Admin 调用。
参数:
  • classId: uint256-NFT 类 ID。
  • serialId: uint256-NFT 类中的串行 ID。
退货:
  • 标记 ID 的 uint256 值。
balanceOf
此方法返回指定用户的当前令牌余额。此方法只能由 Token Admin 或令牌所有者调用。
参数:
  • account: string- 用户的帐户地址。
  • id: uint256- 令牌 ID。
退货:
  • 指示当前余额的 uint256 值。
balanceOfBatch
此方法返回一批指定用户的当前令牌余额。此方法只能由 Token Admin 或令牌所有者调用。
参数:
  • accounts: string[]- 用户的帐户地址列表。
  • ids: uint256[]- 令牌 ID 的列表。
退货:
  • 指示当前余额的 uint256[] 值列表。
exists
此方法检查指定的标记是否存在。此方法只能由 Token Admin 调用。
参数:
  • id: uint256- 令牌 ID。
退货:
  • 布尔值(true 或 false)。
totalSupply
此方法返回合同中令牌的总供应。此方法只能由 Token Admin 调用。
参数:
  • id: uint256(可选)- 令牌 ID。如果未指定令牌 ID,将返回合同中所有令牌的总供应
退货:
  • 指示总供应的 uint256 值。

令牌行为方法 - 可铸造行为

mintBatch
此方法分批铸造 ERC-1155 代币。令牌必须已初始化。具有 minter 角色的任何用户都可以调用此方法。
参数:
  • tokenIds: uint256[]- 要 mint 的令牌 ID 的列表。
  • quantity: uint256[]- 与 mint 对应的令牌数量列表。
  • data: bytes- 字节格式的其他数据。

令牌行为方法 - 可燃行为

burnBatch
此方法分批刻录 ERC-1155 令牌。令牌必须已初始化。具有刻录器角色的任何用户都可以调用此方法。
参数:
  • tokenIds: uint256[]- 要燃烧的令牌 ID 的列表。
  • quantity: uint256[]- 要消耗的标记数量的对应列表。
  • data: bytes- 字节格式的其他数据。
burnNFT
此方法燃烧 NFT。标记必须已初始化。具有刻录器角色的任何用户都可以调用此方法。
参数:
  • tokenId: uint256- 要燃烧的令牌的 ID。

令牌行为方法 - 可转移行为

safeTransferFrom
任何具有令牌的用户都可以调用此方法,以将其传输给其他用户。
参数:
  • from: string- 发件人的 wallet 地址,该地址不得为零。
  • to: string - 接收方的 wallet 地址,不能为空。
  • id: uint256- 要传输的令牌的 ID。
  • value: uint256 –要转移的令牌数量。
  • data: bytes- 字节格式的其他数据。
safeBatchTransferFrom
任何具有令牌的用户都可以调用此方法,以批量将令牌传输给其他用户。
参数:
  • from: string- 发件人的 wallet 地址,该地址不得为零。
  • to: string - 接收方的 wallet 地址,不能为空。
  • id: uint256[]- 要传输的令牌 ID 的列表。
  • value: uint256[]- 要传输的令牌数量的相应列表。
  • data: bytes- 字节格式的其他数据。

标记行为方法 - 可委派行为

setApprovalForAll
任何拥有令牌的用户都可以调用此方法,以授予或撤销操作员传输调用者令牌的权限。
参数:
  • operator: string –操作员的 wallet 地址,不得为零。
  • approved: bool- 指示操作员是否有权转移调用者的令牌的标志。
isApprovedForAll
任何拥有令牌的用户都可以调用此方法,以检查指定用户是否具有作为操作员的权限来传输调用者的令牌。
参数:
  • account: string- 授予或撤销操作权限以传输其令牌的用户的地址。
  • operator: string –操作员的 wallet 地址,不得为零。
退货:
  • 一个布尔值(true 或 false),指示指定用户是否具有作为操作员的权限来传输调用者的令牌。

令牌行为方法 - 可暂停的行为

paused
此方法检查合同是否已暂停。此方法只能由任何用户调用。
参数:
  • 无
pause
此方法将暂停合同。此方法只能由 Token Admin 调用。
参数:
  • 无
unpause
此方法将启动暂停的合同。此方法只能由 Token Admin 调用。
参数:
  • 无

令牌行为方法 - 可锁定行为

lockNFT
此方法锁定 NFT。此方法只能由具有 TOKEN_SYS_VAULT_ROLE 角色的用户调用。
参数:
  • tokenId: uint256- 要锁定的令牌的 ID。
isNFTLocked
此方法检查 NFT 是否已锁定。此方法只能由具有 TOKEN_SYS_VAULT_ROLE 角色的用户或由 Token Admin 调用。
参数:
  • tokenId: uint256- 要检查的令牌的 ID。
退货:
  • 指示 NFT 是否已锁定的布尔值(true 或 false)。

上下文管理方法

setContext
此方法为账户合同设置令牌合同地址。此方法只能由 Token Admin 调用。
参数:
  • tokenAddress: address- 已部署令牌的合同地址,该地址不能为零。
getContext
此方法获取账户合同的令牌合同地址。此方法可由任何用户调用。
参数:
  • 无
返回值
  • 令牌合同地址
setGovernanceContext
此方法将监管合同设置为用于管理账户合同的监管生命周期。此方法只能由 Token Admin 调用。
参数:
  • uuid: string —合同部署前数字资产 Token Admin 设置的唯一 ID。
  • governance: address- 已部署监管合同的合同地址,该地址不得为零。
getGovernanceContext
此方法获取监管上下文详细信息。此方法可由任何用户调用。
参数:
  • 无
返回值
  • governanceContext 对象。
返回值示例:
{
    "governanceUUID": "abc-def",
    "governance": "0x0000000",
	"deploymentActive": "true"
}
isDeploymentActive
此方法检查部署是否处于活动状态。此方法可由任何用户调用。
参数:
  • 无
退货:
  • 一个布尔值(true 或 false),指示部署是否处于活动状态。