账户资源

getAccountResource

查询账户的资源信息(带宽,能量)。

用法

getAccountResource(address)

参数

参数描述类型
address帐户地址,Base58check 格式或 HEX 格式String

返回值

Object - AccountResourceMessage 对象。

示例

wrapper.getAccountResource("TMmbeRPnFhXC7BPLaF2M1HCsoE4jwZNB7b");

执行结果:

freeNetLimit: 5000
  assetNetUsed {
    key: "1000203"
    value: 0
  }
  assetNetLimit {
    key: "1000203"
    value: 100000
  }
  TotalNetLimit: 43200000000
  TotalNetWeight: 30001829306
  EnergyLimit: 13348
  TotalEnergyLimit: 90000000000
  TotalEnergyWeight: 13485132

getAccountNet

查询账户带宽信息。

用法

getAccountNet(address)

参数

参数描述类型
address帐户地址,Base58check 格式或 HEX 格式String

返回值

Object -AccountNetMessage 对象。

示例

wrapper.getAccountNet("TMmbeRPnFhXC7BPLaF2M1HCsoE4jwZNB7b");

执行结果:

freeNetLimit: 5000
  assetNetUsed {
    key: "1000203"
    value: 0
  }
  assetNetLimit {
    key: "1000203"
    value: 100000
  }
  TotalNetLimit: 43200000000
  TotalNetWeight: 30001829306

freezeBalance

质押TRX,获取带宽或者能量,质押额度会获得等值投票权 (TP) 。质押时间默认为 3 天。该接口已废弃,请使用freezeBalanceV2进行质押。

用法

freezeBalance(ownerAddress, frozenBalance, frozenDuration, resourceCode, receiveAddress)

参数

参数描述类型
ownerAddress质押 TRX 账号的地址,HEX 格式或 Base58check 格式String
frozenBalance质押 TRX 的数量,单位为 SUNlong
frozenDuration质押天数,目前固定为 3 天long
resourceCode资源类型,0表示带宽,1表示能量int
receiveAddress可选参数,将资源委托给其他账户地址,HEX 格式或 Base58check 格式String

返回值

Object -TransactionExtention 对象: 未签名的交易信息。

示例

TransactionExtention transaction = wrapper.freezeBalance("TLtrDb1udekjDumnrf3EVeke3Q6pHkZxjm", 1_000_000L, 3L,1,"TMmbeRPnFhXC7BPLaF2M1HCsoE4jwZNB7b");
Transaction signedTxn = wrapper.signTransaction(transaction);
String ret = wrapper.broadcastTransaction(signedTxn);

执行结果:

557c9975c5db33d33c634c307a3ce05477c56cb124df94f1cbd8af247d6dd017

unfreezeBalance

解锁超过质押期的 TRX,释放所得到的带宽和能量。同时会因投票权 (TP) 减少,自动取消所有投票。

用法

unfreezeBalance(ownerAddress, resourceCode, receiveAddress)

参数

参数描述类型
ownerAddress解锁TRX 账号的地址,HEX 格式或 Base58check 格式String
resourceCode资源类型,0表示带宽,1表示能量int
receiveAddress可选参数,受委托账户的地址,HEX 格式或 Base58check 格式String

返回值

Object -TransactionExtention 对象: 未签名的交易信息。

示例

TransactionExtention transaction = wrapper.unfreezeBalance("TFRgpvvNTe8bwC666D6orYhEkCcYsbax8U", 0);
Transaction signedTxn = wrapper.signTransaction(transaction);
String ret = wrapper.broadcastTransaction(signedTxn);

执行结果:

48f7cd24b548de95d58a65b74aeeb5413e4d8a4638e40ec1fbfb212aeded7419

getDelegatedResource

查看一个账户代理给另外一个账户的资源情况。

用法

getDelegatedResource(fromAddress, toAddress)

参数

参数描述类型
fromAddress要查询的账户地址,HEX 格式或 Base58check 格式String
toAddress代理对象的账户地址,HEX 格式或 Base58check 格式String

