Smart Contract responsável pela camada de controle de acesso para o Real Digital/Tokenizado.
Suas principais funcionalidades são:
- Determinar quais carteiras podem enviar/receber tokens.
- Controlar os papeis de qual endereço pode emitir/resgatar/congelar saldo de uma carteira.
bytes32 PAUSER_ROLE
Role que permite pausar o contrato.
bytes32 MINTER_ROLE
Role que permite fazer o mint
nos contratos de token.
bytes32 ACCESS_ROLE
Role que permite habilitar um endereço.
bytes32 MOVER_ROLE
Role que permite acesso à função move
, ou seja, transferir o token de outra carteira.
bytes32 BURNER_ROLE
Role que permite acesso à função burn
.
bytes32 FREEZER_ROLE
Role que permite bloquear saldo de uma carteira, por exemplo para o swap de dois passos.
mapping(address => bool) authorizedAccounts
Mapping das contas autorizadas a receber o token.
event EnabledAccount(address member)
Evento de carteira habilitada.
Name | Type | Description |
---|---|---|
member | address | Carteira habilitada |
event DisabledAccount(address member)
Evento de carteira desabilitada.
Name | Type | Description |
---|---|---|
member | address | Carteira desabilitada |
constructor(address _authority, address _admin) internal
Constrói uma instância do contrato, armazenando os argumentos informados.
Name | Type | Description |
---|---|---|
_authority | address | Autoridade do contrato, pode fazer todas as operações com o token |
_admin | address | Administrador do contrato, pode trocar a autoridade do contrato caso seja necessário |
modifier checkAccess(address from, address to)
Modificador que checa se tanto o pagador quanto o recebedor estão habilitados a receber o token.
Name | Type | Description |
---|---|---|
from | address | Carteira do pagador |
to | address | Carteira do recebedor |
function enableAccount(address member) public
Habilita a carteira a receber o token.
Name | Type | Description |
---|---|---|
member | address | Carteira a ser habilitada |
function disableAccount(address member) public
Desabilita a carteira.
Name | Type | Description |
---|---|---|
member | address | Carteira a ser desabilitada |
function verifyAccount(address account) public view virtual returns (bool)
Checa se a carteira pode receber o token.
Name | Type | Description |
---|---|---|
account | address | Carteira a ser checada |