TypeScript 토큰 변환 방법

Blockchain App Builder는 토큰 분류법 프레임워크 표준을 사용하는 대체 가능한 토큰을 변환하는 데 사용할 수 있는 방법을 자동으로 생성합니다.

토큰 변환 방법에는 exchange pool 개념이 포함됩니다. 교환 풀 계정은 다른 토큰 계정에서 자금을 조달합니다. 토큰을 민트할 때 조폐된 토큰의 백분율이 Exchange Pool 계정으로 전송되도록 지정할 수 있습니다.

토큰 변환 프로세스

토큰 변환의 일반적인 흐름은 다음 단계를 따릅니다.
  1. initializeExchangePoolUser 메소드를 호출하여 Exchange Pool 유저를 초기화합니다.
  2. createExchangePoolAccounts 메소드를 호출하여 Exchange Pool 계정을 생성합니다. 변환하거나 변환할 대체 가능한 토큰의 모든 유형에 대해 교환 풀 계정을 만듭니다.
  3. addConversionRate 메소드를 호출하여 변환할 각 토큰 쌍에 대한 변환율을 설정합니다.
  4. 다음 방법 중 하나로 교환 풀 토큰 계정에 자금을 조달합니다.
    • 표준 전송 방법을 사용하여 토큰을 교환 풀 토큰 계정으로 이전합니다.
    • 조인트된 토큰의 백분율을 Exchange Pool 계정으로 전송할 수 있는 토큰을 조인트할 때 mintWithFundingExchangePoolToken 메소드를 호출합니다.
  5. tokenConversion 메소드를 호출하여 두 개의 fungible 토큰 간에 변환합니다. 한 사용자가 토큰 계정 중 두 계정 간에 토큰을 변환하거나 한 쌍의 사용자가 한 계정에서 다른 계정으로 토큰을 직접 변환할 수 있습니다.
  6. Exchange Pool 사용자는 Exchange Pool 계정 잔액 및 계정 트랜잭션을 볼 수 있습니다.
    • 각 Exchange Pool 토큰 계정의 잔액을 보려면 getAccount 메소드를 호출합니다.
    • 각 Exchange Pool 토큰 계정에 대한 계정 트랜잭션을 보려면 getAccountTransactionHistorygetAccountTransactionHistoryWithFilters 메소드를 호출합니다.

자동으로 생성된 토큰 변환 방법

Blockchain App Builder는 다양한 유형의 대체 가능한 토큰 간에 변환하는 방법을 자동으로 생성합니다. 컨트롤러 메소드에는 호출할 수 있는 @Validator(...params) 데코레이터가 있어야 합니다.

initializeExchangePoolUser
이 방법은 일회성 작업인 교환 풀 사용자를 초기화합니다. 이 메소드는 체인 코드의 Token Admin만 호출할 수 있습니다.
@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);
}
매개변수:
  • org_id: string – 현재 조직에 있는 사용자의 멤버쉽 서비스 공급자(MSP) ID입니다.
  • user_id: string – 사용자의 사용자 이름 또는 전자 메일 ID입니다.
반환값:
  • 성공 시 교환 풀 사용자의 세부정보를 포함하는 메시지입니다.
반환 값 예제:
{
    "assetType": "oconversion",
    "convertor_id": "bcb1f3b1442c625d3ce205660c5e717c5858a1fe1e12c325df799a851ceaa09b",
    "org_id": "Org1MSP",
    "user_id": "exchangepooluser"
}
createExchangePoolAccounts
이 메소드는 제공된 토큰 ID 배열에 대한 교환 풀 토큰 계정을 생성합니다. 이 메소드는 체인 코드의 Token Admin만 호출할 수 있습니다.
@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);
}
매개변수:
  • token_ids: string [] – 토큰 ID의 배열입니다.
반환값:
  • 성공 시 생성된 Exchange Pool 계정의 세부정보를 포함하는 객체 목록입니다.
