-
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。
- 返回:
- 成功后,将列出包含所创建的交换池帐户详细信息的对象。
- 返回值示例:
[
{
"AccountId": "oaccount~cc9d84f6d4a5976532493ef5200c9603e138adc35166ffd5fd1aad9c1647f034",
"Status": "created",
"TokenId": "USD"
},
{
"AccountId": "oaccount~3d4933111ec8bd6cc1ebb43f2b2c390deb929cfa534f9c6ada8e63bac04a13c0",
"Status": "created",
"TokenId": "INR"
}
]
-
AddConversionRate
- 此方法为一对令牌添加转换率。令牌转换率最多可以指定八位小数。此方法只能由链代码的
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
标记的速率。
- 返回:
- 返回值示例:
{
"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。
- 返回:
- 返回值示例:
{
"AssetType": "oconversionRate",
"ConvertorRateId": "oconversionRate~79eacc670928bbc4c9ba4ebee135c8b4d6411af3110f8a9b782c383d5e18b150",
"FromTokenId": "USD",
"ToTokenId": "INR",
"ConversionRate": 10
}
-
UpdateConversionRate
- 此方法更新一对令牌的当前转换率。令牌转换率最多可以指定八位小数。此方法只能由链代码的
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
- 到 mint 的标记的 ID。
token_quantity: float64
- 到 mint 的令牌总数。
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_id
、to_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"
}