Métodos de Go para conversión de token

Blockchain App Builder genera automáticamente métodos que puede utilizar para convertir tokens fungibles que utilizan el estándar Token Taxonomy Framework.

Los métodos de conversión de token incluyen el concepto de la agrupación de intercambio. La cuenta del grupo de cambio se financia con otras cuentas de token. Cuando se acuñan tokens, se puede especificar que un porcentaje de los tokens acuñados se transfiera a la cuenta del grupo de intercambio.

Proceso de Conversión de Token

Un flujo típico para convertir tokens sigue estos pasos:
  1. Llame al método InitializeExchangePoolUser para inicializar el usuario del pool de intercambios.
  2. Llame al método CreateExchangePoolAccounts para crear cuentas de pool de cambios. Cree una cuenta de grupo de intercambio para cada tipo de token fungible que desee convertir o convertir.
  3. Llame al método AddConversionRate para establecer la tasa de conversión para cada par de tokens entre los que desee convertir.
  4. Financiar las cuentas de token de grupo de cambio de una de las siguientes maneras:
    • Transfiera tokens a las cuentas de token del pool de cambios mediante los métodos de transferencia estándar.
    • Llame al método MintWithFundingExchangePoolToken al extraer tokens, que puede transferir un porcentaje de tokens minados a una cuenta de grupo de intercambio.
  5. Llame al método TokenConversion para convertir entre dos tokens fungibles. Un solo usuario puede convertir tokens entre dos de sus cuentas de token, o un par de usuarios puede convertir tokens directamente de una cuenta a otra.
  6. El usuario de grupo de cambio puede ver los saldos de cuenta de grupo de cambio y las transacciones de cuenta.
    • Llame al método GetAccount para ver los saldos de cada una de las cuentas de token de grupo de cambio.
    • Llame a los métodos GetAccountTransactionHistory y GetAccountTransactionHistoryWithFilters para ver las transacciones de cuenta de cada una de las cuentas de token de grupo de cambio.

Métodos de conversión de token generados automáticamente

Blockchain App Builder genera automáticamente métodos para convertir entre diferentes tipos de tokens fungibles. Los métodos de controlador deben ser públicos para poder ser invocables. Los nombres de métodos públicos comienzan con un carácter en mayúscula. Los nombres de método que comienzan con un carácter en minúscula son privados.

InitializeExchangePoolUser
Este método inicializa el usuario del pool de intercambios, que es una actividad puntual. Este método solo puede ser llamado por un Token Admin del código de cadena.
func (t *Controller) InitializeExchangePoolUser(org_id string, user_id string) (interface{}, error) {
    auth, err := t.Ctx.Auth.CheckAuthorization("TokenConversion.InitializeExchangePoolUser", "TOKEN")
    if err != nil && !auth {
        return nil, fmt.Errorf("error in authorizing the caller  %s", err.Error())
    }
    return t.Ctx.TokenConvertor.InitializeExchangePoolUser(org_id, user_id)
}
Parámetros:
  • org_id: string: ID del proveedor de servicios de miembros (MSP) del usuario en la organización actual.
  • user_id: string: nombre de usuario o ID de correo electrónico del usuario.
Devuelve:
  • Cuando se realiza correctamente, un mensaje que incluye detalles del usuario del pool de intercambios.
Ejemplo de valor de retorno:
{
    "AssetType": "oconversion",
    "ConvertorId": "bcb1f3b1442c625d3ce205660c5e717c5858a1fe1e12c325df799a851ceaa09b",
    "OrgId": "Org1MSP",
    "UserId": "exchangepooluser"
}
CreateExchangePoolAccounts
Este método crea cuentas de token de pool de intercambio para una matriz determinada de ID de token. Este método solo puede ser llamado por un Token Admin del código de cadena.
func (t *Controller) CreateExchangePoolAccounts(token_ids []string) (interface{}, error) {
    auth, err := t.Ctx.Auth.CheckAuthorization("TokenConversion.InitializeExchangePoolUser", "TOKEN")
    if err != nil && !auth {
        return nil, fmt.Errorf("error in authorizing the caller  %s", err.Error())
    }
    var tokens []interface{}
    for _, tokenId := range token_ids {
        token, err := t.getTokenObject(tokenId)
        if err != nil {
            return nil, fmt.Errorf("error in getting from_token asset details. Error: %s", err)
        }
        tokens = append(tokens, token.Interface())
    }
    return t.Ctx.TokenConvertor.CreateExchangePoolAccounts(tokens)
}
Parámetros:
  • token_ids: string []: matriz de ID de token. Puede especificar hasta diez ID de token.
