Skip to content

Releases: 0xIntuition/intuition-contracts

Intuition Protocol Beta Release v1.0

21 Aug 20:01
Compare
Choose a tag to compare

Intuition Protocol Beta Release v1.0

NOTE: We are very much in BETA. We encourage you to check back frequently for the most current information and updates. Your understanding and patience during this exciting time are greatly appreciated.

Core Contracts

  • EthMultiVault: Manages the creation and management of vaults associated with atoms (identities) & triples (claims). Represents the "heart" of the Intuition Protocol. It is an upgradeable contract which follows the transparent upgradeable proxy pattern.
  • AtomWallet: This contract is an abstract account associated with a corresponding atom. Atom wallets are deployed through EthMultiVault, which acts as a factory for them. Atom wallets follow the beacon proxy pattern, which involves the deployment of a separate atomWalletBeacon contract.

Utility Contracts

  • CustomMulticall3: A utility contract to allow for the custom multicall operations. It inherits from the original Multicall3 contract. It also follows the transparent upgradeable proxy pattern.

Library Contracts

  • Errors: Library containing all custom errors detailing cases where the Intuition Protocol may revert.

Interfaces

  • IEthMultiVault: An interface to facilitate the creation and management of many ERC-4626 style vaults associated with atoms (identities) & triples (claims) in a single contract.
  • IPermit2: Minimal Permit2 interface, derived from Uniswap.

Scripts

  • Deploy.s.sol: This script is used for deploying the core contracts of the Intuition Protocol: AtomWallet implementation contract, atomWalletBeacon, as well as the EthMultiVault implementation and proxy contracts. Also, its important to note that the implementations of both the AtomWallet and EthMultiVault contracts can only be changed after a timelock period (initially set to 3 days) has passed, thanks to an instance of TimelockController being deployed and used as an admin for upgrading both contracts. To learn more about the deploy process, please take a look at our README.
  • DeployCustomMulticall3.s.sol: A script to deploy the implementation of the utility contract CustomMulticall3, alongside its proxy contract.

Tests

  • helpers: A set of utility methods to help test out other contracts, primarily EthMultiVault.
  • invariant: A set of tests to help test out various invariants of the Intuition Protocol, using single and multi vault actors, as well as different insolvency tests.
  • tools: Scripts to facilitate the usage of automated security tools, such as Slither and Echidna, which we use to increase our test coverage.
  • unit: A comprehensive set of unit tests for our core contracts.

License Remarks

  • It's important to note that we currently use the Business Source License 1.1 for all of our contracts
  • You can find more information here

Changelog

Commit 5196230 : Added more information related to our novel 'Multi Vault' standard in the README.

Commit cb73410 : Removed the experimental versions of Attestor and AttestorFactory contracts due to their incompatibility with the rest of our system at the moment. Their release is planned once these issues are resolved and they will be included in this repository.

Commit c695ec3: Added settings to resolve remapping conflicts.

Commit 4b6cdfe: Prepared README and deploy script for the official Beta deployment of our smart contracts on Base mainnet.

Commit 4ef7906: Added CustomMulticall3, Attestor and AttestorFactory utility contracts, together with their respective deploy scripts.

Commit 2ffbfc1: Added details related to our Base Sepolia testnet Beta deployment.

Commit 85e73b4: In this commit, we addressed all of the valid issues that have been accepted during the Hats Finance auditing competition, together with improved unit and other test coverage, as well as introduction of automated security tools like Slither and Manticore.

Commit 243cb8f: Updated "Known Nuances" section in our README again, this time being the final update before the Beta release.

Commit ba53eaa: Standardized fee variable names in our contracts to use singular consistently (e.g. protocolFee instead of protocolFees).

Commits 467f5cc and e317b18: These commits address updates in the "Known Nuances" section in our README.

Commit 3bf26b3: Introduced "Known Nuances" section in README and removed CI workflow files which were not needed in this repository.

Commit f2ac6c7: Added our initial and revised audit reports by Trail of Bits in PDF format.

Commit 247f3f1: Updated .gitmodules config, deleted modules that weren't used anymore and added some minor updates to the README.

Commit be0bc7c: Updated our LICENSE file to include the license change date, added content to the README, configured remappings.txt file, deleted _playground folder that was not needed in this repo and added minor fixes and refactorings throughout our smart contracts.

Commit 46a3cc3: Refactored our smart contracts to follow the official Solidity code style guide, added package.json, remappings.txt, .gitmodules and .gitignore files, _playground folder, Github CI workflow file, configured lib folder to include all needed dependencies, installed necessary npm modules and added our test and script folders.

Commit 5e8a64f: Added our core contracts, interfaces and libraries, as well as our LICENSE file.

Commit ac0395d: Initial commit which includes only the initial version of the README file.