Skip to content

Commit

Permalink
slight refactor
Browse files Browse the repository at this point in the history
  • Loading branch information
MrDeadCe11 committed Sep 6, 2024
1 parent 1946bc2 commit 571f0d0
Show file tree
Hide file tree
Showing 6 changed files with 52 additions and 17 deletions.
2 changes: 1 addition & 1 deletion foundry.toml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ libs = ["lib"]
test = 'test'
cache_path = 'cache'
fs_permissions = [
{ access = "read-write", path = "./script/output" },
{ access = "read-write", path = "./deployments" },
{ access = "read", path = "./" },
]
optimizer = true
Expand Down
10 changes: 5 additions & 5 deletions script/BaseData.sol
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ contract BaseData is Script {
uint256 optimism;
uint256 arbitrum;
uint256 fraxtal;
uint256 holeksy;
uint256 holesky;
uint256 fraxtalTestnet;
}

Expand All @@ -33,7 +33,7 @@ contract BaseData is Script {
optimism: 10,
arbitrum: 42161,
fraxtal: 252,
holeksy: 17000,
holesky: 17000,
fraxtalTestnet: 2522
});

Expand All @@ -57,8 +57,8 @@ contract BaseData is Script {
addresses[chainIds.base] = ChainAddresses({lzEndpoint: 0x1a44076050125825900e736c501f859c50fE728c});
actors[chainIds.base] = Actors({OFT_DELEGATE: address(0), TOKEN_ADMIN: address(0), PROXY_ADMIN: address(0)});

addresses[chainIds.holeksy] = ChainAddresses({lzEndpoint: 0x6EDCE65403992e310A62460808c4b910D972f10f});
actors[chainIds.holeksy] = Actors({
addresses[chainIds.holesky] = ChainAddresses({lzEndpoint: 0x6EDCE65403992e310A62460808c4b910D972f10f});
actors[chainIds.holesky] = Actors({
OFT_DELEGATE: 0x743b91CDB1C694D4F51bCDA3a4A59DcC0d02b913, // yn security council
TOKEN_ADMIN: 0x743b91CDB1C694D4F51bCDA3a4A59DcC0d02b913,
PROXY_ADMIN: 0x743b91CDB1C694D4F51bCDA3a4A59DcC0d02b913
Expand All @@ -79,7 +79,7 @@ contract BaseData is Script {

function isSupportedChainId(uint256 chainId) public view returns (bool) {
return chainId == chainIds.mainnet || chainId == chainIds.base || chainId == chainIds.fraxtal
|| chainId == chainIds.optimism || chainId == chainIds.arbitrum || chainId == chainIds.holeksy
|| chainId == chainIds.optimism || chainId == chainIds.arbitrum || chainId == chainIds.holesky
|| chainId == chainIds.fraxtalTestnet;
}
}
39 changes: 32 additions & 7 deletions script/BaseScript.s.sol
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,21 @@ import {BaseData} from "./BaseData.sol";
import {ImmutableMultiChainDeployer} from "@factory/ImmutableMultiChainDeployer.sol";
import {RateLimiter} from "@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/utils/RateLimiter.sol";
import {EndpointV2} from "@layerzerolabs/lz-evm-protocol-v2/contracts/EndpointV2.sol";
import "forge-std/console.sol";

struct YnOFTAdapterInput {
struct L2YnOFTAdapterInput {
address adapterImplementation;
uint256 chainId;
address erc20Address;
RateLimitConfig[] rateLimitConfigs;
}

struct L1YnOFTAdapterInput {
uint256 chainId;
address erc20Address;
RateLimitConfig[] rateLimitConfigs;
}

struct RateLimitConfig {
uint256 limit;
uint256 window;
Expand All @@ -32,7 +39,8 @@ contract BaseScript is BaseData {
// TODO: setup saving of deployment data in deployments json file
uint256 _chainId;
bytes public data;
YnOFTAdapterInput public _ynOFTAdapterInputs;
L2YnOFTAdapterInput public _ynOFTAdapterInputs;
L1YnOFTAdapterInput public _ynOFTImplementationInputs;
YnERC20Input public _ynERC20Inputs;
RateLimiter.RateLimitConfig[] public _rateLimitConfigs;

Expand All @@ -45,8 +53,21 @@ contract BaseScript is BaseData {
function _loadOFTAdapterData(string memory _inputPath) internal {
_loadJson(_inputPath);
_loadYnOFTAdapterInputs();
_verifyChain();
_getRateLimiterConfigs();
}

function _loadOFTImplementationData(string memory _inputPath) internal {
_loadJson(_inputPath);
_loadYnOFTImplementationInputs();
_verifyChain();
_getRateLimiterConfigs();
}

function _loadYnOFTImplementationInputs() internal {
L1YnOFTAdapterInput memory implementationInputs = abi.decode(data, (L1YnOFTAdapterInput));
this.loadImplementationInputs(implementationInputs);
_chainId = _ynOFTImplementationInputs.chainId;
}

function _loadJson(string memory _path) internal {
Expand All @@ -56,15 +77,19 @@ contract BaseScript is BaseData {
}

function _loadYnOFTAdapterInputs() internal {
YnOFTAdapterInput memory ynOFTAdapterInputs = abi.decode(data, (YnOFTAdapterInput));
_chainId = _ynOFTAdapterInputs.chainId;
L2YnOFTAdapterInput memory ynOFTAdapterInputs = abi.decode(data, (L2YnOFTAdapterInput));
this.loadAdapterInputs(ynOFTAdapterInputs);
_chainId = _ynOFTAdapterInputs.chainId;
}

function loadAdapterInputs(YnOFTAdapterInput calldata _ynInput) external {
function loadAdapterInputs(L2YnOFTAdapterInput calldata _ynInput) external {
_ynOFTAdapterInputs = _ynInput;
}

function loadImplementationInputs(L1YnOFTAdapterInput calldata _ynImpInput) external {
_ynOFTImplementationInputs = _ynImpInput;
}

function _loadYnERC20Inputs() internal {
_ynERC20Inputs = abi.decode(data, (YnERC20Input));
_chainId = _ynERC20Inputs.chainId;
Expand Down Expand Up @@ -92,11 +117,11 @@ contract BaseScript is BaseData {

function _getOutputPath(string memory _deploymentType) internal view returns (string memory) {
string memory root = vm.projectRoot();
return string.concat(root, "/script/output/", _deploymentType, "-", vm.toString(block.chainid), ".json");
return string.concat(root, "/deployments/", _deploymentType, "-", vm.toString(block.chainid), ".json");
}

function _writeOutput(string memory deploymentType, string memory json) internal {
string memory path = _getOutputPath("ImmutableMultiChainDeployer");
string memory path = _getOutputPath(deploymentType);
vm.writeFile(path, json);
}
}
14 changes: 12 additions & 2 deletions script/DeployMainnetImplementations.s.sol
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,13 @@ import {RateLimiter} from "@layerzerolabs/lz-evm-oapp-v2/contracts/oapp/utils/Ra
import {L1YnOFTAdapterUpgradeable} from "@/L1YnOFTAdapterUpgradeable.sol";
import {TransparentUpgradeableProxy} from "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol";

//forge script script/DeployMainnetImplementations.s.sol:DeployMainnetImplementations --rpc-url ${rpc} --account ${deployerAccountName} --sender ${deployer} --broadcast --etherscan-api-key ${api} --verify
// forge script script/DeployMainnetImplementations.s.sol:DeployMainnetImplementations --rpc-url ${rpc} --sig "run(string memory)" ${path} --account ${deployerAccountName} --sender ${deployer} --broadcast --etherscan-api-key ${api} --verify
contract DeployMainnetImplementations is BaseScript {
address public mainnetOFTAdapterImpl;
L1YnOFTAdapterUpgradeable public mainnetOFTAdapter;

function run(string memory __path) public {
_loadOFTAdapterData(__path);
_loadYnOFTImplementationInputs(__path);

vm.broadcast();

Expand All @@ -23,5 +23,15 @@ contract DeployMainnetImplementations is BaseScript {
L1YnOFTAdapterUpgradeable(address(new TransparentUpgradeableProxy(mainnetOFTAdapterImpl, msg.sender, "")));

mainnetOFTAdapter.initialize(msg.sender, _rateLimitConfigs);

_serializeOutputs("MainnetImplementations");
}

function _serializeOutputs(string memory objectKey) internal override {
vm.serializeAddress(objectKey, "erc20", _ynOftAdapterInputs.erc20Address);
vm.serializeString(objectKey, "chainid", vm.toString(block.chainid));
vm.serializeAddress(objectKey, "OFTAdapterImplementation", address(mainnetOFTAdapterImpl));
string memory finalJson = vm.serializeAddress(objectKey, "OFTAdapter", address(mainnetOFTAdapter));
_writeOutput("MainnetImplementations", finalJson);
}
}
2 changes: 1 addition & 1 deletion script/inputs/L2ERC20DeploymentInput.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"chainId": 1,
"chainId": 17000,
"erc20Address": "0x0000000000000000000000000000000000000000",
"lzEndpoint": "0x0000000000000000000000000000000000000000",
"name": "name",
Expand Down
2 changes: 1 addition & 1 deletion script/inputs/L2OFTAdapterInput.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"chainId": 1,
"chainId": 17000,
"erc20Address": "0x0000000000000000000000000000000000000000",
"adapterImplementation": "0x0000000000000000000000000000000000000000",
"rateLimiterConfigs": [
Expand Down

0 comments on commit 571f0d0

Please sign in to comment.