TypeScript Méthodes de 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 jeton. Lorsque vous frappez des jetons, vous pouvez spécifier qu'un pourcentage des jetons frappés sont transférés au 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'échanges. 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 entre lesquels vous souhaitez convertir.
  4. Financer les comptes de jeton de pool d'échange de l'une des façons suivantes :
    • Transférez les jetons vers les comptes de jeton du groupe d'échanges à 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'échanges.
  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 jeton, ou une paire d'utilisateurs peut convertir directement des jetons d'un compte à un autre.
  6. L'utilisateur du groupe d'échanges peut consulter les soldes de comptes du groupe d'échanges et les transactions de comptes.
    • Appelez la méthode getAccount pour voir les soldes de chacun des comptes de jeton du groupe d'échanges.
    • Appelez les méthodes getAccountTransactionHistory et getAccountTransactionHistoryWithFilters pour voir les transactions de compte pour chacun des comptes de jeton de 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 avoir un décorateur @Validator(...params) pour pouvoir être appelées.

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 Token Admin du code de chaîne.
@Validator(yup.string(), yup.string())
public async initializeExchangePoolUser(org_id: string, user_id: string){
    await this.Ctx.Auth.checkAuthorization('TOKEN_CONVERSION.initializeExchangePoolUser', 'TOKEN');
    return await this.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 qui inclut les détails de l'utilisateur du pool d'échange.
Exemple de valeur renvoyée :
{
    "assetType": "oconversion",
    "convertor_id": "bcb1f3b1442c625d3ce205660c5e717c5858a1fe1e12c325df799a851ceaa09b",
    "org_id": "Org1MSP",
    "user_id": "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 Token Admin du code de chaîne.
@Validator(yup.array().of(yup.string()))
public async createExchangePoolAccounts(token_ids: string[]){
    await this.Ctx.Auth.checkAuthorization('TOKEN_CONVERSION.initializeExchangePoolUser', 'TOKEN');
    return await this.Ctx.TokenConvertor.createExchangePoolAccounts(token_ids);
}
Paramètres :
  • token_ids: string [] – Tableau des ID jetons.
Retourne :
  • En cas de succès, une liste d'objets qui inclut les détails des comptes de pool d'échange qui ont été créés.
Exemple de valeur renvoyée :
[
  {
    "account_id": "oaccount~cc9d84f6d4a5976532493ef5200c9603e138adc35166ffd5fd1aad9c1647f034",
    "token_id": "USD",
    "status": "created"
  },
  {
    "account_id": "oaccount~3d4933111ec8bd6cc1ebb43f2b2c390deb929cfa534f9c6ada8e63bac04a13c0",
    "token_id": "INR",
    "status": "created"
  }
]
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 Token Admin du code de chaîne.
@Validator(yup.string(), yup.string(), yup.number())
public async addConversionRate(from_token_id:string , to_token_id:string, token_conversion_rate: number) {
   await this.Ctx.Auth.checkAuthorization('TOKEN_CONVERSION.addConversionRate', 'TOKEN');
   return await this.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: number – 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",
  "conversion_rate_id": "oconversionRate~91c7eeb0614e7a50b1d5ecad559fcbc80b94034648bf405c9491dacf8d57873b",
  "from_token_id": "USD",
  "to_token_id": "INR",
  "conversion_rate": 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 n'importe quel responsable de compte de jeton.
@Validator(yup.string(), yup.string())
public async getConversionRate(from_token_id:string , to_token_id:string) {
    await this.Ctx.Auth.checkAuthorization('TOKEN_CONVERSION.getConversionRate', 'TOKEN');
    const conversion_rate_id = await this.Ctx.TokenConversionRate.getConversionRateId(from_token_id, to_token_id);
    return await this.Ctx.TokenConversionRate.get(conversion_rate_id);
}
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",
  "conversion_rate_id": "oconversionRate~91c7eeb0614e7a50b1d5ecad559fcbc80b94034648bf405c9491dacf8d57873b",
  "from_token_id": "USD",
  "to_token_id": "INR",
  "conversion_rate": 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 Token Admin du code de chaîne.
@Validator(yup.string(), yup.string(), yup.number())
public async updateConversionRate(from_token_id:string , to_token_id:string, token_conversion_rate: number) {
    await this.Ctx.Auth.checkAuthorization('TOKEN_CONVERSION.updateConversionRate', 'TOKEN');
    return await this.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: number – 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",
  "conversion_rate_id": "oconversionRate~91c7eeb0614e7a50b1d5ecad559fcbc80b94034648bf405c9491dacf8d57873b",
  "from_token_id": "USD",
  "to_token_id": "INR",
  "conversion_rate": 20
}
mintWithFundingExchangePool
Cette méthode extrait 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.
@Validator(yup.string(), yup.number(), yup.number())
public async mintWithFundingExchangePool(token_id: string, token_quantity: number, percentage_token_to_exchange_pool: number) {
    return await this.Ctx.TokenConvertor.mintWithFundingExchangePool(token_id, token_quantity, percentage_token_to_exchange_pool);
}
Paramètres :
  • token_id: string - ID du jeton à extraire.
  • token_quantity: number – Nombre total de jetons à la menthe.
  • percentage_token_to_exchange_pool: number – Pourcentage de jetons frappés à transférer vers le compte de jetons du groupe d'échange.
Retourne :
  • En cas de succès, un message indiquant que la frappe et le financement du pool d'échange ont réussi.
Exemple de valeur renvoyée :
{
    "msg": "Successfully minted 100 tokens to Account Id: oaccount~abc74791148b761352b98df58035601b6f5480448ac2b4a3a7eb54bdbebf48eb (Org-Id: Org1MSP, User-Id: admin) and Successfully transfered 20 tokens to exchange pool Account with Account Id: oaccount~cc9d84f6d4a5976532493ef5200c9603e138adc35166ffd5fd1aad9c1647f034 (Org-Id: Org1MSP, User-Id: 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 Token Admin du code de chaîne et par n'importe quel responsable de compte de jeton. Un utilisateur du pool d'échange ne peut pas appeler cette méthode.
@Validator(yup.string(),yup.string(),yup.string(),yup.string(),yup.number())
public async tokenConversion(from_token_id:string, to_token_id:string, to_org_id:string, to_user_id:string, token_quantity:number){
    await this.Ctx.Auth.checkAuthorization('TOKEN_CONVERSION.tokenConversion', 'TOKEN');
    return await this.Ctx.TokenConvertor.tokenConversion(from_token_id,to_token_id,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 recevoir les jetons.
  • to_user_id: string – Nom d'utilisateur ou ID courriel de l'utilisateur qui reçoit les jetons.
  • token_quantity: number – 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 (Org-Id: Org1MSP, User-Id: admin) to 100 of tokens with tokenId: [INR] to AccountId: oaccount~25e2e66718b6dbb59aea9c32acebec60e09d912b2578d4933d377ae5d0628f1e (Org-Id: Org1MSP, User-Id: user) as per the conversion rate of 20"
}
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, Org Admin de l'organisation spécifiée ou par le responsable du compte de jeton.
@Validator(yup.string(), yup.string(), yup.string())
  public async getConversionHistory(token_id: string, org_id: string, user_id: string) {
    const account_id = await this.Ctx.Account.generateAccountId(token_id, org_id, user_id);
    await this.Ctx.Auth.checkAuthorization("ACCOUNT.getConversionHistory", "TOKEN", { account_id });
    return await this.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 succès, un objet JSON avec les détails de l'historique de conversion.
Exemple de valeur renvoyée :
[
  {
    "transaction_id": "otransaction~34edd19e03ec8bbbc77bc3372081410a824a5c10f9aa522b3a6390d7e8cb11cf",
    "from_account_id": "oaccount~abc74791148b761352b98df58035601b6f5480448ac2b4a3a7eb54bdbebf48eb",
    "to_account_id": "oaccount~25e2e66718b6dbb59aea9c32acebec60e09d912b2578d4933d377ae5d0628f1e",
    "transacted_amount": 5,
    "converted_amount": 100,
    "conversion_rate": "20",
    "from_token_id": "USD",
    "to_token_id": "INR",
    "balance": 75,
    "onhold_balance": 0,
    "timestamp": "2022-11-30T11:03:20.000Z",
    "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 n'importe quel responsable de compte de jeton.
@Validator(yup.string(), yup.string())
public async getConversionRateHistory(from_token_id:string , to_token_id:string) {
    const conversion_rate_id = await this.Ctx.TokenConversionRate.getConversionRateId(from_token_id,to_token_id);
    await this.Ctx.Auth.checkAuthorization('TOKEN_CONVERSION.getConversionRateHistory', 'TOKEN');  
    return await this.Ctx.TokenConversionRate.history(conversion_rate_id);
}
Paramètres :
  • from_token_id: string – ID du jeton à convertir, aux fins du calcul du taux de conversion.
  • to_token_id: string – ID du jeton vers lequel convertir, aux fins du calcul du taux de conversion.
Retourne :
  • En cas de succès, un objet JSON avec les détails de l'historique des taux de conversion.
Exemple de valeur renvoyée :
 [
  {
    "trxId": "0b1ba7bc2620e1438b6580365e5c0ab852247ccfa5a3eb2157d3baca02c0e521",
    "timeStamp": "2022-11-30T10:23:38.000Z",
    "value": {
      "assetType": "oconversionRate",
      "conversion_rate_id": "oconversionRate~91c7eeb0614e7a50b1d5ecad559fcbc80b94034648bf405c9491dacf8d57873b",
      "from_token_id": "USD",
      "to_token_id": "INR",
      "conversion_rate": 20
    }
  },
  {
    "trxId": "36fc40ddb3d8308ee7e156af700da131d78d941fe390fc57985b7589e7035d5c",
    "timeStamp": "2022-11-30T10:13:18.000Z",
    "value": {
      "assetType": "oconversionRate",
      "conversion_rate_id": "oconversionRate~91c7eeb0614e7a50b1d5ecad559fcbc80b94034648bf405c9491dacf8d57873b",
      "from_token_id": "USD",
      "to_token_id": "INR",
      "conversion_rate": 10
    }
  }
]
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 Token Admin du code de chaîne.
@Validator()
public async getExchangePoolUser() {
    await this.Ctx.Auth.checkAuthorization('TOKEN_CONVERSION.getExchangePoolUser', 'TOKEN');
    return await this.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",
   "convertor_id": "bcb1f3b1442c625d3ce205660c5e717c5858a1fe1e12c325df799a851ceaa09b",
   "org_id": "Org1MSP",
   "user_id": "exchangepooluser"
}
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 Token Admin du code de chaîne.
@Validator(yup.string(), yup.string())
public async initializeExchangePoolUser(org_id: string, user_id: string){
    await this.Ctx.Auth.checkAuthorization('TOKEN_CONVERSION.initializeExchangePoolUser', 'TOKEN');
    return await this.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 qui inclut les détails de l'utilisateur du pool d'échange.
Exemple de valeur renvoyée :
{
    "assetType": "oconversion",
    "convertor_id": "bcb1f3b1442c625d3ce205660c5e717c5858a1fe1e12c325df799a851ceaa09b",
    "org_id": "Org1MSP",
    "user_id": "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 Token Admin du code de chaîne.
@Validator(yup.array().of(yup.string()))
public async createExchangePoolAccounts(token_ids: string[]){
    await this.Ctx.Auth.checkAuthorization('TOKEN_CONVERSION.initializeExchangePoolUser', 'TOKEN');
    return await this.Ctx.TokenConvertor.createExchangePoolAccounts(token_ids);
}
Paramètres :
  • token_ids: string [] – Tableau des ID jetons.
Retourne :
  • En cas de succès, une liste d'objets qui inclut les détails des comptes de pool d'échange qui ont été créés.
Exemple de valeur renvoyée :
[
  {
    "account_id": "oaccount~cc9d84f6d4a5976532493ef5200c9603e138adc35166ffd5fd1aad9c1647f034",
    "token_id": "USD",
    "status": "created"
  },
  {
    "account_id": "oaccount~3d4933111ec8bd6cc1ebb43f2b2c390deb929cfa534f9c6ada8e63bac04a13c0",
    "token_id": "INR",
    "status": "created"
  }
]
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 Token Admin du code de chaîne.
@Validator(yup.string(), yup.string(), yup.number())
public async addConversionRate(from_token_id:string , to_token_id:string, token_conversion_rate: number) {
   await this.Ctx.Auth.checkAuthorization('TOKEN_CONVERSION.addConversionRate', 'TOKEN');
   return await this.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: number – 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",
  "conversion_rate_id": "oconversionRate~91c7eeb0614e7a50b1d5ecad559fcbc80b94034648bf405c9491dacf8d57873b",
  "from_token_id": "USD",
  "to_token_id": "INR",
  "conversion_rate": 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 ou Token Auditor, Org Admin ou Org Auditor de l'organisation spécifiée, et par tout responsable de compte de jeton.
@Validator(yup.string(), yup.string())
public async getConversionRate(from_token_id:string , to_token_id:string) {
    await this.Ctx.Auth.checkAuthorization('TOKEN_CONVERSION.getConversionRate', 'TOKEN');
    const conversion_rate_id = await this.Ctx.TokenConversionRate.getConversionRateId(from_token_id, to_token_id);
    return await this.Ctx.TokenConversionRate.get(conversion_rate_id);
}
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",
  "conversion_rate_id": "oconversionRate~91c7eeb0614e7a50b1d5ecad559fcbc80b94034648bf405c9491dacf8d57873b",
  "from_token_id": "USD",
  "to_token_id": "INR",
  "conversion_rate": 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 Token Admin du code de chaîne.
@Validator(yup.string(), yup.string(), yup.number())
public async updateConversionRate(from_token_id:string , to_token_id:string, token_conversion_rate: number) {
    await this.Ctx.Auth.checkAuthorization('TOKEN_CONVERSION.updateConversionRate', 'TOKEN');
    return await this.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: number – 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",
  "conversion_rate_id": "oconversionRate~91c7eeb0614e7a50b1d5ecad559fcbc80b94034648bf405c9491dacf8d57873b",
  "from_token_id": "USD",
  "to_token_id": "INR",
  "conversion_rate": 20
}
mintWithFundingExchangePool
Cette méthode extrait 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.
@Validator(yup.string(), yup.number(), yup.number())
public async mintWithFundingExchangePool(token_id: string, token_quantity: number, percentage_token_to_exchange_pool: number) {
    return await this.Ctx.TokenConvertor.mintWithFundingExchangePool(token_id, token_quantity, percentage_token_to_exchange_pool);
}
Paramètres :
  • token_id: string - ID du jeton à extraire.
  • token_quantity: number – Nombre total de jetons à la menthe.
  • percentage_token_to_exchange_pool: number – Pourcentage de jetons frappés à transférer vers le compte de jetons du groupe d'échange.
Retourne :
  • En cas de succès, un message indiquant que la frappe et le financement du pool d'échange ont réussi.
Exemple de valeur renvoyée :
{
    "msg": "Successfully minted 100 tokens to Account Id: oaccount~abc74791148b761352b98df58035601b6f5480448ac2b4a3a7eb54bdbebf48eb (Org-Id: Org1MSP, User-Id: admin) and Successfully transfered 20 tokens to exchange pool Account with Account Id: oaccount~cc9d84f6d4a5976532493ef5200c9603e138adc35166ffd5fd1aad9c1647f034 (Org-Id: Org1MSP, User-Id: 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 Token Admin du code de chaîne et par n'importe quel responsable de compte de jeton. Un utilisateur du pool d'échange ne peut pas appeler cette méthode.
@Validator(yup.string(),yup.string(),yup.string(),yup.string(),yup.number())
public async tokenConversion(from_token_id:string, to_token_id:string, to_org_id:string, to_user_id:string, token_quantity:number){
    await this.Ctx.Auth.checkAuthorization('TOKEN_CONVERSION.tokenConversion', 'TOKEN');
    return await this.Ctx.TokenConvertor.tokenConversion(from_token_id,to_token_id,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 recevoir les jetons.
  • to_user_id: string – Nom d'utilisateur ou ID courriel de l'utilisateur qui reçoit les jetons.
  • token_quantity: number – 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 (Org-Id: Org1MSP, User-Id: admin) to 100 of tokens with tokenId: [INR] to AccountId: oaccount~25e2e66718b6dbb59aea9c32acebec60e09d912b2578d4933d377ae5d0628f1e (Org-Id: Org1MSP, User-Id: user) as per the conversion rate of 20"
}
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 ou Token Auditor, Org Admin ou Org Auditor de l'organisation spécifiée, ou par le responsable du compte de jeton.
@Validator(yup.string(), yup.string(), yup.string())
  public async getConversionHistory(token_id: string, org_id: string, user_id: string) {
    const account_id = await this.Ctx.Account.generateAccountId(token_id, org_id, user_id);
    await this.Ctx.Auth.checkAuthorization("ACCOUNT.getConversionHistory", "TOKEN", { account_id });
    return await this.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 succès, un objet JSON avec les détails de l'historique de conversion.
Exemple de valeur renvoyée :
[
  {
    "transaction_id": "otransaction~34edd19e03ec8bbbc77bc3372081410a824a5c10f9aa522b3a6390d7e8cb11cf",
    "from_account_id": "oaccount~abc74791148b761352b98df58035601b6f5480448ac2b4a3a7eb54bdbebf48eb",
    "to_account_id": "oaccount~25e2e66718b6dbb59aea9c32acebec60e09d912b2578d4933d377ae5d0628f1e",
    "transacted_amount": 5,
    "converted_amount": 100,
    "conversion_rate": "20",
    "from_token_id": "USD",
    "to_token_id": "INR",
    "balance": 75,
    "onhold_balance": 0,
    "timestamp": "2022-11-30T11:03:20.000Z",
    "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 ou Token Auditor, Org Admin ou Org Auditor de l'organisation spécifiée, et par tout responsable de compte de jeton.
@Validator(yup.string(), yup.string())
public async getConversionRateHistory(from_token_id:string , to_token_id:string) {
    const conversion_rate_id = await this.Ctx.TokenConversionRate.getConversionRateId(from_token_id,to_token_id);
    await this.Ctx.Auth.checkAuthorization('TOKEN_CONVERSION.getConversionRateHistory', 'TOKEN');  
    return await this.Ctx.TokenConversionRate.history(conversion_rate_id);
}
Paramètres :
  • from_token_id: string – ID du jeton à convertir, aux fins du calcul du taux de conversion.
  • to_token_id: string – ID du jeton vers lequel convertir, aux fins du calcul du taux de conversion.
Retourne :
  • En cas de succès, un objet JSON avec les détails de l'historique des taux de conversion.
Exemple de valeur renvoyée :
 [
  {
    "trxId": "0b1ba7bc2620e1438b6580365e5c0ab852247ccfa5a3eb2157d3baca02c0e521",
    "timeStamp": "2022-11-30T10:23:38.000Z",
    "value": {
      "assetType": "oconversionRate",
      "conversion_rate_id": "oconversionRate~91c7eeb0614e7a50b1d5ecad559fcbc80b94034648bf405c9491dacf8d57873b",
      "from_token_id": "USD",
      "to_token_id": "INR",
      "conversion_rate": 20
    }
  },
  {
    "trxId": "36fc40ddb3d8308ee7e156af700da131d78d941fe390fc57985b7589e7035d5c",
    "timeStamp": "2022-11-30T10:13:18.000Z",
    "value": {
      "assetType": "oconversionRate",
      "conversion_rate_id": "oconversionRate~91c7eeb0614e7a50b1d5ecad559fcbc80b94034648bf405c9491dacf8d57873b",
      "from_token_id": "USD",
      "to_token_id": "INR",
      "conversion_rate": 10
    }
  }
]
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 Token Admin ou Token Auditor du code de chaîne.
@Validator()
public async getExchangePoolUser() {
    await this.Ctx.Auth.checkAuthorization('TOKEN_CONVERSION.getExchangePoolUser', 'TOKEN');
    return await this.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",
   "convertor_id": "bcb1f3b1442c625d3ce205660c5e717c5858a1fe1e12c325df799a851ceaa09b",
   "org_id": "Org1MSP",
   "user_id": "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 Token Admin du code de chaîne.
Ctx.TokenConvertor.initializeExchangePoolUser(orgId: string, userId: string)
Paramètres :
  • orgId: string – ID fournisseur de services d'adhésion (MSP) de l'utilisateur dans l'organisation courante.
  • userId: string – Nom d'utilisateur ou ID courriel de l'utilisateur.
Retourne :
  • En cas de succès, un message qui inclut les détails de l'utilisateur du pool d'échange.
Exemple de valeur renvoyée :
{
    "assetType": "oconversion",
    "convertor_id": "bcb1f3b1442c625d3ce205660c5e717c5858a1fe1e12c325df799a851ceaa09b",
    "org_id": "Org1MSP",
    "user_id": "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 Token Admin du code de chaîne.
Ctx.TokenConvertor.createExchangePoolAccounts(token_ids: string[])
Paramètres :
  • token_ids: string [] – Tableau des ID jetons.
Retourne :
  • En cas de succès, une liste d'objets qui inclut les détails des comptes de pool d'échange qui ont été créés.
Exemple de valeur renvoyée :
[
  {
    "account_id": "oaccount~cc9d84f6d4a5976532493ef5200c9603e138adc35166ffd5fd1aad9c1647f034",
    "token_id": "USD",
    "status": "created"
  },
  {
    "account_id": "oaccount~3d4933111ec8bd6cc1ebb43f2b2c390deb929cfa534f9c6ada8e63bac04a13c0",
    "token_id": "INR",
    "status": "created"
  }
]
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 Token Admin du code de chaîne.
Ctx.TokenConvertor.addConversionToken(fromTokenId: string, toTokenId: string, tokenConversionRate: number)
Paramètres :
  • fromTokenId: string - ID du jeton à convertir.
  • toTokenId: string - ID du jeton vers lequel effectuer la conversion.
  • tokenConversionRate: number – 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",
  "conversion_rate_id": "oconversionRate~91c7eeb0614e7a50b1d5ecad559fcbc80b94034648bf405c9491dacf8d57873b",
  "from_token_id": "USD",
  "to_token_id": "INR",
  "conversion_rate": 10
}
get
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 et par n'importe quel responsable de compte de jeton.
Ctx.TokenConversionRate.get(id: string)
Paramètres :
  • id: string - ID de l'objet de taux de conversion de 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",
  "conversion_rate_id": "oconversionRate~91c7eeb0614e7a50b1d5ecad559fcbc80b94034648bf405c9491dacf8d57873b",
  "from_token_id": "USD",
  "to_token_id": "INR",
  "conversion_rate": 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 Token Admin du code de chaîne.
Ctx.TokenConvertor.updateTokenConversionRate(fromTokenId: string, toTokenId: string, tokenConversionRate: number)
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: number – 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",
  "conversion_rate_id": "oconversionRate~91c7eeb0614e7a50b1d5ecad559fcbc80b94034648bf405c9491dacf8d57873b",
  "from_token_id": "USD",
  "to_token_id": "INR",
  "conversion_rate": 20
}
mintWithFundingExchangePool
Cette méthode extrait 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(tokenId: string, tokenQuantity: number, percentageTokenToExchangePool: number)
Paramètres :
  • token_id: string - ID du jeton à extraire.
  • token_quantity: number – Nombre total de jetons à la menthe.
  • percentage_token_to_exchange_pool: number – Pourcentage de jetons frappés à transférer vers le compte de jetons du groupe d'échange.
Retourne :
  • En cas de succès, un message indiquant que la frappe et le financement du pool d'échange ont réussi.
Exemple de valeur renvoyée :
{
    "msg": "Successfully minted 100 tokens to Account Id: oaccount~abc74791148b761352b98df58035601b6f5480448ac2b4a3a7eb54bdbebf48eb (Org-Id: Org1MSP, User-Id: admin) and Successfully transfered 20 tokens to exchange pool Account with Account Id: oaccount~cc9d84f6d4a5976532493ef5200c9603e138adc35166ffd5fd1aad9c1647f034 (Org-Id: Org1MSP, User-Id: 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 Token Admin du code de chaîne et par n'importe quel responsable de compte de jeton. Un utilisateur du pool d'échange ne peut pas appeler cette méthode.
Ctx.TokenConvertor.tokenConversion(fromTokenId: string, toTokenId: string, toOrgId: string, toUserId: string, tokenQuantity: number)
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 recevoir les jetons.
  • to_user_id: string – Nom d'utilisateur ou ID courriel de l'utilisateur qui reçoit 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 (Org-Id: Org1MSP, User-Id: admin) to 100 of tokens with tokenId: [INR] to AccountId: oaccount~25e2e66718b6dbb59aea9c32acebec60e09d912b2578d4933d377ae5d0628f1e (Org-Id: Org1MSP, User-Id: user) as per the conversion rate of 20"
}
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 Token Admin du code de chaîne, Org Admin de l'organisation spécifiée et par le responsable du compte de jeton.
Ctx.Account.getTokenConversionHistory(account_id: string, org_id: string, user_id: string)
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 succès, un objet JSON avec les détails de l'historique de conversion.
Exemple de valeur renvoyée :
[
  {
    "transaction_id": "otransaction~34edd19e03ec8bbbc77bc3372081410a824a5c10f9aa522b3a6390d7e8cb11cf",
    "from_account_id": "oaccount~abc74791148b761352b98df58035601b6f5480448ac2b4a3a7eb54bdbebf48eb",
    "to_account_id": "oaccount~25e2e66718b6dbb59aea9c32acebec60e09d912b2578d4933d377ae5d0628f1e",
    "transacted_amount": 5,
    "converted_amount": 100,
    "conversion_rate": "20",
    "from_token_id": "USD",
    "to_token_id": "INR",
    "balance": 75,
    "onhold_balance": 0,
    "timestamp": "2022-11-30T11:03:20.000Z",
    "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 n'importe quel responsable de compte de jeton.
Ctx.TokenConversionRate.history(conversion_rate_id: string)
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 des taux de conversion.
Exemple de valeur renvoyée :
 [
  {
    "trxId": "0b1ba7bc2620e1438b6580365e5c0ab852247ccfa5a3eb2157d3baca02c0e521",
    "timeStamp": "2022-11-30T10:23:38.000Z",
    "value": {
      "assetType": "oconversionRate",
      "conversion_rate_id": "oconversionRate~91c7eeb0614e7a50b1d5ecad559fcbc80b94034648bf405c9491dacf8d57873b",
      "from_token_id": "USD",
      "to_token_id": "INR",
      "conversion_rate": 20
    }
  },
  {
    "trxId": "36fc40ddb3d8308ee7e156af700da131d78d941fe390fc57985b7589e7035d5c",
    "timeStamp": "2022-11-30T10:13:18.000Z",
    "value": {
      "assetType": "oconversionRate",
      "conversion_rate_id": "oconversionRate~91c7eeb0614e7a50b1d5ecad559fcbc80b94034648bf405c9491dacf8d57873b",
      "from_token_id": "USD",
      "to_token_id": "INR",
      "conversion_rate": 10
    }
  }
]
getExchangePoolUser
Cette méthode retourne les valeurs OrgId et UserId pour l'utilisateur du groupe d'échange. Cette méthode ne peut être appelée que par un 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",
   "convertor_id": "bcb1f3b1442c625d3ce205660c5e717c5858a1fe1e12c325df799a851ceaa09b",
   "org_id": "Org1MSP",
   "user_id": "exchangepooluser"
}