FXS 智能合约及地址

调整版 ERC-20 合约,代表 FXS 代币,用于与 FRAX 稳定币相关的质押和治理活动。

部署

区块链
地址

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

状态变量

ERC-20 (Inherited)

https://docs.openzeppelin.com/contracts/2.x/api/token/erc20#ERC20

访问控制(Inherited)

https://docs.openzeppelin.com/contracts/3.x/api/access#AccessControl

FXS各项细分。

address public FRAXStablecoinAdd

FRAX 合约地址。

uint256 genesis_supply

FXS初始供应。

uint256 public maximum_supply

FXS最大供应。

uint256 public FXS_DAO_min

加入 DAO 组织所需的最低 FXS 量。

address public owner_address

合约Owner地址。

address public oracle_address

oracle合约地址。

address public timelock_address

时间锁地址。

FRAXStablecoin private FRAX

FRAX 合约实例。

struct Checkpoint {
    uint32 fromBlock;
    uint96 votes;
}

借鉴自Compound Finance。用于治理投票。

mapping (address => mapping (uint32 => Checkpoint)) public checkpoints

在特定区块下,给定地址的投票权列表。

mapping (address => uint32) public numCheckpoints

某个地址的Checkpoint计算。

受限制的函数

setOracle

setOracle(address new_oracle) external onlyByOracle

Change the address of the price oracle.

setFRAXAddress

setFRAXAddress(address frax_contract_address) external onlyByOracle

Set the address of the FRAX contract.

setFXSMinDAO

setFXSMinDAO(uint256 min_FXS) external onlyByOracle

Set minimum FXS required to join DAO groups.

mint

mint(address to, uint256 amount) public onlyPools

Mint new FXS tokens.

pool_mint

pool_mint(address m_address, uint256 m_amount) external onlyPools

This function is what other FRAX pools will call to mint new FXS (similar to the FRAX mint).

pool_burn_from

pool_burn_from(address b_address, uint256 b_amount) external onlyPools

This function is what other FRAX pools will call to burn FXS.

重写的公共函数

transfer

transfer(address recipient, uint256 amount) public virtual override returns (bool)

Transfer FXS tokens.

transferFrom

transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool)

Transfer FXS tokens from another account. Must have an allowance set beforehand.

公共函数

getCurrentVotes

getCurrentVotes(address account) external view returns (uint96)

Gets the current votes balance for account.

getPriorVotes

getPriorVotes(address account, uint blockNumber) public view returns (uint96)

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.

内部函数

_moveDelegates

_moveDelegates(address srcRep, address dstRep, uint96 amount) internal

Misnomer, from Compound Finance's _moveDelegates. Helps keep track of available voting power for FXS holders.

_writeCheckpoint

_writeCheckpoint(address voter, uint32 nCheckpoints, uint96 oldVotes, uint96 newVotes) internal

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

safe32(uint n, string memory errorMessage) internal pure returns (uint32)

Make sure the provided int is 32 bits or less, and convert it to a uint32.

safe96

safe96(uint n, string memory errorMessage) internal pure returns (uint96)

Make sure the provided int is 96 bits or less, and convert it to a uint96.

add96

add96(uint96 a, uint96 b, string memory errorMessage) internal pure returns (uint96)

Add two uint96 integers safely.

sub96

sub96(uint96 a, uint96 b, string memory errorMessage) internal pure returns (uint96) 

Subtract two uint96 integers safely.

getChainId

getChainId() internal pure returns (uint)

Return the Ethereum chain ID the contract is deployed on

事件

VoterVotesChanged

VoterVotesChanged(address indexed voter, uint previousBalance, uint newBalance)

Emitted when a voters account's vote balance changes

FXSBurned

FXSBurned(address indexed from, address indexed to, uint256 amount)

Emitted when FXS is burned, usually from a redemption by the pool

修饰符

onlyPools

onlyPools()

Restrict actions to pool contracts, e.g. minting new FXS.

onlyByOracle

onlyByOracle()

限制只有预言机可以执行的操作,例如设置 FRAX 和预言机地址。

Last updated