TypeScript Methoden für die Tokenkonvertierung

Blockchain App Builder generiert automatisch Methoden, mit denen Sie fungible Token konvertieren können, die den Token Taxonomy Framework-Standard verwenden.

Die Token-Konvertierungsmethoden umfassen das Konzept des exchange pool. Das Exchange Pool-Konto wird durch andere Token-Konten finanziert. Wenn Sie Token mint, können Sie angeben, dass ein Prozentsatz der geminteten Token auf das Exchange-Pool-Konto übertragen wird.

Token-Konvertierungsprozess

Ein typischer Ablauf zum Konvertieren von Token führt folgende Schritte aus:
  1. Rufen Sie die Methode initializeExchangePoolUser auf, um den Austauschpoolbenutzer zu initialisieren.
  2. Rufen Sie die Methode createExchangePoolAccounts auf, um Exchange-Poolaccounts zu erstellen. Erstellen Sie ein Exchange-Pool-Konto für jede Art von fungiblem Token, aus dem Sie konvertieren oder in das Sie konvertieren möchten.
  3. Rufen Sie die Methode addConversionRate auf, um die Konvertierungsrate für jedes Tokenpaar festzulegen, zwischen dem Sie konvertieren möchten.
  4. Finanzieren Sie die Token-Konten für den Austauschpool auf eine der folgenden Arten:
    • Übertragen Sie Token mit den Standardtransfermethoden in die Tokenkonten des Exchange-Pools.
    • Rufen Sie beim Minting von Token die Methode mintWithFundingExchangePoolToken auf, mit der ein Prozentsatz der geminteten Token auf ein Exchange-Poolkonto übertragen werden kann.
  5. Rufen Sie die Methode tokenConversion auf, um zwischen zwei fungiblen Token zu konvertieren. Ein einzelner Benutzer kann Token zwischen zwei seiner Token-Konten konvertieren, oder ein Benutzerpaar kann Token direkt von einem Konto in ein anderes konvertieren.
  6. Der Exchange-Poolbenutzer kann die Kontostände und Kontotransaktionen des Exchange-Pools anzeigen.
    • Rufen Sie die Methode getAccount auf, um die Salden jedes Tokenaccounts für den Austauschpool anzuzeigen.
    • Rufen Sie die Methoden getAccountTransactionHistory und getAccountTransactionHistoryWithFilters auf, um Kontotransaktionen für jedes Austauschpooltokenkonto anzuzeigen.

Automatisch generierte Token-Konvertierungsmethoden

Blockchain App Builder generiert automatisch Methoden zur Konvertierung zwischen verschiedenen Arten von fungiblen Token. Controller-Methoden müssen über einen @Validator(...params)-Dekorator verfügen, damit sie aufgerufen werden können.

initializeExchangePoolUser
Diese Methode initialisiert den Austauschpoolbenutzer, bei dem es sich um eine einmalige Aktivität handelt. Diese Methode kann nur von einem Token Admin des Chaincodes aufgerufen werden.
@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);
}
Parameter:
  • org_id: string - Die Mitgliedschaftsserviceanbieter-ID (MSP) des Benutzers in der aktuellen Organisation.
  • user_id: string: Der Benutzername oder die E-Mail-ID des Benutzers.
Rückgabewert:
  • Bei erfolgreicher Ausführung eine Meldung mit Details zum Exchange-Poolbenutzer.
Beispiel für einen Rückgabewert:
{
    "assetType": "oconversion",
    "convertor_id": "bcb1f3b1442c625d3ce205660c5e717c5858a1fe1e12c325df799a851ceaa09b",
    "org_id": "Org1MSP",
    "user_id": "exchangepooluser"
}
createExchangePoolAccounts
Diese Methode erstellt Exchange Pool-Tokenkonten für ein bestimmtes Array von Token-IDs. Diese Methode kann nur von einem Token Admin des Chaincodes aufgerufen werden.
@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);
}
Parameter:
  • token_ids: string []: Ein Array von Token-IDs.
Rückgabewert:
  • Bei Erfolg eine Liste der Objekte, die Details der erstellten Exchange-Poolkonten enthält.
