Skip to content

Chore/setting up formatter #61

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 9 commits into from
Nov 2, 2024
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
File renamed without changes.
3 changes: 3 additions & 0 deletions .vscode/extensions.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"recommendations": ["NomicFoundation.hardhat-solidity"]
}
11 changes: 7 additions & 4 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
{
"solidity.packageDefaultDependenciesContractsDirectory": "src",
"solidity.packageDefaultDependenciesDirectory": "lib",
"solidity.compileUsingRemoteVersion": "true",
"solidity.compileUsingLocalVersion": "false"
"solidity-language-server.trace.server.verbosity": "verbose",
"solidity.formatter": "forge",
"solidity.telemetry": false,
"editor.formatOnSave": true,
"[solidity]": {
"editor.defaultFormatter": "NomicFoundation.hardhat-solidity"
}
}
18 changes: 12 additions & 6 deletions foundry.toml
Original file line number Diff line number Diff line change
@@ -1,8 +1,14 @@
# See more config options https://github.com/foundry-rs/foundry/blob/master/crates/config/README.md#all-options

[profile.default]
src = "src"
out = "out"
libs = ["lib"]
optimizer = false
fs_permissions = [{ access = "read", path = "./mc.toml" }, { access = "read", path = "./lib/mc/mc.toml" }]
src = "src"
out = "out"
libs = ["lib"]
optimizer = false
fs_permissions = [
{ access = "read", path = "./mc.toml" },
{ access = "read", path = "./lib/mc/mc.toml" },
]

# See more config options https://github.com/foundry-rs/foundry/blob/master/crates/config/README.md#all-options
[fmt]
ignore = ["**/Flattened.sol"]
22 changes: 10 additions & 12 deletions mc.toml
Original file line number Diff line number Diff line change
@@ -1,17 +1,15 @@
[setup]
STD_FUNCS = true
STD_FUNCS = true

[system]
LOG_LEVEL = "Warn"
SCAN_RANGE = 5
LOG_LEVEL = "Warn"
SCAN_RANGE = 5

[naming]
DEFAULT_DICTIONARY = 'Dictionary'
DEFAULT_DICTIONARY_DUPLICATED = 'DuplicatedDictionary'
DEFAULT_DICTIONARY_MOCK = 'MockDictionary'
DEFAULT_PROXY = 'Proxy'
DEFAULT_PROXY_MOCK = 'MockProxy'
DEFAULT_BUNDLE = 'Bundle'
DEFAULT_FUNCTION = 'Function'

# See more config options https://github.com/foundry-rs/foundry/blob/master/crates/config/README.md#all-options
DEFAULT_DICTIONARY = 'Dictionary'
DEFAULT_DICTIONARY_DUPLICATED = 'DuplicatedDictionary'
DEFAULT_DICTIONARY_MOCK = 'MockDictionary'
DEFAULT_PROXY = 'Proxy'
DEFAULT_PROXY_MOCK = 'MockProxy'
DEFAULT_BUNDLE = 'Bundle'
DEFAULT_FUNCTION = 'Function'
8 changes: 1 addition & 7 deletions remappings.txt
Original file line number Diff line number Diff line change
@@ -1,11 +1,5 @@
@mc/=src/
@mc-std/=src/std/
@mc-devkit/=src/devkit/
@ucs.mc/=lib/ucs-contracts/src/
@oz.mc/=lib/ucs-contracts/lib/openzeppelin-contracts/contracts/
@openzeppelin/contracts/=lib/ucs-contracts/lib/openzeppelin-contracts/contracts/
@oz.ucs/=lib/ucs-contracts/lib/openzeppelin-contracts/contracts/
ds-test/=lib/ucs-contracts/lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/
erc4626-tests/=lib/ucs-contracts/lib/openzeppelin-contracts/lib/erc4626-tests/
forge-std/=lib/forge-std/src/
openzeppelin-contracts/=lib/ucs-contracts/lib/openzeppelin-contracts/
ucs-contracts/=lib/ucs-contracts/
63 changes: 32 additions & 31 deletions script/DeployLib.sol
Original file line number Diff line number Diff line change
@@ -1,31 +1,32 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.23;

