This working document aims to give a brief overview of how Aragon can architect a RISC-0 application for Zk voting.
In this section we distill the elements of the RISC-0 toolchain relevant for our application.
| /boot | |
| |-- EFI | |
| |-- efi | |
| |-- grub | |
| | |-- fonts | |
| | | `-- unicode.pf2 | |
| | |-- grub.cfg | |
| | |-- grubenv | |
| | |-- locale | |
| | | |-- ast.mo |
| /boot | |
| |-- EFI | |
| |-- efi | |
| | `-- EFI | |
| | |-- BOOT | |
| | | `-- BOOTX64.EFI | |
| | |-- GRUB | |
| | | `-- grubx64.efi | |
| | `-- grub_uefi | |
| | `-- grubx64.efi |
| // Sources flattened with hardhat v2.22.3 https://hardhat.org | |
| // SPDX-License-Identifier: AGPL-3.0-or-later AND MIT | |
| // File @openzeppelin/contracts-upgradeable/interfaces/draft-IERC1822Upgradeable.sol@v4.9.5 | |
| // Original license: SPDX_License_Identifier: MIT | |
| // OpenZeppelin Contracts (last updated v4.5.0) (interfaces/draft-IERC1822.sol) | |
| pragma solidity ^0.8.0; |
This working document aims to give a brief overview of how Aragon can architect a RISC-0 application for Zk voting.
In this section we distill the elements of the RISC-0 toolchain relevant for our application.
| // SPDX-License-Identifier: MIT | |
| pragma solidity ^0.8.0; | |
| import {IERC165, IERC721, IERC721Metadata} from "@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol"; | |
| import {IERC6372} from "@openzeppelin/contracts/interfaces/IERC6372.sol"; | |
| import {IERC4906} from "@openzeppelin/contracts/interfaces/IERC4906.sol"; | |
| import {IVotes} from "./IVotes.sol"; // modified ivotesish interface for dynamic voting | |
| /*/////////////////////////////////////////////////////////////// | |
| CORE FUNCTIONALITY |
| pragma solidity ^0.8.17; | |
| import {Test, console2 as console} from "forge-std/Test.sol"; | |
| import {Clock} from "src/clock/Clock.sol"; | |
| contract TestWhenWeStart is Test { | |
| Clock clock; | |
| function setUp() public { | |
| clock = new Clock(); |
| { | |
| description = "Dev shell with rzup and RISC Zero FHS compatibility"; | |
| inputs = { | |
| nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.05"; | |
| flake-utils.url = "github:numtide/flake-utils"; | |
| }; | |
| outputs = { | |
| self, |
Aerodrome implements a Time-Weighted Average Price (TWAP) oracle directly within its liquidity pool contracts, providing a decentralized and manipulation-resistant price feed mechanism. This document provides a comprehensive analysis of the TWAP functionality and how to reliably use Aero pools as price oracles.
The AERO token implements a sophisticated emission system designed to bootstrap liquidity while protecting long-term token holders through an anti-dilution "rebase" mechanism. The protocol transitions through growth, decay, and tail emission phases, with a unique feature that mints additional tokens specifically to compensate veNFT holders for dilution. This document provides a comprehensive analysis of the minting mechanics, emission schedule, and the rebase system.
Replacing the native AERO token with an exogenous token in Aerodrome is technically feasible due to the protocol's modular architecture. However, this integration requires careful consideration of interface compatibility, minting mechanisms, governance implications, and economic effects. This document provides a comprehensive analysis of all considerations for such an integration.