ERC-1155 APIs de Contrato de Token

Você pode usar os seguintes métodos relacionados à funcionalidade de token em contratos de token ERC-1155.

Métodos de Configuração do Token

__ERC1155Token_init
Esse método é chamado quando um contrato de token é implantado. Esse método só pode ser chamado por um Token Admin.
Parâmetros:
  • uri: string – O URI de todos os tipos de token.

Métodos de Configuração de Token

saveNFTClass
Este método salva informações de classe NFT no razão. Esse método só pode ser chamado por um Token Admin.
Parâmetros:
  • classInfo: NFTClassInfo – O endereço do contrato da conta, que varia dependendo se o NFT é inteiro ou fracionário. NFT inteiro:
    {
        "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 fracionário:
     "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 cria NFTs com base nas informações de classe NFT salvas. Esse método pode ser chamado por um usuário com a atribuição de minter ou pelo Token Admin.
Parâmetros:
  • token: uint256 – O ID da NFT, que contém informações da classe NFT. Os 128 primeiros bits do parâmetro tokenId representam o ID da classe NFT, enquanto os 128 últimos representam o índice exclusivo do NFT.
  • quantity: uint256 – A quantidade de NFT para hortelã (criar).
createFungibleToken
Esse método é chamado quando o contrato de token é implantado. Esse método só pode ser chamado pelo Token Admin.
Parâmetros:
  • tokenID: ERC1155Token – A definição de token fungível a ser registrada no razão, conforme mostrado no exemplo a seguir.
    "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 obtém os detalhes de um token especificado. Esse método só pode ser chamado por um Token Admin ou por um proprietário de token.
Parâmetros:
  • token: ERC1155Token – A definição de token, conforme mostrado no exemplo a seguir:
     "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 fungíveis, o parâmetro metainfo está vazio. Para NFTs inteiros, o parâmetro metainfo contém dados codificados para a seguinte estrutura:
    struct ERC1155WholeNFT {
        bool isBurned;
        bool isLocked;
        uint256 creationDate;
        uint256 quantity;
        address createdBy;
        address owner;
    }
    Para NFTs fracionais, o parâmetro metainfo contém dados codificados para a seguinte estrutura:
    struct ERC1155FractionalNFT {
        bool isBurned;
        bool isLocked;
        uint256 creationDate;
        uint256 quantity;
        address createdBy;
        Owners[] owners;
    }
getTokenDecimals
Este método retorna o número de casas decimais que foram configuradas para um token. Esse método só pode ser chamado por um Token Admin.
Parâmetros:
  • id: uint256 – O ID do token.
Retorna:
  • Um valor uint8 que indica o número de casas decimais.
tokenIdOf
Este método retorna o ID do token. Esse método só pode ser chamado por um Token Admin.
Parâmetros:
  • classId: uint256 – O ID da classe NFT.
  • serialId: uint256 – O ID de série na classe NFT.
Retorna:
  • Um valor uint256 do ID do token.
balanceOf
Este método retorna o saldo do token atual para um usuário especificado. Esse método só pode ser chamado por um Token Admin ou pelo proprietário do token.
Parâmetros:
  • account: string – O endereço da conta do usuário.
  • id: uint256 – O ID do token.
Retorna:
  • Um valor uint256 indicando o saldo atual.
balanceOfBatch
Este método retorna os saldos de token atuais para um lote de usuários especificados. Esse método só pode ser chamado por um Token Admin ou pelo proprietário do token.
Parâmetros:
  • accounts: string[] – Uma lista de endereços de conta dos usuários.
  • ids: uint256[] – Uma lista de IDs de token.
Retorna:
  • Uma lista de valores uint256[] que indica os saldos atuais.
exists
Este método verifica se existe um token especificado. Esse método só pode ser chamado por um Token Admin.
Parâmetros:
  • id: uint256 – O ID do token.
Retorna:
  • Um valor booliano (verdadeiro ou falso).
totalSupply
Este método retorna o suprimento total de tokens em um contrato. Esse método só pode ser chamado por um Token Admin.
Parâmetros:
  • id: uint256 (opcional) – Um ID de token. Se você não especificar um ID de token, o suprimento total de todos os tokens no contrato será retornado
Retorna:
  • Um valor uint256 que indica o suprimento total.

Métodos de Comportamento de Token - Comportamento de Mintable

mintBatch
Este método cunha tokens ERC-1155 em lotes. Os tokens já devem estar inicializados. Esse método pode ser chamado por qualquer usuário com a função de mineiro.
Parâmetros:
  • tokenIds: uint256[] – Uma lista de IDs de token para mint.
  • quantity: uint256[] – Uma lista correspondente de quantidades de token para mint.
  • data: bytes – Dados adicionais em formato de byte.

Métodos de Comportamento de Token - Comportamento Queimável

burnBatch
Este método queima tokens ERC-1155 em lotes. Os tokens já devem ter sido inicializados. Este método pode ser chamado por qualquer usuário com a função de queimador.
Parâmetros:
  • tokenIds: uint256[] – Uma lista de IDs de token a serem gravados.
  • quantity: uint256[] – Uma lista correspondente de quantidades de token a serem gravadas.
  • data: bytes – Dados adicionais em formato de byte.
burnNFT
Este método queima NFTs. O token já deve ter sido inicializado. Este método pode ser chamado por qualquer usuário com a função de queimador.
Parâmetros:
  • tokenId: uint256 – O ID do token a ser gravado.

Métodos de Comportamento de Token - Comportamento Transferível

safeTransferFrom
Este método pode ser chamado por qualquer usuário com tokens para transferi-los para outro usuário.
Parâmetros:
  • from: string – O endereço da wallet do remetente, que não deve ser zero.
  • to: string – O endereço da wallet do receptor, que não deve ser zero.
  • id: uint256 – O ID do token a ser transferido.
  • value: uint256 – A quantidade de tokens a serem transferidos.
  • data: bytes – Dados adicionais em formato de byte.
safeBatchTransferFrom
Este método pode ser chamado por qualquer usuário com tokens para transferi-los em lotes para outro usuário.
Parâmetros:
  • from: string – O endereço da wallet do remetente, que não deve ser zero.
  • to: string – O endereço da wallet do receptor, que não deve ser zero.
  • id: uint256[] – Uma lista de IDs de tokens a serem transferidos.
  • value: uint256[] – Uma lista correspondente de quantidades de tokens a serem transferidos.
  • data: bytes – Dados adicionais em formato de byte.

Métodos de Comportamento de Token - Comportamento Delegável

setApprovalForAll
Este método pode ser chamado por qualquer usuário que possua tokens para conceder ou revogar a permissão de um operador para transferir os tokens do chamador.
Parâmetros:
  • operator: string – O endereço da wallet do operador, que não deve ser zero.
  • approved: bool – Um flag indicando se o operador tem permissão para transferir os tokens do chamador.
isApprovedForAll
Este método pode ser chamado por qualquer usuário que possua tokens para verificar se um usuário especificado tem permissão como operador para transferir os tokens do chamador.
Parâmetros:
  • account: string – O endereço do usuário que concedeu ou revogou a permissão para a operação transferir seus tokens.
  • operator: string – O endereço da wallet do operador, que não deve ser zero.
Retorna:
  • Um valor Booliano (verdadeiro ou falso) indicando se o usuário especificado tem permissão como operador para transferir os tokens do chamador.

Métodos de Comportamento de Token - Comportamento Pausável

paused
Este método verifica se um contrato está pausado. Este método só pode ser chamado por qualquer usuário.
Parâmetros:
  • Nenhum
pause
Este método pausa um contrato. Esse método só pode ser chamado por um Token Admin.
Parâmetros:
  • Nenhum
unpause
Este método inicia um contrato pausado. Esse método só pode ser chamado por um Token Admin.
Parâmetros:
  • Nenhum

Métodos de Comportamento de Token - Comportamento Bloqueável

lockNFT
Este método bloqueia um NFT. Esse método só pode ser chamado por um usuário com a atribuição TOKEN_SYS_VAULT_ROLE.
Parâmetros:
  • tokenId: uint256 – O ID do token a ser bloqueado.
isNFTLocked
Este método verifica se um NFT está bloqueado. Esse método só pode ser chamado por um usuário com a atribuição TOKEN_SYS_VAULT_ROLE ou por um Token Admin.
Parâmetros:
  • tokenId: uint256 – O ID do token a ser verificado.
Retorna:
  • Um valor Booliano (verdadeiro ou falso) indicando se o NFT está bloqueado.

Métodos de Gerenciamento de Contexto

setContext
Este método define o endereço do contrato de token para o contrato da conta. Esse método só pode ser chamado por um Token Admin.
Parâmetros:
  • tokenAddress: address – O endereço do contrato do token implantado, que não deve ser zero.
getContext
Este método obtém o endereço do contrato de token para o contrato da conta. Este método pode ser chamado por qualquer usuário.
Parâmetros:
  • Nenhum
Retorna
  • O endereço do contrato de token
setGovernanceContext
Este método define o contrato de governança a ser usado para gerenciar o ciclo de vida de governança do contrato da conta. Esse método só pode ser chamado por um Token Admin.
Parâmetros:
  • uuid: string – O ID exclusivo definido pelos ativos digitais Token Admin antes da implantação do contrato.
  • governance: address – O endereço do contrato de governança implantado, que não deve ser zero.
getGovernanceContext
Este método obtém os detalhes do contexto de governança. Este método pode ser chamado por qualquer usuário.
Parâmetros:
  • Nenhum
Retorna
  • Um objeto governanceContext.
Exemplo de Valor de Retorno:
{
    "governanceUUID": "abc-def",
    "governance": "0x0000000",
	"deploymentActive": "true"
}
isDeploymentActive
Este método verifica se a implantação está ativa. Este método pode ser chamado por qualquer usuário.
Parâmetros:
  • Nenhum
Retorna:
  • Um valor Booliano (verdadeiro ou falso) indicando se a implantação está ativa.