Devuelve:
  • Cuando se realiza correctamente, una lista de objetos que incluye detalles de las cuentas de grupo de cambio que se crearon.
Ejemplo de valor de retorno:
[
    {
        "AccountId": "oaccount~cc9d84f6d4a5976532493ef5200c9603e138adc35166ffd5fd1aad9c1647f034",
        "Status": "created",
        "TokenId": "USD"
    },
    {
        "AccountId": "oaccount~3d4933111ec8bd6cc1ebb43f2b2c390deb929cfa534f9c6ada8e63bac04a13c0",
        "Status": "created",
        "TokenId": "INR"
    }
]
AddConversionRate
Este método agrega una tasa de conversión para un par de tokens. La tasa de conversión de token se puede especificar hasta ocho decimales. Este método solo puede ser llamado por un Token Admin del código de cadena.
func (t *Controller) AddConversionRate(from_token_id string, to_token_id string, token_conversion_rate float64) (interface{}, error) {
    auth, err := t.Ctx.Auth.CheckAuthorization("TokenConversion.AddConversionRate", "TOKEN")
    if err != nil && !auth {
        return nil, fmt.Errorf("error in authorizing the caller  %s", err.Error())
    }
    return t.Ctx.TokenConvertor.AddConversionToken(from_token_id, to_token_id, token_conversion_rate)
}
Parámetros:
  • from_token_id: string: ID del token desde el que realizar la conversión.
  • to_token_id: string: ID del token al que se va a convertir.
  • token_conversion_rate: float64: ratio al que convertir el token from_token_id en el token to_token_id.
Devuelve:
  • Una vez realizada correctamente, una representación JSON del objeto de tipo de cambio.
Ejemplo de valor de retorno:
{
    "AssetType": "oconversionRate",
    "ConvertorRateId": "oconversionRate~79eacc670928bbc4c9ba4ebee135c8b4d6411af3110f8a9b782c383d5e18b150",
    "FromTokenId": "USD",
    "ToTokenId": "INR",
    "ConversionRate": 10
}
GetConversionRate
Este método obtiene la tasa de conversión actual para un par de tokens. El Token Admin del código de cadenas, cualquier Org Admin y cualquier propietario de cuenta de token pueden llamar a este método.
func (t *Controller) GetConversionRate(from_token_id string, to_token_id string) (interface{}, error) {
    auth, err := t.Ctx.Auth.CheckAuthorization("TokenConversion.GetConversionRate", "TOKEN")
    if err != nil && !auth {
        return nil, fmt.Errorf("error in authorizing the caller  %s", err.Error())
    }
    conversionRateId, err := t.Ctx.TokenConversionRate.GetConversionRateId(from_token_id, to_token_id)
    if err != nil {
        return nil, fmt.Errorf("error in getting conversationRateId. Error: %s", err)
    }
    return t.Ctx.TokenConversionRate.Get(conversionRateId)
}
Parámetros:
  • from_token_id: string: ID del token desde el que realizar la conversión.
  • to_token_id: string: ID del token al que se va a convertir.
Devuelve:
  • Una vez realizada correctamente, una representación JSON del objeto de tipo de cambio.
Ejemplo de valor de retorno:
{
    "AssetType": "oconversionRate",
    "ConvertorRateId": "oconversionRate~79eacc670928bbc4c9ba4ebee135c8b4d6411af3110f8a9b782c383d5e18b150",
    "FromTokenId": "USD",
    "ToTokenId": "INR",
    "ConversionRate": 10
}
UpdateConversionRate
Este método actualiza la tasa de conversión actual para un par de tokens. La tasa de conversión de token se puede especificar hasta ocho decimales. Este método solo puede ser llamado por un Token Admin del código de cadena.
func (t *Controller) UpdateConversionRate(from_token_id string, to_token_id string, token_conversion_rate float64) (interface{}, error) {
    auth, err := t.Ctx.Auth.CheckAuthorization("TokenConversion.UpdateConversionRate", "TOKEN")
    if err != nil && !auth {
        return nil, fmt.Errorf("error in authorizing the caller  %s", err.Error())
    }
    return t.Ctx.TokenConvertor.UpdateTokenConversionRate(from_token_id, to_token_id, token_conversion_rate)
}
Parámetros:
  • from_token_id: string: ID del token desde el que realizar la conversión.
  • to_token_id: string: ID del token al que se va a convertir.
  • token_conversion_rate: float64: ratio al que convertir el token from_token_id en el token to_token_id.
