Skip to content

Commit

Permalink
Main Draft
Browse files Browse the repository at this point in the history
  • Loading branch information
root authored and root committed Nov 1, 2024
1 parent 061a468 commit 8f95d75
Show file tree
Hide file tree
Showing 14 changed files with 101 additions and 532 deletions.
66 changes: 43 additions & 23 deletions script/HelperConfig.s.sol
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
// File: script/HelperConfig.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.19;

Expand All @@ -7,6 +6,7 @@ import {Script} from "forge-std/Script.sol";
contract HelperConfig is Script {
struct NetworkConfig {
address fyreTokenAddress;
address manaAddress;
address manaTokenAddress;
uint256 deployerKey;
address treasuryAddress;
Expand All @@ -30,38 +30,41 @@ contract HelperConfig is Script {
uint256 chainId
) public view returns (NetworkConfig memory config) {
if (chainId == 31337) {
// Anvil Local Network
// Anvil Local Network with fallback to address(0) for each token address
config = NetworkConfig({
fyreTokenAddress: vm.envAddress("ANVIL_FYRE_TOKEN_ADDRESS"),
manaTokenAddress: vm.envAddress("ANVIL_MANA_TOKEN_ADDRESS"),
fyreTokenAddress: tryGetEnvAddress("ANVIL_FYRE_TOKEN_ADDRESS"),
manaAddress: tryGetEnvAddress("ANVIL_MANA_ADDRESS"),
manaTokenAddress: tryGetEnvAddress("ANVIL_MANA_TOKEN_ADDRESS"),
deployerKey: vm.envUint("ANVIL_DEPLOYER_KEY"),
treasuryAddress: vm.envAddress("ANVIL_TREASURY_ADDRESS")
treasuryAddress: tryGetEnvAddress("ANVIL_TREASURY_ADDRESS")
});
} else if (chainId == 1313161555) {
// Aurora Testnet
config = NetworkConfig({
fyreTokenAddress: vm.envAddress(
fyreTokenAddress: tryGetEnvAddress(
"AURORA_TESTNET_FYRE_TOKEN_ADDRESS"
),
manaTokenAddress: vm.envAddress(
manaAddress: tryGetEnvAddress("AURORA_TESTNET_MANA_ADDRESS"),
manaTokenAddress: tryGetEnvAddress(
"AURORA_TESTNET_MANA_TOKEN_ADDRESS"
),
deployerKey: vm.envUint("AURORA_TESTNET_DEPLOYER_KEY"),
treasuryAddress: vm.envAddress(
treasuryAddress: tryGetEnvAddress(
"AURORA_TESTNET_TREASURY_ADDRESS"
)
});
} else if (chainId == 1313161554) {
// Aurora Mainnet
config = NetworkConfig({
fyreTokenAddress: vm.envAddress(
fyreTokenAddress: tryGetEnvAddress(
"AURORA_MAINNET_FYRE_TOKEN_ADDRESS"
),
manaTokenAddress: vm.envAddress(
manaAddress: tryGetEnvAddress("AURORA_MAINNET_MANA_ADDRESS"),
manaTokenAddress: tryGetEnvAddress(
"AURORA_MAINNET_MANA_TOKEN_ADDRESS"
),
deployerKey: vm.envUint("AURORA_MAINNET_DEPLOYER_KEY"),
treasuryAddress: vm.envAddress(
treasuryAddress: tryGetEnvAddress(
"AURORA_MAINNET_TREASURY_ADDRESS"
)
});
Expand All @@ -70,17 +73,34 @@ contract HelperConfig is Script {
}
}

function setDeployedAddresses(
address _fyreTokenAddress,
address _manaTokenAddress,
address _treasuryAddress,
uint256 _deployerKey
) external {
activeNetworkConfig = NetworkConfig({
fyreTokenAddress: _fyreTokenAddress,
manaTokenAddress: _manaTokenAddress,
deployerKey: _deployerKey,
treasuryAddress: _treasuryAddress
});
// Helper to safely get environment variables or return address(0) if not set
function tryGetEnvAddress(
string memory envName
) internal view returns (address) {
try vm.envAddress(envName) returns (address addr) {
return addr;
} catch {
return address(0);
}
}

function setDeployedFYRETokenAddress(address _fyreTokenAddress) external {
activeNetworkConfig.fyreTokenAddress = _fyreTokenAddress;
}

function setDeployedMANAAddress(address _manaAddress) external {
activeNetworkConfig.fyreTokenAddress = _manaAddress;
}

function setDeployedManaTokenAddress(address _manaTokenAddress) external {
activeNetworkConfig.manaTokenAddress = _manaTokenAddress;
}

function setDeployedTreasuryAddress(address _treasuryAddress) external {
activeNetworkConfig.treasuryAddress = _treasuryAddress;
}

function getDeployerKey() external view returns (uint256) {
return activeNetworkConfig.deployerKey;
}
}
15 changes: 4 additions & 11 deletions script/Tokens/FYRE/DeployFYREToken.s.sol
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
// File: script/DeployFyreToken.s.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.19;

Expand All @@ -12,26 +11,20 @@ contract DeployFyreToken is Script {

function run() external {
HelperConfig helperConfig = new HelperConfig();
address deployerAddress = helperConfig.owner(); // Owner address
address deployerAddress = helperConfig.owner();
uint256 initialSupply = 250_000 ether;

uint256 chainId = block.chainid;
uint256 deployerPrivateKey = helperConfig
.getNetworkConfig(chainId)
.deployerKey;

vm.startBroadcast(deployerPrivateKey); // Pass private key instead of address
fyreToken = new FYREToken(deployerAddress, initialSupply);
vm.startBroadcast(deployerPrivateKey);

helperConfig.setDeployedAddresses(
address(fyreToken),
address(0), // Placeholder for other token addresses
address(0), // Placeholder for other addresses
deployerPrivateKey // Store private key in config
);
fyreToken = new FYREToken(deployerAddress, initialSupply);
helperConfig.setDeployedFYRETokenAddress(address(fyreToken));

vm.stopBroadcast();

console.log("Deployed FYREToken at:", address(fyreToken));
}
}
45 changes: 31 additions & 14 deletions script/Tokens/MANA/DeployMANA.s.sol
Original file line number Diff line number Diff line change
@@ -1,29 +1,46 @@
// File: script/DeployMANA.s.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.19;

import {Script} from "forge-std/Script.sol";
import {MANA} from "src/Tokens/MANA.sol";
import {console} from "forge-std/console.sol";
import {HelperConfig} from "script/HelperConfig.s.sol";
import {console} from "forge-std/console.sol";

contract DeployMANA is Script {
MANA public manaToken;
MANA public mana;

function run() external {
HelperConfig helperConfig = new HelperConfig();
uint256 deployerKey = helperConfig.activeNetworkConfig.deployerKey;

vm.startBroadcast(deployerKey);
manaToken = new MANA();
helperConfig.setDeployedAddresses(
address(0),
address(manaToken),
address(0),
deployerKey
);

// Get the treasury address from HelperConfig; it may be address(0)
address treasury = helperConfig.activeNetworkConfig.treasuryAddress;

// Log a warning if treasury is set to the zero address
if (treasury == address(0)) {
console.log(
"Warning: Treasury address is currently set to the zero address."
);
}

bytes32[] memory defaultPartitions = new bytes32[](1);
bytes32;
defaultPartitions[0] = bytes32(0);

// Retrieve deployer key
uint256 deployerPrivateKey = helperConfig.getDeployerKey();

// Begin broadcasting transaction
vm.startBroadcast(deployerPrivateKey);

// Deploy the MANA contract with treasury and default partitions
mana = new MANA(treasury, defaultPartitions);

// Update HelperConfig with the deployed MANA contract address
helperConfig.setDeployedMANAAddress(address(mana));

// End broadcasting transaction
vm.stopBroadcast();

console.log("Deployed MANA token at:", address(manaToken));
console.log("Deployed MANA at:", address(mana));
}
}
23 changes: 9 additions & 14 deletions script/Tokens/MANA/DeploymanaToken.s.sol
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
// File: script/DeployManaToken.s.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.19;

Expand All @@ -12,21 +11,17 @@ contract DeployManaToken is Script {

function run() external {
HelperConfig helperConfig = new HelperConfig();
uint256 deployerKey = helperConfig.activeNetworkConfig.deployerKey;
uint256 deployerKey = helperConfig.getDeployerKey();
address manaTokenAddress = helperConfig
.activeNetworkConfig
.manaTokenAddress;

vm.startBroadcast(deployerKey);
manaToken = new ManaToken(
1000 * 10 ** 18,
helperConfig.activeNetworkConfig.manaTokenAddress
);
helperConfig.setDeployedAddresses(
helperConfig.activeNetworkConfig.fyreTokenAddress,
address(manaToken),
address(0),
deployerKey
);
vm.stopBroadcast();

console.log("ManaToken deployed to:", address(manaToken));
manaToken = new ManaToken(1000 * 10 ** 18, manaTokenAddress);
helperConfig.setDeployedManaTokenAddress(address(manaToken));

vm.stopBroadcast();
console.log("ManaToken deployed at:", address(manaToken));
}
}
4 changes: 2 additions & 2 deletions script/Treasury/DeployOwnershipToTreasury.s.sol
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
// File: script/TransferOwnershipToTreasury.s.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.19;

Expand All @@ -18,14 +17,15 @@ contract TransferOwnershipToTreasury is Script {
.treasuryAddress;

vm.startBroadcast(deployerKey);

FYREToken(helperConfig.activeNetworkConfig.fyreTokenAddress)
.transferOwnership(treasuryAddress);
MANA(helperConfig.activeNetworkConfig.manaTokenAddress)
.transferOwnership(treasuryAddress);
ManaToken(helperConfig.activeNetworkConfig.manaTokenAddress)
.transferOwnership(treasuryAddress);
vm.stopBroadcast();

vm.stopBroadcast();
console.log(
"Ownership of all tokens transferred to Treasury at:",
treasuryAddress
Expand Down
22 changes: 12 additions & 10 deletions script/Treasury/DeployTreasury.s.sol
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
// File: script/DeployTreasury.s.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.19;

Expand All @@ -14,10 +13,18 @@ contract DeployTreasury is Script {
HelperConfig helperConfig = new HelperConfig();
uint256 deployerKey = helperConfig.activeNetworkConfig.deployerKey;

address fyreTokenAddress = helperConfig
.activeNetworkConfig
.fyreTokenAddress;
address manaTokenAddress = helperConfig
.activeNetworkConfig
.manaTokenAddress;

vm.startBroadcast(deployerKey);

treasury = new Treasury(
helperConfig.activeNetworkConfig.fyreTokenAddress,
helperConfig.activeNetworkConfig.manaTokenAddress,
fyreTokenAddress,
manaTokenAddress,
address(0), // USDC placeholder
address(0), // WBTC placeholder
address(this), // Authorized signer
Expand All @@ -27,14 +34,9 @@ contract DeployTreasury is Script {
5, // fyreToManaRate
2 // fyreToShldRate
);
helperConfig.setDeployedAddresses(
helperConfig.activeNetworkConfig.fyreTokenAddress,
helperConfig.activeNetworkConfig.manaTokenAddress,
address(treasury),
deployerKey
);
vm.stopBroadcast();
helperConfig.setDeployedTreasuryAddress(address(treasury));

vm.stopBroadcast();
console.log("Treasury deployed at:", address(treasury));
}
}
52 changes: 0 additions & 52 deletions test/Tokens/FYRE/Fuzz/FYRETokenHandler.t.sol

This file was deleted.

28 changes: 0 additions & 28 deletions test/Tokens/FYRE/Fuzz/Invariant.t.sol

This file was deleted.

Loading

0 comments on commit 8f95d75

Please sign in to comment.