ERC-1155 Fluxo de Tokenização
Depois de implantar um projeto de token ERC-1155, os administradores de token e os proprietários de token seguem um fluxo típico para criar tokens e concluir operações de ciclo de vida.
Quando você implanta um projeto de token, os usuários na lista passados para o método de inicialização se tornam administradores de token do chaincode. Após a implantação, o fluxo típico para criar tokens e concluir operações de ciclo de vida segue estas etapas:
Operações de administrador de token:
- Crie contas de usuário para qualquer pessoa que possua tokens ou conclua operações relacionadas a token.
- Para cada conta de usuário, crie contas de token. Os usuários podem ter várias contas de token fungíveis, mas apenas uma conta de token não fungível (NFT). Os administradores de token podem usar o método
createAccount
para criar contas de usuário e token simultaneamente, em vez de separadamente. - Crie tokens fungíveis, conforme necessário. Ao inicializar um token fungível, você pode designar os metadados e comportamentos associados ao token.
- Para tokens fungíveis, associe as contas de token fungíveis dos usuários a tokens fungíveis específicos.
- Adicione funções de minerador e gravador às contas de token dos usuários conforme necessário.
Operações do proprietário do token:
- Os usuários que têm a função de minerador para um token específico podem criar NFTs (mint) ou tokens fungíveis.
- Os usuários podem transferir tokens entre contas e verificar saldos de contas.
- Os usuários que têm a função de queimador para um token específico podem destruir (queimar) NFTs ou tokens fungíveis.
Operações do Vault Manager:
- O usuário que tem a função de vault pode bloquear NFTs. Um NFT bloqueado não pode ser gravado ou transferido para outros usuários.
O diagrama a seguir mostra o fluxo geral do processo para um cenário de tokenização ERC-1155.
A tabela a seguir resume os métodos gerados automaticamente quando você organiza um projeto de token ERC-1155.
Categoria do Método | Método gerado automaticamente (TypeScript) | Método gerado automaticamente (Ir) | Chamado por | Descrição |
---|---|---|---|---|
Gerenciamento de Administrador | init |
Init |
Administração | Inicializa o chaincode do token |
isTokenAdmin |
IsTokenAdmin |
Administração | Retorna verdadeiro se o chamador for um Administrador | |
addTokenAdmin |
AddTokenAdmin |
Administração | Adiciona um Administrador | |
removeTokenAdmin |
RemoveTokenAdmin |
Administração | Remove um Administrador | |
getAllTokenAdmins |
GetAllTokenAdmins |
Administração | Retorna todos os Administradores | |
Gerenciamento de Contas | createAccount |
CreateAccount |
Administração | Cria uma conta de usuário e contas de token |
createUserAccount |
CreateUserAccount |
Administração | Cria uma conta de usuário | |
createTokenAccount |
CreateTokenAccount |
Administração | Cria uma conta de token | |
associateFungibleTokenAccount |
AssociateFungibleTokenAccount |
Administração | Associa uma conta de token fungível a um token fungível | |
getAccountHistory |
GetAccountHistory |
Admin / Proprietário da Conta | Retorna o histórico de uma conta de token | |
getAccountTransactionHistory |
GetAccountTransactionHistory |
Admin / Proprietário da Conta | Retorna o histórico de transações de uma conta | |
getAccount |
GetAccount |
Admin / Proprietário da Conta | Retorna detalhes de uma conta de token | |
getAllAccounts |
GetAllAccounts |
Administração | Retorna detalhes de todas as contas de usuário | |
getAccountDetailsByUser |
GetAccountDetailsByUser |
Admin / Proprietário da Conta | Retorna detalhes de uma conta de usuário e todos os tokens associados | |
getUserByAccountId |
GetUserByAccountId |
Qualquer usuário | Retorna detalhes do usuário para um ID de conta | |
Gerenciamento de Atribuições | addRole |
AddRole |
Administração | Adiciona uma atribuição a um usuário e token |
isInRole |
IsInRole |
Admin / Proprietário da Conta | Retorna se um usuário tem uma atribuição especificada para um token | |
removeRole |
RemoveRole |
Administração | Remove uma atribuição de um usuário e token | |
getAccountsByRole |
GetAccountsByRole |
Administração | Retorna IDs de conta para uma função e token especificados | |
getUsersByRole |
GetUsersByRole |
Administração | Retorna uma lista de usuários para uma atribuição e um token especificados | |
Comportamento Mintable | mintBatch |
MintBatch |
Usuários com a atribuição de minter | Menta vários tokens |
Comportamento Transferível | batchTransferFrom |
BatchTransferFrom |
Qualquer usuário | Transfere tokens entre usuários |
safeBatchTransferFrom |
SafeBatchTransferFrom |
Qualquer usuário | Transfere tokens entre o chamador do método e outro usuário | |
balanceOfBatch |
BalanceOfBatch |
Admin / Proprietário da Conta | Retorna saldos de conta de token para vários usuários e tokens | |
exchangeToken |
ExchangeToken |
Proprietário da Conta | Troca tokens entre contas de token | |
Comportamento Queimável | burnBatch |
BurnBatch |
Usuários com a função de queimador | Grava tokens |
Gerenciamento de tokens | create<Token Name>Token |
Create<Token Name>Token |
Admin (tokens fungíveis) / Usuários com a função de minerador (NFTs) | Cria tokens |
update<Token Name>Token |
Update<Token Name>Token |
Admin (tokens fungíveis) / Proprietário do Token (NFTs) | Atualiza tokens | |
getTokenHistory |
GetTokenHistory |
Qualquer usuário | Retorna o histórico de um token | |
getTransactionById |
GetTransactionById |
Qualquer usuário | Retorna os detalhes de uma transação especificada | |
deleteHistoricalTransactions |
DeleteHistoricalTransactions |
Administração | Exclui transações antes de um horário especificado | |
getAllTokens |
GetAllTokens |
Administração | Retorna todos os ativos de token | |
getTokenById |
GetTokenById |
Administrador/Proprietário do token | Retorna um token | |
getAllTokensByUser |
GetAllTokensByUser |
Admin / Proprietário da Conta | Retorna todos os tokens pertencentes a um usuário especificado | |
ownerOf |
OwnerOf |
Qualquer usuário | Retorna os detalhes do usuário do proprietário de um token especificado | |
URI |
URI |
Qualquer usuário | Retorna o URI de um token especificado | |
name |
Name |
Qualquer usuário | Retorna o nome de um determinado token | |
totalSupply |
TotalSupply |
Administração | Retorna o número de tokens cunhados para um token especificado | |
totalNetSupply |
TotalNetSupply |
Administração | Retorna o número de tokens cunhados menos o número de tokens gravados para um token especificado | |
getTokensByName |
getTokensByName |
Administração | Retorna todos os ativos de token para um nome de token especificado | |
getTokenDecimal |
getTokenDecimal |
Administração | Retorna o número de casas decimais para um token especificado |