-
Notifications
You must be signed in to change notification settings - Fork 44
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
Revert "Emit user notifications from chain events." #56
Merged
Conversation
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
This reverts commit f77a2b6.
jnaviask
added a commit
that referenced
this pull request
Jul 15, 2022
* Initial prettier setup. * Lint file. * More linter fixes.
zakhap
added a commit
that referenced
this pull request
Jul 21, 2022
* Add edgeware-beresheet chain to support list. * Rename edgeware-beresheet to edgeware-testnet. * Updates * Add new session, imonline events, ensure it runs with no errors * Spelling and caps * Fixes and successfully logs imonline and new session event data * Remove logs, may need to parse exposure.toHuman() differently for better precision * Updates * Version bump * Adds union type of all supported chains. * Remove extraneous logging. * Update listener to use dev types. * offences events * Bump API version, add supportedBy helper. * offences events updates * Bump API version. * offences events updates * Version bump. * Added eraPoints, commission, controllerId, NextSessionIds * new session now returns rewardDestination and eraPoints with one stash key * Adding scraper script. * Bump API and node types version. * Expose substrate fetcher methods. * Separate council and technicalCommittee fetching. * Add explicit types to fetcher methods. * Edit labels * Add nvmrc * Further edits * Address changes * Version bump * Bump for 2.0 on testnet. * Made Requested Chnages * Bump node-types, fix Kusama decimals. * Bump edgeware node types. * Update API type initialization and listener CMD args. * Bump versions and add basic error handling to listener. * Tests Passing * Version bump * Fixed tests with unwrap * removed an extra line * Add maxRange to poller and batch script. * Update logging and edge case for batch poller. * Update batch poller script. * Bump patch version. * Add log event handler to poller. * Add aggregateFirst flag. * Add validator election event and enrich council with members. * Fix processor test with election rounds. * Bump version and fix build. * Chain events Listener: Archival Mode (#33) * initial commit archival mode for listener * fixed indentation * added comment * bumped polkadot api dependency * updated tests for poller * removed unused import * downgraded polkadot to 2.5.1 * updated lock file * Resolved issues * removed unused imports * added description for archive method * resolved logical error with blocks processing * Bump version and fix build. Co-authored-by: Jake Naviasky <jake@commonwealth.im> * Version bump. * Add democracy-voted extrinsic event and test. (#32) * Add democracy-voted extrinsic event and test. * Filter extrinsics for success. * Fix success-checking bug and tests. * Change tense and bump version. * fixes for new session testing * bumped version * Add contracts * Import SafeMath.sol from @openzepplin package directly * Generate typechain types for contracts * Add truffle migration * Add ganache to yarn scripts for ease testing * Fix truffle migration, contracts launch successfully * Add democracy seconding chain event. (#35) * Add Marlin to Listener * Add Marlin Types to src/marlin * Add all previous types from first pass and subsequent filters * Remove derives to avoid treasury and council loading failures. (#37) * Fix treasury and council proposal loading against error case. * Add tests for storageFetcher updates. * Fix enricher test. * Tidy types.ts for MPond inclusion * Update all copy to MPond wherever relevant * Add subscriber.ts * Add subscribeFunc and storageFetcher * Add processor * Fix Moloch bug * Export marlin via marlin/index.ts, and import into src/index.ts * Add index.d.ts to marlin contractTypes * Add to substrate labeler denom function * Fix type errors in interfaces.ts * Add test command to package.json * Add marlin.spec.ts integration test, untested * Add typechain generated fiels back to types * Add enricher unit-tests * Fix Comp/MPond mixup in subscribeFunc.ts * Processor and storageFetcher unit tests, untested * Subscriber unit tests * Integration tests now working with MPond contracts, subscribeFunc event handling failures for governorAlpha event emissions. * Remove logs from unit tests * Fix marlin tests * modified to correclty process a block from past * script to get reward points for provided era * updated newSession event to work with old blocks * Bump polkadot API version. * compGuardian to mpondGuardian * Bump to beta version. * using `.at()` for fetching data * exposure api fix * typecasted rewardDestination to String * minor changes * updating endBlock on each iteration * minor updates * passing startBlock as param to acrivhal mode * not retruning blocks from archive function casuses heap error * fixed collision of alias * updated logging * beta branch * beta branch * Bump to beta versions. * Fix build and version bump. * Bump node-types version. * Remove internal wasm-crypto dep. * Bump version for new build. * Add stafi and cleanup API init. * Version bump. * in case not able to determine start range return * linearlized block processing and fixed waiting validators * minor linter issue * when running in archival mode only polls past data and does not subscribe with header at the end * Made dummy apis to pass tests * reverted factory name * validator key often don't have stash id * fixed eraPoints issue returning 0 for all Validators and updated dummy test api * Upgrade node types to latest. * Dependabot bump. * minor spacing fixes * indent fixes * added spacing to ternary conditions * more indentation * Revert "Enricher fixes for archival mode" * Revert "Revert "Enricher fixes for archival mode"" (#45) * Revert "Revert "Enricher fixes for archival mode"" * fixed minor indentation and logical errors * reverted batch size to 500 * created custom interface for returning era reward points * created interface for active exposures * removed session keys from new session event * updated mockApi to preserve default function calls * reverted back lint changes, created interface for individual exposure and casted keys to storage tuple of variable length. * minor fixes and code optimization * Stylistic cleanup. * Add more comments and cleanup. Co-authored-by: Yameen Malik <yameen@seecode.io> Co-authored-by: Yameen <yameen@seedcode.io> Co-authored-by: Jake Naviasky <jake@commonwealth.im> * Bump to beta version with staking changes. * Add Bounty-related events (#40) * Add Bounty todos to interfaces * Add some bounty eventkinds to types.ts * Add fetchTreasuryBounties to storageFetcher * Import bounty to storageFetcher * Add temp IEvents for Treasury approved/proposed/rejected * Add bountyIndex to bounty events * Fill in TreasuryBountyProposed * Finish storageFetcher fetchTreasuryBounties * Add fetcher method to fetch process, return with all events * Add todos * Add Bounty events to titler * Add events to IEventData export * Add bounty events to labeler.ts * add bounty imports to enricher * Add all Event types * Export new events with IEventDat a * Add leftover types to labeler * Add more event types to titler * Comment todos for bounty events in enricher * Add new interfaces to BountyStatus, BountyStatusCuratorProposed, BountyStatusActive, BountyStatusPendingPayout * Clean up enricher, needs tests * Add Bounty to entityToFieldName * Add all bounty events to EventToEntity * Add bounties to testutils api * Add treasuryBounties to enricher synthetic api * Modify api calls to bountyApprovals, for some reason not in api in storageFetcher. * Add correct overrides * Fix more overrides * Fix bounty api overrides, tests passing * Fix enricher and finish enricher tests * Lint enricher * Add bounty proposed event to processor.spec.ts * Fix accidental compile error on enricher * Process bounty event in processor.spec.ts * Remove comments from labeler * Remove comment from types.ts * Fix enricher to build properly * Export IBountyEventTypes * Remove status from ITreasuryBountyProposed and from enricher * Clean up comments and verify bounty event interfaces with pr review comments * Start to fetch more than just proposed events * Add comments to types * Add more bounty lifecycle events to storageFetcher * Fix build errors, still need to add all events * More bounty events in storage fetcher. * Add pendingPayout status event * Add another event * Add all events based on status * Fix enricher tests to reflect new typing of proposed-event * Fix bounty fetcher for new API * Remove unnecessary comments in bounty fetcher * update package.json * Another iteration of versioning * Try bounties query multi fix * Try another fix. * Rebuild bounty fetcher using derive instead of query. seems to be working better. * Fetches all bounties and makes proposed events 💪 throws console warning messages but still successfully makes it through the api.derive.bounties. Will add more of the detailed events. * Add better logs for bounty fetching * Add more events to storageFetcher for bounties * Clean up and add last 2 events * Add bounty to fakeApi in tests, still throws undefined error in test * Add bounties events to type_parser * Fix enricher to use derive for compatibility * Fix testUtil, move bounties overrides from query to derive * Remove redundant code from storageFetcher * Remove commented fetchTreasuryBounties * Play with bounties reference on enricher api * Fix some of the test issues, not all done yet * Add fleshed out bounty to enricher test * Fix storageFetcher test * Remove logs * Fix enricher test * Bump beta version for bounties. * enhancement: add clover finance (#46) * add clover finance * remove redundant code * Fix clover url. Co-authored-by: Maxwell Foley <maxwell.foley@certik.org> Co-authored-by: Jake Naviasky <jake@commonwealth.im> * Bump beta version. * add HydraDX integration (#47) * add hydradx * Move listener specs to scripts and add fetcher checks. Co-authored-by: Maxwell Foley <maxwell.foley@certik.org> Co-authored-by: Jake Naviasky <jake@commonwealth.im> * Fix hydra url. * Bump beta version. * Bounty storage fetcher bug fix. * Add democracy voted events to eventToEntity(). * Add stronger switch on bounty storage fetcher. * Update edgeware types (#53) * Add timeout to substrate API create. * Add balance transfer event. (#48) * Add balance transfer event. * Remove enricher config which filtered transfers. * Fix build. * Fix unit test case for transfer. * Revert "Remove enricher config which filtered transfers." This reverts commit 744cd431202192e30f88464e3131ff97f2ea6e8b. * Modify includeAddresses based on provided transfer threshold. * Added TODO regarding transfer logic. * Bump version. * Add prettier plugin. (#56) * Initial prettier setup. * Lint file. * More linter fixes. * Bump web3 version. * Add explicit web3 deps. * Move polkadot libs to peer dependencies. * Bump version. * Bump and fix underlying types. * Bump CI node version. * Bump underscore from 1.12.0 to 1.12.1 (#57) Bumps [underscore](https://github.com/jashkenas/underscore) from 1.12.0 to 1.12.1. - [Release notes](https://github.com/jashkenas/underscore/releases) - [Commits](jashkenas/underscore@1.12.0...1.12.1) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Fix clover types. * Add yalc documentation. * Add additional event handlers for bounties (#60) * Handle additional bounty events * Add handling for bounty awarded * Add handling for became active * Fix package * Revert "Add additional event handlers for bounties (#60)" This reverts commit c8b16b0. * Add additional event handlers for bounties. (#61) * Handle additional bounty events * Add handling for bounty awarded * Add handling for became active * Fix package * Add remark and description for bounties. * Fix unit tests. * Fix storageFetcher emitting Claimed event before payout has occured * Fix storageFetcher logic. * Fix unit tests and use derive description. * Ignore unused bounty extrinsics and events. Co-authored-by: Raymond Zhong <raykyri@gmail.com> * Bump version. * Adds more bounty data based on the bounty status enum's content. (#62) * Use derive description. * Add additional bounty data. * Bump version. * Migrate to github actions. (#64) * Move to github actions. * Switch to yarn instead of npm caching. * Fix lint annotation errors. * Add support for tracking ERC20 token transfers (#58) * initial commit for erc20 token communities * modify logic around erc20s * lint, add address data to enricher, and allow subscribers to incorporate new tokens in same connection * move addNewToken to subscriber and eliminate dead code * have erc20 api take list of addresses rather than token entities * add threshold option to erc20 enricher * modify listener interface to work with changed api * eliminate non-deployed contracts from token list * linter and other edits Co-authored-by: Maxwell Foley <maxwell.foley@certik.org> * Bump normalize-url from 4.5.0 to 4.5.1 (#65) Bumps [normalize-url](https://github.com/sindresorhus/normalize-url) from 4.5.0 to 4.5.1. - [Release notes](https://github.com/sindresorhus/normalize-url/releases) - [Commits](https://github.com/sindresorhus/normalize-url/commits) --- updated-dependencies: - dependency-name: normalize-url dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump glob-parent from 5.1.1 to 5.1.2 (#66) Bumps [glob-parent](https://github.com/gulpjs/glob-parent) from 5.1.1 to 5.1.2. - [Release notes](https://github.com/gulpjs/glob-parent/releases) - [Changelog](https://github.com/gulpjs/glob-parent/blob/main/CHANGELOG.md) - [Commits](gulpjs/glob-parent@v5.1.1...v5.1.2) --- updated-dependencies: - dependency-name: glob-parent dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump version. * Add tips support. (#59) * Code complete tips implementation. * Add tips to fetch() call. * Fix test cases. * Add workaround for broken tips in storage. * Fix reason parsing. * Bump version. * Fix event storageFetcher tests. * Integrate AAVE governance events. (#63) * Update to ethers v5. * Add AAVE contracts and switch to hardhat. * Implement AAVE and update ethers typings. * Fix bug with values array. * Improve marlin test cases. * Add first Aave integration test (works!) * Complete AAVE integration tests. * Add unit tests and storage integration test. * Verify AAVE against mainnet. * Add optional voting data to ProposalCreated. * Add AAVE token events. * Clean up Marlin API init. * Distinguish EntityKind names for eth proposals. * Fix entity kind marshalling. * Undo previous change and fix entity searching. * Add maxResults flag. * Adding fetchOne to storageFetcher. * Extend fetch() interface. * Add Vote event kind for entities. * Remove fields from integration test. * Add rimraf to ensure no mixed builds. * Workaround for aave proposal completion. * Fix test cases. * Support Ropsten and bump version. * Add dydx. * Raises polling interval to 12s from 4s to reduce infura load. (#70) * Refactor provider init and update polling. * Lower to 12s. * Replace typescript-logging with tslog. (#71) * Replace typescript-logging with tslog. * Fix logging in batchPoller. * Revert "Replace typescript-logging with tslog. (#71)" This reverts commit db2376e. * Bump version. * Bump patch version. * Cleanup Marlin events. (#74) * Cleanup Marlin events. * Rename marlin to compound. * Support uniswap gov. * Rewrite compound storage fetcher to use historical data. * Fix event chains and bump version. * Fix compound description decoding error. * CE Listener classes (#75) * rabbitmq config and producer.ts * interface fix * refactoring/readme update * listener.ts handlers + producer instantiation * cmd line argv * added amqplib to dep * package.json * log connection info + instructions * package.json update * log error temp fix * readme update * added chain and received timestamp to events metadata * readme updated to add -q arg option * potential change/fix testing * added getSubstrateSpecs to listener.ts * fixed getSubstrateSpec * excluded events + config file * async refactor * multiple listeners + express server * small fix * node + comments + TODO * updateSpec route * fixes + testing * readme * listener.ts + producer.ts fixes and README.md updates * changes to rabbitmq argv + readme updates * listener.ts restructuring + eventsNode added routes * producer config + tests for producer.ts and eventsNode.ts * eventNode tests + fixes * env var + fixes * chain supported check + tests * identityFetch + tests * file/function refactoring and restructuring + standalone node script * uncomment code fix * dir restructure + dbNode script * identity * full identity process implementation * identity publish/handle * fixes * fixes * readme + event data augmentation * Listener class * Listener class + README.md * moloch Listener class * marlin Listener class * erc20 Listener class * httpPostHandler.ts + rabbitmqHandler.ts * Listener fixes + listener script * Listener abstract class + listener options fix * fix imports in types.ts * server.ts + listener script Listener class updates * substrate test start * substrate tests + bind fix on listeners * util defaults + post-install config * peers fix * peers fix * peers fix * build files * build files * build files * build files * build files * build files * build files * build files * build files * build files * build files * build files * build files * build files * build files * build files * rabbitmq-handler change + build files * build files * build files * build files * build files * build files * build files * build files * separate types * build types * build types * build types * remove rabbitmq from chain-events * remove rabbitmq from chain-events * util import fix * types separation * remove declaration from build * build files * build types fix * revert to bundled types + index fix * build files * peer dependencies changed * .d.ts copy * .d.ts copy * dedup * dedupe versions + listener.ts fix * util fix * peer deps * dependency/yarn.lock refresh * express app changes + exports * build * build * import/export fixes * startBlock removed * override EventSupportingChains type * added ce plugin + util error throwing * updated hydradx specs * util + ignore chain type * updated ce-rabbitmq-plugin * updated ce-rabbitmq-plugin * removed rbbtmq from listener script * removed prepare + install-peers * discoverReconnectRange * discoverReconnectRange * logging changes * logging changes * pollMissedBlocks fix * createApi connection retry limited to 3 + logging fix * createApi retry limits + listener script fix * import path fixes + moloch/marlin listener provider * Aave listener/util + listener/createApi fixes * infura connection check + logging * await createProvider + new build files * erc20 fixes * revert logging * Aave Listener build files + version bump * bump version * removed prepare script causing Heroku build failure * listener script all/single token support * remove types dir * remove express * remove express (build files) * remove spec defaults * remove build files * listener spec default + test import * Listener fixes + substrate/moloch listener tests + removed producer test * Listener fixes + tests for all listeners * remove .only test * added reconnect range func in util * merged compound * Linter fixes. * removed exported defaults * unused import removal + logging improvement * Lint fixes. * moved specs back to scripts * Small stylistic fixes. * Bump version. Co-authored-by: Jake Naviasky <jake@commonwealth.im> * Rename Marlin contracts to Compound. * Add frax and tribe to supported compound chains * Add tribe to event types and listener networkUrls. Remove frax * Bump version to 0.8.1 * Bump polkadot versions and hydradx spec * Swap edgeware listener endpoint. * Fix tipClosing event storageFetcher marshaling. * Erc20 balance threshold (#77) * enricherConfig/balance threshold fixes * null error + lint fixes * Align erc20 and substrate balance xfer logic. Co-authored-by: Jake Naviasky <jake@commonwealth.im> * Bump version. * Swap aaveproposal to onchainproposal. * Refactor ERC20 support. (#79) * Refactor ERC20 support. * Add token names to non-queue listening. * Bump version. * Support Compound Governor Bravo contracts (#80) * add gov bravo contracts * Updates. * Swap bravo integration test to hardhat. * Add immutable contract to fix proposal test case. * mod - cleanup and added immutable * mod - refactor tests * mod - bravo contract to also set initial proposal count * mod - fix test that checks if proposal fails after voting period expires * feat - bravo support, mod - quorum change in mock contract * mod - refactor, fix remaining tests * mod - fix should be queued and executed test * mod - fixed last test * mod - remove unused helper functions and args * mod - user helper function for creating active proposals * mod - cleanup * feat - add test for cancel proposal * wip - comment out everything but vote with reason test * mod - tests work with reason * mod - fix alpha tests * feat - add int test command using hardhat, timeout for aave * mod - change support type to only number * mod - change enricher types to bravo * Fix test command. * Get test suite back up and running. * Separate unit and integration tests on github flow. Co-authored-by: Jake Naviasky <jake@commonwealth.im> * Bump version. * Ensure github actions pass and fix type bugs. (#82) * Fix unit tests. * Fix integration tests and bump version. * Fix linter errors. * Implement openzeppelin governance. (#83) * Implement openzeppelin governance. * Only use hex string for proposal id. * Storage fetcher no longer only fetches events for proposals started within range. * Rewrite aave storage fetcher to be like compound. * Tim.alchemy (#84) * listenerV2 + transition eth.ts to alchemy * updating default listener links to alchemy * Rewrite Alchemy API initialization code. Co-authored-by: Jake Naviasky <jake@commonwealth.im> * auto-reconnect (#85) * Bump version. * Replace EventChains with SupportedNetwork. (#86) * Replaces event chains with SupportedNetwork. * Add network to CWEvent. * Add Title and Label functions. * Bump minor version. * Naming fix. * Fix listener check. * Fix test cases. * Update types to permit local testing. * Create PULL_REQUEST_TEMPLATE.md (#89) * Create PULL_REQUEST_TEMPLATE.md * get rid of irrelevant PR question * Fix Bravo event decoding. (#90) * Fix Bravo event decoding. * Fix waffle type and add guardian metadata for test. * Swap IGov for regular Gov contract. * Update support for OZ standard. (#92) * Re-add queued event for Bravo. * Make ozGov test use timelock. * Bump version. * Improve CE logging to include filename, network, and chain/token name (#87) * Aave + Compound logging upgrade * erc20 logging + tokenName adjustment * add base + chain to all logs * logging fixes + customBase overriding fix * merged network enum changes + fixed merge issues + added SupportedNetwork in logging * fix listenerV2 script * logging refactor * logging refactor * Bump version. * Remove hard dependency on infura/alchemy ETH urls. (#93) * Use network url as-is, no more rewriting. * Bump API version. * Tim.logging (#94) * Aave + Compound logging upgrade * erc20 logging + tokenName adjustment * add base + chain to all logs * logging fixes + customBase overriding fix * merged network enum changes + fixed merge issues + added SupportedNetwork in logging * fix listenerV2 script * logging refactor * logging refactor * logging fix compound + subscribeEvents logging update * logging fix compound * enricher logging fix + processor logging enhancement * processor logging cleanup * enricher enhancement * fixes * remove formatFilename imports * processor logging fix * storageFetcher fix * Bump version. Co-authored-by: Jake Naviasky <jake@commonwealth.im> * Erc20 Approve events chain augmentation (#95) * fix log + add chain * refactor adding chain to erc20 event * listenerV2 network default shortcut * Remove edgeware-node-types dependency. (#96) * Remove edgeware-node-types dependency. * Bump version. * Avoid using latest tag in getBlock. * Remove getBlock call. * Remove latest tags. * update license * Add listening/processing of ERC721 events. (#101) * Add listening/processing of ERC721 events. * Add listener function for testing erc721. * Removed totalSupply for ERC721. Co-authored-by: Jake Naviasky <jake@commonwealth.im> * Version bump. * Patch bump for erroneous publish. * Integrate Commonwealth chain events. (#108) * Add CWP contracts. * Stub out CWP changes. * Initial complete implementation for CW Protocol. * Export commonwealth types. * Fix createApi call. * Fix subscriber and update solidity. * Bug fixing for protocol. * Fix paths. * Version bump. * Enrich additional data in ProjectCreated. (#109) * Enrich additional data in ProjectCreated. * Bump version. * Fix curatorFee query. * Update Interfaces * Adding updated contracts and fixing enricher * Update package.json Co-authored-by: Daniel Trinh <danielhtrinh1@gmail.com> * one liner (#110) Co-authored-by: dillchen <dillon@commonwealth.im> * Version bump. * Fix BN conversion bug. * Move chain events into folder. * Add chain events. * Update chain events import routes. * Add chain events CI. * Rename CI packages. * Add CI filters for paths. * Attempt CI fix. * Remove chain events failures from CI. * Remove conditional testing. Co-authored-by: Drew Stone <drewstone329@gmail.com> Co-authored-by: Mir Nawaz <inbox.mirnawaz@gmail.com> Co-authored-by: Furqan Ahmed <nblogist1@gmail.com> Co-authored-by: Raymond Zhong <raykyri@gmail.com> Co-authored-by: Raymond Zhong <raykyri@users.noreply.github.com> Co-authored-by: Yameen Malik <65854545+YameenMalik@users.noreply.github.com> Co-authored-by: Yameen Malik <yameen@seedcode.io> Co-authored-by: zakhap <zhs2104@columbia.edu> Co-authored-by: Zohaib Khan <zohaib@seedcode.io> Co-authored-by: Yameen Malik <yameen@seecode.io> Co-authored-by: maxwellfoley3 <maxwellsfoley@gmail.com> Co-authored-by: Maxwell Foley <maxwell.foley@certik.org> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Timothee Legros <62490329+timolegros@users.noreply.github.com> Co-authored-by: Adam Lawrence <adam.ad.lawrence@gmail.com> Co-authored-by: dillchen <dillon@commonwealth.im> Co-authored-by: Jason Cox <jasongenecox@gmail.com> Co-authored-by: Daniel Trinh <danielhtrinh1@gmail.com>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Reverts #9