Releases: threshold-network/solidity-contracts
v1.2.1 (Staking)
This is a Threshold Staking Contract (TokenStaking
) upgrade release.
The upgrade has been ratified by the DAO and discussed on Threshold forum.
The TokenStaking
proxy address remains 0x01B67b1194C75264d06F808A921228a95C765dd7
.
The new TokenStaking
implementation contract address is 0x57e1a87603bd1960d734243f8b2f5133911e009d
.
Additionally, we applied floating pragma for IApplication
and IStaking
interfaces in #127.
Staking contract upgrade changes:
- Involuntarily decrease all authorizations in case of slashing
- Before: If a stake is slashed, the original approach was to decrease authorization on the slashing application and decrease authorizations on other applications only if necessary, that is, if the staked amount after the slashing was lower than the authorization on the other applications.
- After: All applications see their authorizations decreased in case of slashing, no matter which application executed the slash.
- Motivation: This change allows reducing the gas cost of slashing large groups significantly; this is extremely important for random beacon and tBTC.
- Staking
requestAuthorizationDecrease
function contract update
This PR doesn’t change code but the documentation on the expected behavior of the staking contract and applications.- Before: If there’s a pending authorization decrease request, a new request will overwrite it.
- After: The new request will overwrite the old one only when the application logic allows it; otherwise, the request will revert.
- Motivation: This is important for TBTC and Random Beacon because allowing to reset authorization decrease request could lead to pool manipulation and free-riding.
- Let the staking provider to refresh KEEP stake owner
- Before: Only owner could refresh a KEEP stake owner.
- After: Owner and staking provider can refresh a KEEP stake owner.
- Motivation: Resolving the owner of a stake is complicated when the owner is a KEEP grant contract. This PR adds a workaround that allows the staking provider to trigger a synchronization of this info that fixes certain edge cases.
- Allow anyone to top-up any staking provider with liquid T
- Before: Only owner or staking provider could top up a stake.
- After: Anyone can top up any stake.
- Motivation: Allowing arbitrary accounts to top up a given stake facilitates composition of staking TXs into a single bundle (e.g., claim rewards and then top up), which in turn aids in the road towards compounding rewards.
- Allow to stake an amount equal to the minimum stake
Fixes a bug that prevented staking with the minimum stake amount
The release commit hash is signed by the development team, verifiable on Keybase. Our Keybase usernames are all associated with the Threshold Network organization and with our GitHub usernames.
Commit hash for clean builds is 19afdea00e15c0322f7457693b3e806fdf3bdfc5
.
Signatures of commit hash from the development team (verify these in the Keybase app):
-
@pdyraga:
BEGIN KEYBASE SALTPACK SIGNED MESSAGE. kXR7VktZdyH7rvq v5weRa0zk8SRO9e gN94erb57G43YvY asc2ypx7KtJhJpq tOozFkj38oVY0zG Af2X0DINkfo9dLa 5h0fcma7MM4x61S fhExzbnHczNmwPJ yHWI8grOXXpHd7v 8FaNDJ9RU4xn76m AJmSblFOdwvdIla tIRMYhk3fh35KzY 3T4TgJ2pb9me9Lu ENDOXPvhVifQBAX RZkGd0S8PbV9lFv 0DfXE0xFsVVpBEj . END KEYBASE SALTPACK SIGNED MESSAGE. -
@nkuba:
BEGIN KEYBASE SALTPACK SIGNED MESSAGE. kXR7VktZdyH7rvq v5weRa0zkUgHswq LONGnytauGuQ68W zKcm0YTewHXEGd3 2M8FiSegAUguFXL HuCjhrwR40ibok5 5xIW1NdCghSbFpo 6p3HmGzvwoiENnL LqnyQn0TaWdPNb6 vvC9enaELCZ8800 CQZ2Dlkgwnt55Z1 SrKBPcNMUYfViXu NSPEHFzWtW4uG1P fzi5Z2PE0EP0KJ7 bTBFX0S8PbV9lFv 0DfXE0xFsVVpBEj . END KEYBASE SALTPACK SIGNED MESSAGE.
Finally, note that the full set of work that went into the 1.2.1 version can be found in the corresponding v1.2.1 milestone.
v1.1.0 (Staking)
Threshold Staking Contract (TokenStaking
) release.
v1.1.0 is the release of the staking contracts deployed to Ethereum mainnet:
TokenStaking
:0x01B67b1194C75264d06F808A921228a95C765dd7
- Implementation:
0xf6c54455f01e03F8Ff992E2a6AAae5349898259e
TransparentUpgradeableProxy
:0x01B67b1194C75264d06F808A921228a95C765dd7
- Implementation:
ProxyAdmin
:0x758279CE7f54568A149bcdFcc7699e20b1dE43E5
KeepStake
:0x10DE37cF84202A20cae61069C617B3Aa874aF8b4
The release commit hash is signed by the development team, verifiable on Keybase. Our Keybase usernames are all associated with the Threshold Network organization and with our GitHub usernames.
Commit hash for clean builds is 2078fa1ea73d5e99c9613dacf4197bb7359c76fc
.
Signatures of commit hash from the development team (verify these in the Keybase app):
-
@cygnusv:
BEGIN KEYBASE SALTPACK SIGNED MESSAGE. kXR7VktZdyH7rvq v5weRa0zkN2XGqT DuQ1aNm0q65l3mW 6NIK9bCc3jzQzaD jo2aqKOE1x88oVH iXw0VzkPLD54AlS tUTCxhAhIeABxf7 Q44DY6gWvoi78hb GrdzZh2tu4lCDi7 vKSlzpvqQmW3eAs PWQYTGP0ReAgwCd i7g9x7dEF8N3DEu BX2ADXsRn8KDoBJ TGtEDsgPAR8jFmr aMZUa0oX3ofJqPz JxtYVXzCbESloeZ . END KEYBASE SALTPACK SIGNED MESSAGE. -
@pdyraga:
BEGIN KEYBASE SALTPACK SIGNED MESSAGE. kXR7VktZdyH7rvq v5weRa0zkKUP1mo cBOwsMO2Zoy9oS4 RuaO1bwgSUG4cNZ RnlK7jKb7ivnD45 qAMIVQQZ05xUNZT BEzMRYgVdzeG6MM qbpjnR7HhETkR7P JVTjzXKHnoehmJu DZipyqsUU4JEnY8 e8K3w0jXsGNSwB5 gAHb1zjL4a1OXkq a5r79hyBAFlBKHX CoHTUUf2G5kSfZI Ldg6m0oX3ofJqPz JxtYVXzCbESloeZ . END KEYBASE SALTPACK SIGNED MESSAGE.
v1.0.0 (Mainnet): T token and Vending Machines
T token and Vending Machines release.
v1.0.0
is the release of three contracts deployed to Ethereum mainnet:
T
: Threshold Network token.- NU<>T
VendingMachine
: Contract implements a special update protocol to enable NU token holders to wrap their tokens and obtain T tokens according to a fixed ratio1 NU = 3.259242493160745 T
. This will go on indefinitely and enable NU token holders to join T network without needing to buy or sell any assets. Logistically, anyone holding NU can wrap the asset in order to upgrade to T. They can also unwrap T in order to downgrade back to NU. - KEEP<>T
VendingMachine
: Contract implements a special update protocol to enable KEEP token holders to wrap their tokens and obtain T tokens according to a fixed ratio1 KEEP = 4.783188631255016 T
. This will go on indefinitely and enable KEEP token holders to join T network without needing to buy or sell any assets. Logistically, anyone holding KEEP can wrap the asset in order to upgrade to T. They can also unwrap T in order to downgrade back to KEEP.
The release commit hash is signed by the development team, verifiable on Keybase. Our Keybase usernames are all associated with the Threshold Network organization and with our GitHub usernames.
Commit hash for clean builds is 65c092d0e880759ca2339967e2fb32b741258470
.
Signatures of commit hash from the development team (verify these in the Keybase app):
-
@pdyraga:
BEGIN KEYBASE SALTPACK SIGNED MESSAGE. kXR7VktZdyH7rvq v5weRa0zkKUP1mo cBOwsMO2Zoy9oS4 RuaO1bwgSUG4cNZ RnlK7jKb7j6lzdb uC4pUUa2JXyLp86 N0wBEjRVwo4O1S2 Xxvz5HwkI1oblio BTMtLYro9PXOQoo lZj70juewoSUTj9 aOPuJBFDt8z8j95 2ygPKIpqtDv7HVS Da0R2PuJhEq333H ij0ihMHPIlwioI2 Tovmr0S8BXMr9e1 Mnlz0u4UWTpHAvo . END KEYBASE SALTPACK SIGNED MESSAGE. -
@cygnusv:
BEGIN KEYBASE SALTPACK SIGNED MESSAGE. kXR7VktZdyH7rvq v5weRa0zkAqwprZ WdmiNHMXv1Tsakt C926HSE4v7tIyUp foFOLx5gpzQYbf5 ETygOhEBrF4ooya D7z3a6gNoDQ9DBA 5L208V5sgml0te5 PeWfxXiZX7HCvUu DFeIyqSEkhLg50k oGRHEqkfb2LORX8 x8WuRbqjuAz7heh 0N2k0oqW9FoHlmC F3U7SIF1ZGNjkP9 PmtwX0S8BXMr9e1 Mnlz0u4UWTpHAvo . END KEYBASE SALTPACK SIGNED MESSAGE. -
@nkuba:
BEGIN KEYBASE SALTPACK SIGNED MESSAGE. kXR7VktZdyH7rvq v5weRa0zkUgHswq LONGnytauGuQ68W zKcm0YTewHXEGd3 2M8FiSegAUYk2ct DeCzeJZTzwkH3Rj wBY3ntBHSqPwHX8 AfMON0adL4Z9cCI tJwH5uCKDA0xJct 3uoTbGFvw93yB4C 4DF0lYN3vwvPvv9 CGG1gYn76aLxkPP LxQegHv4KX2J81U IF8FVtMPRugLXfw kfXdh0S8BXMr9e1 Mnlz0u4UWTpHAvo . END KEYBASE SALTPACK SIGNED MESSAGE.