Trustline
Probity
Search
K
Comment on page

BondIssuer

Sell bonds by probity system that can be redeemed for stablecoin in the future
Bond Issuer can sell vouchers for the stablecoin which can be redeemed later when the system reserve has started to fill up again. This mechanism is meant to be used to help maintain the peg of the stablecoin when the system debt has reached a certain threshold.
Bond sales buyers will need to use the stablecoin to purchase the vouchers, which represents how much stablecoin they can redeem for. The amount of vouchers the buyer will get for one stablecoin will increase over time using a step-wise function. For every saleStepPeriod time elapsed, the user will get min(1+ (salePriceIncreasePerStep * number of saleStepPeriod passed), saleMaxPrice)
Users are allowed to redeem the voucher anytime when the reserve pool has enough balance to redeem the vouchers.

Data Structures

Offering

Property
Type
Description
active
boolean
Whether there is an active sale on-going
startTime
uint256
The start time in the bond sale
amount
uint256
The amount left in the offering

Methods

Public

function saleMaxPrice() returns(uint256 saleMaxPrice)
return the saleMaxPrice
function saleStepPeriod() returns(uint256 saleStepPeriod)
return the saleStepPeriod
function salePriceIncreasePerStep() return(uint256 salePriceIncreasePerStep)
returns the salePriceIncreasePerStep
function vouchersPerStablecoin() returns(vouchersPerStablecoin)
return the calculated vouchers per stablecoin
function vouchers(address user) returns(uint256 vouchers)
returns the number of vouchers user holds
function totalVouchers() returns(uint256 totalVouchers)
return the totalVouchers

External

function setReservePoolAddress(address _reservePoolAddress)
update the reservePool address that is the recipient of the sale proceeds
function updateSaleMaxPrice(uint256 newMaxPrice)
Update the saleMaxPrice variable
function updateSaleStepPeriod(uint256 newStepPeriod)
Update the saleStepPeriodvariable
function updateSalePriceIncreasePerStep(uint256 newPriceIncreasePerStep)
Update the salePriceIncreasePerStepvariable
function newOffering(uint256 amount) external onlyBy("reservePool")
Start a bond sale
function purchaseVouchers(uint256 amount)
Purchase vouchers, the amount of vouchers received will depends on vouchersPerStablecoin value
function redeemVouchers(uint256 amount)
Redeem Vouchers for stablecoin, this only works when system reserve have enough funds
function shutdownRedemption(address user, uint256 amount)
Redeem vouchers during a shutdown process