返回值

Object - DelegatedResourceList 对象。

示例

wrapper.getDelegatedResource("TLtrDb1udekjDumnrf3EVeke3Q6pHkZxjm","TMmbeRPnFhXC7BPLaF2M1HCsoE4jwZNB7b");

执行结果:

delegatedResource {
    from: "Aw\326^\303g\274`\360\216\276\327\302k\023\274\226\232S\364\217"
    to: "A\201ok\226\373\273*C\253\307py\242c\312\315\215kSz"
    frozen_balance_for_energy: 2000000
    expire_time_for_energy: 1615020525000
  }

getDelegatedResourceAccountIndex

查看一个账户给哪些账户代理了资源。

用法

getDelegatedResourceAccountIndex(address)

参数

参数描述类型
address要查询的账户地址,HEX 格式或 Base58check 格式String

返回值

Object - DelegatedResourceAccountIndex 对象。

示例

DelegatedResourceAccountIndex accountIndex = wrapper.getDelegatedResourceAccountIndex("TLtrDb1udekjDumnrf3EVeke3Q6pHkZxjm");
ByteString account = accountIndex.getAccount();
int fromAccountsCount = accountIndex.getFromAccountsCount();
for(int i =0;i<fromAccountsCount;i++){
    ByteString fromAccounts = accountIndex.getFromAccounts(i);
}
int toAccountsCount = accountIndex.getToAccountsCount();
for(int i =0;i<toAccountsCount;i++){
    ByteString toAccounts = accountIndex.getToAccounts(i);
}

执行结果:

Accounts: TLtrDb1udekjDumnrf3EVeke3Q6pHkZxjm
toAccounts: TMmbeRPnFhXC7BPLaF2M1HCsoE4jwZNB7b

freezeBalanceV2

在Stake2.0机制下,质押TRX以获取带宽或者能量,同时根据质押额度获得等值投票权(TP)。

用法

freezeBalanceV2(ownerAddress, frozenBalance, resourceCode)

参数

参数描述类型
ownerAddress质押 TRX 账号的地址,HEX 格式或 Base58check 格式String
frozenBalance质押TRX 的数量, 单位为sunlong
resourceCode质押 TRX 获取资源的类型,0为带宽,1为能量int

返回值

Object - TransactionExtention:未签名的交易信息。

示例

TransactionExtention txnExt =client.freezeBalanceV2("41C9B9110BD5F6697075659AB3AAF6107840A9D96D",10000000,1);
System.out.println("txn id => " + Hex.toHexString(txnExt.getTxid().toByteArray()));
Transaction signedTxn = client.signTransaction(txnExt);
TransactionReturn ret = client.blockingStub.broadcastTransaction(signedTxn);
System.out.println("======== Result ========\n" + ret.toString());

执行结果:

txn id => 6d5a3492516db8008ce11b8db7c7b1d514e003f4fcb6a7bcbf2c792485eaa746
======== Result ========
result: true

unfreezeBalanceV2

解锁Stake2.0中质押的TRX, 释放所相应数量的带宽和能量,同时回收相应数量的投票权(TP)。

用法

unfreezeBalanceV2(ownerAddress, unfreezeBalance, resourceCode)

参数

参数描述类型
ownerAddress解锁TRX 账号的地址,HEX 格式或 Base58check 格式String
unfreezeBalance解质押的TRX数量,单位为sunlong
resourceCode资源类型,0为带宽,1为能量int

返回值

Object - TransactionExtention:未签名的交易信息。

示例

TransactionExtention txnExt2 =client.unfreezeBalanceV2("41C9B9110BD5F6697075659AB3AAF6107840A9D96D",700000000,1);
System.out.println("txn2 id => " + Hex.toHexString(txnExt2.getTxid().toByteArray()));
Transaction signedTxn2 = client.signTransaction(txnExt2);
TransactionReturn ret2 = client.blockingStub.broadcastTransaction(signedTxn2);
System.out.println("======== Result ========\n" + ret2.toString());

