Overview
Interfaces Supported
Baal shares and loot are pausable, fungible tokens. Non-conformant tokens can also be handled by Baal by implementing
safeTransfer/From()
.
Baal shares support EIP-712-style approvals by implementing
permit()
, allowing pulls in a single transaction and 'gas' to be paid in tokens (including Baal shares), abstracting the need to hold ETH.
Minimal Proxy Contract
A composable design philosophy for DAOs, Zodiac is a collection of tools built according to an open standard
SharesERC20.sol
- ERC20 openzeppelin/contracts/token/ERC20/ERC20.sol
- clone proxy
- Ownable by baal
- Initializable openzeppelin/contracts/proxy/utils/Initializable.sol - for setup by baal
- delegation management similar to comp
- before transfer override: Allows transfers if msg.sender is Baal which enables minting and burning, move delegates and self delegate
External delegation functions
function delegate(address delegatee) externalfunction delegateBySig( address delegatee, uint256 nonce, uint256 deadline, bytes calldata signature ) external
Events
event DelegateVotesChanged( address indexed delegate, uint previousBalance, uint newBalance);event DelegateChanged( address indexed delegator, address indexed fromDelegate, address indexed toDelegate);event Transfer( address indexed from, address indexed to, uint256 amount);
LootToken.sol
- ERC20 openzeppelin/contracts/token/ERC20/ERC20.sol
- Ownable by baal
- minimal clone proxy eip-1167
- Initializable openzeppelin/contracts/proxy/utils/Initializable.sol - for setup by baal
- before transfer override: Allows transfers if msg.sender is Baal which enables minting and burning