diff --git a/.gitignore b/.gitignore index 555bfcb7..5c17c04b 100644 --- a/.gitignore +++ b/.gitignore @@ -15,4 +15,7 @@ Cargo.lock # IDE directories .vscode/ -.idea/ \ No newline at end of file +.idea/ + +# cspell +cspell.json diff --git a/.gitmodules b/.gitmodules index 422d889d..1b372889 100644 --- a/.gitmodules +++ b/.gitmodules @@ -4,3 +4,6 @@ [submodule "contracts/lib/eigenlayer-contracts"] path = contracts/lib/eigenlayer-contracts url = https://github.com/Layr-Labs/eigenlayer-contracts +[submodule "contracts/lib/snowbridge"] + path = contracts/lib/snowbridge + url = https://github.com/Snowfork/snowbridge diff --git a/contracts/foundry.toml b/contracts/foundry.toml index b0f7a78f..c8ee591c 100644 --- a/contracts/foundry.toml +++ b/contracts/foundry.toml @@ -19,18 +19,22 @@ "forge-std/=lib/forge-std/src/", "ds-test/=lib/ds-test/src/", "eigenlayer-contracts/=lib/eigenlayer-contracts/", - + "snowbridge/=lib/snowbridge/contracts/", + "lib/eigenlayer-contracts/:@openzeppelin/=lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/", + "lib/eigenlayer-contracts/:@openzeppelin-upgrades/=lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/", + "lib/snowbridge/contracts/:openzeppelin/=lib/snowbridge/contracts/lib/openzeppelin-contracts/contracts/", + "lib/snowbridge/contracts/:prb/math/=lib/snowbridge/contracts/lib/prb-math/", ] # Specifies the exact version of Solidity to use, overriding auto-detection. - solc_version = '0.8.27' + solc_version = '0.8.28' # If enabled, treats Solidity compiler warnings as errors, preventing artifact generation if warnings are present. - deny_warnings = false + deny_warnings = false # If set to true, changes compilation pipeline to go through the new IR optimizer. via_ir = false # Whether or not to enable the Solidity optimizer. optimizer = true - # The number of runs specifies roughly how often each opcode of the deployed code will be executed - # across the life-time of the contract. This means it is a trade-off parameter between code size (deploy cost) + # The number of runs specifies roughly how often each opcode of the deployed code will be executed + # across the life-time of the contract. This means it is a trade-off parameter between code size (deploy cost) # and code execution cost (cost after deployment). optimizer_runs = 200 @@ -42,7 +46,7 @@ # - 4 (-vvvv): Stack traces for all tests and setup traces for failing tests are displayed. # - 5 (-vvvvv): Stack and setup traces are always displayed. verbosity = 0 - # Enables the Foreign Function Interface (FFI) cheatcode. + # Enables the Foreign Function Interface (FFI) cheatcode. # WARNING: This allows arbitrary programs to run on your computer, which poses security risks. ffi = true # Contracts to include in gas reports. By default, all contracts are included. @@ -51,7 +55,7 @@ show_progress = true # Sparse mode only compiles files that match certain criteria. sparse_mode = true - + gas_limit = 5000000000 no-match-contract = "FFI" fs_permissions = [{ access = "read-write", path = "./" }] @@ -62,13 +66,13 @@ # Formatting style for long function headers multiline_func_header = "params_first" # Options: "attributes_first", "params_first", "all" # Sort import statements alphabetically - sort_imports = false + sort_imports = false # Maximum line length where formatter will wrap the line line_length = 100 # Default: 120 # Number of spaces per indentation level tab_width = 4 # Default: 4 # Whether to print spaces between brackets - bracket_spacing = false + bracket_spacing = false # Style of uint/int256 types int_types = "long" # Options: "long", "short", "preserve" # Quotation mark style @@ -76,7 +80,7 @@ # Style of underscores in number literals number_underscore = "remove" # Options: "preserve", "thousands", "remove" # Whether or not to wrap comments at line_length - wrap_comments = false + wrap_comments = false # List of files to ignore during formatting (can use glob patterns) # ignore = [ # "./script/**/*", @@ -108,4 +112,4 @@ [etherscan] mainnet = { key = "${ETHERSCAN_API_KEY}" } - holesky = { key = "${ETHERSCAN_API_KEY}" } \ No newline at end of file + holesky = { key = "${ETHERSCAN_API_KEY}" } diff --git a/contracts/lib/snowbridge b/contracts/lib/snowbridge new file mode 160000 index 00000000..a2ad606c --- /dev/null +++ b/contracts/lib/snowbridge @@ -0,0 +1 @@ +Subproject commit a2ad606cbfd4eb945385ae74776dcad7edba6819 diff --git a/contracts/resources/ContractsArchitecture.png b/contracts/resources/ContractsArchitecture.png index f86c5962..fd528ecd 100644 Binary files a/contracts/resources/ContractsArchitecture.png and b/contracts/resources/ContractsArchitecture.png differ