sTRX 合约开发者文档

sTRX 接入

查询接口

兑换率

function exchangeRate() public view returns (uint256)

方法描述: 查询 sTRX 与 TRX 的兑换率

参数说明:

无参数

返回值:

兑换率, 1 sTRX / 1 TRX 精度为 1e18 的兑换率

总 TRX 资产

function totalUnderlying() public view returns (uint256)

方法描述: 查询合约管理的 TRX 总资产

参数说明:

无参数

返回值:

合约管理的 TRX 总资产,最小单位

用户余额对应 TRX

function balanceInTrx(address _account) public view returns (uint256)

方法描述: 查询用户持有的 sTRX 对应的 TRX 数量

参数说明:

ParameterTypeDescription

_account

address

用户地址

返回值:

用户持有的 sTRX 对应的 TRX 数量,最小单位

写接口

存入 TRX

function deposit() external payable returns (uint256)

方法描述: 调用此方法存入 TRX 资产并且收到 sTRX

参数说明:

ParameterTypeDescription

msg.value

存入TRX的数量

返回值:

用户兑换收到的 sTRX 数量,最小单位

退出 sTRX

function withdraw(uint256 tokenAmount) external returns (uint256)

方法描述: 调用此方法指定要退出的 sTRX 数量,最小单位

参数说明:

ParameterTypeDescription

tokenAmount

uint256

退出sTRX的数量

返回值:

用户退出待解冻的 TRX 数量,最小单位

退出 sTRX (指定 TRX 数量)

function withdrawExact(uint256 trxAmount) external returns (uint256)

方法描述: 调用此方法指定退出希望获得的 TRX 数量,最小单位

参数说明:

ParameterTypeDescription

trxAmount

uint256

退出 TRX 的数量

返回值:

用户退出的 sTRX 数量,最小单位

提取 TRX

function claim() external returns (uint256)

方法描述:

调用此方法提取一个最早的已到期解冻轮次的 TRX

参数说明:

无参数

返回值:

用户提取的最早解冻轮次的 TRX 数量,最小单位

提取全部已解冻 TRX

function claimAll() external returns (uint256)

方法描述: 调用此方法提取所有已到期解冻轮次的 TRX

参数说明:

无参数

返回值:

用户提取的所有已到期解冻轮次的 TRX 数量,最小单位

关键事件

EventDescription

Deposit(address user, uint256 trxAmount, uint256 strx, uint256 userHoldStrx)

用户存入 TRX 时发出

  • trxAmount:存入TRX 的数量

  • strx:得到 sTRX 的数量

  • userHoldStrx:之后总共持有的 sTRX 数量

Withdraw(address user, uint256 strx, uint256 trxAmount, uint256 userHoldStrx)

用户退出 sTRX 时发出

  • strx:退出 sTRX 的数量

  • trxAmount:得到 TRX 的数量

  • userHoldStrx:之后总共持有的 sTRX 数量

Claim(address user, uint256 trxAmount)

用户提取 TRX 时发出

  • trxAmount:提取 TRX 的数量

Market 接入

查询接口

租赁订单信息

function rentals(
        address renter, 
        address receiver, 
        uint256 resourceType
    ) 
        public 
        view 
        returns (RentalInfo)

struct RentalInfo {
    uint256 amount;
    uint256 securityDeposit;
    uint256 rentIndex;
}

方法描述: 查看一笔订单的信息

参数说明:

ParameterTypeDescription

renter

address

租金支付者

receiver

address

资源接收者

resourceType

uint256

资源类型,0: 带宽; 1: 能量

返回值:

ParameterTypeDescription

amount

uint256

订单资源对应 TRX 数量

securityDeposit

uint256

订单保证金(押金),未更新到当前

rentIndex

uint256

订单上次更新的全局 index

查询当前订单信息(更新到当前)

function getRentInfo(
        address renter,
        address receiver,
        uint256 resourceType
    )
        external
        view
        returns (uint256, uint256)

方法描述: 查看一笔订单的信息,返回数据已更新到当前

参数说明:

ParameterTypeDescription

renter

address

租金支付者

receiver

address