반환 값 예:
[
  {
    "account_id": "oaccount~cc9d84f6d4a5976532493ef5200c9603e138adc35166ffd5fd1aad9c1647f034",
    "token_id": "USD",
    "status": "created"
  },
  {
    "account_id": "oaccount~3d4933111ec8bd6cc1ebb43f2b2c390deb929cfa534f9c6ada8e63bac04a13c0",
    "token_id": "INR",
    "status": "created"
  }
]
addConversionRate
이 메소드는 토큰 쌍에 대한 변환율을 추가합니다. 토큰 변환율은 소수점 최대 8자리까지 지정할 수 있습니다. 이 메소드는 체인 코드의 Token Admin만 호출할 수 있습니다.
@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);
}
매개변수:
  • from_token_id: string – 변환할 토큰의 ID입니다.
  • to_token_id: string – 변환할 토큰의 ID입니다.
  • token_conversion_rate: numberfrom_token_id 토큰을 to_token_id 토큰으로 변환하는 비율입니다.
반환값:
  • 성공 시 환율 객체의 JSON 표현입니다.
반환 값 예:
{
  "assetType": "oconversionRate",
  "conversion_rate_id": "oconversionRate~91c7eeb0614e7a50b1d5ecad559fcbc80b94034648bf405c9491dacf8d57873b",
  "from_token_id": "USD",
  "to_token_id": "INR",
  "conversion_rate": 10
}
getConversionRate
이 방법은 한 쌍의 토큰에 대한 현재 변환율을 가져옵니다. 이 메소드는 체인 코드의 Token Admin, 임의의 Org Admin 및 토큰 계정 소유자가 호출할 수 있습니다.
@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);
}
매개변수:
  • from_token_id: string – 변환할 토큰의 ID입니다.
  • to_token_id: string – 변환할 토큰의 ID입니다.
반환값:
  • 성공 시 환율 객체의 JSON 표현입니다.
반환 값 예:
{
  "assetType": "oconversionRate",
  "conversion_rate_id": "oconversionRate~91c7eeb0614e7a50b1d5ecad559fcbc80b94034648bf405c9491dacf8d57873b",
  "from_token_id": "USD",
  "to_token_id": "INR",
  "conversion_rate": 10
}
updateConversionRate
이 방법은 한 쌍의 토큰에 대한 현재 환율을 업데이트합니다. 토큰 변환율은 소수점 최대 8자리까지 지정할 수 있습니다. 이 메소드는 체인 코드의 Token Admin만 호출할 수 있습니다.
@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);
}
매개변수:
  • from_token_id: string – 변환할 토큰의 ID입니다.
  • to_token_id: string – 변환할 토큰의 ID입니다.
  • token_conversion_rate: numberfrom_token_id 토큰을 to_token_id 토큰으로 변환하는 비율입니다.
반환값:
  • 성공 시 업데이트된 환율 객체의 JSON 표현입니다.
반환 값 예:
{
  "assetType": "oconversionRate",
  "conversion_rate_id": "oconversionRate~91c7eeb0614e7a50b1d5ecad559fcbc80b94034648bf405c9491dacf8d57873b",
  "from_token_id": "USD",
  "to_token_id": "INR",
  "conversion_rate": 20
}
mintWithFundingExchangePool
이 메소드는 지정된 토큰 ID 및 수량을 기준으로 호출자 계정의 토큰을 축소합니다. 그런 다음 조폐된 수량의 토큰 백분율이 교환 풀 토큰 계정으로 전송됩니다.
@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);
}
매개변수:
  • token_id: string – 민트할 토큰의 ID입니다.
  • token_quantity: number – 민트할 총 토큰 수입니다.
  • percentage_token_to_exchange_pool: number – 교환 풀 토큰 계정으로 전송할 조율된 토큰의 백분율입니다.
반환값:
  • 성공 시 교환 풀의 조폐 및 자금 조달이 성공했음을 나타내는 메시지입니다.
