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
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