Méthodes Go pour la conversion de jeton

Blockchain App Builder génère automatiquement des méthodes que vous pouvez utiliser pour convertir des jetons fongibles qui utilisent la norme Token Taxonomy Framework.

Les méthodes de conversion de jeton incluent le concept du groupe d'échange. Le compte de groupe d'échange est financé par d'autres comptes de jetons. Lorsque vous mentez des jetons, vous pouvez spécifier qu'un pourcentage des jetons frappés est transféré sur le compte de pool de change.

Processus de conversion de jeton

Voici la marche à suivre pour convertir des jetons :
  1. Appelez la méthode InitializeExchangePoolUser pour initialiser l'utilisateur du groupe d'échange.
  2. Appelez la méthode CreateExchangePoolAccounts pour créer des comptes de groupe d'échange. Créez un compte de groupe d'échange pour chaque type de jeton fongible que vous souhaitez convertir ou convertir en.
  3. Appelez la méthode AddConversionRate pour définir le taux de conversion pour chaque paire de jetons entre lesquels vous voulez effectuer la conversion.
  4. Financer les comptes de jetons du pool d'échange de l'une des façons suivantes :
    • Transférer des jetons vers les comptes de jetons du groupe d'échange à l'aide des méthodes de transfert standard.
    • Appelez la méthode MintWithFundingExchangePoolToken lors de la frappe de jetons, qui peut transférer un pourcentage de jetons frappés vers un compte de groupe d'échange.
  5. Appelez la méthode TokenConversion pour convertir entre deux jetons fongibles. Un seul utilisateur peut convertir des jetons entre deux de ses comptes de jetons, ou une paire d'utilisateurs peut convertir directement des jetons d'un compte à un autre.
  6. L'utilisateur du groupe de change peut consulter les soldes des comptes du groupe de change et les transactions de compte.
    • Appelez la méthode GetAccount pour voir les soldes de chacun des comptes de jeton du groupe d'échange.
    • Appelez les méthodes GetAccountTransactionHistory et GetAccountTransactionHistoryWithFilters pour voir les transactions de compte pour chacun des comptes de jeton du groupe d'échange.

Méthodes de conversion de jeton générées automatiquement

Blockchain App Builder génère automatiquement des méthodes de conversion entre différents types de jetons fongibles. Les méthodes de contrôleur doivent être publiques pour pouvoir être invoquées. Les noms de méthode publics commencent par un caractère majuscule. Les noms de méthode qui commencent par un caractère minuscule sont privés.

InitializeExchangePoolUser
Cette méthode initialise l'utilisateur du pool d'échange, qui est une activité ponctuelle. Cette méthode ne peut être appelée que par un élément Token Admin du code de chaîne.
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)
}
Paramètres :
  • org_id: string - ID fournisseur de services d'adhésion (MSP) de l'utilisateur dans l'organisation courante.
  • user_id: string - Nom d'utilisateur ou ID courriel de l'utilisateur.
Retourne :
  • En cas de succès, un message contenant les détails de l'utilisateur du pool d'échange.
Exemple de valeur renvoyée :
{
    "AssetType": "oconversion",
    "ConvertorId": "bcb1f3b1442c625d3ce205660c5e717c5858a1fe1e12c325df799a851ceaa09b",
    "OrgId": "Org1MSP",
    "UserId": "exchangepooluser"
}
CreateExchangePoolAccounts
Cette méthode crée des comptes de jeton de groupe d'échange pour un tableau donné d'ID jeton. Cette méthode ne peut être appelée que par un élément Token Admin du code de chaîne.
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)
}
Paramètres :
  • token_ids: string [] - Tableau d'ID jeton. Vous pouvez spécifier jusqu'à dix ID jeton.
Retourne :
  • En cas de succès, liste d'objets contenant les détails des comptes Exchange Pool créés.
