ERC-1155 Tokenvertrags-APIs

Sie können die folgenden Methoden zur Tokenfunktionalität in ERC-1155-Tokenverträgen verwenden.

Tokenkonfigurationsmethoden

__ERC1155Token_init
Diese Methode wird aufgerufen, wenn ein Tokenvertrag bereitgestellt wird. Diese Methode kann nur mit einem Token Admin aufgerufen werden.
Parameter:
  • uri: string: Die URI für alle Tokentypen.

Tokensetupmethoden

saveNFTClass
Bei dieser Methode werden NFT-Klasseninformationen im Buch gespeichert. Diese Methode kann nur mit einem Token Admin aufgerufen werden.
Parameter:
  • classInfo: NFTClassInfo - Die Kontovertragsadresse, die je nachdem, ob die NFT ganz oder teilweise ist, variiert. Vollständiger 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 }
    }
    Bruch 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
Diese Methode prägt NFTs basierend auf den gespeicherten NFT-Klasseninformationen. Diese Methode kann von einem Benutzer mit der Minter-Rolle oder mit der Token Admin aufgerufen werden.
Parameter:
  • token: uint256: Die ID der NFT, die NFT-Klasseninformationen enthält. Die oberen 128 Bit des Parameters tokenId stellen die NFT-Klassen-ID dar, während die unteren 128 Bit den eindeutigen Index des NFT darstellen.
  • quantity: uint256: Die Menge des zu prägenden NFTs (create).
createFungibleToken
Diese Methode wird aufgerufen, wenn der Tokenvertrag bereitgestellt wird. Diese Methode kann nur von der Token Admin aufgerufen werden.
Parameter:
  • tokenID: ERC1155Token: Die fungible Tokendefinition, die im Buch aufgezeichnet werden soll, wie im folgenden Beispiel gezeigt.
    "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
Diese Methode ruft die Details für ein angegebenes Token ab. Diese Methode kann nur von einem Token Admin- oder einem Tokeneigentümer aufgerufen werden.
Parameter:
  • token: ERC1155Token: Die Tokendefinition, wie im folgenden Beispiel dargestellt:
     "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: Für fungible Token ist der Parameter metainfo leer. Bei ganzen NFTs enthält der Parameter metainfo codierte Daten für die folgende Struktur:
    struct ERC1155WholeNFT {
        bool isBurned;
        bool isLocked;
        uint256 creationDate;
        uint256 quantity;
        address createdBy;
        address owner;
    }
    Bei partiellen NFTs enthält der Parameter metainfo codierte Daten für die folgende Struktur:
    struct ERC1155FractionalNFT {
        bool isBurned;
        bool isLocked;
        uint256 creationDate;
        uint256 quantity;
        address createdBy;
        Owners[] owners;
    }
getTokenDecimals
Diese Methode gibt die Anzahl der Dezimalstellen zurück, die für ein Token konfiguriert wurden. Diese Methode kann nur mit einem Token Admin aufgerufen werden.
Parameter:
  • id: uint256: Die Token-ID.
Rücksendungen:
  • Ein uint8-Wert, der die Anzahl der Dezimalstellen angibt.
tokenIdOf
Diese Methode gibt die Token-ID zurück. Diese Methode kann nur mit einem Token Admin aufgerufen werden.
Parameter:
  • classId: uint256: Die NFT-Klassen-ID.
  • serialId: uint256: Die Serien-ID in der NFT-Klasse.
Rücksendungen:
  • Ein uint256-Wert der Token-ID.
balanceOf
Diese Methode gibt den aktuellen Tokensaldo für einen angegebenen Benutzer zurück. Diese Methode kann nur von einem Token Admin oder vom Tokeneigentümer aufgerufen werden.
Parameter:
  • account: string: Die Accountadresse des Benutzers.
  • id: uint256: Die Token-ID.
Rücksendungen:
  • Ein uint256-Wert, der den aktuellen Saldo angibt.