执行结果:

txn2 id => af0748c673940f71068c5519cf0af582c3d5c7c386d34e9f2d354e6b9e62c197
======== Result ========
result: true

delegateResource

在Stake 2.0机制下,将带宽或者能量资源代理给其它账户。

用法

delegateResource( ownerAddress,  balance,  resourceCode, receiverAddress, lock)

参数

参数描述类型
ownerAddress交易发起者账号的地址, HEX 格式或 Base58check 格式String
balance代理balance数量的TRX所对应的资源给目标地址, 单位为sunlong
resourceCode资源类型,0为带宽,1为能量int
receiverAddress资源的接收账户地址, HEX 格式或 Base58check 格式String
locktrue表示为该资源代理操作设置三天的锁定期,即资源代理给目标地址后的三天内不可以取消对其的资源代理,如果锁定期内,再次代理资源给同一目标地址,则锁定期将重新设置为3天。false表示本次资源代理没有锁定期,可随时取消对目标地址的资源代理boolean

返回值

Object - TransactionExtention:未签名的交易信息。

示例

TransactionExtention txnExt3 =client.delegateResource("41C9B9110BD5F6697075659AB3AAF6107840A9D96D",100999990,1,"41715AE2D2B73B5B4885F480BFBA04CBE6D61E6824",false);
System.out.println("txn3 id => " + Hex.toHexString(txnExt3.getTxid().toByteArray()));
Transaction signedTxn3 = client.signTransaction(txnExt3);
TransactionReturn ret3 = client.blockingStub.broadcastTransaction(signedTxn3);
System.out.println("======== Result ========\n" + ret3.toString());

执行结果:

txn3 id => f8f59725c2282d5f25443e32c606c97ec30602ae0310cb562e6529f63decd4bb
======== Result ========
result: true

undelegateResource

取消Stake2.0中为目标地址代理的带宽或者能量。

用法

undelegateResource( ownerAddress,  balance,  resourceCode, receiverAddress)

参数

参数描述类型
ownerAddress交易发起者账号的地址, HEX 格式或 Base58check 格式String
balance取消代理 balance数量的TRX所对应的资源, 单位为sunlong
resourceCode资源类型,0为带宽,1为能量int
receiverAddress资源的接收账户地址, HEX 格式或 Base58check 格式String

返回值

Object - TransactionExtention:未签名的交易信息。

示例

TransactionExtention txnExt4 =client.undelegateResource("41C9B9110BD5F6697075659AB3AAF6107840A9D96D",100999940,1,"41715AE2D2B73B5B4885F480BFBA04CBE6D61E6824");
System.out.println("txn4 id => " + Hex.toHexString(txnExt4.getTxid().toByteArray()));
Transaction signedTxn4 = client.signTransaction(txnExt4);
TransactionReturn ret4 = client.blockingStub.broadcastTransaction(signedTxn4);
System.out.println("======== Result ========\n" + ret4.toString());

执行结果:

txn4 id => 1f7096bb68a4c743e606544cfd58b301bdf6f2a5a8ec81fa20243b1f4fcd802a
======== Result ========
result: true

withdrawExpireUnfreeze

提取Stake2.0中已过锁定期的解质押的本金。

用法

withdrawExpireUnfreeze(ownerAddress)

参数

参数描述类型
ownerAddress账号地址, HEX 格式或 Base58check 格式String

返回值

Object - TransactionExtention:未签名的交易信息。

示例

TransactionExtention txnExt5 =client.withdrawExpireUnfreeze("41C9B9110BD5F6697075659AB3AAF6107840A9D96D");
System.out.println("txn5 id => " + Hex.toHexString(txnExt5.getTxid().toByteArray()));
Transaction signedTxn5 = client.signTransaction(txnExt5);
TransactionReturn ret5 = client.blockingStub.broadcastTransaction(signedTxn5);
System.out.println("======== Result ========\n" + ret5.toString());

