aere-contracts/contracts/AereToken.sol
Aere Network a13a649b77
Some checks are pending
contracts-ci / Install (lockfile) → compile → full test suite (push) Waiting to run
contracts-ci / PQC known-answer tests (NIST vectors) (push) Waiting to run
contracts-ci / Coverage (scoped, with artifacts) (push) Waiting to run
Initial public release
Aere Network public source. Everything here can be checked against the live
chain (chain id 2800, https://rpc.aere.network).

Scope note, stated up front rather than buried: consensus on chain 2800 is
classical secp256k1 ECDSA QBFT. The post-quantum work in this repository is at
the signature, precompile, account and transport layers. Nothing here makes the
consensus post-quantum, and no document in it should be read as claiming so.
2026-07-20 01:02:37 +03:00

40 lines
1.3 KiB
Solidity

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.19;
/**
* @title AereToken (governance interface)
* @notice Minimal interface for AereGovernance compatibility.
*
* NOTE: AERE Network's native token is AERE itself (no ERC-20 contract). For
* DeFi compatibility we provide WAERE.sol (the wrapped ERC-20). This
* contract exists ONLY because AereGovernance.sol was written with an
* AereToken type assumption. It serves as the governance-voting-power
* proxy and reads circulating supply from WAERE.
*
* Pass the deployed WAERE address into the constructor; balanceOf(user) and
* getCirculatingSupply() are then routed through to WAERE.
*/
interface IWAERE {
function balanceOf(address) external view returns (uint256);
function totalSupply() external view returns (uint256);
}
contract AereToken {
IWAERE public immutable waere;
constructor(address _waere) {
waere = IWAERE(_waere);
}
/// @notice Voting power = WAERE balance (user must wrap their AERE to vote)
function balanceOf(address account) external view returns (uint256) {
return waere.balanceOf(account);
}
/// @notice Total wrapped AERE in circulation (used for governance quorum calc)
function getCirculatingSupply() external view returns (uint256) {
return waere.totalSupply();
}
}