Métodos 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 de Token Taxonomy Framework.

Los métodos de conversión de tokens incluyen el concepto de la agrupación de intercambio. La cuenta de grupo de intercambio está financiada por otras cuentas de token. Cuando acuña tokens, puede especificar que un porcentaje de los tokens acuñados se transfiera a la cuenta de 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 intercambio.
  2. Llame al método CreateExchangePoolAccounts para crear cuentas de grupo de intercambio. 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 desea convertir.
  4. Financie las cuentas de token de grupo de cambio de una de las siguientes maneras:
    • Transfiera tokens a las cuentas de token de grupo de intercambio mediante los métodos de transferencia estándar.
    • Llame al método MintWithFundingExchangePoolToken al acuñar tokens, que puede transferir un porcentaje de tokens acuñados 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 pueden 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 pool de cambios.
    • 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 intercambio.

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 que se puedan invocar. 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 intercambio, que es una actividad única. Este método solo puede ser llamado por Token Admin del código de cadenas.
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 afiliación (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 grupo de intercambio.
Ejemplo de Valor de Devolución:
{
    "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 Token Admin del código de cadenas.
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 intercambio que se crearon.
Ejemplo de Valor de Devolución:
[
    {
        "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 del token se puede especificar hasta ocho decimales. Este método solo puede ser llamado por Token Admin del código de cadenas.
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 del que se va a convertir.
  • to_token_id: string: ID del token al que se va a convertir.
  • token_conversion_rate: float64: ratio al que se convierte el token from_token_id en el token to_token_id.
Devuelve:
  • En caso de éxito, una representación JSON del objeto de tipo de cambio.
Ejemplo de Valor de Devolución:
{
    "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. Este método lo puede llamar el Token Admin del código de cadenas, cualquier Org Admin y cualquier propietario de cuenta de token.
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 del que se va a convertir.
  • to_token_id: string: ID del token al que se va a convertir.
Devuelve:
  • En caso de éxito, una representación JSON del objeto de tipo de cambio.
Ejemplo de Valor de Devolución:
{
    "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 del token se puede especificar hasta ocho decimales. Este método solo puede ser llamado por Token Admin del código de cadenas.
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 del que se va a convertir.
  • to_token_id: string: ID del token al que se va a convertir.
  • token_conversion_rate: float64: ratio al que se convierte el token from_token_id en el token to_token_id.
Devuelve:
  • En caso de éxito, una representación JSON del objeto de tipo de cambio actualizado.
Ejemplo de Valor de Devolución:
{
    "AssetType": "oconversionRate",
    "ConvertorRateId": "oconversionRate~79eacc670928bbc4c9ba4ebee135c8b4d6411af3110f8a9b782c383d5e18b150",
    "FromTokenId": "USD",
    "ToTokenId": "INR",
    "ConversionRate": 15
}
MintWithFundingExchangePool
Este método acuña tokens en la cuenta del emisor de llamada en función del ID de token y la cantidad especificados. A continuación, se transfiere un porcentaje de tokens de la cantidad acuñada a la cuenta de token de 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 acuñar.
  • token_quantity: float64: número total de tokens que acuñar.
  • percentage_token_to_exchange_pool: float64: porcentaje de tokens acuñados para transferir a la cuenta de token de grupo de intercambio.
Devuelve:
  • En caso de éxito, un mensaje que indica que la acuñación y la financiación del grupo de intercambio se realizaron correctamente.
Ejemplo de Valor de Devolución:
{
    "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 llamada a la cuenta especificada por los valores to_token_id, to_org_id y to_user_id. Este método lo puede llamar el Token Admin del código de cadenas y cualquier propietario de cuenta de token. Un usuario de grupo 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 del que se va a convertir.
  • to_token_id: string: ID del token al que se va a convertir.
  • to_org_id: string: ID del proveedor de servicios de afiliación (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 para transferir.
Devuelve:
  • Cuando se realiza correctamente, un mensaje que indica que la conversión del token se ha realizado correctamente.
Ejemplo de Valor de Devolución:
{
    "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. Este método puede ser llamado por el Token Admin del código de cadenas, un Org Admin de la organización especificada y por el propietario de la cuenta de token.
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 afiliación (MSP) del usuario en la organización actual.
  • user_id: string: nombre de usuario o ID de correo electrónico del usuario.
Devuelve:
  • Si se realiza correctamente, un objeto JSON con detalles del historial de conversiones.
Ejemplo de Valor de Devolución:
[
    {
        "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 ratio de conversión de tokens para un par de tokens. Este método lo puede llamar el Token Admin del código de cadenas, cualquier Org Admin y cualquier propietario de cuenta de token.
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 del que se va a convertir, con el fin de calcular la tasa de conversión.
  • to_token_id: string: ID del token al que se va a convertir, con el fin de calcular la tasa de conversión.
Devuelve:
  • Si se realiza correctamente, un objeto JSON con detalles del historial de tipos de cambio.
Ejemplo de Valor de Devolución:
[
  {
    "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 Token Admin del código de cadenas.
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 intercambio.
Ejemplo de Valor de Devolución:
{
    "AssetType": "oconversion",
    "ConvertorId": "bcb1f3b1442c625d3ce205660c5e717c5858a1fe1e12c325df799a851ceaa09b",
    "OrgId": "Org1MSP",
    "UserId": "exchangepooluser"
}

Métodos SDK de conversión de token

InitializeExchangePoolUser
Este método inicializa el usuario del pool de intercambio, que es una actividad única. Este método solo puede ser llamado por Token Admin del código de cadenas.
Ctx.TokenConvertor.InitializeExchangePoolUser(org_id string, user_id string) (interface{}, error)
Parámetros:
  • org_id: string: ID del proveedor de servicios de afiliación (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 grupo de intercambio.
Ejemplo de Valor de Devolución:
{
    "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 Token Admin del código de cadenas.
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 intercambio que se crearon.
Ejemplo de Valor de Devolución:
[
    {
        "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 del token se puede especificar hasta ocho decimales. Este método solo puede ser llamado por Token Admin del código de cadenas.
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 del que se va a convertir.
  • to_token_id: string: ID del token al que se va a convertir.
  • token_conversion_rate: float64: ratio al que se convierte el token from_token_id en el token to_token_id.
Devuelve:
  • En caso de éxito, una representación JSON del objeto de tipo de cambio.
Ejemplo de Valor de Devolución:
{
    "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. Este método lo puede llamar el Token Admin del código de cadenas y cualquier propietario de cuenta de token.
Ctx.TokenConversionRate.Get(id string) (ConversionRate, error)
Parámetros:
  • id: string: ID del objeto de tipo de cambio de token.
Devuelve:
  • En caso de éxito, una representación JSON del objeto de tipo de cambio.
Ejemplo de Valor de Devolución:
{
    "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 del token se puede especificar hasta ocho decimales. Este método solo puede ser llamado por Token Admin del código de cadenas.
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 del que se va a convertir.
  • to_token_id: string: ID del token al que se va a convertir.
  • token_conversion_rate: float64: ratio al que se convierte el token from_token_id en el token to_token_id.
Devuelve:
  • En caso de éxito, una representación JSON del objeto de tipo de cambio actualizado.
Ejemplo de Valor de Devolución:
{
    "AssetType": "oconversionRate",
    "ConvertorRateId": "oconversionRate~79eacc670928bbc4c9ba4ebee135c8b4d6411af3110f8a9b782c383d5e18b150",
    "FromTokenId": "USD",
    "ToTokenId": "INR",
    "ConversionRate": 15
}
MintWithFundingExchangePool
Este método acuña tokens en la cuenta del emisor de llamada en función del ID de token y la cantidad especificados. A continuación, se transfiere un porcentaje de tokens de la cantidad acuñada a la cuenta de token de 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 acuñar.
  • token_quantity: float64: número total de tokens que acuñar.
  • percentage_token_to_exchange_pool: float64: porcentaje de tokens acuñados para transferir a la cuenta de token de grupo de intercambio.
Devuelve:
  • En caso de éxito, un mensaje que indica que la acuñación y la financiación del grupo de intercambio se realizaron correctamente.
Ejemplo de Valor de Devolución:
{
    "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 llamada a la cuenta especificada por los valores to_token_id, to_org_id y to_user_id. Este método lo puede llamar el Token Admin del código de cadenas y cualquier propietario de cuenta de token. Un usuario de grupo 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 del que se va a convertir.
  • to_token_id: string: ID del token al que se va a convertir.
  • to_org_id: string: ID del proveedor de servicios de afiliación (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, un mensaje que indica que la conversión del token se ha realizado correctamente.
Ejemplo de Valor de Devolución:
{
    "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. Este método lo puede llamar el Token Admin del código de cadenas y el propietario de la cuenta de token.
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 afiliación (MSP) del usuario en la organización actual.
  • user_id: string: nombre de usuario o ID de correo electrónico del usuario.
Devuelve:
  • Si se realiza correctamente, un objeto JSON con detalles del historial de conversiones.
Ejemplo de Valor de Devolución:
[
    {
        "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 ratio de conversión de tokens para un par de tokens. Este método lo puede llamar el Token Admin del código de cadenas, cualquier Org Admin y cualquier propietario de cuenta de token.
Ctx.TokenConversionRate.History(conversion_rate_id string) (interface{}, error)
Parámetros:
  • conversion_rate_id: string: ID del objeto de tipo de cambio.
Devuelve:
  • Si se realiza correctamente, un objeto JSON con detalles del historial de tipos de cambio.
Ejemplo de Valor de Devolución:
[
  {
    "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 Token Admin del código de cadenas.
Ctx.TokenConvertor.GetExchangePoolUser()
Parámetros:
  • ninguno
Devuelve:
  • Si se realiza correctamente, aparece un mensaje con información sobre el usuario del pool de intercambio.
Ejemplo de Valor de Devolución:
{
    "AssetType": "oconversion",
    "ConvertorId": "bcb1f3b1442c625d3ce205660c5e717c5858a1fe1e12c325df799a851ceaa09b",
    "OrgId": "Org1MSP",
    "UserId": "exchangepooluser"
}