Devuelve:
  • Una vez realizada correctamente, una representación JSON del objeto de tipo de cambio actualizado.
Ejemplo de valor de retorno:
{
    "AssetType": "oconversionRate",
    "ConvertorRateId": "oconversionRate~79eacc670928bbc4c9ba4ebee135c8b4d6411af3110f8a9b782c383d5e18b150",
    "FromTokenId": "USD",
    "ToTokenId": "INR",
    "ConversionRate": 15
}
MintWithFundingExchangePool
Este método extrae los tokens de la cuenta del emisor de la llamada en función del ID de token y la cantidad especificados. A continuación, se transfiere un porcentaje de tokens de la cantidad minada a la cuenta de token del grupo de intercambio.
func (t *Controller) MintWithFundingExchangePool(token_id string, token_quantity float64, percentage_token_to_exchangePool float64) (interface{}, error) {
    token, err := t.getTokenObject(token_id)
    if err != nil {
        return nil, fmt.Errorf("error in getting from_token asset details. Error: %s", err)
    }
    return t.Ctx.TokenConvertor.MintWithFundingExchangePool(token.Interface(), token_quantity, percentage_token_to_exchangePool)
}
Parámetros:
  • token_id: string: ID del token que se va a importar.
  • token_quantity: float64: número total de tokens para acuñar.
  • percentage_token_to_exchange_pool: float64: porcentaje de tokens minados que se transferirán a la cuenta de token del pool de cambios.
Devuelve:
  • En caso de éxito, un mensaje que indica que la extracción y la financiación del grupo de intercambio se han realizado correctamente.
Ejemplo de valor de retorno:
{
    "msg": "successfully minted 100 tokens to AccountId: 'oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1' (OrgId: Org1MSP, User-Id: admin) and Successfully transfered 80 tokens to exchange pool account with AccountId: 'oaccount~3d4933111ec8bd6cc1ebb43f2b2c390deb929cfa534f9c6ada8e63bac04a13c0' (OrgId: Org1MSP, UserId: exchangepooluser) "
}
TokenConversion
Este método convierte tokens de la cuenta del emisor de la llamada a la cuenta especificada por los valores to_token_id, to_org_id y to_user_id. El Token Admin del código de cadenas y cualquier propietario de cuenta de token pueden llamar a este método. Un usuario de pool de intercambio no puede llamar a este método.
func (t *Controller) TokenConversion(from_token_id string, to_token_id string, to_org_id string, to_user_id string, token_quantity float64) (interface{}, error) {
    auth, err := t.Ctx.Auth.CheckAuthorization("TokenConversion.TokenConversion", "TOKEN")
    if err != nil && !auth {
        return nil, fmt.Errorf("error in authorizing the caller  %s", err.Error())
    }
    from_token, err := t.getTokenObject(from_token_id)
    if err != nil {
        return nil, fmt.Errorf("error in getting from_token asset details. Error: %s", err)
    }
    to_token, err := t.getTokenObject(to_token_id)
    if err != nil {
        return nil, fmt.Errorf("error in getting to_token asset details. error: %s", err)
    }
    return t.Ctx.TokenConvertor.TokenConversion(from_token.Interface(), to_token.Interface(), to_org_id, to_user_id, token_quantity)
}
Parámetros:
  • from_token_id: string: ID del token desde el que realizar la conversión.
  • to_token_id: string: ID del token al que se va a convertir.
  • to_org_id: string: ID del proveedor de servicios de miembros (MSP) del usuario en la organización actual para recibir los tokens.
  • to_user_id: string: nombre de usuario o ID de correo electrónico del usuario que recibirá los tokens.
  • token_quantity: float64: número total de tokens que se transferirán.
Devuelve:
  • Cuando se realiza correctamente, aparece un mensaje que indica que la conversión de token se ha realizado correctamente.
