Standardizes contract structures and adds SolPP support#193
Standardizes contract structures and adds SolPP support#193smartcontracts merged 14 commits intomasterfrom
Conversation
packages/contracts/contracts/optimistic-ethereum/ovm/ExecutionManager.sol
Outdated
Show resolved
Hide resolved
packages/contracts/contracts/optimistic-ethereum/ovm/ExecutionManager.sol
Outdated
Show resolved
Hide resolved
packages/contracts/contracts/optimistic-ethereum/ovm/ExecutionManager.sol
Show resolved
Hide resolved
| address _l1MsgSenderAddress, | ||
| bool _allowRevert | ||
| ) public { | ||
| ) |
There was a problem hiding this comment.
Unrelated: I took a while to think about account abstraction/different signature schemes and the conclusion I came to is we should have everyone use contract wallets
packages/contracts/contracts/optimistic-ethereum/ovm/ExecutionManager.sol
Outdated
Show resolved
Hide resolved
| * Marks a contract as newly created. Unused within this implementation. | ||
| * @param _ovmContractAddress Address to mark as newly created. | ||
| */ | ||
| function associateCreatedContract( |
There was a problem hiding this comment.
There's a possibility that I commented on this in a different PR or messaged you privately or something, but in case I didn't -- is there a better word for this functionality? Of course this is not used in the FullStateManager, but still think the word associate doesn't do the functionality justice
There was a problem hiding this comment.
Changed to registerCreatedContract. Seems good enough for now.
...ages/contracts/test/contracts/ovm/execution-manager/ExecutionManager.purity-checking.spec.ts
Outdated
Show resolved
Hide resolved
| let MerkleTrie: ContractFactory | ||
| before(async () => { | ||
| MerkleTrie = await ethers.getContractFactory('MerkleTrie') | ||
| MerkleTrie = await ethers.getContractFactory('MockMerkleTrie') |
There was a problem hiding this comment.
Why are we using a MockMerkleTrie here? Sorry I really should look deeper into the code but just asking this because was surprised to see MerkleTrie.spec testing against a mock
There was a problem hiding this comment.
Hmmm maybe the word "mock" is confusing. I pulled the term from openzeppelin's primary contracts repo. MockMerkleTrie is just a standard contract that pipes all of the requests to MerkleTrie.
* feat: add new interfaces and contracts for L1 & L2 MintableERC20Factory * chore: update interfaces * chore: update l2 genesis script * chore: update test and references * feat: remove initializable and move config to L1Block * chore: update scripts * chore: update tests * chore: remove unused imports * chore: semgrep ready * refactor: update configuration name * fix: return correct bridge address * chore: remove commented code, update natspec * chore: update label * chore: pre-pr ready * test: split tests for L1 & L2 OptimismMintableERC20Factory(s) * chore: remove outdated comment * test: update OptimismMintableERC20Factory tests
### Description Ports the span batch element type to `op-alloy-protocol`. ### Provenance Part of a port migrating the batch types from `kona-derive` to `op-alloy`. See [`kona#695`](op-rs/kona#695).
Description
Hellooo. This PR generally standardizes the structure of our contracts and adds support for SolPP, a Solidity pre-processor. PR diff is huge because of the many slight changes to contract structures (although functionality and interfaces remains unchanged). Style guide can now be found in
contracts/docs/contract-standards.md.Metadata
Fixes
Contributing Agreement