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。具有次要角色的使用者或 Token Admin 可以呼叫此方法。
參數:
  • token: uint256 – NFT 的 ID,其中包含 NFT 類別資訊。tokenId 參數的前 128 個位元代表 NFT 類別 ID,而後 128 個位元則代表 NFT 的唯一索引。
  • quantity: uint256 – 要提示的 NFT 量 (建立)。
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[] – 要提示的記號 ID 清單。
  • quantity: uint256[] – 對應的記號數量清單。
  • data: bytes – 以位元組格式顯示的其他資料。

記號行為方法 - 可燃行為

burnBatch
此方法會批次燒錄 ERC-1155 記號。記號必須已經初始化。具有燒錄機角色的任何使用者都可以呼叫此方法。
參數:
  • tokenIds: uint256[] – 要燒錄的權杖 ID 清單。
  • quantity: uint256[] – 要燒錄的對應記號數量清單。
  • data: bytes – 以位元組格式顯示的其他資料。
burnNFT
此方法會燒錄 NFT。記號必須已經初始化。具有燒錄機角色的任何使用者都可以呼叫此方法。
參數:
  • tokenId: uint256 – 要燒錄的記號 ID。

權杖行為方法 - 可傳輸行為

safeTransferFrom
任何具有記號的使用者都可以呼叫此方法,將它們傳輸給其他使用者。
參數:
  • from: string – 寄件者的公事包位址,不能為零。
  • to: string – 接收者的公事包位址,不得為零。
  • id: uint256 – 要傳輸之記號的 ID。
  • value: uint256 – 要移轉的權杖數量。
  • data: bytes – 以位元組格式顯示的其他資料。
safeBatchTransferFrom
任何具有記號的使用者都可以呼叫此方法,以批次方式將它們轉移給其他使用者。
參數:
  • from: string – 寄件者的公事包位址,不能為零。
  • to: string – 接收者的公事包位址,不得為零。
  • id: uint256[] – 要傳輸之記號的 ID 清單。
  • value: uint256[] – 要傳輸之記號的對應數量清單。
  • data: bytes – 以位元組格式顯示的其他資料。

權杖行為方法 - 可委派行為

setApprovalForAll
所有擁有權杖的使用者都可以呼叫此方法,以授予或撤銷操作員轉接呼叫者權杖的權限。
參數:
  • operator: string – 運算子的公事包位址,不能是零。
  • approved: bool – 指示操作員是否具有轉接呼叫者記號之權限的旗標。
isApprovedForAll
所有擁有權杖的使用者都可以呼叫此方法,以檢查指定的使用者是否具有權限作為轉接呼叫者權杖的運算子。
參數:
  • account: string – 授予或撤銷其權杖之作業權限的使用者位址。
  • operator: string – 運算子的公事包位址,不能是零。
傳回:
  • Boolean 值 (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 是否被鎖定的布林值 (真或偽)。

相關資訊環境管理方法

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
此方法會檢查部署是否有效。任何使用者都可以呼叫這個方法。
參數:
  • 無
傳回:
  • 指示部署是否有效的布林值 (真或偽)。