执行结果:

txn5 id => d09c82ea7aa664dd7a617ee347c2e1664171a84cd674d5bd028a12ec338a2e11
======== Result ========
result: true

getAvailableUnfreezeCount

查询Stake 2.0中账户当下解质押剩余次数。

用法

getAvailableUnfreezeCount( ownerAddress)

参数

参数描述类型
ownerAddress账号地址, HEX 格式或 Base58check 格式String

返回值

int - count 解质押剩余次数。

示例

long count =client.getAvailableUnfreezeCount("41C9B9110BD5F6697075659AB3AAF6107840A9D96D");
System.out.println("count => "+count);

执行结果:

count => 31

getCanWithdrawUnfreezeAmount

查询Stake 2.0中用户可以提取的解质押本金数量。

用法

getCanWithdrawUnfreezeAmount(ownerAddress)

参数

参数描述类型
ownerAddress账号地址, HEX 格式或 Base58check 格式String

返回值

long - amount 可提现本金数量。

示例

long amount =client.getCanWithdrawUnfreezeAmount("41C9B9110BD5F6697075659AB3AAF6107840A9D96D");
System.out.println("amount => "+amount);

执行结果:

amount => 0

getCanDelegatedMaxSize

查询Stake 2.0机制下目标地址中指定类型资源的可代理数量,单位为sun。

用法

getCanDelegatedMaxSize(ownerAddress, type)

参数

参数描述类型
ownerAddress账号地址, HEX 格式或 Base58check 格式String
type资源类型,0为带宽,1为能量int

返回值

long - maxSize 资源的可代理数量。

示例

long maxSize =client.getCanDelegatedMaxSize("41C9B9110BD5F6697075659AB3AAF6107840A9D96D",1);
System.out.println("maxSize => "+maxSize);

执行结果:

maxSize => 321999830

getDelegatedResourceV2

查询Stake 2.0机制下某地址代理给目标地址的资源情况。

用法

getDelegatedResourceV2(fromAddress, toAddress)

参数

参数描述类型
fromAddress代理账户地址, HEX 格式或 Base58check 格式String
toAddress资源的接收账户地址, HEX 格式或 Base58check 格式String

返回值

DelegatedResourceList - 代理信息列表。

示例

Response.DelegatedResourceList delegatedResourceList =client.getDelegatedResourceV2("41C9B9110BD5F6697075659AB3AAF6107840A9D96D","41715AE2D2B73B5B4885F480BFBA04CBE6D61E6824");
System.out.println("delegatedResourceList => "+delegatedResourceList);

执行结果:

delegatedResourceList => delegatedResource {
 from: "A\311\271\021\v\325\366ipue\232\263\252\366\[email protected]\251\331m"
 to: "AqZ\342\322\267;[H\205\364\200\277\272\004\313\346\326\036h$"
 frozen_balance_for_energy: 7000169
}

getDelegatedResourceAccountIndexV2

查询Stake 2.0机制下某地址的资源委托索引。返回两个列表,一个是该帐户将资源委托给的地址列表(toAddress),另一个是将资源委托给该帐户的地址列表(fromAddress)。

用法

getDelegatedResourceAccountIndexV2(address)

参数

参数描述类型
address账号地址, HEX 格式或 Base58check 格式String

返回值

DelegatedResourceAccountIndex - 代理关系对象。

示例

Response.DelegatedResourceAccountIndex delegatedResourceAccountIndex =client.getDelegatedResourceAccountIndexV2("41715AE2D2B73B5B4885F480BFBA04CBE6D61E6824");
System.out.println("delegatedResourceAccountIndex => "+delegatedResourceAccountIndex);

执行结果:

delegatedResourceAccountIndex => account: "AqZ\342\322\267[H\205\364\200\277\272\004\313\346\326\036h$"
fromAccounts: "A\311\271\021\v\325\366ipue\232\263\252\366\[email protected]\251\331m"