Ejemplo de valor de retorno:
{
    "msg": "succesfully converted 5 of tokens with tokenId: [USD] from AccountId: 'oaccount~abc74791148b761352b98df58035601b6f5480448ac2b4a3a7eb54bdbebf48eb' (OrgId: Org1MSP, UserId: admin) to 75 of tokens with tokenId: [INR] to AccountId: 'oaccount~25e2e66718b6dbb59aea9c32acebec60e09d912b2578d4933d377ae5d0628f1e' ( OrgId: Org1MSP, UserId: user ) as per the conversion rate of 15"
}
GetConversionHistory
Este método devuelve el historial de conversión de token para una cuenta de token especificada. El Token Admin del código de cadena, un Org Admin de la organización especificada y el propietario de la cuenta de token pueden llamar a este método.
func (t *Controller) GetConversionHistory(token_id string, org_id string, user_id string) (interface{}, error) {
    auth, err := t.Ctx.Auth.CheckAuthorization("TokenConversion.GetConversionHistory", "TOKEN")
    if err != nil && !auth {
        return nil, fmt.Errorf("error in authorizing the caller  %s", err.Error())
    }
    account_id, err := t.Ctx.Account.GenerateAccountId(token_id, org_id, user_id)
    if err != nil {
        return nil, fmt.Errorf("error in generating the accoint_id. Error: %s", err)
    }
    return t.Ctx.Account.GetTokenConversionHistory(account_id, org_id, user_id)
}
Parámetros:
  • token_id: string: ID del token.
  • org_id: string: ID del proveedor de servicios de miembros (MSP) del usuario en la organización actual.
  • user_id: string: nombre de usuario o ID de correo electrónico del usuario.
Devuelve:
  • Cuando se realiza correctamente, un objeto JSON con detalles del historial de conversiones.
Ejemplo de valor de retorno:
[
    {
        "balance": 95,
        "conversion_rate": 15,
        "converted_amount": 75,
        "from_account_id": "oaccount~abc74791148b761352b98df58035601b6f5480448ac2b4a3a7eb54bdbebf48eb",
        "from_token_id": "USD",
        "onhold_balance": 0,
        "timestamp": "2022-12-01T00:54:33+05:30",
        "to_account_id": "oaccount~25e2e66718b6dbb59aea9c32acebec60e09d912b2578d4933d377ae5d0628f1e",
        "to_token_id": "INR",
        "transacted_amount": 5,
        "transaction_id": "otransaction~e1f5c32ab3cdc17a51ff0edda6bcc71b5acec3320a69f68a4ae455ed416657fa",
        "transaction_type": "TOKEN_CONVERSION_DEBIT"
    }
]
GetConversionRateHistory
Este método devuelve el historial de tasas de conversión de tokens para un par de tokens. El Token Admin del código de cadenas, cualquier Org Admin y cualquier propietario de cuenta de token pueden llamar a este método.
func (t *Controller) GetConversionRateHistory(from_token_id string, to_token_id string) (interface{}, error) {
    auth, err := t.Ctx.Auth.CheckAuthorization("TokenConversion.GetConversionRateHistory", "TOKEN")
    if err != nil && !auth {
        return nil, fmt.Errorf("error in authorizing the caller  %s", err.Error())
    }
    conversion_rate_id, err := t.Ctx.TokenConversionRate.GetConversionRateId(from_token_id, to_token_id)
    if err != nil {
        return nil, fmt.Errorf("error in getting conversionRateId. Error: %s", err)
    }
    return t.Ctx.TokenConversionRate.History(conversion_rate_id)
}
Parámetros:
  • from_token_id: string: ID del token desde el que realizar la conversión, con el fin de calcular el tipo de cambio.
  • to_token_id: string: ID del token al que se va a convertir, con el fin de calcular el tipo de cambio.
Devuelve:
  • Cuando se realiza correctamente, un objeto JSON con detalles del historial de tipos de cambio.
