(Aragon 1) Reference implementation for aragonOS: a Solidity framework for building complex dApps and protocols
GPL-3.0 License
Bot releases are hidden (Show)
IAragonApp
interface (#597) @sohkai @bingenPublished by facuspagnuolo about 4 years ago
Published by facuspagnuolo about 4 years ago
IAragonApp
interface (#597) @bingenPublished by facuspagnuolo over 4 years ago
Published by facuspagnuolo over 4 years ago
Published by sohkai over 5 years ago
Special thanks to @haythem96 for helping make this release possible 🎉
This is a patch release to include a new forwarding interface, IForwarderFee
.
IForwarderFee
: allowing forwarders to declare they require feesIForwarderFee
is an optional interface that can be implemented by Forwarders (IForwarder
) to declare that their forwarding action requires a fee be paid.
This is used by frontends to assess whether a forwarding path has additional requirements to succeed:
Changes:
Published by sohkai over 5 years ago
Special thanks to @gregzaitsev for helping make this release possible 🎉
ReentrancyGuard
: making sure your function can't re-enterThis release includes a generic ReentrancyGuard
that comes available with AragonApp
. You can safely upgrade to using it, because it utilizes unstructured storage under the hood.
Using the new reentrancy guard is as simple as:
contract App is AragonApp {
function appLogic() external nonReentrant {
}
}
ConversionHelpers
: know when you live dangerouslyConversionHelpers
has been exposed as a generic utility for some of the more dangerous casts you may perform. Most of the time you don't want these, or they're already handled internally by aragonOS, but maybe you just want to live on the edge.
It currently exposes two conversions: uint256[] memory
to bytes memory
and back. These modify the memory in-place, so you should never re-use the old variable once you've done the cast. They're named dangerously (dangerouslyCastUintArrayToBytes()
and dangerouslyCastBytesToUintArray()
), to help you spot these!
Changes:
bytes
, and ensuring all returned bytes
are in allocated memory (d92e53f, 446653d, b6823b5, 009e0f5)Published by sohkai over 5 years ago
🎊 Special thanks to @ianbrt and @gregzaitsev for helping make this release possible 🎉
SafeERC20
: helping you work with tokens, even when Solidity doesn't want toInteracting with token contracts can be a tricky process when you can't trust their implementation. A number of buggy tokens have been identified on the Ethereum mainnet, with especially high-profile ones deployed having the "no return" bug.
SafeERC20
smooths out interactions with these buggy or otherwise potentially malicious tokens.
A set of "safe" functions, safeTransfer()
, safeTransferFrom()
, safeApprove()
, are available that handle the "no return" bug and enforce boolean returns (such that no reverts are ever thrown).
A further set of staticcall
utilities, staticBalanceOf()
and staticAllowance()
, are available to enforce the view
guarantees of these interfaces on Solidity pragmas pre-0.5.
Using SafeERC20
is as simple as:
contract TokenInteraction {
using SafeERC20 for ERC20;
function transferTo(ERC20 _token, address _to, uint256 _amount) external {
require(_token.safeTransfer(_to, _amount));
}
}
Changes:
Published by sohkai over 5 years ago
aragonOS 4.0.0 has completed audits from two independent security firms and is now being used by hundreds of Aragon organizations on the Ethereum mainnet.
See the release blog post and migration guide for all the new features and concepts.
Published by bingen almost 6 years ago
Inject web3 to deploy scripts so they can be used from outside.
Published by sohkai almost 6 years ago
The first release candidate of aragonOS 4.0!
Several changes have been made since beta.2, related to findings from audits, deployments, and improvements from general use.
We do not anticipate any further changes to the contracts.
🚨aragonOS 4.0 introduces several breaking changes in storage from aragonOS 3.0, so deployed contracts cannot be safely upgraded.
Published by sohkai about 6 years ago
Second beta release of aragonOS 4.0.
This is a candidate for audits.
🚨aragonOS 4.0 introduces several breaking changes in storage from aragonOS 3.0, so deployed contracts cannot be safely upgraded.
Published by sohkai about 6 years ago
First beta release of aragonOS 4.0.
This is a candidate for audits (see beta.2 instead)
🚨aragonOS 4.0 introduces several breaking changes in storage from aragonOS 3.0, so deployed contracts cannot be safely upgraded.
Published by sohkai about 6 years ago
Second alpha release of aragonOS 4.0.
🚨aragonOS 4.0 introduces several breaking changes in storage from aragonOS 3.0, so deployed contracts cannot be safely upgraded.
Published by sohkai about 6 years ago
Initial alpha release of aragonOS 4.0.
🚨aragonOS 4.0 introduces several breaking changes in storage from aragonOS 3.0, so deployed contracts cannot be safely upgraded.
Published by sohkai about 6 years ago
🚨 This is the last feature release of aragonOS 3. Future features will continue in aragonOS 4. 🎉
Improvements:
SafeMath
to their most recent, gas-optimized versions from OpenZeppelin (https://github.com/aragon/aragonOS/pull/353)TimeHelpers
contract to simplify time operations and conversions (https://github.com/aragon/aragonOS/pull/375)Published by sohkai about 6 years ago
Failed publish to NPM, use v3.1.12 instead.
Published by bingen about 6 years ago
This release includes the relicensing of aragonOS' interfaces and extendible contracts to MIT. This means that, from this release on, most users of aragonOS should be free to choose their own license, rather than being locked to a GPL.
Also, a number of safety improvements, as suggested by our auditors:
SafeMath
lib for uint8kernelIntegrity
modifierEVMScriptRunner
: add ScriptResult
logFinally, we've tweaked some truffle and CI configuration files.