Skip to content
Merged
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
33 changes: 33 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
name: CI
on:
push:
branches:
- main
pull_request:
branches:
- "**"

jobs:
check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
submodules: recursive

- name: Install Foundry
uses: foundry-rs/foundry-toolchain@v1
with:
version: nightly

- name: Check format
run: forge fmt --check

- name: Install forge dependencies
run: forge install

- name: Build project
run: forge build

- name: Run tests
run: forge test -vvv
20 changes: 20 additions & 0 deletions script/01_DeployFactory.s.sol
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.25;

import "forge-std/Script.sol";
import {HyperWalletFactory} from "../src/HyperWalletFactory.sol";

contract DeployFactory is Script {
function run() external returns (HyperWalletFactory factory) {
uint256 deployerPrivateKey = vm.envUint("PRIVATE_KEY");

vm.startBroadcast(deployerPrivateKey);

factory = new HyperWalletFactory(vm.addr(deployerPrivateKey));

vm.stopBroadcast();

console2.log("HyperWalletFactory deployed at:", address(factory));
console2.log("HyperWallet implementation deployed at:", factory.HYPER_WALLET());
}
}
19 changes: 19 additions & 0 deletions script/02_DeployCoreWriter.s.sol
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.25;

import "forge-std/Script.sol";
import {CoreWriterModule} from "../src/modules/coreWriter/CoreWriterModule.sol";

contract DeployCoreWriter is Script {
function run() external returns (CoreWriterModule coreWriter) {
uint256 deployerPrivateKey = vm.envUint("PRIVATE_KEY");

vm.startBroadcast(deployerPrivateKey);

coreWriter = new CoreWriterModule("CoreWriter", "1.0");

vm.stopBroadcast();

console2.log("CoreWriterModule deployed at:", address(coreWriter));
}
}
19 changes: 19 additions & 0 deletions script/03_DeployCoreWriterSdk.s.sol
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.25;

import "forge-std/Script.sol";
import {CoreWriterSdkModule} from "../src/modules/coreWriter/CoreWriterSdkModule.sol";

contract DeployCoreWriterSdk is Script {
function run() external returns (CoreWriterSdkModule coreWriterSdk) {
uint256 deployerPrivateKey = vm.envUint("PRIVATE_KEY");

vm.startBroadcast(deployerPrivateKey);

coreWriterSdk = new CoreWriterSdkModule("CoreWriterSdk", "1.0");

vm.stopBroadcast();

console2.log("CoreWriterSdkModule deployed at:", address(coreWriterSdk));
}
}
24 changes: 24 additions & 0 deletions script/04_DeployCoreWriterSdkSecurity.s.sol
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.25;

import "forge-std/Script.sol";
import {CoreWriterSdkSecurityModule} from "../src/modules/coreWriter/CoreWriterSdkSecurityModule.sol";

contract DeployCoreWriterSdkSecurity is Script {
// testnet value
uint64 hypeCoreTokenId = 1105;
uint64 usdcCoreTokenId = 0;

function run() external returns (CoreWriterSdkSecurityModule coreWriterSdkSecurity) {
uint256 deployerPrivateKey = vm.envUint("PRIVATE_KEY");

vm.startBroadcast(deployerPrivateKey);

coreWriterSdkSecurity =
new CoreWriterSdkSecurityModule(hypeCoreTokenId, usdcCoreTokenId, "CoreWriterSdkSecurity", "1.0");

vm.stopBroadcast();

console2.log("CoreWriterSdkSecurityModule deployed at:", address(coreWriterSdkSecurity));
}
}
33 changes: 33 additions & 0 deletions script/05_DeployEnabler.s.sol
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.25;

import "forge-std/Script.sol";
import {EnablerModule} from "../src/modules/enabler/EnablerModule.sol";

contract DeployEnabler is Script {
// testnet value
uint64 hypeCoreTokenId = 1105;
uint64 usdcCoreTokenId = 0;
address usdcSystemAddress = 0x2000000000000000000000000000000000000000;
address usdcTokenAddress = 0xd9CBEC81df392A88AEff575E962d149d57F4d6bc;

function run() external returns (EnablerModule enabler) {
uint256 deployerPrivateKey = vm.envUint("PRIVATE_KEY");

vm.startBroadcast(deployerPrivateKey);

enabler = new EnablerModule(
hypeCoreTokenId,
usdcCoreTokenId,
usdcSystemAddress,
usdcTokenAddress,
vm.addr(deployerPrivateKey),
"Enabler",
"1.0"
);

vm.stopBroadcast();

console2.log("EnablerModule deployed at:", address(enabler));
}
}
24 changes: 24 additions & 0 deletions script/06_DeployFlashLoan.s.sol
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.25;

import "forge-std/Script.sol";
import {TokenBook} from "../src/utils/TokenBook.sol";
import {FlashLoanModule} from "../src/modules/flashLoan/FlashLoanModule.sol";

contract DeployFlashLoan is Script {
function run() external returns (TokenBook tokenBook, FlashLoanModule flashLoan) {
uint256 deployerPrivateKey = vm.envUint("PRIVATE_KEY");
address deployer = vm.addr(deployerPrivateKey);

vm.startBroadcast(deployerPrivateKey);

tokenBook = new TokenBook(deployer);

flashLoan = new FlashLoanModule(address(tokenBook), "FlashLoan", "1.0");

vm.stopBroadcast();

console2.log("TokenBook deployed at:", address(tokenBook));
console2.log("FlashLoanModule deployed at:", address(flashLoan));
}
}