Ejemplo de valor de retorno:
[
  {
    "IsDelete": "false",
    "Timestamp": "2022-12-01T00:48:58+05:30",
    "TxId": "d6c5332278d33beddbc48e535029af424fef2129bf49f4906f9b527e101d95f1",
    "Value": {
      "AssetType": "oconversionRate",
      "ConversionRate": 15,
      "ConvertorRateId": "oconversionRate~79eacc670928bbc4c9ba4ebee135c8b4d6411af3110f8a9b782c383d5e18b150",
      "FromTokenId": "USD",
      "ToTokenId": "INR"
    }
  },
  {
    "IsDelete": "false",
    "Timestamp": "2022-12-01T00:47:15+05:30",
    "TxId": "e8796578351e948827d5dfe242ab4be59019ae67d69d3bfd6db255a268d57017",
    "Value": {
      "AssetType": "oconversionRate",
      "ConversionRate": 10,
      "ConvertorRateId": "oconversionRate~79eacc670928bbc4c9ba4ebee135c8b4d6411af3110f8a9b782c383d5e18b150",
      "FromTokenId": "USD",
      "ToTokenId": "INR"
    }
  }
]
GetExchangePoolUser
Este método devuelve los valores org_id y user_id para el usuario del pool de intercambio. Este método solo puede ser llamado por un Token Admin del código de cadena.
func (t *Controller) GetExchangePoolUser() (interface{}, error) {
    auth, err := t.Ctx.Auth.CheckAuthorization("TokenConversion.GetExchangePoolUser", "TOKEN")
    if err != nil && !auth {
        return nil, fmt.Errorf("error in authorizing the caller  %s", err.Error())
    }
    return t.Ctx.TokenConvertor.GetExchangePoolUser()
}
Parámetros:
  • ninguno
Devuelve:
  • Si se realiza correctamente, aparece un mensaje con información sobre el usuario del pool de intercambios.
Ejemplo de valor de retorno:
{
    "AssetType": "oconversion",
    "ConvertorId": "bcb1f3b1442c625d3ce205660c5e717c5858a1fe1e12c325df799a851ceaa09b",
    "OrgId": "Org1MSP",
    "UserId": "exchangepooluser"
}

Métodos de SDK de conversión de token

InitializeExchangePoolUser
Este método inicializa el usuario del pool de intercambios, que es una actividad puntual. Este método solo puede ser llamado por un Token Admin del código de cadena.
Ctx.TokenConvertor.InitializeExchangePoolUser(org_id string, user_id string) (interface{}, error)
Parámetros:
  • org_id: string: ID del proveedor de servicios de miembros (MSP) del usuario en la organización actual.
  • user_id: string: nombre de usuario o ID de correo electrónico del usuario.
Devuelve:
  • Cuando se realiza correctamente, un mensaje que incluye detalles del usuario del pool de intercambios.
Ejemplo de valor de retorno:
{
    "AssetType": "oconversion",
    "ConvertorId": "bcb1f3b1442c625d3ce205660c5e717c5858a1fe1e12c325df799a851ceaa09b",
    "OrgId": "Org1MSP",
    "UserId": "exchangepooluser"
}
CreateExchangePoolAccounts
Este método crea cuentas de token de pool de intercambio para una matriz determinada de ID de token. Este método solo puede ser llamado por un Token Admin del código de cadena.
Ctx.TokenConvertor.CreateExchangePoolAccounts(tokens []interface{}) (interface{}, error)
Parámetros:
  • token_ids: string []: matriz de ID de token.
Devuelve:
  • Cuando se realiza correctamente, una lista de objetos que incluye detalles de las cuentas de grupo de cambio que se crearon.
Ejemplo de valor de retorno:
[
    {
        "AccountId": "oaccount~cc9d84f6d4a5976532493ef5200c9603e138adc35166ffd5fd1aad9c1647f034",
        "Status": "created",
        "TokenId": "USD"
    },
    {
        "AccountId": "oaccount~3d4933111ec8bd6cc1ebb43f2b2c390deb929cfa534f9c6ada8e63bac04a13c0",
        "Status": "created",
        "TokenId": "INR"
    }
]
AddConversionToken
Este método agrega tokens con una nueva tasa de conversión para un token especificado. La tasa de conversión de token se puede especificar hasta ocho decimales. Este método solo puede ser llamado por un Token Admin del código de cadena.
Ctx.TokenConvertor.AddConversionToken(from_token_id string, to_token_id string, token_conversion_rate float64) (interface{}, error)
Parámetros:
  • from_token_id: string: ID del token desde el que realizar la conversión.
  • to_token_id: string: ID del token al que se va a convertir.
  • token_conversion_rate: float64: ratio al que convertir el token from_token_id en el token to_token_id.
Devuelve:
  • Una vez realizada correctamente, una representación JSON del objeto de tipo de cambio.
