Developers
Interfaces
Solidity interfaces of the core contracts.
IBarrierCore
interface IBarrierCore {
function depositCarry(uint256 seriesId, uint256 usdgAmount) external;
function depositGuard(uint256 seriesId, uint256 stockAmount) external;
function strike(uint256 seriesId) external;
function observe(uint256 seriesId) external;
function settle(uint256 seriesId) external;
function refund(uint256 seriesId) external;
function claimCoupons(uint256 seriesId) external returns (uint256 usdg);
function redeem(uint256 seriesId, uint256 units) external;
function requiredPrefund(uint256 seriesId, uint256 stockAmount) external view returns (uint256);
function pendingWork(uint256 start, uint256 count) external view returns (uint256[] memory);
}ISeriesRegistry
interface ISeriesRegistry {
struct Series {
address stockToken;
uint16 autocallBps;
uint16 barrierBps;
uint16 couponLowBps;
uint16 couponHighBps;
uint16 couponBps; // zero until strike
uint128 s0; // 8 decimals, zero until strike
uint64[13] closes;
uint8 status;
uint8 observed;
}
function getSeries(uint256 seriesId) external view returns (Series memory);
function openSeriesOf(address stockToken) external view returns (uint256[] memory);
function seriesCount() external view returns (uint256);
}BarrierLegs (ERC-1155)
interface IBarrierLegs /* is IERC1155 */ {
function carryId(uint256 seriesId) external pure returns (uint256);
function guardId(uint256 seriesId) external pure returns (uint256);
}IOracleAdapter
interface IOracleAdapter {
function closeAt(address stockToken, uint64 timestamp) external view returns (uint256 price, uint64 updatedAt, bool fallbackUsed);
function latest(address stockToken) external view returns (uint256 price, uint64 updatedAt);
}ITradingCalendar
interface ITradingCalendar {
function isTradingDay(uint64 day) external view returns (bool);
function closeTime(uint64 day) external view returns (uint64);
function nextTradingDay(uint64 day) external view returns (uint64);
}Token engine
interface IBuybackAuction { function price() external view returns (uint256); function sell(uint256 berrierIn, uint256 minUsdgOut) external; }
interface ITreasuryFloor { function floor() external view returns (uint256); function redeem(uint256 berrierIn) external; }
interface IBackstop /* is IERC4626 */ { function deployed() external view returns (uint256); function requestRedeem(uint256 shares) external; }Governance
interface IVeBerrier {
function createLock(uint256 amount, uint256 unlockTime) external;
function increaseAmount(uint256 amount) external;
function increaseUnlockTime(uint256 unlockTime) external;
function balanceOf(address owner) external view returns (uint256);
}