-
Notifications
You must be signed in to change notification settings - Fork 4
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
ECO-1906 Cannon Proving #16
base: main
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yeah its fine for now, a lot of this is going to get overhauled soon though so dont lose these comments. I don't really think its worth addressing any of them within the context of this architecture, just save it for the commit where we move everything into the master prover implementation
.openzeppelin/base-sepolia.json
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
what are these .openzeppelin files?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Open Zeppelin comes from the faxt that we're using the
import "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";
import "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol";
and
"@openzeppelin/hardhat-upgrades": "^3.2.0",
"@openzeppelin/contracts": "^5.0.2",
"@openzeppelin/contracts-upgradeable": "^5.0.2"
optimismProvider, | ||
) | ||
|
||
// ECO PROTOCOL Contracts |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
just a note for making this a little less clunky, maybe we can make a bunch of IntentProtocol objects, make all their fields the various contracts, constants etc and then we could import them all in one fell swoop? would be more extensible for future networks too i would think
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good Idea 🙏
IntentSource__factory.abi, | ||
optimismIntentCreator, | ||
) | ||
export const optimismIntentSourceContractClaimant = new Contract( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
is there a reason you're doing it this way rather than just doing .connect() in the script itself? much cleaner
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Open for discussion, original though was to put all the signer, provider and contract configuration in the setup, so that it could be used by multiple scripts.
I think a bigger conversation is the role of this repository in providing examples for prover and solver services or whether we move this to a separate repository.
return number; | ||
} | ||
|
||
function assembleGameStatusStorage( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
is there an expectation that a user calls this? seems like a helper, should make it private and just stick a call into whatever public function would be using it
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good point, should revisit this initial thought is that proving services may use it to validate the GameStatus Storage.
Key Refactors Include
Proving Logic Prover.sol
SetChainConfiguration
. The benefit of upgrading is that we can also keep all the states (including the intents that have been proven) when upgrading.proveOutputRoot
and moving forward will be renamedproveWorldStateBedrock
as this proving mechanism should also work on L3's as long as their settlement chain is correctly configuredproveWorldStateCannon
as this proving mechanism should also work on L3's as long as their settlement chain is correctly configured