Ejemplo de valor de retorno:
{
    "AssetType": "oconversionRate",
    "ConvertorRateId": "oconversionRate~79eacc670928bbc4c9ba4ebee135c8b4d6411af3110f8a9b782c383d5e18b150",
    "FromTokenId": "USD",
    "ToTokenId": "INR",
    "ConversionRate": 10
}
Get
Este método obtiene la tasa de conversión actual para un par de tokens. El Token Admin del código de cadenas y cualquier propietario de cuenta de token pueden llamar a este método.
Ctx.TokenConversionRate.Get(id string) (ConversionRate, error)
Parámetros:
  • id: string: ID del objeto de tipo de cambio de token.
Devuelve:
  • Una vez realizada correctamente, una representación JSON del objeto de tipo de cambio.
Ejemplo de valor de retorno:
{
    "AssetType": "oconversionRate",
    "ConvertorRateId": "oconversionRate~79eacc670928bbc4c9ba4ebee135c8b4d6411af3110f8a9b782c383d5e18b150",
    "FromTokenId": "USD",
    "ToTokenId": "INR",
    "ConversionRate": 10
}
UpdateTokenConversionRate
Este método actualiza la tasa de conversión actual para un par de tokens. La tasa de conversión de token se puede especificar hasta ocho decimales. Este método solo puede ser llamado por un Token Admin del código de cadena.
Ctx.TokenConvertor.UpdateTokenConversionRate(from_token_id string, to_token_id string, token_conversion_rate float64) (interface{}, error)
Parámetros:
  • from_token_id: string: ID del token desde el que realizar la conversión.
  • to_token_id: string: ID del token al que se va a convertir.
  • token_conversion_rate: float64: ratio al que convertir el token from_token_id en el token to_token_id.
Devuelve:
  • Una vez realizada correctamente, una representación JSON del objeto de tipo de cambio actualizado.
Ejemplo de valor de retorno:
{
    "AssetType": "oconversionRate",
    "ConvertorRateId": "oconversionRate~79eacc670928bbc4c9ba4ebee135c8b4d6411af3110f8a9b782c383d5e18b150",
    "FromTokenId": "USD",
    "ToTokenId": "INR",
    "ConversionRate": 15
}
MintWithFundingExchangePool
Este método extrae los tokens de la cuenta del emisor de la llamada en función del ID de token y la cantidad especificados. A continuación, se transfiere un porcentaje de tokens de la cantidad minada a la cuenta de token del grupo de intercambio.
Ctx.TokenConvertor.MintWithFundingExchangePool(token interface{}, token_quantity float64, percentage_token_to_exchangePool float64) (interface{}, error)
Parámetros:
  • token_id: string: ID del token que se va a importar.
  • token_quantity: float64: número total de tokens para acuñar.
  • percentage_token_to_exchange_pool: float64: porcentaje de tokens minados que se transferirán a la cuenta de token del pool de cambios.
Devuelve:
  • En caso de éxito, un mensaje que indica que la extracción y la financiación del grupo de intercambio se han realizado correctamente.
Ejemplo de valor de retorno:
{
    "msg": "successfully minted 100 tokens to AccountId: 'oaccount~1c568151c4acbcd1bd265c766c677145760a61c47fc8a3ba681a4cfbe287f9c1' (OrgId: Org1MSP, User-Id: admin) and Successfully transfered 80 tokens to exchange pool account with AccountId: 'oaccount~3d4933111ec8bd6cc1ebb43f2b2c390deb929cfa534f9c6ada8e63bac04a13c0' (OrgId: Org1MSP, UserId: exchangepooluser) "
}
TokenConversion
Este método convierte tokens de la cuenta del emisor de la llamada a la cuenta especificada por los valores to_token_id, to_org_id y to_user_id. El Token Admin del código de cadenas y cualquier propietario de cuenta de token pueden llamar a este método. Un usuario de pool de intercambio no puede llamar a este método.
Ctx.TokenConvertor.TokenConversion(from_token interface{}, to_token interface{}, to_org_id string, to_user_id string, token_quantity float64) (interface{}, error)
Parámetros:
  • from_token_id: string: ID del token desde el que realizar la conversión.
  • to_token_id: string: ID del token al que se va a convertir.
  • to_org_id: string: ID del proveedor de servicios de miembros (MSP) del usuario en la organización actual para recibir los tokens.
  • to_user_id: string: nombre de usuario o ID de correo electrónico del usuario que recibirá los tokens.
Devuelve:
  • Cuando se realiza correctamente, aparece un mensaje que indica que la conversión de token se ha realizado correctamente.