资源接收者

resourceType

uint256

资源类型,0: 带宽; 1: 能量

返回值:

FieldTypeDescription

[0]

securityDeposit

uint256 订单保证金(押金),更新到当前

[1]

rentIndex uint256

订单更新的全局 index

写接口

租赁资源

function rentResource(
        address receiver,
        uint256 amount,
        uint256 resourceType
    )
        external
        payable

方法描述: 调用此方法租赁资源,允许 amount = 0 (仅延期) 或 msg.value = 0 (不新增押金),不允许两者均为 0

参数说明:

ParameterTypeDescription

msg.sender

本次租赁的支付者

receiver

address

本次租赁的资源接收者,不允许是合约或未激活账户

amount

uint256

租赁的资源对应 TRX 数量,最小单位,若 amount 非 0 (仅续期) 则必须大于 1 TRX

resourceType

uint256

资源类型,0: 带宽; 1: 能量

msg.value

本次新增的押金

返回值:

无,失败将会 revert

归还资源(支付者)

function returnResource(
        address receiver,
        uint256 amount,
        uint256 resourceType
    )
        external
        returns (uint256)

方法描述: 调用此方法归还资源,归还订单 (msg.sender, receiver, resourceType) 中的资源,当剩余押金不足时将会强制清空所有资源,并退还剩余押金给订单支付者

参数说明:

ParameterTypeDescription

msg.sender

订单支付者

receiver

address

资源接收者

amount

uint256

本次归还的资源对应 TRX 数量,最小单位

resourceType

uint256

资源类型,0: 带宽; 1: 能量

返回值:

本次归还操作退还的押金数量,部分归还时为 0

归还资源(接收者)

function returnResourceByReceiver(
        address renter,
        uint256 amount,
        uint256 resourceType
    )
        external
        returns (uint256)

方法描述: 资源接收者可以调用此方法归还资源,归还订单 (renter, msg.sender, resourceType) 中的资源,当剩余押金不足时将会强制清空所有资源,并退还剩余押金给订单支付者

参数说明:

ParameterTypeDescription

msg.sender

资源接收者

renter

address

订单支付者

amount

uint256

本次归还的资源对应 TRX 数量,最小单位

resourceType

uint256

资源类型,0: 带宽; 1: 能量

返回值:

本次归还操作退还的押金数量,部分归还时为 0

清算

function liquidate(
        address renter,
        address receiver,
        uint256 resourceType
    )
        external
        returns (uint256)

方法描述: 当订单押金不足时清算者可以清算订单,清算者获得清算奖励,若有剩余押金将退还给订单支付者

参数说明:

ParameterTypeDescription

msg.sender

清算者

renter

address

订单支付者

receiver

address

资源接收者

resourceType

uint256

资源类型,0: 带宽; 1: 能量

返回值:

本次清算的清算奖励

关键事件

EventDescription

RentResource( address indexed renter, address indexed receiver, uint256 addedAmount, uint256 resourceType, uint256 addedSecurityDeposit, uint256 amount)

当发生租赁时发出

  • addedAmount:新租用资源的 TRX 数量(最小单位)

  • addedSecurityDeposit:增加的押金数量

  • amount:租赁后订单的总租用资源数量

ReturnResource( address indexed renter, address indexed receiver, uint256 subedAmount, uint256 resourceType, uint256 usageRental, uint256 subedSecurityDeposit, uint256 amount)

当归还资源时发出

  • subedAmount:归还资源的 TRX 数量(最小单位)

  • usageRental:归还资源使用量恢复时长的费用

  • subedSecurityDeposit:退还的押金数量(部分归还时为0)

  • amount:归还资源后的剩余租用资源数量

Liquidate( address indexed liquidator, address indexed renter, address indexed receiver, uint256 amount, uint256 resourceType, uint256 usageRental, uint256 liquidateFee, uint256 sendBack)

在清算时发出

  • amount:订单资源的 TRX 数量(最小单位)

  • usageRental:订单资源使用量恢复时长的费用

  • liquidateFee:清算者得到的清算奖励

  • sendBack:支付者收到的剩余押金

Last updated