Beispiel für einen Rückgabewert:
[
  {
    "account_id": "oaccount~cc9d84f6d4a5976532493ef5200c9603e138adc35166ffd5fd1aad9c1647f034",
    "token_id": "USD",
    "status": "created"
  },
  {
    "account_id": "oaccount~3d4933111ec8bd6cc1ebb43f2b2c390deb929cfa534f9c6ada8e63bac04a13c0",
    "token_id": "INR",
    "status": "created"
  }
]
addConversionRate
Diese Methode fügt einen Umrechnungskurs für ein Tokenpaar hinzu. Die Token-Konvertierungsrate kann bis zu acht Dezimalstellen angegeben werden. Diese Methode kann nur von einem Token Admin des Chaincodes aufgerufen werden.
@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);
}
Parameter:
  • from_token_id: string: Die ID des Tokens, aus dem konvertiert werden soll.
  • to_token_id: string: Die ID des Tokens, in das konvertiert werden soll.
  • token_conversion_rate: number: Die Rate, mit der das Token from_token_id in das Token to_token_id konvertiert wird.
Rückgabewert:
  • Bei Erfolg eine JSON-Darstellung des Konvertierungsratenobjekts.
Beispiel für einen Rückgabewert:
{
  "assetType": "oconversionRate",
  "conversion_rate_id": "oconversionRate~91c7eeb0614e7a50b1d5ecad559fcbc80b94034648bf405c9491dacf8d57873b",
  "from_token_id": "USD",
  "to_token_id": "INR",
  "conversion_rate": 10
}
getConversionRate
Diese Methode ruft den aktuellen Umrechnungskurs für ein Tokenpaar ab. Diese Methode kann von der Token Admin des Chaincodes, von jedem Org Admin und von jedem Tokenkontoinhaber aufgerufen werden.
@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);
}
Parameter:
  • from_token_id: string: Die ID des Tokens, aus dem konvertiert werden soll.
  • to_token_id: string: Die ID des Tokens, in das konvertiert werden soll.
Rückgabewert:
  • Bei Erfolg eine JSON-Darstellung des Konvertierungsratenobjekts.
Beispiel für einen Rückgabewert:
{
  "assetType": "oconversionRate",
  "conversion_rate_id": "oconversionRate~91c7eeb0614e7a50b1d5ecad559fcbc80b94034648bf405c9491dacf8d57873b",
  "from_token_id": "USD",
  "to_token_id": "INR",
  "conversion_rate": 10
}
updateConversionRate
Diese Methode aktualisiert den aktuellen Umrechnungskurs für ein Tokenpaar. Die Token-Konvertierungsrate kann bis zu acht Dezimalstellen angegeben werden. Diese Methode kann nur von einem Token Admin des Chaincodes aufgerufen werden.
@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);
}
Parameter:
  • from_token_id: string: Die ID des Tokens, aus dem konvertiert werden soll.
  • to_token_id: string: Die ID des Tokens, in das konvertiert werden soll.
  • token_conversion_rate: number: Die Rate, mit der das Token from_token_id in das Token to_token_id konvertiert wird.
Rückgabewert:
  • Bei Erfolg eine JSON-Darstellung des aktualisierten Konvertierungsratenobjekts.
Beispiel für einen Rückgabewert:
{
  "assetType": "oconversionRate",
  "conversion_rate_id": "oconversionRate~91c7eeb0614e7a50b1d5ecad559fcbc80b94034648bf405c9491dacf8d57873b",
  "from_token_id": "USD",
  "to_token_id": "INR",
  "conversion_rate": 20
}
mintWithFundingExchangePool
Mit dieser Methode werden Token im Konto des Aufrufers basierend auf der angegebenen Token-ID und der angegebenen Menge abgebildet. Ein Prozentsatz der Token aus der geprägten Menge wird dann auf das Token-Konto des Austauschpools übertragen.
@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);
}
Parameter:
  • token_id: string: Die ID des zu prägenden Tokens.
  • token_quantity: number: Die Gesamtanzahl der Token für die Minze.
  • percentage_token_to_exchange_pool: number: Der Prozentsatz der Münztoken, die auf das Austauschpooltokenkonto übertragen werden sollen.
Rückgabewert:
  • Bei Erfolg eine Meldung, die darauf hinweist, dass das Prägen und die Finanzierung des Austauschpools erfolgreich waren.
