Controle de Acesso

O suporte à tokenização inclui um recurso de controle de acesso que suporta mecanismos de controle baseados em função e em propriedade.

Com o controle baseado em atribuição, os usuários podem chamar métodos específicos com uma atribuição associada, como Token Admin ou Token Minter. Com o controle baseado em propriedade, você pode restringir o acesso dos usuários aos ativos que eles não possuem. Com o controle de acesso baseado em propriedade, métodos específicos podem ser chamados pelos usuários que possuem os ativos, como Token Owner ou Account Owner. Para obter informações específicas sobre o controle de acesso para métodos, consulte as entradas individuais para os métodos documentados nos seguintes tópicos:
O controle de acesso baseado em atribuição suporta as seguintes personas:
Administrador de Tokens
Os usuários Token Admin podem ser designados quando um chaincode de token é implantado. As informações do usuário Token Admin são salvas no banco de dados de estado. Um usuário Token Admin pode conceder e remover privilégios Token Admin para outros usuários. Um usuário Token Admin não pode remover seus próprios privilégios Token Admin. Um usuário Token Admin pode designar a atribuição Org Admin, minter, burner ou notary a qualquer usuário.
Administração da Organização
Os métodos estendidos do Token Taxonomy Framework suportam a função Org Admin. Um usuário Token Admin pode designar a atribuição Org Admin a qualquer usuário. Os usuários Org Admin têm privilégios administrativos, mas somente dentro de sua organização. Eles podem criar contas ou ver saldos de contas, mas apenas para usuários em sua organização. Os usuários Org Admin que têm uma atribuição de mineiro, gravador ou notário podem atribuir essa atribuição a outros usuários em sua organização.
Token Minter
Um usuário com a atribuição de minter é Token Minter e pode usar tokens de mint.
Gravador de Token
Um usuário que recebe a atribuição de gravador é um Token Burner e pode gravar tokens.
Token Notary
Um usuário que recebe a atribuição de notário é um Token Notary. Um Token Notary atua como um terceiro nas transações entre pagadores e favorecidos. Um Token Notary pode acionar a conclusão de uma transferência de token de um pagador para um favorecido ou pode devolver os tokens à conta do pagador.
Gerenciador de Vault
Um usuário que recebeu a atribuição de vault é o Vault Manager. O Vault Manager pode desbloquear um NFT bloqueado. A função de cofre é aplicável apenas para os padrões ERC-721 e ERC-1155 estendidos. A atribuição da atribuição de vault a um usuário é um pré-requisito para bloquear NFTs. Somente um usuário por chaincode pode receber a atribuição de vault.
O controle de acesso baseado em propriedade suporta as seguintes personas:
Proprietário da Conta
Qualquer usuário que tenha uma conta é um Account Owner.
Proprietário do token
Qualquer usuário que possua atualmente um token não fungível é o Token Owner desse token.

O controle de acesso baseado em atribuição e o controle de acesso baseado em propriedade também são combinados em alguns métodos. Por exemplo, o controle de acesso baseado em função permite que um usuário com a função de mineiro crie tokens. Com o controle de acesso baseado em propriedade, um proprietário de token não fungível pode modificar as propriedades personalizadas de um token, mas não pode modificar os metadados do token. Quando um usuário com a atribuição de minter cria um token não fungível (NFT), ele se torna o proprietário do NFT. Como proprietário desse NFT, eles podem modificar as propriedades personalizadas (para um token de coleção de arte, o preço do token é uma propriedade personalizada). Depois que o criador do token transfere o NFT para outro usuário, o segundo usuário se torna o proprietário e o usuário que criou o token não é mais o proprietário do token. Por causa do controle de acesso baseado em propriedade, o novo proprietário agora pode atualizar um valor de propriedade personalizado, mas o proprietário anterior não pode mais. Por causa do controle de acesso baseado em função, o proprietário anterior ainda pode criar um NFT, mas o novo usuário não pode.

Você também pode criar suas próprias funções de controle de acesso ou desativar o controle de acesso. O código gerado automaticamente que controla o acesso é mostrado nos exemplos a seguir.

TypeScript:
await this.Ctx.<Token Standard>Auth.checkAuthorization(...)
Ir:
auth, err := t.Ctx.<Token Standard>Auth.CheckAuthorization(...)

Observação:

Para remover a função de controle de acesso gerada automaticamente, remova a linha de código anterior do seu projeto TypeScript ou Go.