Skip to content

Commit bafae41

Browse files
committed
Merge branch 'main' into fuzz-suite
2 parents 113dcb2 + 7adf945 commit bafae41

191 files changed

Lines changed: 23730 additions & 2445 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.env.example

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,82 @@
11
# Localhost RPC URL
22
export LOCALHOST_RPC_URL=http://127.0.0.1:8545
33

4+
# Private key
5+
export PRIVATE_KEY=
6+
47
# Mainnet RPC URLs
58
export MAINNET_RPC_URL=
9+
export ARBITRUM_RPC_URL=
10+
export BSC_RPC_URL=
11+
export HYPERLIQUID_RPC_URL=
12+
export LINEA_RPC_URL=
13+
export OPTIMISM_RPC_URL=
14+
export PLUME_RPC_URL=
15+
export MANTRA_RPC_URL=
616

717
# Testnet RPC URLs
818
export SEPOLIA_RPC_URL=
19+
export APECHAIN_TESTNET_RPC_URL=
20+
export ARBITRUM_SEPOLIA_RPC_URL=
21+
export BSC_TESTNET_RPC_URL=
22+
export OPTIMISM_SEPOLIA_RPC_URL=
23+
export SONEIUM_TESTNET_RPC_URL=
924

1025
# Used for verifying contracts on Etherscan
1126
export ETHERSCAN_API_KEY=
27+
28+
export MAINNET_VERIFIER_URL="https://api.etherscan.io/v2/api?chainid=1"
29+
export ARBITRUM_VERIFIER_URL="https://api.etherscan.io/v2/api?chainid=42161"
30+
export BSC_VERIFIER_URL="https://api.etherscan.io/v2/api?chainid=56"
31+
export HYPERLIQUID_VERIFIER_URL="https://api.etherscan.io/v2/api?chainid=999"
32+
export OPTIMISM_VERIFIER_URL="https://api.etherscan.io/v2/api?chainid=10"
33+
export PLUME_VERIFIER_URL="https://explorer.plume.org/api/"
34+
export MANTRA_VERIFIER_URL="https://blockscout.mantrascan.io/api/"
35+
36+
export SEPOLIA_VERIFIER_URL="https://api.etherscan.io/v2/api?chainid=11155111"
37+
export APECHAIN_TESTNET_VERIFIER_URL="https://api.etherscan.io/v2/api?chainid=33111"
38+
export ARBITRUM_SEPOLIA_VERIFIER_URL="https://api.etherscan.io/v2/api?chainid=421614"
39+
export BSC_TESTNET_VERIFIER_URL="https://api.etherscan.io/v2/api?chainid=97"
40+
export OPTIMISM_SEPOLIA_VERIFIER_URL="https://api.etherscan.io/v2/api?chainid=11155420"
41+
export SONEIUM_TESTNET_VERIFIER_URL="https://soneium-minato.blockscout.com/api"
42+
43+
# Extension-specific deployment configuration
44+
# Uncomment and set the variables for the extension you want to deploy
45+
46+
# MEarnerManager Extension
47+
# export EXTENSION_NAME=
48+
# export EXTENSION_SYMBOL=
49+
# export ADMIN=
50+
# export EARNER_MANAGER=
51+
# export FEE_RECIPIENT=
52+
# export PAUSER=
53+
54+
# YieldToOne Extension
55+
# export EXTENSION_NAME=
56+
# export EXTENSION_SYMBOL=
57+
# export YIELD_RECIPIENT=
58+
# export ADMIN=
59+
# export FREEZE_MANAGER=
60+
# export YIELD_RECIPIENT_MANAGER=
61+
# export PAUSER=
62+
63+
# JMI Extension
64+
# export EXTENSION_NAME=
65+
# export EXTENSION_SYMBOL=
66+
# export YIELD_RECIPIENT=
67+
# export ADMIN=
68+
# export ASSET_CAP_MANAGER=
69+
# export FREEZE_MANAGER=
70+
# export PAUSER=
71+
# export YIELD_RECIPIENT_MANAGER=
72+
73+
# YieldToAllWithFee Extension
74+
# export EXTENSION_NAME=
75+
# export EXTENSION_SYMBOL=
76+
# export FEE_RATE=
77+
# export FEE_RECIPIENT=
78+
# export ADMIN=
79+
# export FEE_MANAGER=
80+
# export CLAIM_RECIPIENT_MANAGER=
81+
# export FREEZE_MANAGER=
82+
# export PAUSER=

