npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@lifi/abi-parser

v0.0.4

Published

## Requirements

Downloads

1,568

Readme

abi-parser

Requirements

Part of our daily business as developers is analysing the call data of transactions (e.g. to find out why they failed).

We would like to have a tool that accepts a call data string and tries to parse it against a set of known ABIs. Ultimately we would like to host the tool on a simple website, but initially a script or CLI is fine as long as it can be easily migrated later on.

Calls to our own Smart Contract often contain wrapped call data inside the actual call data. It would be great to be able to parse this information as well against the same set of ABIs. These calls can be:

  • Calls to Dexes on the source chain to perform a swap before calling the bridge (Dex ABIs will have to be added along the way, we don’t need them in this initial implementation)
  • Calls to our Fee Collector contract on the source chain to collect fees before calling the bridge
  • Calls to our own contract on the destination chain to perform a swap after the bridging process

Usage

Install dependencies

pnpm install

Parse call data

The tool is available as script in the package.json. The call data string to parse is passed as argument:

pnpm run parse-call-data xa4baa10c...

The tool allows passing multiple call data strings as arguments:

pnpm run parse-call-data xa4baa10c... 0x2a7a7042...

An example invocation looks like this:

pnpm run parse-call-data 0xa4baa10c0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000018062eecd3ecc0370ea9b728b53df85adb02c25091289833e5ed3ed7f23b61fd30600000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000ff970a61a04b1ca14834a43f5de4533ebddb5cc8000000000000000000000000da10009cbd5d07dd0cecc66161fc93d7c9000da100000000000000000000000009215ebd1aef08d368dd97a956ac66e756ce0e25000000000000000000000000000000000000000000000000000000000000a4b10000000000000000000000000000000000000000000000000000000003523cc0000000000000000000000000000000000000000000000000000000000000000e7472616e73666572746f2e78797a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000006352a56caadc4f1e25cd6c75970fa768a3304e640000000000000000000000006352a56caadc4f1e25cd6c75970fa768a3304e64000000000000000000000000ff970a61a04b1ca14834a43f5de4533ebddb5cc8000000000000000000000000da10009cbd5d07dd0cecc66161fc93d7c9000da10000000000000000000000000000000000000000000000000000000003523cc000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000078490411a320000000000000000000000004e6b18217ac75a779262c20b3cc07050cbe7282b000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000001c0000000000000000000000000ff970a61a04b1ca14834a43f5de4533ebddb5cc8000000000000000000000000da10009cbd5d07dd0cecc66161fc93d7c9000da10000000000000000000000004e6b18217ac75a779262c20b3cc07050cbe7282b000000000000000000000000362fa9d0bca5d19f743db50738345ce2b40ec99f0000000000000000000000000000000000000000000000000000000003523cc00000000000000000000000000000000000000000000000030176a683ca0a9fa000000000000000000000000000000000000000000000000305548354da7e74b00000000000000000000000000000000000000000000000000000000000000002000000000000000000000000933a06c631ed8b5e4f3848c91a1cfc45e5c7eab300000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000000000000000000000000000034000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000104aeba9ec1000000000000000000000000d98fca6160c5265c1da4ba709d686b85f490a21d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003523cc00000000000000000000000004e6b18217ac75a779262c20b3cc07050cbe7282b00000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000002bff970a61a04b1ca14834a43f5de4533ebddb5cc800000ada10009cbd5d07dd0cecc66161fc93d7c9000da100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000648a6a1e85000000000000000000000000da10009cbd5d07dd0cecc66161fc93d7c9000da1000000000000000000000000353c1f0bc78fbbc245b3c93ef77b1dcc5b77d2a027100000000000000000000000000000000000000000000305548354da7e74b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000001a49f865422000000000000000000000000da10009cbd5d07dd0cecc66161fc93d7c9000da100000000000000000000000000000001000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000004400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000064d1660f99000000000000000000000000da10009cbd5d07dd0cecc66161fc93d7c9000da1000000000000000000000000362fa9d0bca5d19f743db50738345ce2b40ec99f0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0x2a7a7042000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000001a0000000000000000000000000000000000000000000000000000000000000092019f87461fa42edb4b0b435d60a2d73512d88a101b6872be20d28f5267ea32a630000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009702230a8ea53601f5cd2dc00fdbc13d4df4a8c700000000000000000000000001a9b3852a5352a3897d7b20bc3783f1f68d1b5b000000000000000000000000000000000000000000000000000000000000a86a0000000000000000000000000000000000000000000000000429d069189e000000000000000000000000000000000000000000000000000000000000000000126f6276696f75732e746563686e6f6c6f677900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001a0000000000000000000000000bd6c7b0d2f68c2b7805d88388319cfb6ecb50ea9000000000000000000000000bd6c7b0d2f68c2b7805d88388319cfb6ecb50ea9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000429d069189e000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000064e0cbc5f20000000000000000000000000000000000000000000000000000e7ebd06af000000000000000000000000000000000000000000000000000000028ed6103d000000000000000000000000000d5e230cea6da2f0c62bdeed2cf85326f1063e27d00000000000000000000000000000000000000000000000000000000000000000000000000000000def171fe48cf0115b1d80b88dc8eab59176fee57000000000000000000000000216b4b4ba9f3e719726886d34a177484278bfcae0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c2132d05d31c914a87c6611c10748aeb04b58e8f0000000000000000000000000000000000000000000000000428bf8fe72f400000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000004c454e3f31b0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee000000000000000000000000c2132d05d31c914a87c6611c10748aeb04b58e8f0000000000000000000000000000000000000000000000000428bf8fe72f40000000000000000000000000000000000000000000000000000000000000055d7800000000000000000000000000000000000000000000000000000000000587f200000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000024000000000000000000000000000000000000000000000000000000000000003a00000000000000000000000000000000000000000000000000000000000000420000000000000000000000000362fa9d0bca5d19f743db50738345ce2b40ec99f0000000000000000000000008c208b7b5625d78deb49240ef28126cbe273809801000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000480000000000000000000000000000000000000000000000000000000006366597276f4ade9ada04be183751aec6ba373390000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000d500b1d8e8ef31e21c99d1db9a6444d3adf1270000000000000000000000000e592427a0aece92de3edee1f18e0157c058615640000000000000000000000000000000000000000000000000000000000000128d0e30db0c04b8d59000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000def171fe48cf0115b1d80b88dc8eab59176fee5700000000000000000000000000000000000000000000000000000000636613220000000000000000000000000000000000000000000000000428bf8fe72f40000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002b0d500b1d8e8ef31e21c99d1db9a6444d3adf1270000bb8c2132d05d31c914a87c6611c10748aeb04b58e8f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000012800000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000428bf8fe72f4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000031efc4aeaa7c39e54a33fdc3c46ee2bd70ae0a09000000000000000000000000997f29174a766a1da04cf77d135d59dd12fb54d10000000000000000000000006db8506a7454c5a83b9e68dfc89fd7413ce97a5d000000000000000000000000362fa9d0bca5d19f743db50738345ce2b40ec99f000000000000000000000000c2132d05d31c914a87c6611c10748aeb04b58e8f000000000000000000000000c7198437980c041c805a1edcba50c1ce5db9511800000000000000000000000001a9b3852a5352a3897d7b20bc3783f1f68d1b5b00000000000000000000000001a9b3852a5352a3897d7b20bc3783f1f68d1b5b000000000000000000000000362fa9d0bca5d19f743db50738345ce2b40ec99f0000000000000000000000000000000000000000000000000000000000000089000000000000000000000000000000000000000000000000000000000000a86a981a622a259fe01db196baf3a050e73df5c09cf2b8a53c9d051c722fc380c842bbb456165881bca87671b96f532c2976c84ce5a3c4433b5341c0e4301696ec100000000000000000000000000000000000000000000000000000000000055f17000000000000000000000000000000000000000000000000000000006369f99c00000000000000000000000000000000000000000000000000000000000002600000000000000000000000000000000000000000000000000000000000000bc000000000000000000000000000000000000000000000000000000000000017a000000000000000000000000000000000000000000000000000000000000018200000000000000000000000000000000000000000000000000000000000000924cf76d313000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000001c00000000000000000000000009702230a8ea53601f5cd2dc00fdbc13d4df4a8c700000000000000000000000001a9b3852a5352a3897d7b20bc3783f1f68d1b5b19f87461fa42edb4b0b435d60a2d73512d88a101b6872be20d28f5267ea32a630000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009702230a8ea53601f5cd2dc00fdbc13d4df4a8c700000000000000000000000001a9b3852a5352a3897d7b20bc3783f1f68d1b5b000000000000000000000000000000000000000000000000000000000000a86a0000000000000000000000000000000000000000000000000429d069189e000000000000000000000000000000000000000000000000000000000000000000126f6276696f75732e746563686e6f6c6f6779000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000def1c0ded9bec7f1a1670819833240f027b25eff000000000000000000000000def1c0ded9bec7f1a1670819833240f027b25eff000000000000000000000000c7198437980c041c805a1edcba50c1ce5db951180000000000000000000000009702230a8ea53601f5cd2dc00fdbc13d4df4a8c70000000000000000000000000000000000000000000000000000000000009c3a00000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000628415565b0000000000000000000000000c7198437980c041c805a1edcba50c1ce5db951180000000000000000000000009702230a8ea53601f5cd2dc00fdbc13d4df4a8c70000000000000000000000000000000000000000000000000000000000009c3a000000000000000000000000000000000000000000000000000000000000970300000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000003e0000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000034000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c7198437980c041c805a1edcba50c1ce5db951180000000000000000000000009702230a8ea53601f5cd2dc00fdbc13d4df4a8c700000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000002c00000000000000000000000000000000000000000000000000000000000009c3a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000250616e676f6c696e00000000000000000000000000000000000000000000000000000000000000000000000000009c3a0000000000000000000000000000000000000000000000000000000000009703000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000e54ca86531e17ef3616d22ca28b0d458b6c8910600000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000002000000000000000000000000c7198437980c041c805a1edcba50c1ce5db951180000000000000000000000009702230a8ea53601f5cd2dc00fdbc13d4df4a8c7000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000002000000000000000000000000c7198437980c041c805a1edcba50c1ce5db95118000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee0000000000000000000000000000000000000000000000000000000000000000869584cd0000000000000000000000001000000000000000000000000000000000000011000000000000000000000000000000000000000000000086b66df1ce63660513000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000bc00000000000000000000000000000000000000000000000000000000000000020000000000000000000000000997f29174a766a1da04cf77d135d59dd12fb54d10000000000000000000000006db8506a7454c5a83b9e68dfc89fd7413ce97a5d000000000000000000000000362fa9d0bca5d19f743db50738345ce2b40ec99f0000000000000000000000000000000000000000000000000000000000000089000000000000000000000000c2132d05d31c914a87c6611c10748aeb04b58e8f0000000000000000000000000000000000000000000000000000000000055f17000000000000000000000000000000000000000000000000000000000000a86a000000000000000000000000c7198437980c041c805a1edcba50c1ce5db95118000000000000000000000000000000000000000000000000000000000003851000000000000000000000000001a9b3852a5352a3897d7b20bc3783f1f68d1b5bbbb456165881bca87671b96f532c2976c84ce5a3c4433b5341c0e4301696ec10000000000000000000000000000000000000000000000000000000006369f993981a622a259fe01db196baf3a050e73df5c09cf2b8a53c9d051c722fc380c842000000000000000000000000362fa9d0bca5d19f743db50738345ce2b40ec99f00000000000000000000000000000000000000000000000000000000000002400000000000000000000000006090de2ec76eb1dc3b5d632734415c93c44fd11300000000000000000000000031efc4aeaa7c39e54a33fdc3c46ee2bd70ae0a0900000000000000000000000000000000000000000000000000000000636606410000000000000000000000000000000000000000000000000000000000000924cf76d313000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000001c00000000000000000000000009702230a8ea53601f5cd2dc00fdbc13d4df4a8c700000000000000000000000001a9b3852a5352a3897d7b20bc3783f1f68d1b5b19f87461fa42edb4b0b435d60a2d73512d88a101b6872be20d28f5267ea32a630000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009702230a8ea53601f5cd2dc00fdbc13d4df4a8c700000000000000000000000001a9b3852a5352a3897d7b20bc3783f1f68d1b5b000000000000000000000000000000000000000000000000000000000000a86a0000000000000000000000000000000000000000000000000429d069189e000000000000000000000000000000000000000000000000000000000000000000126f6276696f75732e746563686e6f6c6f6779000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000def1c0ded9bec7f1a1670819833240f027b25eff000000000000000000000000def1c0ded9bec7f1a1670819833240f027b25eff000000000000000000000000c7198437980c041c805a1edcba50c1ce5db951180000000000000000000000009702230a8ea53601f5cd2dc00fdbc13d4df4a8c70000000000000000000000000000000000000000000000000000000000009c3a00000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000628415565b0000000000000000000000000c7198437980c041c805a1edcba50c1ce5db951180000000000000000000000009702230a8ea53601f5cd2dc00fdbc13d4df4a8c70000000000000000000000000000000000000000000000000000000000009c3a000000000000000000000000000000000000000000000000000000000000970300000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000003e0000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000034000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c7198437980c041c805a1edcba50c1ce5db951180000000000000000000000009702230a8ea53601f5cd2dc00fdbc13d4df4a8c700000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000002c00000000000000000000000000000000000000000000000000000000000009c3a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000250616e676f6c696e00000000000000000000000000000000000000000000000000000000000000000000000000009c3a0000000000000000000000000000000000000000000000000000000000009703000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000e54ca86531e17ef3616d22ca28b0d458b6c8910600000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000002000000000000000000000000c7198437980c041c805a1edcba50c1ce5db951180000000000000000000000009702230a8ea53601f5cd2dc00fdbc13d4df4a8c7000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000002000000000000000000000000c7198437980c041c805a1edcba50c1ce5db95118000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee0000000000000000000000000000000000000000000000000000000000000000869584cd0000000000000000000000001000000000000000000000000000000000000011000000000000000000000000000000000000000000000086b66df1ce63660513000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041621a238ba573590cbe2f925a21587261687bdb3b78845883a24655a8abb7606960a4d7ef33eafa664e82fbc135b8106965cb3d3596677a5e5d91780c2907ea2d1c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

Add new ABI

ABIs are read from the abis/ directory when the tool is initialized. New ABIs are added by creating a JSON file that contains the ABI data in this directory.

Development

Lint code

The following command lints the code using eslint, formats the code according to prettier and checks the types in the code using tsc:

pnpm run lint

Execute test cases

Services are tested using jest. The tests can be executed using the following command:

pnpm run test