import {MCDevKit} from "@mc-devkit/Flattened.sol";
import {StdFacade} from "@mc-std/interfaces/StdFacade.sol";
import {InitSetAdmin} from "@mc-std/functions/protected/InitSetAdmin.sol";

library DeployLib {
using DeployLib for MCDevKit;
string internal constant BUNDLE_NAME = "Std";

function deployStd(MCDevKit storage mc, address admin) internal returns(address) {
for (uint i; i < mc.std.all.functions.length; ++i) {
mc.use(mc.std.all.functions[i]);
}
mc.useFacade(address(new StdFacade()));
bytes memory initData = abi.encodeCall(InitSetAdmin.initSetAdmin, admin);
return mc.deploy(initData).toProxyAddress();
}

function deployStdFunctions(MCDevKit storage mc) internal returns(MCDevKit storage) {
mc.std.functions.deployIfNotExists();
return mc;
}

function deployStdDictionary(MCDevKit storage mc) internal returns(MCDevKit storage) {
mc.std.complete();
mc.deployDictionary(mc.std.all);
return mc;
}
}
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.23;

import {MCDevKit} from "@mc-devkit/Flattened.sol";
import {StdFacade} from "@mc-std/interfaces/StdFacade.sol";
import {InitSetAdmin} from "@mc-std/functions/protected/InitSetAdmin.sol";

library DeployLib {
using DeployLib for MCDevKit;

string internal constant BUNDLE_NAME = "Std";

function deployStd(MCDevKit storage mc, address admin) internal returns (address) {
for (uint256 i; i < mc.std.all.functions.length; ++i) {
mc.use(mc.std.all.functions[i]);
}
mc.useFacade(address(new StdFacade()));
bytes memory initData = abi.encodeCall(InitSetAdmin.initSetAdmin, admin);
return mc.deploy(initData).toProxyAddress();
}

function deployStdFunctions(MCDevKit storage mc) internal returns (MCDevKit storage) {
mc.std.functions.deployIfNotExists();
return mc;
}

function deployStdDictionary(MCDevKit storage mc) internal returns (MCDevKit storage) {
mc.std.complete();
mc.deployDictionary(mc.std.all);
return mc;
}
}
20 changes: 0 additions & 20 deletions script/ERC7201Calc.s.sol

This file was deleted.

1 change: 0 additions & 1 deletion src/devkit/MCBase.sol
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ import {Test as ForgeTest} from "forge-std/Test.sol";
import {MCDevKit} from "@mc-devkit/MCDevKit.sol";
import {System} from "@mc-devkit/system/System.sol";


abstract contract MCBase is CommonBase {
MCDevKit internal mc;
uint256 internal deployerKey;
Expand Down
10 changes: 6 additions & 4 deletions src/devkit/MCDevKit.sol
Original file line number Diff line number Diff line change
Expand Up @@ -18,17 +18,19 @@ import {MCHelpers} from "@mc-devkit/utils/global/MCHelpers.sol";
// System Methods
import {Tracer} from "@mc-devkit/system/Tracer.sol";


/********************************
🌟 Meta Contract DevKit
*********************************/
/**
*
* 🌟 Meta Contract DevKit
*
*/
struct MCDevKit {
StdRegistry std;
FunctionRegistry functions;
BundleRegistry bundle;
DictionaryRegistry dictionary;
ProxyRegistry proxy;
}

using MCInitLib for MCDevKit global;
using MCDeployLib for MCDevKit global;
using MCFinderLib for MCDevKit global;
Expand Down
2 changes: 2 additions & 0 deletions src/devkit/MCScript.sol
Original file line number Diff line number Diff line change
Expand Up @@ -23,12 +23,14 @@ abstract contract MCScript is MCScriptBase {

vm.writeLine(
string.concat(vm.projectRoot(), "/.env"),
// forgefmt: disable-start
string.concat(
envKeyBase,
_chainIdString,
"=",
vm.toString(address(addr))
)
// forgefmt: disable-end
);
}
}
64 changes: 37 additions & 27 deletions src/devkit/core/Bundle.sol
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.23;
/**---------------------
Support Methods
-----------------------*/
/**
* ---------------------
* Support Methods
* -----------------------
*/

