GithubHelp home page GithubHelp logo

2023-02-gogopool-mitigation-contest's Introduction

Gogopool - Mitigation contest details

Important note

Each warden must submit a mitigation review for every High and Medium finding from the parent contest. Incomplete mitigation reviews will not be eligible for awards.

Findings being mitigated

High Risk Findings

Medium Risk Findings

Overview of changes

First of all, I don't know half of you half as well as I should like; and I like less than half of you half as well as you deserve.

With that in mind, thanks for all the great findings! Your hard work is much appreciated.

Without further ado, here's our biggest changes to look out for:

  1. Minipool State Machine - We've tightened up the allowed state transitions including a new recreate minipool method that's atomic and doesn't allow node ops to withdraw funds or hijack a minipool.
  2. Tracking AVAX High Water - Our previous system forced some tradeoffs to which AVAX is calculated in HighWater. We added a new variable AVAXValidating which tracks amount of AVAX actually validating on the P-Chain, and High Water is simply the highest validating amount during the period.
  3. TokenGGP - Changed how tokens are inflated to actually mint rather than track tokens in the ProtocolDAO
  4. Contract Upgrades - We're now able to upgrade as expected, to a contract with the same name as the existing contract
  5. Upgradeable Tokens - ERC20Upgradeable takes a variable version for it's domain separator and we added storage gaps across the board

Mitigations to be reviewed

URL Mitigation of Purpose
https://github.com/multisig-labs/gogopool/pull/25 H-01 New variable to track validating avax
Not fixing H-02 N/A
https://github.com/multisig-labs/gogopool/pull/41 H-03 Base slash on validation period not full duration
https://github.com/multisig-labs/gogopool/pull/23 H-04 Atomically recreate minipool to not allow hijack
https://github.com/multisig-labs/gogopool/pull/49 H-05 Initialize ggAVAX with a deposit
https://github.com/multisig-labs/gogopool/pull/41 H-06 If staked GGP doesn't cover slash amount, slash it all
https://github.com/multisig-labs/gogopool/pull/22 M-01 Pause startRewardsCycle when protocol is paused
https://github.com/multisig-labs/gogopool/pull/32 M-02 Fix upgrade to work when a contract has the same name
https://github.com/multisig-labs/gogopool/pull/20 M-03 Remove method that trapped Node Operator's funds
Not fixing M-04 N/A
https://github.com/multisig-labs/gogopool/pull/22 M-05 Pause claimAndRestake as well
Not fixing M-06 N/A
Not fixing M-07 N/A
https://github.com/multisig-labs/gogopool/pull/43 M-08 Use liquid staker avax amount instead of node op amount
https://github.com/multisig-labs/gogopool/pull/23 M-09 Atomically recreate minipool so a node operator can't withdraw inbetween
https://github.com/multisig-labs/gogopool/pull/51 M-10 Reset rewards start time in cancel minipool
Not fixing M-11 N/A
https://github.com/multisig-labs/gogopool/pull/40 M-12 Base cancelMinipool delay on minipool creation time not rewards start time
https://github.com/multisig-labs/gogopool/pull/41 M-13 If staked GGP doesn't cover slash amount, slash it all
https://github.com/multisig-labs/gogopool/pull/38 M-14 Added bounds for duration passed by Node Operator
not fixing in this version of the protocol M-15 N/A
https://github.com/multisig-labs/gogopool/pull/50 M-16 ggAVAX max redeem incorrect, not fixing, but made test to illustrate.
https://github.com/multisig-labs/gogopool/pull/28 M-17 Remove the state transition from Staking to Error.
not fixing in this version of the protocol M-18 N/A
https://github.com/multisig-labs/gogopool/pull/42 M-19 We removed minipool count entirely.
https://github.com/multisig-labs/gogopool/pull/33 M-20 Return correct value from maxMint and maxDeposit when the contract is paused.
https://github.com/multisig-labs/gogopool/pull/37 M-21 Prevents division by zero error blocking startRewardCycle().
not fixing in this version of the protocol M-22 N/A

2023-02-gogopool-mitigation-contest's People

Contributors

cloudellie avatar paroxism avatar itsmetechjay avatar emersoncloud avatar liveactionllama avatar

Watchers

Chandler avatar Ashok avatar Alex The Entreprenerd avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.