Controllo dell'accesso
Il supporto della tokenizzazione include una funzione di controllo dell'accesso che supporta sia i meccanismi di controllo basati sul ruolo che quelli basati sulla proprietà.
Token Admin
o Token Minter
. Grazie al controllo basato sulla proprietà, puoi impedire agli utenti di accedere ad asset di cui non sono proprietari. Con il controllo dell'accesso basato sulla proprietà, gli utenti proprietari degli asset possono chiamare metodi specifici, ad esempio Token Owner
o Account Owner
. Per informazioni specifiche sul controllo dell'accesso per i metodi, vedere le singole voci per i metodi documentati nei seguenti argomenti:
- Amministratore token
- Gli utenti
Token Admin
possono essere assegnati quando viene distribuito un codice concatenato di token. Le informazioni utenteToken Admin
vengono salvate nel database di stato. Un utenteToken Admin
può concedere e rimuovere i privilegiToken Admin
per altri utenti. Un utenteToken Admin
non può rimuovere i propri privilegiToken Admin
. Un utenteToken Admin
può assegnare il ruoloOrg Admin
, minter, burner o notaio a qualsiasi utente. - Amministratore organizzazione
- I metodi Extended Token Taxonomy Framework supportano il ruolo
Org Admin
. Un utenteToken Admin
può assegnare il ruoloOrg Admin
a qualsiasi utente. Gli utentiOrg Admin
dispongono dei privilegi di amministrazione, ma solo all'interno dell'organizzazione. Possono creare conti o visualizzare saldi conto, ma solo per gli utenti della propria organizzazione.Org Admin
Gli utenti che dispongono di un ruolo di minter, burner o notaio possono assegnare tale ruolo ad altri utenti della propria organizzazione. - Minter token
- Un utente a cui è assegnato il ruolo minter è un
Token Minter
e può coniare i token. - Bruger token
- Un utente a cui è assegnato il ruolo di bruciatore è un
Token Burner
e può masterizzare i token. - Notaio del token
- Un utente a cui è assegnato il ruolo notarile è un
Token Notary
. UnToken Notary
funge da terza parte nelle transazioni tra pagatori e beneficiari. UnToken Notary
può attivare il completamento di un trasferimento di token da un pagatore a un beneficiario oppure può invece restituire i token al conto del pagatore. - Gestione del vault
- Un utente a cui è assegnato il ruolo vault è
Vault Manager
.Vault Manager
può sbloccare un NFT bloccato. Il ruolo Vault è applicabile solo per gli standard ERC-721 e ERC-1155 estesi. L'assegnazione del ruolo vault a un utente è un prerequisito per il blocco di NFT. Il ruolo vault può essere assegnato a un solo utente per codice concatenato.
In alcuni metodi vengono combinati anche il controllo dell'accesso basato sui ruoli e il controllo dell'accesso basato sulla proprietà. Ad esempio, il controllo dell'accesso basato sui ruoli consente a un utente con il ruolo minter di creare i token. Con il controllo dell'accesso basato sulla proprietà, un proprietario di token non fungibile può modificare le proprietà personalizzate di un token, ma non può modificare i metadati del token. Quando un utente con il ruolo di minter crea un token non fungibile (NFT), diventa il proprietario dell'NFT. In qualità di proprietario di tale NFT, possono modificare le proprietà personalizzate (per un token di raccolta arte, il prezzo del token è una proprietà personalizzata). Dopo che il creatore del token trasferisce l'NFT a un altro utente, il secondo utente diventa il proprietario e l'utente che ha creato il token non è più il proprietario del token. A causa del controllo dell'accesso basato sulla proprietà, il nuovo proprietario ora può aggiornare un valore di proprietà personalizzato, ma il proprietario precedente non può più farlo. A causa del controllo dell'accesso basato sui ruoli, il proprietario precedente può ancora coniare un NFT, ma il nuovo utente non può.
È inoltre possibile scrivere le proprie funzioni di controllo dell'accesso o disabilitare il controllo dell'accesso. Il codice generato automaticamente che controlla l'accesso viene mostrato negli esempi riportati di seguito.
await this.Ctx.<Token Standard>Auth.checkAuthorization(...)
auth, err := t.Ctx.<Token Standard>Auth.CheckAuthorization(...)
Nota
Per rimuovere la funzione di controllo dell'accesso generata automaticamente, rimuovere la riga di codice precedente dal progetto TypeScript o Vai.