import {Tracer, param} from "@mc-devkit/system/Tracer.sol";
import {Inspector} from "@mc-devkit/types/Inspector.sol";
import {TypeGuard, TypeStatus} from "@mc-devkit/types/TypeGuard.sol";
Expand All @@ -12,63 +15,70 @@ import {Validator} from "@mc-devkit/system/Validator.sol";
// Core Type
import {Function} from "@mc-devkit/core/Function.sol";


///////////////////////////////////////////
// 🗂️ Bundle ///////////////////////////
using BundleLib for Bundle global;
using Tracer for Bundle global;
using Inspector for Bundle global;
using TypeGuard for Bundle global;
using BundleLib for Bundle global;
using Tracer for Bundle global;
using Inspector for Bundle global;
using TypeGuard for Bundle global;
///////////////////////////////////////////

struct Bundle {
string name;
Function[] functions;
address facade;
TypeStatus status;
}

library BundleLib {
/**--------------------
📛 Assign Name
----------------------*/
function assignName(Bundle storage bundle, string memory name) internal returns(Bundle storage) {
uint pid = bundle.startProcess("assignName", param(name));
/**
* --------------------
* 📛 Assign Name
* ----------------------
*/
function assignName(Bundle storage bundle, string memory name) internal returns (Bundle storage) {
uint256 pid = bundle.startProcess("assignName", param(name));
Validator.MUST_NotEmptyName(name);
bundle.startBuilding();
bundle.name = name;
bundle.finishBuilding();
return bundle.finishProcess(pid);
}

/**-------------------------
🧩 Push Function(s)
---------------------------*/
function pushFunction(Bundle storage bundle, Function storage func) internal returns(Bundle storage) {
uint pid = bundle.startProcess("pushFunction", param(func));
/**
* -------------------------
* 🧩 Push Function(s)
* ---------------------------
*/
function pushFunction(Bundle storage bundle, Function storage func) internal returns (Bundle storage) {
uint256 pid = bundle.startProcess("pushFunction", param(func));
Validator.MUST_Completed(func);
Validator.MUST_HaveUniqueSelector(bundle, func);
bundle.startBuilding();
bundle.functions.push(func);
bundle.finishBuilding();
return bundle.finishProcess(pid);
}
function pushFunctions(Bundle storage bundle, Function[] storage functions) internal returns(Bundle storage) {
uint pid = bundle.startProcess("pushFunctions", param(functions));
for (uint i; i < functions.length; ++i) {

function pushFunctions(Bundle storage bundle, Function[] storage functions) internal returns (Bundle storage) {
uint256 pid = bundle.startProcess("pushFunctions", param(functions));
for (uint256 i; i < functions.length; ++i) {
bundle.pushFunction(functions[i]);
}
return bundle.finishProcess(pid);
}

/**----------------------
🪟 Assign Facade
------------------------*/
function assignFacade(Bundle storage bundle, address facade) internal returns(Bundle storage) {
uint pid = bundle.startProcess("assignFacade", param(facade));
/**
* ----------------------
* 🪟 Assign Facade
* ------------------------
*/
function assignFacade(Bundle storage bundle, address facade) internal returns (Bundle storage) {
uint256 pid = bundle.startProcess("assignFacade", param(facade));
Validator.MUST_AddressIsContract(facade);
bundle.startBuilding();
bundle.facade = facade;
bundle.finishBuilding();
return bundle.finishProcess(pid);
}

}
Loading