Skip to content
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: slashing release #679

Open
wants to merge 33 commits into
base: custom-errors
Choose a base branch
from
Open

feat: slashing release #679

wants to merge 33 commits into from

Commits on Oct 17, 2024

  1. feat: squashed slashing for devnet

    chore: forge fmt src/contracts
    
    fix: ci and bindings
    
    chore: dmgr error tweaks
    
    chore: error tweaks for consistency and clarity
    
    feat: bump oz version (#755)
    
    * feat: bump oz version -> 0.4.9
    
    - also moved remappings -> foundry.toml
    - removes remappings.txt
    
    * bindings
    
    ---------
    
    Co-authored-by: gpsanant <[email protected]>
    
    test: custom errors passing (#783)
    
    * test: custom errors AVSDir
    
    * test: custom errors IPausable
    
    * test: custom errors Delegation
    
    * test: custom errors EigenPodManager
    
    * test: custom errors EigenPod
    
    * test: custom errors Pausable
    
    * test: custom errors RewardsCoordinator
    
    * test: custom errors IStrategy
    
    * test: custom errors StrategyManager
    
    * test: custom errors DelegationManager
    
    * test: custom errors
    
    refactor: review reconciliation
    
    refactor: review reconciliation
    
    refactor: review reconciliation
    
    chore: forge fmt src/contracts
    
    feat: slashing
    
    * chore: pending delay calc cleanup
    
    * chore: storage pointer cleanup
    
    * eigenpods slashing updates (#745)
    
    * squash yet again
    
    * change again
    
    * update checkpoint struct
    
    * feat: AllocationManager Storage Simplification  (#787)
    
    * feat: cleanup
    
    * feat: add helper func
    
    * fix: simplification
    
    * chore: clean up magnitude info usage and type conversions
    
    * refactor: review changes
    
    * fix: order struct params by size
    
    * fix: correct and simplify calc for slashed pending magnitude
    
    * fix: storage gap
    
    * feat: cleanup
    
    * chore: remove some type conversion bs and minor formatting
    
    * chore: clean up free magnitude logic
    
    * chore: rename pending deallocations and fix stack too deep
    
    * feat: slashing magnitudes cleanup (#786)
    
    * refactor: slashing magnitudes cleanup
    * refactor: assert `bipToSlash` is bounded
    * assert `bipsToSlash` is lte 100% and gt 0%.
    
    * refactor: move `isOperatorSlashable` -> AVSD
    
    * refactor: batch validate opsets on allocations
    
    - adds `AVSD.isOperatorSetBatch(operatorSets)`
    
    * feat: add pausing to ALM
    
    * refactor: remove single use helper
    
    - removes `_getLatestTotalMagnitude(operator, strategy)`
    
    * refactor: rename `ALLOCATION_DELAY_CONFIGURATION_DELAY`
    
    * refactor: remove `Slasher`
    
    * refactor: move constants + immutables to storage contracts
    
    * refactor: custom errors `RewardsCoordinatorStorage`
    
    * chore: dependency cleanup
    
    * fix: remove unused internal getter
    
    * chore: batch validate operator sets and minor cleanup
    
    * fix: fix stack too deep and compiler errors
    
    ---------
    
    Co-authored-by: wadealexc <[email protected]>
    
    feat: dm cleanup (#788)
    
    Co-authored-by: wadealexc <[email protected]>
    
    Revert "feat: dm cleanup (#788)" (#799)
    
    This reverts commit c27004e.
    
    fix: compiles (#800)
    
    fix: refactor (#801)
    
    * fix: refactor
    
    * default was history
    
    * reline
    
    * rename
    
    rename
    
    test: generally compiling + AVSM unit tests compiling
    
    chore: forge fmt src/contracts
    
    add events, fix bugs, abstract better (#806)
    
    * fix bugs, add events, cleanup
    
    * wrap conditional
    
    * fmt
    
    * only one slash per timestamp
    
    test(wip): generally compiling
    
    update docs (#804)
    
    fix: revert change to event
    
    feat: am refactor
    
    add to wads to slash
    
    cleanup
    
    refactor: change totalMagnitude to maxMagnitude
    * condense slashOperator params
    * some struct field renaming
    
    remove unused eigenpod storage
    
    chore: storage report (#809)
    
    * chore: storage report
    
    * patch eigenpod
    
    ---------
    
    Co-authored-by: gpsanant <[email protected]>
    
    feat: eip712 fixes (#808)
    
    * feat: use OZ SignatureChecker
    
    * feat: add `SignatureUtils` mixin
    
    * refactor: cleanup
    
    * feat: make storage report
    
    * storage report
    
    ---------
    
    Co-authored-by: gpsanant <[email protected]>
    
    test: slashing tests passing (#812)
    
    fix: merge issues
    
    update events
    
    refactor: rename total magnitudes to max magnitudes
    * various formatting and cleanup
    * standardize allocation manager getter functions
    * update and improve commenting
    
    refactor: reorder functions to match interface
    
    fix: remove memory overwrite bug in delegation manager
    
    chore: forge fmt
    
    refactor: clean up getDepositedShare logic
    
    chore: remove old oz + forge update foundry-rs/forge-std
    
    feat: replace getSlashableMagnitudes with general purpose allocation info query
    
    Feat: SM/StrategyBase Unit Tests + Formatting (#813)
    
    refactor: delegation manager refactors
    
    test: AllocationManager progress
    
    feat: change event names
    
    feat: update doc
    
    fix: compile
    
    test: AllocationManager progress
    
    fix: tests progress
    
    add Strategy <> OperatorSet mapping in storage, and APIs and events (#814)
    
    * feat: add strategy to operator set mapping with corresponding functions and events
    
    * fix: update
    
    * fix: remove pagination of getStrategiesInOperatorSet
    
    * fix: update
    
    * fix: compiles
    
    * fix: add checks
    
    * fix: address -> IStrategy
    
    * fix: storage gap
    
    ---------
    
    Co-authored-by: gpsanant <[email protected]>
    
    Slashing: DM Happy Path Test Cases (#815)
    
    * test: basic dm tests
    
    * test: start on share increase/decrease delegated shares tests
    
    * test: add DM unit tests passing except queue/complete
    
    * test: undelegate tests
    
    * test: queue withdrawals
    
    * test: completed DM happy path test cases
    
    * fix: compilation, rebase errors
    
    * chore: format
    
    Add view funcs (#816)
    
    * fix: add new view funcs
    
    * fix: update docs
    
    test: fix avsD tests (#817)
    
    chore: format
    
    fix: from scratch deploy
    
    feat: add shares to slashing event
    
    Slashing: Modify Allocations Happy Path Tests (#821)
    
    * refactor: add test contract per func
    
    * test: modify allocations
    
    * chore: format
    
    slashing: allocation delay happy path tests (#822)
    
    feat: wadSlashed (#820)
    
    Slashing: Clear Modification Queue Happy Path Tests (#823)
    
    test: basic allocation tests (#824)
    
    feat: inheritdoc
    
    refactor: alm test cleanup
    
    test: multiple allocations, only one slashed
    
    test: one pending alloc, slash
    
    test: revert bound refactor so tests pass
    
    Slashing: Add additional happy path AM test cases (#828)
    
    * test: happy path AM tests
    
    * chore: format
    
    Slashing: Get all tests passing (#829)
    
    * test: all tests passing
    
    * fix: mainnet integration test comment out
    
    Fix misset storage gaps (#831)
    
    * fix: misset storage gaps from #814
    
    * fix: update gap to account for previous refactor
    
    fix: update coverage yml name (#833)
    
    Fix: Single Deallocation Queue (#827)
    
    * test: base regression
    
    * test: regression
    
    * fix: remove console
    
    * test: logs
    
    * test: add actual regression
    
    * fix: use a single deallocation queue
    
    * fix: comments
    
    * refactor: use deallocation queue everywhere
    
    * fix: address test comments
    
    * fix: test comment
    
    Feat: Update legacy withdrawal timestamp param to legacy withdrawal check (#836)
    
    * fix: make comment on timestamp clearer
    
    * chore: format
    
    Feat: Public Devnet Deploy (#838)
    
    * feat: slashing public devnet
    
    * fix: filepath
    
    * test: validation
    
    * fix: add test
    
    * fix: test
    
    fix: compile
    
    chore: format
    8sunyuan authored and ypatil12 committed Oct 17, 2024
    Configuration menu
    Copy the full SHA
    d98c5a7 View commit details
    Browse the repository at this point in the history

Commits on Oct 21, 2024

  1. feat: add shares to queue event (#847)

    * feat: add shares to queue event
    
    * fix: submodule
    
    * chore: rename
    gpsanant authored Oct 21, 2024
    Configuration menu
    Copy the full SHA
    89bbc30 View commit details
    Browse the repository at this point in the history

Commits on Oct 22, 2024

  1. feat: named mapping params (#848)

    * feat: named mapping params
    
    * refactor: natspec
    
    * refactor: natspec
    
    * chore: forge fmt
    
    * refactor: nits
    0xClandestine authored Oct 22, 2024
    Configuration menu
    Copy the full SHA
    c1c8c6b View commit details
    Browse the repository at this point in the history

Commits on Oct 23, 2024

  1. chore: new storage (#851)

    gpsanant authored Oct 23, 2024
    Configuration menu
    Copy the full SHA
    f0b746d View commit details
    Browse the repository at this point in the history
  2. Gpsanant/current stakes (#846)

    * feat: add getCurrent
    
    * chore: fmt
    
    * chore: storoage report
    
    * chore: new storage
    gpsanant authored Oct 23, 2024
    Configuration menu
    Copy the full SHA
    5ca71fc View commit details
    Browse the repository at this point in the history
  3. slashing: cleanup (#842)

    * chore: cleanup
    
    * chore: comments and add legacy view
    
    * chore: complete => clear
    
    * chore: reorder require check
    
    * fix: round up for slashed magnitudes
    
    * chore: nits and legacy complete withdrawals
    
    * feat: allow alloc delay 0 and fix tests
    
    * chore: clarify comment
    
    * chore: fmt
    
    * fix: fork test
    
    * chore: nits
    
    * test: roundup slashed magnitudes
    8sunyuan authored Oct 23, 2024
    Configuration menu
    Copy the full SHA
    12848bb View commit details
    Browse the repository at this point in the history

Commits on Oct 28, 2024

  1. slashing: fully slashed strategies (#850)

    * feat: handling fully slashed scenarios
    
    * fix: unit test descriptions
    
    * fix: nits
    8sunyuan authored Oct 28, 2024
    Configuration menu
    Copy the full SHA
    b30e1c7 View commit details
    Browse the repository at this point in the history
  2. EigenPod/EPM Happy Path Test Cases (#857)

    * test: fix epm and ep unit tests
    
    * fix: remove unused contracts
    
    * test: get basic slash integration working
    
    * test: get ep integration tests passing
    
    * test: add rounding down test
    
    * chore: add TODO
    
    * chore: formatting
    
    * test: fix additional slash tests
    
    * chore: remove fork tests
    
    * fix: address comments
    
    * test: fix check on `withdrawSharesAsTokens`
    ypatil12 authored Oct 28, 2024
    Configuration menu
    Copy the full SHA
    9975936 View commit details
    Browse the repository at this point in the history

Commits on Oct 30, 2024

  1. slashing: revert timestamps delegation (#861)

    * fix: back to blocks for withdrawals
    
    * refactor: queued legacy withdrawals are extended
    8sunyuan authored Oct 30, 2024
    Configuration menu
    Copy the full SHA
    385dc53 View commit details
    Browse the repository at this point in the history
  2. refactor: optimize pausable (#854)

    * refactor: optimize pausable
    
    * chore: forge fmt
    
    * refactor: nits
    
    * chore: make storage-report
    
    * fix: rebase
    
    * refactor: review changes
    
    - check pauser reg is non-zero on construction
    
    * fix: ci
    0xClandestine authored Oct 30, 2024
    Configuration menu
    Copy the full SHA
    4b4298d View commit details
    Browse the repository at this point in the history

Commits on Nov 1, 2024

  1. feat: small delegation refactors (#866)

    * refactor: small refactor to move duplicate expiry checks into signature utils
    
    * refactor: improve clarity of fully-slashed logic
    
    * refactor: improve readability of operator slashed amount calculation
    * todo: off-by-one error in test due to rounding issue
    
    * fix: correct amount of shares slashed
    
    * wip: comment out test so michael gets to it in his pr
    wadealexc authored Nov 1, 2024
    Configuration menu
    Copy the full SHA
    0b6b009 View commit details
    Browse the repository at this point in the history

Commits on Nov 4, 2024

  1. slashing: change queue withdrawal input to deposit shares (#869)

    * feat: queue withdraw uses deposit shares
    
    * fix: tests and removed old test files
    
    * chore: forge ftm
    
    * test: redelegate shares from rounding
    
    * chore: remove unused import
    8sunyuan authored Nov 4, 2024
    Configuration menu
    Copy the full SHA
    26c1697 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    2639e35 View commit details
    Browse the repository at this point in the history
  3. feat: track staker withdrawals (#864)

    * feat: track staker withdrawals
    
    * chore: forge fmt
    
    * feat: track staker withdrawals
    
    * chore: forge fmt
    
    * fix: `pendingWithdrawals` arrangement
    
    * fix: ci
    0xClandestine authored Nov 4, 2024
    Configuration menu
    Copy the full SHA
    88b5f17 View commit details
    Browse the repository at this point in the history

Commits on Nov 5, 2024

  1. Fix: Flaky DM Test (#875)

    * fix: test
    
    * fix: remove log
    ypatil12 authored Nov 5, 2024
    Configuration menu
    Copy the full SHA
    b850371 View commit details
    Browse the repository at this point in the history

Commits on Nov 6, 2024

  1. feat: move operator set functionality to alm (#860)

    * feat: move operator set functionality to alm
    
    * feat: clarify registration states
    * fix: allow operators to deallocate from strategies that are not in operator set
    
    * fix: add enumeration for operator allocations
    
    * feat: remove deallocations on deregistration
    
    * chore: cleanup src/test (#863)
    
    * feat: add configurable avs registrar
    
    * feat: remove bloated getters
    
    * feat: use existing set method to get set values
    
    * test: avsd alm refactor (#867)
    
    * test: ALM compiling + but not passing
    
    * test(wip): avsd alm refactor
    
    * chore: update forge-std
    
    * fix: compile
    
    * test(wip): avsd passing
    
    * nit: cleanup
    
    * test: get alm tests passing
    
    * test: fix delegation tests
    
    * feat: add lib `Random`
    
    * test: add allocation enumeration checks to tests
    
    * test: reg/dereg + use `Random`
    
    * refactor: small refactor to reuse getters
    
    * test: `addStrategiesToOperatorSet`
    
    - also adds missing state mutation checks on previous tests
    
    * test: `removeStrategiesFromOperatorSet`
    
    * test: `createOperatorSets`
    
    * test: `setAVSRegistrar`
    
    ---------
    
    Co-authored-by: wadealexc <[email protected]>
    
    * feat: add AVS metadata URI to ALM
    
    * chore: update comments
    
    * chore: address comments
    wadealexc authored Nov 6, 2024
    Configuration menu
    Copy the full SHA
    9ee60c8 View commit details
    Browse the repository at this point in the history
  2. fix: change to sharesToWithdraw (#878)

    * fix: change to sharesToWithdraw
    
    * fix: test
    gpsanant authored Nov 6, 2024
    Configuration menu
    Copy the full SHA
    b18ec68 View commit details
    Browse the repository at this point in the history

Commits on Nov 7, 2024

  1. feat: add tasks to prepare chain state ready for slashing (#868)

    * feat: add tasks to prepare chain state ready for slashing
    
    * feat: add queueWithdrawal and completeWithdrawal tasks
    
    * fix: extract addresses from output after deploy
    
    * fix: upgrade scripts to account for AVS/ALM operatorSet changes
    
    * fix: add additional deposit
    
    * fix: add additional slashing between withdrawal queued and completed
    
    * fix: update slashing on top of alex/avsd-alm-refactor
    
    * chore: correct readme and formatting
    
    * fix: PascalCase contract names and update forge-std
    
    * feat: replace console with emit
    
    * feat: remove additional use of console
    
    ---------
    
    Co-authored-by: wadealexc <[email protected]>
    grezle and wadealexc authored Nov 7, 2024
    Configuration menu
    Copy the full SHA
    deff1ba View commit details
    Browse the repository at this point in the history

Commits on Nov 8, 2024

  1. test: slashing todos (#880)

    * test(wip): todos
    
    * test: remove unused utils
    
    * feat: foundry `sparse_mode=true`
    
    * test(wip): todos
    
    * test(wip): todos
    
    * test(wip): todos
    
    * test(wip): todos
    
    * test(wip): todos
    
    * fix: cherry-pick errors
    
    * fix: forge-std
    
    * test(wip): todos
    0xClandestine authored Nov 8, 2024
    Configuration menu
    Copy the full SHA
    bf0e200 View commit details
    Browse the repository at this point in the history

Commits on Nov 13, 2024

  1. feat: add getMinimumSlashableStake (#889)

    * feat: add getMinimumSlashableStake
    
    * fix: only account for deallocation when calculating minimum slashable
    wadealexc authored Nov 13, 2024
    Configuration menu
    Copy the full SHA
    d59be03 View commit details
    Browse the repository at this point in the history

Commits on Nov 14, 2024

  1. refactor: pull beacon chain slashing out of slashing lib (#876)

    * fix: correctly update dsf when increasing delegation
    
    * fix: fix bug where we modify an array while iterating over it
    
    * chore: address review nits
    
    * refactor: minor refactors for codesize
    
    * refactor(nit): function ordering
    
    * fix: only check input lengths when receiving tokens
    
    * refactor: remove callstack indirection when completing a withdrawal
    
    * chore: update comment
    wadealexc authored Nov 14, 2024
    Configuration menu
    Copy the full SHA
    d14790a View commit details
    Browse the repository at this point in the history
  2. test: slashing test todos (#885)

    * test(wip): todos
    
    * chore: remove lcov
    
    * test(wip): remaining alm todos
    
    * test: final todos
    
    * test(wip): todos
    
    * chore: remove lcov
    0xClandestine authored Nov 14, 2024
    Configuration menu
    Copy the full SHA
    725d3df View commit details
    Browse the repository at this point in the history

Commits on Nov 20, 2024

  1. feat: burn erc20s on slashing (#881)

    * refactor: pull beacon chain slashing out of slashing lib
    
    * feat: initial draft for sync slashing
    
    * fix: existing tests
    
    * fix: cumulative shares and fmt
    
    * fix: missing operator key in mapping
    
    * refactor: cumulative scaled shares
    
    * chore: cleanup
    
    * chore: storage report
    
    * fix: rename and beacon strategy
    
    * fix: rebase
    
    * fix: rounding
    
    * test: happy path test cases for burn erc20s
    
    * fix: address comments
    
    * test: timing regression test and comments
    
    * fix: slashable shares in queue amount
    
    * refactor: burn refactor (#897)
    
    * refactor: remove unused return values from _insert
    * also removes safe cast
    * refactor: pull unrelated operations out and condense library method usage
    
    * test: additional unit test with multiple withdrawals
    
    ---------
    
    Co-authored-by: wadealexc <[email protected]>
    Co-authored-by: Alex <[email protected]>
    3 people authored Nov 20, 2024
    Configuration menu
    Copy the full SHA
    eed61f2 View commit details
    Browse the repository at this point in the history
  2. test: DelegationManager unit tests (#886)

    * feat: initial draft for sync slashing
    
    * refactor: cumulative scaled shares
    
    * feat: initial draft for sync slashing
    
    * fix: cumulative shares and fmt
    
    * chore: cleanup src/test
    
    * fix: delegation tests
    
    * test: rebased and refactored tests
    
    fix: rebase tests
    
    test: delegation unit refactoring
    
    fix: rounding tests
    
    fix: continue fixing delegation tests
    
    * test: include fuzz underflow tests
    
    * fix: tests and rebase
    
    * chore: comment nit
    
    * fix: failing ci
    8sunyuan authored Nov 20, 2024
    Configuration menu
    Copy the full SHA
    4aa717f View commit details
    Browse the repository at this point in the history
  3. test: fix env requirement (#899)

    * fix: remove env required
    
    * fix: use envOr
    
    * fix: remove env from CI for being required
    8sunyuan authored Nov 20, 2024
    Configuration menu
    Copy the full SHA
    3bc4bc1 View commit details
    Browse the repository at this point in the history

Commits on Nov 21, 2024

  1. Configuration menu
    Copy the full SHA
    b6372a0 View commit details
    Browse the repository at this point in the history

Commits on Nov 22, 2024

  1. fix: slashing local deploy (#898)

    * feat: local deploy
    
    * fix: transfer ownership
    
    * fix: comment
    ypatil12 authored Nov 22, 2024
    Configuration menu
    Copy the full SHA
    179e413 View commit details
    Browse the repository at this point in the history
  2. test: slashing integration framework (#894)

    * feat: add `AVS` user
    
    * test(wip): slashing integration
    
    * test(wip): slashing integration
    
    * test(wip): slashing integration
    
    * test(wip): slashing integration
    
    * fix: make tracing useful
    
    * test(wip): slashing integration
    
    * fix: toStringWad
    
    * fix: eigenpods
    
    * test(wip): slashing integration
    
    * refactor: revert change
    
    * test(review): changes
    
    * fix: compile
    
    * test(review): changes
    
    * refactor: improve logging
    
    * refactor: review changes
    
    * fix: roll in `modifyAllocations`
    
    * fix: roll in `modifyAllocations`
    
    * refactor: review changes
    
    * refactor: add back pause constants
    
    ---------
    
    Co-authored-by: Yash Patil <[email protected]>
    0xClandestine and ypatil12 authored Nov 22, 2024
    Configuration menu
    Copy the full SHA
    fbf7c19 View commit details
    Browse the repository at this point in the history
  3. refactor: EigenPods and beacon chain slashing (#892)

    * refactor: eigenpod and beacon chain slashing
    * checkpoints are not deleted on completion, saving gas when creating a new checkpoint
    
    * refactor: pull bcsf out of delegationManager
    
    * chore: formatting
    
    * refactor: rename withdrawableRestakedExecutionLayerGwei
    * maintains old interface, only state variable is renamed
    * this is to reduce line length when using this variable
    
    * refactor: remove branching and slashing math from eigenpod
    * fix: clean up balance update conditions and ensure shares==0 is handled
    
    * refactor: remove input validation and explicitly document assumptions
    
    * fix: tests and roundup (#901)
    
    * chore: address feedback
    
    * chore: address feedback again
    
    * chore: cleanup EPM withdrawSharesAsTokens
    
    ---------
    
    Co-authored-by: Michael Sun <[email protected]>
    wadealexc and 8sunyuan authored Nov 22, 2024
    Configuration menu
    Copy the full SHA
    28fc33e View commit details
    Browse the repository at this point in the history

Commits on Nov 25, 2024

  1. refactor: remove deprecated methods (#903)

    * refactor: rename parameter to be more accurate
    
    * refactor: remove deprecated methods from dm
    
    * refactor: remove operator details usage
    
    * chore: nit word
    wadealexc authored Nov 25, 2024
    Configuration menu
    Copy the full SHA
    601f8e2 View commit details
    Browse the repository at this point in the history
  2. test: withdrawSharesAsTokens regression (#904)

    * fix: commented out integration
    
    * test: call into EP for withdrawing as tokens
    ypatil12 authored Nov 25, 2024
    Configuration menu
    Copy the full SHA
    cdbd942 View commit details
    Browse the repository at this point in the history

Commits on Nov 26, 2024

  1. chore: remove unnecessary delegate checks (#908)

    * feat: remove checks on approver/operator sender on delegate
    
    * chore: update interface
    ypatil12 authored Nov 26, 2024
    Configuration menu
    Copy the full SHA
    d1c9402 View commit details
    Browse the repository at this point in the history
  2. feat: user access management (#870)

    * feat: unified access management
    
    fix: test/compile
    
    chore: use helper func in modifier
    
    chore: remove extra
    
    * test: add UAM to unit tests
    
    * refactor: delegate -> appointee
    
    * refactor: setAdmin -> addAdmin
    
    * fix: prevent 0 admins
    
    * refactor: bitshift encode/decode
    
    * feat: short-circuit _checkCanCall
    
    * test: basic reversability
    
    * feat: admin 2-step
    
    fix: remove external call
    
    * chore: fix compile/test
    
    * feat: use opSet length as avs check
    
    * chore: format
    
    * refactor: getoperatorsetcount
    
    * fix: msg.sender in delegatoinapproverupdated
    
    * chore: format
    ypatil12 authored Nov 26, 2024
    Configuration menu
    Copy the full SHA
    eb9a614 View commit details
    Browse the repository at this point in the history