balanceOfBatch
Diese Methode gibt die aktuellen Tokensalden für einen Batch mit angegebenen Benutzern zurück. Diese Methode kann nur von einem Token Admin oder vom Tokeneigentümer aufgerufen werden.
Parameter:
  • accounts: string[]: Eine Liste der Accountadressen von Benutzern.
  • ids: uint256[]: Eine Liste der Token-IDs.
Rücksendungen:
  • Eine Werteliste uint256[], die aktuelle Salden angibt.
exists
Diese Methode prüft, ob ein angegebenes Token vorhanden ist. Diese Methode kann nur mit einem Token Admin aufgerufen werden.
Parameter:
  • id: uint256: Die Token-ID.
Rücksendungen:
  • Ein boolescher Wert (true oder false).
totalSupply
Diese Methode gibt die Gesamtmenge der Token in einem Vertrag zurück. Diese Methode kann nur mit einem Token Admin aufgerufen werden.
Parameter:
  • id: uint256 (optional) – Eine Token-ID. Wenn Sie keine Token-ID angeben, wird die Gesamtmenge aller Token im Vertrag zurückgegeben
Rücksendungen:
  • Ein uint256-Wert, der die gesamte Bedarfsdeckung angibt.

Tokenverhaltensmethoden - Mintable-Verhalten

mintBatch
Diese Methode prägt ERC-1155-Token in Batches. Die Token müssen bereits initialisiert werden. Diese Methode kann von jedem Benutzer mit der Rolle "Miner" aufgerufen werden.
Parameter:
  • tokenIds: uint256[]: Eine Liste der Token-IDs für Mint.
  • quantity: uint256[]: Eine entsprechende Liste der zu mint hinzuzufügenden Tokenmengen.
  • data: bytes: Zusätzliche Daten im Byteformat.

Tokenverhaltensmethoden - Burnable Behavior

burnBatch
Bei dieser Methode werden ERC-1155-Token in Batches verbrannt. Die Token müssen bereits initialisiert werden. Diese Methode kann von jedem Benutzer mit der Brennerrolle aufgerufen werden.
Parameter:
  • tokenIds: uint256[]: Eine Liste der zu brennenden Token-IDs.
  • quantity: uint256[]: Eine entsprechende Liste der zu brennenden Tokenmengen.
  • data: bytes: Zusätzliche Daten im Byteformat.
burnNFT
Diese Methode brennt NFTs. Das Token muss bereits initialisiert werden. Diese Methode kann von jedem Benutzer mit der Brennerrolle aufgerufen werden.
Parameter:
  • tokenId: uint256: Die ID des zu brennenden Tokens.

Tokenverhaltensmethoden - Übertragbares Verhalten

safeTransferFrom
Diese Methode kann von jedem Benutzer mit Token aufgerufen werden, um sie an einen anderen Benutzer zu übertragen.
Parameter:
  • from: string: Die Wallet-Adresse des Absenders, die nicht Null sein darf.
  • to: string: Die Wallet-Adresse des Empfängers, die nicht Null sein darf.
  • id: uint256: Die ID des zu übertragenden Tokens.
  • value: uint256: Die Menge der zu übertragenden Token.
  • data: bytes: Zusätzliche Daten im Byteformat.
safeBatchTransferFrom
Diese Methode kann von jedem Benutzer mit Token aufgerufen werden, um sie in Batches an einen anderen Benutzer zu übertragen.
Parameter:
  • from: string: Die Wallet-Adresse des Absenders, die nicht Null sein darf.
  • to: string: Die Wallet-Adresse des Empfängers, die nicht Null sein darf.
  • id: uint256[]: Eine Liste der IDs der zu übertragenden Token.
  • value: uint256[]: Eine entsprechende Liste der zu übertragenden Tokenmengen.
  • data: bytes: Zusätzliche Daten im Byteformat.

Tokenverhaltensmethoden - Delegierbares Verhalten

setApprovalForAll
Diese Methode kann von jedem Benutzer aufgerufen werden, der Eigentümer von Token ist, um einem Operator die Berechtigung zum Übertragen der Token des Anrufers zu erteilen oder zu widerrufen.
Parameter:
  • operator: string: Die Wallet-Adresse des Operators, die nicht Null sein darf.
  • approved: bool: Ein Flag, das angibt, ob der Operator berechtigt ist, die Token des Aufrufers zu übertragen.
