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 de pool d'échange. Le compte de pool d'échange est financé par d'autres comptes de jeton. Lorsque vous mentez des jetons, vous pouvez spécifier qu'un pourcentage des jetons frappés est transféré sur le compte du pool d'échange.

Processus de conversion de jeton

Un flux typique de conversion de jetons suit les étapes suivantes :
  1. Appelez la méthode InitializeExchangePoolUser pour initialiser l'utilisateur du pool d'échange.
  2. Appelez la méthode CreateExchangePoolAccounts pour créer des comptes de pool d'échange. Créez un compte de pool d'échange pour chaque type de jeton fongible que vous souhaitez convertir ou convertir.
  3. Appelez la méthode AddConversionRate pour définir le taux de conversion de chaque paire de jetons à convertir.
  4. Financer les comptes de jeton de pool d'échange de l'une des manières suivantes :
    • Transférez des jetons aux comptes de jetons du pool d'échange à l'aide des méthodes de transfert standard.
    • Appelez la méthode MintWithFundingExchangePoolToken lors de l'extraction de jetons, qui peuvent transférer un pourcentage de jetons frappés vers un compte de pool d'échange.
  5. Appelez la méthode TokenConversion pour effectuer une conversion 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 pool d'échange peut consulter les soldes des comptes du pool d'échange et les transactions de compte.
    • Appelez la méthode GetAccount pour afficher les soldes de chacun des comptes de jeton de pool d'échange.
    • Appelez les méthodes GetAccountTransactionHistory et GetAccountTransactionHistoryWithFilters pour afficher les transactions de compte pour chaque compte de jeton de pool 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 appelé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 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 du fournisseur de services d'adhésion de l'utilisateur dans l'organisation en cours.
  • user_id: string : nom utilisateur ou ID courriel de l'utilisateur.
Renvoie :
  • En cas de succès, message qui inclut 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 pool d'échange pour un tableau donné d'ID de jeton. Cette méthode ne peut être appelée que par un élément Token Admin du code 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 de jeton. Vous pouvez indiquer jusqu'à dix ID de jeton.
Renvoie :
  • En cas de succès, liste d'objets qui inclut les détails des comptes de pool d'échange 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 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 à partir duquel effectuer la conversion.
  • to_token_id: string : ID du jeton à convertir.
  • token_conversion_rate: float64 : vitesse à laquelle convertir le jeton from_token_id en jeton to_token_id.
Renvoie :
  • En cas de succès, 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 actuel pour une paire de jetons. Cette méthode peut être appelée par Token Admin du code chaîne, n'importe quel élément Org Admin et par n'importe quel propriétaire 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 à partir duquel effectuer la conversion.
  • to_token_id: string : ID du jeton à convertir.
Renvoie :
  • En cas de succès, 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 actuel d'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 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 à partir duquel effectuer la conversion.
  • to_token_id: string : ID du jeton à convertir.
  • token_conversion_rate: float64 : vitesse à laquelle convertir le jeton from_token_id en jeton to_token_id.
Renvoie :
  • En cas de succès, 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 extrait les jetons dans le compte de l'appelant en fonction de l'ID de 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 pool 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 à ment.
  • token_quantity: float64 : nombre total de jetons à ment.
  • percentage_token_to_exchange_pool: float64 : pourcentage de jetons extraits à transférer vers le compte de jetons du pool d'échange.
Renvoie :
  • En cas de succès, un message indiquant que l'extraction et le financement du pool d'échange ont réussi.
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 indiqué par les valeurs to_token_id, to_org_id et to_user_id. Cette méthode peut être appelée par Token Admin du code chaîne et par n'importe quel propriétaire de compte de jeton. Un utilisateur du pool 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 à partir duquel effectuer la conversion.
  • to_token_id: string : ID du jeton à convertir.
  • to_org_id: string : ID du fournisseur de services d'adhésion (MSP) de l'utilisateur de l'organisation en cours devant recevoir les jetons.
  • to_user_id: string : nom utilisateur ou ID de courriel de l'utilisateur devant recevoir les jetons.
  • token_quantity: float64 : nombre total de jetons à transférer.
Renvoie :
  • En cas de réussite, 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 renvoie 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 chaîne, par Org Admin de l'organisation indiquée et par le propriétaire 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 du fournisseur de services d'adhésion de l'utilisateur dans l'organisation en cours.
  • user_id: string : nom utilisateur ou ID courriel de l'utilisateur.
