Blockchain App Builder generiert automatisch Methoden zur Verwaltung des Tokenaccountstatus. Controller-Methoden müssen öffentlich sein, damit sie aufgerufen werden können. Öffentliche Methodennamen beginnen mit einem Großbuchstaben. Methodennamen, die mit einem Kleinbuchstaben beginnen, sind privat.
-
GetAccountStatus
- Diese Methode ruft den aktuellen Status des Token-Accounts ab. Diese Methode kann von der
Token Admin des Chaincodes, einer Org Admin der angegebenen Organisation oder vom Tokenkontoeigentümer aufgerufen werden. Diese Methode unterstützt auch die Datenmigration für vorhandenen Chaincode, der auf eine neuere Version upgegradet wird.
-
func (t *Controller) GetAccountStatus(token_id string, org_id string, user_id string) (interface{}, error) {
account_id, err := t.Ctx.Account.GenerateAccountId(token_id, org_id, user_id)
if err != nil {
return nil, fmt.Errorf("error in getting the generating account_id of (Org-Id: %s, User-Id: %s)", org_id, user_id)
}
auth, err := t.Ctx.Auth.CheckAuthorization("AccountStatus.Get", "TOKEN", map[string]string{"account_id": account_id})
if err != nil && !auth {
return nil, fmt.Errorf("error in authorizing the caller %s", err.Error())
}
accountStatus, err := t.Ctx.AccountStatus.GetAccountStatus(account_id)
if err != nil {
return t.Ctx.AccountStatus.GetDefaultAccountStatus(account_id)
}
return accountStatus, nil
}
- Parameter:
token_id: string: Die ID des Tokens.
org_id: string: Die Mitgliedsdienstanbieter-(MSP-)ID des Benutzers in der aktuellen Organisation.
user_id: string: Der Benutzername oder die E-Mail-ID des Benutzers.
- Rückgabewert:
- Bei Erfolg eine Nachricht, die Details zum Tokenaccountstatus enthält.
- Beispiel für Rückgabewert:
{
"AssetType": "oaccountStatus",
"StatusId": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
"AccountId": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
"Status": "active"
}
-
GetAccountStatusHistory
- Diese Methode ruft die Historie des Kontostatus ab. Diese Methode kann von der
Token Admin des Chaincodes, einer Org Admin der angegebenen Organisation oder vom Tokenkontoeigentümer aufgerufen werden.
-
func (t *Controller) GetAccountStatusHistory(token_id string, org_id string, user_id string) (interface{}, error) {
account_id, err := t.Ctx.Account.GenerateAccountId(token_id, org_id, user_id)
if err != nil {
return nil, fmt.Errorf("error in getting the generating account_id of (Org-Id: %s, User-Id: %s)", org_id, user_id)
}
_, err = t.Ctx.Account.GetAccount(account_id)
if err != nil {
return nil, fmt.Errorf("error in GetAccountStatusHistory: %s", err)
}
auth, err := t.Ctx.Auth.CheckAuthorization("AccountStatus.Get", "TOKEN", map[string]string{"account_id": account_id})
if err != nil && !auth {
return nil, fmt.Errorf("error in authorizing the caller %s", err.Error())
}
status_id, err := t.Ctx.AccountStatus.GenerateAccountStatusId(account_id)
if err != nil {
return nil, err
}
account_status_history, err := t.Ctx.AccountStatus.History(status_id)
if err != nil {
return []map[string]interface{}{}, nil
}
return account_status_history, nil
}
- Parameter:
token_id: string: Die ID des Tokens.
org_id: string: Die Mitgliedsdienstanbieter-(MSP-)ID des Benutzers in der aktuellen Organisation.
user_id: string: Der Benutzername oder die E-Mail-ID des Benutzers.
- Rückgabewert:
- Bei Erfolg eine Nachricht, die Details der Accountstatushistorie enthält.
- Beispiel für Rückgabewert:
[
{
"IsDelete": "false",
"Timestamp": "2022-12-02T16:20:34+05:30",
"TxId": "af1601c7a14b4becf4bb3b285d85553b39bf234caaf1cd488a284a31a2d9df78",
"Value": {
"AccountId": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
"AssetType": "oaccountStatus",
"Status": "suspended",
"StatusId": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7"
}
},
{
"IsDelete": "false",
"Timestamp": "2022-12-02T16:19:15+05:30",
"TxId": "4b307b989063e43add5357ab110e19174d586b9746cc8a30c9aa3a2b0b48a34e",
"Value": {
"AccountId": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
"AssetType": "oaccountStatus",
"Status": "active",
"StatusId": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7"
}
}
]
-
ActivateAccount
- Mit dieser Methode wird ein Token-Account aktiviert. Diese Methode kann nur durch eine
Token Admin des Chaincodes oder durch eine Org Admin der angegebenen Organisation aufgerufen werden. Gelöschte Accounts können nicht aktiviert werden.
-
func (t *Controller) ActivateAccount(token_id string, org_id string, user_id string) (interface{}, error) {
account_id, err := t.Ctx.Account.GenerateAccountId(token_id, org_id, user_id)
if err != nil {
return nil, fmt.Errorf("error in getting the generating account_id of (Org-Id: %s, User-Id: %s)", org_id, user_id)
}
auth, err := t.Ctx.Auth.CheckAuthorization("AccountStatus.ActivateAccount", "TOKEN", map[string]string{"org_id": org_id})
if err != nil && !auth {
return nil, fmt.Errorf("error in authorizing the caller %s", err.Error())
}
return t.Ctx.Account.ActivateAccount(account_id)
}
- Parameter:
token_id: string: Die ID des Tokens.
org_id: string: Die Mitgliedsdienstanbieter-(MSP-)ID des Benutzers in der aktuellen Organisation.
user_id: string: Der Benutzername oder die E-Mail-ID des Benutzers.
- Rückgabewert:
- Bei Erfolg eine JSON-Darstellung des Accountstatusobjekts für den angegebenen Tokenaccount.
- Beispiel für Rückgabewert:
{
"AssetType": "oaccountStatus",
"StatusId": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
"AccountId": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
"Status": "active"
}
-
SuspendAccount
- Mit dieser Methode wird ein Token-Account unterbrochen. Unterbrochene Konten können weiterhin Lesevorgänge abschließen. Benutzer mit ausgesetzten Konten können keine Token senden, empfangen, mint oder brennen. Diese Methode kann nur durch eine
Token Admin des Chaincodes oder durch eine Org Admin der angegebenen Organisation aufgerufen werden. Nachdem ein Konto ausgesetzt wurde, können Sie keine Vorgänge ausführen, die das Konto aktualisieren. Ein gelöschter Account kann nicht ausgesetzt werden.
-
func (t *Controller) SuspendAccount(token_id string, org_id string, user_id string) (interface{}, error) {
account_id, err := t.Ctx.Account.GenerateAccountId(token_id, org_id, user_id)
if err != nil {
return nil, fmt.Errorf("error in getting the generating account_id of (Org-Id: %s, User-Id: %s)", org_id, user_id)
}
auth, err := t.Ctx.Auth.CheckAuthorization("AccountStatus.SuspendAccount", "TOKEN", map[string]string{"org_id": org_id})
if err != nil && !auth {
return nil, fmt.Errorf("error in authorizing the caller %s", err.Error())
}
return t.Ctx.Account.SuspendAccount(account_id)
}
- Parameter:
token_id: string: Die ID des Tokens.
org_id: string: Die Mitgliedsdienstanbieter-(MSP-)ID des Benutzers in der aktuellen Organisation.
user_id: string: Der Benutzername oder die E-Mail-ID des Benutzers.
- Rückgabewert:
- Bei Erfolg eine JSON-Darstellung des Accountstatusobjekts für den angegebenen Tokenaccount.
- Beispiel für Rückgabewert:
{
"AssetType": "oaccountStatus",
"StatusId": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
"AccountId": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
"Status": "suspended"
}
-
DeleteAccount
- Mit dieser Methode wird ein Token-Account gelöscht. Diese Methode kann nur durch eine
Token Admin des Chaincodes oder durch eine Org Admin der angegebenen Organisation aufgerufen werden. Nachdem ein Konto gelöscht wurde, können Sie keine Vorgänge abschließen, die das Konto aktualisieren. Das gelöschte Konto befindet sich in einem endgültigen Status und kann nicht in einen anderen Status geändert werden. Um ein Konto zu löschen, müssen der Kontensaldo und der einbehaltene Saldo Null sein.
-
func (t *Controller) DeleteAccount(token_id string, org_id string, user_id string) (interface{}, error) {
account_id, err := t.Ctx.Account.GenerateAccountId(token_id, org_id, user_id)
if err != nil {
return nil, fmt.Errorf("error in getting the generating account_id of (Org-Id: %s, User-Id: %s)", org_id, user_id)
}
auth, err := t.Ctx.Auth.CheckAuthorization("AccountStatus.DeleteAccount", "TOKEN", map[string]string{"org_id": org_id})
if err != nil && !auth {
return nil, fmt.Errorf("error in authorizing the caller %s", err.Error())
}
return t.Ctx.Account.DeleteAccount(account_id)
}
- Parameter:
token_id: string: Die ID des Tokens.
org_id: string: Die Mitgliedsdienstanbieter-(MSP-)ID des Benutzers in der aktuellen Organisation.
user_id: string: Der Benutzername oder die E-Mail-ID des Benutzers.
- Rückgabewert:
- Bei Erfolg eine JSON-Darstellung des Accountstatusobjekts für den angegebenen Tokenaccount.
- Beispiel für Rückgabewert:
{
"AssetType": "oaccountStatus",
"StatusId": "oaccountStatus~5a0b0d8b1c6433af9fedfe0d9e6580e7cf6b6bb62a0de6267aaf79f79d5e96d7",
"AccountId": "oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1",
"Status": "deleted"
}