반환 값 예:
{
    "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
이 메소드는 호출자 계정의 토큰을 to_token_id, to_org_idto_user_id 값으로 지정된 계정으로 변환합니다. 이 메소드는 체인 코드의 Token Admin 및 토큰 계정 소유자가 호출할 수 있습니다. Exchange Pool 사용자는 이 메서드를 호출할 수 없습니다.
@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);
}
매개변수:
  • from_token_id: string – 변환할 토큰의 ID입니다.
  • to_token_id: string – 변환할 토큰의 ID입니다.
  • to_org_id: string – 토큰을 수신할 현재 조직에 있는 사용자의 멤버쉽 서비스 제공자(MSP) ID입니다.
  • to_user_id: string – 토큰을 수신할 사용자의 사용자 이름 또는 전자 메일 ID입니다.
  • token_quantity: number – 전송할 총 토큰 수입니다.
반환값:
  • 성공 시 토큰 변환이 성공했음을 나타내는 메시지입니다.
반환 값 예:
{
    "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
이 메소드는 지정된 토큰 계정에 대한 토큰 변환 내역을 반환합니다. 이 메소드는 체인 코드의 Token Admin, 지정된 조직의 Org Admin 또는 토큰 계정 소유자가 호출할 수 있습니다.
@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);
  }
매개변수:
  • token_id: string – 토큰의 ID입니다.
  • org_id: string – 현재 조직에 있는 사용자의 멤버쉽 서비스 공급자(MSP) ID입니다.
  • user_id: string – 사용자의 사용자 이름 또는 전자 메일 ID입니다.
반환값:
  • 성공 시 변환 내역 세부정보가 포함된 JSON 객체입니다.
반환 값 예:
[
  {
    "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
이 메소드는 토큰 쌍에 대한 토큰 변환율 내역을 반환합니다. 이 메소드는 체인 코드의 Token Admin, 임의의 Org Admin 및 토큰 계정 소유자가 호출할 수 있습니다.
@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);
}
매개변수:
  • from_token_id: string – 변환율을 계산하기 위해 변환할 토큰의 ID입니다.
  • to_token_id: string – 변환율을 계산하기 위해 변환할 토큰의 ID입니다.
반환값:
  • 성공 시 환율 기록 세부정보가 있는 JSON 객체입니다.