Renvoie :
  • En cas de succès, un objet JSON avec des détails d'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 renvoie l'historique du taux de conversion des jetons pour une paire de jetons. Cette méthode peut être appelée par Token Admin du code chaîne, n'importe quel élément Org Admin et par n'importe quel propriétaire 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 à partir duquel effectuer la conversion, dans le but de calculer le taux de conversion.
  • to_token_id: string : ID du jeton à convertir dans le but de calculer le taux de conversion.
Renvoie :
  • En cas de succès, un objet JSON avec des détails d'historique de 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 renvoie les valeurs org_id et user_id pour l'utilisateur du pool d'échange. Cette méthode ne peut être appelée que par un élément Token Admin du code 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 :
  • Aucun élément
Renvoie :
  • 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 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 chaîne.
Ctx.TokenConvertor.InitializeExchangePoolUser(org_id string, user_id string) (interface{}, error)
Paramètres :
  • org_id: string : ID du fournisseur de services d'adhésion de l'utilisateur dans l'organisation en cours.
  • user_id: string : nom utilisateur ou ID courriel de l'utilisateur.
Renvoie :
  • En cas de succès, message qui inclut 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 pool d'échange pour un tableau donné d'ID de jeton. Cette méthode ne peut être appelée que par un élément Token Admin du code chaîne.
Ctx.TokenConvertor.CreateExchangePoolAccounts(tokens []interface{}) (interface{}, error)
Paramètres :
  • token_ids: string [] : tableau d'ID de jeton.
Renvoie :
  • En cas de succès, liste d'objets qui inclut les détails des comptes de pool d'échange 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 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 à partir duquel effectuer la conversion.
  • to_token_id: string : ID du jeton à convertir.
  • token_conversion_rate: float64 : vitesse à laquelle convertir le jeton from_token_id en jeton to_token_id.
Renvoie :
  • En cas de succès, 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 actuel pour une paire de jetons. Cette méthode peut être appelée par Token Admin du code chaîne et par n'importe quel propriétaire de compte de jeton.
Ctx.TokenConversionRate.Get(id string) (ConversionRate, error)
Paramètres :
  • id: string : ID de l'objet de taux de conversion de jeton.
Renvoie :
  • En cas de succès, 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 actuel d'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 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 à partir duquel effectuer la conversion.
  • to_token_id: string : ID du jeton à convertir.
  • token_conversion_rate: float64 : vitesse à laquelle convertir le jeton from_token_id en jeton to_token_id.
Renvoie :
  • En cas de succès, 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 extrait les jetons dans le compte de l'appelant en fonction de l'ID de 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 pool 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 à ment.
  • token_quantity: float64 : nombre total de jetons à ment.
  • percentage_token_to_exchange_pool: float64 : pourcentage de jetons extraits à transférer vers le compte de jetons du pool d'échange.
Renvoie :
  • En cas de succès, un message indiquant que l'extraction et le financement du pool d'échange ont réussi.
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 indiqué par les valeurs to_token_id, to_org_id et to_user_id. Cette méthode peut être appelée par Token Admin du code chaîne et par n'importe quel propriétaire de compte de jeton. Un utilisateur du pool 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 à partir duquel effectuer la conversion.
  • to_token_id: string : ID du jeton à convertir.
  • to_org_id: string : ID du fournisseur de services d'adhésion (MSP) de l'utilisateur de l'organisation en cours devant recevoir les jetons.
  • to_user_id: string : nom utilisateur ou ID de courriel de l'utilisateur devant recevoir les jetons.
Renvoie :
  • En cas de réussite, 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 renvoie l'historique de conversion de jeton pour un compte de jeton spécifié. Cette méthode peut être appelée par le fichier Token Admin du code chaîne et par le propriétaire 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 du fournisseur de services d'adhésion de l'utilisateur dans l'organisation en cours.
  • user_id: string : nom utilisateur ou ID courriel de l'utilisateur.
Renvoie :
  • En cas de succès, un objet JSON avec des détails d'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 renvoie l'historique du taux de conversion des jetons pour une paire de jetons. Cette méthode peut être appelée par Token Admin du code chaîne, n'importe quel élément Org Admin et par n'importe quel propriétaire 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.
Renvoie :
  • En cas de succès, un objet JSON avec des détails d'historique de 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 renvoie les valeurs org_id et user_id pour l'utilisateur du pool d'échange. Cette méthode ne peut être appelée que par un élément Token Admin du code chaîne.
Ctx.TokenConvertor.GetExchangePoolUser()
Paramètres :
  • Aucun élément
Renvoie :
  • 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"
}