Base Teller

The Base Teller implements standard functionality shared by both types of Bond Tellers, including the core purchase logic, fee handling, and helper functions for generating token names for bond positions.

Logic for handling payouts and tokenizing bond positions is left to contract implementations.

Methods

claimFees

function claimFees(contract ERC20[] tokens_, address to_) external nonpayable

Claim fees accrued for input tokens and sends to protocolMust be guardian

Parameters

createFeeDiscount

function createFeeDiscount() external view returns (uint48)

'Create' function fee discount. Amount standard fee is reduced by for partners who just want to use the 'create' function to issue bond tokens. Configurable by policy.

Returns

getFee

function getFee(address referrer_) external view returns (uint48)

Get current fee charged by the teller based on the combined protocol and referrer fee

Parameters

Returns

protocolFee

function protocolFee() external view returns (uint48)

Fee paid to protocol. Configurable by policy, must be greater than 30 bps.

Returns

purchase

function purchase(address recipient_, address referrer_, uint256 id_, uint256 amount_, uint256 minAmountOut_) external nonpayable returns (uint256, uint48)

Exchange quote tokens for a bond in a specified market

Parameters

Returns

referrerFees

function referrerFees(address) external view returns (uint48)

Fee paid to a front end operator. Set by the referrer, must be less than or equal to 5e4.

There are some situations where the fees may round down to zero if quantity of baseToken is < 1e5 wei (can happen with big price differences on small decimal tokens). This is purely a theoretical edge case, as the bond amount would not be practical.

Parameters

Returns

rewards

function rewards(address, contract ERC20) external view returns (uint256)

Fees earned by an address, by token

Parameters

Returns

setProtocolFee

function setProtocolFee(uint48 fee_) external nonpayable

Set protocol feeMust be guardian

Parameters

setReferrerFee

function setReferrerFee(uint48 fee_) external nonpayable

Set your fee as a referrer to the protocolFee is set for sending address

Parameters

Events

Bonded

event Bonded(uint256 indexed id, address indexed referrer, uint256 amount, uint256 payout)

Parameters

Errors

Teller_InvalidCallback

error Teller_InvalidCallback()

Teller_InvalidParams

error Teller_InvalidParams()

Teller_NotAuthorized

error Teller_NotAuthorized()

Teller_TokenDoesNotExist

error Teller_TokenDoesNotExist(contract ERC20 underlying, uint48 expiry)

Parameters

Teller_TokenNotMatured

error Teller_TokenNotMatured(uint48 maturesOn)

Parameters

Teller_UnsupportedToken

error Teller_UnsupportedToken()