Exemple de valeur renvoyée :
[
    {
        "AccountId": "oaccount~cc9d84f6d4a5976532493ef5200c9603e138adc35166ffd5fd1aad9c1647f034",
        "Status": "created",
        "TokenId": "USD"
    },
    {
        "AccountId": "oaccount~3d4933111ec8bd6cc1ebb43f2b2c390deb929cfa534f9c6ada8e63bac04a13c0",
        "Status": "created",
        "TokenId": "INR"
    }
]
AddConversionRate
Cette méthode ajoute un taux de conversion pour une paire de jetons. Le taux de conversion du jeton peut être spécifié jusqu'à huit décimales. Cette méthode ne peut être appelée que par un élément Token Admin du code de chaîne.
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)
}
Paramètres :
  • from_token_id: string - ID du jeton à convertir.
  • to_token_id: string - ID du jeton vers lequel effectuer la conversion.
  • token_conversion_rate: float64 - Taux auquel convertir le jeton from_token_id en jeton to_token_id.
Retourne :
  • En cas de succès, une représentation JSON de l'objet de taux de conversion.
Exemple de valeur renvoyée :
{
    "AssetType": "oconversionRate",
    "ConvertorRateId": "oconversionRate~79eacc670928bbc4c9ba4ebee135c8b4d6411af3110f8a9b782c383d5e18b150",
    "FromTokenId": "USD",
    "ToTokenId": "INR",
    "ConversionRate": 10
}
GetConversionRate
Cette méthode obtient le taux de conversion courant pour une paire de jetons. Cette méthode peut être appelée par Token Admin du code de chaîne, par Org Admin au choix et par tout responsable de compte de jeton.
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)
}
Paramètres :
  • from_token_id: string - ID du jeton à convertir.
  • to_token_id: string - ID du jeton vers lequel effectuer la conversion.
Retourne :
  • En cas de succès, une représentation JSON de l'objet de taux de conversion.
Exemple de valeur renvoyée :
{
    "AssetType": "oconversionRate",
    "ConvertorRateId": "oconversionRate~79eacc670928bbc4c9ba4ebee135c8b4d6411af3110f8a9b782c383d5e18b150",
    "FromTokenId": "USD",
    "ToTokenId": "INR",
    "ConversionRate": 10
}
UpdateConversionRate
Cette méthode met à jour le taux de conversion courant pour une paire de jetons. Le taux de conversion du jeton peut être spécifié jusqu'à huit décimales. Cette méthode ne peut être appelée que par un élément Token Admin du code de chaîne.
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)
}
Paramètres :
  • from_token_id: string - ID du jeton à convertir.
  • to_token_id: string - ID du jeton vers lequel effectuer la conversion.
  • token_conversion_rate: float64 - Taux auquel convertir le jeton from_token_id en jeton to_token_id.
Retourne :
  • En cas de succès, une représentation JSON de l'objet de taux de conversion mis à jour.
Exemple de valeur renvoyée :
{
    "AssetType": "oconversionRate",
    "ConvertorRateId": "oconversionRate~79eacc670928bbc4c9ba4ebee135c8b4d6411af3110f8a9b782c383d5e18b150",
    "FromTokenId": "USD",
    "ToTokenId": "INR",
    "ConversionRate": 15
}
MintWithFundingExchangePool
Cette méthode élimine les jetons dans le compte de l'appelant en fonction de l'ID jeton et de la quantité spécifiés. Un pourcentage de jetons de la quantité frappée est ensuite transféré au compte de jetons du groupe d'échange.
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)
}
Paramètres :
  • token_id: string - ID du jeton à extraire.
  • token_quantity: float64 - Nombre total de jetons à menthe.
  • percentage_token_to_exchange_pool: float64 - Pourcentage de jetons frappés à transférer vers le compte de jeton du groupe d'échange.
Retourne :
  • Sur le succès, un message qui indique que la frappe et le financement du pool de change ont été réussis.
