-
Notifications
You must be signed in to change notification settings - Fork 257
[EPIC] stVaults #874
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
Open
tamtamchik
wants to merge
3,119
commits into
develop
Choose a base branch
from
feat/vaults
base: develop
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
[EPIC] stVaults #874
Changes from 250 commits
Commits
Show all changes
3119 commits
Select commit
Hold shift + click to select a range
06ff85e
docs: more clarity for annual balance sanity check
folkyatina e2d48cd
Merge pull request #1484 from lidofinance/feat/fix-pause
tamtamchik ac68c5c
fix(StETH): check uint128 overflow on share mint
folkyatina bdb71a9
chore: more intuitive constants in UnstructuredStorageExt
folkyatina d9878f3
chore: optimize VaultHub bytecode
folkyatina 92a32d7
docs(Dashboard): improve comments
folkyatina 3a99ddc
chore: update rights for ET contracts
dry914 727bbb0
fix(Lido): make staking pause/resume revert if paused/resumed
folkyatina 516f7e8
fix(Lido): simplify the pause check
folkyatina 2ec78d2
Merge pull request #1489 from lidofinance/fix/vaulthub-polish
folkyatina 863eeb8
Merge pull request #1493 from lidofinance/fix/revertable-staking-pause
folkyatina 8d4265f
fix(PDG): fix reentrancy path in PDG
folkyatina 66d902f
chore(PDG): fix indentation
folkyatina 5af1280
fix: upgrade after TW went live on mainnet
arwer13 4f252fc
chore: merge deployed-mainnet.json from develop
arwer13 55c7e33
fix: more tidying up for V3VoteScript.sol
arwer13 4c5a074
fix(VaultHub): insufficient shortfall due to rounding
failingtwice 6e7aac5
fix: #1476
tamtamchik 294fd95
Merge remote-tracking branch 'origin/fix/upgrade-after-tw' into feat/β¦
tamtamchik c5736b8
chore: cleanup scripts a bit
tamtamchik b7cc102
feat: add deploy scripts stub
tamtamchik e66be55
Merge pull request #1496 from lidofinance/fix/upgrade-after-tw
arwer13 80753cc
feat: update shortfall formula
failingtwice 482a944
Merge pull request #1492 from lidofinance/feat/update-et-rights
arwer13 dd3312d
Merge branch 'feat/audit-5' into feat/fix-1476
tamtamchik c978a2e
chore: fixes after review
tamtamchik ed1d5d8
Merge pull request #1495 from lidofinance/fix/pdg-reentrancy
folkyatina c7320bb
fix: overflow in node operator fee
folkyatina fddc419
Merge branch 'feat/audit-5' into feat/deploy-v3-hoodi
tamtamchik f9d8136
fix: ao_consensus_version
tamtamchik a9091e2
docs(PDG): more comments
folkyatina 8f8b86a
Merge pull request #1500 from lidofinance/fix/no-fees-overflow
folkyatina 1da30f1
chore: probably better branching
tamtamchik e60be77
feat: use precise shortfall calculation
failingtwice 12acdb5
docs(VaultHub): clarify EIP-7002 withdrawal fee
folkyatina 88ce964
Merge pull request #1498 from lidofinance/feat/fix-1476
TheDZhon 41dcc20
fix: remove old comments
failingtwice be85f78
feat: update bad debt case
failingtwice a405524
feat: add vaultsAdapter mocks to mainnet and hoodi upgrades
arwer13 9fe1dd0
test: shortfall fuzzing wip
failingtwice 0c09e9f
feat: update deploy parameters for hoodi
arwer13 7dc3330
Merge branch 'feat/audit-5' into feat/deploy-v3-hoodi
tamtamchik 9d0b450
chore: fix validate config
tamtamchik 2f5751f
feat(upgrade): add gate seal deployment for hoodi
arwer13 f435de4
Merge remote-tracking branch 'refs/remotes/origin/feat/deploy-v3-hoodβ¦
arwer13 f4aceb9
feat: add auxiliary hoodi deploy addresses
arwer13 5869aca
chore: update deploy params
dry914 d43361e
chore: remove locator address
dry914 5de69c2
Merge pull request #1491 from lidofinance/feat/audit-5
folkyatina bde88cd
feat: new Hoodi deploy
arwer13 05371a5
Merge pull request #1501 from lidofinance/feat/update-easy-params
arwer13 6d3069b
fix: upgrade-params-xxx.json schema
arwer13 c3bade0
Merge branch 'develop' into feat/deploy-v3-hoodi
arwer13 bbd87c3
feat: disable gate seal integration test on scratch
arwer13 0e5f465
fix: skipping gate seal integration tests on scratch
arwer13 81ffb73
fix: attempt to fix mainnet upgrade integration test
arwer13 317439b
test: fix vaults tests on Hoodi
folkyatina f60527e
fix: validate configs
tamtamchik 9416a90
test: add shareRate provisioning for the default tier
folkyatina 57dbe5e
chore: verify stVault contracts
tamtamchik bdcbeaf
feat(Dashboard): reset settled growth on disconnect
failingtwice 66bec36
feat: reset settled growth on abandon
failingtwice bdeff50
feat: disburse fee circuit breaker
failingtwice 0782a40
feat: revert disburse when paused
failingtwice d4ae689
feat: special function for high fee disburse
failingtwice 3155612
feat: 1% threshold rationale
failingtwice 8177d45
feat: rename event field
failingtwice 038f7dd
Merge pull request #1509 from lidofinance/confirmation-event
failingtwice fa50152
Merge pull request #1499 from lidofinance/feat/deploy-v3-hoodi
tamtamchik 0f5cfdf
feat: disburse abnormally high fee as admin
failingtwice ec3b2fa
feat: rename high fee threshold
failingtwice 1a2f158
feat: pass settled growth to connect to avoid foot violence
failingtwice e35aa1f
feat: use a simpler equation with slight overcompensation with ceilDiv
failingtwice f55e2ba
Merge branch 'audit-6' of https://github.com/lidofinance/core into shβ¦
failingtwice 21814a1
test: delete wip fuzz test
failingtwice 72b72ec
feat: hammer down rounding with 10 wei overcompensation
failingtwice 54af2bc
fix(PDG): prevent frontrun of the batch of activations
folkyatina b41b419
fix(PDG): check that array lengths match
folkyatina 2e59e77
chore: fix a natspec
folkyatina 0376681
fix(OperatorGrid): more parameter validation for admin methods
folkyatina 093e651
chore: fixed some comments and on event
folkyatina 515f34e
chore: fix comment
folkyatina 4492527
test: fix tests
folkyatina 39c4703
chore: fix a comment
folkyatina d636abf
test: fix pdg integration test for hoodi
folkyatina 55b71dd
chore: fix params filename
folkyatina a56d4be
chore: fix path to upgrade params
folkyatina 132de30
test: fix upgrade template test flow
folkyatina 6b758ed
chore: fix warnings
folkyatina a2103d5
test: fix upgrade template testing
folkyatina b9d66cb
docs: better natspec for Dashboard
folkyatina ca97347
chore: fix a warning
folkyatina 4204ee6
chore: fix some comments
folkyatina ffee488
fix(Dashboard): add return bool for transferVaultOwnership
folkyatina acba5fe
chore: more natspec improvements
folkyatina 9e795b0
fix(OperatorGrid): add confirm expiry setter
folkyatina 90b43f0
Merge pull request #1511 from lidofinance/fix/pdg-small-fixes
folkyatina f643fe8
Merge branch 'audit-6' of https://github.com/lidofinance/core into fiβ¦
failingtwice 96fb51a
test: fix hardcoded values
failingtwice 7521df1
Merge pull request #1506 from lidofinance/fix-no-fee
folkyatina 1f44239
Merge pull request #1497 from lidofinance/shortfall-rounding-fix
failingtwice 4b2ca37
feat: add vault factory chaining for upgrade
folkyatina f6a4d14
fix: fix upgrade deploy for the new factory
folkyatina ad8e59d
test: fix a flaky test
folkyatina 1afcebc
Merge remote-tracking branch 'origin/audit-6' into feat/upgreadable-vβ¦
folkyatina c59fe93
fix: integrations upgrade run without GENESIS_TIME
arwer13 18577c7
feat: fail upgrade on integrations if execute tx gas > fusaka limit
arwer13 5fa608b
chore: remove TW obsolete stuff
arwer13 a758468
feat(V3Template): make upgrade expiry timestamp configurable in ctor
arwer13 4199bbd
feat(upgrade): add missing OracleDaemonConfig parameters to V3VoteScript
arwer13 47ebd49
refactor: remove interfaces in return values of external function
arwer13 8869a3a
fix: incorrect outdated interface in V3TemporaryAdmin
arwer13 55a4429
fix: improve check-interfaces.ts - now all interfaces checks pass
arwer13 0436884
test: add some tests for the factory
folkyatina 5e71d92
fix: fixes after the review
folkyatina 4c9ce94
chore(LazyOracle): add natspec and rearrange methods a bit
folkyatina 176d889
Merge pull request #1513 from lidofinance/feat/upgreadable-vault-factory
folkyatina 8f9cc04
fix(TW): hardened assembly
folkyatina 25c2be3
Merge pull request #1515 from lidofinance/fix/prosecco-review-comments
folkyatina 7cae7a1
Merge pull request #1512 from lidofinance/audit-6
folkyatina 20b3076
chore: integration tests for jail/slashing res
dry914 6e65416
feat: hoodi common testnet patch 1
tamtamchik 9be293e
chore: add another warning comment to unguaranteedDepositToBeaconChain
folkyatina f890313
fix: add a try catch for fee disburse during disconnect
folkyatina c4ad0b6
Merge pull request #1521 from lidofinance/feat/hoodi-update-1
tamtamchik e68b394
test: add unhealthy vault tests
dry914 fc9f8ae
feat: add CI workflow to check Hoodi V3 state via state-mate
arwer13 4a09563
fix: linter
arwer13 a95bff9
fix(ci): state mate hoodi flow run triggers
arwer13 9fa8893
fix(ci): hoodi state flow - add missing corepack enable
arwer13 f2ffc87
Revert "refactor: remove interfaces in return values of external funcβ¦
arwer13 e6b6c30
feat: set maxExternalRatioBP to 3% upon upgrade (value configurable)
arwer13 c535910
fix: disburse last fees in two steps
folkyatina 411a576
test(Dashboard): fix tests for fees disbursement during disconnection
folkyatina 5c86ed2
test: add redemptions tests
dry914 860ea27
chore: better event for fee disburse
folkyatina 9293a1b
test: better test for feeLeftover
folkyatina 8debc84
test: fix NodeOperatorFee tests
folkyatina 008b043
fix(OperatorGrid): simplify changeTier a bit
folkyatina d845db5
fix(OperatorGrid): remove double validation for confirmation expiry
folkyatina 4a1a128
chore(VaultHub): clarify comments in healthShortfall calculation
folkyatina 63d10ae
docs(VaultFactory): update role assignment comments for clarity
folkyatina cb7ecb2
Merge pull request #1523 from lidofinance/fix/no-fee-disburse
folkyatina 250f39a
feat(Lido): add initialMaxExternalRatioBP parameter to finalizeUpgradβ¦
folkyatina 05376b9
fix(OperatorGrid): explicit revert for not connected vaults in changeβ¦
folkyatina b9839f5
Merge pull request #1526 from lidofinance/fix/various-fixes
folkyatina 2e54cbd
test: add socialization tests
dry914 b0e62fb
Merge pull request #1528 from lidofinance/feat/audit-7
folkyatina 0e41641
Merge branch 'feat/vaults' into feat/vote-follow-ups
arwer13 7b17c47
fix: scratch config validation
arwer13 034c05e
test: fix a test
folkyatina 192add8
test: fix a test
folkyatina 0e64f80
Merge pull request #1514 from lidofinance/feat/vote-follow-ups
folkyatina 1e984a2
fix: burning external shares with paused staking
tamtamchik a1e9488
test: internalization integration tests
dry914 0645d37
fix: use delta in _maxLockableValue
tamtamchik 414effc
fix(NodeOperatorFee): set settled growth on disburse if fee rate is zero
folkyatina a70b5ab
fix(Lido): better check for maxExternalRatioBP in finalizeUpgrade_v3
folkyatina 9021219
chore: add natspec
tamtamchik 26c10ad
Merge pull request #1532 from lidofinance/fix/lido-finalize-upgrade-cβ¦
folkyatina f67622a
chore: remove unused error
folkyatina fc2696d
Merge pull request #1531 from lidofinance/fix/retroactive-fees
folkyatina d10bdfa
Merge pull request #1529 from lidofinance/fix/revert-on-burn-on-pause
folkyatina cd30b4a
Revert "fix: burning external shares with paused staking"
folkyatina 9f622b3
Merge pull request #1534 from lidofinance/revert-1529-fix/revert-on-bβ¦
folkyatina 111a983
Merge pull request #1535 from lidofinance/fix/revert-on-burn-on-pause
folkyatina fe61a7c
Merge pull request #1530 from lidofinance/fix/total-minting-capacity
folkyatina 089ebda
fix(LazyOracle): correct condition for maxLiabilityShares validation
folkyatina 662d2bc
docs(LazyOracle): clarify validation conditions for maxLiabilityShares
folkyatina 37d967b
test(LazyOracle): fix maxLiabilityShares test
folkyatina f9620d5
test(LazyOracle): enhance integration tests for report data validation
folkyatina 79870b4
Merge pull request #1536 from lidofinance/fix/sanity-check-max-ls
folkyatina 3366c94
Merge pull request #1533 from lidofinance/feat/audit-8
folkyatina 7aaf6a9
Merge pull request #1535 from lidofinance/fix/revert-on-burn-on-pause
folkyatina 138921e
fix(NodeOperatorFee): charge fee quarantined value
folkyatina 68b4b28
fix(VaultHub): pause VaultHub implementation
folkyatina 59f1185
feat: pause VaultHub implementation
tamtamchik 513fb10
chore: after review
tamtamchik 0802c17
fix(Dashboard): disable fee accrual by default on disconnect
folkyatina a6273f8
test: fix unit tests
folkyatina f06ed84
test: restore integration tests
folkyatina 3503873
feat(LazyOracle): add totalValueReminder to quarantine logic and updaβ¦
folkyatina c2d6f7c
fix(LazyOracle): fix typo
folkyatina 77b58ba
fix(NodeOperatorFee): after review polish
folkyatina 6547709
test: extract and improve quarantine tests
folkyatina cfdc077
chore: remove a bit of dead code
folkyatina 3c7b1ae
fix(Dashboard): remove _currentSettledGrowth param from connect methods
folkyatina 4717e16
fix(OperatorGrid): final solution of the wrong shortfall problem
folkyatina c4f1389
test: fix vault hub creation
tamtamchik 713f3c8
Merge pull request #1537 from lidofinance/fix/pause-vault-hub-impl
tamtamchik 1b8f838
fix(LazyOracle): small fixes after review
folkyatina 95ade9c
fix(LazyOracle): case with slashing after quarantine start
folkyatina 34665a9
test(VaultHub): add a test for shortfall on last numbers from Certora
folkyatina f453de4
Merge pull request #1538 from lidofinance/fix/no-fee-revamp-2
folkyatina 33006a9
Merge pull request #1540 from lidofinance/fix/shortfall-again
folkyatina ebf1a00
test: fix a test
folkyatina 3807a31
Merge pull request #1541 from lidofinance/feat/audit-9
folkyatina d4fc0d5
feat: hoodi patch 2
tamtamchik cec7282
feat(upgrade): add EasyTrack new factoring upon V3 voting
arwer13 5ffe3d7
feat(upgrade): add EasyTrack new factoring upon V3 voting
arwer13 1a79634
test: add bad debt cases
dry914 bc9f31e
Merge branch 'feat/vaults' into chore/new-integration-tests
dry914 82564ae
test: disconnect is NOT blocked by jail
dry914 b7dc37a
test: add rounding difference to force rebalance test
dry914 f448657
chore: remove transferToVault
tamtamchik 080312e
test(nor): cleanup transferToVault test
tamtamchik bee0ebc
Merge pull request #1545 from lidofinance/feat/remove-transfer-to-vault
tamtamchik ec2e87b
Merge pull request #1542 from lidofinance/feat/hoodi-update-2
tamtamchik 6f738c0
Merge pull request #1524 from lidofinance/feat/ci-hoodi-state
folkyatina f857d07
Merge pull request #1543 from lidofinance/feat/upgrade-plug-et
tamtamchik 0073f59
feat: batchValidatorStatuses getter for LidoOracle
folkyatina fd00424
fix: integration tests after review
dry914 021b56a
test: add balance check
dry914 c286120
Merge pull request #1519 from lidofinance/chore/new-integration-tests
tamtamchik 5e85de2
feat: allow update fees on unhealthy vault
tamtamchik c0c392b
fix(VaultHub): possible fix for shortfall problem
folkyatina aba3fc5
test: fix unit tests
folkyatina 453512d
chore(VaultHub): fix the rounding problem
folkyatina 63a4e7a
Merge pull request #1546 from lidofinance/feat/batchValidatorStatuses
folkyatina 692bd37
chore: update natspec
tamtamchik 63bc1cd
chore: update natspec
tamtamchik b3d01ed
Merge pull request #1547 from lidofinance/feat/fix-fees-update
tamtamchik 3642a7a
fix(VaultHub): add early return for small values in shortfall
folkyatina ffa5ef9
fix(VaultHub): better place for early return
folkyatina 2fc26c8
fix(OperatorGrid): force 10 bp difference between frt and rr
folkyatina b3aba11
test: fix shortfall integration tests
folkyatina 6c7ee2c
Merge pull request #1548 from lidofinance/fix/shortfall-again-2
folkyatina f9ce0a0
Merge pull request #1549 from lidofinance/feat/audit-10
folkyatina b52b540
fix(Accounting): using the recent badSharesToInternalize in simulation
folkyatina cc34eba
feat: disallow max staking limit
tamtamchik 44fd430
test: fix unit tests
folkyatina 79fe122
Merge pull request #1553 from lidofinance/fix/internalize-bad-debt-siβ¦
folkyatina fa220d9
Merge pull request #1554 from lidofinance/feat/disallow-max-staking-lβ¦
folkyatina c38a37c
feat: add only for contract verification
tamtamchik e54d545
Merge pull request #1555 from lidofinance/feat/audit-11
tamtamchik 6786a24
Merge branch 'feat/vaults' into feat/patch-oracle
tamtamchik 958a8f9
chore: patch 3
tamtamchik 8361697
feat: disable role renouncement
failingtwice 10c9125
Merge pull request #1557 from lidofinance/dashboard/disable-role-renoβ¦
failingtwice db60f92
feat: remove role grants from agent
failingtwice f0c4b72
feat: update mainnet upgrade params
failingtwice 40e0692
feat: remove unused assert func
failingtwice 5811c7a
Merge pull request #1558 from lidofinance/remove-role-grants-to-agent
folkyatina ca702c1
feat: update params, change frt, rename max maxRelativeShareLimitBP tβ¦
failingtwice b7fd9be
Merge pull request #1559 from lidofinance/update-mainnet-params
failingtwice f9a9f80
Merge pull request #1556 from lidofinance/feat/patch-3
tamtamchik cbce2e9
fix(OperatorGrid): don't change tier if shareLimit is lower than liabβ¦
folkyatina 17e854a
fix(OperatorGrid): add the same restriction to update share limit
folkyatina 86d5d86
Merge pull request #1561 from lidofinance/fix/change-tier-over-liability
folkyatina 5b0dc6e
fix(V3Template): update an upgrade expiry timestamp
folkyatina 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 hidden or 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
This file contains hidden or 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
folkyatina marked this conversation as resolved.
Show resolved
Hide resolved
folkyatina marked this conversation as resolved.
Show resolved
Hide resolved
|
This file contains hidden or 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 |
|---|---|---|
| @@ -1,31 +1,30 @@ | ||
| name: Integration Tests | ||
|
|
||
| on: [push] | ||
|
|
||
| jobs: | ||
| test_hardhat_integration_fork: | ||
| name: Hardhat / Mainnet | ||
| runs-on: ubuntu-latest | ||
| timeout-minutes: 120 | ||
|
|
||
| services: | ||
| hardhat-node: | ||
| image: ghcr.io/lidofinance/hardhat-node:2.22.12 | ||
| ports: | ||
| - 8545:8545 | ||
| env: | ||
| ETH_RPC_URL: "${{ secrets.ETH_RPC_URL }}" | ||
|
|
||
| steps: | ||
| - uses: actions/checkout@v4 | ||
|
|
||
| - name: Common setup | ||
| uses: ./.github/workflows/setup | ||
|
|
||
| - name: Set env | ||
| run: cp .env.example .env | ||
|
|
||
| - name: Run integration tests | ||
| run: yarn test:integration:fork:mainnet | ||
| env: | ||
| LOG_LEVEL: debug | ||
| #on: [push] | ||
| # | ||
| #jobs: | ||
| # test_hardhat_integration_fork: | ||
| # name: Hardhat / Mainnet | ||
| # runs-on: ubuntu-latest | ||
| # timeout-minutes: 120 | ||
| # | ||
| # services: | ||
| # hardhat-node: | ||
| # image: ghcr.io/lidofinance/hardhat-node:2.22.17 | ||
| # ports: | ||
| # - 8545:8545 | ||
| # env: | ||
| # ETH_RPC_URL: "${{ secrets.ETH_RPC_URL }}" | ||
| # | ||
| # steps: | ||
| # - uses: actions/checkout@v4 | ||
| # | ||
| # - name: Common setup | ||
| # uses: ./.github/workflows/setup | ||
| # | ||
| # - name: Set env | ||
| # run: cp .env.example .env | ||
| # | ||
| # - name: Run integration tests | ||
| # run: yarn test:integration:fork:mainnet | ||
| # env: | ||
| # LOG_LEVEL: debug |
This file contains hidden or 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
This file contains hidden or 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 |
|---|---|---|
| @@ -1,5 +1,6 @@ | ||
| .idea/ | ||
| .yarn/ | ||
| .vscode/ | ||
|
|
||
| node_modules/ | ||
| coverage/ | ||
|
|
||
This file contains hidden or 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 |
|---|---|---|
| @@ -1 +1 @@ | ||
| 20.12 | ||
| 22.11 |
This file contains hidden or 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
This file contains hidden or 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 |
|---|---|---|
| @@ -1,2 +1,4 @@ | ||
| contracts/Migrations.sol | ||
| contracts/0.6.11/deposit_contract.sol | ||
| contracts/openzeppelin/ | ||
| contracts/0.6.11/deposit_contract.sol | ||
| contracts/0.6.12/WstETH.sol | ||
| contracts/0.8.4/WithdrawalsManagerProxy.sol |
This file contains hidden or 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
Oops, something went wrong.
Oops, something went wrong.
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.
Uh oh!
There was an error while loading. Please reload this page.