Releases: keep-network/tbtc
Solidity: 1.1.0 (Mainnet, rc.1)
Note: Henceforth release notes and version tags for Solidity contracts will be managed separately from any other releases that may occur. Solidity contract releases will have a tag prefix of solidity/
.
solidity/v1.1.0
is the second mainnet release of all of tBTC's contracts.
At a high level, v1.1.0 represents 3 months of work done since the v1 release of tBTC. v1.1.0 is considered to be at RELEASE CANDIDATE stability for its first 2 months on mainnet. During this time the supply of TBTC will be constrained by the TBTC vending machine contract, progressing from 2 BTC to 100, 250, 500, 750, 1000, 1500, 2000, 2500, 3000, and finally 21M BTC, increasing weekly. Below are the primary tBTC contracts with Etherscan links and some quick notes on their function and changes. For additional details on tBTC security, see the v1.1.0 README. For the full technical specification of tBTC, see https://docs.keep.network/tbtc/.
TBTCSystem
is the tBTC system contract. It captures the current governable parameters, like collateralization thresholds, available lot sizes, and Keep configurations, and mediates access to Maker's ETHBTC Medianizer for the remainder of the system. All events related to tBTC areVendingMachine
is the tBTC contract responsible for taking ownership of deposits and minting the TBTC token in exchange, as well as making those deposits available for withdrawal by anyone who can pay back the requisite TBTC. Deposits owned by the vending machine (indicated by the vending machine's ownership of their associated tBTC Deposit Token)DepositFactory
is the factory contract that creates new deposits. ItscreateDeposit
function is the only way to create new deposits.Deposit
is the base contract for new deposit contracts.DepositFactory
clones this contract for each new deposit, pulling the current parameters fromTBTCSystem
. Once a deposit is created, all of its parameters except for ETHBTC price are fixed forever.TBTCDepositToken
is an ERC721 non-fungible token, each instance of which is uniquely associated with a deposit. Ownership of this token indicates ownership of the associated deposit, which provides an exclusive right to redeem the underlying deposit's Bitcoin UTXO until the deposit reaches its 6-month term.FeeRebateToken
is an ERC721 non-fungible token that represents a claim to a rebate on the signing fee for depositors who exchange their deposit to mint fungible TBTC tokens. These depositors have the signing fee for their deposit escrowed at minting time, but if the deposit is redeemed before the end of its 6 month term, they are reimbursed that escrowed amount.TBTCToken
is the ERC20 TBTC token. 18 decimals of precision packed into a beautiful 1-to-1 BTC backed token.
In addition to the primary contracts for tBTC, we're providing the release commit hash and associated signatures from the deployment team.
Commit hash for clean builds is f94110d676d939139572ef06e7eca300ce8f435f
.
Signatures of commit hash from the deployment team (verify these in the Keybase app):
-
@pdyraga:
BEGIN KEYBASE SALTPACK SIGNED MESSAGE. kXR7VktZdyH7rvq v5weRa0zkKUP1mo cBOwsMO2Zoy9oS4 RuaO1bwgSUG4cNZ RnlK7jKb7jLCBWs KXcKwIcjl513izz 0f1e32CNmkk0MuB onz7Ldma4rH5wgm HReTBz1bcl2e64Y 9ggDx3u4DBr1Pyp 0OkvKlt5udb12oE Cww921Vbj9ej463 zzuCVuMOorP8fOV k5lJsLNxEvEB4rV nPu3a0P12CMFttx 5metZ9vFwBkyek2 . END KEYBASE SALTPACK SIGNED MESSAGE. -
@Shadowfiend:
BEGIN KEYBASE SALTPACK SIGNED MESSAGE. kXR7VktZdyH7rvq v5weRa0zkAA9fdX h3PR4kiSBsxaoE3 9WyxA9pNLCah0b4 uFaShwCkPQzarJ9 FCLOS8M1iuRxIuv rPMCmF9pUYu8q8t o3ZgnGtSSFqft64 i4zjI57MY1cBbQm airT0q8oJohPqd8 FAagxG7p3DeNefq ON45TPoPLLv32IK v9bvKFkMFDd4tnP 4J38TixFlMMwM3W siI5e0P12CMFttx 5metZ9vFwBkyek2 . END KEYBASE SALTPACK SIGNED MESSAGE. -
@nkuba:
BEGIN KEYBASE SALTPACK SIGNED MESSAGE. kXR7VktZdyH7rvq v5weRa0zk8hhCXT Sf055wYPEWKoA0h hWO1cVG1nHRWTRd G9SDhAonQkf6R9p Vxi7Y6abS8OLsDC LiOoXooX9vwJEcN KMHlGWZPFeabHr2 XgBH4rTmrg3fOBw efA1oOn4ZnfQzrE tE4PQKtHbwzWDpA ayRAEWeKKJbdRln fDl16XByQd8zb6G Spye5XmpLMNsKNW 70llO0P12CMFttx 5metZ9vFwBkyek2 . END KEYBASE SALTPACK SIGNED MESSAGE.
Finally, note that the full set of work that went into the 1.1.0 milestone can be found in the corresponding 1.1.0 milestone.
v1.0.3-rc (Ropsten)
Realize we've jumped a few here. This is the third Ropsten release post v1.0.0 to mainnet.
v0.15.0 (Ropsten)
Bump package versions Bumping tbtc to fresh rc and bringing in the latest keep-ecdsa rc.
v0.14.0 (Ropsten)
This Ropsten release of tBTC pulls in the corresponding keep-ecdsa release and carries a variety of bug fixes and improvements:
- Fix: Clear dirty bits in FundingScript and RedemptionScript (#585).
- Improvement: Liquidation-entry refactor (#573).
- Improvement: Intermediary authorized medianizer access contract for Ropsten (#576).
- Improvement: Parameter finalization, clear TODOs (#581).
- Improvement: Impose certain additional limits on governance actions (#582).
- Improvement: Add a way for owners of a funding-failed deposit to ask nicely for their UTXO(s) back (#583).
- Improvement: Expose collateralization functions and Keep address (#590).
- Improvement: Throw nested revert messages (#593).
- Improvement: Deploy Funding/Redemption scripts (#594).
- Improvement: Test refinements (#584).
- Deployment: Various deployment and monitoring fixes and adjustements (#575, #578, #589).
v0.13.0 (Ropsten)
This Ropsten release of tBTC pulls in the corresponding keep-ecdsa release and carries a variety of bug fixes and improvements:
- Improvement: Use a pull model to withdraw deposit ETH balances (#570).
- Improvement: Pass stake lock duration to BondedECDSAKeepFactory (#566).
- Improvement: Cleanup and clarification of documentation and TODOs in the code (#564, #561).
- Deployment: Various deployment and monitoring fixes and adjustments (#574, #571, #568, #567).
0.12.0 (Ropsten)
This Ropsten release of tBTC pulls in the corresponding keep-ecdsa release and carries a variety of bug fixes and improvements:
- Fix: Fixes to
approveAndCall
return values (#527). - Fix: Let
BondedECDSAKeep
manage all bond-related keep closing (#532). - Fix: Use contract types as type annotations rather than casts where possible (#542).
- Improvement: Refactor funding fraud paths to drop SPV proofs and always send the funder the full bond value of the signers if ECDSA fraud is proven (#534).
- Improvement: Refund keep creation cost if signer setup fails (#520).
- Improvement: Various resiliency improvements to
DepositLog
(#537). - Improvement: Adjust some
unit256
values down a few sizes to leverage compiler bit packing (#541). - Improvement: Adjust starting point of liquidation auctions to assume the deposit is well-collateralized (#539).
- Nit: The solidity contracts for tBTC now live in the
solidity/
subdirectory; this aligns tBTC with other Keep repositories for consistency (#538). - Deployment: Various deployment and monitoring fixes and adjustments (#533, #536, #544).
v0.10.1
Use latest keep-tecdsa
package
Correct Circle workflow errors.
v0.10.0
Merge pull request #515 from keep-network/two-step-gov Two-step change for governable values Changing/upgrading things in the System contract without warning can lead to unpredictable function call behavior, meaning a user can submit a transaction whose behavior changes compared to when they submitted it, without any warning. This PR makes all upgrades require two steps with a mandatory time window between them. The first step merely broadcasts to users that a particular change is coming, and the second step commits that change after a suitable waiting period. Details: - Governance Time delay 1 hour, set arbitrarily. - Currently, the initial update functions are unlocked. This means that if a change is incoming and is halfway through the waiting period, the initial update function can be called again, the timer resets, an event is fired and the new change is now pending.
v1 audit tag
This tag is the code that will be audited for tBTC v1.
tBTC->Ropsten
Tag for the first release of tBTC to Ropsten. Aligns with v0.6.0 of keep-tecdsa and tbtc-dapp.
This version does not yet include final ACL work, nor does it include integration with the final audit-ready keep-tecdsa interface.