A JS port of "mev-inspect-py" optimised for ease of use.

Overview

MEV Inspect

A JS port of mev-inspect-py optimised for ease of use.

Motivation

While mev-inspect-py is a great resource, I think that there are a few changes can be made to make historical MEV data more accessible. Here are some defining decisions:

  • Written in Typescript: easier to run in browser/node, while keeping the code type-safe
  • Decoupled from the infra layer: message query, caching, and persistence layers can be added independenty when/if they needed
  • Decoupled from pricing: to calculate profit and cost in USD, a pricing provider of your choice can be used
  • Added single transaction inspection: while missing some types of MEV, this is helpful for quick transaction review
  • Using logs instead of call traces: any historical node would work

Usage

This package uses BigInt. If you use a bundler, you may want to set target to es2020.

This package is a pure ESM package. Follow this guide for more info.

npm i mev-inspect

Docs

TODO. For usage examlples, see examples.

You can run examples using ts-node, for example:

npx ts-node --esm examples/arbitrage.ts

How it works

It starts by fetching all event logs for a given transaction or block. Then, it "sorts" logs based on their source and type. From those logs, it extracts swap data. It then analyzes the swaps to find arbitrage.

Status

The project is at the "proof of concept" stage. Currently, only arbitrage is detected on Balancer, Uniswap, and their forks.

TODO

  • curve
  • 0x
  • distinguish forks
  • liquidations
  • sandwitches
  • nfts