Beispiel für einen Rückgabewert:
{
    "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
Diese Methode konvertiert Token aus dem Account des Aufrufers in den Account, der durch die Werte to_token_id, to_org_id und to_user_id angegeben wird. Diese Methode kann von der Token Admin des Chaincodes und von jedem Tokenkontoinhaber aufgerufen werden. Ein Exchange-Poolbenutzer kann diese Methode nicht aufrufen.
@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);
}
Parameter:
  • from_token_id: string: Die ID des Tokens, aus dem konvertiert werden soll.
  • to_token_id: string: Die ID des Tokens, in das konvertiert werden soll.
  • to_org_id: string – Die Mitgliedschaftsdienstleister-ID (MSP) des Benutzers in der aktuellen Organisation, der die Token erhält.
  • to_user_id: string: Der Benutzername oder die E-Mail-ID des Benutzers, der die Token empfangen soll.
  • token_quantity: number: Die Gesamtanzahl der zu übertragenden Token.
Rückgabewert:
  • Bei erfolgreicher Ausführung eine Meldung, die angibt, dass die Tokenkonvertierung erfolgreich war.
Beispiel für einen Rückgabewert:
{
    "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
Diese Methode gibt die Token-Konvertierungshistorie für ein angegebenes Token-Konto zurück. Diese Methode kann von der Token Admin des Chaincodes, einer Org Admin der angegebenen Organisation oder vom Eigentümer des Tokenaccounts aufgerufen werden.
@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);
  }
Parameter:
  • token_id: string: Die ID des Tokens.
  • org_id: string - Die Mitgliedschaftsserviceanbieter-ID (MSP) des Benutzers in der aktuellen Organisation.
  • user_id: string: Der Benutzername oder die E-Mail-ID des Benutzers.
Rückgabewert:
  • Bei Erfolg ein JSON-Objekt mit Details zur Konvertierungshistorie.
Beispiel für einen Rückgabewert:
[
  {
    "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
Diese Methode gibt die Historie der Token-Konvertierungsrate für ein Tokenpaar zurück. Diese Methode kann von der Token Admin des Chaincodes, von jedem Org Admin und von jedem Tokenkontoinhaber aufgerufen werden.
@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);
}
Parameter:
  • from_token_id: string: Die ID des Tokens, aus dem konvertiert werden soll, um den Umrechnungskurs zu berechnen.
  • to_token_id: string: Die ID des Tokens, in das konvertiert werden soll, um den Umrechnungskurs zu berechnen.
Rückgabewert:
  • Bei Erfolg ein JSON-Objekt mit Details zur Konvertierungsratenhistorie.
