Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .husky/pre-commit
Original file line number Diff line number Diff line change
@@ -1 +1 @@
npx lint-staged
npx lint-staged --allow-empty
3 changes: 2 additions & 1 deletion foundry.toml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ script = "src/script"
# A list of paths to look for libraries in
libs = ['lib', 'node_modules']
# Whether or not to enable `vm.ffi`
ffi = false
ffi = true
# Enables or disables the optimizer
optimizer = false
# The number of optimizer runs
Expand All @@ -29,6 +29,7 @@ bytecode_hash = "none"
cbor_metadata = false
# Contracts to track with --gas-report
#gas_reports = []
fs_permissions = [{ access = "read-write", path = "./"}]

[fuzz]
# Amount of runs per fuzz test
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@
"dependencies": {
"ds-test": "github:dapphub/ds-test",
"forge-std": "github:foundry-rs/forge-std#60acb7aaadcce2d68e52986a0a66fe79f07d138f",
"frax-standard-solidity": "github:FraxFinance/frax-standard-solidity",
"frax-standard-solidity": "github:FraxFinance/frax-standard-solidity#v1.1.3",
"frax-tokens": "github:FraxFinance/frax-tokens",
"solidity-bytes-utils": "github:GNSPS/solidity-bytes-utils"
}
Expand Down
75 changes: 4 additions & 71 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

50 changes: 50 additions & 0 deletions src/script/2025-11-25-Add-FrxUSD-Freezers/Base.s.sol
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
pragma solidity ^0.8.0;

import { BaseScript } from "frax-std/BaseScript.sol";
import { console } from "frax-std/FraxTest.sol";
import { SafeTx, SafeTxHelper } from "frax-std/SafeTxHelper.sol";

interface ISafe {
function getOwners() external view returns (address[] memory);
}

interface IFrxUSD {
function owner() external view returns (address);
function addFreezer(address freezer) external;
}

// forge script src/script/2025-11-25-Add-FrxUSD-Freezers/Base.s.sol --rpc-url https://mainnet.base.org
contract AddFrxUsdFreezers is BaseScript {
address public frxUsd = 0xe5020A6d073a794B6E7f05678707dE47986Fb0b6;

SafeTx[] internal txs;

function run() public {
address msig = IFrxUSD(frxUsd).owner();
address[] memory owners = ISafe(msig).getOwners();

for (uint256 i = 0; i < owners.length; i++) {
addFreezer(owners[i]);
}

// dennis
addFreezer(0xC6EF452b0de9E95Ccb153c2A5A7a90154aab3419);

// save to file
SafeTxHelper helper = new SafeTxHelper();
helper.writeTxs(
txs,
string(abi.encodePacked(vm.projectRoot(), "/src/script/2025-11-25-Add-FrxUSD-Freezers/txs/Base.json"))
);
}

function addFreezer(address freezer) internal {
bytes memory data = abi.encodeCall(IFrxUSD.addFreezer, (freezer));

vm.prank(msig);
(bool success, ) = frxUsd.call(data);
require(success, "frxUSD: addFreezer failed");

txs.push(SafeTx({ name: "Add Freezer", to: frxUsd, value: 0, data: data }));
}
}
14 changes: 14 additions & 0 deletions src/script/2025-11-25-Add-FrxUSD-Freezers/Ethereum.s.sol
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
pragma solidity ^0.8.0;

import { BaseScript } from "frax-std/BaseScript.sol";
import { console } from "frax-std/FraxTest.sol";
import { IFrxUSD } from "frax-tokens/contracts/ethereum/frxUSD/IFrxUSD.sol";

interface ISafe {
function getOwners() external view returns (address[] memory);
}

contract AddFrxUsdFreezersEthereum is BaseScript {
address public msig = 0xB1748C79709f4Ba2Dd82834B8c82D4a505003f27;
address public frxUsd = 0xCAcd6fd266aF91b8AeD52aCCc382b4e165586E29;
}
7 changes: 7 additions & 0 deletions src/script/2025-11-25-Add-FrxUSD-Freezers/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# 2025.11.25 Add frxUSD Freezers

## Description
This directory adds the Freezer role to trusted addresses for frxUSD across multiple EVM chains.
The trusted addresses are the signers behind the multisig who has ownership over frxUSD on the respective chain, plus Dennis, for full timezone coverage.

These scripts can be re-used in the future to add additional trusted addresses as a frxUSD Freezer.
53 changes: 53 additions & 0 deletions src/script/2025-11-25-Add-FrxUSD-Freezers/txs/Base.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
{
"chainId": 8453,
"createdAt": 1764110293000,
"meta": {
"description": "",
"name": "Transactions Batch"
},
"transactions": [
{
"data": "0x526606c900000000000000000000000013fe84d36d7a507bb4bdac6dcaf13a10961fc470",
"operation": 0,
"to": "0xe5020A6d073a794B6E7f05678707dE47986Fb0b6",
"value": "0"
},
{
"data": "0x526606c900000000000000000000000017e06ce6914e3969f7bd37d8b2a563890ca1c96e",
"operation": 0,
"to": "0xe5020A6d073a794B6E7f05678707dE47986Fb0b6",
"value": "0"
},
{
"data": "0x526606c90000000000000000000000008d8290d49e88d16d81c6adf6c8774ed88762274a",
"operation": 0,
"to": "0xe5020A6d073a794B6E7f05678707dE47986Fb0b6",
"value": "0"
},
{
"data": "0x526606c9000000000000000000000000cbc616d595d38483e6adc45c7e426f44bf230928",
"operation": 0,
"to": "0xe5020A6d073a794B6E7f05678707dE47986Fb0b6",
"value": "0"
},
{
"data": "0x526606c9000000000000000000000000381e2495e683868f693aa5b1414f712f21d34b40",
"operation": 0,
"to": "0xe5020A6d073a794B6E7f05678707dE47986Fb0b6",
"value": "0"
},
{
"data": "0x526606c90000000000000000000000006e74053a3798e0fc9a9775f7995316b27f21c4d2",
"operation": 0,
"to": "0xe5020A6d073a794B6E7f05678707dE47986Fb0b6",
"value": "0"
},
{
"data": "0x526606c9000000000000000000000000c6ef452b0de9e95ccb153c2a5a7a90154aab3419",
"operation": 0,
"to": "0xe5020A6d073a794B6E7f05678707dE47986Fb0b6",
"value": "0"
}
],
"version": "1.0"
}
33 changes: 0 additions & 33 deletions src/test/Counter/TestIncrement.t.sol

This file was deleted.

30 changes: 0 additions & 30 deletions src/test/Counter/TestSetNumber.t.sol

This file was deleted.