FXS Smart Contract & Addresses
Modified ERC-20 Contract representing the FXS token, which is used for staking and governance actions surrounding the FRAX stablecoin.
Deployments
Chain | Address |
---|---|
Arbitrum | 0x9d2F299715D94d8A7E6F5eaa8E654E8c74a988A7 |
Aurora | 0xBb8831701E68B99616bF940b7DafBeb4CDb23e0b |
Avalanche | 0x214DB107654fF987AD859F34125307783fC8e387 |
Base (LayerZero) | 0x23432452B720C80553458496D4D9d7C5003280d0 |
Blast (LayerZero) | 0x23432452B720C80553458496D4D9d7C5003280d0 |
Boba | 0xae8871A949F255B12704A98c00C2293354a36013 |
BSC | 0xe48A3d7d0Bc88d552f730B62c006bC925eadB9eE |
Ethereum (native) | 0x3432B6A60D23Ca0dFCa7761B7ab56459D9C964D0 |
Ethereum (LayerZero) | 0x23432452B720C80553458496D4D9d7C5003280d0 |
Evmos | 0xd8176865DD0D672c6Ab4A427572f80A72b4B4A9C |
Fantom | 0x7d016eec9c25232b01F23EF992D98ca97fc2AF5a |
Fraxtal (native) | 0xFc00000000000000000000000000000000000002 |
Fraxtal (LayerZero) | 0x64445f0aecc51e94ad52d8ac56b7190e764e561a |
Harmony | 0x0767D8E1b05eFA8d6A301a65b324B6b66A1CC14c |
Metis (LayerZero) | 0x23432452B720C80553458496D4D9d7C5003280d0 |
Mode (LayerZero) | 0x64445f0aecc51e94ad52d8ac56b7190e764e561a |
Moonbeam | 0x2CC0A9D8047A5011dEfe85328a6f26968C8aaA1C |
Moonriver | 0x6f1D1Ee50846Fcbc3de91723E61cb68CFa6D0E98 |
Optimism | 0x67CCEA5bb16181E7b4109c9c2143c24a1c2205Be |
Polygon | 0x1a3acf6D19267E2d3e7f898f42803e90C9219062 |
Sei (LayerZero) | 0x64445f0aecc51e94ad52d8ac56b7190e764e561a |
Solana | 6LX8BhMQ4Sy2otmAWj7Y5sKd9YTVVUgfMsBzT6B9W7ct |
X-Layer | 0x64445f0aecc51e94ad52d8ac56b7190e764e561a |
State Variables
ERC-20 (Inherited)
https://docs.openzeppelin.com/contracts/2.x/api/token/erc20#ERC20
AccessControl (Inherited)
https://docs.openzeppelin.com/contracts/3.x/api/access#AccessControl
FXS-Specific
Address of the FRAX contract.
Genesis supply of FXS.
Maximum supply of FXS.
Minimum FXS required to join DAO groups.
Address of the contract owner.
Address of the oracle.
Address of the timelock.
The FRAX contract instance.
From Compound Finance. Used for governance voting.
List of voting power for a given address, at a given block.
Checkpoint count for an address.
Restricted Functions
setOracle
Change the address of the price oracle.
setFRAXAddress
Set the address of the FRAX contract.
setFXSMinDAO
Set minimum FXS required to join DAO groups.
mint
Mint new FXS tokens.
pool_mint
This function is what other FRAX pools will call to mint new FXS (similar to the FRAX mint).
pool_burn_from
This function is what other FRAX pools will call to burn FXS.
Overridden Public Functions
transfer
Transfer FXS tokens.
transferFrom
Transfer FXS tokens from another account. Must have an allowance set beforehand.
Public Functions
getCurrentVotes
Gets the current votes balance for account
.
getPriorVotes
Determine the prior number of votes for an account as of a block number. Block number must be a finalized block or else this function will revert to prevent misinformation.
Internal Functions
_moveDelegates
Misnomer, from Compound Finance's _moveDelegates
. Helps keep track of available voting power for FXS holders.
_writeCheckpoint
From Compound Finance's governance scheme. Helps keep track of available voting power for FXS holders at a specific block. Called when a FXS token transfer, mint, or burn occurs.
safe32
Make sure the provided int is 32 bits or less, and convert it to a uint32.
safe96
Make sure the provided int is 96 bits or less, and convert it to a uint96.
add96
Add two uint96 integers safely.
sub96
Subtract two uint96 integers safely.
getChainId
Return the Ethereum chain ID the contract is deployed on
Events
VoterVotesChanged
Emitted when a voters account's vote balance changes
FXSBurned
Emitted when FXS is burned, usually from a redemption by the pool
Modifiers
onlyPools
Restrict actions to pool contracts, e.g. minting new FXS.
onlyByOracle
Restrict actions to the oracle, such as setting the FRAX and oracle addresses
Last updated