All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
initialize(token, beneficiary, admin, total_amount, cliff_seconds, duration_seconds)— deploy a linear vesting schedule with an optional cliff periodclaim()— withdraw all currently unlocked tokens (beneficiary only)cancel()— cancel vesting and return unvested tokens to admin (admin only)get_status()— returnsVestingStatuswith total, claimed, vested, claimable amounts, cliff status, and fully-vested flagget_config()— returns the fullVestingConfig- Events:
vesting_initialized,claimed,vesting_cancelled
create_stream(sender, token, recipient, rate_per_second, duration_seconds)— start a pay-per-second token stream; pulls total tokens from sender upfrontwithdraw(stream_id)— withdraw all accrued tokens (recipient only)cancel_stream(stream_id)— cancel stream, pay out accrued tokens to recipient, return remainder to sender (sender only)get_stream(stream_id)— returns fullStreamdataget_stream_status(stream_id)— returnsStreamStatuswith streamed, withdrawn, withdrawable, remaining amounts, and active/finished flags- Events:
stream_created,withdrawn,stream_cancelled
initialize(owners, threshold, timelock_delay)— set up an N-of-M multisig treasurypropose(proposer, to, token, amount)— propose a token transfer (owners only)approve(owner, proposal_id)— approve a proposal; starts timelock when threshold is reachedreject(owner, proposal_id)— reject a proposal (owners only)execute(executor, proposal_id)— execute an approved proposal after the timelock delayget_proposal(proposal_id)— returnsProposaldataget_owners()— returns the list of owner addressesget_threshold()— returns the approval threshold
initialize(config)— configure the governor with vote token, voting period, quorum, and timelock delaypropose(proposer, title, description)— create a governance proposal; returns proposal IDvote(voter, proposal_id, support, weight)— cast a token-weighted votefinalize(proposal_id)— finalize a proposal after voting ends; sets state toPassedorFailedexecute(executor, proposal_id)— mark a passed proposal as executed after the timelockget_proposal(proposal_id)— returnsProposaldataget_config()— returnsGovernorConfighas_voted(proposal_id, voter)— returns whether an address has voted on a proposal
initialize(admin, staleness_threshold)— set up the oracle with an admin and staleness windowsubmit_price(base, quote, price)— submit a price for a trading pair (admin only); price scaled to 7 decimalsget_price(base, quote)— returnsPriceData; reverts withPriceStaleif data exceeds the staleness thresholdget_price_unsafe(base, quote)— returnsPriceDatawithout staleness checkset_staleness_threshold(new_threshold)— update the staleness window (admin only)transfer_admin(new_admin)— transfer admin role to a new addressget_admin()— returns the current admin address- Events:
price_updated