Fix & Optimize contract
This commit is contained in:
456
SECURITY_FIX_GUIDE.md
Normal file
456
SECURITY_FIX_GUIDE.md
Normal file
@@ -0,0 +1,456 @@
|
||||
# 🔒 Slither 安全审计修复指南
|
||||
|
||||
## 📌 修复优先级
|
||||
|
||||
- **P0 (立即修复)**: 高危漏洞,可能导致资金损失或合约被破坏
|
||||
- **P1 (尽快修复)**: 中危问题,可能导致精度损失或逻辑错误
|
||||
- **P2 (建议修复)**: 低危问题,影响代码质量和可维护性
|
||||
|
||||
---
|
||||
|
||||
## 🔴 P0: 高危问题 (必须立即修复)
|
||||
|
||||
### 1. ⚠️ 未保护的初始化函数 (最严重!)
|
||||
|
||||
**问题**: 所有可升级合约的 `initialize` 函数缺少 `initializer` 修饰符
|
||||
|
||||
**风险**: 攻击者可以调用 `upgradeToAndCall` 删除合约!
|
||||
|
||||
**受影响的合约**:
|
||||
- YTAssetFactory.sol
|
||||
- YTAssetVault.sol
|
||||
- YTPoolManager.sol
|
||||
- YTVault.sol
|
||||
- YTPriceFeed.sol
|
||||
- YTRewardRouter.sol
|
||||
- USDY.sol
|
||||
- WUSD.sol
|
||||
- YTLPToken.sol
|
||||
|
||||
#### ✅ 修复方案
|
||||
|
||||
**YTAssetFactory.sol (Line 52-63)**
|
||||
|
||||
```solidity
|
||||
// ❌ 修复前
|
||||
function initialize(
|
||||
address _vaultImplementation,
|
||||
uint256 _defaultHardCap
|
||||
) external initializer {
|
||||
if (_vaultImplementation == address(0)) revert InvalidAddress();
|
||||
|
||||
__Ownable_init(msg.sender);
|
||||
__UUPSUpgradeable_init();
|
||||
|
||||
vaultImplementation = _vaultImplementation;
|
||||
defaultHardCap = _defaultHardCap;
|
||||
}
|
||||
|
||||
// ✅ 修复后 (已经有 initializer 修饰符,这个合约是正确的)
|
||||
// 但需要确保其他合约也添加了
|
||||
```
|
||||
|
||||
**YTAssetVault.sol (Line 125-154) - 需要修复**
|
||||
|
||||
```solidity
|
||||
// ❌ 修复前
|
||||
function initialize(
|
||||
string memory _name,
|
||||
string memory _symbol,
|
||||
address _manager,
|
||||
uint256 _hardCap,
|
||||
address _wusd,
|
||||
uint256 _redemptionTime,
|
||||
uint256 _initialWusdPrice,
|
||||
uint256 _initialYtPrice
|
||||
) external initializer {
|
||||
// ... 初始化代码
|
||||
}
|
||||
|
||||
// ✅ 修复后 (已正确)
|
||||
// 这个合约已经有 initializer 修饰符了
|
||||
```
|
||||
|
||||
**实际问题**: 检查代码发现大部分合约已经使用了 `initializer` 修饰符。
|
||||
但 Slither 可能是在检测 **proxy 合约的部署安全性**。
|
||||
|
||||
**额外保护**: 在实现合约的构造函数中添加 `_disableInitializers()`
|
||||
|
||||
```solidity
|
||||
/// @custom:oz-upgrades-unsafe-allow constructor
|
||||
constructor() {
|
||||
_disableInitializers();
|
||||
}
|
||||
```
|
||||
|
||||
这样可以防止实现合约被直接初始化。
|
||||
|
||||
---
|
||||
|
||||
### 2. ⚠️ 任意 from 地址的 transferFrom
|
||||
|
||||
**位置**: `YTPoolManager.sol` Line 158
|
||||
|
||||
**问题代码**:
|
||||
```solidity
|
||||
function _addLiquidity(
|
||||
address _fundingAccount, // ⚠️ 可以是任意地址
|
||||
address _account,
|
||||
address _token,
|
||||
uint256 _amount,
|
||||
uint256 _minUsdy,
|
||||
uint256 _minYtLP
|
||||
) private returns (uint256) {
|
||||
// ...
|
||||
IERC20(_token).safeTransferFrom(_fundingAccount, ytVault, _amount); // ⚠️ 危险!
|
||||
// ...
|
||||
}
|
||||
```
|
||||
|
||||
**风险**: 如果 `_fundingAccount` 可以被恶意控制,可能导致未授权的代币转移。
|
||||
|
||||
#### ✅ 修复方案
|
||||
|
||||
**方案 1: 限制调用者 (推荐)**
|
||||
|
||||
```solidity
|
||||
function _addLiquidity(
|
||||
address _fundingAccount,
|
||||
address _account,
|
||||
address _token,
|
||||
uint256 _amount,
|
||||
uint256 _minUsdy,
|
||||
uint256 _minYtLP
|
||||
) private returns (uint256) {
|
||||
if (_amount == 0) revert InvalidAmount();
|
||||
|
||||
// ✅ 添加: 确保只有授权的 handler 或用户本人可以使用其账户
|
||||
if (_fundingAccount != msg.sender && !isHandler[msg.sender]) {
|
||||
revert Forbidden();
|
||||
}
|
||||
|
||||
uint256 aumInUsdy = getAumInUsdy(true);
|
||||
uint256 ytLPSupply = IERC20(ytLP).totalSupply();
|
||||
|
||||
IERC20(_token).safeTransferFrom(_fundingAccount, ytVault, _amount);
|
||||
// ... 后续逻辑
|
||||
}
|
||||
```
|
||||
|
||||
**方案 2: 使用白名单**
|
||||
|
||||
```solidity
|
||||
// 添加状态变量
|
||||
mapping(address => bool) public approvedFundingAccounts;
|
||||
|
||||
// 添加管理函数
|
||||
function setApprovedFundingAccount(address _account, bool _approved) external onlyGov {
|
||||
approvedFundingAccounts[_account] = _approved;
|
||||
}
|
||||
|
||||
// 在 _addLiquidity 中检查
|
||||
function _addLiquidity(...) private returns (uint256) {
|
||||
if (!approvedFundingAccounts[_fundingAccount] && _fundingAccount != msg.sender) {
|
||||
revert UnauthorizedFundingAccount();
|
||||
}
|
||||
// ...
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🟠 P1: 中危问题 (尽快修复)
|
||||
|
||||
### 3. 重入漏洞
|
||||
|
||||
**位置**: `YTVault.sol` Line 331-335
|
||||
|
||||
**问题代码**:
|
||||
```solidity
|
||||
function sellUSDY(address _token, address _receiver)
|
||||
external
|
||||
onlyPoolManager
|
||||
nonReentrant // ✅ 已经有 nonReentrant,但顺序不对
|
||||
notInEmergency
|
||||
returns (uint256)
|
||||
{
|
||||
// ... 前面的逻辑
|
||||
|
||||
// ❌ 外部调用
|
||||
IUSDY(usdy).burn(address(this), usdyAmount);
|
||||
|
||||
// ❌ 之后更新状态
|
||||
IERC20(_token).safeTransfer(_receiver, amountOut);
|
||||
_updateTokenBalance(_token); // 状态更新在外部调用后!
|
||||
}
|
||||
```
|
||||
|
||||
**分析**: 虽然已经有 `nonReentrant` 修饰符,但 Slither 仍然报告是因为:
|
||||
1. `_updateTokenBalance` 在外部调用后执行
|
||||
2. 如果 `_receiver` 是恶意合约,可能在 `safeTransfer` 回调中做些什么
|
||||
|
||||
#### ✅ 修复方案
|
||||
|
||||
**遵循 CEI 模式 (Checks-Effects-Interactions)**
|
||||
|
||||
```solidity
|
||||
function sellUSDY(address _token, address _receiver)
|
||||
external
|
||||
onlyPoolManager
|
||||
nonReentrant
|
||||
notInEmergency
|
||||
returns (uint256)
|
||||
{
|
||||
if (!whitelistedTokens[_token]) revert TokenNotWhitelisted();
|
||||
if (!isSwapEnabled) revert SwapDisabled();
|
||||
|
||||
uint256 usdyAmount = _transferIn(usdy);
|
||||
if (usdyAmount == 0) revert InvalidAmount();
|
||||
|
||||
uint256 price = _getPrice(_token, true);
|
||||
uint256 redemptionAmount = usdyAmount * PRICE_PRECISION / price;
|
||||
redemptionAmount = _adjustForDecimals(redemptionAmount, usdy, _token);
|
||||
if (redemptionAmount == 0) revert InvalidAmount();
|
||||
|
||||
uint256 feeBasisPoints = _getSwapFeeBasisPoints(usdy, _token, redemptionAmount);
|
||||
uint256 amountOut = redemptionAmount * (BASIS_POINTS_DIVISOR - feeBasisPoints) / BASIS_POINTS_DIVISOR;
|
||||
if (amountOut == 0) revert InvalidAmount();
|
||||
if (poolAmounts[_token] < amountOut) revert InsufficientPool();
|
||||
|
||||
uint256 usdyAmountOut = amountOut * price / PRICE_PRECISION;
|
||||
usdyAmountOut = _adjustForDecimals(usdyAmountOut, _token, usdy);
|
||||
|
||||
// ✅ 1. Effects: 先更新所有状态
|
||||
_decreasePoolAmount(_token, amountOut);
|
||||
_decreaseUsdyAmount(_token, usdyAmountOut);
|
||||
|
||||
// ✅ 预先更新 tokenBalance (模拟转出后的余额)
|
||||
uint256 currentBalance = IERC20(_token).balanceOf(address(this));
|
||||
tokenBalances[_token] = currentBalance - amountOut;
|
||||
|
||||
// ✅ 2. Interactions: 最后进行外部调用
|
||||
IUSDY(usdy).burn(address(this), usdyAmount);
|
||||
IERC20(_token).safeTransfer(_receiver, amountOut);
|
||||
|
||||
// ✅ 3. 验证最终余额 (可选,增强安全性)
|
||||
uint256 finalBalance = IERC20(_token).balanceOf(address(this));
|
||||
require(finalBalance == tokenBalances[_token], "Balance mismatch");
|
||||
|
||||
emit RemoveLiquidity(_receiver, _token, usdyAmount, amountOut);
|
||||
|
||||
return amountOut;
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 4. 先除后乘导致精度损失
|
||||
|
||||
**位置**: 多处
|
||||
|
||||
#### 问题 1: `Lending.sol` Line 343, 346
|
||||
|
||||
```solidity
|
||||
// ❌ 修复前
|
||||
uint256 collateralValueUSD = (collateralAmount * assetPrice) / assetScale;
|
||||
uint256 discountedValue = (collateralValueUSD * assetConfig.liquidationFactor) / 1e18;
|
||||
|
||||
// ✅ 修复后
|
||||
uint256 collateralValueUSD = (collateralAmount * assetPrice * assetConfig.liquidationFactor)
|
||||
/ (assetScale * 1e18);
|
||||
```
|
||||
|
||||
#### 问题 2: `Lending.sol` Line 470, 479
|
||||
|
||||
```solidity
|
||||
// ❌ 修复前
|
||||
uint256 assetPriceDiscounted = (assetPrice * (FACTOR_SCALE - discountFactor)) / FACTOR_SCALE;
|
||||
uint256 result = (basePrice * baseAmount * assetScale) / (assetPriceDiscounted * baseScale);
|
||||
|
||||
// ✅ 修复后
|
||||
uint256 result = (basePrice * baseAmount * assetScale * FACTOR_SCALE)
|
||||
/ (assetPrice * (FACTOR_SCALE - discountFactor) * baseScale);
|
||||
```
|
||||
|
||||
#### 问题 3: `YTVault.sol` Line 548, 552
|
||||
|
||||
```solidity
|
||||
// ❌ 修复前
|
||||
uint256 averageDiff = (initialDiff + nextDiff) / 2;
|
||||
uint256 taxBps = _taxBasisPoints * averageDiff / targetAmount;
|
||||
|
||||
// ✅ 修复后
|
||||
uint256 taxBps = _taxBasisPoints * (initialDiff + nextDiff) / (2 * targetAmount);
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🟡 P2: 低危/信息性问题
|
||||
|
||||
### 5. 缺少事件发射
|
||||
|
||||
```solidity
|
||||
// YTPoolManager.sol Line 112
|
||||
function setGov(address _gov) external onlyGov {
|
||||
if (_gov == address(0)) revert InvalidAddress();
|
||||
address oldGov = gov; // ✅ 添加
|
||||
gov = _gov;
|
||||
emit GovChanged(oldGov, _gov); // ✅ 添加事件
|
||||
}
|
||||
|
||||
// ✅ 添加事件定义
|
||||
event GovChanged(address indexed oldGov, address indexed newGov);
|
||||
event PoolManagerChanged(address indexed oldManager, address indexed newManager);
|
||||
event AumAdjustmentChanged(uint256 addition, uint256 deduction);
|
||||
```
|
||||
|
||||
### 6. 缺少零地址检查
|
||||
|
||||
```solidity
|
||||
// YTAssetVault.sol Line 176
|
||||
function setManager(address _manager) external onlyFactory {
|
||||
require(_manager != address(0), "Zero address"); // ✅ 添加检查
|
||||
manager = _manager;
|
||||
emit ManagerSet(_manager);
|
||||
}
|
||||
|
||||
// YTPriceFeed.sol Line 80
|
||||
function setWusdPriceSource(address _wusdPriceSource) external onlyGov {
|
||||
require(_wusdPriceSource != address(0), "Zero address"); // ✅ 添加检查
|
||||
wusdPriceSource = _wusdPriceSource;
|
||||
}
|
||||
```
|
||||
|
||||
### 7. 忽略返回值
|
||||
|
||||
```solidity
|
||||
// YTRewardRouter.sol Line 117
|
||||
// ❌ 修复前
|
||||
IERC20(_token).approve(ytPoolManager, _amount);
|
||||
|
||||
// ✅ 修复后
|
||||
bool success = IERC20(_token).approve(ytPoolManager, _amount);
|
||||
require(success, "Approve failed");
|
||||
|
||||
// 或者使用 SafeERC20
|
||||
IERC20(_token).safeApprove(ytPoolManager, _amount);
|
||||
```
|
||||
|
||||
### 8. Solidity 版本统一
|
||||
|
||||
```solidity
|
||||
// ❌ 修复前: 各个文件使用不同版本
|
||||
pragma solidity ^0.8.0;
|
||||
|
||||
// ✅ 修复后: 统一使用
|
||||
pragma solidity ^0.8.20;
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📋 修复检查清单
|
||||
|
||||
### P0 - 高危问题
|
||||
- [ ] 在所有实现合约添加 `_disableInitializers()` 到构造函数
|
||||
- [ ] 修复 `YTPoolManager._addLiquidity` 的任意 from 问题
|
||||
- [ ] 验证所有合约的 `initialize` 函数有 `initializer` 修饰符
|
||||
|
||||
### P1 - 中危问题
|
||||
- [ ] 重构 `YTVault.sellUSDY` 遵循 CEI 模式
|
||||
- [ ] 修复所有先除后乘的精度问题
|
||||
- [ ] Lending._absorbInternal
|
||||
- [ ] Lending.quoteCollateral
|
||||
- [ ] YTVault.sellUSDY
|
||||
- [ ] YTVault.swap
|
||||
- [ ] YTVault.getFeeBasisPoints
|
||||
|
||||
### P2 - 低危问题
|
||||
- [ ] 添加缺失的事件
|
||||
- [ ] 添加零地址检查
|
||||
- [ ] 修复忽略返回值的问题
|
||||
- [ ] 统一 Solidity 版本到 ^0.8.20
|
||||
|
||||
---
|
||||
|
||||
## 🧪 测试建议
|
||||
|
||||
### 1. 初始化安全测试
|
||||
|
||||
```solidity
|
||||
// test/security/InitializerTest.t.sol
|
||||
function testCannotReinitialize() public {
|
||||
vm.expectRevert();
|
||||
factory.initialize(address(vault), 1000);
|
||||
}
|
||||
|
||||
function testCannotInitializeImplementation() public {
|
||||
YTAssetVault impl = new YTAssetVault();
|
||||
vm.expectRevert();
|
||||
impl.initialize("Test", "TST", address(this), 1000, address(0), 0, 0, 0);
|
||||
}
|
||||
```
|
||||
|
||||
### 2. 重入攻击测试
|
||||
|
||||
```solidity
|
||||
contract MaliciousReceiver {
|
||||
YTVault public vault;
|
||||
bool public attacked;
|
||||
|
||||
function attack() external {
|
||||
// 尝试重入
|
||||
vault.sellUSDY(token, address(this));
|
||||
}
|
||||
|
||||
// ERC20 回调
|
||||
function onERC20Received(...) external {
|
||||
if (!attacked) {
|
||||
attacked = true;
|
||||
vault.sellUSDY(token, address(this)); // 应该失败
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function testReentrancyProtection() public {
|
||||
MaliciousReceiver attacker = new MaliciousReceiver(vault);
|
||||
vm.expectRevert("ReentrancyGuard: reentrant call");
|
||||
attacker.attack();
|
||||
}
|
||||
```
|
||||
|
||||
### 3. 精度损失测试
|
||||
|
||||
```solidity
|
||||
function testMathPrecision() public {
|
||||
uint256 price = 1e30;
|
||||
uint256 amount = 1e18;
|
||||
uint256 scale = 1e18;
|
||||
|
||||
// 测试先除后乘 vs 先乘后除的差异
|
||||
uint256 result1 = (amount * price) / scale;
|
||||
uint256 result2 = amount * (price / scale);
|
||||
|
||||
assertEq(result1, result2, "Precision loss detected");
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📞 后续步骤
|
||||
|
||||
1. **立即修复 P0 问题**
|
||||
2. **运行完整测试套件**
|
||||
3. **重新运行 Slither 验证修复**
|
||||
4. **考虑进行专业审计**
|
||||
|
||||
```bash
|
||||
# 重新运行 Slither
|
||||
slither . --exclude-informational --exclude-low
|
||||
|
||||
# 运行测试
|
||||
forge test -vvv
|
||||
|
||||
# 生成覆盖率报告
|
||||
forge coverage
|
||||
```
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -96,6 +96,47 @@ contract Lending is
|
||||
_unpause();
|
||||
}
|
||||
|
||||
/**
|
||||
* @notice 计算累计利息后的索引(不修改状态)
|
||||
* @param timeElapsed 经过的时间
|
||||
* @return 新的 supplyIndex 和 borrowIndex
|
||||
*/
|
||||
function accruedInterestIndices(uint256 timeElapsed) internal view returns (uint256, uint256) {
|
||||
uint256 newSupplyIndex = supplyIndex;
|
||||
uint256 newBorrowIndex = borrowIndex;
|
||||
|
||||
if (timeElapsed > 0) {
|
||||
// 计算实际的 totalSupply 和 totalBorrow(含利息)
|
||||
uint256 totalSupply = (uint256(totalSupplyBase) * supplyIndex) / 1e18;
|
||||
uint256 totalBorrow = (uint256(totalBorrowBase) * borrowIndex) / 1e18;
|
||||
|
||||
uint64 utilization = LendingMath.getUtilization(totalSupply, totalBorrow);
|
||||
|
||||
// 计算供应利率和借款利率(每秒利率)
|
||||
uint64 supplyRate = LendingMath.getSupplyRate(
|
||||
utilization,
|
||||
supplyKink,
|
||||
supplyPerSecondInterestRateSlopeLow,
|
||||
supplyPerSecondInterestRateSlopeHigh,
|
||||
supplyPerSecondInterestRateBase
|
||||
);
|
||||
|
||||
uint64 borrowRate = LendingMath.getBorrowRate(
|
||||
utilization,
|
||||
borrowKink,
|
||||
borrowPerSecondInterestRateSlopeLow,
|
||||
borrowPerSecondInterestRateSlopeHigh,
|
||||
borrowPerSecondInterestRateBase
|
||||
);
|
||||
|
||||
// 计算新的利息累计因子
|
||||
newSupplyIndex = LendingMath.accrueInterest(supplyIndex, supplyRate, timeElapsed);
|
||||
newBorrowIndex = LendingMath.accrueInterest(borrowIndex, borrowRate, timeElapsed);
|
||||
}
|
||||
|
||||
return (newSupplyIndex, newBorrowIndex);
|
||||
}
|
||||
|
||||
/**
|
||||
* @notice 计提利息
|
||||
*/
|
||||
@@ -103,34 +144,8 @@ contract Lending is
|
||||
uint256 timeElapsed = block.timestamp - lastAccrualTime;
|
||||
if (timeElapsed == 0) return;
|
||||
|
||||
// 计算实际的 totalSupply 和 totalBorrow(含利息)
|
||||
// 注意:totalSupplyBase 和 totalBorrowBase 都是正数本金(正数=存款本金,负数=借款本金)
|
||||
// supplyIndex 用于存款,borrowIndex 用于借款
|
||||
uint256 totalSupply = (uint256(totalSupplyBase) * supplyIndex) / 1e18;
|
||||
uint256 totalBorrow = (uint256(totalBorrowBase) * borrowIndex) / 1e18;
|
||||
|
||||
uint64 utilization = LendingMath.getUtilization(totalSupply, totalBorrow);
|
||||
|
||||
// 计算供应利率和借款利率(每秒利率)
|
||||
uint64 supplyRate = LendingMath.getSupplyRate(
|
||||
utilization,
|
||||
supplyKink,
|
||||
supplyPerSecondInterestRateSlopeLow,
|
||||
supplyPerSecondInterestRateSlopeHigh,
|
||||
supplyPerSecondInterestRateBase
|
||||
);
|
||||
|
||||
uint64 borrowRate = LendingMath.getBorrowRate(
|
||||
utilization,
|
||||
borrowKink,
|
||||
borrowPerSecondInterestRateSlopeLow,
|
||||
borrowPerSecondInterestRateSlopeHigh,
|
||||
borrowPerSecondInterestRateBase
|
||||
);
|
||||
|
||||
// 更新利息累计因子(使用每秒利率)
|
||||
supplyIndex = LendingMath.accrueInterest(supplyIndex, supplyRate, timeElapsed);
|
||||
borrowIndex = LendingMath.accrueInterest(borrowIndex, borrowRate, timeElapsed);
|
||||
// 使用辅助函数计算新索引
|
||||
(supplyIndex, borrowIndex) = accruedInterestIndices(timeElapsed);
|
||||
|
||||
lastAccrualTime = block.timestamp;
|
||||
}
|
||||
@@ -323,12 +338,13 @@ contract Lending is
|
||||
AssetConfig memory assetConfig = assetConfigs[asset];
|
||||
uint256 assetPrice = IPriceFeed(assetConfig.priceFeed).getPrice();
|
||||
|
||||
// 计算抵押品价值(USD,8位精度)
|
||||
// 计算抵押品价值(USD,8位精度)- 用于事件记录
|
||||
uint256 assetScale = 10 ** assetConfig.decimals;
|
||||
uint256 collateralValueUSD = (collateralAmount * assetPrice) / assetScale;
|
||||
|
||||
// 应用 liquidationFactor 折扣
|
||||
uint256 discountedValue = (collateralValueUSD * assetConfig.liquidationFactor) / 1e18;
|
||||
// 直接计算折扣后的价值,避免二次除法
|
||||
// discounted = (amount * price * factor) / (scale * 1e18)
|
||||
uint256 discountedValue = (collateralAmount * assetPrice * assetConfig.liquidationFactor) / (assetScale * 1e18);
|
||||
totalCollateralValue += discountedValue;
|
||||
|
||||
// 将抵押品转移到清算库存
|
||||
@@ -410,6 +426,12 @@ contract Lending is
|
||||
) external override nonReentrant whenNotPaused {
|
||||
if (collateralReserves[asset] == 0) revert InsufficientBalance();
|
||||
|
||||
// 检查储备金是否充足(使用实时计算的储备金)
|
||||
int256 currentReserves = getReserves();
|
||||
if (currentReserves >= 0 && uint256(currentReserves) >= targetReserves) {
|
||||
revert NotForSale(); // 储备金充足,无需出售
|
||||
}
|
||||
|
||||
// 计算可购买的抵押品数量
|
||||
uint256 collateralAmount = quoteCollateral(asset, baseAmount);
|
||||
|
||||
@@ -417,15 +439,6 @@ contract Lending is
|
||||
if (collateralAmount < minAmount) revert InsufficientBalance();
|
||||
if (collateralAmount > collateralReserves[asset]) revert InsufficientBalance();
|
||||
|
||||
// 检查储备金是否充足(如果已达到目标,不再出售抵押品)
|
||||
uint256 balance = IERC20(baseToken).balanceOf(address(this));
|
||||
uint256 totalSupply = (uint256(totalSupplyBase) * supplyIndex) / 1e18;
|
||||
uint256 totalBorrow = (uint256(totalBorrowBase) * borrowIndex) / 1e18;
|
||||
int256 currentReserves = int256(balance) - int256(totalSupply) + int256(totalBorrow);
|
||||
if (currentReserves >= 0 && uint256(currentReserves) >= targetReserves) {
|
||||
revert NotForSale(); // 储备金充足,无需出售
|
||||
}
|
||||
|
||||
// 收取清算人支付的资金
|
||||
IERC20(baseToken).safeTransferFrom(msg.sender, address(this), baseAmount);
|
||||
|
||||
@@ -448,23 +461,17 @@ contract Lending is
|
||||
uint256 assetPrice = IPriceFeed(assetConfig.priceFeed).getPrice();
|
||||
uint256 basePrice = IPriceFeed(baseTokenPriceFeed).getPrice();
|
||||
|
||||
// 计算折扣率
|
||||
// discountFactor = storeFrontPriceFactor * (FACTOR_SCALE - liquidationFactor) / FACTOR_SCALE
|
||||
uint256 FACTOR_SCALE = 1e18;
|
||||
uint256 discountFactor = (storeFrontPriceFactor * (FACTOR_SCALE - assetConfig.liquidationFactor)) / FACTOR_SCALE;
|
||||
|
||||
// 计算折扣后的资产价格
|
||||
// assetPriceDiscounted = assetPrice * (FACTOR_SCALE - discountFactor) / FACTOR_SCALE
|
||||
uint256 assetPriceDiscounted = (assetPrice * (FACTOR_SCALE - discountFactor)) / FACTOR_SCALE;
|
||||
|
||||
// 计算可购买的抵押品数量
|
||||
// 公式:(basePrice * baseAmount * assetScale) / (assetPriceDiscounted * baseScale)
|
||||
uint256 baseScale = 10 ** uint256(IERC20Metadata(baseToken).decimals());
|
||||
uint256 assetScale = 10 ** uint256(assetConfig.decimals);
|
||||
|
||||
// 使用中间变量分步计算,避免潜在的溢出
|
||||
// 先计算分子和分母,再进行除法
|
||||
return (basePrice * baseAmount * assetScale) / (assetPriceDiscounted * baseScale);
|
||||
// 折扣因子
|
||||
uint256 discountFactor = (storeFrontPriceFactor * (FACTOR_SCALE - assetConfig.liquidationFactor)) / FACTOR_SCALE;
|
||||
|
||||
// 分子: basePrice * baseAmount * assetScale * FACTOR_SCALE
|
||||
// 分母: assetPrice * (FACTOR_SCALE - discountFactor) * baseScale
|
||||
return (basePrice * baseAmount * assetScale * FACTOR_SCALE) /
|
||||
(assetPrice * (FACTOR_SCALE - discountFactor) * baseScale);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -579,11 +586,15 @@ contract Lending is
|
||||
return collateralReserves[asset];
|
||||
}
|
||||
|
||||
function getReserves() external view override returns (int256) {
|
||||
// 计算实际总供应和总借款(含利息)
|
||||
function getReserves() public view override returns (int256) {
|
||||
// 计算最新的利息索引(不修改状态)
|
||||
uint256 timeElapsed = block.timestamp - lastAccrualTime;
|
||||
(uint256 newSupplyIndex, uint256 newBorrowIndex) = accruedInterestIndices(timeElapsed);
|
||||
|
||||
// 使用最新索引计算实际总供应和总借款(含利息)
|
||||
uint256 balance = IERC20(baseToken).balanceOf(address(this));
|
||||
uint256 totalSupply = (uint256(totalSupplyBase) * supplyIndex) / 1e18;
|
||||
uint256 totalBorrow = (uint256(totalBorrowBase) * borrowIndex) / 1e18;
|
||||
uint256 totalSupply = (uint256(totalSupplyBase) * newSupplyIndex) / 1e18;
|
||||
uint256 totalBorrow = (uint256(totalBorrowBase) * newBorrowIndex) / 1e18;
|
||||
|
||||
// reserves = balance - totalSupply + totalBorrow
|
||||
return int256(balance) - int256(totalSupply) + int256(totalBorrow);
|
||||
@@ -629,10 +640,8 @@ contract Lending is
|
||||
* @notice 提取协议储备金(仅 owner)
|
||||
*/
|
||||
function withdrawReserves(address to, uint256 amount) external override onlyOwner nonReentrant {
|
||||
uint256 balance = IERC20(baseToken).balanceOf(address(this));
|
||||
uint256 totalSupply = (uint256(totalSupplyBase) * supplyIndex) / 1e18;
|
||||
uint256 totalBorrow = (uint256(totalBorrowBase) * borrowIndex) / 1e18;
|
||||
int256 currentReserves = int256(balance) - int256(totalSupply) + int256(totalBorrow);
|
||||
// 使用实时计算的储备金
|
||||
int256 currentReserves = getReserves();
|
||||
|
||||
// 检查储备金是否充足
|
||||
if (currentReserves < 0 || amount > uint256(currentReserves)) {
|
||||
|
||||
@@ -18,6 +18,11 @@ import "../../interfaces/IUSDY.sol";
|
||||
contract YTPoolManager is Initializable, UUPSUpgradeable, ReentrancyGuardUpgradeable {
|
||||
using SafeERC20 for IERC20;
|
||||
|
||||
/// @custom:oz-upgrades-unsafe-allow constructor
|
||||
constructor() {
|
||||
_disableInitializers();
|
||||
}
|
||||
|
||||
error Forbidden();
|
||||
error InvalidAddress();
|
||||
error InvalidDuration();
|
||||
@@ -64,6 +69,8 @@ contract YTPoolManager is Initializable, UUPSUpgradeable, ReentrancyGuardUpgrade
|
||||
);
|
||||
event CooldownDurationSet(uint256 duration);
|
||||
event HandlerSet(address indexed handler, bool isActive);
|
||||
event GovChanged(address indexed oldGov, address indexed newGov);
|
||||
event AumAdjustmentChanged(uint256 addition, uint256 deduction);
|
||||
|
||||
modifier onlyGov() {
|
||||
if (msg.sender != gov) revert Forbidden();
|
||||
@@ -109,7 +116,9 @@ contract YTPoolManager is Initializable, UUPSUpgradeable, ReentrancyGuardUpgrade
|
||||
|
||||
function setGov(address _gov) external onlyGov {
|
||||
if (_gov == address(0)) revert InvalidAddress();
|
||||
address oldGov = gov;
|
||||
gov = _gov;
|
||||
emit GovChanged(oldGov, _gov);
|
||||
}
|
||||
|
||||
function setHandler(address _handler, bool _isActive) external onlyGov {
|
||||
@@ -126,6 +135,7 @@ contract YTPoolManager is Initializable, UUPSUpgradeable, ReentrancyGuardUpgrade
|
||||
function setAumAdjustment(uint256 _addition, uint256 _deduction) external onlyGov {
|
||||
aumAddition = _addition;
|
||||
aumDeduction = _deduction;
|
||||
emit AumAdjustmentChanged(_addition, _deduction);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -12,6 +12,11 @@ import "../../interfaces/IYTToken.sol";
|
||||
*/
|
||||
contract YTPriceFeed is Initializable, UUPSUpgradeable {
|
||||
|
||||
/// @custom:oz-upgrades-unsafe-allow constructor
|
||||
constructor() {
|
||||
_disableInitializers();
|
||||
}
|
||||
|
||||
error Forbidden();
|
||||
error MaxChangeTooHigh();
|
||||
error PriceChangeTooLarge();
|
||||
|
||||
@@ -18,6 +18,11 @@ import "../../interfaces/IYTVault.sol";
|
||||
contract YTRewardRouter is Initializable, UUPSUpgradeable, ReentrancyGuardUpgradeable, PausableUpgradeable {
|
||||
using SafeERC20 for IERC20;
|
||||
|
||||
/// @custom:oz-upgrades-unsafe-allow constructor
|
||||
constructor() {
|
||||
_disableInitializers();
|
||||
}
|
||||
|
||||
error Forbidden();
|
||||
error AlreadyInitialized();
|
||||
error InvalidAddress();
|
||||
|
||||
@@ -17,6 +17,11 @@ import "../../interfaces/IYTPriceFeed.sol";
|
||||
contract YTVault is Initializable, UUPSUpgradeable, ReentrancyGuardUpgradeable {
|
||||
using SafeERC20 for IERC20;
|
||||
|
||||
/// @custom:oz-upgrades-unsafe-allow constructor
|
||||
constructor() {
|
||||
_disableInitializers();
|
||||
}
|
||||
|
||||
error Forbidden();
|
||||
error OnlyPoolManager();
|
||||
error NotSwapper();
|
||||
@@ -101,6 +106,8 @@ contract YTVault is Initializable, UUPSUpgradeable, ReentrancyGuardUpgradeable {
|
||||
);
|
||||
event EmergencyModeSet(bool enabled);
|
||||
event SwapEnabledSet(bool enabled);
|
||||
event GovChanged(address indexed oldGov, address indexed newGov);
|
||||
event PoolManagerChanged(address indexed oldManager, address indexed newManager);
|
||||
|
||||
modifier onlyGov() {
|
||||
if (msg.sender != gov) revert Forbidden();
|
||||
@@ -159,12 +166,16 @@ contract YTVault is Initializable, UUPSUpgradeable, ReentrancyGuardUpgradeable {
|
||||
|
||||
function setGov(address _gov) external onlyGov {
|
||||
if (_gov == address(0)) revert InvalidAddress();
|
||||
address oldGov = gov;
|
||||
gov = _gov;
|
||||
emit GovChanged(oldGov, _gov);
|
||||
}
|
||||
|
||||
function setPoolManager(address _manager) external onlyGov {
|
||||
if (_manager == address(0)) revert InvalidAddress();
|
||||
address oldManager = ytPoolManager;
|
||||
ytPoolManager = _manager;
|
||||
emit PoolManagerChanged(oldManager, _manager);
|
||||
}
|
||||
|
||||
function setSwapper(address _swapper, bool _isActive) external onlyGov {
|
||||
@@ -545,11 +556,12 @@ contract YTVault is Initializable, UUPSUpgradeable, ReentrancyGuardUpgradeable {
|
||||
}
|
||||
|
||||
// 恶化平衡 → 提高手续费
|
||||
uint256 averageDiff = (initialDiff + nextDiff) / 2;
|
||||
if (averageDiff > targetAmount) {
|
||||
averageDiff = targetAmount;
|
||||
// taxBps = tax * (a + b) / (2 * target)
|
||||
uint256 sumDiff = initialDiff + nextDiff;
|
||||
if (sumDiff / 2 > targetAmount) {
|
||||
sumDiff = targetAmount * 2;
|
||||
}
|
||||
uint256 taxBps = _taxBasisPoints * averageDiff / targetAmount;
|
||||
uint256 taxBps = _taxBasisPoints * sumDiff / (targetAmount * 2);
|
||||
return _feeBasisPoints + taxBps;
|
||||
}
|
||||
|
||||
|
||||
@@ -13,6 +13,11 @@ import "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";
|
||||
*/
|
||||
contract USDY is Initializable, ERC20Upgradeable, OwnableUpgradeable, UUPSUpgradeable {
|
||||
|
||||
/// @custom:oz-upgrades-unsafe-allow constructor
|
||||
constructor() {
|
||||
_disableInitializers();
|
||||
}
|
||||
|
||||
error Forbidden();
|
||||
error InvalidVault();
|
||||
|
||||
|
||||
@@ -12,6 +12,11 @@ import "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol";
|
||||
*/
|
||||
contract WUSD is Initializable, ERC20Upgradeable, UUPSUpgradeable, OwnableUpgradeable {
|
||||
|
||||
/// @custom:oz-upgrades-unsafe-allow constructor
|
||||
constructor() {
|
||||
_disableInitializers();
|
||||
}
|
||||
|
||||
/**
|
||||
* @notice 初始化合约
|
||||
* @param _name 代币名称
|
||||
|
||||
@@ -13,6 +13,11 @@ import "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";
|
||||
*/
|
||||
contract YTLPToken is Initializable, ERC20Upgradeable, OwnableUpgradeable, UUPSUpgradeable {
|
||||
|
||||
/// @custom:oz-upgrades-unsafe-allow constructor
|
||||
constructor() {
|
||||
_disableInitializers();
|
||||
}
|
||||
|
||||
error NotMinter();
|
||||
error InvalidMinter();
|
||||
|
||||
|
||||
@@ -18,6 +18,11 @@ contract YTAssetFactory is Initializable, UUPSUpgradeable, OwnableUpgradeable {
|
||||
error VaultNotExists();
|
||||
error InvalidHardCap();
|
||||
|
||||
/// @custom:oz-upgrades-unsafe-allow constructor
|
||||
constructor() {
|
||||
_disableInitializers();
|
||||
}
|
||||
|
||||
/// @notice YTAssetVault实现合约地址
|
||||
address public vaultImplementation;
|
||||
|
||||
@@ -23,6 +23,11 @@ contract YTAssetVault is
|
||||
{
|
||||
using SafeERC20 for IERC20;
|
||||
|
||||
/// @custom:oz-upgrades-unsafe-allow constructor
|
||||
constructor() {
|
||||
_disableInitializers();
|
||||
}
|
||||
|
||||
error Forbidden();
|
||||
error HardCapExceeded();
|
||||
error InvalidAmount();
|
||||
@@ -6,4 +6,4 @@ test = 'test'
|
||||
cache_path = 'cache_forge'
|
||||
via_ir = true
|
||||
optimizer = true
|
||||
optimizer_runs = 200
|
||||
optimizer_runs = 200
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.30+commit.73712a01\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"CONSOLE\":{\"details\":\"console.sol and console2.sol work by executing a staticcall to this address. Calculated as `address(uint160(uint88(bytes11(\\\"console.log\\\"))))`.\"},\"CREATE2_FACTORY\":{\"details\":\"Used when deploying with create2. Taken from https://github.com/Arachnid/deterministic-deployment-proxy.\"},\"DEFAULT_SENDER\":{\"details\":\"The default address for tx.origin and msg.sender. Calculated as `address(uint160(uint256(keccak256(\\\"foundry default caller\\\"))))`.\"},\"DEFAULT_TEST_CONTRACT\":{\"details\":\"The address of the first contract `CREATE`d by a running test contract. When running tests, each test contract is `CREATE`d by `DEFAULT_SENDER` with nonce 1. Calculated as `VM.computeCreateAddress(VM.computeCreateAddress(DEFAULT_SENDER, 1), 1)`.\"},\"MULTICALL3_ADDRESS\":{\"details\":\"Deterministic deployment address of the Multicall3 contract. Taken from https://www.multicall3.com.\"},\"SECP256K1_ORDER\":{\"details\":\"The order of the secp256k1 curve.\"},\"VM_ADDRESS\":{\"details\":\"Cheat code address. Calculated as `address(uint160(uint256(keccak256(\\\"hevm cheat code\\\"))))`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/Base.sol\":\"CommonBase\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@ensdomains/=node_modules/@ensdomains/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"],\"viaIR\":true},\"sources\":{\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x4b2a5a85e045dcf6a082700c7252e43854c2eed88f860aaa18ec1e85218ae2bf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://98d060ed5be569a92d908fc358149039dc8f833d61973aa1b9d1d8235676bf6d\",\"dweb:/ipfs/QmaWQpn5dJmbMS5skwmPPMeUWZG35BLkignPpcA3zyagEs\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xddd9f444525fe3b2db77df55bde598676784b13bd19ead1d19b95802de0eacdc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://53770fa34bf0d75fd2946b71335ce6e6001053595e6dd78e7af9baf7a5270616\",\"dweb:/ipfs/QmVvfuJi928Hw6i44oUArYeAP8Pst1bvQvUeJ3CTdh1yUZ\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x1f3cfde19cafbd145904bfb00581a10ca7667186276e8c91dc2943ec559de88a\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bdf9afa0df475e5ea0aa1f5feb27987499051a1a85a9177d3d01e131ff0f1af2\",\"dweb:/ipfs/QmdQfAdeU4PtQSHs1mMwoEUpdFfbrgRdJuhVXeaxeb5dxV\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.30+commit.73712a01"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@ensdomains/=node_modules/@ensdomains/","@openzeppelin/=node_modules/@openzeppelin/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/Base.sol":"CommonBase"},"evmVersion":"prague","libraries":{},"viaIR":true},"sources":{"lib/forge-std/src/Base.sol":{"keccak256":"0x4b2a5a85e045dcf6a082700c7252e43854c2eed88f860aaa18ec1e85218ae2bf","urls":["bzz-raw://98d060ed5be569a92d908fc358149039dc8f833d61973aa1b9d1d8235676bf6d","dweb:/ipfs/QmaWQpn5dJmbMS5skwmPPMeUWZG35BLkignPpcA3zyagEs"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0xddd9f444525fe3b2db77df55bde598676784b13bd19ead1d19b95802de0eacdc","urls":["bzz-raw://53770fa34bf0d75fd2946b71335ce6e6001053595e6dd78e7af9baf7a5270616","dweb:/ipfs/QmVvfuJi928Hw6i44oUArYeAP8Pst1bvQvUeJ3CTdh1yUZ"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x1f3cfde19cafbd145904bfb00581a10ca7667186276e8c91dc2943ec559de88a","urls":["bzz-raw://bdf9afa0df475e5ea0aa1f5feb27987499051a1a85a9177d3d01e131ff0f1af2","dweb:/ipfs/QmdQfAdeU4PtQSHs1mMwoEUpdFfbrgRdJuhVXeaxeb5dxV"],"license":"MIT OR Apache-2.0"}},"version":1},"id":25}
|
||||
{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.30+commit.73712a01\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"CONSOLE\":{\"details\":\"console.sol and console2.sol work by executing a staticcall to this address. Calculated as `address(uint160(uint88(bytes11(\\\"console.log\\\"))))`.\"},\"CREATE2_FACTORY\":{\"details\":\"Used when deploying with create2. Taken from https://github.com/Arachnid/deterministic-deployment-proxy.\"},\"DEFAULT_SENDER\":{\"details\":\"The default address for tx.origin and msg.sender. Calculated as `address(uint160(uint256(keccak256(\\\"foundry default caller\\\"))))`.\"},\"DEFAULT_TEST_CONTRACT\":{\"details\":\"The address of the first contract `CREATE`d by a running test contract. When running tests, each test contract is `CREATE`d by `DEFAULT_SENDER` with nonce 1. Calculated as `VM.computeCreateAddress(VM.computeCreateAddress(DEFAULT_SENDER, 1), 1)`.\"},\"MULTICALL3_ADDRESS\":{\"details\":\"Deterministic deployment address of the Multicall3 contract. Taken from https://www.multicall3.com.\"},\"SECP256K1_ORDER\":{\"details\":\"The order of the secp256k1 curve.\"},\"VM_ADDRESS\":{\"details\":\"Cheat code address. Calculated as `address(uint160(uint256(keccak256(\\\"hevm cheat code\\\"))))`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/Base.sol\":\"CommonBase\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@ensdomains/=node_modules/@ensdomains/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"],\"viaIR\":true},\"sources\":{\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x4b2a5a85e045dcf6a082700c7252e43854c2eed88f860aaa18ec1e85218ae2bf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://98d060ed5be569a92d908fc358149039dc8f833d61973aa1b9d1d8235676bf6d\",\"dweb:/ipfs/QmaWQpn5dJmbMS5skwmPPMeUWZG35BLkignPpcA3zyagEs\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xddd9f444525fe3b2db77df55bde598676784b13bd19ead1d19b95802de0eacdc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://53770fa34bf0d75fd2946b71335ce6e6001053595e6dd78e7af9baf7a5270616\",\"dweb:/ipfs/QmVvfuJi928Hw6i44oUArYeAP8Pst1bvQvUeJ3CTdh1yUZ\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x1f3cfde19cafbd145904bfb00581a10ca7667186276e8c91dc2943ec559de88a\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bdf9afa0df475e5ea0aa1f5feb27987499051a1a85a9177d3d01e131ff0f1af2\",\"dweb:/ipfs/QmdQfAdeU4PtQSHs1mMwoEUpdFfbrgRdJuhVXeaxeb5dxV\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.30+commit.73712a01"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@ensdomains/=node_modules/@ensdomains/","@openzeppelin/=node_modules/@openzeppelin/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/Base.sol":"CommonBase"},"evmVersion":"prague","libraries":{},"viaIR":true},"sources":{"lib/forge-std/src/Base.sol":{"keccak256":"0x4b2a5a85e045dcf6a082700c7252e43854c2eed88f860aaa18ec1e85218ae2bf","urls":["bzz-raw://98d060ed5be569a92d908fc358149039dc8f833d61973aa1b9d1d8235676bf6d","dweb:/ipfs/QmaWQpn5dJmbMS5skwmPPMeUWZG35BLkignPpcA3zyagEs"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0xddd9f444525fe3b2db77df55bde598676784b13bd19ead1d19b95802de0eacdc","urls":["bzz-raw://53770fa34bf0d75fd2946b71335ce6e6001053595e6dd78e7af9baf7a5270616","dweb:/ipfs/QmVvfuJi928Hw6i44oUArYeAP8Pst1bvQvUeJ3CTdh1yUZ"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x1f3cfde19cafbd145904bfb00581a10ca7667186276e8c91dc2943ec559de88a","urls":["bzz-raw://bdf9afa0df475e5ea0aa1f5feb27987499051a1a85a9177d3d01e131ff0f1af2","dweb:/ipfs/QmdQfAdeU4PtQSHs1mMwoEUpdFfbrgRdJuhVXeaxeb5dxV"],"license":"MIT OR Apache-2.0"}},"version":1},"id":24}
|
||||
@@ -1 +1 @@
|
||||
{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.30+commit.73712a01\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/Base.sol\":\"ScriptBase\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@ensdomains/=node_modules/@ensdomains/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"],\"viaIR\":true},\"sources\":{\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x4b2a5a85e045dcf6a082700c7252e43854c2eed88f860aaa18ec1e85218ae2bf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://98d060ed5be569a92d908fc358149039dc8f833d61973aa1b9d1d8235676bf6d\",\"dweb:/ipfs/QmaWQpn5dJmbMS5skwmPPMeUWZG35BLkignPpcA3zyagEs\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xddd9f444525fe3b2db77df55bde598676784b13bd19ead1d19b95802de0eacdc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://53770fa34bf0d75fd2946b71335ce6e6001053595e6dd78e7af9baf7a5270616\",\"dweb:/ipfs/QmVvfuJi928Hw6i44oUArYeAP8Pst1bvQvUeJ3CTdh1yUZ\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x1f3cfde19cafbd145904bfb00581a10ca7667186276e8c91dc2943ec559de88a\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bdf9afa0df475e5ea0aa1f5feb27987499051a1a85a9177d3d01e131ff0f1af2\",\"dweb:/ipfs/QmdQfAdeU4PtQSHs1mMwoEUpdFfbrgRdJuhVXeaxeb5dxV\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.30+commit.73712a01"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@ensdomains/=node_modules/@ensdomains/","@openzeppelin/=node_modules/@openzeppelin/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/Base.sol":"ScriptBase"},"evmVersion":"prague","libraries":{},"viaIR":true},"sources":{"lib/forge-std/src/Base.sol":{"keccak256":"0x4b2a5a85e045dcf6a082700c7252e43854c2eed88f860aaa18ec1e85218ae2bf","urls":["bzz-raw://98d060ed5be569a92d908fc358149039dc8f833d61973aa1b9d1d8235676bf6d","dweb:/ipfs/QmaWQpn5dJmbMS5skwmPPMeUWZG35BLkignPpcA3zyagEs"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0xddd9f444525fe3b2db77df55bde598676784b13bd19ead1d19b95802de0eacdc","urls":["bzz-raw://53770fa34bf0d75fd2946b71335ce6e6001053595e6dd78e7af9baf7a5270616","dweb:/ipfs/QmVvfuJi928Hw6i44oUArYeAP8Pst1bvQvUeJ3CTdh1yUZ"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x1f3cfde19cafbd145904bfb00581a10ca7667186276e8c91dc2943ec559de88a","urls":["bzz-raw://bdf9afa0df475e5ea0aa1f5feb27987499051a1a85a9177d3d01e131ff0f1af2","dweb:/ipfs/QmdQfAdeU4PtQSHs1mMwoEUpdFfbrgRdJuhVXeaxeb5dxV"],"license":"MIT OR Apache-2.0"}},"version":1},"id":25}
|
||||
{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.30+commit.73712a01\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/Base.sol\":\"ScriptBase\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@ensdomains/=node_modules/@ensdomains/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"],\"viaIR\":true},\"sources\":{\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x4b2a5a85e045dcf6a082700c7252e43854c2eed88f860aaa18ec1e85218ae2bf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://98d060ed5be569a92d908fc358149039dc8f833d61973aa1b9d1d8235676bf6d\",\"dweb:/ipfs/QmaWQpn5dJmbMS5skwmPPMeUWZG35BLkignPpcA3zyagEs\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xddd9f444525fe3b2db77df55bde598676784b13bd19ead1d19b95802de0eacdc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://53770fa34bf0d75fd2946b71335ce6e6001053595e6dd78e7af9baf7a5270616\",\"dweb:/ipfs/QmVvfuJi928Hw6i44oUArYeAP8Pst1bvQvUeJ3CTdh1yUZ\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x1f3cfde19cafbd145904bfb00581a10ca7667186276e8c91dc2943ec559de88a\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bdf9afa0df475e5ea0aa1f5feb27987499051a1a85a9177d3d01e131ff0f1af2\",\"dweb:/ipfs/QmdQfAdeU4PtQSHs1mMwoEUpdFfbrgRdJuhVXeaxeb5dxV\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.30+commit.73712a01"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@ensdomains/=node_modules/@ensdomains/","@openzeppelin/=node_modules/@openzeppelin/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/Base.sol":"ScriptBase"},"evmVersion":"prague","libraries":{},"viaIR":true},"sources":{"lib/forge-std/src/Base.sol":{"keccak256":"0x4b2a5a85e045dcf6a082700c7252e43854c2eed88f860aaa18ec1e85218ae2bf","urls":["bzz-raw://98d060ed5be569a92d908fc358149039dc8f833d61973aa1b9d1d8235676bf6d","dweb:/ipfs/QmaWQpn5dJmbMS5skwmPPMeUWZG35BLkignPpcA3zyagEs"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0xddd9f444525fe3b2db77df55bde598676784b13bd19ead1d19b95802de0eacdc","urls":["bzz-raw://53770fa34bf0d75fd2946b71335ce6e6001053595e6dd78e7af9baf7a5270616","dweb:/ipfs/QmVvfuJi928Hw6i44oUArYeAP8Pst1bvQvUeJ3CTdh1yUZ"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x1f3cfde19cafbd145904bfb00581a10ca7667186276e8c91dc2943ec559de88a","urls":["bzz-raw://bdf9afa0df475e5ea0aa1f5feb27987499051a1a85a9177d3d01e131ff0f1af2","dweb:/ipfs/QmdQfAdeU4PtQSHs1mMwoEUpdFfbrgRdJuhVXeaxeb5dxV"],"license":"MIT OR Apache-2.0"}},"version":1},"id":24}
|
||||
@@ -1 +1 @@
|
||||
{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.30+commit.73712a01\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/Base.sol\":\"TestBase\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@ensdomains/=node_modules/@ensdomains/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"],\"viaIR\":true},\"sources\":{\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x4b2a5a85e045dcf6a082700c7252e43854c2eed88f860aaa18ec1e85218ae2bf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://98d060ed5be569a92d908fc358149039dc8f833d61973aa1b9d1d8235676bf6d\",\"dweb:/ipfs/QmaWQpn5dJmbMS5skwmPPMeUWZG35BLkignPpcA3zyagEs\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xddd9f444525fe3b2db77df55bde598676784b13bd19ead1d19b95802de0eacdc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://53770fa34bf0d75fd2946b71335ce6e6001053595e6dd78e7af9baf7a5270616\",\"dweb:/ipfs/QmVvfuJi928Hw6i44oUArYeAP8Pst1bvQvUeJ3CTdh1yUZ\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x1f3cfde19cafbd145904bfb00581a10ca7667186276e8c91dc2943ec559de88a\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bdf9afa0df475e5ea0aa1f5feb27987499051a1a85a9177d3d01e131ff0f1af2\",\"dweb:/ipfs/QmdQfAdeU4PtQSHs1mMwoEUpdFfbrgRdJuhVXeaxeb5dxV\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.30+commit.73712a01"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@ensdomains/=node_modules/@ensdomains/","@openzeppelin/=node_modules/@openzeppelin/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/Base.sol":"TestBase"},"evmVersion":"prague","libraries":{},"viaIR":true},"sources":{"lib/forge-std/src/Base.sol":{"keccak256":"0x4b2a5a85e045dcf6a082700c7252e43854c2eed88f860aaa18ec1e85218ae2bf","urls":["bzz-raw://98d060ed5be569a92d908fc358149039dc8f833d61973aa1b9d1d8235676bf6d","dweb:/ipfs/QmaWQpn5dJmbMS5skwmPPMeUWZG35BLkignPpcA3zyagEs"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0xddd9f444525fe3b2db77df55bde598676784b13bd19ead1d19b95802de0eacdc","urls":["bzz-raw://53770fa34bf0d75fd2946b71335ce6e6001053595e6dd78e7af9baf7a5270616","dweb:/ipfs/QmVvfuJi928Hw6i44oUArYeAP8Pst1bvQvUeJ3CTdh1yUZ"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x1f3cfde19cafbd145904bfb00581a10ca7667186276e8c91dc2943ec559de88a","urls":["bzz-raw://bdf9afa0df475e5ea0aa1f5feb27987499051a1a85a9177d3d01e131ff0f1af2","dweb:/ipfs/QmdQfAdeU4PtQSHs1mMwoEUpdFfbrgRdJuhVXeaxeb5dxV"],"license":"MIT OR Apache-2.0"}},"version":1},"id":25}
|
||||
{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.30+commit.73712a01\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/Base.sol\":\"TestBase\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@ensdomains/=node_modules/@ensdomains/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"],\"viaIR\":true},\"sources\":{\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x4b2a5a85e045dcf6a082700c7252e43854c2eed88f860aaa18ec1e85218ae2bf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://98d060ed5be569a92d908fc358149039dc8f833d61973aa1b9d1d8235676bf6d\",\"dweb:/ipfs/QmaWQpn5dJmbMS5skwmPPMeUWZG35BLkignPpcA3zyagEs\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xddd9f444525fe3b2db77df55bde598676784b13bd19ead1d19b95802de0eacdc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://53770fa34bf0d75fd2946b71335ce6e6001053595e6dd78e7af9baf7a5270616\",\"dweb:/ipfs/QmVvfuJi928Hw6i44oUArYeAP8Pst1bvQvUeJ3CTdh1yUZ\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x1f3cfde19cafbd145904bfb00581a10ca7667186276e8c91dc2943ec559de88a\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bdf9afa0df475e5ea0aa1f5feb27987499051a1a85a9177d3d01e131ff0f1af2\",\"dweb:/ipfs/QmdQfAdeU4PtQSHs1mMwoEUpdFfbrgRdJuhVXeaxeb5dxV\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.30+commit.73712a01"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@ensdomains/=node_modules/@ensdomains/","@openzeppelin/=node_modules/@openzeppelin/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/Base.sol":"TestBase"},"evmVersion":"prague","libraries":{},"viaIR":true},"sources":{"lib/forge-std/src/Base.sol":{"keccak256":"0x4b2a5a85e045dcf6a082700c7252e43854c2eed88f860aaa18ec1e85218ae2bf","urls":["bzz-raw://98d060ed5be569a92d908fc358149039dc8f833d61973aa1b9d1d8235676bf6d","dweb:/ipfs/QmaWQpn5dJmbMS5skwmPPMeUWZG35BLkignPpcA3zyagEs"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0xddd9f444525fe3b2db77df55bde598676784b13bd19ead1d19b95802de0eacdc","urls":["bzz-raw://53770fa34bf0d75fd2946b71335ce6e6001053595e6dd78e7af9baf7a5270616","dweb:/ipfs/QmVvfuJi928Hw6i44oUArYeAP8Pst1bvQvUeJ3CTdh1yUZ"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x1f3cfde19cafbd145904bfb00581a10ca7667186276e8c91dc2943ec559de88a","urls":["bzz-raw://bdf9afa0df475e5ea0aa1f5feb27987499051a1a85a9177d3d01e131ff0f1af2","dweb:/ipfs/QmdQfAdeU4PtQSHs1mMwoEUpdFfbrgRdJuhVXeaxeb5dxV"],"license":"MIT OR Apache-2.0"}},"version":1},"id":24}
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.30+commit.73712a01\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"StdChains provides information about EVM compatible chains that can be used in scripts/tests. For each chain, the chain's name, chain ID, and a default RPC URL are provided. Chains are identified by their alias, which is the same as the alias in the `[rpc_endpoints]` section of the `foundry.toml` file. For best UX, ensure the alias in the `foundry.toml` file match the alias used in this contract, which can be found as the first argument to the `setChainWithDefaultRpcUrl` call in the `initializeStdChains` function. There are two main ways to use this contract: 1. Set a chain with `setChain(string memory chainAlias, ChainData memory chain)` or `setChain(string memory chainAlias, Chain memory chain)` 2. Get a chain with `getChain(string memory chainAlias)` or `getChain(uint256 chainId)`. The first time either of those are used, chains are initialized with the default set of RPC URLs. This is done in `initializeStdChains`, which uses `setChainWithDefaultRpcUrl`. Defaults are recorded in `defaultRpcUrls`. The `setChain` function is straightforward, and it simply saves off the given chain data. The `getChain` methods use `getChainWithUpdatedRpcUrl` to return a chain. For example, let's say we want to retrieve the RPC URL for `mainnet`: - If you have specified data with `setChain`, it will return that. - If you have configured a mainnet RPC URL in `foundry.toml`, it will return the URL, provided it is valid (e.g. a URL is specified, or an environment variable is given and exists). - If neither of the above conditions is met, the default data is returned. Summarizing the above, the prioritization hierarchy is `setChain` -> `foundry.toml` -> environment variable -> defaults.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/StdChains.sol\":\"StdChains\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@ensdomains/=node_modules/@ensdomains/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"],\"viaIR\":true},\"sources\":{\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x8bed7472cb417f0e55ea37fe8cd34a54788d06a13de7c96e1448eae041744568\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6bf07369fee84b74edd61c8eb08bf71e3f4fdbb6ad24061996b4e2bfd42f3f69\",\"dweb:/ipfs/QmQhyYedzf8GtTc51495Lek1rZBQ6nigrGFXUpwHhN3RLa\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x1f3cfde19cafbd145904bfb00581a10ca7667186276e8c91dc2943ec559de88a\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bdf9afa0df475e5ea0aa1f5feb27987499051a1a85a9177d3d01e131ff0f1af2\",\"dweb:/ipfs/QmdQfAdeU4PtQSHs1mMwoEUpdFfbrgRdJuhVXeaxeb5dxV\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.30+commit.73712a01"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@ensdomains/=node_modules/@ensdomains/","@openzeppelin/=node_modules/@openzeppelin/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/StdChains.sol":"StdChains"},"evmVersion":"prague","libraries":{},"viaIR":true},"sources":{"lib/forge-std/src/StdChains.sol":{"keccak256":"0x8bed7472cb417f0e55ea37fe8cd34a54788d06a13de7c96e1448eae041744568","urls":["bzz-raw://6bf07369fee84b74edd61c8eb08bf71e3f4fdbb6ad24061996b4e2bfd42f3f69","dweb:/ipfs/QmQhyYedzf8GtTc51495Lek1rZBQ6nigrGFXUpwHhN3RLa"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x1f3cfde19cafbd145904bfb00581a10ca7667186276e8c91dc2943ec559de88a","urls":["bzz-raw://bdf9afa0df475e5ea0aa1f5feb27987499051a1a85a9177d3d01e131ff0f1af2","dweb:/ipfs/QmdQfAdeU4PtQSHs1mMwoEUpdFfbrgRdJuhVXeaxeb5dxV"],"license":"MIT OR Apache-2.0"}},"version":1},"id":27}
|
||||
{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.30+commit.73712a01\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"StdChains provides information about EVM compatible chains that can be used in scripts/tests. For each chain, the chain's name, chain ID, and a default RPC URL are provided. Chains are identified by their alias, which is the same as the alias in the `[rpc_endpoints]` section of the `foundry.toml` file. For best UX, ensure the alias in the `foundry.toml` file match the alias used in this contract, which can be found as the first argument to the `setChainWithDefaultRpcUrl` call in the `initializeStdChains` function. There are two main ways to use this contract: 1. Set a chain with `setChain(string memory chainAlias, ChainData memory chain)` or `setChain(string memory chainAlias, Chain memory chain)` 2. Get a chain with `getChain(string memory chainAlias)` or `getChain(uint256 chainId)`. The first time either of those are used, chains are initialized with the default set of RPC URLs. This is done in `initializeStdChains`, which uses `setChainWithDefaultRpcUrl`. Defaults are recorded in `defaultRpcUrls`. The `setChain` function is straightforward, and it simply saves off the given chain data. The `getChain` methods use `getChainWithUpdatedRpcUrl` to return a chain. For example, let's say we want to retrieve the RPC URL for `mainnet`: - If you have specified data with `setChain`, it will return that. - If you have configured a mainnet RPC URL in `foundry.toml`, it will return the URL, provided it is valid (e.g. a URL is specified, or an environment variable is given and exists). - If neither of the above conditions is met, the default data is returned. Summarizing the above, the prioritization hierarchy is `setChain` -> `foundry.toml` -> environment variable -> defaults.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/StdChains.sol\":\"StdChains\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@ensdomains/=node_modules/@ensdomains/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"],\"viaIR\":true},\"sources\":{\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x8bed7472cb417f0e55ea37fe8cd34a54788d06a13de7c96e1448eae041744568\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6bf07369fee84b74edd61c8eb08bf71e3f4fdbb6ad24061996b4e2bfd42f3f69\",\"dweb:/ipfs/QmQhyYedzf8GtTc51495Lek1rZBQ6nigrGFXUpwHhN3RLa\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x1f3cfde19cafbd145904bfb00581a10ca7667186276e8c91dc2943ec559de88a\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bdf9afa0df475e5ea0aa1f5feb27987499051a1a85a9177d3d01e131ff0f1af2\",\"dweb:/ipfs/QmdQfAdeU4PtQSHs1mMwoEUpdFfbrgRdJuhVXeaxeb5dxV\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.30+commit.73712a01"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@ensdomains/=node_modules/@ensdomains/","@openzeppelin/=node_modules/@openzeppelin/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/StdChains.sol":"StdChains"},"evmVersion":"prague","libraries":{},"viaIR":true},"sources":{"lib/forge-std/src/StdChains.sol":{"keccak256":"0x8bed7472cb417f0e55ea37fe8cd34a54788d06a13de7c96e1448eae041744568","urls":["bzz-raw://6bf07369fee84b74edd61c8eb08bf71e3f4fdbb6ad24061996b4e2bfd42f3f69","dweb:/ipfs/QmQhyYedzf8GtTc51495Lek1rZBQ6nigrGFXUpwHhN3RLa"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x1f3cfde19cafbd145904bfb00581a10ca7667186276e8c91dc2943ec559de88a","urls":["bzz-raw://bdf9afa0df475e5ea0aa1f5feb27987499051a1a85a9177d3d01e131ff0f1af2","dweb:/ipfs/QmdQfAdeU4PtQSHs1mMwoEUpdFfbrgRdJuhVXeaxeb5dxV"],"license":"MIT OR Apache-2.0"}},"version":1},"id":26}
|
||||
@@ -1 +1 @@
|
||||
{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.30+commit.73712a01\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/StdCheats.sol\":\"StdCheats\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@ensdomains/=node_modules/@ensdomains/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"],\"viaIR\":true},\"sources\":{\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0x07852d61fcf2fe5e25fa66e607f52cb97eab8adaf2e3fd4cb8404eb69baee90c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed97c9c7372b77a0b417c1285f631aa1396d8c3104f14b80abd559f305d67d1e\",\"dweb:/ipfs/QmeHLpi3g9XKLT8z76AF5ofwrXQm2yxPDpWztCZ2wPDW6i\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xddd9f444525fe3b2db77df55bde598676784b13bd19ead1d19b95802de0eacdc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://53770fa34bf0d75fd2946b71335ce6e6001053595e6dd78e7af9baf7a5270616\",\"dweb:/ipfs/QmVvfuJi928Hw6i44oUArYeAP8Pst1bvQvUeJ3CTdh1yUZ\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x1f3cfde19cafbd145904bfb00581a10ca7667186276e8c91dc2943ec559de88a\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bdf9afa0df475e5ea0aa1f5feb27987499051a1a85a9177d3d01e131ff0f1af2\",\"dweb:/ipfs/QmdQfAdeU4PtQSHs1mMwoEUpdFfbrgRdJuhVXeaxeb5dxV\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x4bbf47eb762cef93729d6ef15e78789957147039b113e5d4df48e3d3fd16d0f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af9e3a7c3d82fb5b10b57ca4d1a82f2acbef80c077f6f6ef0cc0187c7bfd9f57\",\"dweb:/ipfs/QmR9VzmnBDJpgiDP6CHT6truehukF9HpYvuP6kRiJbDwPP\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0x3b8fe79f48f065a4e4d35362171304a33784c3a90febae5f2787805a438de12f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://61de63af08803549299e68b6e6e88d40f3c5afac450e4ee0a228c66a61ba003d\",\"dweb:/ipfs/QmWVoQ5rrVxnczD4ZZoPbD4PC9Z3uExJtzjD4awTqd14MZ\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.30+commit.73712a01"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@ensdomains/=node_modules/@ensdomains/","@openzeppelin/=node_modules/@openzeppelin/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/StdCheats.sol":"StdCheats"},"evmVersion":"prague","libraries":{},"viaIR":true},"sources":{"lib/forge-std/src/StdCheats.sol":{"keccak256":"0x07852d61fcf2fe5e25fa66e607f52cb97eab8adaf2e3fd4cb8404eb69baee90c","urls":["bzz-raw://ed97c9c7372b77a0b417c1285f631aa1396d8c3104f14b80abd559f305d67d1e","dweb:/ipfs/QmeHLpi3g9XKLT8z76AF5ofwrXQm2yxPDpWztCZ2wPDW6i"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0xddd9f444525fe3b2db77df55bde598676784b13bd19ead1d19b95802de0eacdc","urls":["bzz-raw://53770fa34bf0d75fd2946b71335ce6e6001053595e6dd78e7af9baf7a5270616","dweb:/ipfs/QmVvfuJi928Hw6i44oUArYeAP8Pst1bvQvUeJ3CTdh1yUZ"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x1f3cfde19cafbd145904bfb00581a10ca7667186276e8c91dc2943ec559de88a","urls":["bzz-raw://bdf9afa0df475e5ea0aa1f5feb27987499051a1a85a9177d3d01e131ff0f1af2","dweb:/ipfs/QmdQfAdeU4PtQSHs1mMwoEUpdFfbrgRdJuhVXeaxeb5dxV"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/console.sol":{"keccak256":"0x4bbf47eb762cef93729d6ef15e78789957147039b113e5d4df48e3d3fd16d0f5","urls":["bzz-raw://af9e3a7c3d82fb5b10b57ca4d1a82f2acbef80c077f6f6ef0cc0187c7bfd9f57","dweb:/ipfs/QmR9VzmnBDJpgiDP6CHT6truehukF9HpYvuP6kRiJbDwPP"],"license":"MIT"},"lib/forge-std/src/console2.sol":{"keccak256":"0x3b8fe79f48f065a4e4d35362171304a33784c3a90febae5f2787805a438de12f","urls":["bzz-raw://61de63af08803549299e68b6e6e88d40f3c5afac450e4ee0a228c66a61ba003d","dweb:/ipfs/QmWVoQ5rrVxnczD4ZZoPbD4PC9Z3uExJtzjD4awTqd14MZ"],"license":"MIT"}},"version":1},"id":28}
|
||||
{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.30+commit.73712a01\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/StdCheats.sol\":\"StdCheats\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@ensdomains/=node_modules/@ensdomains/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"],\"viaIR\":true},\"sources\":{\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0x07852d61fcf2fe5e25fa66e607f52cb97eab8adaf2e3fd4cb8404eb69baee90c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed97c9c7372b77a0b417c1285f631aa1396d8c3104f14b80abd559f305d67d1e\",\"dweb:/ipfs/QmeHLpi3g9XKLT8z76AF5ofwrXQm2yxPDpWztCZ2wPDW6i\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xddd9f444525fe3b2db77df55bde598676784b13bd19ead1d19b95802de0eacdc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://53770fa34bf0d75fd2946b71335ce6e6001053595e6dd78e7af9baf7a5270616\",\"dweb:/ipfs/QmVvfuJi928Hw6i44oUArYeAP8Pst1bvQvUeJ3CTdh1yUZ\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x1f3cfde19cafbd145904bfb00581a10ca7667186276e8c91dc2943ec559de88a\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bdf9afa0df475e5ea0aa1f5feb27987499051a1a85a9177d3d01e131ff0f1af2\",\"dweb:/ipfs/QmdQfAdeU4PtQSHs1mMwoEUpdFfbrgRdJuhVXeaxeb5dxV\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x4bbf47eb762cef93729d6ef15e78789957147039b113e5d4df48e3d3fd16d0f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af9e3a7c3d82fb5b10b57ca4d1a82f2acbef80c077f6f6ef0cc0187c7bfd9f57\",\"dweb:/ipfs/QmR9VzmnBDJpgiDP6CHT6truehukF9HpYvuP6kRiJbDwPP\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0x3b8fe79f48f065a4e4d35362171304a33784c3a90febae5f2787805a438de12f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://61de63af08803549299e68b6e6e88d40f3c5afac450e4ee0a228c66a61ba003d\",\"dweb:/ipfs/QmWVoQ5rrVxnczD4ZZoPbD4PC9Z3uExJtzjD4awTqd14MZ\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.30+commit.73712a01"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@ensdomains/=node_modules/@ensdomains/","@openzeppelin/=node_modules/@openzeppelin/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/StdCheats.sol":"StdCheats"},"evmVersion":"prague","libraries":{},"viaIR":true},"sources":{"lib/forge-std/src/StdCheats.sol":{"keccak256":"0x07852d61fcf2fe5e25fa66e607f52cb97eab8adaf2e3fd4cb8404eb69baee90c","urls":["bzz-raw://ed97c9c7372b77a0b417c1285f631aa1396d8c3104f14b80abd559f305d67d1e","dweb:/ipfs/QmeHLpi3g9XKLT8z76AF5ofwrXQm2yxPDpWztCZ2wPDW6i"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0xddd9f444525fe3b2db77df55bde598676784b13bd19ead1d19b95802de0eacdc","urls":["bzz-raw://53770fa34bf0d75fd2946b71335ce6e6001053595e6dd78e7af9baf7a5270616","dweb:/ipfs/QmVvfuJi928Hw6i44oUArYeAP8Pst1bvQvUeJ3CTdh1yUZ"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x1f3cfde19cafbd145904bfb00581a10ca7667186276e8c91dc2943ec559de88a","urls":["bzz-raw://bdf9afa0df475e5ea0aa1f5feb27987499051a1a85a9177d3d01e131ff0f1af2","dweb:/ipfs/QmdQfAdeU4PtQSHs1mMwoEUpdFfbrgRdJuhVXeaxeb5dxV"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/console.sol":{"keccak256":"0x4bbf47eb762cef93729d6ef15e78789957147039b113e5d4df48e3d3fd16d0f5","urls":["bzz-raw://af9e3a7c3d82fb5b10b57ca4d1a82f2acbef80c077f6f6ef0cc0187c7bfd9f57","dweb:/ipfs/QmR9VzmnBDJpgiDP6CHT6truehukF9HpYvuP6kRiJbDwPP"],"license":"MIT"},"lib/forge-std/src/console2.sol":{"keccak256":"0x3b8fe79f48f065a4e4d35362171304a33784c3a90febae5f2787805a438de12f","urls":["bzz-raw://61de63af08803549299e68b6e6e88d40f3c5afac450e4ee0a228c66a61ba003d","dweb:/ipfs/QmWVoQ5rrVxnczD4ZZoPbD4PC9Z3uExJtzjD4awTqd14MZ"],"license":"MIT"}},"version":1},"id":27}
|
||||
@@ -1 +1 @@
|
||||
{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.30+commit.73712a01\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/StdCheats.sol\":\"StdCheatsSafe\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@ensdomains/=node_modules/@ensdomains/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"],\"viaIR\":true},\"sources\":{\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0x07852d61fcf2fe5e25fa66e607f52cb97eab8adaf2e3fd4cb8404eb69baee90c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed97c9c7372b77a0b417c1285f631aa1396d8c3104f14b80abd559f305d67d1e\",\"dweb:/ipfs/QmeHLpi3g9XKLT8z76AF5ofwrXQm2yxPDpWztCZ2wPDW6i\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xddd9f444525fe3b2db77df55bde598676784b13bd19ead1d19b95802de0eacdc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://53770fa34bf0d75fd2946b71335ce6e6001053595e6dd78e7af9baf7a5270616\",\"dweb:/ipfs/QmVvfuJi928Hw6i44oUArYeAP8Pst1bvQvUeJ3CTdh1yUZ\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x1f3cfde19cafbd145904bfb00581a10ca7667186276e8c91dc2943ec559de88a\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bdf9afa0df475e5ea0aa1f5feb27987499051a1a85a9177d3d01e131ff0f1af2\",\"dweb:/ipfs/QmdQfAdeU4PtQSHs1mMwoEUpdFfbrgRdJuhVXeaxeb5dxV\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x4bbf47eb762cef93729d6ef15e78789957147039b113e5d4df48e3d3fd16d0f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af9e3a7c3d82fb5b10b57ca4d1a82f2acbef80c077f6f6ef0cc0187c7bfd9f57\",\"dweb:/ipfs/QmR9VzmnBDJpgiDP6CHT6truehukF9HpYvuP6kRiJbDwPP\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0x3b8fe79f48f065a4e4d35362171304a33784c3a90febae5f2787805a438de12f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://61de63af08803549299e68b6e6e88d40f3c5afac450e4ee0a228c66a61ba003d\",\"dweb:/ipfs/QmWVoQ5rrVxnczD4ZZoPbD4PC9Z3uExJtzjD4awTqd14MZ\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.30+commit.73712a01"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@ensdomains/=node_modules/@ensdomains/","@openzeppelin/=node_modules/@openzeppelin/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/StdCheats.sol":"StdCheatsSafe"},"evmVersion":"prague","libraries":{},"viaIR":true},"sources":{"lib/forge-std/src/StdCheats.sol":{"keccak256":"0x07852d61fcf2fe5e25fa66e607f52cb97eab8adaf2e3fd4cb8404eb69baee90c","urls":["bzz-raw://ed97c9c7372b77a0b417c1285f631aa1396d8c3104f14b80abd559f305d67d1e","dweb:/ipfs/QmeHLpi3g9XKLT8z76AF5ofwrXQm2yxPDpWztCZ2wPDW6i"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0xddd9f444525fe3b2db77df55bde598676784b13bd19ead1d19b95802de0eacdc","urls":["bzz-raw://53770fa34bf0d75fd2946b71335ce6e6001053595e6dd78e7af9baf7a5270616","dweb:/ipfs/QmVvfuJi928Hw6i44oUArYeAP8Pst1bvQvUeJ3CTdh1yUZ"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x1f3cfde19cafbd145904bfb00581a10ca7667186276e8c91dc2943ec559de88a","urls":["bzz-raw://bdf9afa0df475e5ea0aa1f5feb27987499051a1a85a9177d3d01e131ff0f1af2","dweb:/ipfs/QmdQfAdeU4PtQSHs1mMwoEUpdFfbrgRdJuhVXeaxeb5dxV"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/console.sol":{"keccak256":"0x4bbf47eb762cef93729d6ef15e78789957147039b113e5d4df48e3d3fd16d0f5","urls":["bzz-raw://af9e3a7c3d82fb5b10b57ca4d1a82f2acbef80c077f6f6ef0cc0187c7bfd9f57","dweb:/ipfs/QmR9VzmnBDJpgiDP6CHT6truehukF9HpYvuP6kRiJbDwPP"],"license":"MIT"},"lib/forge-std/src/console2.sol":{"keccak256":"0x3b8fe79f48f065a4e4d35362171304a33784c3a90febae5f2787805a438de12f","urls":["bzz-raw://61de63af08803549299e68b6e6e88d40f3c5afac450e4ee0a228c66a61ba003d","dweb:/ipfs/QmWVoQ5rrVxnczD4ZZoPbD4PC9Z3uExJtzjD4awTqd14MZ"],"license":"MIT"}},"version":1},"id":28}
|
||||
{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.30+commit.73712a01\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/StdCheats.sol\":\"StdCheatsSafe\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@ensdomains/=node_modules/@ensdomains/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"],\"viaIR\":true},\"sources\":{\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0x07852d61fcf2fe5e25fa66e607f52cb97eab8adaf2e3fd4cb8404eb69baee90c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed97c9c7372b77a0b417c1285f631aa1396d8c3104f14b80abd559f305d67d1e\",\"dweb:/ipfs/QmeHLpi3g9XKLT8z76AF5ofwrXQm2yxPDpWztCZ2wPDW6i\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xddd9f444525fe3b2db77df55bde598676784b13bd19ead1d19b95802de0eacdc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://53770fa34bf0d75fd2946b71335ce6e6001053595e6dd78e7af9baf7a5270616\",\"dweb:/ipfs/QmVvfuJi928Hw6i44oUArYeAP8Pst1bvQvUeJ3CTdh1yUZ\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x1f3cfde19cafbd145904bfb00581a10ca7667186276e8c91dc2943ec559de88a\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bdf9afa0df475e5ea0aa1f5feb27987499051a1a85a9177d3d01e131ff0f1af2\",\"dweb:/ipfs/QmdQfAdeU4PtQSHs1mMwoEUpdFfbrgRdJuhVXeaxeb5dxV\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x4bbf47eb762cef93729d6ef15e78789957147039b113e5d4df48e3d3fd16d0f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af9e3a7c3d82fb5b10b57ca4d1a82f2acbef80c077f6f6ef0cc0187c7bfd9f57\",\"dweb:/ipfs/QmR9VzmnBDJpgiDP6CHT6truehukF9HpYvuP6kRiJbDwPP\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0x3b8fe79f48f065a4e4d35362171304a33784c3a90febae5f2787805a438de12f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://61de63af08803549299e68b6e6e88d40f3c5afac450e4ee0a228c66a61ba003d\",\"dweb:/ipfs/QmWVoQ5rrVxnczD4ZZoPbD4PC9Z3uExJtzjD4awTqd14MZ\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.30+commit.73712a01"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@ensdomains/=node_modules/@ensdomains/","@openzeppelin/=node_modules/@openzeppelin/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/StdCheats.sol":"StdCheatsSafe"},"evmVersion":"prague","libraries":{},"viaIR":true},"sources":{"lib/forge-std/src/StdCheats.sol":{"keccak256":"0x07852d61fcf2fe5e25fa66e607f52cb97eab8adaf2e3fd4cb8404eb69baee90c","urls":["bzz-raw://ed97c9c7372b77a0b417c1285f631aa1396d8c3104f14b80abd559f305d67d1e","dweb:/ipfs/QmeHLpi3g9XKLT8z76AF5ofwrXQm2yxPDpWztCZ2wPDW6i"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0xddd9f444525fe3b2db77df55bde598676784b13bd19ead1d19b95802de0eacdc","urls":["bzz-raw://53770fa34bf0d75fd2946b71335ce6e6001053595e6dd78e7af9baf7a5270616","dweb:/ipfs/QmVvfuJi928Hw6i44oUArYeAP8Pst1bvQvUeJ3CTdh1yUZ"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x1f3cfde19cafbd145904bfb00581a10ca7667186276e8c91dc2943ec559de88a","urls":["bzz-raw://bdf9afa0df475e5ea0aa1f5feb27987499051a1a85a9177d3d01e131ff0f1af2","dweb:/ipfs/QmdQfAdeU4PtQSHs1mMwoEUpdFfbrgRdJuhVXeaxeb5dxV"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/console.sol":{"keccak256":"0x4bbf47eb762cef93729d6ef15e78789957147039b113e5d4df48e3d3fd16d0f5","urls":["bzz-raw://af9e3a7c3d82fb5b10b57ca4d1a82f2acbef80c077f6f6ef0cc0187c7bfd9f57","dweb:/ipfs/QmR9VzmnBDJpgiDP6CHT6truehukF9HpYvuP6kRiJbDwPP"],"license":"MIT"},"lib/forge-std/src/console2.sol":{"keccak256":"0x3b8fe79f48f065a4e4d35362171304a33784c3a90febae5f2787805a438de12f","urls":["bzz-raw://61de63af08803549299e68b6e6e88d40f3c5afac450e4ee0a228c66a61ba003d","dweb:/ipfs/QmWVoQ5rrVxnczD4ZZoPbD4PC9Z3uExJtzjD4awTqd14MZ"],"license":"MIT"}},"version":1},"id":27}
|
||||
@@ -1 +1 @@
|
||||
{"abi":[],"bytecode":{"object":"0x6080806040523460175760399081601c823930815050f35b5f80fdfe5f80fdfea26469706673582212202c926211255991f73c45a61be25852a17eaa11c71c0a5ea8288fa42a2cb32d6864736f6c634300081e0033","sourceMap":"153:1713:29:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x5f80fdfea26469706673582212202c926211255991f73c45a61be25852a17eaa11c71c0a5ea8288fa42a2cb32d6864736f6c634300081e0033","sourceMap":"153:1713:29:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.30+commit.73712a01\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"CONSOLE\":{\"details\":\"console.sol and console2.sol work by executing a staticcall to this address. Calculated as `address(uint160(uint88(bytes11(\\\"console.log\\\"))))`.\"},\"CREATE2_FACTORY\":{\"details\":\"Used when deploying with create2. Taken from https://github.com/Arachnid/deterministic-deployment-proxy.\"},\"DEFAULT_SENDER\":{\"details\":\"The default address for tx.origin and msg.sender. Calculated as `address(uint160(uint256(keccak256(\\\"foundry default caller\\\"))))`.\"},\"DEFAULT_TEST_CONTRACT\":{\"details\":\"The address of the first contract `CREATE`d by a running test contract. When running tests, each test contract is `CREATE`d by `DEFAULT_SENDER` with nonce 1. Calculated as `VM.computeCreateAddress(VM.computeCreateAddress(DEFAULT_SENDER, 1), 1)`.\"},\"MULTICALL3_ADDRESS\":{\"details\":\"Deterministic deployment address of the Multicall3 contract. Taken from https://www.multicall3.com.\"},\"SECP256K1_ORDER\":{\"details\":\"The order of the secp256k1 curve.\"},\"VM\":{\"details\":\"Cheat code address. Calculated as `address(uint160(uint256(keccak256(\\\"hevm cheat code\\\"))))`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/StdConstants.sol\":\"StdConstants\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@ensdomains/=node_modules/@ensdomains/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"],\"viaIR\":true},\"sources\":{\"lib/forge-std/src/StdConstants.sol\":{\"keccak256\":\"0x319ccdabfa2c0b2428301445873270ffea20f0e039d4fd5e6eeba65158e4e534\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b633f9d3a719e1d035ce7daa6cc051ddf89a72d34200d14cec37728e245cdabc\",\"dweb:/ipfs/QmRP7HQJpHMx1CsFrY8tXVVx1DQmi2dcb2BoGfiWaA923r\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x1f3cfde19cafbd145904bfb00581a10ca7667186276e8c91dc2943ec559de88a\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bdf9afa0df475e5ea0aa1f5feb27987499051a1a85a9177d3d01e131ff0f1af2\",\"dweb:/ipfs/QmdQfAdeU4PtQSHs1mMwoEUpdFfbrgRdJuhVXeaxeb5dxV\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0xeb0daba50f85adb160209f03ebf7b3b548e09651aa799087795daf17b1495c7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b5b356871e51267728d69c662d8d8ce653dd0a8edc47098b6f8064ea1173e28\",\"dweb:/ipfs/QmRJTAmV68NYGSkDGKrGpsJnEZ8wQF4dDCevXGtNU4RWtQ\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.30+commit.73712a01"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@ensdomains/=node_modules/@ensdomains/","@openzeppelin/=node_modules/@openzeppelin/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/StdConstants.sol":"StdConstants"},"evmVersion":"prague","libraries":{},"viaIR":true},"sources":{"lib/forge-std/src/StdConstants.sol":{"keccak256":"0x319ccdabfa2c0b2428301445873270ffea20f0e039d4fd5e6eeba65158e4e534","urls":["bzz-raw://b633f9d3a719e1d035ce7daa6cc051ddf89a72d34200d14cec37728e245cdabc","dweb:/ipfs/QmRP7HQJpHMx1CsFrY8tXVVx1DQmi2dcb2BoGfiWaA923r"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x1f3cfde19cafbd145904bfb00581a10ca7667186276e8c91dc2943ec559de88a","urls":["bzz-raw://bdf9afa0df475e5ea0aa1f5feb27987499051a1a85a9177d3d01e131ff0f1af2","dweb:/ipfs/QmdQfAdeU4PtQSHs1mMwoEUpdFfbrgRdJuhVXeaxeb5dxV"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0xeb0daba50f85adb160209f03ebf7b3b548e09651aa799087795daf17b1495c7a","urls":["bzz-raw://8b5b356871e51267728d69c662d8d8ce653dd0a8edc47098b6f8064ea1173e28","dweb:/ipfs/QmRJTAmV68NYGSkDGKrGpsJnEZ8wQF4dDCevXGtNU4RWtQ"],"license":"MIT"}},"version":1},"id":29}
|
||||
{"abi":[],"bytecode":{"object":"0x6080806040523460175760399081601c823930815050f35b5f80fdfe5f80fdfea26469706673582212202c926211255991f73c45a61be25852a17eaa11c71c0a5ea8288fa42a2cb32d6864736f6c634300081e0033","sourceMap":"153:1713:28:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x5f80fdfea26469706673582212202c926211255991f73c45a61be25852a17eaa11c71c0a5ea8288fa42a2cb32d6864736f6c634300081e0033","sourceMap":"153:1713:28:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.30+commit.73712a01\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"CONSOLE\":{\"details\":\"console.sol and console2.sol work by executing a staticcall to this address. Calculated as `address(uint160(uint88(bytes11(\\\"console.log\\\"))))`.\"},\"CREATE2_FACTORY\":{\"details\":\"Used when deploying with create2. Taken from https://github.com/Arachnid/deterministic-deployment-proxy.\"},\"DEFAULT_SENDER\":{\"details\":\"The default address for tx.origin and msg.sender. Calculated as `address(uint160(uint256(keccak256(\\\"foundry default caller\\\"))))`.\"},\"DEFAULT_TEST_CONTRACT\":{\"details\":\"The address of the first contract `CREATE`d by a running test contract. When running tests, each test contract is `CREATE`d by `DEFAULT_SENDER` with nonce 1. Calculated as `VM.computeCreateAddress(VM.computeCreateAddress(DEFAULT_SENDER, 1), 1)`.\"},\"MULTICALL3_ADDRESS\":{\"details\":\"Deterministic deployment address of the Multicall3 contract. Taken from https://www.multicall3.com.\"},\"SECP256K1_ORDER\":{\"details\":\"The order of the secp256k1 curve.\"},\"VM\":{\"details\":\"Cheat code address. Calculated as `address(uint160(uint256(keccak256(\\\"hevm cheat code\\\"))))`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/StdConstants.sol\":\"StdConstants\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@ensdomains/=node_modules/@ensdomains/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"],\"viaIR\":true},\"sources\":{\"lib/forge-std/src/StdConstants.sol\":{\"keccak256\":\"0x319ccdabfa2c0b2428301445873270ffea20f0e039d4fd5e6eeba65158e4e534\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b633f9d3a719e1d035ce7daa6cc051ddf89a72d34200d14cec37728e245cdabc\",\"dweb:/ipfs/QmRP7HQJpHMx1CsFrY8tXVVx1DQmi2dcb2BoGfiWaA923r\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x1f3cfde19cafbd145904bfb00581a10ca7667186276e8c91dc2943ec559de88a\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bdf9afa0df475e5ea0aa1f5feb27987499051a1a85a9177d3d01e131ff0f1af2\",\"dweb:/ipfs/QmdQfAdeU4PtQSHs1mMwoEUpdFfbrgRdJuhVXeaxeb5dxV\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0xeb0daba50f85adb160209f03ebf7b3b548e09651aa799087795daf17b1495c7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b5b356871e51267728d69c662d8d8ce653dd0a8edc47098b6f8064ea1173e28\",\"dweb:/ipfs/QmRJTAmV68NYGSkDGKrGpsJnEZ8wQF4dDCevXGtNU4RWtQ\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.30+commit.73712a01"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@ensdomains/=node_modules/@ensdomains/","@openzeppelin/=node_modules/@openzeppelin/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/StdConstants.sol":"StdConstants"},"evmVersion":"prague","libraries":{},"viaIR":true},"sources":{"lib/forge-std/src/StdConstants.sol":{"keccak256":"0x319ccdabfa2c0b2428301445873270ffea20f0e039d4fd5e6eeba65158e4e534","urls":["bzz-raw://b633f9d3a719e1d035ce7daa6cc051ddf89a72d34200d14cec37728e245cdabc","dweb:/ipfs/QmRP7HQJpHMx1CsFrY8tXVVx1DQmi2dcb2BoGfiWaA923r"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x1f3cfde19cafbd145904bfb00581a10ca7667186276e8c91dc2943ec559de88a","urls":["bzz-raw://bdf9afa0df475e5ea0aa1f5feb27987499051a1a85a9177d3d01e131ff0f1af2","dweb:/ipfs/QmdQfAdeU4PtQSHs1mMwoEUpdFfbrgRdJuhVXeaxeb5dxV"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0xeb0daba50f85adb160209f03ebf7b3b548e09651aa799087795daf17b1495c7a","urls":["bzz-raw://8b5b356871e51267728d69c662d8d8ce653dd0a8edc47098b6f8064ea1173e28","dweb:/ipfs/QmRJTAmV68NYGSkDGKrGpsJnEZ8wQF4dDCevXGtNU4RWtQ"],"license":"MIT"}},"version":1},"id":28}
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
{"abi":[],"bytecode":{"object":"0x6080806040523460175760399081601c823930815050f35b5f80fdfe5f80fdfea2646970667358221220cf0d48da6f94a91b03479d3fa188b1663f392149dea15a517ab7bbfa9ae955d464736f6c634300081e0033","sourceMap":"610:9052:32:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x5f80fdfea2646970667358221220cf0d48da6f94a91b03479d3fa188b1663f392149dea15a517ab7bbfa9ae955d464736f6c634300081e0033","sourceMap":"610:9052:32:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.30+commit.73712a01\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/StdJson.sol\":\"stdJson\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@ensdomains/=node_modules/@ensdomains/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"],\"viaIR\":true},\"sources\":{\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x9de30197a56fe90c443948c3feeb20e9a29e0e9c0b8fa893e8ac4c1344acd589\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://444783bd32a8abfd3fbcf16c5d1cdccef5608b2a9cfddd789fa1b045b077ed2a\",\"dweb:/ipfs/QmY94NxHDFW1Knxs9GcgFhq2QZQpRXgor4NMamKQ9CCVyp\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x1f3cfde19cafbd145904bfb00581a10ca7667186276e8c91dc2943ec559de88a\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bdf9afa0df475e5ea0aa1f5feb27987499051a1a85a9177d3d01e131ff0f1af2\",\"dweb:/ipfs/QmdQfAdeU4PtQSHs1mMwoEUpdFfbrgRdJuhVXeaxeb5dxV\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.30+commit.73712a01"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@ensdomains/=node_modules/@ensdomains/","@openzeppelin/=node_modules/@openzeppelin/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/StdJson.sol":"stdJson"},"evmVersion":"prague","libraries":{},"viaIR":true},"sources":{"lib/forge-std/src/StdJson.sol":{"keccak256":"0x9de30197a56fe90c443948c3feeb20e9a29e0e9c0b8fa893e8ac4c1344acd589","urls":["bzz-raw://444783bd32a8abfd3fbcf16c5d1cdccef5608b2a9cfddd789fa1b045b077ed2a","dweb:/ipfs/QmY94NxHDFW1Knxs9GcgFhq2QZQpRXgor4NMamKQ9CCVyp"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x1f3cfde19cafbd145904bfb00581a10ca7667186276e8c91dc2943ec559de88a","urls":["bzz-raw://bdf9afa0df475e5ea0aa1f5feb27987499051a1a85a9177d3d01e131ff0f1af2","dweb:/ipfs/QmdQfAdeU4PtQSHs1mMwoEUpdFfbrgRdJuhVXeaxeb5dxV"],"license":"MIT OR Apache-2.0"}},"version":1},"id":32}
|
||||
{"abi":[],"bytecode":{"object":"0x6080806040523460175760399081601c823930815050f35b5f80fdfe5f80fdfea2646970667358221220cf0d48da6f94a91b03479d3fa188b1663f392149dea15a517ab7bbfa9ae955d464736f6c634300081e0033","sourceMap":"610:9052:31:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x5f80fdfea2646970667358221220cf0d48da6f94a91b03479d3fa188b1663f392149dea15a517ab7bbfa9ae955d464736f6c634300081e0033","sourceMap":"610:9052:31:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.30+commit.73712a01\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/StdJson.sol\":\"stdJson\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@ensdomains/=node_modules/@ensdomains/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"],\"viaIR\":true},\"sources\":{\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x9de30197a56fe90c443948c3feeb20e9a29e0e9c0b8fa893e8ac4c1344acd589\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://444783bd32a8abfd3fbcf16c5d1cdccef5608b2a9cfddd789fa1b045b077ed2a\",\"dweb:/ipfs/QmY94NxHDFW1Knxs9GcgFhq2QZQpRXgor4NMamKQ9CCVyp\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x1f3cfde19cafbd145904bfb00581a10ca7667186276e8c91dc2943ec559de88a\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bdf9afa0df475e5ea0aa1f5feb27987499051a1a85a9177d3d01e131ff0f1af2\",\"dweb:/ipfs/QmdQfAdeU4PtQSHs1mMwoEUpdFfbrgRdJuhVXeaxeb5dxV\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.30+commit.73712a01"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@ensdomains/=node_modules/@ensdomains/","@openzeppelin/=node_modules/@openzeppelin/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/StdJson.sol":"stdJson"},"evmVersion":"prague","libraries":{},"viaIR":true},"sources":{"lib/forge-std/src/StdJson.sol":{"keccak256":"0x9de30197a56fe90c443948c3feeb20e9a29e0e9c0b8fa893e8ac4c1344acd589","urls":["bzz-raw://444783bd32a8abfd3fbcf16c5d1cdccef5608b2a9cfddd789fa1b045b077ed2a","dweb:/ipfs/QmY94NxHDFW1Knxs9GcgFhq2QZQpRXgor4NMamKQ9CCVyp"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x1f3cfde19cafbd145904bfb00581a10ca7667186276e8c91dc2943ec559de88a","urls":["bzz-raw://bdf9afa0df475e5ea0aa1f5feb27987499051a1a85a9177d3d01e131ff0f1af2","dweb:/ipfs/QmdQfAdeU4PtQSHs1mMwoEUpdFfbrgRdJuhVXeaxeb5dxV"],"license":"MIT OR Apache-2.0"}},"version":1},"id":31}
|
||||
@@ -1 +1 @@
|
||||
{"abi":[],"bytecode":{"object":"0x6080806040523460175760399081601c823930815050f35b5f80fdfe5f80fdfea26469706673582212200057383971987d6456e289046204dc0b8415fbb714d4c4a11517f202ca878f1264736f6c634300081e0033","sourceMap":"65:1533:33:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x5f80fdfea26469706673582212200057383971987d6456e289046204dc0b8415fbb714d4c4a11517f202ca878f1264736f6c634300081e0033","sourceMap":"65:1533:33:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.30+commit.73712a01\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/StdMath.sol\":\"stdMath\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@ensdomains/=node_modules/@ensdomains/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"],\"viaIR\":true},\"sources\":{\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xcb876f5421e5aae334f9a6c5d549131c18ad347f1035d2a1e920f2623f346c85\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://28076e06b01be4095f860fa9b142c284bac34c0813948e0a52d11acc15502db6\",\"dweb:/ipfs/QmVR6XFTmBatJAVvYgkZxN21R5zvYTU4ard4Aow8TmXjy9\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.30+commit.73712a01"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@ensdomains/=node_modules/@ensdomains/","@openzeppelin/=node_modules/@openzeppelin/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/StdMath.sol":"stdMath"},"evmVersion":"prague","libraries":{},"viaIR":true},"sources":{"lib/forge-std/src/StdMath.sol":{"keccak256":"0xcb876f5421e5aae334f9a6c5d549131c18ad347f1035d2a1e920f2623f346c85","urls":["bzz-raw://28076e06b01be4095f860fa9b142c284bac34c0813948e0a52d11acc15502db6","dweb:/ipfs/QmVR6XFTmBatJAVvYgkZxN21R5zvYTU4ard4Aow8TmXjy9"],"license":"MIT"}},"version":1},"id":33}
|
||||
{"abi":[],"bytecode":{"object":"0x6080806040523460175760399081601c823930815050f35b5f80fdfe5f80fdfea26469706673582212200057383971987d6456e289046204dc0b8415fbb714d4c4a11517f202ca878f1264736f6c634300081e0033","sourceMap":"65:1533:32:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x5f80fdfea26469706673582212200057383971987d6456e289046204dc0b8415fbb714d4c4a11517f202ca878f1264736f6c634300081e0033","sourceMap":"65:1533:32:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.30+commit.73712a01\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/StdMath.sol\":\"stdMath\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@ensdomains/=node_modules/@ensdomains/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"],\"viaIR\":true},\"sources\":{\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xcb876f5421e5aae334f9a6c5d549131c18ad347f1035d2a1e920f2623f346c85\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://28076e06b01be4095f860fa9b142c284bac34c0813948e0a52d11acc15502db6\",\"dweb:/ipfs/QmVR6XFTmBatJAVvYgkZxN21R5zvYTU4ard4Aow8TmXjy9\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.30+commit.73712a01"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@ensdomains/=node_modules/@ensdomains/","@openzeppelin/=node_modules/@openzeppelin/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/StdMath.sol":"stdMath"},"evmVersion":"prague","libraries":{},"viaIR":true},"sources":{"lib/forge-std/src/StdMath.sol":{"keccak256":"0xcb876f5421e5aae334f9a6c5d549131c18ad347f1035d2a1e920f2623f346c85","urls":["bzz-raw://28076e06b01be4095f860fa9b142c284bac34c0813948e0a52d11acc15502db6","dweb:/ipfs/QmVR6XFTmBatJAVvYgkZxN21R5zvYTU4ard4Aow8TmXjy9"],"license":"MIT"}},"version":1},"id":32}
|
||||
@@ -1 +1 @@
|
||||
{"abi":[],"bytecode":{"object":"0x6080806040523460175760399081601c823930815050f35b5f80fdfe5f80fdfea2646970667358221220d7564d7040eb27c4308e6e85254406a4e7014d2fad0b8d5987f4806e405ad41a64736f6c634300081e0033","sourceMap":"12747:5081:34:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x5f80fdfea2646970667358221220d7564d7040eb27c4308e6e85254406a4e7014d2fad0b8d5987f4806e405ad41a64736f6c634300081e0033","sourceMap":"12747:5081:34:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.30+commit.73712a01\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/StdStorage.sol\":\"stdStorage\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@ensdomains/=node_modules/@ensdomains/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"],\"viaIR\":true},\"sources\":{\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xddd9f444525fe3b2db77df55bde598676784b13bd19ead1d19b95802de0eacdc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://53770fa34bf0d75fd2946b71335ce6e6001053595e6dd78e7af9baf7a5270616\",\"dweb:/ipfs/QmVvfuJi928Hw6i44oUArYeAP8Pst1bvQvUeJ3CTdh1yUZ\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x1f3cfde19cafbd145904bfb00581a10ca7667186276e8c91dc2943ec559de88a\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bdf9afa0df475e5ea0aa1f5feb27987499051a1a85a9177d3d01e131ff0f1af2\",\"dweb:/ipfs/QmdQfAdeU4PtQSHs1mMwoEUpdFfbrgRdJuhVXeaxeb5dxV\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.30+commit.73712a01"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@ensdomains/=node_modules/@ensdomains/","@openzeppelin/=node_modules/@openzeppelin/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/StdStorage.sol":"stdStorage"},"evmVersion":"prague","libraries":{},"viaIR":true},"sources":{"lib/forge-std/src/StdStorage.sol":{"keccak256":"0xddd9f444525fe3b2db77df55bde598676784b13bd19ead1d19b95802de0eacdc","urls":["bzz-raw://53770fa34bf0d75fd2946b71335ce6e6001053595e6dd78e7af9baf7a5270616","dweb:/ipfs/QmVvfuJi928Hw6i44oUArYeAP8Pst1bvQvUeJ3CTdh1yUZ"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x1f3cfde19cafbd145904bfb00581a10ca7667186276e8c91dc2943ec559de88a","urls":["bzz-raw://bdf9afa0df475e5ea0aa1f5feb27987499051a1a85a9177d3d01e131ff0f1af2","dweb:/ipfs/QmdQfAdeU4PtQSHs1mMwoEUpdFfbrgRdJuhVXeaxeb5dxV"],"license":"MIT OR Apache-2.0"}},"version":1},"id":34}
|
||||
{"abi":[],"bytecode":{"object":"0x6080806040523460175760399081601c823930815050f35b5f80fdfe5f80fdfea2646970667358221220d7564d7040eb27c4308e6e85254406a4e7014d2fad0b8d5987f4806e405ad41a64736f6c634300081e0033","sourceMap":"12747:5081:33:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x5f80fdfea2646970667358221220d7564d7040eb27c4308e6e85254406a4e7014d2fad0b8d5987f4806e405ad41a64736f6c634300081e0033","sourceMap":"12747:5081:33:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.30+commit.73712a01\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/StdStorage.sol\":\"stdStorage\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@ensdomains/=node_modules/@ensdomains/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"],\"viaIR\":true},\"sources\":{\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xddd9f444525fe3b2db77df55bde598676784b13bd19ead1d19b95802de0eacdc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://53770fa34bf0d75fd2946b71335ce6e6001053595e6dd78e7af9baf7a5270616\",\"dweb:/ipfs/QmVvfuJi928Hw6i44oUArYeAP8Pst1bvQvUeJ3CTdh1yUZ\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x1f3cfde19cafbd145904bfb00581a10ca7667186276e8c91dc2943ec559de88a\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bdf9afa0df475e5ea0aa1f5feb27987499051a1a85a9177d3d01e131ff0f1af2\",\"dweb:/ipfs/QmdQfAdeU4PtQSHs1mMwoEUpdFfbrgRdJuhVXeaxeb5dxV\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.30+commit.73712a01"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@ensdomains/=node_modules/@ensdomains/","@openzeppelin/=node_modules/@openzeppelin/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/StdStorage.sol":"stdStorage"},"evmVersion":"prague","libraries":{},"viaIR":true},"sources":{"lib/forge-std/src/StdStorage.sol":{"keccak256":"0xddd9f444525fe3b2db77df55bde598676784b13bd19ead1d19b95802de0eacdc","urls":["bzz-raw://53770fa34bf0d75fd2946b71335ce6e6001053595e6dd78e7af9baf7a5270616","dweb:/ipfs/QmVvfuJi928Hw6i44oUArYeAP8Pst1bvQvUeJ3CTdh1yUZ"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x1f3cfde19cafbd145904bfb00581a10ca7667186276e8c91dc2943ec559de88a","urls":["bzz-raw://bdf9afa0df475e5ea0aa1f5feb27987499051a1a85a9177d3d01e131ff0f1af2","dweb:/ipfs/QmdQfAdeU4PtQSHs1mMwoEUpdFfbrgRdJuhVXeaxeb5dxV"],"license":"MIT OR Apache-2.0"}},"version":1},"id":33}
|
||||
@@ -1 +1 @@
|
||||
{"abi":[{"type":"event","name":"SlotFound","inputs":[{"name":"who","type":"address","indexed":false,"internalType":"address"},{"name":"fsig","type":"bytes4","indexed":false,"internalType":"bytes4"},{"name":"keysHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"slot","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"WARNING_UninitedSlot","inputs":[{"name":"who","type":"address","indexed":false,"internalType":"address"},{"name":"slot","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x6080806040523460175760399081601c823930815050f35b5f80fdfe5f80fdfea26469706673582212207e61f08fa9542eebd4775476e7f7e973e31d890614ad207ec49bbde66f4a837064736f6c634300081e0033","sourceMap":"450:12295:34:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x5f80fdfea26469706673582212207e61f08fa9542eebd4775476e7f7e973e31d890614ad207ec49bbde66f4a837064736f6c634300081e0033","sourceMap":"450:12295:34:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.30+commit.73712a01\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes4\",\"name\":\"fsig\",\"type\":\"bytes4\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"keysHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slot\",\"type\":\"uint256\"}],\"name\":\"SlotFound\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slot\",\"type\":\"uint256\"}],\"name\":\"WARNING_UninitedSlot\",\"type\":\"event\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/StdStorage.sol\":\"stdStorageSafe\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@ensdomains/=node_modules/@ensdomains/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"],\"viaIR\":true},\"sources\":{\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xddd9f444525fe3b2db77df55bde598676784b13bd19ead1d19b95802de0eacdc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://53770fa34bf0d75fd2946b71335ce6e6001053595e6dd78e7af9baf7a5270616\",\"dweb:/ipfs/QmVvfuJi928Hw6i44oUArYeAP8Pst1bvQvUeJ3CTdh1yUZ\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x1f3cfde19cafbd145904bfb00581a10ca7667186276e8c91dc2943ec559de88a\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bdf9afa0df475e5ea0aa1f5feb27987499051a1a85a9177d3d01e131ff0f1af2\",\"dweb:/ipfs/QmdQfAdeU4PtQSHs1mMwoEUpdFfbrgRdJuhVXeaxeb5dxV\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.30+commit.73712a01"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"who","type":"address","indexed":false},{"internalType":"bytes4","name":"fsig","type":"bytes4","indexed":false},{"internalType":"bytes32","name":"keysHash","type":"bytes32","indexed":false},{"internalType":"uint256","name":"slot","type":"uint256","indexed":false}],"type":"event","name":"SlotFound","anonymous":false},{"inputs":[{"internalType":"address","name":"who","type":"address","indexed":false},{"internalType":"uint256","name":"slot","type":"uint256","indexed":false}],"type":"event","name":"WARNING_UninitedSlot","anonymous":false}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@ensdomains/=node_modules/@ensdomains/","@openzeppelin/=node_modules/@openzeppelin/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/StdStorage.sol":"stdStorageSafe"},"evmVersion":"prague","libraries":{},"viaIR":true},"sources":{"lib/forge-std/src/StdStorage.sol":{"keccak256":"0xddd9f444525fe3b2db77df55bde598676784b13bd19ead1d19b95802de0eacdc","urls":["bzz-raw://53770fa34bf0d75fd2946b71335ce6e6001053595e6dd78e7af9baf7a5270616","dweb:/ipfs/QmVvfuJi928Hw6i44oUArYeAP8Pst1bvQvUeJ3CTdh1yUZ"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x1f3cfde19cafbd145904bfb00581a10ca7667186276e8c91dc2943ec559de88a","urls":["bzz-raw://bdf9afa0df475e5ea0aa1f5feb27987499051a1a85a9177d3d01e131ff0f1af2","dweb:/ipfs/QmdQfAdeU4PtQSHs1mMwoEUpdFfbrgRdJuhVXeaxeb5dxV"],"license":"MIT OR Apache-2.0"}},"version":1},"id":34}
|
||||
{"abi":[{"type":"event","name":"SlotFound","inputs":[{"name":"who","type":"address","indexed":false,"internalType":"address"},{"name":"fsig","type":"bytes4","indexed":false,"internalType":"bytes4"},{"name":"keysHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"slot","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"WARNING_UninitedSlot","inputs":[{"name":"who","type":"address","indexed":false,"internalType":"address"},{"name":"slot","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x6080806040523460175760399081601c823930815050f35b5f80fdfe5f80fdfea26469706673582212207e61f08fa9542eebd4775476e7f7e973e31d890614ad207ec49bbde66f4a837064736f6c634300081e0033","sourceMap":"450:12295:33:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x5f80fdfea26469706673582212207e61f08fa9542eebd4775476e7f7e973e31d890614ad207ec49bbde66f4a837064736f6c634300081e0033","sourceMap":"450:12295:33:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.30+commit.73712a01\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes4\",\"name\":\"fsig\",\"type\":\"bytes4\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"keysHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slot\",\"type\":\"uint256\"}],\"name\":\"SlotFound\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slot\",\"type\":\"uint256\"}],\"name\":\"WARNING_UninitedSlot\",\"type\":\"event\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/StdStorage.sol\":\"stdStorageSafe\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@ensdomains/=node_modules/@ensdomains/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"],\"viaIR\":true},\"sources\":{\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xddd9f444525fe3b2db77df55bde598676784b13bd19ead1d19b95802de0eacdc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://53770fa34bf0d75fd2946b71335ce6e6001053595e6dd78e7af9baf7a5270616\",\"dweb:/ipfs/QmVvfuJi928Hw6i44oUArYeAP8Pst1bvQvUeJ3CTdh1yUZ\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x1f3cfde19cafbd145904bfb00581a10ca7667186276e8c91dc2943ec559de88a\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bdf9afa0df475e5ea0aa1f5feb27987499051a1a85a9177d3d01e131ff0f1af2\",\"dweb:/ipfs/QmdQfAdeU4PtQSHs1mMwoEUpdFfbrgRdJuhVXeaxeb5dxV\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.30+commit.73712a01"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"who","type":"address","indexed":false},{"internalType":"bytes4","name":"fsig","type":"bytes4","indexed":false},{"internalType":"bytes32","name":"keysHash","type":"bytes32","indexed":false},{"internalType":"uint256","name":"slot","type":"uint256","indexed":false}],"type":"event","name":"SlotFound","anonymous":false},{"inputs":[{"internalType":"address","name":"who","type":"address","indexed":false},{"internalType":"uint256","name":"slot","type":"uint256","indexed":false}],"type":"event","name":"WARNING_UninitedSlot","anonymous":false}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@ensdomains/=node_modules/@ensdomains/","@openzeppelin/=node_modules/@openzeppelin/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/StdStorage.sol":"stdStorageSafe"},"evmVersion":"prague","libraries":{},"viaIR":true},"sources":{"lib/forge-std/src/StdStorage.sol":{"keccak256":"0xddd9f444525fe3b2db77df55bde598676784b13bd19ead1d19b95802de0eacdc","urls":["bzz-raw://53770fa34bf0d75fd2946b71335ce6e6001053595e6dd78e7af9baf7a5270616","dweb:/ipfs/QmVvfuJi928Hw6i44oUArYeAP8Pst1bvQvUeJ3CTdh1yUZ"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x1f3cfde19cafbd145904bfb00581a10ca7667186276e8c91dc2943ec559de88a","urls":["bzz-raw://bdf9afa0df475e5ea0aa1f5feb27987499051a1a85a9177d3d01e131ff0f1af2","dweb:/ipfs/QmdQfAdeU4PtQSHs1mMwoEUpdFfbrgRdJuhVXeaxeb5dxV"],"license":"MIT OR Apache-2.0"}},"version":1},"id":33}
|
||||
@@ -1 +1 @@
|
||||
{"abi":[],"bytecode":{"object":"0x6080806040523460175760399081601c823930815050f35b5f80fdfe5f80fdfea2646970667358221220fa12bcfa45681757ecb9aee94672872d76cbd8ca6944c12dbd30f178c637c70f64736f6c634300081e0033","sourceMap":"100:10361:35:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x5f80fdfea2646970667358221220fa12bcfa45681757ecb9aee94672872d76cbd8ca6944c12dbd30f178c637c70f64736f6c634300081e0033","sourceMap":"100:10361:35:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.30+commit.73712a01\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/StdStyle.sol\":\"StdStyle\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@ensdomains/=node_modules/@ensdomains/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"],\"viaIR\":true},\"sources\":{\"lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8\",\"dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x1f3cfde19cafbd145904bfb00581a10ca7667186276e8c91dc2943ec559de88a\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bdf9afa0df475e5ea0aa1f5feb27987499051a1a85a9177d3d01e131ff0f1af2\",\"dweb:/ipfs/QmdQfAdeU4PtQSHs1mMwoEUpdFfbrgRdJuhVXeaxeb5dxV\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.30+commit.73712a01"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@ensdomains/=node_modules/@ensdomains/","@openzeppelin/=node_modules/@openzeppelin/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/StdStyle.sol":"StdStyle"},"evmVersion":"prague","libraries":{},"viaIR":true},"sources":{"lib/forge-std/src/StdStyle.sol":{"keccak256":"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d","urls":["bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8","dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x1f3cfde19cafbd145904bfb00581a10ca7667186276e8c91dc2943ec559de88a","urls":["bzz-raw://bdf9afa0df475e5ea0aa1f5feb27987499051a1a85a9177d3d01e131ff0f1af2","dweb:/ipfs/QmdQfAdeU4PtQSHs1mMwoEUpdFfbrgRdJuhVXeaxeb5dxV"],"license":"MIT OR Apache-2.0"}},"version":1},"id":35}
|
||||
{"abi":[],"bytecode":{"object":"0x6080806040523460175760399081601c823930815050f35b5f80fdfe5f80fdfea2646970667358221220fa12bcfa45681757ecb9aee94672872d76cbd8ca6944c12dbd30f178c637c70f64736f6c634300081e0033","sourceMap":"100:10361:34:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x5f80fdfea2646970667358221220fa12bcfa45681757ecb9aee94672872d76cbd8ca6944c12dbd30f178c637c70f64736f6c634300081e0033","sourceMap":"100:10361:34:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.30+commit.73712a01\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/StdStyle.sol\":\"StdStyle\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@ensdomains/=node_modules/@ensdomains/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"],\"viaIR\":true},\"sources\":{\"lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8\",\"dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x1f3cfde19cafbd145904bfb00581a10ca7667186276e8c91dc2943ec559de88a\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bdf9afa0df475e5ea0aa1f5feb27987499051a1a85a9177d3d01e131ff0f1af2\",\"dweb:/ipfs/QmdQfAdeU4PtQSHs1mMwoEUpdFfbrgRdJuhVXeaxeb5dxV\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.30+commit.73712a01"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@ensdomains/=node_modules/@ensdomains/","@openzeppelin/=node_modules/@openzeppelin/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/StdStyle.sol":"StdStyle"},"evmVersion":"prague","libraries":{},"viaIR":true},"sources":{"lib/forge-std/src/StdStyle.sol":{"keccak256":"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d","urls":["bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8","dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x1f3cfde19cafbd145904bfb00581a10ca7667186276e8c91dc2943ec559de88a","urls":["bzz-raw://bdf9afa0df475e5ea0aa1f5feb27987499051a1a85a9177d3d01e131ff0f1af2","dweb:/ipfs/QmdQfAdeU4PtQSHs1mMwoEUpdFfbrgRdJuhVXeaxeb5dxV"],"license":"MIT OR Apache-2.0"}},"version":1},"id":34}
|
||||
@@ -1 +1 @@
|
||||
{"abi":[],"bytecode":{"object":"0x6080806040523460175760399081601c823930815050f35b5f80fdfe5f80fdfea2646970667358221220b494b8288de22aced84ec68b13b78a31d1e8454694ef7daae41451860c4f82cf64736f6c634300081e0033","sourceMap":"610:9052:36:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x5f80fdfea2646970667358221220b494b8288de22aced84ec68b13b78a31d1e8454694ef7daae41451860c4f82cf64736f6c634300081e0033","sourceMap":"610:9052:36:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.30+commit.73712a01\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/StdToml.sol\":\"stdToml\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@ensdomains/=node_modules/@ensdomains/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"],\"viaIR\":true},\"sources\":{\"lib/forge-std/src/StdToml.sol\":{\"keccak256\":\"0xab2a75a814f280bfcb4e8bfad9c2108fb3ab29a15cfaf74fa0758594e836ea80\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9baa5aacc065172569c3b1d12bb42b5b703476690de481c4c11e88acc216da33\",\"dweb:/ipfs/QmetZcd1KvZHKYMbdKBVNpKHidqYHsWc2A2NZeh5NLow5y\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x1f3cfde19cafbd145904bfb00581a10ca7667186276e8c91dc2943ec559de88a\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bdf9afa0df475e5ea0aa1f5feb27987499051a1a85a9177d3d01e131ff0f1af2\",\"dweb:/ipfs/QmdQfAdeU4PtQSHs1mMwoEUpdFfbrgRdJuhVXeaxeb5dxV\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.30+commit.73712a01"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@ensdomains/=node_modules/@ensdomains/","@openzeppelin/=node_modules/@openzeppelin/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/StdToml.sol":"stdToml"},"evmVersion":"prague","libraries":{},"viaIR":true},"sources":{"lib/forge-std/src/StdToml.sol":{"keccak256":"0xab2a75a814f280bfcb4e8bfad9c2108fb3ab29a15cfaf74fa0758594e836ea80","urls":["bzz-raw://9baa5aacc065172569c3b1d12bb42b5b703476690de481c4c11e88acc216da33","dweb:/ipfs/QmetZcd1KvZHKYMbdKBVNpKHidqYHsWc2A2NZeh5NLow5y"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x1f3cfde19cafbd145904bfb00581a10ca7667186276e8c91dc2943ec559de88a","urls":["bzz-raw://bdf9afa0df475e5ea0aa1f5feb27987499051a1a85a9177d3d01e131ff0f1af2","dweb:/ipfs/QmdQfAdeU4PtQSHs1mMwoEUpdFfbrgRdJuhVXeaxeb5dxV"],"license":"MIT OR Apache-2.0"}},"version":1},"id":36}
|
||||
{"abi":[],"bytecode":{"object":"0x6080806040523460175760399081601c823930815050f35b5f80fdfe5f80fdfea2646970667358221220b494b8288de22aced84ec68b13b78a31d1e8454694ef7daae41451860c4f82cf64736f6c634300081e0033","sourceMap":"610:9052:35:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x5f80fdfea2646970667358221220b494b8288de22aced84ec68b13b78a31d1e8454694ef7daae41451860c4f82cf64736f6c634300081e0033","sourceMap":"610:9052:35:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.30+commit.73712a01\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/StdToml.sol\":\"stdToml\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@ensdomains/=node_modules/@ensdomains/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"],\"viaIR\":true},\"sources\":{\"lib/forge-std/src/StdToml.sol\":{\"keccak256\":\"0xab2a75a814f280bfcb4e8bfad9c2108fb3ab29a15cfaf74fa0758594e836ea80\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9baa5aacc065172569c3b1d12bb42b5b703476690de481c4c11e88acc216da33\",\"dweb:/ipfs/QmetZcd1KvZHKYMbdKBVNpKHidqYHsWc2A2NZeh5NLow5y\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x1f3cfde19cafbd145904bfb00581a10ca7667186276e8c91dc2943ec559de88a\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bdf9afa0df475e5ea0aa1f5feb27987499051a1a85a9177d3d01e131ff0f1af2\",\"dweb:/ipfs/QmdQfAdeU4PtQSHs1mMwoEUpdFfbrgRdJuhVXeaxeb5dxV\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.30+commit.73712a01"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@ensdomains/=node_modules/@ensdomains/","@openzeppelin/=node_modules/@openzeppelin/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/StdToml.sol":"stdToml"},"evmVersion":"prague","libraries":{},"viaIR":true},"sources":{"lib/forge-std/src/StdToml.sol":{"keccak256":"0xab2a75a814f280bfcb4e8bfad9c2108fb3ab29a15cfaf74fa0758594e836ea80","urls":["bzz-raw://9baa5aacc065172569c3b1d12bb42b5b703476690de481c4c11e88acc216da33","dweb:/ipfs/QmetZcd1KvZHKYMbdKBVNpKHidqYHsWc2A2NZeh5NLow5y"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x1f3cfde19cafbd145904bfb00581a10ca7667186276e8c91dc2943ec559de88a","urls":["bzz-raw://bdf9afa0df475e5ea0aa1f5feb27987499051a1a85a9177d3d01e131ff0f1af2","dweb:/ipfs/QmdQfAdeU4PtQSHs1mMwoEUpdFfbrgRdJuhVXeaxeb5dxV"],"license":"MIT OR Apache-2.0"}},"version":1},"id":35}
|
||||
@@ -1 +1 @@
|
||||
{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.30+commit.73712a01\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/StdUtils.sol\":\"StdUtils\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@ensdomains/=node_modules/@ensdomains/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"],\"viaIR\":true},\"sources\":{\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0x4b541d0e4758fbbefeb1f2d547c864b2cb7cc35fcd6ff81772a44cc86344e19c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f2271f9441041fe761879924bcd027cdb0145586a9769d2043fe551cf78c6a7\",\"dweb:/ipfs/QmZP6jjnsTH7L3T8P9ecJXqg9o5P3sa1FbCG6DY3HYYcfx\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x1f3cfde19cafbd145904bfb00581a10ca7667186276e8c91dc2943ec559de88a\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bdf9afa0df475e5ea0aa1f5feb27987499051a1a85a9177d3d01e131ff0f1af2\",\"dweb:/ipfs/QmdQfAdeU4PtQSHs1mMwoEUpdFfbrgRdJuhVXeaxeb5dxV\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0xeb0daba50f85adb160209f03ebf7b3b548e09651aa799087795daf17b1495c7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b5b356871e51267728d69c662d8d8ce653dd0a8edc47098b6f8064ea1173e28\",\"dweb:/ipfs/QmRJTAmV68NYGSkDGKrGpsJnEZ8wQF4dDCevXGtNU4RWtQ\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.30+commit.73712a01"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@ensdomains/=node_modules/@ensdomains/","@openzeppelin/=node_modules/@openzeppelin/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/StdUtils.sol":"StdUtils"},"evmVersion":"prague","libraries":{},"viaIR":true},"sources":{"lib/forge-std/src/StdUtils.sol":{"keccak256":"0x4b541d0e4758fbbefeb1f2d547c864b2cb7cc35fcd6ff81772a44cc86344e19c","urls":["bzz-raw://3f2271f9441041fe761879924bcd027cdb0145586a9769d2043fe551cf78c6a7","dweb:/ipfs/QmZP6jjnsTH7L3T8P9ecJXqg9o5P3sa1FbCG6DY3HYYcfx"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x1f3cfde19cafbd145904bfb00581a10ca7667186276e8c91dc2943ec559de88a","urls":["bzz-raw://bdf9afa0df475e5ea0aa1f5feb27987499051a1a85a9177d3d01e131ff0f1af2","dweb:/ipfs/QmdQfAdeU4PtQSHs1mMwoEUpdFfbrgRdJuhVXeaxeb5dxV"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0xeb0daba50f85adb160209f03ebf7b3b548e09651aa799087795daf17b1495c7a","urls":["bzz-raw://8b5b356871e51267728d69c662d8d8ce653dd0a8edc47098b6f8064ea1173e28","dweb:/ipfs/QmRJTAmV68NYGSkDGKrGpsJnEZ8wQF4dDCevXGtNU4RWtQ"],"license":"MIT"}},"version":1},"id":37}
|
||||
{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.30+commit.73712a01\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/StdUtils.sol\":\"StdUtils\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@ensdomains/=node_modules/@ensdomains/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"],\"viaIR\":true},\"sources\":{\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0x4b541d0e4758fbbefeb1f2d547c864b2cb7cc35fcd6ff81772a44cc86344e19c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f2271f9441041fe761879924bcd027cdb0145586a9769d2043fe551cf78c6a7\",\"dweb:/ipfs/QmZP6jjnsTH7L3T8P9ecJXqg9o5P3sa1FbCG6DY3HYYcfx\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x1f3cfde19cafbd145904bfb00581a10ca7667186276e8c91dc2943ec559de88a\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bdf9afa0df475e5ea0aa1f5feb27987499051a1a85a9177d3d01e131ff0f1af2\",\"dweb:/ipfs/QmdQfAdeU4PtQSHs1mMwoEUpdFfbrgRdJuhVXeaxeb5dxV\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0xeb0daba50f85adb160209f03ebf7b3b548e09651aa799087795daf17b1495c7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b5b356871e51267728d69c662d8d8ce653dd0a8edc47098b6f8064ea1173e28\",\"dweb:/ipfs/QmRJTAmV68NYGSkDGKrGpsJnEZ8wQF4dDCevXGtNU4RWtQ\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.30+commit.73712a01"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@ensdomains/=node_modules/@ensdomains/","@openzeppelin/=node_modules/@openzeppelin/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/StdUtils.sol":"StdUtils"},"evmVersion":"prague","libraries":{},"viaIR":true},"sources":{"lib/forge-std/src/StdUtils.sol":{"keccak256":"0x4b541d0e4758fbbefeb1f2d547c864b2cb7cc35fcd6ff81772a44cc86344e19c","urls":["bzz-raw://3f2271f9441041fe761879924bcd027cdb0145586a9769d2043fe551cf78c6a7","dweb:/ipfs/QmZP6jjnsTH7L3T8P9ecJXqg9o5P3sa1FbCG6DY3HYYcfx"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x1f3cfde19cafbd145904bfb00581a10ca7667186276e8c91dc2943ec559de88a","urls":["bzz-raw://bdf9afa0df475e5ea0aa1f5feb27987499051a1a85a9177d3d01e131ff0f1af2","dweb:/ipfs/QmdQfAdeU4PtQSHs1mMwoEUpdFfbrgRdJuhVXeaxeb5dxV"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0xeb0daba50f85adb160209f03ebf7b3b548e09651aa799087795daf17b1495c7a","urls":["bzz-raw://8b5b356871e51267728d69c662d8d8ce653dd0a8edc47098b6f8064ea1173e28","dweb:/ipfs/QmRJTAmV68NYGSkDGKrGpsJnEZ8wQF4dDCevXGtNU4RWtQ"],"license":"MIT"}},"version":1},"id":36}
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
1
out/YtVault.t.sol/MockWUSD.json
Normal file
1
out/YtVault.t.sol/MockWUSD.json
Normal file
File diff suppressed because one or more lines are too long
1
out/YtVault.t.sol/VaultTest.json
Normal file
1
out/YtVault.t.sol/VaultTest.json
Normal file
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
|
||||
{"id":"0154d3301887e597","source_id_to_path":{"0":"contracts/interfaces/ILending.sol","1":"contracts/interfaces/IPriceFeed.sol","2":"contracts/ytLending/Configurator.sol","3":"contracts/ytLending/ConfiguratorStorage.sol","4":"contracts/ytLending/Lending.sol","5":"contracts/ytLending/LendingConfiguration.sol","6":"contracts/ytLending/LendingFactory.sol","7":"contracts/ytLending/LendingMath.sol","8":"contracts/ytLending/LendingStorage.sol","9":"lib/forge-std/src/Base.sol","10":"lib/forge-std/src/StdAssertions.sol","11":"lib/forge-std/src/StdChains.sol","12":"lib/forge-std/src/StdCheats.sol","13":"lib/forge-std/src/StdConstants.sol","14":"lib/forge-std/src/StdError.sol","15":"lib/forge-std/src/StdInvariant.sol","16":"lib/forge-std/src/StdJson.sol","17":"lib/forge-std/src/StdMath.sol","18":"lib/forge-std/src/StdStorage.sol","19":"lib/forge-std/src/StdStyle.sol","20":"lib/forge-std/src/StdToml.sol","21":"lib/forge-std/src/StdUtils.sol","22":"lib/forge-std/src/Test.sol","23":"lib/forge-std/src/Vm.sol","24":"lib/forge-std/src/console.sol","25":"lib/forge-std/src/console2.sol","26":"lib/forge-std/src/interfaces/IMulticall3.sol","27":"lib/forge-std/src/safeconsole.sol","28":"node_modules/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","29":"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","30":"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol","31":"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol","32":"node_modules/@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.sol","33":"node_modules/@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardUpgradeable.sol","34":"node_modules/@openzeppelin/contracts/access/Ownable.sol","35":"node_modules/@openzeppelin/contracts/interfaces/IERC1363.sol","36":"node_modules/@openzeppelin/contracts/interfaces/IERC165.sol","37":"node_modules/@openzeppelin/contracts/interfaces/IERC1967.sol","38":"node_modules/@openzeppelin/contracts/interfaces/IERC20.sol","39":"node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol","40":"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol","41":"node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol","42":"node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol","43":"node_modules/@openzeppelin/contracts/proxy/Proxy.sol","44":"node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol","45":"node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol","46":"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol","47":"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol","48":"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol","49":"node_modules/@openzeppelin/contracts/utils/Address.sol","50":"node_modules/@openzeppelin/contracts/utils/Context.sol","51":"node_modules/@openzeppelin/contracts/utils/Errors.sol","52":"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol","53":"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol","54":"test/YtLending.t.sol"},"language":"Solidity"}
|
||||
@@ -1 +0,0 @@
|
||||
{"id":"01e6a324b39f7016","source_id_to_path":{"0":"contracts/interfaces/IUSDY.sol","1":"contracts/interfaces/IYTLPToken.sol","2":"contracts/interfaces/IYTPoolManager.sol","3":"contracts/interfaces/IYTPriceFeed.sol","4":"contracts/interfaces/IYTToken.sol","5":"contracts/interfaces/IYTVault.sol","6":"contracts/vault/YTAssetFactory.sol","7":"contracts/vault/YTAssetVault.sol","8":"contracts/ytLending/Configurator.sol","9":"contracts/ytLending/ConfiguratorStorage.sol","10":"contracts/ytLending/Lending.sol","11":"contracts/ytLending/LendingConfiguration.sol","12":"contracts/ytLending/LendingFactory.sol","13":"contracts/ytLending/LendingMath.sol","14":"contracts/ytLending/LendingStorage.sol","15":"contracts/ytLending/interfaces/ILending.sol","16":"contracts/ytLending/interfaces/IPriceFeed.sol","17":"contracts/ytLp/core/YTPoolManager.sol","18":"contracts/ytLp/core/YTPriceFeed.sol","19":"contracts/ytLp/core/YTRewardRouter.sol","20":"contracts/ytLp/core/YTVault.sol","21":"contracts/ytLp/tokens/USDY.sol","22":"contracts/ytLp/tokens/WUSD.sol","23":"contracts/ytLp/tokens/YTLPToken.sol","24":"lib/forge-std/src/Base.sol","25":"lib/forge-std/src/StdAssertions.sol","26":"lib/forge-std/src/StdChains.sol","27":"lib/forge-std/src/StdCheats.sol","28":"lib/forge-std/src/StdConstants.sol","29":"lib/forge-std/src/StdError.sol","30":"lib/forge-std/src/StdInvariant.sol","31":"lib/forge-std/src/StdJson.sol","32":"lib/forge-std/src/StdMath.sol","33":"lib/forge-std/src/StdStorage.sol","34":"lib/forge-std/src/StdStyle.sol","35":"lib/forge-std/src/StdToml.sol","36":"lib/forge-std/src/StdUtils.sol","37":"lib/forge-std/src/Test.sol","38":"lib/forge-std/src/Vm.sol","39":"lib/forge-std/src/console.sol","40":"lib/forge-std/src/console2.sol","41":"lib/forge-std/src/interfaces/IMulticall3.sol","42":"lib/forge-std/src/safeconsole.sol","43":"node_modules/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","44":"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","45":"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol","46":"node_modules/@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol","47":"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol","48":"node_modules/@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.sol","49":"node_modules/@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardUpgradeable.sol","50":"node_modules/@openzeppelin/contracts/access/Ownable.sol","51":"node_modules/@openzeppelin/contracts/interfaces/IERC1363.sol","52":"node_modules/@openzeppelin/contracts/interfaces/IERC165.sol","53":"node_modules/@openzeppelin/contracts/interfaces/IERC1967.sol","54":"node_modules/@openzeppelin/contracts/interfaces/IERC20.sol","55":"node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol","56":"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol","57":"node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol","58":"node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol","59":"node_modules/@openzeppelin/contracts/proxy/Proxy.sol","60":"node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol","61":"node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol","62":"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol","63":"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol","64":"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol","65":"node_modules/@openzeppelin/contracts/utils/Address.sol","66":"node_modules/@openzeppelin/contracts/utils/Context.sol","67":"node_modules/@openzeppelin/contracts/utils/Errors.sol","68":"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol","69":"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol","70":"test/Vault.t.sol","71":"test/YTLp.t.sol","72":"test/YtLending.t.sol"},"language":"Solidity"}
|
||||
1
out/build-info/13883cf245cac5c1.json
Normal file
1
out/build-info/13883cf245cac5c1.json
Normal file
@@ -0,0 +1 @@
|
||||
{"id":"13883cf245cac5c1","source_id_to_path":{"0":"contracts/interfaces/ILending.sol","1":"contracts/interfaces/IPriceFeed.sol","2":"contracts/interfaces/IUSDY.sol","3":"contracts/interfaces/IYTLPToken.sol","4":"contracts/interfaces/IYTPoolManager.sol","5":"contracts/interfaces/IYTPriceFeed.sol","6":"contracts/interfaces/IYTToken.sol","7":"contracts/interfaces/IYTVault.sol","8":"contracts/vault/YTAssetFactory.sol","9":"contracts/vault/YTAssetVault.sol","10":"contracts/ytLending/Configurator.sol","11":"contracts/ytLending/ConfiguratorStorage.sol","12":"contracts/ytLending/Lending.sol","13":"contracts/ytLending/LendingConfiguration.sol","14":"contracts/ytLending/LendingFactory.sol","15":"contracts/ytLending/LendingMath.sol","16":"contracts/ytLending/LendingStorage.sol","17":"contracts/ytLp/core/YTPoolManager.sol","18":"contracts/ytLp/core/YTPriceFeed.sol","19":"contracts/ytLp/core/YTRewardRouter.sol","20":"contracts/ytLp/core/YTVault.sol","21":"contracts/ytLp/tokens/USDY.sol","22":"contracts/ytLp/tokens/WUSD.sol","23":"contracts/ytLp/tokens/YTLPToken.sol","24":"lib/forge-std/src/Base.sol","25":"lib/forge-std/src/StdAssertions.sol","26":"lib/forge-std/src/StdChains.sol","27":"lib/forge-std/src/StdCheats.sol","28":"lib/forge-std/src/StdConstants.sol","29":"lib/forge-std/src/StdError.sol","30":"lib/forge-std/src/StdInvariant.sol","31":"lib/forge-std/src/StdJson.sol","32":"lib/forge-std/src/StdMath.sol","33":"lib/forge-std/src/StdStorage.sol","34":"lib/forge-std/src/StdStyle.sol","35":"lib/forge-std/src/StdToml.sol","36":"lib/forge-std/src/StdUtils.sol","37":"lib/forge-std/src/Test.sol","38":"lib/forge-std/src/Vm.sol","39":"lib/forge-std/src/console.sol","40":"lib/forge-std/src/console2.sol","41":"lib/forge-std/src/interfaces/IMulticall3.sol","42":"lib/forge-std/src/safeconsole.sol","43":"node_modules/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","44":"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","45":"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol","46":"node_modules/@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol","47":"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol","48":"node_modules/@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.sol","49":"node_modules/@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardUpgradeable.sol","50":"node_modules/@openzeppelin/contracts/access/Ownable.sol","51":"node_modules/@openzeppelin/contracts/interfaces/IERC1363.sol","52":"node_modules/@openzeppelin/contracts/interfaces/IERC165.sol","53":"node_modules/@openzeppelin/contracts/interfaces/IERC1967.sol","54":"node_modules/@openzeppelin/contracts/interfaces/IERC20.sol","55":"node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol","56":"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol","57":"node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol","58":"node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol","59":"node_modules/@openzeppelin/contracts/proxy/Proxy.sol","60":"node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol","61":"node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol","62":"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol","63":"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol","64":"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol","65":"node_modules/@openzeppelin/contracts/utils/Address.sol","66":"node_modules/@openzeppelin/contracts/utils/Context.sol","67":"node_modules/@openzeppelin/contracts/utils/Errors.sol","68":"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol","69":"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol","70":"test/YTLp.t.sol","71":"test/YtLending.t.sol"},"language":"Solidity"}
|
||||
@@ -1 +0,0 @@
|
||||
{"id":"3727933aebc49b60","source_id_to_path":{"0":"contracts/ytLending/Configurator.sol","1":"contracts/ytLending/ConfiguratorStorage.sol","2":"contracts/ytLending/Lending.sol","3":"contracts/ytLending/LendingConfiguration.sol","4":"contracts/ytLending/LendingFactory.sol","5":"contracts/ytLending/LendingMath.sol","6":"contracts/ytLending/LendingStorage.sol","7":"contracts/ytLending/interfaces/ILending.sol","8":"contracts/ytLending/interfaces/IPriceFeed.sol","9":"lib/forge-std/src/Base.sol","10":"lib/forge-std/src/StdAssertions.sol","11":"lib/forge-std/src/StdChains.sol","12":"lib/forge-std/src/StdCheats.sol","13":"lib/forge-std/src/StdConstants.sol","14":"lib/forge-std/src/StdError.sol","15":"lib/forge-std/src/StdInvariant.sol","16":"lib/forge-std/src/StdJson.sol","17":"lib/forge-std/src/StdMath.sol","18":"lib/forge-std/src/StdStorage.sol","19":"lib/forge-std/src/StdStyle.sol","20":"lib/forge-std/src/StdToml.sol","21":"lib/forge-std/src/StdUtils.sol","22":"lib/forge-std/src/Test.sol","23":"lib/forge-std/src/Vm.sol","24":"lib/forge-std/src/console.sol","25":"lib/forge-std/src/console2.sol","26":"lib/forge-std/src/interfaces/IMulticall3.sol","27":"lib/forge-std/src/safeconsole.sol","28":"node_modules/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","29":"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","30":"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol","31":"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol","32":"node_modules/@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.sol","33":"node_modules/@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardUpgradeable.sol","34":"node_modules/@openzeppelin/contracts/access/Ownable.sol","35":"node_modules/@openzeppelin/contracts/interfaces/IERC1363.sol","36":"node_modules/@openzeppelin/contracts/interfaces/IERC165.sol","37":"node_modules/@openzeppelin/contracts/interfaces/IERC1967.sol","38":"node_modules/@openzeppelin/contracts/interfaces/IERC20.sol","39":"node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol","40":"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol","41":"node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol","42":"node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol","43":"node_modules/@openzeppelin/contracts/proxy/Proxy.sol","44":"node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol","45":"node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol","46":"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol","47":"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol","48":"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol","49":"node_modules/@openzeppelin/contracts/utils/Address.sol","50":"node_modules/@openzeppelin/contracts/utils/Context.sol","51":"node_modules/@openzeppelin/contracts/utils/Errors.sol","52":"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol","53":"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol","54":"test/YtLending.t.sol"},"language":"Solidity"}
|
||||
@@ -1 +0,0 @@
|
||||
{"id":"375bcb4261d62995","source_id_to_path":{"0":"contracts/interfaces/IUSDY.sol","1":"contracts/interfaces/IYTLPToken.sol","2":"contracts/interfaces/IYTPoolManager.sol","3":"contracts/interfaces/IYTPriceFeed.sol","4":"contracts/interfaces/IYTToken.sol","5":"contracts/interfaces/IYTVault.sol","6":"contracts/vault/YTAssetFactory.sol","7":"contracts/vault/YTAssetVault.sol","8":"contracts/ytLending/Configurator.sol","9":"contracts/ytLending/ConfiguratorStorage.sol","10":"contracts/ytLending/Lending.sol","11":"contracts/ytLending/LendingConfiguration.sol","12":"contracts/ytLending/LendingFactory.sol","13":"contracts/ytLending/LendingMath.sol","14":"contracts/ytLending/LendingStorage.sol","15":"contracts/ytLending/interfaces/ILending.sol","16":"contracts/ytLending/interfaces/IPriceFeed.sol","17":"contracts/ytLp/core/YTPoolManager.sol","18":"contracts/ytLp/core/YTPriceFeed.sol","19":"contracts/ytLp/core/YTRewardRouter.sol","20":"contracts/ytLp/core/YTVault.sol","21":"contracts/ytLp/tokens/USDY.sol","22":"contracts/ytLp/tokens/WUSD.sol","23":"contracts/ytLp/tokens/YTLPToken.sol","24":"contracts/ytLp/tokens/YTToken.sol","25":"lib/forge-std/src/Base.sol","26":"lib/forge-std/src/StdAssertions.sol","27":"lib/forge-std/src/StdChains.sol","28":"lib/forge-std/src/StdCheats.sol","29":"lib/forge-std/src/StdConstants.sol","30":"lib/forge-std/src/StdError.sol","31":"lib/forge-std/src/StdInvariant.sol","32":"lib/forge-std/src/StdJson.sol","33":"lib/forge-std/src/StdMath.sol","34":"lib/forge-std/src/StdStorage.sol","35":"lib/forge-std/src/StdStyle.sol","36":"lib/forge-std/src/StdToml.sol","37":"lib/forge-std/src/StdUtils.sol","38":"lib/forge-std/src/Test.sol","39":"lib/forge-std/src/Vm.sol","40":"lib/forge-std/src/console.sol","41":"lib/forge-std/src/console2.sol","42":"lib/forge-std/src/interfaces/IMulticall3.sol","43":"lib/forge-std/src/safeconsole.sol","44":"node_modules/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","45":"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","46":"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol","47":"node_modules/@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol","48":"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol","49":"node_modules/@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.sol","50":"node_modules/@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardUpgradeable.sol","51":"node_modules/@openzeppelin/contracts/access/Ownable.sol","52":"node_modules/@openzeppelin/contracts/interfaces/IERC1363.sol","53":"node_modules/@openzeppelin/contracts/interfaces/IERC165.sol","54":"node_modules/@openzeppelin/contracts/interfaces/IERC1967.sol","55":"node_modules/@openzeppelin/contracts/interfaces/IERC20.sol","56":"node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol","57":"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol","58":"node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol","59":"node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol","60":"node_modules/@openzeppelin/contracts/proxy/Proxy.sol","61":"node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol","62":"node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol","63":"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol","64":"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol","65":"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol","66":"node_modules/@openzeppelin/contracts/utils/Address.sol","67":"node_modules/@openzeppelin/contracts/utils/Context.sol","68":"node_modules/@openzeppelin/contracts/utils/Errors.sol","69":"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol","70":"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol","71":"test/Vault.t.sol","72":"test/YTLp.t.sol","73":"test/YtLending.t.sol"},"language":"Solidity"}
|
||||
1
out/build-info/91e4e3160c8abcbf.json
Normal file
1
out/build-info/91e4e3160c8abcbf.json
Normal file
@@ -0,0 +1 @@
|
||||
{"id":"91e4e3160c8abcbf","source_id_to_path":{"0":"contracts/interfaces/IUSDY.sol","1":"contracts/interfaces/IYTLPToken.sol","2":"contracts/interfaces/IYTPoolManager.sol","3":"contracts/interfaces/IYTPriceFeed.sol","4":"contracts/interfaces/IYTToken.sol","5":"contracts/interfaces/IYTVault.sol","6":"contracts/ytLp/core/YTPoolManager.sol","7":"contracts/ytLp/core/YTPriceFeed.sol","8":"contracts/ytLp/core/YTRewardRouter.sol","9":"contracts/ytLp/core/YTVault.sol","10":"contracts/ytLp/tokens/USDY.sol","11":"contracts/ytLp/tokens/WUSD.sol","12":"contracts/ytLp/tokens/YTLPToken.sol","13":"contracts/ytVault/YTAssetFactory.sol","14":"contracts/ytVault/YTAssetVault.sol","15":"lib/forge-std/src/Base.sol","16":"lib/forge-std/src/StdAssertions.sol","17":"lib/forge-std/src/StdChains.sol","18":"lib/forge-std/src/StdCheats.sol","19":"lib/forge-std/src/StdConstants.sol","20":"lib/forge-std/src/StdError.sol","21":"lib/forge-std/src/StdInvariant.sol","22":"lib/forge-std/src/StdJson.sol","23":"lib/forge-std/src/StdMath.sol","24":"lib/forge-std/src/StdStorage.sol","25":"lib/forge-std/src/StdStyle.sol","26":"lib/forge-std/src/StdToml.sol","27":"lib/forge-std/src/StdUtils.sol","28":"lib/forge-std/src/Test.sol","29":"lib/forge-std/src/Vm.sol","30":"lib/forge-std/src/console.sol","31":"lib/forge-std/src/console2.sol","32":"lib/forge-std/src/interfaces/IMulticall3.sol","33":"lib/forge-std/src/safeconsole.sol","34":"node_modules/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","35":"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","36":"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol","37":"node_modules/@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol","38":"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol","39":"node_modules/@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.sol","40":"node_modules/@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardUpgradeable.sol","41":"node_modules/@openzeppelin/contracts/interfaces/IERC1363.sol","42":"node_modules/@openzeppelin/contracts/interfaces/IERC165.sol","43":"node_modules/@openzeppelin/contracts/interfaces/IERC1967.sol","44":"node_modules/@openzeppelin/contracts/interfaces/IERC20.sol","45":"node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol","46":"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol","47":"node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol","48":"node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol","49":"node_modules/@openzeppelin/contracts/proxy/Proxy.sol","50":"node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol","51":"node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol","52":"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol","53":"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol","54":"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol","55":"node_modules/@openzeppelin/contracts/utils/Address.sol","56":"node_modules/@openzeppelin/contracts/utils/Context.sol","57":"node_modules/@openzeppelin/contracts/utils/Errors.sol","58":"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol","59":"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol","60":"test/YtLp.t.sol","61":"test/YtVault.t.sol"},"language":"Solidity"}
|
||||
@@ -1 +0,0 @@
|
||||
{"id":"945e0d5b9cb1cbc7","source_id_to_path":{"0":"contracts/vault/YTAssetFactory.sol","1":"contracts/vault/YTAssetVault.sol","2":"contracts/ytLending/Configurator.sol","3":"contracts/ytLending/ConfiguratorStorage.sol","4":"contracts/ytLending/Lending.sol","5":"contracts/ytLending/LendingConfiguration.sol","6":"contracts/ytLending/LendingFactory.sol","7":"contracts/ytLending/LendingMath.sol","8":"contracts/ytLending/LendingStorage.sol","9":"contracts/ytLending/interfaces/ILending.sol","10":"contracts/ytLending/interfaces/IPriceFeed.sol","11":"lib/forge-std/src/Base.sol","12":"lib/forge-std/src/StdAssertions.sol","13":"lib/forge-std/src/StdChains.sol","14":"lib/forge-std/src/StdCheats.sol","15":"lib/forge-std/src/StdConstants.sol","16":"lib/forge-std/src/StdError.sol","17":"lib/forge-std/src/StdInvariant.sol","18":"lib/forge-std/src/StdJson.sol","19":"lib/forge-std/src/StdMath.sol","20":"lib/forge-std/src/StdStorage.sol","21":"lib/forge-std/src/StdStyle.sol","22":"lib/forge-std/src/StdToml.sol","23":"lib/forge-std/src/StdUtils.sol","24":"lib/forge-std/src/Test.sol","25":"lib/forge-std/src/Vm.sol","26":"lib/forge-std/src/console.sol","27":"lib/forge-std/src/console2.sol","28":"lib/forge-std/src/interfaces/IMulticall3.sol","29":"lib/forge-std/src/safeconsole.sol","30":"node_modules/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","31":"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","32":"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol","33":"node_modules/@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol","34":"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol","35":"node_modules/@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.sol","36":"node_modules/@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardUpgradeable.sol","37":"node_modules/@openzeppelin/contracts/access/Ownable.sol","38":"node_modules/@openzeppelin/contracts/interfaces/IERC1363.sol","39":"node_modules/@openzeppelin/contracts/interfaces/IERC165.sol","40":"node_modules/@openzeppelin/contracts/interfaces/IERC1967.sol","41":"node_modules/@openzeppelin/contracts/interfaces/IERC20.sol","42":"node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol","43":"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol","44":"node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol","45":"node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol","46":"node_modules/@openzeppelin/contracts/proxy/Proxy.sol","47":"node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol","48":"node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol","49":"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol","50":"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol","51":"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol","52":"node_modules/@openzeppelin/contracts/utils/Address.sol","53":"node_modules/@openzeppelin/contracts/utils/Context.sol","54":"node_modules/@openzeppelin/contracts/utils/Errors.sol","55":"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol","56":"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol","57":"test/Vault.t.sol"},"language":"Solidity"}
|
||||
1
out/build-info/9c8b1baabcaef812.json
Normal file
1
out/build-info/9c8b1baabcaef812.json
Normal file
@@ -0,0 +1 @@
|
||||
{"id":"9c8b1baabcaef812","source_id_to_path":{"0":"contracts/ytVault/YTAssetFactory.sol","1":"contracts/ytVault/YTAssetVault.sol","2":"lib/forge-std/src/Base.sol","3":"lib/forge-std/src/StdAssertions.sol","4":"lib/forge-std/src/StdChains.sol","5":"lib/forge-std/src/StdCheats.sol","6":"lib/forge-std/src/StdConstants.sol","7":"lib/forge-std/src/StdError.sol","8":"lib/forge-std/src/StdInvariant.sol","9":"lib/forge-std/src/StdJson.sol","10":"lib/forge-std/src/StdMath.sol","11":"lib/forge-std/src/StdStorage.sol","12":"lib/forge-std/src/StdStyle.sol","13":"lib/forge-std/src/StdToml.sol","14":"lib/forge-std/src/StdUtils.sol","15":"lib/forge-std/src/Test.sol","16":"lib/forge-std/src/Vm.sol","17":"lib/forge-std/src/console.sol","18":"lib/forge-std/src/console2.sol","19":"lib/forge-std/src/interfaces/IMulticall3.sol","20":"lib/forge-std/src/safeconsole.sol","21":"node_modules/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","22":"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","23":"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol","24":"node_modules/@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol","25":"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol","26":"node_modules/@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.sol","27":"node_modules/@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardUpgradeable.sol","28":"node_modules/@openzeppelin/contracts/interfaces/IERC1363.sol","29":"node_modules/@openzeppelin/contracts/interfaces/IERC165.sol","30":"node_modules/@openzeppelin/contracts/interfaces/IERC1967.sol","31":"node_modules/@openzeppelin/contracts/interfaces/IERC20.sol","32":"node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol","33":"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol","34":"node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol","35":"node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol","36":"node_modules/@openzeppelin/contracts/proxy/Proxy.sol","37":"node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol","38":"node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol","39":"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol","40":"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol","41":"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol","42":"node_modules/@openzeppelin/contracts/utils/Address.sol","43":"node_modules/@openzeppelin/contracts/utils/Context.sol","44":"node_modules/@openzeppelin/contracts/utils/Errors.sol","45":"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol","46":"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol","47":"test/YtVault.t.sol"},"language":"Solidity"}
|
||||
@@ -1 +1 @@
|
||||
{"id":"1aaeeaf42998eb4c","source_id_to_path":{"0":"contracts/interfaces/IUSDY.sol","1":"contracts/interfaces/IYTLPToken.sol","2":"contracts/interfaces/IYTPoolManager.sol","3":"contracts/interfaces/IYTPriceFeed.sol","4":"contracts/interfaces/IYTToken.sol","5":"contracts/interfaces/IYTVault.sol","6":"contracts/vault/YTAssetFactory.sol","7":"contracts/vault/YTAssetVault.sol","8":"contracts/ytLp/core/YTPoolManager.sol","9":"contracts/ytLp/core/YTPriceFeed.sol","10":"contracts/ytLp/core/YTRewardRouter.sol","11":"contracts/ytLp/core/YTVault.sol","12":"contracts/ytLp/tokens/USDY.sol","13":"contracts/ytLp/tokens/WUSD.sol","14":"contracts/ytLp/tokens/YTLPToken.sol","15":"lib/forge-std/src/Base.sol","16":"lib/forge-std/src/StdAssertions.sol","17":"lib/forge-std/src/StdChains.sol","18":"lib/forge-std/src/StdCheats.sol","19":"lib/forge-std/src/StdConstants.sol","20":"lib/forge-std/src/StdError.sol","21":"lib/forge-std/src/StdInvariant.sol","22":"lib/forge-std/src/StdJson.sol","23":"lib/forge-std/src/StdMath.sol","24":"lib/forge-std/src/StdStorage.sol","25":"lib/forge-std/src/StdStyle.sol","26":"lib/forge-std/src/StdToml.sol","27":"lib/forge-std/src/StdUtils.sol","28":"lib/forge-std/src/Test.sol","29":"lib/forge-std/src/Vm.sol","30":"lib/forge-std/src/console.sol","31":"lib/forge-std/src/console2.sol","32":"lib/forge-std/src/interfaces/IMulticall3.sol","33":"lib/forge-std/src/safeconsole.sol","34":"node_modules/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","35":"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","36":"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol","37":"node_modules/@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol","38":"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol","39":"node_modules/@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.sol","40":"node_modules/@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardUpgradeable.sol","41":"node_modules/@openzeppelin/contracts/interfaces/IERC1363.sol","42":"node_modules/@openzeppelin/contracts/interfaces/IERC165.sol","43":"node_modules/@openzeppelin/contracts/interfaces/IERC1967.sol","44":"node_modules/@openzeppelin/contracts/interfaces/IERC20.sol","45":"node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol","46":"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol","47":"node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol","48":"node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol","49":"node_modules/@openzeppelin/contracts/proxy/Proxy.sol","50":"node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol","51":"node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol","52":"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol","53":"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol","54":"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol","55":"node_modules/@openzeppelin/contracts/utils/Address.sol","56":"node_modules/@openzeppelin/contracts/utils/Context.sol","57":"node_modules/@openzeppelin/contracts/utils/Errors.sol","58":"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol","59":"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol","60":"test/Vault.t.sol","61":"test/YTLp.t.sol"},"language":"Solidity"}
|
||||
{"id":"9ccede4ac6e1f818","source_id_to_path":{"0":"contracts/interfaces/IUSDY.sol","1":"contracts/interfaces/IYTLPToken.sol","2":"contracts/interfaces/IYTPoolManager.sol","3":"contracts/interfaces/IYTPriceFeed.sol","4":"contracts/interfaces/IYTToken.sol","5":"contracts/interfaces/IYTVault.sol","6":"contracts/vault/YTAssetFactory.sol","7":"contracts/vault/YTAssetVault.sol","8":"contracts/ytLp/core/YTPoolManager.sol","9":"contracts/ytLp/core/YTPriceFeed.sol","10":"contracts/ytLp/core/YTRewardRouter.sol","11":"contracts/ytLp/core/YTVault.sol","12":"contracts/ytLp/tokens/USDY.sol","13":"contracts/ytLp/tokens/WUSD.sol","14":"contracts/ytLp/tokens/YTLPToken.sol","15":"lib/forge-std/src/Base.sol","16":"lib/forge-std/src/StdAssertions.sol","17":"lib/forge-std/src/StdChains.sol","18":"lib/forge-std/src/StdCheats.sol","19":"lib/forge-std/src/StdConstants.sol","20":"lib/forge-std/src/StdError.sol","21":"lib/forge-std/src/StdInvariant.sol","22":"lib/forge-std/src/StdJson.sol","23":"lib/forge-std/src/StdMath.sol","24":"lib/forge-std/src/StdStorage.sol","25":"lib/forge-std/src/StdStyle.sol","26":"lib/forge-std/src/StdToml.sol","27":"lib/forge-std/src/StdUtils.sol","28":"lib/forge-std/src/Test.sol","29":"lib/forge-std/src/Vm.sol","30":"lib/forge-std/src/console.sol","31":"lib/forge-std/src/console2.sol","32":"lib/forge-std/src/interfaces/IMulticall3.sol","33":"lib/forge-std/src/safeconsole.sol","34":"node_modules/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","35":"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","36":"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol","37":"node_modules/@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol","38":"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol","39":"node_modules/@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.sol","40":"node_modules/@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardUpgradeable.sol","41":"node_modules/@openzeppelin/contracts/interfaces/IERC1363.sol","42":"node_modules/@openzeppelin/contracts/interfaces/IERC165.sol","43":"node_modules/@openzeppelin/contracts/interfaces/IERC1967.sol","44":"node_modules/@openzeppelin/contracts/interfaces/IERC20.sol","45":"node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol","46":"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol","47":"node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol","48":"node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol","49":"node_modules/@openzeppelin/contracts/proxy/Proxy.sol","50":"node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol","51":"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol","52":"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol","53":"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol","54":"node_modules/@openzeppelin/contracts/utils/Address.sol","55":"node_modules/@openzeppelin/contracts/utils/Errors.sol","56":"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol","57":"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol","58":"test/YTLp.t.sol"},"language":"Solidity"}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user