Beispiel für einen Rückgabewert:
 [
  {
    "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
Diese Methode gibt die Werte org_id und user_id für den Austauschpoolbenutzer zurück. Diese Methode kann nur von einem Token Admin des Chaincodes aufgerufen werden.
@Validator()
public async getExchangePoolUser() {
    await this.Ctx.Auth.checkAuthorization('TOKEN_CONVERSION.getExchangePoolUser', 'TOKEN');
    return await this.Ctx.TokenConvertor.getExchangePoolUser();
}
Parameter:
  • Kein
Rückgabewert:
  • Bei erfolgreicher Ausführung eine Meldung mit Informationen zum Austauschpoolbenutzer.
Beispiel für einen Rückgabewert:
{
   "assetType": "oconversion",
   "convertor_id": "bcb1f3b1442c625d3ce205660c5e717c5858a1fe1e12c325df799a851ceaa09b",
   "org_id": "Org1MSP",
   "user_id": "exchangepooluser"
}

SDK-Methoden für Tokenkonvertierung

initializeExchangePoolUser
Diese Methode initialisiert den Austauschpoolbenutzer, bei dem es sich um eine einmalige Aktivität handelt. Diese Methode kann nur von einem Token Admin des Chaincodes aufgerufen werden.
Ctx.TokenConvertor.initializeExchangePoolUser(orgId: string, userId: string)
Parameter:
  • orgId: string - Die Mitgliedschaftsserviceanbieter-ID (MSP) des Benutzers in der aktuellen Organisation.
  • userId: string: Der Benutzername oder die E-Mail-ID des Benutzers.
Rückgabewert:
  • Bei erfolgreicher Ausführung eine Meldung mit Details zum Exchange-Poolbenutzer.
Beispiel für einen Rückgabewert:
{
    "assetType": "oconversion",
    "convertor_id": "bcb1f3b1442c625d3ce205660c5e717c5858a1fe1e12c325df799a851ceaa09b",
    "org_id": "Org1MSP",
    "user_id": "exchangepooluser"
}
createExchangePoolAccounts
Diese Methode erstellt Exchange Pool-Tokenkonten für ein bestimmtes Array von Token-IDs. Diese Methode kann nur von einem Token Admin des Chaincodes aufgerufen werden.
Ctx.TokenConvertor.createExchangePoolAccounts(token_ids: string[])
Parameter:
  • token_ids: string []: Ein Array von Token-IDs.
Rückgabewert:
  • Bei Erfolg eine Liste der Objekte, die Details der erstellten Exchange-Poolkonten enthält.
Beispiel für einen Rückgabewert:
[
  {
    "account_id": "oaccount~cc9d84f6d4a5976532493ef5200c9603e138adc35166ffd5fd1aad9c1647f034",
    "token_id": "USD",
    "status": "created"
  },
  {
    "account_id": "oaccount~3d4933111ec8bd6cc1ebb43f2b2c390deb929cfa534f9c6ada8e63bac04a13c0",
    "token_id": "INR",
    "status": "created"
  }
]
addConversionToken
Diese Methode fügt Token mit einem neuen Umrechnungskurs für ein angegebenes Token hinzu. Die Token-Konvertierungsrate kann bis zu acht Dezimalstellen angegeben werden. Diese Methode kann nur von einem Token Admin des Chaincodes aufgerufen werden.
Ctx.TokenConvertor.addConversionToken(fromTokenId: string, toTokenId: string, tokenConversionRate: number)
Parameter:
  • fromTokenId: string: Die ID des Tokens, aus dem konvertiert werden soll.
  • toTokenId: string: Die ID des Tokens, in das konvertiert werden soll.
  • tokenConversionRate: number: Die Rate, mit der das Token from_token_id in das Token to_token_id konvertiert wird.
Rückgabewert:
  • Bei Erfolg eine JSON-Darstellung des Konvertierungsratenobjekts.
Beispiel für einen Rückgabewert:
{
  "assetType": "oconversionRate",
  "conversion_rate_id": "oconversionRate~91c7eeb0614e7a50b1d5ecad559fcbc80b94034648bf405c9491dacf8d57873b",
  "from_token_id": "USD",
  "to_token_id": "INR",
  "conversion_rate": 10
}
get
Diese Methode ruft den aktuellen Umrechnungskurs für ein Tokenpaar ab. Diese Methode kann von der Token Admin des Chaincodes und von jedem Tokenkontoinhaber aufgerufen werden.
Ctx.TokenConversionRate.get(id: string)
Parameter:
  • id: string: Die ID des Tokenkonvertierungsratenobjekts.
Rückgabewert:
  • Bei Erfolg eine JSON-Darstellung des Konvertierungsratenobjekts.
Beispiel für einen Rückgabewert:
{
  "assetType": "oconversionRate",
  "conversion_rate_id": "oconversionRate~91c7eeb0614e7a50b1d5ecad559fcbc80b94034648bf405c9491dacf8d57873b",
  "from_token_id": "USD",
  "to_token_id": "INR",
  "conversion_rate": 10
}
updateTokenConversionRate
Diese Methode aktualisiert den aktuellen Umrechnungskurs für ein Tokenpaar. Die Token-Konvertierungsrate kann bis zu acht Dezimalstellen angegeben werden. Diese Methode kann nur von einem Token Admin des Chaincodes aufgerufen werden.
Ctx.TokenConvertor.updateTokenConversionRate(fromTokenId: string, toTokenId: string, tokenConversionRate: number)
Parameter:
  • from_token_id: string: Die ID des Tokens, aus dem konvertiert werden soll.
  • to_token_id: string: Die ID des Tokens, in das konvertiert werden soll.
  • token_conversion_rate: number: Die Rate, mit der das Token from_token_id in das Token to_token_id konvertiert wird.
Rückgabewert:
  • Bei Erfolg eine JSON-Darstellung des aktualisierten Konvertierungsratenobjekts.
Beispiel für einen Rückgabewert:
{
  "assetType": "oconversionRate",
  "conversion_rate_id": "oconversionRate~91c7eeb0614e7a50b1d5ecad559fcbc80b94034648bf405c9491dacf8d57873b",
  "from_token_id": "USD",
  "to_token_id": "INR",
  "conversion_rate": 20
}
mintWithFundingExchangePool
Mit dieser Methode werden Token im Konto des Aufrufers basierend auf der angegebenen Token-ID und der angegebenen Menge abgebildet. Ein Prozentsatz der Token aus der geprägten Menge wird dann auf das Token-Konto des Austauschpools übertragen.
Ctx.TokenConvertor.mintWithFundingExchangePool(tokenId: string, tokenQuantity: number, percentageTokenToExchangePool: number)
Parameter:
  • token_id: string: Die ID des zu prägenden Tokens.
  • token_quantity: number: Die Gesamtanzahl der Token für die Minze.
  • percentage_token_to_exchange_pool: number: Der Prozentsatz der Münztoken, die auf das Austauschpooltokenkonto übertragen werden sollen.
Rückgabewert:
  • Bei Erfolg eine Meldung, die darauf hinweist, dass das Prägen und die Finanzierung des Austauschpools erfolgreich waren.
Beispiel für einen Rückgabewert:
{
    "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
Diese Methode konvertiert Token aus dem Account des Aufrufers in den Account, der durch die Werte to_token_id, to_org_id und to_user_id angegeben wird. Diese Methode kann von der Token Admin des Chaincodes und von jedem Tokenkontoinhaber aufgerufen werden. Ein Exchange-Poolbenutzer kann diese Methode nicht aufrufen.
Ctx.TokenConvertor.tokenConversion(fromTokenId: string, toTokenId: string, toOrgId: string, toUserId: string, tokenQuantity: number)
Parameter:
  • from_token_id: string: Die ID des Tokens, aus dem konvertiert werden soll.
  • to_token_id: string: Die ID des Tokens, in das konvertiert werden soll.
  • to_org_id: string – Die Mitgliedschaftsdienstleister-ID (MSP) des Benutzers in der aktuellen Organisation, der die Token erhält.
  • to_user_id: string: Der Benutzername oder die E-Mail-ID des Benutzers, der die Token empfangen soll.
Rückgabewert:
  • Bei erfolgreicher Ausführung eine Meldung, die angibt, dass die Tokenkonvertierung erfolgreich war.
Beispiel für einen Rückgabewert:
{
    "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
Diese Methode gibt die Token-Konvertierungshistorie für ein angegebenes Token-Konto zurück. Diese Methode kann von der Token Admin des Chaincodes, einer Org Admin der angegebenen Organisation und vom Eigentümer des Tokenaccounts aufgerufen werden.
Ctx.Account.getTokenConversionHistory(account_id: string, org_id: string, user_id: string)
Parameter:
  • account_id: string: Die ID des fungiblen Tokenaccounts.
  • org_id: string - Die Mitgliedschaftsserviceanbieter-ID (MSP) des Benutzers in der aktuellen Organisation.
  • user_id: string: Der Benutzername oder die E-Mail-ID des Benutzers.
Rückgabewert:
  • Bei Erfolg ein JSON-Objekt mit Details zur Konvertierungshistorie.
Beispiel für einen Rückgabewert:
[
  {
    "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
Diese Methode gibt die Historie der Token-Konvertierungsrate für ein Tokenpaar zurück. Diese Methode kann von der Token Admin des Chaincodes, von jedem Org Admin und von jedem Tokenkontoinhaber aufgerufen werden.
Ctx.TokenConversionRate.history(conversion_rate_id: string)
Parameter:
  • conversion_rate_id: string: Die ID des Umrechnungskursobjekts.
Rückgabewert:
  • Bei Erfolg ein JSON-Objekt mit Details zur Konvertierungsratenhistorie.
Beispiel für einen Rückgabewert:
 [
  {
    "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
Diese Methode gibt die Werte OrgId und UserId für den Austauschpoolbenutzer zurück. Diese Methode kann nur von einem Token Admin des Chaincodes aufgerufen werden.
Ctx.TokenConvertor.getExchangePoolUser()
Parameter:
  • Kein
Rückgabewert:
  • Bei erfolgreicher Ausführung eine Meldung mit Informationen zum Austauschpoolbenutzer.
Beispiel für einen Rückgabewert:
{
   "assetType": "oconversion",
   "convertor_id": "bcb1f3b1442c625d3ce205660c5e717c5858a1fe1e12c325df799a851ceaa09b",
   "org_id": "Org1MSP",
   "user_id": "exchangepooluser"
}