-
Notifications
You must be signed in to change notification settings - Fork 1
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
Feat/operator restrictions #4
Open
0xhammadghazi
wants to merge
47
commits into
feat/generic-sanity-checks
Choose a base branch
from
feat/operator-restrictions
base: feat/generic-sanity-checks
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from 1 commit
Commits
Show all changes
47 commits
Select commit
Hold shift + click to select a range
6a9cd63
implemented order specific sanity checks
305fe99
fix: order schema
74b3fe4
feat: Import EIP712 and EIP1271 contracts for signature verification …
f7620c6
feat: implement order_type_hash for signature verification
f514692
feat: implement and use order hash fns for signature verification
9650e28
fix: add signatures param in fillOrder fn
c77178c
feat: implement signature verification core logic
e2bf7f6
fix: stack too deep by setting via_ir to true
de85df4
feat: implement fn to decode calldata
8009baa
define pre-interaction hook interface
a396f4c
feat: import and attach decoder lib for hooks
9aaac8a
feat: implement core logic of pre-interaction hook
f762069
fix: modify stubs as comments
410a120
fix: add another stub as a comment
2f7baa3
feat: implement vault contract
a419357
feat: integrate vault contract for maker-to-vault asset transfer
99211c4
feat: implement logic for vault-to-maker asset transfer
aa21e29
feat: define post-interaction hook interface
1646350
feat: implement core logic of post-interaction hook
c8ede00
feat: add validation for maker requested amount
a9af474
fix: corrected transfer from offered amount instead of requested amou…
8821760
refacator: renamed 'clearingPrices' fillOrder fn param to 'offeredAmo…
44d6b9f
fix: passing 'orderMessageHash' instead of 'orderHash' in pre-interac…
edee642
feat: log OrderFill event
5479a53
define facilitator interaction hook interface
7ea9136
refactor: modify 'fillOrders' fn param
583ae79
refactor: renamed 'facilitatorInteractionCalldata' var of fillOrders …
3010816
refactor: modified facilitator interaction hook interface
9ed479a
feat: implement core logic of facilitator interaction hook
52a9bea
docs: modified natspec comments of facilitator interaction hook inter…
5d1d7e3
refactor: removed unnecessary comment
a09b9b1
feat: implement only operator modifier
dd87423
feat: implement manage operator role fn
5c9f6b5
fix: transfer funds to recipient from vault instead of maker
d2a300a
docs: added some TBD comments
efe5a3b
Create slither.yml
gul-hameed 48d19f2
Update slither.yml
gul-hameed caa07f0
Update slither.yml
gul-hameed 564a5e4
Update slither.yml
gul-hameed 20e8888
Update slither.yml
gul-hameed 6a6b68f
Update slither.yml
gul-hameed caf8f71
Update slither.yml
gul-hameed 6af3d10
Update slither.yml
gul-hameed 31880f4
Update slither.yml
gul-hameed ccaaaf0
Update slither.yml
gul-hameed 4508197
Create slither-output.txt
gul-hameed c4921e1
Update slither.yml
gul-hameed File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -17,9 +17,7 @@ contract AdvancedOrderEngine is Vault, EIP712 { | |
using OrderEngine for OrderEngine.Order; | ||
using Decoder for bytes; | ||
|
||
// @notice Stores unfilled amounts for each order. | ||
// TBD: public or private? | ||
mapping(bytes32 => uint256) public remainingFillableAmount; | ||
mapping(address => bool) public isOperator; | ||
|
||
event OrderFill( | ||
address operator, | ||
|
@@ -33,6 +31,13 @@ contract AdvancedOrderEngine is Vault, EIP712 { | |
string memory version | ||
) EIP712(name, version) {} | ||
|
||
modifier onlyOperator() { | ||
if (!isOperator[msg.sender]) { | ||
revert NotAnOperator(msg.sender); | ||
} | ||
_; | ||
} | ||
|
||
/** | ||
* @notice Fills multiple orders by processing the specified orders and clearing prices. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @0xhammadghazi There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. acknowledged |
||
* | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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.
@0xhammadghazi Refactor a modifier to call a local function instead of directly having the code in the modifier, saving bytecode size and thereby deployment cost Ref
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.
Acknowledged. The bytecode of the function modifier is duplicated/copied to each method, but we are currently using onlyOperator in only one function. Therefore, it won't make any difference at the moment, but yes, it's a good point to consider during the gas optimization phase.