.gitignore

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,14 @@ docs/
1717
# Dotenv file
1818
.env
1919

20+
# Echidna
21+
echidna
22+
/echidna-corpus
23+
/echidna-corpusOLD
24+
25+
# Gas report
26+
gasreport.ansi
27+
2028
# Mac OS files
2129
.DS_Store
2230

@@ -25,6 +33,3 @@ node_modules
2533

2634
# Soljson
2735
soljson-latest.js
28-
echidna
29-
/echidna-corpus
30-
/echidna-corpusOLD

.gitmodules

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,7 @@
55
[submodule "lib/common"]
66
path = lib/common
77
url = https://github.com/m0-foundation/common
8-
branch = feat/upgradeable-contracts
9-
[submodule "lib/openzeppelin-contracts"]
10-
path = lib/openzeppelin-contracts
11-
url = https://github.com/OpenZeppelin/openzeppelin-contracts
8+
branch = main
129
[submodule "lib/openzeppelin-foundry-upgrades"]
1310
path = lib/openzeppelin-foundry-upgrades
1411
url = https://github.com/OpenZeppelin/openzeppelin-foundry-upgrades
@@ -25,4 +22,4 @@
2522
[submodule "lib/wrapped-m-token"]
2623
path = lib/wrapped-m-token
2724
url = https://github.com/m0-foundation/wrapped-m-token
28-
branch = feat/swap-facility-support
25+
branch = feat/swap-facility-support

.husky/pre-commit

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
npm run lint-staged && npm test

.prettierrc

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,13 @@
66
"options": {
77
"bracketSpacing": true,
88
"compiler": "0.8.26",
9-
"parser": "solidity-parse",
9+
"parser": "slang",
1010
"printWidth": 120,
11+
"proseWrap": "always",
12+
"singleQuote": false,
1113
"tabWidth": 4,
14+
"useTabs": false
1215
}
1316
}
1417
]
1518
}
16-

.solhint.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
"rules": {
55
"prettier/prettier": "error",
66
"code-complexity": ["warn", 10],
7-
"compiler-version": ["error", "0.8.26"],
7+
"compiler-version": ["warn", "0.8.26"],
88
"comprehensive-interface": "off",
99
"const-name-snakecase": "off",
1010
"func-name-mixedcase": "off",
@@ -18,15 +18,18 @@
1818
"immutable-vars-naming": "off",
1919
"imports-on-top": "error",
2020
"max-line-length": ["warn", 120],
21+
"no-console": "warn",
2122
"no-empty-blocks": "off",
2223
"no-inline-assembly": "off",
2324
"not-rely-on-time": "off",
25+
"one-contract-per-file": "off",
2426
"private-vars-leading-underscore": [
2527
"warn",
2628
{
2729
"strict": true
2830
}
2931
],
32+
"use-natspec": "off",
3033
"visibility-modifier-order": "error"
3134
}
3235
}

.solhintignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
script/deploy/

.vscode/settings.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
{
2-
"solidity.compileUsingRemoteVersion": "v0.8.26+commit.8a97fa7a"
3-
}
2+
"solidity.compileUsingRemoteVersion": "v0.8.26+commit.8a97fa7a",
3+
"cSpell.words": ["IJMI"]
4+
}

