API de contrato de token ERC-1155

Puede utilizar los siguientes métodos relacionados con la funcionalidad de token en los contratos de token ERC-1155.

Métodos de configuración de token

__ERC1155Token_init
Este método se llama cuando se despliega un contrato de token. Este método solo se puede llamar mediante Token Admin.
Parámetros:
  • uri: string: URI para todos los tipos de token.

Métodos de configuración de token

saveNFTClass
Este método guarda la información de clase de NFT en la contabilidad. Este método solo se puede llamar mediante Token Admin.
Parámetros:
  • classInfo: NFTClassInfo: la dirección del contrato de la cuenta, que varía según si la NFT es total o fraccional. TEF completa:
    {
        "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 fraccional:
     "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
Este método calcula las NFT basándose en la información de clase de NFT guardada. Este método puede ser llamado por un usuario con el rol minter o por Token Admin.
Parámetros:
  • token: uint256: ID de la NFT, que contiene información de clase de NFT. Los 128 bits superiores del parámetro tokenId representan el ID de clase de NFT, mientras que los 128 bits inferiores representan el índice único de NFT.
  • quantity: uint256: la cantidad de NFT que se debe acuñar (crear).
createFungibleToken
Este método se llama cuando se despliega el contrato de token. Este método solo puede ser llamado por Token Admin.
Parámetros:
  • tokenID: ERC1155Token: definición de token fungible que se debe registrar en el libro mayor, como se muestra en el siguiente ejemplo.
    "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
Este método obtiene los detalles de un token especificado. Este método solo lo puede llamar un Token Admin o un propietario de token.
Parámetros:
  • token: ERC1155Token: la definición del token, como se muestra en el siguiente ejemplo:
     "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: para tokens fungibles, el parámetro metainfo está vacío. Para NFT completos, el parámetro metainfo contiene datos codificados para la siguiente estructura:
    struct ERC1155WholeNFT {
        bool isBurned;
        bool isLocked;
        uint256 creationDate;
        uint256 quantity;
        address createdBy;
        address owner;
    }
    Para NFT fraccionales, el parámetro metainfo contiene datos codificados para la siguiente estructura:
    struct ERC1155FractionalNFT {
        bool isBurned;
        bool isLocked;
        uint256 creationDate;
        uint256 quantity;
        address createdBy;
        Owners[] owners;
    }
getTokenDecimals
Este método devuelve el número de decimales que se han configurado para un token. Este método solo se puede llamar mediante Token Admin.
Parámetros:
  • id: uint256: ID de token.
Devoluciones:
  • Valor uint8 que indica el número de decimales.
tokenIdOf
Este método devuelve el ID de token. Este método solo se puede llamar mediante Token Admin.
Parámetros:
  • classId: uint256: ID de clase de NFT.
  • serialId: uint256: el ID de serie de la clase NFT.
Devoluciones:
  • Un valor uint256 del ID de token.
balanceOf
Este método devuelve el saldo de token actual para un usuario especificado. Este método solo puede ser llamado por un Token Admin o por el propietario del token.
Parámetros:
  • account: string: dirección de la cuenta del usuario.
  • id: uint256: ID de token.
Devoluciones:
  • Valor uint256 que indica el saldo actual.
balanceOfBatch
Este método devuelve los balances de token actuales para un lote de usuarios especificados. Este método solo puede ser llamado por un Token Admin o por el propietario del token.
Parámetros:
  • accounts: string[]: lista de direcciones de cuenta de los usuarios.
  • ids: uint256[]: lista de ID de token.
Devoluciones:
  • Una lista de valores uint256[] que indica los saldos actuales.
exists
Este método comprueba si existe un token especificado. Este método solo se puede llamar mediante Token Admin.
Parámetros:
  • id: uint256: ID de token.
Devoluciones:
  • Valor booleano (verdadero o falso).
totalSupply
Este método devuelve el suministro total de tokens en un contrato. Este método solo se puede llamar mediante Token Admin.
Parámetros:
  • id: uint256 (opcional): un ID de token. Si no especifica un ID de token, se devuelve el suministro total de todos los tokens del contrato
Devoluciones:
  • Valor uint256 que indica el suministro total.

Métodos de comportamiento de token - Comportamiento minable

mintBatch
Este método acuña tokens ERC-1155 en lotes. Los tokens ya deben estar inicializados. Cualquier usuario con el rol minter puede llamar a este método.
Parámetros:
  • tokenIds: uint256[]: lista de ID de token que se deben acuñar.
  • quantity: uint256[]: lista correspondiente de cantidades de token a acuñar.
  • data: bytes: datos adicionales en formato de bytes.

Métodos de comportamiento de token - Comportamiento que se puede quemar

burnBatch
Este método quema tokens ERC-1155 en lotes. Los tokens ya deben inicializarse. Este método puede ser llamado por cualquier usuario con el rol de quemador.
Parámetros:
  • tokenIds: uint256[]: lista de ID de token que se van a grabar.
  • quantity: uint256[]: lista correspondiente de cantidades de token que se deben grabar.
  • data: bytes: datos adicionales en formato de bytes.
burnNFT
Este método quema NFT. El token ya debe inicializarse. Este método puede ser llamado por cualquier usuario con el rol de quemador.
Parámetros:
  • tokenId: uint256: ID del token que se va a grabar.

Métodos de comportamiento de token - Comportamiento transferible

safeTransferFrom
Este método puede ser llamado por cualquier usuario con tokens para transferirlos a otro usuario.
Parámetros:
  • from: string: dirección de cartera del remitente, que no debe ser cero.
  • to: string: dirección de cartera del receptor, que no debe ser cero.
  • id: uint256: ID del token que se va a transferir.
  • value: uint256: cantidad de tokens que se deben transferir.
  • data: bytes: datos adicionales en formato de bytes.
safeBatchTransferFrom
Cualquier usuario con tokens puede llamar a este método para transferirlos en lotes a otro usuario.
Parámetros:
  • from: string: dirección de cartera del remitente, que no debe ser cero.
  • to: string: dirección de cartera del receptor, que no debe ser cero.
  • id: uint256[]: lista de ID de tokens que se deben transferir.
  • value: uint256[]: lista correspondiente de cantidades de tokens para transferir.
  • data: bytes: datos adicionales en formato de bytes.

Métodos de comportamiento de token - Comportamiento delegable

setApprovalForAll
Este método puede ser llamado por cualquier usuario que posea tokens para otorgar o revocar permisos para que un operador transfiera los tokens del emisor de llamada.
Parámetros:
  • operator: string: dirección de cartera del operador, que no debe ser cero.
  • approved: bool: indicador que indica si el operador tiene permiso para transferir los tokens del emisor de llamada.
isApprovedForAll
Cualquier usuario propietario de tokens puede llamar a este método para comprobar si un usuario especificado tiene permiso como operador para transferir los tokens del emisor de llamada.
Parámetros:
  • account: string: dirección del usuario que ha otorgado o revocado el permiso para que la operación transfiera sus tokens.
  • operator: string: dirección de cartera del operador, que no debe ser cero.
Devoluciones:
  • Valor booleano (verdadero o falso) que indica si el usuario especificado tiene permiso como operador para transferir los tokens del emisor de llamada.

Métodos de comportamiento de token - Comportamiento utilizable

paused
Este método comprueba si un contrato está en pausa. Este método solo puede ser llamado por cualquier usuario.
Parámetros:
  • Ninguno
pause
Este método pausa un contrato. Este método solo se puede llamar mediante Token Admin.
Parámetros:
  • Ninguno
unpause
Este método inicia un contrato en pausa. Este método solo se puede llamar mediante Token Admin.
Parámetros:
  • Ninguno

Métodos de comportamiento de token - Comportamiento bloqueable

lockNFT
Este método bloquea una NFT. Este método solo lo puede llamar un usuario con el rol TOKEN_SYS_VAULT_ROLE.
Parámetros:
  • tokenId: uint256: ID del token que se va a bloquear.
isNFTLocked
Este método comprueba si una NFT está bloqueada. Este método solo lo puede llamar un usuario con el rol TOKEN_SYS_VAULT_ROLE o Token Admin.
Parámetros:
  • tokenId: uint256: ID del token que se va a comprobar.
Devoluciones:
  • Valor booleano (verdadero o falso) que indica si la NFT está bloqueada.

Métodos de Gestión de Contexto

setContext
Este método define la dirección de contrato de token para el contrato de cuenta. Este método solo se puede llamar mediante Token Admin.
Parámetros:
  • tokenAddress: address: dirección de contrato del token desplegado, que no debe ser cero.
getContext
Este método obtiene la dirección de contrato de token para el contrato de cuenta. Este método puede ser llamado por cualquier usuario.
Parámetros:
  • Ninguno
Devoluciones
  • La dirección del contrato de token
setGovernanceContext
Este método define el contrato de gobernanza que se debe utilizar para gestionar el ciclo de vida de gobernanza para el contrato de cuenta. Este método solo se puede llamar mediante Token Admin.
Parámetros:
  • uuid: string: ID único definido por los activos digitales Token Admin antes del despliegue del contrato.
  • governance: address: dirección del contrato del contrato de gobernanza desplegado, que no debe ser cero.
getGovernanceContext
Este método obtiene los detalles del contexto de gobernanza. Este método puede ser llamado por cualquier usuario.
Parámetros:
  • Ninguno
Devoluciones
  • Un objeto governanceContext.
Ejemplo de valor devuelto:
{
    "governanceUUID": "abc-def",
    "governance": "0x0000000",
	"deploymentActive": "true"
}
isDeploymentActive
Este método comprueba si el despliegue está activo. Este método puede ser llamado por cualquier usuario.
Parámetros:
  • Ninguno
Devoluciones:
  • Valor booleano (verdadero o falso) que indica si el despliegue está activo.