토큰 변환을 위한 Go 메소드

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

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

토큰 변환 프로세스

일반적인 토큰 변환 플로우는 다음 단계를 따릅니다.
  1. InitializeExchangePoolUser 메소드를 호출하여 Exchange Pool 유저를 초기화합니다.
  2. CreateExchangePoolAccounts 메소드를 호출하여 Exchange Pool 계정을 생성합니다. 변환할 원본 토큰 또는 변환할 원본 토큰의 모든 유형에 대한 교환 풀 계정을 만듭니다.
  3. AddConversionRate 메소드를 호출하여 변환할 각 토큰 쌍에 대한 변환율을 설정합니다.
  4. 다음 방법 중 하나로 교환 풀 토큰 계정에 자금을 조달합니다.
    • 표준 이전 방법을 사용하여 토큰을 Exchange Pool 토큰 계정으로 이전합니다.
    • 토큰을 연동할 때 MintWithFundingExchangePoolToken 메소드를 호출합니다. 이 메소드는 연동된 토큰의 백분율을 Exchange 풀 계정으로 전송할 수 있습니다.
  5. TokenConversion 메소드를 호출하여 대체 가능한 두 토큰 간에 변환합니다. 한 사용자가 토큰 계정 두 개 간에 토큰을 변환하거나 한 쌍의 사용자가 토큰을 한 계정에서 다른 계정으로 직접 변환할 수 있습니다.
  6. 환전 풀 사용자는 환전 풀 계정 잔액 및 계정 트랜잭션을 볼 수 있습니다.
    • GetAccount 메소드를 호출하여 각 Exchange Pool 토큰 계정의 잔액을 확인합니다.
    • GetAccountTransactionHistoryGetAccountTransactionHistoryWithFilters 메소드를 호출하여 각 Exchange Pool 토큰 계정에 대한 계정 트랜잭션을 봅니다.

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

Blockchain App Builder는 다양한 유형의 대체 가능한 토큰을 변환하는 방법을 자동으로 생성합니다. 컨트롤러 메소드를 호출하려면 공용이어야 합니다. 공용 메소드 이름은 대문자로 시작합니다. 소문자로 시작하는 메소드 이름은 전용입니다.

InitializeExchangePoolUser
이 방법은 일회성 작업인 교환 풀 사용자를 초기화합니다. 이 메소드는 체인 코드의 Token Admin로만 호출할 수 있습니다.
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)
}
매개변수:
  • org_id: string - 현재 조직에 있는 사용자의 멤버쉽 서비스 제공자(MSP) ID입니다.
  • user_id: string - 사용자의 사용자 이름 또는 전자메일 ID입니다.
반환값:
  • 성공 시 교환 풀 사용자의 세부정보를 포함하는 메시지입니다.
반환 값 예제:
{
    "AssetType": "oconversion",
    "ConvertorId": "bcb1f3b1442c625d3ce205660c5e717c5858a1fe1e12c325df799a851ceaa09b",
    "OrgId": "Org1MSP",
    "UserId": "exchangepooluser"
}
CreateExchangePoolAccounts
이 메소드는 제공된 토큰 ID 배열에 대한 교환 풀 토큰 계정을 생성합니다. 이 메소드는 체인 코드의 Token Admin로만 호출할 수 있습니다.
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)
}
매개변수:
  • token_ids: string [] - 토큰 ID 배열입니다. 토큰 ID를 10개까지 지정할 수 있습니다.
반환값:
  • 성공 시 생성된 교환 풀 계정의 세부정보를 포함하는 객체 목록입니다.
반환 값 예제:
[
    {
        "AccountId": "oaccount~cc9d84f6d4a5976532493ef5200c9603e138adc35166ffd5fd1aad9c1647f034",
        "Status": "created",
        "TokenId": "USD"
    },
    {
        "AccountId": "oaccount~3d4933111ec8bd6cc1ebb43f2b2c390deb929cfa534f9c6ada8e63bac04a13c0",
        "Status": "created",
        "TokenId": "INR"
    }
]
AddConversionRate
이 방법은 토큰 쌍에 대한 변환율을 추가합니다. 토큰 변환율은 소수점 8자리까지 지정할 수 있습니다. 이 메소드는 체인 코드의 Token Admin로만 호출할 수 있습니다.
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)
}
매개변수:
  • from_token_id: string - 변환할 토큰의 ID입니다.
  • to_token_id: string - 변환할 토큰의 ID입니다.
  • token_conversion_rate: float64 - from_token_id 토큰을 to_token_id 토큰으로 변환할 비율입니다.
반환값:
  • 성공 시 변환율 객체의 JSON 표현입니다.