LICENSE

Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
Business Source License 1.1
2+
3+
License text copyright (c) 2017 MariaDB Corporation Ab, All Rights Reserved.
4+
"Business Source License" is a trademark of MariaDB Corporation Ab.
5+
6+
---
7+
8+
Parameters
9+
10+
Licensor: M0 Foundation
11+
12+
Licensed Work: EVM $M Extensions Framework
13+
The Licensed Work is (c) 2025 M0 Foundation
14+
15+
Additional Use Grant: None, contact licensing@m0.org for details
16+
17+
Change Date: 2035-07-31
18+
19+
Change License: GNU General Public License v2.0 or later
20+
21+
---
22+
23+
Terms
24+
25+
The Licensor hereby grants you the right to copy, modify, create derivative
26+
works, redistribute, and make non-production use of the Licensed Work. The
27+
Licensor may make an Additional Use Grant, above, permitting limited
28+
production use.
29+
30+
Effective on the Change Date, or the fourth anniversary of the first publicly
31+
available distribution of a specific version of the Licensed Work under this
32+
License, whichever comes first, the Licensor hereby grants you rights under
33+
the terms of the Change License, and the rights granted in the paragraph
34+
above terminate.
35+
36+
If your use of the Licensed Work does not comply with the requirements
37+
currently in effect as described in this License, you must purchase a
38+
commercial license from the Licensor, its affiliated entities, or authorized
39+
resellers, or you must refrain from using the Licensed Work.
40+
41+
All copies of the original and modified Licensed Work, and derivative works
42+
of the Licensed Work, are subject to this License. This License applies
43+
separately for each version of the Licensed Work and the Change Date may vary
44+
for each version of the Licensed Work released by Licensor.
45+
46+
You must conspicuously display this License on each original or modified copy
47+
of the Licensed Work. If you receive the Licensed Work in original or
48+
modified form from a third party, the terms and conditions set forth in this
49+
License apply to your use of that work.
50+
51+
Any use of the Licensed Work in violation of this License will automatically
52+
terminate your rights under this License for the current and all other
53+
versions of the Licensed Work.
54+
55+
This License does not grant you any right in any trademark or logo of
56+
Licensor or its affiliates (provided that you may use a trademark or logo of
57+
Licensor as expressly required by this License).
58+
59+
TO THE EXTENT PERMITTED BY APPLICABLE LAW, THE LICENSED WORK IS PROVIDED ON
60+
AN "AS IS" BASIS. LICENSOR HEREBY DISCLAIMS ALL WARRANTIES AND CONDITIONS,
61+
EXPRESS OR IMPLIED, INCLUDING (WITHOUT LIMITATION) WARRANTIES OF
62+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, AND
63+
TITLE.
64+
65+
MariaDB hereby grants you permission to use this License’s text to license
66+
your works, and to refer to it using the trademark "Business Source License",
67+
as long as you comply with the Covenants of Licensor below.
68+
69+
---
70+
71+
Covenants of Licensor
72+
73+
In consideration of the right to use this License’s text and the "Business
74+
Source License" name and trademark, Licensor covenants to MariaDB, and to all
75+
other recipients of the licensed work to be provided by Licensor:
76+
77+
1. To specify as the Change License the GPL Version 2.0 or any later version,
78+
or a license that is compatible with GPL Version 2.0 or a later version,
79+
where "compatible" means that software provided under the Change License can
80+
be included in a program with software provided under GPL Version 2.0 or a
81+
later version. Licensor may specify additional Change Licenses without
82+
limitation.
83+
84+
2. To either: (a) specify an additional grant of rights to use that does not
85+
impose any additional restriction on the right granted in this License, as
86+
the Additional Use Grant; or (b) insert the text "None".
87+
88+
3. To specify a Change Date.
89+
90+
4. Not to modify this License in any other way.
91+
92+
---
93+
94+
Notice
95+
96+
The Business Source License (this document, or the "License") is not an Open
97+
Source license. However, the Licensed Work will eventually be made available
98+
under an Open Source License, as stated in this License.

0 commit comments

Comments
 (0)