Ejemplo de valor de retorno:
{
    "msg": "succesfully converted 5 of tokens with tokenId: [USD] from AccountId: 'oaccount~abc74791148b761352b98df58035601b6f5480448ac2b4a3a7eb54bdbebf48eb' (OrgId: Org1MSP, UserId: admin) to 75 of tokens with tokenId: [INR] to AccountId: 'oaccount~25e2e66718b6dbb59aea9c32acebec60e09d912b2578d4933d377ae5d0628f1e' ( OrgId: Org1MSP, UserId: user ) as per the conversion rate of 15"
}
GetTokenConversionHistory
Este método devuelve el historial de conversión de token para una cuenta de token especificada. El Token Admin del código de cadenas y el propietario de la cuenta de token pueden llamar a este método.
Ctx.Account.GetTokenConversionHistory(account_id string, org_id string, user_id string) (interface{}, error)
Parámetros:
  • account_id: string: ID de la cuenta de token fungible.
  • org_id: string: ID del proveedor de servicios de miembros (MSP) del usuario en la organización actual.
  • user_id: string: nombre de usuario o ID de correo electrónico del usuario.
Devuelve:
  • Cuando se realiza correctamente, un objeto JSON con detalles del historial de conversiones.
Ejemplo de valor de retorno:
[
    {
        "balance": 95,
        "conversion_rate": 15,
        "converted_amount": 75,
        "from_account_id": "oaccount~abc74791148b761352b98df58035601b6f5480448ac2b4a3a7eb54bdbebf48eb",
        "from_token_id": "USD",
        "onhold_balance": 0,
        "timestamp": "2022-12-01T00:54:33+05:30",
        "to_account_id": "oaccount~25e2e66718b6dbb59aea9c32acebec60e09d912b2578d4933d377ae5d0628f1e",
        "to_token_id": "INR",
        "transacted_amount": 5,
        "transaction_id": "otransaction~e1f5c32ab3cdc17a51ff0edda6bcc71b5acec3320a69f68a4ae455ed416657fa",
        "transaction_type": "TOKEN_CONVERSION_DEBIT"
    }
]
history
Este método devuelve el historial de tasas de conversión de tokens para un par de tokens. El Token Admin del código de cadenas, cualquier Org Admin y cualquier propietario de cuenta de token pueden llamar a este método.
Ctx.TokenConversionRate.History(conversion_rate_id string) (interface{}, error)
Parámetros:
  • conversion_rate_id: string: ID del objeto de tipo de cambio.
Devuelve:
  • Cuando se realiza correctamente, un objeto JSON con detalles del historial de tipos de cambio.
Ejemplo de valor de retorno:
[
  {
    "IsDelete": "false",
    "Timestamp": "2022-12-01T00:48:58+05:30",
    "TxId": "d6c5332278d33beddbc48e535029af424fef2129bf49f4906f9b527e101d95f1",
    "Value": {
      "AssetType": "oconversionRate",
      "ConversionRate": 15,
      "ConvertorRateId": "oconversionRate~79eacc670928bbc4c9ba4ebee135c8b4d6411af3110f8a9b782c383d5e18b150",
      "FromTokenId": "USD",
      "ToTokenId": "INR"
    }
  },
  {
    "IsDelete": "false",
    "Timestamp": "2022-12-01T00:47:15+05:30",
    "TxId": "e8796578351e948827d5dfe242ab4be59019ae67d69d3bfd6db255a268d57017",
    "Value": {
      "AssetType": "oconversionRate",
      "ConversionRate": 10,
      "ConvertorRateId": "oconversionRate~79eacc670928bbc4c9ba4ebee135c8b4d6411af3110f8a9b782c383d5e18b150",
      "FromTokenId": "USD",
      "ToTokenId": "INR"
    }
  }
]
GetExchangePoolUser
Este método devuelve los valores org_id y user_id para el usuario del pool de intercambio. Este método solo puede ser llamado por un Token Admin del código de cadena.
Ctx.TokenConvertor.GetExchangePoolUser()
Parámetros:
  • ninguno
Devuelve:
  • Si se realiza correctamente, aparece un mensaje con información sobre el usuario del pool de intercambios.
Ejemplo de valor de retorno:
{
    "AssetType": "oconversion",
    "ConvertorId": "bcb1f3b1442c625d3ce205660c5e717c5858a1fe1e12c325df799a851ceaa09b",
    "OrgId": "Org1MSP",
    "UserId": "exchangepooluser"
}