Proyecto Scaffolded Go para el marco de taxonomía de token
Blockchain App Builder toma la entrada de su archivo de especificación de token y genera un proyecto de código de cadena de andamios totalmente funcional.
El proyecto genera automáticamente clases y funciones de ciclo de vida de token, incluidos los métodos CRUD y no CRUD. La validación de argumentos, la canalización/anulación de canalización y la capacidad de persistencia transparente se admiten automáticamente.
Para obtener información sobre el proyecto andamiaje y los métodos que no están directamente relacionados con los tokens, consulte Scaffolded Go Chaincode Project.
Modelo
La capacidad de persistencia transparente, o ORM simplificado, se captura en la clase OchainModel
.
package src
type Digicur struct {
AssetType string `json:"AssetType" final:"otoken"`
Token_id string `json:"Token_id" id:"true" mandatory:"true" validate:"regexp=^[A-Za-z0-9][A-Za-z0-9_-]*$,max=16"`
Token_name string `json:"Token_name" final:"digicur"`
Token_desc string `json:"Token_desc" validate:"max=256"`
Token_type string `json:"Token_type" final:"fungible" validate:"regexp=^fungible$"`
Behavior []string `json:"Behavior" final:"[\"divisible\",\"mintable\",\"transferable\",\"burnable\",\"holdable\",\"roles\"]"`
Roles map[string]interface{} `json:"Roles" final:"{\"minter_role_name\":\"minter\",\"burner_role_name\":\"burner\",\"notary_role_name\":\"notary\"}"`
Mintable map[string]interface{} `json:"Mintable" final:"{\"Max_mint_quantity\":20000}"`
Divisible map[string]interface{} `json:"Divisible" final:"{\"Decimal\":1}"`
Token_to_currency_ratio int `json:"Token_to_currency_ratio" validate:"int"`
Currency_representation string `json:"Currency_representation" validate:"string"`
Metadata interface{} `json:"Metadata,omitempty"`
}
Controlador
Solo hay un controlador principal.
type Controller struct {
Ctx trxcontext.TrxContext
}
Puede crear cualquier número de clases, funciones o archivos, pero solo se pueden invocar los métodos definidos en la clase de controlador principal. Los otros métodos están ocultos.
Puede utilizar los métodos SDK de token para escribir métodos personalizados para la aplicación de negocio.
Si utiliza más de un método SDK de token en un método personalizado, no utilice métodos que afecten a los mismos pares clave-valor en la base de datos de estado.
En su lugar, utilice el método BulkTransferTokens
para transferir a varias cuentas desde la cuenta del emisor de la llamada, como se muestra en el siguiente fragmento de código.
BulkTransferTokens(token_id string, flow: []map[string]interface{})
Note:
Si utiliza más de un método SDK de token en un método personalizado que puede afectar a los mismos pares clave-valor en la base de datos de estado, active la optimización de MVCC para los códigos de cadenas de token. Para obtener más información, consulte MVCC Optimization.Métodos de token generados automáticamente
Blockchain App Builder genera automáticamente métodos para admitir tokens y ciclos de vida de tokens. Puede utilizar estos métodos para inicializar tokens, gestionar roles y cuentas, y completar otras tareas del ciclo de vida del token sin ninguna codificación adicional. Los métodos de controlador deben ser públicos para poder ser invocados. Los nombres de métodos públicos comienzan con un carácter en mayúscula. Los nombres de métodos que comienzan con un carácter en minúscula son privados.
- Gestión del Control de Acceso
- Gestión de configuración de token
- Gestión de cuentas
- Gestión de Roles
- Gestión de historial de transacciones
- Gestión de comportamiento de token
Métodos de Gestión de Control de Acceso
-
AddTokenAdmin
- Este método agrega un usuario como
Token Admin
del código de cadena. Este método solo puede ser llamado por unToken Admin
del código de cadena. -
RemoveTokenAdmin
- Este método elimina un usuario como
Token Admin
del código de cadena. Este método solo puede ser llamado por unToken Admin
del código de cadena. -
IsTokenAdmin
- Este método devuelve el valor booleano
true
si el emisor de llamada de la función esToken Admin
; de lo contrario, devuelvefalse
. UnToken Admin
oOrg Admin
pueden llamar a esta función en cualquier otro usuario de la red blockchain. Otros usuarios pueden llamar a este método solo en sus propias cuentas. -
GetAllTokenAdmins
- Este método devuelve una lista de todos los usuarios que son
Token Admin
del código de cadena. Este método solo puede ser llamado porToken Admin
oOrg Admin
del código de cadena. -
AddOrgAdmin
- Este método agrega un usuario como
Org Admin
de la organización. Este método solo puede ser llamado por unToken Admin
del código de cadena o por unOrg Admin
de la organización especificada. -
RemoveOrgAdmin
- Este método elimina un usuario como
Org Admin
de una organización. Este método solo puede ser llamado por unToken Admin
del código de cadena o por unOrg Admin
de la organización especificada. -
GetOrgAdmins
- Este método devuelve una lista de todos los usuarios que son
Org Admin
de una organización. Este método solo puede ser llamado por unToken Admin
del código de cadena o por cualquierOrg Admin
.
-
AddTokenAdmin
- Este método agrega un usuario como
Token Admin
del código de cadena. Este método solo puede ser llamado por unToken Admin
del código de cadena. -
RemoveTokenAdmin
- Este método elimina un usuario como
Token Admin
del código de cadena. Este método solo puede ser llamado por unToken Admin
del código de cadena. -
IsTokenAdmin
- Este método devuelve el valor booleano
true
si el emisor de llamada de la función esToken Admin
; de lo contrario, devuelvefalse
. Esta función solo puede ser llamada porToken Admin
,Token Auditor
,Org Admin
oOrg Auditor
. -
GetAllTokenAdmins
- Este método devuelve una lista de todos los usuarios que son
Token Admin
del código de cadena. Este método solo se puede llamar medianteToken Admin
oToken Auditor
. -
AddOrgAdmin
- Este método agrega un usuario como
Org Admin
de la organización. Este método solo puede ser llamado por unToken Admin
del código de cadena o por unOrg Admin
de la organización especificada. -
RemoveOrgAdmin
- Este método elimina un usuario como
Org Admin
de una organización. Este método solo puede ser llamado por unToken Admin
del código de cadena o por unOrg Admin
de la organización especificada. -
GetOrgAdmins
- Este método devuelve una lista de todos los usuarios que son
Org Admin
de una organización. Este método solo se puede llamar medianteToken Admin
,Token Auditor
,Org Admin
oOrg Auditor
. -
AddTokenAuditor
- Este método agrega un usuario como
Token Auditor
del código de cadena. Este método solo puede ser llamado por unToken Admin
del código de cadena. -
RemoveTokenAuditor
- Este método elimina un usuario como
Token Auditor
del código de cadena. Este método solo puede ser llamado por unToken Admin
del código de cadena. -
GetTokenAuditors
- Este método devuelve todos los
Token Auditors
del código de cadena. Este método solo puede ser llamado por unToken Admin
oToken Auditor
del código de cadena. -
AddOrgAuditor
- Este método agrega un usuario como
Org Auditor
del código de cadena. Este método solo puede ser llamado por unToken Admin
oOrg Admin
del código de cadena. -
RemoveOrgAuditor
- Este método elimina un usuario como
Org Auditor
del código de cadena. Este método solo puede ser llamado por unToken Admin
oOrg Admin
del código de cadena. -
GetOrgAuditors
- Este método devuelve todos los
Org Auditors
del código de cadena. Este método solo se puede llamar medianteToken Admin
,Token Auditor
,Org Admin
oOrg Auditor
.
Métodos para la Gestión de Configuración de Token
-
Init
- Este método se llama cuando se despliega el código de cadena. Cada
Token Admin
se identifica mediante la informaciónuser_id
yorg_id
en el parámetroadminList
obligatorio.user_id
es el nombre de usuario o el ID de correo electrónico del propietario de la instancia o del usuario conectado a la instancia.org_id
es el ID del proveedor de servicios de afiliación (MSP) del usuario en la organización de red actual. -
Initialize<Token Name>Token
- Este método crea un token e inicializa las propiedades del token. El activo y sus propiedades se guardan en la base de datos de estado. Este método solo puede ser llamado por un
Token Admin
del código de cadena. -
Update<Token Name>Token
- Este método actualiza las propiedades del token. Después de crear un activo de token, solo se pueden actualizar la propiedad
token_desc
y las propiedades personalizadas. Este método solo puede ser llamado por unToken Admin
del código de cadena. -
GetTokenDecimals
- Este método devuelve el número de decimales que se han configurado para un token fraccionario. Si no se ha especificado el comportamiento
divisible
para el token, el valor por defecto es 0. Este método solo puede ser llamado por unToken Admin
oOrg Admin
del código de cadena. -
GetTokenById
- Este método devuelve un objeto de token si está presente en la base de datos de estado. Este método solo puede ser llamado por un
Token Admin
oOrg Admin
del código de cadena. -
GetTokenHistory
- Este método devuelve el historial de tokens para un ID de token especificado. Cualquier usuario puede llamar a este método.
-
GetAllTokens
- Este método devuelve todos los tokens que se almacenan en la base de datos de estado. Este método solo puede ser llamado por un
Token Admin
oOrg Admin
del código de cadena. -
GetTokensByName
- Este método devuelve todos los objetos de token con un nombre especificado. Este método solo puede ser llamado por un
Token Admin
oOrg Admin
del código de cadena. Este método utiliza consultas enriquecidas de Berkeley DB SQL y solo se puede llamar cuando se conecta a la red remota de Oracle Blockchain Platform.
-
Init
- Este método se llama cuando se despliega el código de cadena. Cada
Token Admin
se identifica mediante la informaciónuser_id
yorg_id
en el parámetroadminList
obligatorio.user_id
es el nombre de usuario o el ID de correo electrónico del propietario de la instancia o del usuario conectado a la instancia.org_id
es el ID del proveedor de servicios de afiliación (MSP) del usuario en la organización de red actual. -
Initialize<Token Name>Token
- Este método crea un token e inicializa las propiedades del token. El activo y sus propiedades se guardan en la base de datos de estado. Este método solo puede ser llamado por un
Token Admin
del código de cadena. -
Update<Token Name>Token
- Este método actualiza las propiedades del token. Después de crear un activo de token, solo se pueden actualizar la propiedad
token_desc
y las propiedades personalizadas. Este método solo puede ser llamado por unToken Admin
del código de cadena. -
GetTokenDecimals
- Este método devuelve el número de decimales que se han configurado para un token fraccionario. Si no se ha especificado el comportamiento
divisible
para el token, el valor por defecto es 0. Este método solo se puede llamar medianteToken Admin
,Token Auditor
,Org Admin
oOrg Auditor
. -
GetTokenById
- Este método devuelve un objeto de token si está presente en la base de datos de estado. Este método solo se puede llamar mediante
Token Admin
,Token Auditor
,Org Admin
oOrg Auditor
. -
GetTokenHistory
- Este método devuelve el historial de tokens para un ID de token especificado. Este método solo se puede llamar mediante
Token Admin
,Token Auditor
,Org Admin
oOrg Auditor
. -
GetAllTokens
- Este método devuelve todos los tokens que se almacenan en la base de datos de estado. Este método solo se puede llamar mediante
Token Admin
,Token Auditor
,Org Admin
oOrg Auditor
. -
GetTokensByName
- Este método devuelve todos los objetos de token con un nombre especificado. Este método solo se puede llamar mediante
Token Admin
,Token Auditor
,Org Admin
oOrg Auditor
. Este método utiliza consultas enriquecidas de Berkeley DB SQL y solo se puede llamar cuando se conecta a la red remota de Oracle Blockchain Platform.
Métodos para la gestión de cuentas
-
CreateAccount
- Este método crea una cuenta para un usuario y token especificados. Se debe crear una cuenta para cualquier usuario que tenga tokens en cualquier momento. Las cuentas realizan un seguimiento de los saldos, los saldos retenidos y el historial de transacciones. Un ID de cuenta es un juego alfanumérico de caracteres, con el prefijo
oaccount~<token asset name>~
y seguido de un hash del nombre de usuario o el ID de correo electrónico (user_id
) del propietario de la instancia o del usuario que está conectado a la instancia, el ID de proveedor de servicios de afiliación (org_id
) del usuario de la organización de red actual. Este método solo puede ser llamado por unToken Admin
del código de cadena o unOrg Admin
de la organización especificada. -
AssociateTokenToAccount
- Este método asocia un token fungible a una cuenta. Este método solo puede ser llamado por un
Token Admin
del código de cadena o por unOrg Admin
de la organización relevante. -
GetAccount
- Este método devuelve los detalles de la cuenta para un usuario y token especificados. Este método solo puede ser llamado por un
Token Admin
del código de cadena, unOrg Admin
de la organización especificada o elAccountOwner
de la cuenta. -
GetAccountHistory
- Este método devuelve los detalles del historial de cuentas para un usuario y token especificados. Este método solo puede ser llamado por un
Token Admin
del código de cadena o elAccountOwner
de la cuenta. -
GetAccountOnHoldBalance
- Este método devuelve el saldo actual retenido para una cuenta y un token especificados. Este método solo puede ser llamado por un
Token Admin
del código de cadena, unOrg Admin
de la organización especificada o elAccountOwner
de la cuenta. -
GetAllAccounts
- Este método devuelve una lista de todas las cuentas. Este método solo puede ser llamado por un
Token Admin
del código de cadena. Este método utiliza consultas enriquecidas de Berkeley DB SQL y solo se puede llamar cuando se conecta a la red remota de Oracle Blockchain Platform. -
GetUserByAccountId
- Este método devuelve los detalles del usuario (
org_id
yuser_id
) para una cuenta especificada. Cualquier usuario del código de cadenas puede llamar a este método. -
GetAccountBalance
- Este método devuelve el saldo actual de una cuenta y un token especificados. Este método solo puede ser llamado por un
Token Admin
del código de cadena, unOrg Admin
de la organización especificada o elAccountOwner
de la cuenta. -
GetAllOrgAccounts
- Este método devuelve una lista de todas las cuentas de token que pertenecen a una organización especificada. Este método solo puede ser llamado por un
Token Admin
del código de cadena o por unOrg Admin
de la organización especificada.
-
CreateAccount
- Este método crea una cuenta para un usuario y token especificados. Se debe crear una cuenta para cualquier usuario que tenga tokens en cualquier momento. Las cuentas realizan un seguimiento de los saldos, los saldos retenidos y el historial de transacciones. Un ID de cuenta es un juego alfanumérico de caracteres, con el prefijo
oaccount~<token asset name>~
y seguido de un hash del nombre de usuario o el ID de correo electrónico (user_id
) del propietario de la instancia o del usuario que está conectado a la instancia, el ID de proveedor de servicios de afiliación (org_id
) del usuario de la organización de red actual. Este método solo puede ser llamado por unToken Admin
del código de cadena o unOrg Admin
de la organización especificada. -
AssociateTokenToAccount
- Este método asocia un token fungible a una cuenta. Este método solo puede ser llamado por un
Token Admin
del código de cadena o por unOrg Admin
de la organización relevante. -
GetAccount
- Este método devuelve los detalles de la cuenta para un usuario y token especificados. Este método solo se puede llamar mediante
Token Admin
oToken Auditor
, unOrg Admin
oOrg Auditor
de la organización especificada o elAccountOwner
de la cuenta. -
GetAccountHistory
- Este método devuelve los detalles del historial de cuentas para un usuario y token especificados. Este método solo puede ser llamado por un
Token Admin
del código de cadena o elAccountOwner
de la cuenta. -
GetAccountOnHoldBalance
- Este método devuelve el saldo actual retenido para una cuenta y un token especificados. Este método solo puede ser llamado por
Token Admin
oToken Auditor
,Org Admin
oOrg Auditor
de la organización especificada o el propietario de la cuenta especificado. -
GetAllAccounts
- Este método devuelve una lista de todas las cuentas. Este método solo puede ser llamado por un
Token Admin
oToken Auditor
del código de cadena. Este método utiliza consultas enriquecidas de Berkeley DB SQL y solo se puede llamar cuando se conecta a la red remota de Oracle Blockchain Platform. -
GetUserByAccountId
- Este método devuelve los detalles del usuario (
org_id
yuser_id
) para una cuenta especificada. Este método solo puede ser llamado porToken Admin
oToken Auditor
, o por unOrg Admin
oOrg Auditor
de la organización especificada. -
GetAccountBalance
- Este método devuelve el saldo actual de una cuenta y un token especificados. Este método solo puede ser llamado por
Token Admin
oToken Auditor
,Org Admin
oOrg Auditor
de la organización especificada o el propietario de la cuenta especificado. -
GetAllOrgAccounts
- Este método devuelve una lista de todas las cuentas de token que pertenecen a una organización especificada. Este método solo puede ser llamado por
Token Admin
oToken Auditor
, o por unOrg Admin
oOrg Auditor
de la organización especificada.
Métodos para la gestión de roles
-
AddRole
- Este método agrega un rol a un usuario y token especificados. Este método solo puede ser llamado por un
Token Admin
del código de cadena o por unOrg Admin
de la organización especificada que también tenga el rol especificado. -
RemoveRole
- Este método elimina un rol de un usuario y token especificados. Este método solo puede ser llamado por un
Token Admin
del código de cadena o unOrg Admin
de la organización especificada que también tenga el rol especificado. -
GetAccountsByRole
- Este método devuelve una lista de todos los ID de cuenta para un rol y token especificados. Este método solo puede ser llamado por un
Token Admin
del código de cadena. -
GetAccountsByUser
- Este método devuelve una lista de todos los IDs de cuenta para un ID de organización y un ID de usuario especificados. Este método solo puede ser llamado por un
Token Admin
del código de cadena, unOrg Admin
de la organización especificada o por elAccount Owner
especificado en los parámetros. -
GetUsersByRole
- Este método devuelve una lista de todos los usuarios para un rol y token especificados. Este método solo puede ser llamado por un
Token Admin
del código de cadena o por elAccount Owner
especificado en los parámetros. -
IsInRole
- Este método devuelve un valor booleano para indicar si un usuario y un token tienen un rol especificado. Este método solo puede ser llamado por
Token Admin
del código de cadena, unOrg Admin
de la organización especificada o elAccountOwner
de la cuenta. -
GetOrgAccountsByRole
- Este método devuelve información sobre todas las cuentas que tienen un rol especificado en una organización especificada. Este método solo puede ser llamado por un
Token Admin
del código de cadena o por unOrg Admin
de la organización especificada. -
GetOrgUsersByRole
- Este método devuelve información sobre todos los usuarios que tienen un rol especificado en una organización especificada. Este método solo puede ser llamado por un
Token Admin
del código de cadena o por unOrg Admin
de la organización especificada.
-
AddRole
- Este método agrega un rol a un usuario y token especificados. Este método solo puede ser llamado por un
Token Admin
del código de cadena o por unOrg Admin
de la organización especificada que también tenga el rol especificado. -
RemoveRole
- Este método elimina un rol de un usuario y token especificados. Este método solo puede ser llamado por un
Token Admin
del código de cadena o unOrg Admin
de la organización especificada que también tenga el rol especificado. -
GetAccountsByRole
- Este método devuelve una lista de todos los ID de cuenta para un rol y token especificados. Este método solo se puede llamar mediante
Token Admin
oToken Auditor
. -
GetAccountsByUser
- Este método devuelve una lista de todos los IDs de cuenta para un ID de organización y un ID de usuario especificados. Este método solo lo pueden llamar
Token Admin
oToken Auditor
,Org Admin
oOrg Auditor
de la organización especificada, o bienAccount Owner
especificado en los parámetros. -
GetUsersByRole
- Este método devuelve una lista de todos los usuarios para un rol y token especificados. Este método solo se puede llamar mediante
Token Admin
oToken Auditor
. -
IsInRole
- Este método devuelve un valor booleano para indicar si un usuario y un token tienen un rol especificado. Este método solo puede ser llamado por
Token Admin
oToken Auditor
, unOrg Admin
oOrg Auditor
de la organización especificada o el propietario de la cuenta especificado. -
GetOrgAccountsByRole
- Este método devuelve información sobre todas las cuentas que tienen un rol especificado en una organización especificada. Este método solo se puede llamar mediante
Token Admin
,Token Auditor
,Org Admin
oOrg Auditor
. -
GetOrgUsersByRole
- Este método devuelve información sobre todos los usuarios que tienen un rol especificado en una organización especificada. Este método solo puede ser llamado por
Token Admin
oToken Auditor
, o por unOrg Admin
oOrg Auditor
de la organización especificada.
Métodos para la gestión del historial de transacciones
-
GetAccountTransactionHistory
- Este método devuelve una matriz de detalles de historial de transacciones de cuenta para un usuario y token especificados. Este método solo puede ser llamado por
Token Admin
del código de cadena, unOrg Admin
de la organización especificada o elAccountOwner
de la cuenta. -
GetAccountTransactionHistoryWithFilters
- Este método devuelve una matriz de detalles de historial de transacciones de cuenta para un usuario y token especificados. Este método solo puede ser llamado por
Token Admin
del código de cadena, unOrg Admin
de la organización especificada o elAccountOwner
de la cuenta. Este método solo se puede llamar cuando está conectado a la red remota de Oracle Blockchain Platform. -
GetSubTransactionsById
- Este método devuelve una matriz de detalles de historial de subtransacciones para una transacción especificada.
-
GetSubTransactionsByIdWithFilters
- Este método devuelve una matriz de detalles de historial de subtransacciones para una transacción especificada.
-
GetTransactionById
- Este método devuelve el historial de un activo
Transaction
. -
DeleteHistoricalTransactions
- Este método suprime las transacciones más antiguas de la base de datos de estado.
-
GetAccountTransactionHistoryWithFiltersFromRichHistDB
func (t *Controller) GetAccountTransactionHistoryWithFiltersFromRichHistDB(token_id string, org_id string, user_id string, custom_endPoint string, bearer_token string, filters ...account.AccountHistoryFilters) (interface{}, error) { account_id, err := t.Ctx.Account.GenerateAccountId(token_id, org_id, user_id) if err != nil { return nil, err } auth, err := t.Ctx.Auth.CheckAuthorization("Account.GetAccountTransactionHistoryWithFilters", "TOKEN", map[string]string{"account_id": account_id}) if err != nil && !auth { return nil, fmt.Errorf("error in authorizing the caller %s", err.Error()) } // sample format of filter: []string{"3", "", "2022-01-16T15:16:36+00:00", "2022-01-17T15:16:36+00:00"} transactionArray, err := t.Ctx.Account.GetAccountTransactionHistoryWithFiltersFromRichHistDB(account_id, org_id, user_id, custom_endPoint, bearer_token, filters...) return transactionArray, err }
-
GetAccountTransactionHistory
- Este método devuelve una matriz de detalles de historial de transacciones de cuenta para un usuario y token especificados. Este método solo lo pueden llamar
Token Admin
oToken Auditor
,Org Admin
oOrg Auditor
de la organización especificada, o bien el propietario de la cuenta especificada. -
GetAccountTransactionHistoryWithFilters
- Este método devuelve una matriz filtrada de detalles del historial de transacciones de la cuenta para un usuario y token especificados. Este método solo lo pueden llamar
Token Admin
oToken Auditor
,Org Admin
oOrg Auditor
de la organización especificada, o bien el propietario de la cuenta especificada. -
GetSubTransactionsById
- Este método devuelve una matriz de detalles de historial de subtransacciones para una transacción especificada. Este método solo puede ser llamado por
Token Admin
,Token Auditor
o elAccountOwner
que llamó a la transacción. -
GetSubTransactionsByIdWithFilters
- Este método devuelve una matriz de detalles de historial de subtransacciones para una transacción especificada.
-
GetTransactionById
- Este método devuelve el historial de un activo
Transaction
. Este método solo puede ser llamado por unToken Admin
oToken Auditor
, unOrg Admin
oOrg Auditor
de la organización especificada, o por un participante en la transacción (emisor, destinatario, notario). -
DeleteHistoricalTransactions
- Este método suprime las transacciones más antiguas de la base de datos de estado.
Métodos para la gestión del comportamiento del token: comportamiento minable
-
IssueTokens
- Este método acuña tokens, que luego son propiedad del emisor de llamada del método. La persona que llama debe tener una cuenta y el rol de minter. El número de tokens que se pueden extraer está limitado por la propiedad
max_mint_quantity
del comportamientomintable
en el archivo de especificación. Si no se especifica la propiedadmax_mint_quantity
, se puede extraer un número ilimitado de tokens. La cantidad debe estar dentro de los valores decimales especificados por el parámetrodecimal
del comportamientodivisible
en el archivo de especificación. Este método solo puede ser llamado porAccountOwner
de la cuenta con el rol minter. -
GetTotalMintedTokens
- Este método devuelve el número total de tokens acuñados para un token especificado. Este método solo puede ser llamado por un
Token Admin
oOrg Admin
del código de cadena. -
GetNetTokens
- Este método devuelve el número neto total de tokens disponibles en el sistema para un token especificado. El total neto de tokens es la cantidad de tokens que quedan después de que los tokens se queman. En forma de ecuación tokens netos = total de tokens acuñados - total de tokens quemados. Si no se queman tokens, el número de tokens netos es igual al total de tokens acuñados. Este método solo puede ser llamado por un
Token Admin
oOrg Admin
del código de cadena.
-
RequestMint
- Este método puede ser llamado por un minter para enviar una solicitud al notario minter para crear una cantidad especificada de tokens.
-
ApproveMint
- Este método puede ser llamado por un notario de minter para aprobar una solicitud de acuñación.
-
RejectMint
- Este método puede ser llamado por un notario de minter para rechazar una solicitud de acuñación.
-
IssueTokens
- Este método acuña tokens, que luego son propiedad del emisor de llamada del método.
-
GetTotalMintedTokens
- Este método devuelve el número total de tokens acuñados para un token especificado. Este método solo se puede llamar mediante
Token Admin
,Token Auditor
,Org Admin
oOrg Auditor
. -
GetNetTokens
- Este método devuelve el número neto total de tokens disponibles en el sistema para un token especificado. El total neto de tokens es la cantidad de tokens que quedan después de que los tokens se queman. En forma de ecuación tokens netos = total de tokens acuñados - total de tokens quemados. Si no se queman tokens, el número de tokens netos es igual al total de tokens acuñados. Este método solo se puede llamar mediante
Token Admin
,Token Auditor
,Org Admin
oOrg Auditor
.
Métodos para la gestión del comportamiento del token - Comportamiento transferible
-
TransferTokens
- Este método transfiere tokens del emisor de llamada a una cuenta especificada. El emisor de llamada del método debe tener una cuenta. La cantidad debe estar dentro de los valores decimales especificados por el parámetro
decimal
del comportamientodivisible
en el archivo de especificación. Este método solo puede ser llamado porAccountOwner
de la cuenta. -
BulkTransferTokens
- Este método transfiere tokens de forma masiva desde la cuenta del emisor de llamada a las cuentas especificadas en el objeto
flow
. Las cantidades deben estar dentro de los valores decimales especificados por el parámetrodecimal
del comportamientodivisible
en el emisor de llamada de especificación file.The de este método debe tener una cuenta ya creada. Este método solo puede ser llamado porAccountOwner
de la cuenta.
-
TransferTokens
- Este método transfiere tokens del emisor de llamada a una cuenta especificada.
-
BulkTransferTokens
- Este método transfiere tokens de forma masiva desde la cuenta del emisor de llamada a las cuentas especificadas en el objeto
flow
. Las cantidades deben estar dentro de los valores decimales especificados por el parámetrodecimal
del comportamientodivisible
en el emisor de llamada de especificación file.The de este método debe tener una cuenta ya creada. Este método solo puede ser llamado porAccountOwner
de la cuenta.
Métodos para la gestión del comportamiento del token - Comportamiento retenible
-
HoldTokens
- Este método crea una retención en nombre del propietario de los tokens con la cuenta
to_account_id
. Se especifica una cuenta de notario, que es responsable de completar o liberar la retención. Cuando se crea la retención, el saldo de token especificado del pagador se retiene. Un saldo retenido no se puede transferir hasta que la retención se haya completado o liberado. El emisor de la llamada de este método debe tener una cuenta ya creada. Este método solo puede ser llamado porAccountOwner
de la cuenta. -
ExecuteHoldTokens
- Este método completa una retención de un token. Una cantidad de tokens previamente retenidos por un propietario de token se transfiere a un receptor. Si el valor
quantity
es menor que el valor de retención real, el importe restante vuelve a estar disponible para el propietario original de los tokens. Este método solo puede ser llamado por el IDAccountOwner
con el rolnotary
. La retención solo la puede completar el notario. -
ReleaseHoldTokens
- Este método libera una retención de tokens. La transferencia no se ha completado y todos los tokens retenidos están disponibles de nuevo para el propietario original. Este método puede ser llamado por el ID
Account Owner
con el rolnotary
dentro del límite de tiempo especificado o por el pagador, el beneficiario o el notario después del límite de tiempo especificado. -
GetOnHoldIds
- Este método devuelve una lista de todos los IDs de retención de una cuenta especificada. Este método se puede llamar mediante
Token Admin
del código de cadena, unOrg Admin
de la organización especificada o elAccount Owner
de la cuenta. -
GetOnHoldDetailsWithOperationId
- Este método devuelve los detalles de la transacción retenida para un token e ID de operación especificados. Este método puede ser llamado por cualquiera.
-
GetOnHoldBalanceWithOperationId
- Este método devuelve el saldo retenido para un token e ID de operación especificados. Este método puede ser llamado por cualquiera.
-
HoldTokens
- Este método crea una retención en nombre del propietario de los tokens con la cuenta
to_account_id
. -
ExecuteHoldTokens
- Este método completa una retención de un token. Una cantidad de tokens previamente retenidos por un propietario de token se transfiere a un receptor. Si el valor
quantity
es menor que el valor de retención real, el importe restante vuelve a estar disponible para el propietario original de los tokens. Este método solo puede ser llamado por el IDAccountOwner
con el rolnotary
. La retención solo la puede completar el notario. -
ReleaseHoldTokens
- Este método libera una retención de tokens. La transferencia no se ha completado y todos los tokens retenidos están disponibles de nuevo para el propietario original. Este método puede ser llamado por el ID
Account Owner
con el rolnotary
dentro del límite de tiempo especificado o por el pagador, el beneficiario o el notario después del límite de tiempo especificado. -
GetOnHoldIds
- Este método devuelve una lista de todos los IDs de retención de una cuenta especificada. Este método lo pueden llamar
Token Admin
oToken Auditor
,Org Admin
oOrg Auditor
de la organización especificada o el propietario de la cuenta especificado. -
GetOnHoldDetailsWithOperationId
- Este método devuelve los detalles de la transacción retenida para un token e ID de operación especificados. This method can be called only by the
Token Admin
,Token Auditor
, or transaction participant (sender, recipient, notary). -
GetOnHoldBalanceWithOperationId
- Este método devuelve el saldo retenido para un token e ID de operación especificados. This method can be called only by the
Token Admin
,Token Auditor
, or transaction participant (sender, recipient, notary).
Métodos para la Gestión del Comportamiento del Token - Comportamiento Quemable
-
BurnTokens
- Este método desactiva o quema tokens de la cuenta del emisor de llamada de la transacción. La persona que llama a este método debe tener una cuenta y el rol de quemador. La cantidad debe estar dentro de los valores decimales especificados por el parámetro
decimal
del comportamientodivisible
en el archivo de especificación. Este método puede ser llamado por elAccount Owner
de la cuenta con el rol de quemador.
-
RequestBurn
- Este método puede ser llamado por un quemador para enviar una solicitud al notario del quemador para destruir una cantidad especificada de tokens, que deben ser menores o iguales a su saldo disponible. Cuando se inicia una solicitud de consumo, el importe especificado se deduce inmediatamente del saldo disponible y se agrega al campo
onhold_burn_balance
. Si se aprueba la solicitud, los tokens se queman. Si se rechaza la solicitud, los tokens se devuelven del campoonhold_burn_balance
al saldo disponible. -
ApproveBurn
- Este método puede ser llamado por un notario del quemador para aprobar una solicitud de grabación.
-
RejectBurn
- Este método puede ser llamado por un notario de quemadores para rechazar una solicitud de quemado.
-
GetAccountOnHoldBurnBalance
- Este método devuelve el balance de consumo retenido para un usuario especificado. Este método solo lo pueden llamar los usuarios
Token Admin
,Token Auditor
,Org Admin
,Org Auditor
o el propietario de la cuenta. -
BurnTokens
- Este método desactiva o quema tokens de la cuenta del emisor de llamada de la transacción.
Métodos personalizados
Puede utilizar los métodos SDK de token para escribir métodos personalizados para la aplicación de negocio.
Asegúrese de realizar un seguimiento del valor de retorno cuando utilice los métodos SDK de token. Además, para evitar el gasto doble, no combine varias funciones asíncronas que funcionen en los mismos pares clave-valor de la base de datos de estado. En su lugar, utilice el método BulkTransferTokens
para realizar varias transferencias en un solo método.
En el siguiente ejemplo se muestra cómo utilizar métodos de SDK de token en métodos personalizados. Cuando se llama al método BuyTicket
, transfiere 20 tokens de la cuenta del emisor de llamada a la cuenta del vendedor y devuelve el mensaje de transacción de la transferencia.
func (t *Controller) BuyTicket(TokenId string, SellerOrgId string, SellerUserId string) (interface{}, error){
token, err := t.Ctx.Token.Get(TokenId)
if err != nil {
return nil, err
}
/**
* The following method t.Ctx.Account.GenerateAccountId(TokenId, SellerOrgId, SellerUserId) generates account id of the seller
*/
sellerAccountId, err := t.Ctx.Account.GenerateAccountId(TokenId, SellerOrgId, SellerUserId)
if err != nil {
return nil, err
}
/**
* The following method t.Ctx.Token.Transfer(sellerAccountId, 20, token) transfers the quantity 20 from caller's
* account & to seller's account.
*/
transaction, err := t.Ctx.Token.Transfer(sellerAccountId, 20, token)
if err != nil {
return nil, err
}
return transaction, nil
}
Métodos de SDK de token
- Gestión del Control de Acceso
- Gestión de configuración de token
- Gestión de cuentas
- Gestión de Roles
- Gestión de historial de transacciones
- Gestión de comportamiento de token
Métodos de Gestión de Control de Acceso
Token Admin
, Org Admin
o AccountOwner
del token. Puede utilizar esta función para asegurarse de que las operaciones sólo las realizan los usuarios previstos. Cualquier acceso no autorizado genera un error. Para utilizar la función de control de acceso, importe la clase Authorization
desde el módulo ../lib/auth
.import { Authorization } from '../lib/auth';
-
AddAdmin
- Este método agrega un usuario como
Token Admin
del código de cadena de token. -
RemoveAdmin
- Este método elimina un usuario como
Token Admin
del código de cadena de token. -
IsUserTokenAdmin
- Este método devuelve el valor booleano
true
si el emisor de llamada de la función es unToken Admin
. De lo contrario, el método devuelvefalse
. -
GetAllAdmins
- Este método devuelve una lista de todos los usuarios que son
Token Admin
del código de cadena de token. -
GetAllAdminUsers
- Este método devuelve una lista de todos los usuarios que son
Token Admin
del código de cadena de token. -
CheckAuthorization
- Utilice este método para agregar control de acceso al código de cadenas. Muchos de los métodos de token generados automáticamente utilizan el control de acceso. La asignación entre el receptor de SDK y los métodos que tienen control de acceso se describe en el archivo
oChainUtil.go
. Para usar su propio control de acceso o desactivar el control de acceso, elimine el código de control de acceso de los métodos de controlador y métodos personalizados generados automáticamente.var t TokenAccess var r RoleAccess var a AccountAccess var as AccountStatusAccess var h HoldAccess var ad AdminAccess var trx TransactionAccess var tc TokenConversionAccess var auth AuthAccess auth.IsTokenAdmin = []string{"Admin", "MultipleAccountOwner"} trx.DeleteHistoricalTransactions = []string{"Admin"} ad.AddAdmin = []string{"Admin"} ad.RemoveAdmin = []string{"Admin"} ad.GetAllAdmins = []string{"Admin", "OrgAdmin"} ad.AddOrgAdmin = []string{"Admin", "OrgAdminOrgIdCheck"} ad.RemoveOrgAdmin = []string{"Admin", "OrgAdminOrgIdCheck"} ad.GetOrgAdmins = []string{"Admin", "OrgAdmin"} ad.IsTokenAdmin = []string{"Admin", "MultipleAccountOwner", "OrgAdmin"} t.Save = []string{"Admin"} t.GetAllTokens = []string{"Admin", "OrgAdmin"} t.Update = []string{"Admin"} t.GetTokenDecimals = []string{"Admin", "OrgAdmin"} t.GetTokensByName = []string{"Admin", "OrgAdmin"} t.AddRoleMember = []string{"Admin", "OrgAdminRoleCheck"} t.RemoveRoleMember = []string{"Admin", "OrgAdminRoleCheck"} t.IsInRole = []string{"Admin", "OrgAdminAccountIdCheck", "AccountOwner"} t.GetTotalMintedTokens = []string{"Admin", "OrgAdmin"} t.GetNetTokens = []string{"Admin", "OrgAdmin"} t.Get = []string{"Admin", "OrgAdmin"} t.GetTokenHistory = []string{"Admin", "OrgAdmin"} a.CreateAccount = []string{"Admin", "OrgAdminOrgIdCheck"} a.AssociateToken = []string{"Admin", "OrgAdminAccountIdCheck"} a.GetAllAccounts = []string{"Admin"} a.GetAllOrgAccounts = []string{"Admin", "OrgAdminOrgIdCheck"} a.GetAccount = []string{"Admin", "OrgAdminAccountIdCheck", "AccountOwner"} a.History = []string{"Admin", "AccountOwner"} a.GetAccountTransactionHistory = []string{"Admin", "OrgAdminAccountIdCheck", "AccountOwner"} a.GetAccountTransactionHistoryWithFilters = []string{"Admin", "OrgAdminAccountIdCheck", "AccountOwner"} a.GetSubTransactionsById = []string{"Admin", "TransactionInvoker"} a.GetSubTransactionsByIdWithFilters = []string{"Admin", "TransactionInvoker"} a.GetAccountBalance = []string{"Admin", "OrgAdminAccountIdCheck", "AccountOwner"} a.GetAccountOnHoldBalance = []string{"Admin", "OrgAdminAccountIdCheck", "AccountOwner"} a.GetOnHoldIds = []string{"Admin", "OrgAdminAccountIdCheck", "AccountOwner"} a.GetAccountsByUser = []string{"Admin", "OrgAdminOrgIdCheck", "MultipleAccountOwner"} as.Get = []string{"Admin", "OrgAdminAccountIdCheck", "AccountOwner"} as.ActivateAccount = []string{"Admin", "OrgAdminOrgIdCheck"} as.SuspendAccount = []string{"Admin", "OrgAdminOrgIdCheck"} as.DeleteAccount = []string{"Admin", "OrgAdminOrgIdCheck"} r.GetAccountsByRole = []string{"Admin"} r.GetUsersByRole = []string{"Admin"} r.GetOrgAccountsByRole = []string{"Admin", "OrgAdminOrgIdCheck"} r.GetOrgUsersByRole = []string{"Admin", "OrgAdminOrgIdCheck"} tc.InitializeExchangePoolUser = []string{"Admin"} tc.AddConversionRate = []string{"Admin"} tc.UpdateConversionRate = []string{"Admin"} tc.GetConversionRate = []string{"Admin", "OrgAdmin", "AnyAccountOwner"} tc.GetConversionRateHistory = []string{"Admin", "OrgAdmin", "AnyAccountOwner"} tc.TokenConversion = []string{"Admin", "AnyAccountOwner"} tc.GetExchangePoolUser = []string{"Admin"}
-
AddOrgAdmin
- Este método agrega un usuario como
Org Admin
de la organización. -
RemoveOrgAdmin
- Este método elimina un usuario como
Org Admin
de una organización. -
GetOrgAdmins
- Este método devuelve una lista de todos los usuarios que son
Org Admin
de una organización.
-
AddAdmin
- Este método agrega un usuario como
Token Admin
del código de cadena de token. -
RemoveAdmin
- Este método elimina un usuario como
Token Admin
del código de cadena de token. -
IsUserTokenAdmin
- Este método devuelve el valor booleano
true
si el emisor de llamada de la función es unToken Admin
. De lo contrario, el método devuelvefalse
. -
GetAllAdmins
- Este método devuelve una lista de todos los usuarios que son
Token Admin
del código de cadena de token. -
GetAllAdminUsers
- Este método devuelve una lista de todos los usuarios que son
Token Admin
del código de cadena de token. -
CheckAuthorization
- Utilice este método para agregar control de acceso al código de cadenas. Muchos de los métodos de token generados automáticamente utilizan el control de acceso. La asignación entre el receptor de SDK y los métodos que tienen control de acceso se describe en el archivo
oChainUtil.go
. Para usar su propio control de acceso o desactivar el control de acceso, elimine el código de control de acceso de los métodos de controlador y métodos personalizados generados automáticamente.var t TokenAccess var r RoleAccess var a AccountAccess var as AccountStatusAccess var h HoldAccess var ad AdminAccess var trx TransactionAccess var tc TokenConversionAccess var auth AuthAccess auth.IsTokenAdmin = []string{"Admin", "MultipleAccountOwner"} trx.DeleteHistoricalTransactions = []string{"Admin"} ad.AddAdmin = []string{"Admin"} ad.RemoveAdmin = []string{"Admin"} ad.GetAllAdmins = []string{"Admin", "OrgAdmin"} ad.AddOrgAdmin = []string{"Admin", "OrgAdminOrgIdCheck"} ad.RemoveOrgAdmin = []string{"Admin", "OrgAdminOrgIdCheck"} ad.GetOrgAdmins = []string{"Admin", "OrgAdmin"} ad.IsTokenAdmin = []string{"Admin", "MultipleAccountOwner", "OrgAdmin"} t.Save = []string{"Admin"} t.GetAllTokens = []string{"Admin", "OrgAdmin"} t.Update = []string{"Admin"} t.GetTokenDecimals = []string{"Admin", "OrgAdmin"} t.GetTokensByName = []string{"Admin", "OrgAdmin"} t.AddRoleMember = []string{"Admin", "OrgAdminRoleCheck"} t.RemoveRoleMember = []string{"Admin", "OrgAdminRoleCheck"} t.IsInRole = []string{"Admin", "OrgAdminAccountIdCheck", "AccountOwner"} t.GetTotalMintedTokens = []string{"Admin", "OrgAdmin"} t.GetNetTokens = []string{"Admin", "OrgAdmin"} t.Get = []string{"Admin", "OrgAdmin"} t.GetTokenHistory = []string{"Admin", "OrgAdmin"} a.CreateAccount = []string{"Admin", "OrgAdminOrgIdCheck"} a.AssociateToken = []string{"Admin", "OrgAdminAccountIdCheck"} a.GetAllAccounts = []string{"Admin"} a.GetAllOrgAccounts = []string{"Admin", "OrgAdminOrgIdCheck"} a.GetAccount = []string{"Admin", "OrgAdminAccountIdCheck", "AccountOwner"} a.History = []string{"Admin", "AccountOwner"} a.GetAccountTransactionHistory = []string{"Admin", "OrgAdminAccountIdCheck", "AccountOwner"} a.GetAccountTransactionHistoryWithFilters = []string{"Admin", "OrgAdminAccountIdCheck", "AccountOwner"} a.GetSubTransactionsById = []string{"Admin", "TransactionInvoker"} a.GetSubTransactionsByIdWithFilters = []string{"Admin", "TransactionInvoker"} a.GetAccountBalance = []string{"Admin", "OrgAdminAccountIdCheck", "AccountOwner"} a.GetAccountOnHoldBalance = []string{"Admin", "OrgAdminAccountIdCheck", "AccountOwner"} a.GetOnHoldIds = []string{"Admin", "OrgAdminAccountIdCheck", "AccountOwner"} a.GetAccountsByUser = []string{"Admin", "OrgAdminOrgIdCheck", "MultipleAccountOwner"} as.Get = []string{"Admin", "OrgAdminAccountIdCheck", "AccountOwner"} as.ActivateAccount = []string{"Admin", "OrgAdminOrgIdCheck"} as.SuspendAccount = []string{"Admin", "OrgAdminOrgIdCheck"} as.DeleteAccount = []string{"Admin", "OrgAdminOrgIdCheck"} r.GetAccountsByRole = []string{"Admin"} r.GetUsersByRole = []string{"Admin"} r.GetOrgAccountsByRole = []string{"Admin", "OrgAdminOrgIdCheck"} r.GetOrgUsersByRole = []string{"Admin", "OrgAdminOrgIdCheck"} tc.InitializeExchangePoolUser = []string{"Admin"} tc.AddConversionRate = []string{"Admin"} tc.UpdateConversionRate = []string{"Admin"} tc.GetConversionRate = []string{"Admin", "OrgAdmin", "AnyAccountOwner"} tc.GetConversionRateHistory = []string{"Admin", "OrgAdmin", "AnyAccountOwner"} tc.TokenConversion = []string{"Admin", "AnyAccountOwner"} tc.GetExchangePoolUser = []string{"Admin"}
-
AddOrgAdmin
- Este método agrega un usuario como
Org Admin
de la organización. -
RemoveOrgAdmin
- Este método elimina un usuario como
Org Admin
de una organización. -
GetOrgAdmins
- Este método devuelve una lista de todos los usuarios que son
Org Admin
de una organización. -
AddTokenAuditor
- Este método agrega un usuario como
Token Auditor
del código de cadena. -
RemoveTokenAuditor
- Este método elimina un usuario como
Token Auditor
del código de cadena. -
GetTokenAuditors
- Este método devuelve todos los
Token Auditors
del código de cadena. -
AddOrgAuditor
- Este método agrega un usuario como
Org Auditor
del código de cadena. -
RemoveOrgAuditor
- Este método elimina un usuario como
Org Auditor
del código de cadena. -
GetOrgAuditors
- Este método devuelve todos los
Org Auditors
del código de cadena.
Métodos para la Gestión de Configuración de Token
-
Save
- Este método crea un token y guarda sus propiedades en la base de datos de estado.
-
Update
- Este método actualiza las propiedades del token. Después de crear un activo de token, solo puede actualizar el valor
token_desc
y sus propiedades personalizadas. -
GetTokenDecimals
- Este método devuelve el número de decimales disponibles para un token fraccionario. Si no se especifica el comportamiento
divisible
, el valor por defecto es 0. -
Get
- Este método devuelve un objeto de token si está presente en la base de datos de estado. Este método solo puede ser llamado por un
Token Admin
del código de cadena de token. -
History
- Este método devuelve el historial de tokens para un ID de token especificado.
-
GetAllTokens
- Este método devuelve todos los activos de token que se guardan en la base de datos de estado. Este método utiliza consultas enriquecidas de Berkeley DB SQL y solo se puede llamar cuando se conecta a la red remota de Oracle Blockchain Platform.
-
GetTokensByName
- Este método devuelve todos los activos de token con el nombre especificado. Este método utiliza consultas enriquecidas de Berkeley DB SQL y solo se puede llamar cuando se conecta a la red remota de Oracle Blockchain Platform.
-
IsTokenType
- Este método prueba si existe un activo de token para un ID de token especificado.
-
GetByRange
- Este método llama al método
getStateByRange
del tejido internamente. Aunque cualquier activo con el ID determinado se devuelva desde la contabilidad, este método convierte el activo en el tipo de activo emisor de llamada.
Métodos para la gestión de cuentas
-
GenerateAccountId
- Este método devuelve un ID de cuenta, que es un juego alfanumérico de caracteres, con el prefijo
oaccount~<token asset name>~
y seguido de un hash del nombre de usuario o el ID de correo electrónico (user_id
) del propietario de la instancia o del usuario que está conectado a la instancia, el ID de proveedor de servicios de afiliación (org_id
) del usuario de la organización de red actual y el ID de token único (token_id
). -
CreateAccount
- Este método crea una cuenta para un usuario y token especificados. Todos los usuarios que tengan tokens en cualquier momento deben tener una cuenta. Las cuentas realizan un seguimiento del saldo de un usuario, el saldo retenido y el historial de transacciones. Un ID de cuenta es un juego alfanumérico de caracteres, con el prefijo
oaccount~<token asset name>~
y seguido de un hash del nombre de usuario o el ID de correo electrónico (user_id
) del propietario de la instancia o del usuario que está conectado a la instancia, el ID de proveedor de servicios de afiliación (org_id
) del usuario de la organización de red actual. Este método solo puede ser llamado por elToken Admin
del código de cadena. -
AssociateToken
- Este método asocia un token fungible a una cuenta. Este método solo puede ser llamado por un
Token Admin
del código de cadena. -
GetAccountWithStatus
- Este método devuelve los detalles de la cuenta para una cuenta especificada, incluido el estado de la cuenta.
-
GetAccount
- Este método devuelve los detalles de la cuenta para una cuenta especificada.
-
GetAccountHistory
- Este método devuelve una matriz de los detalles del historial de cuentas para una cuenta especificada.
-
GetAccountOnHoldBalance
- Este método devuelve el saldo retenido de una cuenta especificada.
-
GetAllAccounts
- Este método devuelve una lista de todas las cuentas. Este método utiliza consultas enriquecidas de Berkeley DB SQL y solo se puede llamar cuando se conecta a la red remota de Oracle Blockchain Platform.
-
GetUserByAccountId
- Este método devuelve los detalles de usuario de una cuenta especificada.
-
GetAccountBalance
- Este método devuelve el saldo de la cuenta para una cuenta especificada.
-
GetAllOrgAccounts
- Este método devuelve una lista de todas las cuentas de token que pertenecen a una organización especificada.
Métodos para la gestión de roles
-
AddRoleMember
- Este método agrega un rol a un usuario y token especificados.
-
RemoveRoleMember
- Este método elimina un rol de un usuario y token especificados.
-
GetAccountsByRole
- Este método devuelve una lista de todas las cuentas para un rol y token especificados.
-
GetUsersByRole
- Este método devuelve una lista de todos los usuarios para un rol y token especificados.
-
IsInRole
- Este método indica si un usuario y un token tienen un rol especificado.
-
GetOrgAccountsByRole
- Este método devuelve información sobre todas las cuentas que tienen un rol especificado en una organización especificada.
-
GetOrgUsersByRole
- Este método devuelve información sobre todos los usuarios que tienen un rol especificado en una organización especificada.
-
RoleCheck
- Este método comprueba si el ID de cuenta proporcionado es miembro de cualquier rol.
Métodos para la gestión del historial de transacciones
-
GetAccountTransactionHistory
- Este método devuelve una matriz de los detalles del historial de transacciones de una cuenta especificada.
-
GetAccountTransactionHistoryWithFilters
- Este método devuelve una matriz de los detalles del historial de transacciones de una transacción especificada. Este método solo se puede llamar cuando está conectado a la red remota de Oracle Blockchain Platform.
-
GetSubTransactionsById
- Este método devuelve una matriz de los detalles del historial de transacciones de una transacción especificada.
-
GetSubTransactionsByIdWithFilters
- Este método devuelve una matriz de los detalles del historial de transacciones de una transacción especificada.
-
GetTransactionById
- Este método devuelve el historial de un activo
Transaction
. -
DeleteHistoricalTransactions
- Este método suprime las transacciones más antiguas de la base de datos de estado.
Métodos para la gestión del comportamiento del token: comportamiento minable
-
Mint
- Este método acuña tokens, que luego son propiedad del emisor de llamada del método. La persona que llama debe tener una cuenta y el rol de minter. El número de tokens que se pueden extraer está limitado por la propiedad
max_mint_quantity
del comportamientomintable
en el archivo de especificación. Si no se especifica la propiedadmax_mint_quantity
, se puede extraer un número ilimitado de tokens. La cantidad debe estar dentro de los valores decimales especificados por el parámetrodecimal
del comportamientodivisible
en el archivo de especificación. Este método solo puede ser llamado porAccountOwner
de la cuenta con el rol minter. -
GetTotalMintedTokens
- Este método devuelve el número total de tokens acuñados.
-
GetNetTokens
- Este método devuelve la cantidad neta de tokens que están disponibles en el sistema para un token especificado. Los tokens netos son la cantidad de tokens que quedan después de que los tokens se queman. En forma de ecuación: tokens netos = tokens totales acuñados - tokens totales quemados. Si no se queman tokens, el número de tokens netos es igual al total de tokens acuñados.
-
GetMaxMintQuantity
- Este método devuelve la cantidad mínima máxima para un token. Si no se especifica el comportamiento
max_mint_quantity
, el valor por defecto es 0, que permite la extracción de cualquier número de tokens.
Métodos para la gestión del comportamiento del token - Comportamiento transferible
-
Transfer
- Este método transfiere tokens del emisor de llamada a una cuenta especificada. El emisor de llamada del método debe tener una cuenta. La cantidad debe estar dentro de los valores decimales especificados por el parámetro
decimal
del comportamientodivisible
en el archivo de especificación. Este método solo puede ser llamado porAccountOwner
de la cuenta. -
BulkTransfer
- Este método transfiere tokens de forma masiva desde la cuenta del emisor de llamada a las cuentas especificadas en el objeto
flow
. El emisor de la llamada de este método debe tener una cuenta ya creada.
Métodos para la gestión del comportamiento del token - Comportamiento retenible
-
Hold
- Este método crea una retención en nombre del propietario de los tokens con la cuenta
to_account_id
. Se especifica una cuenta de notario, que es responsable de completar o liberar la retención. Cuando se crea la retención, el saldo de token especificado del pagador se retiene. Un saldo retenido no se puede transferir hasta que la retención se haya completado o liberado. El emisor de la llamada de este método debe tener una cuenta ya creada. -
ExecuteHold
- Este método completa una retención de tokens, transfiriendo la cantidad especificada de tokens previamente retenidos al receptor. Si el valor
quantity
es menor que el valor de retención real, el importe restante vuelve a estar disponible para el propietario original de los tokens. Este método solo puede ser llamado por el IDAccountOwner
con el rolnotary
. -
ReleaseHold
- Este método libera una retención de tokens. La transferencia no se ha completado y todos los tokens retenidos están disponibles de nuevo para el propietario original. Este método puede ser llamado por el ID
Account Owner
con el rolnotary
dentro del límite de tiempo especificado o por el pagador, el beneficiario o el notario después del límite de tiempo especificado. -
GetOnHoldIds
- Este método devuelve una lista de todos los ID de retención de un usuario y token especificados.
-
GetOnHoldDetailsWithOperationID
- Este método devuelve los detalles de la transacción retenida para un identificador de operación y token especificados.
-
GetOnHoldBalanceWithOperationID
- Este método devuelve el saldo retenido para un identificador y token de operación especificados.
Métodos para la Gestión del Comportamiento del Token - Comportamiento Quemable
-
Burn
- Este método desactiva o quema tokens de la cuenta del emisor de llamada de la transacción. La persona que llama a este método debe tener una cuenta y el rol de quemador. La cantidad debe estar dentro de los valores decimales especificados por el parámetro
decimal
del comportamientodivisible
en el archivo de especificación.