> For the complete documentation index, see [llms.txt](https://docs.frax.finance/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.frax.finance/zh/fraxv1/frax-abi-dai-bi-di-zhi.md).

# FRAX ABI & 代币地址

## **部署**

<table><thead><tr><th width="274.57142857142856">区块链</th><th>地址</th></tr></thead><tbody><tr><td>Arbitrum</td><td>0x17FC002b466eEc40DaE837Fc4bE5c67993ddBd6F</td></tr><tr><td>Aurora</td><td>0xE4B9e004389d91e4134a28F19BD833cBA1d994B6</td></tr><tr><td>Avalanche</td><td>0xD24C2Ad096400B6FBcd2ad8B24E7acBc21A1da64</td></tr><tr><td>Base (LayerZero)</td><td>0x909DBdE1eBE906Af95660033e478D59EFe831fED</td></tr><tr><td>Blast (LayerZero)</td><td>0x909DBdE1eBE906Af95660033e478D59EFe831fED</td></tr><tr><td>Boba</td><td>0x7562F525106F5d54E891e005867Bf489B5988CD9</td></tr><tr><td>BSC</td><td>0x90C97F71E18723b0Cf0dfa30ee176Ab653E89F40</td></tr><tr><td>Ethereum (native)</td><td><a href="https://etherscan.io/address/0x853d955aCEf822Db058eb8505911ED77F175b99e">0x853d955aCEf822Db058eb8505911ED77F175b99e</a></td></tr><tr><td>Ethereum (LayerZero)</td><td>0x909DBdE1eBE906Af95660033e478D59EFe831fED</td></tr><tr><td>Evmos</td><td>0xE03494D0033687543a80c9B1ca7D6237F2EA8BD8</td></tr><tr><td>Fantom</td><td>0xdc301622e621166BD8E82f2cA0A26c13Ad0BE355</td></tr><tr><td>Fraxtal (Native)</td><td><a href="https://fraxscan.com/token/0xFc00000000000000000000000000000000000001">0xFc00000000000000000000000000000000000001</a></td></tr><tr><td>Fraxtal (LayerZero)</td><td>0x80eede496655fb9047dd39d9f418d5483ed600df</td></tr><tr><td>Harmony</td><td>0xFa7191D292d5633f702B0bd7E3E3BcCC0e633200</td></tr><tr><td>Linea (Axelar)</td><td>0x406cde76a3fd20e48bc1e0f60651e60ae204b040</td></tr><tr><td>Mantle (Axelar)</td><td>0x406Cde76a3fD20e48bc1E0F60651e60Ae204B040</td></tr><tr><td>Metis (LayerZero)</td><td>0x909DBdE1eBE906Af95660033e478D59EFe831fED</td></tr><tr><td>Mode (LayerZero)</td><td>0x80eede496655fb9047dd39d9f418d5483ed600df</td></tr><tr><td>Moonbeam</td><td>0x322E86852e492a7Ee17f28a78c663da38FB33bfb</td></tr><tr><td>Moonriver</td><td>0x1A93B23281CC1CDE4C4741353F3064709A16197d</td></tr><tr><td>Optimism</td><td>0x2E3D870790dC77A83DD1d18184Acc7439A53f475</td></tr><tr><td>Polygon</td><td>0x45c32fA6DF82ead1e2EF74d17b76547EDdFaFF89</td></tr><tr><td>Sei (LayerZero)</td><td>0x80eede496655fb9047dd39d9f418d5483ed600df</td></tr><tr><td>Scroll (Axelar)</td><td>0x406cde76a3fd20e48bc1e0f60651e60ae204b040</td></tr><tr><td>Solana</td><td>FR87nWEUxVgerFGhZM8Y4AggKGLnaXswr1Pd8wZ4kZcp</td></tr><tr><td>TRON</td><td>TBD</td></tr><tr><td>X-Layer (LayerZero)</td><td>0x80eede496655fb9047dd39d9f418d5483ed600df</td></tr></tbody></table>

## **状态变量**

#### 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>\
\
**注意：FRAX 和 FXS 合约没有任何暂停或黑名单控制（包括系统合约）。**

#### **关于**FRAX

```
enum PriceChoice { FRAX, FXS }
```

一个枚举，声明了 FRAX 和 FXS。用于与预言机配合使用。

```
ChainlinkETHUSDPriceConsumer eth_usd_pricer
```

用于 Chainlink ETH / USD 交易的实例。与 FRAX / WETH、FXS / WETH、抵押品 / FRAX 和抵押品 / FXS 交易对结合使用，可以计算 FRAX/FXS/抵押品的价格（以美元计）。

```
uint8 eth_usd_pricer_decimals
```

Chainlink ETH / USD 交易对价格的小数位数。

```
UniswapPairOracle fraxEthOracle
```

FRAX / WETH Uniswap 交易对价格预言机的实例。

```
UniswapPairOracle fxsEthOracle
```

FXS / WETH Uniswap 交易对价格预言机的实例。

```
address[] public owners
```

拥有特权操作的地址数组。

```
address governance_address
```

治理合约的地址。

```
address public creator_address
```

合约创建者的地址。

```
address public timelock_address
```

时间锁合约的地址。

```
address public fxs_address
```

FXS合约的地址。

```
address public frax_eth_oracle_address
```

`fraxEthOracle` 的地址。

```
address public fxs_eth_oracle_address
```

`fxsEthOracle` 的地址。

```
address public weth_address
```

标准的Wrapped以太坊（WETH）合约的地址。主网应为 `0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2` for the mainnet.&#x20;

```
address public eth_usd_consumer_address
```

`ChainlinkETHUSDPriceConsumer` 的地址.

```
uint256 public genesis_supply
```

FRAX的创世供应量。应为一个小的非零金额。大部分FRAX供应将来自铸造，但初始需要少量以防止在各种函数中出现除零错误。

```
address[] frax_pools_array
```

所有`FraxPool` 合约地址的数组。

```
mapping(address => bool) public frax_pools
```

本质上与`frax_pools_array`相同，但以映射的形式存在。在诸如`globalCollateralValue()`等函数中有助于节省gas。

```
uint256 public global_collateral_ratio
```

当前所有`FraxPool` 中FRAX与抵押品的比例。

```
uint256 public redemption_fee
```

将FRAX兑换为FXS和/或抵押品的费用。同时也是使用FXS回购多余抵押品的费用。有关使用方法，请参见 `FraxPool`合约。

```
uint256 public minting_fee
```

从FXS和/或抵押品铸造FRAX的费用。有关使用方法，请参见`FraxPool`合约。

```
address public DEFAULT_ADMIN_ADDRESS
```

在构造函数中设置。用于`AccessControl`。

```
bytes32 public constant COLLATERAL_RATIO_PAUSER
```

用于暂停抵押比率的常量。

```
bool public collateral_ratio_paused
```

抵押比率是否已暂停。

## **查看函数**

**oracle\_price**

```
oracle_price(PriceChoice choice) internal view returns (uint256)
```

获取FRAX或FXS的价格，以美元计算。

**frax\_price**

```
frax_price() public view returns (uint256)
```

从FRAX-ETH Chainlink价格预言机返回FRAX的价格。

**fxs\_price**

```
fxs_price() public view returns (uint256)
```

从FXS-ETH Chainlink价格预言机返回FXS的价格。

**frax\_info**

```
frax_info() public view returns (uint256, uint256, uint256, uint256, uint256, uint256, uint256)
```

返回一些常用的状态变量和计算值。这是为了避免对不同获取函数的重复调用，减少成本。在燃气费用方面，直接返回所有信息并只使用其中的一部分更为经济。

**globalCollateralValue**

```
globalCollateralValue() public view returns (uint256)
```

遍历所有 FRAX 池，计算所有池中抵押物的总价值。这将使用每种抵押物的预言机价格。

## **公共函数**

**refreshCollateralRatio**

```
refreshCollateralRatio() public
```

该函数检查 FRAX 的价格，并在价格不为 $1 时刷新抵押比率。如果价格高于 $1，则比率降低 0.5%。如果价格低于 $1，则比率增加 0.5%。任何人都可以调用该函数来更改比率。此函数每小时只能调用一次。

## **受限函数**

**mint**

```
mint(uint256 amount) public virtual onlyByOwnerOrGovernance
```

&#x20;internal \_mint()的公共实现。

**pool\_burn\_from**

```
pool_burn_from(address b_address, uint256 b_amount) public onlyPools
```

用户赎回时由池子使用。

**pool\_mint**

```
pool_mint(address m_address, uint256 m_amount) public onlyPools
```

这个函数是其他 Frax 池调用以铸造新 FRAX 的。

**addPool**

```
addPool(address pool_address) public onlyByOwnerOrGovernance
```

添加支持的抵押地址，例如 Tether 和 BUSD，必须是 ERC20。

**removePool**

```
removePool(address pool_address) public onlyByOwnerOrGovernance
```

移除一个池子

**setOwner**

```
setOwner(address owner_address) public onlyByOwnerOrGovernance
```

设置合约的管理员。

**setFraxStep**

```
setFraxStep(uint256 _new_step) public onlyByOwnerOrGovernance
```

设置在执行 `refreshCollateralRatio()` 时，抵押比率将改变的金额。

**setPriceTarget**

```
setPriceTarget(uint256 _new_price_target) public onlyByOwnerOrGovernance
```

设置用于 `refreshCollateralRatio()` 的价格目标（不影响铸造/赎回）。

**setRefreshCooldown**

```
setRefreshCooldown(uint256 _new_cooldown) public onlyByOwnerOrGovernance
```

设置 `refreshCollateralRatio()` 的冷却时间。

**setRedemptionFee**

```
setRedemptionFee(uint256 red_fee) public onlyByOwnerOrGovernance
```

设置赎回费用。

**setMintingFee**

```
setMintingFee(uint256 min_fee) public onlyByOwnerOrGovernance
```

设置铸造费用。

**setFXSAddress**

```
setFXSAddress(address _fxs_address) public onlyByOwnerOrGovernance
```

设置 FXS 地址。

**setETHUSDOracle**

```
setETHUSDOracle(address _eth_usd_consumer_address) public onlyByOwnerOrGovernance
```

设置 ETH / USD 预言机地址。

**setFRAXEthOracle**

```
setFRAXEthOracle(address _frax_addr, address _weth_address) public onlyByOwnerOrGovernance
```

设置 FRAX / ETH Uniswap 预言机地址。

**setFXSEthOracle**

```
setFXSEthOracle(address _fxs_addr, address _weth_address) public onlyByOwnerOrGovernance
```

设置 FXS / ETH Uniswap 预言机地址。

**toggleCollateralRatio**

```
toggleCollateralRatio() public onlyCollateralRatioPauser 
```

切换暂停/恢复抵押比例。

## **事件**

**FRAXBurned**

```
FRAXBurned(address indexed from, address indexed to, uint256 amount)
```

当FRAX被销毁时触发，通常是由于池子的赎回。

## **修饰符**

**onlyCollateralRatioPauser**

```
onlyCollateralRatioPauser()
```

限制操作仅限于指定的抵押比例暂停者。

**onlyPools**

```
onlyPools()
```

限制操作仅限于池合约，例如铸造新的 FRAX。

**onlyByGovernance**

```
onlyByGovernance()
```

限制操作仅限于治理合约，例如设置铸造和赎回费用，以及预言机和池地址。

**onlyByOwnerOrGovernance**

```
onlyByOwnerOrGovernance()
```

限制操作仅限于治理合约或所有者账户，例如设置铸造和赎回费用，以及预言机和池地址。