Exemple de valeur renvoyée :
{
    "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
Cette méthode convertit les jetons du compte de l'appelant vers le compte spécifié par les valeurs to_token_id, to_org_id et to_user_id. Cette méthode peut être appelée par la chaîne Token Admin du code de chaîne et par tout responsable de compte de jeton. Un utilisateur du groupe d'échange ne peut pas appeler cette méthode.
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)
}
Paramètres :
  • from_token_id: string - ID du jeton à convertir.
  • to_token_id: string - ID du jeton vers lequel effectuer la conversion.
  • to_org_id: string - ID fournisseur de services d'adhésion (MSP) de l'utilisateur dans l'organisation courante pour la réception des jetons.
  • to_user_id: string - Nom d'utilisateur ou ID courriel de l'utilisateur qui recevra les jetons.
  • token_quantity: float64 - Nombre total de jetons à transférer.
Retourne :
  • En cas de succès, un message indiquant que la conversion du jeton a réussi.
Exemple de valeur renvoyée :
{
    "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
Cette méthode retourne l'historique de conversion de jeton pour un compte de jeton spécifié. Cette méthode peut être appelée par Token Admin du code de chaîne, par Org Admin de l'organisation spécifiée et par le responsable du compte de jeton.
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)
}
Paramètres :
  • token_id: string - ID du jeton.
  • org_id: string - ID fournisseur de services d'adhésion (MSP) de l'utilisateur dans l'organisation courante.
  • user_id: string - Nom d'utilisateur ou ID courriel de l'utilisateur.
Retourne :
  • En cas de réussite, un objet JSON avec les détails de l'historique de conversion.
Exemple de valeur renvoyée :
[
    {
        "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
Cette méthode retourne l'historique du taux de conversion de jeton pour une paire de jetons. Cette méthode peut être appelée par Token Admin du code de chaîne, par Org Admin au choix et par tout responsable de compte de jeton.
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)
}
Paramètres :
  • from_token_id: string - ID du jeton à convertir, aux fins de calcul du taux de conversion.
  • to_token_id: string - ID du jeton vers lequel effectuer la conversion, aux fins de calcul du taux de conversion.
Retourne :
  • En cas de succès, un objet JSON avec les détails de l'historique du taux de conversion.