반환 값 예제:
 [
  {
    "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
이 메소드는 교환 풀 사용자에 대한 org_iduser_id 값을 반환합니다. 이 메소드는 체인 코드의 Token Admin만 호출할 수 있습니다.
@Validator()
public async getExchangePoolUser() {
    await this.Ctx.Auth.checkAuthorization('TOKEN_CONVERSION.getExchangePoolUser', 'TOKEN');
    return await this.Ctx.TokenConvertor.getExchangePoolUser();
}
매개변수:
  • 없음
반환값:
  • 성공 시 교환 풀 사용자에 대한 정보가 포함된 메시지입니다.
반환 값 예제:
{
   "assetType": "oconversion",
   "convertor_id": "bcb1f3b1442c625d3ce205660c5e717c5858a1fe1e12c325df799a851ceaa09b",
   "org_id": "Org1MSP",
   "user_id": "exchangepooluser"
}

토큰 변환 SDK 메소드

initializeExchangePoolUser
이 방법은 일회성 작업인 교환 풀 사용자를 초기화합니다. 이 메소드는 체인 코드의 Token Admin만 호출할 수 있습니다.
Ctx.TokenConvertor.initializeExchangePoolUser(orgId: string, userId: string)
매개변수:
  • orgId: string – 현재 조직에 있는 사용자의 멤버쉽 서비스 공급자(MSP) ID입니다.
  • userId: string – 사용자의 사용자 이름 또는 전자 메일 ID입니다.
반환값:
  • 성공 시 교환 풀 사용자의 세부정보를 포함하는 메시지입니다.
반환 값 예제:
{
    "assetType": "oconversion",
    "convertor_id": "bcb1f3b1442c625d3ce205660c5e717c5858a1fe1e12c325df799a851ceaa09b",
    "org_id": "Org1MSP",
    "user_id": "exchangepooluser"
}
createExchangePoolAccounts
이 메소드는 제공된 토큰 ID 배열에 대한 교환 풀 토큰 계정을 생성합니다. 이 메소드는 체인 코드의 Token Admin만 호출할 수 있습니다.
Ctx.TokenConvertor.createExchangePoolAccounts(token_ids: string[])
매개변수:
  • token_ids: string [] – 토큰 ID의 배열입니다.
반환값:
  • 성공 시 생성된 Exchange Pool 계정의 세부정보를 포함하는 객체 목록입니다.
반환 값 예제:
[
  {
    "account_id": "oaccount~cc9d84f6d4a5976532493ef5200c9603e138adc35166ffd5fd1aad9c1647f034",
    "token_id": "USD",
    "status": "created"
  },
  {
    "account_id": "oaccount~3d4933111ec8bd6cc1ebb43f2b2c390deb929cfa534f9c6ada8e63bac04a13c0",
    "token_id": "INR",
    "status": "created"
  }
]
addConversionToken
이 메소드는 지정된 토큰에 대한 새 변환율을 가진 토큰을 추가합니다. 토큰 변환율은 소수점 최대 8자리까지 지정할 수 있습니다. 이 메소드는 체인 코드의 Token Admin만 호출할 수 있습니다.
Ctx.TokenConvertor.addConversionToken(fromTokenId: string, toTokenId: string, tokenConversionRate: number)
매개변수:
  • fromTokenId: string – 변환할 토큰의 ID입니다.
  • toTokenId: string – 변환할 토큰의 ID입니다.
  • tokenConversionRate: numberfrom_token_id 토큰을 to_token_id 토큰으로 변환하는 비율입니다.
반환값:
  • 성공 시 환율 객체의 JSON 표현입니다.
반환 값 예제:
{
  "assetType": "oconversionRate",
  "conversion_rate_id": "oconversionRate~91c7eeb0614e7a50b1d5ecad559fcbc80b94034648bf405c9491dacf8d57873b",
  "from_token_id": "USD",
  "to_token_id": "INR",
  "conversion_rate": 10
}
get
이 방법은 한 쌍의 토큰에 대한 현재 변환율을 가져옵니다. 이 메소드는 체인 코드의 Token Admin 및 토큰 계정 소유자가 호출할 수 있습니다.
Ctx.TokenConversionRate.get(id: string)
매개변수:
  • id: string – 토큰 변환율 객체의 ID입니다.
반환값:
  • 성공 시 환율 객체의 JSON 표현입니다.
반환 값 예제:
{
  "assetType": "oconversionRate",
  "conversion_rate_id": "oconversionRate~91c7eeb0614e7a50b1d5ecad559fcbc80b94034648bf405c9491dacf8d57873b",
  "from_token_id": "USD",
  "to_token_id": "INR",
  "conversion_rate": 10
}
updateTokenConversionRate
이 방법은 한 쌍의 토큰에 대한 현재 환율을 업데이트합니다. 토큰 변환율은 소수점 최대 8자리까지 지정할 수 있습니다. 이 메소드는 체인 코드의 Token Admin만 호출할 수 있습니다.
Ctx.TokenConvertor.updateTokenConversionRate(fromTokenId: string, toTokenId: string, tokenConversionRate: number)
매개변수:
  • from_token_id: string – 변환할 토큰의 ID입니다.
  • to_token_id: string – 변환할 토큰의 ID입니다.
  • token_conversion_rate: numberfrom_token_id 토큰을 to_token_id 토큰으로 변환하는 비율입니다.
반환값:
  • 성공 시 업데이트된 환율 객체의 JSON 표현입니다.
반환 값 예제:
{
  "assetType": "oconversionRate",
  "conversion_rate_id": "oconversionRate~91c7eeb0614e7a50b1d5ecad559fcbc80b94034648bf405c9491dacf8d57873b",
  "from_token_id": "USD",
  "to_token_id": "INR",
  "conversion_rate": 20
}
mintWithFundingExchangePool
이 메소드는 지정된 토큰 ID 및 수량을 기준으로 호출자 계정의 토큰을 축소합니다. 그런 다음 조폐된 수량의 토큰 백분율이 교환 풀 토큰 계정으로 전송됩니다.
Ctx.TokenConvertor.mintWithFundingExchangePool(tokenId: string, tokenQuantity: number, percentageTokenToExchangePool: number)
매개변수:
  • token_id: string – 민트할 토큰의 ID입니다.
  • token_quantity: number – 민트할 총 토큰 수입니다.
  • percentage_token_to_exchange_pool: number – 교환 풀 토큰 계정으로 전송할 조율된 토큰의 백분율입니다.
반환값:
  • 성공 시 교환 풀의 조폐 및 자금 조달이 성공했음을 나타내는 메시지입니다.
반환 값 예제:
{
    "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
이 메소드는 호출자 계정의 토큰을 to_token_id, to_org_idto_user_id 값으로 지정된 계정으로 변환합니다. 이 메소드는 체인 코드의 Token Admin 및 토큰 계정 소유자가 호출할 수 있습니다. Exchange Pool 사용자는 이 메서드를 호출할 수 없습니다.
Ctx.TokenConvertor.tokenConversion(fromTokenId: string, toTokenId: string, toOrgId: string, toUserId: string, tokenQuantity: number)
매개변수:
  • from_token_id: string – 변환할 토큰의 ID입니다.
  • to_token_id: string – 변환할 토큰의 ID입니다.
  • to_org_id: string – 토큰을 수신할 현재 조직에 있는 사용자의 멤버쉽 서비스 제공자(MSP) ID입니다.
  • to_user_id: string – 토큰을 수신할 사용자의 사용자 이름 또는 전자 메일 ID입니다.
반환값:
  • 성공 시 토큰 변환이 성공했음을 나타내는 메시지입니다.
반환 값 예:
{
    "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
이 메소드는 지정된 토큰 계정에 대한 토큰 변환 내역을 반환합니다. 이 메소드는 체인 코드의 Token Admin, 지정된 조직의 Org Admin 및 토큰 계정 소유자가 호출할 수 있습니다.
Ctx.Account.getTokenConversionHistory(account_id: string, org_id: string, user_id: string)
매개변수:
  • account_id: string – 대체 가능 토큰 계정의 ID입니다.
  • org_id: string – 현재 조직에 있는 사용자의 멤버쉽 서비스 공급자(MSP) ID입니다.
  • user_id: string – 사용자의 사용자 이름 또는 전자 메일 ID입니다.
반환값:
  • 성공 시 변환 내역 세부정보가 포함된 JSON 객체입니다.
반환 값 예:
[
  {
    "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
이 메소드는 토큰 쌍에 대한 토큰 변환율 내역을 반환합니다. 이 메소드는 체인 코드의 Token Admin, 임의의 Org Admin 및 토큰 계정 소유자가 호출할 수 있습니다.
Ctx.TokenConversionRate.history(conversion_rate_id: string)
매개변수:
  • conversion_rate_id: string – 환율 객체의 ID입니다.
반환값:
  • 성공 시 환율 기록 세부정보가 있는 JSON 객체입니다.
반환 값 예:
 [
  {
    "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
이 메소드는 교환 풀 사용자에 대한 OrgIdUserId 값을 반환합니다. 이 메소드는 체인 코드의 Token Admin만 호출할 수 있습니다.
Ctx.TokenConvertor.getExchangePoolUser()
매개변수:
  • 없음
반환값:
  • 성공 시 교환 풀 사용자에 대한 정보가 포함된 메시지입니다.
반환 값 예:
{
   "assetType": "oconversion",
   "convertor_id": "bcb1f3b1442c625d3ce205660c5e717c5858a1fe1e12c325df799a851ceaa09b",
   "org_id": "Org1MSP",
   "user_id": "exchangepooluser"
}