Comments
  • Use transfer events to detect

    Use transfer events to detect "from" of Uniswap V2/V3 swaps

    Tx: 0xd53808dc31c908b7acad610d5efa726afe67e7c9739083be9c1b4cb6d2cdaeac.

    In the swap with the log index 10, sender set to 0x58418d6c83efab01ed78b0ac42e55af01ee77dba, while the actual erc20 token sender 0x5aa3393e361c2eb342408559309b3e873cd876d6 (as seen in transfer with the log index 7). This breaks arbitrage detection heuristics.

    Uni V3 might also be subject to this.

    opened by Destiner 4
  • Bump abi-coder from 4.0.0 to 4.1.1

    Bump abi-coder from 4.0.0 to 4.1.1

    Bumps abi-coder from 4.0.0 to 4.1.1.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies javascript 
    opened by dependabot[bot] 1
  • Bump @ethersproject/constants from 5.6.0 to 5.6.1

    Bump @ethersproject/constants from 5.6.0 to 5.6.1

    Bumps @ethersproject/constants from 5.6.0 to 5.6.1.

    Release notes

    Sourced from @​ethersproject/constants's releases.

    ethers/v5.6.1 (2022-03-16 01:25)


    Embedding UMD with SRI:

    <script type="text/javascript"
            integrity="sha384-gpTMxPzzvJTTqvtQYTKNpUG2OF+R5E8zdloHZvHIh+fw0lwlsStx33A86eG4WKve"
            crossorigin="anonymous"
            src="https://cdn-cors.ethers.io/lib/ethers-5.6.1.umd.min.js">
    </script>
    
    Changelog

    Sourced from @​ethersproject/constants's changelog.

    ethers/v5.6.1 (2022-03-16 01:25)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies javascript 
    opened by dependabot[bot] 1
  • Preliminarily compare against Flashbots data

    Preliminarily compare against Flashbots data

    First pass at testing/validation on real data.

    Run mev-inspect-js against a number of consecutive blocks, and compare the found MEV with the data in the same period from Flashbots explorer.

    opened by Destiner 1
  • Distinguish between forks

    Distinguish between forks

    Currently, it doesn't distinguish between e.g. Uniswap V2 and Sushiswap. It would need to have an "address -> fork name" mapping across supported chains. Forks outside this mapping may be mapped as "Unknown fork" or excluded completely.

    opened by Destiner 1
  • Arbitrage not detected when swap.from and swap.to are different

    Arbitrage not detected when swap.from and swap.to are different

    In most cases, both from and to addresses are the same. Sometimes though, they are different, which breaks the algorithm.

    Example txs:

    • 0x49fb0fb07827b3e6fa425fbb7ef1f1fbe3dfedbf656519bfe6d4bf9391aea1d2.
    • 0xcce82565d597057f6d0391fecb139e773cd9cac9a5f9d9ee5a21f7aa2b912bd3
    opened by Destiner 1
  • feat: add npm run examples/inspect-tx.ts & update README.md

    feat: add npm run examples/inspect-tx.ts & update README.md

    Updates:

    1. added npm run examples/inspect-tx.ts for running the example
    2. added instructions for running the example to the README.md
    3. added lib/ to .gitignore
    opened by kootsZhin 1
  • Configure Renovate

    Configure Renovate

    WhiteSource Renovate

    Welcome to Renovate! This is an onboarding PR to help you understand and configure settings before regular Pull Requests begin.

    🚦 To activate Renovate, merge this Pull Request. To disable Renovate, simply close this Pull Request unmerged.


    Detected Package Files

    • .github/workflows/ci.yaml (github-actions)
    • package.json (npm)

    Configuration Summary

    Based on the default config's presets, Renovate will:

    • Start dependency updates only once this onboarding PR is merged
    • Enable Renovate Dependency Dashboard creation
    • If semantic commits detected, use semantic commit type fix for dependencies and chore for all others
    • Ignore node_modules, bower_components, vendor and various test/tests directories
    • Autodetect whether to pin dependencies or maintain ranges
    • Rate limit PR creation to a maximum of two per hour
    • Limit to maximum 10 open PRs at any time
    • Group known monorepo packages together
    • Use curated list of recommended non-monorepo package groupings
    • Fix some problems with very old Maven commons versions
    • Ignore spring cloud 1.x releases
    • Ignore web3j 5.0.0 release
    • Ignore http4s digest-based 1.x milestones
    • Use node versioning for @types/node
    • Limit concurrent requests to reduce load on Repology servers until we can fix this properly, see issue 10133
    • Do not upgrade from Alpine stable to edge

    🔡 Would you like to change the way Renovate is upgrading your dependencies? Simply edit the renovate.json in this branch with your custom config and the list of Pull Requests in the "What to Expect" section below will be updated the next time Renovate runs.


    What to Expect

    With your current configuration, Renovate will create 3 Pull Requests:

    Pin dependencies
    Update dependency typescript to v4.7.0-dev.20220502
    • Schedule: ["at any time"]
    • Branch name: renovate/typescript-4.x
    • Merge into: main
    • Upgrade typescript to 4.7.0-dev.20220502
    Update typescript-eslint monorepo to v5.22.0

    🚸 Branch creation will be limited to maximum 2 per hour, so it doesn't swamp any CI resources or spam the project. See docs for prhourlylimit for details.


    ❓ Got questions? Check out Renovate's Docs, particularly the Getting Started section. If you need any further assistance then you can also request help here.


    This PR has been generated by WhiteSource Renovate. View repository job log here.

    opened by renovate[bot] 1
  • Bump @typescript-eslint/eslint-plugin from 5.26.0 to 5.47.1

    Bump @typescript-eslint/eslint-plugin from 5.26.0 to 5.47.1

    Bumps @typescript-eslint/eslint-plugin from 5.26.0 to 5.47.1.

    Release notes

    Sourced from @​typescript-eslint/eslint-plugin's releases.

    v5.47.1

    5.47.1 (2022-12-26)

    Bug Fixes

    • ast-spec: correct some incorrect ast types (#6257) (0f3f645)
    • eslint-plugin: [member-ordering] correctly invert optionalityOrder (#6256) (ccd45d4)

    v5.47.0

    5.47.0 (2022-12-19)

    Features

    • eslint-plugin: [no-floating-promises] add suggestion fixer to add an 'await' (#5943) (9e35ef9)

    v5.46.1

    5.46.1 (2022-12-12)

    Note: Version bump only for package @​typescript-eslint/typescript-eslint

    v5.46.0

    5.46.0 (2022-12-08)

    Bug Fixes

    • eslint-plugin: [ban-types] update message to suggest object instead of Record<string, unknown> (#6079) (d91a5fc)

    Features

    • eslint-plugin: [prefer-nullish-coalescing] logic and test for strict null checks (#6174) (8a91cbd)

    v5.45.1

    5.45.1 (2022-12-05)

    Bug Fixes

    • eslint-plugin: [keyword-spacing] unexpected space before/after in import type (#6095) (98caa92)
    • eslint-plugin: [no-shadow] add call and method signatures to ignoreFunctionTypeParameterNameValueShadow (#6129) (9d58b6b)
    • eslint-plugin: [prefer-optional-chain] collect MetaProperty type (#6083) (d7114d3)
    • eslint-plugin: [sort-type-constituents, sort-type-union-intersection-members] handle some required parentheses cases in the fixer (#6118) (5d49d5d)
    • parser: remove the jsx option requirement for automatic jsx pragma resolution (#6134) (e777f5e)

    v5.45.0

    5.45.0 (2022-11-28)

    ... (truncated)

    Changelog

    Sourced from @​typescript-eslint/eslint-plugin's changelog.

    5.47.1 (2022-12-26)

    Bug Fixes

    • ast-spec: correct some incorrect ast types (#6257) (0f3f645)
    • eslint-plugin: [member-ordering] correctly invert optionalityOrder (#6256) (ccd45d4)

    5.47.0 (2022-12-19)

    Features

    • eslint-plugin: [no-floating-promises] add suggestion fixer to add an 'await' (#5943) (9e35ef9)

    5.46.1 (2022-12-12)

    Note: Version bump only for package @​typescript-eslint/eslint-plugin

    5.46.0 (2022-12-08)

    Bug Fixes

    • eslint-plugin: [ban-types] update message to suggest object instead of Record<string, unknown> (#6079) (d91a5fc)

    Features

    • eslint-plugin: [prefer-nullish-coalescing] logic and test for strict null checks (#6174) (8a91cbd)

    5.45.1 (2022-12-05)

    Bug Fixes

    • eslint-plugin: [keyword-spacing] unexpected space before/after in import type (#6095) (98caa92)
    • eslint-plugin: [no-shadow] add call and method signatures to ignoreFunctionTypeParameterNameValueShadow (#6129) (9d58b6b)
    • eslint-plugin: [prefer-optional-chain] collect MetaProperty type (#6083) (d7114d3)
    • eslint-plugin: [sort-type-constituents, sort-type-union-intersection-members] handle some required parentheses cases in the fixer (#6118) (5d49d5d)

    5.45.0 (2022-11-28)

    Bug Fixes

    • eslint-plugin: [array-type] --fix flag removes parentheses from type (#5997) (42b33af)
    • eslint-plugin: [keyword-spacing] prevent crash on no options (#6073) (1f19998)
    • eslint-plugin: [member-ordering] support private fields (#5859) (f02761a)
    • eslint-plugin: [prefer-readonly] report if a member's property is reassigned (#6043) (6e079eb)

    Features

    • eslint-plugin: [member-ordering] add a required option for required vs. optional member ordering (#5965) (2abadc6)

    5.44.0 (2022-11-21)

    ... (truncated)

    Commits
    • 6ffce79 chore: publish v5.47.1
    • 0f3f645 fix(ast-spec): correct some incorrect ast types (#6257)
    • ccd45d4 fix(eslint-plugin): [member-ordering] correctly invert optionalityOrder (#6256)
    • a2c08ba chore: publish v5.47.0
    • 9e35ef9 feat(eslint-plugin): [no-floating-promises] add suggestion fixer to add an 'a...
    • 6b3ed1d docs: fixed typo "foo.property" (#6180)
    • c943b84 chore: publish v5.46.1
    • 47241bb docs: overhaul branding and add new logo (#6147)
    • 1e1573a chore: publish v5.46.0
    • d91a5fc fix(eslint-plugin): [ban-types] update message to suggest object instead of...
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies javascript 
    opened by dependabot[bot] 0
  • Bump ethcall from 4.8.11 to 4.8.13

    Bump ethcall from 4.8.11 to 4.8.13

    Bumps ethcall from 4.8.11 to 4.8.13.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies javascript 
    opened by dependabot[bot] 0
  • Bump @ethersproject/providers from 5.7.1 to 5.7.2

    Bump @ethersproject/providers from 5.7.1 to 5.7.2

    Bumps @ethersproject/providers from 5.7.1 to 5.7.2.

    Release notes

    Sourced from @​ethersproject/providers's releases.

    ethers/v5.7.2 (2022-10-19 04:19)


    Embedding UMD with SRI:

    <script type="text/javascript"
            integrity="sha384-Htz1SE4Sl5aitpvFgr2j0sfsGUIuSXI6t8hEyrlQ93zflEF3a29bH2AvkUROUw7J"
            crossorigin="anonymous"
            src="https://cdn-cors.ethers.io/lib/ethers-5.7.2.umd.min.js">
    </script>
    
    Changelog

    Sourced from @​ethersproject/providers's changelog.

    ethers/v5.7.2 (2022-10-19 04:19)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies javascript 
    opened by dependabot[bot] 0
  • Test against transactions with large amount of actions

    Test against transactions with large amount of actions

    Now that I'm relatively confident that the package works well for a simple swaps and arbs, it would be cool to test it against transactions with large number of swaps and token transfers coming from several protocols.

    opened by Destiner 0
  • Compare against known MEV searcher transactions

    Compare against known MEV searcher transactions

    While #11 is helpful, its information is limited: as I realised, Flashbots misses quite a handful of easy-to-detect MEV. Another strategy might be first to identify a few active MEV bots, and then analyse their transactions. Since we know they are bots, any transaction involving them in which we can't find MEV would be suspicious, and might hint at missing some arbitrage.

    opened by Destiner 1
  • Fetch logs more efficiently across blocks

    Fetch logs more efficiently across blocks

    Since we rely on event logs instead of call traces, and we know what logs to look for in advance, it would likely be more efficient to fetch them via eth_getFilterLogs. This is especially useful when looking for MEV across hundreds of blocks.

    opened by Destiner 0
Releases(v3.0.0)
  • v3.0.0(Aug 25, 2022)

    Features

    • Store transaction sender in events

    API Refactoring

    • Breaking: use Erc20Asset interface for swaps, arbitrages, liquidations, sandwiches, JIT sandwiches, and liquidity deposits/withdrawals. To keep the old behavior, use address field (e.g. arbitrage.swap[0].assetIn -> arbitrage.swap[0].assetIn.address, liquidation.collateral -> liquidation.collateral.address, etc).
    • Breaking: split searcher into sender (transaction sender, EOA) and beneficiary (usually, a transaction target, smart contract). This affects Arbitrage.arbitrager, Liquidation.liquidator, Sandwich.sandwicher, JitSandwich.sandwicher, and NftArbitrage.arbitrager. To keep the old behavior, use beneficiary (e.g. arbitrage.arbitrager -> arbitrage.arbitrager.beneficiary).
    Source code(tar.gz)
    Source code(zip)
  • v2.1.4(Aug 17, 2022)

    Features

    • Detect NFT arbitrages
    • Classify Opensea swaps
    • Classify LooksRare swaps
    • Classify X2Y2 swaps
    • Classify Sudoswap swaps

    Fixes

    • Fix some trades are wrongly detected as JIT sandwich
    Source code(tar.gz)
    Source code(zip)
  • v2.0.0(Aug 11, 2022)

    Features

    • Support imbalanced liquidity deposits and withdrawals

    API Refactoring

    • Breaking: Rename Sandwich param: sandwichedSwaps -> sandwiched
    • Breaking: Rename JitLiquiditySandwich -> JitSandwich
    • Breaking: Rename getJitLiquiditySandwiches -> getJitSandwiches
    • Breaking: Rename JitSandwich param: sandwichedSwaps -> sandwiched
    • Breaking: Rename JitSandwich param: addition -> deposit
    • Breaking: Rename JitSandwich param: removal -> withdrawal
    • Breaking: Rename LiquidityAddition -> LiquidityDeposit
    • Breaking: Rename LiquidityDeposit param: owner -> depositor
    • Breaking: Rename LiquidityRemoval -> LiquidityWithdrawal
    • Breaking: Rename LiquidityWithdrawal param: owner -> withdrawer
    Source code(tar.gz)
    Source code(zip)
  • v1.1.1(Jul 26, 2022)

  • v1.0.0(Jul 13, 2022)

    Features

    • Breaking: Wrap profitAsset/profitAmount into profit
    • Add Optimism and Avalanche Curve pools

    Misc

    • Add "API" section to readme
    • Update "usage" section on readme
    • Clean-up examples directory
    • Bump dependencies
    Source code(tar.gz)
    Source code(zip)
  • v0.13.1(Jul 12, 2022)

  • v0.12.0(Jun 23, 2022)

    Features

    • Add 0x V3/V4
    • Add Curve V1/V2
    • Add Bancor V2/V3
    • Add Aave V1
    • Add Optimism chain
    • Add Avalanche chain
    • Breaking: remove isArbitrage/isLiquidation/isSandwich. Use getArbitrages/getLiquidations/getSandwiches instead.
    Source code(tar.gz)
    Source code(zip)
  • v0.11.0(Jun 16, 2022)

    Features

    • Breaking: Merge TxMev and BlockMev interfaces into Mev. While correct semantically, the split creates confusion and worsens DX in practice.
    Source code(tar.gz)
    Source code(zip)
  • v0.10.0(Jun 8, 2022)

  • v0.9.0(May 28, 2022)

    Changes

    • Breaking: add fork labels to protocol factories / lending pools
    • Fix contract address in liquidation events are checksumcased
    • Add fork support for Balancer V2
    Source code(tar.gz)
    Source code(zip)
  • v0.8.1(May 28, 2022)

  • v0.7.0(May 22, 2022)

  • v0.6.0(May 20, 2022)

  • v0.5.0(May 18, 2022)

  • v0.4.2(May 13, 2022)

  • v0.3.1(May 11, 2022)

  • v0.2.0(May 10, 2022)

  • v0.1.3(May 9, 2022)

Owner
Timur Badretdinov
Timur Badretdinov
Wrapper for NextJS image handling, optimised for Lambda w/ ApiGw integration.

NextJS Lambda Utils This is a project allowing to deploy Next applications (standalone options turned on) to AWS Lambda without hassle. This is an alt

Jan 65 Dec 28, 2022
Grupprojekt för kurserna 'Javascript med Ramverk' och 'Agil Utveckling'

JavaScript-med-Ramverk-Laboration-3 Grupprojektet för kurserna Javascript med Ramverk och Agil Utveckling. Utvecklingsguide För information om hur utv

Svante Jonsson IT-Högskolan 3 May 18, 2022
Hemsida för personer i Sverige som kan och vill erbjuda boende till människor på flykt

Getting Started with Create React App This project was bootstrapped with Create React App. Available Scripts In the project directory, you can run: np

null 4 May 3, 2022
Kurs-repo för kursen Webbserver och Databaser

Webbserver och databaser This repository is meant for CME students to access exercises and codealongs that happen throughout the course. I hope you wi

null 14 Jan 3, 2023
VSCode Serial Port Extension. You can connect any serial port used to read / write data.

Serial Port Helper You can connect any serial port used to read / write data. Features Serial Port View; Serial Port Config; TX / RX; Send Hex Buffer:

Hancel Lin 30 Sep 18, 2022
solid material ui port (ported from blazor port)

solid-material-ui solid material ui port (porting from blazor port) In preparation for solid hack Turbo Mono-repository is used for component package

skclusive 18 Apr 30, 2022
A fully-featured Node.js REST client built for ease-of-use and resilience

flashheart A fully-featured Node.js REST client built for ease-of-use and resilience flashheart is built on http-transport to provide everything you n

BBC 118 Jun 21, 2022
pokedev.js is a tool make to help developers get info about a pokemon and use it in any project with ease.

pokedev.js pokedev.js is a tool make to help developers get info about a pokemon and use it in any project with ease. Quick Links pokedev.js Quick Lin

pokedev.js 4 Apr 4, 2022
📡 Encrypt and authenticate DevTools to use it securely remotely. Add HTTPS, and authentication to --remote-debugging-port to debug, inspect and automate from anywhere and collaborate securely on bugs.

?? Encrypt and authenticate DevTools to use it securely remotely. Add HTTPS, and authentication to --remote-debugging-port to debug, inspect and automate from anywhere and collaborate securely on bugs.

Cris 9 May 5, 2022
📡 Encrypt and authenticate DevTools to use it securely remotely. Add HTTPS, and authentication to --remote-debugging-port to debug, inspect and automate from anywhere and collaborate securely on bugs.

?? Encrypt and authenticate DevTools to use it securely remotely. Add HTTPS, and authentication to --remote-debugging-port to debug, inspect and automate from anywhere and collaborate securely on bugs.

Cris 9 May 5, 2022
Buka is a modern software that helps you manage your ebook at ease.

Buka - EBook Management About Buka Buka is a modern software that helps you manage your ebook at ease. With a simple, clean and straight-forward user

Oguzhan Inan 1k Jan 7, 2023
A tool to check for response status codes with ease

About Archer Archer is an cross-platform tool developed using Nodejs which focuses on the reconnaissance phase of a penetration test. Got a bunch of l

Umair 14 Oct 19, 2022
Quick access menu for the GNOME panel with options that help ease the workflow for newcomers and power users alike.

Tofu Menu (formerly Fedora Menu) Quick access menu for the GNOME panel with options that help ease the workflow for newcomers and power users alike. S

null 19 Sep 26, 2022
⚖️ Limit an async function's concurrency with ease!

limit-concur Limit an async function's concurrency with ease! Install $ npm i limit-concur Usage import got from 'got' import limitConcur from 'limit-

Tomer Aberbach 19 Apr 8, 2022
🎉 toastify-react-native allows you to add notifications to your react-native app (ios, android) with ease. No more nonsense!

toastify-react-native ?? toastify-react-native allows you to add notifications to your react-native app (ios, android) with ease. No more nonsense! De

Zahid Ali 29 Oct 11, 2022
A student-made, student-tailored Firefox add-on for Veracross. Provides ease of navigation in Veracross, among with other quality of life features. More features in progress.

Check out the Chrome version! This release is version 1.0.0, so the only feature it has is clickable links to the dropbox from the classpage. Any comm

Webb School CS Club 3 Nov 25, 2022
This Program was designed to Autocatch Pokétwo spawns but It is loaded with versatile and huge functions/Utilities With ease to handle.

Pokétwo ∆ Automation The most legit & advanced Poketwo autocatcher and one click setup with ease of handling with: auto catch pokemons, Market sniper,

Banerus 1.6k Dec 28, 2022
A realtime code-editor and compiler to ease coding interview process

A realtime code-editor and compiler to ease coding interview process. Users can create their rooms and can invite others to their rooms. So, millions can work on a same code at the same time together !

Archan Banerjee 1 Jan 2, 2023
To Do List Application Organize your tasks with simple add and delete functionality. Organize your items with ease.

TODO-LIST To Do List Application Organize your tasks with simple add and delete functionality. Organize your items with ease. Additional description a

Steve 12 Jul 22, 2022
Check EU Digitial Covid Certificates with ease and validate them against country and local rules.

Check EU Digitial Covid Certificates with ease and validate them against local or country rules. What is the purpose of CovidValidator? CovidValidator

Timo Koenig 10 Mar 14, 2022