반환 값 예제:
{
    "AssetType": "oconversionRate",
    "ConvertorRateId": "oconversionRate~79eacc670928bbc4c9ba4ebee135c8b4d6411af3110f8a9b782c383d5e18b150",
    "FromTokenId": "USD",
    "ToTokenId": "INR",
    "ConversionRate": 10
}
GetConversionRate
이 방법은 토큰 쌍에 대한 현재 환율을 가져옵니다. 이 메소드는 체인 코드의 Token Admin, Org Admin 및 토큰 계정 소유자가 호출할 수 있습니다.
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)
}
매개변수:
  • from_token_id: string - 변환할 토큰의 ID입니다.
  • to_token_id: string - 변환할 토큰의 ID입니다.
반환값:
  • 성공 시 변환율 객체의 JSON 표현입니다.
반환 값 예제:
{
    "AssetType": "oconversionRate",
    "ConvertorRateId": "oconversionRate~79eacc670928bbc4c9ba4ebee135c8b4d6411af3110f8a9b782c383d5e18b150",
    "FromTokenId": "USD",
    "ToTokenId": "INR",
    "ConversionRate": 10
}
UpdateConversionRate
이 방법은 토큰 쌍에 대한 현재 환율을 업데이트합니다. 토큰 변환율은 소수점 8자리까지 지정할 수 있습니다. 이 메소드는 체인 코드의 Token Admin로만 호출할 수 있습니다.
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)
}
매개변수:
  • from_token_id: string - 변환할 토큰의 ID입니다.
  • to_token_id: string - 변환할 토큰의 ID입니다.
  • token_conversion_rate: float64 - from_token_id 토큰을 to_token_id 토큰으로 변환할 비율입니다.
반환값:
  • 성공 시 업데이트된 환율 객체의 JSON 표현입니다.
반환 값 예제:
{
    "AssetType": "oconversionRate",
    "ConvertorRateId": "oconversionRate~79eacc670928bbc4c9ba4ebee135c8b4d6411af3110f8a9b782c383d5e18b150",
    "FromTokenId": "USD",
    "ToTokenId": "INR",
    "ConversionRate": 15
}
MintWithFundingExchangePool
이 메소드는 지정된 토큰 ID 및 수량을 기준으로 호출자 계정의 토큰을 최소화합니다. 그러면 주석 처리된 수량의 토큰 백분율이 교환 풀 토큰 계정으로 전송됩니다.
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)
}
매개변수:
  • token_id: string - 민트할 토큰의 ID입니다.
  • token_quantity: float64 - 민트할 총 토큰 수입니다.
  • percentage_token_to_exchange_pool: float64 - Exchange 풀 토큰 계정으로 전송할 주조된 토큰의 백분율입니다.
반환값:
  • 성공 시 교환 풀의 자금 조달 및 자금 조달이 성공했음을 나타내는 메시지입니다.
반환 값 예제:
{
    "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
이 메소드는 토큰을 호출자 계정의 계정에서 to_token_id, to_org_idto_user_id 값으로 지정된 계정으로 변환합니다. 이 메소드는 체인 코드의 Token Admin 및 토큰 계정 소유자가 호출할 수 있습니다. Exchange 풀 사용자는 이 메소드를 호출할 수 없습니다.
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)
}
매개변수:
  • from_token_id: string - 변환할 토큰의 ID입니다.
  • to_token_id: string - 변환할 토큰의 ID입니다.
  • to_org_id: string - 토큰을 수신할 현재 조직에 있는 사용자의 멤버쉽 서비스 제공자(MSP) ID입니다.
  • to_user_id: string - 토큰을 수신할 사용자의 사용자 이름 또는 전자메일 ID입니다.
  • token_quantity: float64 - 전송할 총 토큰 수입니다.
반환값:
  • 성공 시 토큰 변환이 성공했음을 나타내는 메시지입니다.
반환 값 예제:
{
    "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
이 메소드는 지정된 토큰 계정에 대한 토큰 변환 내역을 반환합니다. 이 메소드는 체인 코드의 Token Admin, 지정된 조직의 Org Admin 및 토큰 계정 소유자가 호출할 수 있습니다.
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)
}
매개변수:
  • token_id: string - 토큰의 ID입니다.
  • org_id: string - 현재 조직에 있는 사용자의 멤버쉽 서비스 제공자(MSP) ID입니다.
  • user_id: string - 사용자의 사용자 이름 또는 전자메일 ID입니다.
반환값:
  • 성공 시 변환 내역 세부정보가 있는 JSON 객체입니다.
반환 값 예제:
[
    {
        "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
이 메소드는 토큰 쌍에 대한 토큰 변환율 기록을 반환합니다. 이 메소드는 체인 코드의 Token Admin, Org Admin 및 토큰 계정 소유자가 호출할 수 있습니다.
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)
}
매개변수:
  • from_token_id: string - 변환율을 계산하기 위해 변환할 토큰의 ID입니다.
  • to_token_id: string - 변환율을 계산하기 위해 변환할 토큰의 ID입니다.
