Skip to content

Commit b355c2a

Browse files
authored
Merge pull request #2 from panditdhamdhere/ERCs
ERC20 and ERC721 contracts added
2 parents b0427a8 + be71df5 commit b355c2a

23 files changed

+455
-11
lines changed

.gitmodules

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,6 @@
44
[submodule "lib/deployer-kit"]
55
path = lib/deployer-kit
66
url = https://github.com/kartojal/deployer-kit
7+
[submodule "lib/openzeppelin-contracts"]
8+
path = lib/openzeppelin-contracts
9+
url = https://github.com/Openzeppelin/openzeppelin-contracts

.vscode/settings.json

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
{
2+
"wake.compiler.solc.remappings": [
3+
"@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/",
4+
"ds-test/=lib/forge-std/lib/ds-test/src/",
5+
"erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/",
6+
"forge-std/=lib/forge-std/src/",
7+
"halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/",
8+
"openzeppelin-contracts/=lib/openzeppelin-contracts/"
9+
]
10+
}

foundry.toml

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,13 @@
11
[profile.default]
2-
solc_version = "0.8.19"
2+
solc_version = "0.8.20"
33
optimizer = true
44
optimizer_runs = 20_000
55

66
[profile.ci.fuzz]
77
runs = 10_000
8+
9+
remappings = [
10+
"@openzeppelin/=lib/openzeppelin-contracts/",
11+
"ds-test/=lib/forge-std/lib/ds-test/src/",
12+
"forge-std/=lib/forge-std/src/",
13+
]

lib/openzeppelin-contracts

Submodule openzeppelin-contracts added at acd4ff7

script/Deploy.s.sol

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
// SPDX-License-Identifier: MIT
2-
pragma solidity ^0.8.19;
2+
pragma solidity ^0.8.20;
33

44
import {Script} from "forge-std/Script.sol";
55
import {BatteringRam} from "../src/BatteringRam.sol";

script/Spell.s.sol

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
// SPDX-License-Identifier: MIT
2-
pragma solidity ^0.8.19;
2+
pragma solidity ^0.8.20;
33

44
import {Script} from "forge-std/Script.sol";
55
import {Spell} from "../src/Spell.sol";

script/Trebuchet.s.sol

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
// SPDX-License-Identifier: MIT
2-
pragma solidity ^0.8.19;
2+
pragma solidity ^0.8.20;
33

44
import {Script} from "forge-std/Script.sol";
55
import {Trebuchet} from "../src/Trebuchet.sol";

script/token/DeployMyNFT.sol

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
// SPDX-License-Identifier: MIT
2+
pragma solidity ^0.8.20;
3+
4+
import {Script} from "forge-std/Script.sol";
5+
import {MyNFT} from "../../src/tokens/MyNFT.sol";
6+
7+
contract DeployMyNFT is Script {
8+
function run() external {
9+
uint256 deployerPrivateKey = vm.envUint("PRIVATE_KEY");
10+
string memory initialBaseURI = "ipfs://baseuri/";
11+
12+
vm.startBroadcast(deployerPrivateKey);
13+
14+
MyNFT nft = new MyNFT("MyNFT", "MNFT", initialBaseURI);
15+
16+
vm.stopBroadcast();
17+
}
18+
}

script/token/DeployMyToken.sol

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
// SPDX-License-Identifier: MIT
2+
pragma solidity ^0.8.20;
3+
4+
import {Script} from "forge-std/Script.sol";
5+
import {MyToken} from "../../src/tokens/MyToken.sol";
6+
7+
contract DeployMyToken is Script {
8+
function run() public returns (MyToken) {
9+
uint256 deployerPrivateKey = vm.envUint("PRIVATE_KEY");
10+
11+
vm.startBroadcast(deployerPrivateKey);
12+
MyToken token = new MyToken(1000000 * 10 ** 18);
13+
vm.stopBroadcast();
14+
15+
return token;
16+
}
17+
}

script/token/DeployVault.s.sol

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
// SPDX-License-Identifier: MIT
2+
pragma solidity ^0.8.20;
3+
4+
import {Script} from "forge-std/Script.sol";
5+
import {console} from "forge-std/console.sol";
6+
import {TokenizedVault} from "../../src/tokens/TokenizedVault.sol";
7+
import {IERC20} from "../../lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol";
8+
9+
contract DeployVault is Script {
10+
function run() external {
11+
uint256 deployerPrivateKey = vm.envUint("PRIVATE_KEY");
12+
address assetToken = vm.envAddress("ASSET_TOKEN_ADDRESS");
13+
14+
vm.startBroadcast(deployerPrivateKey);
15+
16+
TokenizedVault vault = new TokenizedVault(
17+
IERC20(assetToken),
18+
"Vault Token",
19+
"vTKN",
20+
100 // 1% initial fee
21+
);
22+
23+
vm.stopBroadcast();
24+
25+
console.log("Vault deployed at:", address(vault));
26+
}
27+
}

0 commit comments

Comments
 (0)