# 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()
```

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


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.frax.finance/zh/fraxv1/frax-abi-dai-bi-di-zhi.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