반환값:
  • 성공 시 환율 기록 세부정보가 있는 JSON 객체입니다.
반환 값 예제:
[
  {
    "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
이 메소드는 Exchange Pool 유저에 대해 org_iduser_id 값을 반환합니다. 이 메소드는 체인 코드의 Token Admin로만 호출할 수 있습니다.
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()
}
매개변수:
  • 없음
반환값:
  • 성공 시 교환 풀 사용자에 대한 정보가 포함된 메시지입니다.
반환 값 예제:
{
    "AssetType": "oconversion",
    "ConvertorId": "bcb1f3b1442c625d3ce205660c5e717c5858a1fe1e12c325df799a851ceaa09b",
    "OrgId": "Org1MSP",
    "UserId": "exchangepooluser"
}

토큰 변환 SDK 메소드

InitializeExchangePoolUser
이 방법은 일회성 작업인 교환 풀 사용자를 초기화합니다. 이 메소드는 체인 코드의 Token Admin로만 호출할 수 있습니다.
Ctx.TokenConvertor.InitializeExchangePoolUser(org_id string, user_id string) (interface{}, error)
매개변수:
  • org_id: string - 현재 조직에 있는 사용자의 멤버쉽 서비스 제공자(MSP) ID입니다.
  • user_id: string - 사용자의 사용자 이름 또는 전자메일 ID입니다.
반환값:
  • 성공 시 교환 풀 사용자의 세부정보를 포함하는 메시지입니다.
반환 값 예제:
{
    "AssetType": "oconversion",
    "ConvertorId": "bcb1f3b1442c625d3ce205660c5e717c5858a1fe1e12c325df799a851ceaa09b",
    "OrgId": "Org1MSP",
    "UserId": "exchangepooluser"
}
CreateExchangePoolAccounts
이 메소드는 제공된 토큰 ID 배열에 대한 교환 풀 토큰 계정을 생성합니다. 이 메소드는 체인 코드의 Token Admin로만 호출할 수 있습니다.
Ctx.TokenConvertor.CreateExchangePoolAccounts(tokens []interface{}) (interface{}, error)
매개변수:
  • token_ids: string [] - 토큰 ID 배열입니다.
반환값:
  • 성공 시 생성된 교환 풀 계정의 세부정보를 포함하는 객체 목록입니다.
반환 값 예제:
[
    {
        "AccountId": "oaccount~cc9d84f6d4a5976532493ef5200c9603e138adc35166ffd5fd1aad9c1647f034",
        "Status": "created",
        "TokenId": "USD"
    },
    {
        "AccountId": "oaccount~3d4933111ec8bd6cc1ebb43f2b2c390deb929cfa534f9c6ada8e63bac04a13c0",
        "Status": "created",
        "TokenId": "INR"
    }
]
AddConversionToken
이 메소드는 지정된 토큰에 대해 새 변환율이 있는 토큰을 추가합니다. 토큰 변환율은 소수점 8자리까지 지정할 수 있습니다. 이 메소드는 체인 코드의 Token Admin로만 호출할 수 있습니다.
Ctx.TokenConvertor.AddConversionToken(from_token_id string, to_token_id string, token_conversion_rate float64) (interface{}, error)
매개변수:
  • from_token_id: string - 변환할 토큰의 ID입니다.
  • to_token_id: string - 변환할 토큰의 ID입니다.
  • token_conversion_rate: float64 - from_token_id 토큰을 to_token_id 토큰으로 변환할 비율입니다.
반환값:
  • 성공 시 변환율 객체의 JSON 표현입니다.
반환 값 예제:
{
    "AssetType": "oconversionRate",
    "ConvertorRateId": "oconversionRate~79eacc670928bbc4c9ba4ebee135c8b4d6411af3110f8a9b782c383d5e18b150",
    "FromTokenId": "USD",
    "ToTokenId": "INR",
    "ConversionRate": 10
}
Get
이 방법은 토큰 쌍에 대한 현재 환율을 가져옵니다. 이 메소드는 체인 코드의 Token Admin 및 토큰 계정 소유자가 호출할 수 있습니다.
Ctx.TokenConversionRate.Get(id string) (ConversionRate, error)
매개변수:
  • ID: string - 토큰 변환율 객체의 ID입니다.
반환값:
  • 성공 시 변환율 객체의 JSON 표현입니다.
반환 값 예제:
{
    "AssetType": "oconversionRate",
    "ConvertorRateId": "oconversionRate~79eacc670928bbc4c9ba4ebee135c8b4d6411af3110f8a9b782c383d5e18b150",
    "FromTokenId": "USD",
    "ToTokenId": "INR",
    "ConversionRate": 10
}
UpdateTokenConversionRate
이 방법은 토큰 쌍에 대한 현재 환율을 업데이트합니다. 토큰 변환율은 소수점 8자리까지 지정할 수 있습니다. 이 메소드는 체인 코드의 Token Admin로만 호출할 수 있습니다.
Ctx.TokenConvertor.UpdateTokenConversionRate(from_token_id string, to_token_id string, token_conversion_rate float64) (interface{}, error)
매개변수:
  • from_token_id: string - 변환할 토큰의 ID입니다.
  • to_token_id: string - 변환할 토큰의 ID입니다.
  • token_conversion_rate: float64 - from_token_id 토큰을 to_token_id 토큰으로 변환할 비율입니다.
반환값:
  • 성공 시 업데이트된 환율 객체의 JSON 표현입니다.
반환 값 예제:
{
    "AssetType": "oconversionRate",
    "ConvertorRateId": "oconversionRate~79eacc670928bbc4c9ba4ebee135c8b4d6411af3110f8a9b782c383d5e18b150",
    "FromTokenId": "USD",
    "ToTokenId": "INR",
    "ConversionRate": 15
}
MintWithFundingExchangePool
이 메소드는 지정된 토큰 ID 및 수량을 기준으로 호출자 계정의 토큰을 최소화합니다. 그러면 주석 처리된 수량의 토큰 백분율이 교환 풀 토큰 계정으로 전송됩니다.
Ctx.TokenConvertor.MintWithFundingExchangePool(token interface{}, token_quantity float64, percentage_token_to_exchangePool float64) (interface{}, error)
매개변수:
  • token_id: string - 민트할 토큰의 ID입니다.
  • token_quantity: float64 - 민트할 총 토큰 수입니다.
  • percentage_token_to_exchange_pool: float64 - Exchange 풀 토큰 계정으로 전송할 주조된 토큰의 백분율입니다.
반환값:
  • 성공 시 교환 풀의 자금 조달 및 자금 조달이 성공했음을 나타내는 메시지입니다.
반환 값 예제:
{
    "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
이 메소드는 토큰을 호출자 계정의 계정에서 to_token_id, to_org_idto_user_id 값으로 지정된 계정으로 변환합니다. 이 메소드는 체인 코드의 Token Admin 및 토큰 계정 소유자가 호출할 수 있습니다. Exchange 풀 사용자는 이 메소드를 호출할 수 없습니다.
Ctx.TokenConvertor.TokenConversion(from_token interface{}, to_token interface{}, to_org_id string, to_user_id string, token_quantity float64) (interface{}, error)
매개변수:
  • 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' (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
이 메소드는 지정된 토큰 계정에 대한 토큰 변환 내역을 반환합니다. 이 메소드는 체인 코드의 Token Admin 및 토큰 계정 소유자가 호출할 수 있습니다.
Ctx.Account.GetTokenConversionHistory(account_id string, org_id string, user_id string) (interface{}, error)
매개변수:
  • account_id: string - 대체 가능 토큰 계정의 ID입니다.
  • org_id: string - 현재 조직에 있는 사용자의 멤버쉽 서비스 제공자(MSP) ID입니다.
  • user_id: string - 사용자의 사용자 이름 또는 전자메일 ID입니다.
반환값:
  • 성공 시 변환 내역 세부정보가 있는 JSON 객체입니다.
반환 값 예제:
[
    {
        "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
이 메소드는 토큰 쌍에 대한 토큰 변환율 기록을 반환합니다. 이 메소드는 체인 코드의 Token Admin, Org Admin 및 토큰 계정 소유자가 호출할 수 있습니다.
Ctx.TokenConversionRate.History(conversion_rate_id string) (interface{}, error)
매개변수:
  • conversion_rate_id: string - 환율 객체의 ID입니다.
반환값:
  • 성공 시 환율 기록 세부정보가 있는 JSON 객체입니다.
반환 값 예제:
[
  {
    "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
이 메소드는 Exchange Pool 유저에 대해 org_iduser_id 값을 반환합니다. 이 메소드는 체인 코드의 Token Admin로만 호출할 수 있습니다.
Ctx.TokenConvertor.GetExchangePoolUser()
매개변수:
  • 없음
반환값:
  • 성공 시 교환 풀 사용자에 대한 정보가 포함된 메시지입니다.
반환 값 예제:
{
    "AssetType": "oconversion",
    "ConvertorId": "bcb1f3b1442c625d3ce205660c5e717c5858a1fe1e12c325df799a851ceaa09b",
    "OrgId": "Org1MSP",
    "UserId": "exchangepooluser"
}