Exemple de valeur renvoyée :
[
  {
    "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
Cette méthode retourne les valeurs org_id et user_id pour l'utilisateur du groupe d'échange. Cette méthode ne peut être appelée que par un élément Token Admin du code de chaîne.
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()
}
Paramètres :
  • aucune
Retourne :
  • En cas de succès, un message contenant des informations sur l'utilisateur du pool d'échange.
Exemple de valeur renvoyée :
{
    "AssetType": "oconversion",
    "ConvertorId": "bcb1f3b1442c625d3ce205660c5e717c5858a1fe1e12c325df799a851ceaa09b",
    "OrgId": "Org1MSP",
    "UserId": "exchangepooluser"
}

Méthodes de la trousse SDK de conversion de jeton

InitializeExchangePoolUser
Cette méthode initialise l'utilisateur du pool d'échange, qui est une activité ponctuelle. Cette méthode ne peut être appelée que par un élément Token Admin du code de chaîne.
Ctx.TokenConvertor.InitializeExchangePoolUser(org_id string, user_id string) (interface{}, error)
Paramètres :
  • org_id: string - ID fournisseur de services d'adhésion (MSP) de l'utilisateur dans l'organisation courante.
  • user_id: string - Nom d'utilisateur ou ID courriel de l'utilisateur.
Retourne :
  • En cas de succès, un message contenant les détails de l'utilisateur du pool d'échange.
Exemple de valeur renvoyée :
{
    "AssetType": "oconversion",
    "ConvertorId": "bcb1f3b1442c625d3ce205660c5e717c5858a1fe1e12c325df799a851ceaa09b",
    "OrgId": "Org1MSP",
    "UserId": "exchangepooluser"
}
CreateExchangePoolAccounts
Cette méthode crée des comptes de jeton de groupe d'échange pour un tableau donné d'ID jeton. Cette méthode ne peut être appelée que par un élément Token Admin du code de chaîne.
Ctx.TokenConvertor.CreateExchangePoolAccounts(tokens []interface{}) (interface{}, error)
Paramètres :
  • token_ids: string [] - Tableau d'ID jeton.
Retourne :
  • En cas de succès, liste d'objets contenant les détails des comptes Exchange Pool créés.
Exemple de valeur renvoyée :
[
    {
        "AccountId": "oaccount~cc9d84f6d4a5976532493ef5200c9603e138adc35166ffd5fd1aad9c1647f034",
        "Status": "created",
        "TokenId": "USD"
    },
    {
        "AccountId": "oaccount~3d4933111ec8bd6cc1ebb43f2b2c390deb929cfa534f9c6ada8e63bac04a13c0",
        "Status": "created",
        "TokenId": "INR"
    }
]
AddConversionToken
Cette méthode ajoute des jetons avec un nouveau taux de conversion pour un jeton spécifié. Le taux de conversion du jeton peut être spécifié jusqu'à huit décimales. Cette méthode ne peut être appelée que par un élément Token Admin du code de chaîne.
Ctx.TokenConvertor.AddConversionToken(from_token_id string, to_token_id string, token_conversion_rate float64) (interface{}, error)
Paramètres :
  • from_token_id: string - ID du jeton à convertir.
  • to_token_id: string - ID du jeton vers lequel effectuer la conversion.
  • token_conversion_rate: float64 - Taux auquel convertir le jeton from_token_id en jeton to_token_id.
Retourne :
  • En cas de succès, une représentation JSON de l'objet de taux de conversion.
Exemple de valeur renvoyée :
{
    "AssetType": "oconversionRate",
    "ConvertorRateId": "oconversionRate~79eacc670928bbc4c9ba4ebee135c8b4d6411af3110f8a9b782c383d5e18b150",
    "FromTokenId": "USD",
    "ToTokenId": "INR",
    "ConversionRate": 10
}
Get
Cette méthode obtient le taux de conversion courant pour une paire de jetons. Cette méthode peut être appelée par la chaîne Token Admin du code de chaîne et par tout responsable de compte de jeton.
Ctx.TokenConversionRate.Get(id string) (ConversionRate, error)
Paramètres :
  • id: string - ID de l'objet de taux de conversion du jeton.
Retourne :
  • En cas de succès, une représentation JSON de l'objet de taux de conversion.
Exemple de valeur renvoyée :
{
    "AssetType": "oconversionRate",
    "ConvertorRateId": "oconversionRate~79eacc670928bbc4c9ba4ebee135c8b4d6411af3110f8a9b782c383d5e18b150",
    "FromTokenId": "USD",
    "ToTokenId": "INR",
    "ConversionRate": 10
}
UpdateTokenConversionRate
Cette méthode met à jour le taux de conversion courant pour une paire de jetons. Le taux de conversion du jeton peut être spécifié jusqu'à huit décimales. Cette méthode ne peut être appelée que par un élément Token Admin du code de chaîne.
Ctx.TokenConvertor.UpdateTokenConversionRate(from_token_id string, to_token_id string, token_conversion_rate float64) (interface{}, error)
Paramètres :
  • from_token_id: string - ID du jeton à convertir.
  • to_token_id: string - ID du jeton vers lequel effectuer la conversion.
  • token_conversion_rate: float64 - Taux auquel convertir le jeton from_token_id en jeton to_token_id.
Retourne :
  • En cas de succès, une représentation JSON de l'objet de taux de conversion mis à jour.
Exemple de valeur renvoyée :
{
    "AssetType": "oconversionRate",
    "ConvertorRateId": "oconversionRate~79eacc670928bbc4c9ba4ebee135c8b4d6411af3110f8a9b782c383d5e18b150",
    "FromTokenId": "USD",
    "ToTokenId": "INR",
    "ConversionRate": 15
}
MintWithFundingExchangePool
Cette méthode élimine les jetons dans le compte de l'appelant en fonction de l'ID jeton et de la quantité spécifiés. Un pourcentage de jetons de la quantité frappée est ensuite transféré au compte de jetons du groupe d'échange.
Ctx.TokenConvertor.MintWithFundingExchangePool(token interface{}, token_quantity float64, percentage_token_to_exchangePool float64) (interface{}, error)
Paramètres :
  • token_id: string - ID du jeton à extraire.
  • token_quantity: float64 - Nombre total de jetons à menthe.
  • percentage_token_to_exchange_pool: float64 - Pourcentage de jetons frappés à transférer vers le compte de jeton du groupe d'échange.
Retourne :
  • Sur le succès, un message qui indique que la frappe et le financement du pool de change ont été réussis.
Exemple de valeur renvoyée :
{
    "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
Cette méthode convertit les jetons du compte de l'appelant vers le compte spécifié par les valeurs to_token_id, to_org_id et to_user_id. Cette méthode peut être appelée par la chaîne Token Admin du code de chaîne et par tout responsable de compte de jeton. Un utilisateur du groupe d'échange ne peut pas appeler cette méthode.
Ctx.TokenConvertor.TokenConversion(from_token interface{}, to_token interface{}, to_org_id string, to_user_id string, token_quantity float64) (interface{}, error)
Paramètres :
  • from_token_id: string - ID du jeton à convertir.
  • to_token_id: string - ID du jeton vers lequel effectuer la conversion.
  • to_org_id: string - ID fournisseur de services d'adhésion (MSP) de l'utilisateur dans l'organisation courante pour la réception des jetons.
  • to_user_id: string - Nom d'utilisateur ou ID courriel de l'utilisateur qui recevra les jetons.
Retourne :
  • En cas de succès, un message indiquant que la conversion du jeton a réussi.
Exemple de valeur renvoyée :
{
    "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
Cette méthode retourne l'historique de conversion de jeton pour un compte de jeton spécifié. Cette méthode peut être appelée par la chaîne Token Admin du code de chaîne et par le responsable du compte de jeton.
Ctx.Account.GetTokenConversionHistory(account_id string, org_id string, user_id string) (interface{}, error)
Paramètres :
  • account_id: string - ID du compte de jeton fongible.
  • org_id: string - ID fournisseur de services d'adhésion (MSP) de l'utilisateur dans l'organisation courante.
  • user_id: string - Nom d'utilisateur ou ID courriel de l'utilisateur.
Retourne :
  • En cas de réussite, un objet JSON avec les détails de l'historique de conversion.
Exemple de valeur renvoyée :
[
    {
        "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
Cette méthode retourne l'historique du taux de conversion de jeton pour une paire de jetons. Cette méthode peut être appelée par Token Admin du code de chaîne, par Org Admin au choix et par tout responsable de compte de jeton.
Ctx.TokenConversionRate.History(conversion_rate_id string) (interface{}, error)
Paramètres :
  • conversion_rate_id: string - ID de l'objet de taux de conversion.
Retourne :
  • En cas de succès, un objet JSON avec les détails de l'historique du taux de conversion.
Exemple de valeur renvoyée :
[
  {
    "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
Cette méthode retourne les valeurs org_id et user_id pour l'utilisateur du groupe d'échange. Cette méthode ne peut être appelée que par un élément Token Admin du code de chaîne.
Ctx.TokenConvertor.GetExchangePoolUser()
Paramètres :
  • aucune
Retourne :
  • En cas de succès, un message contenant des informations sur l'utilisateur du pool d'échange.
Exemple de valeur renvoyée :
{
    "AssetType": "oconversion",
    "ConvertorId": "bcb1f3b1442c625d3ce205660c5e717c5858a1fe1e12c325df799a851ceaa09b",
    "OrgId": "Org1MSP",
    "UserId": "exchangepooluser"
}