The GMX contract can deploy upgrades that can break some functions in the Gamma Protocol. For example, GMX may introduce a change in the struct parameters passed into the callback functions after transaction execution, causing such callback functions expecting the previous struct to break.
As described in the GMX Docs, Note that if a struct that is passed into callbacks is changed, e.g. Deposit, Withdrawal, Order structs, this would cause the functions of callback contracts expecting the previous struct to stop working, due to this, the changes in structs should be highlighted to integrations
The issue is that there is no way to upgrade the Struct parameters in such event.
Break in the functionality of the callback functions. This will cause Order creation, and cancellation transaction to fail.
Manual Review
Consider making the GmxProxy and PerpetualVault contracts upgradeable
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.