トークン変換のGoメソッド

ブロックチェーン・アプリケーション・ビルダーは、トークン・タクソノミ・フレームワーク標準を使用する実行可能なトークンの変換に使用できるメソッドを自動的に生成します。

トークン変換方法には、交換プールの概念が含まれます。交換プール・アカウントは、他のトークン・アカウントによって資金供給されます。トークンをミントする場合、ミント・トークンの割合を交換プール・アカウントに転送するように指定できます。

トークン変換プロセス

トークンの変換の一般的なフローは、次のステップに従います。
  1. InitializeExchangePoolUserメソッドをコールして、交換プール・ユーザーを初期化します。
  2. CreateExchangePoolAccountsメソッドをコールして、交換プール・アカウントを作成します。変換元または変換先となるすべてのタイプの実行可能トークンの交換プール・アカウントを作成します。
  3. AddConversionRateメソッドをコールして、変換するトークンの各ペアの換算レートを設定します。
  4. 次のいずれかの方法で、交換プール・トークン・アカウントに資金を供給します。
    • 標準の転送方法を使用して、トークンを交換プールのトークン・アカウントに転送します。
    • トークンをミントするときにMintWithFundingExchangePoolTokenメソッドをコールします。このメソッドは、ミント・トークンの割合を交換プール・アカウントに転送できます。
  5. TokenConversionメソッドをコールして、2つの可変トークン間で変換します。1人のユーザーが2つのトークン・アカウント間でトークンを変換することも、1つのユーザーのペアが1つのアカウントから別のアカウントにトークンを直接変換することもできます。
  6. 交換プール・ユーザーは、交換プール勘定科目残高および勘定科目トランザクションを表示できます。
    • GetAccountメソッドをコールして、各交換プール・トークン・アカウントの残高を表示します。
    • GetAccountTransactionHistoryおよびGetAccountTransactionHistoryWithFiltersメソッドをコールして、各交換プール・トークン・アカウントのアカウント・トランザクションを表示します。

自動生成されたトークン変換メソッド

ブロックチェーン・アプリケーション・ビルダーは、様々なタイプの実行可能トークン間で変換するメソッドを自動的に生成します。コントローラメソッドを呼び出すには、publicである必要があります。パブリック・メソッド名は大文字で始まります。小文字で始まるメソッド名はprivateです。

InitializeExchangePoolUser
このメソッドは、交換プール・ユーザー(1回かぎりのアクティビティ)を初期化します。このメソッドは、チェーンコードの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の配列。最大10個のトークンIDを指定できます。
戻り値:
  • 成功すると、作成された交換プールアカウントの詳細を含むオブジェクトのリスト。
戻り値の例:
[
    {
        "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 - 交換プール・トークン・アカウントに転送するミント・トークンの割合。
戻り値:
  • 成功すると、交換プールのマイニングと資金調達が成功したことを示すメッセージが表示されます。
戻り値の例:
{
    "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_idto_org_idおよびto_user_idの値で指定されたアカウントに変換します。このメソッドは、チェーンコードのToken Adminおよびトークン・アカウント所有者がコールできます。交換プール・ユーザーは、このメソッドをコールできません。
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
このメソッドは、交換プール・ユーザーのorg_idおよびuser_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
このメソッドは、交換プール・ユーザー(1回かぎりのアクティビティ)を初期化します。このメソッドは、チェーンコードの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 - 交換プール・トークン・アカウントに転送するミント・トークンの割合。
戻り値:
  • 成功すると、交換プールのマイニングと資金調達が成功したことを示すメッセージが表示されます。
戻り値の例:
{
    "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_idto_org_idおよびto_user_idの値で指定されたアカウントに変換します。このメソッドは、チェーンコードのToken Adminおよびトークン・アカウント所有者がコールできます。交換プール・ユーザーは、このメソッドをコールできません。
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
このメソッドは、交換プール・ユーザーのorg_idおよびuser_id値を返します。このメソッドは、チェーンコードのToken Adminによってのみコールできます。
Ctx.TokenConvertor.GetExchangePoolUser()
パラメータ:
  • なし
戻り値:
  • 成功すると、交換プールユーザーに関する情報を含むメッセージが表示されます。
戻り値の例:
{
    "AssetType": "oconversion",
    "ConvertorId": "bcb1f3b1442c625d3ce205660c5e717c5858a1fe1e12c325df799a851ceaa09b",
    "OrgId": "Org1MSP",
    "UserId": "exchangepooluser"
}