isApprovedForAll
Diese Methode kann von jedem Benutzer aufgerufen werden, der Eigentümer von Token ist, um zu prüfen, ob ein bestimmter Benutzer als Operator berechtigt ist, die Token des Anrufers zu übertragen.
Parameter:
  • account: string: Die Adresse des Benutzers, der die Berechtigung für den Vorgang zur Übertragung seiner Token erteilt oder widerrufen hat.
  • operator: string: Die Wallet-Adresse des Operators, die nicht Null sein darf.
Rücksendungen:
  • Ein boolescher Wert (true oder false), der angibt, ob der angegebene Benutzer die Berechtigung als Operator hat, die Token des Aufrufers zu übertragen.

Tokenverhaltensmethoden - Pausierbares Verhalten

paused
Diese Methode prüft, ob ein Vertrag unterbrochen wird. Diese Methode kann nur von jedem Benutzer aufgerufen werden.
Parameter:
  • Keine
pause
Mit dieser Methode wird ein Vertrag angehalten. Diese Methode kann nur mit einem Token Admin aufgerufen werden.
Parameter:
  • Keine
unpause
Mit dieser Methode wird ein unterbrochener Vertrag gestartet. Diese Methode kann nur mit einem Token Admin aufgerufen werden.
Parameter:
  • Keine

Tokenverhaltensmethoden - Sperrbares Verhalten

lockNFT
Diese Methode sperrt eine NFT. Diese Methode kann nur von einem Benutzer mit der Rolle TOKEN_SYS_VAULT_ROLE aufgerufen werden.
Parameter:
  • tokenId: uint256: Die ID des zu sperrenden Tokens.
isNFTLocked
Diese Methode prüft, ob ein NFT gesperrt ist. Diese Methode kann nur von einem Benutzer mit der Rolle TOKEN_SYS_VAULT_ROLE oder mit einer Token Admin aufgerufen werden.
Parameter:
  • tokenId: uint256: Die ID des zu prüfenden Tokens.
Rücksendungen:
  • Ein boolescher Wert (true oder false), der angibt, ob die NFT gesperrt ist.

Kontextverwaltungsmethoden

setContext
Diese Methode legt die Tokenvertragsadresse für den Accountvertrag fest. Diese Methode kann nur mit einem Token Admin aufgerufen werden.
Parameter:
  • tokenAddress: address: Die Vertragsadresse des bereitgestellten Tokens, die nicht Null sein darf.
getContext
Diese Methode ruft die Tokenvertragsadresse für den Accountvertrag ab. Diese Methode kann von jedem Benutzer aufgerufen werden.
Parameter:
  • Keine
Rücksendungen
  • Die Tokenvertragsadresse
setGovernanceContext
Mit dieser Methode wird der Governance-Vertrag festgelegt, mit dem der Governance-Lebenszyklus für den Accountvertrag verwaltet wird. Diese Methode kann nur mit einem Token Admin aufgerufen werden.
Parameter:
  • uuid: string: Die eindeutige ID, die von den digitalen Assets Token Admin vor dem Vertrags-Deployment festgelegt wird.
  • governance: address: Die Vertragsadresse des bereitgestellten Governance-Vertrags, der nicht null sein darf.
getGovernanceContext
Diese Methode ruft die Governance-Kontextdetails ab. Diese Methode kann von jedem Benutzer aufgerufen werden.
Parameter:
  • Keine
Rücksendungen
  • Ein governanceContext-Objekt.
Beispiel für Rückgabewert:
{
    "governanceUUID": "abc-def",
    "governance": "0x0000000",
	"deploymentActive": "true"
}
isDeploymentActive
Diese Methode prüft, ob das Deployment aktiv ist. Diese Methode kann von jedem Benutzer aufgerufen werden.
Parameter:
  • Keine
Rücksendungen:
  • Ein boolescher Wert (true oder false), der angibt, ob das Deployment aktiv ist.