diff --git a/.husky/pre-commit b/.husky/pre-commit
index 1525982..6cdaab7 100755
--- a/.husky/pre-commit
+++ b/.husky/pre-commit
@@ -1,2 +1,4 @@
#!/usr/bin/env sh
. "$(dirname -- "$0")/_/husky.sh"
+
+yarn lint
diff --git a/package.json b/package.json
index f1280a9..bf5d4f5 100644
--- a/package.json
+++ b/package.json
@@ -1,5 +1,5 @@
{
- "name": "sushiswap-watcher-ts",
+ "name": "azimuth-watcher-ts",
"private": true,
"license": "AGPL-3.0",
"workspaces": {
@@ -13,7 +13,9 @@
},
"scripts": {
"build": "lerna run build --stream",
- "prepare": "husky install"
+ "lint": "lerna run lint --stream -- --max-warnings=0",
+ "prepare": "husky install",
+ "version:set": "lerna version --no-git-tag-version"
},
"devDependencies": {
"husky": "^7.0.2",
diff --git a/packages/v3-watcher/.eslintignore b/packages/v3-watcher/.eslintignore
new file mode 100644
index 0000000..55cb522
--- /dev/null
+++ b/packages/v3-watcher/.eslintignore
@@ -0,0 +1,2 @@
+# Don't lint build output.
+dist
diff --git a/packages/v3-watcher/.eslintrc.json b/packages/v3-watcher/.eslintrc.json
new file mode 100644
index 0000000..a2b842c
--- /dev/null
+++ b/packages/v3-watcher/.eslintrc.json
@@ -0,0 +1,28 @@
+{
+ "env": {
+ "browser": true,
+ "es2021": true
+ },
+ "extends": [
+ "semistandard",
+ "plugin:@typescript-eslint/recommended"
+ ],
+ "parser": "@typescript-eslint/parser",
+ "parserOptions": {
+ "ecmaVersion": 12,
+ "sourceType": "module"
+ },
+ "plugins": [
+ "@typescript-eslint"
+ ],
+ "rules": {
+ "indent": ["error", 2, { "SwitchCase": 1 }],
+ "@typescript-eslint/no-explicit-any": "off",
+ "@typescript-eslint/explicit-module-boundary-types": [
+ "warn",
+ {
+ "allowArgumentsExplicitlyTypedAsAny": true
+ }
+ ]
+ }
+}
diff --git a/packages/v3-watcher/.gitignore b/packages/v3-watcher/.gitignore
new file mode 100644
index 0000000..0b4cc3f
--- /dev/null
+++ b/packages/v3-watcher/.gitignore
@@ -0,0 +1,6 @@
+node_modules/
+dist/
+out/
+
+.vscode
+.idea
diff --git a/packages/v3-watcher/.husky/pre-commit b/packages/v3-watcher/.husky/pre-commit
new file mode 100644
index 0000000..9dcd433
--- /dev/null
+++ b/packages/v3-watcher/.husky/pre-commit
@@ -0,0 +1,4 @@
+#!/bin/sh
+. "$(dirname "$0")/_/husky.sh"
+
+yarn lint
diff --git a/packages/v3-watcher/.npmrc b/packages/v3-watcher/.npmrc
new file mode 100644
index 0000000..6b64c5b
--- /dev/null
+++ b/packages/v3-watcher/.npmrc
@@ -0,0 +1 @@
+@cerc-io:registry=https://git.vdb.to/api/packages/cerc-io/npm/
diff --git a/packages/v3-watcher/LICENSE b/packages/v3-watcher/LICENSE
new file mode 100644
index 0000000..331f7cf
--- /dev/null
+++ b/packages/v3-watcher/LICENSE
@@ -0,0 +1,661 @@
+ GNU AFFERO GENERAL PUBLIC LICENSE
+ Version 3, 19 November 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc.
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The GNU Affero General Public License is a free, copyleft license for
+ software and other kinds of works, specifically designed to ensure
+ cooperation with the community in the case of network server software.
+
+ The licenses for most software and other practical works are designed
+ to take away your freedom to share and change the works. By contrast,
+ our General Public Licenses are intended to guarantee your freedom to
+ share and change all versions of a program--to make sure it remains free
+ software for all its users.
+
+ When we speak of free software, we are referring to freedom, not
+ price. Our General Public Licenses are designed to make sure that you
+ have the freedom to distribute copies of free software (and charge for
+ them if you wish), that you receive source code or can get it if you
+ want it, that you can change the software or use pieces of it in new
+ free programs, and that you know you can do these things.
+
+ Developers that use our General Public Licenses protect your rights
+ with two steps: (1) assert copyright on the software, and (2) offer
+ you this License which gives you legal permission to copy, distribute
+ and/or modify the software.
+
+ A secondary benefit of defending all users' freedom is that
+ improvements made in alternate versions of the program, if they
+ receive widespread use, become available for other developers to
+ incorporate. Many developers of free software are heartened and
+ encouraged by the resulting cooperation. However, in the case of
+ software used on network servers, this result may fail to come about.
+ The GNU General Public License permits making a modified version and
+ letting the public access it on a server without ever releasing its
+ source code to the public.
+
+ The GNU Affero General Public License is designed specifically to
+ ensure that, in such cases, the modified source code becomes available
+ to the community. It requires the operator of a network server to
+ provide the source code of the modified version running there to the
+ users of that server. Therefore, public use of a modified version, on
+ a publicly accessible server, gives the public access to the source
+ code of the modified version.
+
+ An older license, called the Affero General Public License and
+ published by Affero, was designed to accomplish similar goals. This is
+ a different license, not a version of the Affero GPL, but Affero has
+ released a new version of the Affero GPL which permits relicensing under
+ this license.
+
+ The precise terms and conditions for copying, distribution and
+ modification follow.
+
+ TERMS AND CONDITIONS
+
+ 0. Definitions.
+
+ "This License" refers to version 3 of the GNU Affero General Public License.
+
+ "Copyright" also means copyright-like laws that apply to other kinds of
+ works, such as semiconductor masks.
+
+ "The Program" refers to any copyrightable work licensed under this
+ License. Each licensee is addressed as "you". "Licensees" and
+ "recipients" may be individuals or organizations.
+
+ To "modify" a work means to copy from or adapt all or part of the work
+ in a fashion requiring copyright permission, other than the making of an
+ exact copy. The resulting work is called a "modified version" of the
+ earlier work or a work "based on" the earlier work.
+
+ A "covered work" means either the unmodified Program or a work based
+ on the Program.
+
+ To "propagate" a work means to do anything with it that, without
+ permission, would make you directly or secondarily liable for
+ infringement under applicable copyright law, except executing it on a
+ computer or modifying a private copy. Propagation includes copying,
+ distribution (with or without modification), making available to the
+ public, and in some countries other activities as well.
+
+ To "convey" a work means any kind of propagation that enables other
+ parties to make or receive copies. Mere interaction with a user through
+ a computer network, with no transfer of a copy, is not conveying.
+
+ An interactive user interface displays "Appropriate Legal Notices"
+ to the extent that it includes a convenient and prominently visible
+ feature that (1) displays an appropriate copyright notice, and (2)
+ tells the user that there is no warranty for the work (except to the
+ extent that warranties are provided), that licensees may convey the
+ work under this License, and how to view a copy of this License. If
+ the interface presents a list of user commands or options, such as a
+ menu, a prominent item in the list meets this criterion.
+
+ 1. Source Code.
+
+ The "source code" for a work means the preferred form of the work
+ for making modifications to it. "Object code" means any non-source
+ form of a work.
+
+ A "Standard Interface" means an interface that either is an official
+ standard defined by a recognized standards body, or, in the case of
+ interfaces specified for a particular programming language, one that
+ is widely used among developers working in that language.
+
+ The "System Libraries" of an executable work include anything, other
+ than the work as a whole, that (a) is included in the normal form of
+ packaging a Major Component, but which is not part of that Major
+ Component, and (b) serves only to enable use of the work with that
+ Major Component, or to implement a Standard Interface for which an
+ implementation is available to the public in source code form. A
+ "Major Component", in this context, means a major essential component
+ (kernel, window system, and so on) of the specific operating system
+ (if any) on which the executable work runs, or a compiler used to
+ produce the work, or an object code interpreter used to run it.
+
+ The "Corresponding Source" for a work in object code form means all
+ the source code needed to generate, install, and (for an executable
+ work) run the object code and to modify the work, including scripts to
+ control those activities. However, it does not include the work's
+ System Libraries, or general-purpose tools or generally available free
+ programs which are used unmodified in performing those activities but
+ which are not part of the work. For example, Corresponding Source
+ includes interface definition files associated with source files for
+ the work, and the source code for shared libraries and dynamically
+ linked subprograms that the work is specifically designed to require,
+ such as by intimate data communication or control flow between those
+ subprograms and other parts of the work.
+
+ The Corresponding Source need not include anything that users
+ can regenerate automatically from other parts of the Corresponding
+ Source.
+
+ The Corresponding Source for a work in source code form is that
+ same work.
+
+ 2. Basic Permissions.
+
+ All rights granted under this License are granted for the term of
+ copyright on the Program, and are irrevocable provided the stated
+ conditions are met. This License explicitly affirms your unlimited
+ permission to run the unmodified Program. The output from running a
+ covered work is covered by this License only if the output, given its
+ content, constitutes a covered work. This License acknowledges your
+ rights of fair use or other equivalent, as provided by copyright law.
+
+ You may make, run and propagate covered works that you do not
+ convey, without conditions so long as your license otherwise remains
+ in force. You may convey covered works to others for the sole purpose
+ of having them make modifications exclusively for you, or provide you
+ with facilities for running those works, provided that you comply with
+ the terms of this License in conveying all material for which you do
+ not control copyright. Those thus making or running the covered works
+ for you must do so exclusively on your behalf, under your direction
+ and control, on terms that prohibit them from making any copies of
+ your copyrighted material outside their relationship with you.
+
+ Conveying under any other circumstances is permitted solely under
+ the conditions stated below. Sublicensing is not allowed; section 10
+ makes it unnecessary.
+
+ 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+ No covered work shall be deemed part of an effective technological
+ measure under any applicable law fulfilling obligations under article
+ 11 of the WIPO copyright treaty adopted on 20 December 1996, or
+ similar laws prohibiting or restricting circumvention of such
+ measures.
+
+ When you convey a covered work, you waive any legal power to forbid
+ circumvention of technological measures to the extent such circumvention
+ is effected by exercising rights under this License with respect to
+ the covered work, and you disclaim any intention to limit operation or
+ modification of the work as a means of enforcing, against the work's
+ users, your or third parties' legal rights to forbid circumvention of
+ technological measures.
+
+ 4. Conveying Verbatim Copies.
+
+ You may convey verbatim copies of the Program's source code as you
+ receive it, in any medium, provided that you conspicuously and
+ appropriately publish on each copy an appropriate copyright notice;
+ keep intact all notices stating that this License and any
+ non-permissive terms added in accord with section 7 apply to the code;
+ keep intact all notices of the absence of any warranty; and give all
+ recipients a copy of this License along with the Program.
+
+ You may charge any price or no price for each copy that you convey,
+ and you may offer support or warranty protection for a fee.
+
+ 5. Conveying Modified Source Versions.
+
+ You may convey a work based on the Program, or the modifications to
+ produce it from the Program, in the form of source code under the
+ terms of section 4, provided that you also meet all of these conditions:
+
+ a) The work must carry prominent notices stating that you modified
+ it, and giving a relevant date.
+
+ b) The work must carry prominent notices stating that it is
+ released under this License and any conditions added under section
+ 7. This requirement modifies the requirement in section 4 to
+ "keep intact all notices".
+
+ c) You must license the entire work, as a whole, under this
+ License to anyone who comes into possession of a copy. This
+ License will therefore apply, along with any applicable section 7
+ additional terms, to the whole of the work, and all its parts,
+ regardless of how they are packaged. This License gives no
+ permission to license the work in any other way, but it does not
+ invalidate such permission if you have separately received it.
+
+ d) If the work has interactive user interfaces, each must display
+ Appropriate Legal Notices; however, if the Program has interactive
+ interfaces that do not display Appropriate Legal Notices, your
+ work need not make them do so.
+
+ A compilation of a covered work with other separate and independent
+ works, which are not by their nature extensions of the covered work,
+ and which are not combined with it such as to form a larger program,
+ in or on a volume of a storage or distribution medium, is called an
+ "aggregate" if the compilation and its resulting copyright are not
+ used to limit the access or legal rights of the compilation's users
+ beyond what the individual works permit. Inclusion of a covered work
+ in an aggregate does not cause this License to apply to the other
+ parts of the aggregate.
+
+ 6. Conveying Non-Source Forms.
+
+ You may convey a covered work in object code form under the terms
+ of sections 4 and 5, provided that you also convey the
+ machine-readable Corresponding Source under the terms of this License,
+ in one of these ways:
+
+ a) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by the
+ Corresponding Source fixed on a durable physical medium
+ customarily used for software interchange.
+
+ b) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by a
+ written offer, valid for at least three years and valid for as
+ long as you offer spare parts or customer support for that product
+ model, to give anyone who possesses the object code either (1) a
+ copy of the Corresponding Source for all the software in the
+ product that is covered by this License, on a durable physical
+ medium customarily used for software interchange, for a price no
+ more than your reasonable cost of physically performing this
+ conveying of source, or (2) access to copy the
+ Corresponding Source from a network server at no charge.
+
+ c) Convey individual copies of the object code with a copy of the
+ written offer to provide the Corresponding Source. This
+ alternative is allowed only occasionally and noncommercially, and
+ only if you received the object code with such an offer, in accord
+ with subsection 6b.
+
+ d) Convey the object code by offering access from a designated
+ place (gratis or for a charge), and offer equivalent access to the
+ Corresponding Source in the same way through the same place at no
+ further charge. You need not require recipients to copy the
+ Corresponding Source along with the object code. If the place to
+ copy the object code is a network server, the Corresponding Source
+ may be on a different server (operated by you or a third party)
+ that supports equivalent copying facilities, provided you maintain
+ clear directions next to the object code saying where to find the
+ Corresponding Source. Regardless of what server hosts the
+ Corresponding Source, you remain obligated to ensure that it is
+ available for as long as needed to satisfy these requirements.
+
+ e) Convey the object code using peer-to-peer transmission, provided
+ you inform other peers where the object code and Corresponding
+ Source of the work are being offered to the general public at no
+ charge under subsection 6d.
+
+ A separable portion of the object code, whose source code is excluded
+ from the Corresponding Source as a System Library, need not be
+ included in conveying the object code work.
+
+ A "User Product" is either (1) a "consumer product", which means any
+ tangible personal property which is normally used for personal, family,
+ or household purposes, or (2) anything designed or sold for incorporation
+ into a dwelling. In determining whether a product is a consumer product,
+ doubtful cases shall be resolved in favor of coverage. For a particular
+ product received by a particular user, "normally used" refers to a
+ typical or common use of that class of product, regardless of the status
+ of the particular user or of the way in which the particular user
+ actually uses, or expects or is expected to use, the product. A product
+ is a consumer product regardless of whether the product has substantial
+ commercial, industrial or non-consumer uses, unless such uses represent
+ the only significant mode of use of the product.
+
+ "Installation Information" for a User Product means any methods,
+ procedures, authorization keys, or other information required to install
+ and execute modified versions of a covered work in that User Product from
+ a modified version of its Corresponding Source. The information must
+ suffice to ensure that the continued functioning of the modified object
+ code is in no case prevented or interfered with solely because
+ modification has been made.
+
+ If you convey an object code work under this section in, or with, or
+ specifically for use in, a User Product, and the conveying occurs as
+ part of a transaction in which the right of possession and use of the
+ User Product is transferred to the recipient in perpetuity or for a
+ fixed term (regardless of how the transaction is characterized), the
+ Corresponding Source conveyed under this section must be accompanied
+ by the Installation Information. But this requirement does not apply
+ if neither you nor any third party retains the ability to install
+ modified object code on the User Product (for example, the work has
+ been installed in ROM).
+
+ The requirement to provide Installation Information does not include a
+ requirement to continue to provide support service, warranty, or updates
+ for a work that has been modified or installed by the recipient, or for
+ the User Product in which it has been modified or installed. Access to a
+ network may be denied when the modification itself materially and
+ adversely affects the operation of the network or violates the rules and
+ protocols for communication across the network.
+
+ Corresponding Source conveyed, and Installation Information provided,
+ in accord with this section must be in a format that is publicly
+ documented (and with an implementation available to the public in
+ source code form), and must require no special password or key for
+ unpacking, reading or copying.
+
+ 7. Additional Terms.
+
+ "Additional permissions" are terms that supplement the terms of this
+ License by making exceptions from one or more of its conditions.
+ Additional permissions that are applicable to the entire Program shall
+ be treated as though they were included in this License, to the extent
+ that they are valid under applicable law. If additional permissions
+ apply only to part of the Program, that part may be used separately
+ under those permissions, but the entire Program remains governed by
+ this License without regard to the additional permissions.
+
+ When you convey a copy of a covered work, you may at your option
+ remove any additional permissions from that copy, or from any part of
+ it. (Additional permissions may be written to require their own
+ removal in certain cases when you modify the work.) You may place
+ additional permissions on material, added by you to a covered work,
+ for which you have or can give appropriate copyright permission.
+
+ Notwithstanding any other provision of this License, for material you
+ add to a covered work, you may (if authorized by the copyright holders of
+ that material) supplement the terms of this License with terms:
+
+ a) Disclaiming warranty or limiting liability differently from the
+ terms of sections 15 and 16 of this License; or
+
+ b) Requiring preservation of specified reasonable legal notices or
+ author attributions in that material or in the Appropriate Legal
+ Notices displayed by works containing it; or
+
+ c) Prohibiting misrepresentation of the origin of that material, or
+ requiring that modified versions of such material be marked in
+ reasonable ways as different from the original version; or
+
+ d) Limiting the use for publicity purposes of names of licensors or
+ authors of the material; or
+
+ e) Declining to grant rights under trademark law for use of some
+ trade names, trademarks, or service marks; or
+
+ f) Requiring indemnification of licensors and authors of that
+ material by anyone who conveys the material (or modified versions of
+ it) with contractual assumptions of liability to the recipient, for
+ any liability that these contractual assumptions directly impose on
+ those licensors and authors.
+
+ All other non-permissive additional terms are considered "further
+ restrictions" within the meaning of section 10. If the Program as you
+ received it, or any part of it, contains a notice stating that it is
+ governed by this License along with a term that is a further
+ restriction, you may remove that term. If a license document contains
+ a further restriction but permits relicensing or conveying under this
+ License, you may add to a covered work material governed by the terms
+ of that license document, provided that the further restriction does
+ not survive such relicensing or conveying.
+
+ If you add terms to a covered work in accord with this section, you
+ must place, in the relevant source files, a statement of the
+ additional terms that apply to those files, or a notice indicating
+ where to find the applicable terms.
+
+ Additional terms, permissive or non-permissive, may be stated in the
+ form of a separately written license, or stated as exceptions;
+ the above requirements apply either way.
+
+ 8. Termination.
+
+ You may not propagate or modify a covered work except as expressly
+ provided under this License. Any attempt otherwise to propagate or
+ modify it is void, and will automatically terminate your rights under
+ this License (including any patent licenses granted under the third
+ paragraph of section 11).
+
+ However, if you cease all violation of this License, then your
+ license from a particular copyright holder is reinstated (a)
+ provisionally, unless and until the copyright holder explicitly and
+ finally terminates your license, and (b) permanently, if the copyright
+ holder fails to notify you of the violation by some reasonable means
+ prior to 60 days after the cessation.
+
+ Moreover, your license from a particular copyright holder is
+ reinstated permanently if the copyright holder notifies you of the
+ violation by some reasonable means, this is the first time you have
+ received notice of violation of this License (for any work) from that
+ copyright holder, and you cure the violation prior to 30 days after
+ your receipt of the notice.
+
+ Termination of your rights under this section does not terminate the
+ licenses of parties who have received copies or rights from you under
+ this License. If your rights have been terminated and not permanently
+ reinstated, you do not qualify to receive new licenses for the same
+ material under section 10.
+
+ 9. Acceptance Not Required for Having Copies.
+
+ You are not required to accept this License in order to receive or
+ run a copy of the Program. Ancillary propagation of a covered work
+ occurring solely as a consequence of using peer-to-peer transmission
+ to receive a copy likewise does not require acceptance. However,
+ nothing other than this License grants you permission to propagate or
+ modify any covered work. These actions infringe copyright if you do
+ not accept this License. Therefore, by modifying or propagating a
+ covered work, you indicate your acceptance of this License to do so.
+
+ 10. Automatic Licensing of Downstream Recipients.
+
+ Each time you convey a covered work, the recipient automatically
+ receives a license from the original licensors, to run, modify and
+ propagate that work, subject to this License. You are not responsible
+ for enforcing compliance by third parties with this License.
+
+ An "entity transaction" is a transaction transferring control of an
+ organization, or substantially all assets of one, or subdividing an
+ organization, or merging organizations. If propagation of a covered
+ work results from an entity transaction, each party to that
+ transaction who receives a copy of the work also receives whatever
+ licenses to the work the party's predecessor in interest had or could
+ give under the previous paragraph, plus a right to possession of the
+ Corresponding Source of the work from the predecessor in interest, if
+ the predecessor has it or can get it with reasonable efforts.
+
+ You may not impose any further restrictions on the exercise of the
+ rights granted or affirmed under this License. For example, you may
+ not impose a license fee, royalty, or other charge for exercise of
+ rights granted under this License, and you may not initiate litigation
+ (including a cross-claim or counterclaim in a lawsuit) alleging that
+ any patent claim is infringed by making, using, selling, offering for
+ sale, or importing the Program or any portion of it.
+
+ 11. Patents.
+
+ A "contributor" is a copyright holder who authorizes use under this
+ License of the Program or a work on which the Program is based. The
+ work thus licensed is called the contributor's "contributor version".
+
+ A contributor's "essential patent claims" are all patent claims
+ owned or controlled by the contributor, whether already acquired or
+ hereafter acquired, that would be infringed by some manner, permitted
+ by this License, of making, using, or selling its contributor version,
+ but do not include claims that would be infringed only as a
+ consequence of further modification of the contributor version. For
+ purposes of this definition, "control" includes the right to grant
+ patent sublicenses in a manner consistent with the requirements of
+ this License.
+
+ Each contributor grants you a non-exclusive, worldwide, royalty-free
+ patent license under the contributor's essential patent claims, to
+ make, use, sell, offer for sale, import and otherwise run, modify and
+ propagate the contents of its contributor version.
+
+ In the following three paragraphs, a "patent license" is any express
+ agreement or commitment, however denominated, not to enforce a patent
+ (such as an express permission to practice a patent or covenant not to
+ sue for patent infringement). To "grant" such a patent license to a
+ party means to make such an agreement or commitment not to enforce a
+ patent against the party.
+
+ If you convey a covered work, knowingly relying on a patent license,
+ and the Corresponding Source of the work is not available for anyone
+ to copy, free of charge and under the terms of this License, through a
+ publicly available network server or other readily accessible means,
+ then you must either (1) cause the Corresponding Source to be so
+ available, or (2) arrange to deprive yourself of the benefit of the
+ patent license for this particular work, or (3) arrange, in a manner
+ consistent with the requirements of this License, to extend the patent
+ license to downstream recipients. "Knowingly relying" means you have
+ actual knowledge that, but for the patent license, your conveying the
+ covered work in a country, or your recipient's use of the covered work
+ in a country, would infringe one or more identifiable patents in that
+ country that you have reason to believe are valid.
+
+ If, pursuant to or in connection with a single transaction or
+ arrangement, you convey, or propagate by procuring conveyance of, a
+ covered work, and grant a patent license to some of the parties
+ receiving the covered work authorizing them to use, propagate, modify
+ or convey a specific copy of the covered work, then the patent license
+ you grant is automatically extended to all recipients of the covered
+ work and works based on it.
+
+ A patent license is "discriminatory" if it does not include within
+ the scope of its coverage, prohibits the exercise of, or is
+ conditioned on the non-exercise of one or more of the rights that are
+ specifically granted under this License. You may not convey a covered
+ work if you are a party to an arrangement with a third party that is
+ in the business of distributing software, under which you make payment
+ to the third party based on the extent of your activity of conveying
+ the work, and under which the third party grants, to any of the
+ parties who would receive the covered work from you, a discriminatory
+ patent license (a) in connection with copies of the covered work
+ conveyed by you (or copies made from those copies), or (b) primarily
+ for and in connection with specific products or compilations that
+ contain the covered work, unless you entered into that arrangement,
+ or that patent license was granted, prior to 28 March 2007.
+
+ Nothing in this License shall be construed as excluding or limiting
+ any implied license or other defenses to infringement that may
+ otherwise be available to you under applicable patent law.
+
+ 12. No Surrender of Others' Freedom.
+
+ If conditions are imposed on you (whether by court order, agreement or
+ otherwise) that contradict the conditions of this License, they do not
+ excuse you from the conditions of this License. If you cannot convey a
+ covered work so as to satisfy simultaneously your obligations under this
+ License and any other pertinent obligations, then as a consequence you may
+ not convey it at all. For example, if you agree to terms that obligate you
+ to collect a royalty for further conveying from those to whom you convey
+ the Program, the only way you could satisfy both those terms and this
+ License would be to refrain entirely from conveying the Program.
+
+ 13. Remote Network Interaction; Use with the GNU General Public License.
+
+ Notwithstanding any other provision of this License, if you modify the
+ Program, your modified version must prominently offer all users
+ interacting with it remotely through a computer network (if your version
+ supports such interaction) an opportunity to receive the Corresponding
+ Source of your version by providing access to the Corresponding Source
+ from a network server at no charge, through some standard or customary
+ means of facilitating copying of software. This Corresponding Source
+ shall include the Corresponding Source for any work covered by version 3
+ of the GNU General Public License that is incorporated pursuant to the
+ following paragraph.
+
+ Notwithstanding any other provision of this License, you have
+ permission to link or combine any covered work with a work licensed
+ under version 3 of the GNU General Public License into a single
+ combined work, and to convey the resulting work. The terms of this
+ License will continue to apply to the part which is the covered work,
+ but the work with which it is combined will remain governed by version
+ 3 of the GNU General Public License.
+
+ 14. Revised Versions of this License.
+
+ The Free Software Foundation may publish revised and/or new versions of
+ the GNU Affero General Public License from time to time. Such new versions
+ will be similar in spirit to the present version, but may differ in detail to
+ address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+ Program specifies that a certain numbered version of the GNU Affero General
+ Public License "or any later version" applies to it, you have the
+ option of following the terms and conditions either of that numbered
+ version or of any later version published by the Free Software
+ Foundation. If the Program does not specify a version number of the
+ GNU Affero General Public License, you may choose any version ever published
+ by the Free Software Foundation.
+
+ If the Program specifies that a proxy can decide which future
+ versions of the GNU Affero General Public License can be used, that proxy's
+ public statement of acceptance of a version permanently authorizes you
+ to choose that version for the Program.
+
+ Later license versions may give you additional or different
+ permissions. However, no additional obligations are imposed on any
+ author or copyright holder as a result of your choosing to follow a
+ later version.
+
+ 15. Disclaimer of Warranty.
+
+ THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+ APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+ HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+ OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+ THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+ IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. Limitation of Liability.
+
+ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+ WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+ THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+ GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+ USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+ DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+ PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+ EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+ SUCH DAMAGES.
+
+ 17. Interpretation of Sections 15 and 16.
+
+ If the disclaimer of warranty and limitation of liability provided
+ above cannot be given local legal effect according to their terms,
+ reviewing courts shall apply local law that most closely approximates
+ an absolute waiver of all civil liability in connection with the
+ Program, unless a warranty or assumption of liability accompanies a
+ copy of the Program in return for a fee.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+ possible use to the public, the best way to achieve this is to make it
+ free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+ to attach them to the start of each source file to most effectively
+ state the exclusion of warranty; and each file should have at least
+ the "copyright" line and a pointer to where the full notice is found.
+
+
+ Copyright (C)
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Affero General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Affero General Public License for more details.
+
+ You should have received a copy of the GNU Affero General Public License
+ along with this program. If not, see .
+
+ Also add information on how to contact you by electronic and paper mail.
+
+ If your software can interact with users remotely through a computer
+ network, you should also make sure that it provides a way for users to
+ get its source. For example, if your program is a web application, its
+ interface could display a "Source" link that leads users to an archive
+ of the code. There are many ways you could offer source, and different
+ solutions will be better for different programs; see section 13 for the
+ specific requirements.
+
+ You should also get your employer (if you work as a programmer) or school,
+ if any, to sign a "copyright disclaimer" for the program, if necessary.
+ For more information on this, and how to apply and follow the GNU AGPL, see
+ .
diff --git a/packages/v3-watcher/README.md b/packages/v3-watcher/README.md
new file mode 100644
index 0000000..2a10ac8
--- /dev/null
+++ b/packages/v3-watcher/README.md
@@ -0,0 +1,212 @@
+# v3-watcher
+
+## Setup
+
+* Run the following command to install required packages:
+
+ ```bash
+ yarn
+ ```
+
+* Create a postgres12 database for the watcher:
+
+ ```bash
+ sudo su - postgres
+ createdb v3-watcher
+ ```
+
+* If the watcher is an `active` watcher:
+
+ Create database for the job queue and enable the `pgcrypto` extension on them (https://github.com/timgit/pg-boss/blob/master/docs/usage.md#intro):
+
+ ```
+ createdb v3-watcher-job-queue
+ ```
+
+ ```
+ postgres@tesla:~$ psql -U postgres -h localhost v3-watcher-job-queue
+ Password for user postgres:
+ psql (12.7 (Ubuntu 12.7-1.pgdg18.04+1))
+ SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, bits: 256, compression: off)
+ Type "help" for help.
+
+ v3-watcher-job-queue=# CREATE EXTENSION pgcrypto;
+ CREATE EXTENSION
+ v3-watcher-job-queue=# exit
+ ```
+
+* In the [config file](./environments/local.toml):
+
+ * Update the database connection settings.
+
+ * Update the `upstream` config and provide the `ipld-eth-server` GQL API endpoint.
+
+ * Update the `server` config with state checkpoint settings.
+
+## Customize
+
+* Indexing on an event:
+
+ * Edit the custom hook function `handleEvent` (triggered on an event) in [hooks.ts](./src/hooks.ts) to perform corresponding indexing using the `Indexer` object.
+
+ * While using the indexer storage methods for indexing, pass `diff` as true if default state is desired to be generated using the state variables being indexed.
+
+* Generating state:
+
+ * Edit the custom hook function `createInitialState` (triggered if the watcher passes the start block, checkpoint: `true`) in [hooks.ts](./src/hooks.ts) to save an initial `State` using the `Indexer` object.
+
+ * Edit the custom hook function `createStateDiff` (triggered on a block) in [hooks.ts](./src/hooks.ts) to save the state in a `diff` `State` using the `Indexer` object. The default state (if exists) is updated.
+
+ * Edit the custom hook function `createStateCheckpoint` (triggered just before default and CLI checkpoint) in [hooks.ts](./src/hooks.ts) to save the state in a `checkpoint` `State` using the `Indexer` object.
+
+### GQL Caching
+
+To enable GQL requests caching:
+
+* Update the `server.gql.cache` config with required settings.
+
+* In the GQL [schema file](./src/schema.gql), use the `cacheControl` directive to apply cache hints at schema level.
+
+ * Eg. Set `inheritMaxAge` to true for non-scalar fields of a type.
+
+* In the GQL [resolvers file](./src/resolvers.ts), uncomment the `setGQLCacheHints()` calls in resolvers for required queries.
+
+## Run
+
+* If the watcher is a `lazy` watcher:
+
+ * Run the server:
+
+ ```bash
+ yarn server
+ ```
+
+ GQL console: http://localhost:3008/graphql
+
+* If the watcher is an `active` watcher:
+
+ * Run the job-runner:
+
+ ```bash
+ yarn job-runner
+ ```
+
+ * Run the server:
+
+ ```bash
+ yarn server
+ ```
+
+ GQL console: http://localhost:3008/graphql
+
+ * To watch a contract:
+
+ ```bash
+ yarn watch:contract --address --kind --checkpoint --starting-block [block-number]
+ ```
+
+ * `address`: Address or identifier of the contract to be watched.
+ * `kind`: Kind of the contract.
+ * `checkpoint`: Turn checkpointing on (`true` | `false`).
+ * `starting-block`: Starting block for the contract (default: `1`).
+
+ Examples:
+
+ Watch a contract with its address and checkpointing on:
+
+ ```bash
+ yarn watch:contract --address 0x1F78641644feB8b64642e833cE4AFE93DD6e7833 --kind ERC20 --checkpoint true
+ ```
+
+ Watch a contract with its identifier and checkpointing on:
+
+ ```bash
+ yarn watch:contract --address MyProtocol --kind protocol --checkpoint true
+ ```
+
+ * To fill a block range:
+
+ ```bash
+ yarn fill --start-block --end-block
+ ```
+
+ * `start-block`: Block number to start filling from.
+ * `end-block`: Block number till which to fill.
+
+ * To create a checkpoint for a contract:
+
+ ```bash
+ yarn checkpoint create --address --block-hash [block-hash]
+ ```
+
+ * `address`: Address or identifier of the contract for which to create a checkpoint.
+ * `block-hash`: Hash of a block (in the pruned region) at which to create the checkpoint (default: latest canonical block hash).
+
+ * To verify a checkpoint:
+
+ ```bash
+ yarn checkpoint verify --cid
+ ```
+
+ `cid`: CID of the checkpoint for which to verify.
+
+ * To reset the watcher to a previous block number:
+
+ * Reset watcher:
+
+ ```bash
+ yarn reset watcher --block-number
+ ```
+
+ * Reset job-queue:
+
+ ```bash
+ yarn reset job-queue
+ ```
+
+ * Reset state:
+
+ ```bash
+ yarn reset state --block-number
+ ```
+
+ * `block-number`: Block number to which to reset the watcher.
+
+ * To export and import the watcher state:
+
+ * In source watcher, export watcher state:
+
+ ```bash
+ yarn export-state --export-file [export-file-path] --block-number [snapshot-block-height]
+ ```
+
+ * `export-file`: Path of file to which to export the watcher data.
+ * `block-number`: Block height at which to take snapshot for export.
+
+ * In target watcher, run job-runner:
+
+ ```bash
+ yarn job-runner
+ ```
+
+ * Import watcher state:
+
+ ```bash
+ yarn import-state --import-file
+ ```
+
+ * `import-file`: Path of file from which to import the watcher data.
+
+ * Run server:
+
+ ```bash
+ yarn server
+ ```
+
+ * To inspect a CID:
+
+ ```bash
+ yarn inspect-cid --cid
+ ```
+
+ * `cid`: CID to be inspected.
diff --git a/packages/v3-watcher/environments/local.toml b/packages/v3-watcher/environments/local.toml
new file mode 100644
index 0000000..9b9b2d7
--- /dev/null
+++ b/packages/v3-watcher/environments/local.toml
@@ -0,0 +1,109 @@
+[server]
+ host = "127.0.0.1"
+ port = 3008
+ kind = "active"
+
+ # Checkpointing state.
+ checkpointing = true
+
+ # Checkpoint interval in number of blocks.
+ checkpointInterval = 2000
+
+ # Enable state creation
+ # CAUTION: Disable only if state creation is not desired or can be filled subsequently
+ enableState = true
+
+ subgraphPath = "./subgraph-build"
+
+ # Interval to restart wasm instance periodically
+ wasmRestartBlocksInterval = 20
+
+ # Interval in number of blocks at which to clear entities cache.
+ clearEntitiesCacheInterval = 1000
+
+ # Flag to specify whether RPC endpoint supports block hash as block tag parameter
+ rpcSupportsBlockHashParam = true
+
+ # Server GQL config
+ [server.gql]
+ path = "/graphql"
+
+ # Max block range for which to return events in eventsInRange GQL query.
+ # Use -1 for skipping check on block range.
+ maxEventsBlockRange = 1000
+
+ # Log directory for GQL requests
+ logDir = "./gql-logs"
+
+ # GQL cache settings
+ [server.gql.cache]
+ enabled = true
+
+ # Max in-memory cache size (in bytes) (default 8 MB)
+ # maxCacheSize
+
+ # GQL cache-control max-age settings (in seconds)
+ maxAge = 15
+ timeTravelMaxAge = 86400 # 1 day
+
+[metrics]
+ host = "127.0.0.1"
+ port = 9000
+ [metrics.gql]
+ port = 9001
+
+[database]
+ type = "postgres"
+ host = "localhost"
+ port = 5432
+ database = "v3-watcher"
+ username = "postgres"
+ password = "postgres"
+ synchronize = true
+ logging = false
+
+[upstream]
+ [upstream.ethServer]
+ gqlApiEndpoint = "http://127.0.0.1:8082/graphql"
+ rpcProviderEndpoints = [
+ "http://127.0.0.1:8081"
+ ]
+
+ # Boolean flag to specify if rpc-eth-client should be used for RPC endpoint instead of ipld-eth-client (ipld-eth-server GQL client)
+ rpcClient = false
+
+ # Boolean flag to specify if rpcProviderEndpoint is an FEVM RPC endpoint
+ isFEVM = false
+
+ # Boolean flag to filter event logs by contracts
+ filterLogsByAddresses = true
+ # Boolean flag to filter event logs by topics
+ filterLogsByTopics = true
+
+ [upstream.cache]
+ name = "requests"
+ enabled = false
+ deleteOnStart = false
+
+[jobQueue]
+ dbConnectionString = "postgres://postgres:postgres@localhost/v3-watcher-job-queue"
+ maxCompletionLagInSecs = 300
+ jobDelayInMilliSecs = 100
+ eventsInBatch = 50
+ subgraphEventsOrder = true
+ blockDelayInMilliSecs = 2000
+
+ # Boolean to switch between modes of processing events when starting the server.
+ # Setting to true will fetch filtered events and required blocks in a range of blocks and then process them.
+ # Setting to false will fetch blocks consecutively with its events and then process them (Behaviour is followed in realtime processing near head).
+ useBlockRanges = true
+
+ # Block range in which logs are fetched during historical blocks processing
+ historicalLogsBlockRange = 2000
+
+ # Max block range of historical processing after which it waits for completion of events processing
+ # If set to -1 historical processing does not wait for events processing and completes till latest canonical block
+ historicalMaxFetchAhead = 10000
+
+ # Max number of retries to fetch new block after which watcher will failover to other RPC endpoints
+ maxNewBlockRetries = 3
diff --git a/packages/v3-watcher/package.json b/packages/v3-watcher/package.json
new file mode 100644
index 0000000..eefd2b6
--- /dev/null
+++ b/packages/v3-watcher/package.json
@@ -0,0 +1,77 @@
+{
+ "name": "@cerc-io/v3-watcher",
+ "version": "0.1.0",
+ "description": "v3-watcher",
+ "private": true,
+ "main": "dist/index.js",
+ "scripts": {
+ "lint": "eslint --max-warnings=0 .",
+ "build": "yarn clean && tsc && yarn copy-assets",
+ "clean": "rm -rf ./dist",
+ "prepare": "husky install",
+ "copy-assets": "copyfiles -u 1 src/**/*.gql dist/",
+ "server": "DEBUG=vulcanize:* YARN_CHILD_PROCESS=true node --enable-source-maps dist/server.js",
+ "server:dev": "DEBUG=vulcanize:* YARN_CHILD_PROCESS=true ts-node src/server.ts",
+ "job-runner": "DEBUG=vulcanize:* YARN_CHILD_PROCESS=true node --enable-source-maps dist/job-runner.js",
+ "job-runner:dev": "DEBUG=vulcanize:* YARN_CHILD_PROCESS=true ts-node src/job-runner.ts",
+ "watch:contract": "DEBUG=vulcanize:* ts-node src/cli/watch-contract.ts",
+ "fill": "DEBUG=vulcanize:* ts-node src/fill.ts",
+ "fill:state": "DEBUG=vulcanize:* ts-node src/fill.ts --state",
+ "reset": "DEBUG=vulcanize:* ts-node src/cli/reset.ts",
+ "checkpoint": "DEBUG=vulcanize:* node --enable-source-maps dist/cli/checkpoint.js",
+ "checkpoint:dev": "DEBUG=vulcanize:* ts-node src/cli/checkpoint.ts",
+ "export-state": "DEBUG=vulcanize:* node --enable-source-maps dist/cli/export-state.js",
+ "export-state:dev": "DEBUG=vulcanize:* ts-node src/cli/export-state.ts",
+ "import-state": "DEBUG=vulcanize:* node --enable-source-maps dist/cli/import-state.js",
+ "import-state:dev": "DEBUG=vulcanize:* ts-node src/cli/import-state.ts",
+ "inspect-cid": "DEBUG=vulcanize:* ts-node src/cli/inspect-cid.ts",
+ "index-block": "DEBUG=vulcanize:* ts-node src/cli/index-block.ts"
+ },
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/cerc-io/watcher-ts.git"
+ },
+ "author": "",
+ "license": "AGPL-3.0",
+ "bugs": {
+ "url": "https://github.com/cerc-io/watcher-ts/issues"
+ },
+ "homepage": "https://github.com/cerc-io/watcher-ts#readme",
+ "dependencies": {
+ "@apollo/client": "^3.3.19",
+ "@cerc-io/cli": "^0.2.93",
+ "@cerc-io/ipld-eth-client": "^0.2.93",
+ "@cerc-io/solidity-mapper": "^0.2.93",
+ "@cerc-io/util": "^0.2.93",
+ "@cerc-io/graph-node": "^0.2.93",
+ "@ethersproject/providers": "^5.4.4",
+ "debug": "^4.3.1",
+ "decimal.js": "^10.3.1",
+ "ethers": "^5.4.4",
+ "graphql": "^15.5.0",
+ "json-bigint": "^1.0.0",
+ "reflect-metadata": "^0.1.13",
+ "typeorm": "0.2.37",
+ "yargs": "^17.0.1"
+ },
+ "devDependencies": {
+ "@ethersproject/abi": "^5.3.0",
+ "@types/debug": "^4.1.5",
+ "@types/json-bigint": "^1.0.0",
+ "@types/yargs": "^17.0.0",
+ "@typescript-eslint/eslint-plugin": "^5.47.1",
+ "@typescript-eslint/parser": "^5.47.1",
+ "copyfiles": "^2.4.1",
+ "eslint": "^8.35.0",
+ "eslint-config-semistandard": "^15.0.1",
+ "eslint-config-standard": "^16.0.3",
+ "eslint-plugin-import": "^2.27.5",
+ "eslint-plugin-node": "^11.1.0",
+ "eslint-plugin-promise": "^5.1.0",
+ "eslint-plugin-standard": "^5.0.0",
+ "husky": "^7.0.2",
+ "ts-node": "^10.2.1",
+ "typescript": "^5.0.2",
+ "winston": "^3.13.0"
+ }
+}
diff --git a/packages/v3-watcher/src/artifacts/Factory.json b/packages/v3-watcher/src/artifacts/Factory.json
new file mode 100644
index 0000000..c712812
--- /dev/null
+++ b/packages/v3-watcher/src/artifacts/Factory.json
@@ -0,0 +1,200 @@
+{
+ "abi": [
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint24",
+ "name": "fee",
+ "type": "uint24"
+ },
+ {
+ "indexed": true,
+ "internalType": "int24",
+ "name": "tickSpacing",
+ "type": "int24"
+ }
+ ],
+ "name": "FeeAmountEnabled",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "oldOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnerChanged",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "token0",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "token1",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint24",
+ "name": "fee",
+ "type": "uint24"
+ },
+ {
+ "indexed": false,
+ "internalType": "int24",
+ "name": "tickSpacing",
+ "type": "int24"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "pool",
+ "type": "address"
+ }
+ ],
+ "name": "PoolCreated",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "tokenA",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "tokenB",
+ "type": "address"
+ },
+ {
+ "internalType": "uint24",
+ "name": "fee",
+ "type": "uint24"
+ }
+ ],
+ "name": "createPool",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "pool",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint24",
+ "name": "fee",
+ "type": "uint24"
+ },
+ {
+ "internalType": "int24",
+ "name": "tickSpacing",
+ "type": "int24"
+ }
+ ],
+ "name": "enableFeeAmount",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint24",
+ "name": "fee",
+ "type": "uint24"
+ }
+ ],
+ "name": "feeAmountTickSpacing",
+ "outputs": [
+ {
+ "internalType": "int24",
+ "name": "",
+ "type": "int24"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "tokenA",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "tokenB",
+ "type": "address"
+ },
+ {
+ "internalType": "uint24",
+ "name": "fee",
+ "type": "uint24"
+ }
+ ],
+ "name": "getPool",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "pool",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_owner",
+ "type": "address"
+ }
+ ],
+ "name": "setOwner",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/packages/v3-watcher/src/artifacts/NonfungiblePositionManager.json b/packages/v3-watcher/src/artifacts/NonfungiblePositionManager.json
new file mode 100644
index 0000000..830b437
--- /dev/null
+++ b/packages/v3-watcher/src/artifacts/NonfungiblePositionManager.json
@@ -0,0 +1,1195 @@
+{
+ "abi": [
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_factory",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_WETH9",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_tokenDescriptor_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "approved",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "Approval",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bool",
+ "name": "approved",
+ "type": "bool"
+ }
+ ],
+ "name": "ApprovalForAll",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "recipient",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount0",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount1",
+ "type": "uint256"
+ }
+ ],
+ "name": "Collect",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint128",
+ "name": "liquidity",
+ "type": "uint128"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount0",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount1",
+ "type": "uint256"
+ }
+ ],
+ "name": "DecreaseLiquidity",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint128",
+ "name": "liquidity",
+ "type": "uint128"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount0",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount1",
+ "type": "uint256"
+ }
+ ],
+ "name": "IncreaseLiquidity",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "Transfer",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "DOMAIN_SEPARATOR",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "PERMIT_TYPEHASH",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "WETH9",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "approve",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ }
+ ],
+ "name": "balanceOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "baseURI",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "pure",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "burn",
+ "outputs": [],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "recipient",
+ "type": "address"
+ },
+ {
+ "internalType": "uint128",
+ "name": "amount0Max",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint128",
+ "name": "amount1Max",
+ "type": "uint128"
+ }
+ ],
+ "name": "collect",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount0",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount1",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "tokenA",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "tokenB",
+ "type": "address"
+ },
+ {
+ "internalType": "uint24",
+ "name": "fee",
+ "type": "uint24"
+ },
+ {
+ "internalType": "uint160",
+ "name": "sqrtPriceX96",
+ "type": "uint160"
+ }
+ ],
+ "name": "createAndInitializePoolIfNecessary",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "pool",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint128",
+ "name": "liquidity",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount0Min",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount1Min",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "deadline",
+ "type": "uint256"
+ }
+ ],
+ "name": "decreaseLiquidity",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount0",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount1",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "factory",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getApproved",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount0Desired",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount1Desired",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount0Min",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount1Min",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "deadline",
+ "type": "uint256"
+ }
+ ],
+ "name": "increaseLiquidity",
+ "outputs": [
+ {
+ "internalType": "uint128",
+ "name": "liquidity",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount0",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount1",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ }
+ ],
+ "name": "isApprovedForAll",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "token0",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "token1",
+ "type": "address"
+ },
+ {
+ "internalType": "uint24",
+ "name": "fee",
+ "type": "uint24"
+ },
+ {
+ "internalType": "int24",
+ "name": "tickLower",
+ "type": "int24"
+ },
+ {
+ "internalType": "int24",
+ "name": "tickUpper",
+ "type": "int24"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount0Desired",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount1Desired",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount0Min",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount1Min",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "recipient",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "deadline",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct INonfungiblePositionManager.MintParams",
+ "name": "params",
+ "type": "tuple"
+ }
+ ],
+ "name": "mint",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint128",
+ "name": "liquidity",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount0",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount1",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes[]",
+ "name": "data",
+ "type": "bytes[]"
+ }
+ ],
+ "name": "multicall",
+ "outputs": [
+ {
+ "internalType": "bytes[]",
+ "name": "results",
+ "type": "bytes[]"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "name",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "ownerOf",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "deadline",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ }
+ ],
+ "name": "permit",
+ "outputs": [],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "positions",
+ "outputs": [
+ {
+ "internalType": "uint96",
+ "name": "nonce",
+ "type": "uint96"
+ },
+ {
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "token0",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "token1",
+ "type": "address"
+ },
+ {
+ "internalType": "uint24",
+ "name": "fee",
+ "type": "uint24"
+ },
+ {
+ "internalType": "int24",
+ "name": "tickLower",
+ "type": "int24"
+ },
+ {
+ "internalType": "int24",
+ "name": "tickUpper",
+ "type": "int24"
+ },
+ {
+ "internalType": "uint128",
+ "name": "liquidity",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint256",
+ "name": "feeGrowthInside0LastX128",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "feeGrowthInside1LastX128",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint128",
+ "name": "tokensOwed0",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint128",
+ "name": "tokensOwed1",
+ "type": "uint128"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "safeTransferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_data",
+ "type": "bytes"
+ }
+ ],
+ "name": "safeTransferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "token",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "deadline",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ }
+ ],
+ "name": "selfPermit",
+ "outputs": [],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "token",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "nonce",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "expiry",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ }
+ ],
+ "name": "selfPermitAllowed",
+ "outputs": [],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "token",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "nonce",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "expiry",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ }
+ ],
+ "name": "selfPermitAllowedIfNecessary",
+ "outputs": [],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "token",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "deadline",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ }
+ ],
+ "name": "selfPermitIfNecessary",
+ "outputs": [],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ },
+ {
+ "internalType": "bool",
+ "name": "approved",
+ "type": "bool"
+ }
+ ],
+ "name": "setApprovalForAll",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "token",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amountMinimum",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "recipient",
+ "type": "address"
+ }
+ ],
+ "name": "sweepToken",
+ "outputs": [],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "symbol",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenByIndex",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenOfOwnerByIndex",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenURI",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalSupply",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "transferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount0Owed",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount1Owed",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "data",
+ "type": "bytes"
+ }
+ ],
+ "name": "uniswapV3MintCallback",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amountMinimum",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "recipient",
+ "type": "address"
+ }
+ ],
+ "name": "unwrapWETH9",
+ "outputs": [],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "stateMutability": "payable",
+ "type": "receive"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/packages/v3-watcher/src/artifacts/Pool.json b/packages/v3-watcher/src/artifacts/Pool.json
new file mode 100644
index 0000000..cea0ad1
--- /dev/null
+++ b/packages/v3-watcher/src/artifacts/Pool.json
@@ -0,0 +1,990 @@
+{
+ "abi": [
+ {
+ "inputs": [],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "int24",
+ "name": "tickLower",
+ "type": "int24"
+ },
+ {
+ "indexed": true,
+ "internalType": "int24",
+ "name": "tickUpper",
+ "type": "int24"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint128",
+ "name": "amount",
+ "type": "uint128"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount0",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount1",
+ "type": "uint256"
+ }
+ ],
+ "name": "Burn",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "recipient",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "int24",
+ "name": "tickLower",
+ "type": "int24"
+ },
+ {
+ "indexed": true,
+ "internalType": "int24",
+ "name": "tickUpper",
+ "type": "int24"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint128",
+ "name": "amount0",
+ "type": "uint128"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint128",
+ "name": "amount1",
+ "type": "uint128"
+ }
+ ],
+ "name": "Collect",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "recipient",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint128",
+ "name": "amount0",
+ "type": "uint128"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint128",
+ "name": "amount1",
+ "type": "uint128"
+ }
+ ],
+ "name": "CollectProtocol",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "recipient",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount0",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount1",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "paid0",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "paid1",
+ "type": "uint256"
+ }
+ ],
+ "name": "Flash",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint16",
+ "name": "observationCardinalityNextOld",
+ "type": "uint16"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint16",
+ "name": "observationCardinalityNextNew",
+ "type": "uint16"
+ }
+ ],
+ "name": "IncreaseObservationCardinalityNext",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint160",
+ "name": "sqrtPriceX96",
+ "type": "uint160"
+ },
+ {
+ "indexed": false,
+ "internalType": "int24",
+ "name": "tick",
+ "type": "int24"
+ }
+ ],
+ "name": "Initialize",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "int24",
+ "name": "tickLower",
+ "type": "int24"
+ },
+ {
+ "indexed": true,
+ "internalType": "int24",
+ "name": "tickUpper",
+ "type": "int24"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint128",
+ "name": "amount",
+ "type": "uint128"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount0",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount1",
+ "type": "uint256"
+ }
+ ],
+ "name": "Mint",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint8",
+ "name": "feeProtocol0Old",
+ "type": "uint8"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint8",
+ "name": "feeProtocol1Old",
+ "type": "uint8"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint8",
+ "name": "feeProtocol0New",
+ "type": "uint8"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint8",
+ "name": "feeProtocol1New",
+ "type": "uint8"
+ }
+ ],
+ "name": "SetFeeProtocol",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "recipient",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "int256",
+ "name": "amount0",
+ "type": "int256"
+ },
+ {
+ "indexed": false,
+ "internalType": "int256",
+ "name": "amount1",
+ "type": "int256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint160",
+ "name": "sqrtPriceX96",
+ "type": "uint160"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint128",
+ "name": "liquidity",
+ "type": "uint128"
+ },
+ {
+ "indexed": false,
+ "internalType": "int24",
+ "name": "tick",
+ "type": "int24"
+ }
+ ],
+ "name": "Swap",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "int24",
+ "name": "tickLower",
+ "type": "int24"
+ },
+ {
+ "internalType": "int24",
+ "name": "tickUpper",
+ "type": "int24"
+ },
+ {
+ "internalType": "uint128",
+ "name": "amount",
+ "type": "uint128"
+ }
+ ],
+ "name": "burn",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount0",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount1",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "recipient",
+ "type": "address"
+ },
+ {
+ "internalType": "int24",
+ "name": "tickLower",
+ "type": "int24"
+ },
+ {
+ "internalType": "int24",
+ "name": "tickUpper",
+ "type": "int24"
+ },
+ {
+ "internalType": "uint128",
+ "name": "amount0Requested",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint128",
+ "name": "amount1Requested",
+ "type": "uint128"
+ }
+ ],
+ "name": "collect",
+ "outputs": [
+ {
+ "internalType": "uint128",
+ "name": "amount0",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint128",
+ "name": "amount1",
+ "type": "uint128"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "recipient",
+ "type": "address"
+ },
+ {
+ "internalType": "uint128",
+ "name": "amount0Requested",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint128",
+ "name": "amount1Requested",
+ "type": "uint128"
+ }
+ ],
+ "name": "collectProtocol",
+ "outputs": [
+ {
+ "internalType": "uint128",
+ "name": "amount0",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint128",
+ "name": "amount1",
+ "type": "uint128"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "factory",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "fee",
+ "outputs": [
+ {
+ "internalType": "uint24",
+ "name": "",
+ "type": "uint24"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "feeGrowthGlobal0X128",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "feeGrowthGlobal1X128",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "recipient",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount0",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount1",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "data",
+ "type": "bytes"
+ }
+ ],
+ "name": "flash",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint16",
+ "name": "observationCardinalityNext",
+ "type": "uint16"
+ }
+ ],
+ "name": "increaseObservationCardinalityNext",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint160",
+ "name": "sqrtPriceX96",
+ "type": "uint160"
+ }
+ ],
+ "name": "initialize",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "liquidity",
+ "outputs": [
+ {
+ "internalType": "uint128",
+ "name": "",
+ "type": "uint128"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "maxLiquidityPerTick",
+ "outputs": [
+ {
+ "internalType": "uint128",
+ "name": "",
+ "type": "uint128"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "recipient",
+ "type": "address"
+ },
+ {
+ "internalType": "int24",
+ "name": "tickLower",
+ "type": "int24"
+ },
+ {
+ "internalType": "int24",
+ "name": "tickUpper",
+ "type": "int24"
+ },
+ {
+ "internalType": "uint128",
+ "name": "amount",
+ "type": "uint128"
+ },
+ {
+ "internalType": "bytes",
+ "name": "data",
+ "type": "bytes"
+ }
+ ],
+ "name": "mint",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount0",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount1",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ }
+ ],
+ "name": "observations",
+ "outputs": [
+ {
+ "internalType": "uint32",
+ "name": "blockTimestamp",
+ "type": "uint32"
+ },
+ {
+ "internalType": "int56",
+ "name": "tickCumulative",
+ "type": "int56"
+ },
+ {
+ "internalType": "uint160",
+ "name": "secondsPerLiquidityCumulativeX128",
+ "type": "uint160"
+ },
+ {
+ "internalType": "bool",
+ "name": "initialized",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint32[]",
+ "name": "secondsAgos",
+ "type": "uint32[]"
+ }
+ ],
+ "name": "observe",
+ "outputs": [
+ {
+ "internalType": "int56[]",
+ "name": "tickCumulatives",
+ "type": "int56[]"
+ },
+ {
+ "internalType": "uint160[]",
+ "name": "secondsPerLiquidityCumulativeX128s",
+ "type": "uint160[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "key",
+ "type": "bytes32"
+ }
+ ],
+ "name": "positions",
+ "outputs": [
+ {
+ "internalType": "uint128",
+ "name": "_liquidity",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint256",
+ "name": "feeGrowthInside0LastX128",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "feeGrowthInside1LastX128",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint128",
+ "name": "tokensOwed0",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint128",
+ "name": "tokensOwed1",
+ "type": "uint128"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "protocolFees",
+ "outputs": [
+ {
+ "internalType": "uint128",
+ "name": "token0",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint128",
+ "name": "token1",
+ "type": "uint128"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "feeProtocol0",
+ "type": "uint8"
+ },
+ {
+ "internalType": "uint8",
+ "name": "feeProtocol1",
+ "type": "uint8"
+ }
+ ],
+ "name": "setFeeProtocol",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "slot0",
+ "outputs": [
+ {
+ "internalType": "uint160",
+ "name": "sqrtPriceX96",
+ "type": "uint160"
+ },
+ {
+ "internalType": "int24",
+ "name": "tick",
+ "type": "int24"
+ },
+ {
+ "internalType": "uint16",
+ "name": "observationIndex",
+ "type": "uint16"
+ },
+ {
+ "internalType": "uint16",
+ "name": "observationCardinality",
+ "type": "uint16"
+ },
+ {
+ "internalType": "uint16",
+ "name": "observationCardinalityNext",
+ "type": "uint16"
+ },
+ {
+ "internalType": "uint8",
+ "name": "feeProtocol",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bool",
+ "name": "unlocked",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "int24",
+ "name": "tickLower",
+ "type": "int24"
+ },
+ {
+ "internalType": "int24",
+ "name": "tickUpper",
+ "type": "int24"
+ }
+ ],
+ "name": "snapshotCumulativesInside",
+ "outputs": [
+ {
+ "internalType": "int56",
+ "name": "tickCumulativeInside",
+ "type": "int56"
+ },
+ {
+ "internalType": "uint160",
+ "name": "secondsPerLiquidityInsideX128",
+ "type": "uint160"
+ },
+ {
+ "internalType": "uint32",
+ "name": "secondsInside",
+ "type": "uint32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "recipient",
+ "type": "address"
+ },
+ {
+ "internalType": "bool",
+ "name": "zeroForOne",
+ "type": "bool"
+ },
+ {
+ "internalType": "int256",
+ "name": "amountSpecified",
+ "type": "int256"
+ },
+ {
+ "internalType": "uint160",
+ "name": "sqrtPriceLimitX96",
+ "type": "uint160"
+ },
+ {
+ "internalType": "bytes",
+ "name": "data",
+ "type": "bytes"
+ }
+ ],
+ "name": "swap",
+ "outputs": [
+ {
+ "internalType": "int256",
+ "name": "amount0",
+ "type": "int256"
+ },
+ {
+ "internalType": "int256",
+ "name": "amount1",
+ "type": "int256"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "int16",
+ "name": "wordPosition",
+ "type": "int16"
+ }
+ ],
+ "name": "tickBitmap",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "tickSpacing",
+ "outputs": [
+ {
+ "internalType": "int24",
+ "name": "",
+ "type": "int24"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "int24",
+ "name": "tick",
+ "type": "int24"
+ }
+ ],
+ "name": "ticks",
+ "outputs": [
+ {
+ "internalType": "uint128",
+ "name": "liquidityGross",
+ "type": "uint128"
+ },
+ {
+ "internalType": "int128",
+ "name": "liquidityNet",
+ "type": "int128"
+ },
+ {
+ "internalType": "uint256",
+ "name": "feeGrowthOutside0X128",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "feeGrowthOutside1X128",
+ "type": "uint256"
+ },
+ {
+ "internalType": "int56",
+ "name": "tickCumulativeOutside",
+ "type": "int56"
+ },
+ {
+ "internalType": "uint160",
+ "name": "secondsPerLiquidityOutsideX128",
+ "type": "uint160"
+ },
+ {
+ "internalType": "uint32",
+ "name": "secondsOutside",
+ "type": "uint32"
+ },
+ {
+ "internalType": "bool",
+ "name": "initialized",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "token0",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "token1",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/packages/v3-watcher/src/cli/checkpoint-cmds/create.ts b/packages/v3-watcher/src/cli/checkpoint-cmds/create.ts
new file mode 100644
index 0000000..e771c70
--- /dev/null
+++ b/packages/v3-watcher/src/cli/checkpoint-cmds/create.ts
@@ -0,0 +1,44 @@
+//
+// Copyright 2022 Vulcanize, Inc.
+//
+
+import { CreateCheckpointCmd } from '@cerc-io/cli';
+import { getGraphDbAndWatcher } from '@cerc-io/graph-node';
+
+import { Database, ENTITY_QUERY_TYPE_MAP, ENTITY_TO_LATEST_ENTITY_MAP } from '../../database';
+import { Indexer } from '../../indexer';
+
+export const command = 'create';
+
+export const desc = 'Create checkpoint';
+
+export const builder = {
+ address: {
+ type: 'string',
+ require: true,
+ demandOption: true,
+ describe: 'Contract address to create the checkpoint for.'
+ },
+ blockHash: {
+ type: 'string',
+ describe: 'Blockhash at which to create the checkpoint.'
+ }
+};
+
+export const handler = async (argv: any): Promise => {
+ const createCheckpointCmd = new CreateCheckpointCmd();
+ await createCheckpointCmd.init(argv, Database);
+
+ const { graphWatcher } = await getGraphDbAndWatcher(
+ createCheckpointCmd.config.server,
+ createCheckpointCmd.clients.ethClient,
+ createCheckpointCmd.ethProvider,
+ createCheckpointCmd.database.baseDatabase,
+ ENTITY_QUERY_TYPE_MAP,
+ ENTITY_TO_LATEST_ENTITY_MAP
+ );
+
+ await createCheckpointCmd.initIndexer(Indexer, graphWatcher);
+
+ await createCheckpointCmd.exec();
+};
diff --git a/packages/v3-watcher/src/cli/checkpoint-cmds/verify.ts b/packages/v3-watcher/src/cli/checkpoint-cmds/verify.ts
new file mode 100644
index 0000000..3709f54
--- /dev/null
+++ b/packages/v3-watcher/src/cli/checkpoint-cmds/verify.ts
@@ -0,0 +1,40 @@
+//
+// Copyright 2022 Vulcanize, Inc.
+//
+
+import { VerifyCheckpointCmd } from '@cerc-io/cli';
+import { getGraphDbAndWatcher } from '@cerc-io/graph-node';
+
+import { Database, ENTITY_QUERY_TYPE_MAP, ENTITY_TO_LATEST_ENTITY_MAP } from '../../database';
+import { Indexer } from '../../indexer';
+
+export const command = 'verify';
+
+export const desc = 'Verify checkpoint';
+
+export const builder = {
+ cid: {
+ type: 'string',
+ alias: 'c',
+ demandOption: true,
+ describe: 'Checkpoint CID to be verified'
+ }
+};
+
+export const handler = async (argv: any): Promise => {
+ const verifyCheckpointCmd = new VerifyCheckpointCmd();
+ await verifyCheckpointCmd.init(argv, Database);
+
+ const { graphWatcher, graphDb } = await getGraphDbAndWatcher(
+ verifyCheckpointCmd.config.server,
+ verifyCheckpointCmd.clients.ethClient,
+ verifyCheckpointCmd.ethProvider,
+ verifyCheckpointCmd.database.baseDatabase,
+ ENTITY_QUERY_TYPE_MAP,
+ ENTITY_TO_LATEST_ENTITY_MAP
+ );
+
+ await verifyCheckpointCmd.initIndexer(Indexer, graphWatcher);
+
+ await verifyCheckpointCmd.exec(graphDb);
+};
diff --git a/packages/v3-watcher/src/cli/checkpoint.ts b/packages/v3-watcher/src/cli/checkpoint.ts
new file mode 100644
index 0000000..d05ad8a
--- /dev/null
+++ b/packages/v3-watcher/src/cli/checkpoint.ts
@@ -0,0 +1,39 @@
+//
+// Copyright 2021 Vulcanize, Inc.
+//
+
+import yargs from 'yargs';
+import 'reflect-metadata';
+import debug from 'debug';
+
+import { DEFAULT_CONFIG_PATH } from '@cerc-io/util';
+
+import { hideBin } from 'yargs/helpers';
+
+const log = debug('vulcanize:checkpoint');
+
+const main = async () => {
+ return yargs(hideBin(process.argv))
+ .parserConfiguration({
+ 'parse-numbers': false
+ }).options({
+ configFile: {
+ alias: 'f',
+ type: 'string',
+ require: true,
+ demandOption: true,
+ describe: 'configuration file path (toml)',
+ default: DEFAULT_CONFIG_PATH
+ }
+ })
+ .commandDir('checkpoint-cmds', { extensions: ['ts', 'js'], exclude: /([a-zA-Z0-9\s_\\.\-:])+(.d.ts)$/ })
+ .demandCommand(1)
+ .help()
+ .argv;
+};
+
+main().then(() => {
+ process.exit();
+}).catch(err => {
+ log(err);
+});
diff --git a/packages/v3-watcher/src/cli/export-state.ts b/packages/v3-watcher/src/cli/export-state.ts
new file mode 100644
index 0000000..bcd1c8a
--- /dev/null
+++ b/packages/v3-watcher/src/cli/export-state.ts
@@ -0,0 +1,38 @@
+//
+// Copyright 2021 Vulcanize, Inc.
+//
+
+import 'reflect-metadata';
+import debug from 'debug';
+
+import { ExportStateCmd } from '@cerc-io/cli';
+import { getGraphDbAndWatcher } from '@cerc-io/graph-node';
+
+import { Database, ENTITY_QUERY_TYPE_MAP, ENTITY_TO_LATEST_ENTITY_MAP } from '../database';
+import { Indexer } from '../indexer';
+
+const log = debug('vulcanize:export-state');
+
+const main = async (): Promise => {
+ const exportStateCmd = new ExportStateCmd();
+ await exportStateCmd.init(Database);
+
+ const { graphWatcher } = await getGraphDbAndWatcher(
+ exportStateCmd.config.server,
+ exportStateCmd.clients.ethClient,
+ exportStateCmd.ethProvider,
+ exportStateCmd.database.baseDatabase,
+ ENTITY_QUERY_TYPE_MAP,
+ ENTITY_TO_LATEST_ENTITY_MAP
+ );
+
+ await exportStateCmd.initIndexer(Indexer, graphWatcher);
+
+ await exportStateCmd.exec();
+};
+
+main().catch(err => {
+ log(err);
+}).finally(() => {
+ process.exit(0);
+});
diff --git a/packages/v3-watcher/src/cli/import-state.ts b/packages/v3-watcher/src/cli/import-state.ts
new file mode 100644
index 0000000..04ce0e8
--- /dev/null
+++ b/packages/v3-watcher/src/cli/import-state.ts
@@ -0,0 +1,39 @@
+//
+// Copyright 2021 Vulcanize, Inc.
+//
+
+import 'reflect-metadata';
+import debug from 'debug';
+
+import { ImportStateCmd } from '@cerc-io/cli';
+import { getGraphDbAndWatcher } from '@cerc-io/graph-node';
+
+import { Database, ENTITY_QUERY_TYPE_MAP, ENTITY_TO_LATEST_ENTITY_MAP } from '../database';
+import { Indexer } from '../indexer';
+import { State } from '../entity/State';
+
+const log = debug('vulcanize:import-state');
+
+export const main = async (): Promise => {
+ const importStateCmd = new ImportStateCmd();
+ await importStateCmd.init(Database);
+
+ const { graphWatcher, graphDb } = await getGraphDbAndWatcher(
+ importStateCmd.config.server,
+ importStateCmd.clients.ethClient,
+ importStateCmd.ethProvider,
+ importStateCmd.database.baseDatabase,
+ ENTITY_QUERY_TYPE_MAP,
+ ENTITY_TO_LATEST_ENTITY_MAP
+ );
+
+ await importStateCmd.initIndexer(Indexer, graphWatcher);
+
+ await importStateCmd.exec(State, graphDb);
+};
+
+main().catch(err => {
+ log(err);
+}).finally(() => {
+ process.exit(0);
+});
diff --git a/packages/v3-watcher/src/cli/index-block.ts b/packages/v3-watcher/src/cli/index-block.ts
new file mode 100644
index 0000000..19a302a
--- /dev/null
+++ b/packages/v3-watcher/src/cli/index-block.ts
@@ -0,0 +1,38 @@
+//
+// Copyright 2022 Vulcanize, Inc.
+//
+
+import 'reflect-metadata';
+import debug from 'debug';
+
+import { IndexBlockCmd } from '@cerc-io/cli';
+import { getGraphDbAndWatcher } from '@cerc-io/graph-node';
+
+import { Database, ENTITY_QUERY_TYPE_MAP, ENTITY_TO_LATEST_ENTITY_MAP } from '../database';
+import { Indexer } from '../indexer';
+
+const log = debug('vulcanize:index-block');
+
+const main = async (): Promise => {
+ const indexBlockCmd = new IndexBlockCmd();
+ await indexBlockCmd.init(Database);
+
+ const { graphWatcher } = await getGraphDbAndWatcher(
+ indexBlockCmd.config.server,
+ indexBlockCmd.clients.ethClient,
+ indexBlockCmd.ethProvider,
+ indexBlockCmd.database.baseDatabase,
+ ENTITY_QUERY_TYPE_MAP,
+ ENTITY_TO_LATEST_ENTITY_MAP
+ );
+
+ await indexBlockCmd.initIndexer(Indexer, graphWatcher);
+
+ await indexBlockCmd.exec();
+};
+
+main().catch(err => {
+ log(err);
+}).finally(() => {
+ process.exit(0);
+});
diff --git a/packages/v3-watcher/src/cli/inspect-cid.ts b/packages/v3-watcher/src/cli/inspect-cid.ts
new file mode 100644
index 0000000..4f5955e
--- /dev/null
+++ b/packages/v3-watcher/src/cli/inspect-cid.ts
@@ -0,0 +1,38 @@
+//
+// Copyright 2021 Vulcanize, Inc.
+//
+
+import 'reflect-metadata';
+import debug from 'debug';
+
+import { InspectCIDCmd } from '@cerc-io/cli';
+import { getGraphDbAndWatcher } from '@cerc-io/graph-node';
+
+import { Database, ENTITY_QUERY_TYPE_MAP, ENTITY_TO_LATEST_ENTITY_MAP } from '../database';
+import { Indexer } from '../indexer';
+
+const log = debug('vulcanize:inspect-cid');
+
+const main = async (): Promise => {
+ const inspectCIDCmd = new InspectCIDCmd();
+ await inspectCIDCmd.init(Database);
+
+ const { graphWatcher } = await getGraphDbAndWatcher(
+ inspectCIDCmd.config.server,
+ inspectCIDCmd.clients.ethClient,
+ inspectCIDCmd.ethProvider,
+ inspectCIDCmd.database.baseDatabase,
+ ENTITY_QUERY_TYPE_MAP,
+ ENTITY_TO_LATEST_ENTITY_MAP
+ );
+
+ await inspectCIDCmd.initIndexer(Indexer, graphWatcher);
+
+ await inspectCIDCmd.exec();
+};
+
+main().catch(err => {
+ log(err);
+}).finally(() => {
+ process.exit(0);
+});
diff --git a/packages/v3-watcher/src/cli/reset-cmds/job-queue.ts b/packages/v3-watcher/src/cli/reset-cmds/job-queue.ts
new file mode 100644
index 0000000..c33cbfd
--- /dev/null
+++ b/packages/v3-watcher/src/cli/reset-cmds/job-queue.ts
@@ -0,0 +1,22 @@
+//
+// Copyright 2021 Vulcanize, Inc.
+//
+
+import debug from 'debug';
+
+import { getConfig, resetJobs, Config } from '@cerc-io/util';
+
+const log = debug('vulcanize:reset-job-queue');
+
+export const command = 'job-queue';
+
+export const desc = 'Reset job queue';
+
+export const builder = {};
+
+export const handler = async (argv: any): Promise => {
+ const config: Config = await getConfig(argv.configFile);
+ await resetJobs(config);
+
+ log('Job queue reset successfully');
+};
diff --git a/packages/v3-watcher/src/cli/reset-cmds/state.ts b/packages/v3-watcher/src/cli/reset-cmds/state.ts
new file mode 100644
index 0000000..33211d6
--- /dev/null
+++ b/packages/v3-watcher/src/cli/reset-cmds/state.ts
@@ -0,0 +1,24 @@
+//
+// Copyright 2022 Vulcanize, Inc.
+//
+
+import { ResetStateCmd } from '@cerc-io/cli';
+
+import { Database } from '../../database';
+
+export const command = 'state';
+
+export const desc = 'Reset State to a given block number';
+
+export const builder = {
+ blockNumber: {
+ type: 'number'
+ }
+};
+
+export const handler = async (argv: any): Promise => {
+ const resetStateCmd = new ResetStateCmd();
+ await resetStateCmd.init(argv, Database);
+
+ await resetStateCmd.exec();
+};
diff --git a/packages/v3-watcher/src/cli/reset-cmds/watcher.ts b/packages/v3-watcher/src/cli/reset-cmds/watcher.ts
new file mode 100644
index 0000000..827fd28
--- /dev/null
+++ b/packages/v3-watcher/src/cli/reset-cmds/watcher.ts
@@ -0,0 +1,37 @@
+//
+// Copyright 2021 Vulcanize, Inc.
+//
+
+import { ResetWatcherCmd } from '@cerc-io/cli';
+import { getGraphDbAndWatcher } from '@cerc-io/graph-node';
+
+import { Database, ENTITY_QUERY_TYPE_MAP, ENTITY_TO_LATEST_ENTITY_MAP } from '../../database';
+import { Indexer } from '../../indexer';
+
+export const command = 'watcher';
+
+export const desc = 'Reset watcher to a block number';
+
+export const builder = {
+ blockNumber: {
+ type: 'number'
+ }
+};
+
+export const handler = async (argv: any): Promise => {
+ const resetWatcherCmd = new ResetWatcherCmd();
+ await resetWatcherCmd.init(argv, Database);
+
+ const { graphWatcher } = await getGraphDbAndWatcher(
+ resetWatcherCmd.config.server,
+ resetWatcherCmd.clients.ethClient,
+ resetWatcherCmd.ethProvider,
+ resetWatcherCmd.database.baseDatabase,
+ ENTITY_QUERY_TYPE_MAP,
+ ENTITY_TO_LATEST_ENTITY_MAP
+ );
+
+ await resetWatcherCmd.initIndexer(Indexer, graphWatcher);
+
+ await resetWatcherCmd.exec();
+};
diff --git a/packages/v3-watcher/src/cli/reset.ts b/packages/v3-watcher/src/cli/reset.ts
new file mode 100644
index 0000000..95648c8
--- /dev/null
+++ b/packages/v3-watcher/src/cli/reset.ts
@@ -0,0 +1,24 @@
+//
+// Copyright 2021 Vulcanize, Inc.
+//
+
+import 'reflect-metadata';
+import debug from 'debug';
+
+import { getResetYargs } from '@cerc-io/util';
+
+const log = debug('vulcanize:reset');
+
+const main = async () => {
+ return getResetYargs()
+ .commandDir('reset-cmds', { extensions: ['ts', 'js'], exclude: /([a-zA-Z0-9\s_\\.\-:])+(.d.ts)$/ })
+ .demandCommand(1)
+ .help()
+ .argv;
+};
+
+main().then(() => {
+ process.exit();
+}).catch(err => {
+ log(err);
+});
diff --git a/packages/v3-watcher/src/cli/watch-contract.ts b/packages/v3-watcher/src/cli/watch-contract.ts
new file mode 100644
index 0000000..7d6ce1a
--- /dev/null
+++ b/packages/v3-watcher/src/cli/watch-contract.ts
@@ -0,0 +1,38 @@
+//
+// Copyright 2021 Vulcanize, Inc.
+//
+
+import 'reflect-metadata';
+import debug from 'debug';
+
+import { WatchContractCmd } from '@cerc-io/cli';
+import { getGraphDbAndWatcher } from '@cerc-io/graph-node';
+
+import { Database, ENTITY_QUERY_TYPE_MAP, ENTITY_TO_LATEST_ENTITY_MAP } from '../database';
+import { Indexer } from '../indexer';
+
+const log = debug('vulcanize:watch-contract');
+
+const main = async (): Promise => {
+ const watchContractCmd = new WatchContractCmd();
+ await watchContractCmd.init(Database);
+
+ const { graphWatcher } = await getGraphDbAndWatcher(
+ watchContractCmd.config.server,
+ watchContractCmd.clients.ethClient,
+ watchContractCmd.ethProvider,
+ watchContractCmd.database.baseDatabase,
+ ENTITY_QUERY_TYPE_MAP,
+ ENTITY_TO_LATEST_ENTITY_MAP
+ );
+
+ await watchContractCmd.initIndexer(Indexer, graphWatcher);
+
+ await watchContractCmd.exec();
+};
+
+main().catch(err => {
+ log(err);
+}).finally(() => {
+ process.exit(0);
+});
diff --git a/packages/v3-watcher/src/client.ts b/packages/v3-watcher/src/client.ts
new file mode 100644
index 0000000..8bb2bb0
--- /dev/null
+++ b/packages/v3-watcher/src/client.ts
@@ -0,0 +1,55 @@
+//
+// Copyright 2021 Vulcanize, Inc.
+//
+
+import { gql } from '@apollo/client/core';
+import { GraphQLClient, GraphQLConfig } from '@cerc-io/ipld-eth-client';
+
+import { queries, mutations, subscriptions } from './gql';
+
+export class Client {
+ _config: GraphQLConfig;
+ _client: GraphQLClient;
+
+ constructor (config: GraphQLConfig) {
+ this._config = config;
+
+ this._client = new GraphQLClient(config);
+ }
+
+ async getEvents (blockHash: string, contractAddress: string, name: string): Promise {
+ const { events } = await this._client.query(
+ gql(queries.events),
+ { blockHash, contractAddress, name }
+ );
+
+ return events;
+ }
+
+ async getEventsInRange (fromBlockNumber: number, toBlockNumber: number): Promise {
+ const { eventsInRange } = await this._client.query(
+ gql(queries.eventsInRange),
+ { fromBlockNumber, toBlockNumber }
+ );
+
+ return eventsInRange;
+ }
+
+ async watchContract (contractAddress: string, startingBlock?: number): Promise {
+ const { watchContract } = await this._client.mutate(
+ gql(mutations.watchContract),
+ { contractAddress, startingBlock }
+ );
+
+ return watchContract;
+ }
+
+ async watchEvents (onNext: (value: any) => void): Promise {
+ return this._client.subscribe(
+ gql(subscriptions.onEvent),
+ ({ data }) => {
+ onNext(data.onEvent);
+ }
+ );
+ }
+}
diff --git a/packages/v3-watcher/src/database.ts b/packages/v3-watcher/src/database.ts
new file mode 100644
index 0000000..6d893c8
--- /dev/null
+++ b/packages/v3-watcher/src/database.ts
@@ -0,0 +1,307 @@
+//
+// Copyright 2021 Vulcanize, Inc.
+//
+
+import assert from 'assert';
+import { Connection, ConnectionOptions, DeepPartial, FindConditions, QueryRunner, FindManyOptions, EntityTarget } from 'typeorm';
+import path from 'path';
+
+import {
+ ENTITY_QUERY_TYPE,
+ Database as BaseDatabase,
+ DatabaseInterface,
+ QueryOptions,
+ StateKind,
+ Where
+} from '@cerc-io/util';
+
+import { Contract } from './entity/Contract';
+import { Event } from './entity/Event';
+import { SyncStatus } from './entity/SyncStatus';
+import { StateSyncStatus } from './entity/StateSyncStatus';
+import { BlockProgress } from './entity/BlockProgress';
+import { State } from './entity/State';
+import { Factory } from './entity/Factory';
+import { Bundle } from './entity/Bundle';
+import { Token } from './entity/Token';
+import { Pool } from './entity/Pool';
+import { Tick } from './entity/Tick';
+import { Position } from './entity/Position';
+import { PositionSnapshot } from './entity/PositionSnapshot';
+import { Transaction } from './entity/Transaction';
+import { Mint } from './entity/Mint';
+import { Burn } from './entity/Burn';
+import { Swap } from './entity/Swap';
+import { Collect } from './entity/Collect';
+import { Flash } from './entity/Flash';
+import { UniswapDayData } from './entity/UniswapDayData';
+import { PoolDayData } from './entity/PoolDayData';
+import { PoolHourData } from './entity/PoolHourData';
+import { TickHourData } from './entity/TickHourData';
+import { TickDayData } from './entity/TickDayData';
+import { TokenDayData } from './entity/TokenDayData';
+import { TokenHourData } from './entity/TokenHourData';
+import { IncreaseEvent } from './entity/IncreaseEvent';
+import { DecreaseEvent } from './entity/DecreaseEvent';
+import { SetProtocolFeeEvent } from './entity/SetProtocolFeeEvent';
+
+export const SUBGRAPH_ENTITIES = new Set([Factory, Bundle, Token, Pool, Tick, Position, PositionSnapshot, Transaction, Mint, Burn, Swap, Collect, Flash, UniswapDayData, PoolDayData, PoolHourData, TickHourData, TickDayData, TokenDayData, TokenHourData, IncreaseEvent, DecreaseEvent, SetProtocolFeeEvent]);
+export const ENTITIES = [...SUBGRAPH_ENTITIES];
+// Map: Entity to suitable query type.
+export const ENTITY_QUERY_TYPE_MAP = new Map any, ENTITY_QUERY_TYPE>([]);
+
+export const ENTITY_TO_LATEST_ENTITY_MAP: Map = new Map();
+
+export class Database implements DatabaseInterface {
+ _config: ConnectionOptions;
+ _conn!: Connection;
+ _baseDatabase: BaseDatabase;
+ _propColMaps: { [key: string]: Map; };
+
+ constructor (config: ConnectionOptions) {
+ assert(config);
+
+ this._config = {
+ ...config,
+ subscribers: [path.join(__dirname, 'entity/Subscriber.*')],
+ entities: [path.join(__dirname, 'entity/*')]
+ };
+
+ this._baseDatabase = new BaseDatabase(this._config);
+ this._propColMaps = {};
+ }
+
+ get baseDatabase (): BaseDatabase {
+ return this._baseDatabase;
+ }
+
+ async init (): Promise {
+ this._conn = await this._baseDatabase.init();
+ }
+
+ async close (): Promise {
+ return this._baseDatabase.close();
+ }
+
+ getNewState (): State {
+ return new State();
+ }
+
+ async getStates (where: FindConditions): Promise {
+ const repo = this._conn.getRepository(State);
+
+ return this._baseDatabase.getStates(repo, where);
+ }
+
+ async getLatestState (contractAddress: string, kind: StateKind | null, blockNumber?: number): Promise {
+ const repo = this._conn.getRepository(State);
+
+ return this._baseDatabase.getLatestState(repo, contractAddress, kind, blockNumber);
+ }
+
+ async getPrevState (blockHash: string, contractAddress: string, kind?: string): Promise {
+ const repo = this._conn.getRepository(State);
+
+ return this._baseDatabase.getPrevState(repo, blockHash, contractAddress, kind);
+ }
+
+ // Fetch all diff States after the specified block number.
+ async getDiffStatesInRange (contractAddress: string, startblock: number, endBlock: number): Promise {
+ const repo = this._conn.getRepository(State);
+
+ return this._baseDatabase.getDiffStatesInRange(repo, contractAddress, startblock, endBlock);
+ }
+
+ async saveOrUpdateState (dbTx: QueryRunner, state: State): Promise {
+ const repo = dbTx.manager.getRepository(State);
+
+ return this._baseDatabase.saveOrUpdateState(repo, state);
+ }
+
+ async removeStates (dbTx: QueryRunner, blockNumber: number, kind: string): Promise {
+ const repo = dbTx.manager.getRepository(State);
+
+ await this._baseDatabase.removeStates(repo, blockNumber, kind);
+ }
+
+ async removeStatesAfterBlock (dbTx: QueryRunner, blockNumber: number): Promise {
+ const repo = dbTx.manager.getRepository(State);
+
+ await this._baseDatabase.removeStatesAfterBlock(repo, blockNumber);
+ }
+
+ async getStateSyncStatus (): Promise {
+ const repo = this._conn.getRepository(StateSyncStatus);
+
+ return this._baseDatabase.getStateSyncStatus(repo);
+ }
+
+ async updateStateSyncStatusIndexedBlock (queryRunner: QueryRunner, blockNumber: number, force?: boolean): Promise {
+ const repo = queryRunner.manager.getRepository(StateSyncStatus);
+
+ return this._baseDatabase.updateStateSyncStatusIndexedBlock(repo, blockNumber, force);
+ }
+
+ async updateStateSyncStatusCheckpointBlock (queryRunner: QueryRunner, blockNumber: number, force?: boolean): Promise {
+ const repo = queryRunner.manager.getRepository(StateSyncStatus);
+
+ return this._baseDatabase.updateStateSyncStatusCheckpointBlock(repo, blockNumber, force);
+ }
+
+ async getContracts (): Promise {
+ const repo = this._conn.getRepository(Contract);
+
+ return this._baseDatabase.getContracts(repo);
+ }
+
+ async createTransactionRunner (): Promise {
+ return this._baseDatabase.createTransactionRunner();
+ }
+
+ async getProcessedBlockCountForRange (fromBlockNumber: number, toBlockNumber: number): Promise<{ expected: number, actual: number }> {
+ const repo = this._conn.getRepository(BlockProgress);
+
+ return this._baseDatabase.getProcessedBlockCountForRange(repo, fromBlockNumber, toBlockNumber);
+ }
+
+ async getEventsInRange (fromBlockNumber: number, toBlockNumber: number): Promise> {
+ const repo = this._conn.getRepository(Event);
+
+ return this._baseDatabase.getEventsInRange(repo, fromBlockNumber, toBlockNumber);
+ }
+
+ async saveEventEntity (queryRunner: QueryRunner, entity: Event): Promise {
+ const repo = queryRunner.manager.getRepository(Event);
+ return this._baseDatabase.saveEventEntity(repo, entity);
+ }
+
+ async getBlockEvents (blockHash: string, where: Where, queryOptions: QueryOptions): Promise {
+ const repo = this._conn.getRepository(Event);
+
+ return this._baseDatabase.getBlockEvents(repo, blockHash, where, queryOptions);
+ }
+
+ async saveBlockWithEvents (queryRunner: QueryRunner, block: DeepPartial, events: DeepPartial[]): Promise {
+ const blockRepo = queryRunner.manager.getRepository(BlockProgress);
+ const eventRepo = queryRunner.manager.getRepository(Event);
+
+ return this._baseDatabase.saveBlockWithEvents(blockRepo, eventRepo, block, events);
+ }
+
+ async saveEvents (queryRunner: QueryRunner, events: Event[]): Promise {
+ const eventRepo = queryRunner.manager.getRepository(Event);
+
+ return this._baseDatabase.saveEvents(eventRepo, events);
+ }
+
+ async saveBlockProgress (queryRunner: QueryRunner, block: DeepPartial): Promise {
+ const repo = queryRunner.manager.getRepository(BlockProgress);
+
+ return this._baseDatabase.saveBlockProgress(repo, block);
+ }
+
+ async saveContract (queryRunner: QueryRunner, address: string, kind: string, checkpoint: boolean, startingBlock: number, context?: any): Promise {
+ const repo = queryRunner.manager.getRepository(Contract);
+
+ return this._baseDatabase.saveContract(repo, address, kind, checkpoint, startingBlock, context);
+ }
+
+ async updateSyncStatusIndexedBlock (queryRunner: QueryRunner, blockHash: string, blockNumber: number, force = false): Promise {
+ const repo = queryRunner.manager.getRepository(SyncStatus);
+
+ return this._baseDatabase.updateSyncStatusIndexedBlock(repo, blockHash, blockNumber, force);
+ }
+
+ async updateSyncStatusCanonicalBlock (queryRunner: QueryRunner, blockHash: string, blockNumber: number, force = false): Promise {
+ const repo = queryRunner.manager.getRepository(SyncStatus);
+
+ return this._baseDatabase.updateSyncStatusCanonicalBlock(repo, blockHash, blockNumber, force);
+ }
+
+ async updateSyncStatusChainHead (queryRunner: QueryRunner, blockHash: string, blockNumber: number, force = false): Promise {
+ const repo = queryRunner.manager.getRepository(SyncStatus);
+
+ return this._baseDatabase.updateSyncStatusChainHead(repo, blockHash, blockNumber, force);
+ }
+
+ async updateSyncStatusProcessedBlock (queryRunner: QueryRunner, blockHash: string, blockNumber: number, force = false): Promise {
+ const repo = queryRunner.manager.getRepository(SyncStatus);
+
+ return this._baseDatabase.updateSyncStatusProcessedBlock(repo, blockHash, blockNumber, force);
+ }
+
+ async updateSyncStatusIndexingError (queryRunner: QueryRunner, hasIndexingError: boolean): Promise {
+ const repo = queryRunner.manager.getRepository(SyncStatus);
+
+ return this._baseDatabase.updateSyncStatusIndexingError(repo, hasIndexingError);
+ }
+
+ async updateSyncStatus (queryRunner: QueryRunner, syncStatus: DeepPartial): Promise {
+ const repo = queryRunner.manager.getRepository(SyncStatus);
+
+ return this._baseDatabase.updateSyncStatus(repo, syncStatus);
+ }
+
+ async getSyncStatus (queryRunner: QueryRunner): Promise {
+ const repo = queryRunner.manager.getRepository(SyncStatus);
+
+ return this._baseDatabase.getSyncStatus(repo);
+ }
+
+ async getEvent (id: string): Promise {
+ const repo = this._conn.getRepository(Event);
+
+ return this._baseDatabase.getEvent(repo, id);
+ }
+
+ async getBlocksAtHeight (height: number, isPruned: boolean): Promise {
+ const repo = this._conn.getRepository(BlockProgress);
+
+ return this._baseDatabase.getBlocksAtHeight(repo, height, isPruned);
+ }
+
+ async markBlocksAsPruned (queryRunner: QueryRunner, blocks: BlockProgress[]): Promise {
+ const repo = queryRunner.manager.getRepository(BlockProgress);
+
+ return this._baseDatabase.markBlocksAsPruned(repo, blocks);
+ }
+
+ async getBlockProgress (blockHash: string): Promise {
+ const repo = this._conn.getRepository(BlockProgress);
+ return this._baseDatabase.getBlockProgress(repo, blockHash);
+ }
+
+ async getBlockProgressEntities (where: FindConditions, options: FindManyOptions): Promise {
+ const repo = this._conn.getRepository(BlockProgress);
+
+ return this._baseDatabase.getBlockProgressEntities(repo, where, options);
+ }
+
+ async getEntitiesForBlock (blockHash: string, tableName: string): Promise {
+ return this._baseDatabase.getEntitiesForBlock(blockHash, tableName);
+ }
+
+ async updateBlockProgress (queryRunner: QueryRunner, block: BlockProgress, lastProcessedEventIndex: number): Promise {
+ const repo = queryRunner.manager.getRepository(BlockProgress);
+
+ return this._baseDatabase.updateBlockProgress(repo, block, lastProcessedEventIndex);
+ }
+
+ async removeEntities (queryRunner: QueryRunner, entity: new () => Entity, findConditions?: FindManyOptions | FindConditions): Promise {
+ return this._baseDatabase.removeEntities(queryRunner, entity, findConditions);
+ }
+
+ async deleteEntitiesByConditions (queryRunner: QueryRunner, entity: EntityTarget, findConditions: FindConditions): Promise {
+ await this._baseDatabase.deleteEntitiesByConditions(queryRunner, entity, findConditions);
+ }
+
+ async getAncestorAtHeight (blockHash: string, height: number): Promise {
+ return this._baseDatabase.getAncestorAtHeight(blockHash, height);
+ }
+
+ _getPropertyColumnMapForEntity (entityName: string): Map {
+ return this._conn.getMetadata(entityName).ownColumns.reduce((acc, curr) => {
+ return acc.set(curr.propertyName, curr.databaseName);
+ }, new Map());
+ }
+}
diff --git a/packages/v3-watcher/src/entity/BlockProgress.ts b/packages/v3-watcher/src/entity/BlockProgress.ts
new file mode 100644
index 0000000..ded4a86
--- /dev/null
+++ b/packages/v3-watcher/src/entity/BlockProgress.ts
@@ -0,0 +1,48 @@
+//
+// Copyright 2021 Vulcanize, Inc.
+//
+
+import { Entity, PrimaryGeneratedColumn, Column, Index, CreateDateColumn } from 'typeorm';
+import { BlockProgressInterface } from '@cerc-io/util';
+
+@Entity()
+@Index(['blockHash'], { unique: true })
+@Index(['blockNumber'])
+@Index(['parentHash'])
+export class BlockProgress implements BlockProgressInterface {
+ @PrimaryGeneratedColumn()
+ id!: number;
+
+ @Column('varchar', { nullable: true })
+ cid!: string | null;
+
+ @Column('varchar', { length: 66 })
+ blockHash!: string;
+
+ @Column('varchar', { length: 66 })
+ parentHash!: string;
+
+ @Column('integer')
+ blockNumber!: number;
+
+ @Column('integer')
+ blockTimestamp!: number;
+
+ @Column('integer')
+ numEvents!: number;
+
+ @Column('integer')
+ numProcessedEvents!: number;
+
+ @Column('integer')
+ lastProcessedEventIndex!: number;
+
+ @Column('boolean')
+ isComplete!: boolean;
+
+ @Column('boolean', { default: false })
+ isPruned!: boolean;
+
+ @CreateDateColumn()
+ createdAt!: Date;
+}
diff --git a/packages/v3-watcher/src/entity/Bundle.ts b/packages/v3-watcher/src/entity/Bundle.ts
new file mode 100644
index 0000000..1d9c3b6
--- /dev/null
+++ b/packages/v3-watcher/src/entity/Bundle.ts
@@ -0,0 +1,29 @@
+//
+// Copyright 2021 Vulcanize, Inc.
+//
+
+import { Entity, PrimaryColumn, Column, Index } from 'typeorm';
+import { decimalTransformer } from '@cerc-io/util';
+import { Decimal } from 'decimal.js';
+
+@Entity()
+@Index(['blockNumber'])
+export class Bundle {
+ @PrimaryColumn('varchar')
+ id!: string;
+
+ @PrimaryColumn('varchar', { length: 66 })
+ blockHash!: string;
+
+ @Column('integer')
+ blockNumber!: number;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ ethPriceUSD!: Decimal;
+
+ @Column('boolean', { default: false })
+ isPruned!: boolean;
+
+ @Column('boolean', { default: false })
+ isRemoved!: boolean;
+}
diff --git a/packages/v3-watcher/src/entity/Burn.ts b/packages/v3-watcher/src/entity/Burn.ts
new file mode 100644
index 0000000..842a968
--- /dev/null
+++ b/packages/v3-watcher/src/entity/Burn.ts
@@ -0,0 +1,68 @@
+//
+// Copyright 2021 Vulcanize, Inc.
+//
+
+import { Entity, PrimaryColumn, Column, Index } from 'typeorm';
+import { decimalTransformer, bigintTransformer } from '@cerc-io/util';
+import { Decimal } from 'decimal.js';
+
+@Entity()
+@Index(['blockNumber'])
+export class Burn {
+ @PrimaryColumn('varchar')
+ id!: string;
+
+ @PrimaryColumn('varchar', { length: 66 })
+ blockHash!: string;
+
+ @Column('integer')
+ blockNumber!: number;
+
+ @Column('varchar')
+ transaction!: string;
+
+ @Column('varchar')
+ pool!: string;
+
+ @Column('varchar')
+ token0!: string;
+
+ @Column('varchar')
+ token1!: string;
+
+ @Column('numeric', { transformer: bigintTransformer })
+ timestamp!: bigint;
+
+ @Column('varchar', { nullable: true })
+ owner!: string | null;
+
+ @Column('varchar')
+ origin!: string;
+
+ @Column('numeric', { transformer: bigintTransformer })
+ amount!: bigint;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ amount0!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ amount1!: Decimal;
+
+ @Column('numeric', { nullable: true, transformer: decimalTransformer })
+ amountUSD!: Decimal | null;
+
+ @Column('numeric', { transformer: bigintTransformer })
+ tickLower!: bigint;
+
+ @Column('numeric', { transformer: bigintTransformer })
+ tickUpper!: bigint;
+
+ @Column('numeric', { nullable: true, transformer: bigintTransformer })
+ logIndex!: bigint | null;
+
+ @Column('boolean', { default: false })
+ isPruned!: boolean;
+
+ @Column('boolean', { default: false })
+ isRemoved!: boolean;
+}
diff --git a/packages/v3-watcher/src/entity/Collect.ts b/packages/v3-watcher/src/entity/Collect.ts
new file mode 100644
index 0000000..e926d7c
--- /dev/null
+++ b/packages/v3-watcher/src/entity/Collect.ts
@@ -0,0 +1,56 @@
+//
+// Copyright 2021 Vulcanize, Inc.
+//
+
+import { Entity, PrimaryColumn, Column, Index } from 'typeorm';
+import { decimalTransformer, bigintTransformer } from '@cerc-io/util';
+import { Decimal } from 'decimal.js';
+
+@Entity()
+@Index(['blockNumber'])
+export class Collect {
+ @PrimaryColumn('varchar')
+ id!: string;
+
+ @PrimaryColumn('varchar', { length: 66 })
+ blockHash!: string;
+
+ @Column('integer')
+ blockNumber!: number;
+
+ @Column('varchar')
+ transaction!: string;
+
+ @Column('numeric', { transformer: bigintTransformer })
+ timestamp!: bigint;
+
+ @Column('varchar')
+ pool!: string;
+
+ @Column('varchar', { nullable: true })
+ owner!: string | null;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ amount0!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ amount1!: Decimal;
+
+ @Column('numeric', { nullable: true, transformer: decimalTransformer })
+ amountUSD!: Decimal | null;
+
+ @Column('numeric', { transformer: bigintTransformer })
+ tickLower!: bigint;
+
+ @Column('numeric', { transformer: bigintTransformer })
+ tickUpper!: bigint;
+
+ @Column('numeric', { nullable: true, transformer: bigintTransformer })
+ logIndex!: bigint | null;
+
+ @Column('boolean', { default: false })
+ isPruned!: boolean;
+
+ @Column('boolean', { default: false })
+ isRemoved!: boolean;
+}
diff --git a/packages/v3-watcher/src/entity/Contract.ts b/packages/v3-watcher/src/entity/Contract.ts
new file mode 100644
index 0000000..e4defa8
--- /dev/null
+++ b/packages/v3-watcher/src/entity/Contract.ts
@@ -0,0 +1,27 @@
+//
+// Copyright 2021 Vulcanize, Inc.
+//
+
+import { Entity, PrimaryGeneratedColumn, Column, Index } from 'typeorm';
+
+@Entity()
+@Index(['address'], { unique: true })
+export class Contract {
+ @PrimaryGeneratedColumn()
+ id!: number;
+
+ @Column('varchar', { length: 42 })
+ address!: string;
+
+ @Column('varchar')
+ kind!: string;
+
+ @Column('boolean')
+ checkpoint!: boolean;
+
+ @Column('integer')
+ startingBlock!: number;
+
+ @Column('jsonb', { nullable: true })
+ context!: Record;
+}
diff --git a/packages/v3-watcher/src/entity/DecreaseEvent.ts b/packages/v3-watcher/src/entity/DecreaseEvent.ts
new file mode 100644
index 0000000..39bbcb3
--- /dev/null
+++ b/packages/v3-watcher/src/entity/DecreaseEvent.ts
@@ -0,0 +1,52 @@
+//
+// Copyright 2021 Vulcanize, Inc.
+//
+
+import { Entity, PrimaryColumn, Column, Index } from 'typeorm';
+import { bigintTransformer } from '@cerc-io/util';
+
+@Entity()
+@Index(['blockNumber'])
+export class DecreaseEvent {
+ @PrimaryColumn('varchar')
+ id!: string;
+
+ @PrimaryColumn('varchar', { length: 66 })
+ blockHash!: string;
+
+ @Column('integer')
+ blockNumber!: number;
+
+ @Column('varchar')
+ pool!: string;
+
+ @Column('numeric', { transformer: bigintTransformer })
+ tokenID!: bigint;
+
+ @Column('varchar')
+ position!: string;
+
+ @Column('numeric', { transformer: bigintTransformer })
+ amount0!: bigint;
+
+ @Column('numeric', { transformer: bigintTransformer })
+ amount1!: bigint;
+
+ @Column('varchar')
+ token0!: string;
+
+ @Column('varchar')
+ token1!: string;
+
+ @Column('numeric', { transformer: bigintTransformer })
+ timeStamp!: bigint;
+
+ @Column('varchar')
+ transaction!: string;
+
+ @Column('boolean', { default: false })
+ isPruned!: boolean;
+
+ @Column('boolean', { default: false })
+ isRemoved!: boolean;
+}
diff --git a/packages/v3-watcher/src/entity/Event.ts b/packages/v3-watcher/src/entity/Event.ts
new file mode 100644
index 0000000..91f1e6d
--- /dev/null
+++ b/packages/v3-watcher/src/entity/Event.ts
@@ -0,0 +1,38 @@
+//
+// Copyright 2021 Vulcanize, Inc.
+//
+
+import { Entity, PrimaryGeneratedColumn, Column, Index, ManyToOne } from 'typeorm';
+import { BlockProgress } from './BlockProgress';
+
+@Entity()
+@Index(['block', 'contract'])
+@Index(['block', 'contract', 'eventName'])
+export class Event {
+ @PrimaryGeneratedColumn()
+ id!: number;
+
+ @ManyToOne(() => BlockProgress, { onDelete: 'CASCADE' })
+ block!: BlockProgress;
+
+ @Column('varchar', { length: 66 })
+ txHash!: string;
+
+ @Column('integer')
+ index!: number;
+
+ @Column('varchar', { length: 42 })
+ contract!: string;
+
+ @Column('varchar', { length: 256 })
+ eventName!: string;
+
+ @Column('text')
+ eventInfo!: string;
+
+ @Column('text')
+ extraInfo!: string;
+
+ @Column('text')
+ proof!: string;
+}
diff --git a/packages/v3-watcher/src/entity/Factory.ts b/packages/v3-watcher/src/entity/Factory.ts
new file mode 100644
index 0000000..97522b7
--- /dev/null
+++ b/packages/v3-watcher/src/entity/Factory.ts
@@ -0,0 +1,62 @@
+//
+// Copyright 2021 Vulcanize, Inc.
+//
+
+import { Entity, PrimaryColumn, Column, Index } from 'typeorm';
+import { decimalTransformer, bigintTransformer } from '@cerc-io/util';
+import { Decimal } from 'decimal.js';
+
+@Entity()
+@Index(['blockNumber'])
+export class Factory {
+ @PrimaryColumn('varchar')
+ id!: string;
+
+ @PrimaryColumn('varchar', { length: 66 })
+ blockHash!: string;
+
+ @Column('integer')
+ blockNumber!: number;
+
+ @Column('numeric', { transformer: bigintTransformer })
+ poolCount!: bigint;
+
+ @Column('numeric', { transformer: bigintTransformer })
+ txCount!: bigint;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ totalVolumeUSD!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ totalVolumeETH!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ totalFeesUSD!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ totalFeesETH!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ untrackedVolumeUSD!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ totalValueLockedUSD!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ totalValueLockedETH!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ totalValueLockedUSDUntracked!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ totalValueLockedETHUntracked!: Decimal;
+
+ @Column('varchar')
+ owner!: string;
+
+ @Column('boolean', { default: false })
+ isPruned!: boolean;
+
+ @Column('boolean', { default: false })
+ isRemoved!: boolean;
+}
diff --git a/packages/v3-watcher/src/entity/Flash.ts b/packages/v3-watcher/src/entity/Flash.ts
new file mode 100644
index 0000000..c6b7b49
--- /dev/null
+++ b/packages/v3-watcher/src/entity/Flash.ts
@@ -0,0 +1,59 @@
+//
+// Copyright 2021 Vulcanize, Inc.
+//
+
+import { Entity, PrimaryColumn, Column, Index } from 'typeorm';
+import { decimalTransformer, bigintTransformer } from '@cerc-io/util';
+import { Decimal } from 'decimal.js';
+
+@Entity()
+@Index(['blockNumber'])
+export class Flash {
+ @PrimaryColumn('varchar')
+ id!: string;
+
+ @PrimaryColumn('varchar', { length: 66 })
+ blockHash!: string;
+
+ @Column('integer')
+ blockNumber!: number;
+
+ @Column('varchar')
+ transaction!: string;
+
+ @Column('numeric', { transformer: bigintTransformer })
+ timestamp!: bigint;
+
+ @Column('varchar')
+ pool!: string;
+
+ @Column('varchar')
+ sender!: string;
+
+ @Column('varchar')
+ recipient!: string;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ amount0!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ amount1!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ amountUSD!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ amount0Paid!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ amount1Paid!: Decimal;
+
+ @Column('numeric', { nullable: true, transformer: bigintTransformer })
+ logIndex!: bigint | null;
+
+ @Column('boolean', { default: false })
+ isPruned!: boolean;
+
+ @Column('boolean', { default: false })
+ isRemoved!: boolean;
+}
diff --git a/packages/v3-watcher/src/entity/FrothyEntity.ts b/packages/v3-watcher/src/entity/FrothyEntity.ts
new file mode 100644
index 0000000..9898ce8
--- /dev/null
+++ b/packages/v3-watcher/src/entity/FrothyEntity.ts
@@ -0,0 +1,21 @@
+//
+// Copyright 2021 Vulcanize, Inc.
+//
+
+import { Entity, PrimaryColumn, Column, Index } from 'typeorm';
+
+@Entity()
+@Index(['blockNumber'])
+export class FrothyEntity {
+ @PrimaryColumn('varchar')
+ id!: string;
+
+ @PrimaryColumn('varchar')
+ name!: string;
+
+ @PrimaryColumn('varchar', { length: 66 })
+ blockHash!: string;
+
+ @Column('integer')
+ blockNumber!: number;
+}
diff --git a/packages/v3-watcher/src/entity/IncreaseEvent.ts b/packages/v3-watcher/src/entity/IncreaseEvent.ts
new file mode 100644
index 0000000..613a867
--- /dev/null
+++ b/packages/v3-watcher/src/entity/IncreaseEvent.ts
@@ -0,0 +1,52 @@
+//
+// Copyright 2021 Vulcanize, Inc.
+//
+
+import { Entity, PrimaryColumn, Column, Index } from 'typeorm';
+import { bigintTransformer } from '@cerc-io/util';
+
+@Entity()
+@Index(['blockNumber'])
+export class IncreaseEvent {
+ @PrimaryColumn('varchar')
+ id!: string;
+
+ @PrimaryColumn('varchar', { length: 66 })
+ blockHash!: string;
+
+ @Column('integer')
+ blockNumber!: number;
+
+ @Column('varchar')
+ pool!: string;
+
+ @Column('numeric', { transformer: bigintTransformer })
+ tokenID!: bigint;
+
+ @Column('varchar')
+ position!: string;
+
+ @Column('numeric', { transformer: bigintTransformer })
+ amount0!: bigint;
+
+ @Column('numeric', { transformer: bigintTransformer })
+ amount1!: bigint;
+
+ @Column('varchar')
+ token0!: string;
+
+ @Column('varchar')
+ token1!: string;
+
+ @Column('numeric', { transformer: bigintTransformer })
+ timeStamp!: bigint;
+
+ @Column('varchar')
+ transaction!: string;
+
+ @Column('boolean', { default: false })
+ isPruned!: boolean;
+
+ @Column('boolean', { default: false })
+ isRemoved!: boolean;
+}
diff --git a/packages/v3-watcher/src/entity/Mint.ts b/packages/v3-watcher/src/entity/Mint.ts
new file mode 100644
index 0000000..17d8c03
--- /dev/null
+++ b/packages/v3-watcher/src/entity/Mint.ts
@@ -0,0 +1,71 @@
+//
+// Copyright 2021 Vulcanize, Inc.
+//
+
+import { Entity, PrimaryColumn, Column, Index } from 'typeorm';
+import { decimalTransformer, bigintTransformer } from '@cerc-io/util';
+import { Decimal } from 'decimal.js';
+
+@Entity()
+@Index(['blockNumber'])
+export class Mint {
+ @PrimaryColumn('varchar')
+ id!: string;
+
+ @PrimaryColumn('varchar', { length: 66 })
+ blockHash!: string;
+
+ @Column('integer')
+ blockNumber!: number;
+
+ @Column('varchar')
+ transaction!: string;
+
+ @Column('numeric', { transformer: bigintTransformer })
+ timestamp!: bigint;
+
+ @Column('varchar')
+ pool!: string;
+
+ @Column('varchar')
+ token0!: string;
+
+ @Column('varchar')
+ token1!: string;
+
+ @Column('varchar')
+ owner!: string;
+
+ @Column('varchar', { nullable: true })
+ sender!: string | null;
+
+ @Column('varchar')
+ origin!: string;
+
+ @Column('numeric', { transformer: bigintTransformer })
+ amount!: bigint;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ amount0!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ amount1!: Decimal;
+
+ @Column('numeric', { nullable: true, transformer: decimalTransformer })
+ amountUSD!: Decimal | null;
+
+ @Column('numeric', { transformer: bigintTransformer })
+ tickLower!: bigint;
+
+ @Column('numeric', { transformer: bigintTransformer })
+ tickUpper!: bigint;
+
+ @Column('numeric', { nullable: true, transformer: bigintTransformer })
+ logIndex!: bigint | null;
+
+ @Column('boolean', { default: false })
+ isPruned!: boolean;
+
+ @Column('boolean', { default: false })
+ isRemoved!: boolean;
+}
diff --git a/packages/v3-watcher/src/entity/Pool.ts b/packages/v3-watcher/src/entity/Pool.ts
new file mode 100644
index 0000000..9eed0c4
--- /dev/null
+++ b/packages/v3-watcher/src/entity/Pool.ts
@@ -0,0 +1,113 @@
+//
+// Copyright 2021 Vulcanize, Inc.
+//
+
+import { Entity, PrimaryColumn, Column, Index } from 'typeorm';
+import { decimalTransformer, bigintTransformer } from '@cerc-io/util';
+import { Decimal } from 'decimal.js';
+
+@Entity()
+@Index(['blockNumber'])
+export class Pool {
+ @PrimaryColumn('varchar')
+ id!: string;
+
+ @PrimaryColumn('varchar', { length: 66 })
+ blockHash!: string;
+
+ @Column('integer')
+ blockNumber!: number;
+
+ @Column('numeric', { transformer: bigintTransformer })
+ createdAtTimestamp!: bigint;
+
+ @Column('numeric', { transformer: bigintTransformer })
+ createdAtBlockNumber!: bigint;
+
+ @Column('varchar')
+ token0!: string;
+
+ @Column('varchar')
+ token1!: string;
+
+ @Column('numeric', { transformer: bigintTransformer })
+ feeTier!: bigint;
+
+ @Column('numeric', { transformer: bigintTransformer })
+ liquidity!: bigint;
+
+ @Column('numeric', { transformer: bigintTransformer })
+ sqrtPrice!: bigint;
+
+ @Column('numeric', { transformer: bigintTransformer })
+ feeGrowthGlobal0X128!: bigint;
+
+ @Column('numeric', { transformer: bigintTransformer })
+ feeGrowthGlobal1X128!: bigint;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ token0Price!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ token1Price!: Decimal;
+
+ @Column('numeric', { nullable: true, transformer: bigintTransformer })
+ tick!: bigint | null;
+
+ @Column('numeric', { transformer: bigintTransformer })
+ observationIndex!: bigint;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ volumeToken0!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ volumeToken1!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ volumeUSD!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ untrackedVolumeUSD!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ feesUSD!: Decimal;
+
+ @Column('numeric', { transformer: bigintTransformer })
+ txCount!: bigint;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ collectedFeesToken0!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ collectedFeesToken1!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ collectedFeesUSD!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ totalValueLockedToken0!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ totalValueLockedToken1!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ totalValueLockedETH!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ totalValueLockedUSD!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ totalValueLockedUSDUntracked!: Decimal;
+
+ @Column('boolean')
+ isProtocolFeeEnabled!: boolean;
+
+ @Column('numeric', { transformer: bigintTransformer })
+ liquidityProviderCount!: bigint;
+
+ @Column('boolean', { default: false })
+ isPruned!: boolean;
+
+ @Column('boolean', { default: false })
+ isRemoved!: boolean;
+}
diff --git a/packages/v3-watcher/src/entity/PoolDayData.ts b/packages/v3-watcher/src/entity/PoolDayData.ts
new file mode 100644
index 0000000..651775c
--- /dev/null
+++ b/packages/v3-watcher/src/entity/PoolDayData.ts
@@ -0,0 +1,83 @@
+//
+// Copyright 2021 Vulcanize, Inc.
+//
+
+import { Entity, PrimaryColumn, Column, Index } from 'typeorm';
+import { decimalTransformer, bigintTransformer } from '@cerc-io/util';
+import { Decimal } from 'decimal.js';
+
+@Entity()
+@Index(['blockNumber'])
+export class PoolDayData {
+ @PrimaryColumn('varchar')
+ id!: string;
+
+ @PrimaryColumn('varchar', { length: 66 })
+ blockHash!: string;
+
+ @Column('integer')
+ blockNumber!: number;
+
+ @Column('integer')
+ date!: number;
+
+ @Column('varchar')
+ pool!: string;
+
+ @Column('numeric', { transformer: bigintTransformer })
+ liquidity!: bigint;
+
+ @Column('numeric', { transformer: bigintTransformer })
+ sqrtPrice!: bigint;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ token0Price!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ token1Price!: Decimal;
+
+ @Column('numeric', { nullable: true, transformer: bigintTransformer })
+ tick!: bigint | null;
+
+ @Column('numeric', { transformer: bigintTransformer })
+ feeGrowthGlobal0X128!: bigint;
+
+ @Column('numeric', { transformer: bigintTransformer })
+ feeGrowthGlobal1X128!: bigint;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ tvlUSD!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ volumeToken0!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ volumeToken1!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ volumeUSD!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ feesUSD!: Decimal;
+
+ @Column('numeric', { transformer: bigintTransformer })
+ txCount!: bigint;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ open!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ high!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ low!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ close!: Decimal;
+
+ @Column('boolean', { default: false })
+ isPruned!: boolean;
+
+ @Column('boolean', { default: false })
+ isRemoved!: boolean;
+}
diff --git a/packages/v3-watcher/src/entity/PoolHourData.ts b/packages/v3-watcher/src/entity/PoolHourData.ts
new file mode 100644
index 0000000..9967bdf
--- /dev/null
+++ b/packages/v3-watcher/src/entity/PoolHourData.ts
@@ -0,0 +1,83 @@
+//
+// Copyright 2021 Vulcanize, Inc.
+//
+
+import { Entity, PrimaryColumn, Column, Index } from 'typeorm';
+import { decimalTransformer, bigintTransformer } from '@cerc-io/util';
+import { Decimal } from 'decimal.js';
+
+@Entity()
+@Index(['blockNumber'])
+export class PoolHourData {
+ @PrimaryColumn('varchar')
+ id!: string;
+
+ @PrimaryColumn('varchar', { length: 66 })
+ blockHash!: string;
+
+ @Column('integer')
+ blockNumber!: number;
+
+ @Column('integer')
+ periodStartUnix!: number;
+
+ @Column('varchar')
+ pool!: string;
+
+ @Column('numeric', { transformer: bigintTransformer })
+ liquidity!: bigint;
+
+ @Column('numeric', { transformer: bigintTransformer })
+ sqrtPrice!: bigint;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ token0Price!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ token1Price!: Decimal;
+
+ @Column('numeric', { nullable: true, transformer: bigintTransformer })
+ tick!: bigint | null;
+
+ @Column('numeric', { transformer: bigintTransformer })
+ feeGrowthGlobal0X128!: bigint;
+
+ @Column('numeric', { transformer: bigintTransformer })
+ feeGrowthGlobal1X128!: bigint;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ tvlUSD!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ volumeToken0!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ volumeToken1!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ volumeUSD!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ feesUSD!: Decimal;
+
+ @Column('numeric', { transformer: bigintTransformer })
+ txCount!: bigint;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ open!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ high!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ low!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ close!: Decimal;
+
+ @Column('boolean', { default: false })
+ isPruned!: boolean;
+
+ @Column('boolean', { default: false })
+ isRemoved!: boolean;
+}
diff --git a/packages/v3-watcher/src/entity/Position.ts b/packages/v3-watcher/src/entity/Position.ts
new file mode 100644
index 0000000..216ffc1
--- /dev/null
+++ b/packages/v3-watcher/src/entity/Position.ts
@@ -0,0 +1,89 @@
+//
+// Copyright 2021 Vulcanize, Inc.
+//
+
+import { Entity, PrimaryColumn, Column, Index } from 'typeorm';
+import { decimalTransformer, bigintTransformer } from '@cerc-io/util';
+import { Decimal } from 'decimal.js';
+
+@Entity()
+@Index(['blockNumber'])
+export class Position {
+ @PrimaryColumn('varchar')
+ id!: string;
+
+ @PrimaryColumn('varchar', { length: 66 })
+ blockHash!: string;
+
+ @Column('integer')
+ blockNumber!: number;
+
+ @Column('varchar')
+ owner!: string;
+
+ @Column('varchar')
+ pool!: string;
+
+ @Column('varchar')
+ token0!: string;
+
+ @Column('varchar')
+ token1!: string;
+
+ @Column('varchar')
+ tickLower!: string;
+
+ @Column('varchar')
+ tickUpper!: string;
+
+ @Column('numeric', { transformer: bigintTransformer })
+ liquidity!: bigint;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ depositedToken0!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ depositedToken1!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ withdrawnToken0!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ withdrawnToken1!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ collectedToken0!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ collectedToken1!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ collectedFeesToken0!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ collectedFeesToken1!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ amountDepositedUSD!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ amountWithdrawnUSD!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ amountCollectedUSD!: Decimal;
+
+ @Column('varchar')
+ transaction!: string;
+
+ @Column('numeric', { transformer: bigintTransformer })
+ feeGrowthInside0LastX128!: bigint;
+
+ @Column('numeric', { transformer: bigintTransformer })
+ feeGrowthInside1LastX128!: bigint;
+
+ @Column('boolean', { default: false })
+ isPruned!: boolean;
+
+ @Column('boolean', { default: false })
+ isRemoved!: boolean;
+}
diff --git a/packages/v3-watcher/src/entity/PositionSnapshot.ts b/packages/v3-watcher/src/entity/PositionSnapshot.ts
new file mode 100644
index 0000000..8fb7a19
--- /dev/null
+++ b/packages/v3-watcher/src/entity/PositionSnapshot.ts
@@ -0,0 +1,71 @@
+//
+// Copyright 2021 Vulcanize, Inc.
+//
+
+import { Entity, PrimaryColumn, Column, Index } from 'typeorm';
+import { decimalTransformer, bigintTransformer } from '@cerc-io/util';
+import { Decimal } from 'decimal.js';
+
+@Entity()
+@Index(['blockNumber'])
+export class PositionSnapshot {
+ @PrimaryColumn('varchar')
+ id!: string;
+
+ @PrimaryColumn('varchar', { length: 66 })
+ blockHash!: string;
+
+ @Column('integer')
+ blockNumber!: number;
+
+ @Column('varchar')
+ owner!: string;
+
+ @Column('varchar')
+ pool!: string;
+
+ @Column('varchar')
+ position!: string;
+
+ @Column('numeric', { transformer: bigintTransformer })
+ _blockNumber!: bigint;
+
+ @Column('numeric', { transformer: bigintTransformer })
+ timestamp!: bigint;
+
+ @Column('numeric', { transformer: bigintTransformer })
+ liquidity!: bigint;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ depositedToken0!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ depositedToken1!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ withdrawnToken0!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ withdrawnToken1!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ collectedFeesToken0!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ collectedFeesToken1!: Decimal;
+
+ @Column('varchar')
+ transaction!: string;
+
+ @Column('numeric', { transformer: bigintTransformer })
+ feeGrowthInside0LastX128!: bigint;
+
+ @Column('numeric', { transformer: bigintTransformer })
+ feeGrowthInside1LastX128!: bigint;
+
+ @Column('boolean', { default: false })
+ isPruned!: boolean;
+
+ @Column('boolean', { default: false })
+ isRemoved!: boolean;
+}
diff --git a/packages/v3-watcher/src/entity/SetProtocolFeeEvent.ts b/packages/v3-watcher/src/entity/SetProtocolFeeEvent.ts
new file mode 100644
index 0000000..1dbf728
--- /dev/null
+++ b/packages/v3-watcher/src/entity/SetProtocolFeeEvent.ts
@@ -0,0 +1,46 @@
+//
+// Copyright 2021 Vulcanize, Inc.
+//
+
+import { Entity, PrimaryColumn, Column, Index } from 'typeorm';
+import { bigintTransformer } from '@cerc-io/util';
+
+@Entity()
+@Index(['blockNumber'])
+export class SetProtocolFeeEvent {
+ @PrimaryColumn('varchar')
+ id!: string;
+
+ @PrimaryColumn('varchar', { length: 66 })
+ blockHash!: string;
+
+ @Column('integer')
+ blockNumber!: number;
+
+ @Column('varchar')
+ pool!: string;
+
+ @Column('numeric', { transformer: bigintTransformer })
+ logIndex!: bigint;
+
+ @Column('numeric', { transformer: bigintTransformer })
+ new0!: bigint;
+
+ @Column('numeric', { transformer: bigintTransformer })
+ new1!: bigint;
+
+ @Column('numeric', { transformer: bigintTransformer })
+ old0!: bigint;
+
+ @Column('numeric', { transformer: bigintTransformer })
+ old1!: bigint;
+
+ @Column('numeric', { transformer: bigintTransformer })
+ timestamp!: bigint;
+
+ @Column('boolean', { default: false })
+ isPruned!: boolean;
+
+ @Column('boolean', { default: false })
+ isRemoved!: boolean;
+}
diff --git a/packages/v3-watcher/src/entity/State.ts b/packages/v3-watcher/src/entity/State.ts
new file mode 100644
index 0000000..bc05bca
--- /dev/null
+++ b/packages/v3-watcher/src/entity/State.ts
@@ -0,0 +1,31 @@
+//
+// Copyright 2021 Vulcanize, Inc.
+//
+
+import { Entity, PrimaryGeneratedColumn, Column, Index, ManyToOne } from 'typeorm';
+import { StateKind } from '@cerc-io/util';
+import { BlockProgress } from './BlockProgress';
+
+@Entity()
+@Index(['cid'], { unique: true })
+@Index(['block', 'contractAddress'])
+@Index(['block', 'contractAddress', 'kind'], { unique: true })
+export class State {
+ @PrimaryGeneratedColumn()
+ id!: number;
+
+ @ManyToOne(() => BlockProgress, { onDelete: 'CASCADE' })
+ block!: BlockProgress;
+
+ @Column('varchar', { length: 42 })
+ contractAddress!: string;
+
+ @Column('varchar')
+ cid!: string;
+
+ @Column({ type: 'enum', enum: StateKind })
+ kind!: StateKind;
+
+ @Column('bytea')
+ data!: Buffer;
+}
diff --git a/packages/v3-watcher/src/entity/StateSyncStatus.ts b/packages/v3-watcher/src/entity/StateSyncStatus.ts
new file mode 100644
index 0000000..1535eb4
--- /dev/null
+++ b/packages/v3-watcher/src/entity/StateSyncStatus.ts
@@ -0,0 +1,17 @@
+//
+// Copyright 2021 Vulcanize, Inc.
+//
+
+import { Entity, PrimaryGeneratedColumn, Column } from 'typeorm';
+
+@Entity()
+export class StateSyncStatus {
+ @PrimaryGeneratedColumn()
+ id!: number;
+
+ @Column('integer')
+ latestIndexedBlockNumber!: number;
+
+ @Column('integer')
+ latestCheckpointBlockNumber!: number;
+}
diff --git a/packages/v3-watcher/src/entity/Subscriber.ts b/packages/v3-watcher/src/entity/Subscriber.ts
new file mode 100644
index 0000000..2cccb84
--- /dev/null
+++ b/packages/v3-watcher/src/entity/Subscriber.ts
@@ -0,0 +1,21 @@
+//
+// Copyright 2022 Vulcanize, Inc.
+//
+
+import { EventSubscriber, EntitySubscriberInterface, InsertEvent, UpdateEvent } from 'typeorm';
+
+import { afterEntityInsertOrUpdate } from '@cerc-io/util';
+
+import { FrothyEntity } from './FrothyEntity';
+import { ENTITY_TO_LATEST_ENTITY_MAP, SUBGRAPH_ENTITIES } from '../database';
+
+@EventSubscriber()
+export class EntitySubscriber implements EntitySubscriberInterface {
+ async afterInsert (event: InsertEvent): Promise {
+ await afterEntityInsertOrUpdate(FrothyEntity, SUBGRAPH_ENTITIES, event, ENTITY_TO_LATEST_ENTITY_MAP);
+ }
+
+ async afterUpdate (event: UpdateEvent): Promise {
+ await afterEntityInsertOrUpdate(FrothyEntity, SUBGRAPH_ENTITIES, event, ENTITY_TO_LATEST_ENTITY_MAP);
+ }
+}
diff --git a/packages/v3-watcher/src/entity/Swap.ts b/packages/v3-watcher/src/entity/Swap.ts
new file mode 100644
index 0000000..3e5a69e
--- /dev/null
+++ b/packages/v3-watcher/src/entity/Swap.ts
@@ -0,0 +1,68 @@
+//
+// Copyright 2021 Vulcanize, Inc.
+//
+
+import { Entity, PrimaryColumn, Column, Index } from 'typeorm';
+import { decimalTransformer, bigintTransformer } from '@cerc-io/util';
+import { Decimal } from 'decimal.js';
+
+@Entity()
+@Index(['blockNumber'])
+export class Swap {
+ @PrimaryColumn('varchar')
+ id!: string;
+
+ @PrimaryColumn('varchar', { length: 66 })
+ blockHash!: string;
+
+ @Column('integer')
+ blockNumber!: number;
+
+ @Column('varchar')
+ transaction!: string;
+
+ @Column('numeric', { transformer: bigintTransformer })
+ timestamp!: bigint;
+
+ @Column('varchar')
+ pool!: string;
+
+ @Column('varchar')
+ token0!: string;
+
+ @Column('varchar')
+ token1!: string;
+
+ @Column('varchar')
+ sender!: string;
+
+ @Column('varchar')
+ recipient!: string;
+
+ @Column('varchar')
+ origin!: string;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ amount0!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ amount1!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ amountUSD!: Decimal;
+
+ @Column('numeric', { transformer: bigintTransformer })
+ sqrtPriceX96!: bigint;
+
+ @Column('numeric', { transformer: bigintTransformer })
+ tick!: bigint;
+
+ @Column('numeric', { nullable: true, transformer: bigintTransformer })
+ logIndex!: bigint | null;
+
+ @Column('boolean', { default: false })
+ isPruned!: boolean;
+
+ @Column('boolean', { default: false })
+ isRemoved!: boolean;
+}
diff --git a/packages/v3-watcher/src/entity/SyncStatus.ts b/packages/v3-watcher/src/entity/SyncStatus.ts
new file mode 100644
index 0000000..cc13c70
--- /dev/null
+++ b/packages/v3-watcher/src/entity/SyncStatus.ts
@@ -0,0 +1,45 @@
+//
+// Copyright 2021 Vulcanize, Inc.
+//
+
+import { Entity, PrimaryGeneratedColumn, Column } from 'typeorm';
+import { SyncStatusInterface } from '@cerc-io/util';
+
+@Entity()
+export class SyncStatus implements SyncStatusInterface {
+ @PrimaryGeneratedColumn()
+ id!: number;
+
+ @Column('varchar', { length: 66 })
+ chainHeadBlockHash!: string;
+
+ @Column('integer')
+ chainHeadBlockNumber!: number;
+
+ @Column('varchar', { length: 66 })
+ latestIndexedBlockHash!: string;
+
+ @Column('integer')
+ latestIndexedBlockNumber!: number;
+
+ @Column('varchar', { length: 66 })
+ latestProcessedBlockHash!: string;
+
+ @Column('integer')
+ latestProcessedBlockNumber!: number;
+
+ @Column('varchar', { length: 66 })
+ latestCanonicalBlockHash!: string;
+
+ @Column('integer')
+ latestCanonicalBlockNumber!: number;
+
+ @Column('varchar', { length: 66 })
+ initialIndexedBlockHash!: string;
+
+ @Column('integer')
+ initialIndexedBlockNumber!: number;
+
+ @Column('boolean', { default: false })
+ hasIndexingError!: boolean;
+}
diff --git a/packages/v3-watcher/src/entity/Tick.ts b/packages/v3-watcher/src/entity/Tick.ts
new file mode 100644
index 0000000..f7404d6
--- /dev/null
+++ b/packages/v3-watcher/src/entity/Tick.ts
@@ -0,0 +1,86 @@
+//
+// Copyright 2021 Vulcanize, Inc.
+//
+
+import { Entity, PrimaryColumn, Column, Index } from 'typeorm';
+import { decimalTransformer, bigintTransformer } from '@cerc-io/util';
+import { Decimal } from 'decimal.js';
+
+@Entity()
+@Index(['blockNumber'])
+export class Tick {
+ @PrimaryColumn('varchar')
+ id!: string;
+
+ @PrimaryColumn('varchar', { length: 66 })
+ blockHash!: string;
+
+ @Column('integer')
+ blockNumber!: number;
+
+ @Column('varchar', { nullable: true })
+ poolAddress!: string | null;
+
+ @Column('numeric', { transformer: bigintTransformer })
+ tickIdx!: bigint;
+
+ @Column('varchar')
+ pool!: string;
+
+ @Column('numeric', { transformer: bigintTransformer })
+ liquidityGross!: bigint;
+
+ @Column('numeric', { transformer: bigintTransformer })
+ liquidityNet!: bigint;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ price0!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ price1!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ volumeToken0!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ volumeToken1!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ volumeUSD!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ untrackedVolumeUSD!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ feesUSD!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ collectedFeesToken0!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ collectedFeesToken1!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ collectedFeesUSD!: Decimal;
+
+ @Column('numeric', { transformer: bigintTransformer })
+ createdAtTimestamp!: bigint;
+
+ @Column('numeric', { transformer: bigintTransformer })
+ createdAtBlockNumber!: bigint;
+
+ @Column('numeric', { transformer: bigintTransformer })
+ liquidityProviderCount!: bigint;
+
+ @Column('numeric', { transformer: bigintTransformer })
+ feeGrowthOutside0X128!: bigint;
+
+ @Column('numeric', { transformer: bigintTransformer })
+ feeGrowthOutside1X128!: bigint;
+
+ @Column('boolean', { default: false })
+ isPruned!: boolean;
+
+ @Column('boolean', { default: false })
+ isRemoved!: boolean;
+}
diff --git a/packages/v3-watcher/src/entity/TickDayData.ts b/packages/v3-watcher/src/entity/TickDayData.ts
new file mode 100644
index 0000000..50b95f5
--- /dev/null
+++ b/packages/v3-watcher/src/entity/TickDayData.ts
@@ -0,0 +1,59 @@
+//
+// Copyright 2021 Vulcanize, Inc.
+//
+
+import { Entity, PrimaryColumn, Column, Index } from 'typeorm';
+import { decimalTransformer, bigintTransformer } from '@cerc-io/util';
+import { Decimal } from 'decimal.js';
+
+@Entity()
+@Index(['blockNumber'])
+export class TickDayData {
+ @PrimaryColumn('varchar')
+ id!: string;
+
+ @PrimaryColumn('varchar', { length: 66 })
+ blockHash!: string;
+
+ @Column('integer')
+ blockNumber!: number;
+
+ @Column('integer')
+ date!: number;
+
+ @Column('varchar')
+ pool!: string;
+
+ @Column('varchar')
+ tick!: string;
+
+ @Column('numeric', { transformer: bigintTransformer })
+ liquidityGross!: bigint;
+
+ @Column('numeric', { transformer: bigintTransformer })
+ liquidityNet!: bigint;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ volumeToken0!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ volumeToken1!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ volumeUSD!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ feesUSD!: Decimal;
+
+ @Column('numeric', { transformer: bigintTransformer })
+ feeGrowthOutside0X128!: bigint;
+
+ @Column('numeric', { transformer: bigintTransformer })
+ feeGrowthOutside1X128!: bigint;
+
+ @Column('boolean', { default: false })
+ isPruned!: boolean;
+
+ @Column('boolean', { default: false })
+ isRemoved!: boolean;
+}
diff --git a/packages/v3-watcher/src/entity/TickHourData.ts b/packages/v3-watcher/src/entity/TickHourData.ts
new file mode 100644
index 0000000..427c98b
--- /dev/null
+++ b/packages/v3-watcher/src/entity/TickHourData.ts
@@ -0,0 +1,53 @@
+//
+// Copyright 2021 Vulcanize, Inc.
+//
+
+import { Entity, PrimaryColumn, Column, Index } from 'typeorm';
+import { decimalTransformer, bigintTransformer } from '@cerc-io/util';
+import { Decimal } from 'decimal.js';
+
+@Entity()
+@Index(['blockNumber'])
+export class TickHourData {
+ @PrimaryColumn('varchar')
+ id!: string;
+
+ @PrimaryColumn('varchar', { length: 66 })
+ blockHash!: string;
+
+ @Column('integer')
+ blockNumber!: number;
+
+ @Column('integer')
+ periodStartUnix!: number;
+
+ @Column('varchar')
+ pool!: string;
+
+ @Column('varchar')
+ tick!: string;
+
+ @Column('numeric', { transformer: bigintTransformer })
+ liquidityGross!: bigint;
+
+ @Column('numeric', { transformer: bigintTransformer })
+ liquidityNet!: bigint;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ volumeToken0!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ volumeToken1!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ volumeUSD!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ feesUSD!: Decimal;
+
+ @Column('boolean', { default: false })
+ isPruned!: boolean;
+
+ @Column('boolean', { default: false })
+ isRemoved!: boolean;
+}
diff --git a/packages/v3-watcher/src/entity/Token.ts b/packages/v3-watcher/src/entity/Token.ts
new file mode 100644
index 0000000..97db063
--- /dev/null
+++ b/packages/v3-watcher/src/entity/Token.ts
@@ -0,0 +1,71 @@
+//
+// Copyright 2021 Vulcanize, Inc.
+//
+
+import { Entity, PrimaryColumn, Column, Index } from 'typeorm';
+import { decimalTransformer, bigintTransformer } from '@cerc-io/util';
+import { Decimal } from 'decimal.js';
+
+@Entity()
+@Index(['blockNumber'])
+export class Token {
+ @PrimaryColumn('varchar')
+ id!: string;
+
+ @PrimaryColumn('varchar', { length: 66 })
+ blockHash!: string;
+
+ @Column('integer')
+ blockNumber!: number;
+
+ @Column('varchar')
+ symbol!: string;
+
+ @Column('varchar')
+ name!: string;
+
+ @Column('numeric', { transformer: bigintTransformer })
+ decimals!: bigint;
+
+ @Column('numeric', { transformer: bigintTransformer })
+ totalSupply!: bigint;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ volume!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ volumeUSD!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ untrackedVolumeUSD!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ feesUSD!: Decimal;
+
+ @Column('numeric', { transformer: bigintTransformer })
+ txCount!: bigint;
+
+ @Column('numeric', { transformer: bigintTransformer })
+ poolCount!: bigint;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ totalValueLocked!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ totalValueLockedUSD!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ totalValueLockedUSDUntracked!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ derivedETH!: Decimal;
+
+ @Column('varchar', { array: true })
+ whitelistPools!: string[];
+
+ @Column('boolean', { default: false })
+ isPruned!: boolean;
+
+ @Column('boolean', { default: false })
+ isRemoved!: boolean;
+}
diff --git a/packages/v3-watcher/src/entity/TokenDayData.ts b/packages/v3-watcher/src/entity/TokenDayData.ts
new file mode 100644
index 0000000..a39398a
--- /dev/null
+++ b/packages/v3-watcher/src/entity/TokenDayData.ts
@@ -0,0 +1,65 @@
+//
+// Copyright 2021 Vulcanize, Inc.
+//
+
+import { Entity, PrimaryColumn, Column, Index } from 'typeorm';
+import { decimalTransformer } from '@cerc-io/util';
+import { Decimal } from 'decimal.js';
+
+@Entity()
+@Index(['blockNumber'])
+export class TokenDayData {
+ @PrimaryColumn('varchar')
+ id!: string;
+
+ @PrimaryColumn('varchar', { length: 66 })
+ blockHash!: string;
+
+ @Column('integer')
+ blockNumber!: number;
+
+ @Column('integer')
+ date!: number;
+
+ @Column('varchar')
+ token!: string;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ volume!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ volumeUSD!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ untrackedVolumeUSD!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ totalValueLocked!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ totalValueLockedUSD!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ priceUSD!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ feesUSD!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ open!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ high!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ low!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ close!: Decimal;
+
+ @Column('boolean', { default: false })
+ isPruned!: boolean;
+
+ @Column('boolean', { default: false })
+ isRemoved!: boolean;
+}
diff --git a/packages/v3-watcher/src/entity/TokenHourData.ts b/packages/v3-watcher/src/entity/TokenHourData.ts
new file mode 100644
index 0000000..d3fe63f
--- /dev/null
+++ b/packages/v3-watcher/src/entity/TokenHourData.ts
@@ -0,0 +1,65 @@
+//
+// Copyright 2021 Vulcanize, Inc.
+//
+
+import { Entity, PrimaryColumn, Column, Index } from 'typeorm';
+import { decimalTransformer } from '@cerc-io/util';
+import { Decimal } from 'decimal.js';
+
+@Entity()
+@Index(['blockNumber'])
+export class TokenHourData {
+ @PrimaryColumn('varchar')
+ id!: string;
+
+ @PrimaryColumn('varchar', { length: 66 })
+ blockHash!: string;
+
+ @Column('integer')
+ blockNumber!: number;
+
+ @Column('integer')
+ periodStartUnix!: number;
+
+ @Column('varchar')
+ token!: string;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ volume!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ volumeUSD!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ untrackedVolumeUSD!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ totalValueLocked!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ totalValueLockedUSD!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ priceUSD!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ feesUSD!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ open!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ high!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ low!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ close!: Decimal;
+
+ @Column('boolean', { default: false })
+ isPruned!: boolean;
+
+ @Column('boolean', { default: false })
+ isRemoved!: boolean;
+}
diff --git a/packages/v3-watcher/src/entity/Transaction.ts b/packages/v3-watcher/src/entity/Transaction.ts
new file mode 100644
index 0000000..fe9c164
--- /dev/null
+++ b/packages/v3-watcher/src/entity/Transaction.ts
@@ -0,0 +1,37 @@
+//
+// Copyright 2021 Vulcanize, Inc.
+//
+
+import { Entity, PrimaryColumn, Column, Index } from 'typeorm';
+import { bigintTransformer } from '@cerc-io/util';
+
+@Entity()
+@Index(['blockNumber'])
+export class Transaction {
+ @PrimaryColumn('varchar')
+ id!: string;
+
+ @PrimaryColumn('varchar', { length: 66 })
+ blockHash!: string;
+
+ @Column('integer')
+ blockNumber!: number;
+
+ @Column('numeric', { transformer: bigintTransformer })
+ _blockNumber!: bigint;
+
+ @Column('numeric', { transformer: bigintTransformer })
+ timestamp!: bigint;
+
+ @Column('numeric', { transformer: bigintTransformer })
+ gasUsed!: bigint;
+
+ @Column('numeric', { transformer: bigintTransformer })
+ gasPrice!: bigint;
+
+ @Column('boolean', { default: false })
+ isPruned!: boolean;
+
+ @Column('boolean', { default: false })
+ isRemoved!: boolean;
+}
diff --git a/packages/v3-watcher/src/entity/UniswapDayData.ts b/packages/v3-watcher/src/entity/UniswapDayData.ts
new file mode 100644
index 0000000..e088a4f
--- /dev/null
+++ b/packages/v3-watcher/src/entity/UniswapDayData.ts
@@ -0,0 +1,47 @@
+//
+// Copyright 2021 Vulcanize, Inc.
+//
+
+import { Entity, PrimaryColumn, Column, Index } from 'typeorm';
+import { decimalTransformer, bigintTransformer } from '@cerc-io/util';
+import { Decimal } from 'decimal.js';
+
+@Entity()
+@Index(['blockNumber'])
+export class UniswapDayData {
+ @PrimaryColumn('varchar')
+ id!: string;
+
+ @PrimaryColumn('varchar', { length: 66 })
+ blockHash!: string;
+
+ @Column('integer')
+ blockNumber!: number;
+
+ @Column('integer')
+ date!: number;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ volumeETH!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ volumeUSD!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ volumeUSDUntracked!: Decimal;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ feesUSD!: Decimal;
+
+ @Column('numeric', { transformer: bigintTransformer })
+ txCount!: bigint;
+
+ @Column('numeric', { transformer: decimalTransformer })
+ tvlUSD!: Decimal;
+
+ @Column('boolean', { default: false })
+ isPruned!: boolean;
+
+ @Column('boolean', { default: false })
+ isRemoved!: boolean;
+}
diff --git a/packages/v3-watcher/src/fill.ts b/packages/v3-watcher/src/fill.ts
new file mode 100644
index 0000000..210341e
--- /dev/null
+++ b/packages/v3-watcher/src/fill.ts
@@ -0,0 +1,48 @@
+//
+// Copyright 2021 Vulcanize, Inc.
+//
+
+import 'reflect-metadata';
+import debug from 'debug';
+
+import { FillCmd } from '@cerc-io/cli';
+import { getContractEntitiesMap } from '@cerc-io/util';
+import { getGraphDbAndWatcher } from '@cerc-io/graph-node';
+
+import { Database, ENTITY_QUERY_TYPE_MAP, ENTITY_TO_LATEST_ENTITY_MAP } from './database';
+import { Indexer } from './indexer';
+
+const log = debug('vulcanize:fill');
+
+export const main = async (): Promise => {
+ const fillCmd = new FillCmd();
+ await fillCmd.init(Database);
+
+ const { graphWatcher } = await getGraphDbAndWatcher(
+ fillCmd.config.server,
+ fillCmd.clients.ethClient,
+ fillCmd.ethProvider,
+ fillCmd.database.baseDatabase,
+ ENTITY_QUERY_TYPE_MAP,
+ ENTITY_TO_LATEST_ENTITY_MAP
+ );
+
+ await fillCmd.initIndexer(Indexer, graphWatcher);
+
+ // Get contractEntitiesMap required for fill-state
+ // NOTE: Assuming each entity type is only mapped to a single contract
+ const contractEntitiesMap = getContractEntitiesMap(graphWatcher.dataSources);
+
+ await fillCmd.exec(contractEntitiesMap);
+};
+
+main().catch(err => {
+ log(err);
+}).finally(() => {
+ process.exit();
+});
+
+process.on('SIGINT', () => {
+ log(`Exiting process ${process.pid} with code 0`);
+ process.exit(0);
+});
diff --git a/packages/v3-watcher/src/gql/index.ts b/packages/v3-watcher/src/gql/index.ts
new file mode 100644
index 0000000..4732f68
--- /dev/null
+++ b/packages/v3-watcher/src/gql/index.ts
@@ -0,0 +1,3 @@
+export * as mutations from './mutations';
+export * as queries from './queries';
+export * as subscriptions from './subscriptions';
diff --git a/packages/v3-watcher/src/gql/mutations/index.ts b/packages/v3-watcher/src/gql/mutations/index.ts
new file mode 100644
index 0000000..0c3bd85
--- /dev/null
+++ b/packages/v3-watcher/src/gql/mutations/index.ts
@@ -0,0 +1,4 @@
+import fs from 'fs';
+import path from 'path';
+
+export const watchContract = fs.readFileSync(path.join(__dirname, 'watchContract.gql'), 'utf8');
diff --git a/packages/v3-watcher/src/gql/mutations/watchContract.gql b/packages/v3-watcher/src/gql/mutations/watchContract.gql
new file mode 100644
index 0000000..2ecc74f
--- /dev/null
+++ b/packages/v3-watcher/src/gql/mutations/watchContract.gql
@@ -0,0 +1,3 @@
+mutation watchContract($address: String!, $kind: String!, $checkpoint: Boolean!, $startingBlock: Int){
+ watchContract(address: $address, kind: $kind, checkpoint: $checkpoint, startingBlock: $startingBlock)
+}
\ No newline at end of file
diff --git a/packages/v3-watcher/src/gql/queries/_meta.gql b/packages/v3-watcher/src/gql/queries/_meta.gql
new file mode 100644
index 0000000..d686e04
--- /dev/null
+++ b/packages/v3-watcher/src/gql/queries/_meta.gql
@@ -0,0 +1,11 @@
+query _meta($block: Block_height){
+ _meta(block: $block){
+ block{
+ hash
+ number
+ timestamp
+ }
+ deployment
+ hasIndexingErrors
+ }
+}
\ No newline at end of file
diff --git a/packages/v3-watcher/src/gql/queries/bundle.gql b/packages/v3-watcher/src/gql/queries/bundle.gql
new file mode 100644
index 0000000..d0ac6c5
--- /dev/null
+++ b/packages/v3-watcher/src/gql/queries/bundle.gql
@@ -0,0 +1,6 @@
+query bundle($id: ID!, $block: Block_height){
+ bundle(id: $id, block: $block){
+ id
+ ethPriceUSD
+ }
+}
\ No newline at end of file
diff --git a/packages/v3-watcher/src/gql/queries/bundles.gql b/packages/v3-watcher/src/gql/queries/bundles.gql
new file mode 100644
index 0000000..8fc597d
--- /dev/null
+++ b/packages/v3-watcher/src/gql/queries/bundles.gql
@@ -0,0 +1,6 @@
+query bundles($block: Block_height, $where: Bundle_filter, $orderBy: Bundle_orderBy, $orderDirection: OrderDirection, $first: Int, $skip: Int){
+ bundles(block: $block, where: $where, orderBy: $orderBy, orderDirection: $orderDirection, first: $first, skip: $skip){
+ id
+ ethPriceUSD
+ }
+}
\ No newline at end of file
diff --git a/packages/v3-watcher/src/gql/queries/burn.gql b/packages/v3-watcher/src/gql/queries/burn.gql
new file mode 100644
index 0000000..a19a079
--- /dev/null
+++ b/packages/v3-watcher/src/gql/queries/burn.gql
@@ -0,0 +1,86 @@
+query burn($id: ID!, $block: Block_height){
+ burn(id: $id, block: $block){
+ id
+ transaction{
+ id
+ blockNumber
+ timestamp
+ gasUsed
+ gasPrice
+ }
+ pool{
+ id
+ createdAtTimestamp
+ createdAtBlockNumber
+ feeTier
+ liquidity
+ sqrtPrice
+ feeGrowthGlobal0X128
+ feeGrowthGlobal1X128
+ token0Price
+ token1Price
+ tick
+ observationIndex
+ volumeToken0
+ volumeToken1
+ volumeUSD
+ untrackedVolumeUSD
+ feesUSD
+ txCount
+ collectedFeesToken0
+ collectedFeesToken1
+ collectedFeesUSD
+ totalValueLockedToken0
+ totalValueLockedToken1
+ totalValueLockedETH
+ totalValueLockedUSD
+ totalValueLockedUSDUntracked
+ isProtocolFeeEnabled
+ liquidityProviderCount
+ }
+ token0{
+ id
+ symbol
+ name
+ decimals
+ totalSupply
+ volume
+ volumeUSD
+ untrackedVolumeUSD
+ feesUSD
+ txCount
+ poolCount
+ totalValueLocked
+ totalValueLockedUSD
+ totalValueLockedUSDUntracked
+ derivedETH
+ }
+ token1{
+ id
+ symbol
+ name
+ decimals
+ totalSupply
+ volume
+ volumeUSD
+ untrackedVolumeUSD
+ feesUSD
+ txCount
+ poolCount
+ totalValueLocked
+ totalValueLockedUSD
+ totalValueLockedUSDUntracked
+ derivedETH
+ }
+ timestamp
+ owner
+ origin
+ amount
+ amount0
+ amount1
+ amountUSD
+ tickLower
+ tickUpper
+ logIndex
+ }
+}
\ No newline at end of file
diff --git a/packages/v3-watcher/src/gql/queries/burns.gql b/packages/v3-watcher/src/gql/queries/burns.gql
new file mode 100644
index 0000000..6aac19a
--- /dev/null
+++ b/packages/v3-watcher/src/gql/queries/burns.gql
@@ -0,0 +1,86 @@
+query burns($block: Block_height, $where: Burn_filter, $orderBy: Burn_orderBy, $orderDirection: OrderDirection, $first: Int, $skip: Int){
+ burns(block: $block, where: $where, orderBy: $orderBy, orderDirection: $orderDirection, first: $first, skip: $skip){
+ id
+ transaction{
+ id
+ blockNumber
+ timestamp
+ gasUsed
+ gasPrice
+ }
+ pool{
+ id
+ createdAtTimestamp
+ createdAtBlockNumber
+ feeTier
+ liquidity
+ sqrtPrice
+ feeGrowthGlobal0X128
+ feeGrowthGlobal1X128
+ token0Price
+ token1Price
+ tick
+ observationIndex
+ volumeToken0
+ volumeToken1
+ volumeUSD
+ untrackedVolumeUSD
+ feesUSD
+ txCount
+ collectedFeesToken0
+ collectedFeesToken1
+ collectedFeesUSD
+ totalValueLockedToken0
+ totalValueLockedToken1
+ totalValueLockedETH
+ totalValueLockedUSD
+ totalValueLockedUSDUntracked
+ isProtocolFeeEnabled
+ liquidityProviderCount
+ }
+ token0{
+ id
+ symbol
+ name
+ decimals
+ totalSupply
+ volume
+ volumeUSD
+ untrackedVolumeUSD
+ feesUSD
+ txCount
+ poolCount
+ totalValueLocked
+ totalValueLockedUSD
+ totalValueLockedUSDUntracked
+ derivedETH
+ }
+ token1{
+ id
+ symbol
+ name
+ decimals
+ totalSupply
+ volume
+ volumeUSD
+ untrackedVolumeUSD
+ feesUSD
+ txCount
+ poolCount
+ totalValueLocked
+ totalValueLockedUSD
+ totalValueLockedUSDUntracked
+ derivedETH
+ }
+ timestamp
+ owner
+ origin
+ amount
+ amount0
+ amount1
+ amountUSD
+ tickLower
+ tickUpper
+ logIndex
+ }
+}
\ No newline at end of file
diff --git a/packages/v3-watcher/src/gql/queries/collect.gql b/packages/v3-watcher/src/gql/queries/collect.gql
new file mode 100644
index 0000000..c4a38e0
--- /dev/null
+++ b/packages/v3-watcher/src/gql/queries/collect.gql
@@ -0,0 +1,50 @@
+query collect($id: ID!, $block: Block_height){
+ collect(id: $id, block: $block){
+ id
+ transaction{
+ id
+ blockNumber
+ timestamp
+ gasUsed
+ gasPrice
+ }
+ timestamp
+ pool{
+ id
+ createdAtTimestamp
+ createdAtBlockNumber
+ feeTier
+ liquidity
+ sqrtPrice
+ feeGrowthGlobal0X128
+ feeGrowthGlobal1X128
+ token0Price
+ token1Price
+ tick
+ observationIndex
+ volumeToken0
+ volumeToken1
+ volumeUSD
+ untrackedVolumeUSD
+ feesUSD
+ txCount
+ collectedFeesToken0
+ collectedFeesToken1
+ collectedFeesUSD
+ totalValueLockedToken0
+ totalValueLockedToken1
+ totalValueLockedETH
+ totalValueLockedUSD
+ totalValueLockedUSDUntracked
+ isProtocolFeeEnabled
+ liquidityProviderCount
+ }
+ owner
+ amount0
+ amount1
+ amountUSD
+ tickLower
+ tickUpper
+ logIndex
+ }
+}
\ No newline at end of file
diff --git a/packages/v3-watcher/src/gql/queries/collects.gql b/packages/v3-watcher/src/gql/queries/collects.gql
new file mode 100644
index 0000000..cd2d362
--- /dev/null
+++ b/packages/v3-watcher/src/gql/queries/collects.gql
@@ -0,0 +1,50 @@
+query collects($block: Block_height, $where: Collect_filter, $orderBy: Collect_orderBy, $orderDirection: OrderDirection, $first: Int, $skip: Int){
+ collects(block: $block, where: $where, orderBy: $orderBy, orderDirection: $orderDirection, first: $first, skip: $skip){
+ id
+ transaction{
+ id
+ blockNumber
+ timestamp
+ gasUsed
+ gasPrice
+ }
+ timestamp
+ pool{
+ id
+ createdAtTimestamp
+ createdAtBlockNumber
+ feeTier
+ liquidity
+ sqrtPrice
+ feeGrowthGlobal0X128
+ feeGrowthGlobal1X128
+ token0Price
+ token1Price
+ tick
+ observationIndex
+ volumeToken0
+ volumeToken1
+ volumeUSD
+ untrackedVolumeUSD
+ feesUSD
+ txCount
+ collectedFeesToken0
+ collectedFeesToken1
+ collectedFeesUSD
+ totalValueLockedToken0
+ totalValueLockedToken1
+ totalValueLockedETH
+ totalValueLockedUSD
+ totalValueLockedUSDUntracked
+ isProtocolFeeEnabled
+ liquidityProviderCount
+ }
+ owner
+ amount0
+ amount1
+ amountUSD
+ tickLower
+ tickUpper
+ logIndex
+ }
+}
\ No newline at end of file
diff --git a/packages/v3-watcher/src/gql/queries/decreaseEvent.gql b/packages/v3-watcher/src/gql/queries/decreaseEvent.gql
new file mode 100644
index 0000000..d37a02f
--- /dev/null
+++ b/packages/v3-watcher/src/gql/queries/decreaseEvent.gql
@@ -0,0 +1,98 @@
+query decreaseEvent($id: ID!, $block: Block_height){
+ decreaseEvent(id: $id, block: $block){
+ id
+ pool{
+ id
+ createdAtTimestamp
+ createdAtBlockNumber
+ feeTier
+ liquidity
+ sqrtPrice
+ feeGrowthGlobal0X128
+ feeGrowthGlobal1X128
+ token0Price
+ token1Price
+ tick
+ observationIndex
+ volumeToken0
+ volumeToken1
+ volumeUSD
+ untrackedVolumeUSD
+ feesUSD
+ txCount
+ collectedFeesToken0
+ collectedFeesToken1
+ collectedFeesUSD
+ totalValueLockedToken0
+ totalValueLockedToken1
+ totalValueLockedETH
+ totalValueLockedUSD
+ totalValueLockedUSDUntracked
+ isProtocolFeeEnabled
+ liquidityProviderCount
+ }
+ tokenID
+ position{
+ id
+ owner
+ liquidity
+ depositedToken0
+ depositedToken1
+ withdrawnToken0
+ withdrawnToken1
+ collectedToken0
+ collectedToken1
+ collectedFeesToken0
+ collectedFeesToken1
+ amountDepositedUSD
+ amountWithdrawnUSD
+ amountCollectedUSD
+ feeGrowthInside0LastX128
+ feeGrowthInside1LastX128
+ }
+ amount0
+ amount1
+ token0{
+ id
+ symbol
+ name
+ decimals
+ totalSupply
+ volume
+ volumeUSD
+ untrackedVolumeUSD
+ feesUSD
+ txCount
+ poolCount
+ totalValueLocked
+ totalValueLockedUSD
+ totalValueLockedUSDUntracked
+ derivedETH
+ }
+ token1{
+ id
+ symbol
+ name
+ decimals
+ totalSupply
+ volume
+ volumeUSD
+ untrackedVolumeUSD
+ feesUSD
+ txCount
+ poolCount
+ totalValueLocked
+ totalValueLockedUSD
+ totalValueLockedUSDUntracked
+ derivedETH
+ }
+ timeStamp
+ transaction{
+ id
+ blockNumber
+ timestamp
+ gasUsed
+ gasPrice
+ }
+ }
+}
\ No newline at end of file
diff --git a/packages/v3-watcher/src/gql/queries/decreaseEvents.gql b/packages/v3-watcher/src/gql/queries/decreaseEvents.gql
new file mode 100644
index 0000000..640d71e
--- /dev/null
+++ b/packages/v3-watcher/src/gql/queries/decreaseEvents.gql
@@ -0,0 +1,98 @@
+query decreaseEvents($block: Block_height, $where: DecreaseEvent_filter, $orderBy: DecreaseEvent_orderBy, $orderDirection: OrderDirection, $first: Int, $skip: Int){
+ decreaseEvents(block: $block, where: $where, orderBy: $orderBy, orderDirection: $orderDirection, first: $first, skip: $skip){
+ id
+ pool{
+ id
+ createdAtTimestamp
+ createdAtBlockNumber
+ feeTier
+ liquidity
+ sqrtPrice
+ feeGrowthGlobal0X128
+ feeGrowthGlobal1X128
+ token0Price
+ token1Price
+ tick
+ observationIndex
+ volumeToken0
+ volumeToken1
+ volumeUSD
+ untrackedVolumeUSD
+ feesUSD
+ txCount
+ collectedFeesToken0
+ collectedFeesToken1
+ collectedFeesUSD
+ totalValueLockedToken0
+ totalValueLockedToken1
+ totalValueLockedETH
+ totalValueLockedUSD
+ totalValueLockedUSDUntracked
+ isProtocolFeeEnabled
+ liquidityProviderCount
+ }
+ tokenID
+ position{
+ id
+ owner
+ liquidity
+ depositedToken0
+ depositedToken1
+ withdrawnToken0
+ withdrawnToken1
+ collectedToken0
+ collectedToken1
+ collectedFeesToken0
+ collectedFeesToken1
+ amountDepositedUSD
+ amountWithdrawnUSD
+ amountCollectedUSD
+ feeGrowthInside0LastX128
+ feeGrowthInside1LastX128
+ }
+ amount0
+ amount1
+ token0{
+ id
+ symbol
+ name
+ decimals
+ totalSupply
+ volume
+ volumeUSD
+ untrackedVolumeUSD
+ feesUSD
+ txCount
+ poolCount
+ totalValueLocked
+ totalValueLockedUSD
+ totalValueLockedUSDUntracked
+ derivedETH
+ }
+ token1{
+ id
+ symbol
+ name
+ decimals
+ totalSupply
+ volume
+ volumeUSD
+ untrackedVolumeUSD
+ feesUSD
+ txCount
+ poolCount
+ totalValueLocked
+ totalValueLockedUSD
+ totalValueLockedUSDUntracked
+ derivedETH
+ }
+ timeStamp
+ transaction{
+ id
+ blockNumber
+ timestamp
+ gasUsed
+ gasPrice
+ }
+ }
+}
\ No newline at end of file
diff --git a/packages/v3-watcher/src/gql/queries/events.gql b/packages/v3-watcher/src/gql/queries/events.gql
new file mode 100644
index 0000000..bad0d46
--- /dev/null
+++ b/packages/v3-watcher/src/gql/queries/events.gql
@@ -0,0 +1,129 @@
+query events($blockHash: String!, $contractAddress: String!, $name: String){
+ events(blockHash: $blockHash, contractAddress: $contractAddress, name: $name){
+ block{
+ cid
+ hash
+ number
+ timestamp
+ parentHash
+ }
+ tx{
+ hash
+ index
+ from
+ to
+ }
+ contract
+ eventIndex
+ event{
+ ... on FeeAmountEnabledEvent {
+ fee
+ tickSpacing
+ }
+ ... on OwnerChangedEvent {
+ oldOwner
+ newOwner
+ }
+ ... on PoolCreatedEvent {
+ token0
+ token1
+ fee
+ tickSpacing
+ pool
+ }
+ ... on ApprovalEvent {
+ owner
+ approved
+ tokenId
+ }
+ ... on ApprovalForAllEvent {
+ owner
+ operator
+ approved
+ }
+ ... on CollectEvent {
+ tokenId
+ recipient
+ amount0
+ amount1
+ owner
+ tickLower
+ tickUpper
+ }
+ ... on DecreaseLiquidityEvent {
+ tokenId
+ liquidity
+ amount0
+ amount1
+ }
+ ... on IncreaseLiquidityEvent {
+ tokenId
+ liquidity
+ amount0
+ amount1
+ }
+ ... on TransferEvent {
+ from
+ to
+ tokenId
+ }
+ ... on BurnEvent {
+ owner
+ tickLower
+ tickUpper
+ amount
+ amount0
+ amount1
+ }
+ ... on CollectProtocolEvent {
+ sender
+ recipient
+ amount0
+ amount1
+ }
+ ... on FlashEvent {
+ sender
+ recipient
+ amount0
+ amount1
+ paid0
+ paid1
+ }
+ ... on IncreaseObservationCardinalityNextEvent {
+ observationCardinalityNextOld
+ observationCardinalityNextNew
+ }
+ ... on InitializeEvent {
+ sqrtPriceX96
+ tick
+ }
+ ... on MintEvent {
+ sender
+ owner
+ tickLower
+ tickUpper
+ amount
+ amount0
+ amount1
+ }
+ ... on SetFeeProtocolEvent {
+ feeProtocol0Old
+ feeProtocol1Old
+ feeProtocol0New
+ feeProtocol1New
+ }
+ ... on SwapEvent {
+ sender
+ recipient
+ amount0
+ amount1
+ sqrtPriceX96
+ liquidity
+ tick
+ }
+ }
+ proof{
+ data
+ }
+ }
+}
\ No newline at end of file
diff --git a/packages/v3-watcher/src/gql/queries/eventsInRange.gql b/packages/v3-watcher/src/gql/queries/eventsInRange.gql
new file mode 100644
index 0000000..5ddab05
--- /dev/null
+++ b/packages/v3-watcher/src/gql/queries/eventsInRange.gql
@@ -0,0 +1,129 @@
+query eventsInRange($fromBlockNumber: Int!, $toBlockNumber: Int!){
+ eventsInRange(fromBlockNumber: $fromBlockNumber, toBlockNumber: $toBlockNumber){
+ block{
+ cid
+ hash
+ number
+ timestamp
+ parentHash
+ }
+ tx{
+ hash
+ index
+ from
+ to
+ }
+ contract
+ eventIndex
+ event{
+ ... on FeeAmountEnabledEvent {
+ fee
+ tickSpacing
+ }
+ ... on OwnerChangedEvent {
+ oldOwner
+ newOwner
+ }
+ ... on PoolCreatedEvent {
+ token0
+ token1
+ fee
+ tickSpacing
+ pool
+ }
+ ... on ApprovalEvent {
+ owner
+ approved
+ tokenId
+ }
+ ... on ApprovalForAllEvent {
+ owner
+ operator
+ approved
+ }
+ ... on CollectEvent {
+ tokenId
+ recipient
+ amount0
+ amount1
+ owner
+ tickLower
+ tickUpper
+ }
+ ... on DecreaseLiquidityEvent {
+ tokenId
+ liquidity
+ amount0
+ amount1
+ }
+ ... on IncreaseLiquidityEvent {
+ tokenId
+ liquidity
+ amount0
+ amount1
+ }
+ ... on TransferEvent {
+ from
+ to
+ tokenId
+ }
+ ... on BurnEvent {
+ owner
+ tickLower
+ tickUpper
+ amount
+ amount0
+ amount1
+ }
+ ... on CollectProtocolEvent {
+ sender
+ recipient
+ amount0
+ amount1
+ }
+ ... on FlashEvent {
+ sender
+ recipient
+ amount0
+ amount1
+ paid0
+ paid1
+ }
+ ... on IncreaseObservationCardinalityNextEvent {
+ observationCardinalityNextOld
+ observationCardinalityNextNew
+ }
+ ... on InitializeEvent {
+ sqrtPriceX96
+ tick
+ }
+ ... on MintEvent {
+ sender
+ owner
+ tickLower
+ tickUpper
+ amount
+ amount0
+ amount1
+ }
+ ... on SetFeeProtocolEvent {
+ feeProtocol0Old
+ feeProtocol1Old
+ feeProtocol0New
+ feeProtocol1New
+ }
+ ... on SwapEvent {
+ sender
+ recipient
+ amount0
+ amount1
+ sqrtPriceX96
+ liquidity
+ tick
+ }
+ }
+ proof{
+ data
+ }
+ }
+}
\ No newline at end of file
diff --git a/packages/v3-watcher/src/gql/queries/factories.gql b/packages/v3-watcher/src/gql/queries/factories.gql
new file mode 100644
index 0000000..a3c00cb
--- /dev/null
+++ b/packages/v3-watcher/src/gql/queries/factories.gql
@@ -0,0 +1,17 @@
+query factories($block: Block_height, $where: Factory_filter, $orderBy: Factory_orderBy, $orderDirection: OrderDirection, $first: Int, $skip: Int){
+ factories(block: $block, where: $where, orderBy: $orderBy, orderDirection: $orderDirection, first: $first, skip: $skip){
+ id
+ poolCount
+ txCount
+ totalVolumeUSD
+ totalVolumeETH
+ totalFeesUSD
+ totalFeesETH
+ untrackedVolumeUSD
+ totalValueLockedUSD
+ totalValueLockedETH
+ totalValueLockedUSDUntracked
+ totalValueLockedETHUntracked
+ owner
+ }
+}
\ No newline at end of file
diff --git a/packages/v3-watcher/src/gql/queries/factory.gql b/packages/v3-watcher/src/gql/queries/factory.gql
new file mode 100644
index 0000000..a50af18
--- /dev/null
+++ b/packages/v3-watcher/src/gql/queries/factory.gql
@@ -0,0 +1,17 @@
+query factory($id: ID!, $block: Block_height){
+ factory(id: $id, block: $block){
+ id
+ poolCount
+ txCount
+ totalVolumeUSD
+ totalVolumeETH
+ totalFeesUSD
+ totalFeesETH
+ untrackedVolumeUSD
+ totalValueLockedUSD
+ totalValueLockedETH
+ totalValueLockedUSDUntracked
+ totalValueLockedETHUntracked
+ owner
+ }
+}
\ No newline at end of file
diff --git a/packages/v3-watcher/src/gql/queries/flash.gql b/packages/v3-watcher/src/gql/queries/flash.gql
new file mode 100644
index 0000000..a1bb57d
--- /dev/null
+++ b/packages/v3-watcher/src/gql/queries/flash.gql
@@ -0,0 +1,51 @@
+query flash($id: ID!, $block: Block_height){
+ flash(id: $id, block: $block){
+ id
+ transaction{
+ id
+ blockNumber
+ timestamp
+ gasUsed
+ gasPrice
+ }
+ timestamp
+ pool{
+ id
+ createdAtTimestamp
+ createdAtBlockNumber
+ feeTier
+ liquidity
+ sqrtPrice
+ feeGrowthGlobal0X128
+ feeGrowthGlobal1X128
+ token0Price
+ token1Price
+ tick
+ observationIndex
+ volumeToken0
+ volumeToken1
+ volumeUSD
+ untrackedVolumeUSD
+ feesUSD
+ txCount
+ collectedFeesToken0
+ collectedFeesToken1
+ collectedFeesUSD
+ totalValueLockedToken0
+ totalValueLockedToken1
+ totalValueLockedETH
+ totalValueLockedUSD
+ totalValueLockedUSDUntracked
+ isProtocolFeeEnabled
+ liquidityProviderCount
+ }
+ sender
+ recipient
+ amount0
+ amount1
+ amountUSD
+ amount0Paid
+ amount1Paid
+ logIndex
+ }
+}
\ No newline at end of file
diff --git a/packages/v3-watcher/src/gql/queries/flashes.gql b/packages/v3-watcher/src/gql/queries/flashes.gql
new file mode 100644
index 0000000..3d3b494
--- /dev/null
+++ b/packages/v3-watcher/src/gql/queries/flashes.gql
@@ -0,0 +1,51 @@
+query flashes($block: Block_height, $where: Flash_filter, $orderBy: Flash_orderBy, $orderDirection: OrderDirection, $first: Int, $skip: Int){
+ flashes(block: $block, where: $where, orderBy: $orderBy, orderDirection: $orderDirection, first: $first, skip: $skip){
+ id
+ transaction{
+ id
+ blockNumber
+ timestamp
+ gasUsed
+ gasPrice
+ }
+ timestamp
+ pool{
+ id
+ createdAtTimestamp
+ createdAtBlockNumber
+ feeTier
+ liquidity
+ sqrtPrice
+ feeGrowthGlobal0X128
+ feeGrowthGlobal1X128
+ token0Price
+ token1Price
+ tick
+ observationIndex
+ volumeToken0
+ volumeToken1
+ volumeUSD
+ untrackedVolumeUSD
+ feesUSD
+ txCount
+ collectedFeesToken0
+ collectedFeesToken1
+ collectedFeesUSD
+ totalValueLockedToken0
+ totalValueLockedToken1
+ totalValueLockedETH
+ totalValueLockedUSD
+ totalValueLockedUSDUntracked
+ isProtocolFeeEnabled
+ liquidityProviderCount
+ }
+ sender
+ recipient
+ amount0
+ amount1
+ amountUSD
+ amount0Paid
+ amount1Paid
+ logIndex
+ }
+}
\ No newline at end of file
diff --git a/packages/v3-watcher/src/gql/queries/getState.gql b/packages/v3-watcher/src/gql/queries/getState.gql
new file mode 100644
index 0000000..3b8f605
--- /dev/null
+++ b/packages/v3-watcher/src/gql/queries/getState.gql
@@ -0,0 +1,15 @@
+query getState($blockHash: String!, $contractAddress: String!, $kind: String){
+ getState(blockHash: $blockHash, contractAddress: $contractAddress, kind: $kind){
+ block{
+ cid
+ hash
+ number
+ timestamp
+ parentHash
+ }
+ contractAddress
+ cid
+ kind
+ data
+ }
+}
\ No newline at end of file
diff --git a/packages/v3-watcher/src/gql/queries/getStateByCID.gql b/packages/v3-watcher/src/gql/queries/getStateByCID.gql
new file mode 100644
index 0000000..6c3c4fd
--- /dev/null
+++ b/packages/v3-watcher/src/gql/queries/getStateByCID.gql
@@ -0,0 +1,15 @@
+query getStateByCID($cid: String!){
+ getStateByCID(cid: $cid){
+ block{
+ cid
+ hash
+ number
+ timestamp
+ parentHash
+ }
+ contractAddress
+ cid
+ kind
+ data
+ }
+}
\ No newline at end of file
diff --git a/packages/v3-watcher/src/gql/queries/getSyncStatus.gql b/packages/v3-watcher/src/gql/queries/getSyncStatus.gql
new file mode 100644
index 0000000..48175b4
--- /dev/null
+++ b/packages/v3-watcher/src/gql/queries/getSyncStatus.gql
@@ -0,0 +1,12 @@
+query getSyncStatus{
+ getSyncStatus{
+ latestIndexedBlockHash
+ latestIndexedBlockNumber
+ latestCanonicalBlockHash
+ latestCanonicalBlockNumber
+ initialIndexedBlockHash
+ initialIndexedBlockNumber
+ latestProcessedBlockHash
+ latestProcessedBlockNumber
+ }
+}
\ No newline at end of file
diff --git a/packages/v3-watcher/src/gql/queries/increaseEvent.gql b/packages/v3-watcher/src/gql/queries/increaseEvent.gql
new file mode 100644
index 0000000..fd1d1c7
--- /dev/null
+++ b/packages/v3-watcher/src/gql/queries/increaseEvent.gql
@@ -0,0 +1,98 @@
+query increaseEvent($id: ID!, $block: Block_height){
+ increaseEvent(id: $id, block: $block){
+ id
+ pool{
+ id
+ createdAtTimestamp
+ createdAtBlockNumber
+ feeTier
+ liquidity
+ sqrtPrice
+ feeGrowthGlobal0X128
+ feeGrowthGlobal1X128
+ token0Price
+ token1Price
+ tick
+ observationIndex
+ volumeToken0
+ volumeToken1
+ volumeUSD
+ untrackedVolumeUSD
+ feesUSD
+ txCount
+ collectedFeesToken0
+ collectedFeesToken1
+ collectedFeesUSD
+ totalValueLockedToken0
+ totalValueLockedToken1
+ totalValueLockedETH
+ totalValueLockedUSD
+ totalValueLockedUSDUntracked
+ isProtocolFeeEnabled
+ liquidityProviderCount
+ }
+ tokenID
+ position{
+ id
+ owner
+ liquidity
+ depositedToken0
+ depositedToken1
+ withdrawnToken0
+ withdrawnToken1
+ collectedToken0
+ collectedToken1
+ collectedFeesToken0
+ collectedFeesToken1
+ amountDepositedUSD
+ amountWithdrawnUSD
+ amountCollectedUSD
+ feeGrowthInside0LastX128
+ feeGrowthInside1LastX128
+ }
+ amount0
+ amount1
+ token0{
+ id
+ symbol
+ name
+ decimals
+ totalSupply
+ volume
+ volumeUSD
+ untrackedVolumeUSD
+ feesUSD
+ txCount
+ poolCount
+ totalValueLocked
+ totalValueLockedUSD
+ totalValueLockedUSDUntracked
+ derivedETH
+ }
+ token1{
+ id
+ symbol
+ name
+ decimals
+ totalSupply
+ volume
+ volumeUSD
+ untrackedVolumeUSD
+ feesUSD
+ txCount
+ poolCount
+ totalValueLocked
+ totalValueLockedUSD
+ totalValueLockedUSDUntracked
+ derivedETH
+ }
+ timeStamp
+ transaction{
+ id
+ blockNumber
+ timestamp
+ gasUsed
+ gasPrice
+ }
+ }
+}
\ No newline at end of file
diff --git a/packages/v3-watcher/src/gql/queries/increaseEvents.gql b/packages/v3-watcher/src/gql/queries/increaseEvents.gql
new file mode 100644
index 0000000..71858f0
--- /dev/null
+++ b/packages/v3-watcher/src/gql/queries/increaseEvents.gql
@@ -0,0 +1,98 @@
+query increaseEvents($block: Block_height, $where: IncreaseEvent_filter, $orderBy: IncreaseEvent_orderBy, $orderDirection: OrderDirection, $first: Int, $skip: Int){
+ increaseEvents(block: $block, where: $where, orderBy: $orderBy, orderDirection: $orderDirection, first: $first, skip: $skip){
+ id
+ pool{
+ id
+ createdAtTimestamp
+ createdAtBlockNumber
+ feeTier
+ liquidity
+ sqrtPrice
+ feeGrowthGlobal0X128
+ feeGrowthGlobal1X128
+ token0Price
+ token1Price
+ tick
+ observationIndex
+ volumeToken0
+ volumeToken1
+ volumeUSD
+ untrackedVolumeUSD
+ feesUSD
+ txCount
+ collectedFeesToken0
+ collectedFeesToken1
+ collectedFeesUSD
+ totalValueLockedToken0
+ totalValueLockedToken1
+ totalValueLockedETH
+ totalValueLockedUSD
+ totalValueLockedUSDUntracked
+ isProtocolFeeEnabled
+ liquidityProviderCount
+ }
+ tokenID
+ position{
+ id
+ owner
+ liquidity
+ depositedToken0
+ depositedToken1
+ withdrawnToken0
+ withdrawnToken1
+ collectedToken0
+ collectedToken1
+ collectedFeesToken0
+ collectedFeesToken1
+ amountDepositedUSD
+ amountWithdrawnUSD
+ amountCollectedUSD
+ feeGrowthInside0LastX128
+ feeGrowthInside1LastX128
+ }
+ amount0
+ amount1
+ token0{
+ id
+ symbol
+ name
+ decimals
+ totalSupply
+ volume
+ volumeUSD
+ untrackedVolumeUSD
+ feesUSD
+ txCount
+ poolCount
+ totalValueLocked
+ totalValueLockedUSD
+ totalValueLockedUSDUntracked
+ derivedETH
+ }
+ token1{
+ id
+ symbol
+ name
+ decimals
+ totalSupply
+ volume
+ volumeUSD
+ untrackedVolumeUSD
+ feesUSD
+ txCount
+ poolCount
+ totalValueLocked
+ totalValueLockedUSD
+ totalValueLockedUSDUntracked
+ derivedETH
+ }
+ timeStamp
+ transaction{
+ id
+ blockNumber
+ timestamp
+ gasUsed
+ gasPrice
+ }
+ }
+}
\ No newline at end of file
diff --git a/packages/v3-watcher/src/gql/queries/index.ts b/packages/v3-watcher/src/gql/queries/index.ts
new file mode 100644
index 0000000..54d079b
--- /dev/null
+++ b/packages/v3-watcher/src/gql/queries/index.ts
@@ -0,0 +1,55 @@
+import fs from 'fs';
+import path from 'path';
+
+export const events = fs.readFileSync(path.join(__dirname, 'events.gql'), 'utf8');
+export const eventsInRange = fs.readFileSync(path.join(__dirname, 'eventsInRange.gql'), 'utf8');
+export const factory = fs.readFileSync(path.join(__dirname, 'factory.gql'), 'utf8');
+export const factories = fs.readFileSync(path.join(__dirname, 'factories.gql'), 'utf8');
+export const bundle = fs.readFileSync(path.join(__dirname, 'bundle.gql'), 'utf8');
+export const bundles = fs.readFileSync(path.join(__dirname, 'bundles.gql'), 'utf8');
+export const token = fs.readFileSync(path.join(__dirname, 'token.gql'), 'utf8');
+export const tokens = fs.readFileSync(path.join(__dirname, 'tokens.gql'), 'utf8');
+export const pool = fs.readFileSync(path.join(__dirname, 'pool.gql'), 'utf8');
+export const pools = fs.readFileSync(path.join(__dirname, 'pools.gql'), 'utf8');
+export const tick = fs.readFileSync(path.join(__dirname, 'tick.gql'), 'utf8');
+export const ticks = fs.readFileSync(path.join(__dirname, 'ticks.gql'), 'utf8');
+export const position = fs.readFileSync(path.join(__dirname, 'position.gql'), 'utf8');
+export const positions = fs.readFileSync(path.join(__dirname, 'positions.gql'), 'utf8');
+export const positionSnapshot = fs.readFileSync(path.join(__dirname, 'positionSnapshot.gql'), 'utf8');
+export const positionSnapshots = fs.readFileSync(path.join(__dirname, 'positionSnapshots.gql'), 'utf8');
+export const transaction = fs.readFileSync(path.join(__dirname, 'transaction.gql'), 'utf8');
+export const transactions = fs.readFileSync(path.join(__dirname, 'transactions.gql'), 'utf8');
+export const mint = fs.readFileSync(path.join(__dirname, 'mint.gql'), 'utf8');
+export const mints = fs.readFileSync(path.join(__dirname, 'mints.gql'), 'utf8');
+export const burn = fs.readFileSync(path.join(__dirname, 'burn.gql'), 'utf8');
+export const burns = fs.readFileSync(path.join(__dirname, 'burns.gql'), 'utf8');
+export const swap = fs.readFileSync(path.join(__dirname, 'swap.gql'), 'utf8');
+export const swaps = fs.readFileSync(path.join(__dirname, 'swaps.gql'), 'utf8');
+export const collect = fs.readFileSync(path.join(__dirname, 'collect.gql'), 'utf8');
+export const collects = fs.readFileSync(path.join(__dirname, 'collects.gql'), 'utf8');
+export const flash = fs.readFileSync(path.join(__dirname, 'flash.gql'), 'utf8');
+export const flashes = fs.readFileSync(path.join(__dirname, 'flashes.gql'), 'utf8');
+export const uniswapDayData = fs.readFileSync(path.join(__dirname, 'uniswapDayData.gql'), 'utf8');
+export const uniswapDayDatas = fs.readFileSync(path.join(__dirname, 'uniswapDayDatas.gql'), 'utf8');
+export const poolDayData = fs.readFileSync(path.join(__dirname, 'poolDayData.gql'), 'utf8');
+export const poolDayDatas = fs.readFileSync(path.join(__dirname, 'poolDayDatas.gql'), 'utf8');
+export const poolHourData = fs.readFileSync(path.join(__dirname, 'poolHourData.gql'), 'utf8');
+export const poolHourDatas = fs.readFileSync(path.join(__dirname, 'poolHourDatas.gql'), 'utf8');
+export const tickHourData = fs.readFileSync(path.join(__dirname, 'tickHourData.gql'), 'utf8');
+export const tickHourDatas = fs.readFileSync(path.join(__dirname, 'tickHourDatas.gql'), 'utf8');
+export const tickDayData = fs.readFileSync(path.join(__dirname, 'tickDayData.gql'), 'utf8');
+export const tickDayDatas = fs.readFileSync(path.join(__dirname, 'tickDayDatas.gql'), 'utf8');
+export const tokenDayData = fs.readFileSync(path.join(__dirname, 'tokenDayData.gql'), 'utf8');
+export const tokenDayDatas = fs.readFileSync(path.join(__dirname, 'tokenDayDatas.gql'), 'utf8');
+export const tokenHourData = fs.readFileSync(path.join(__dirname, 'tokenHourData.gql'), 'utf8');
+export const tokenHourDatas = fs.readFileSync(path.join(__dirname, 'tokenHourDatas.gql'), 'utf8');
+export const increaseEvent = fs.readFileSync(path.join(__dirname, 'increaseEvent.gql'), 'utf8');
+export const increaseEvents = fs.readFileSync(path.join(__dirname, 'increaseEvents.gql'), 'utf8');
+export const decreaseEvent = fs.readFileSync(path.join(__dirname, 'decreaseEvent.gql'), 'utf8');
+export const decreaseEvents = fs.readFileSync(path.join(__dirname, 'decreaseEvents.gql'), 'utf8');
+export const setProtocolFeeEvent = fs.readFileSync(path.join(__dirname, 'setProtocolFeeEvent.gql'), 'utf8');
+export const setProtocolFeeEvents = fs.readFileSync(path.join(__dirname, 'setProtocolFeeEvents.gql'), 'utf8');
+export const _meta = fs.readFileSync(path.join(__dirname, '_meta.gql'), 'utf8');
+export const getStateByCID = fs.readFileSync(path.join(__dirname, 'getStateByCID.gql'), 'utf8');
+export const getState = fs.readFileSync(path.join(__dirname, 'getState.gql'), 'utf8');
+export const getSyncStatus = fs.readFileSync(path.join(__dirname, 'getSyncStatus.gql'), 'utf8');
diff --git a/packages/v3-watcher/src/gql/queries/mint.gql b/packages/v3-watcher/src/gql/queries/mint.gql
new file mode 100644
index 0000000..cb32aea
--- /dev/null
+++ b/packages/v3-watcher/src/gql/queries/mint.gql
@@ -0,0 +1,87 @@
+query mint($id: ID!, $block: Block_height){
+ mint(id: $id, block: $block){
+ id
+ transaction{
+ id
+ blockNumber
+ timestamp
+ gasUsed
+ gasPrice
+ }
+ timestamp
+ pool{
+ id
+ createdAtTimestamp
+ createdAtBlockNumber
+ feeTier
+ liquidity
+ sqrtPrice
+ feeGrowthGlobal0X128
+ feeGrowthGlobal1X128
+ token0Price
+ token1Price
+ tick
+ observationIndex
+ volumeToken0
+ volumeToken1
+ volumeUSD
+ untrackedVolumeUSD
+ feesUSD
+ txCount
+ collectedFeesToken0
+ collectedFeesToken1
+ collectedFeesUSD
+ totalValueLockedToken0
+ totalValueLockedToken1
+ totalValueLockedETH
+ totalValueLockedUSD
+ totalValueLockedUSDUntracked
+ isProtocolFeeEnabled
+ liquidityProviderCount
+ }
+ token0{
+ id
+ symbol
+ name
+ decimals
+ totalSupply
+ volume
+ volumeUSD
+ untrackedVolumeUSD
+ feesUSD
+ txCount
+ poolCount
+ totalValueLocked
+ totalValueLockedUSD
+ totalValueLockedUSDUntracked
+ derivedETH
+ }
+ token1{
+ id
+ symbol
+ name
+ decimals
+ totalSupply
+ volume
+ volumeUSD
+ untrackedVolumeUSD
+ feesUSD
+ txCount
+ poolCount
+ totalValueLocked
+ totalValueLockedUSD
+ totalValueLockedUSDUntracked
+ derivedETH
+ }
+ owner
+ sender
+ origin
+ amount
+ amount0
+ amount1
+ amountUSD
+ tickLower
+ tickUpper
+ logIndex
+ }
+}
\ No newline at end of file
diff --git a/packages/v3-watcher/src/gql/queries/mints.gql b/packages/v3-watcher/src/gql/queries/mints.gql
new file mode 100644
index 0000000..430dbd1
--- /dev/null
+++ b/packages/v3-watcher/src/gql/queries/mints.gql
@@ -0,0 +1,87 @@
+query mints($block: Block_height, $where: Mint_filter, $orderBy: Mint_orderBy, $orderDirection: OrderDirection, $first: Int, $skip: Int){
+ mints(block: $block, where: $where, orderBy: $orderBy, orderDirection: $orderDirection, first: $first, skip: $skip){
+ id
+ transaction{
+ id
+ blockNumber
+ timestamp
+ gasUsed
+ gasPrice
+ }
+ timestamp
+ pool{
+ id
+ createdAtTimestamp
+ createdAtBlockNumber
+ feeTier
+ liquidity
+ sqrtPrice
+ feeGrowthGlobal0X128
+ feeGrowthGlobal1X128
+ token0Price
+ token1Price
+ tick
+ observationIndex
+ volumeToken0
+ volumeToken1
+ volumeUSD
+ untrackedVolumeUSD
+ feesUSD
+ txCount
+ collectedFeesToken0
+ collectedFeesToken1
+ collectedFeesUSD
+ totalValueLockedToken0
+ totalValueLockedToken1
+ totalValueLockedETH
+ totalValueLockedUSD
+ totalValueLockedUSDUntracked
+ isProtocolFeeEnabled
+ liquidityProviderCount
+ }
+ token0{
+ id
+ symbol
+ name
+ decimals
+ totalSupply
+ volume
+ volumeUSD
+ untrackedVolumeUSD
+ feesUSD
+ txCount
+ poolCount
+ totalValueLocked
+ totalValueLockedUSD
+ totalValueLockedUSDUntracked
+ derivedETH
+ }
+ token1{
+ id
+ symbol
+ name
+ decimals
+ totalSupply
+ volume
+ volumeUSD
+ untrackedVolumeUSD
+ feesUSD
+ txCount
+ poolCount
+ totalValueLocked
+ totalValueLockedUSD
+ totalValueLockedUSDUntracked
+ derivedETH
+ }
+ owner
+ sender
+ origin
+ amount
+ amount0
+ amount1
+ amountUSD
+ tickLower
+ tickUpper
+ logIndex
+ }
+}
\ No newline at end of file
diff --git a/packages/v3-watcher/src/gql/queries/pool.gql b/packages/v3-watcher/src/gql/queries/pool.gql
new file mode 100644
index 0000000..b4e5020
--- /dev/null
+++ b/packages/v3-watcher/src/gql/queries/pool.gql
@@ -0,0 +1,181 @@
+query pool($id: ID!, $block: Block_height){
+ pool(id: $id, block: $block){
+ id
+ createdAtTimestamp
+ createdAtBlockNumber
+ token0{
+ id
+ symbol
+ name
+ decimals
+ totalSupply
+ volume
+ volumeUSD
+ untrackedVolumeUSD
+ feesUSD
+ txCount
+ poolCount
+ totalValueLocked
+ totalValueLockedUSD
+ totalValueLockedUSDUntracked
+ derivedETH
+ }
+ token1{
+ id
+ symbol
+ name
+ decimals
+ totalSupply
+ volume
+ volumeUSD
+ untrackedVolumeUSD
+ feesUSD
+ txCount
+ poolCount
+ totalValueLocked
+ totalValueLockedUSD
+ totalValueLockedUSDUntracked
+ derivedETH
+ }
+ feeTier
+ liquidity
+ sqrtPrice
+ feeGrowthGlobal0X128
+ feeGrowthGlobal1X128
+ token0Price
+ token1Price
+ tick
+ observationIndex
+ volumeToken0
+ volumeToken1
+ volumeUSD
+ untrackedVolumeUSD
+ feesUSD
+ txCount
+ collectedFeesToken0
+ collectedFeesToken1
+ collectedFeesUSD
+ totalValueLockedToken0
+ totalValueLockedToken1
+ totalValueLockedETH
+ totalValueLockedUSD
+ totalValueLockedUSDUntracked
+ isProtocolFeeEnabled
+ liquidityProviderCount
+ poolHourData{
+ id
+ periodStartUnix
+ liquidity
+ sqrtPrice
+ token0Price
+ token1Price
+ tick
+ feeGrowthGlobal0X128
+ feeGrowthGlobal1X128
+ tvlUSD
+ volumeToken0
+ volumeToken1
+ volumeUSD
+ feesUSD
+ txCount
+ open
+ high
+ low
+ close
+ }
+ poolDayData{
+ id
+ date
+ liquidity
+ sqrtPrice
+ token0Price
+ token1Price
+ tick
+ feeGrowthGlobal0X128
+ feeGrowthGlobal1X128
+ tvlUSD
+ volumeToken0
+ volumeToken1
+ volumeUSD
+ feesUSD
+ txCount
+ open
+ high
+ low
+ close
+ }
+ mints{
+ id
+ timestamp
+ owner
+ sender
+ origin
+ amount
+ amount0
+ amount1
+ amountUSD
+ tickLower
+ tickUpper
+ logIndex
+ }
+ burns{
+ id
+ timestamp
+ owner
+ origin
+ amount
+ amount0
+ amount1
+ amountUSD
+ tickLower
+ tickUpper
+ logIndex
+ }
+ swaps{
+ id
+ timestamp
+ sender
+ recipient
+ origin
+ amount0
+ amount1
+ amountUSD
+ sqrtPriceX96
+ tick
+ logIndex
+ }
+ collects{
+ id
+ timestamp
+ owner
+ amount0
+ amount1
+ amountUSD
+ tickLower
+ tickUpper
+ logIndex
+ }
+ ticks{
+ id
+ poolAddress
+ tickIdx
+ liquidityGross
+ liquidityNet
+ price0
+ price1
+ volumeToken0
+ volumeToken1
+ volumeUSD
+ untrackedVolumeUSD
+ feesUSD
+ collectedFeesToken0
+ collectedFeesToken1
+ collectedFeesUSD
+ createdAtTimestamp
+ createdAtBlockNumber
+ liquidityProviderCount
+ feeGrowthOutside0X128
+ feeGrowthOutside1X128
+ }
+ }
+}
\ No newline at end of file
diff --git a/packages/v3-watcher/src/gql/queries/poolDayData.gql b/packages/v3-watcher/src/gql/queries/poolDayData.gql
new file mode 100644
index 0000000..f0dcecc
--- /dev/null
+++ b/packages/v3-watcher/src/gql/queries/poolDayData.gql
@@ -0,0 +1,53 @@
+query poolDayData($id: ID!, $block: Block_height){
+ poolDayData(id: $id, block: $block){
+ id
+ date
+ pool{
+ id
+ createdAtTimestamp
+ createdAtBlockNumber
+ feeTier
+ liquidity
+ sqrtPrice
+ feeGrowthGlobal0X128
+ feeGrowthGlobal1X128
+ token0Price
+ token1Price
+ tick
+ observationIndex
+ volumeToken0
+ volumeToken1
+ volumeUSD
+ untrackedVolumeUSD
+ feesUSD
+ txCount
+ collectedFeesToken0
+ collectedFeesToken1
+ collectedFeesUSD
+ totalValueLockedToken0
+ totalValueLockedToken1
+ totalValueLockedETH
+ totalValueLockedUSD
+ totalValueLockedUSDUntracked
+ isProtocolFeeEnabled
+ liquidityProviderCount
+ }
+ liquidity
+ sqrtPrice
+ token0Price
+ token1Price
+ tick
+ feeGrowthGlobal0X128
+ feeGrowthGlobal1X128
+ tvlUSD
+ volumeToken0
+ volumeToken1
+ volumeUSD
+ feesUSD
+ txCount
+ open
+ high
+ low
+ close
+ }
+}
\ No newline at end of file
diff --git a/packages/v3-watcher/src/gql/queries/poolDayDatas.gql b/packages/v3-watcher/src/gql/queries/poolDayDatas.gql
new file mode 100644
index 0000000..5a73bc6
--- /dev/null
+++ b/packages/v3-watcher/src/gql/queries/poolDayDatas.gql
@@ -0,0 +1,53 @@
+query poolDayDatas($block: Block_height, $where: PoolDayData_filter, $orderBy: PoolDayData_orderBy, $orderDirection: OrderDirection, $first: Int, $skip: Int){
+ poolDayDatas(block: $block, where: $where, orderBy: $orderBy, orderDirection: $orderDirection, first: $first, skip: $skip){
+ id
+ date
+ pool{
+ id
+ createdAtTimestamp
+ createdAtBlockNumber
+ feeTier
+ liquidity
+ sqrtPrice
+ feeGrowthGlobal0X128
+ feeGrowthGlobal1X128
+ token0Price
+ token1Price
+ tick
+ observationIndex
+ volumeToken0
+ volumeToken1
+ volumeUSD
+ untrackedVolumeUSD
+ feesUSD
+ txCount
+ collectedFeesToken0
+ collectedFeesToken1
+ collectedFeesUSD
+ totalValueLockedToken0
+ totalValueLockedToken1
+ totalValueLockedETH
+ totalValueLockedUSD
+ totalValueLockedUSDUntracked
+ isProtocolFeeEnabled
+ liquidityProviderCount
+ }
+ liquidity
+ sqrtPrice
+ token0Price
+ token1Price
+ tick
+ feeGrowthGlobal0X128
+ feeGrowthGlobal1X128
+ tvlUSD
+ volumeToken0
+ volumeToken1
+ volumeUSD
+ feesUSD
+ txCount
+ open
+ high
+ low
+ close
+ }
+}
\ No newline at end of file
diff --git a/packages/v3-watcher/src/gql/queries/poolHourData.gql b/packages/v3-watcher/src/gql/queries/poolHourData.gql
new file mode 100644
index 0000000..d024398
--- /dev/null
+++ b/packages/v3-watcher/src/gql/queries/poolHourData.gql
@@ -0,0 +1,53 @@
+query poolHourData($id: ID!, $block: Block_height){
+ poolHourData(id: $id, block: $block){
+ id
+ periodStartUnix
+ pool{
+ id
+ createdAtTimestamp
+ createdAtBlockNumber
+ feeTier
+ liquidity
+ sqrtPrice
+ feeGrowthGlobal0X128
+ feeGrowthGlobal1X128
+ token0Price
+ token1Price
+ tick
+ observationIndex
+ volumeToken0
+ volumeToken1
+ volumeUSD
+ untrackedVolumeUSD
+ feesUSD
+ txCount
+ collectedFeesToken0
+ collectedFeesToken1
+ collectedFeesUSD
+ totalValueLockedToken0
+ totalValueLockedToken1
+ totalValueLockedETH
+ totalValueLockedUSD
+ totalValueLockedUSDUntracked
+ isProtocolFeeEnabled
+ liquidityProviderCount
+ }
+ liquidity
+ sqrtPrice
+ token0Price
+ token1Price
+ tick
+ feeGrowthGlobal0X128
+ feeGrowthGlobal1X128
+ tvlUSD
+ volumeToken0
+ volumeToken1
+ volumeUSD
+ feesUSD
+ txCount
+ open
+ high
+ low
+ close
+ }
+}
\ No newline at end of file
diff --git a/packages/v3-watcher/src/gql/queries/poolHourDatas.gql b/packages/v3-watcher/src/gql/queries/poolHourDatas.gql
new file mode 100644
index 0000000..753b97a
--- /dev/null
+++ b/packages/v3-watcher/src/gql/queries/poolHourDatas.gql
@@ -0,0 +1,53 @@
+query poolHourDatas($block: Block_height, $where: PoolHourData_filter, $orderBy: PoolHourData_orderBy, $orderDirection: OrderDirection, $first: Int, $skip: Int){
+ poolHourDatas(block: $block, where: $where, orderBy: $orderBy, orderDirection: $orderDirection, first: $first, skip: $skip){
+ id
+ periodStartUnix
+ pool{
+ id
+ createdAtTimestamp
+ createdAtBlockNumber
+ feeTier
+ liquidity
+ sqrtPrice
+ feeGrowthGlobal0X128
+ feeGrowthGlobal1X128
+ token0Price
+ token1Price
+ tick
+ observationIndex
+ volumeToken0
+ volumeToken1
+ volumeUSD
+ untrackedVolumeUSD
+ feesUSD
+ txCount
+ collectedFeesToken0
+ collectedFeesToken1
+ collectedFeesUSD
+ totalValueLockedToken0
+ totalValueLockedToken1
+ totalValueLockedETH
+ totalValueLockedUSD
+ totalValueLockedUSDUntracked
+ isProtocolFeeEnabled
+ liquidityProviderCount
+ }
+ liquidity
+ sqrtPrice
+ token0Price
+ token1Price
+ tick
+ feeGrowthGlobal0X128
+ feeGrowthGlobal1X128
+ tvlUSD
+ volumeToken0
+ volumeToken1
+ volumeUSD
+ feesUSD
+ txCount
+ open
+ high
+ low
+ close
+ }
+}
\ No newline at end of file
diff --git a/packages/v3-watcher/src/gql/queries/pools.gql b/packages/v3-watcher/src/gql/queries/pools.gql
new file mode 100644
index 0000000..2b14f4c
--- /dev/null
+++ b/packages/v3-watcher/src/gql/queries/pools.gql
@@ -0,0 +1,181 @@
+query pools($block: Block_height, $where: Pool_filter, $orderBy: Pool_orderBy, $orderDirection: OrderDirection, $first: Int, $skip: Int){
+ pools(block: $block, where: $where, orderBy: $orderBy, orderDirection: $orderDirection, first: $first, skip: $skip){
+ id
+ createdAtTimestamp
+ createdAtBlockNumber
+ token0{
+ id
+ symbol
+ name
+ decimals
+ totalSupply
+ volume
+ volumeUSD
+ untrackedVolumeUSD
+ feesUSD
+ txCount
+ poolCount
+ totalValueLocked
+ totalValueLockedUSD
+ totalValueLockedUSDUntracked
+ derivedETH
+ }
+ token1{
+ id
+ symbol
+ name
+ decimals
+ totalSupply
+ volume
+ volumeUSD
+ untrackedVolumeUSD
+ feesUSD
+ txCount
+ poolCount
+ totalValueLocked
+ totalValueLockedUSD
+ totalValueLockedUSDUntracked
+ derivedETH
+ }
+ feeTier
+ liquidity
+ sqrtPrice
+ feeGrowthGlobal0X128
+ feeGrowthGlobal1X128
+ token0Price
+ token1Price
+ tick
+ observationIndex
+ volumeToken0
+ volumeToken1
+ volumeUSD
+ untrackedVolumeUSD
+ feesUSD
+ txCount
+ collectedFeesToken0
+ collectedFeesToken1
+ collectedFeesUSD
+ totalValueLockedToken0
+ totalValueLockedToken1
+ totalValueLockedETH
+ totalValueLockedUSD
+ totalValueLockedUSDUntracked
+ isProtocolFeeEnabled
+ liquidityProviderCount
+ poolHourData{
+ id
+ periodStartUnix
+ liquidity
+ sqrtPrice
+ token0Price
+ token1Price
+ tick
+ feeGrowthGlobal0X128
+ feeGrowthGlobal1X128
+ tvlUSD
+ volumeToken0
+ volumeToken1
+ volumeUSD
+ feesUSD
+ txCount
+ open
+ high
+ low
+ close
+ }
+ poolDayData{
+ id
+ date
+ liquidity
+ sqrtPrice
+ token0Price
+ token1Price
+ tick
+ feeGrowthGlobal0X128
+ feeGrowthGlobal1X128
+ tvlUSD
+ volumeToken0
+ volumeToken1
+ volumeUSD
+ feesUSD
+ txCount
+ open
+ high
+ low
+ close
+ }
+ mints{
+ id
+ timestamp
+ owner
+ sender
+ origin
+ amount
+ amount0
+ amount1
+ amountUSD
+ tickLower
+ tickUpper
+ logIndex
+ }
+ burns{
+ id
+ timestamp
+ owner
+ origin
+ amount
+ amount0
+ amount1
+ amountUSD
+ tickLower
+ tickUpper
+ logIndex
+ }
+ swaps{
+ id
+ timestamp
+ sender
+ recipient
+ origin
+ amount0
+ amount1
+ amountUSD
+ sqrtPriceX96
+ tick
+ logIndex
+ }
+ collects{
+ id
+ timestamp
+ owner
+ amount0
+ amount1
+ amountUSD
+ tickLower
+ tickUpper
+ logIndex
+ }
+ ticks{
+ id
+ poolAddress
+ tickIdx
+ liquidityGross
+ liquidityNet
+ price0
+ price1
+ volumeToken0
+ volumeToken1
+ volumeUSD
+ untrackedVolumeUSD
+ feesUSD
+ collectedFeesToken0
+ collectedFeesToken1
+ collectedFeesUSD
+ createdAtTimestamp
+ createdAtBlockNumber
+ liquidityProviderCount
+ feeGrowthOutside0X128
+ feeGrowthOutside1X128
+ }
+ }
+}
\ No newline at end of file
diff --git a/packages/v3-watcher/src/gql/queries/position.gql b/packages/v3-watcher/src/gql/queries/position.gql
new file mode 100644
index 0000000..004e058
--- /dev/null
+++ b/packages/v3-watcher/src/gql/queries/position.gql
@@ -0,0 +1,149 @@
+query position($id: ID!, $block: Block_height){
+ position(id: $id, block: $block){
+ id
+ owner
+ pool{
+ id
+ createdAtTimestamp
+ createdAtBlockNumber
+ feeTier
+ liquidity
+ sqrtPrice
+ feeGrowthGlobal0X128
+ feeGrowthGlobal1X128
+ token0Price
+ token1Price
+ tick
+ observationIndex
+ volumeToken0
+ volumeToken1
+ volumeUSD
+ untrackedVolumeUSD
+ feesUSD
+ txCount
+ collectedFeesToken0
+ collectedFeesToken1
+ collectedFeesUSD
+ totalValueLockedToken0
+ totalValueLockedToken1
+ totalValueLockedETH
+ totalValueLockedUSD
+ totalValueLockedUSDUntracked
+ isProtocolFeeEnabled
+ liquidityProviderCount
+ }
+ token0{
+ id
+ symbol
+ name
+ decimals
+ totalSupply
+ volume
+ volumeUSD
+ untrackedVolumeUSD
+ feesUSD
+ txCount
+ poolCount
+ totalValueLocked
+ totalValueLockedUSD
+ totalValueLockedUSDUntracked
+ derivedETH
+ }
+ token1{
+ id
+ symbol
+ name
+ decimals
+ totalSupply
+ volume
+ volumeUSD
+ untrackedVolumeUSD
+ feesUSD
+ txCount
+ poolCount
+ totalValueLocked
+ totalValueLockedUSD
+ totalValueLockedUSDUntracked
+ derivedETH
+ }
+ tickLower{
+ id
+ poolAddress
+ tickIdx
+ liquidityGross
+ liquidityNet
+ price0
+ price1
+ volumeToken0
+ volumeToken1
+ volumeUSD
+ untrackedVolumeUSD
+ feesUSD
+ collectedFeesToken0
+ collectedFeesToken1
+ collectedFeesUSD
+ createdAtTimestamp
+ createdAtBlockNumber
+ liquidityProviderCount
+ feeGrowthOutside0X128
+ feeGrowthOutside1X128
+ }
+ tickUpper{
+ id
+ poolAddress
+ tickIdx
+ liquidityGross
+ liquidityNet
+ price0
+ price1
+ volumeToken0
+ volumeToken1
+ volumeUSD
+ untrackedVolumeUSD
+ feesUSD
+ collectedFeesToken0
+ collectedFeesToken1
+ collectedFeesUSD
+ createdAtTimestamp
+ createdAtBlockNumber
+ liquidityProviderCount
+ feeGrowthOutside0X128
+ feeGrowthOutside1X128
+ }
+ liquidity
+ depositedToken0
+ depositedToken1
+ withdrawnToken0
+ withdrawnToken1
+ collectedToken0
+ collectedToken1
+ collectedFeesToken0
+ collectedFeesToken1
+ amountDepositedUSD
+ amountWithdrawnUSD
+ amountCollectedUSD
+ transaction{
+ id
+ blockNumber
+ timestamp
+ gasUsed
+ gasPrice
+ }
+ feeGrowthInside0LastX128
+ feeGrowthInside1LastX128
+ increaseEvents{
+ id
+ tokenID
+ amount0
+ amount1
+ timeStamp
+ }
+ decreaseEvents{
+ id
+ tokenID
+ amount0
+ amount1
+ timeStamp
+ }
+ }
+}
\ No newline at end of file
diff --git a/packages/v3-watcher/src/gql/queries/positionSnapshot.gql b/packages/v3-watcher/src/gql/queries/positionSnapshot.gql
new file mode 100644
index 0000000..41fa2fe
--- /dev/null
+++ b/packages/v3-watcher/src/gql/queries/positionSnapshot.gql
@@ -0,0 +1,72 @@
+query positionSnapshot($id: ID!, $block: Block_height){
+ positionSnapshot(id: $id, block: $block){
+ id
+ owner
+ pool{
+ id
+ createdAtTimestamp
+ createdAtBlockNumber
+ feeTier
+ liquidity
+ sqrtPrice
+ feeGrowthGlobal0X128
+ feeGrowthGlobal1X128
+ token0Price
+ token1Price
+ tick
+ observationIndex
+ volumeToken0
+ volumeToken1
+ volumeUSD
+ untrackedVolumeUSD
+ feesUSD
+ txCount
+ collectedFeesToken0
+ collectedFeesToken1
+ collectedFeesUSD
+ totalValueLockedToken0
+ totalValueLockedToken1
+ totalValueLockedETH
+ totalValueLockedUSD
+ totalValueLockedUSDUntracked
+ isProtocolFeeEnabled
+ liquidityProviderCount
+ }
+ position{
+ id
+ owner
+ liquidity
+ depositedToken0
+ depositedToken1
+ withdrawnToken0
+ withdrawnToken1
+ collectedToken0
+ collectedToken1
+ collectedFeesToken0
+ collectedFeesToken1
+ amountDepositedUSD
+ amountWithdrawnUSD
+ amountCollectedUSD
+ feeGrowthInside0LastX128
+ feeGrowthInside1LastX128
+ }
+ blockNumber
+ timestamp
+ liquidity
+ depositedToken0
+ depositedToken1
+ withdrawnToken0
+ withdrawnToken1
+ collectedFeesToken0
+ collectedFeesToken1
+ transaction{
+ id
+ blockNumber
+ timestamp
+ gasUsed
+ gasPrice
+ }
+ feeGrowthInside0LastX128
+ feeGrowthInside1LastX128
+ }
+}
\ No newline at end of file
diff --git a/packages/v3-watcher/src/gql/queries/positionSnapshots.gql b/packages/v3-watcher/src/gql/queries/positionSnapshots.gql
new file mode 100644
index 0000000..1337e48
--- /dev/null
+++ b/packages/v3-watcher/src/gql/queries/positionSnapshots.gql
@@ -0,0 +1,72 @@
+query positionSnapshots($block: Block_height, $where: PositionSnapshot_filter, $orderBy: PositionSnapshot_orderBy, $orderDirection: OrderDirection, $first: Int, $skip: Int){
+ positionSnapshots(block: $block, where: $where, orderBy: $orderBy, orderDirection: $orderDirection, first: $first, skip: $skip){
+ id
+ owner
+ pool{
+ id
+ createdAtTimestamp
+ createdAtBlockNumber
+ feeTier
+ liquidity
+ sqrtPrice
+ feeGrowthGlobal0X128
+ feeGrowthGlobal1X128
+ token0Price
+ token1Price
+ tick
+ observationIndex
+ volumeToken0
+ volumeToken1
+ volumeUSD
+ untrackedVolumeUSD
+ feesUSD
+ txCount
+ collectedFeesToken0
+ collectedFeesToken1
+ collectedFeesUSD
+ totalValueLockedToken0
+ totalValueLockedToken1
+ totalValueLockedETH
+ totalValueLockedUSD
+ totalValueLockedUSDUntracked
+ isProtocolFeeEnabled
+ liquidityProviderCount
+ }
+ position{
+ id
+ owner
+ liquidity
+ depositedToken0
+ depositedToken1
+ withdrawnToken0
+ withdrawnToken1
+ collectedToken0
+ collectedToken1
+ collectedFeesToken0
+ collectedFeesToken1
+ amountDepositedUSD
+ amountWithdrawnUSD
+ amountCollectedUSD
+ feeGrowthInside0LastX128
+ feeGrowthInside1LastX128
+ }
+ blockNumber
+ timestamp
+ liquidity
+ depositedToken0
+ depositedToken1
+ withdrawnToken0
+ withdrawnToken1
+ collectedFeesToken0
+ collectedFeesToken1
+ transaction{
+ id
+ blockNumber
+ timestamp
+ gasUsed
+ gasPrice
+ }
+ feeGrowthInside0LastX128
+ feeGrowthInside1LastX128
+ }
+}
\ No newline at end of file
diff --git a/packages/v3-watcher/src/gql/queries/positions.gql b/packages/v3-watcher/src/gql/queries/positions.gql
new file mode 100644
index 0000000..4091d54
--- /dev/null
+++ b/packages/v3-watcher/src/gql/queries/positions.gql
@@ -0,0 +1,149 @@
+query positions($block: Block_height, $where: Position_filter, $orderBy: Position_orderBy, $orderDirection: OrderDirection, $first: Int, $skip: Int){
+ positions(block: $block, where: $where, orderBy: $orderBy, orderDirection: $orderDirection, first: $first, skip: $skip){
+ id
+ owner
+ pool{
+ id
+ createdAtTimestamp
+ createdAtBlockNumber
+ feeTier
+ liquidity
+ sqrtPrice
+ feeGrowthGlobal0X128
+ feeGrowthGlobal1X128
+ token0Price
+ token1Price
+ tick
+ observationIndex
+ volumeToken0
+ volumeToken1
+ volumeUSD
+ untrackedVolumeUSD
+ feesUSD
+ txCount
+ collectedFeesToken0
+ collectedFeesToken1
+ collectedFeesUSD
+ totalValueLockedToken0
+ totalValueLockedToken1
+ totalValueLockedETH
+ totalValueLockedUSD
+ totalValueLockedUSDUntracked
+ isProtocolFeeEnabled
+ liquidityProviderCount
+ }
+ token0{
+ id
+ symbol
+ name
+ decimals
+ totalSupply
+ volume
+ volumeUSD
+ untrackedVolumeUSD
+ feesUSD
+ txCount
+ poolCount
+ totalValueLocked
+ totalValueLockedUSD
+ totalValueLockedUSDUntracked
+ derivedETH
+ }
+ token1{
+ id
+ symbol
+ name
+ decimals
+ totalSupply
+ volume
+ volumeUSD
+ untrackedVolumeUSD
+ feesUSD
+ txCount
+ poolCount
+ totalValueLocked
+ totalValueLockedUSD
+ totalValueLockedUSDUntracked
+ derivedETH
+ }
+ tickLower{
+ id
+ poolAddress
+ tickIdx
+ liquidityGross
+ liquidityNet
+ price0
+ price1
+ volumeToken0
+ volumeToken1
+ volumeUSD
+ untrackedVolumeUSD
+ feesUSD
+ collectedFeesToken0
+ collectedFeesToken1
+ collectedFeesUSD
+ createdAtTimestamp
+ createdAtBlockNumber
+ liquidityProviderCount
+ feeGrowthOutside0X128
+ feeGrowthOutside1X128
+ }
+ tickUpper{
+ id
+ poolAddress
+ tickIdx
+ liquidityGross
+ liquidityNet
+ price0
+ price1
+ volumeToken0
+ volumeToken1
+ volumeUSD
+ untrackedVolumeUSD
+ feesUSD
+ collectedFeesToken0
+ collectedFeesToken1
+ collectedFeesUSD
+ createdAtTimestamp
+ createdAtBlockNumber
+ liquidityProviderCount
+ feeGrowthOutside0X128
+ feeGrowthOutside1X128
+ }
+ liquidity
+ depositedToken0
+ depositedToken1
+ withdrawnToken0
+ withdrawnToken1
+ collectedToken0
+ collectedToken1
+ collectedFeesToken0
+ collectedFeesToken1
+ amountDepositedUSD
+ amountWithdrawnUSD
+ amountCollectedUSD
+ transaction{
+ id
+ blockNumber
+ timestamp
+ gasUsed
+ gasPrice
+ }
+ feeGrowthInside0LastX128
+ feeGrowthInside1LastX128
+ increaseEvents{
+ id
+ tokenID
+ amount0
+ amount1
+ timeStamp
+ }
+ decreaseEvents{
+ id
+ tokenID
+ amount0
+ amount1
+ timeStamp
+ }
+ }
+}
\ No newline at end of file
diff --git a/packages/v3-watcher/src/gql/queries/setProtocolFeeEvent.gql b/packages/v3-watcher/src/gql/queries/setProtocolFeeEvent.gql
new file mode 100644
index 0000000..259706e
--- /dev/null
+++ b/packages/v3-watcher/src/gql/queries/setProtocolFeeEvent.gql
@@ -0,0 +1,41 @@
+query setProtocolFeeEvent($id: ID!, $block: Block_height){
+ setProtocolFeeEvent(id: $id, block: $block){
+ id
+ pool{
+ id
+ createdAtTimestamp
+ createdAtBlockNumber
+ feeTier
+ liquidity
+ sqrtPrice
+ feeGrowthGlobal0X128
+ feeGrowthGlobal1X128
+ token0Price
+ token1Price
+ tick
+ observationIndex
+ volumeToken0
+ volumeToken1
+ volumeUSD
+ untrackedVolumeUSD
+ feesUSD
+ txCount
+ collectedFeesToken0
+ collectedFeesToken1
+ collectedFeesUSD
+ totalValueLockedToken0
+ totalValueLockedToken1
+ totalValueLockedETH
+ totalValueLockedUSD
+ totalValueLockedUSDUntracked
+ isProtocolFeeEnabled
+ liquidityProviderCount
+ }
+ logIndex
+ new0
+ new1
+ old0
+ old1
+ timestamp
+ }
+}
\ No newline at end of file
diff --git a/packages/v3-watcher/src/gql/queries/setProtocolFeeEvents.gql b/packages/v3-watcher/src/gql/queries/setProtocolFeeEvents.gql
new file mode 100644
index 0000000..7d25a07
--- /dev/null
+++ b/packages/v3-watcher/src/gql/queries/setProtocolFeeEvents.gql
@@ -0,0 +1,41 @@
+query setProtocolFeeEvents($block: Block_height, $where: SetProtocolFeeEvent_filter, $orderBy: SetProtocolFeeEvent_orderBy, $orderDirection: OrderDirection, $first: Int, $skip: Int){
+ setProtocolFeeEvents(block: $block, where: $where, orderBy: $orderBy, orderDirection: $orderDirection, first: $first, skip: $skip){
+ id
+ pool{
+ id
+ createdAtTimestamp
+ createdAtBlockNumber
+ feeTier
+ liquidity
+ sqrtPrice
+ feeGrowthGlobal0X128
+ feeGrowthGlobal1X128
+ token0Price
+ token1Price
+ tick
+ observationIndex
+ volumeToken0
+ volumeToken1
+ volumeUSD
+ untrackedVolumeUSD
+ feesUSD
+ txCount
+ collectedFeesToken0
+ collectedFeesToken1
+ collectedFeesUSD
+ totalValueLockedToken0
+ totalValueLockedToken1
+ totalValueLockedETH
+ totalValueLockedUSD
+ totalValueLockedUSDUntracked
+ isProtocolFeeEnabled
+ liquidityProviderCount
+ }
+ logIndex
+ new0
+ new1
+ old0
+ old1
+ timestamp
+ }
+}
\ No newline at end of file
diff --git a/packages/v3-watcher/src/gql/queries/swap.gql b/packages/v3-watcher/src/gql/queries/swap.gql
new file mode 100644
index 0000000..d508c73
--- /dev/null
+++ b/packages/v3-watcher/src/gql/queries/swap.gql
@@ -0,0 +1,86 @@
+query swap($id: ID!, $block: Block_height){
+ swap(id: $id, block: $block){
+ id
+ transaction{
+ id
+ blockNumber
+ timestamp
+ gasUsed
+ gasPrice
+ }
+ timestamp
+ pool{
+ id
+ createdAtTimestamp
+ createdAtBlockNumber
+ feeTier
+ liquidity
+ sqrtPrice
+ feeGrowthGlobal0X128
+ feeGrowthGlobal1X128
+ token0Price
+ token1Price
+ tick
+ observationIndex
+ volumeToken0
+ volumeToken1
+ volumeUSD
+ untrackedVolumeUSD
+ feesUSD
+ txCount
+ collectedFeesToken0
+ collectedFeesToken1
+ collectedFeesUSD
+ totalValueLockedToken0
+ totalValueLockedToken1
+ totalValueLockedETH
+ totalValueLockedUSD
+ totalValueLockedUSDUntracked
+ isProtocolFeeEnabled
+ liquidityProviderCount
+ }
+ token0{
+ id
+ symbol
+ name
+ decimals
+ totalSupply
+ volume
+ volumeUSD
+ untrackedVolumeUSD
+ feesUSD
+ txCount
+ poolCount
+ totalValueLocked
+ totalValueLockedUSD
+ totalValueLockedUSDUntracked
+ derivedETH
+ }
+ token1{
+ id
+ symbol
+ name
+ decimals
+ totalSupply
+ volume
+ volumeUSD
+ untrackedVolumeUSD
+ feesUSD
+ txCount
+ poolCount
+ totalValueLocked
+ totalValueLockedUSD
+ totalValueLockedUSDUntracked
+ derivedETH
+ }
+ sender
+ recipient
+ origin
+ amount0
+ amount1
+ amountUSD
+ sqrtPriceX96
+ tick
+ logIndex
+ }
+}
\ No newline at end of file
diff --git a/packages/v3-watcher/src/gql/queries/swaps.gql b/packages/v3-watcher/src/gql/queries/swaps.gql
new file mode 100644
index 0000000..883156d
--- /dev/null
+++ b/packages/v3-watcher/src/gql/queries/swaps.gql
@@ -0,0 +1,86 @@
+query swaps($block: Block_height, $where: Swap_filter, $orderBy: Swap_orderBy, $orderDirection: OrderDirection, $first: Int, $skip: Int){
+ swaps(block: $block, where: $where, orderBy: $orderBy, orderDirection: $orderDirection, first: $first, skip: $skip){
+ id
+ transaction{
+ id
+ blockNumber
+ timestamp
+ gasUsed
+ gasPrice
+ }
+ timestamp
+ pool{
+ id
+ createdAtTimestamp
+ createdAtBlockNumber
+ feeTier
+ liquidity
+ sqrtPrice
+ feeGrowthGlobal0X128
+ feeGrowthGlobal1X128
+ token0Price
+ token1Price
+ tick
+ observationIndex
+ volumeToken0
+ volumeToken1
+ volumeUSD
+ untrackedVolumeUSD
+ feesUSD
+ txCount
+ collectedFeesToken0
+ collectedFeesToken1
+ collectedFeesUSD
+ totalValueLockedToken0
+ totalValueLockedToken1
+ totalValueLockedETH
+ totalValueLockedUSD
+ totalValueLockedUSDUntracked
+ isProtocolFeeEnabled
+ liquidityProviderCount
+ }
+ token0{
+ id
+ symbol
+ name
+ decimals
+ totalSupply
+ volume
+ volumeUSD
+ untrackedVolumeUSD
+ feesUSD
+ txCount
+ poolCount
+ totalValueLocked
+ totalValueLockedUSD
+ totalValueLockedUSDUntracked
+ derivedETH
+ }
+ token1{
+ id
+ symbol
+ name
+ decimals
+ totalSupply
+ volume
+ volumeUSD
+ untrackedVolumeUSD
+ feesUSD
+ txCount
+ poolCount
+ totalValueLocked
+ totalValueLockedUSD
+ totalValueLockedUSDUntracked
+ derivedETH
+ }
+ sender
+ recipient
+ origin
+ amount0
+ amount1
+ amountUSD
+ sqrtPriceX96
+ tick
+ logIndex
+ }
+}
\ No newline at end of file
diff --git a/packages/v3-watcher/src/gql/queries/tick.gql b/packages/v3-watcher/src/gql/queries/tick.gql
new file mode 100644
index 0000000..2264ca1
--- /dev/null
+++ b/packages/v3-watcher/src/gql/queries/tick.gql
@@ -0,0 +1,54 @@
+query tick($id: ID!, $block: Block_height){
+ tick(id: $id, block: $block){
+ id
+ poolAddress
+ tickIdx
+ pool{
+ id
+ createdAtTimestamp
+ createdAtBlockNumber
+ feeTier
+ liquidity
+ sqrtPrice
+ feeGrowthGlobal0X128
+ feeGrowthGlobal1X128
+ token0Price
+ token1Price
+ tick
+ observationIndex
+ volumeToken0
+ volumeToken1
+ volumeUSD
+ untrackedVolumeUSD
+ feesUSD
+ txCount
+ collectedFeesToken0
+ collectedFeesToken1
+ collectedFeesUSD
+ totalValueLockedToken0
+ totalValueLockedToken1
+ totalValueLockedETH
+ totalValueLockedUSD
+ totalValueLockedUSDUntracked
+ isProtocolFeeEnabled
+ liquidityProviderCount
+ }
+ liquidityGross
+ liquidityNet
+ price0
+ price1
+ volumeToken0
+ volumeToken1
+ volumeUSD
+ untrackedVolumeUSD
+ feesUSD
+ collectedFeesToken0
+ collectedFeesToken1
+ collectedFeesUSD
+ createdAtTimestamp
+ createdAtBlockNumber
+ liquidityProviderCount
+ feeGrowthOutside0X128
+ feeGrowthOutside1X128
+ }
+}
\ No newline at end of file
diff --git a/packages/v3-watcher/src/gql/queries/tickDayData.gql b/packages/v3-watcher/src/gql/queries/tickDayData.gql
new file mode 100644
index 0000000..cf6d5b6
--- /dev/null
+++ b/packages/v3-watcher/src/gql/queries/tickDayData.gql
@@ -0,0 +1,66 @@
+query tickDayData($id: ID!, $block: Block_height){
+ tickDayData(id: $id, block: $block){
+ id
+ date
+ pool{
+ id
+ createdAtTimestamp
+ createdAtBlockNumber
+ feeTier
+ liquidity
+ sqrtPrice
+ feeGrowthGlobal0X128
+ feeGrowthGlobal1X128
+ token0Price
+ token1Price
+ tick
+ observationIndex
+ volumeToken0
+ volumeToken1
+ volumeUSD
+ untrackedVolumeUSD
+ feesUSD
+ txCount
+ collectedFeesToken0
+ collectedFeesToken1
+ collectedFeesUSD
+ totalValueLockedToken0
+ totalValueLockedToken1
+ totalValueLockedETH
+ totalValueLockedUSD
+ totalValueLockedUSDUntracked
+ isProtocolFeeEnabled
+ liquidityProviderCount
+ }
+ tick{
+ id
+ poolAddress
+ tickIdx
+ liquidityGross
+ liquidityNet
+ price0
+ price1
+ volumeToken0
+ volumeToken1
+ volumeUSD
+ untrackedVolumeUSD
+ feesUSD
+ collectedFeesToken0
+ collectedFeesToken1
+ collectedFeesUSD
+ createdAtTimestamp
+ createdAtBlockNumber
+ liquidityProviderCount
+ feeGrowthOutside0X128
+ feeGrowthOutside1X128
+ }
+ liquidityGross
+ liquidityNet
+ volumeToken0
+ volumeToken1
+ volumeUSD
+ feesUSD
+ feeGrowthOutside0X128
+ feeGrowthOutside1X128
+ }
+}
\ No newline at end of file
diff --git a/packages/v3-watcher/src/gql/queries/tickDayDatas.gql b/packages/v3-watcher/src/gql/queries/tickDayDatas.gql
new file mode 100644
index 0000000..686bfd7
--- /dev/null
+++ b/packages/v3-watcher/src/gql/queries/tickDayDatas.gql
@@ -0,0 +1,66 @@
+query tickDayDatas($block: Block_height, $where: TickDayData_filter, $orderBy: TickDayData_orderBy, $orderDirection: OrderDirection, $first: Int, $skip: Int){
+ tickDayDatas(block: $block, where: $where, orderBy: $orderBy, orderDirection: $orderDirection, first: $first, skip: $skip){
+ id
+ date
+ pool{
+ id
+ createdAtTimestamp
+ createdAtBlockNumber
+ feeTier
+ liquidity
+ sqrtPrice
+ feeGrowthGlobal0X128
+ feeGrowthGlobal1X128
+ token0Price
+ token1Price
+ tick
+ observationIndex
+ volumeToken0
+ volumeToken1
+ volumeUSD
+ untrackedVolumeUSD
+ feesUSD
+ txCount
+ collectedFeesToken0
+ collectedFeesToken1
+ collectedFeesUSD
+ totalValueLockedToken0
+ totalValueLockedToken1
+ totalValueLockedETH
+ totalValueLockedUSD
+ totalValueLockedUSDUntracked
+ isProtocolFeeEnabled
+ liquidityProviderCount
+ }
+ tick{
+ id
+ poolAddress
+ tickIdx
+ liquidityGross
+ liquidityNet
+ price0
+ price1
+ volumeToken0
+ volumeToken1
+ volumeUSD
+ untrackedVolumeUSD
+ feesUSD
+ collectedFeesToken0
+ collectedFeesToken1
+ collectedFeesUSD
+ createdAtTimestamp
+ createdAtBlockNumber
+ liquidityProviderCount
+ feeGrowthOutside0X128
+ feeGrowthOutside1X128
+ }
+ liquidityGross
+ liquidityNet
+ volumeToken0
+ volumeToken1
+ volumeUSD
+ feesUSD
+ feeGrowthOutside0X128
+ feeGrowthOutside1X128
+ }
+}
\ No newline at end of file
diff --git a/packages/v3-watcher/src/gql/queries/tickHourData.gql b/packages/v3-watcher/src/gql/queries/tickHourData.gql
new file mode 100644
index 0000000..540fe9c
--- /dev/null
+++ b/packages/v3-watcher/src/gql/queries/tickHourData.gql
@@ -0,0 +1,64 @@
+query tickHourData($id: ID!, $block: Block_height){
+ tickHourData(id: $id, block: $block){
+ id
+ periodStartUnix
+ pool{
+ id
+ createdAtTimestamp
+ createdAtBlockNumber
+ feeTier
+ liquidity
+ sqrtPrice
+ feeGrowthGlobal0X128
+ feeGrowthGlobal1X128
+ token0Price
+ token1Price
+ tick
+ observationIndex
+ volumeToken0
+ volumeToken1
+ volumeUSD
+ untrackedVolumeUSD
+ feesUSD
+ txCount
+ collectedFeesToken0
+ collectedFeesToken1
+ collectedFeesUSD
+ totalValueLockedToken0
+ totalValueLockedToken1
+ totalValueLockedETH
+ totalValueLockedUSD
+ totalValueLockedUSDUntracked
+ isProtocolFeeEnabled
+ liquidityProviderCount
+ }
+ tick{
+ id
+ poolAddress
+ tickIdx
+ liquidityGross
+ liquidityNet
+ price0
+ price1
+ volumeToken0
+ volumeToken1
+ volumeUSD
+ untrackedVolumeUSD
+ feesUSD
+ collectedFeesToken0
+ collectedFeesToken1
+ collectedFeesUSD
+ createdAtTimestamp
+ createdAtBlockNumber
+ liquidityProviderCount
+ feeGrowthOutside0X128
+ feeGrowthOutside1X128
+ }
+ liquidityGross
+ liquidityNet
+ volumeToken0
+ volumeToken1
+ volumeUSD
+ feesUSD
+ }
+}
\ No newline at end of file
diff --git a/packages/v3-watcher/src/gql/queries/tickHourDatas.gql b/packages/v3-watcher/src/gql/queries/tickHourDatas.gql
new file mode 100644
index 0000000..23be822
--- /dev/null
+++ b/packages/v3-watcher/src/gql/queries/tickHourDatas.gql
@@ -0,0 +1,64 @@
+query tickHourDatas($block: Block_height, $where: TickHourData_filter, $orderBy: TickHourData_orderBy, $orderDirection: OrderDirection, $first: Int, $skip: Int){
+ tickHourDatas(block: $block, where: $where, orderBy: $orderBy, orderDirection: $orderDirection, first: $first, skip: $skip){
+ id
+ periodStartUnix
+ pool{
+ id
+ createdAtTimestamp
+ createdAtBlockNumber
+ feeTier
+ liquidity
+ sqrtPrice
+ feeGrowthGlobal0X128
+ feeGrowthGlobal1X128
+ token0Price
+ token1Price
+ tick
+ observationIndex
+ volumeToken0
+ volumeToken1
+ volumeUSD
+ untrackedVolumeUSD
+ feesUSD
+ txCount
+ collectedFeesToken0
+ collectedFeesToken1
+ collectedFeesUSD
+ totalValueLockedToken0
+ totalValueLockedToken1
+ totalValueLockedETH
+ totalValueLockedUSD
+ totalValueLockedUSDUntracked
+ isProtocolFeeEnabled
+ liquidityProviderCount
+ }
+ tick{
+ id
+ poolAddress
+ tickIdx
+ liquidityGross
+ liquidityNet
+ price0
+ price1
+ volumeToken0
+ volumeToken1
+ volumeUSD
+ untrackedVolumeUSD
+ feesUSD
+ collectedFeesToken0
+ collectedFeesToken1
+ collectedFeesUSD
+ createdAtTimestamp
+ createdAtBlockNumber
+ liquidityProviderCount
+ feeGrowthOutside0X128
+ feeGrowthOutside1X128
+ }
+ liquidityGross
+ liquidityNet
+ volumeToken0
+ volumeToken1
+ volumeUSD
+ feesUSD
+ }
+}
\ No newline at end of file
diff --git a/packages/v3-watcher/src/gql/queries/ticks.gql b/packages/v3-watcher/src/gql/queries/ticks.gql
new file mode 100644
index 0000000..91d8e5d
--- /dev/null
+++ b/packages/v3-watcher/src/gql/queries/ticks.gql
@@ -0,0 +1,54 @@
+query ticks($block: Block_height, $where: Tick_filter, $orderBy: Tick_orderBy, $orderDirection: OrderDirection, $first: Int, $skip: Int){
+ ticks(block: $block, where: $where, orderBy: $orderBy, orderDirection: $orderDirection, first: $first, skip: $skip){
+ id
+ poolAddress
+ tickIdx
+ pool{
+ id
+ createdAtTimestamp
+ createdAtBlockNumber
+ feeTier
+ liquidity
+ sqrtPrice
+ feeGrowthGlobal0X128
+ feeGrowthGlobal1X128
+ token0Price
+ token1Price
+ tick
+ observationIndex
+ volumeToken0
+ volumeToken1
+ volumeUSD
+ untrackedVolumeUSD
+ feesUSD
+ txCount
+ collectedFeesToken0
+ collectedFeesToken1
+ collectedFeesUSD
+ totalValueLockedToken0
+ totalValueLockedToken1
+ totalValueLockedETH
+ totalValueLockedUSD
+ totalValueLockedUSDUntracked
+ isProtocolFeeEnabled
+ liquidityProviderCount
+ }
+ liquidityGross
+ liquidityNet
+ price0
+ price1
+ volumeToken0
+ volumeToken1
+ volumeUSD
+ untrackedVolumeUSD
+ feesUSD
+ collectedFeesToken0
+ collectedFeesToken1
+ collectedFeesUSD
+ createdAtTimestamp
+ createdAtBlockNumber
+ liquidityProviderCount
+ feeGrowthOutside0X128
+ feeGrowthOutside1X128
+ }
+}
\ No newline at end of file
diff --git a/packages/v3-watcher/src/gql/queries/token.gql b/packages/v3-watcher/src/gql/queries/token.gql
new file mode 100644
index 0000000..7a4706c
--- /dev/null
+++ b/packages/v3-watcher/src/gql/queries/token.gql
@@ -0,0 +1,64 @@
+query token($id: ID!, $block: Block_height){
+ token(id: $id, block: $block){
+ id
+ symbol
+ name
+ decimals
+ totalSupply
+ volume
+ volumeUSD
+ untrackedVolumeUSD
+ feesUSD
+ txCount
+ poolCount
+ totalValueLocked
+ totalValueLockedUSD
+ totalValueLockedUSDUntracked
+ derivedETH
+ whitelistPools{
+ id
+ createdAtTimestamp
+ createdAtBlockNumber
+ feeTier
+ liquidity
+ sqrtPrice
+ feeGrowthGlobal0X128
+ feeGrowthGlobal1X128
+ token0Price
+ token1Price
+ tick
+ observationIndex
+ volumeToken0
+ volumeToken1
+ volumeUSD
+ untrackedVolumeUSD
+ feesUSD
+ txCount
+ collectedFeesToken0
+ collectedFeesToken1
+ collectedFeesUSD
+ totalValueLockedToken0
+ totalValueLockedToken1
+ totalValueLockedETH
+ totalValueLockedUSD
+ totalValueLockedUSDUntracked
+ isProtocolFeeEnabled
+ liquidityProviderCount
+ }
+ tokenDayData{
+ id
+ date
+ volume
+ volumeUSD
+ untrackedVolumeUSD
+ totalValueLocked
+ totalValueLockedUSD
+ priceUSD
+ feesUSD
+ open
+ high
+ low
+ close
+ }
+ }
+}
\ No newline at end of file
diff --git a/packages/v3-watcher/src/gql/queries/tokenDayData.gql b/packages/v3-watcher/src/gql/queries/tokenDayData.gql
new file mode 100644
index 0000000..d6fb3ea
--- /dev/null
+++ b/packages/v3-watcher/src/gql/queries/tokenDayData.gql
@@ -0,0 +1,34 @@
+query tokenDayData($id: ID!, $block: Block_height){
+ tokenDayData(id: $id, block: $block){
+ id
+ date
+ token{
+ id
+ symbol
+ name
+ decimals
+ totalSupply
+ volume
+ volumeUSD
+ untrackedVolumeUSD
+ feesUSD
+ txCount
+ poolCount
+ totalValueLocked
+ totalValueLockedUSD
+ totalValueLockedUSDUntracked
+ derivedETH
+ }
+ volume
+ volumeUSD
+ untrackedVolumeUSD
+ totalValueLocked
+ totalValueLockedUSD
+ priceUSD
+ feesUSD
+ open
+ high
+ low
+ close
+ }
+}
\ No newline at end of file
diff --git a/packages/v3-watcher/src/gql/queries/tokenDayDatas.gql b/packages/v3-watcher/src/gql/queries/tokenDayDatas.gql
new file mode 100644
index 0000000..ddb8194
--- /dev/null
+++ b/packages/v3-watcher/src/gql/queries/tokenDayDatas.gql
@@ -0,0 +1,34 @@
+query tokenDayDatas($block: Block_height, $where: TokenDayData_filter, $orderBy: TokenDayData_orderBy, $orderDirection: OrderDirection, $first: Int, $skip: Int){
+ tokenDayDatas(block: $block, where: $where, orderBy: $orderBy, orderDirection: $orderDirection, first: $first, skip: $skip){
+ id
+ date
+ token{
+ id
+ symbol
+ name
+ decimals
+ totalSupply
+ volume
+ volumeUSD
+ untrackedVolumeUSD
+ feesUSD
+ txCount
+ poolCount
+ totalValueLocked
+ totalValueLockedUSD
+ totalValueLockedUSDUntracked
+ derivedETH
+ }
+ volume
+ volumeUSD
+ untrackedVolumeUSD
+ totalValueLocked
+ totalValueLockedUSD
+ priceUSD
+ feesUSD
+ open
+ high
+ low
+ close
+ }
+}
\ No newline at end of file
diff --git a/packages/v3-watcher/src/gql/queries/tokenHourData.gql b/packages/v3-watcher/src/gql/queries/tokenHourData.gql
new file mode 100644
index 0000000..ce527f8
--- /dev/null
+++ b/packages/v3-watcher/src/gql/queries/tokenHourData.gql
@@ -0,0 +1,34 @@
+query tokenHourData($id: ID!, $block: Block_height){
+ tokenHourData(id: $id, block: $block){
+ id
+ periodStartUnix
+ token{
+ id
+ symbol
+ name
+ decimals
+ totalSupply
+ volume
+ volumeUSD
+ untrackedVolumeUSD
+ feesUSD
+ txCount
+ poolCount
+ totalValueLocked
+ totalValueLockedUSD
+ totalValueLockedUSDUntracked
+ derivedETH
+ }
+ volume
+ volumeUSD
+ untrackedVolumeUSD
+ totalValueLocked
+ totalValueLockedUSD
+ priceUSD
+ feesUSD
+ open
+ high
+ low
+ close
+ }
+}
\ No newline at end of file
diff --git a/packages/v3-watcher/src/gql/queries/tokenHourDatas.gql b/packages/v3-watcher/src/gql/queries/tokenHourDatas.gql
new file mode 100644
index 0000000..59e8458
--- /dev/null
+++ b/packages/v3-watcher/src/gql/queries/tokenHourDatas.gql
@@ -0,0 +1,34 @@
+query tokenHourDatas($block: Block_height, $where: TokenHourData_filter, $orderBy: TokenHourData_orderBy, $orderDirection: OrderDirection, $first: Int, $skip: Int){
+ tokenHourDatas(block: $block, where: $where, orderBy: $orderBy, orderDirection: $orderDirection, first: $first, skip: $skip){
+ id
+ periodStartUnix
+ token{
+ id
+ symbol
+ name
+ decimals
+ totalSupply
+ volume
+ volumeUSD
+ untrackedVolumeUSD
+ feesUSD
+ txCount
+ poolCount
+ totalValueLocked
+ totalValueLockedUSD
+ totalValueLockedUSDUntracked
+ derivedETH
+ }
+ volume
+ volumeUSD
+ untrackedVolumeUSD
+ totalValueLocked
+ totalValueLockedUSD
+ priceUSD
+ feesUSD
+ open
+ high
+ low
+ close
+ }
+}
\ No newline at end of file
diff --git a/packages/v3-watcher/src/gql/queries/tokens.gql b/packages/v3-watcher/src/gql/queries/tokens.gql
new file mode 100644
index 0000000..5c42ee8
--- /dev/null
+++ b/packages/v3-watcher/src/gql/queries/tokens.gql
@@ -0,0 +1,64 @@
+query tokens($block: Block_height, $where: Token_filter, $orderBy: Token_orderBy, $orderDirection: OrderDirection, $first: Int, $skip: Int){
+ tokens(block: $block, where: $where, orderBy: $orderBy, orderDirection: $orderDirection, first: $first, skip: $skip){
+ id
+ symbol
+ name
+ decimals
+ totalSupply
+ volume
+ volumeUSD
+ untrackedVolumeUSD
+ feesUSD
+ txCount
+ poolCount
+ totalValueLocked
+ totalValueLockedUSD
+ totalValueLockedUSDUntracked
+ derivedETH
+ whitelistPools{
+ id
+ createdAtTimestamp
+ createdAtBlockNumber
+ feeTier
+ liquidity
+ sqrtPrice
+ feeGrowthGlobal0X128
+ feeGrowthGlobal1X128
+ token0Price
+ token1Price
+ tick
+ observationIndex
+ volumeToken0
+ volumeToken1
+ volumeUSD
+ untrackedVolumeUSD
+ feesUSD
+ txCount
+ collectedFeesToken0
+ collectedFeesToken1
+ collectedFeesUSD
+ totalValueLockedToken0
+ totalValueLockedToken1
+ totalValueLockedETH
+ totalValueLockedUSD
+ totalValueLockedUSDUntracked
+ isProtocolFeeEnabled
+ liquidityProviderCount
+ }
+ tokenDayData{
+ id
+ date
+ volume
+ volumeUSD
+ untrackedVolumeUSD
+ totalValueLocked
+ totalValueLockedUSD
+ priceUSD
+ feesUSD
+ open
+ high
+ low
+ close
+ }
+ }
+}
\ No newline at end of file
diff --git a/packages/v3-watcher/src/gql/queries/transaction.gql b/packages/v3-watcher/src/gql/queries/transaction.gql
new file mode 100644
index 0000000..7e9ac5b
--- /dev/null
+++ b/packages/v3-watcher/src/gql/queries/transaction.gql
@@ -0,0 +1,72 @@
+query transaction($id: ID!, $block: Block_height){
+ transaction(id: $id, block: $block){
+ id
+ blockNumber
+ timestamp
+ gasUsed
+ gasPrice
+ mints{
+ id
+ timestamp
+ owner
+ sender
+ origin
+ amount
+ amount0
+ amount1
+ amountUSD
+ tickLower
+ tickUpper
+ logIndex
+ }
+ burns{
+ id
+ timestamp
+ owner
+ origin
+ amount
+ amount0
+ amount1
+ amountUSD
+ tickLower
+ tickUpper
+ logIndex
+ }
+ swaps{
+ id
+ timestamp
+ sender
+ recipient
+ origin
+ amount0
+ amount1
+ amountUSD
+ sqrtPriceX96
+ tick
+ logIndex
+ }
+ flashed{
+ id
+ timestamp
+ sender
+ recipient
+ amount0
+ amount1
+ amountUSD
+ amount0Paid
+ amount1Paid
+ logIndex
+ }
+ collects{
+ id
+ timestamp
+ owner
+ amount0
+ amount1
+ amountUSD
+ tickLower
+ tickUpper
+ logIndex
+ }
+ }
+}
\ No newline at end of file
diff --git a/packages/v3-watcher/src/gql/queries/transactions.gql b/packages/v3-watcher/src/gql/queries/transactions.gql
new file mode 100644
index 0000000..b25b8fc
--- /dev/null
+++ b/packages/v3-watcher/src/gql/queries/transactions.gql
@@ -0,0 +1,72 @@
+query transactions($block: Block_height, $where: Transaction_filter, $orderBy: Transaction_orderBy, $orderDirection: OrderDirection, $first: Int, $skip: Int){
+ transactions(block: $block, where: $where, orderBy: $orderBy, orderDirection: $orderDirection, first: $first, skip: $skip){
+ id
+ blockNumber
+ timestamp
+ gasUsed
+ gasPrice
+ mints{
+ id
+ timestamp
+ owner
+ sender
+ origin
+ amount
+ amount0
+ amount1
+ amountUSD
+ tickLower
+ tickUpper
+ logIndex
+ }
+ burns{
+ id
+ timestamp
+ owner
+ origin
+ amount
+ amount0
+ amount1
+ amountUSD
+ tickLower
+ tickUpper
+ logIndex
+ }
+ swaps{
+ id
+ timestamp
+ sender
+ recipient
+ origin
+ amount0
+ amount1
+ amountUSD
+ sqrtPriceX96
+ tick
+ logIndex
+ }
+ flashed{
+ id
+ timestamp
+ sender
+ recipient
+ amount0
+ amount1
+ amountUSD
+ amount0Paid
+ amount1Paid
+ logIndex
+ }
+ collects{
+ id
+ timestamp
+ owner
+ amount0
+ amount1
+ amountUSD
+ tickLower
+ tickUpper
+ logIndex
+ }
+ }
+}
\ No newline at end of file
diff --git a/packages/v3-watcher/src/gql/queries/uniswapDayData.gql b/packages/v3-watcher/src/gql/queries/uniswapDayData.gql
new file mode 100644
index 0000000..dda072d
--- /dev/null
+++ b/packages/v3-watcher/src/gql/queries/uniswapDayData.gql
@@ -0,0 +1,12 @@
+query uniswapDayData($id: ID!, $block: Block_height){
+ uniswapDayData(id: $id, block: $block){
+ id
+ date
+ volumeETH
+ volumeUSD
+ volumeUSDUntracked
+ feesUSD
+ txCount
+ tvlUSD
+ }
+}
\ No newline at end of file
diff --git a/packages/v3-watcher/src/gql/queries/uniswapDayDatas.gql b/packages/v3-watcher/src/gql/queries/uniswapDayDatas.gql
new file mode 100644
index 0000000..9e73dcb
--- /dev/null
+++ b/packages/v3-watcher/src/gql/queries/uniswapDayDatas.gql
@@ -0,0 +1,12 @@
+query uniswapDayDatas($block: Block_height, $where: UniswapDayData_filter, $orderBy: UniswapDayData_orderBy, $orderDirection: OrderDirection, $first: Int, $skip: Int){
+ uniswapDayDatas(block: $block, where: $where, orderBy: $orderBy, orderDirection: $orderDirection, first: $first, skip: $skip){
+ id
+ date
+ volumeETH
+ volumeUSD
+ volumeUSDUntracked
+ feesUSD
+ txCount
+ tvlUSD
+ }
+}
\ No newline at end of file
diff --git a/packages/v3-watcher/src/gql/subscriptions/index.ts b/packages/v3-watcher/src/gql/subscriptions/index.ts
new file mode 100644
index 0000000..f12910c
--- /dev/null
+++ b/packages/v3-watcher/src/gql/subscriptions/index.ts
@@ -0,0 +1,4 @@
+import fs from 'fs';
+import path from 'path';
+
+export const onEvent = fs.readFileSync(path.join(__dirname, 'onEvent.gql'), 'utf8');
diff --git a/packages/v3-watcher/src/gql/subscriptions/onEvent.gql b/packages/v3-watcher/src/gql/subscriptions/onEvent.gql
new file mode 100644
index 0000000..fc45f9d
--- /dev/null
+++ b/packages/v3-watcher/src/gql/subscriptions/onEvent.gql
@@ -0,0 +1,129 @@
+subscription onEvent{
+ onEvent{
+ block{
+ cid
+ hash
+ number
+ timestamp
+ parentHash
+ }
+ tx{
+ hash
+ index
+ from
+ to
+ }
+ contract
+ eventIndex
+ event{
+ ... on FeeAmountEnabledEvent {
+ fee
+ tickSpacing
+ }
+ ... on OwnerChangedEvent {
+ oldOwner
+ newOwner
+ }
+ ... on PoolCreatedEvent {
+ token0
+ token1
+ fee
+ tickSpacing
+ pool
+ }
+ ... on ApprovalEvent {
+ owner
+ approved
+ tokenId
+ }
+ ... on ApprovalForAllEvent {
+ owner
+ operator
+ approved
+ }
+ ... on CollectEvent {
+ tokenId
+ recipient
+ amount0
+ amount1
+ owner
+ tickLower
+ tickUpper
+ }
+ ... on DecreaseLiquidityEvent {
+ tokenId
+ liquidity
+ amount0
+ amount1
+ }
+ ... on IncreaseLiquidityEvent {
+ tokenId
+ liquidity
+ amount0
+ amount1
+ }
+ ... on TransferEvent {
+ from
+ to
+ tokenId
+ }
+ ... on BurnEvent {
+ owner
+ tickLower
+ tickUpper
+ amount
+ amount0
+ amount1
+ }
+ ... on CollectProtocolEvent {
+ sender
+ recipient
+ amount0
+ amount1
+ }
+ ... on FlashEvent {
+ sender
+ recipient
+ amount0
+ amount1
+ paid0
+ paid1
+ }
+ ... on IncreaseObservationCardinalityNextEvent {
+ observationCardinalityNextOld
+ observationCardinalityNextNew
+ }
+ ... on InitializeEvent {
+ sqrtPriceX96
+ tick
+ }
+ ... on MintEvent {
+ sender
+ owner
+ tickLower
+ tickUpper
+ amount
+ amount0
+ amount1
+ }
+ ... on SetFeeProtocolEvent {
+ feeProtocol0Old
+ feeProtocol1Old
+ feeProtocol0New
+ feeProtocol1New
+ }
+ ... on SwapEvent {
+ sender
+ recipient
+ amount0
+ amount1
+ sqrtPriceX96
+ liquidity
+ tick
+ }
+ }
+ proof{
+ data
+ }
+ }
+}
\ No newline at end of file
diff --git a/packages/v3-watcher/src/hooks.ts b/packages/v3-watcher/src/hooks.ts
new file mode 100644
index 0000000..d45498b
--- /dev/null
+++ b/packages/v3-watcher/src/hooks.ts
@@ -0,0 +1,86 @@
+//
+// Copyright 2021 Vulcanize, Inc.
+//
+
+import assert from 'assert';
+
+import {
+ ResultEvent,
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ updateStateForMappingType,
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ updateStateForElementaryType
+} from '@cerc-io/util';
+
+import { Indexer } from './indexer';
+
+/**
+ * Hook function to store an initial state.
+ * @param indexer Indexer instance.
+ * @param blockHash Hash of the concerned block.
+ * @param contractAddress Address of the concerned contract.
+ * @returns Data block to be stored.
+ */
+export async function createInitialState (indexer: Indexer, contractAddress: string, blockHash: string): Promise {
+ assert(indexer);
+ assert(blockHash);
+ assert(contractAddress);
+
+ // Store an empty State.
+ const stateData: any = {
+ state: {}
+ };
+
+ // Use updateStateForElementaryType to update initial state with an elementary property.
+ // Eg. const stateData = updateStateForElementaryType(stateData, '_totalBalance', result.value.toString());
+
+ // Use updateStateForMappingType to update initial state with a nested property.
+ // Eg. const stateData = updateStateForMappingType(stateData, '_allowances', [owner, spender], allowance.value.toString());
+
+ // Return initial state data to be saved.
+ return stateData;
+}
+
+/**
+ * Hook function to create state diff.
+ * @param indexer Indexer instance that contains methods to fetch the contract variable values.
+ * @param blockHash Block hash of the concerned block.
+ */
+export async function createStateDiff (indexer: Indexer, blockHash: string): Promise {
+ assert(indexer);
+ assert(blockHash);
+
+ // Use indexer.createDiff() method to save custom state diff(s).
+}
+
+/**
+ * Hook function to create state checkpoint
+ * @param indexer Indexer instance.
+ * @param contractAddress Address of the concerned contract.
+ * @param blockHash Block hash of the concerned block.
+ * @returns Whether to disable default checkpoint. If false, the state from this hook is updated with that from default checkpoint.
+ */
+export async function createStateCheckpoint (indexer: Indexer, contractAddress: string, blockHash: string): Promise {
+ assert(indexer);
+ assert(blockHash);
+ assert(contractAddress);
+
+ // Use indexer.createStateCheckpoint() method to create a custom checkpoint.
+
+ // Return false to update the state created by this hook by auto-generated checkpoint state.
+ // Return true to disable update of the state created by this hook by auto-generated checkpoint state.
+ return false;
+}
+
+/**
+ * Event hook function.
+ * @param indexer Indexer instance that contains methods to fetch and update the contract values in the database.
+ * @param eventData ResultEvent object containing event information.
+ */
+export async function handleEvent (indexer: Indexer, eventData: ResultEvent): Promise {
+ assert(indexer);
+ assert(eventData);
+
+ // Use indexer methods to index data.
+ // Pass `diff` parameter to indexer methods as true to save an auto-generated state from the indexed data.
+}
diff --git a/packages/v3-watcher/src/indexer.ts b/packages/v3-watcher/src/indexer.ts
new file mode 100644
index 0000000..ad49cd2
--- /dev/null
+++ b/packages/v3-watcher/src/indexer.ts
@@ -0,0 +1,1456 @@
+//
+// Copyright 2021 Vulcanize, Inc.
+//
+
+import assert from 'assert';
+import { DeepPartial, FindConditions, FindManyOptions, ObjectLiteral } from 'typeorm';
+import debug from 'debug';
+import { ethers, constants } from 'ethers';
+import { GraphQLResolveInfo } from 'graphql';
+
+import { JsonFragment } from '@ethersproject/abi';
+import { BaseProvider } from '@ethersproject/providers';
+import { MappingKey, StorageLayout } from '@cerc-io/solidity-mapper';
+import {
+ Indexer as BaseIndexer,
+ IndexerInterface,
+ ValueResult,
+ ServerConfig,
+ JobQueue,
+ Where,
+ QueryOptions,
+ BlockHeight,
+ ResultMeta,
+ updateSubgraphState,
+ dumpSubgraphState,
+ GraphWatcherInterface,
+ StateKind,
+ StateStatus,
+ ResultEvent,
+ getResultEvent,
+ DatabaseInterface,
+ Clients,
+ EthClient,
+ UpstreamConfig,
+ EthFullBlock,
+ EthFullTransaction,
+ ExtraEventData
+} from '@cerc-io/util';
+import { GraphWatcher } from '@cerc-io/graph-node';
+
+import FactoryArtifacts from './artifacts/Factory.json';
+import NonfungiblePositionManagerArtifacts from './artifacts/NonfungiblePositionManager.json';
+import PoolArtifacts from './artifacts/Pool.json';
+import { Database, ENTITIES, SUBGRAPH_ENTITIES } from './database';
+import { createInitialState, handleEvent, createStateDiff, createStateCheckpoint } from './hooks';
+import { Contract } from './entity/Contract';
+import { Event } from './entity/Event';
+import { SyncStatus } from './entity/SyncStatus';
+import { StateSyncStatus } from './entity/StateSyncStatus';
+import { BlockProgress } from './entity/BlockProgress';
+import { State } from './entity/State';
+/* eslint-disable @typescript-eslint/no-unused-vars */
+import { Factory } from './entity/Factory';
+import { Bundle } from './entity/Bundle';
+import { Token } from './entity/Token';
+import { Pool } from './entity/Pool';
+import { Tick } from './entity/Tick';
+import { Position } from './entity/Position';
+import { PositionSnapshot } from './entity/PositionSnapshot';
+import { Transaction } from './entity/Transaction';
+import { Mint } from './entity/Mint';
+import { Burn } from './entity/Burn';
+import { Swap } from './entity/Swap';
+import { Collect } from './entity/Collect';
+import { Flash } from './entity/Flash';
+import { UniswapDayData } from './entity/UniswapDayData';
+import { PoolDayData } from './entity/PoolDayData';
+import { PoolHourData } from './entity/PoolHourData';
+import { TickHourData } from './entity/TickHourData';
+import { TickDayData } from './entity/TickDayData';
+import { TokenDayData } from './entity/TokenDayData';
+import { TokenHourData } from './entity/TokenHourData';
+import { IncreaseEvent } from './entity/IncreaseEvent';
+import { DecreaseEvent } from './entity/DecreaseEvent';
+import { SetProtocolFeeEvent } from './entity/SetProtocolFeeEvent';
+/* eslint-enable @typescript-eslint/no-unused-vars */
+
+import { FrothyEntity } from './entity/FrothyEntity';
+
+// eslint-disable-next-line @typescript-eslint/no-unused-vars
+const log = debug('vulcanize:indexer');
+
+const KIND_FACTORY = 'Factory';
+
+const KIND_NONFUNGIBLEPOSITIONMANAGER = 'NonfungiblePositionManager';
+
+const KIND_POOL = 'Pool';
+
+export class Indexer implements IndexerInterface {
+ _db: Database;
+ _ethClient: EthClient;
+ _ethProvider: BaseProvider;
+ _baseIndexer: BaseIndexer;
+ _serverConfig: ServerConfig;
+ _upstreamConfig: UpstreamConfig;
+ _graphWatcher: GraphWatcher;
+
+ _abiMap: Map;
+ _storageLayoutMap: Map;
+ _contractMap: Map;
+ eventSignaturesMap: Map;
+
+ _entityTypesMap: Map;
+ _relationsMap: Map;
+
+ _subgraphStateMap: Map;
+
+ constructor (
+ config: {
+ server: ServerConfig;
+ upstream: UpstreamConfig;
+ },
+ db: DatabaseInterface,
+ clients: Clients,
+ ethProvider: BaseProvider,
+ jobQueue: JobQueue,
+ graphWatcher?: GraphWatcherInterface
+ ) {
+ assert(db);
+ assert(clients.ethClient);
+
+ this._db = db as Database;
+ this._ethClient = clients.ethClient;
+ this._ethProvider = ethProvider;
+ this._serverConfig = config.server;
+ this._upstreamConfig = config.upstream;
+ this._baseIndexer = new BaseIndexer(config, this._db, this._ethClient, this._ethProvider, jobQueue);
+ assert(graphWatcher);
+ this._graphWatcher = graphWatcher as GraphWatcher;
+
+ this._abiMap = new Map();
+ this._storageLayoutMap = new Map();
+ this._contractMap = new Map();
+ this.eventSignaturesMap = new Map();
+
+ const { abi: FactoryABI } = FactoryArtifacts;
+
+ const { abi: NonfungiblePositionManagerABI } = NonfungiblePositionManagerArtifacts;
+
+ const { abi: PoolABI } = PoolArtifacts;
+
+ assert(FactoryABI);
+ this._abiMap.set(KIND_FACTORY, FactoryABI);
+
+ const FactoryContractInterface = new ethers.utils.Interface(FactoryABI);
+ this._contractMap.set(KIND_FACTORY, FactoryContractInterface);
+
+ const FactoryEventSignatures = Object.values(FactoryContractInterface.events).map(value => {
+ return FactoryContractInterface.getEventTopic(value);
+ });
+ this.eventSignaturesMap.set(KIND_FACTORY, FactoryEventSignatures);
+
+ assert(NonfungiblePositionManagerABI);
+ this._abiMap.set(KIND_NONFUNGIBLEPOSITIONMANAGER, NonfungiblePositionManagerABI);
+
+ const NonfungiblePositionManagerContractInterface = new ethers.utils.Interface(NonfungiblePositionManagerABI);
+ this._contractMap.set(KIND_NONFUNGIBLEPOSITIONMANAGER, NonfungiblePositionManagerContractInterface);
+
+ const NonfungiblePositionManagerEventSignatures = Object.values(NonfungiblePositionManagerContractInterface.events).map(value => {
+ return NonfungiblePositionManagerContractInterface.getEventTopic(value);
+ });
+ this.eventSignaturesMap.set(KIND_NONFUNGIBLEPOSITIONMANAGER, NonfungiblePositionManagerEventSignatures);
+
+ assert(PoolABI);
+ this._abiMap.set(KIND_POOL, PoolABI);
+
+ const PoolContractInterface = new ethers.utils.Interface(PoolABI);
+ this._contractMap.set(KIND_POOL, PoolContractInterface);
+
+ const PoolEventSignatures = Object.values(PoolContractInterface.events).map(value => {
+ return PoolContractInterface.getEventTopic(value);
+ });
+ this.eventSignaturesMap.set(KIND_POOL, PoolEventSignatures);
+
+ this._entityTypesMap = new Map();
+ this._populateEntityTypesMap();
+
+ this._relationsMap = new Map();
+ this._populateRelationsMap();
+
+ this._subgraphStateMap = new Map();
+ }
+
+ get serverConfig (): ServerConfig {
+ return this._serverConfig;
+ }
+
+ get upstreamConfig (): UpstreamConfig {
+ return this._upstreamConfig;
+ }
+
+ get storageLayoutMap (): Map {
+ return this._storageLayoutMap;
+ }
+
+ get graphWatcher (): GraphWatcher {
+ return this._graphWatcher;
+ }
+
+ async init (): Promise {
+ await this._baseIndexer.fetchContracts();
+ await this._baseIndexer.fetchStateStatus();
+ }
+
+ switchClients ({ ethClient, ethProvider }: { ethClient: EthClient, ethProvider: BaseProvider }): void {
+ this._ethClient = ethClient;
+ this._ethProvider = ethProvider;
+ this._baseIndexer.switchClients({ ethClient, ethProvider });
+ this._graphWatcher.switchClients({ ethClient, ethProvider });
+ }
+
+ async getMetaData (block: BlockHeight): Promise {
+ return this._baseIndexer.getMetaData(block);
+ }
+
+ getResultEvent (event: Event): ResultEvent {
+ return getResultEvent(event);
+ }
+
+ async getStorageValue (storageLayout: StorageLayout, blockHash: string, contractAddress: string, variable: string, ...mappingKeys: MappingKey[]): Promise {
+ return this._baseIndexer.getStorageValue(
+ storageLayout,
+ blockHash,
+ contractAddress,
+ variable,
+ ...mappingKeys
+ );
+ }
+
+ async getEntitiesForBlock (blockHash: string, tableName: string): Promise {
+ return this._db.getEntitiesForBlock(blockHash, tableName);
+ }
+
+ async processInitialState (contractAddress: string, blockHash: string): Promise {
+ // Call initial state hook.
+ return createInitialState(this, contractAddress, blockHash);
+ }
+
+ async processStateCheckpoint (contractAddress: string, blockHash: string): Promise {
+ // Call checkpoint hook.
+ return createStateCheckpoint(this, contractAddress, blockHash);
+ }
+
+ async processCanonicalBlock (blockHash: string, blockNumber: number): Promise {
+ console.time('time:indexer#processCanonicalBlock-finalize_auto_diffs');
+ // Finalize staged diff blocks if any.
+ await this._baseIndexer.finalizeDiffStaged(blockHash);
+ console.timeEnd('time:indexer#processCanonicalBlock-finalize_auto_diffs');
+
+ // Call custom stateDiff hook.
+ await createStateDiff(this, blockHash);
+
+ this._graphWatcher.pruneEntityCacheFrothyBlocks(blockHash, blockNumber);
+ }
+
+ async processCheckpoint (blockHash: string): Promise {
+ // Return if checkpointInterval is <= 0.
+ const checkpointInterval = this._serverConfig.checkpointInterval;
+ if (checkpointInterval <= 0) return;
+
+ console.time('time:indexer#processCheckpoint-checkpoint');
+ await this._baseIndexer.processCheckpoint(this, blockHash, checkpointInterval);
+ console.timeEnd('time:indexer#processCheckpoint-checkpoint');
+ }
+
+ async processCLICheckpoint (contractAddress: string, blockHash?: string): Promise {
+ return this._baseIndexer.processCLICheckpoint(this, contractAddress, blockHash);
+ }
+
+ async getPrevState (blockHash: string, contractAddress: string, kind?: string): Promise {
+ return this._db.getPrevState(blockHash, contractAddress, kind);
+ }
+
+ async getLatestState (contractAddress: string, kind: StateKind | null, blockNumber?: number): Promise {
+ return this._db.getLatestState(contractAddress, kind, blockNumber);
+ }
+
+ async getStatesByHash (blockHash: string): Promise {
+ return this._baseIndexer.getStatesByHash(blockHash);
+ }
+
+ async getStateByCID (cid: string): Promise {
+ return this._baseIndexer.getStateByCID(cid);
+ }
+
+ async getStates (where: FindConditions): Promise {
+ return this._db.getStates(where);
+ }
+
+ getStateData (state: State): any {
+ return this._baseIndexer.getStateData(state);
+ }
+
+ // Method used to create auto diffs (diff_staged).
+ async createDiffStaged (contractAddress: string, blockHash: string, data: any): Promise {
+ console.time('time:indexer#createDiffStaged-auto_diff');
+ await this._baseIndexer.createDiffStaged(contractAddress, blockHash, data);
+ console.timeEnd('time:indexer#createDiffStaged-auto_diff');
+ }
+
+ // Method to be used by createStateDiff hook.
+ async createDiff (contractAddress: string, blockHash: string, data: any): Promise {
+ const block = await this.getBlockProgress(blockHash);
+ assert(block);
+
+ await this._baseIndexer.createDiff(contractAddress, block, data);
+ }
+
+ // Method to be used by createStateCheckpoint hook.
+ async createStateCheckpoint (contractAddress: string, blockHash: string, data: any): Promise {
+ const block = await this.getBlockProgress(blockHash);
+ assert(block);
+
+ return this._baseIndexer.createStateCheckpoint(contractAddress, block, data);
+ }
+
+ // Method to be used by export-state CLI.
+ async createCheckpoint (contractAddress: string, blockHash: string): Promise {
+ const block = await this.getBlockProgress(blockHash);
+ assert(block);
+
+ return this._baseIndexer.createCheckpoint(this, contractAddress, block);
+ }
+
+ // Method to be used by fill-state CLI.
+ async createInit (blockHash: string, blockNumber: number): Promise {
+ // Create initial state for contracts.
+ await this._baseIndexer.createInit(this, blockHash, blockNumber);
+ }
+
+ async saveOrUpdateState (state: State): Promise {
+ return this._baseIndexer.saveOrUpdateState(state);
+ }
+
+ async removeStates (blockNumber: number, kind: StateKind): Promise {
+ await this._baseIndexer.removeStates(blockNumber, kind);
+ }
+
+ async getSubgraphEntity (
+ entity: new () => Entity,
+ id: string,
+ block: BlockHeight,
+ queryInfo: GraphQLResolveInfo
+ ): Promise {
+ const data = await this._graphWatcher.getEntity(entity, id, this._relationsMap, block, queryInfo);
+
+ return data;
+ }
+
+ async getSubgraphEntities (
+ entity: new () => Entity,
+ block: BlockHeight,
+ where: { [key: string]: any } = {},
+ queryOptions: QueryOptions = {},
+ queryInfo: GraphQLResolveInfo
+ ): Promise {
+ return this._graphWatcher.getEntities(entity, this._relationsMap, block, where, queryOptions, queryInfo);
+ }
+
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ async triggerIndexingOnEvent (event: Event, extraData: ExtraEventData): Promise {
+ const resultEvent = this.getResultEvent(event);
+
+ console.time('time:indexer#processEvent-mapping_code');
+ // Call subgraph handler for event.
+ await this._graphWatcher.handleEvent(resultEvent, extraData);
+ console.timeEnd('time:indexer#processEvent-mapping_code');
+
+ // Call custom hook function for indexing on event.
+ await handleEvent(this, resultEvent);
+ }
+
+ async processEvent (event: Event, extraData: ExtraEventData): Promise {
+ // Trigger indexing of data based on the event.
+ await this.triggerIndexingOnEvent(event, extraData);
+ }
+
+ async processBlock (blockProgress: BlockProgress): Promise {
+ console.time('time:indexer#processBlock-init_state');
+ // Call a function to create initial state for contracts.
+ await this._baseIndexer.createInit(this, blockProgress.blockHash, blockProgress.blockNumber);
+ console.timeEnd('time:indexer#processBlock-init_state');
+
+ this._graphWatcher.updateEntityCacheFrothyBlocks(blockProgress);
+ }
+
+ async processBlockAfterEvents (blockHash: string, blockNumber: number, extraData: ExtraEventData): Promise {
+ console.time('time:indexer#processBlockAfterEvents-mapping_code');
+ // Call subgraph handler for block.
+ await this._graphWatcher.handleBlock(blockHash, blockNumber, extraData);
+ console.timeEnd('time:indexer#processBlockAfterEvents-mapping_code');
+
+ console.time('time:indexer#processBlockAfterEvents-dump_subgraph_state');
+ // Persist subgraph state to the DB.
+ await this.dumpSubgraphState(blockHash);
+ console.timeEnd('time:indexer#processBlockAfterEvents-dump_subgraph_state');
+ }
+
+ parseEventNameAndArgs (kind: string, logObj: any): { eventParsed: boolean, eventDetails: any } {
+ const { topics, data } = logObj;
+
+ const contract = this._contractMap.get(kind);
+ assert(contract);
+
+ let logDescription: ethers.utils.LogDescription;
+ try {
+ logDescription = contract.parseLog({ data, topics });
+ } catch (err) {
+ // Return if no matching event found
+ if ((err as Error).message.includes('no matching event')) {
+ log(`WARNING: Skipping event for contract ${kind} as no matching event found in the ABI`);
+ return { eventParsed: false, eventDetails: {} };
+ }
+
+ throw err;
+ }
+
+ const { eventName, eventInfo, eventSignature } = this._baseIndexer.parseEvent(logDescription);
+
+ return {
+ eventParsed: true,
+ eventDetails: {
+ eventName,
+ eventInfo,
+ eventSignature
+ }
+ };
+ }
+
+ async getStateSyncStatus (): Promise {
+ return this._db.getStateSyncStatus();
+ }
+
+ async updateStateSyncStatusIndexedBlock (blockNumber: number, force?: boolean): Promise {
+ if (!this._serverConfig.enableState) {
+ return;
+ }
+
+ const dbTx = await this._db.createTransactionRunner();
+ let res;
+
+ try {
+ res = await this._db.updateStateSyncStatusIndexedBlock(dbTx, blockNumber, force);
+ await dbTx.commitTransaction();
+ } catch (error) {
+ await dbTx.rollbackTransaction();
+ throw error;
+ } finally {
+ await dbTx.release();
+ }
+
+ return res;
+ }
+
+ async updateStateSyncStatusCheckpointBlock (blockNumber: number, force?: boolean): Promise {
+ const dbTx = await this._db.createTransactionRunner();
+ let res;
+
+ try {
+ res = await this._db.updateStateSyncStatusCheckpointBlock(dbTx, blockNumber, force);
+ await dbTx.commitTransaction();
+ } catch (error) {
+ await dbTx.rollbackTransaction();
+ throw error;
+ } finally {
+ await dbTx.release();
+ }
+
+ return res;
+ }
+
+ async getLatestCanonicalBlock (): Promise {
+ const syncStatus = await this.getSyncStatus();
+ assert(syncStatus);
+
+ if (syncStatus.latestCanonicalBlockHash === constants.HashZero) {
+ return;
+ }
+
+ const latestCanonicalBlock = await this.getBlockProgress(syncStatus.latestCanonicalBlockHash);
+ assert(latestCanonicalBlock);
+
+ return latestCanonicalBlock;
+ }
+
+ async getLatestStateIndexedBlock (): Promise {
+ return this._baseIndexer.getLatestStateIndexedBlock();
+ }
+
+ async addContracts (): Promise {
+ // Watching all the contracts in the subgraph.
+ await this._graphWatcher.addContracts();
+ }
+
+ async watchContract (address: string, kind: string, checkpoint: boolean, startingBlock: number, context?: any): Promise {
+ return this._baseIndexer.watchContract(address, kind, checkpoint, startingBlock, context);
+ }
+
+ updateStateStatusMap (address: string, stateStatus: StateStatus): void {
+ this._baseIndexer.updateStateStatusMap(address, stateStatus);
+ }
+
+ cacheContract (contract: Contract): void {
+ return this._baseIndexer.cacheContract(contract);
+ }
+
+ async saveEventEntity (dbEvent: Event): Promise {
+ return this._baseIndexer.saveEventEntity(dbEvent);
+ }
+
+ async saveEvents (dbEvents: Event[]): Promise {
+ return this._baseIndexer.saveEvents(dbEvents);
+ }
+
+ async getEventsByFilter (blockHash: string, contract?: string, name?: string): Promise> {
+ return this._baseIndexer.getEventsByFilter(blockHash, contract, name);
+ }
+
+ isWatchedContract (address : string): Contract | undefined {
+ return this._baseIndexer.isWatchedContract(address);
+ }
+
+ getWatchedContracts (): Contract[] {
+ return this._baseIndexer.getWatchedContracts();
+ }
+
+ getContractsByKind (kind: string): Contract[] {
+ return this._baseIndexer.getContractsByKind(kind);
+ }
+
+ async getProcessedBlockCountForRange (fromBlockNumber: number, toBlockNumber: number): Promise<{ expected: number, actual: number }> {
+ return this._baseIndexer.getProcessedBlockCountForRange(fromBlockNumber, toBlockNumber);
+ }
+
+ async getEventsInRange (fromBlockNumber: number, toBlockNumber: number): Promise> {
+ return this._baseIndexer.getEventsInRange(fromBlockNumber, toBlockNumber, this._serverConfig.gql.maxEventsBlockRange);
+ }
+
+ async getSyncStatus (): Promise {
+ return this._baseIndexer.getSyncStatus();
+ }
+
+ async getBlocks (blockFilter: { blockHash?: string, blockNumber?: number }): Promise {
+ return this._baseIndexer.getBlocks(blockFilter);
+ }
+
+ async updateSyncStatusIndexedBlock (blockHash: string, blockNumber: number, force = false): Promise {
+ return this._baseIndexer.updateSyncStatusIndexedBlock(blockHash, blockNumber, force);
+ }
+
+ async updateSyncStatusChainHead (blockHash: string, blockNumber: number, force = false): Promise {
+ return this._baseIndexer.updateSyncStatusChainHead(blockHash, blockNumber, force);
+ }
+
+ async updateSyncStatusCanonicalBlock (blockHash: string, blockNumber: number, force = false): Promise {
+ const syncStatus = this._baseIndexer.updateSyncStatusCanonicalBlock(blockHash, blockNumber, force);
+ await this.pruneFrothyEntities(blockNumber);
+
+ return syncStatus;
+ }
+
+ async updateSyncStatusProcessedBlock (blockHash: string, blockNumber: number, force = false): Promise {
+ return this._baseIndexer.updateSyncStatusProcessedBlock(blockHash, blockNumber, force);
+ }
+
+ async updateSyncStatusIndexingError (hasIndexingError: boolean): Promise {
+ return this._baseIndexer.updateSyncStatusIndexingError(hasIndexingError);
+ }
+
+ async updateSyncStatus (syncStatus: DeepPartial): Promise {
+ return this._baseIndexer.updateSyncStatus(syncStatus);
+ }
+
+ async getEvent (id: string): Promise {
+ return this._baseIndexer.getEvent(id);
+ }
+
+ async getBlockProgress (blockHash: string): Promise {
+ return this._baseIndexer.getBlockProgress(blockHash);
+ }
+
+ async getBlockProgressEntities (where: FindConditions, options: FindManyOptions): Promise {
+ return this._baseIndexer.getBlockProgressEntities(where, options);
+ }
+
+ async getBlocksAtHeight (height: number, isPruned: boolean): Promise {
+ return this._baseIndexer.getBlocksAtHeight(height, isPruned);
+ }
+
+ async fetchAndSaveFilteredEventsAndBlocks (startBlock: number, endBlock: number): Promise<{
+ blockProgress: BlockProgress,
+ events: DeepPartial[],
+ ethFullBlock: EthFullBlock;
+ ethFullTransactions: EthFullTransaction[];
+ }[]> {
+ return this._baseIndexer.fetchAndSaveFilteredEventsAndBlocks(startBlock, endBlock, this.eventSignaturesMap, this.parseEventNameAndArgs.bind(this));
+ }
+
+ async fetchEventsForContracts (blockHash: string, blockNumber: number, addresses: string[]): Promise[]> {
+ return this._baseIndexer.fetchEventsForContracts(blockHash, blockNumber, addresses, this.eventSignaturesMap, this.parseEventNameAndArgs.bind(this));
+ }
+
+ async saveBlockAndFetchEvents (block: DeepPartial): Promise<[
+ BlockProgress,
+ DeepPartial[],
+ EthFullTransaction[]
+ ]> {
+ return this._saveBlockAndFetchEvents(block);
+ }
+
+ async getBlockEvents (blockHash: string, where: Where, queryOptions: QueryOptions): Promise> {
+ return this._baseIndexer.getBlockEvents(blockHash, where, queryOptions);
+ }
+
+ async removeUnknownEvents (block: BlockProgress): Promise {
+ return this._baseIndexer.removeUnknownEvents(Event, block);
+ }
+
+ async markBlocksAsPruned (blocks: BlockProgress[]): Promise {
+ await this._baseIndexer.markBlocksAsPruned(blocks);
+
+ await this._graphWatcher.pruneEntities(FrothyEntity, blocks, SUBGRAPH_ENTITIES);
+ }
+
+ async pruneFrothyEntities (blockNumber: number): Promise {
+ await this._graphWatcher.pruneFrothyEntities(FrothyEntity, blockNumber);
+ }
+
+ async resetLatestEntities (blockNumber: number): Promise {
+ await this._graphWatcher.resetLatestEntities(blockNumber);
+ }
+
+ async updateBlockProgress (block: BlockProgress, lastProcessedEventIndex: number): Promise {
+ return this._baseIndexer.updateBlockProgress(block, lastProcessedEventIndex);
+ }
+
+ async getAncestorAtHeight (blockHash: string, height: number): Promise {
+ return this._baseIndexer.getAncestorAtHeight(blockHash, height);
+ }
+
+ async resetWatcherToBlock (blockNumber: number): Promise {
+ const entities = [...ENTITIES, FrothyEntity];
+ await this._baseIndexer.resetWatcherToBlock(blockNumber, entities);
+
+ await this.resetLatestEntities(blockNumber);
+ }
+
+ async clearProcessedBlockData (block: BlockProgress): Promise {
+ const entities = [...ENTITIES, FrothyEntity];
+ await this._baseIndexer.clearProcessedBlockData(block, entities);
+
+ await this.resetLatestEntities(block.blockNumber);
+ }
+
+ getEntityTypesMap (): Map {
+ return this._entityTypesMap;
+ }
+
+ getRelationsMap (): Map {
+ return this._relationsMap;
+ }
+
+ updateSubgraphState (contractAddress: string, data: any): void {
+ return updateSubgraphState(this._subgraphStateMap, contractAddress, data);
+ }
+
+ async dumpSubgraphState (blockHash: string, isStateFinalized = false): Promise {
+ return dumpSubgraphState(this, this._subgraphStateMap, blockHash, isStateFinalized);
+ }
+
+ _populateEntityTypesMap (): void {
+ this._entityTypesMap.set('Factory', {
+ id: 'ID',
+ poolCount: 'BigInt',
+ txCount: 'BigInt',
+ totalVolumeUSD: 'BigDecimal',
+ totalVolumeETH: 'BigDecimal',
+ totalFeesUSD: 'BigDecimal',
+ totalFeesETH: 'BigDecimal',
+ untrackedVolumeUSD: 'BigDecimal',
+ totalValueLockedUSD: 'BigDecimal',
+ totalValueLockedETH: 'BigDecimal',
+ totalValueLockedUSDUntracked: 'BigDecimal',
+ totalValueLockedETHUntracked: 'BigDecimal',
+ owner: 'ID'
+ });
+ this._entityTypesMap.set('Bundle', {
+ id: 'ID',
+ ethPriceUSD: 'BigDecimal'
+ });
+ this._entityTypesMap.set('Token', {
+ id: 'ID',
+ symbol: 'String',
+ name: 'String',
+ decimals: 'BigInt',
+ totalSupply: 'BigInt',
+ volume: 'BigDecimal',
+ volumeUSD: 'BigDecimal',
+ untrackedVolumeUSD: 'BigDecimal',
+ feesUSD: 'BigDecimal',
+ txCount: 'BigInt',
+ poolCount: 'BigInt',
+ totalValueLocked: 'BigDecimal',
+ totalValueLockedUSD: 'BigDecimal',
+ totalValueLockedUSDUntracked: 'BigDecimal',
+ derivedETH: 'BigDecimal',
+ whitelistPools: 'Pool'
+ });
+ this._entityTypesMap.set('Pool', {
+ id: 'ID',
+ createdAtTimestamp: 'BigInt',
+ createdAtBlockNumber: 'BigInt',
+ token0: 'Token',
+ token1: 'Token',
+ feeTier: 'BigInt',
+ liquidity: 'BigInt',
+ sqrtPrice: 'BigInt',
+ feeGrowthGlobal0X128: 'BigInt',
+ feeGrowthGlobal1X128: 'BigInt',
+ token0Price: 'BigDecimal',
+ token1Price: 'BigDecimal',
+ tick: 'BigInt',
+ observationIndex: 'BigInt',
+ volumeToken0: 'BigDecimal',
+ volumeToken1: 'BigDecimal',
+ volumeUSD: 'BigDecimal',
+ untrackedVolumeUSD: 'BigDecimal',
+ feesUSD: 'BigDecimal',
+ txCount: 'BigInt',
+ collectedFeesToken0: 'BigDecimal',
+ collectedFeesToken1: 'BigDecimal',
+ collectedFeesUSD: 'BigDecimal',
+ totalValueLockedToken0: 'BigDecimal',
+ totalValueLockedToken1: 'BigDecimal',
+ totalValueLockedETH: 'BigDecimal',
+ totalValueLockedUSD: 'BigDecimal',
+ totalValueLockedUSDUntracked: 'BigDecimal',
+ isProtocolFeeEnabled: 'Boolean',
+ liquidityProviderCount: 'BigInt'
+ });
+ this._entityTypesMap.set('Tick', {
+ id: 'ID',
+ poolAddress: 'String',
+ tickIdx: 'BigInt',
+ pool: 'Pool',
+ liquidityGross: 'BigInt',
+ liquidityNet: 'BigInt',
+ price0: 'BigDecimal',
+ price1: 'BigDecimal',
+ volumeToken0: 'BigDecimal',
+ volumeToken1: 'BigDecimal',
+ volumeUSD: 'BigDecimal',
+ untrackedVolumeUSD: 'BigDecimal',
+ feesUSD: 'BigDecimal',
+ collectedFeesToken0: 'BigDecimal',
+ collectedFeesToken1: 'BigDecimal',
+ collectedFeesUSD: 'BigDecimal',
+ createdAtTimestamp: 'BigInt',
+ createdAtBlockNumber: 'BigInt',
+ liquidityProviderCount: 'BigInt',
+ feeGrowthOutside0X128: 'BigInt',
+ feeGrowthOutside1X128: 'BigInt'
+ });
+ this._entityTypesMap.set('Position', {
+ id: 'ID',
+ owner: 'Bytes',
+ pool: 'Pool',
+ token0: 'Token',
+ token1: 'Token',
+ tickLower: 'Tick',
+ tickUpper: 'Tick',
+ liquidity: 'BigInt',
+ depositedToken0: 'BigDecimal',
+ depositedToken1: 'BigDecimal',
+ withdrawnToken0: 'BigDecimal',
+ withdrawnToken1: 'BigDecimal',
+ collectedToken0: 'BigDecimal',
+ collectedToken1: 'BigDecimal',
+ collectedFeesToken0: 'BigDecimal',
+ collectedFeesToken1: 'BigDecimal',
+ amountDepositedUSD: 'BigDecimal',
+ amountWithdrawnUSD: 'BigDecimal',
+ amountCollectedUSD: 'BigDecimal',
+ transaction: 'Transaction',
+ feeGrowthInside0LastX128: 'BigInt',
+ feeGrowthInside1LastX128: 'BigInt'
+ });
+ this._entityTypesMap.set('PositionSnapshot', {
+ id: 'ID',
+ owner: 'Bytes',
+ pool: 'Pool',
+ position: 'Position',
+ blockNumber: 'BigInt',
+ timestamp: 'BigInt',
+ liquidity: 'BigInt',
+ depositedToken0: 'BigDecimal',
+ depositedToken1: 'BigDecimal',
+ withdrawnToken0: 'BigDecimal',
+ withdrawnToken1: 'BigDecimal',
+ collectedFeesToken0: 'BigDecimal',
+ collectedFeesToken1: 'BigDecimal',
+ transaction: 'Transaction',
+ feeGrowthInside0LastX128: 'BigInt',
+ feeGrowthInside1LastX128: 'BigInt'
+ });
+ this._entityTypesMap.set('Transaction', {
+ id: 'ID',
+ blockNumber: 'BigInt',
+ timestamp: 'BigInt',
+ gasUsed: 'BigInt',
+ gasPrice: 'BigInt'
+ });
+ this._entityTypesMap.set('Mint', {
+ id: 'ID',
+ transaction: 'Transaction',
+ timestamp: 'BigInt',
+ pool: 'Pool',
+ token0: 'Token',
+ token1: 'Token',
+ owner: 'Bytes',
+ sender: 'Bytes',
+ origin: 'Bytes',
+ amount: 'BigInt',
+ amount0: 'BigDecimal',
+ amount1: 'BigDecimal',
+ amountUSD: 'BigDecimal',
+ tickLower: 'BigInt',
+ tickUpper: 'BigInt',
+ logIndex: 'BigInt'
+ });
+ this._entityTypesMap.set('Burn', {
+ id: 'ID',
+ transaction: 'Transaction',
+ pool: 'Pool',
+ token0: 'Token',
+ token1: 'Token',
+ timestamp: 'BigInt',
+ owner: 'Bytes',
+ origin: 'Bytes',
+ amount: 'BigInt',
+ amount0: 'BigDecimal',
+ amount1: 'BigDecimal',
+ amountUSD: 'BigDecimal',
+ tickLower: 'BigInt',
+ tickUpper: 'BigInt',
+ logIndex: 'BigInt'
+ });
+ this._entityTypesMap.set('Swap', {
+ id: 'ID',
+ transaction: 'Transaction',
+ timestamp: 'BigInt',
+ pool: 'Pool',
+ token0: 'Token',
+ token1: 'Token',
+ sender: 'Bytes',
+ recipient: 'Bytes',
+ origin: 'Bytes',
+ amount0: 'BigDecimal',
+ amount1: 'BigDecimal',
+ amountUSD: 'BigDecimal',
+ sqrtPriceX96: 'BigInt',
+ tick: 'BigInt',
+ logIndex: 'BigInt'
+ });
+ this._entityTypesMap.set('Collect', {
+ id: 'ID',
+ transaction: 'Transaction',
+ timestamp: 'BigInt',
+ pool: 'Pool',
+ owner: 'Bytes',
+ amount0: 'BigDecimal',
+ amount1: 'BigDecimal',
+ amountUSD: 'BigDecimal',
+ tickLower: 'BigInt',
+ tickUpper: 'BigInt',
+ logIndex: 'BigInt'
+ });
+ this._entityTypesMap.set('Flash', {
+ id: 'ID',
+ transaction: 'Transaction',
+ timestamp: 'BigInt',
+ pool: 'Pool',
+ sender: 'Bytes',
+ recipient: 'Bytes',
+ amount0: 'BigDecimal',
+ amount1: 'BigDecimal',
+ amountUSD: 'BigDecimal',
+ amount0Paid: 'BigDecimal',
+ amount1Paid: 'BigDecimal',
+ logIndex: 'BigInt'
+ });
+ this._entityTypesMap.set('UniswapDayData', {
+ id: 'ID',
+ date: 'Int',
+ volumeETH: 'BigDecimal',
+ volumeUSD: 'BigDecimal',
+ volumeUSDUntracked: 'BigDecimal',
+ feesUSD: 'BigDecimal',
+ txCount: 'BigInt',
+ tvlUSD: 'BigDecimal'
+ });
+ this._entityTypesMap.set('PoolDayData', {
+ id: 'ID',
+ date: 'Int',
+ pool: 'Pool',
+ liquidity: 'BigInt',
+ sqrtPrice: 'BigInt',
+ token0Price: 'BigDecimal',
+ token1Price: 'BigDecimal',
+ tick: 'BigInt',
+ feeGrowthGlobal0X128: 'BigInt',
+ feeGrowthGlobal1X128: 'BigInt',
+ tvlUSD: 'BigDecimal',
+ volumeToken0: 'BigDecimal',
+ volumeToken1: 'BigDecimal',
+ volumeUSD: 'BigDecimal',
+ feesUSD: 'BigDecimal',
+ txCount: 'BigInt',
+ open: 'BigDecimal',
+ high: 'BigDecimal',
+ low: 'BigDecimal',
+ close: 'BigDecimal'
+ });
+ this._entityTypesMap.set('PoolHourData', {
+ id: 'ID',
+ periodStartUnix: 'Int',
+ pool: 'Pool',
+ liquidity: 'BigInt',
+ sqrtPrice: 'BigInt',
+ token0Price: 'BigDecimal',
+ token1Price: 'BigDecimal',
+ tick: 'BigInt',
+ feeGrowthGlobal0X128: 'BigInt',
+ feeGrowthGlobal1X128: 'BigInt',
+ tvlUSD: 'BigDecimal',
+ volumeToken0: 'BigDecimal',
+ volumeToken1: 'BigDecimal',
+ volumeUSD: 'BigDecimal',
+ feesUSD: 'BigDecimal',
+ txCount: 'BigInt',
+ open: 'BigDecimal',
+ high: 'BigDecimal',
+ low: 'BigDecimal',
+ close: 'BigDecimal'
+ });
+ this._entityTypesMap.set('TickHourData', {
+ id: 'ID',
+ periodStartUnix: 'Int',
+ pool: 'Pool',
+ tick: 'Tick',
+ liquidityGross: 'BigInt',
+ liquidityNet: 'BigInt',
+ volumeToken0: 'BigDecimal',
+ volumeToken1: 'BigDecimal',
+ volumeUSD: 'BigDecimal',
+ feesUSD: 'BigDecimal'
+ });
+ this._entityTypesMap.set('TickDayData', {
+ id: 'ID',
+ date: 'Int',
+ pool: 'Pool',
+ tick: 'Tick',
+ liquidityGross: 'BigInt',
+ liquidityNet: 'BigInt',
+ volumeToken0: 'BigDecimal',
+ volumeToken1: 'BigDecimal',
+ volumeUSD: 'BigDecimal',
+ feesUSD: 'BigDecimal',
+ feeGrowthOutside0X128: 'BigInt',
+ feeGrowthOutside1X128: 'BigInt'
+ });
+ this._entityTypesMap.set('TokenDayData', {
+ id: 'ID',
+ date: 'Int',
+ token: 'Token',
+ volume: 'BigDecimal',
+ volumeUSD: 'BigDecimal',
+ untrackedVolumeUSD: 'BigDecimal',
+ totalValueLocked: 'BigDecimal',
+ totalValueLockedUSD: 'BigDecimal',
+ priceUSD: 'BigDecimal',
+ feesUSD: 'BigDecimal',
+ open: 'BigDecimal',
+ high: 'BigDecimal',
+ low: 'BigDecimal',
+ close: 'BigDecimal'
+ });
+ this._entityTypesMap.set('TokenHourData', {
+ id: 'ID',
+ periodStartUnix: 'Int',
+ token: 'Token',
+ volume: 'BigDecimal',
+ volumeUSD: 'BigDecimal',
+ untrackedVolumeUSD: 'BigDecimal',
+ totalValueLocked: 'BigDecimal',
+ totalValueLockedUSD: 'BigDecimal',
+ priceUSD: 'BigDecimal',
+ feesUSD: 'BigDecimal',
+ open: 'BigDecimal',
+ high: 'BigDecimal',
+ low: 'BigDecimal',
+ close: 'BigDecimal'
+ });
+ this._entityTypesMap.set('IncreaseEvent', {
+ id: 'ID',
+ pool: 'Pool',
+ tokenID: 'BigInt',
+ position: 'Position',
+ amount0: 'BigInt',
+ amount1: 'BigInt',
+ token0: 'Token',
+ token1: 'Token',
+ timeStamp: 'BigInt',
+ transaction: 'Transaction'
+ });
+ this._entityTypesMap.set('DecreaseEvent', {
+ id: 'ID',
+ pool: 'Pool',
+ tokenID: 'BigInt',
+ position: 'Position',
+ amount0: 'BigInt',
+ amount1: 'BigInt',
+ token0: 'Token',
+ token1: 'Token',
+ timeStamp: 'BigInt',
+ transaction: 'Transaction'
+ });
+ this._entityTypesMap.set('SetProtocolFeeEvent', {
+ id: 'ID',
+ pool: 'Pool',
+ logIndex: 'BigInt',
+ new0: 'BigInt',
+ new1: 'BigInt',
+ old0: 'BigInt',
+ old1: 'BigInt',
+ timestamp: 'BigInt'
+ });
+ }
+
+ _populateRelationsMap (): void {
+ this._relationsMap.set(Token, {
+ whitelistPools: {
+ entity: Pool,
+ isArray: true,
+ isDerived: false
+ },
+ tokenDayData: {
+ entity: TokenDayData,
+ isArray: true,
+ isDerived: true,
+ field: 'token'
+ }
+ });
+ this._relationsMap.set(Pool, {
+ token0: {
+ entity: Token,
+ isArray: false,
+ isDerived: false
+ },
+ token1: {
+ entity: Token,
+ isArray: false,
+ isDerived: false
+ },
+ poolHourData: {
+ entity: PoolHourData,
+ isArray: true,
+ isDerived: true,
+ field: 'pool'
+ },
+ poolDayData: {
+ entity: PoolDayData,
+ isArray: true,
+ isDerived: true,
+ field: 'pool'
+ },
+ mints: {
+ entity: Mint,
+ isArray: true,
+ isDerived: true,
+ field: 'pool'
+ },
+ burns: {
+ entity: Burn,
+ isArray: true,
+ isDerived: true,
+ field: 'pool'
+ },
+ swaps: {
+ entity: Swap,
+ isArray: true,
+ isDerived: true,
+ field: 'pool'
+ },
+ collects: {
+ entity: Collect,
+ isArray: true,
+ isDerived: true,
+ field: 'pool'
+ },
+ ticks: {
+ entity: Tick,
+ isArray: true,
+ isDerived: true,
+ field: 'pool'
+ }
+ });
+ this._relationsMap.set(Tick, {
+ pool: {
+ entity: Pool,
+ isArray: false,
+ isDerived: false
+ }
+ });
+ this._relationsMap.set(Position, {
+ pool: {
+ entity: Pool,
+ isArray: false,
+ isDerived: false
+ },
+ token0: {
+ entity: Token,
+ isArray: false,
+ isDerived: false
+ },
+ token1: {
+ entity: Token,
+ isArray: false,
+ isDerived: false
+ },
+ tickLower: {
+ entity: Tick,
+ isArray: false,
+ isDerived: false
+ },
+ tickUpper: {
+ entity: Tick,
+ isArray: false,
+ isDerived: false
+ },
+ transaction: {
+ entity: Transaction,
+ isArray: false,
+ isDerived: false
+ },
+ increaseEvents: {
+ entity: IncreaseEvent,
+ isArray: true,
+ isDerived: true,
+ field: 'position'
+ },
+ decreaseEvents: {
+ entity: IncreaseEvent,
+ isArray: true,
+ isDerived: true,
+ field: 'position'
+ }
+ });
+ this._relationsMap.set(PositionSnapshot, {
+ pool: {
+ entity: Pool,
+ isArray: false,
+ isDerived: false
+ },
+ position: {
+ entity: Position,
+ isArray: false,
+ isDerived: false
+ },
+ transaction: {
+ entity: Transaction,
+ isArray: false,
+ isDerived: false
+ }
+ });
+ this._relationsMap.set(Transaction, {
+ mints: {
+ entity: Mint,
+ isArray: true,
+ isDerived: true,
+ field: 'transaction'
+ },
+ burns: {
+ entity: Burn,
+ isArray: true,
+ isDerived: true,
+ field: 'transaction'
+ },
+ swaps: {
+ entity: Swap,
+ isArray: true,
+ isDerived: true,
+ field: 'transaction'
+ },
+ flashed: {
+ entity: Flash,
+ isArray: true,
+ isDerived: true,
+ field: 'transaction'
+ },
+ collects: {
+ entity: Collect,
+ isArray: true,
+ isDerived: true,
+ field: 'transaction'
+ }
+ });
+ this._relationsMap.set(Mint, {
+ transaction: {
+ entity: Transaction,
+ isArray: false,
+ isDerived: false
+ },
+ pool: {
+ entity: Pool,
+ isArray: false,
+ isDerived: false
+ },
+ token0: {
+ entity: Token,
+ isArray: false,
+ isDerived: false
+ },
+ token1: {
+ entity: Token,
+ isArray: false,
+ isDerived: false
+ }
+ });
+ this._relationsMap.set(Burn, {
+ transaction: {
+ entity: Transaction,
+ isArray: false,
+ isDerived: false
+ },
+ pool: {
+ entity: Pool,
+ isArray: false,
+ isDerived: false
+ },
+ token0: {
+ entity: Token,
+ isArray: false,
+ isDerived: false
+ },
+ token1: {
+ entity: Token,
+ isArray: false,
+ isDerived: false
+ }
+ });
+ this._relationsMap.set(Swap, {
+ transaction: {
+ entity: Transaction,
+ isArray: false,
+ isDerived: false
+ },
+ pool: {
+ entity: Pool,
+ isArray: false,
+ isDerived: false
+ },
+ token0: {
+ entity: Token,
+ isArray: false,
+ isDerived: false
+ },
+ token1: {
+ entity: Token,
+ isArray: false,
+ isDerived: false
+ }
+ });
+ this._relationsMap.set(Collect, {
+ transaction: {
+ entity: Transaction,
+ isArray: false,
+ isDerived: false
+ },
+ pool: {
+ entity: Pool,
+ isArray: false,
+ isDerived: false
+ }
+ });
+ this._relationsMap.set(Flash, {
+ transaction: {
+ entity: Transaction,
+ isArray: false,
+ isDerived: false
+ },
+ pool: {
+ entity: Pool,
+ isArray: false,
+ isDerived: false
+ }
+ });
+ this._relationsMap.set(PoolDayData, {
+ pool: {
+ entity: Pool,
+ isArray: false,
+ isDerived: false
+ }
+ });
+ this._relationsMap.set(PoolHourData, {
+ pool: {
+ entity: Pool,
+ isArray: false,
+ isDerived: false
+ }
+ });
+ this._relationsMap.set(TickHourData, {
+ pool: {
+ entity: Pool,
+ isArray: false,
+ isDerived: false
+ },
+ tick: {
+ entity: Tick,
+ isArray: false,
+ isDerived: false
+ }
+ });
+ this._relationsMap.set(TickDayData, {
+ pool: {
+ entity: Pool,
+ isArray: false,
+ isDerived: false
+ },
+ tick: {
+ entity: Tick,
+ isArray: false,
+ isDerived: false
+ }
+ });
+ this._relationsMap.set(TokenDayData, {
+ token: {
+ entity: Token,
+ isArray: false,
+ isDerived: false
+ }
+ });
+ this._relationsMap.set(TokenHourData, {
+ token: {
+ entity: Token,
+ isArray: false,
+ isDerived: false
+ }
+ });
+ this._relationsMap.set(IncreaseEvent, {
+ pool: {
+ entity: Pool,
+ isArray: false,
+ isDerived: false
+ },
+ position: {
+ entity: Position,
+ isArray: false,
+ isDerived: false
+ },
+ token0: {
+ entity: Token,
+ isArray: false,
+ isDerived: false
+ },
+ token1: {
+ entity: Token,
+ isArray: false,
+ isDerived: false
+ },
+ transaction: {
+ entity: Transaction,
+ isArray: false,
+ isDerived: false
+ }
+ });
+ this._relationsMap.set(DecreaseEvent, {
+ pool: {
+ entity: Pool,
+ isArray: false,
+ isDerived: false
+ },
+ position: {
+ entity: Position,
+ isArray: false,
+ isDerived: false
+ },
+ token0: {
+ entity: Token,
+ isArray: false,
+ isDerived: false
+ },
+ token1: {
+ entity: Token,
+ isArray: false,
+ isDerived: false
+ },
+ transaction: {
+ entity: Transaction,
+ isArray: false,
+ isDerived: false
+ }
+ });
+ this._relationsMap.set(SetProtocolFeeEvent, {
+ pool: {
+ entity: Pool,
+ isArray: false,
+ isDerived: false
+ }
+ });
+ }
+
+ async _saveBlockAndFetchEvents ({
+ cid: blockCid,
+ blockHash,
+ blockNumber,
+ blockTimestamp,
+ parentHash
+ }: DeepPartial): Promise<[
+ BlockProgress,
+ DeepPartial[],
+ EthFullTransaction[]
+ ]> {
+ assert(blockHash);
+ assert(blockNumber);
+
+ const { events: dbEvents, transactions } = await this._baseIndexer.fetchEvents(blockHash, blockNumber, this.eventSignaturesMap, this.parseEventNameAndArgs.bind(this));
+
+ const dbTx = await this._db.createTransactionRunner();
+ try {
+ const block = {
+ cid: blockCid,
+ blockHash,
+ blockNumber,
+ blockTimestamp,
+ parentHash
+ };
+
+ console.time(`time:indexer#_saveBlockAndFetchEvents-db-save-${blockNumber}`);
+ const blockProgress = await this._db.saveBlockWithEvents(dbTx, block, dbEvents);
+ await dbTx.commitTransaction();
+ console.timeEnd(`time:indexer#_saveBlockAndFetchEvents-db-save-${blockNumber}`);
+
+ return [blockProgress, [], transactions];
+ } catch (error) {
+ await dbTx.rollbackTransaction();
+ throw error;
+ } finally {
+ await dbTx.release();
+ }
+ }
+
+ async getFullTransactions (txHashList: string[]): Promise {
+ return this._baseIndexer.getFullTransactions(txHashList);
+ }
+}
diff --git a/packages/v3-watcher/src/job-runner.ts b/packages/v3-watcher/src/job-runner.ts
new file mode 100644
index 0000000..93d6820
--- /dev/null
+++ b/packages/v3-watcher/src/job-runner.ts
@@ -0,0 +1,48 @@
+//
+// Copyright 2021 Vulcanize, Inc.
+//
+
+import debug from 'debug';
+
+import { JobRunnerCmd } from '@cerc-io/cli';
+import { JobRunner } from '@cerc-io/util';
+import { getGraphDbAndWatcher } from '@cerc-io/graph-node';
+
+import { Indexer } from './indexer';
+import { Database, ENTITY_QUERY_TYPE_MAP, ENTITY_TO_LATEST_ENTITY_MAP } from './database';
+
+const log = debug('vulcanize:job-runner');
+
+export const main = async (): Promise => {
+ const jobRunnerCmd = new JobRunnerCmd();
+ await jobRunnerCmd.init(Database);
+
+ const { graphWatcher } = await getGraphDbAndWatcher(
+ jobRunnerCmd.config.server,
+ jobRunnerCmd.clients.ethClient,
+ jobRunnerCmd.ethProvider,
+ jobRunnerCmd.database.baseDatabase,
+ ENTITY_QUERY_TYPE_MAP,
+ ENTITY_TO_LATEST_ENTITY_MAP
+ );
+
+ await jobRunnerCmd.initIndexer(Indexer, graphWatcher);
+
+ await jobRunnerCmd.exec(async (jobRunner: JobRunner): Promise => {
+ await jobRunner.subscribeBlockProcessingQueue();
+ await jobRunner.subscribeHistoricalProcessingQueue();
+ await jobRunner.subscribeEventProcessingQueue();
+ await jobRunner.subscribeBlockCheckpointQueue();
+ await jobRunner.subscribeHooksQueue();
+ });
+};
+
+main().then(() => {
+ log('Starting job runner...');
+}).catch(err => {
+ log(err);
+});
+
+process.on('uncaughtException', err => {
+ log('uncaughtException', err);
+});
diff --git a/packages/v3-watcher/src/resolvers.ts b/packages/v3-watcher/src/resolvers.ts
new file mode 100644
index 0000000..0b13ec1
--- /dev/null
+++ b/packages/v3-watcher/src/resolvers.ts
@@ -0,0 +1,1320 @@
+//
+// Copyright 2021 Vulcanize, Inc.
+//
+
+import assert from 'assert';
+import debug from 'debug';
+import { GraphQLResolveInfo } from 'graphql';
+import { ExpressContext } from 'apollo-server-express';
+import winston from 'winston';
+
+import {
+ gqlTotalQueryCount,
+ gqlQueryCount,
+ gqlQueryDuration,
+ getResultState,
+ IndexerInterface,
+ GraphQLBigInt,
+ GraphQLBigDecimal,
+ BlockHeight,
+ OrderDirection,
+ jsonBigIntStringReplacer,
+ EventWatcher,
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ setGQLCacheHints
+} from '@cerc-io/util';
+
+import { Indexer } from './indexer';
+
+import { Factory } from './entity/Factory';
+import { Bundle } from './entity/Bundle';
+import { Token } from './entity/Token';
+import { Pool } from './entity/Pool';
+import { Tick } from './entity/Tick';
+import { Position } from './entity/Position';
+import { PositionSnapshot } from './entity/PositionSnapshot';
+import { Transaction } from './entity/Transaction';
+import { Mint } from './entity/Mint';
+import { Burn } from './entity/Burn';
+import { Swap } from './entity/Swap';
+import { Collect } from './entity/Collect';
+import { Flash } from './entity/Flash';
+import { UniswapDayData } from './entity/UniswapDayData';
+import { PoolDayData } from './entity/PoolDayData';
+import { PoolHourData } from './entity/PoolHourData';
+import { TickHourData } from './entity/TickHourData';
+import { TickDayData } from './entity/TickDayData';
+import { TokenDayData } from './entity/TokenDayData';
+import { TokenHourData } from './entity/TokenHourData';
+import { IncreaseEvent } from './entity/IncreaseEvent';
+import { DecreaseEvent } from './entity/DecreaseEvent';
+import { SetProtocolFeeEvent } from './entity/SetProtocolFeeEvent';
+
+const log = debug('vulcanize:resolver');
+
+const executeAndRecordMetrics = async (
+ indexer: Indexer,
+ gqlLogger: winston.Logger,
+ opName: string,
+ expressContext: ExpressContext,
+ operation: () => Promise
+) => {
+ gqlTotalQueryCount.inc(1);
+ gqlQueryCount.labels(opName).inc(1);
+ const endTimer = gqlQueryDuration.labels(opName).startTimer();
+
+ try {
+ const [result, syncStatus] = await Promise.all([
+ operation(),
+ indexer.getSyncStatus()
+ ]);
+
+ gqlLogger.info({
+ opName,
+ query: expressContext.req.body.query,
+ variables: expressContext.req.body.variables,
+ latestIndexedBlockNumber: syncStatus?.latestIndexedBlockNumber,
+ urlPath: expressContext.req.path,
+ apiKey: expressContext.req.header('x-api-key'),
+ origin: expressContext.req.headers.origin
+ });
+ return result;
+ } catch (error) {
+ gqlLogger.error({
+ opName,
+ error,
+ query: expressContext.req.body.query,
+ variables: expressContext.req.body.variables,
+ urlPath: expressContext.req.path,
+ apiKey: expressContext.req.header('x-api-key'),
+ origin: expressContext.req.headers.origin
+ });
+ } finally {
+ endTimer();
+ }
+};
+
+export const createResolvers = async (
+ indexerArg: IndexerInterface,
+ eventWatcher: EventWatcher,
+ gqlLogger: winston.Logger
+): Promise => {
+ const indexer = indexerArg as Indexer;
+
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ const gqlCacheConfig = indexer.serverConfig.gql.cache;
+
+ return {
+ BigInt: GraphQLBigInt,
+
+ BigDecimal: GraphQLBigDecimal,
+
+ Event: {
+ __resolveType: (obj: any) => {
+ assert(obj.__typename);
+
+ return obj.__typename;
+ }
+ },
+
+ Subscription: {
+ onEvent: {
+ subscribe: () => eventWatcher.getEventIterator()
+ }
+ },
+
+ Mutation: {
+ watchContract: async (_: any, { address, kind, checkpoint, startingBlock = 1 }: { address: string, kind: string, checkpoint: boolean, startingBlock: number }): Promise => {
+ log('watchContract', address, kind, checkpoint, startingBlock);
+ await indexer.watchContract(address, kind, checkpoint, startingBlock);
+
+ return true;
+ }
+ },
+
+ Query: {
+ factory: async (
+ _: any,
+ { id, block = {} }: { id: string, block: BlockHeight },
+ expressContext: ExpressContext,
+ info: GraphQLResolveInfo
+ ) => {
+ log('factory', id, JSON.stringify(block, jsonBigIntStringReplacer));
+
+ // Set cache-control hints
+ // setGQLCacheHints(info, block, gqlCacheConfig);
+
+ return executeAndRecordMetrics(
+ indexer,
+ gqlLogger,
+ 'factory',
+ expressContext,
+ async () => indexer.getSubgraphEntity(Factory, id, block, info)
+ );
+ },
+
+ factories: async (
+ _: any,
+ { block = {}, where, first, skip, orderBy, orderDirection }: { block: BlockHeight, where: { [key: string]: any }, first: number, skip: number, orderBy: string, orderDirection: OrderDirection },
+ expressContext: ExpressContext,
+ info: GraphQLResolveInfo
+ ) => {
+ log('factories', JSON.stringify(block, jsonBigIntStringReplacer), JSON.stringify(where, jsonBigIntStringReplacer), first, skip, orderBy, orderDirection);
+
+ // Set cache-control hints
+ // setGQLCacheHints(info, block, gqlCacheConfig);
+
+ return executeAndRecordMetrics(
+ indexer,
+ gqlLogger,
+ 'factories',
+ expressContext,
+ async () => indexer.getSubgraphEntities(
+ Factory,
+ block,
+ where,
+ { limit: first, skip, orderBy, orderDirection },
+ info
+ )
+ );
+ },
+
+ bundle: async (
+ _: any,
+ { id, block = {} }: { id: string, block: BlockHeight },
+ expressContext: ExpressContext,
+ info: GraphQLResolveInfo
+ ) => {
+ log('bundle', id, JSON.stringify(block, jsonBigIntStringReplacer));
+
+ // Set cache-control hints
+ // setGQLCacheHints(info, block, gqlCacheConfig);
+
+ return executeAndRecordMetrics(
+ indexer,
+ gqlLogger,
+ 'bundle',
+ expressContext,
+ async () => indexer.getSubgraphEntity(Bundle, id, block, info)
+ );
+ },
+
+ bundles: async (
+ _: any,
+ { block = {}, where, first, skip, orderBy, orderDirection }: { block: BlockHeight, where: { [key: string]: any }, first: number, skip: number, orderBy: string, orderDirection: OrderDirection },
+ expressContext: ExpressContext,
+ info: GraphQLResolveInfo
+ ) => {
+ log('bundles', JSON.stringify(block, jsonBigIntStringReplacer), JSON.stringify(where, jsonBigIntStringReplacer), first, skip, orderBy, orderDirection);
+
+ // Set cache-control hints
+ // setGQLCacheHints(info, block, gqlCacheConfig);
+
+ return executeAndRecordMetrics(
+ indexer,
+ gqlLogger,
+ 'bundles',
+ expressContext,
+ async () => indexer.getSubgraphEntities(
+ Bundle,
+ block,
+ where,
+ { limit: first, skip, orderBy, orderDirection },
+ info
+ )
+ );
+ },
+
+ token: async (
+ _: any,
+ { id, block = {} }: { id: string, block: BlockHeight },
+ expressContext: ExpressContext,
+ info: GraphQLResolveInfo
+ ) => {
+ log('token', id, JSON.stringify(block, jsonBigIntStringReplacer));
+
+ // Set cache-control hints
+ // setGQLCacheHints(info, block, gqlCacheConfig);
+
+ return executeAndRecordMetrics(
+ indexer,
+ gqlLogger,
+ 'token',
+ expressContext,
+ async () => indexer.getSubgraphEntity(Token, id, block, info)
+ );
+ },
+
+ tokens: async (
+ _: any,
+ { block = {}, where, first, skip, orderBy, orderDirection }: { block: BlockHeight, where: { [key: string]: any }, first: number, skip: number, orderBy: string, orderDirection: OrderDirection },
+ expressContext: ExpressContext,
+ info: GraphQLResolveInfo
+ ) => {
+ log('tokens', JSON.stringify(block, jsonBigIntStringReplacer), JSON.stringify(where, jsonBigIntStringReplacer), first, skip, orderBy, orderDirection);
+
+ // Set cache-control hints
+ // setGQLCacheHints(info, block, gqlCacheConfig);
+
+ return executeAndRecordMetrics(
+ indexer,
+ gqlLogger,
+ 'tokens',
+ expressContext,
+ async () => indexer.getSubgraphEntities(
+ Token,
+ block,
+ where,
+ { limit: first, skip, orderBy, orderDirection },
+ info
+ )
+ );
+ },
+
+ pool: async (
+ _: any,
+ { id, block = {} }: { id: string, block: BlockHeight },
+ expressContext: ExpressContext,
+ info: GraphQLResolveInfo
+ ) => {
+ log('pool', id, JSON.stringify(block, jsonBigIntStringReplacer));
+
+ // Set cache-control hints
+ // setGQLCacheHints(info, block, gqlCacheConfig);
+
+ return executeAndRecordMetrics(
+ indexer,
+ gqlLogger,
+ 'pool',
+ expressContext,
+ async () => indexer.getSubgraphEntity(Pool, id, block, info)
+ );
+ },
+
+ pools: async (
+ _: any,
+ { block = {}, where, first, skip, orderBy, orderDirection }: { block: BlockHeight, where: { [key: string]: any }, first: number, skip: number, orderBy: string, orderDirection: OrderDirection },
+ expressContext: ExpressContext,
+ info: GraphQLResolveInfo
+ ) => {
+ log('pools', JSON.stringify(block, jsonBigIntStringReplacer), JSON.stringify(where, jsonBigIntStringReplacer), first, skip, orderBy, orderDirection);
+
+ // Set cache-control hints
+ // setGQLCacheHints(info, block, gqlCacheConfig);
+
+ return executeAndRecordMetrics(
+ indexer,
+ gqlLogger,
+ 'pools',
+ expressContext,
+ async () => indexer.getSubgraphEntities(
+ Pool,
+ block,
+ where,
+ { limit: first, skip, orderBy, orderDirection },
+ info
+ )
+ );
+ },
+
+ tick: async (
+ _: any,
+ { id, block = {} }: { id: string, block: BlockHeight },
+ expressContext: ExpressContext,
+ info: GraphQLResolveInfo
+ ) => {
+ log('tick', id, JSON.stringify(block, jsonBigIntStringReplacer));
+
+ // Set cache-control hints
+ // setGQLCacheHints(info, block, gqlCacheConfig);
+
+ return executeAndRecordMetrics(
+ indexer,
+ gqlLogger,
+ 'tick',
+ expressContext,
+ async () => indexer.getSubgraphEntity(Tick, id, block, info)
+ );
+ },
+
+ ticks: async (
+ _: any,
+ { block = {}, where, first, skip, orderBy, orderDirection }: { block: BlockHeight, where: { [key: string]: any }, first: number, skip: number, orderBy: string, orderDirection: OrderDirection },
+ expressContext: ExpressContext,
+ info: GraphQLResolveInfo
+ ) => {
+ log('ticks', JSON.stringify(block, jsonBigIntStringReplacer), JSON.stringify(where, jsonBigIntStringReplacer), first, skip, orderBy, orderDirection);
+
+ // Set cache-control hints
+ // setGQLCacheHints(info, block, gqlCacheConfig);
+
+ return executeAndRecordMetrics(
+ indexer,
+ gqlLogger,
+ 'ticks',
+ expressContext,
+ async () => indexer.getSubgraphEntities(
+ Tick,
+ block,
+ where,
+ { limit: first, skip, orderBy, orderDirection },
+ info
+ )
+ );
+ },
+
+ position: async (
+ _: any,
+ { id, block = {} }: { id: string, block: BlockHeight },
+ expressContext: ExpressContext,
+ info: GraphQLResolveInfo
+ ) => {
+ log('position', id, JSON.stringify(block, jsonBigIntStringReplacer));
+
+ // Set cache-control hints
+ // setGQLCacheHints(info, block, gqlCacheConfig);
+
+ return executeAndRecordMetrics(
+ indexer,
+ gqlLogger,
+ 'position',
+ expressContext,
+ async () => indexer.getSubgraphEntity(Position, id, block, info)
+ );
+ },
+
+ positions: async (
+ _: any,
+ { block = {}, where, first, skip, orderBy, orderDirection }: { block: BlockHeight, where: { [key: string]: any }, first: number, skip: number, orderBy: string, orderDirection: OrderDirection },
+ expressContext: ExpressContext,
+ info: GraphQLResolveInfo
+ ) => {
+ log('positions', JSON.stringify(block, jsonBigIntStringReplacer), JSON.stringify(where, jsonBigIntStringReplacer), first, skip, orderBy, orderDirection);
+
+ // Set cache-control hints
+ // setGQLCacheHints(info, block, gqlCacheConfig);
+
+ return executeAndRecordMetrics(
+ indexer,
+ gqlLogger,
+ 'positions',
+ expressContext,
+ async () => indexer.getSubgraphEntities(
+ Position,
+ block,
+ where,
+ { limit: first, skip, orderBy, orderDirection },
+ info
+ )
+ );
+ },
+
+ positionSnapshot: async (
+ _: any,
+ { id, block = {} }: { id: string, block: BlockHeight },
+ expressContext: ExpressContext,
+ info: GraphQLResolveInfo
+ ) => {
+ log('positionSnapshot', id, JSON.stringify(block, jsonBigIntStringReplacer));
+
+ // Set cache-control hints
+ // setGQLCacheHints(info, block, gqlCacheConfig);
+
+ return executeAndRecordMetrics(
+ indexer,
+ gqlLogger,
+ 'positionSnapshot',
+ expressContext,
+ async () => indexer.getSubgraphEntity(PositionSnapshot, id, block, info)
+ );
+ },
+
+ positionSnapshots: async (
+ _: any,
+ { block = {}, where, first, skip, orderBy, orderDirection }: { block: BlockHeight, where: { [key: string]: any }, first: number, skip: number, orderBy: string, orderDirection: OrderDirection },
+ expressContext: ExpressContext,
+ info: GraphQLResolveInfo
+ ) => {
+ log('positionSnapshots', JSON.stringify(block, jsonBigIntStringReplacer), JSON.stringify(where, jsonBigIntStringReplacer), first, skip, orderBy, orderDirection);
+
+ // Set cache-control hints
+ // setGQLCacheHints(info, block, gqlCacheConfig);
+
+ return executeAndRecordMetrics(
+ indexer,
+ gqlLogger,
+ 'positionSnapshots',
+ expressContext,
+ async () => indexer.getSubgraphEntities(
+ PositionSnapshot,
+ block,
+ where,
+ { limit: first, skip, orderBy, orderDirection },
+ info
+ )
+ );
+ },
+
+ transaction: async (
+ _: any,
+ { id, block = {} }: { id: string, block: BlockHeight },
+ expressContext: ExpressContext,
+ info: GraphQLResolveInfo
+ ) => {
+ log('transaction', id, JSON.stringify(block, jsonBigIntStringReplacer));
+
+ // Set cache-control hints
+ // setGQLCacheHints(info, block, gqlCacheConfig);
+
+ return executeAndRecordMetrics(
+ indexer,
+ gqlLogger,
+ 'transaction',
+ expressContext,
+ async () => indexer.getSubgraphEntity(Transaction, id, block, info)
+ );
+ },
+
+ transactions: async (
+ _: any,
+ { block = {}, where, first, skip, orderBy, orderDirection }: { block: BlockHeight, where: { [key: string]: any }, first: number, skip: number, orderBy: string, orderDirection: OrderDirection },
+ expressContext: ExpressContext,
+ info: GraphQLResolveInfo
+ ) => {
+ log('transactions', JSON.stringify(block, jsonBigIntStringReplacer), JSON.stringify(where, jsonBigIntStringReplacer), first, skip, orderBy, orderDirection);
+
+ // Set cache-control hints
+ // setGQLCacheHints(info, block, gqlCacheConfig);
+
+ return executeAndRecordMetrics(
+ indexer,
+ gqlLogger,
+ 'transactions',
+ expressContext,
+ async () => indexer.getSubgraphEntities(
+ Transaction,
+ block,
+ where,
+ { limit: first, skip, orderBy, orderDirection },
+ info
+ )
+ );
+ },
+
+ mint: async (
+ _: any,
+ { id, block = {} }: { id: string, block: BlockHeight },
+ expressContext: ExpressContext,
+ info: GraphQLResolveInfo
+ ) => {
+ log('mint', id, JSON.stringify(block, jsonBigIntStringReplacer));
+
+ // Set cache-control hints
+ // setGQLCacheHints(info, block, gqlCacheConfig);
+
+ return executeAndRecordMetrics(
+ indexer,
+ gqlLogger,
+ 'mint',
+ expressContext,
+ async () => indexer.getSubgraphEntity(Mint, id, block, info)
+ );
+ },
+
+ mints: async (
+ _: any,
+ { block = {}, where, first, skip, orderBy, orderDirection }: { block: BlockHeight, where: { [key: string]: any }, first: number, skip: number, orderBy: string, orderDirection: OrderDirection },
+ expressContext: ExpressContext,
+ info: GraphQLResolveInfo
+ ) => {
+ log('mints', JSON.stringify(block, jsonBigIntStringReplacer), JSON.stringify(where, jsonBigIntStringReplacer), first, skip, orderBy, orderDirection);
+
+ // Set cache-control hints
+ // setGQLCacheHints(info, block, gqlCacheConfig);
+
+ return executeAndRecordMetrics(
+ indexer,
+ gqlLogger,
+ 'mints',
+ expressContext,
+ async () => indexer.getSubgraphEntities(
+ Mint,
+ block,
+ where,
+ { limit: first, skip, orderBy, orderDirection },
+ info
+ )
+ );
+ },
+
+ burn: async (
+ _: any,
+ { id, block = {} }: { id: string, block: BlockHeight },
+ expressContext: ExpressContext,
+ info: GraphQLResolveInfo
+ ) => {
+ log('burn', id, JSON.stringify(block, jsonBigIntStringReplacer));
+
+ // Set cache-control hints
+ // setGQLCacheHints(info, block, gqlCacheConfig);
+
+ return executeAndRecordMetrics(
+ indexer,
+ gqlLogger,
+ 'burn',
+ expressContext,
+ async () => indexer.getSubgraphEntity(Burn, id, block, info)
+ );
+ },
+
+ burns: async (
+ _: any,
+ { block = {}, where, first, skip, orderBy, orderDirection }: { block: BlockHeight, where: { [key: string]: any }, first: number, skip: number, orderBy: string, orderDirection: OrderDirection },
+ expressContext: ExpressContext,
+ info: GraphQLResolveInfo
+ ) => {
+ log('burns', JSON.stringify(block, jsonBigIntStringReplacer), JSON.stringify(where, jsonBigIntStringReplacer), first, skip, orderBy, orderDirection);
+
+ // Set cache-control hints
+ // setGQLCacheHints(info, block, gqlCacheConfig);
+
+ return executeAndRecordMetrics(
+ indexer,
+ gqlLogger,
+ 'burns',
+ expressContext,
+ async () => indexer.getSubgraphEntities(
+ Burn,
+ block,
+ where,
+ { limit: first, skip, orderBy, orderDirection },
+ info
+ )
+ );
+ },
+
+ swap: async (
+ _: any,
+ { id, block = {} }: { id: string, block: BlockHeight },
+ expressContext: ExpressContext,
+ info: GraphQLResolveInfo
+ ) => {
+ log('swap', id, JSON.stringify(block, jsonBigIntStringReplacer));
+
+ // Set cache-control hints
+ // setGQLCacheHints(info, block, gqlCacheConfig);
+
+ return executeAndRecordMetrics(
+ indexer,
+ gqlLogger,
+ 'swap',
+ expressContext,
+ async () => indexer.getSubgraphEntity(Swap, id, block, info)
+ );
+ },
+
+ swaps: async (
+ _: any,
+ { block = {}, where, first, skip, orderBy, orderDirection }: { block: BlockHeight, where: { [key: string]: any }, first: number, skip: number, orderBy: string, orderDirection: OrderDirection },
+ expressContext: ExpressContext,
+ info: GraphQLResolveInfo
+ ) => {
+ log('swaps', JSON.stringify(block, jsonBigIntStringReplacer), JSON.stringify(where, jsonBigIntStringReplacer), first, skip, orderBy, orderDirection);
+
+ // Set cache-control hints
+ // setGQLCacheHints(info, block, gqlCacheConfig);
+
+ return executeAndRecordMetrics(
+ indexer,
+ gqlLogger,
+ 'swaps',
+ expressContext,
+ async () => indexer.getSubgraphEntities(
+ Swap,
+ block,
+ where,
+ { limit: first, skip, orderBy, orderDirection },
+ info
+ )
+ );
+ },
+
+ collect: async (
+ _: any,
+ { id, block = {} }: { id: string, block: BlockHeight },
+ expressContext: ExpressContext,
+ info: GraphQLResolveInfo
+ ) => {
+ log('collect', id, JSON.stringify(block, jsonBigIntStringReplacer));
+
+ // Set cache-control hints
+ // setGQLCacheHints(info, block, gqlCacheConfig);
+
+ return executeAndRecordMetrics(
+ indexer,
+ gqlLogger,
+ 'collect',
+ expressContext,
+ async () => indexer.getSubgraphEntity(Collect, id, block, info)
+ );
+ },
+
+ collects: async (
+ _: any,
+ { block = {}, where, first, skip, orderBy, orderDirection }: { block: BlockHeight, where: { [key: string]: any }, first: number, skip: number, orderBy: string, orderDirection: OrderDirection },
+ expressContext: ExpressContext,
+ info: GraphQLResolveInfo
+ ) => {
+ log('collects', JSON.stringify(block, jsonBigIntStringReplacer), JSON.stringify(where, jsonBigIntStringReplacer), first, skip, orderBy, orderDirection);
+
+ // Set cache-control hints
+ // setGQLCacheHints(info, block, gqlCacheConfig);
+
+ return executeAndRecordMetrics(
+ indexer,
+ gqlLogger,
+ 'collects',
+ expressContext,
+ async () => indexer.getSubgraphEntities(
+ Collect,
+ block,
+ where,
+ { limit: first, skip, orderBy, orderDirection },
+ info
+ )
+ );
+ },
+
+ flash: async (
+ _: any,
+ { id, block = {} }: { id: string, block: BlockHeight },
+ expressContext: ExpressContext,
+ info: GraphQLResolveInfo
+ ) => {
+ log('flash', id, JSON.stringify(block, jsonBigIntStringReplacer));
+
+ // Set cache-control hints
+ // setGQLCacheHints(info, block, gqlCacheConfig);
+
+ return executeAndRecordMetrics(
+ indexer,
+ gqlLogger,
+ 'flash',
+ expressContext,
+ async () => indexer.getSubgraphEntity(Flash, id, block, info)
+ );
+ },
+
+ flashes: async (
+ _: any,
+ { block = {}, where, first, skip, orderBy, orderDirection }: { block: BlockHeight, where: { [key: string]: any }, first: number, skip: number, orderBy: string, orderDirection: OrderDirection },
+ expressContext: ExpressContext,
+ info: GraphQLResolveInfo
+ ) => {
+ log('flashes', JSON.stringify(block, jsonBigIntStringReplacer), JSON.stringify(where, jsonBigIntStringReplacer), first, skip, orderBy, orderDirection);
+
+ // Set cache-control hints
+ // setGQLCacheHints(info, block, gqlCacheConfig);
+
+ return executeAndRecordMetrics(
+ indexer,
+ gqlLogger,
+ 'flashes',
+ expressContext,
+ async () => indexer.getSubgraphEntities(
+ Flash,
+ block,
+ where,
+ { limit: first, skip, orderBy, orderDirection },
+ info
+ )
+ );
+ },
+
+ uniswapDayData: async (
+ _: any,
+ { id, block = {} }: { id: string, block: BlockHeight },
+ expressContext: ExpressContext,
+ info: GraphQLResolveInfo
+ ) => {
+ log('uniswapDayData', id, JSON.stringify(block, jsonBigIntStringReplacer));
+
+ // Set cache-control hints
+ // setGQLCacheHints(info, block, gqlCacheConfig);
+
+ return executeAndRecordMetrics(
+ indexer,
+ gqlLogger,
+ 'uniswapDayData',
+ expressContext,
+ async () => indexer.getSubgraphEntity(UniswapDayData, id, block, info)
+ );
+ },
+
+ uniswapDayDatas: async (
+ _: any,
+ { block = {}, where, first, skip, orderBy, orderDirection }: { block: BlockHeight, where: { [key: string]: any }, first: number, skip: number, orderBy: string, orderDirection: OrderDirection },
+ expressContext: ExpressContext,
+ info: GraphQLResolveInfo
+ ) => {
+ log('uniswapDayDatas', JSON.stringify(block, jsonBigIntStringReplacer), JSON.stringify(where, jsonBigIntStringReplacer), first, skip, orderBy, orderDirection);
+
+ // Set cache-control hints
+ // setGQLCacheHints(info, block, gqlCacheConfig);
+
+ return executeAndRecordMetrics(
+ indexer,
+ gqlLogger,
+ 'uniswapDayDatas',
+ expressContext,
+ async () => indexer.getSubgraphEntities(
+ UniswapDayData,
+ block,
+ where,
+ { limit: first, skip, orderBy, orderDirection },
+ info
+ )
+ );
+ },
+
+ poolDayData: async (
+ _: any,
+ { id, block = {} }: { id: string, block: BlockHeight },
+ expressContext: ExpressContext,
+ info: GraphQLResolveInfo
+ ) => {
+ log('poolDayData', id, JSON.stringify(block, jsonBigIntStringReplacer));
+
+ // Set cache-control hints
+ // setGQLCacheHints(info, block, gqlCacheConfig);
+
+ return executeAndRecordMetrics(
+ indexer,
+ gqlLogger,
+ 'poolDayData',
+ expressContext,
+ async () => indexer.getSubgraphEntity(PoolDayData, id, block, info)
+ );
+ },
+
+ poolDayDatas: async (
+ _: any,
+ { block = {}, where, first, skip, orderBy, orderDirection }: { block: BlockHeight, where: { [key: string]: any }, first: number, skip: number, orderBy: string, orderDirection: OrderDirection },
+ expressContext: ExpressContext,
+ info: GraphQLResolveInfo
+ ) => {
+ log('poolDayDatas', JSON.stringify(block, jsonBigIntStringReplacer), JSON.stringify(where, jsonBigIntStringReplacer), first, skip, orderBy, orderDirection);
+
+ // Set cache-control hints
+ // setGQLCacheHints(info, block, gqlCacheConfig);
+
+ return executeAndRecordMetrics(
+ indexer,
+ gqlLogger,
+ 'poolDayDatas',
+ expressContext,
+ async () => indexer.getSubgraphEntities(
+ PoolDayData,
+ block,
+ where,
+ { limit: first, skip, orderBy, orderDirection },
+ info
+ )
+ );
+ },
+
+ poolHourData: async (
+ _: any,
+ { id, block = {} }: { id: string, block: BlockHeight },
+ expressContext: ExpressContext,
+ info: GraphQLResolveInfo
+ ) => {
+ log('poolHourData', id, JSON.stringify(block, jsonBigIntStringReplacer));
+
+ // Set cache-control hints
+ // setGQLCacheHints(info, block, gqlCacheConfig);
+
+ return executeAndRecordMetrics(
+ indexer,
+ gqlLogger,
+ 'poolHourData',
+ expressContext,
+ async () => indexer.getSubgraphEntity(PoolHourData, id, block, info)
+ );
+ },
+
+ poolHourDatas: async (
+ _: any,
+ { block = {}, where, first, skip, orderBy, orderDirection }: { block: BlockHeight, where: { [key: string]: any }, first: number, skip: number, orderBy: string, orderDirection: OrderDirection },
+ expressContext: ExpressContext,
+ info: GraphQLResolveInfo
+ ) => {
+ log('poolHourDatas', JSON.stringify(block, jsonBigIntStringReplacer), JSON.stringify(where, jsonBigIntStringReplacer), first, skip, orderBy, orderDirection);
+
+ // Set cache-control hints
+ // setGQLCacheHints(info, block, gqlCacheConfig);
+
+ return executeAndRecordMetrics(
+ indexer,
+ gqlLogger,
+ 'poolHourDatas',
+ expressContext,
+ async () => indexer.getSubgraphEntities(
+ PoolHourData,
+ block,
+ where,
+ { limit: first, skip, orderBy, orderDirection },
+ info
+ )
+ );
+ },
+
+ tickHourData: async (
+ _: any,
+ { id, block = {} }: { id: string, block: BlockHeight },
+ expressContext: ExpressContext,
+ info: GraphQLResolveInfo
+ ) => {
+ log('tickHourData', id, JSON.stringify(block, jsonBigIntStringReplacer));
+
+ // Set cache-control hints
+ // setGQLCacheHints(info, block, gqlCacheConfig);
+
+ return executeAndRecordMetrics(
+ indexer,
+ gqlLogger,
+ 'tickHourData',
+ expressContext,
+ async () => indexer.getSubgraphEntity(TickHourData, id, block, info)
+ );
+ },
+
+ tickHourDatas: async (
+ _: any,
+ { block = {}, where, first, skip, orderBy, orderDirection }: { block: BlockHeight, where: { [key: string]: any }, first: number, skip: number, orderBy: string, orderDirection: OrderDirection },
+ expressContext: ExpressContext,
+ info: GraphQLResolveInfo
+ ) => {
+ log('tickHourDatas', JSON.stringify(block, jsonBigIntStringReplacer), JSON.stringify(where, jsonBigIntStringReplacer), first, skip, orderBy, orderDirection);
+
+ // Set cache-control hints
+ // setGQLCacheHints(info, block, gqlCacheConfig);
+
+ return executeAndRecordMetrics(
+ indexer,
+ gqlLogger,
+ 'tickHourDatas',
+ expressContext,
+ async () => indexer.getSubgraphEntities(
+ TickHourData,
+ block,
+ where,
+ { limit: first, skip, orderBy, orderDirection },
+ info
+ )
+ );
+ },
+
+ tickDayData: async (
+ _: any,
+ { id, block = {} }: { id: string, block: BlockHeight },
+ expressContext: ExpressContext,
+ info: GraphQLResolveInfo
+ ) => {
+ log('tickDayData', id, JSON.stringify(block, jsonBigIntStringReplacer));
+
+ // Set cache-control hints
+ // setGQLCacheHints(info, block, gqlCacheConfig);
+
+ return executeAndRecordMetrics(
+ indexer,
+ gqlLogger,
+ 'tickDayData',
+ expressContext,
+ async () => indexer.getSubgraphEntity(TickDayData, id, block, info)
+ );
+ },
+
+ tickDayDatas: async (
+ _: any,
+ { block = {}, where, first, skip, orderBy, orderDirection }: { block: BlockHeight, where: { [key: string]: any }, first: number, skip: number, orderBy: string, orderDirection: OrderDirection },
+ expressContext: ExpressContext,
+ info: GraphQLResolveInfo
+ ) => {
+ log('tickDayDatas', JSON.stringify(block, jsonBigIntStringReplacer), JSON.stringify(where, jsonBigIntStringReplacer), first, skip, orderBy, orderDirection);
+
+ // Set cache-control hints
+ // setGQLCacheHints(info, block, gqlCacheConfig);
+
+ return executeAndRecordMetrics(
+ indexer,
+ gqlLogger,
+ 'tickDayDatas',
+ expressContext,
+ async () => indexer.getSubgraphEntities(
+ TickDayData,
+ block,
+ where,
+ { limit: first, skip, orderBy, orderDirection },
+ info
+ )
+ );
+ },
+
+ tokenDayData: async (
+ _: any,
+ { id, block = {} }: { id: string, block: BlockHeight },
+ expressContext: ExpressContext,
+ info: GraphQLResolveInfo
+ ) => {
+ log('tokenDayData', id, JSON.stringify(block, jsonBigIntStringReplacer));
+
+ // Set cache-control hints
+ // setGQLCacheHints(info, block, gqlCacheConfig);
+
+ return executeAndRecordMetrics(
+ indexer,
+ gqlLogger,
+ 'tokenDayData',
+ expressContext,
+ async () => indexer.getSubgraphEntity(TokenDayData, id, block, info)
+ );
+ },
+
+ tokenDayDatas: async (
+ _: any,
+ { block = {}, where, first, skip, orderBy, orderDirection }: { block: BlockHeight, where: { [key: string]: any }, first: number, skip: number, orderBy: string, orderDirection: OrderDirection },
+ expressContext: ExpressContext,
+ info: GraphQLResolveInfo
+ ) => {
+ log('tokenDayDatas', JSON.stringify(block, jsonBigIntStringReplacer), JSON.stringify(where, jsonBigIntStringReplacer), first, skip, orderBy, orderDirection);
+
+ // Set cache-control hints
+ // setGQLCacheHints(info, block, gqlCacheConfig);
+
+ return executeAndRecordMetrics(
+ indexer,
+ gqlLogger,
+ 'tokenDayDatas',
+ expressContext,
+ async () => indexer.getSubgraphEntities(
+ TokenDayData,
+ block,
+ where,
+ { limit: first, skip, orderBy, orderDirection },
+ info
+ )
+ );
+ },
+
+ tokenHourData: async (
+ _: any,
+ { id, block = {} }: { id: string, block: BlockHeight },
+ expressContext: ExpressContext,
+ info: GraphQLResolveInfo
+ ) => {
+ log('tokenHourData', id, JSON.stringify(block, jsonBigIntStringReplacer));
+
+ // Set cache-control hints
+ // setGQLCacheHints(info, block, gqlCacheConfig);
+
+ return executeAndRecordMetrics(
+ indexer,
+ gqlLogger,
+ 'tokenHourData',
+ expressContext,
+ async () => indexer.getSubgraphEntity(TokenHourData, id, block, info)
+ );
+ },
+
+ tokenHourDatas: async (
+ _: any,
+ { block = {}, where, first, skip, orderBy, orderDirection }: { block: BlockHeight, where: { [key: string]: any }, first: number, skip: number, orderBy: string, orderDirection: OrderDirection },
+ expressContext: ExpressContext,
+ info: GraphQLResolveInfo
+ ) => {
+ log('tokenHourDatas', JSON.stringify(block, jsonBigIntStringReplacer), JSON.stringify(where, jsonBigIntStringReplacer), first, skip, orderBy, orderDirection);
+
+ // Set cache-control hints
+ // setGQLCacheHints(info, block, gqlCacheConfig);
+
+ return executeAndRecordMetrics(
+ indexer,
+ gqlLogger,
+ 'tokenHourDatas',
+ expressContext,
+ async () => indexer.getSubgraphEntities(
+ TokenHourData,
+ block,
+ where,
+ { limit: first, skip, orderBy, orderDirection },
+ info
+ )
+ );
+ },
+
+ increaseEvent: async (
+ _: any,
+ { id, block = {} }: { id: string, block: BlockHeight },
+ expressContext: ExpressContext,
+ info: GraphQLResolveInfo
+ ) => {
+ log('increaseEvent', id, JSON.stringify(block, jsonBigIntStringReplacer));
+
+ // Set cache-control hints
+ // setGQLCacheHints(info, block, gqlCacheConfig);
+
+ return executeAndRecordMetrics(
+ indexer,
+ gqlLogger,
+ 'increaseEvent',
+ expressContext,
+ async () => indexer.getSubgraphEntity(IncreaseEvent, id, block, info)
+ );
+ },
+
+ increaseEvents: async (
+ _: any,
+ { block = {}, where, first, skip, orderBy, orderDirection }: { block: BlockHeight, where: { [key: string]: any }, first: number, skip: number, orderBy: string, orderDirection: OrderDirection },
+ expressContext: ExpressContext,
+ info: GraphQLResolveInfo
+ ) => {
+ log('increaseEvents', JSON.stringify(block, jsonBigIntStringReplacer), JSON.stringify(where, jsonBigIntStringReplacer), first, skip, orderBy, orderDirection);
+
+ // Set cache-control hints
+ // setGQLCacheHints(info, block, gqlCacheConfig);
+
+ return executeAndRecordMetrics(
+ indexer,
+ gqlLogger,
+ 'increaseEvents',
+ expressContext,
+ async () => indexer.getSubgraphEntities(
+ IncreaseEvent,
+ block,
+ where,
+ { limit: first, skip, orderBy, orderDirection },
+ info
+ )
+ );
+ },
+
+ decreaseEvent: async (
+ _: any,
+ { id, block = {} }: { id: string, block: BlockHeight },
+ expressContext: ExpressContext,
+ info: GraphQLResolveInfo
+ ) => {
+ log('decreaseEvent', id, JSON.stringify(block, jsonBigIntStringReplacer));
+
+ // Set cache-control hints
+ // setGQLCacheHints(info, block, gqlCacheConfig);
+
+ return executeAndRecordMetrics(
+ indexer,
+ gqlLogger,
+ 'decreaseEvent',
+ expressContext,
+ async () => indexer.getSubgraphEntity(DecreaseEvent, id, block, info)
+ );
+ },
+
+ decreaseEvents: async (
+ _: any,
+ { block = {}, where, first, skip, orderBy, orderDirection }: { block: BlockHeight, where: { [key: string]: any }, first: number, skip: number, orderBy: string, orderDirection: OrderDirection },
+ expressContext: ExpressContext,
+ info: GraphQLResolveInfo
+ ) => {
+ log('decreaseEvents', JSON.stringify(block, jsonBigIntStringReplacer), JSON.stringify(where, jsonBigIntStringReplacer), first, skip, orderBy, orderDirection);
+
+ // Set cache-control hints
+ // setGQLCacheHints(info, block, gqlCacheConfig);
+
+ return executeAndRecordMetrics(
+ indexer,
+ gqlLogger,
+ 'decreaseEvents',
+ expressContext,
+ async () => indexer.getSubgraphEntities(
+ DecreaseEvent,
+ block,
+ where,
+ { limit: first, skip, orderBy, orderDirection },
+ info
+ )
+ );
+ },
+
+ setProtocolFeeEvent: async (
+ _: any,
+ { id, block = {} }: { id: string, block: BlockHeight },
+ expressContext: ExpressContext,
+ info: GraphQLResolveInfo
+ ) => {
+ log('setProtocolFeeEvent', id, JSON.stringify(block, jsonBigIntStringReplacer));
+
+ // Set cache-control hints
+ // setGQLCacheHints(info, block, gqlCacheConfig);
+
+ return executeAndRecordMetrics(
+ indexer,
+ gqlLogger,
+ 'setProtocolFeeEvent',
+ expressContext,
+ async () => indexer.getSubgraphEntity(SetProtocolFeeEvent, id, block, info)
+ );
+ },
+
+ setProtocolFeeEvents: async (
+ _: any,
+ { block = {}, where, first, skip, orderBy, orderDirection }: { block: BlockHeight, where: { [key: string]: any }, first: number, skip: number, orderBy: string, orderDirection: OrderDirection },
+ expressContext: ExpressContext,
+ info: GraphQLResolveInfo
+ ) => {
+ log('setProtocolFeeEvents', JSON.stringify(block, jsonBigIntStringReplacer), JSON.stringify(where, jsonBigIntStringReplacer), first, skip, orderBy, orderDirection);
+
+ // Set cache-control hints
+ // setGQLCacheHints(info, block, gqlCacheConfig);
+
+ return executeAndRecordMetrics(
+ indexer,
+ gqlLogger,
+ 'setProtocolFeeEvents',
+ expressContext,
+ async () => indexer.getSubgraphEntities(
+ SetProtocolFeeEvent,
+ block,
+ where,
+ { limit: first, skip, orderBy, orderDirection },
+ info
+ )
+ );
+ },
+
+ events: async (
+ _: any,
+ { blockHash, contractAddress, name }: { blockHash: string, contractAddress: string, name?: string },
+ expressContext: ExpressContext
+ ) => {
+ log('events', blockHash, contractAddress, name);
+
+ return executeAndRecordMetrics(
+ indexer,
+ gqlLogger,
+ 'events',
+ expressContext,
+ async () => {
+ const block = await indexer.getBlockProgress(blockHash);
+ if (!block || !block.isComplete) {
+ throw new Error(`Block hash ${blockHash} number ${block?.blockNumber} not processed yet`);
+ }
+
+ const events = await indexer.getEventsByFilter(blockHash, contractAddress, name);
+ return events.map(event => indexer.getResultEvent(event));
+ }
+ );
+ },
+
+ eventsInRange: async (
+ _: any,
+ { fromBlockNumber, toBlockNumber }: { fromBlockNumber: number, toBlockNumber: number },
+ expressContext: ExpressContext
+ ) => {
+ log('eventsInRange', fromBlockNumber, toBlockNumber);
+
+ return executeAndRecordMetrics(
+ indexer,
+ gqlLogger,
+ 'eventsInRange',
+ expressContext,
+ async () => {
+ const syncStatus = await indexer.getSyncStatus();
+
+ if (!syncStatus) {
+ throw new Error('No blocks processed yet');
+ }
+
+ if ((fromBlockNumber < syncStatus.initialIndexedBlockNumber) || (toBlockNumber > syncStatus.latestProcessedBlockNumber)) {
+ throw new Error(`Block range should be between ${syncStatus.initialIndexedBlockNumber} and ${syncStatus.latestProcessedBlockNumber}`);
+ }
+
+ const events = await indexer.getEventsInRange(fromBlockNumber, toBlockNumber);
+ return events.map(event => indexer.getResultEvent(event));
+ }
+ );
+ },
+
+ getStateByCID: async (
+ _: any,
+ { cid }: { cid: string },
+ expressContext: ExpressContext
+ ) => {
+ log('getStateByCID', cid);
+
+ return executeAndRecordMetrics(
+ indexer,
+ gqlLogger,
+ 'getStateByCID',
+ expressContext,
+ async () => {
+ const state = await indexer.getStateByCID(cid);
+
+ return state && state.block.isComplete ? getResultState(state) : undefined;
+ }
+ );
+ },
+
+ getState: async (
+ _: any,
+ { blockHash, contractAddress, kind }: { blockHash: string, contractAddress: string, kind: string },
+ expressContext: ExpressContext
+ ) => {
+ log('getState', blockHash, contractAddress, kind);
+
+ return executeAndRecordMetrics(
+ indexer,
+ gqlLogger,
+ 'getState',
+ expressContext,
+ async () => {
+ const state = await indexer.getPrevState(blockHash, contractAddress, kind);
+
+ return state && state.block.isComplete ? getResultState(state) : undefined;
+ }
+ );
+ },
+
+ _meta: async (
+ _: any,
+ { block = {} }: { block: BlockHeight },
+ expressContext: ExpressContext
+ ) => {
+ log('_meta');
+
+ return executeAndRecordMetrics(
+ indexer,
+ gqlLogger,
+ '_meta',
+ expressContext,
+ async () => indexer.getMetaData(block)
+ );
+ },
+
+ getSyncStatus: async (
+ _: any,
+ __: Record,
+ expressContext: ExpressContext
+ ) => {
+ log('getSyncStatus');
+
+ return executeAndRecordMetrics(
+ indexer,
+ gqlLogger,
+ 'getSyncStatus',
+ expressContext,
+ async () => indexer.getSyncStatus()
+ );
+ }
+ }
+ };
+};
diff --git a/packages/v3-watcher/src/schema.gql b/packages/v3-watcher/src/schema.gql
new file mode 100644
index 0000000..9e2b792
--- /dev/null
+++ b/packages/v3-watcher/src/schema.gql
@@ -0,0 +1,5298 @@
+directive @cacheControl(maxAge: Int, inheritMaxAge: Boolean, scope: CacheControlScope) on FIELD_DEFINITION | OBJECT | INTERFACE | UNION
+
+enum CacheControlScope {
+ PUBLIC
+ PRIVATE
+}
+
+scalar BigInt
+
+scalar BigDecimal
+
+scalar Bytes
+
+type Proof {
+ data: String!
+}
+
+type _Block_ {
+ cid: String
+ hash: String!
+ number: Int!
+ timestamp: Int!
+ parentHash: String!
+}
+
+type _Transaction_ {
+ hash: String!
+ index: Int!
+ from: String!
+ to: String!
+}
+
+type ResultEvent {
+ block: _Block_!
+ tx: _Transaction_!
+ contract: String!
+ eventIndex: Int!
+ event: Event!
+ proof: Proof
+}
+
+union Event = FeeAmountEnabledEvent | OwnerChangedEvent | PoolCreatedEvent | ApprovalEvent | ApprovalForAllEvent | CollectEvent | DecreaseLiquidityEvent | IncreaseLiquidityEvent | TransferEvent | BurnEvent | CollectProtocolEvent | FlashEvent | IncreaseObservationCardinalityNextEvent | InitializeEvent | MintEvent | SetFeeProtocolEvent | SwapEvent
+
+type FeeAmountEnabledEvent {
+ fee: Int!
+ tickSpacing: Int!
+}
+
+type OwnerChangedEvent {
+ oldOwner: String!
+ newOwner: String!
+}
+
+type PoolCreatedEvent {
+ token0: String!
+ token1: String!
+ fee: Int!
+ tickSpacing: Int!
+ pool: String!
+}
+
+type ApprovalEvent {
+ owner: String!
+ approved: String!
+ tokenId: BigInt!
+}
+
+type ApprovalForAllEvent {
+ owner: String!
+ operator: String!
+ approved: Boolean!
+}
+
+type CollectEvent {
+ tokenId: BigInt
+ recipient: String!
+ amount0: BigInt!
+ amount1: BigInt!
+ owner: String
+ tickLower: Int
+ tickUpper: Int
+}
+
+type DecreaseLiquidityEvent {
+ tokenId: BigInt!
+ liquidity: BigInt!
+ amount0: BigInt!
+ amount1: BigInt!
+}
+
+type IncreaseLiquidityEvent {
+ tokenId: BigInt!
+ liquidity: BigInt!
+ amount0: BigInt!
+ amount1: BigInt!
+}
+
+type TransferEvent {
+ from: String!
+ to: String!
+ tokenId: BigInt!
+}
+
+type BurnEvent {
+ owner: String!
+ tickLower: Int!
+ tickUpper: Int!
+ amount: BigInt!
+ amount0: BigInt!
+ amount1: BigInt!
+}
+
+type CollectProtocolEvent {
+ sender: String!
+ recipient: String!
+ amount0: BigInt!
+ amount1: BigInt!
+}
+
+type FlashEvent {
+ sender: String!
+ recipient: String!
+ amount0: BigInt!
+ amount1: BigInt!
+ paid0: BigInt!
+ paid1: BigInt!
+}
+
+type IncreaseObservationCardinalityNextEvent {
+ observationCardinalityNextOld: Int!
+ observationCardinalityNextNew: Int!
+}
+
+type InitializeEvent {
+ sqrtPriceX96: BigInt!
+ tick: Int!
+}
+
+type MintEvent {
+ sender: String!
+ owner: String!
+ tickLower: Int!
+ tickUpper: Int!
+ amount: BigInt!
+ amount0: BigInt!
+ amount1: BigInt!
+}
+
+type SetFeeProtocolEvent {
+ feeProtocol0Old: Int!
+ feeProtocol1Old: Int!
+ feeProtocol0New: Int!
+ feeProtocol1New: Int!
+}
+
+type SwapEvent {
+ sender: String!
+ recipient: String!
+ amount0: BigInt!
+ amount1: BigInt!
+ sqrtPriceX96: BigInt!
+ liquidity: BigInt!
+ tick: Int!
+}
+
+input Block_height {
+ hash: Bytes
+ number: Int
+}
+
+input BlockChangedFilter {
+ number_gte: Int!
+}
+
+enum OrderDirection {
+ asc
+ desc
+}
+
+enum Factory_orderBy {
+ id
+ poolCount
+ txCount
+ totalVolumeUSD
+ totalVolumeETH
+ totalFeesUSD
+ totalFeesETH
+ untrackedVolumeUSD
+ totalValueLockedUSD
+ totalValueLockedETH
+ totalValueLockedUSDUntracked
+ totalValueLockedETHUntracked
+ owner
+}
+
+input Factory_filter {
+ id: ID
+ id_not: ID
+ id_gt: ID
+ id_lt: ID
+ id_gte: ID
+ id_lte: ID
+ id_in: [ID!]
+ id_not_in: [ID!]
+ poolCount: BigInt
+ poolCount_not: BigInt
+ poolCount_gt: BigInt
+ poolCount_lt: BigInt
+ poolCount_gte: BigInt
+ poolCount_lte: BigInt
+ poolCount_in: [BigInt!]
+ poolCount_not_in: [BigInt!]
+ txCount: BigInt
+ txCount_not: BigInt
+ txCount_gt: BigInt
+ txCount_lt: BigInt
+ txCount_gte: BigInt
+ txCount_lte: BigInt
+ txCount_in: [BigInt!]
+ txCount_not_in: [BigInt!]
+ totalVolumeUSD: BigDecimal
+ totalVolumeUSD_not: BigDecimal
+ totalVolumeUSD_gt: BigDecimal
+ totalVolumeUSD_lt: BigDecimal
+ totalVolumeUSD_gte: BigDecimal
+ totalVolumeUSD_lte: BigDecimal
+ totalVolumeUSD_in: [BigDecimal!]
+ totalVolumeUSD_not_in: [BigDecimal!]
+ totalVolumeETH: BigDecimal
+ totalVolumeETH_not: BigDecimal
+ totalVolumeETH_gt: BigDecimal
+ totalVolumeETH_lt: BigDecimal
+ totalVolumeETH_gte: BigDecimal
+ totalVolumeETH_lte: BigDecimal
+ totalVolumeETH_in: [BigDecimal!]
+ totalVolumeETH_not_in: [BigDecimal!]
+ totalFeesUSD: BigDecimal
+ totalFeesUSD_not: BigDecimal
+ totalFeesUSD_gt: BigDecimal
+ totalFeesUSD_lt: BigDecimal
+ totalFeesUSD_gte: BigDecimal
+ totalFeesUSD_lte: BigDecimal
+ totalFeesUSD_in: [BigDecimal!]
+ totalFeesUSD_not_in: [BigDecimal!]
+ totalFeesETH: BigDecimal
+ totalFeesETH_not: BigDecimal
+ totalFeesETH_gt: BigDecimal
+ totalFeesETH_lt: BigDecimal
+ totalFeesETH_gte: BigDecimal
+ totalFeesETH_lte: BigDecimal
+ totalFeesETH_in: [BigDecimal!]
+ totalFeesETH_not_in: [BigDecimal!]
+ untrackedVolumeUSD: BigDecimal
+ untrackedVolumeUSD_not: BigDecimal
+ untrackedVolumeUSD_gt: BigDecimal
+ untrackedVolumeUSD_lt: BigDecimal
+ untrackedVolumeUSD_gte: BigDecimal
+ untrackedVolumeUSD_lte: BigDecimal
+ untrackedVolumeUSD_in: [BigDecimal!]
+ untrackedVolumeUSD_not_in: [BigDecimal!]
+ totalValueLockedUSD: BigDecimal
+ totalValueLockedUSD_not: BigDecimal
+ totalValueLockedUSD_gt: BigDecimal
+ totalValueLockedUSD_lt: BigDecimal
+ totalValueLockedUSD_gte: BigDecimal
+ totalValueLockedUSD_lte: BigDecimal
+ totalValueLockedUSD_in: [BigDecimal!]
+ totalValueLockedUSD_not_in: [BigDecimal!]
+ totalValueLockedETH: BigDecimal
+ totalValueLockedETH_not: BigDecimal
+ totalValueLockedETH_gt: BigDecimal
+ totalValueLockedETH_lt: BigDecimal
+ totalValueLockedETH_gte: BigDecimal
+ totalValueLockedETH_lte: BigDecimal
+ totalValueLockedETH_in: [BigDecimal!]
+ totalValueLockedETH_not_in: [BigDecimal!]
+ totalValueLockedUSDUntracked: BigDecimal
+ totalValueLockedUSDUntracked_not: BigDecimal
+ totalValueLockedUSDUntracked_gt: BigDecimal
+ totalValueLockedUSDUntracked_lt: BigDecimal
+ totalValueLockedUSDUntracked_gte: BigDecimal
+ totalValueLockedUSDUntracked_lte: BigDecimal
+ totalValueLockedUSDUntracked_in: [BigDecimal!]
+ totalValueLockedUSDUntracked_not_in: [BigDecimal!]
+ totalValueLockedETHUntracked: BigDecimal
+ totalValueLockedETHUntracked_not: BigDecimal
+ totalValueLockedETHUntracked_gt: BigDecimal
+ totalValueLockedETHUntracked_lt: BigDecimal
+ totalValueLockedETHUntracked_gte: BigDecimal
+ totalValueLockedETHUntracked_lte: BigDecimal
+ totalValueLockedETHUntracked_in: [BigDecimal!]
+ totalValueLockedETHUntracked_not_in: [BigDecimal!]
+ owner: ID
+ owner_not: ID
+ owner_gt: ID
+ owner_lt: ID
+ owner_gte: ID
+ owner_lte: ID
+ owner_in: [ID!]
+ owner_not_in: [ID!]
+ _change_block: BlockChangedFilter
+ and: [Factory_filter]
+ or: [Factory_filter]
+}
+
+enum Bundle_orderBy {
+ id
+ ethPriceUSD
+}
+
+input Bundle_filter {
+ id: ID
+ id_not: ID
+ id_gt: ID
+ id_lt: ID
+ id_gte: ID
+ id_lte: ID
+ id_in: [ID!]
+ id_not_in: [ID!]
+ ethPriceUSD: BigDecimal
+ ethPriceUSD_not: BigDecimal
+ ethPriceUSD_gt: BigDecimal
+ ethPriceUSD_lt: BigDecimal
+ ethPriceUSD_gte: BigDecimal
+ ethPriceUSD_lte: BigDecimal
+ ethPriceUSD_in: [BigDecimal!]
+ ethPriceUSD_not_in: [BigDecimal!]
+ _change_block: BlockChangedFilter
+ and: [Bundle_filter]
+ or: [Bundle_filter]
+}
+
+enum Token_orderBy {
+ id
+ symbol
+ name
+ decimals
+ totalSupply
+ volume
+ volumeUSD
+ untrackedVolumeUSD
+ feesUSD
+ txCount
+ poolCount
+ totalValueLocked
+ totalValueLockedUSD
+ totalValueLockedUSDUntracked
+ derivedETH
+ whitelistPools
+ tokenDayData
+}
+
+input Token_filter {
+ id: ID
+ id_not: ID
+ id_gt: ID
+ id_lt: ID
+ id_gte: ID
+ id_lte: ID
+ id_in: [ID!]
+ id_not_in: [ID!]
+ symbol: String
+ symbol_not: String
+ symbol_gt: String
+ symbol_lt: String
+ symbol_gte: String
+ symbol_lte: String
+ symbol_in: [String!]
+ symbol_not_in: [String!]
+ symbol_starts_with: String
+ symbol_starts_with_nocase: String
+ symbol_not_starts_with: String
+ symbol_not_starts_with_nocase: String
+ symbol_ends_with: String
+ symbol_ends_with_nocase: String
+ symbol_not_ends_with: String
+ symbol_not_ends_with_nocase: String
+ symbol_contains: String
+ symbol_not_contains: String
+ symbol_contains_nocase: String
+ symbol_not_contains_nocase: String
+ name: String
+ name_not: String
+ name_gt: String
+ name_lt: String
+ name_gte: String
+ name_lte: String
+ name_in: [String!]
+ name_not_in: [String!]
+ name_starts_with: String
+ name_starts_with_nocase: String
+ name_not_starts_with: String
+ name_not_starts_with_nocase: String
+ name_ends_with: String
+ name_ends_with_nocase: String
+ name_not_ends_with: String
+ name_not_ends_with_nocase: String
+ name_contains: String
+ name_not_contains: String
+ name_contains_nocase: String
+ name_not_contains_nocase: String
+ decimals: BigInt
+ decimals_not: BigInt
+ decimals_gt: BigInt
+ decimals_lt: BigInt
+ decimals_gte: BigInt
+ decimals_lte: BigInt
+ decimals_in: [BigInt!]
+ decimals_not_in: [BigInt!]
+ totalSupply: BigInt
+ totalSupply_not: BigInt
+ totalSupply_gt: BigInt
+ totalSupply_lt: BigInt
+ totalSupply_gte: BigInt
+ totalSupply_lte: BigInt
+ totalSupply_in: [BigInt!]
+ totalSupply_not_in: [BigInt!]
+ volume: BigDecimal
+ volume_not: BigDecimal
+ volume_gt: BigDecimal
+ volume_lt: BigDecimal
+ volume_gte: BigDecimal
+ volume_lte: BigDecimal
+ volume_in: [BigDecimal!]
+ volume_not_in: [BigDecimal!]
+ volumeUSD: BigDecimal
+ volumeUSD_not: BigDecimal
+ volumeUSD_gt: BigDecimal
+ volumeUSD_lt: BigDecimal
+ volumeUSD_gte: BigDecimal
+ volumeUSD_lte: BigDecimal
+ volumeUSD_in: [BigDecimal!]
+ volumeUSD_not_in: [BigDecimal!]
+ untrackedVolumeUSD: BigDecimal
+ untrackedVolumeUSD_not: BigDecimal
+ untrackedVolumeUSD_gt: BigDecimal
+ untrackedVolumeUSD_lt: BigDecimal
+ untrackedVolumeUSD_gte: BigDecimal
+ untrackedVolumeUSD_lte: BigDecimal
+ untrackedVolumeUSD_in: [BigDecimal!]
+ untrackedVolumeUSD_not_in: [BigDecimal!]
+ feesUSD: BigDecimal
+ feesUSD_not: BigDecimal
+ feesUSD_gt: BigDecimal
+ feesUSD_lt: BigDecimal
+ feesUSD_gte: BigDecimal
+ feesUSD_lte: BigDecimal
+ feesUSD_in: [BigDecimal!]
+ feesUSD_not_in: [BigDecimal!]
+ txCount: BigInt
+ txCount_not: BigInt
+ txCount_gt: BigInt
+ txCount_lt: BigInt
+ txCount_gte: BigInt
+ txCount_lte: BigInt
+ txCount_in: [BigInt!]
+ txCount_not_in: [BigInt!]
+ poolCount: BigInt
+ poolCount_not: BigInt
+ poolCount_gt: BigInt
+ poolCount_lt: BigInt
+ poolCount_gte: BigInt
+ poolCount_lte: BigInt
+ poolCount_in: [BigInt!]
+ poolCount_not_in: [BigInt!]
+ totalValueLocked: BigDecimal
+ totalValueLocked_not: BigDecimal
+ totalValueLocked_gt: BigDecimal
+ totalValueLocked_lt: BigDecimal
+ totalValueLocked_gte: BigDecimal
+ totalValueLocked_lte: BigDecimal
+ totalValueLocked_in: [BigDecimal!]
+ totalValueLocked_not_in: [BigDecimal!]
+ totalValueLockedUSD: BigDecimal
+ totalValueLockedUSD_not: BigDecimal
+ totalValueLockedUSD_gt: BigDecimal
+ totalValueLockedUSD_lt: BigDecimal
+ totalValueLockedUSD_gte: BigDecimal
+ totalValueLockedUSD_lte: BigDecimal
+ totalValueLockedUSD_in: [BigDecimal!]
+ totalValueLockedUSD_not_in: [BigDecimal!]
+ totalValueLockedUSDUntracked: BigDecimal
+ totalValueLockedUSDUntracked_not: BigDecimal
+ totalValueLockedUSDUntracked_gt: BigDecimal
+ totalValueLockedUSDUntracked_lt: BigDecimal
+ totalValueLockedUSDUntracked_gte: BigDecimal
+ totalValueLockedUSDUntracked_lte: BigDecimal
+ totalValueLockedUSDUntracked_in: [BigDecimal!]
+ totalValueLockedUSDUntracked_not_in: [BigDecimal!]
+ derivedETH: BigDecimal
+ derivedETH_not: BigDecimal
+ derivedETH_gt: BigDecimal
+ derivedETH_lt: BigDecimal
+ derivedETH_gte: BigDecimal
+ derivedETH_lte: BigDecimal
+ derivedETH_in: [BigDecimal!]
+ derivedETH_not_in: [BigDecimal!]
+ whitelistPools: [String!]
+ whitelistPools_not: [String!]
+ whitelistPools_contains: [String!]
+ whitelistPools_not_contains: [String!]
+ whitelistPools_contains_nocase: [String!]
+ whitelistPools_not_contains_nocase: [String!]
+ whitelistPools_: Pool_filter
+ tokenDayData_: TokenDayData_filter
+ _change_block: BlockChangedFilter
+ and: [Token_filter]
+ or: [Token_filter]
+}
+
+enum Pool_orderBy {
+ id
+ createdAtTimestamp
+ createdAtBlockNumber
+ token0
+ token0__id
+ token0__symbol
+ token0__name
+ token0__decimals
+ token0__totalSupply
+ token0__volume
+ token0__volumeUSD
+ token0__untrackedVolumeUSD
+ token0__feesUSD
+ token0__txCount
+ token0__poolCount
+ token0__totalValueLocked
+ token0__totalValueLockedUSD
+ token0__totalValueLockedUSDUntracked
+ token0__derivedETH
+ token1
+ token1__id
+ token1__symbol
+ token1__name
+ token1__decimals
+ token1__totalSupply
+ token1__volume
+ token1__volumeUSD
+ token1__untrackedVolumeUSD
+ token1__feesUSD
+ token1__txCount
+ token1__poolCount
+ token1__totalValueLocked
+ token1__totalValueLockedUSD
+ token1__totalValueLockedUSDUntracked
+ token1__derivedETH
+ feeTier
+ liquidity
+ sqrtPrice
+ feeGrowthGlobal0X128
+ feeGrowthGlobal1X128
+ token0Price
+ token1Price
+ tick
+ observationIndex
+ volumeToken0
+ volumeToken1
+ volumeUSD
+ untrackedVolumeUSD
+ feesUSD
+ txCount
+ collectedFeesToken0
+ collectedFeesToken1
+ collectedFeesUSD
+ totalValueLockedToken0
+ totalValueLockedToken1
+ totalValueLockedETH
+ totalValueLockedUSD
+ totalValueLockedUSDUntracked
+ isProtocolFeeEnabled
+ liquidityProviderCount
+ poolHourData
+ poolDayData
+ mints
+ burns
+ swaps
+ collects
+ ticks
+}
+
+input Pool_filter {
+ id: ID
+ id_not: ID
+ id_gt: ID
+ id_lt: ID
+ id_gte: ID
+ id_lte: ID
+ id_in: [ID!]
+ id_not_in: [ID!]
+ createdAtTimestamp: BigInt
+ createdAtTimestamp_not: BigInt
+ createdAtTimestamp_gt: BigInt
+ createdAtTimestamp_lt: BigInt
+ createdAtTimestamp_gte: BigInt
+ createdAtTimestamp_lte: BigInt
+ createdAtTimestamp_in: [BigInt!]
+ createdAtTimestamp_not_in: [BigInt!]
+ createdAtBlockNumber: BigInt
+ createdAtBlockNumber_not: BigInt
+ createdAtBlockNumber_gt: BigInt
+ createdAtBlockNumber_lt: BigInt
+ createdAtBlockNumber_gte: BigInt
+ createdAtBlockNumber_lte: BigInt
+ createdAtBlockNumber_in: [BigInt!]
+ createdAtBlockNumber_not_in: [BigInt!]
+ token0: String
+ token0_not: String
+ token0_gt: String
+ token0_lt: String
+ token0_gte: String
+ token0_lte: String
+ token0_in: [String!]
+ token0_not_in: [String!]
+ token0_starts_with: String
+ token0_starts_with_nocase: String
+ token0_not_starts_with: String
+ token0_not_starts_with_nocase: String
+ token0_ends_with: String
+ token0_ends_with_nocase: String
+ token0_not_ends_with: String
+ token0_not_ends_with_nocase: String
+ token0_contains: String
+ token0_not_contains: String
+ token0_contains_nocase: String
+ token0_not_contains_nocase: String
+ token0_: Token_filter
+ token1: String
+ token1_not: String
+ token1_gt: String
+ token1_lt: String
+ token1_gte: String
+ token1_lte: String
+ token1_in: [String!]
+ token1_not_in: [String!]
+ token1_starts_with: String
+ token1_starts_with_nocase: String
+ token1_not_starts_with: String
+ token1_not_starts_with_nocase: String
+ token1_ends_with: String
+ token1_ends_with_nocase: String
+ token1_not_ends_with: String
+ token1_not_ends_with_nocase: String
+ token1_contains: String
+ token1_not_contains: String
+ token1_contains_nocase: String
+ token1_not_contains_nocase: String
+ token1_: Token_filter
+ feeTier: BigInt
+ feeTier_not: BigInt
+ feeTier_gt: BigInt
+ feeTier_lt: BigInt
+ feeTier_gte: BigInt
+ feeTier_lte: BigInt
+ feeTier_in: [BigInt!]
+ feeTier_not_in: [BigInt!]
+ liquidity: BigInt
+ liquidity_not: BigInt
+ liquidity_gt: BigInt
+ liquidity_lt: BigInt
+ liquidity_gte: BigInt
+ liquidity_lte: BigInt
+ liquidity_in: [BigInt!]
+ liquidity_not_in: [BigInt!]
+ sqrtPrice: BigInt
+ sqrtPrice_not: BigInt
+ sqrtPrice_gt: BigInt
+ sqrtPrice_lt: BigInt
+ sqrtPrice_gte: BigInt
+ sqrtPrice_lte: BigInt
+ sqrtPrice_in: [BigInt!]
+ sqrtPrice_not_in: [BigInt!]
+ feeGrowthGlobal0X128: BigInt
+ feeGrowthGlobal0X128_not: BigInt
+ feeGrowthGlobal0X128_gt: BigInt
+ feeGrowthGlobal0X128_lt: BigInt
+ feeGrowthGlobal0X128_gte: BigInt
+ feeGrowthGlobal0X128_lte: BigInt
+ feeGrowthGlobal0X128_in: [BigInt!]
+ feeGrowthGlobal0X128_not_in: [BigInt!]
+ feeGrowthGlobal1X128: BigInt
+ feeGrowthGlobal1X128_not: BigInt
+ feeGrowthGlobal1X128_gt: BigInt
+ feeGrowthGlobal1X128_lt: BigInt
+ feeGrowthGlobal1X128_gte: BigInt
+ feeGrowthGlobal1X128_lte: BigInt
+ feeGrowthGlobal1X128_in: [BigInt!]
+ feeGrowthGlobal1X128_not_in: [BigInt!]
+ token0Price: BigDecimal
+ token0Price_not: BigDecimal
+ token0Price_gt: BigDecimal
+ token0Price_lt: BigDecimal
+ token0Price_gte: BigDecimal
+ token0Price_lte: BigDecimal
+ token0Price_in: [BigDecimal!]
+ token0Price_not_in: [BigDecimal!]
+ token1Price: BigDecimal
+ token1Price_not: BigDecimal
+ token1Price_gt: BigDecimal
+ token1Price_lt: BigDecimal
+ token1Price_gte: BigDecimal
+ token1Price_lte: BigDecimal
+ token1Price_in: [BigDecimal!]
+ token1Price_not_in: [BigDecimal!]
+ tick: BigInt
+ tick_not: BigInt
+ tick_gt: BigInt
+ tick_lt: BigInt
+ tick_gte: BigInt
+ tick_lte: BigInt
+ tick_in: [BigInt!]
+ tick_not_in: [BigInt!]
+ observationIndex: BigInt
+ observationIndex_not: BigInt
+ observationIndex_gt: BigInt
+ observationIndex_lt: BigInt
+ observationIndex_gte: BigInt
+ observationIndex_lte: BigInt
+ observationIndex_in: [BigInt!]
+ observationIndex_not_in: [BigInt!]
+ volumeToken0: BigDecimal
+ volumeToken0_not: BigDecimal
+ volumeToken0_gt: BigDecimal
+ volumeToken0_lt: BigDecimal
+ volumeToken0_gte: BigDecimal
+ volumeToken0_lte: BigDecimal
+ volumeToken0_in: [BigDecimal!]
+ volumeToken0_not_in: [BigDecimal!]
+ volumeToken1: BigDecimal
+ volumeToken1_not: BigDecimal
+ volumeToken1_gt: BigDecimal
+ volumeToken1_lt: BigDecimal
+ volumeToken1_gte: BigDecimal
+ volumeToken1_lte: BigDecimal
+ volumeToken1_in: [BigDecimal!]
+ volumeToken1_not_in: [BigDecimal!]
+ volumeUSD: BigDecimal
+ volumeUSD_not: BigDecimal
+ volumeUSD_gt: BigDecimal
+ volumeUSD_lt: BigDecimal
+ volumeUSD_gte: BigDecimal
+ volumeUSD_lte: BigDecimal
+ volumeUSD_in: [BigDecimal!]
+ volumeUSD_not_in: [BigDecimal!]
+ untrackedVolumeUSD: BigDecimal
+ untrackedVolumeUSD_not: BigDecimal
+ untrackedVolumeUSD_gt: BigDecimal
+ untrackedVolumeUSD_lt: BigDecimal
+ untrackedVolumeUSD_gte: BigDecimal
+ untrackedVolumeUSD_lte: BigDecimal
+ untrackedVolumeUSD_in: [BigDecimal!]
+ untrackedVolumeUSD_not_in: [BigDecimal!]
+ feesUSD: BigDecimal
+ feesUSD_not: BigDecimal
+ feesUSD_gt: BigDecimal
+ feesUSD_lt: BigDecimal
+ feesUSD_gte: BigDecimal
+ feesUSD_lte: BigDecimal
+ feesUSD_in: [BigDecimal!]
+ feesUSD_not_in: [BigDecimal!]
+ txCount: BigInt
+ txCount_not: BigInt
+ txCount_gt: BigInt
+ txCount_lt: BigInt
+ txCount_gte: BigInt
+ txCount_lte: BigInt
+ txCount_in: [BigInt!]
+ txCount_not_in: [BigInt!]
+ collectedFeesToken0: BigDecimal
+ collectedFeesToken0_not: BigDecimal
+ collectedFeesToken0_gt: BigDecimal
+ collectedFeesToken0_lt: BigDecimal
+ collectedFeesToken0_gte: BigDecimal
+ collectedFeesToken0_lte: BigDecimal
+ collectedFeesToken0_in: [BigDecimal!]
+ collectedFeesToken0_not_in: [BigDecimal!]
+ collectedFeesToken1: BigDecimal
+ collectedFeesToken1_not: BigDecimal
+ collectedFeesToken1_gt: BigDecimal
+ collectedFeesToken1_lt: BigDecimal
+ collectedFeesToken1_gte: BigDecimal
+ collectedFeesToken1_lte: BigDecimal
+ collectedFeesToken1_in: [BigDecimal!]
+ collectedFeesToken1_not_in: [BigDecimal!]
+ collectedFeesUSD: BigDecimal
+ collectedFeesUSD_not: BigDecimal
+ collectedFeesUSD_gt: BigDecimal
+ collectedFeesUSD_lt: BigDecimal
+ collectedFeesUSD_gte: BigDecimal
+ collectedFeesUSD_lte: BigDecimal
+ collectedFeesUSD_in: [BigDecimal!]
+ collectedFeesUSD_not_in: [BigDecimal!]
+ totalValueLockedToken0: BigDecimal
+ totalValueLockedToken0_not: BigDecimal
+ totalValueLockedToken0_gt: BigDecimal
+ totalValueLockedToken0_lt: BigDecimal
+ totalValueLockedToken0_gte: BigDecimal
+ totalValueLockedToken0_lte: BigDecimal
+ totalValueLockedToken0_in: [BigDecimal!]
+ totalValueLockedToken0_not_in: [BigDecimal!]
+ totalValueLockedToken1: BigDecimal
+ totalValueLockedToken1_not: BigDecimal
+ totalValueLockedToken1_gt: BigDecimal
+ totalValueLockedToken1_lt: BigDecimal
+ totalValueLockedToken1_gte: BigDecimal
+ totalValueLockedToken1_lte: BigDecimal
+ totalValueLockedToken1_in: [BigDecimal!]
+ totalValueLockedToken1_not_in: [BigDecimal!]
+ totalValueLockedETH: BigDecimal
+ totalValueLockedETH_not: BigDecimal
+ totalValueLockedETH_gt: BigDecimal
+ totalValueLockedETH_lt: BigDecimal
+ totalValueLockedETH_gte: BigDecimal
+ totalValueLockedETH_lte: BigDecimal
+ totalValueLockedETH_in: [BigDecimal!]
+ totalValueLockedETH_not_in: [BigDecimal!]
+ totalValueLockedUSD: BigDecimal
+ totalValueLockedUSD_not: BigDecimal
+ totalValueLockedUSD_gt: BigDecimal
+ totalValueLockedUSD_lt: BigDecimal
+ totalValueLockedUSD_gte: BigDecimal
+ totalValueLockedUSD_lte: BigDecimal
+ totalValueLockedUSD_in: [BigDecimal!]
+ totalValueLockedUSD_not_in: [BigDecimal!]
+ totalValueLockedUSDUntracked: BigDecimal
+ totalValueLockedUSDUntracked_not: BigDecimal
+ totalValueLockedUSDUntracked_gt: BigDecimal
+ totalValueLockedUSDUntracked_lt: BigDecimal
+ totalValueLockedUSDUntracked_gte: BigDecimal
+ totalValueLockedUSDUntracked_lte: BigDecimal
+ totalValueLockedUSDUntracked_in: [BigDecimal!]
+ totalValueLockedUSDUntracked_not_in: [BigDecimal!]
+ isProtocolFeeEnabled: Boolean
+ isProtocolFeeEnabled_not: Boolean
+ isProtocolFeeEnabled_gt: Boolean
+ isProtocolFeeEnabled_lt: Boolean
+ isProtocolFeeEnabled_gte: Boolean
+ isProtocolFeeEnabled_lte: Boolean
+ isProtocolFeeEnabled_in: [Boolean!]
+ isProtocolFeeEnabled_not_in: [Boolean!]
+ liquidityProviderCount: BigInt
+ liquidityProviderCount_not: BigInt
+ liquidityProviderCount_gt: BigInt
+ liquidityProviderCount_lt: BigInt
+ liquidityProviderCount_gte: BigInt
+ liquidityProviderCount_lte: BigInt
+ liquidityProviderCount_in: [BigInt!]
+ liquidityProviderCount_not_in: [BigInt!]
+ poolHourData_: PoolHourData_filter
+ poolDayData_: PoolDayData_filter
+ mints_: Mint_filter
+ burns_: Burn_filter
+ swaps_: Swap_filter
+ collects_: Collect_filter
+ ticks_: Tick_filter
+ _change_block: BlockChangedFilter
+ and: [Pool_filter]
+ or: [Pool_filter]
+}
+
+enum Tick_orderBy {
+ id
+ poolAddress
+ tickIdx
+ pool
+ pool__id
+ pool__createdAtTimestamp
+ pool__createdAtBlockNumber
+ pool__feeTier
+ pool__liquidity
+ pool__sqrtPrice
+ pool__feeGrowthGlobal0X128
+ pool__feeGrowthGlobal1X128
+ pool__token0Price
+ pool__token1Price
+ pool__tick
+ pool__observationIndex
+ pool__volumeToken0
+ pool__volumeToken1
+ pool__volumeUSD
+ pool__untrackedVolumeUSD
+ pool__feesUSD
+ pool__txCount
+ pool__collectedFeesToken0
+ pool__collectedFeesToken1
+ pool__collectedFeesUSD
+ pool__totalValueLockedToken0
+ pool__totalValueLockedToken1
+ pool__totalValueLockedETH
+ pool__totalValueLockedUSD
+ pool__totalValueLockedUSDUntracked
+ pool__isProtocolFeeEnabled
+ pool__liquidityProviderCount
+ liquidityGross
+ liquidityNet
+ price0
+ price1
+ volumeToken0
+ volumeToken1
+ volumeUSD
+ untrackedVolumeUSD
+ feesUSD
+ collectedFeesToken0
+ collectedFeesToken1
+ collectedFeesUSD
+ createdAtTimestamp
+ createdAtBlockNumber
+ liquidityProviderCount
+ feeGrowthOutside0X128
+ feeGrowthOutside1X128
+}
+
+input Tick_filter {
+ id: ID
+ id_not: ID
+ id_gt: ID
+ id_lt: ID
+ id_gte: ID
+ id_lte: ID
+ id_in: [ID!]
+ id_not_in: [ID!]
+ poolAddress: String
+ poolAddress_not: String
+ poolAddress_gt: String
+ poolAddress_lt: String
+ poolAddress_gte: String
+ poolAddress_lte: String
+ poolAddress_in: [String!]
+ poolAddress_not_in: [String!]
+ poolAddress_starts_with: String
+ poolAddress_starts_with_nocase: String
+ poolAddress_not_starts_with: String
+ poolAddress_not_starts_with_nocase: String
+ poolAddress_ends_with: String
+ poolAddress_ends_with_nocase: String
+ poolAddress_not_ends_with: String
+ poolAddress_not_ends_with_nocase: String
+ poolAddress_contains: String
+ poolAddress_not_contains: String
+ poolAddress_contains_nocase: String
+ poolAddress_not_contains_nocase: String
+ tickIdx: BigInt
+ tickIdx_not: BigInt
+ tickIdx_gt: BigInt
+ tickIdx_lt: BigInt
+ tickIdx_gte: BigInt
+ tickIdx_lte: BigInt
+ tickIdx_in: [BigInt!]
+ tickIdx_not_in: [BigInt!]
+ pool: String
+ pool_not: String
+ pool_gt: String
+ pool_lt: String
+ pool_gte: String
+ pool_lte: String
+ pool_in: [String!]
+ pool_not_in: [String!]
+ pool_starts_with: String
+ pool_starts_with_nocase: String
+ pool_not_starts_with: String
+ pool_not_starts_with_nocase: String
+ pool_ends_with: String
+ pool_ends_with_nocase: String
+ pool_not_ends_with: String
+ pool_not_ends_with_nocase: String
+ pool_contains: String
+ pool_not_contains: String
+ pool_contains_nocase: String
+ pool_not_contains_nocase: String
+ pool_: Pool_filter
+ liquidityGross: BigInt
+ liquidityGross_not: BigInt
+ liquidityGross_gt: BigInt
+ liquidityGross_lt: BigInt
+ liquidityGross_gte: BigInt
+ liquidityGross_lte: BigInt
+ liquidityGross_in: [BigInt!]
+ liquidityGross_not_in: [BigInt!]
+ liquidityNet: BigInt
+ liquidityNet_not: BigInt
+ liquidityNet_gt: BigInt
+ liquidityNet_lt: BigInt
+ liquidityNet_gte: BigInt
+ liquidityNet_lte: BigInt
+ liquidityNet_in: [BigInt!]
+ liquidityNet_not_in: [BigInt!]
+ price0: BigDecimal
+ price0_not: BigDecimal
+ price0_gt: BigDecimal
+ price0_lt: BigDecimal
+ price0_gte: BigDecimal
+ price0_lte: BigDecimal
+ price0_in: [BigDecimal!]
+ price0_not_in: [BigDecimal!]
+ price1: BigDecimal
+ price1_not: BigDecimal
+ price1_gt: BigDecimal
+ price1_lt: BigDecimal
+ price1_gte: BigDecimal
+ price1_lte: BigDecimal
+ price1_in: [BigDecimal!]
+ price1_not_in: [BigDecimal!]
+ volumeToken0: BigDecimal
+ volumeToken0_not: BigDecimal
+ volumeToken0_gt: BigDecimal
+ volumeToken0_lt: BigDecimal
+ volumeToken0_gte: BigDecimal
+ volumeToken0_lte: BigDecimal
+ volumeToken0_in: [BigDecimal!]
+ volumeToken0_not_in: [BigDecimal!]
+ volumeToken1: BigDecimal
+ volumeToken1_not: BigDecimal
+ volumeToken1_gt: BigDecimal
+ volumeToken1_lt: BigDecimal
+ volumeToken1_gte: BigDecimal
+ volumeToken1_lte: BigDecimal
+ volumeToken1_in: [BigDecimal!]
+ volumeToken1_not_in: [BigDecimal!]
+ volumeUSD: BigDecimal
+ volumeUSD_not: BigDecimal
+ volumeUSD_gt: BigDecimal
+ volumeUSD_lt: BigDecimal
+ volumeUSD_gte: BigDecimal
+ volumeUSD_lte: BigDecimal
+ volumeUSD_in: [BigDecimal!]
+ volumeUSD_not_in: [BigDecimal!]
+ untrackedVolumeUSD: BigDecimal
+ untrackedVolumeUSD_not: BigDecimal
+ untrackedVolumeUSD_gt: BigDecimal
+ untrackedVolumeUSD_lt: BigDecimal
+ untrackedVolumeUSD_gte: BigDecimal
+ untrackedVolumeUSD_lte: BigDecimal
+ untrackedVolumeUSD_in: [BigDecimal!]
+ untrackedVolumeUSD_not_in: [BigDecimal!]
+ feesUSD: BigDecimal
+ feesUSD_not: BigDecimal
+ feesUSD_gt: BigDecimal
+ feesUSD_lt: BigDecimal
+ feesUSD_gte: BigDecimal
+ feesUSD_lte: BigDecimal
+ feesUSD_in: [BigDecimal!]
+ feesUSD_not_in: [BigDecimal!]
+ collectedFeesToken0: BigDecimal
+ collectedFeesToken0_not: BigDecimal
+ collectedFeesToken0_gt: BigDecimal
+ collectedFeesToken0_lt: BigDecimal
+ collectedFeesToken0_gte: BigDecimal
+ collectedFeesToken0_lte: BigDecimal
+ collectedFeesToken0_in: [BigDecimal!]
+ collectedFeesToken0_not_in: [BigDecimal!]
+ collectedFeesToken1: BigDecimal
+ collectedFeesToken1_not: BigDecimal
+ collectedFeesToken1_gt: BigDecimal
+ collectedFeesToken1_lt: BigDecimal
+ collectedFeesToken1_gte: BigDecimal
+ collectedFeesToken1_lte: BigDecimal
+ collectedFeesToken1_in: [BigDecimal!]
+ collectedFeesToken1_not_in: [BigDecimal!]
+ collectedFeesUSD: BigDecimal
+ collectedFeesUSD_not: BigDecimal
+ collectedFeesUSD_gt: BigDecimal
+ collectedFeesUSD_lt: BigDecimal
+ collectedFeesUSD_gte: BigDecimal
+ collectedFeesUSD_lte: BigDecimal
+ collectedFeesUSD_in: [BigDecimal!]
+ collectedFeesUSD_not_in: [BigDecimal!]
+ createdAtTimestamp: BigInt
+ createdAtTimestamp_not: BigInt
+ createdAtTimestamp_gt: BigInt
+ createdAtTimestamp_lt: BigInt
+ createdAtTimestamp_gte: BigInt
+ createdAtTimestamp_lte: BigInt
+ createdAtTimestamp_in: [BigInt!]
+ createdAtTimestamp_not_in: [BigInt!]
+ createdAtBlockNumber: BigInt
+ createdAtBlockNumber_not: BigInt
+ createdAtBlockNumber_gt: BigInt
+ createdAtBlockNumber_lt: BigInt
+ createdAtBlockNumber_gte: BigInt
+ createdAtBlockNumber_lte: BigInt
+ createdAtBlockNumber_in: [BigInt!]
+ createdAtBlockNumber_not_in: [BigInt!]
+ liquidityProviderCount: BigInt
+ liquidityProviderCount_not: BigInt
+ liquidityProviderCount_gt: BigInt
+ liquidityProviderCount_lt: BigInt
+ liquidityProviderCount_gte: BigInt
+ liquidityProviderCount_lte: BigInt
+ liquidityProviderCount_in: [BigInt!]
+ liquidityProviderCount_not_in: [BigInt!]
+ feeGrowthOutside0X128: BigInt
+ feeGrowthOutside0X128_not: BigInt
+ feeGrowthOutside0X128_gt: BigInt
+ feeGrowthOutside0X128_lt: BigInt
+ feeGrowthOutside0X128_gte: BigInt
+ feeGrowthOutside0X128_lte: BigInt
+ feeGrowthOutside0X128_in: [BigInt!]
+ feeGrowthOutside0X128_not_in: [BigInt!]
+ feeGrowthOutside1X128: BigInt
+ feeGrowthOutside1X128_not: BigInt
+ feeGrowthOutside1X128_gt: BigInt
+ feeGrowthOutside1X128_lt: BigInt
+ feeGrowthOutside1X128_gte: BigInt
+ feeGrowthOutside1X128_lte: BigInt
+ feeGrowthOutside1X128_in: [BigInt!]
+ feeGrowthOutside1X128_not_in: [BigInt!]
+ _change_block: BlockChangedFilter
+ and: [Tick_filter]
+ or: [Tick_filter]
+}
+
+enum Position_orderBy {
+ id
+ owner
+ pool
+ pool__id
+ pool__createdAtTimestamp
+ pool__createdAtBlockNumber
+ pool__feeTier
+ pool__liquidity
+ pool__sqrtPrice
+ pool__feeGrowthGlobal0X128
+ pool__feeGrowthGlobal1X128
+ pool__token0Price
+ pool__token1Price
+ pool__tick
+ pool__observationIndex
+ pool__volumeToken0
+ pool__volumeToken1
+ pool__volumeUSD
+ pool__untrackedVolumeUSD
+ pool__feesUSD
+ pool__txCount
+ pool__collectedFeesToken0
+ pool__collectedFeesToken1
+ pool__collectedFeesUSD
+ pool__totalValueLockedToken0
+ pool__totalValueLockedToken1
+ pool__totalValueLockedETH
+ pool__totalValueLockedUSD
+ pool__totalValueLockedUSDUntracked
+ pool__isProtocolFeeEnabled
+ pool__liquidityProviderCount
+ token0
+ token0__id
+ token0__symbol
+ token0__name
+ token0__decimals
+ token0__totalSupply
+ token0__volume
+ token0__volumeUSD
+ token0__untrackedVolumeUSD
+ token0__feesUSD
+ token0__txCount
+ token0__poolCount
+ token0__totalValueLocked
+ token0__totalValueLockedUSD
+ token0__totalValueLockedUSDUntracked
+ token0__derivedETH
+ token1
+ token1__id
+ token1__symbol
+ token1__name
+ token1__decimals
+ token1__totalSupply
+ token1__volume
+ token1__volumeUSD
+ token1__untrackedVolumeUSD
+ token1__feesUSD
+ token1__txCount
+ token1__poolCount
+ token1__totalValueLocked
+ token1__totalValueLockedUSD
+ token1__totalValueLockedUSDUntracked
+ token1__derivedETH
+ tickLower
+ tickLower__id
+ tickLower__poolAddress
+ tickLower__tickIdx
+ tickLower__liquidityGross
+ tickLower__liquidityNet
+ tickLower__price0
+ tickLower__price1
+ tickLower__volumeToken0
+ tickLower__volumeToken1
+ tickLower__volumeUSD
+ tickLower__untrackedVolumeUSD
+ tickLower__feesUSD
+ tickLower__collectedFeesToken0
+ tickLower__collectedFeesToken1
+ tickLower__collectedFeesUSD
+ tickLower__createdAtTimestamp
+ tickLower__createdAtBlockNumber
+ tickLower__liquidityProviderCount
+ tickLower__feeGrowthOutside0X128
+ tickLower__feeGrowthOutside1X128
+ tickUpper
+ tickUpper__id
+ tickUpper__poolAddress
+ tickUpper__tickIdx
+ tickUpper__liquidityGross
+ tickUpper__liquidityNet
+ tickUpper__price0
+ tickUpper__price1
+ tickUpper__volumeToken0
+ tickUpper__volumeToken1
+ tickUpper__volumeUSD
+ tickUpper__untrackedVolumeUSD
+ tickUpper__feesUSD
+ tickUpper__collectedFeesToken0
+ tickUpper__collectedFeesToken1
+ tickUpper__collectedFeesUSD
+ tickUpper__createdAtTimestamp
+ tickUpper__createdAtBlockNumber
+ tickUpper__liquidityProviderCount
+ tickUpper__feeGrowthOutside0X128
+ tickUpper__feeGrowthOutside1X128
+ liquidity
+ depositedToken0
+ depositedToken1
+ withdrawnToken0
+ withdrawnToken1
+ collectedToken0
+ collectedToken1
+ collectedFeesToken0
+ collectedFeesToken1
+ amountDepositedUSD
+ amountWithdrawnUSD
+ amountCollectedUSD
+ transaction
+ transaction__id
+ transaction__blockNumber
+ transaction__timestamp
+ transaction__gasUsed
+ transaction__gasPrice
+ feeGrowthInside0LastX128
+ feeGrowthInside1LastX128
+ increaseEvents
+ decreaseEvents
+}
+
+input Position_filter {
+ id: ID
+ id_not: ID
+ id_gt: ID
+ id_lt: ID
+ id_gte: ID
+ id_lte: ID
+ id_in: [ID!]
+ id_not_in: [ID!]
+ owner: Bytes
+ owner_not: Bytes
+ owner_gt: Bytes
+ owner_lt: Bytes
+ owner_gte: Bytes
+ owner_lte: Bytes
+ owner_in: [Bytes!]
+ owner_not_in: [Bytes!]
+ owner_contains: Bytes
+ owner_not_contains: Bytes
+ pool: String
+ pool_not: String
+ pool_gt: String
+ pool_lt: String
+ pool_gte: String
+ pool_lte: String
+ pool_in: [String!]
+ pool_not_in: [String!]
+ pool_starts_with: String
+ pool_starts_with_nocase: String
+ pool_not_starts_with: String
+ pool_not_starts_with_nocase: String
+ pool_ends_with: String
+ pool_ends_with_nocase: String
+ pool_not_ends_with: String
+ pool_not_ends_with_nocase: String
+ pool_contains: String
+ pool_not_contains: String
+ pool_contains_nocase: String
+ pool_not_contains_nocase: String
+ pool_: Pool_filter
+ token0: String
+ token0_not: String
+ token0_gt: String
+ token0_lt: String
+ token0_gte: String
+ token0_lte: String
+ token0_in: [String!]
+ token0_not_in: [String!]
+ token0_starts_with: String
+ token0_starts_with_nocase: String
+ token0_not_starts_with: String
+ token0_not_starts_with_nocase: String
+ token0_ends_with: String
+ token0_ends_with_nocase: String
+ token0_not_ends_with: String
+ token0_not_ends_with_nocase: String
+ token0_contains: String
+ token0_not_contains: String
+ token0_contains_nocase: String
+ token0_not_contains_nocase: String
+ token0_: Token_filter
+ token1: String
+ token1_not: String
+ token1_gt: String
+ token1_lt: String
+ token1_gte: String
+ token1_lte: String
+ token1_in: [String!]
+ token1_not_in: [String!]
+ token1_starts_with: String
+ token1_starts_with_nocase: String
+ token1_not_starts_with: String
+ token1_not_starts_with_nocase: String
+ token1_ends_with: String
+ token1_ends_with_nocase: String
+ token1_not_ends_with: String
+ token1_not_ends_with_nocase: String
+ token1_contains: String
+ token1_not_contains: String
+ token1_contains_nocase: String
+ token1_not_contains_nocase: String
+ token1_: Token_filter
+ tickLower: String
+ tickLower_not: String
+ tickLower_gt: String
+ tickLower_lt: String
+ tickLower_gte: String
+ tickLower_lte: String
+ tickLower_in: [String!]
+ tickLower_not_in: [String!]
+ tickLower_starts_with: String
+ tickLower_starts_with_nocase: String
+ tickLower_not_starts_with: String
+ tickLower_not_starts_with_nocase: String
+ tickLower_ends_with: String
+ tickLower_ends_with_nocase: String
+ tickLower_not_ends_with: String
+ tickLower_not_ends_with_nocase: String
+ tickLower_contains: String
+ tickLower_not_contains: String
+ tickLower_contains_nocase: String
+ tickLower_not_contains_nocase: String
+ tickLower_: Tick_filter
+ tickUpper: String
+ tickUpper_not: String
+ tickUpper_gt: String
+ tickUpper_lt: String
+ tickUpper_gte: String
+ tickUpper_lte: String
+ tickUpper_in: [String!]
+ tickUpper_not_in: [String!]
+ tickUpper_starts_with: String
+ tickUpper_starts_with_nocase: String
+ tickUpper_not_starts_with: String
+ tickUpper_not_starts_with_nocase: String
+ tickUpper_ends_with: String
+ tickUpper_ends_with_nocase: String
+ tickUpper_not_ends_with: String
+ tickUpper_not_ends_with_nocase: String
+ tickUpper_contains: String
+ tickUpper_not_contains: String
+ tickUpper_contains_nocase: String
+ tickUpper_not_contains_nocase: String
+ tickUpper_: Tick_filter
+ liquidity: BigInt
+ liquidity_not: BigInt
+ liquidity_gt: BigInt
+ liquidity_lt: BigInt
+ liquidity_gte: BigInt
+ liquidity_lte: BigInt
+ liquidity_in: [BigInt!]
+ liquidity_not_in: [BigInt!]
+ depositedToken0: BigDecimal
+ depositedToken0_not: BigDecimal
+ depositedToken0_gt: BigDecimal
+ depositedToken0_lt: BigDecimal
+ depositedToken0_gte: BigDecimal
+ depositedToken0_lte: BigDecimal
+ depositedToken0_in: [BigDecimal!]
+ depositedToken0_not_in: [BigDecimal!]
+ depositedToken1: BigDecimal
+ depositedToken1_not: BigDecimal
+ depositedToken1_gt: BigDecimal
+ depositedToken1_lt: BigDecimal
+ depositedToken1_gte: BigDecimal
+ depositedToken1_lte: BigDecimal
+ depositedToken1_in: [BigDecimal!]
+ depositedToken1_not_in: [BigDecimal!]
+ withdrawnToken0: BigDecimal
+ withdrawnToken0_not: BigDecimal
+ withdrawnToken0_gt: BigDecimal
+ withdrawnToken0_lt: BigDecimal
+ withdrawnToken0_gte: BigDecimal
+ withdrawnToken0_lte: BigDecimal
+ withdrawnToken0_in: [BigDecimal!]
+ withdrawnToken0_not_in: [BigDecimal!]
+ withdrawnToken1: BigDecimal
+ withdrawnToken1_not: BigDecimal
+ withdrawnToken1_gt: BigDecimal
+ withdrawnToken1_lt: BigDecimal
+ withdrawnToken1_gte: BigDecimal
+ withdrawnToken1_lte: BigDecimal
+ withdrawnToken1_in: [BigDecimal!]
+ withdrawnToken1_not_in: [BigDecimal!]
+ collectedToken0: BigDecimal
+ collectedToken0_not: BigDecimal
+ collectedToken0_gt: BigDecimal
+ collectedToken0_lt: BigDecimal
+ collectedToken0_gte: BigDecimal
+ collectedToken0_lte: BigDecimal
+ collectedToken0_in: [BigDecimal!]
+ collectedToken0_not_in: [BigDecimal!]
+ collectedToken1: BigDecimal
+ collectedToken1_not: BigDecimal
+ collectedToken1_gt: BigDecimal
+ collectedToken1_lt: BigDecimal
+ collectedToken1_gte: BigDecimal
+ collectedToken1_lte: BigDecimal
+ collectedToken1_in: [BigDecimal!]
+ collectedToken1_not_in: [BigDecimal!]
+ collectedFeesToken0: BigDecimal
+ collectedFeesToken0_not: BigDecimal
+ collectedFeesToken0_gt: BigDecimal
+ collectedFeesToken0_lt: BigDecimal
+ collectedFeesToken0_gte: BigDecimal
+ collectedFeesToken0_lte: BigDecimal
+ collectedFeesToken0_in: [BigDecimal!]
+ collectedFeesToken0_not_in: [BigDecimal!]
+ collectedFeesToken1: BigDecimal
+ collectedFeesToken1_not: BigDecimal
+ collectedFeesToken1_gt: BigDecimal
+ collectedFeesToken1_lt: BigDecimal
+ collectedFeesToken1_gte: BigDecimal
+ collectedFeesToken1_lte: BigDecimal
+ collectedFeesToken1_in: [BigDecimal!]
+ collectedFeesToken1_not_in: [BigDecimal!]
+ amountDepositedUSD: BigDecimal
+ amountDepositedUSD_not: BigDecimal
+ amountDepositedUSD_gt: BigDecimal
+ amountDepositedUSD_lt: BigDecimal
+ amountDepositedUSD_gte: BigDecimal
+ amountDepositedUSD_lte: BigDecimal
+ amountDepositedUSD_in: [BigDecimal!]
+ amountDepositedUSD_not_in: [BigDecimal!]
+ amountWithdrawnUSD: BigDecimal
+ amountWithdrawnUSD_not: BigDecimal
+ amountWithdrawnUSD_gt: BigDecimal
+ amountWithdrawnUSD_lt: BigDecimal
+ amountWithdrawnUSD_gte: BigDecimal
+ amountWithdrawnUSD_lte: BigDecimal
+ amountWithdrawnUSD_in: [BigDecimal!]
+ amountWithdrawnUSD_not_in: [BigDecimal!]
+ amountCollectedUSD: BigDecimal
+ amountCollectedUSD_not: BigDecimal
+ amountCollectedUSD_gt: BigDecimal
+ amountCollectedUSD_lt: BigDecimal
+ amountCollectedUSD_gte: BigDecimal
+ amountCollectedUSD_lte: BigDecimal
+ amountCollectedUSD_in: [BigDecimal!]
+ amountCollectedUSD_not_in: [BigDecimal!]
+ transaction: String
+ transaction_not: String
+ transaction_gt: String
+ transaction_lt: String
+ transaction_gte: String
+ transaction_lte: String
+ transaction_in: [String!]
+ transaction_not_in: [String!]
+ transaction_starts_with: String
+ transaction_starts_with_nocase: String
+ transaction_not_starts_with: String
+ transaction_not_starts_with_nocase: String
+ transaction_ends_with: String
+ transaction_ends_with_nocase: String
+ transaction_not_ends_with: String
+ transaction_not_ends_with_nocase: String
+ transaction_contains: String
+ transaction_not_contains: String
+ transaction_contains_nocase: String
+ transaction_not_contains_nocase: String
+ transaction_: Transaction_filter
+ feeGrowthInside0LastX128: BigInt
+ feeGrowthInside0LastX128_not: BigInt
+ feeGrowthInside0LastX128_gt: BigInt
+ feeGrowthInside0LastX128_lt: BigInt
+ feeGrowthInside0LastX128_gte: BigInt
+ feeGrowthInside0LastX128_lte: BigInt
+ feeGrowthInside0LastX128_in: [BigInt!]
+ feeGrowthInside0LastX128_not_in: [BigInt!]
+ feeGrowthInside1LastX128: BigInt
+ feeGrowthInside1LastX128_not: BigInt
+ feeGrowthInside1LastX128_gt: BigInt
+ feeGrowthInside1LastX128_lt: BigInt
+ feeGrowthInside1LastX128_gte: BigInt
+ feeGrowthInside1LastX128_lte: BigInt
+ feeGrowthInside1LastX128_in: [BigInt!]
+ feeGrowthInside1LastX128_not_in: [BigInt!]
+ increaseEvents_: IncreaseEvent_filter
+ decreaseEvents_: IncreaseEvent_filter
+ _change_block: BlockChangedFilter
+ and: [Position_filter]
+ or: [Position_filter]
+}
+
+enum PositionSnapshot_orderBy {
+ id
+ owner
+ pool
+ pool__id
+ pool__createdAtTimestamp
+ pool__createdAtBlockNumber
+ pool__feeTier
+ pool__liquidity
+ pool__sqrtPrice
+ pool__feeGrowthGlobal0X128
+ pool__feeGrowthGlobal1X128
+ pool__token0Price
+ pool__token1Price
+ pool__tick
+ pool__observationIndex
+ pool__volumeToken0
+ pool__volumeToken1
+ pool__volumeUSD
+ pool__untrackedVolumeUSD
+ pool__feesUSD
+ pool__txCount
+ pool__collectedFeesToken0
+ pool__collectedFeesToken1
+ pool__collectedFeesUSD
+ pool__totalValueLockedToken0
+ pool__totalValueLockedToken1
+ pool__totalValueLockedETH
+ pool__totalValueLockedUSD
+ pool__totalValueLockedUSDUntracked
+ pool__isProtocolFeeEnabled
+ pool__liquidityProviderCount
+ position
+ position__id
+ position__owner
+ position__liquidity
+ position__depositedToken0
+ position__depositedToken1
+ position__withdrawnToken0
+ position__withdrawnToken1
+ position__collectedToken0
+ position__collectedToken1
+ position__collectedFeesToken0
+ position__collectedFeesToken1
+ position__amountDepositedUSD
+ position__amountWithdrawnUSD
+ position__amountCollectedUSD
+ position__feeGrowthInside0LastX128
+ position__feeGrowthInside1LastX128
+ blockNumber
+ timestamp
+ liquidity
+ depositedToken0
+ depositedToken1
+ withdrawnToken0
+ withdrawnToken1
+ collectedFeesToken0
+ collectedFeesToken1
+ transaction
+ transaction__id
+ transaction__blockNumber
+ transaction__timestamp
+ transaction__gasUsed
+ transaction__gasPrice
+ feeGrowthInside0LastX128
+ feeGrowthInside1LastX128
+}
+
+input PositionSnapshot_filter {
+ id: ID
+ id_not: ID
+ id_gt: ID
+ id_lt: ID
+ id_gte: ID
+ id_lte: ID
+ id_in: [ID!]
+ id_not_in: [ID!]
+ owner: Bytes
+ owner_not: Bytes
+ owner_gt: Bytes
+ owner_lt: Bytes
+ owner_gte: Bytes
+ owner_lte: Bytes
+ owner_in: [Bytes!]
+ owner_not_in: [Bytes!]
+ owner_contains: Bytes
+ owner_not_contains: Bytes
+ pool: String
+ pool_not: String
+ pool_gt: String
+ pool_lt: String
+ pool_gte: String
+ pool_lte: String
+ pool_in: [String!]
+ pool_not_in: [String!]
+ pool_starts_with: String
+ pool_starts_with_nocase: String
+ pool_not_starts_with: String
+ pool_not_starts_with_nocase: String
+ pool_ends_with: String
+ pool_ends_with_nocase: String
+ pool_not_ends_with: String
+ pool_not_ends_with_nocase: String
+ pool_contains: String
+ pool_not_contains: String
+ pool_contains_nocase: String
+ pool_not_contains_nocase: String
+ pool_: Pool_filter
+ position: String
+ position_not: String
+ position_gt: String
+ position_lt: String
+ position_gte: String
+ position_lte: String
+ position_in: [String!]
+ position_not_in: [String!]
+ position_starts_with: String
+ position_starts_with_nocase: String
+ position_not_starts_with: String
+ position_not_starts_with_nocase: String
+ position_ends_with: String
+ position_ends_with_nocase: String
+ position_not_ends_with: String
+ position_not_ends_with_nocase: String
+ position_contains: String
+ position_not_contains: String
+ position_contains_nocase: String
+ position_not_contains_nocase: String
+ position_: Position_filter
+ blockNumber: BigInt
+ blockNumber_not: BigInt
+ blockNumber_gt: BigInt
+ blockNumber_lt: BigInt
+ blockNumber_gte: BigInt
+ blockNumber_lte: BigInt
+ blockNumber_in: [BigInt!]
+ blockNumber_not_in: [BigInt!]
+ timestamp: BigInt
+ timestamp_not: BigInt
+ timestamp_gt: BigInt
+ timestamp_lt: BigInt
+ timestamp_gte: BigInt
+ timestamp_lte: BigInt
+ timestamp_in: [BigInt!]
+ timestamp_not_in: [BigInt!]
+ liquidity: BigInt
+ liquidity_not: BigInt
+ liquidity_gt: BigInt
+ liquidity_lt: BigInt
+ liquidity_gte: BigInt
+ liquidity_lte: BigInt
+ liquidity_in: [BigInt!]
+ liquidity_not_in: [BigInt!]
+ depositedToken0: BigDecimal
+ depositedToken0_not: BigDecimal
+ depositedToken0_gt: BigDecimal
+ depositedToken0_lt: BigDecimal
+ depositedToken0_gte: BigDecimal
+ depositedToken0_lte: BigDecimal
+ depositedToken0_in: [BigDecimal!]
+ depositedToken0_not_in: [BigDecimal!]
+ depositedToken1: BigDecimal
+ depositedToken1_not: BigDecimal
+ depositedToken1_gt: BigDecimal
+ depositedToken1_lt: BigDecimal
+ depositedToken1_gte: BigDecimal
+ depositedToken1_lte: BigDecimal
+ depositedToken1_in: [BigDecimal!]
+ depositedToken1_not_in: [BigDecimal!]
+ withdrawnToken0: BigDecimal
+ withdrawnToken0_not: BigDecimal
+ withdrawnToken0_gt: BigDecimal
+ withdrawnToken0_lt: BigDecimal
+ withdrawnToken0_gte: BigDecimal
+ withdrawnToken0_lte: BigDecimal
+ withdrawnToken0_in: [BigDecimal!]
+ withdrawnToken0_not_in: [BigDecimal!]
+ withdrawnToken1: BigDecimal
+ withdrawnToken1_not: BigDecimal
+ withdrawnToken1_gt: BigDecimal
+ withdrawnToken1_lt: BigDecimal
+ withdrawnToken1_gte: BigDecimal
+ withdrawnToken1_lte: BigDecimal
+ withdrawnToken1_in: [BigDecimal!]
+ withdrawnToken1_not_in: [BigDecimal!]
+ collectedFeesToken0: BigDecimal
+ collectedFeesToken0_not: BigDecimal
+ collectedFeesToken0_gt: BigDecimal
+ collectedFeesToken0_lt: BigDecimal
+ collectedFeesToken0_gte: BigDecimal
+ collectedFeesToken0_lte: BigDecimal
+ collectedFeesToken0_in: [BigDecimal!]
+ collectedFeesToken0_not_in: [BigDecimal!]
+ collectedFeesToken1: BigDecimal
+ collectedFeesToken1_not: BigDecimal
+ collectedFeesToken1_gt: BigDecimal
+ collectedFeesToken1_lt: BigDecimal
+ collectedFeesToken1_gte: BigDecimal
+ collectedFeesToken1_lte: BigDecimal
+ collectedFeesToken1_in: [BigDecimal!]
+ collectedFeesToken1_not_in: [BigDecimal!]
+ transaction: String
+ transaction_not: String
+ transaction_gt: String
+ transaction_lt: String
+ transaction_gte: String
+ transaction_lte: String
+ transaction_in: [String!]
+ transaction_not_in: [String!]
+ transaction_starts_with: String
+ transaction_starts_with_nocase: String
+ transaction_not_starts_with: String
+ transaction_not_starts_with_nocase: String
+ transaction_ends_with: String
+ transaction_ends_with_nocase: String
+ transaction_not_ends_with: String
+ transaction_not_ends_with_nocase: String
+ transaction_contains: String
+ transaction_not_contains: String
+ transaction_contains_nocase: String
+ transaction_not_contains_nocase: String
+ transaction_: Transaction_filter
+ feeGrowthInside0LastX128: BigInt
+ feeGrowthInside0LastX128_not: BigInt
+ feeGrowthInside0LastX128_gt: BigInt
+ feeGrowthInside0LastX128_lt: BigInt
+ feeGrowthInside0LastX128_gte: BigInt
+ feeGrowthInside0LastX128_lte: BigInt
+ feeGrowthInside0LastX128_in: [BigInt!]
+ feeGrowthInside0LastX128_not_in: [BigInt!]
+ feeGrowthInside1LastX128: BigInt
+ feeGrowthInside1LastX128_not: BigInt
+ feeGrowthInside1LastX128_gt: BigInt
+ feeGrowthInside1LastX128_lt: BigInt
+ feeGrowthInside1LastX128_gte: BigInt
+ feeGrowthInside1LastX128_lte: BigInt
+ feeGrowthInside1LastX128_in: [BigInt!]
+ feeGrowthInside1LastX128_not_in: [BigInt!]
+ _change_block: BlockChangedFilter
+ and: [PositionSnapshot_filter]
+ or: [PositionSnapshot_filter]
+}
+
+enum Transaction_orderBy {
+ id
+ blockNumber
+ timestamp
+ gasUsed
+ gasPrice
+ mints
+ burns
+ swaps
+ flashed
+ collects
+}
+
+input Transaction_filter {
+ id: ID
+ id_not: ID
+ id_gt: ID
+ id_lt: ID
+ id_gte: ID
+ id_lte: ID
+ id_in: [ID!]
+ id_not_in: [ID!]
+ blockNumber: BigInt
+ blockNumber_not: BigInt
+ blockNumber_gt: BigInt
+ blockNumber_lt: BigInt
+ blockNumber_gte: BigInt
+ blockNumber_lte: BigInt
+ blockNumber_in: [BigInt!]
+ blockNumber_not_in: [BigInt!]
+ timestamp: BigInt
+ timestamp_not: BigInt
+ timestamp_gt: BigInt
+ timestamp_lt: BigInt
+ timestamp_gte: BigInt
+ timestamp_lte: BigInt
+ timestamp_in: [BigInt!]
+ timestamp_not_in: [BigInt!]
+ gasUsed: BigInt
+ gasUsed_not: BigInt
+ gasUsed_gt: BigInt
+ gasUsed_lt: BigInt
+ gasUsed_gte: BigInt
+ gasUsed_lte: BigInt
+ gasUsed_in: [BigInt!]
+ gasUsed_not_in: [BigInt!]
+ gasPrice: BigInt
+ gasPrice_not: BigInt
+ gasPrice_gt: BigInt
+ gasPrice_lt: BigInt
+ gasPrice_gte: BigInt
+ gasPrice_lte: BigInt
+ gasPrice_in: [BigInt!]
+ gasPrice_not_in: [BigInt!]
+ mints_: Mint_filter
+ burns_: Burn_filter
+ swaps_: Swap_filter
+ flashed_: Flash_filter
+ collects_: Collect_filter
+ _change_block: BlockChangedFilter
+ and: [Transaction_filter]
+ or: [Transaction_filter]
+}
+
+enum Mint_orderBy {
+ id
+ transaction
+ transaction__id
+ transaction__blockNumber
+ transaction__timestamp
+ transaction__gasUsed
+ transaction__gasPrice
+ timestamp
+ pool
+ pool__id
+ pool__createdAtTimestamp
+ pool__createdAtBlockNumber
+ pool__feeTier
+ pool__liquidity
+ pool__sqrtPrice
+ pool__feeGrowthGlobal0X128
+ pool__feeGrowthGlobal1X128
+ pool__token0Price
+ pool__token1Price
+ pool__tick
+ pool__observationIndex
+ pool__volumeToken0
+ pool__volumeToken1
+ pool__volumeUSD
+ pool__untrackedVolumeUSD
+ pool__feesUSD
+ pool__txCount
+ pool__collectedFeesToken0
+ pool__collectedFeesToken1
+ pool__collectedFeesUSD
+ pool__totalValueLockedToken0
+ pool__totalValueLockedToken1
+ pool__totalValueLockedETH
+ pool__totalValueLockedUSD
+ pool__totalValueLockedUSDUntracked
+ pool__isProtocolFeeEnabled
+ pool__liquidityProviderCount
+ token0
+ token0__id
+ token0__symbol
+ token0__name
+ token0__decimals
+ token0__totalSupply
+ token0__volume
+ token0__volumeUSD
+ token0__untrackedVolumeUSD
+ token0__feesUSD
+ token0__txCount
+ token0__poolCount
+ token0__totalValueLocked
+ token0__totalValueLockedUSD
+ token0__totalValueLockedUSDUntracked
+ token0__derivedETH
+ token1
+ token1__id
+ token1__symbol
+ token1__name
+ token1__decimals
+ token1__totalSupply
+ token1__volume
+ token1__volumeUSD
+ token1__untrackedVolumeUSD
+ token1__feesUSD
+ token1__txCount
+ token1__poolCount
+ token1__totalValueLocked
+ token1__totalValueLockedUSD
+ token1__totalValueLockedUSDUntracked
+ token1__derivedETH
+ owner
+ sender
+ origin
+ amount
+ amount0
+ amount1
+ amountUSD
+ tickLower
+ tickUpper
+ logIndex
+}
+
+input Mint_filter {
+ id: ID
+ id_not: ID
+ id_gt: ID
+ id_lt: ID
+ id_gte: ID
+ id_lte: ID
+ id_in: [ID!]
+ id_not_in: [ID!]
+ transaction: String
+ transaction_not: String
+ transaction_gt: String
+ transaction_lt: String
+ transaction_gte: String
+ transaction_lte: String
+ transaction_in: [String!]
+ transaction_not_in: [String!]
+ transaction_starts_with: String
+ transaction_starts_with_nocase: String
+ transaction_not_starts_with: String
+ transaction_not_starts_with_nocase: String
+ transaction_ends_with: String
+ transaction_ends_with_nocase: String
+ transaction_not_ends_with: String
+ transaction_not_ends_with_nocase: String
+ transaction_contains: String
+ transaction_not_contains: String
+ transaction_contains_nocase: String
+ transaction_not_contains_nocase: String
+ transaction_: Transaction_filter
+ timestamp: BigInt
+ timestamp_not: BigInt
+ timestamp_gt: BigInt
+ timestamp_lt: BigInt
+ timestamp_gte: BigInt
+ timestamp_lte: BigInt
+ timestamp_in: [BigInt!]
+ timestamp_not_in: [BigInt!]
+ pool: String
+ pool_not: String
+ pool_gt: String
+ pool_lt: String
+ pool_gte: String
+ pool_lte: String
+ pool_in: [String!]
+ pool_not_in: [String!]
+ pool_starts_with: String
+ pool_starts_with_nocase: String
+ pool_not_starts_with: String
+ pool_not_starts_with_nocase: String
+ pool_ends_with: String
+ pool_ends_with_nocase: String
+ pool_not_ends_with: String
+ pool_not_ends_with_nocase: String
+ pool_contains: String
+ pool_not_contains: String
+ pool_contains_nocase: String
+ pool_not_contains_nocase: String
+ pool_: Pool_filter
+ token0: String
+ token0_not: String
+ token0_gt: String
+ token0_lt: String
+ token0_gte: String
+ token0_lte: String
+ token0_in: [String!]
+ token0_not_in: [String!]
+ token0_starts_with: String
+ token0_starts_with_nocase: String
+ token0_not_starts_with: String
+ token0_not_starts_with_nocase: String
+ token0_ends_with: String
+ token0_ends_with_nocase: String
+ token0_not_ends_with: String
+ token0_not_ends_with_nocase: String
+ token0_contains: String
+ token0_not_contains: String
+ token0_contains_nocase: String
+ token0_not_contains_nocase: String
+ token0_: Token_filter
+ token1: String
+ token1_not: String
+ token1_gt: String
+ token1_lt: String
+ token1_gte: String
+ token1_lte: String
+ token1_in: [String!]
+ token1_not_in: [String!]
+ token1_starts_with: String
+ token1_starts_with_nocase: String
+ token1_not_starts_with: String
+ token1_not_starts_with_nocase: String
+ token1_ends_with: String
+ token1_ends_with_nocase: String
+ token1_not_ends_with: String
+ token1_not_ends_with_nocase: String
+ token1_contains: String
+ token1_not_contains: String
+ token1_contains_nocase: String
+ token1_not_contains_nocase: String
+ token1_: Token_filter
+ owner: Bytes
+ owner_not: Bytes
+ owner_gt: Bytes
+ owner_lt: Bytes
+ owner_gte: Bytes
+ owner_lte: Bytes
+ owner_in: [Bytes!]
+ owner_not_in: [Bytes!]
+ owner_contains: Bytes
+ owner_not_contains: Bytes
+ sender: Bytes
+ sender_not: Bytes
+ sender_gt: Bytes
+ sender_lt: Bytes
+ sender_gte: Bytes
+ sender_lte: Bytes
+ sender_in: [Bytes!]
+ sender_not_in: [Bytes!]
+ sender_contains: Bytes
+ sender_not_contains: Bytes
+ origin: Bytes
+ origin_not: Bytes
+ origin_gt: Bytes
+ origin_lt: Bytes
+ origin_gte: Bytes
+ origin_lte: Bytes
+ origin_in: [Bytes!]
+ origin_not_in: [Bytes!]
+ origin_contains: Bytes
+ origin_not_contains: Bytes
+ amount: BigInt
+ amount_not: BigInt
+ amount_gt: BigInt
+ amount_lt: BigInt
+ amount_gte: BigInt
+ amount_lte: BigInt
+ amount_in: [BigInt!]
+ amount_not_in: [BigInt!]
+ amount0: BigDecimal
+ amount0_not: BigDecimal
+ amount0_gt: BigDecimal
+ amount0_lt: BigDecimal
+ amount0_gte: BigDecimal
+ amount0_lte: BigDecimal
+ amount0_in: [BigDecimal!]
+ amount0_not_in: [BigDecimal!]
+ amount1: BigDecimal
+ amount1_not: BigDecimal
+ amount1_gt: BigDecimal
+ amount1_lt: BigDecimal
+ amount1_gte: BigDecimal
+ amount1_lte: BigDecimal
+ amount1_in: [BigDecimal!]
+ amount1_not_in: [BigDecimal!]
+ amountUSD: BigDecimal
+ amountUSD_not: BigDecimal
+ amountUSD_gt: BigDecimal
+ amountUSD_lt: BigDecimal
+ amountUSD_gte: BigDecimal
+ amountUSD_lte: BigDecimal
+ amountUSD_in: [BigDecimal!]
+ amountUSD_not_in: [BigDecimal!]
+ tickLower: BigInt
+ tickLower_not: BigInt
+ tickLower_gt: BigInt
+ tickLower_lt: BigInt
+ tickLower_gte: BigInt
+ tickLower_lte: BigInt
+ tickLower_in: [BigInt!]
+ tickLower_not_in: [BigInt!]
+ tickUpper: BigInt
+ tickUpper_not: BigInt
+ tickUpper_gt: BigInt
+ tickUpper_lt: BigInt
+ tickUpper_gte: BigInt
+ tickUpper_lte: BigInt
+ tickUpper_in: [BigInt!]
+ tickUpper_not_in: [BigInt!]
+ logIndex: BigInt
+ logIndex_not: BigInt
+ logIndex_gt: BigInt
+ logIndex_lt: BigInt
+ logIndex_gte: BigInt
+ logIndex_lte: BigInt
+ logIndex_in: [BigInt!]
+ logIndex_not_in: [BigInt!]
+ _change_block: BlockChangedFilter
+ and: [Mint_filter]
+ or: [Mint_filter]
+}
+
+enum Burn_orderBy {
+ id
+ transaction
+ transaction__id
+ transaction__blockNumber
+ transaction__timestamp
+ transaction__gasUsed
+ transaction__gasPrice
+ pool
+ pool__id
+ pool__createdAtTimestamp
+ pool__createdAtBlockNumber
+ pool__feeTier
+ pool__liquidity
+ pool__sqrtPrice
+ pool__feeGrowthGlobal0X128
+ pool__feeGrowthGlobal1X128
+ pool__token0Price
+ pool__token1Price
+ pool__tick
+ pool__observationIndex
+ pool__volumeToken0
+ pool__volumeToken1
+ pool__volumeUSD
+ pool__untrackedVolumeUSD
+ pool__feesUSD
+ pool__txCount
+ pool__collectedFeesToken0
+ pool__collectedFeesToken1
+ pool__collectedFeesUSD
+ pool__totalValueLockedToken0
+ pool__totalValueLockedToken1
+ pool__totalValueLockedETH
+ pool__totalValueLockedUSD
+ pool__totalValueLockedUSDUntracked
+ pool__isProtocolFeeEnabled
+ pool__liquidityProviderCount
+ token0
+ token0__id
+ token0__symbol
+ token0__name
+ token0__decimals
+ token0__totalSupply
+ token0__volume
+ token0__volumeUSD
+ token0__untrackedVolumeUSD
+ token0__feesUSD
+ token0__txCount
+ token0__poolCount
+ token0__totalValueLocked
+ token0__totalValueLockedUSD
+ token0__totalValueLockedUSDUntracked
+ token0__derivedETH
+ token1
+ token1__id
+ token1__symbol
+ token1__name
+ token1__decimals
+ token1__totalSupply
+ token1__volume
+ token1__volumeUSD
+ token1__untrackedVolumeUSD
+ token1__feesUSD
+ token1__txCount
+ token1__poolCount
+ token1__totalValueLocked
+ token1__totalValueLockedUSD
+ token1__totalValueLockedUSDUntracked
+ token1__derivedETH
+ timestamp
+ owner
+ origin
+ amount
+ amount0
+ amount1
+ amountUSD
+ tickLower
+ tickUpper
+ logIndex
+}
+
+input Burn_filter {
+ id: ID
+ id_not: ID
+ id_gt: ID
+ id_lt: ID
+ id_gte: ID
+ id_lte: ID
+ id_in: [ID!]
+ id_not_in: [ID!]
+ transaction: String
+ transaction_not: String
+ transaction_gt: String
+ transaction_lt: String
+ transaction_gte: String
+ transaction_lte: String
+ transaction_in: [String!]
+ transaction_not_in: [String!]
+ transaction_starts_with: String
+ transaction_starts_with_nocase: String
+ transaction_not_starts_with: String
+ transaction_not_starts_with_nocase: String
+ transaction_ends_with: String
+ transaction_ends_with_nocase: String
+ transaction_not_ends_with: String
+ transaction_not_ends_with_nocase: String
+ transaction_contains: String
+ transaction_not_contains: String
+ transaction_contains_nocase: String
+ transaction_not_contains_nocase: String
+ transaction_: Transaction_filter
+ pool: String
+ pool_not: String
+ pool_gt: String
+ pool_lt: String
+ pool_gte: String
+ pool_lte: String
+ pool_in: [String!]
+ pool_not_in: [String!]
+ pool_starts_with: String
+ pool_starts_with_nocase: String
+ pool_not_starts_with: String
+ pool_not_starts_with_nocase: String
+ pool_ends_with: String
+ pool_ends_with_nocase: String
+ pool_not_ends_with: String
+ pool_not_ends_with_nocase: String
+ pool_contains: String
+ pool_not_contains: String
+ pool_contains_nocase: String
+ pool_not_contains_nocase: String
+ pool_: Pool_filter
+ token0: String
+ token0_not: String
+ token0_gt: String
+ token0_lt: String
+ token0_gte: String
+ token0_lte: String
+ token0_in: [String!]
+ token0_not_in: [String!]
+ token0_starts_with: String
+ token0_starts_with_nocase: String
+ token0_not_starts_with: String
+ token0_not_starts_with_nocase: String
+ token0_ends_with: String
+ token0_ends_with_nocase: String
+ token0_not_ends_with: String
+ token0_not_ends_with_nocase: String
+ token0_contains: String
+ token0_not_contains: String
+ token0_contains_nocase: String
+ token0_not_contains_nocase: String
+ token0_: Token_filter
+ token1: String
+ token1_not: String
+ token1_gt: String
+ token1_lt: String
+ token1_gte: String
+ token1_lte: String
+ token1_in: [String!]
+ token1_not_in: [String!]
+ token1_starts_with: String
+ token1_starts_with_nocase: String
+ token1_not_starts_with: String
+ token1_not_starts_with_nocase: String
+ token1_ends_with: String
+ token1_ends_with_nocase: String
+ token1_not_ends_with: String
+ token1_not_ends_with_nocase: String
+ token1_contains: String
+ token1_not_contains: String
+ token1_contains_nocase: String
+ token1_not_contains_nocase: String
+ token1_: Token_filter
+ timestamp: BigInt
+ timestamp_not: BigInt
+ timestamp_gt: BigInt
+ timestamp_lt: BigInt
+ timestamp_gte: BigInt
+ timestamp_lte: BigInt
+ timestamp_in: [BigInt!]
+ timestamp_not_in: [BigInt!]
+ owner: Bytes
+ owner_not: Bytes
+ owner_gt: Bytes
+ owner_lt: Bytes
+ owner_gte: Bytes
+ owner_lte: Bytes
+ owner_in: [Bytes!]
+ owner_not_in: [Bytes!]
+ owner_contains: Bytes
+ owner_not_contains: Bytes
+ origin: Bytes
+ origin_not: Bytes
+ origin_gt: Bytes
+ origin_lt: Bytes
+ origin_gte: Bytes
+ origin_lte: Bytes
+ origin_in: [Bytes!]
+ origin_not_in: [Bytes!]
+ origin_contains: Bytes
+ origin_not_contains: Bytes
+ amount: BigInt
+ amount_not: BigInt
+ amount_gt: BigInt
+ amount_lt: BigInt
+ amount_gte: BigInt
+ amount_lte: BigInt
+ amount_in: [BigInt!]
+ amount_not_in: [BigInt!]
+ amount0: BigDecimal
+ amount0_not: BigDecimal
+ amount0_gt: BigDecimal
+ amount0_lt: BigDecimal
+ amount0_gte: BigDecimal
+ amount0_lte: BigDecimal
+ amount0_in: [BigDecimal!]
+ amount0_not_in: [BigDecimal!]
+ amount1: BigDecimal
+ amount1_not: BigDecimal
+ amount1_gt: BigDecimal
+ amount1_lt: BigDecimal
+ amount1_gte: BigDecimal
+ amount1_lte: BigDecimal
+ amount1_in: [BigDecimal!]
+ amount1_not_in: [BigDecimal!]
+ amountUSD: BigDecimal
+ amountUSD_not: BigDecimal
+ amountUSD_gt: BigDecimal
+ amountUSD_lt: BigDecimal
+ amountUSD_gte: BigDecimal
+ amountUSD_lte: BigDecimal
+ amountUSD_in: [BigDecimal!]
+ amountUSD_not_in: [BigDecimal!]
+ tickLower: BigInt
+ tickLower_not: BigInt
+ tickLower_gt: BigInt
+ tickLower_lt: BigInt
+ tickLower_gte: BigInt
+ tickLower_lte: BigInt
+ tickLower_in: [BigInt!]
+ tickLower_not_in: [BigInt!]
+ tickUpper: BigInt
+ tickUpper_not: BigInt
+ tickUpper_gt: BigInt
+ tickUpper_lt: BigInt
+ tickUpper_gte: BigInt
+ tickUpper_lte: BigInt
+ tickUpper_in: [BigInt!]
+ tickUpper_not_in: [BigInt!]
+ logIndex: BigInt
+ logIndex_not: BigInt
+ logIndex_gt: BigInt
+ logIndex_lt: BigInt
+ logIndex_gte: BigInt
+ logIndex_lte: BigInt
+ logIndex_in: [BigInt!]
+ logIndex_not_in: [BigInt!]
+ _change_block: BlockChangedFilter
+ and: [Burn_filter]
+ or: [Burn_filter]
+}
+
+enum Swap_orderBy {
+ id
+ transaction
+ transaction__id
+ transaction__blockNumber
+ transaction__timestamp
+ transaction__gasUsed
+ transaction__gasPrice
+ timestamp
+ pool
+ pool__id
+ pool__createdAtTimestamp
+ pool__createdAtBlockNumber
+ pool__feeTier
+ pool__liquidity
+ pool__sqrtPrice
+ pool__feeGrowthGlobal0X128
+ pool__feeGrowthGlobal1X128
+ pool__token0Price
+ pool__token1Price
+ pool__tick
+ pool__observationIndex
+ pool__volumeToken0
+ pool__volumeToken1
+ pool__volumeUSD
+ pool__untrackedVolumeUSD
+ pool__feesUSD
+ pool__txCount
+ pool__collectedFeesToken0
+ pool__collectedFeesToken1
+ pool__collectedFeesUSD
+ pool__totalValueLockedToken0
+ pool__totalValueLockedToken1
+ pool__totalValueLockedETH
+ pool__totalValueLockedUSD
+ pool__totalValueLockedUSDUntracked
+ pool__isProtocolFeeEnabled
+ pool__liquidityProviderCount
+ token0
+ token0__id
+ token0__symbol
+ token0__name
+ token0__decimals
+ token0__totalSupply
+ token0__volume
+ token0__volumeUSD
+ token0__untrackedVolumeUSD
+ token0__feesUSD
+ token0__txCount
+ token0__poolCount
+ token0__totalValueLocked
+ token0__totalValueLockedUSD
+ token0__totalValueLockedUSDUntracked
+ token0__derivedETH
+ token1
+ token1__id
+ token1__symbol
+ token1__name
+ token1__decimals
+ token1__totalSupply
+ token1__volume
+ token1__volumeUSD
+ token1__untrackedVolumeUSD
+ token1__feesUSD
+ token1__txCount
+ token1__poolCount
+ token1__totalValueLocked
+ token1__totalValueLockedUSD
+ token1__totalValueLockedUSDUntracked
+ token1__derivedETH
+ sender
+ recipient
+ origin
+ amount0
+ amount1
+ amountUSD
+ sqrtPriceX96
+ tick
+ logIndex
+}
+
+input Swap_filter {
+ id: ID
+ id_not: ID
+ id_gt: ID
+ id_lt: ID
+ id_gte: ID
+ id_lte: ID
+ id_in: [ID!]
+ id_not_in: [ID!]
+ transaction: String
+ transaction_not: String
+ transaction_gt: String
+ transaction_lt: String
+ transaction_gte: String
+ transaction_lte: String
+ transaction_in: [String!]
+ transaction_not_in: [String!]
+ transaction_starts_with: String
+ transaction_starts_with_nocase: String
+ transaction_not_starts_with: String
+ transaction_not_starts_with_nocase: String
+ transaction_ends_with: String
+ transaction_ends_with_nocase: String
+ transaction_not_ends_with: String
+ transaction_not_ends_with_nocase: String
+ transaction_contains: String
+ transaction_not_contains: String
+ transaction_contains_nocase: String
+ transaction_not_contains_nocase: String
+ transaction_: Transaction_filter
+ timestamp: BigInt
+ timestamp_not: BigInt
+ timestamp_gt: BigInt
+ timestamp_lt: BigInt
+ timestamp_gte: BigInt
+ timestamp_lte: BigInt
+ timestamp_in: [BigInt!]
+ timestamp_not_in: [BigInt!]
+ pool: String
+ pool_not: String
+ pool_gt: String
+ pool_lt: String
+ pool_gte: String
+ pool_lte: String
+ pool_in: [String!]
+ pool_not_in: [String!]
+ pool_starts_with: String
+ pool_starts_with_nocase: String
+ pool_not_starts_with: String
+ pool_not_starts_with_nocase: String
+ pool_ends_with: String
+ pool_ends_with_nocase: String
+ pool_not_ends_with: String
+ pool_not_ends_with_nocase: String
+ pool_contains: String
+ pool_not_contains: String
+ pool_contains_nocase: String
+ pool_not_contains_nocase: String
+ pool_: Pool_filter
+ token0: String
+ token0_not: String
+ token0_gt: String
+ token0_lt: String
+ token0_gte: String
+ token0_lte: String
+ token0_in: [String!]
+ token0_not_in: [String!]
+ token0_starts_with: String
+ token0_starts_with_nocase: String
+ token0_not_starts_with: String
+ token0_not_starts_with_nocase: String
+ token0_ends_with: String
+ token0_ends_with_nocase: String
+ token0_not_ends_with: String
+ token0_not_ends_with_nocase: String
+ token0_contains: String
+ token0_not_contains: String
+ token0_contains_nocase: String
+ token0_not_contains_nocase: String
+ token0_: Token_filter
+ token1: String
+ token1_not: String
+ token1_gt: String
+ token1_lt: String
+ token1_gte: String
+ token1_lte: String
+ token1_in: [String!]
+ token1_not_in: [String!]
+ token1_starts_with: String
+ token1_starts_with_nocase: String
+ token1_not_starts_with: String
+ token1_not_starts_with_nocase: String
+ token1_ends_with: String
+ token1_ends_with_nocase: String
+ token1_not_ends_with: String
+ token1_not_ends_with_nocase: String
+ token1_contains: String
+ token1_not_contains: String
+ token1_contains_nocase: String
+ token1_not_contains_nocase: String
+ token1_: Token_filter
+ sender: Bytes
+ sender_not: Bytes
+ sender_gt: Bytes
+ sender_lt: Bytes
+ sender_gte: Bytes
+ sender_lte: Bytes
+ sender_in: [Bytes!]
+ sender_not_in: [Bytes!]
+ sender_contains: Bytes
+ sender_not_contains: Bytes
+ recipient: Bytes
+ recipient_not: Bytes
+ recipient_gt: Bytes
+ recipient_lt: Bytes
+ recipient_gte: Bytes
+ recipient_lte: Bytes
+ recipient_in: [Bytes!]
+ recipient_not_in: [Bytes!]
+ recipient_contains: Bytes
+ recipient_not_contains: Bytes
+ origin: Bytes
+ origin_not: Bytes
+ origin_gt: Bytes
+ origin_lt: Bytes
+ origin_gte: Bytes
+ origin_lte: Bytes
+ origin_in: [Bytes!]
+ origin_not_in: [Bytes!]
+ origin_contains: Bytes
+ origin_not_contains: Bytes
+ amount0: BigDecimal
+ amount0_not: BigDecimal
+ amount0_gt: BigDecimal
+ amount0_lt: BigDecimal
+ amount0_gte: BigDecimal
+ amount0_lte: BigDecimal
+ amount0_in: [BigDecimal!]
+ amount0_not_in: [BigDecimal!]
+ amount1: BigDecimal
+ amount1_not: BigDecimal
+ amount1_gt: BigDecimal
+ amount1_lt: BigDecimal
+ amount1_gte: BigDecimal
+ amount1_lte: BigDecimal
+ amount1_in: [BigDecimal!]
+ amount1_not_in: [BigDecimal!]
+ amountUSD: BigDecimal
+ amountUSD_not: BigDecimal
+ amountUSD_gt: BigDecimal
+ amountUSD_lt: BigDecimal
+ amountUSD_gte: BigDecimal
+ amountUSD_lte: BigDecimal
+ amountUSD_in: [BigDecimal!]
+ amountUSD_not_in: [BigDecimal!]
+ sqrtPriceX96: BigInt
+ sqrtPriceX96_not: BigInt
+ sqrtPriceX96_gt: BigInt
+ sqrtPriceX96_lt: BigInt
+ sqrtPriceX96_gte: BigInt
+ sqrtPriceX96_lte: BigInt
+ sqrtPriceX96_in: [BigInt!]
+ sqrtPriceX96_not_in: [BigInt!]
+ tick: BigInt
+ tick_not: BigInt
+ tick_gt: BigInt
+ tick_lt: BigInt
+ tick_gte: BigInt
+ tick_lte: BigInt
+ tick_in: [BigInt!]
+ tick_not_in: [BigInt!]
+ logIndex: BigInt
+ logIndex_not: BigInt
+ logIndex_gt: BigInt
+ logIndex_lt: BigInt
+ logIndex_gte: BigInt
+ logIndex_lte: BigInt
+ logIndex_in: [BigInt!]
+ logIndex_not_in: [BigInt!]
+ _change_block: BlockChangedFilter
+ and: [Swap_filter]
+ or: [Swap_filter]
+}
+
+enum Collect_orderBy {
+ id
+ transaction
+ transaction__id
+ transaction__blockNumber
+ transaction__timestamp
+ transaction__gasUsed
+ transaction__gasPrice
+ timestamp
+ pool
+ pool__id
+ pool__createdAtTimestamp
+ pool__createdAtBlockNumber
+ pool__feeTier
+ pool__liquidity
+ pool__sqrtPrice
+ pool__feeGrowthGlobal0X128
+ pool__feeGrowthGlobal1X128
+ pool__token0Price
+ pool__token1Price
+ pool__tick
+ pool__observationIndex
+ pool__volumeToken0
+ pool__volumeToken1
+ pool__volumeUSD
+ pool__untrackedVolumeUSD
+ pool__feesUSD
+ pool__txCount
+ pool__collectedFeesToken0
+ pool__collectedFeesToken1
+ pool__collectedFeesUSD
+ pool__totalValueLockedToken0
+ pool__totalValueLockedToken1
+ pool__totalValueLockedETH
+ pool__totalValueLockedUSD
+ pool__totalValueLockedUSDUntracked
+ pool__isProtocolFeeEnabled
+ pool__liquidityProviderCount
+ owner
+ amount0
+ amount1
+ amountUSD
+ tickLower
+ tickUpper
+ logIndex
+}
+
+input Collect_filter {
+ id: ID
+ id_not: ID
+ id_gt: ID
+ id_lt: ID
+ id_gte: ID
+ id_lte: ID
+ id_in: [ID!]
+ id_not_in: [ID!]
+ transaction: String
+ transaction_not: String
+ transaction_gt: String
+ transaction_lt: String
+ transaction_gte: String
+ transaction_lte: String
+ transaction_in: [String!]
+ transaction_not_in: [String!]
+ transaction_starts_with: String
+ transaction_starts_with_nocase: String
+ transaction_not_starts_with: String
+ transaction_not_starts_with_nocase: String
+ transaction_ends_with: String
+ transaction_ends_with_nocase: String
+ transaction_not_ends_with: String
+ transaction_not_ends_with_nocase: String
+ transaction_contains: String
+ transaction_not_contains: String
+ transaction_contains_nocase: String
+ transaction_not_contains_nocase: String
+ transaction_: Transaction_filter
+ timestamp: BigInt
+ timestamp_not: BigInt
+ timestamp_gt: BigInt
+ timestamp_lt: BigInt
+ timestamp_gte: BigInt
+ timestamp_lte: BigInt
+ timestamp_in: [BigInt!]
+ timestamp_not_in: [BigInt!]
+ pool: String
+ pool_not: String
+ pool_gt: String
+ pool_lt: String
+ pool_gte: String
+ pool_lte: String
+ pool_in: [String!]
+ pool_not_in: [String!]
+ pool_starts_with: String
+ pool_starts_with_nocase: String
+ pool_not_starts_with: String
+ pool_not_starts_with_nocase: String
+ pool_ends_with: String
+ pool_ends_with_nocase: String
+ pool_not_ends_with: String
+ pool_not_ends_with_nocase: String
+ pool_contains: String
+ pool_not_contains: String
+ pool_contains_nocase: String
+ pool_not_contains_nocase: String
+ pool_: Pool_filter
+ owner: Bytes
+ owner_not: Bytes
+ owner_gt: Bytes
+ owner_lt: Bytes
+ owner_gte: Bytes
+ owner_lte: Bytes
+ owner_in: [Bytes!]
+ owner_not_in: [Bytes!]
+ owner_contains: Bytes
+ owner_not_contains: Bytes
+ amount0: BigDecimal
+ amount0_not: BigDecimal
+ amount0_gt: BigDecimal
+ amount0_lt: BigDecimal
+ amount0_gte: BigDecimal
+ amount0_lte: BigDecimal
+ amount0_in: [BigDecimal!]
+ amount0_not_in: [BigDecimal!]
+ amount1: BigDecimal
+ amount1_not: BigDecimal
+ amount1_gt: BigDecimal
+ amount1_lt: BigDecimal
+ amount1_gte: BigDecimal
+ amount1_lte: BigDecimal
+ amount1_in: [BigDecimal!]
+ amount1_not_in: [BigDecimal!]
+ amountUSD: BigDecimal
+ amountUSD_not: BigDecimal
+ amountUSD_gt: BigDecimal
+ amountUSD_lt: BigDecimal
+ amountUSD_gte: BigDecimal
+ amountUSD_lte: BigDecimal
+ amountUSD_in: [BigDecimal!]
+ amountUSD_not_in: [BigDecimal!]
+ tickLower: BigInt
+ tickLower_not: BigInt
+ tickLower_gt: BigInt
+ tickLower_lt: BigInt
+ tickLower_gte: BigInt
+ tickLower_lte: BigInt
+ tickLower_in: [BigInt!]
+ tickLower_not_in: [BigInt!]
+ tickUpper: BigInt
+ tickUpper_not: BigInt
+ tickUpper_gt: BigInt
+ tickUpper_lt: BigInt
+ tickUpper_gte: BigInt
+ tickUpper_lte: BigInt
+ tickUpper_in: [BigInt!]
+ tickUpper_not_in: [BigInt!]
+ logIndex: BigInt
+ logIndex_not: BigInt
+ logIndex_gt: BigInt
+ logIndex_lt: BigInt
+ logIndex_gte: BigInt
+ logIndex_lte: BigInt
+ logIndex_in: [BigInt!]
+ logIndex_not_in: [BigInt!]
+ _change_block: BlockChangedFilter
+ and: [Collect_filter]
+ or: [Collect_filter]
+}
+
+enum Flash_orderBy {
+ id
+ transaction
+ transaction__id
+ transaction__blockNumber
+ transaction__timestamp
+ transaction__gasUsed
+ transaction__gasPrice
+ timestamp
+ pool
+ pool__id
+ pool__createdAtTimestamp
+ pool__createdAtBlockNumber
+ pool__feeTier
+ pool__liquidity
+ pool__sqrtPrice
+ pool__feeGrowthGlobal0X128
+ pool__feeGrowthGlobal1X128
+ pool__token0Price
+ pool__token1Price
+ pool__tick
+ pool__observationIndex
+ pool__volumeToken0
+ pool__volumeToken1
+ pool__volumeUSD
+ pool__untrackedVolumeUSD
+ pool__feesUSD
+ pool__txCount
+ pool__collectedFeesToken0
+ pool__collectedFeesToken1
+ pool__collectedFeesUSD
+ pool__totalValueLockedToken0
+ pool__totalValueLockedToken1
+ pool__totalValueLockedETH
+ pool__totalValueLockedUSD
+ pool__totalValueLockedUSDUntracked
+ pool__isProtocolFeeEnabled
+ pool__liquidityProviderCount
+ sender
+ recipient
+ amount0
+ amount1
+ amountUSD
+ amount0Paid
+ amount1Paid
+ logIndex
+}
+
+input Flash_filter {
+ id: ID
+ id_not: ID
+ id_gt: ID
+ id_lt: ID
+ id_gte: ID
+ id_lte: ID
+ id_in: [ID!]
+ id_not_in: [ID!]
+ transaction: String
+ transaction_not: String
+ transaction_gt: String
+ transaction_lt: String
+ transaction_gte: String
+ transaction_lte: String
+ transaction_in: [String!]
+ transaction_not_in: [String!]
+ transaction_starts_with: String
+ transaction_starts_with_nocase: String
+ transaction_not_starts_with: String
+ transaction_not_starts_with_nocase: String
+ transaction_ends_with: String
+ transaction_ends_with_nocase: String
+ transaction_not_ends_with: String
+ transaction_not_ends_with_nocase: String
+ transaction_contains: String
+ transaction_not_contains: String
+ transaction_contains_nocase: String
+ transaction_not_contains_nocase: String
+ transaction_: Transaction_filter
+ timestamp: BigInt
+ timestamp_not: BigInt
+ timestamp_gt: BigInt
+ timestamp_lt: BigInt
+ timestamp_gte: BigInt
+ timestamp_lte: BigInt
+ timestamp_in: [BigInt!]
+ timestamp_not_in: [BigInt!]
+ pool: String
+ pool_not: String
+ pool_gt: String
+ pool_lt: String
+ pool_gte: String
+ pool_lte: String
+ pool_in: [String!]
+ pool_not_in: [String!]
+ pool_starts_with: String
+ pool_starts_with_nocase: String
+ pool_not_starts_with: String
+ pool_not_starts_with_nocase: String
+ pool_ends_with: String
+ pool_ends_with_nocase: String
+ pool_not_ends_with: String
+ pool_not_ends_with_nocase: String
+ pool_contains: String
+ pool_not_contains: String
+ pool_contains_nocase: String
+ pool_not_contains_nocase: String
+ pool_: Pool_filter
+ sender: Bytes
+ sender_not: Bytes
+ sender_gt: Bytes
+ sender_lt: Bytes
+ sender_gte: Bytes
+ sender_lte: Bytes
+ sender_in: [Bytes!]
+ sender_not_in: [Bytes!]
+ sender_contains: Bytes
+ sender_not_contains: Bytes
+ recipient: Bytes
+ recipient_not: Bytes
+ recipient_gt: Bytes
+ recipient_lt: Bytes
+ recipient_gte: Bytes
+ recipient_lte: Bytes
+ recipient_in: [Bytes!]
+ recipient_not_in: [Bytes!]
+ recipient_contains: Bytes
+ recipient_not_contains: Bytes
+ amount0: BigDecimal
+ amount0_not: BigDecimal
+ amount0_gt: BigDecimal
+ amount0_lt: BigDecimal
+ amount0_gte: BigDecimal
+ amount0_lte: BigDecimal
+ amount0_in: [BigDecimal!]
+ amount0_not_in: [BigDecimal!]
+ amount1: BigDecimal
+ amount1_not: BigDecimal
+ amount1_gt: BigDecimal
+ amount1_lt: BigDecimal
+ amount1_gte: BigDecimal
+ amount1_lte: BigDecimal
+ amount1_in: [BigDecimal!]
+ amount1_not_in: [BigDecimal!]
+ amountUSD: BigDecimal
+ amountUSD_not: BigDecimal
+ amountUSD_gt: BigDecimal
+ amountUSD_lt: BigDecimal
+ amountUSD_gte: BigDecimal
+ amountUSD_lte: BigDecimal
+ amountUSD_in: [BigDecimal!]
+ amountUSD_not_in: [BigDecimal!]
+ amount0Paid: BigDecimal
+ amount0Paid_not: BigDecimal
+ amount0Paid_gt: BigDecimal
+ amount0Paid_lt: BigDecimal
+ amount0Paid_gte: BigDecimal
+ amount0Paid_lte: BigDecimal
+ amount0Paid_in: [BigDecimal!]
+ amount0Paid_not_in: [BigDecimal!]
+ amount1Paid: BigDecimal
+ amount1Paid_not: BigDecimal
+ amount1Paid_gt: BigDecimal
+ amount1Paid_lt: BigDecimal
+ amount1Paid_gte: BigDecimal
+ amount1Paid_lte: BigDecimal
+ amount1Paid_in: [BigDecimal!]
+ amount1Paid_not_in: [BigDecimal!]
+ logIndex: BigInt
+ logIndex_not: BigInt
+ logIndex_gt: BigInt
+ logIndex_lt: BigInt
+ logIndex_gte: BigInt
+ logIndex_lte: BigInt
+ logIndex_in: [BigInt!]
+ logIndex_not_in: [BigInt!]
+ _change_block: BlockChangedFilter
+ and: [Flash_filter]
+ or: [Flash_filter]
+}
+
+enum UniswapDayData_orderBy {
+ id
+ date
+ volumeETH
+ volumeUSD
+ volumeUSDUntracked
+ feesUSD
+ txCount
+ tvlUSD
+}
+
+input UniswapDayData_filter {
+ id: ID
+ id_not: ID
+ id_gt: ID
+ id_lt: ID
+ id_gte: ID
+ id_lte: ID
+ id_in: [ID!]
+ id_not_in: [ID!]
+ date: Int
+ date_not: Int
+ date_gt: Int
+ date_lt: Int
+ date_gte: Int
+ date_lte: Int
+ date_in: [Int!]
+ date_not_in: [Int!]
+ volumeETH: BigDecimal
+ volumeETH_not: BigDecimal
+ volumeETH_gt: BigDecimal
+ volumeETH_lt: BigDecimal
+ volumeETH_gte: BigDecimal
+ volumeETH_lte: BigDecimal
+ volumeETH_in: [BigDecimal!]
+ volumeETH_not_in: [BigDecimal!]
+ volumeUSD: BigDecimal
+ volumeUSD_not: BigDecimal
+ volumeUSD_gt: BigDecimal
+ volumeUSD_lt: BigDecimal
+ volumeUSD_gte: BigDecimal
+ volumeUSD_lte: BigDecimal
+ volumeUSD_in: [BigDecimal!]
+ volumeUSD_not_in: [BigDecimal!]
+ volumeUSDUntracked: BigDecimal
+ volumeUSDUntracked_not: BigDecimal
+ volumeUSDUntracked_gt: BigDecimal
+ volumeUSDUntracked_lt: BigDecimal
+ volumeUSDUntracked_gte: BigDecimal
+ volumeUSDUntracked_lte: BigDecimal
+ volumeUSDUntracked_in: [BigDecimal!]
+ volumeUSDUntracked_not_in: [BigDecimal!]
+ feesUSD: BigDecimal
+ feesUSD_not: BigDecimal
+ feesUSD_gt: BigDecimal
+ feesUSD_lt: BigDecimal
+ feesUSD_gte: BigDecimal
+ feesUSD_lte: BigDecimal
+ feesUSD_in: [BigDecimal!]
+ feesUSD_not_in: [BigDecimal!]
+ txCount: BigInt
+ txCount_not: BigInt
+ txCount_gt: BigInt
+ txCount_lt: BigInt
+ txCount_gte: BigInt
+ txCount_lte: BigInt
+ txCount_in: [BigInt!]
+ txCount_not_in: [BigInt!]
+ tvlUSD: BigDecimal
+ tvlUSD_not: BigDecimal
+ tvlUSD_gt: BigDecimal
+ tvlUSD_lt: BigDecimal
+ tvlUSD_gte: BigDecimal
+ tvlUSD_lte: BigDecimal
+ tvlUSD_in: [BigDecimal!]
+ tvlUSD_not_in: [BigDecimal!]
+ _change_block: BlockChangedFilter
+ and: [UniswapDayData_filter]
+ or: [UniswapDayData_filter]
+}
+
+enum PoolDayData_orderBy {
+ id
+ date
+ pool
+ pool__id
+ pool__createdAtTimestamp
+ pool__createdAtBlockNumber
+ pool__feeTier
+ pool__liquidity
+ pool__sqrtPrice
+ pool__feeGrowthGlobal0X128
+ pool__feeGrowthGlobal1X128
+ pool__token0Price
+ pool__token1Price
+ pool__tick
+ pool__observationIndex
+ pool__volumeToken0
+ pool__volumeToken1
+ pool__volumeUSD
+ pool__untrackedVolumeUSD
+ pool__feesUSD
+ pool__txCount
+ pool__collectedFeesToken0
+ pool__collectedFeesToken1
+ pool__collectedFeesUSD
+ pool__totalValueLockedToken0
+ pool__totalValueLockedToken1
+ pool__totalValueLockedETH
+ pool__totalValueLockedUSD
+ pool__totalValueLockedUSDUntracked
+ pool__isProtocolFeeEnabled
+ pool__liquidityProviderCount
+ liquidity
+ sqrtPrice
+ token0Price
+ token1Price
+ tick
+ feeGrowthGlobal0X128
+ feeGrowthGlobal1X128
+ tvlUSD
+ volumeToken0
+ volumeToken1
+ volumeUSD
+ feesUSD
+ txCount
+ open
+ high
+ low
+ close
+}
+
+input PoolDayData_filter {
+ id: ID
+ id_not: ID
+ id_gt: ID
+ id_lt: ID
+ id_gte: ID
+ id_lte: ID
+ id_in: [ID!]
+ id_not_in: [ID!]
+ date: Int
+ date_not: Int
+ date_gt: Int
+ date_lt: Int
+ date_gte: Int
+ date_lte: Int
+ date_in: [Int!]
+ date_not_in: [Int!]
+ pool: String
+ pool_not: String
+ pool_gt: String
+ pool_lt: String
+ pool_gte: String
+ pool_lte: String
+ pool_in: [String!]
+ pool_not_in: [String!]
+ pool_starts_with: String
+ pool_starts_with_nocase: String
+ pool_not_starts_with: String
+ pool_not_starts_with_nocase: String
+ pool_ends_with: String
+ pool_ends_with_nocase: String
+ pool_not_ends_with: String
+ pool_not_ends_with_nocase: String
+ pool_contains: String
+ pool_not_contains: String
+ pool_contains_nocase: String
+ pool_not_contains_nocase: String
+ pool_: Pool_filter
+ liquidity: BigInt
+ liquidity_not: BigInt
+ liquidity_gt: BigInt
+ liquidity_lt: BigInt
+ liquidity_gte: BigInt
+ liquidity_lte: BigInt
+ liquidity_in: [BigInt!]
+ liquidity_not_in: [BigInt!]
+ sqrtPrice: BigInt
+ sqrtPrice_not: BigInt
+ sqrtPrice_gt: BigInt
+ sqrtPrice_lt: BigInt
+ sqrtPrice_gte: BigInt
+ sqrtPrice_lte: BigInt
+ sqrtPrice_in: [BigInt!]
+ sqrtPrice_not_in: [BigInt!]
+ token0Price: BigDecimal
+ token0Price_not: BigDecimal
+ token0Price_gt: BigDecimal
+ token0Price_lt: BigDecimal
+ token0Price_gte: BigDecimal
+ token0Price_lte: BigDecimal
+ token0Price_in: [BigDecimal!]
+ token0Price_not_in: [BigDecimal!]
+ token1Price: BigDecimal
+ token1Price_not: BigDecimal
+ token1Price_gt: BigDecimal
+ token1Price_lt: BigDecimal
+ token1Price_gte: BigDecimal
+ token1Price_lte: BigDecimal
+ token1Price_in: [BigDecimal!]
+ token1Price_not_in: [BigDecimal!]
+ tick: BigInt
+ tick_not: BigInt
+ tick_gt: BigInt
+ tick_lt: BigInt
+ tick_gte: BigInt
+ tick_lte: BigInt
+ tick_in: [BigInt!]
+ tick_not_in: [BigInt!]
+ feeGrowthGlobal0X128: BigInt
+ feeGrowthGlobal0X128_not: BigInt
+ feeGrowthGlobal0X128_gt: BigInt
+ feeGrowthGlobal0X128_lt: BigInt
+ feeGrowthGlobal0X128_gte: BigInt
+ feeGrowthGlobal0X128_lte: BigInt
+ feeGrowthGlobal0X128_in: [BigInt!]
+ feeGrowthGlobal0X128_not_in: [BigInt!]
+ feeGrowthGlobal1X128: BigInt
+ feeGrowthGlobal1X128_not: BigInt
+ feeGrowthGlobal1X128_gt: BigInt
+ feeGrowthGlobal1X128_lt: BigInt
+ feeGrowthGlobal1X128_gte: BigInt
+ feeGrowthGlobal1X128_lte: BigInt
+ feeGrowthGlobal1X128_in: [BigInt!]
+ feeGrowthGlobal1X128_not_in: [BigInt!]
+ tvlUSD: BigDecimal
+ tvlUSD_not: BigDecimal
+ tvlUSD_gt: BigDecimal
+ tvlUSD_lt: BigDecimal
+ tvlUSD_gte: BigDecimal
+ tvlUSD_lte: BigDecimal
+ tvlUSD_in: [BigDecimal!]
+ tvlUSD_not_in: [BigDecimal!]
+ volumeToken0: BigDecimal
+ volumeToken0_not: BigDecimal
+ volumeToken0_gt: BigDecimal
+ volumeToken0_lt: BigDecimal
+ volumeToken0_gte: BigDecimal
+ volumeToken0_lte: BigDecimal
+ volumeToken0_in: [BigDecimal!]
+ volumeToken0_not_in: [BigDecimal!]
+ volumeToken1: BigDecimal
+ volumeToken1_not: BigDecimal
+ volumeToken1_gt: BigDecimal
+ volumeToken1_lt: BigDecimal
+ volumeToken1_gte: BigDecimal
+ volumeToken1_lte: BigDecimal
+ volumeToken1_in: [BigDecimal!]
+ volumeToken1_not_in: [BigDecimal!]
+ volumeUSD: BigDecimal
+ volumeUSD_not: BigDecimal
+ volumeUSD_gt: BigDecimal
+ volumeUSD_lt: BigDecimal
+ volumeUSD_gte: BigDecimal
+ volumeUSD_lte: BigDecimal
+ volumeUSD_in: [BigDecimal!]
+ volumeUSD_not_in: [BigDecimal!]
+ feesUSD: BigDecimal
+ feesUSD_not: BigDecimal
+ feesUSD_gt: BigDecimal
+ feesUSD_lt: BigDecimal
+ feesUSD_gte: BigDecimal
+ feesUSD_lte: BigDecimal
+ feesUSD_in: [BigDecimal!]
+ feesUSD_not_in: [BigDecimal!]
+ txCount: BigInt
+ txCount_not: BigInt
+ txCount_gt: BigInt
+ txCount_lt: BigInt
+ txCount_gte: BigInt
+ txCount_lte: BigInt
+ txCount_in: [BigInt!]
+ txCount_not_in: [BigInt!]
+ open: BigDecimal
+ open_not: BigDecimal
+ open_gt: BigDecimal
+ open_lt: BigDecimal
+ open_gte: BigDecimal
+ open_lte: BigDecimal
+ open_in: [BigDecimal!]
+ open_not_in: [BigDecimal!]
+ high: BigDecimal
+ high_not: BigDecimal
+ high_gt: BigDecimal
+ high_lt: BigDecimal
+ high_gte: BigDecimal
+ high_lte: BigDecimal
+ high_in: [BigDecimal!]
+ high_not_in: [BigDecimal!]
+ low: BigDecimal
+ low_not: BigDecimal
+ low_gt: BigDecimal
+ low_lt: BigDecimal
+ low_gte: BigDecimal
+ low_lte: BigDecimal
+ low_in: [BigDecimal!]
+ low_not_in: [BigDecimal!]
+ close: BigDecimal
+ close_not: BigDecimal
+ close_gt: BigDecimal
+ close_lt: BigDecimal
+ close_gte: BigDecimal
+ close_lte: BigDecimal
+ close_in: [BigDecimal!]
+ close_not_in: [BigDecimal!]
+ _change_block: BlockChangedFilter
+ and: [PoolDayData_filter]
+ or: [PoolDayData_filter]
+}
+
+enum PoolHourData_orderBy {
+ id
+ periodStartUnix
+ pool
+ pool__id
+ pool__createdAtTimestamp
+ pool__createdAtBlockNumber
+ pool__feeTier
+ pool__liquidity
+ pool__sqrtPrice
+ pool__feeGrowthGlobal0X128
+ pool__feeGrowthGlobal1X128
+ pool__token0Price
+ pool__token1Price
+ pool__tick
+ pool__observationIndex
+ pool__volumeToken0
+ pool__volumeToken1
+ pool__volumeUSD
+ pool__untrackedVolumeUSD
+ pool__feesUSD
+ pool__txCount
+ pool__collectedFeesToken0
+ pool__collectedFeesToken1
+ pool__collectedFeesUSD
+ pool__totalValueLockedToken0
+ pool__totalValueLockedToken1
+ pool__totalValueLockedETH
+ pool__totalValueLockedUSD
+ pool__totalValueLockedUSDUntracked
+ pool__isProtocolFeeEnabled
+ pool__liquidityProviderCount
+ liquidity
+ sqrtPrice
+ token0Price
+ token1Price
+ tick
+ feeGrowthGlobal0X128
+ feeGrowthGlobal1X128
+ tvlUSD
+ volumeToken0
+ volumeToken1
+ volumeUSD
+ feesUSD
+ txCount
+ open
+ high
+ low
+ close
+}
+
+input PoolHourData_filter {
+ id: ID
+ id_not: ID
+ id_gt: ID
+ id_lt: ID
+ id_gte: ID
+ id_lte: ID
+ id_in: [ID!]
+ id_not_in: [ID!]
+ periodStartUnix: Int
+ periodStartUnix_not: Int
+ periodStartUnix_gt: Int
+ periodStartUnix_lt: Int
+ periodStartUnix_gte: Int
+ periodStartUnix_lte: Int
+ periodStartUnix_in: [Int!]
+ periodStartUnix_not_in: [Int!]
+ pool: String
+ pool_not: String
+ pool_gt: String
+ pool_lt: String
+ pool_gte: String
+ pool_lte: String
+ pool_in: [String!]
+ pool_not_in: [String!]
+ pool_starts_with: String
+ pool_starts_with_nocase: String
+ pool_not_starts_with: String
+ pool_not_starts_with_nocase: String
+ pool_ends_with: String
+ pool_ends_with_nocase: String
+ pool_not_ends_with: String
+ pool_not_ends_with_nocase: String
+ pool_contains: String
+ pool_not_contains: String
+ pool_contains_nocase: String
+ pool_not_contains_nocase: String
+ pool_: Pool_filter
+ liquidity: BigInt
+ liquidity_not: BigInt
+ liquidity_gt: BigInt
+ liquidity_lt: BigInt
+ liquidity_gte: BigInt
+ liquidity_lte: BigInt
+ liquidity_in: [BigInt!]
+ liquidity_not_in: [BigInt!]
+ sqrtPrice: BigInt
+ sqrtPrice_not: BigInt
+ sqrtPrice_gt: BigInt
+ sqrtPrice_lt: BigInt
+ sqrtPrice_gte: BigInt
+ sqrtPrice_lte: BigInt
+ sqrtPrice_in: [BigInt!]
+ sqrtPrice_not_in: [BigInt!]
+ token0Price: BigDecimal
+ token0Price_not: BigDecimal
+ token0Price_gt: BigDecimal
+ token0Price_lt: BigDecimal
+ token0Price_gte: BigDecimal
+ token0Price_lte: BigDecimal
+ token0Price_in: [BigDecimal!]
+ token0Price_not_in: [BigDecimal!]
+ token1Price: BigDecimal
+ token1Price_not: BigDecimal
+ token1Price_gt: BigDecimal
+ token1Price_lt: BigDecimal
+ token1Price_gte: BigDecimal
+ token1Price_lte: BigDecimal
+ token1Price_in: [BigDecimal!]
+ token1Price_not_in: [BigDecimal!]
+ tick: BigInt
+ tick_not: BigInt
+ tick_gt: BigInt
+ tick_lt: BigInt
+ tick_gte: BigInt
+ tick_lte: BigInt
+ tick_in: [BigInt!]
+ tick_not_in: [BigInt!]
+ feeGrowthGlobal0X128: BigInt
+ feeGrowthGlobal0X128_not: BigInt
+ feeGrowthGlobal0X128_gt: BigInt
+ feeGrowthGlobal0X128_lt: BigInt
+ feeGrowthGlobal0X128_gte: BigInt
+ feeGrowthGlobal0X128_lte: BigInt
+ feeGrowthGlobal0X128_in: [BigInt!]
+ feeGrowthGlobal0X128_not_in: [BigInt!]
+ feeGrowthGlobal1X128: BigInt
+ feeGrowthGlobal1X128_not: BigInt
+ feeGrowthGlobal1X128_gt: BigInt
+ feeGrowthGlobal1X128_lt: BigInt
+ feeGrowthGlobal1X128_gte: BigInt
+ feeGrowthGlobal1X128_lte: BigInt
+ feeGrowthGlobal1X128_in: [BigInt!]
+ feeGrowthGlobal1X128_not_in: [BigInt!]
+ tvlUSD: BigDecimal
+ tvlUSD_not: BigDecimal
+ tvlUSD_gt: BigDecimal
+ tvlUSD_lt: BigDecimal
+ tvlUSD_gte: BigDecimal
+ tvlUSD_lte: BigDecimal
+ tvlUSD_in: [BigDecimal!]
+ tvlUSD_not_in: [BigDecimal!]
+ volumeToken0: BigDecimal
+ volumeToken0_not: BigDecimal
+ volumeToken0_gt: BigDecimal
+ volumeToken0_lt: BigDecimal
+ volumeToken0_gte: BigDecimal
+ volumeToken0_lte: BigDecimal
+ volumeToken0_in: [BigDecimal!]
+ volumeToken0_not_in: [BigDecimal!]
+ volumeToken1: BigDecimal
+ volumeToken1_not: BigDecimal
+ volumeToken1_gt: BigDecimal
+ volumeToken1_lt: BigDecimal
+ volumeToken1_gte: BigDecimal
+ volumeToken1_lte: BigDecimal
+ volumeToken1_in: [BigDecimal!]
+ volumeToken1_not_in: [BigDecimal!]
+ volumeUSD: BigDecimal
+ volumeUSD_not: BigDecimal
+ volumeUSD_gt: BigDecimal
+ volumeUSD_lt: BigDecimal
+ volumeUSD_gte: BigDecimal
+ volumeUSD_lte: BigDecimal
+ volumeUSD_in: [BigDecimal!]
+ volumeUSD_not_in: [BigDecimal!]
+ feesUSD: BigDecimal
+ feesUSD_not: BigDecimal
+ feesUSD_gt: BigDecimal
+ feesUSD_lt: BigDecimal
+ feesUSD_gte: BigDecimal
+ feesUSD_lte: BigDecimal
+ feesUSD_in: [BigDecimal!]
+ feesUSD_not_in: [BigDecimal!]
+ txCount: BigInt
+ txCount_not: BigInt
+ txCount_gt: BigInt
+ txCount_lt: BigInt
+ txCount_gte: BigInt
+ txCount_lte: BigInt
+ txCount_in: [BigInt!]
+ txCount_not_in: [BigInt!]
+ open: BigDecimal
+ open_not: BigDecimal
+ open_gt: BigDecimal
+ open_lt: BigDecimal
+ open_gte: BigDecimal
+ open_lte: BigDecimal
+ open_in: [BigDecimal!]
+ open_not_in: [BigDecimal!]
+ high: BigDecimal
+ high_not: BigDecimal
+ high_gt: BigDecimal
+ high_lt: BigDecimal
+ high_gte: BigDecimal
+ high_lte: BigDecimal
+ high_in: [BigDecimal!]
+ high_not_in: [BigDecimal!]
+ low: BigDecimal
+ low_not: BigDecimal
+ low_gt: BigDecimal
+ low_lt: BigDecimal
+ low_gte: BigDecimal
+ low_lte: BigDecimal
+ low_in: [BigDecimal!]
+ low_not_in: [BigDecimal!]
+ close: BigDecimal
+ close_not: BigDecimal
+ close_gt: BigDecimal
+ close_lt: BigDecimal
+ close_gte: BigDecimal
+ close_lte: BigDecimal
+ close_in: [BigDecimal!]
+ close_not_in: [BigDecimal!]
+ _change_block: BlockChangedFilter
+ and: [PoolHourData_filter]
+ or: [PoolHourData_filter]
+}
+
+enum TickHourData_orderBy {
+ id
+ periodStartUnix
+ pool
+ pool__id
+ pool__createdAtTimestamp
+ pool__createdAtBlockNumber
+ pool__feeTier
+ pool__liquidity
+ pool__sqrtPrice
+ pool__feeGrowthGlobal0X128
+ pool__feeGrowthGlobal1X128
+ pool__token0Price
+ pool__token1Price
+ pool__tick
+ pool__observationIndex
+ pool__volumeToken0
+ pool__volumeToken1
+ pool__volumeUSD
+ pool__untrackedVolumeUSD
+ pool__feesUSD
+ pool__txCount
+ pool__collectedFeesToken0
+ pool__collectedFeesToken1
+ pool__collectedFeesUSD
+ pool__totalValueLockedToken0
+ pool__totalValueLockedToken1
+ pool__totalValueLockedETH
+ pool__totalValueLockedUSD
+ pool__totalValueLockedUSDUntracked
+ pool__isProtocolFeeEnabled
+ pool__liquidityProviderCount
+ tick
+ tick__id
+ tick__poolAddress
+ tick__tickIdx
+ tick__liquidityGross
+ tick__liquidityNet
+ tick__price0
+ tick__price1
+ tick__volumeToken0
+ tick__volumeToken1
+ tick__volumeUSD
+ tick__untrackedVolumeUSD
+ tick__feesUSD
+ tick__collectedFeesToken0
+ tick__collectedFeesToken1
+ tick__collectedFeesUSD
+ tick__createdAtTimestamp
+ tick__createdAtBlockNumber
+ tick__liquidityProviderCount
+ tick__feeGrowthOutside0X128
+ tick__feeGrowthOutside1X128
+ liquidityGross
+ liquidityNet
+ volumeToken0
+ volumeToken1
+ volumeUSD
+ feesUSD
+}
+
+input TickHourData_filter {
+ id: ID
+ id_not: ID
+ id_gt: ID
+ id_lt: ID
+ id_gte: ID
+ id_lte: ID
+ id_in: [ID!]
+ id_not_in: [ID!]
+ periodStartUnix: Int
+ periodStartUnix_not: Int
+ periodStartUnix_gt: Int
+ periodStartUnix_lt: Int
+ periodStartUnix_gte: Int
+ periodStartUnix_lte: Int
+ periodStartUnix_in: [Int!]
+ periodStartUnix_not_in: [Int!]
+ pool: String
+ pool_not: String
+ pool_gt: String
+ pool_lt: String
+ pool_gte: String
+ pool_lte: String
+ pool_in: [String!]
+ pool_not_in: [String!]
+ pool_starts_with: String
+ pool_starts_with_nocase: String
+ pool_not_starts_with: String
+ pool_not_starts_with_nocase: String
+ pool_ends_with: String
+ pool_ends_with_nocase: String
+ pool_not_ends_with: String
+ pool_not_ends_with_nocase: String
+ pool_contains: String
+ pool_not_contains: String
+ pool_contains_nocase: String
+ pool_not_contains_nocase: String
+ pool_: Pool_filter
+ tick: String
+ tick_not: String
+ tick_gt: String
+ tick_lt: String
+ tick_gte: String
+ tick_lte: String
+ tick_in: [String!]
+ tick_not_in: [String!]
+ tick_starts_with: String
+ tick_starts_with_nocase: String
+ tick_not_starts_with: String
+ tick_not_starts_with_nocase: String
+ tick_ends_with: String
+ tick_ends_with_nocase: String
+ tick_not_ends_with: String
+ tick_not_ends_with_nocase: String
+ tick_contains: String
+ tick_not_contains: String
+ tick_contains_nocase: String
+ tick_not_contains_nocase: String
+ tick_: Tick_filter
+ liquidityGross: BigInt
+ liquidityGross_not: BigInt
+ liquidityGross_gt: BigInt
+ liquidityGross_lt: BigInt
+ liquidityGross_gte: BigInt
+ liquidityGross_lte: BigInt
+ liquidityGross_in: [BigInt!]
+ liquidityGross_not_in: [BigInt!]
+ liquidityNet: BigInt
+ liquidityNet_not: BigInt
+ liquidityNet_gt: BigInt
+ liquidityNet_lt: BigInt
+ liquidityNet_gte: BigInt
+ liquidityNet_lte: BigInt
+ liquidityNet_in: [BigInt!]
+ liquidityNet_not_in: [BigInt!]
+ volumeToken0: BigDecimal
+ volumeToken0_not: BigDecimal
+ volumeToken0_gt: BigDecimal
+ volumeToken0_lt: BigDecimal
+ volumeToken0_gte: BigDecimal
+ volumeToken0_lte: BigDecimal
+ volumeToken0_in: [BigDecimal!]
+ volumeToken0_not_in: [BigDecimal!]
+ volumeToken1: BigDecimal
+ volumeToken1_not: BigDecimal
+ volumeToken1_gt: BigDecimal
+ volumeToken1_lt: BigDecimal
+ volumeToken1_gte: BigDecimal
+ volumeToken1_lte: BigDecimal
+ volumeToken1_in: [BigDecimal!]
+ volumeToken1_not_in: [BigDecimal!]
+ volumeUSD: BigDecimal
+ volumeUSD_not: BigDecimal
+ volumeUSD_gt: BigDecimal
+ volumeUSD_lt: BigDecimal
+ volumeUSD_gte: BigDecimal
+ volumeUSD_lte: BigDecimal
+ volumeUSD_in: [BigDecimal!]
+ volumeUSD_not_in: [BigDecimal!]
+ feesUSD: BigDecimal
+ feesUSD_not: BigDecimal
+ feesUSD_gt: BigDecimal
+ feesUSD_lt: BigDecimal
+ feesUSD_gte: BigDecimal
+ feesUSD_lte: BigDecimal
+ feesUSD_in: [BigDecimal!]
+ feesUSD_not_in: [BigDecimal!]
+ _change_block: BlockChangedFilter
+ and: [TickHourData_filter]
+ or: [TickHourData_filter]
+}
+
+enum TickDayData_orderBy {
+ id
+ date
+ pool
+ pool__id
+ pool__createdAtTimestamp
+ pool__createdAtBlockNumber
+ pool__feeTier
+ pool__liquidity
+ pool__sqrtPrice
+ pool__feeGrowthGlobal0X128
+ pool__feeGrowthGlobal1X128
+ pool__token0Price
+ pool__token1Price
+ pool__tick
+ pool__observationIndex
+ pool__volumeToken0
+ pool__volumeToken1
+ pool__volumeUSD
+ pool__untrackedVolumeUSD
+ pool__feesUSD
+ pool__txCount
+ pool__collectedFeesToken0
+ pool__collectedFeesToken1
+ pool__collectedFeesUSD
+ pool__totalValueLockedToken0
+ pool__totalValueLockedToken1
+ pool__totalValueLockedETH
+ pool__totalValueLockedUSD
+ pool__totalValueLockedUSDUntracked
+ pool__isProtocolFeeEnabled
+ pool__liquidityProviderCount
+ tick
+ tick__id
+ tick__poolAddress
+ tick__tickIdx
+ tick__liquidityGross
+ tick__liquidityNet
+ tick__price0
+ tick__price1
+ tick__volumeToken0
+ tick__volumeToken1
+ tick__volumeUSD
+ tick__untrackedVolumeUSD
+ tick__feesUSD
+ tick__collectedFeesToken0
+ tick__collectedFeesToken1
+ tick__collectedFeesUSD
+ tick__createdAtTimestamp
+ tick__createdAtBlockNumber
+ tick__liquidityProviderCount
+ tick__feeGrowthOutside0X128
+ tick__feeGrowthOutside1X128
+ liquidityGross
+ liquidityNet
+ volumeToken0
+ volumeToken1
+ volumeUSD
+ feesUSD
+ feeGrowthOutside0X128
+ feeGrowthOutside1X128
+}
+
+input TickDayData_filter {
+ id: ID
+ id_not: ID
+ id_gt: ID
+ id_lt: ID
+ id_gte: ID
+ id_lte: ID
+ id_in: [ID!]
+ id_not_in: [ID!]
+ date: Int
+ date_not: Int
+ date_gt: Int
+ date_lt: Int
+ date_gte: Int
+ date_lte: Int
+ date_in: [Int!]
+ date_not_in: [Int!]
+ pool: String
+ pool_not: String
+ pool_gt: String
+ pool_lt: String
+ pool_gte: String
+ pool_lte: String
+ pool_in: [String!]
+ pool_not_in: [String!]
+ pool_starts_with: String
+ pool_starts_with_nocase: String
+ pool_not_starts_with: String
+ pool_not_starts_with_nocase: String
+ pool_ends_with: String
+ pool_ends_with_nocase: String
+ pool_not_ends_with: String
+ pool_not_ends_with_nocase: String
+ pool_contains: String
+ pool_not_contains: String
+ pool_contains_nocase: String
+ pool_not_contains_nocase: String
+ pool_: Pool_filter
+ tick: String
+ tick_not: String
+ tick_gt: String
+ tick_lt: String
+ tick_gte: String
+ tick_lte: String
+ tick_in: [String!]
+ tick_not_in: [String!]
+ tick_starts_with: String
+ tick_starts_with_nocase: String
+ tick_not_starts_with: String
+ tick_not_starts_with_nocase: String
+ tick_ends_with: String
+ tick_ends_with_nocase: String
+ tick_not_ends_with: String
+ tick_not_ends_with_nocase: String
+ tick_contains: String
+ tick_not_contains: String
+ tick_contains_nocase: String
+ tick_not_contains_nocase: String
+ tick_: Tick_filter
+ liquidityGross: BigInt
+ liquidityGross_not: BigInt
+ liquidityGross_gt: BigInt
+ liquidityGross_lt: BigInt
+ liquidityGross_gte: BigInt
+ liquidityGross_lte: BigInt
+ liquidityGross_in: [BigInt!]
+ liquidityGross_not_in: [BigInt!]
+ liquidityNet: BigInt
+ liquidityNet_not: BigInt
+ liquidityNet_gt: BigInt
+ liquidityNet_lt: BigInt
+ liquidityNet_gte: BigInt
+ liquidityNet_lte: BigInt
+ liquidityNet_in: [BigInt!]
+ liquidityNet_not_in: [BigInt!]
+ volumeToken0: BigDecimal
+ volumeToken0_not: BigDecimal
+ volumeToken0_gt: BigDecimal
+ volumeToken0_lt: BigDecimal
+ volumeToken0_gte: BigDecimal
+ volumeToken0_lte: BigDecimal
+ volumeToken0_in: [BigDecimal!]
+ volumeToken0_not_in: [BigDecimal!]
+ volumeToken1: BigDecimal
+ volumeToken1_not: BigDecimal
+ volumeToken1_gt: BigDecimal
+ volumeToken1_lt: BigDecimal
+ volumeToken1_gte: BigDecimal
+ volumeToken1_lte: BigDecimal
+ volumeToken1_in: [BigDecimal!]
+ volumeToken1_not_in: [BigDecimal!]
+ volumeUSD: BigDecimal
+ volumeUSD_not: BigDecimal
+ volumeUSD_gt: BigDecimal
+ volumeUSD_lt: BigDecimal
+ volumeUSD_gte: BigDecimal
+ volumeUSD_lte: BigDecimal
+ volumeUSD_in: [BigDecimal!]
+ volumeUSD_not_in: [BigDecimal!]
+ feesUSD: BigDecimal
+ feesUSD_not: BigDecimal
+ feesUSD_gt: BigDecimal
+ feesUSD_lt: BigDecimal
+ feesUSD_gte: BigDecimal
+ feesUSD_lte: BigDecimal
+ feesUSD_in: [BigDecimal!]
+ feesUSD_not_in: [BigDecimal!]
+ feeGrowthOutside0X128: BigInt
+ feeGrowthOutside0X128_not: BigInt
+ feeGrowthOutside0X128_gt: BigInt
+ feeGrowthOutside0X128_lt: BigInt
+ feeGrowthOutside0X128_gte: BigInt
+ feeGrowthOutside0X128_lte: BigInt
+ feeGrowthOutside0X128_in: [BigInt!]
+ feeGrowthOutside0X128_not_in: [BigInt!]
+ feeGrowthOutside1X128: BigInt
+ feeGrowthOutside1X128_not: BigInt
+ feeGrowthOutside1X128_gt: BigInt
+ feeGrowthOutside1X128_lt: BigInt
+ feeGrowthOutside1X128_gte: BigInt
+ feeGrowthOutside1X128_lte: BigInt
+ feeGrowthOutside1X128_in: [BigInt!]
+ feeGrowthOutside1X128_not_in: [BigInt!]
+ _change_block: BlockChangedFilter
+ and: [TickDayData_filter]
+ or: [TickDayData_filter]
+}
+
+enum TokenDayData_orderBy {
+ id
+ date
+ token
+ token__id
+ token__symbol
+ token__name
+ token__decimals
+ token__totalSupply
+ token__volume
+ token__volumeUSD
+ token__untrackedVolumeUSD
+ token__feesUSD
+ token__txCount
+ token__poolCount
+ token__totalValueLocked
+ token__totalValueLockedUSD
+ token__totalValueLockedUSDUntracked
+ token__derivedETH
+ volume
+ volumeUSD
+ untrackedVolumeUSD
+ totalValueLocked
+ totalValueLockedUSD
+ priceUSD
+ feesUSD
+ open
+ high
+ low
+ close
+}
+
+input TokenDayData_filter {
+ id: ID
+ id_not: ID
+ id_gt: ID
+ id_lt: ID
+ id_gte: ID
+ id_lte: ID
+ id_in: [ID!]
+ id_not_in: [ID!]
+ date: Int
+ date_not: Int
+ date_gt: Int
+ date_lt: Int
+ date_gte: Int
+ date_lte: Int
+ date_in: [Int!]
+ date_not_in: [Int!]
+ token: String
+ token_not: String
+ token_gt: String
+ token_lt: String
+ token_gte: String
+ token_lte: String
+ token_in: [String!]
+ token_not_in: [String!]
+ token_starts_with: String
+ token_starts_with_nocase: String
+ token_not_starts_with: String
+ token_not_starts_with_nocase: String
+ token_ends_with: String
+ token_ends_with_nocase: String
+ token_not_ends_with: String
+ token_not_ends_with_nocase: String
+ token_contains: String
+ token_not_contains: String
+ token_contains_nocase: String
+ token_not_contains_nocase: String
+ token_: Token_filter
+ volume: BigDecimal
+ volume_not: BigDecimal
+ volume_gt: BigDecimal
+ volume_lt: BigDecimal
+ volume_gte: BigDecimal
+ volume_lte: BigDecimal
+ volume_in: [BigDecimal!]
+ volume_not_in: [BigDecimal!]
+ volumeUSD: BigDecimal
+ volumeUSD_not: BigDecimal
+ volumeUSD_gt: BigDecimal
+ volumeUSD_lt: BigDecimal
+ volumeUSD_gte: BigDecimal
+ volumeUSD_lte: BigDecimal
+ volumeUSD_in: [BigDecimal!]
+ volumeUSD_not_in: [BigDecimal!]
+ untrackedVolumeUSD: BigDecimal
+ untrackedVolumeUSD_not: BigDecimal
+ untrackedVolumeUSD_gt: BigDecimal
+ untrackedVolumeUSD_lt: BigDecimal
+ untrackedVolumeUSD_gte: BigDecimal
+ untrackedVolumeUSD_lte: BigDecimal
+ untrackedVolumeUSD_in: [BigDecimal!]
+ untrackedVolumeUSD_not_in: [BigDecimal!]
+ totalValueLocked: BigDecimal
+ totalValueLocked_not: BigDecimal
+ totalValueLocked_gt: BigDecimal
+ totalValueLocked_lt: BigDecimal
+ totalValueLocked_gte: BigDecimal
+ totalValueLocked_lte: BigDecimal
+ totalValueLocked_in: [BigDecimal!]
+ totalValueLocked_not_in: [BigDecimal!]
+ totalValueLockedUSD: BigDecimal
+ totalValueLockedUSD_not: BigDecimal
+ totalValueLockedUSD_gt: BigDecimal
+ totalValueLockedUSD_lt: BigDecimal
+ totalValueLockedUSD_gte: BigDecimal
+ totalValueLockedUSD_lte: BigDecimal
+ totalValueLockedUSD_in: [BigDecimal!]
+ totalValueLockedUSD_not_in: [BigDecimal!]
+ priceUSD: BigDecimal
+ priceUSD_not: BigDecimal
+ priceUSD_gt: BigDecimal
+ priceUSD_lt: BigDecimal
+ priceUSD_gte: BigDecimal
+ priceUSD_lte: BigDecimal
+ priceUSD_in: [BigDecimal!]
+ priceUSD_not_in: [BigDecimal!]
+ feesUSD: BigDecimal
+ feesUSD_not: BigDecimal
+ feesUSD_gt: BigDecimal
+ feesUSD_lt: BigDecimal
+ feesUSD_gte: BigDecimal
+ feesUSD_lte: BigDecimal
+ feesUSD_in: [BigDecimal!]
+ feesUSD_not_in: [BigDecimal!]
+ open: BigDecimal
+ open_not: BigDecimal
+ open_gt: BigDecimal
+ open_lt: BigDecimal
+ open_gte: BigDecimal
+ open_lte: BigDecimal
+ open_in: [BigDecimal!]
+ open_not_in: [BigDecimal!]
+ high: BigDecimal
+ high_not: BigDecimal
+ high_gt: BigDecimal
+ high_lt: BigDecimal
+ high_gte: BigDecimal
+ high_lte: BigDecimal
+ high_in: [BigDecimal!]
+ high_not_in: [BigDecimal!]
+ low: BigDecimal
+ low_not: BigDecimal
+ low_gt: BigDecimal
+ low_lt: BigDecimal
+ low_gte: BigDecimal
+ low_lte: BigDecimal
+ low_in: [BigDecimal!]
+ low_not_in: [BigDecimal!]
+ close: BigDecimal
+ close_not: BigDecimal
+ close_gt: BigDecimal
+ close_lt: BigDecimal
+ close_gte: BigDecimal
+ close_lte: BigDecimal
+ close_in: [BigDecimal!]
+ close_not_in: [BigDecimal!]
+ _change_block: BlockChangedFilter
+ and: [TokenDayData_filter]
+ or: [TokenDayData_filter]
+}
+
+enum TokenHourData_orderBy {
+ id
+ periodStartUnix
+ token
+ token__id
+ token__symbol
+ token__name
+ token__decimals
+ token__totalSupply
+ token__volume
+ token__volumeUSD
+ token__untrackedVolumeUSD
+ token__feesUSD
+ token__txCount
+ token__poolCount
+ token__totalValueLocked
+ token__totalValueLockedUSD
+ token__totalValueLockedUSDUntracked
+ token__derivedETH
+ volume
+ volumeUSD
+ untrackedVolumeUSD
+ totalValueLocked
+ totalValueLockedUSD
+ priceUSD
+ feesUSD
+ open
+ high
+ low
+ close
+}
+
+input TokenHourData_filter {
+ id: ID
+ id_not: ID
+ id_gt: ID
+ id_lt: ID
+ id_gte: ID
+ id_lte: ID
+ id_in: [ID!]
+ id_not_in: [ID!]
+ periodStartUnix: Int
+ periodStartUnix_not: Int
+ periodStartUnix_gt: Int
+ periodStartUnix_lt: Int
+ periodStartUnix_gte: Int
+ periodStartUnix_lte: Int
+ periodStartUnix_in: [Int!]
+ periodStartUnix_not_in: [Int!]
+ token: String
+ token_not: String
+ token_gt: String
+ token_lt: String
+ token_gte: String
+ token_lte: String
+ token_in: [String!]
+ token_not_in: [String!]
+ token_starts_with: String
+ token_starts_with_nocase: String
+ token_not_starts_with: String
+ token_not_starts_with_nocase: String
+ token_ends_with: String
+ token_ends_with_nocase: String
+ token_not_ends_with: String
+ token_not_ends_with_nocase: String
+ token_contains: String
+ token_not_contains: String
+ token_contains_nocase: String
+ token_not_contains_nocase: String
+ token_: Token_filter
+ volume: BigDecimal
+ volume_not: BigDecimal
+ volume_gt: BigDecimal
+ volume_lt: BigDecimal
+ volume_gte: BigDecimal
+ volume_lte: BigDecimal
+ volume_in: [BigDecimal!]
+ volume_not_in: [BigDecimal!]
+ volumeUSD: BigDecimal
+ volumeUSD_not: BigDecimal
+ volumeUSD_gt: BigDecimal
+ volumeUSD_lt: BigDecimal
+ volumeUSD_gte: BigDecimal
+ volumeUSD_lte: BigDecimal
+ volumeUSD_in: [BigDecimal!]
+ volumeUSD_not_in: [BigDecimal!]
+ untrackedVolumeUSD: BigDecimal
+ untrackedVolumeUSD_not: BigDecimal
+ untrackedVolumeUSD_gt: BigDecimal
+ untrackedVolumeUSD_lt: BigDecimal
+ untrackedVolumeUSD_gte: BigDecimal
+ untrackedVolumeUSD_lte: BigDecimal
+ untrackedVolumeUSD_in: [BigDecimal!]
+ untrackedVolumeUSD_not_in: [BigDecimal!]
+ totalValueLocked: BigDecimal
+ totalValueLocked_not: BigDecimal
+ totalValueLocked_gt: BigDecimal
+ totalValueLocked_lt: BigDecimal
+ totalValueLocked_gte: BigDecimal
+ totalValueLocked_lte: BigDecimal
+ totalValueLocked_in: [BigDecimal!]
+ totalValueLocked_not_in: [BigDecimal!]
+ totalValueLockedUSD: BigDecimal
+ totalValueLockedUSD_not: BigDecimal
+ totalValueLockedUSD_gt: BigDecimal
+ totalValueLockedUSD_lt: BigDecimal
+ totalValueLockedUSD_gte: BigDecimal
+ totalValueLockedUSD_lte: BigDecimal
+ totalValueLockedUSD_in: [BigDecimal!]
+ totalValueLockedUSD_not_in: [BigDecimal!]
+ priceUSD: BigDecimal
+ priceUSD_not: BigDecimal
+ priceUSD_gt: BigDecimal
+ priceUSD_lt: BigDecimal
+ priceUSD_gte: BigDecimal
+ priceUSD_lte: BigDecimal
+ priceUSD_in: [BigDecimal!]
+ priceUSD_not_in: [BigDecimal!]
+ feesUSD: BigDecimal
+ feesUSD_not: BigDecimal
+ feesUSD_gt: BigDecimal
+ feesUSD_lt: BigDecimal
+ feesUSD_gte: BigDecimal
+ feesUSD_lte: BigDecimal
+ feesUSD_in: [BigDecimal!]
+ feesUSD_not_in: [BigDecimal!]
+ open: BigDecimal
+ open_not: BigDecimal
+ open_gt: BigDecimal
+ open_lt: BigDecimal
+ open_gte: BigDecimal
+ open_lte: BigDecimal
+ open_in: [BigDecimal!]
+ open_not_in: [BigDecimal!]
+ high: BigDecimal
+ high_not: BigDecimal
+ high_gt: BigDecimal
+ high_lt: BigDecimal
+ high_gte: BigDecimal
+ high_lte: BigDecimal
+ high_in: [BigDecimal!]
+ high_not_in: [BigDecimal!]
+ low: BigDecimal
+ low_not: BigDecimal
+ low_gt: BigDecimal
+ low_lt: BigDecimal
+ low_gte: BigDecimal
+ low_lte: BigDecimal
+ low_in: [BigDecimal!]
+ low_not_in: [BigDecimal!]
+ close: BigDecimal
+ close_not: BigDecimal
+ close_gt: BigDecimal
+ close_lt: BigDecimal
+ close_gte: BigDecimal
+ close_lte: BigDecimal
+ close_in: [BigDecimal!]
+ close_not_in: [BigDecimal!]
+ _change_block: BlockChangedFilter
+ and: [TokenHourData_filter]
+ or: [TokenHourData_filter]
+}
+
+enum IncreaseEvent_orderBy {
+ id
+ pool
+ pool__id
+ pool__createdAtTimestamp
+ pool__createdAtBlockNumber
+ pool__feeTier
+ pool__liquidity
+ pool__sqrtPrice
+ pool__feeGrowthGlobal0X128
+ pool__feeGrowthGlobal1X128
+ pool__token0Price
+ pool__token1Price
+ pool__tick
+ pool__observationIndex
+ pool__volumeToken0
+ pool__volumeToken1
+ pool__volumeUSD
+ pool__untrackedVolumeUSD
+ pool__feesUSD
+ pool__txCount
+ pool__collectedFeesToken0
+ pool__collectedFeesToken1
+ pool__collectedFeesUSD
+ pool__totalValueLockedToken0
+ pool__totalValueLockedToken1
+ pool__totalValueLockedETH
+ pool__totalValueLockedUSD
+ pool__totalValueLockedUSDUntracked
+ pool__isProtocolFeeEnabled
+ pool__liquidityProviderCount
+ tokenID
+ position
+ position__id
+ position__owner
+ position__liquidity
+ position__depositedToken0
+ position__depositedToken1
+ position__withdrawnToken0
+ position__withdrawnToken1
+ position__collectedToken0
+ position__collectedToken1
+ position__collectedFeesToken0
+ position__collectedFeesToken1
+ position__amountDepositedUSD
+ position__amountWithdrawnUSD
+ position__amountCollectedUSD
+ position__feeGrowthInside0LastX128
+ position__feeGrowthInside1LastX128
+ amount0
+ amount1
+ token0
+ token0__id
+ token0__symbol
+ token0__name
+ token0__decimals
+ token0__totalSupply
+ token0__volume
+ token0__volumeUSD
+ token0__untrackedVolumeUSD
+ token0__feesUSD
+ token0__txCount
+ token0__poolCount
+ token0__totalValueLocked
+ token0__totalValueLockedUSD
+ token0__totalValueLockedUSDUntracked
+ token0__derivedETH
+ token1
+ token1__id
+ token1__symbol
+ token1__name
+ token1__decimals
+ token1__totalSupply
+ token1__volume
+ token1__volumeUSD
+ token1__untrackedVolumeUSD
+ token1__feesUSD
+ token1__txCount
+ token1__poolCount
+ token1__totalValueLocked
+ token1__totalValueLockedUSD
+ token1__totalValueLockedUSDUntracked
+ token1__derivedETH
+ timeStamp
+ transaction
+ transaction__id
+ transaction__blockNumber
+ transaction__timestamp
+ transaction__gasUsed
+ transaction__gasPrice
+}
+
+input IncreaseEvent_filter {
+ id: ID
+ id_not: ID
+ id_gt: ID
+ id_lt: ID
+ id_gte: ID
+ id_lte: ID
+ id_in: [ID!]
+ id_not_in: [ID!]
+ pool: String
+ pool_not: String
+ pool_gt: String
+ pool_lt: String
+ pool_gte: String
+ pool_lte: String
+ pool_in: [String!]
+ pool_not_in: [String!]
+ pool_starts_with: String
+ pool_starts_with_nocase: String
+ pool_not_starts_with: String
+ pool_not_starts_with_nocase: String
+ pool_ends_with: String
+ pool_ends_with_nocase: String
+ pool_not_ends_with: String
+ pool_not_ends_with_nocase: String
+ pool_contains: String
+ pool_not_contains: String
+ pool_contains_nocase: String
+ pool_not_contains_nocase: String
+ pool_: Pool_filter
+ tokenID: BigInt
+ tokenID_not: BigInt
+ tokenID_gt: BigInt
+ tokenID_lt: BigInt
+ tokenID_gte: BigInt
+ tokenID_lte: BigInt
+ tokenID_in: [BigInt!]
+ tokenID_not_in: [BigInt!]
+ position: String
+ position_not: String
+ position_gt: String
+ position_lt: String
+ position_gte: String
+ position_lte: String
+ position_in: [String!]
+ position_not_in: [String!]
+ position_starts_with: String
+ position_starts_with_nocase: String
+ position_not_starts_with: String
+ position_not_starts_with_nocase: String
+ position_ends_with: String
+ position_ends_with_nocase: String
+ position_not_ends_with: String
+ position_not_ends_with_nocase: String
+ position_contains: String
+ position_not_contains: String
+ position_contains_nocase: String
+ position_not_contains_nocase: String
+ position_: Position_filter
+ amount0: BigInt
+ amount0_not: BigInt
+ amount0_gt: BigInt
+ amount0_lt: BigInt
+ amount0_gte: BigInt
+ amount0_lte: BigInt
+ amount0_in: [BigInt!]
+ amount0_not_in: [BigInt!]
+ amount1: BigInt
+ amount1_not: BigInt
+ amount1_gt: BigInt
+ amount1_lt: BigInt
+ amount1_gte: BigInt
+ amount1_lte: BigInt
+ amount1_in: [BigInt!]
+ amount1_not_in: [BigInt!]
+ token0: String
+ token0_not: String
+ token0_gt: String
+ token0_lt: String
+ token0_gte: String
+ token0_lte: String
+ token0_in: [String!]
+ token0_not_in: [String!]
+ token0_starts_with: String
+ token0_starts_with_nocase: String
+ token0_not_starts_with: String
+ token0_not_starts_with_nocase: String
+ token0_ends_with: String
+ token0_ends_with_nocase: String
+ token0_not_ends_with: String
+ token0_not_ends_with_nocase: String
+ token0_contains: String
+ token0_not_contains: String
+ token0_contains_nocase: String
+ token0_not_contains_nocase: String
+ token0_: Token_filter
+ token1: String
+ token1_not: String
+ token1_gt: String
+ token1_lt: String
+ token1_gte: String
+ token1_lte: String
+ token1_in: [String!]
+ token1_not_in: [String!]
+ token1_starts_with: String
+ token1_starts_with_nocase: String
+ token1_not_starts_with: String
+ token1_not_starts_with_nocase: String
+ token1_ends_with: String
+ token1_ends_with_nocase: String
+ token1_not_ends_with: String
+ token1_not_ends_with_nocase: String
+ token1_contains: String
+ token1_not_contains: String
+ token1_contains_nocase: String
+ token1_not_contains_nocase: String
+ token1_: Token_filter
+ timeStamp: BigInt
+ timeStamp_not: BigInt
+ timeStamp_gt: BigInt
+ timeStamp_lt: BigInt
+ timeStamp_gte: BigInt
+ timeStamp_lte: BigInt
+ timeStamp_in: [BigInt!]
+ timeStamp_not_in: [BigInt!]
+ transaction: String
+ transaction_not: String
+ transaction_gt: String
+ transaction_lt: String
+ transaction_gte: String
+ transaction_lte: String
+ transaction_in: [String!]
+ transaction_not_in: [String!]
+ transaction_starts_with: String
+ transaction_starts_with_nocase: String
+ transaction_not_starts_with: String
+ transaction_not_starts_with_nocase: String
+ transaction_ends_with: String
+ transaction_ends_with_nocase: String
+ transaction_not_ends_with: String
+ transaction_not_ends_with_nocase: String
+ transaction_contains: String
+ transaction_not_contains: String
+ transaction_contains_nocase: String
+ transaction_not_contains_nocase: String
+ transaction_: Transaction_filter
+ _change_block: BlockChangedFilter
+ and: [IncreaseEvent_filter]
+ or: [IncreaseEvent_filter]
+}
+
+enum DecreaseEvent_orderBy {
+ id
+ pool
+ pool__id
+ pool__createdAtTimestamp
+ pool__createdAtBlockNumber
+ pool__feeTier
+ pool__liquidity
+ pool__sqrtPrice
+ pool__feeGrowthGlobal0X128
+ pool__feeGrowthGlobal1X128
+ pool__token0Price
+ pool__token1Price
+ pool__tick
+ pool__observationIndex
+ pool__volumeToken0
+ pool__volumeToken1
+ pool__volumeUSD
+ pool__untrackedVolumeUSD
+ pool__feesUSD
+ pool__txCount
+ pool__collectedFeesToken0
+ pool__collectedFeesToken1
+ pool__collectedFeesUSD
+ pool__totalValueLockedToken0
+ pool__totalValueLockedToken1
+ pool__totalValueLockedETH
+ pool__totalValueLockedUSD
+ pool__totalValueLockedUSDUntracked
+ pool__isProtocolFeeEnabled
+ pool__liquidityProviderCount
+ tokenID
+ position
+ position__id
+ position__owner
+ position__liquidity
+ position__depositedToken0
+ position__depositedToken1
+ position__withdrawnToken0
+ position__withdrawnToken1
+ position__collectedToken0
+ position__collectedToken1
+ position__collectedFeesToken0
+ position__collectedFeesToken1
+ position__amountDepositedUSD
+ position__amountWithdrawnUSD
+ position__amountCollectedUSD
+ position__feeGrowthInside0LastX128
+ position__feeGrowthInside1LastX128
+ amount0
+ amount1
+ token0
+ token0__id
+ token0__symbol
+ token0__name
+ token0__decimals
+ token0__totalSupply
+ token0__volume
+ token0__volumeUSD
+ token0__untrackedVolumeUSD
+ token0__feesUSD
+ token0__txCount
+ token0__poolCount
+ token0__totalValueLocked
+ token0__totalValueLockedUSD
+ token0__totalValueLockedUSDUntracked
+ token0__derivedETH
+ token1
+ token1__id
+ token1__symbol
+ token1__name
+ token1__decimals
+ token1__totalSupply
+ token1__volume
+ token1__volumeUSD
+ token1__untrackedVolumeUSD
+ token1__feesUSD
+ token1__txCount
+ token1__poolCount
+ token1__totalValueLocked
+ token1__totalValueLockedUSD
+ token1__totalValueLockedUSDUntracked
+ token1__derivedETH
+ timeStamp
+ transaction
+ transaction__id
+ transaction__blockNumber
+ transaction__timestamp
+ transaction__gasUsed
+ transaction__gasPrice
+}
+
+input DecreaseEvent_filter {
+ id: ID
+ id_not: ID
+ id_gt: ID
+ id_lt: ID
+ id_gte: ID
+ id_lte: ID
+ id_in: [ID!]
+ id_not_in: [ID!]
+ pool: String
+ pool_not: String
+ pool_gt: String
+ pool_lt: String
+ pool_gte: String
+ pool_lte: String
+ pool_in: [String!]
+ pool_not_in: [String!]
+ pool_starts_with: String
+ pool_starts_with_nocase: String
+ pool_not_starts_with: String
+ pool_not_starts_with_nocase: String
+ pool_ends_with: String
+ pool_ends_with_nocase: String
+ pool_not_ends_with: String
+ pool_not_ends_with_nocase: String
+ pool_contains: String
+ pool_not_contains: String
+ pool_contains_nocase: String
+ pool_not_contains_nocase: String
+ pool_: Pool_filter
+ tokenID: BigInt
+ tokenID_not: BigInt
+ tokenID_gt: BigInt
+ tokenID_lt: BigInt
+ tokenID_gte: BigInt
+ tokenID_lte: BigInt
+ tokenID_in: [BigInt!]
+ tokenID_not_in: [BigInt!]
+ position: String
+ position_not: String
+ position_gt: String
+ position_lt: String
+ position_gte: String
+ position_lte: String
+ position_in: [String!]
+ position_not_in: [String!]
+ position_starts_with: String
+ position_starts_with_nocase: String
+ position_not_starts_with: String
+ position_not_starts_with_nocase: String
+ position_ends_with: String
+ position_ends_with_nocase: String
+ position_not_ends_with: String
+ position_not_ends_with_nocase: String
+ position_contains: String
+ position_not_contains: String
+ position_contains_nocase: String
+ position_not_contains_nocase: String
+ position_: Position_filter
+ amount0: BigInt
+ amount0_not: BigInt
+ amount0_gt: BigInt
+ amount0_lt: BigInt
+ amount0_gte: BigInt
+ amount0_lte: BigInt
+ amount0_in: [BigInt!]
+ amount0_not_in: [BigInt!]
+ amount1: BigInt
+ amount1_not: BigInt
+ amount1_gt: BigInt
+ amount1_lt: BigInt
+ amount1_gte: BigInt
+ amount1_lte: BigInt
+ amount1_in: [BigInt!]
+ amount1_not_in: [BigInt!]
+ token0: String
+ token0_not: String
+ token0_gt: String
+ token0_lt: String
+ token0_gte: String
+ token0_lte: String
+ token0_in: [String!]
+ token0_not_in: [String!]
+ token0_starts_with: String
+ token0_starts_with_nocase: String
+ token0_not_starts_with: String
+ token0_not_starts_with_nocase: String
+ token0_ends_with: String
+ token0_ends_with_nocase: String
+ token0_not_ends_with: String
+ token0_not_ends_with_nocase: String
+ token0_contains: String
+ token0_not_contains: String
+ token0_contains_nocase: String
+ token0_not_contains_nocase: String
+ token0_: Token_filter
+ token1: String
+ token1_not: String
+ token1_gt: String
+ token1_lt: String
+ token1_gte: String
+ token1_lte: String
+ token1_in: [String!]
+ token1_not_in: [String!]
+ token1_starts_with: String
+ token1_starts_with_nocase: String
+ token1_not_starts_with: String
+ token1_not_starts_with_nocase: String
+ token1_ends_with: String
+ token1_ends_with_nocase: String
+ token1_not_ends_with: String
+ token1_not_ends_with_nocase: String
+ token1_contains: String
+ token1_not_contains: String
+ token1_contains_nocase: String
+ token1_not_contains_nocase: String
+ token1_: Token_filter
+ timeStamp: BigInt
+ timeStamp_not: BigInt
+ timeStamp_gt: BigInt
+ timeStamp_lt: BigInt
+ timeStamp_gte: BigInt
+ timeStamp_lte: BigInt
+ timeStamp_in: [BigInt!]
+ timeStamp_not_in: [BigInt!]
+ transaction: String
+ transaction_not: String
+ transaction_gt: String
+ transaction_lt: String
+ transaction_gte: String
+ transaction_lte: String
+ transaction_in: [String!]
+ transaction_not_in: [String!]
+ transaction_starts_with: String
+ transaction_starts_with_nocase: String
+ transaction_not_starts_with: String
+ transaction_not_starts_with_nocase: String
+ transaction_ends_with: String
+ transaction_ends_with_nocase: String
+ transaction_not_ends_with: String
+ transaction_not_ends_with_nocase: String
+ transaction_contains: String
+ transaction_not_contains: String
+ transaction_contains_nocase: String
+ transaction_not_contains_nocase: String
+ transaction_: Transaction_filter
+ _change_block: BlockChangedFilter
+ and: [DecreaseEvent_filter]
+ or: [DecreaseEvent_filter]
+}
+
+enum SetProtocolFeeEvent_orderBy {
+ id
+ pool
+ pool__id
+ pool__createdAtTimestamp
+ pool__createdAtBlockNumber
+ pool__feeTier
+ pool__liquidity
+ pool__sqrtPrice
+ pool__feeGrowthGlobal0X128
+ pool__feeGrowthGlobal1X128
+ pool__token0Price
+ pool__token1Price
+ pool__tick
+ pool__observationIndex
+ pool__volumeToken0
+ pool__volumeToken1
+ pool__volumeUSD
+ pool__untrackedVolumeUSD
+ pool__feesUSD
+ pool__txCount
+ pool__collectedFeesToken0
+ pool__collectedFeesToken1
+ pool__collectedFeesUSD
+ pool__totalValueLockedToken0
+ pool__totalValueLockedToken1
+ pool__totalValueLockedETH
+ pool__totalValueLockedUSD
+ pool__totalValueLockedUSDUntracked
+ pool__isProtocolFeeEnabled
+ pool__liquidityProviderCount
+ logIndex
+ new0
+ new1
+ old0
+ old1
+ timestamp
+}
+
+input SetProtocolFeeEvent_filter {
+ id: ID
+ id_not: ID
+ id_gt: ID
+ id_lt: ID
+ id_gte: ID
+ id_lte: ID
+ id_in: [ID!]
+ id_not_in: [ID!]
+ pool: String
+ pool_not: String
+ pool_gt: String
+ pool_lt: String
+ pool_gte: String
+ pool_lte: String
+ pool_in: [String!]
+ pool_not_in: [String!]
+ pool_starts_with: String
+ pool_starts_with_nocase: String
+ pool_not_starts_with: String
+ pool_not_starts_with_nocase: String
+ pool_ends_with: String
+ pool_ends_with_nocase: String
+ pool_not_ends_with: String
+ pool_not_ends_with_nocase: String
+ pool_contains: String
+ pool_not_contains: String
+ pool_contains_nocase: String
+ pool_not_contains_nocase: String
+ pool_: Pool_filter
+ logIndex: BigInt
+ logIndex_not: BigInt
+ logIndex_gt: BigInt
+ logIndex_lt: BigInt
+ logIndex_gte: BigInt
+ logIndex_lte: BigInt
+ logIndex_in: [BigInt!]
+ logIndex_not_in: [BigInt!]
+ new0: BigInt
+ new0_not: BigInt
+ new0_gt: BigInt
+ new0_lt: BigInt
+ new0_gte: BigInt
+ new0_lte: BigInt
+ new0_in: [BigInt!]
+ new0_not_in: [BigInt!]
+ new1: BigInt
+ new1_not: BigInt
+ new1_gt: BigInt
+ new1_lt: BigInt
+ new1_gte: BigInt
+ new1_lte: BigInt
+ new1_in: [BigInt!]
+ new1_not_in: [BigInt!]
+ old0: BigInt
+ old0_not: BigInt
+ old0_gt: BigInt
+ old0_lt: BigInt
+ old0_gte: BigInt
+ old0_lte: BigInt
+ old0_in: [BigInt!]
+ old0_not_in: [BigInt!]
+ old1: BigInt
+ old1_not: BigInt
+ old1_gt: BigInt
+ old1_lt: BigInt
+ old1_gte: BigInt
+ old1_lte: BigInt
+ old1_in: [BigInt!]
+ old1_not_in: [BigInt!]
+ timestamp: BigInt
+ timestamp_not: BigInt
+ timestamp_gt: BigInt
+ timestamp_lt: BigInt
+ timestamp_gte: BigInt
+ timestamp_lte: BigInt
+ timestamp_in: [BigInt!]
+ timestamp_not_in: [BigInt!]
+ _change_block: BlockChangedFilter
+ and: [SetProtocolFeeEvent_filter]
+ or: [SetProtocolFeeEvent_filter]
+}
+
+type _MetaBlock_ {
+ hash: Bytes
+ number: Int!
+ timestamp: Int
+}
+
+type _Meta_ {
+ block: _MetaBlock_!
+ deployment: String!
+ hasIndexingErrors: Boolean!
+}
+
+type ResultState {
+ block: _Block_!
+ contractAddress: String!
+ cid: String!
+ kind: String!
+ data: String!
+}
+
+type SyncStatus {
+ latestIndexedBlockHash: String!
+ latestIndexedBlockNumber: Int!
+ latestCanonicalBlockHash: String!
+ latestCanonicalBlockNumber: Int!
+ initialIndexedBlockHash: String!
+ initialIndexedBlockNumber: Int!
+ latestProcessedBlockHash: String!
+ latestProcessedBlockNumber: Int!
+}
+
+type Query {
+ events(blockHash: String!, contractAddress: String!, name: String): [ResultEvent!]
+ eventsInRange(fromBlockNumber: Int!, toBlockNumber: Int!): [ResultEvent!]
+ factory(id: ID!, block: Block_height): Factory
+ factories(block: Block_height, where: Factory_filter, orderBy: Factory_orderBy, orderDirection: OrderDirection, first: Int = 100, skip: Int = 0): [Factory!]!
+ bundle(id: ID!, block: Block_height): Bundle
+ bundles(block: Block_height, where: Bundle_filter, orderBy: Bundle_orderBy, orderDirection: OrderDirection, first: Int = 100, skip: Int = 0): [Bundle!]!
+ token(id: ID!, block: Block_height): Token
+ tokens(block: Block_height, where: Token_filter, orderBy: Token_orderBy, orderDirection: OrderDirection, first: Int = 100, skip: Int = 0): [Token!]!
+ pool(id: ID!, block: Block_height): Pool
+ pools(block: Block_height, where: Pool_filter, orderBy: Pool_orderBy, orderDirection: OrderDirection, first: Int = 100, skip: Int = 0): [Pool!]!
+ tick(id: ID!, block: Block_height): Tick
+ ticks(block: Block_height, where: Tick_filter, orderBy: Tick_orderBy, orderDirection: OrderDirection, first: Int = 100, skip: Int = 0): [Tick!]!
+ position(id: ID!, block: Block_height): Position
+ positions(block: Block_height, where: Position_filter, orderBy: Position_orderBy, orderDirection: OrderDirection, first: Int = 100, skip: Int = 0): [Position!]!
+ positionSnapshot(id: ID!, block: Block_height): PositionSnapshot
+ positionSnapshots(block: Block_height, where: PositionSnapshot_filter, orderBy: PositionSnapshot_orderBy, orderDirection: OrderDirection, first: Int = 100, skip: Int = 0): [PositionSnapshot!]!
+ transaction(id: ID!, block: Block_height): Transaction
+ transactions(block: Block_height, where: Transaction_filter, orderBy: Transaction_orderBy, orderDirection: OrderDirection, first: Int = 100, skip: Int = 0): [Transaction!]!
+ mint(id: ID!, block: Block_height): Mint
+ mints(block: Block_height, where: Mint_filter, orderBy: Mint_orderBy, orderDirection: OrderDirection, first: Int = 100, skip: Int = 0): [Mint!]!
+ burn(id: ID!, block: Block_height): Burn
+ burns(block: Block_height, where: Burn_filter, orderBy: Burn_orderBy, orderDirection: OrderDirection, first: Int = 100, skip: Int = 0): [Burn!]!
+ swap(id: ID!, block: Block_height): Swap
+ swaps(block: Block_height, where: Swap_filter, orderBy: Swap_orderBy, orderDirection: OrderDirection, first: Int = 100, skip: Int = 0): [Swap!]!
+ collect(id: ID!, block: Block_height): Collect
+ collects(block: Block_height, where: Collect_filter, orderBy: Collect_orderBy, orderDirection: OrderDirection, first: Int = 100, skip: Int = 0): [Collect!]!
+ flash(id: ID!, block: Block_height): Flash
+ flashes(block: Block_height, where: Flash_filter, orderBy: Flash_orderBy, orderDirection: OrderDirection, first: Int = 100, skip: Int = 0): [Flash!]!
+ uniswapDayData(id: ID!, block: Block_height): UniswapDayData
+ uniswapDayDatas(block: Block_height, where: UniswapDayData_filter, orderBy: UniswapDayData_orderBy, orderDirection: OrderDirection, first: Int = 100, skip: Int = 0): [UniswapDayData!]!
+ poolDayData(id: ID!, block: Block_height): PoolDayData
+ poolDayDatas(block: Block_height, where: PoolDayData_filter, orderBy: PoolDayData_orderBy, orderDirection: OrderDirection, first: Int = 100, skip: Int = 0): [PoolDayData!]!
+ poolHourData(id: ID!, block: Block_height): PoolHourData
+ poolHourDatas(block: Block_height, where: PoolHourData_filter, orderBy: PoolHourData_orderBy, orderDirection: OrderDirection, first: Int = 100, skip: Int = 0): [PoolHourData!]!
+ tickHourData(id: ID!, block: Block_height): TickHourData
+ tickHourDatas(block: Block_height, where: TickHourData_filter, orderBy: TickHourData_orderBy, orderDirection: OrderDirection, first: Int = 100, skip: Int = 0): [TickHourData!]!
+ tickDayData(id: ID!, block: Block_height): TickDayData
+ tickDayDatas(block: Block_height, where: TickDayData_filter, orderBy: TickDayData_orderBy, orderDirection: OrderDirection, first: Int = 100, skip: Int = 0): [TickDayData!]!
+ tokenDayData(id: ID!, block: Block_height): TokenDayData
+ tokenDayDatas(block: Block_height, where: TokenDayData_filter, orderBy: TokenDayData_orderBy, orderDirection: OrderDirection, first: Int = 100, skip: Int = 0): [TokenDayData!]!
+ tokenHourData(id: ID!, block: Block_height): TokenHourData
+ tokenHourDatas(block: Block_height, where: TokenHourData_filter, orderBy: TokenHourData_orderBy, orderDirection: OrderDirection, first: Int = 100, skip: Int = 0): [TokenHourData!]!
+ increaseEvent(id: ID!, block: Block_height): IncreaseEvent
+ increaseEvents(block: Block_height, where: IncreaseEvent_filter, orderBy: IncreaseEvent_orderBy, orderDirection: OrderDirection, first: Int = 100, skip: Int = 0): [IncreaseEvent!]!
+ decreaseEvent(id: ID!, block: Block_height): DecreaseEvent
+ decreaseEvents(block: Block_height, where: DecreaseEvent_filter, orderBy: DecreaseEvent_orderBy, orderDirection: OrderDirection, first: Int = 100, skip: Int = 0): [DecreaseEvent!]!
+ setProtocolFeeEvent(id: ID!, block: Block_height): SetProtocolFeeEvent
+ setProtocolFeeEvents(block: Block_height, where: SetProtocolFeeEvent_filter, orderBy: SetProtocolFeeEvent_orderBy, orderDirection: OrderDirection, first: Int = 100, skip: Int = 0): [SetProtocolFeeEvent!]!
+ _meta(block: Block_height): _Meta_
+ getStateByCID(cid: String!): ResultState
+ getState(blockHash: String!, contractAddress: String!, kind: String): ResultState
+ getSyncStatus: SyncStatus
+}
+
+type Factory {
+ id: ID!
+ poolCount: BigInt!
+ txCount: BigInt!
+ totalVolumeUSD: BigDecimal!
+ totalVolumeETH: BigDecimal!
+ totalFeesUSD: BigDecimal!
+ totalFeesETH: BigDecimal!
+ untrackedVolumeUSD: BigDecimal!
+ totalValueLockedUSD: BigDecimal!
+ totalValueLockedETH: BigDecimal!
+ totalValueLockedUSDUntracked: BigDecimal!
+ totalValueLockedETHUntracked: BigDecimal!
+ owner: ID!
+}
+
+type Bundle {
+ id: ID!
+ ethPriceUSD: BigDecimal!
+}
+
+type Token {
+ id: ID!
+ symbol: String!
+ name: String!
+ decimals: BigInt!
+ totalSupply: BigInt!
+ volume: BigDecimal!
+ volumeUSD: BigDecimal!
+ untrackedVolumeUSD: BigDecimal!
+ feesUSD: BigDecimal!
+ txCount: BigInt!
+ poolCount: BigInt!
+ totalValueLocked: BigDecimal!
+ totalValueLockedUSD: BigDecimal!
+ totalValueLockedUSDUntracked: BigDecimal!
+ derivedETH: BigDecimal!
+ whitelistPools: [Pool!]!
+ tokenDayData: [TokenDayData!]!
+}
+
+type Pool {
+ id: ID!
+ createdAtTimestamp: BigInt!
+ createdAtBlockNumber: BigInt!
+ token0: Token!
+ token1: Token!
+ feeTier: BigInt!
+ liquidity: BigInt!
+ sqrtPrice: BigInt!
+ feeGrowthGlobal0X128: BigInt!
+ feeGrowthGlobal1X128: BigInt!
+ token0Price: BigDecimal!
+ token1Price: BigDecimal!
+ tick: BigInt
+ observationIndex: BigInt!
+ volumeToken0: BigDecimal!
+ volumeToken1: BigDecimal!
+ volumeUSD: BigDecimal!
+ untrackedVolumeUSD: BigDecimal!
+ feesUSD: BigDecimal!
+ txCount: BigInt!
+ collectedFeesToken0: BigDecimal!
+ collectedFeesToken1: BigDecimal!
+ collectedFeesUSD: BigDecimal!
+ totalValueLockedToken0: BigDecimal!
+ totalValueLockedToken1: BigDecimal!
+ totalValueLockedETH: BigDecimal!
+ totalValueLockedUSD: BigDecimal!
+ totalValueLockedUSDUntracked: BigDecimal!
+ isProtocolFeeEnabled: Boolean!
+ liquidityProviderCount: BigInt!
+ poolHourData: [PoolHourData!]!
+ poolDayData: [PoolDayData!]!
+ mints: [Mint!]!
+ burns: [Burn!]!
+ swaps: [Swap!]!
+ collects: [Collect!]!
+ ticks: [Tick!]!
+}
+
+type PoolHourData {
+ id: ID!
+ periodStartUnix: Int!
+ pool: Pool!
+ liquidity: BigInt!
+ sqrtPrice: BigInt!
+ token0Price: BigDecimal!
+ token1Price: BigDecimal!
+ tick: BigInt
+ feeGrowthGlobal0X128: BigInt!
+ feeGrowthGlobal1X128: BigInt!
+ tvlUSD: BigDecimal!
+ volumeToken0: BigDecimal!
+ volumeToken1: BigDecimal!
+ volumeUSD: BigDecimal!
+ feesUSD: BigDecimal!
+ txCount: BigInt!
+ open: BigDecimal!
+ high: BigDecimal!
+ low: BigDecimal!
+ close: BigDecimal!
+}
+
+type PoolDayData {
+ id: ID!
+ date: Int!
+ pool: Pool!
+ liquidity: BigInt!
+ sqrtPrice: BigInt!
+ token0Price: BigDecimal!
+ token1Price: BigDecimal!
+ tick: BigInt
+ feeGrowthGlobal0X128: BigInt!
+ feeGrowthGlobal1X128: BigInt!
+ tvlUSD: BigDecimal!
+ volumeToken0: BigDecimal!
+ volumeToken1: BigDecimal!
+ volumeUSD: BigDecimal!
+ feesUSD: BigDecimal!
+ txCount: BigInt!
+ open: BigDecimal!
+ high: BigDecimal!
+ low: BigDecimal!
+ close: BigDecimal!
+}
+
+type Mint {
+ id: ID!
+ transaction: Transaction!
+ timestamp: BigInt!
+ pool: Pool!
+ token0: Token!
+ token1: Token!
+ owner: Bytes!
+ sender: Bytes
+ origin: Bytes!
+ amount: BigInt!
+ amount0: BigDecimal!
+ amount1: BigDecimal!
+ amountUSD: BigDecimal
+ tickLower: BigInt!
+ tickUpper: BigInt!
+ logIndex: BigInt
+}
+
+type Transaction {
+ id: ID!
+ blockNumber: BigInt!
+ timestamp: BigInt!
+ gasUsed: BigInt!
+ gasPrice: BigInt!
+ mints: [Mint!]!
+ burns: [Burn!]!
+ swaps: [Swap!]!
+ flashed: [Flash!]!
+ collects: [Collect!]!
+}
+
+type Burn {
+ id: ID!
+ transaction: Transaction!
+ pool: Pool!
+ token0: Token!
+ token1: Token!
+ timestamp: BigInt!
+ owner: Bytes
+ origin: Bytes!
+ amount: BigInt!
+ amount0: BigDecimal!
+ amount1: BigDecimal!
+ amountUSD: BigDecimal
+ tickLower: BigInt!
+ tickUpper: BigInt!
+ logIndex: BigInt
+}
+
+type Swap {
+ id: ID!
+ transaction: Transaction!
+ timestamp: BigInt!
+ pool: Pool!
+ token0: Token!
+ token1: Token!
+ sender: Bytes!
+ recipient: Bytes!
+ origin: Bytes!
+ amount0: BigDecimal!
+ amount1: BigDecimal!
+ amountUSD: BigDecimal!
+ sqrtPriceX96: BigInt!
+ tick: BigInt!
+ logIndex: BigInt
+}
+
+type Flash {
+ id: ID!
+ transaction: Transaction!
+ timestamp: BigInt!
+ pool: Pool!
+ sender: Bytes!
+ recipient: Bytes!
+ amount0: BigDecimal!
+ amount1: BigDecimal!
+ amountUSD: BigDecimal!
+ amount0Paid: BigDecimal!
+ amount1Paid: BigDecimal!
+ logIndex: BigInt
+}
+
+type Collect {
+ id: ID!
+ transaction: Transaction!
+ timestamp: BigInt!
+ pool: Pool!
+ owner: Bytes
+ amount0: BigDecimal!
+ amount1: BigDecimal!
+ amountUSD: BigDecimal
+ tickLower: BigInt!
+ tickUpper: BigInt!
+ logIndex: BigInt
+}
+
+type Tick {
+ id: ID!
+ poolAddress: String
+ tickIdx: BigInt!
+ pool: Pool!
+ liquidityGross: BigInt!
+ liquidityNet: BigInt!
+ price0: BigDecimal!
+ price1: BigDecimal!
+ volumeToken0: BigDecimal!
+ volumeToken1: BigDecimal!
+ volumeUSD: BigDecimal!
+ untrackedVolumeUSD: BigDecimal!
+ feesUSD: BigDecimal!
+ collectedFeesToken0: BigDecimal!
+ collectedFeesToken1: BigDecimal!
+ collectedFeesUSD: BigDecimal!
+ createdAtTimestamp: BigInt!
+ createdAtBlockNumber: BigInt!
+ liquidityProviderCount: BigInt!
+ feeGrowthOutside0X128: BigInt!
+ feeGrowthOutside1X128: BigInt!
+}
+
+type TokenDayData {
+ id: ID!
+ date: Int!
+ token: Token!
+ volume: BigDecimal!
+ volumeUSD: BigDecimal!
+ untrackedVolumeUSD: BigDecimal!
+ totalValueLocked: BigDecimal!
+ totalValueLockedUSD: BigDecimal!
+ priceUSD: BigDecimal!
+ feesUSD: BigDecimal!
+ open: BigDecimal!
+ high: BigDecimal!
+ low: BigDecimal!
+ close: BigDecimal!
+}
+
+type Position {
+ id: ID!
+ owner: Bytes!
+ pool: Pool!
+ token0: Token!
+ token1: Token!
+ tickLower: Tick!
+ tickUpper: Tick!
+ liquidity: BigInt!
+ depositedToken0: BigDecimal!
+ depositedToken1: BigDecimal!
+ withdrawnToken0: BigDecimal!
+ withdrawnToken1: BigDecimal!
+ collectedToken0: BigDecimal!
+ collectedToken1: BigDecimal!
+ collectedFeesToken0: BigDecimal!
+ collectedFeesToken1: BigDecimal!
+ amountDepositedUSD: BigDecimal!
+ amountWithdrawnUSD: BigDecimal!
+ amountCollectedUSD: BigDecimal!
+ transaction: Transaction!
+ feeGrowthInside0LastX128: BigInt!
+ feeGrowthInside1LastX128: BigInt!
+ increaseEvents: [IncreaseEvent!]!
+ decreaseEvents: [IncreaseEvent!]!
+}
+
+type IncreaseEvent {
+ id: ID!
+ pool: Pool!
+ tokenID: BigInt!
+ position: Position!
+ amount0: BigInt!
+ amount1: BigInt!
+ token0: Token!
+ token1: Token!
+ timeStamp: BigInt!
+ transaction: Transaction!
+}
+
+type PositionSnapshot {
+ id: ID!
+ owner: Bytes!
+ pool: Pool!
+ position: Position!
+ blockNumber: BigInt!
+ timestamp: BigInt!
+ liquidity: BigInt!
+ depositedToken0: BigDecimal!
+ depositedToken1: BigDecimal!
+ withdrawnToken0: BigDecimal!
+ withdrawnToken1: BigDecimal!
+ collectedFeesToken0: BigDecimal!
+ collectedFeesToken1: BigDecimal!
+ transaction: Transaction!
+ feeGrowthInside0LastX128: BigInt!
+ feeGrowthInside1LastX128: BigInt!
+}
+
+type UniswapDayData {
+ id: ID!
+ date: Int!
+ volumeETH: BigDecimal!
+ volumeUSD: BigDecimal!
+ volumeUSDUntracked: BigDecimal!
+ feesUSD: BigDecimal!
+ txCount: BigInt!
+ tvlUSD: BigDecimal!
+}
+
+type TickHourData {
+ id: ID!
+ periodStartUnix: Int!
+ pool: Pool!
+ tick: Tick!
+ liquidityGross: BigInt!
+ liquidityNet: BigInt!
+ volumeToken0: BigDecimal!
+ volumeToken1: BigDecimal!
+ volumeUSD: BigDecimal!
+ feesUSD: BigDecimal!
+}
+
+type TickDayData {
+ id: ID!
+ date: Int!
+ pool: Pool!
+ tick: Tick!
+ liquidityGross: BigInt!
+ liquidityNet: BigInt!
+ volumeToken0: BigDecimal!
+ volumeToken1: BigDecimal!
+ volumeUSD: BigDecimal!
+ feesUSD: BigDecimal!
+ feeGrowthOutside0X128: BigInt!
+ feeGrowthOutside1X128: BigInt!
+}
+
+type TokenHourData {
+ id: ID!
+ periodStartUnix: Int!
+ token: Token!
+ volume: BigDecimal!
+ volumeUSD: BigDecimal!
+ untrackedVolumeUSD: BigDecimal!
+ totalValueLocked: BigDecimal!
+ totalValueLockedUSD: BigDecimal!
+ priceUSD: BigDecimal!
+ feesUSD: BigDecimal!
+ open: BigDecimal!
+ high: BigDecimal!
+ low: BigDecimal!
+ close: BigDecimal!
+}
+
+type DecreaseEvent {
+ id: ID!
+ pool: Pool!
+ tokenID: BigInt!
+ position: Position!
+ amount0: BigInt!
+ amount1: BigInt!
+ token0: Token!
+ token1: Token!
+ timeStamp: BigInt!
+ transaction: Transaction!
+}
+
+type SetProtocolFeeEvent {
+ id: ID!
+ pool: Pool!
+ logIndex: BigInt!
+ new0: BigInt!
+ new1: BigInt!
+ old0: BigInt!
+ old1: BigInt!
+ timestamp: BigInt!
+}
+
+type Mutation {
+ watchContract(address: String!, kind: String!, checkpoint: Boolean!, startingBlock: Int): Boolean!
+}
+
+type Subscription {
+ onEvent: ResultEvent!
+}
diff --git a/packages/v3-watcher/src/server.ts b/packages/v3-watcher/src/server.ts
new file mode 100644
index 0000000..679134f
--- /dev/null
+++ b/packages/v3-watcher/src/server.ts
@@ -0,0 +1,43 @@
+//
+// Copyright 2021 Vulcanize, Inc.
+//
+
+import fs from 'fs';
+import path from 'path';
+import 'reflect-metadata';
+import debug from 'debug';
+
+import { ServerCmd } from '@cerc-io/cli';
+import { getGraphDbAndWatcher } from '@cerc-io/graph-node';
+
+import { createResolvers } from './resolvers';
+import { Indexer } from './indexer';
+import { Database, ENTITY_QUERY_TYPE_MAP, ENTITY_TO_LATEST_ENTITY_MAP } from './database';
+
+const log = debug('vulcanize:server');
+
+export const main = async (): Promise => {
+ const serverCmd = new ServerCmd();
+ await serverCmd.init(Database);
+
+ const { graphWatcher } = await getGraphDbAndWatcher(
+ serverCmd.config.server,
+ serverCmd.clients.ethClient,
+ serverCmd.ethProvider,
+ serverCmd.database.baseDatabase,
+ ENTITY_QUERY_TYPE_MAP,
+ ENTITY_TO_LATEST_ENTITY_MAP
+ );
+
+ await serverCmd.initIndexer(Indexer, graphWatcher);
+
+ const typeDefs = fs.readFileSync(path.join(__dirname, 'schema.gql')).toString();
+
+ return serverCmd.exec(createResolvers, typeDefs);
+};
+
+main().then(() => {
+ log('Starting server...');
+}).catch(err => {
+ log(err);
+});
diff --git a/packages/v3-watcher/src/types.ts b/packages/v3-watcher/src/types.ts
new file mode 100644
index 0000000..c456217
--- /dev/null
+++ b/packages/v3-watcher/src/types.ts
@@ -0,0 +1,3 @@
+//
+// Copyright 2021 Vulcanize, Inc.
+//
diff --git a/packages/v3-watcher/subgraph-build/Factory/Factory.wasm b/packages/v3-watcher/subgraph-build/Factory/Factory.wasm
new file mode 100644
index 0000000..ae80ef1
Binary files /dev/null and b/packages/v3-watcher/subgraph-build/Factory/Factory.wasm differ
diff --git a/packages/v3-watcher/subgraph-build/Factory/abis/ERC20.json b/packages/v3-watcher/subgraph-build/Factory/abis/ERC20.json
new file mode 100644
index 0000000..3b0ab2f
--- /dev/null
+++ b/packages/v3-watcher/subgraph-build/Factory/abis/ERC20.json
@@ -0,0 +1,222 @@
+[
+ {
+ "constant": true,
+ "inputs": [],
+ "name": "name",
+ "outputs": [
+ {
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "payable": false,
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "constant": false,
+ "inputs": [
+ {
+ "name": "_spender",
+ "type": "address"
+ },
+ {
+ "name": "_value",
+ "type": "uint256"
+ }
+ ],
+ "name": "approve",
+ "outputs": [
+ {
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "payable": false,
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "constant": true,
+ "inputs": [],
+ "name": "totalSupply",
+ "outputs": [
+ {
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "payable": false,
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "constant": false,
+ "inputs": [
+ {
+ "name": "_from",
+ "type": "address"
+ },
+ {
+ "name": "_to",
+ "type": "address"
+ },
+ {
+ "name": "_value",
+ "type": "uint256"
+ }
+ ],
+ "name": "transferFrom",
+ "outputs": [
+ {
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "payable": false,
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "constant": true,
+ "inputs": [],
+ "name": "decimals",
+ "outputs": [
+ {
+ "name": "",
+ "type": "uint8"
+ }
+ ],
+ "payable": false,
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "constant": true,
+ "inputs": [
+ {
+ "name": "_owner",
+ "type": "address"
+ }
+ ],
+ "name": "balanceOf",
+ "outputs": [
+ {
+ "name": "balance",
+ "type": "uint256"
+ }
+ ],
+ "payable": false,
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "constant": true,
+ "inputs": [],
+ "name": "symbol",
+ "outputs": [
+ {
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "payable": false,
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "constant": false,
+ "inputs": [
+ {
+ "name": "_to",
+ "type": "address"
+ },
+ {
+ "name": "_value",
+ "type": "uint256"
+ }
+ ],
+ "name": "transfer",
+ "outputs": [
+ {
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "payable": false,
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "constant": true,
+ "inputs": [
+ {
+ "name": "_owner",
+ "type": "address"
+ },
+ {
+ "name": "_spender",
+ "type": "address"
+ }
+ ],
+ "name": "allowance",
+ "outputs": [
+ {
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "payable": false,
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "payable": true,
+ "stateMutability": "payable",
+ "type": "fallback"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "Approval",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "Transfer",
+ "type": "event"
+ }
+]
\ No newline at end of file
diff --git a/packages/v3-watcher/subgraph-build/Factory/abis/ERC20NameBytes.json b/packages/v3-watcher/subgraph-build/Factory/abis/ERC20NameBytes.json
new file mode 100644
index 0000000..b9455e4
--- /dev/null
+++ b/packages/v3-watcher/subgraph-build/Factory/abis/ERC20NameBytes.json
@@ -0,0 +1,17 @@
+[
+ {
+ "constant": true,
+ "inputs": [],
+ "name": "name",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "payable": false,
+ "stateMutability": "view",
+ "type": "function"
+ }
+]
\ No newline at end of file
diff --git a/packages/v3-watcher/subgraph-build/Factory/abis/ERC20SymbolBytes.json b/packages/v3-watcher/subgraph-build/Factory/abis/ERC20SymbolBytes.json
new file mode 100644
index 0000000..8c329ca
--- /dev/null
+++ b/packages/v3-watcher/subgraph-build/Factory/abis/ERC20SymbolBytes.json
@@ -0,0 +1,17 @@
+[
+ {
+ "constant": true,
+ "inputs": [],
+ "name": "symbol",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "payable": false,
+ "stateMutability": "view",
+ "type": "function"
+ }
+]
\ No newline at end of file
diff --git a/packages/v3-watcher/subgraph-build/Factory/abis/factory.json b/packages/v3-watcher/subgraph-build/Factory/abis/factory.json
new file mode 100644
index 0000000..2503212
--- /dev/null
+++ b/packages/v3-watcher/subgraph-build/Factory/abis/factory.json
@@ -0,0 +1,198 @@
+[
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint24",
+ "name": "fee",
+ "type": "uint24"
+ },
+ {
+ "indexed": true,
+ "internalType": "int24",
+ "name": "tickSpacing",
+ "type": "int24"
+ }
+ ],
+ "name": "FeeAmountEnabled",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "oldOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnerChanged",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "token0",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "token1",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint24",
+ "name": "fee",
+ "type": "uint24"
+ },
+ {
+ "indexed": false,
+ "internalType": "int24",
+ "name": "tickSpacing",
+ "type": "int24"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "pool",
+ "type": "address"
+ }
+ ],
+ "name": "PoolCreated",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "tokenA",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "tokenB",
+ "type": "address"
+ },
+ {
+ "internalType": "uint24",
+ "name": "fee",
+ "type": "uint24"
+ }
+ ],
+ "name": "createPool",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "pool",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint24",
+ "name": "fee",
+ "type": "uint24"
+ },
+ {
+ "internalType": "int24",
+ "name": "tickSpacing",
+ "type": "int24"
+ }
+ ],
+ "name": "enableFeeAmount",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint24",
+ "name": "fee",
+ "type": "uint24"
+ }
+ ],
+ "name": "feeAmountTickSpacing",
+ "outputs": [
+ {
+ "internalType": "int24",
+ "name": "",
+ "type": "int24"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "tokenA",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "tokenB",
+ "type": "address"
+ },
+ {
+ "internalType": "uint24",
+ "name": "fee",
+ "type": "uint24"
+ }
+ ],
+ "name": "getPool",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "pool",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_owner",
+ "type": "address"
+ }
+ ],
+ "name": "setOwner",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+]
\ No newline at end of file
diff --git a/packages/v3-watcher/subgraph-build/Factory/abis/pool.json b/packages/v3-watcher/subgraph-build/Factory/abis/pool.json
new file mode 100644
index 0000000..c87d64d
--- /dev/null
+++ b/packages/v3-watcher/subgraph-build/Factory/abis/pool.json
@@ -0,0 +1,988 @@
+[
+ {
+ "inputs": [],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "int24",
+ "name": "tickLower",
+ "type": "int24"
+ },
+ {
+ "indexed": true,
+ "internalType": "int24",
+ "name": "tickUpper",
+ "type": "int24"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint128",
+ "name": "amount",
+ "type": "uint128"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount0",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount1",
+ "type": "uint256"
+ }
+ ],
+ "name": "Burn",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "recipient",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "int24",
+ "name": "tickLower",
+ "type": "int24"
+ },
+ {
+ "indexed": true,
+ "internalType": "int24",
+ "name": "tickUpper",
+ "type": "int24"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint128",
+ "name": "amount0",
+ "type": "uint128"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint128",
+ "name": "amount1",
+ "type": "uint128"
+ }
+ ],
+ "name": "Collect",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "recipient",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint128",
+ "name": "amount0",
+ "type": "uint128"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint128",
+ "name": "amount1",
+ "type": "uint128"
+ }
+ ],
+ "name": "CollectProtocol",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "recipient",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount0",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount1",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "paid0",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "paid1",
+ "type": "uint256"
+ }
+ ],
+ "name": "Flash",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint16",
+ "name": "observationCardinalityNextOld",
+ "type": "uint16"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint16",
+ "name": "observationCardinalityNextNew",
+ "type": "uint16"
+ }
+ ],
+ "name": "IncreaseObservationCardinalityNext",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint160",
+ "name": "sqrtPriceX96",
+ "type": "uint160"
+ },
+ {
+ "indexed": false,
+ "internalType": "int24",
+ "name": "tick",
+ "type": "int24"
+ }
+ ],
+ "name": "Initialize",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "int24",
+ "name": "tickLower",
+ "type": "int24"
+ },
+ {
+ "indexed": true,
+ "internalType": "int24",
+ "name": "tickUpper",
+ "type": "int24"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint128",
+ "name": "amount",
+ "type": "uint128"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount0",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount1",
+ "type": "uint256"
+ }
+ ],
+ "name": "Mint",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint8",
+ "name": "feeProtocol0Old",
+ "type": "uint8"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint8",
+ "name": "feeProtocol1Old",
+ "type": "uint8"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint8",
+ "name": "feeProtocol0New",
+ "type": "uint8"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint8",
+ "name": "feeProtocol1New",
+ "type": "uint8"
+ }
+ ],
+ "name": "SetFeeProtocol",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "recipient",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "int256",
+ "name": "amount0",
+ "type": "int256"
+ },
+ {
+ "indexed": false,
+ "internalType": "int256",
+ "name": "amount1",
+ "type": "int256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint160",
+ "name": "sqrtPriceX96",
+ "type": "uint160"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint128",
+ "name": "liquidity",
+ "type": "uint128"
+ },
+ {
+ "indexed": false,
+ "internalType": "int24",
+ "name": "tick",
+ "type": "int24"
+ }
+ ],
+ "name": "Swap",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "int24",
+ "name": "tickLower",
+ "type": "int24"
+ },
+ {
+ "internalType": "int24",
+ "name": "tickUpper",
+ "type": "int24"
+ },
+ {
+ "internalType": "uint128",
+ "name": "amount",
+ "type": "uint128"
+ }
+ ],
+ "name": "burn",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount0",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount1",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "recipient",
+ "type": "address"
+ },
+ {
+ "internalType": "int24",
+ "name": "tickLower",
+ "type": "int24"
+ },
+ {
+ "internalType": "int24",
+ "name": "tickUpper",
+ "type": "int24"
+ },
+ {
+ "internalType": "uint128",
+ "name": "amount0Requested",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint128",
+ "name": "amount1Requested",
+ "type": "uint128"
+ }
+ ],
+ "name": "collect",
+ "outputs": [
+ {
+ "internalType": "uint128",
+ "name": "amount0",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint128",
+ "name": "amount1",
+ "type": "uint128"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "recipient",
+ "type": "address"
+ },
+ {
+ "internalType": "uint128",
+ "name": "amount0Requested",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint128",
+ "name": "amount1Requested",
+ "type": "uint128"
+ }
+ ],
+ "name": "collectProtocol",
+ "outputs": [
+ {
+ "internalType": "uint128",
+ "name": "amount0",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint128",
+ "name": "amount1",
+ "type": "uint128"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "factory",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "fee",
+ "outputs": [
+ {
+ "internalType": "uint24",
+ "name": "",
+ "type": "uint24"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "feeGrowthGlobal0X128",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "feeGrowthGlobal1X128",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "recipient",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount0",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount1",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "data",
+ "type": "bytes"
+ }
+ ],
+ "name": "flash",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint16",
+ "name": "observationCardinalityNext",
+ "type": "uint16"
+ }
+ ],
+ "name": "increaseObservationCardinalityNext",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint160",
+ "name": "sqrtPriceX96",
+ "type": "uint160"
+ }
+ ],
+ "name": "initialize",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "liquidity",
+ "outputs": [
+ {
+ "internalType": "uint128",
+ "name": "",
+ "type": "uint128"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "maxLiquidityPerTick",
+ "outputs": [
+ {
+ "internalType": "uint128",
+ "name": "",
+ "type": "uint128"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "recipient",
+ "type": "address"
+ },
+ {
+ "internalType": "int24",
+ "name": "tickLower",
+ "type": "int24"
+ },
+ {
+ "internalType": "int24",
+ "name": "tickUpper",
+ "type": "int24"
+ },
+ {
+ "internalType": "uint128",
+ "name": "amount",
+ "type": "uint128"
+ },
+ {
+ "internalType": "bytes",
+ "name": "data",
+ "type": "bytes"
+ }
+ ],
+ "name": "mint",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount0",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount1",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ }
+ ],
+ "name": "observations",
+ "outputs": [
+ {
+ "internalType": "uint32",
+ "name": "blockTimestamp",
+ "type": "uint32"
+ },
+ {
+ "internalType": "int56",
+ "name": "tickCumulative",
+ "type": "int56"
+ },
+ {
+ "internalType": "uint160",
+ "name": "secondsPerLiquidityCumulativeX128",
+ "type": "uint160"
+ },
+ {
+ "internalType": "bool",
+ "name": "initialized",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint32[]",
+ "name": "secondsAgos",
+ "type": "uint32[]"
+ }
+ ],
+ "name": "observe",
+ "outputs": [
+ {
+ "internalType": "int56[]",
+ "name": "tickCumulatives",
+ "type": "int56[]"
+ },
+ {
+ "internalType": "uint160[]",
+ "name": "secondsPerLiquidityCumulativeX128s",
+ "type": "uint160[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "key",
+ "type": "bytes32"
+ }
+ ],
+ "name": "positions",
+ "outputs": [
+ {
+ "internalType": "uint128",
+ "name": "_liquidity",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint256",
+ "name": "feeGrowthInside0LastX128",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "feeGrowthInside1LastX128",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint128",
+ "name": "tokensOwed0",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint128",
+ "name": "tokensOwed1",
+ "type": "uint128"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "protocolFees",
+ "outputs": [
+ {
+ "internalType": "uint128",
+ "name": "token0",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint128",
+ "name": "token1",
+ "type": "uint128"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "feeProtocol0",
+ "type": "uint8"
+ },
+ {
+ "internalType": "uint8",
+ "name": "feeProtocol1",
+ "type": "uint8"
+ }
+ ],
+ "name": "setFeeProtocol",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "slot0",
+ "outputs": [
+ {
+ "internalType": "uint160",
+ "name": "sqrtPriceX96",
+ "type": "uint160"
+ },
+ {
+ "internalType": "int24",
+ "name": "tick",
+ "type": "int24"
+ },
+ {
+ "internalType": "uint16",
+ "name": "observationIndex",
+ "type": "uint16"
+ },
+ {
+ "internalType": "uint16",
+ "name": "observationCardinality",
+ "type": "uint16"
+ },
+ {
+ "internalType": "uint16",
+ "name": "observationCardinalityNext",
+ "type": "uint16"
+ },
+ {
+ "internalType": "uint8",
+ "name": "feeProtocol",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bool",
+ "name": "unlocked",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "int24",
+ "name": "tickLower",
+ "type": "int24"
+ },
+ {
+ "internalType": "int24",
+ "name": "tickUpper",
+ "type": "int24"
+ }
+ ],
+ "name": "snapshotCumulativesInside",
+ "outputs": [
+ {
+ "internalType": "int56",
+ "name": "tickCumulativeInside",
+ "type": "int56"
+ },
+ {
+ "internalType": "uint160",
+ "name": "secondsPerLiquidityInsideX128",
+ "type": "uint160"
+ },
+ {
+ "internalType": "uint32",
+ "name": "secondsInside",
+ "type": "uint32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "recipient",
+ "type": "address"
+ },
+ {
+ "internalType": "bool",
+ "name": "zeroForOne",
+ "type": "bool"
+ },
+ {
+ "internalType": "int256",
+ "name": "amountSpecified",
+ "type": "int256"
+ },
+ {
+ "internalType": "uint160",
+ "name": "sqrtPriceLimitX96",
+ "type": "uint160"
+ },
+ {
+ "internalType": "bytes",
+ "name": "data",
+ "type": "bytes"
+ }
+ ],
+ "name": "swap",
+ "outputs": [
+ {
+ "internalType": "int256",
+ "name": "amount0",
+ "type": "int256"
+ },
+ {
+ "internalType": "int256",
+ "name": "amount1",
+ "type": "int256"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "int16",
+ "name": "wordPosition",
+ "type": "int16"
+ }
+ ],
+ "name": "tickBitmap",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "tickSpacing",
+ "outputs": [
+ {
+ "internalType": "int24",
+ "name": "",
+ "type": "int24"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "int24",
+ "name": "tick",
+ "type": "int24"
+ }
+ ],
+ "name": "ticks",
+ "outputs": [
+ {
+ "internalType": "uint128",
+ "name": "liquidityGross",
+ "type": "uint128"
+ },
+ {
+ "internalType": "int128",
+ "name": "liquidityNet",
+ "type": "int128"
+ },
+ {
+ "internalType": "uint256",
+ "name": "feeGrowthOutside0X128",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "feeGrowthOutside1X128",
+ "type": "uint256"
+ },
+ {
+ "internalType": "int56",
+ "name": "tickCumulativeOutside",
+ "type": "int56"
+ },
+ {
+ "internalType": "uint160",
+ "name": "secondsPerLiquidityOutsideX128",
+ "type": "uint160"
+ },
+ {
+ "internalType": "uint32",
+ "name": "secondsOutside",
+ "type": "uint32"
+ },
+ {
+ "internalType": "bool",
+ "name": "initialized",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "token0",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "token1",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ }
+]
\ No newline at end of file
diff --git a/packages/v3-watcher/subgraph-build/NonfungiblePositionManager/NonfungiblePositionManager.wasm b/packages/v3-watcher/subgraph-build/NonfungiblePositionManager/NonfungiblePositionManager.wasm
new file mode 100644
index 0000000..47d8567
Binary files /dev/null and b/packages/v3-watcher/subgraph-build/NonfungiblePositionManager/NonfungiblePositionManager.wasm differ
diff --git a/packages/v3-watcher/subgraph-build/NonfungiblePositionManager/abis/ERC20.json b/packages/v3-watcher/subgraph-build/NonfungiblePositionManager/abis/ERC20.json
new file mode 100644
index 0000000..3b0ab2f
--- /dev/null
+++ b/packages/v3-watcher/subgraph-build/NonfungiblePositionManager/abis/ERC20.json
@@ -0,0 +1,222 @@
+[
+ {
+ "constant": true,
+ "inputs": [],
+ "name": "name",
+ "outputs": [
+ {
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "payable": false,
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "constant": false,
+ "inputs": [
+ {
+ "name": "_spender",
+ "type": "address"
+ },
+ {
+ "name": "_value",
+ "type": "uint256"
+ }
+ ],
+ "name": "approve",
+ "outputs": [
+ {
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "payable": false,
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "constant": true,
+ "inputs": [],
+ "name": "totalSupply",
+ "outputs": [
+ {
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "payable": false,
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "constant": false,
+ "inputs": [
+ {
+ "name": "_from",
+ "type": "address"
+ },
+ {
+ "name": "_to",
+ "type": "address"
+ },
+ {
+ "name": "_value",
+ "type": "uint256"
+ }
+ ],
+ "name": "transferFrom",
+ "outputs": [
+ {
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "payable": false,
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "constant": true,
+ "inputs": [],
+ "name": "decimals",
+ "outputs": [
+ {
+ "name": "",
+ "type": "uint8"
+ }
+ ],
+ "payable": false,
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "constant": true,
+ "inputs": [
+ {
+ "name": "_owner",
+ "type": "address"
+ }
+ ],
+ "name": "balanceOf",
+ "outputs": [
+ {
+ "name": "balance",
+ "type": "uint256"
+ }
+ ],
+ "payable": false,
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "constant": true,
+ "inputs": [],
+ "name": "symbol",
+ "outputs": [
+ {
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "payable": false,
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "constant": false,
+ "inputs": [
+ {
+ "name": "_to",
+ "type": "address"
+ },
+ {
+ "name": "_value",
+ "type": "uint256"
+ }
+ ],
+ "name": "transfer",
+ "outputs": [
+ {
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "payable": false,
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "constant": true,
+ "inputs": [
+ {
+ "name": "_owner",
+ "type": "address"
+ },
+ {
+ "name": "_spender",
+ "type": "address"
+ }
+ ],
+ "name": "allowance",
+ "outputs": [
+ {
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "payable": false,
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "payable": true,
+ "stateMutability": "payable",
+ "type": "fallback"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "Approval",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "Transfer",
+ "type": "event"
+ }
+]
\ No newline at end of file
diff --git a/packages/v3-watcher/subgraph-build/NonfungiblePositionManager/abis/NonfungiblePositionManager.json b/packages/v3-watcher/subgraph-build/NonfungiblePositionManager/abis/NonfungiblePositionManager.json
new file mode 100644
index 0000000..29cef05
--- /dev/null
+++ b/packages/v3-watcher/subgraph-build/NonfungiblePositionManager/abis/NonfungiblePositionManager.json
@@ -0,0 +1,1193 @@
+[
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_factory",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_WETH9",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_tokenDescriptor_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "approved",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "Approval",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bool",
+ "name": "approved",
+ "type": "bool"
+ }
+ ],
+ "name": "ApprovalForAll",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "recipient",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount0",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount1",
+ "type": "uint256"
+ }
+ ],
+ "name": "Collect",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint128",
+ "name": "liquidity",
+ "type": "uint128"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount0",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount1",
+ "type": "uint256"
+ }
+ ],
+ "name": "DecreaseLiquidity",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint128",
+ "name": "liquidity",
+ "type": "uint128"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount0",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount1",
+ "type": "uint256"
+ }
+ ],
+ "name": "IncreaseLiquidity",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "Transfer",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "DOMAIN_SEPARATOR",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "PERMIT_TYPEHASH",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "WETH9",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "approve",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ }
+ ],
+ "name": "balanceOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "baseURI",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "pure",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "burn",
+ "outputs": [],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "recipient",
+ "type": "address"
+ },
+ {
+ "internalType": "uint128",
+ "name": "amount0Max",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint128",
+ "name": "amount1Max",
+ "type": "uint128"
+ }
+ ],
+ "name": "collect",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount0",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount1",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "tokenA",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "tokenB",
+ "type": "address"
+ },
+ {
+ "internalType": "uint24",
+ "name": "fee",
+ "type": "uint24"
+ },
+ {
+ "internalType": "uint160",
+ "name": "sqrtPriceX96",
+ "type": "uint160"
+ }
+ ],
+ "name": "createAndInitializePoolIfNecessary",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "pool",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint128",
+ "name": "liquidity",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount0Min",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount1Min",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "deadline",
+ "type": "uint256"
+ }
+ ],
+ "name": "decreaseLiquidity",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount0",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount1",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "factory",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getApproved",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount0Desired",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount1Desired",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount0Min",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount1Min",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "deadline",
+ "type": "uint256"
+ }
+ ],
+ "name": "increaseLiquidity",
+ "outputs": [
+ {
+ "internalType": "uint128",
+ "name": "liquidity",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount0",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount1",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ }
+ ],
+ "name": "isApprovedForAll",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "token0",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "token1",
+ "type": "address"
+ },
+ {
+ "internalType": "uint24",
+ "name": "fee",
+ "type": "uint24"
+ },
+ {
+ "internalType": "int24",
+ "name": "tickLower",
+ "type": "int24"
+ },
+ {
+ "internalType": "int24",
+ "name": "tickUpper",
+ "type": "int24"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount0Desired",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount1Desired",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount0Min",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount1Min",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "recipient",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "deadline",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct INonfungiblePositionManager.MintParams",
+ "name": "params",
+ "type": "tuple"
+ }
+ ],
+ "name": "mint",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint128",
+ "name": "liquidity",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount0",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount1",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes[]",
+ "name": "data",
+ "type": "bytes[]"
+ }
+ ],
+ "name": "multicall",
+ "outputs": [
+ {
+ "internalType": "bytes[]",
+ "name": "results",
+ "type": "bytes[]"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "name",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "ownerOf",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "deadline",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ }
+ ],
+ "name": "permit",
+ "outputs": [],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "positions",
+ "outputs": [
+ {
+ "internalType": "uint96",
+ "name": "nonce",
+ "type": "uint96"
+ },
+ {
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "token0",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "token1",
+ "type": "address"
+ },
+ {
+ "internalType": "uint24",
+ "name": "fee",
+ "type": "uint24"
+ },
+ {
+ "internalType": "int24",
+ "name": "tickLower",
+ "type": "int24"
+ },
+ {
+ "internalType": "int24",
+ "name": "tickUpper",
+ "type": "int24"
+ },
+ {
+ "internalType": "uint128",
+ "name": "liquidity",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint256",
+ "name": "feeGrowthInside0LastX128",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "feeGrowthInside1LastX128",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint128",
+ "name": "tokensOwed0",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint128",
+ "name": "tokensOwed1",
+ "type": "uint128"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "safeTransferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_data",
+ "type": "bytes"
+ }
+ ],
+ "name": "safeTransferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "token",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "deadline",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ }
+ ],
+ "name": "selfPermit",
+ "outputs": [],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "token",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "nonce",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "expiry",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ }
+ ],
+ "name": "selfPermitAllowed",
+ "outputs": [],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "token",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "nonce",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "expiry",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ }
+ ],
+ "name": "selfPermitAllowedIfNecessary",
+ "outputs": [],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "token",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "deadline",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ }
+ ],
+ "name": "selfPermitIfNecessary",
+ "outputs": [],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ },
+ {
+ "internalType": "bool",
+ "name": "approved",
+ "type": "bool"
+ }
+ ],
+ "name": "setApprovalForAll",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "token",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amountMinimum",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "recipient",
+ "type": "address"
+ }
+ ],
+ "name": "sweepToken",
+ "outputs": [],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "symbol",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenByIndex",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenOfOwnerByIndex",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenURI",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalSupply",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "transferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount0Owed",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount1Owed",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "data",
+ "type": "bytes"
+ }
+ ],
+ "name": "uniswapV3MintCallback",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amountMinimum",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "recipient",
+ "type": "address"
+ }
+ ],
+ "name": "unwrapWETH9",
+ "outputs": [],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "stateMutability": "payable",
+ "type": "receive"
+ }
+]
\ No newline at end of file
diff --git a/packages/v3-watcher/subgraph-build/NonfungiblePositionManager/abis/factory.json b/packages/v3-watcher/subgraph-build/NonfungiblePositionManager/abis/factory.json
new file mode 100644
index 0000000..2503212
--- /dev/null
+++ b/packages/v3-watcher/subgraph-build/NonfungiblePositionManager/abis/factory.json
@@ -0,0 +1,198 @@
+[
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint24",
+ "name": "fee",
+ "type": "uint24"
+ },
+ {
+ "indexed": true,
+ "internalType": "int24",
+ "name": "tickSpacing",
+ "type": "int24"
+ }
+ ],
+ "name": "FeeAmountEnabled",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "oldOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnerChanged",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "token0",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "token1",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint24",
+ "name": "fee",
+ "type": "uint24"
+ },
+ {
+ "indexed": false,
+ "internalType": "int24",
+ "name": "tickSpacing",
+ "type": "int24"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "pool",
+ "type": "address"
+ }
+ ],
+ "name": "PoolCreated",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "tokenA",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "tokenB",
+ "type": "address"
+ },
+ {
+ "internalType": "uint24",
+ "name": "fee",
+ "type": "uint24"
+ }
+ ],
+ "name": "createPool",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "pool",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint24",
+ "name": "fee",
+ "type": "uint24"
+ },
+ {
+ "internalType": "int24",
+ "name": "tickSpacing",
+ "type": "int24"
+ }
+ ],
+ "name": "enableFeeAmount",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint24",
+ "name": "fee",
+ "type": "uint24"
+ }
+ ],
+ "name": "feeAmountTickSpacing",
+ "outputs": [
+ {
+ "internalType": "int24",
+ "name": "",
+ "type": "int24"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "tokenA",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "tokenB",
+ "type": "address"
+ },
+ {
+ "internalType": "uint24",
+ "name": "fee",
+ "type": "uint24"
+ }
+ ],
+ "name": "getPool",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "pool",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_owner",
+ "type": "address"
+ }
+ ],
+ "name": "setOwner",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+]
\ No newline at end of file
diff --git a/packages/v3-watcher/subgraph-build/NonfungiblePositionManager/abis/pool.json b/packages/v3-watcher/subgraph-build/NonfungiblePositionManager/abis/pool.json
new file mode 100644
index 0000000..c87d64d
--- /dev/null
+++ b/packages/v3-watcher/subgraph-build/NonfungiblePositionManager/abis/pool.json
@@ -0,0 +1,988 @@
+[
+ {
+ "inputs": [],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "int24",
+ "name": "tickLower",
+ "type": "int24"
+ },
+ {
+ "indexed": true,
+ "internalType": "int24",
+ "name": "tickUpper",
+ "type": "int24"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint128",
+ "name": "amount",
+ "type": "uint128"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount0",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount1",
+ "type": "uint256"
+ }
+ ],
+ "name": "Burn",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "recipient",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "int24",
+ "name": "tickLower",
+ "type": "int24"
+ },
+ {
+ "indexed": true,
+ "internalType": "int24",
+ "name": "tickUpper",
+ "type": "int24"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint128",
+ "name": "amount0",
+ "type": "uint128"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint128",
+ "name": "amount1",
+ "type": "uint128"
+ }
+ ],
+ "name": "Collect",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "recipient",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint128",
+ "name": "amount0",
+ "type": "uint128"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint128",
+ "name": "amount1",
+ "type": "uint128"
+ }
+ ],
+ "name": "CollectProtocol",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "recipient",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount0",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount1",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "paid0",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "paid1",
+ "type": "uint256"
+ }
+ ],
+ "name": "Flash",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint16",
+ "name": "observationCardinalityNextOld",
+ "type": "uint16"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint16",
+ "name": "observationCardinalityNextNew",
+ "type": "uint16"
+ }
+ ],
+ "name": "IncreaseObservationCardinalityNext",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint160",
+ "name": "sqrtPriceX96",
+ "type": "uint160"
+ },
+ {
+ "indexed": false,
+ "internalType": "int24",
+ "name": "tick",
+ "type": "int24"
+ }
+ ],
+ "name": "Initialize",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "int24",
+ "name": "tickLower",
+ "type": "int24"
+ },
+ {
+ "indexed": true,
+ "internalType": "int24",
+ "name": "tickUpper",
+ "type": "int24"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint128",
+ "name": "amount",
+ "type": "uint128"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount0",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount1",
+ "type": "uint256"
+ }
+ ],
+ "name": "Mint",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint8",
+ "name": "feeProtocol0Old",
+ "type": "uint8"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint8",
+ "name": "feeProtocol1Old",
+ "type": "uint8"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint8",
+ "name": "feeProtocol0New",
+ "type": "uint8"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint8",
+ "name": "feeProtocol1New",
+ "type": "uint8"
+ }
+ ],
+ "name": "SetFeeProtocol",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "recipient",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "int256",
+ "name": "amount0",
+ "type": "int256"
+ },
+ {
+ "indexed": false,
+ "internalType": "int256",
+ "name": "amount1",
+ "type": "int256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint160",
+ "name": "sqrtPriceX96",
+ "type": "uint160"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint128",
+ "name": "liquidity",
+ "type": "uint128"
+ },
+ {
+ "indexed": false,
+ "internalType": "int24",
+ "name": "tick",
+ "type": "int24"
+ }
+ ],
+ "name": "Swap",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "int24",
+ "name": "tickLower",
+ "type": "int24"
+ },
+ {
+ "internalType": "int24",
+ "name": "tickUpper",
+ "type": "int24"
+ },
+ {
+ "internalType": "uint128",
+ "name": "amount",
+ "type": "uint128"
+ }
+ ],
+ "name": "burn",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount0",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount1",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "recipient",
+ "type": "address"
+ },
+ {
+ "internalType": "int24",
+ "name": "tickLower",
+ "type": "int24"
+ },
+ {
+ "internalType": "int24",
+ "name": "tickUpper",
+ "type": "int24"
+ },
+ {
+ "internalType": "uint128",
+ "name": "amount0Requested",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint128",
+ "name": "amount1Requested",
+ "type": "uint128"
+ }
+ ],
+ "name": "collect",
+ "outputs": [
+ {
+ "internalType": "uint128",
+ "name": "amount0",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint128",
+ "name": "amount1",
+ "type": "uint128"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "recipient",
+ "type": "address"
+ },
+ {
+ "internalType": "uint128",
+ "name": "amount0Requested",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint128",
+ "name": "amount1Requested",
+ "type": "uint128"
+ }
+ ],
+ "name": "collectProtocol",
+ "outputs": [
+ {
+ "internalType": "uint128",
+ "name": "amount0",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint128",
+ "name": "amount1",
+ "type": "uint128"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "factory",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "fee",
+ "outputs": [
+ {
+ "internalType": "uint24",
+ "name": "",
+ "type": "uint24"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "feeGrowthGlobal0X128",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "feeGrowthGlobal1X128",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "recipient",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount0",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount1",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "data",
+ "type": "bytes"
+ }
+ ],
+ "name": "flash",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint16",
+ "name": "observationCardinalityNext",
+ "type": "uint16"
+ }
+ ],
+ "name": "increaseObservationCardinalityNext",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint160",
+ "name": "sqrtPriceX96",
+ "type": "uint160"
+ }
+ ],
+ "name": "initialize",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "liquidity",
+ "outputs": [
+ {
+ "internalType": "uint128",
+ "name": "",
+ "type": "uint128"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "maxLiquidityPerTick",
+ "outputs": [
+ {
+ "internalType": "uint128",
+ "name": "",
+ "type": "uint128"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "recipient",
+ "type": "address"
+ },
+ {
+ "internalType": "int24",
+ "name": "tickLower",
+ "type": "int24"
+ },
+ {
+ "internalType": "int24",
+ "name": "tickUpper",
+ "type": "int24"
+ },
+ {
+ "internalType": "uint128",
+ "name": "amount",
+ "type": "uint128"
+ },
+ {
+ "internalType": "bytes",
+ "name": "data",
+ "type": "bytes"
+ }
+ ],
+ "name": "mint",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount0",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount1",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ }
+ ],
+ "name": "observations",
+ "outputs": [
+ {
+ "internalType": "uint32",
+ "name": "blockTimestamp",
+ "type": "uint32"
+ },
+ {
+ "internalType": "int56",
+ "name": "tickCumulative",
+ "type": "int56"
+ },
+ {
+ "internalType": "uint160",
+ "name": "secondsPerLiquidityCumulativeX128",
+ "type": "uint160"
+ },
+ {
+ "internalType": "bool",
+ "name": "initialized",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint32[]",
+ "name": "secondsAgos",
+ "type": "uint32[]"
+ }
+ ],
+ "name": "observe",
+ "outputs": [
+ {
+ "internalType": "int56[]",
+ "name": "tickCumulatives",
+ "type": "int56[]"
+ },
+ {
+ "internalType": "uint160[]",
+ "name": "secondsPerLiquidityCumulativeX128s",
+ "type": "uint160[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "key",
+ "type": "bytes32"
+ }
+ ],
+ "name": "positions",
+ "outputs": [
+ {
+ "internalType": "uint128",
+ "name": "_liquidity",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint256",
+ "name": "feeGrowthInside0LastX128",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "feeGrowthInside1LastX128",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint128",
+ "name": "tokensOwed0",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint128",
+ "name": "tokensOwed1",
+ "type": "uint128"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "protocolFees",
+ "outputs": [
+ {
+ "internalType": "uint128",
+ "name": "token0",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint128",
+ "name": "token1",
+ "type": "uint128"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "feeProtocol0",
+ "type": "uint8"
+ },
+ {
+ "internalType": "uint8",
+ "name": "feeProtocol1",
+ "type": "uint8"
+ }
+ ],
+ "name": "setFeeProtocol",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "slot0",
+ "outputs": [
+ {
+ "internalType": "uint160",
+ "name": "sqrtPriceX96",
+ "type": "uint160"
+ },
+ {
+ "internalType": "int24",
+ "name": "tick",
+ "type": "int24"
+ },
+ {
+ "internalType": "uint16",
+ "name": "observationIndex",
+ "type": "uint16"
+ },
+ {
+ "internalType": "uint16",
+ "name": "observationCardinality",
+ "type": "uint16"
+ },
+ {
+ "internalType": "uint16",
+ "name": "observationCardinalityNext",
+ "type": "uint16"
+ },
+ {
+ "internalType": "uint8",
+ "name": "feeProtocol",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bool",
+ "name": "unlocked",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "int24",
+ "name": "tickLower",
+ "type": "int24"
+ },
+ {
+ "internalType": "int24",
+ "name": "tickUpper",
+ "type": "int24"
+ }
+ ],
+ "name": "snapshotCumulativesInside",
+ "outputs": [
+ {
+ "internalType": "int56",
+ "name": "tickCumulativeInside",
+ "type": "int56"
+ },
+ {
+ "internalType": "uint160",
+ "name": "secondsPerLiquidityInsideX128",
+ "type": "uint160"
+ },
+ {
+ "internalType": "uint32",
+ "name": "secondsInside",
+ "type": "uint32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "recipient",
+ "type": "address"
+ },
+ {
+ "internalType": "bool",
+ "name": "zeroForOne",
+ "type": "bool"
+ },
+ {
+ "internalType": "int256",
+ "name": "amountSpecified",
+ "type": "int256"
+ },
+ {
+ "internalType": "uint160",
+ "name": "sqrtPriceLimitX96",
+ "type": "uint160"
+ },
+ {
+ "internalType": "bytes",
+ "name": "data",
+ "type": "bytes"
+ }
+ ],
+ "name": "swap",
+ "outputs": [
+ {
+ "internalType": "int256",
+ "name": "amount0",
+ "type": "int256"
+ },
+ {
+ "internalType": "int256",
+ "name": "amount1",
+ "type": "int256"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "int16",
+ "name": "wordPosition",
+ "type": "int16"
+ }
+ ],
+ "name": "tickBitmap",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "tickSpacing",
+ "outputs": [
+ {
+ "internalType": "int24",
+ "name": "",
+ "type": "int24"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "int24",
+ "name": "tick",
+ "type": "int24"
+ }
+ ],
+ "name": "ticks",
+ "outputs": [
+ {
+ "internalType": "uint128",
+ "name": "liquidityGross",
+ "type": "uint128"
+ },
+ {
+ "internalType": "int128",
+ "name": "liquidityNet",
+ "type": "int128"
+ },
+ {
+ "internalType": "uint256",
+ "name": "feeGrowthOutside0X128",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "feeGrowthOutside1X128",
+ "type": "uint256"
+ },
+ {
+ "internalType": "int56",
+ "name": "tickCumulativeOutside",
+ "type": "int56"
+ },
+ {
+ "internalType": "uint160",
+ "name": "secondsPerLiquidityOutsideX128",
+ "type": "uint160"
+ },
+ {
+ "internalType": "uint32",
+ "name": "secondsOutside",
+ "type": "uint32"
+ },
+ {
+ "internalType": "bool",
+ "name": "initialized",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "token0",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "token1",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ }
+]
\ No newline at end of file
diff --git a/packages/v3-watcher/subgraph-build/Pool/abis/ERC20.json b/packages/v3-watcher/subgraph-build/Pool/abis/ERC20.json
new file mode 100644
index 0000000..3b0ab2f
--- /dev/null
+++ b/packages/v3-watcher/subgraph-build/Pool/abis/ERC20.json
@@ -0,0 +1,222 @@
+[
+ {
+ "constant": true,
+ "inputs": [],
+ "name": "name",
+ "outputs": [
+ {
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "payable": false,
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "constant": false,
+ "inputs": [
+ {
+ "name": "_spender",
+ "type": "address"
+ },
+ {
+ "name": "_value",
+ "type": "uint256"
+ }
+ ],
+ "name": "approve",
+ "outputs": [
+ {
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "payable": false,
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "constant": true,
+ "inputs": [],
+ "name": "totalSupply",
+ "outputs": [
+ {
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "payable": false,
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "constant": false,
+ "inputs": [
+ {
+ "name": "_from",
+ "type": "address"
+ },
+ {
+ "name": "_to",
+ "type": "address"
+ },
+ {
+ "name": "_value",
+ "type": "uint256"
+ }
+ ],
+ "name": "transferFrom",
+ "outputs": [
+ {
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "payable": false,
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "constant": true,
+ "inputs": [],
+ "name": "decimals",
+ "outputs": [
+ {
+ "name": "",
+ "type": "uint8"
+ }
+ ],
+ "payable": false,
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "constant": true,
+ "inputs": [
+ {
+ "name": "_owner",
+ "type": "address"
+ }
+ ],
+ "name": "balanceOf",
+ "outputs": [
+ {
+ "name": "balance",
+ "type": "uint256"
+ }
+ ],
+ "payable": false,
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "constant": true,
+ "inputs": [],
+ "name": "symbol",
+ "outputs": [
+ {
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "payable": false,
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "constant": false,
+ "inputs": [
+ {
+ "name": "_to",
+ "type": "address"
+ },
+ {
+ "name": "_value",
+ "type": "uint256"
+ }
+ ],
+ "name": "transfer",
+ "outputs": [
+ {
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "payable": false,
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "constant": true,
+ "inputs": [
+ {
+ "name": "_owner",
+ "type": "address"
+ },
+ {
+ "name": "_spender",
+ "type": "address"
+ }
+ ],
+ "name": "allowance",
+ "outputs": [
+ {
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "payable": false,
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "payable": true,
+ "stateMutability": "payable",
+ "type": "fallback"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "Approval",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "Transfer",
+ "type": "event"
+ }
+]
\ No newline at end of file
diff --git a/packages/v3-watcher/subgraph-build/Pool/abis/factory.json b/packages/v3-watcher/subgraph-build/Pool/abis/factory.json
new file mode 100644
index 0000000..2503212
--- /dev/null
+++ b/packages/v3-watcher/subgraph-build/Pool/abis/factory.json
@@ -0,0 +1,198 @@
+[
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint24",
+ "name": "fee",
+ "type": "uint24"
+ },
+ {
+ "indexed": true,
+ "internalType": "int24",
+ "name": "tickSpacing",
+ "type": "int24"
+ }
+ ],
+ "name": "FeeAmountEnabled",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "oldOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnerChanged",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "token0",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "token1",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint24",
+ "name": "fee",
+ "type": "uint24"
+ },
+ {
+ "indexed": false,
+ "internalType": "int24",
+ "name": "tickSpacing",
+ "type": "int24"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "pool",
+ "type": "address"
+ }
+ ],
+ "name": "PoolCreated",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "tokenA",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "tokenB",
+ "type": "address"
+ },
+ {
+ "internalType": "uint24",
+ "name": "fee",
+ "type": "uint24"
+ }
+ ],
+ "name": "createPool",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "pool",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint24",
+ "name": "fee",
+ "type": "uint24"
+ },
+ {
+ "internalType": "int24",
+ "name": "tickSpacing",
+ "type": "int24"
+ }
+ ],
+ "name": "enableFeeAmount",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint24",
+ "name": "fee",
+ "type": "uint24"
+ }
+ ],
+ "name": "feeAmountTickSpacing",
+ "outputs": [
+ {
+ "internalType": "int24",
+ "name": "",
+ "type": "int24"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "tokenA",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "tokenB",
+ "type": "address"
+ },
+ {
+ "internalType": "uint24",
+ "name": "fee",
+ "type": "uint24"
+ }
+ ],
+ "name": "getPool",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "pool",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_owner",
+ "type": "address"
+ }
+ ],
+ "name": "setOwner",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+]
\ No newline at end of file
diff --git a/packages/v3-watcher/subgraph-build/Pool/abis/pool.json b/packages/v3-watcher/subgraph-build/Pool/abis/pool.json
new file mode 100644
index 0000000..c87d64d
--- /dev/null
+++ b/packages/v3-watcher/subgraph-build/Pool/abis/pool.json
@@ -0,0 +1,988 @@
+[
+ {
+ "inputs": [],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "int24",
+ "name": "tickLower",
+ "type": "int24"
+ },
+ {
+ "indexed": true,
+ "internalType": "int24",
+ "name": "tickUpper",
+ "type": "int24"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint128",
+ "name": "amount",
+ "type": "uint128"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount0",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount1",
+ "type": "uint256"
+ }
+ ],
+ "name": "Burn",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "recipient",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "int24",
+ "name": "tickLower",
+ "type": "int24"
+ },
+ {
+ "indexed": true,
+ "internalType": "int24",
+ "name": "tickUpper",
+ "type": "int24"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint128",
+ "name": "amount0",
+ "type": "uint128"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint128",
+ "name": "amount1",
+ "type": "uint128"
+ }
+ ],
+ "name": "Collect",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "recipient",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint128",
+ "name": "amount0",
+ "type": "uint128"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint128",
+ "name": "amount1",
+ "type": "uint128"
+ }
+ ],
+ "name": "CollectProtocol",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "recipient",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount0",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount1",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "paid0",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "paid1",
+ "type": "uint256"
+ }
+ ],
+ "name": "Flash",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint16",
+ "name": "observationCardinalityNextOld",
+ "type": "uint16"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint16",
+ "name": "observationCardinalityNextNew",
+ "type": "uint16"
+ }
+ ],
+ "name": "IncreaseObservationCardinalityNext",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint160",
+ "name": "sqrtPriceX96",
+ "type": "uint160"
+ },
+ {
+ "indexed": false,
+ "internalType": "int24",
+ "name": "tick",
+ "type": "int24"
+ }
+ ],
+ "name": "Initialize",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "int24",
+ "name": "tickLower",
+ "type": "int24"
+ },
+ {
+ "indexed": true,
+ "internalType": "int24",
+ "name": "tickUpper",
+ "type": "int24"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint128",
+ "name": "amount",
+ "type": "uint128"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount0",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount1",
+ "type": "uint256"
+ }
+ ],
+ "name": "Mint",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint8",
+ "name": "feeProtocol0Old",
+ "type": "uint8"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint8",
+ "name": "feeProtocol1Old",
+ "type": "uint8"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint8",
+ "name": "feeProtocol0New",
+ "type": "uint8"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint8",
+ "name": "feeProtocol1New",
+ "type": "uint8"
+ }
+ ],
+ "name": "SetFeeProtocol",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "recipient",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "int256",
+ "name": "amount0",
+ "type": "int256"
+ },
+ {
+ "indexed": false,
+ "internalType": "int256",
+ "name": "amount1",
+ "type": "int256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint160",
+ "name": "sqrtPriceX96",
+ "type": "uint160"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint128",
+ "name": "liquidity",
+ "type": "uint128"
+ },
+ {
+ "indexed": false,
+ "internalType": "int24",
+ "name": "tick",
+ "type": "int24"
+ }
+ ],
+ "name": "Swap",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "int24",
+ "name": "tickLower",
+ "type": "int24"
+ },
+ {
+ "internalType": "int24",
+ "name": "tickUpper",
+ "type": "int24"
+ },
+ {
+ "internalType": "uint128",
+ "name": "amount",
+ "type": "uint128"
+ }
+ ],
+ "name": "burn",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount0",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount1",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "recipient",
+ "type": "address"
+ },
+ {
+ "internalType": "int24",
+ "name": "tickLower",
+ "type": "int24"
+ },
+ {
+ "internalType": "int24",
+ "name": "tickUpper",
+ "type": "int24"
+ },
+ {
+ "internalType": "uint128",
+ "name": "amount0Requested",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint128",
+ "name": "amount1Requested",
+ "type": "uint128"
+ }
+ ],
+ "name": "collect",
+ "outputs": [
+ {
+ "internalType": "uint128",
+ "name": "amount0",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint128",
+ "name": "amount1",
+ "type": "uint128"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "recipient",
+ "type": "address"
+ },
+ {
+ "internalType": "uint128",
+ "name": "amount0Requested",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint128",
+ "name": "amount1Requested",
+ "type": "uint128"
+ }
+ ],
+ "name": "collectProtocol",
+ "outputs": [
+ {
+ "internalType": "uint128",
+ "name": "amount0",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint128",
+ "name": "amount1",
+ "type": "uint128"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "factory",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "fee",
+ "outputs": [
+ {
+ "internalType": "uint24",
+ "name": "",
+ "type": "uint24"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "feeGrowthGlobal0X128",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "feeGrowthGlobal1X128",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "recipient",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount0",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount1",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "data",
+ "type": "bytes"
+ }
+ ],
+ "name": "flash",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint16",
+ "name": "observationCardinalityNext",
+ "type": "uint16"
+ }
+ ],
+ "name": "increaseObservationCardinalityNext",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint160",
+ "name": "sqrtPriceX96",
+ "type": "uint160"
+ }
+ ],
+ "name": "initialize",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "liquidity",
+ "outputs": [
+ {
+ "internalType": "uint128",
+ "name": "",
+ "type": "uint128"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "maxLiquidityPerTick",
+ "outputs": [
+ {
+ "internalType": "uint128",
+ "name": "",
+ "type": "uint128"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "recipient",
+ "type": "address"
+ },
+ {
+ "internalType": "int24",
+ "name": "tickLower",
+ "type": "int24"
+ },
+ {
+ "internalType": "int24",
+ "name": "tickUpper",
+ "type": "int24"
+ },
+ {
+ "internalType": "uint128",
+ "name": "amount",
+ "type": "uint128"
+ },
+ {
+ "internalType": "bytes",
+ "name": "data",
+ "type": "bytes"
+ }
+ ],
+ "name": "mint",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount0",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount1",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ }
+ ],
+ "name": "observations",
+ "outputs": [
+ {
+ "internalType": "uint32",
+ "name": "blockTimestamp",
+ "type": "uint32"
+ },
+ {
+ "internalType": "int56",
+ "name": "tickCumulative",
+ "type": "int56"
+ },
+ {
+ "internalType": "uint160",
+ "name": "secondsPerLiquidityCumulativeX128",
+ "type": "uint160"
+ },
+ {
+ "internalType": "bool",
+ "name": "initialized",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint32[]",
+ "name": "secondsAgos",
+ "type": "uint32[]"
+ }
+ ],
+ "name": "observe",
+ "outputs": [
+ {
+ "internalType": "int56[]",
+ "name": "tickCumulatives",
+ "type": "int56[]"
+ },
+ {
+ "internalType": "uint160[]",
+ "name": "secondsPerLiquidityCumulativeX128s",
+ "type": "uint160[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "key",
+ "type": "bytes32"
+ }
+ ],
+ "name": "positions",
+ "outputs": [
+ {
+ "internalType": "uint128",
+ "name": "_liquidity",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint256",
+ "name": "feeGrowthInside0LastX128",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "feeGrowthInside1LastX128",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint128",
+ "name": "tokensOwed0",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint128",
+ "name": "tokensOwed1",
+ "type": "uint128"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "protocolFees",
+ "outputs": [
+ {
+ "internalType": "uint128",
+ "name": "token0",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint128",
+ "name": "token1",
+ "type": "uint128"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "feeProtocol0",
+ "type": "uint8"
+ },
+ {
+ "internalType": "uint8",
+ "name": "feeProtocol1",
+ "type": "uint8"
+ }
+ ],
+ "name": "setFeeProtocol",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "slot0",
+ "outputs": [
+ {
+ "internalType": "uint160",
+ "name": "sqrtPriceX96",
+ "type": "uint160"
+ },
+ {
+ "internalType": "int24",
+ "name": "tick",
+ "type": "int24"
+ },
+ {
+ "internalType": "uint16",
+ "name": "observationIndex",
+ "type": "uint16"
+ },
+ {
+ "internalType": "uint16",
+ "name": "observationCardinality",
+ "type": "uint16"
+ },
+ {
+ "internalType": "uint16",
+ "name": "observationCardinalityNext",
+ "type": "uint16"
+ },
+ {
+ "internalType": "uint8",
+ "name": "feeProtocol",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bool",
+ "name": "unlocked",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "int24",
+ "name": "tickLower",
+ "type": "int24"
+ },
+ {
+ "internalType": "int24",
+ "name": "tickUpper",
+ "type": "int24"
+ }
+ ],
+ "name": "snapshotCumulativesInside",
+ "outputs": [
+ {
+ "internalType": "int56",
+ "name": "tickCumulativeInside",
+ "type": "int56"
+ },
+ {
+ "internalType": "uint160",
+ "name": "secondsPerLiquidityInsideX128",
+ "type": "uint160"
+ },
+ {
+ "internalType": "uint32",
+ "name": "secondsInside",
+ "type": "uint32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "recipient",
+ "type": "address"
+ },
+ {
+ "internalType": "bool",
+ "name": "zeroForOne",
+ "type": "bool"
+ },
+ {
+ "internalType": "int256",
+ "name": "amountSpecified",
+ "type": "int256"
+ },
+ {
+ "internalType": "uint160",
+ "name": "sqrtPriceLimitX96",
+ "type": "uint160"
+ },
+ {
+ "internalType": "bytes",
+ "name": "data",
+ "type": "bytes"
+ }
+ ],
+ "name": "swap",
+ "outputs": [
+ {
+ "internalType": "int256",
+ "name": "amount0",
+ "type": "int256"
+ },
+ {
+ "internalType": "int256",
+ "name": "amount1",
+ "type": "int256"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "int16",
+ "name": "wordPosition",
+ "type": "int16"
+ }
+ ],
+ "name": "tickBitmap",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "tickSpacing",
+ "outputs": [
+ {
+ "internalType": "int24",
+ "name": "",
+ "type": "int24"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "int24",
+ "name": "tick",
+ "type": "int24"
+ }
+ ],
+ "name": "ticks",
+ "outputs": [
+ {
+ "internalType": "uint128",
+ "name": "liquidityGross",
+ "type": "uint128"
+ },
+ {
+ "internalType": "int128",
+ "name": "liquidityNet",
+ "type": "int128"
+ },
+ {
+ "internalType": "uint256",
+ "name": "feeGrowthOutside0X128",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "feeGrowthOutside1X128",
+ "type": "uint256"
+ },
+ {
+ "internalType": "int56",
+ "name": "tickCumulativeOutside",
+ "type": "int56"
+ },
+ {
+ "internalType": "uint160",
+ "name": "secondsPerLiquidityOutsideX128",
+ "type": "uint160"
+ },
+ {
+ "internalType": "uint32",
+ "name": "secondsOutside",
+ "type": "uint32"
+ },
+ {
+ "internalType": "bool",
+ "name": "initialized",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "token0",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "token1",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ }
+]
\ No newline at end of file
diff --git a/packages/v3-watcher/subgraph-build/schema.graphql b/packages/v3-watcher/subgraph-build/schema.graphql
new file mode 100644
index 0000000..60a5e63
--- /dev/null
+++ b/packages/v3-watcher/subgraph-build/schema.graphql
@@ -0,0 +1,707 @@
+type Factory @entity {
+ # factory address
+ id: ID!
+ # amount of pools created
+ poolCount: BigInt!
+ # amoutn of transactions all time
+ txCount: BigInt!
+ # total volume all time in derived USD
+ totalVolumeUSD: BigDecimal!
+ # total volume all time in derived ETH
+ totalVolumeETH: BigDecimal!
+ # total swap fees all time in USD
+ totalFeesUSD: BigDecimal!
+ # total swap fees all time in USD
+ totalFeesETH: BigDecimal!
+ # all volume even through less reliable USD values
+ untrackedVolumeUSD: BigDecimal!
+ # TVL derived in USD
+ totalValueLockedUSD: BigDecimal!
+ # TVL derived in ETH
+ totalValueLockedETH: BigDecimal!
+ # TVL derived in USD untracked
+ totalValueLockedUSDUntracked: BigDecimal!
+ # TVL derived in ETH untracked
+ totalValueLockedETHUntracked: BigDecimal!
+
+ # current owner of the factory
+ owner: ID!
+}
+
+# stores for USD calculations
+type Bundle @entity {
+ id: ID!
+ # price of ETH in usd
+ ethPriceUSD: BigDecimal!
+}
+
+type Token @entity {
+ # token address
+ id: ID!
+ # token symbol
+ symbol: String!
+ # token name
+ name: String!
+ # token decimals
+ decimals: BigInt!
+ # token total supply
+ totalSupply: BigInt!
+ # volume in token units
+ volume: BigDecimal!
+ # volume in derived USD
+ volumeUSD: BigDecimal!
+ # volume in USD even on pools with less reliable USD values
+ untrackedVolumeUSD: BigDecimal!
+ # fees in USD
+ feesUSD: BigDecimal!
+ # transactions across all pools that include this token
+ txCount: BigInt!
+ # number of pools containing this token
+ poolCount: BigInt!
+ # liquidity across all pools in token units
+ totalValueLocked: BigDecimal!
+ # liquidity across all pools in derived USD
+ totalValueLockedUSD: BigDecimal!
+ # TVL derived in USD untracked
+ totalValueLockedUSDUntracked: BigDecimal!
+ # derived price in ETH
+ derivedETH: BigDecimal!
+ # pools token is in that are white listed for USD pricing
+ whitelistPools: [Pool!]!
+ # derived fields
+ tokenDayData: [TokenDayData!]! @derivedFrom(field: "token")
+}
+
+type Pool @entity {
+ # pool address
+ id: ID!
+ # creation
+ createdAtTimestamp: BigInt!
+ # block pool was created at
+ createdAtBlockNumber: BigInt!
+ # token0
+ token0: Token!
+ # token1
+ token1: Token!
+ # fee amount
+ feeTier: BigInt!
+ # in range liquidity
+ liquidity: BigInt!
+ # current price tracker
+ sqrtPrice: BigInt!
+ # tracker for global fee growth
+ feeGrowthGlobal0X128: BigInt!
+ # tracker for global fee growth
+ feeGrowthGlobal1X128: BigInt!
+ # token0 per token1
+ token0Price: BigDecimal!
+ # token1 per token0
+ token1Price: BigDecimal!
+ # current tick
+ tick: BigInt
+ # current observation index
+ observationIndex: BigInt!
+ # all time token0 swapped
+ volumeToken0: BigDecimal!
+ # all time token1 swapped
+ volumeToken1: BigDecimal!
+ # all time USD swapped
+ volumeUSD: BigDecimal!
+ # all time USD swapped, unfiltered for unreliable USD pools
+ untrackedVolumeUSD: BigDecimal!
+ # fees in USD
+ feesUSD: BigDecimal!
+ # all time number of transactions
+ txCount: BigInt!
+ # all time fees collected token0
+ collectedFeesToken0: BigDecimal!
+ # all time fees collected token1
+ collectedFeesToken1: BigDecimal!
+ # all time fees collected derived USD
+ collectedFeesUSD: BigDecimal!
+ # total token 0 across all ticks
+ totalValueLockedToken0: BigDecimal!
+ # total token 1 across all ticks
+ totalValueLockedToken1: BigDecimal!
+ # tvl derived ETH
+ totalValueLockedETH: BigDecimal!
+ # tvl USD
+ totalValueLockedUSD: BigDecimal!
+ # TVL derived in USD untracked
+ totalValueLockedUSDUntracked: BigDecimal!
+ # protocol fee
+ isProtocolFeeEnabled: Boolean!
+ # Fields used to help derived relationship
+ liquidityProviderCount: BigInt! # used to detect new exchanges
+ # hourly snapshots of pool data
+ poolHourData: [PoolHourData!]! @derivedFrom(field: "pool")
+ # daily snapshots of pool data
+ poolDayData: [PoolDayData!]! @derivedFrom(field: "pool")
+ # derived fields
+ mints: [Mint!]! @derivedFrom(field: "pool")
+ burns: [Burn!]! @derivedFrom(field: "pool")
+ swaps: [Swap!]! @derivedFrom(field: "pool")
+ collects: [Collect!]! @derivedFrom(field: "pool")
+ ticks: [Tick!]! @derivedFrom(field: "pool")
+}
+
+type Tick @entity {
+ # format: #
+ id: ID!
+ # pool address
+ poolAddress: String
+ # tick index
+ tickIdx: BigInt!
+ # pointer to pool
+ pool: Pool!
+ # total liquidity pool has as tick lower or upper
+ liquidityGross: BigInt!
+ # how much liquidity changes when tick crossed
+ liquidityNet: BigInt!
+ # calculated price of token0 of tick within this pool - constant
+ price0: BigDecimal!
+ # calculated price of token1 of tick within this pool - constant
+ price1: BigDecimal!
+ # lifetime volume of token0 with this tick in range
+ volumeToken0: BigDecimal!
+ # lifetime volume of token1 with this tick in range
+ volumeToken1: BigDecimal!
+ # lifetime volume in derived USD with this tick in range
+ volumeUSD: BigDecimal!
+ # lifetime volume in untracked USD with this tick in range
+ untrackedVolumeUSD: BigDecimal!
+ # fees in USD
+ feesUSD: BigDecimal!
+ # all time collected fees in token0
+ collectedFeesToken0: BigDecimal!
+ # all time collected fees in token1
+ collectedFeesToken1: BigDecimal!
+ # all time collected fees in USD
+ collectedFeesUSD: BigDecimal!
+ # created time
+ createdAtTimestamp: BigInt!
+ # created block
+ createdAtBlockNumber: BigInt!
+ # Fields used to help derived relationship
+ liquidityProviderCount: BigInt! # used to detect new exchanges
+ # derived fields
+ # swaps: [Swap!]! @derivedFrom(field: "tick")
+ # vars needed for fee computation
+ feeGrowthOutside0X128: BigInt!
+ feeGrowthOutside1X128: BigInt!
+}
+
+type Position @entity {
+ # Positions created through NonfungiblePositionManager
+ # NFT token id
+ id: ID!
+ # owner of the NFT
+ owner: Bytes!
+ # pool position is within
+ pool: Pool!
+ # allow indexing by tokens
+ token0: Token!
+ # allow indexing by tokens
+ token1: Token!
+ # lower tick of the position
+ tickLower: Tick!
+ # upper tick of the position
+ tickUpper: Tick!
+ # total position liquidity
+ liquidity: BigInt!
+ # amount of token 0 ever deposited to position
+ depositedToken0: BigDecimal!
+ # amount of token 1 ever deposited to position
+ depositedToken1: BigDecimal!
+ # amount of token 0 ever withdrawn from position (without fees)
+ withdrawnToken0: BigDecimal!
+ # amount of token 1 ever withdrawn from position (without fees)
+ withdrawnToken1: BigDecimal!
+ # all time collect (inclusive of burn amounts)
+ collectedToken0: BigDecimal!
+ # all time collect (inclusive of burn amounts)
+ collectedToken1: BigDecimal!
+ # all time collected fees in token0
+ collectedFeesToken0: BigDecimal!
+ # all time collected fees in token1
+ collectedFeesToken1: BigDecimal!
+ # Total amount deposited in terms of USD
+ amountDepositedUSD: BigDecimal!
+ # Total amount withdrawn in terms of USD
+ amountWithdrawnUSD: BigDecimal!
+ # Total amount collected in terms of USD
+ amountCollectedUSD: BigDecimal!
+ # tx in which the position was initialized
+ transaction: Transaction!
+ # vars needed for fee computation
+ feeGrowthInside0LastX128: BigInt!
+ feeGrowthInside1LastX128: BigInt!
+
+ # derived fields
+ increaseEvents: [IncreaseEvent!]! @derivedFrom(field: "position")
+ decreaseEvents: [IncreaseEvent!]! @derivedFrom(field: "position")
+}
+
+type PositionSnapshot @entity {
+ # #
+ id: ID!
+ # owner of the NFT
+ owner: Bytes!
+ # pool the position is within
+ pool: Pool!
+ # position of which the snap was taken of
+ position: Position!
+ # block in which the snap was created
+ blockNumber: BigInt!
+ # timestamp of block in which the snap was created
+ timestamp: BigInt!
+ # total position liquidity
+ liquidity: BigInt!
+ # amount of token 0 ever deposited to position
+ depositedToken0: BigDecimal!
+ # amount of token 1 ever deposited to position
+ depositedToken1: BigDecimal!
+ # amount of token 0 ever withdrawn from position (without fees)
+ withdrawnToken0: BigDecimal!
+ # amount of token 1 ever withdrawn from position (without fees)
+ withdrawnToken1: BigDecimal!
+ # all time collected fees in token0
+ collectedFeesToken0: BigDecimal!
+ # all time collected fees in token1
+ collectedFeesToken1: BigDecimal!
+ # tx in which the snapshot was initialized
+ transaction: Transaction!
+ # internal vars needed for fee computation
+ feeGrowthInside0LastX128: BigInt!
+ feeGrowthInside1LastX128: BigInt!
+}
+
+type Transaction @entity {
+ # txn hash
+ id: ID!
+ # block txn was included in
+ blockNumber: BigInt!
+ # timestamp txn was confirmed
+ timestamp: BigInt!
+ # gas used during txn execution
+ gasUsed: BigInt!
+ gasPrice: BigInt!
+ # derived values
+ mints: [Mint!]! @derivedFrom(field: "transaction")
+ burns: [Burn!]! @derivedFrom(field: "transaction")
+ swaps: [Swap!]! @derivedFrom(field: "transaction")
+ flashed: [Flash!]! @derivedFrom(field: "transaction")
+ collects: [Collect!]! @derivedFrom(field: "transaction")
+}
+
+type Mint @entity {
+ # transaction hash + "#" + index in mints Transaction array
+ id: ID!
+ # which txn the mint was included in
+ transaction: Transaction!
+ # time of txn
+ timestamp: BigInt!
+ # pool position is within
+ pool: Pool!
+ # allow indexing by tokens
+ token0: Token!
+ # allow indexing by tokens
+ token1: Token!
+ # owner of position where liquidity minted to
+ owner: Bytes!
+ # the address that minted the liquidity
+ sender: Bytes
+ # txn origin
+ origin: Bytes! # the EOA that initiated the txn
+ # amount of liquidity minted
+ amount: BigInt!
+ # amount of token 0 minted
+ amount0: BigDecimal!
+ # amount of token 1 minted
+ amount1: BigDecimal!
+ # derived amount based on available prices of tokens
+ amountUSD: BigDecimal
+ # lower tick of the position
+ tickLower: BigInt!
+ # upper tick of the position
+ tickUpper: BigInt!
+ # order within the txn
+ logIndex: BigInt
+}
+
+type Burn @entity {
+ # transaction hash + "#" + index in mints Transaction array
+ id: ID!
+ # txn burn was included in
+ transaction: Transaction!
+ # pool position is within
+ pool: Pool!
+ # allow indexing by tokens
+ token0: Token!
+ # allow indexing by tokens
+ token1: Token!
+ # need this to pull recent txns for specific token or pool
+ timestamp: BigInt!
+ # owner of position where liquidity was burned
+ owner: Bytes
+ # txn origin
+ origin: Bytes! # the EOA that initiated the txn
+ # amouny of liquidity burned
+ amount: BigInt!
+ # amount of token 0 burned
+ amount0: BigDecimal!
+ # amount of token 1 burned
+ amount1: BigDecimal!
+ # derived amount based on available prices of tokens
+ amountUSD: BigDecimal
+ # lower tick of position
+ tickLower: BigInt!
+ # upper tick of position
+ tickUpper: BigInt!
+ # position within the transactions
+ logIndex: BigInt
+}
+
+type Swap @entity {
+ # transaction hash + "#" + index in swaps Transaction array
+ id: ID!
+ # pointer to transaction
+ transaction: Transaction!
+ # timestamp of transaction
+ timestamp: BigInt!
+ # pool swap occured within
+ pool: Pool!
+ # allow indexing by tokens
+ token0: Token!
+ # allow indexing by tokens
+ token1: Token!
+ # sender of the swap
+ sender: Bytes!
+ # recipient of the swap
+ recipient: Bytes!
+ # txn origin
+ origin: Bytes! # the EOA that initiated the txn
+ # delta of token0 swapped
+ amount0: BigDecimal!
+ # delta of token1 swapped
+ amount1: BigDecimal!
+ # derived info
+ amountUSD: BigDecimal!
+ # The sqrt(price) of the pool after the swap, as a Q64.96
+ sqrtPriceX96: BigInt!
+ # the tick after the swap
+ tick: BigInt!
+ # index within the txn
+ logIndex: BigInt
+}
+
+type Collect @entity {
+ # transaction hash + "#" + index in collect Transaction array
+ id: ID!
+ # pointer to txn
+ transaction: Transaction!
+ # timestamp of event
+ timestamp: BigInt!
+ # pool collect occured within
+ pool: Pool!
+ # owner of position collect was performed on
+ owner: Bytes
+ # amount of token0 collected
+ amount0: BigDecimal!
+ # amount of token1 collected
+ amount1: BigDecimal!
+ # derived amount based on available prices of tokens
+ amountUSD: BigDecimal
+ # lower tick of position
+ tickLower: BigInt!
+ # uppper tick of position
+ tickUpper: BigInt!
+ # index within the txn
+ logIndex: BigInt
+}
+
+type Flash @entity {
+ # transaction hash + "-" + index in collect Transaction array
+ id: ID!
+ # pointer to txn
+ transaction: Transaction!
+ # timestamp of event
+ timestamp: BigInt!
+ # pool collect occured within
+ pool: Pool!
+ # sender of the flash
+ sender: Bytes!
+ # recipient of the flash
+ recipient: Bytes!
+ # amount of token0 flashed
+ amount0: BigDecimal!
+ # amount of token1 flashed
+ amount1: BigDecimal!
+ # derived amount based on available prices of tokens
+ amountUSD: BigDecimal!
+ # amount token0 paid for flash
+ amount0Paid: BigDecimal!
+ # amount token1 paid for flash
+ amount1Paid: BigDecimal!
+ # index within the txn
+ logIndex: BigInt
+}
+
+# Data accumulated and condensed into day stats for all of Uniswap
+type UniswapDayData @entity {
+ # timestamp rounded to current day by dividing by 86400
+ id: ID!
+ # timestamp rounded to current day by dividing by 86400
+ date: Int!
+ # total daily volume in Uniswap derived in terms of ETH
+ volumeETH: BigDecimal!
+ # total daily volume in Uniswap derived in terms of USD
+ volumeUSD: BigDecimal!
+ # total daily volume in Uniswap derived in terms of USD untracked
+ volumeUSDUntracked: BigDecimal!
+ # fees in USD
+ feesUSD: BigDecimal!
+ # number of daily transactions
+ txCount: BigInt!
+ # tvl in terms of USD
+ tvlUSD: BigDecimal!
+}
+
+# Data accumulated and condensed into day stats for each pool
+type PoolDayData @entity {
+ # timestamp rounded to current day by dividing by 86400
+ id: ID!
+ # timestamp rounded to current day by dividing by 86400
+ date: Int!
+ # pointer to pool
+ pool: Pool!
+ # in range liquidity at end of period
+ liquidity: BigInt!
+ # current price tracker at end of period
+ sqrtPrice: BigInt!
+ # price of token0 - derived from sqrtPrice
+ token0Price: BigDecimal!
+ # price of token1 - derived from sqrtPrice
+ token1Price: BigDecimal!
+ # current tick at end of period
+ tick: BigInt
+ # tracker for global fee growth
+ feeGrowthGlobal0X128: BigInt!
+ # tracker for global fee growth
+ feeGrowthGlobal1X128: BigInt!
+ # tvl derived in USD at end of period
+ tvlUSD: BigDecimal!
+ # volume in token0
+ volumeToken0: BigDecimal!
+ # volume in token1
+ volumeToken1: BigDecimal!
+ # volume in USD
+ volumeUSD: BigDecimal!
+ # fees in USD
+ feesUSD: BigDecimal!
+ # numebr of transactions during period
+ txCount: BigInt!
+ # opening price of token0
+ open: BigDecimal!
+ # high price of token0
+ high: BigDecimal!
+ # low price of token0
+ low: BigDecimal!
+ # close price of token0
+ close: BigDecimal!
+}
+
+# hourly stats tracker for pool
+type PoolHourData @entity {
+ # format: -
+ id: ID!
+ # unix timestamp for start of hour
+ periodStartUnix: Int!
+ # pointer to pool
+ pool: Pool!
+ # in range liquidity at end of period
+ liquidity: BigInt!
+ # current price tracker at end of period
+ sqrtPrice: BigInt!
+ # price of token0 - derived from sqrtPrice
+ token0Price: BigDecimal!
+ # price of token1 - derived from sqrtPrice
+ token1Price: BigDecimal!
+ # current tick at end of period
+ tick: BigInt
+ # tracker for global fee growth
+ feeGrowthGlobal0X128: BigInt!
+ # tracker for global fee growth
+ feeGrowthGlobal1X128: BigInt!
+ # tvl derived in USD at end of period
+ tvlUSD: BigDecimal!
+ # volume in token0
+ volumeToken0: BigDecimal!
+ # volume in token1
+ volumeToken1: BigDecimal!
+ # volume in USD
+ volumeUSD: BigDecimal!
+ # fees in USD
+ feesUSD: BigDecimal!
+ # numebr of transactions during period
+ txCount: BigInt!
+ # opening price of token0
+ open: BigDecimal!
+ # high price of token0
+ high: BigDecimal!
+ # low price of token0
+ low: BigDecimal!
+ # close price of token0
+ close: BigDecimal!
+}
+
+type TickHourData @entity {
+ # format: --
+ id: ID!
+ # unix timestamp for start of hour
+ periodStartUnix: Int!
+ # pointer to pool
+ pool: Pool!
+ # pointer to tick
+ tick: Tick!
+ # total liquidity pool has as tick lower or upper at end of period
+ liquidityGross: BigInt!
+ # how much liquidity changes when tick crossed at end of period
+ liquidityNet: BigInt!
+ # hourly volume of token0 with this tick in range
+ volumeToken0: BigDecimal!
+ # hourly volume of token1 with this tick in range
+ volumeToken1: BigDecimal!
+ # hourly volume in derived USD with this tick in range
+ volumeUSD: BigDecimal!
+ # fees in USD
+ feesUSD: BigDecimal!
+}
+
+# Data accumulated and condensed into day stats for each exchange
+# Note: this entity gets saved only if there is a change during the day
+type TickDayData @entity {
+ # format: --
+ id: ID!
+ # timestamp rounded to current day by dividing by 86400
+ date: Int!
+ # pointer to pool
+ pool: Pool!
+ # pointer to tick
+ tick: Tick!
+ # total liquidity pool has as tick lower or upper at end of period
+ liquidityGross: BigInt!
+ # how much liquidity changes when tick crossed at end of period
+ liquidityNet: BigInt!
+ # hourly volume of token0 with this tick in range
+ volumeToken0: BigDecimal!
+ # hourly volume of token1 with this tick in range
+ volumeToken1: BigDecimal!
+ # hourly volume in derived USD with this tick in range
+ volumeUSD: BigDecimal!
+ # fees in USD
+ feesUSD: BigDecimal!
+ # vars needed for fee computation
+ feeGrowthOutside0X128: BigInt!
+ feeGrowthOutside1X128: BigInt!
+}
+
+type TokenDayData @entity {
+ # token address concatendated with date
+ id: ID!
+ # timestamp rounded to current day by dividing by 86400
+ date: Int!
+ # pointer to token
+ token: Token!
+ # volume in token units
+ volume: BigDecimal!
+ # volume in derived USD
+ volumeUSD: BigDecimal!
+ # volume in USD even on pools with less reliable USD values
+ untrackedVolumeUSD: BigDecimal!
+ # liquidity across all pools in token units
+ totalValueLocked: BigDecimal!
+ # liquidity across all pools in derived USD
+ totalValueLockedUSD: BigDecimal!
+ # price at end of period in USD
+ priceUSD: BigDecimal!
+ # fees in USD
+ feesUSD: BigDecimal!
+ # opening price USD
+ open: BigDecimal!
+ # high price USD
+ high: BigDecimal!
+ # low price USD
+ low: BigDecimal!
+ # close price USD
+ close: BigDecimal!
+}
+
+type TokenHourData @entity {
+ # token address concatendated with date
+ id: ID!
+ # unix timestamp for start of hour
+ periodStartUnix: Int!
+ # pointer to token
+ token: Token!
+ # volume in token units
+ volume: BigDecimal!
+ # volume in derived USD
+ volumeUSD: BigDecimal!
+ # volume in USD even on pools with less reliable USD values
+ untrackedVolumeUSD: BigDecimal!
+ # liquidity across all pools in token units
+ totalValueLocked: BigDecimal!
+ # liquidity across all pools in derived USD
+ totalValueLockedUSD: BigDecimal!
+ # price at end of period in USD
+ priceUSD: BigDecimal!
+ # fees in USD
+ feesUSD: BigDecimal!
+ # opening price USD
+ open: BigDecimal!
+ # high price USD
+ high: BigDecimal!
+ # low price USD
+ low: BigDecimal!
+ # close price USD
+ close: BigDecimal!
+}
+ type IncreaseEvent @entity {
+ id: ID!
+ pool: Pool!
+ tokenID: BigInt!
+ # amount of liquidity added
+ position: Position!
+ amount0: BigInt!
+ amount1: BigInt!
+# amountUSD: BigDecimal!
+ token0: Token!
+ token1: Token!
+ timeStamp: BigInt!
+ transaction: Transaction!
+}
+type DecreaseEvent @entity {
+ id: ID!
+ pool: Pool!
+ tokenID: BigInt!
+ # amount of liquidity added
+ position: Position!
+ amount0: BigInt!
+ amount1: BigInt!
+ token0: Token!
+ token1: Token!
+ timeStamp: BigInt!
+ transaction: Transaction!
+}
+
+type SetProtocolFeeEvent @entity {
+ id: ID!
+ pool: Pool!
+ logIndex: BigInt!
+ new0: BigInt!
+ new1: BigInt!
+ old0: BigInt!
+ old1: BigInt!
+ timestamp: BigInt!
+}
\ No newline at end of file
diff --git a/packages/v3-watcher/subgraph-build/subgraph.yaml b/packages/v3-watcher/subgraph-build/subgraph.yaml
new file mode 100644
index 0000000..371ac0e
--- /dev/null
+++ b/packages/v3-watcher/subgraph-build/subgraph.yaml
@@ -0,0 +1,100 @@
+specVersion: 0.0.4
+schema:
+ file: schema.graphql
+features:
+ - nonFatalErrors
+dataSources:
+ - kind: ethereum/contract
+ name: Factory
+ network: mainnet
+ source:
+ address: "0xc35dadb65012ec5796536bd9864ed8773abc74c4"
+ startBlock: 2867560
+ abi: Factory
+ mapping:
+ kind: ethereum/events
+ apiVersion: 0.0.5
+ language: wasm/assemblyscript
+ file: Factory/Factory.wasm
+ entities: []
+ abis:
+ - name: Factory
+ file: Factory/abis/factory.json
+ - name: ERC20
+ file: Factory/abis/ERC20.json
+ - name: ERC20SymbolBytes
+ file: Factory/abis/ERC20SymbolBytes.json
+ - name: ERC20NameBytes
+ file: Factory/abis/ERC20NameBytes.json
+ - name: Pool
+ file: Factory/abis/pool.json
+ eventHandlers:
+ - event: PoolCreated(indexed address,indexed address,indexed uint24,int24,address)
+ handler: handlePoolCreated
+ - kind: ethereum/contract
+ name: NonfungiblePositionManager
+ network: mainnet
+ source:
+ address: "0xf4d73326c13a4fc5fd7a064217e12780e9bd62c3"
+ startBlock: 2868037
+ abi: NonfungiblePositionManager
+ mapping:
+ kind: ethereum/events
+ apiVersion: 0.0.5
+ language: wasm/assemblyscript
+ file: NonfungiblePositionManager/NonfungiblePositionManager.wasm
+ entities: []
+ abis:
+ - name: NonfungiblePositionManager
+ file: NonfungiblePositionManager/abis/NonfungiblePositionManager.json
+ - name: Pool
+ file: NonfungiblePositionManager/abis/pool.json
+ - name: Factory
+ file: NonfungiblePositionManager/abis/factory.json
+ - name: ERC20
+ file: NonfungiblePositionManager/abis/ERC20.json
+ eventHandlers:
+ - event: IncreaseLiquidity(indexed uint256,uint128,uint256,uint256)
+ handler: handleIncreaseLiquidity
+ - event: DecreaseLiquidity(indexed uint256,uint128,uint256,uint256)
+ handler: handleDecreaseLiquidity
+ - event: Collect(indexed uint256,address,uint256,uint256)
+ handler: handleCollect
+ - event: Transfer(indexed address,indexed address,indexed uint256)
+ handler: handleTransfer
+templates:
+ - kind: ethereum/contract
+ name: Pool
+ network: mainnet
+ source:
+ abi: Pool
+ mapping:
+ kind: ethereum/events
+ apiVersion: 0.0.5
+ language: wasm/assemblyscript
+ file: templates/Pool/Pool.wasm
+ entities: []
+ abis:
+ - name: Pool
+ file: Pool/abis/pool.json
+ - name: Factory
+ file: Pool/abis/factory.json
+ - name: ERC20
+ file: Pool/abis/ERC20.json
+ eventHandlers:
+ - event: Initialize(uint160,int24)
+ handler: handleInitialize
+ - event: Swap(indexed address,indexed address,int256,int256,uint160,uint128,int24)
+ handler: handleSwap
+ - event: Mint(address,indexed address,indexed int24,indexed int24,uint128,uint256,uint256)
+ handler: handleMint
+ - event: Burn(indexed address,indexed int24,indexed int24,uint128,uint256,uint256)
+ handler: handleBurn
+ - event: Flash(indexed address,indexed address,uint256,uint256,uint256,uint256)
+ handler: handleFlash
+ - event: Collect(indexed address,address,indexed int24,indexed int24,uint128,uint128)
+ handler: handlePoolCollect
+ - event: CollectProtocol(indexed address,indexed address,uint128,uint128)
+ handler: handleProtocolCollect
+ - event: SetFeeProtocol(uint8,uint8,uint8,uint8)
+ handler: handleSetProtocolFee
diff --git a/packages/v3-watcher/subgraph-build/templates/Pool/Pool.wasm b/packages/v3-watcher/subgraph-build/templates/Pool/Pool.wasm
new file mode 100644
index 0000000..5d5e140
Binary files /dev/null and b/packages/v3-watcher/subgraph-build/templates/Pool/Pool.wasm differ
diff --git a/packages/v3-watcher/tsconfig.json b/packages/v3-watcher/tsconfig.json
new file mode 100644
index 0000000..f4b8852
--- /dev/null
+++ b/packages/v3-watcher/tsconfig.json
@@ -0,0 +1,74 @@
+{
+ "compilerOptions": {
+ /* Visit https://aka.ms/tsconfig.json to read more about this file */
+
+ /* Basic Options */
+ // "incremental": true, /* Enable incremental compilation */
+ "target": "es5", /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019', 'ES2020', 'ES2021', or 'ESNEXT'. */
+ "module": "commonjs", /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', 'es2020', or 'ESNext'. */
+ "lib": ["es2019"], /* Specify library files to be included in the compilation. */
+ // "allowJs": true, /* Allow javascript files to be compiled. */
+ // "checkJs": true, /* Report errors in .js files. */
+ // "jsx": "preserve", /* Specify JSX code generation: 'preserve', 'react-native', 'react', 'react-jsx' or 'react-jsxdev'. */
+ // "declaration": true, /* Generates corresponding '.d.ts' file. */
+ // "declarationMap": true, /* Generates a sourcemap for each corresponding '.d.ts' file. */
+ "sourceMap": true, /* Generates corresponding '.map' file. */
+ // "outFile": "./", /* Concatenate and emit output to single file. */
+ "outDir": "dist", /* Redirect output structure to the directory. */
+ // "rootDir": "./", /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */
+ // "composite": true, /* Enable project compilation */
+ // "tsBuildInfoFile": "./", /* Specify file to store incremental compilation information */
+ // "removeComments": true, /* Do not emit comments to output. */
+ // "noEmit": true, /* Do not emit outputs. */
+ // "importHelpers": true, /* Import emit helpers from 'tslib'. */
+ "downlevelIteration": true, /* Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5' or 'ES3'. */
+ // "isolatedModules": true, /* Transpile each file as a separate module (similar to 'ts.transpileModule'). */
+
+ /* Strict Type-Checking Options */
+ "strict": true, /* Enable all strict type-checking options. */
+ // "noImplicitAny": true, /* Raise error on expressions and declarations with an implied 'any' type. */
+ // "strictNullChecks": true, /* Enable strict null checks. */
+ // "strictFunctionTypes": true, /* Enable strict checking of function types. */
+ // "strictBindCallApply": true, /* Enable strict 'bind', 'call', and 'apply' methods on functions. */
+ // "strictPropertyInitialization": true, /* Enable strict checking of property initialization in classes. */
+ // "noImplicitThis": true, /* Raise error on 'this' expressions with an implied 'any' type. */
+ // "alwaysStrict": true, /* Parse in strict mode and emit "use strict" for each source file. */
+
+ /* Additional Checks */
+ // "noUnusedLocals": true, /* Report errors on unused locals. */
+ // "noUnusedParameters": true, /* Report errors on unused parameters. */
+ // "noImplicitReturns": true, /* Report error when not all code paths in function return a value. */
+ // "noFallthroughCasesInSwitch": true, /* Report errors for fallthrough cases in switch statement. */
+ // "noUncheckedIndexedAccess": true, /* Include 'undefined' in index signature results */
+ // "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an 'override' modifier. */
+ // "noPropertyAccessFromIndexSignature": true, /* Require undeclared properties from index signatures to use element accesses. */
+
+ /* Module Resolution Options */
+ // "moduleResolution": "node", /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */
+ // "baseUrl": "./", /* Base directory to resolve non-absolute module names. */
+ // "paths": {}, /* A series of entries which re-map imports to lookup locations relative to the 'baseUrl'. */
+ // "rootDirs": [], /* List of root folders whose combined content represents the structure of the project at runtime. */
+ // "typeRoots": [], /* List of folders to include type definitions from. */
+ // "types": [], /* Type declaration files to be included in compilation. */
+ // "allowSyntheticDefaultImports": true, /* Allow default imports from modules with no default export. This does not affect code emit, just typechecking. */
+ "esModuleInterop": true, /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */
+ // "preserveSymlinks": true, /* Do not resolve the real path of symlinks. */
+ // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */
+
+ /* Source Map Options */
+ // "sourceRoot": "", /* Specify the location where debugger should locate TypeScript files instead of source locations. */
+ // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */
+ // "inlineSourceMap": true, /* Emit a single file with source maps instead of having a separate file. */
+ // "inlineSources": true, /* Emit the source alongside the sourcemaps within a single file; requires '--inlineSourceMap' or '--sourceMap' to be set. */
+
+ /* Experimental Options */
+ "experimentalDecorators": true, /* Enables experimental support for ES7 decorators. */
+ // "emitDecoratorMetadata": true, /* Enables experimental support for emitting type metadata for decorators. */
+
+ /* Advanced Options */
+ "skipLibCheck": true, /* Skip type checking of declaration files. */
+ "forceConsistentCasingInFileNames": true, /* Disallow inconsistently-cased references to the same file. */
+ "resolveJsonModule": true /* Enabling the option allows importing JSON, and validating the types in that JSON file. */
+ },
+ "include": ["src/**/*"]
+}
diff --git a/yarn.lock b/yarn.lock
index 58e4453..7aff312 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2,7 +2,167 @@
# yarn lockfile v1
-"@babel/code-frame@^7.0.0":
+"@achingbrain/ip-address@^8.1.0":
+ version "8.1.0"
+ resolved "https://registry.yarnpkg.com/@achingbrain/ip-address/-/ip-address-8.1.0.tgz#24f2e9cd7289e33f433d771b23bea56cfd0242c9"
+ integrity sha512-Zus4vMKVRDm+R1o0QJNhD0PD/8qRGO3Zx8YPsFG5lANt5utVtGg3iHVGBSAF80TfQmhi8rP+Kg/OigdxY0BXHw==
+ dependencies:
+ jsbn "1.1.0"
+ sprintf-js "1.1.2"
+
+"@achingbrain/nat-port-mapper@^1.0.3":
+ version "1.0.13"
+ resolved "https://registry.yarnpkg.com/@achingbrain/nat-port-mapper/-/nat-port-mapper-1.0.13.tgz#22519833c2d70d48addd551b5cccbf84010ccda5"
+ integrity sha512-B5GL6ILDek72OjoEyFGEuuNYaEOYxO06Ulhcaf/5iQ4EO8uaZWS+OkolYST7L+ecJrkjfaSNmSAsWRRuh+1Z5A==
+ dependencies:
+ "@achingbrain/ssdp" "^4.0.1"
+ "@libp2p/logger" "^4.0.1"
+ default-gateway "^7.2.2"
+ err-code "^3.0.1"
+ it-first "^3.0.1"
+ p-defer "^4.0.0"
+ p-timeout "^6.1.1"
+ xml2js "^0.6.0"
+
+"@achingbrain/ssdp@^4.0.1":
+ version "4.0.6"
+ resolved "https://registry.yarnpkg.com/@achingbrain/ssdp/-/ssdp-4.0.6.tgz#eca66ac260dcfcfcb237d7a58e63c3c8e87591b4"
+ integrity sha512-Y4JE2L9150i50V6lg/Y8+ilhxRpUZKKv+PKo68Aj7MjPfaUAar6ZHilF9h4/Zb3q0fqGMXNc9o11cQLNI8J8bA==
+ dependencies:
+ event-iterator "^2.0.0"
+ freeport-promise "^2.0.0"
+ merge-options "^3.0.4"
+ xml2js "^0.6.2"
+
+"@apollo/client@^3.3.19", "@apollo/client@^3.7.1":
+ version "3.10.4"
+ resolved "https://registry.yarnpkg.com/@apollo/client/-/client-3.10.4.tgz#1abc488c79cf37dc63edf041aee6f9dc5aabc692"
+ integrity sha512-51gk0xOwN6Ls1EbTG5svFva1kdm2APHYTzmFhaAdvUQoJFDxfc0UwQgDxGptzH84vkPlo1qunY1FuboyF9LI3Q==
+ dependencies:
+ "@graphql-typed-document-node/core" "^3.1.1"
+ "@wry/caches" "^1.0.0"
+ "@wry/equality" "^0.5.6"
+ "@wry/trie" "^0.5.0"
+ graphql-tag "^2.12.6"
+ hoist-non-react-statics "^3.3.2"
+ optimism "^0.18.0"
+ prop-types "^15.7.2"
+ rehackt "^0.1.0"
+ response-iterator "^0.2.6"
+ symbol-observable "^4.0.0"
+ ts-invariant "^0.10.3"
+ tslib "^2.3.0"
+ zen-observable-ts "^1.2.5"
+
+"@apollo/protobufjs@1.2.6":
+ version "1.2.6"
+ resolved "https://registry.yarnpkg.com/@apollo/protobufjs/-/protobufjs-1.2.6.tgz#d601e65211e06ae1432bf5993a1a0105f2862f27"
+ integrity sha512-Wqo1oSHNUj/jxmsVp4iR3I480p6qdqHikn38lKrFhfzcDJ7lwd7Ck7cHRl4JE81tWNArl77xhnG/OkZhxKBYOw==
+ dependencies:
+ "@protobufjs/aspromise" "^1.1.2"
+ "@protobufjs/base64" "^1.1.2"
+ "@protobufjs/codegen" "^2.0.4"
+ "@protobufjs/eventemitter" "^1.1.0"
+ "@protobufjs/fetch" "^1.1.0"
+ "@protobufjs/float" "^1.0.2"
+ "@protobufjs/inquire" "^1.1.0"
+ "@protobufjs/path" "^1.1.2"
+ "@protobufjs/pool" "^1.1.0"
+ "@protobufjs/utf8" "^1.1.0"
+ "@types/long" "^4.0.0"
+ "@types/node" "^10.1.0"
+ long "^4.0.0"
+
+"@apollo/protobufjs@1.2.7":
+ version "1.2.7"
+ resolved "https://registry.yarnpkg.com/@apollo/protobufjs/-/protobufjs-1.2.7.tgz#3a8675512817e4a046a897e5f4f16415f16a7d8a"
+ integrity sha512-Lahx5zntHPZia35myYDBRuF58tlwPskwHc5CWBZC/4bMKB6siTBWwtMrkqXcsNwQiFSzSx5hKdRPUmemrEp3Gg==
+ dependencies:
+ "@protobufjs/aspromise" "^1.1.2"
+ "@protobufjs/base64" "^1.1.2"
+ "@protobufjs/codegen" "^2.0.4"
+ "@protobufjs/eventemitter" "^1.1.0"
+ "@protobufjs/fetch" "^1.1.0"
+ "@protobufjs/float" "^1.0.2"
+ "@protobufjs/inquire" "^1.1.0"
+ "@protobufjs/path" "^1.1.2"
+ "@protobufjs/pool" "^1.1.0"
+ "@protobufjs/utf8" "^1.1.0"
+ "@types/long" "^4.0.0"
+ long "^4.0.0"
+
+"@apollo/usage-reporting-protobuf@^4.0.0":
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/@apollo/usage-reporting-protobuf/-/usage-reporting-protobuf-4.1.1.tgz#407c3d18c7fbed7a264f3b9a3812620b93499de1"
+ integrity sha512-u40dIUePHaSKVshcedO7Wp+mPiZsaU6xjv9J+VyxpoU/zL6Jle+9zWeG98tr/+SZ0nZ4OXhrbb8SNr0rAPpIDA==
+ dependencies:
+ "@apollo/protobufjs" "1.2.7"
+
+"@apollo/utils.dropunuseddefinitions@^1.1.0":
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/@apollo/utils.dropunuseddefinitions/-/utils.dropunuseddefinitions-1.1.0.tgz#02b04006442eaf037f4c4624146b12775d70d929"
+ integrity sha512-jU1XjMr6ec9pPoL+BFWzEPW7VHHulVdGKMkPAMiCigpVIT11VmCbnij0bWob8uS3ODJ65tZLYKAh/55vLw2rbg==
+
+"@apollo/utils.keyvaluecache@^1.0.1":
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/@apollo/utils.keyvaluecache/-/utils.keyvaluecache-1.0.2.tgz#2bfe358c4d82f3a0950518451996758c52613f57"
+ integrity sha512-p7PVdLPMnPzmXSQVEsy27cYEjVON+SH/Wb7COyW3rQN8+wJgT1nv9jZouYtztWW8ZgTkii5T6tC9qfoDREd4mg==
+ dependencies:
+ "@apollo/utils.logger" "^1.0.0"
+ lru-cache "7.10.1 - 7.13.1"
+
+"@apollo/utils.logger@^1.0.0":
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/@apollo/utils.logger/-/utils.logger-1.0.1.tgz#aea0d1bb7ceb237f506c6bbf38f10a555b99a695"
+ integrity sha512-XdlzoY7fYNK4OIcvMD2G94RoFZbzTQaNP0jozmqqMudmaGo2I/2Jx71xlDJ801mWA/mbYRihyaw6KJii7k5RVA==
+
+"@apollo/utils.printwithreducedwhitespace@^1.1.0":
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/@apollo/utils.printwithreducedwhitespace/-/utils.printwithreducedwhitespace-1.1.0.tgz#c466299a4766eef8577a2a64c8f27712e8bd7e30"
+ integrity sha512-GfFSkAv3n1toDZ4V6u2d7L4xMwLA+lv+6hqXicMN9KELSJ9yy9RzuEXaX73c/Ry+GzRsBy/fdSUGayGqdHfT2Q==
+
+"@apollo/utils.removealiases@1.0.0":
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/@apollo/utils.removealiases/-/utils.removealiases-1.0.0.tgz#75f6d83098af1fcae2d3beb4f515ad4a8452a8c1"
+ integrity sha512-6cM8sEOJW2LaGjL/0vHV0GtRaSekrPQR4DiywaApQlL9EdROASZU5PsQibe2MWeZCOhNrPRuHh4wDMwPsWTn8A==
+
+"@apollo/utils.sortast@^1.1.0":
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/@apollo/utils.sortast/-/utils.sortast-1.1.0.tgz#93218c7008daf3e2a0725196085a33f5aab5ad07"
+ integrity sha512-VPlTsmUnOwzPK5yGZENN069y6uUHgeiSlpEhRnLFYwYNoJHsuJq2vXVwIaSmts015WTPa2fpz1inkLYByeuRQA==
+ dependencies:
+ lodash.sortby "^4.7.0"
+
+"@apollo/utils.stripsensitiveliterals@^1.2.0":
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/@apollo/utils.stripsensitiveliterals/-/utils.stripsensitiveliterals-1.2.0.tgz#4920651f36beee8e260e12031a0c5863ad0c7b28"
+ integrity sha512-E41rDUzkz/cdikM5147d8nfCFVKovXxKBcjvLEQ7bjZm/cg9zEcXvS6vFY8ugTubI3fn6zoqo0CyU8zT+BGP9w==
+
+"@apollo/utils.usagereporting@^1.0.0":
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/@apollo/utils.usagereporting/-/utils.usagereporting-1.0.1.tgz#3c70b49e554771659576fe35381c7a4b321d27fd"
+ integrity sha512-6dk+0hZlnDbahDBB2mP/PZ5ybrtCJdLMbeNJD+TJpKyZmSY6bA3SjI8Cr2EM9QA+AdziywuWg+SgbWUF3/zQqQ==
+ dependencies:
+ "@apollo/usage-reporting-protobuf" "^4.0.0"
+ "@apollo/utils.dropunuseddefinitions" "^1.1.0"
+ "@apollo/utils.printwithreducedwhitespace" "^1.1.0"
+ "@apollo/utils.removealiases" "1.0.0"
+ "@apollo/utils.sortast" "^1.1.0"
+ "@apollo/utils.stripsensitiveliterals" "^1.2.0"
+
+"@apollographql/apollo-tools@^0.5.3":
+ version "0.5.4"
+ resolved "https://registry.yarnpkg.com/@apollographql/apollo-tools/-/apollo-tools-0.5.4.tgz#cb3998c6cf12e494b90c733f44dd9935e2d8196c"
+ integrity sha512-shM3q7rUbNyXVVRkQJQseXv6bnYM3BUma/eZhwXR4xsuM+bqWnJKvW7SAfRjP7LuSCocrexa5AXhjjawNHrIlw==
+
+"@apollographql/graphql-playground-html@1.6.29":
+ version "1.6.29"
+ resolved "https://registry.yarnpkg.com/@apollographql/graphql-playground-html/-/graphql-playground-html-1.6.29.tgz#a7a646614a255f62e10dcf64a7f68ead41dec453"
+ integrity sha512-xCcXpoz52rI4ksJSdOCxeOCn2DLocxwHf9dVT/Q90Pte1LX+LY+91SFtJF3KXVHH8kEin+g1KKCQPKBjZJfWNA==
+ dependencies:
+ xss "^1.0.8"
+
+"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.22.13":
version "7.24.7"
resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.24.7.tgz#882fd9e09e8ee324e496bd040401c6f046ef4465"
integrity sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==
@@ -25,16 +185,951 @@
js-tokens "^4.0.0"
picocolors "^1.0.0"
+"@cerc-io/assemblyscript@0.19.10-watcher-ts-0.1.2":
+ version "0.19.10-watcher-ts-0.1.2"
+ resolved "https://git.vdb.to/api/packages/cerc-io/npm/%40cerc-io%2Fassemblyscript/-/0.19.10-watcher-ts-0.1.2/assemblyscript-0.19.10-watcher-ts-0.1.2.tgz#c6a20eeddca44ddb08994831845c0b172433566b"
+ integrity sha512-iovY7xoH5ZMGQZgsK/Wy8175AN2z6I0WUnzEWaxykkAFQUvnErgiw/Y4crkcOb/fDp8gslRfTeEFtR90m1AyPA==
+ dependencies:
+ asyncify-wasm "^1.2.1"
+ binaryen "101.0.0-nightly.20210723"
+ long "^4.0.0"
+
+"@cerc-io/cache@^0.2.93":
+ version "0.2.93"
+ resolved "https://git.vdb.to/api/packages/cerc-io/npm/%40cerc-io%2Fcache/-/0.2.93/cache-0.2.93.tgz#3032714167cac33957aeba16a8066c58437d7002"
+ integrity sha512-iH18oDRP40sTZkCCWvxZxvrankIJNjI3smXS4WOng1p4fUmt3N+uINCzGmNdZPpfj4ZFdoNgrFGkqeYyUiNCpA==
+ dependencies:
+ canonical-json "^0.0.4"
+ debug "^4.3.1"
+ ethers "^5.4.4"
+ fs-extra "^10.0.0"
+ level "^7.0.0"
+
+"@cerc-io/cli@^0.2.93":
+ version "0.2.93"
+ resolved "https://git.vdb.to/api/packages/cerc-io/npm/%40cerc-io%2Fcli/-/0.2.93/cli-0.2.93.tgz#ee2b22a40f358ecb5ef44301d0ab5120e75bd803"
+ integrity sha512-QTEerZn4UdYaGNGXv8UZD+T1+MnYp6l2N/dWkCJBw+8df/46ec5dVuLH1kvCk6LwBUOIKrgIsosDhTPQjDS6bA==
+ dependencies:
+ "@apollo/client" "^3.7.1"
+ "@cerc-io/cache" "^0.2.93"
+ "@cerc-io/ipld-eth-client" "^0.2.93"
+ "@cerc-io/libp2p" "^0.42.2-laconic-0.1.4"
+ "@cerc-io/nitro-node" "^0.1.15"
+ "@cerc-io/peer" "^0.2.93"
+ "@cerc-io/rpc-eth-client" "^0.2.93"
+ "@cerc-io/util" "^0.2.93"
+ "@ethersproject/providers" "^5.4.4"
+ "@graphql-tools/utils" "^9.1.1"
+ "@ipld/dag-cbor" "^8.0.0"
+ "@libp2p/interface-peer-id" "^2.0.0"
+ apollo-server-express "^3.11.1"
+ debug "^4.3.1"
+ ethers "^5.4.4"
+ express "^4.18.2"
+ graphql "^15.5.0"
+ graphql-request "^6.1.0"
+ graphql-subscriptions "^2.0.0"
+ http-proxy-middleware "^2.0.6"
+ js-yaml "^4.0.0"
+ json-diff "^0.5.4"
+ lodash "^4.17.21"
+ pluralize "^8.0.0"
+ reflect-metadata "^0.1.13"
+ typeorm "0.2.37"
+ yargs "^17.0.1"
+
+"@cerc-io/graph-node@^0.2.93":
+ version "0.2.93"
+ resolved "https://git.vdb.to/api/packages/cerc-io/npm/%40cerc-io%2Fgraph-node/-/0.2.93/graph-node-0.2.93.tgz#a310c6af84bae6f28216e4cdd439396a4e7fb555"
+ integrity sha512-EbEziMAMuOBel+f4dxJ24AOaQPV41w/1sA5d/0v3KKvOLcrtgs0EysbeJYtUY7ru3fmCcMcP1Y+4k+dsp07nAQ==
+ dependencies:
+ "@apollo/client" "^3.3.19"
+ "@cerc-io/assemblyscript" "0.19.10-watcher-ts-0.1.2"
+ "@cerc-io/cache" "^0.2.93"
+ "@cerc-io/ipld-eth-client" "^0.2.93"
+ "@cerc-io/util" "^0.2.93"
+ "@types/json-diff" "^0.5.2"
+ "@types/yargs" "^17.0.0"
+ bn.js "^4.11.9"
+ debug "^4.3.1"
+ fs-extra "^10.0.0"
+ graphql "^15.5.0"
+ json-diff "^0.5.4"
+ lodash "^4.17.21"
+ omit-deep "^0.3.0"
+ pluralize "^8.0.0"
+ reflect-metadata "^0.1.13"
+ toml "^3.0.0"
+ typeorm "0.2.37"
+ typeorm-naming-strategies "^2.0.0"
+ yargs "^17.0.1"
+
+"@cerc-io/ipld-eth-client@^0.2.93":
+ version "0.2.93"
+ resolved "https://git.vdb.to/api/packages/cerc-io/npm/%40cerc-io%2Fipld-eth-client/-/0.2.93/ipld-eth-client-0.2.93.tgz#8a8a25fd6a8d9964de9211545e45ecc6d692e124"
+ integrity sha512-XT9axNOg0mr/mHWrUiadLSqx4EW/8/9flCsTBNiuZjZSv5d8BtCtsPaI5AGBYbsIiA9ffhW36pYknJU0QlHi2g==
+ dependencies:
+ "@apollo/client" "^3.7.1"
+ "@cerc-io/cache" "^0.2.93"
+ "@cerc-io/util" "^0.2.93"
+ cross-fetch "^3.1.4"
+ debug "^4.3.1"
+ ethers "^5.4.4"
+ graphql "^15.5.0"
+ graphql-ws "^5.11.2"
+ left-pad "^1.3.0"
+ ws "^8.11.0"
+ zen-observable-ts "^1.1.0"
+
+"@cerc-io/libp2p@0.42.2-laconic-0.1.4", "@cerc-io/libp2p@^0.42.2-laconic-0.1.4":
+ version "0.42.2-laconic-0.1.4"
+ resolved "https://git.vdb.to/api/packages/cerc-io/npm/%40cerc-io%2Flibp2p/-/0.42.2-laconic-0.1.4/libp2p-0.42.2-laconic-0.1.4.tgz#ac9347e70d6d3cee040ad02074cae3070b91a8fb"
+ integrity sha512-gTC62YvkK3P7cWlaH8gQ6lDbqusNiaYI1q7y/+vQ/1s35uStwRn7fvXHC0aY9s36L4S3p1S0sxDzGXM8rtg6+w==
+ dependencies:
+ "@achingbrain/nat-port-mapper" "^1.0.3"
+ "@libp2p/crypto" "^1.0.4"
+ "@libp2p/interface-address-manager" "^2.0.0"
+ "@libp2p/interface-connection" "^3.0.2"
+ "@libp2p/interface-connection-encrypter" "^3.0.1"
+ "@libp2p/interface-connection-manager" "^1.1.1"
+ "@libp2p/interface-content-routing" "^2.0.0"
+ "@libp2p/interface-dht" "^2.0.0"
+ "@libp2p/interface-keychain" "^2.0.4"
+ "@libp2p/interface-libp2p" "^1.0.0"
+ "@libp2p/interface-metrics" "^4.0.0"
+ "@libp2p/interface-peer-discovery" "^1.0.1"
+ "@libp2p/interface-peer-id" "^2.0.0"
+ "@libp2p/interface-peer-info" "^1.0.3"
+ "@libp2p/interface-peer-routing" "^1.0.1"
+ "@libp2p/interface-peer-store" "^1.2.2"
+ "@libp2p/interface-pubsub" "^3.0.0"
+ "@libp2p/interface-registrar" "^2.0.3"
+ "@libp2p/interface-stream-muxer" "^3.0.0"
+ "@libp2p/interface-transport" "^2.1.0"
+ "@libp2p/interfaces" "^3.0.3"
+ "@libp2p/keychain" "^1.0.0"
+ "@libp2p/logger" "^2.0.1"
+ "@libp2p/multistream-select" "^3.0.0"
+ "@libp2p/peer-collections" "^3.0.0"
+ "@libp2p/peer-id" "^2.0.0"
+ "@libp2p/peer-id-factory" "^2.0.0"
+ "@libp2p/peer-record" "^5.0.0"
+ "@libp2p/peer-store" "^6.0.0"
+ "@libp2p/tracked-map" "^3.0.0"
+ "@libp2p/utils" "^3.0.2"
+ "@libp2p/webrtc-peer" "^2.0.2"
+ "@multiformats/mafmt" "^11.0.2"
+ "@multiformats/multiaddr" "^11.0.0"
+ abortable-iterator "^4.0.2"
+ any-signal "^3.0.0"
+ datastore-core "^8.0.1"
+ err-code "^3.0.1"
+ interface-datastore "^7.0.0"
+ it-all "^2.0.0"
+ it-drain "^2.0.0"
+ it-filter "^2.0.0"
+ it-first "^2.0.0"
+ it-handshake "^4.1.2"
+ it-length-prefixed "^8.0.2"
+ it-map "^2.0.0"
+ it-merge "^2.0.0"
+ it-pair "^2.0.2"
+ it-pipe "^2.0.3"
+ it-pushable "^3.1.2"
+ it-sort "^2.0.1"
+ it-stream-types "^1.0.4"
+ merge-options "^3.0.4"
+ multiformats "^11.0.0"
+ p-fifo "^1.0.0"
+ p-settle "^5.0.0"
+ private-ip "^3.0.0"
+ protons-runtime "^4.0.1"
+ rate-limiter-flexible "^2.3.11"
+ retimer "^3.0.0"
+ set-delayed-interval "^1.0.0"
+ timeout-abort-controller "^3.0.0"
+ uint8arraylist "^2.3.2"
+ uint8arrays "^4.0.2"
+ wherearewe "^2.0.0"
+ xsalsa20 "^1.1.0"
+
+"@cerc-io/nitro-node@^0.1.15":
+ version "0.1.16"
+ resolved "https://git.vdb.to/api/packages/cerc-io/npm/%40cerc-io%2Fnitro-node/-/0.1.16/nitro-node-0.1.16.tgz#7b90a120f85968d0d6642bd6de376256b1a257cc"
+ integrity sha512-rSjk5bSlhxFtY+gqLrDmjJrCCaB5sl3e/OpBL03hzQ/CjZ00Ggnubf56C1mjUsqI5fRpnyroLrSmdJLXF1ABew==
+ dependencies:
+ "@cerc-io/libp2p" "0.42.2-laconic-0.1.4"
+ "@cerc-io/nitro-util" "^0.1.16"
+ "@cerc-io/peer" "^0.2.65"
+ "@cerc-io/ts-channel" "1.0.3-ts-nitro-0.1.1"
+ "@jpwilliams/waitgroup" "^2.1.0"
+ "@libp2p/crypto" "^1.0.4"
+ "@libp2p/tcp" "^6.0.0"
+ "@multiformats/multiaddr" "^11.1.4"
+ "@statechannels/nitro-protocol" "^2.0.1-alpha.6"
+ assert "^2.0.0"
+ async-mutex "^0.4.0"
+ debug "^4.3.4"
+ ethers "^5.7.2"
+ heap "^0.2.7"
+ it-pipe "^2.0.5"
+ level "^8.0.0"
+ lodash "^4.17.21"
+ path-browserify "^1.0.1"
+ promjs "^0.4.2"
+ uint8arrays "^4.0.3"
+
+"@cerc-io/nitro-util@^0.1.16":
+ version "0.1.16"
+ resolved "https://git.vdb.to/api/packages/cerc-io/npm/%40cerc-io%2Fnitro-util/-/0.1.16/nitro-util-0.1.16.tgz#def62c68d90d4dd521ff6faef8d42b0bf6f049a0"
+ integrity sha512-1JnpnTooQNZfexD7PlpWnYovHjgR/N3cqbb2lLXTNpzfAuqfgibQ8R0zWpsJEmRp7qoX7OspsUfwklB72tZz5w==
+ dependencies:
+ "@cerc-io/ts-channel" "1.0.3-ts-nitro-0.1.1"
+ "@statechannels/nitro-protocol" "^2.0.1-alpha.6"
+ assert "^2.0.0"
+ debug "^4.3.4"
+ ethers "^5.7.2"
+ it-pipe "^3.0.1"
+ json-bigint "^1.0.0"
+ lodash "^4.17.21"
+ uint8arrays "^4.0.3"
+
+"@cerc-io/peer@^0.2.65", "@cerc-io/peer@^0.2.93":
+ version "0.2.93"
+ resolved "https://git.vdb.to/api/packages/cerc-io/npm/%40cerc-io%2Fpeer/-/0.2.93/peer-0.2.93.tgz#4290d8e279f4e36d6e6673f493395a78230b5567"
+ integrity sha512-LA2x973cp4QtuBhILgX/2HYH5hQFB4su7w/gTQEzgKsnm8Zwv+dKriciJP0vxycMlZFRIDsSheYJkRPBz2vVEQ==
+ dependencies:
+ "@cerc-io/libp2p" "^0.42.2-laconic-0.1.4"
+ "@cerc-io/prometheus-metrics" "1.1.4"
+ "@chainsafe/libp2p-gossipsub" "^6.0.0"
+ "@chainsafe/libp2p-noise" "^11.0.0"
+ "@chainsafe/libp2p-yamux" "3.0.7"
+ "@libp2p/floodsub" "^6.0.0"
+ "@libp2p/mplex" "^7.1.1"
+ "@libp2p/peer-id-factory" "^2.0.0"
+ "@libp2p/pubsub-peer-discovery" "^8.0.0"
+ "@libp2p/websockets" "^5.0.5"
+ "@multiformats/multiaddr" "^11.1.4"
+ assert "^2.0.0"
+ buffer "^6.0.3"
+ chai "^4.3.4"
+ debug "^4.3.1"
+ it-length-prefixed "^8.0.4"
+ it-map "^2.0.0"
+ it-pipe "^2.0.5"
+ it-pushable "^3.1.2"
+ mocha "^8.4.0"
+ p-event "^5.0.1"
+ uint8arrays "^4.0.3"
+ unique-names-generator "^4.7.1"
+ yargs "^17.0.1"
+
+"@cerc-io/prometheus-metrics@1.1.4":
+ version "1.1.4"
+ resolved "https://git.vdb.to/api/packages/cerc-io/npm/%40cerc-io%2Fprometheus-metrics/-/1.1.4/prometheus-metrics-1.1.4.tgz#51006b0b5bf6168394390c78072a1c0bb2b02f28"
+ integrity sha512-Mqg7o1Wer8zKv3/0NWB1sCMmW8hyYI0Fw58d/MR62+5EDZ2yPhwMUrLZUhyqdo3qXJzxMylAPSVx8URDcthmKA==
+ dependencies:
+ "@libp2p/interface-connection" "^3.0.2"
+ "@libp2p/interface-metrics" "^4.0.2"
+ "@libp2p/logger" "^2.0.2"
+ it-foreach "^1.0.0"
+ it-stream-types "^1.0.4"
+ promjs "^0.4.2"
+
+"@cerc-io/rpc-eth-client@^0.2.93":
+ version "0.2.93"
+ resolved "https://git.vdb.to/api/packages/cerc-io/npm/%40cerc-io%2Frpc-eth-client/-/0.2.93/rpc-eth-client-0.2.93.tgz#71a695926ce1e256beb6c5b81cc4bc45d44bcd56"
+ integrity sha512-ZMFhUk7Y5itW5B1Y1zOszdH+0LsYSwFWsmHc7Xf55jSVBMFsZYkyBJrrrcBPKdBRy/f0xfs3GsIAuCbTbG+9+g==
+ dependencies:
+ "@cerc-io/cache" "^0.2.93"
+ "@cerc-io/ipld-eth-client" "^0.2.93"
+ "@cerc-io/util" "^0.2.93"
+ chai "^4.3.4"
+ ethers "^5.4.4"
+ left-pad "^1.3.0"
+ mocha "^8.4.0"
+
+"@cerc-io/solidity-mapper@^0.2.93":
+ version "0.2.93"
+ resolved "https://git.vdb.to/api/packages/cerc-io/npm/%40cerc-io%2Fsolidity-mapper/-/0.2.93/solidity-mapper-0.2.93.tgz#ade5e2490a28255a834b9b91c6f11e8d3c4cba87"
+ integrity sha512-XVYTPHr059+LsTt+2bkQ8XD97F5gnHc9A9JhXbhT8rvDg5o0iFNKHmWzIRMUA8lys4r4BReMlT4ZOA9RpA/aGA==
+ dependencies:
+ dotenv "^10.0.0"
+
+"@cerc-io/ts-channel@1.0.3-ts-nitro-0.1.1":
+ version "1.0.3-ts-nitro-0.1.1"
+ resolved "https://git.vdb.to/api/packages/cerc-io/npm/%40cerc-io%2Fts-channel/-/1.0.3-ts-nitro-0.1.1/ts-channel-1.0.3-ts-nitro-0.1.1.tgz#0768781313a167295c0bf21307f47e02dc17e936"
+ integrity sha512-2jFICUSyffuZ+8+qRhXuLSJq4GJ6Y02wxiXoubH0Kzv2lIKkJtWICY1ZQQhtXAvP0ncAQB85WJHqtqwH8l7J3Q==
+
+"@cerc-io/util@^0.2.93":
+ version "0.2.93"
+ resolved "https://git.vdb.to/api/packages/cerc-io/npm/%40cerc-io%2Futil/-/0.2.93/util-0.2.93.tgz#8fcca36b2f539dbfb75e54240542e29f40e87ed6"
+ integrity sha512-nvlzXfNrtPtovEOigDHEb43Q3ZzY0ZEAyjjrctLvVMSM6clPneaDJI7jdzLuUsPlKJmSphRmoGGf4up+CMcGZg==
+ dependencies:
+ "@apollo/utils.keyvaluecache" "^1.0.1"
+ "@cerc-io/nitro-node" "^0.1.15"
+ "@cerc-io/peer" "^0.2.93"
+ "@cerc-io/solidity-mapper" "^0.2.93"
+ "@cerc-io/ts-channel" "1.0.3-ts-nitro-0.1.1"
+ "@ethersproject/properties" "^5.7.0"
+ "@ethersproject/providers" "^5.4.4"
+ "@ethersproject/web" "^5.7.1"
+ "@graphql-tools/schema" "^9.0.10"
+ "@graphql-tools/utils" "^9.1.1"
+ "@ipld/dag-cbor" "^6.0.12"
+ "@libp2p/interface-connection" "^3.0.2"
+ "@libp2p/interface-peer-id" "^2.0.0"
+ "@libp2p/peer-id" "^2.0.0"
+ apollo-server-core "^3.11.1"
+ apollo-server-express "^3.11.1"
+ apollo-server-plugin-response-cache "^3.8.1"
+ apollo-type-bigint "^0.1.3"
+ bunyan "^1.8.15"
+ debug "^4.3.1"
+ decimal.js "^10.3.1"
+ ethers "^5.4.4"
+ express "^4.18.2"
+ express-queue "^0.0.13"
+ fs-extra "^10.0.0"
+ graphql "^15.5.0"
+ graphql-subscriptions "^2.0.0"
+ graphql-ws "^5.11.2"
+ ipfs-http-client "^56.0.3"
+ it-length-prefixed "^8.0.4"
+ it-pipe "^2.0.5"
+ it-pushable "^3.1.2"
+ js-yaml "^4.1.0"
+ json-bigint "^1.0.0"
+ lodash "^4.17.21"
+ lru-cache "^10.0.0"
+ mokka "^1.4.2"
+ multiformats "^9.4.8"
+ pg "^8.5.1"
+ pg-boss "^6.1.0"
+ prom-client "^14.0.1"
+ read-pkg "^9.0.1"
+ toml "^3.0.0"
+ typeorm "0.2.37"
+ typeorm-naming-strategies "^2.0.0"
+ ws "^8.11.0"
+ yargs "^17.0.1"
+
+"@chainsafe/is-ip@^2.0.1":
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/@chainsafe/is-ip/-/is-ip-2.0.2.tgz#7311e7403f11d8c5cfa48111f56fcecaac37c9f6"
+ integrity sha512-ndGqEMG1W5WkGagaqOZHpPU172AGdxr+LD15sv3WIUvT5oCFUrG1Y0CW/v2Egwj4JXEvSibaIIIqImsm98y1nA==
+
+"@chainsafe/libp2p-gossipsub@^6.0.0":
+ version "6.3.0"
+ resolved "https://registry.yarnpkg.com/@chainsafe/libp2p-gossipsub/-/libp2p-gossipsub-6.3.0.tgz#0ef8b8548a4c8307233b01dfb23bfa605df6b0e2"
+ integrity sha512-yRgMB5JpyPROjmhOeOmzJUAKci19qBEnpH80201f8JkkviUJo7+X8i3MUkammlbFg0VhaTKBT98Osbko9+rT1w==
+ dependencies:
+ "@libp2p/crypto" "^1.0.3"
+ "@libp2p/interface-connection" "^4.0.0"
+ "@libp2p/interface-connection-manager" "^1.3.0"
+ "@libp2p/interface-keys" "^1.0.3"
+ "@libp2p/interface-peer-id" "^2.0.0"
+ "@libp2p/interface-peer-store" "^1.2.2"
+ "@libp2p/interface-pubsub" "^3.0.0"
+ "@libp2p/interface-registrar" "^2.0.3"
+ "@libp2p/interfaces" "^3.2.0"
+ "@libp2p/logger" "^2.0.0"
+ "@libp2p/peer-id" "^2.0.0"
+ "@libp2p/peer-record" "^5.0.0"
+ "@libp2p/pubsub" "^6.0.0"
+ "@libp2p/topology" "^4.0.0"
+ "@multiformats/multiaddr" "^12.0.0"
+ abortable-iterator "^4.0.2"
+ denque "^1.5.0"
+ it-length-prefixed "^8.0.2"
+ it-pipe "^2.0.4"
+ it-pushable "^3.1.0"
+ multiformats "^11.0.0"
+ protobufjs "^6.11.2"
+ uint8arraylist "^2.3.2"
+ uint8arrays "^4.0.2"
+
+"@chainsafe/libp2p-noise@^11.0.0":
+ version "11.0.4"
+ resolved "https://registry.yarnpkg.com/@chainsafe/libp2p-noise/-/libp2p-noise-11.0.4.tgz#b4806e7605e44fa279130c60a95faad13ed01d93"
+ integrity sha512-X7kA6a3/QPFxNFwgUJ8vubDu5qBDcDT0nhD+jL7g60IFKZu//HFH7oqsNCZa12yx0oR1fEYOR62iHDt2GHyWBQ==
+ dependencies:
+ "@libp2p/crypto" "^1.0.11"
+ "@libp2p/interface-connection-encrypter" "^3.0.5"
+ "@libp2p/interface-keys" "^1.0.6"
+ "@libp2p/interface-metrics" "^4.0.4"
+ "@libp2p/interface-peer-id" "^2.0.0"
+ "@libp2p/logger" "^2.0.5"
+ "@libp2p/peer-id" "^2.0.0"
+ "@stablelib/chacha20poly1305" "^1.0.1"
+ "@stablelib/hkdf" "^1.0.1"
+ "@stablelib/sha256" "^1.0.1"
+ "@stablelib/x25519" "^1.0.3"
+ it-length-prefixed "^8.0.2"
+ it-pair "^2.0.2"
+ it-pb-stream "^3.2.0"
+ it-pipe "^2.0.3"
+ it-stream-types "^1.0.4"
+ protons-runtime "^5.0.0"
+ uint8arraylist "^2.3.2"
+ uint8arrays "^4.0.2"
+
+"@chainsafe/libp2p-yamux@3.0.7":
+ version "3.0.7"
+ resolved "https://registry.yarnpkg.com/@chainsafe/libp2p-yamux/-/libp2p-yamux-3.0.7.tgz#345d620097c6ac07fcbeb5910da18b3ed974337c"
+ integrity sha512-fp59/7Xzws+4Nz4TUS+5Z/lkwk+9IW6GsU6wPJVaGInxf5tl4qQ5S8TLql23CEGbuvbToqMEdNLVAtE+M2Lvng==
+ dependencies:
+ "@libp2p/interface-connection" "^3.0.1"
+ "@libp2p/interface-stream-muxer" "^3.0.0"
+ "@libp2p/interfaces" "^3.2.0"
+ "@libp2p/logger" "^2.0.1"
+ abortable-iterator "^4.0.2"
+ any-signal "^3.0.1"
+ it-pipe "^2.0.4"
+ it-pushable "^3.1.0"
+ uint8arraylist "^2.3.2"
+
+"@chainsafe/netmask@^2.0.0":
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/@chainsafe/netmask/-/netmask-2.0.0.tgz#0d4a75f47919f65011da4327a3845c9661f1038a"
+ integrity sha512-I3Z+6SWUoaljh3TBzCnCxjlUyN8tA+NAk5L6m9IxvCf1BENQTePzPMis97CoN/iMW1St3WN+AWCCRp+TTBRiDg==
+ dependencies:
+ "@chainsafe/is-ip" "^2.0.1"
+
+"@colors/colors@1.6.0", "@colors/colors@^1.6.0":
+ version "1.6.0"
+ resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.6.0.tgz#ec6cd237440700bc23ca23087f513c75508958b0"
+ integrity sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==
+
+"@cspotcode/source-map-support@^0.8.0":
+ version "0.8.1"
+ resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1"
+ integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==
+ dependencies:
+ "@jridgewell/trace-mapping" "0.3.9"
+
+"@dabh/diagnostics@^2.0.2":
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/@dabh/diagnostics/-/diagnostics-2.0.3.tgz#7f7e97ee9a725dffc7808d93668cc984e1dc477a"
+ integrity sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==
+ dependencies:
+ colorspace "1.1.x"
+ enabled "2.0.x"
+ kuler "^2.0.0"
+
+"@eslint-community/eslint-utils@^4.2.0":
+ version "4.4.0"
+ resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59"
+ integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==
+ dependencies:
+ eslint-visitor-keys "^3.3.0"
+
+"@eslint-community/regexpp@^4.4.0", "@eslint-community/regexpp@^4.6.1":
+ version "4.10.1"
+ resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.10.1.tgz#361461e5cb3845d874e61731c11cfedd664d83a0"
+ integrity sha512-Zm2NGpWELsQAD1xsJzGQpYfvICSsFkEpU0jxBjfdC6uNEWXcHnfs9hScFWtXVDVl+rBQJGrl4g1vcKIejpH9dA==
+
+"@eslint/eslintrc@^2.1.4":
+ version "2.1.4"
+ resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.4.tgz#388a269f0f25c1b6adc317b5a2c55714894c70ad"
+ integrity sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==
+ dependencies:
+ ajv "^6.12.4"
+ debug "^4.3.2"
+ espree "^9.6.0"
+ globals "^13.19.0"
+ ignore "^5.2.0"
+ import-fresh "^3.2.1"
+ js-yaml "^4.1.0"
+ minimatch "^3.1.2"
+ strip-json-comments "^3.1.1"
+
+"@eslint/js@8.57.0":
+ version "8.57.0"
+ resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.57.0.tgz#a5417ae8427873f1dd08b70b3574b453e67b5f7f"
+ integrity sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==
+
+"@ethersproject/abi@5.7.0", "@ethersproject/abi@^5.3.0", "@ethersproject/abi@^5.7.0":
+ version "5.7.0"
+ resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.7.0.tgz#b3f3e045bbbeed1af3947335c247ad625a44e449"
+ integrity sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA==
+ dependencies:
+ "@ethersproject/address" "^5.7.0"
+ "@ethersproject/bignumber" "^5.7.0"
+ "@ethersproject/bytes" "^5.7.0"
+ "@ethersproject/constants" "^5.7.0"
+ "@ethersproject/hash" "^5.7.0"
+ "@ethersproject/keccak256" "^5.7.0"
+ "@ethersproject/logger" "^5.7.0"
+ "@ethersproject/properties" "^5.7.0"
+ "@ethersproject/strings" "^5.7.0"
+
+"@ethersproject/abstract-provider@5.7.0", "@ethersproject/abstract-provider@^5.7.0":
+ version "5.7.0"
+ resolved "https://registry.yarnpkg.com/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz#b0a8550f88b6bf9d51f90e4795d48294630cb9ef"
+ integrity sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw==
+ dependencies:
+ "@ethersproject/bignumber" "^5.7.0"
+ "@ethersproject/bytes" "^5.7.0"
+ "@ethersproject/logger" "^5.7.0"
+ "@ethersproject/networks" "^5.7.0"
+ "@ethersproject/properties" "^5.7.0"
+ "@ethersproject/transactions" "^5.7.0"
+ "@ethersproject/web" "^5.7.0"
+
+"@ethersproject/abstract-signer@5.7.0", "@ethersproject/abstract-signer@^5.7.0":
+ version "5.7.0"
+ resolved "https://registry.yarnpkg.com/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz#13f4f32117868452191a4649723cb086d2b596b2"
+ integrity sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ==
+ dependencies:
+ "@ethersproject/abstract-provider" "^5.7.0"
+ "@ethersproject/bignumber" "^5.7.0"
+ "@ethersproject/bytes" "^5.7.0"
+ "@ethersproject/logger" "^5.7.0"
+ "@ethersproject/properties" "^5.7.0"
+
+"@ethersproject/address@5.7.0", "@ethersproject/address@^5.7.0":
+ version "5.7.0"
+ resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.7.0.tgz#19b56c4d74a3b0a46bfdbb6cfcc0a153fc697f37"
+ integrity sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA==
+ dependencies:
+ "@ethersproject/bignumber" "^5.7.0"
+ "@ethersproject/bytes" "^5.7.0"
+ "@ethersproject/keccak256" "^5.7.0"
+ "@ethersproject/logger" "^5.7.0"
+ "@ethersproject/rlp" "^5.7.0"
+
+"@ethersproject/base64@5.7.0", "@ethersproject/base64@^5.7.0":
+ version "5.7.0"
+ resolved "https://registry.yarnpkg.com/@ethersproject/base64/-/base64-5.7.0.tgz#ac4ee92aa36c1628173e221d0d01f53692059e1c"
+ integrity sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ==
+ dependencies:
+ "@ethersproject/bytes" "^5.7.0"
+
+"@ethersproject/basex@5.7.0", "@ethersproject/basex@^5.7.0":
+ version "5.7.0"
+ resolved "https://registry.yarnpkg.com/@ethersproject/basex/-/basex-5.7.0.tgz#97034dc7e8938a8ca943ab20f8a5e492ece4020b"
+ integrity sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw==
+ dependencies:
+ "@ethersproject/bytes" "^5.7.0"
+ "@ethersproject/properties" "^5.7.0"
+
+"@ethersproject/bignumber@5.7.0", "@ethersproject/bignumber@^5.7.0":
+ version "5.7.0"
+ resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.7.0.tgz#e2f03837f268ba655ffba03a57853e18a18dc9c2"
+ integrity sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw==
+ dependencies:
+ "@ethersproject/bytes" "^5.7.0"
+ "@ethersproject/logger" "^5.7.0"
+ bn.js "^5.2.1"
+
+"@ethersproject/bytes@5.7.0", "@ethersproject/bytes@^5.7.0":
+ version "5.7.0"
+ resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.7.0.tgz#a00f6ea8d7e7534d6d87f47188af1148d71f155d"
+ integrity sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==
+ dependencies:
+ "@ethersproject/logger" "^5.7.0"
+
+"@ethersproject/constants@5.7.0", "@ethersproject/constants@^5.7.0":
+ version "5.7.0"
+ resolved "https://registry.yarnpkg.com/@ethersproject/constants/-/constants-5.7.0.tgz#df80a9705a7e08984161f09014ea012d1c75295e"
+ integrity sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA==
+ dependencies:
+ "@ethersproject/bignumber" "^5.7.0"
+
+"@ethersproject/contracts@5.7.0":
+ version "5.7.0"
+ resolved "https://registry.yarnpkg.com/@ethersproject/contracts/-/contracts-5.7.0.tgz#c305e775abd07e48aa590e1a877ed5c316f8bd1e"
+ integrity sha512-5GJbzEU3X+d33CdfPhcyS+z8MzsTrBGk/sc+G+59+tPa9yFkl6HQ9D6L0QMgNTA9q8dT0XKxxkyp883XsQvbbg==
+ dependencies:
+ "@ethersproject/abi" "^5.7.0"
+ "@ethersproject/abstract-provider" "^5.7.0"
+ "@ethersproject/abstract-signer" "^5.7.0"
+ "@ethersproject/address" "^5.7.0"
+ "@ethersproject/bignumber" "^5.7.0"
+ "@ethersproject/bytes" "^5.7.0"
+ "@ethersproject/constants" "^5.7.0"
+ "@ethersproject/logger" "^5.7.0"
+ "@ethersproject/properties" "^5.7.0"
+ "@ethersproject/transactions" "^5.7.0"
+
+"@ethersproject/hash@5.7.0", "@ethersproject/hash@^5.7.0":
+ version "5.7.0"
+ resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.7.0.tgz#eb7aca84a588508369562e16e514b539ba5240a7"
+ integrity sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g==
+ dependencies:
+ "@ethersproject/abstract-signer" "^5.7.0"
+ "@ethersproject/address" "^5.7.0"
+ "@ethersproject/base64" "^5.7.0"
+ "@ethersproject/bignumber" "^5.7.0"
+ "@ethersproject/bytes" "^5.7.0"
+ "@ethersproject/keccak256" "^5.7.0"
+ "@ethersproject/logger" "^5.7.0"
+ "@ethersproject/properties" "^5.7.0"
+ "@ethersproject/strings" "^5.7.0"
+
+"@ethersproject/hdnode@5.7.0", "@ethersproject/hdnode@^5.7.0":
+ version "5.7.0"
+ resolved "https://registry.yarnpkg.com/@ethersproject/hdnode/-/hdnode-5.7.0.tgz#e627ddc6b466bc77aebf1a6b9e47405ca5aef9cf"
+ integrity sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg==
+ dependencies:
+ "@ethersproject/abstract-signer" "^5.7.0"
+ "@ethersproject/basex" "^5.7.0"
+ "@ethersproject/bignumber" "^5.7.0"
+ "@ethersproject/bytes" "^5.7.0"
+ "@ethersproject/logger" "^5.7.0"
+ "@ethersproject/pbkdf2" "^5.7.0"
+ "@ethersproject/properties" "^5.7.0"
+ "@ethersproject/sha2" "^5.7.0"
+ "@ethersproject/signing-key" "^5.7.0"
+ "@ethersproject/strings" "^5.7.0"
+ "@ethersproject/transactions" "^5.7.0"
+ "@ethersproject/wordlists" "^5.7.0"
+
+"@ethersproject/json-wallets@5.7.0", "@ethersproject/json-wallets@^5.7.0":
+ version "5.7.0"
+ resolved "https://registry.yarnpkg.com/@ethersproject/json-wallets/-/json-wallets-5.7.0.tgz#5e3355287b548c32b368d91014919ebebddd5360"
+ integrity sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g==
+ dependencies:
+ "@ethersproject/abstract-signer" "^5.7.0"
+ "@ethersproject/address" "^5.7.0"
+ "@ethersproject/bytes" "^5.7.0"
+ "@ethersproject/hdnode" "^5.7.0"
+ "@ethersproject/keccak256" "^5.7.0"
+ "@ethersproject/logger" "^5.7.0"
+ "@ethersproject/pbkdf2" "^5.7.0"
+ "@ethersproject/properties" "^5.7.0"
+ "@ethersproject/random" "^5.7.0"
+ "@ethersproject/strings" "^5.7.0"
+ "@ethersproject/transactions" "^5.7.0"
+ aes-js "3.0.0"
+ scrypt-js "3.0.1"
+
+"@ethersproject/keccak256@5.7.0", "@ethersproject/keccak256@^5.7.0":
+ version "5.7.0"
+ resolved "https://registry.yarnpkg.com/@ethersproject/keccak256/-/keccak256-5.7.0.tgz#3186350c6e1cd6aba7940384ec7d6d9db01f335a"
+ integrity sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg==
+ dependencies:
+ "@ethersproject/bytes" "^5.7.0"
+ js-sha3 "0.8.0"
+
+"@ethersproject/logger@5.7.0", "@ethersproject/logger@^5.7.0":
+ version "5.7.0"
+ resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.7.0.tgz#6ce9ae168e74fecf287be17062b590852c311892"
+ integrity sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==
+
+"@ethersproject/networks@5.7.1", "@ethersproject/networks@^5.7.0":
+ version "5.7.1"
+ resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.7.1.tgz#118e1a981d757d45ccea6bb58d9fd3d9db14ead6"
+ integrity sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ==
+ dependencies:
+ "@ethersproject/logger" "^5.7.0"
+
+"@ethersproject/pbkdf2@5.7.0", "@ethersproject/pbkdf2@^5.7.0":
+ version "5.7.0"
+ resolved "https://registry.yarnpkg.com/@ethersproject/pbkdf2/-/pbkdf2-5.7.0.tgz#d2267d0a1f6e123f3771007338c47cccd83d3102"
+ integrity sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw==
+ dependencies:
+ "@ethersproject/bytes" "^5.7.0"
+ "@ethersproject/sha2" "^5.7.0"
+
+"@ethersproject/properties@5.7.0", "@ethersproject/properties@^5.7.0":
+ version "5.7.0"
+ resolved "https://registry.yarnpkg.com/@ethersproject/properties/-/properties-5.7.0.tgz#a6e12cb0439b878aaf470f1902a176033067ed30"
+ integrity sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw==
+ dependencies:
+ "@ethersproject/logger" "^5.7.0"
+
+"@ethersproject/providers@5.7.2", "@ethersproject/providers@^5.4.4":
+ version "5.7.2"
+ resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.7.2.tgz#f8b1a4f275d7ce58cf0a2eec222269a08beb18cb"
+ integrity sha512-g34EWZ1WWAVgr4aptGlVBF8mhl3VWjv+8hoAnzStu8Ah22VHBsuGzP17eb6xDVRzw895G4W7vvx60lFFur/1Rg==
+ dependencies:
+ "@ethersproject/abstract-provider" "^5.7.0"
+ "@ethersproject/abstract-signer" "^5.7.0"
+ "@ethersproject/address" "^5.7.0"
+ "@ethersproject/base64" "^5.7.0"
+ "@ethersproject/basex" "^5.7.0"
+ "@ethersproject/bignumber" "^5.7.0"
+ "@ethersproject/bytes" "^5.7.0"
+ "@ethersproject/constants" "^5.7.0"
+ "@ethersproject/hash" "^5.7.0"
+ "@ethersproject/logger" "^5.7.0"
+ "@ethersproject/networks" "^5.7.0"
+ "@ethersproject/properties" "^5.7.0"
+ "@ethersproject/random" "^5.7.0"
+ "@ethersproject/rlp" "^5.7.0"
+ "@ethersproject/sha2" "^5.7.0"
+ "@ethersproject/strings" "^5.7.0"
+ "@ethersproject/transactions" "^5.7.0"
+ "@ethersproject/web" "^5.7.0"
+ bech32 "1.1.4"
+ ws "7.4.6"
+
+"@ethersproject/random@5.7.0", "@ethersproject/random@^5.7.0":
+ version "5.7.0"
+ resolved "https://registry.yarnpkg.com/@ethersproject/random/-/random-5.7.0.tgz#af19dcbc2484aae078bb03656ec05df66253280c"
+ integrity sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ==
+ dependencies:
+ "@ethersproject/bytes" "^5.7.0"
+ "@ethersproject/logger" "^5.7.0"
+
+"@ethersproject/rlp@5.7.0", "@ethersproject/rlp@^5.7.0":
+ version "5.7.0"
+ resolved "https://registry.yarnpkg.com/@ethersproject/rlp/-/rlp-5.7.0.tgz#de39e4d5918b9d74d46de93af80b7685a9c21304"
+ integrity sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w==
+ dependencies:
+ "@ethersproject/bytes" "^5.7.0"
+ "@ethersproject/logger" "^5.7.0"
+
+"@ethersproject/sha2@5.7.0", "@ethersproject/sha2@^5.7.0":
+ version "5.7.0"
+ resolved "https://registry.yarnpkg.com/@ethersproject/sha2/-/sha2-5.7.0.tgz#9a5f7a7824ef784f7f7680984e593a800480c9fb"
+ integrity sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw==
+ dependencies:
+ "@ethersproject/bytes" "^5.7.0"
+ "@ethersproject/logger" "^5.7.0"
+ hash.js "1.1.7"
+
+"@ethersproject/signing-key@5.7.0", "@ethersproject/signing-key@^5.7.0":
+ version "5.7.0"
+ resolved "https://registry.yarnpkg.com/@ethersproject/signing-key/-/signing-key-5.7.0.tgz#06b2df39411b00bc57c7c09b01d1e41cf1b16ab3"
+ integrity sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q==
+ dependencies:
+ "@ethersproject/bytes" "^5.7.0"
+ "@ethersproject/logger" "^5.7.0"
+ "@ethersproject/properties" "^5.7.0"
+ bn.js "^5.2.1"
+ elliptic "6.5.4"
+ hash.js "1.1.7"
+
+"@ethersproject/solidity@5.7.0":
+ version "5.7.0"
+ resolved "https://registry.yarnpkg.com/@ethersproject/solidity/-/solidity-5.7.0.tgz#5e9c911d8a2acce2a5ebb48a5e2e0af20b631cb8"
+ integrity sha512-HmabMd2Dt/raavyaGukF4XxizWKhKQ24DoLtdNbBmNKUOPqwjsKQSdV9GQtj9CBEea9DlzETlVER1gYeXXBGaA==
+ dependencies:
+ "@ethersproject/bignumber" "^5.7.0"
+ "@ethersproject/bytes" "^5.7.0"
+ "@ethersproject/keccak256" "^5.7.0"
+ "@ethersproject/logger" "^5.7.0"
+ "@ethersproject/sha2" "^5.7.0"
+ "@ethersproject/strings" "^5.7.0"
+
+"@ethersproject/strings@5.7.0", "@ethersproject/strings@^5.7.0":
+ version "5.7.0"
+ resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.7.0.tgz#54c9d2a7c57ae8f1205c88a9d3a56471e14d5ed2"
+ integrity sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg==
+ dependencies:
+ "@ethersproject/bytes" "^5.7.0"
+ "@ethersproject/constants" "^5.7.0"
+ "@ethersproject/logger" "^5.7.0"
+
+"@ethersproject/transactions@5.7.0", "@ethersproject/transactions@^5.7.0":
+ version "5.7.0"
+ resolved "https://registry.yarnpkg.com/@ethersproject/transactions/-/transactions-5.7.0.tgz#91318fc24063e057885a6af13fdb703e1f993d3b"
+ integrity sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ==
+ dependencies:
+ "@ethersproject/address" "^5.7.0"
+ "@ethersproject/bignumber" "^5.7.0"
+ "@ethersproject/bytes" "^5.7.0"
+ "@ethersproject/constants" "^5.7.0"
+ "@ethersproject/keccak256" "^5.7.0"
+ "@ethersproject/logger" "^5.7.0"
+ "@ethersproject/properties" "^5.7.0"
+ "@ethersproject/rlp" "^5.7.0"
+ "@ethersproject/signing-key" "^5.7.0"
+
+"@ethersproject/units@5.7.0":
+ version "5.7.0"
+ resolved "https://registry.yarnpkg.com/@ethersproject/units/-/units-5.7.0.tgz#637b563d7e14f42deeee39245275d477aae1d8b1"
+ integrity sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg==
+ dependencies:
+ "@ethersproject/bignumber" "^5.7.0"
+ "@ethersproject/constants" "^5.7.0"
+ "@ethersproject/logger" "^5.7.0"
+
+"@ethersproject/wallet@5.7.0":
+ version "5.7.0"
+ resolved "https://registry.yarnpkg.com/@ethersproject/wallet/-/wallet-5.7.0.tgz#4e5d0790d96fe21d61d38fb40324e6c7ef350b2d"
+ integrity sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA==
+ dependencies:
+ "@ethersproject/abstract-provider" "^5.7.0"
+ "@ethersproject/abstract-signer" "^5.7.0"
+ "@ethersproject/address" "^5.7.0"
+ "@ethersproject/bignumber" "^5.7.0"
+ "@ethersproject/bytes" "^5.7.0"
+ "@ethersproject/hash" "^5.7.0"
+ "@ethersproject/hdnode" "^5.7.0"
+ "@ethersproject/json-wallets" "^5.7.0"
+ "@ethersproject/keccak256" "^5.7.0"
+ "@ethersproject/logger" "^5.7.0"
+ "@ethersproject/properties" "^5.7.0"
+ "@ethersproject/random" "^5.7.0"
+ "@ethersproject/signing-key" "^5.7.0"
+ "@ethersproject/transactions" "^5.7.0"
+ "@ethersproject/wordlists" "^5.7.0"
+
+"@ethersproject/web@5.7.1", "@ethersproject/web@^5.7.0", "@ethersproject/web@^5.7.1":
+ version "5.7.1"
+ resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.7.1.tgz#de1f285b373149bee5928f4eb7bcb87ee5fbb4ae"
+ integrity sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w==
+ dependencies:
+ "@ethersproject/base64" "^5.7.0"
+ "@ethersproject/bytes" "^5.7.0"
+ "@ethersproject/logger" "^5.7.0"
+ "@ethersproject/properties" "^5.7.0"
+ "@ethersproject/strings" "^5.7.0"
+
+"@ethersproject/wordlists@5.7.0", "@ethersproject/wordlists@^5.7.0":
+ version "5.7.0"
+ resolved "https://registry.yarnpkg.com/@ethersproject/wordlists/-/wordlists-5.7.0.tgz#8fb2c07185d68c3e09eb3bfd6e779ba2774627f5"
+ integrity sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA==
+ dependencies:
+ "@ethersproject/bytes" "^5.7.0"
+ "@ethersproject/hash" "^5.7.0"
+ "@ethersproject/logger" "^5.7.0"
+ "@ethersproject/properties" "^5.7.0"
+ "@ethersproject/strings" "^5.7.0"
+
+"@fastify/busboy@^2.0.0":
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/@fastify/busboy/-/busboy-2.1.1.tgz#b9da6a878a371829a0502c9b6c1c143ef6663f4d"
+ integrity sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==
+
"@gar/promisify@^1.1.3":
version "1.1.3"
resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.3.tgz#555193ab2e3bb3b6adc3d551c9c030d9e860daf6"
integrity sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==
+"@graphql-tools/merge@8.3.1":
+ version "8.3.1"
+ resolved "https://registry.yarnpkg.com/@graphql-tools/merge/-/merge-8.3.1.tgz#06121942ad28982a14635dbc87b5d488a041d722"
+ integrity sha512-BMm99mqdNZbEYeTPK3it9r9S6rsZsQKtlqJsSBknAclXq2pGEfOxjcIZi+kBSkHZKPKCRrYDd5vY0+rUmIHVLg==
+ dependencies:
+ "@graphql-tools/utils" "8.9.0"
+ tslib "^2.4.0"
+
+"@graphql-tools/merge@^8.4.1":
+ version "8.4.2"
+ resolved "https://registry.yarnpkg.com/@graphql-tools/merge/-/merge-8.4.2.tgz#95778bbe26b635e8d2f60ce9856b388f11fe8288"
+ integrity sha512-XbrHAaj8yDuINph+sAfuq3QCZ/tKblrTLOpirK0+CAgNlZUCHs0Fa+xtMUURgwCVThLle1AF7svJCxFizygLsw==
+ dependencies:
+ "@graphql-tools/utils" "^9.2.1"
+ tslib "^2.4.0"
+
+"@graphql-tools/mock@^8.1.2":
+ version "8.7.20"
+ resolved "https://registry.yarnpkg.com/@graphql-tools/mock/-/mock-8.7.20.tgz#c83ae0f1940d194a3982120c9c85f3ac6b4f7f20"
+ integrity sha512-ljcHSJWjC/ZyzpXd5cfNhPI7YljRVvabKHPzKjEs5ElxWu2cdlLGvyNYepApXDsM/OJG/2xuhGM+9GWu5gEAPQ==
+ dependencies:
+ "@graphql-tools/schema" "^9.0.18"
+ "@graphql-tools/utils" "^9.2.1"
+ fast-json-stable-stringify "^2.1.0"
+ tslib "^2.4.0"
+
+"@graphql-tools/schema@^8.0.0":
+ version "8.5.1"
+ resolved "https://registry.yarnpkg.com/@graphql-tools/schema/-/schema-8.5.1.tgz#c2f2ff1448380919a330312399c9471db2580b58"
+ integrity sha512-0Esilsh0P/qYcB5DKQpiKeQs/jevzIadNTaT0jeWklPMwNbT7yMX4EqZany7mbeRRlSRwMzNzL5olyFdffHBZg==
+ dependencies:
+ "@graphql-tools/merge" "8.3.1"
+ "@graphql-tools/utils" "8.9.0"
+ tslib "^2.4.0"
+ value-or-promise "1.0.11"
+
+"@graphql-tools/schema@^9.0.10", "@graphql-tools/schema@^9.0.18":
+ version "9.0.19"
+ resolved "https://registry.yarnpkg.com/@graphql-tools/schema/-/schema-9.0.19.tgz#c4ad373b5e1b8a0cf365163435b7d236ebdd06e7"
+ integrity sha512-oBRPoNBtCkk0zbUsyP4GaIzCt8C0aCI4ycIRUL67KK5pOHljKLBBtGT+Jr6hkzA74C8Gco8bpZPe7aWFjiaK2w==
+ dependencies:
+ "@graphql-tools/merge" "^8.4.1"
+ "@graphql-tools/utils" "^9.2.1"
+ tslib "^2.4.0"
+ value-or-promise "^1.0.12"
+
+"@graphql-tools/utils@8.9.0":
+ version "8.9.0"
+ resolved "https://registry.yarnpkg.com/@graphql-tools/utils/-/utils-8.9.0.tgz#c6aa5f651c9c99e1aca55510af21b56ec296cdb7"
+ integrity sha512-pjJIWH0XOVnYGXCqej8g/u/tsfV4LvLlj0eATKQu5zwnxd/TiTHq7Cg313qUPTFFHZ3PP5wJ15chYVtLDwaymg==
+ dependencies:
+ tslib "^2.4.0"
+
+"@graphql-tools/utils@^9.1.1", "@graphql-tools/utils@^9.2.1":
+ version "9.2.1"
+ resolved "https://registry.yarnpkg.com/@graphql-tools/utils/-/utils-9.2.1.tgz#1b3df0ef166cfa3eae706e3518b17d5922721c57"
+ integrity sha512-WUw506Ql6xzmOORlriNrD6Ugx+HjVgYxt9KCXD9mHAak+eaXSwuGGPyE60hy9xaDEoXKBsG7SkG69ybitaVl6A==
+ dependencies:
+ "@graphql-typed-document-node/core" "^3.1.1"
+ tslib "^2.4.0"
+
+"@graphql-typed-document-node/core@^3.1.1", "@graphql-typed-document-node/core@^3.2.0":
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/@graphql-typed-document-node/core/-/core-3.2.0.tgz#5f3d96ec6b2354ad6d8a28bf216a1d97b5426861"
+ integrity sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==
+
+"@humanwhocodes/config-array@^0.11.14":
+ version "0.11.14"
+ resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.14.tgz#d78e481a039f7566ecc9660b4ea7fe6b1fec442b"
+ integrity sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==
+ dependencies:
+ "@humanwhocodes/object-schema" "^2.0.2"
+ debug "^4.3.1"
+ minimatch "^3.0.5"
+
+"@humanwhocodes/module-importer@^1.0.1":
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c"
+ integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==
+
+"@humanwhocodes/object-schema@^2.0.2":
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz#4a2868d75d6d6963e423bcf90b7fd1be343409d3"
+ integrity sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==
+
"@hutson/parse-repository-url@^3.0.0":
version "3.0.2"
resolved "https://registry.yarnpkg.com/@hutson/parse-repository-url/-/parse-repository-url-3.0.2.tgz#98c23c950a3d9b6c8f0daed06da6c3af06981340"
integrity sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q==
+"@ipld/dag-cbor@^6.0.12", "@ipld/dag-cbor@^6.0.3":
+ version "6.0.15"
+ resolved "https://registry.yarnpkg.com/@ipld/dag-cbor/-/dag-cbor-6.0.15.tgz#aebe7a26c391cae98c32faedb681b1519e3d2372"
+ integrity sha512-Vm3VTSTwlmGV92a3C5aeY+r2A18zbH2amehNhsX8PBa3muXICaWrN8Uri85A5hLH7D7ElhE8PdjxD6kNqUmTZA==
+ dependencies:
+ cborg "^1.5.4"
+ multiformats "^9.5.4"
+
+"@ipld/dag-cbor@^7.0.0":
+ version "7.0.3"
+ resolved "https://registry.yarnpkg.com/@ipld/dag-cbor/-/dag-cbor-7.0.3.tgz#aa31b28afb11a807c3d627828a344e5521ac4a1e"
+ integrity sha512-1VVh2huHsuohdXC1bGJNE8WR72slZ9XE2T3wbBBq31dm7ZBatmKLLxrB+XAqafxfRFjv08RZmj/W/ZqaM13AuA==
+ dependencies:
+ cborg "^1.6.0"
+ multiformats "^9.5.4"
+
+"@ipld/dag-cbor@^8.0.0":
+ version "8.0.1"
+ resolved "https://registry.yarnpkg.com/@ipld/dag-cbor/-/dag-cbor-8.0.1.tgz#3042c219dd85a71d66ca6946fb6c7b6f0d519369"
+ integrity sha512-mHRuzgGXNk0Y5W7nNQdN37qJiig1Kdgf92icBVFRUNtBc9Ezl5DIdWfiGWBucHBrhqPBncxoH3As9cHPIRozxA==
+ dependencies:
+ cborg "^1.6.0"
+ multiformats "^11.0.0"
+
+"@ipld/dag-json@^8.0.1":
+ version "8.0.11"
+ resolved "https://registry.yarnpkg.com/@ipld/dag-json/-/dag-json-8.0.11.tgz#8d30cc2dfacb0aef04d327465d3df91e79e8b6ce"
+ integrity sha512-Pea7JXeYHTWXRTIhBqBlhw7G53PJ7yta3G/sizGEZyzdeEwhZRr0od5IQ0r2ZxOt1Do+2czddjeEPp+YTxDwCA==
+ dependencies:
+ cborg "^1.5.4"
+ multiformats "^9.5.4"
+
+"@ipld/dag-pb@^2.1.3":
+ version "2.1.18"
+ resolved "https://registry.yarnpkg.com/@ipld/dag-pb/-/dag-pb-2.1.18.tgz#12d63e21580e87c75fd1a2c62e375a78e355c16f"
+ integrity sha512-ZBnf2fuX9y3KccADURG5vb9FaOeMjFkCrNysB0PtftME/4iCTjxfaLoNq/IAh5fTqUOMXvryN6Jyka4ZGuMLIg==
+ dependencies:
+ multiformats "^9.5.4"
+
"@isaacs/cliui@^8.0.2":
version "8.0.2"
resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550"
@@ -59,6 +1154,39 @@
dependencies:
"@sinclair/typebox" "^0.27.8"
+"@josephg/resolvable@^1.0.0":
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/@josephg/resolvable/-/resolvable-1.0.1.tgz#69bc4db754d79e1a2f17a650d3466e038d94a5eb"
+ integrity sha512-CtzORUwWTTOTqfVtHaKRJ0I1kNQd1bpn3sUh8I3nJDVY+5/M/Oe1DnEWzPQvqq/xPIIkzzzIP7mfCoAjFRvDhg==
+
+"@jpwilliams/waitgroup@^2.1.0":
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/@jpwilliams/waitgroup/-/waitgroup-2.1.1.tgz#06e639add32d11d5909ca904233a8f77248f76c2"
+ integrity sha512-0CxRhNfkvFCTLZBKGvKxY2FYtYW1yWhO2McLqBL0X5UWvYjIf9suH8anKW/DNutl369A75Ewyoh2iJMwBZ2tRg==
+
+"@jridgewell/resolve-uri@^3.0.3":
+ version "3.1.2"
+ resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6"
+ integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==
+
+"@jridgewell/sourcemap-codec@^1.4.10":
+ version "1.4.15"
+ resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32"
+ integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==
+
+"@jridgewell/trace-mapping@0.3.9":
+ version "0.3.9"
+ resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9"
+ integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==
+ dependencies:
+ "@jridgewell/resolve-uri" "^3.0.3"
+ "@jridgewell/sourcemap-codec" "^1.4.10"
+
+"@leichtgewicht/ip-codec@^2.0.1":
+ version "2.0.5"
+ resolved "https://registry.yarnpkg.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz#4fc56c15c580b9adb7dc3c333a134e540b44bfb1"
+ integrity sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==
+
"@lerna/child-process@6.6.2":
version "6.6.2"
resolved "https://registry.yarnpkg.com/@lerna/child-process/-/child-process-6.6.2.tgz#5d803c8dee81a4e013dc428292e77b365cba876c"
@@ -155,6 +1283,664 @@
write-pkg "4.0.0"
yargs "16.2.0"
+"@libp2p/crypto@^1.0.0", "@libp2p/crypto@^1.0.11", "@libp2p/crypto@^1.0.3", "@libp2p/crypto@^1.0.4":
+ version "1.0.17"
+ resolved "https://registry.yarnpkg.com/@libp2p/crypto/-/crypto-1.0.17.tgz#e64043328c0c866bf7f4cc8560b4f483e9c745dc"
+ integrity sha512-Oeg0Eb/EvAho0gVkOgemXEgrVxWaT3x/DpFgkBdZ9qGxwq75w/E/oPc7souqBz+l1swfz37GWnwV7bIb4Xv5Ag==
+ dependencies:
+ "@libp2p/interface-keys" "^1.0.2"
+ "@libp2p/interfaces" "^3.2.0"
+ "@noble/ed25519" "^1.6.0"
+ "@noble/secp256k1" "^1.5.4"
+ multiformats "^11.0.0"
+ node-forge "^1.1.0"
+ protons-runtime "^5.0.0"
+ uint8arraylist "^2.4.3"
+ uint8arrays "^4.0.2"
+
+"@libp2p/floodsub@^6.0.0":
+ version "6.0.3"
+ resolved "https://registry.yarnpkg.com/@libp2p/floodsub/-/floodsub-6.0.3.tgz#38a5440449ea87bb9be90933a4bca0dbdddfb69c"
+ integrity sha512-ajbgcX5lgtILRWgXLvjbO6TRB3Dxo/JTGvzSpqmFOfcZ4PGubNkbDkOwz1TXVqFqtD/CI0rYrKiwBxlXmH/6tg==
+ dependencies:
+ "@libp2p/interface-peer-id" "^2.0.0"
+ "@libp2p/interface-pubsub" "^3.0.0"
+ "@libp2p/logger" "^2.0.0"
+ "@libp2p/pubsub" "^6.0.0"
+ protons-runtime "^5.0.0"
+ uint8arraylist "^2.1.1"
+ uint8arrays "^4.0.3"
+
+"@libp2p/interface-address-manager@^2.0.0":
+ version "2.0.5"
+ resolved "https://registry.yarnpkg.com/@libp2p/interface-address-manager/-/interface-address-manager-2.0.5.tgz#913fceed38b7cfe12a1e546764e3428a1fbaffda"
+ integrity sha512-e2vLstKkYlAG2PZe6SEBpnnP2Y/ej6URue+zAiyjJPuXoOGNzHyLaqcv7MKye171OEf9dg5wv1gFphWcUJJbSA==
+ dependencies:
+ "@libp2p/interfaces" "^3.0.0"
+ "@multiformats/multiaddr" "^12.0.0"
+
+"@libp2p/interface-connection-encrypter@^3.0.1", "@libp2p/interface-connection-encrypter@^3.0.5":
+ version "3.0.6"
+ resolved "https://registry.yarnpkg.com/@libp2p/interface-connection-encrypter/-/interface-connection-encrypter-3.0.6.tgz#1f7c7428d5905b390cfc5390e72bd02829213d31"
+ integrity sha512-LwyYBN/aSa3IPCe7gBxffx/vaC0rFxAXlCbx4QGaWGtg6qK80Ouj89LEDWb3HkMbecNVWaV4TEqJIM5WnAAx1Q==
+ dependencies:
+ "@libp2p/interface-peer-id" "^2.0.0"
+ it-stream-types "^1.0.4"
+ uint8arraylist "^2.1.2"
+
+"@libp2p/interface-connection-manager@^1.1.1", "@libp2p/interface-connection-manager@^1.3.0":
+ version "1.5.0"
+ resolved "https://registry.yarnpkg.com/@libp2p/interface-connection-manager/-/interface-connection-manager-1.5.0.tgz#959dedb26c3859677f0c889406d1814978e60386"
+ integrity sha512-luqYVMH3yip12JlSwVmBdo5/qG4YnXQXp2AV4lvxWK0sUhCnI2r3YL4e9ne8o3LAA5CkH3lPqTQ2HSRpmOruFg==
+ dependencies:
+ "@libp2p/interface-connection" "^4.0.0"
+ "@libp2p/interface-peer-id" "^2.0.0"
+ "@libp2p/interfaces" "^3.0.0"
+ "@multiformats/multiaddr" "^12.0.0"
+
+"@libp2p/interface-connection@^3.0.1", "@libp2p/interface-connection@^3.0.2":
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/@libp2p/interface-connection/-/interface-connection-3.1.1.tgz#f43180e64de118c29f311ee7111f8bbe50e252bf"
+ integrity sha512-+hxfYLv4jf+MruQEJiJeIyo/wI33/53wRL0XJTkxwQQPAkLHfZWCUY4kY9sXALd3+ASjXAENvJj9VvzZTlkRDQ==
+ dependencies:
+ "@libp2p/interface-peer-id" "^2.0.0"
+ "@libp2p/interfaces" "^3.0.0"
+ "@multiformats/multiaddr" "^12.0.0"
+ it-stream-types "^1.0.4"
+ uint8arraylist "^2.1.2"
+
+"@libp2p/interface-connection@^4.0.0":
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/@libp2p/interface-connection/-/interface-connection-4.0.0.tgz#fcc830ca891820fac89a4c6bd4fcc2df4874f49b"
+ integrity sha512-6xx/NmEc84HX7QmsjSC3hHredQYjHv4Dkf4G27adAPf+qN+vnPxmQ7gaTnk243a0++DOFTbZ2gKX/15G2B6SRg==
+ dependencies:
+ "@libp2p/interface-peer-id" "^2.0.0"
+ "@libp2p/interfaces" "^3.0.0"
+ "@multiformats/multiaddr" "^12.0.0"
+ it-stream-types "^1.0.4"
+ uint8arraylist "^2.1.2"
+
+"@libp2p/interface-connection@^5.0.0", "@libp2p/interface-connection@^5.0.1":
+ version "5.1.1"
+ resolved "https://registry.yarnpkg.com/@libp2p/interface-connection/-/interface-connection-5.1.1.tgz#da0572c76da43629d52b8bec6cd092143fae421d"
+ integrity sha512-ytknMbuuNW72LYMmTP7wFGP5ZTaUSGBCmV9f+uQ55XPcFHtKXLtKWVU/HE8IqPmwtyU8AO7veGoJ/qStMHNRVA==
+ dependencies:
+ "@libp2p/interface-peer-id" "^2.0.0"
+ "@libp2p/interfaces" "^3.0.0"
+ "@multiformats/multiaddr" "^12.0.0"
+ it-stream-types "^2.0.1"
+ uint8arraylist "^2.4.3"
+
+"@libp2p/interface-content-routing@^2.0.0":
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/@libp2p/interface-content-routing/-/interface-content-routing-2.1.1.tgz#7c56acad48f59feb9f0c6dd637e73d0e4eebd510"
+ integrity sha512-nRPOUWgq1K1fDr3FKW93Tip7aH8AFefCw3nJygL4crepxWTSGw95s1GyDpC7t0RJkWTRNHsqZvsFsJ9FkHExKw==
+ dependencies:
+ "@libp2p/interface-peer-info" "^1.0.0"
+ "@libp2p/interfaces" "^3.0.0"
+ multiformats "^11.0.0"
+
+"@libp2p/interface-dht@^2.0.0":
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/@libp2p/interface-dht/-/interface-dht-2.0.3.tgz#da2c11998da9141c85eeaf8402c412174a0b4cbd"
+ integrity sha512-JAKbHvw3egaSeB7CHOf6PF/dLNim4kzAiXX+0IEz2lln8L32/Xf1T7KNOF/RSbSYqO9b7Xxc/b2fuSfyaMwwMQ==
+ dependencies:
+ "@libp2p/interface-peer-discovery" "^2.0.0"
+ "@libp2p/interface-peer-id" "^2.0.0"
+ "@libp2p/interface-peer-info" "^1.0.0"
+ "@libp2p/interfaces" "^3.0.0"
+ multiformats "^11.0.0"
+
+"@libp2p/interface-keychain@^2.0.0", "@libp2p/interface-keychain@^2.0.3", "@libp2p/interface-keychain@^2.0.4":
+ version "2.0.5"
+ resolved "https://registry.yarnpkg.com/@libp2p/interface-keychain/-/interface-keychain-2.0.5.tgz#6ce104f38cf07ad72c9dfbe471a689f4ea4b4687"
+ integrity sha512-mb7QNgn9fIvC7CaJCi06GJ+a6DN6RVT9TmEi0NmedZGATeCArPeWWG7r7IfxNVXb9cVOOE1RzV1swK0ZxEJF9Q==
+ dependencies:
+ "@libp2p/interface-peer-id" "^2.0.0"
+ multiformats "^11.0.0"
+
+"@libp2p/interface-keys@^1.0.2", "@libp2p/interface-keys@^1.0.3", "@libp2p/interface-keys@^1.0.6":
+ version "1.0.8"
+ resolved "https://registry.yarnpkg.com/@libp2p/interface-keys/-/interface-keys-1.0.8.tgz#2c6b55136113ae7cf78133d3c459cdf0455b29ae"
+ integrity sha512-CJ1SlrwuoHMquhEEWS77E+4vv7hwB7XORkqzGQrPQmA9MRdIEZRS64bA4JqCLUDa4ltH0l+U1vp0oZHLT67NEA==
+
+"@libp2p/interface-libp2p@^1.0.0":
+ version "1.3.3"
+ resolved "https://registry.yarnpkg.com/@libp2p/interface-libp2p/-/interface-libp2p-1.3.3.tgz#d3f8e2900f4605a8d60267fc436b95a882688cf1"
+ integrity sha512-7kEoIlAGTIiUNJ/4vIFWx+j+iN4aco7O2PqH6ES3dTvX6sgvYxYFi83p1G/RDj8tHKO7jLfG3UmiwJc/Ab0VyA==
+ dependencies:
+ "@libp2p/interface-connection" "^5.0.0"
+ "@libp2p/interface-content-routing" "^2.0.0"
+ "@libp2p/interface-dht" "^2.0.0"
+ "@libp2p/interface-keychain" "^2.0.0"
+ "@libp2p/interface-metrics" "^4.0.0"
+ "@libp2p/interface-peer-id" "^2.0.0"
+ "@libp2p/interface-peer-info" "^1.0.0"
+ "@libp2p/interface-peer-routing" "^1.0.0"
+ "@libp2p/interface-peer-store" "^1.0.0"
+ "@libp2p/interface-pubsub" "^4.0.0"
+ "@libp2p/interface-registrar" "^2.0.0"
+ "@libp2p/interfaces" "^3.0.0"
+ "@multiformats/multiaddr" "^12.0.0"
+
+"@libp2p/interface-metrics@^4.0.0", "@libp2p/interface-metrics@^4.0.2", "@libp2p/interface-metrics@^4.0.4":
+ version "4.0.8"
+ resolved "https://registry.yarnpkg.com/@libp2p/interface-metrics/-/interface-metrics-4.0.8.tgz#06eb45588737d72f074c70df8d1ef067a2d7cf71"
+ integrity sha512-1b9HjYyJH0m35kvPHipuoz2EtYCxyq34NUhuV8VK1VNtrouMpA3uCKp5FI7yHCA6V6+ux1R3UriKgNFOSGbIXQ==
+ dependencies:
+ "@libp2p/interface-connection" "^5.0.0"
+
+"@libp2p/interface-peer-discovery@^1.0.1":
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/@libp2p/interface-peer-discovery/-/interface-peer-discovery-1.1.1.tgz#5de48cbf30d1899de7138afbf4bb7491f91759e8"
+ integrity sha512-tjbt5DquTyP/JDskasPbIB3lk+zPVL8J9UPfrELZqlslJo9ufsMKyEXcTMMABclTvUsh6uSDgC0JUpUHTeCn8A==
+ dependencies:
+ "@libp2p/interface-peer-info" "^1.0.0"
+ "@libp2p/interfaces" "^3.0.0"
+
+"@libp2p/interface-peer-discovery@^2.0.0":
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/@libp2p/interface-peer-discovery/-/interface-peer-discovery-2.0.0.tgz#90f176cfd202f5a362912386199e64f8b1e0fc53"
+ integrity sha512-Mien5t3Tc+ntP5p50acKUYJN90ouMnq1lOTQDKQNvGcXoajG8A1AEYLocnzVia/MXiexuj6S/Q28WBBacoOlBg==
+ dependencies:
+ "@libp2p/interface-peer-info" "^1.0.0"
+ "@libp2p/interfaces" "^3.0.0"
+
+"@libp2p/interface-peer-id@^2.0.0", "@libp2p/interface-peer-id@^2.0.1", "@libp2p/interface-peer-id@^2.0.2":
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/@libp2p/interface-peer-id/-/interface-peer-id-2.0.2.tgz#6302e70b6fc17c451bc3daa11447d059357bcc32"
+ integrity sha512-9pZp9zhTDoVwzRmp0Wtxw0Yfa//Yc0GqBCJi3EznBDE6HGIAVvppR91wSh2knt/0eYg0AQj7Y35VSesUTzMCUg==
+ dependencies:
+ multiformats "^11.0.0"
+
+"@libp2p/interface-peer-info@^1.0.0", "@libp2p/interface-peer-info@^1.0.2", "@libp2p/interface-peer-info@^1.0.3":
+ version "1.0.10"
+ resolved "https://registry.yarnpkg.com/@libp2p/interface-peer-info/-/interface-peer-info-1.0.10.tgz#566026de95a0817b9e853c982b313541b7960c0b"
+ integrity sha512-HQlo8NwQjMyamCHJrnILEZz+YwEOXCB2sIIw3slIrhVUYeYlTaia1R6d9umaAeLHa255Zmdm4qGH8rJLRqhCcg==
+ dependencies:
+ "@libp2p/interface-peer-id" "^2.0.0"
+ "@multiformats/multiaddr" "^12.0.0"
+
+"@libp2p/interface-peer-routing@^1.0.0", "@libp2p/interface-peer-routing@^1.0.1":
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/@libp2p/interface-peer-routing/-/interface-peer-routing-1.1.1.tgz#b4d3f51d996ce0ea19773db45aff4684e247e6fb"
+ integrity sha512-/XEhwob9qXjdmI8PBcc+qFin32xmtyoC58nRpq8RliqHY5uOVWiHfZoNtdOXIsNvzVvq5FqlHOWt71ofxXTtlg==
+ dependencies:
+ "@libp2p/interface-peer-id" "^2.0.0"
+ "@libp2p/interface-peer-info" "^1.0.0"
+ "@libp2p/interfaces" "^3.0.0"
+
+"@libp2p/interface-peer-store@^1.0.0", "@libp2p/interface-peer-store@^1.2.2":
+ version "1.2.9"
+ resolved "https://registry.yarnpkg.com/@libp2p/interface-peer-store/-/interface-peer-store-1.2.9.tgz#85173892e52ac230abfd45798bfab03dce20ae84"
+ integrity sha512-jAAlbP1NXpEJOG6Dbr0QdP71TBYjHBc/65Ulwdn4J4f04PW1bI4JIMQeq6+/sLfaGVryvvUT/a52io8UUtB21Q==
+ dependencies:
+ "@libp2p/interface-peer-id" "^2.0.0"
+ "@libp2p/interface-peer-info" "^1.0.0"
+ "@libp2p/interface-record" "^2.0.0"
+ "@libp2p/interfaces" "^3.0.0"
+ "@multiformats/multiaddr" "^12.0.0"
+
+"@libp2p/interface-peer-store@^2.0.0":
+ version "2.0.4"
+ resolved "https://registry.yarnpkg.com/@libp2p/interface-peer-store/-/interface-peer-store-2.0.4.tgz#5e9961b37094341216301285edf6fd73f3e796aa"
+ integrity sha512-jNvBK3O1JPJqSiDN2vkb+PV8bTPnYdP54nxsLtut1BWukNm610lwzwleV7CetFI4bJCn6g+BgBvvq8fdADy0tA==
+ dependencies:
+ "@libp2p/interface-peer-id" "^2.0.0"
+ "@multiformats/multiaddr" "^12.0.0"
+
+"@libp2p/interface-pubsub@^3.0.0":
+ version "3.0.7"
+ resolved "https://registry.yarnpkg.com/@libp2p/interface-pubsub/-/interface-pubsub-3.0.7.tgz#cc1c7c47c883daddd2b84d83d719b3826943be3b"
+ integrity sha512-+c74EVUBTfw2sx1GE/z/IjsYO6dhur+ukF0knAppeZsRQ1Kgg6K5R3eECtT28fC6dBWLjFpAvW/7QGfiDAL4RA==
+ dependencies:
+ "@libp2p/interface-connection" "^4.0.0"
+ "@libp2p/interface-peer-id" "^2.0.0"
+ "@libp2p/interfaces" "^3.0.0"
+ it-pushable "^3.0.0"
+ uint8arraylist "^2.1.2"
+
+"@libp2p/interface-pubsub@^4.0.0":
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/@libp2p/interface-pubsub/-/interface-pubsub-4.0.1.tgz#27f85b43ced13cf3382629a38f309f7fc7b45bec"
+ integrity sha512-PIc5V/J98Yr1ZTHh8lQshP7GdVUh+pKNIqj6wGaDmXs8oQLB40qKCjcpHQNlAnv2e1Bh9mEH2GXv5sGZOA651A==
+ dependencies:
+ "@libp2p/interface-connection" "^5.0.0"
+ "@libp2p/interface-peer-id" "^2.0.0"
+ "@libp2p/interfaces" "^3.0.0"
+ it-pushable "^3.1.3"
+ uint8arraylist "^2.4.3"
+
+"@libp2p/interface-record@^2.0.0", "@libp2p/interface-record@^2.0.1":
+ version "2.0.7"
+ resolved "https://registry.yarnpkg.com/@libp2p/interface-record/-/interface-record-2.0.7.tgz#d083776e465cfa66d10e1d3c8e015677a9fc7635"
+ integrity sha512-AFPytZWI+p8FJWP0xuK5zbSjalLAOIMzEed2lBKdRWvdGBQUHt9ENLTkfkI9G7p/Pp3hlhVzzBXdIErKd+0GxQ==
+ dependencies:
+ "@libp2p/interface-peer-id" "^2.0.0"
+ uint8arraylist "^2.4.3"
+
+"@libp2p/interface-registrar@^2.0.0", "@libp2p/interface-registrar@^2.0.3":
+ version "2.0.12"
+ resolved "https://registry.yarnpkg.com/@libp2p/interface-registrar/-/interface-registrar-2.0.12.tgz#a74b59df7b6c345d8bb45d310469b2d5f923e9bf"
+ integrity sha512-EyCi2bycC2rn3oPB4Swr7EqBsvcaWd6RcqR6zsImNIG9BKc4/R1gl6iaF861JaELYgYmzBMS31x1rQpVz5UekQ==
+ dependencies:
+ "@libp2p/interface-connection" "^5.0.0"
+ "@libp2p/interface-peer-id" "^2.0.0"
+
+"@libp2p/interface-stream-muxer@^3.0.0":
+ version "3.0.6"
+ resolved "https://registry.yarnpkg.com/@libp2p/interface-stream-muxer/-/interface-stream-muxer-3.0.6.tgz#f84fae484290b667a1b4ffa51af7d6138765a698"
+ integrity sha512-wbLrH/bdF8qe0CpPd3BFMSmUs085vc3/8zx5uhXJySD672enAc8Jw9gmAYd1pIqELdqJqBDg9EI0y1XMRxvVkw==
+ dependencies:
+ "@libp2p/interface-connection" "^4.0.0"
+ "@libp2p/interfaces" "^3.0.0"
+ it-stream-types "^1.0.4"
+
+"@libp2p/interface-transport@^2.0.0", "@libp2p/interface-transport@^2.1.0":
+ version "2.1.3"
+ resolved "https://registry.yarnpkg.com/@libp2p/interface-transport/-/interface-transport-2.1.3.tgz#3fbc8457013a1552d281a3d94ee7ae0725cc16e0"
+ integrity sha512-ez+0X+w2Wyw3nJY6mP0DHFgrRnln/miAH4TJLcRfUSJHjGXH5ZfpuK1TnRxXpEUiqOezSbwke06/znI27KpRiQ==
+ dependencies:
+ "@libp2p/interface-connection" "^4.0.0"
+ "@libp2p/interface-stream-muxer" "^3.0.0"
+ "@libp2p/interfaces" "^3.0.0"
+ "@multiformats/multiaddr" "^12.0.0"
+ it-stream-types "^1.0.4"
+
+"@libp2p/interface@^0.1.6":
+ version "0.1.6"
+ resolved "https://registry.yarnpkg.com/@libp2p/interface/-/interface-0.1.6.tgz#1328cf6086f02c499183489ccb143fe9c159e871"
+ integrity sha512-Lzc5cS/hXuoXhuAbVIxJIHLCYmfPcbU0vVgrpMoiP1Qb2Q3ETU4A46GB8s8mWXgSU6tr9RcqerUqzFYD6+OAag==
+ dependencies:
+ "@multiformats/multiaddr" "^12.1.5"
+ abortable-iterator "^5.0.1"
+ it-pushable "^3.2.0"
+ it-stream-types "^2.0.1"
+ multiformats "^12.0.1"
+ p-defer "^4.0.0"
+ race-signal "^1.0.0"
+ uint8arraylist "^2.4.3"
+
+"@libp2p/interface@^1.0.0", "@libp2p/interface@^1.4.0":
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/@libp2p/interface/-/interface-1.4.0.tgz#19066f29c21e6ad0d7237997f13f785e3a4fd056"
+ integrity sha512-XkbZ0NfLVnxvWgo1nVyMwCUYDQbFYFvYPA6KUPLV7/XgcxBapVZT5sJ9hgQ4kTsqSBbjQl6YDXDxCclAPZDNTQ==
+ dependencies:
+ "@multiformats/multiaddr" "^12.2.3"
+ it-pushable "^3.2.3"
+ it-stream-types "^2.0.1"
+ multiformats "^13.1.0"
+ progress-events "^1.0.0"
+ uint8arraylist "^2.4.8"
+
+"@libp2p/interfaces@^3.0.0", "@libp2p/interfaces@^3.0.2", "@libp2p/interfaces@^3.0.3", "@libp2p/interfaces@^3.2.0", "@libp2p/interfaces@^3.3.1":
+ version "3.3.2"
+ resolved "https://registry.yarnpkg.com/@libp2p/interfaces/-/interfaces-3.3.2.tgz#5d8079be845b0960939b5b18880e785a4714465a"
+ integrity sha512-p/M7plbrxLzuQchvNwww1Was7ZeGE2NaOFulMaZBYIihU8z3fhaV+a033OqnC/0NTX/yhfdNOG7znhYq3XoR/g==
+
+"@libp2p/keychain@^1.0.0":
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/@libp2p/keychain/-/keychain-1.0.1.tgz#f34d611ece45bd871f597bd14ce61e60459c6d5d"
+ integrity sha512-IvvBNcN6juPldpENiDrQFVx12573HP+jRoECGuyUBaMDy2uewFbEPWQbHFmF/kMD1IvEmAiihxrTLk7kEWllfg==
+ dependencies:
+ "@libp2p/crypto" "^1.0.11"
+ "@libp2p/interface-keychain" "^2.0.3"
+ "@libp2p/interface-peer-id" "^2.0.1"
+ "@libp2p/interfaces" "^3.3.1"
+ "@libp2p/logger" "^2.0.5"
+ "@libp2p/peer-id" "^2.0.1"
+ interface-datastore "^7.0.3"
+ merge-options "^3.0.4"
+ sanitize-filename "^1.6.3"
+ uint8arrays "^4.0.3"
+
+"@libp2p/logger@^2.0.0", "@libp2p/logger@^2.0.1", "@libp2p/logger@^2.0.2", "@libp2p/logger@^2.0.5":
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/@libp2p/logger/-/logger-2.1.1.tgz#e12e6c320ea64252af954bcec996895098d1cd36"
+ integrity sha512-2UbzDPctg3cPupF6jrv6abQnAUTrbLybNOj0rmmrdGm1cN2HJ1o/hBu0sXuq4KF9P1h/eVRn1HIRbVIEKnEJrA==
+ dependencies:
+ "@libp2p/interface-peer-id" "^2.0.2"
+ "@multiformats/multiaddr" "^12.1.3"
+ debug "^4.3.4"
+ interface-datastore "^8.2.0"
+ multiformats "^11.0.2"
+
+"@libp2p/logger@^3.0.2":
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/@libp2p/logger/-/logger-3.1.0.tgz#ac9adb08f344934e191d7049ce876ac0111449ce"
+ integrity sha512-qJbJBAhxHVsRBtQSOIkSLi0lskUSFjzE+zm0QvoyxzZKSz+mX41mZLbnofPIVOVauoDQ40dXpe7WDUOq8AbiQQ==
+ dependencies:
+ "@libp2p/interface" "^0.1.6"
+ "@multiformats/multiaddr" "^12.1.5"
+ debug "^4.3.4"
+ interface-datastore "^8.2.0"
+ multiformats "^12.0.1"
+
+"@libp2p/logger@^4.0.1":
+ version "4.0.13"
+ resolved "https://registry.yarnpkg.com/@libp2p/logger/-/logger-4.0.13.tgz#9a32d933c79be8854726a1d3c69d95ed69e1f677"
+ integrity sha512-z1i4Ksdr4cl96Y+VwJdhdNUkwP7189oTn0AQrAQc9WnLKqRUGXWwDf2OgdpJbPU71KteZT3UXLRQGWzXKCt2Wg==
+ dependencies:
+ "@libp2p/interface" "^1.4.0"
+ "@multiformats/multiaddr" "^12.2.3"
+ debug "^4.3.4"
+ interface-datastore "^8.2.11"
+ multiformats "^13.1.0"
+
+"@libp2p/mplex@^7.1.1":
+ version "7.1.7"
+ resolved "https://registry.yarnpkg.com/@libp2p/mplex/-/mplex-7.1.7.tgz#ee14192f5e82aa3710ae4a102875278aea0bb127"
+ integrity sha512-8eJ6HUL3bM8ck0rb/NJ04+phBUVBMocxH/kuc2Nypn8RX9ezihV7srGGhG5N7muaMwJrRbYkFhIV4GH+8WTZUg==
+ dependencies:
+ "@libp2p/interface-connection" "^4.0.0"
+ "@libp2p/interface-stream-muxer" "^3.0.0"
+ "@libp2p/interfaces" "^3.2.0"
+ "@libp2p/logger" "^2.0.0"
+ abortable-iterator "^4.0.2"
+ any-signal "^4.0.1"
+ benchmark "^2.1.4"
+ it-batched-bytes "^1.0.0"
+ it-pushable "^3.1.0"
+ it-stream-types "^1.0.4"
+ rate-limiter-flexible "^2.3.9"
+ uint8arraylist "^2.1.1"
+ uint8arrays "^4.0.2"
+ varint "^6.0.0"
+
+"@libp2p/multistream-select@^3.0.0":
+ version "3.1.9"
+ resolved "https://registry.yarnpkg.com/@libp2p/multistream-select/-/multistream-select-3.1.9.tgz#60b12503bab879a2ebb97d69f4670a10e67c35c8"
+ integrity sha512-iSNqr8jXvOrkNTyA43h/ARs4wd0Rd55/D6oFRndLcV4yQSUMmfjl7dUcbC5MAw+5/sgskfDx9TMawSwNq47Qwg==
+ dependencies:
+ "@libp2p/interfaces" "^3.2.0"
+ "@libp2p/logger" "^2.0.0"
+ abortable-iterator "^5.0.0"
+ it-first "^3.0.1"
+ it-handshake "^4.1.3"
+ it-length-prefixed "^9.0.0"
+ it-merge "^3.0.0"
+ it-pipe "^3.0.0"
+ it-pushable "^3.1.0"
+ it-reader "^6.0.1"
+ it-stream-types "^2.0.1"
+ uint8arraylist "^2.3.1"
+ uint8arrays "^4.0.2"
+
+"@libp2p/peer-collections@^3.0.0":
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/@libp2p/peer-collections/-/peer-collections-3.0.2.tgz#a5441108fcf137e822be378e2e3abdd3f22c68d9"
+ integrity sha512-3vRVMWVRCF6dVs/1/CHbw4YSv83bcqjZuAt9ZQHW85vn6OfHNFQesOHWT1TbRBuL8TSb//IwJkOfTAVLd6Mymw==
+ dependencies:
+ "@libp2p/interface-peer-id" "^2.0.0"
+ "@libp2p/peer-id" "^2.0.0"
+
+"@libp2p/peer-id-factory@^2.0.0":
+ version "2.0.4"
+ resolved "https://registry.yarnpkg.com/@libp2p/peer-id-factory/-/peer-id-factory-2.0.4.tgz#ccf74ece34d16a069602e7cae28b1cb739803e0c"
+ integrity sha512-+0D+oklFzHpjRI3v7uw3PMMx00P36DV7YvAgL0+gpos0VzR/BI9tRiM6dpObZTrQ1hxp78F03p+qR1Zy9Qnmuw==
+ dependencies:
+ "@libp2p/crypto" "^1.0.0"
+ "@libp2p/interface-keys" "^1.0.2"
+ "@libp2p/interface-peer-id" "^2.0.0"
+ "@libp2p/peer-id" "^2.0.0"
+ multiformats "^11.0.0"
+ protons-runtime "^5.0.0"
+ uint8arraylist "^2.0.0"
+ uint8arrays "^4.0.2"
+
+"@libp2p/peer-id@^2.0.0", "@libp2p/peer-id@^2.0.1":
+ version "2.0.4"
+ resolved "https://registry.yarnpkg.com/@libp2p/peer-id/-/peer-id-2.0.4.tgz#d50d2ae4663ef79f6e31ce4eaf25e1f44e1667ab"
+ integrity sha512-gcOsN8Fbhj6izIK+ejiWsqiqKeJ2yWPapi/m55VjOvDa52/ptQzZszxQP8jUk93u36de92ATFXDfZR/Bi6eeUQ==
+ dependencies:
+ "@libp2p/interface-peer-id" "^2.0.0"
+ "@libp2p/interfaces" "^3.2.0"
+ multiformats "^11.0.0"
+ uint8arrays "^4.0.2"
+
+"@libp2p/peer-id@^3.0.2":
+ version "3.0.6"
+ resolved "https://registry.yarnpkg.com/@libp2p/peer-id/-/peer-id-3.0.6.tgz#93b3f240488c0af3d76f64716e2ee032cd2fd2da"
+ integrity sha512-iN1Ia5gH2U1V/GOVRmLHmVY6fblxzrOPUoZrMYjHl/K4s+AiI7ym/527WDeQvhQpD7j3TfDwcAYforD2dLGpLw==
+ dependencies:
+ "@libp2p/interface" "^0.1.6"
+ multiformats "^12.0.1"
+ uint8arrays "^4.0.6"
+
+"@libp2p/peer-record@^5.0.0":
+ version "5.0.4"
+ resolved "https://registry.yarnpkg.com/@libp2p/peer-record/-/peer-record-5.0.4.tgz#b8f337a2864ffe2ffbb34596cb03d7c339ed18ae"
+ integrity sha512-e+AArf7pwMLqF24mehTe1OYjr1v0SOKshVrI1E9YH/Cb1F3ZZuK3smyGmnLaS4JlqsarRCMSe3V50tRkqMFY7g==
+ dependencies:
+ "@libp2p/crypto" "^1.0.11"
+ "@libp2p/interface-peer-id" "^2.0.0"
+ "@libp2p/interface-record" "^2.0.1"
+ "@libp2p/interfaces" "^3.2.0"
+ "@libp2p/peer-id" "^2.0.0"
+ "@libp2p/utils" "^3.0.0"
+ "@multiformats/multiaddr" "^12.0.0"
+ protons-runtime "^5.0.0"
+ uint8-varint "^1.0.2"
+ uint8arraylist "^2.1.0"
+ uint8arrays "^4.0.2"
+
+"@libp2p/peer-store@^6.0.0":
+ version "6.0.4"
+ resolved "https://registry.yarnpkg.com/@libp2p/peer-store/-/peer-store-6.0.4.tgz#3ec42dc8f1863a06bd487ba0701719356a0da51f"
+ integrity sha512-yw7XbeJ5k880PpkDV/HcSZtj0vQ0ShPbnCzVHc1hW0JS/g1vhpSooAZOf3w65obUoFhUwccnSZ4HSLBSpQqOaA==
+ dependencies:
+ "@libp2p/interface-peer-id" "^2.0.0"
+ "@libp2p/interface-peer-info" "^1.0.3"
+ "@libp2p/interface-peer-store" "^1.2.2"
+ "@libp2p/interface-record" "^2.0.1"
+ "@libp2p/interfaces" "^3.2.0"
+ "@libp2p/logger" "^2.0.0"
+ "@libp2p/peer-id" "^2.0.0"
+ "@libp2p/peer-record" "^5.0.0"
+ "@multiformats/multiaddr" "^11.0.0"
+ interface-datastore "^7.0.0"
+ it-all "^2.0.0"
+ it-filter "^2.0.0"
+ it-foreach "^1.0.0"
+ it-map "^2.0.0"
+ mortice "^3.0.0"
+ multiformats "^11.0.0"
+ protons-runtime "^5.0.0"
+ uint8arraylist "^2.1.1"
+ uint8arrays "^4.0.2"
+
+"@libp2p/pubsub-peer-discovery@^8.0.0":
+ version "8.0.6"
+ resolved "https://registry.yarnpkg.com/@libp2p/pubsub-peer-discovery/-/pubsub-peer-discovery-8.0.6.tgz#fb48a4c6e7c1d79f819997ee6076f15a6fe87f62"
+ integrity sha512-M1HoB+AohAaup0fP0Hm8reLctFgKvyRw+R/SlHnHj/jHinHKCtQhNZ9MSiV4vNnSomJZ+viFMw+3Yl2bgvbfgw==
+ dependencies:
+ "@libp2p/interface-peer-discovery" "^2.0.0"
+ "@libp2p/interface-peer-id" "^2.0.0"
+ "@libp2p/interface-peer-info" "^1.0.2"
+ "@libp2p/interface-pubsub" "^4.0.0"
+ "@libp2p/interfaces" "^3.0.3"
+ "@libp2p/logger" "^3.0.2"
+ "@libp2p/peer-id" "^3.0.2"
+ "@multiformats/multiaddr" "^12.0.0"
+ protons-runtime "^5.0.0"
+ uint8arraylist "^2.4.3"
+
+"@libp2p/pubsub@^6.0.0":
+ version "6.0.6"
+ resolved "https://registry.yarnpkg.com/@libp2p/pubsub/-/pubsub-6.0.6.tgz#7acf5a1de8fa5d982afc109ddd31e240111e7fe8"
+ integrity sha512-/JU4xvtZIYDxOyiHIk4MlpnAJuqfZsabDP+4f59QlXNsppOmiIujaDhN3eFBFIKG29XDSgHZBzKMLK+XsB8O5g==
+ dependencies:
+ "@libp2p/crypto" "^1.0.0"
+ "@libp2p/interface-connection" "^4.0.0"
+ "@libp2p/interface-peer-id" "^2.0.0"
+ "@libp2p/interface-pubsub" "^3.0.0"
+ "@libp2p/interface-registrar" "^2.0.0"
+ "@libp2p/interfaces" "^3.2.0"
+ "@libp2p/logger" "^2.0.0"
+ "@libp2p/peer-collections" "^3.0.0"
+ "@libp2p/peer-id" "^2.0.0"
+ "@libp2p/topology" "^4.0.0"
+ abortable-iterator "^4.0.2"
+ it-length-prefixed "^9.0.0"
+ it-pipe "^3.0.0"
+ it-pushable "^3.0.0"
+ multiformats "^11.0.0"
+ p-queue "^7.2.0"
+ uint8arraylist "^2.0.0"
+ uint8arrays "^4.0.2"
+
+"@libp2p/tcp@^6.0.0":
+ version "6.2.2"
+ resolved "https://registry.yarnpkg.com/@libp2p/tcp/-/tcp-6.2.2.tgz#9262e284037f0951aca22f0fb3d488e3515ff6fd"
+ integrity sha512-5pLQDSUI+6qtAvh7pYgjqXFuFqzZ/AGL3BSX4C2oa+vWGIbooTZK3Mizp+iO0yHomVJ1y3V8AXXH8ddWdFqDpQ==
+ dependencies:
+ "@libp2p/interface-connection" "^4.0.0"
+ "@libp2p/interface-metrics" "^4.0.0"
+ "@libp2p/interface-transport" "^2.0.0"
+ "@libp2p/interfaces" "^3.2.0"
+ "@libp2p/logger" "^2.0.0"
+ "@libp2p/utils" "^3.0.2"
+ "@multiformats/mafmt" "^12.0.0"
+ "@multiformats/multiaddr" "^12.0.0"
+ stream-to-it "^0.2.2"
+
+"@libp2p/topology@^4.0.0":
+ version "4.0.3"
+ resolved "https://registry.yarnpkg.com/@libp2p/topology/-/topology-4.0.3.tgz#d86e013bd065b2a61ce82d416e1962c8556a46eb"
+ integrity sha512-uXd9ZYpmgb+onMTypsAPUlvKKeY20HMtxwsjAMEfDa29yqshK8DiEunHZNjLmtXaMIIO9CBl2w5ykjt5TtFsBQ==
+ dependencies:
+ "@libp2p/interface-peer-id" "^2.0.0"
+ "@libp2p/interface-registrar" "^2.0.3"
+
+"@libp2p/tracked-map@^3.0.0":
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/@libp2p/tracked-map/-/tracked-map-3.0.4.tgz#77bf9ca8fb85cb4593d02086671648cbb1f671d9"
+ integrity sha512-G5ElrjFoubP10TwQo3dnRVaxhshU9wtu86qq0cIXNv12XCFpvTvx12Vbf8sV1SU5imrWgd6XQgfRKsQtjmu3Ew==
+ dependencies:
+ "@libp2p/interface-metrics" "^4.0.0"
+
+"@libp2p/utils@^3.0.0", "@libp2p/utils@^3.0.2":
+ version "3.0.13"
+ resolved "https://registry.yarnpkg.com/@libp2p/utils/-/utils-3.0.13.tgz#a0bf648df4cc0bbb7542a9d88651cc92039a50c9"
+ integrity sha512-SNwIcQq/FvLpqVsjHHzbxSq7VgbbUK9EB7/865Re4NoLfqgE/6oTUpyPEDlrcJb4aTPFWbVPQzE85cA3raHIIw==
+ dependencies:
+ "@achingbrain/ip-address" "^8.1.0"
+ "@libp2p/interface-connection" "^5.0.1"
+ "@libp2p/interface-peer-store" "^2.0.0"
+ "@libp2p/interfaces" "^3.2.0"
+ "@libp2p/logger" "^2.0.0"
+ "@multiformats/multiaddr" "^12.0.0"
+ abortable-iterator "^5.0.0"
+ is-loopback-addr "^2.0.1"
+ it-stream-types "^2.0.1"
+ private-ip "^3.0.0"
+ uint8arraylist "^2.3.2"
+
+"@libp2p/webrtc-peer@^2.0.2":
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/@libp2p/webrtc-peer/-/webrtc-peer-2.0.2.tgz#71c240e34905c6c97e20fdf703cec025c745c155"
+ integrity sha512-FozliUqHO1CIzrL8hPc5uT+5AGUWf5Dw3HncL9tte/CoDNVpj6O59ITIRWefssp3oIGEAIjpcebNu1d+mYfVug==
+ dependencies:
+ "@libp2p/interfaces" "^3.0.2"
+ "@libp2p/logger" "^2.0.0"
+ delay "^5.0.0"
+ err-code "^3.0.1"
+ iso-random-stream "^2.0.2"
+ it-pushable "^3.0.0"
+ it-stream-types "^1.0.4"
+ p-defer "^4.0.0"
+ p-event "^5.0.1"
+ uint8arrays "^4.0.2"
+
+"@libp2p/websockets@^5.0.5":
+ version "5.0.10"
+ resolved "https://registry.yarnpkg.com/@libp2p/websockets/-/websockets-5.0.10.tgz#87689c083a7b7e0fa98ab30f0791094c2545f83c"
+ integrity sha512-q8aKm0rhDxZjc4TzDpB0quog4pViFnz+Ok+UbGEk3xXxHwT3QCxaDVPKMemMqN/1N3OahVvcodpcvFSuWmus+A==
+ dependencies:
+ "@libp2p/interface-connection" "^4.0.0"
+ "@libp2p/interface-transport" "^2.0.0"
+ "@libp2p/interfaces" "^3.0.3"
+ "@libp2p/logger" "^2.0.0"
+ "@libp2p/utils" "^3.0.2"
+ "@multiformats/mafmt" "^12.0.0"
+ "@multiformats/multiaddr" "^12.0.0"
+ "@multiformats/multiaddr-to-uri" "^9.0.2"
+ abortable-iterator "^4.0.2"
+ it-ws "^5.0.6"
+ p-defer "^4.0.0"
+ p-timeout "^6.0.0"
+ wherearewe "^2.0.1"
+ ws "^8.12.1"
+
+"@multiformats/dns@^1.0.3":
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/@multiformats/dns/-/dns-1.0.6.tgz#b8c7de11459a02a5f4e609d35d3cdb95cb6ad152"
+ integrity sha512-nt/5UqjMPtyvkG9BQYdJ4GfLK3nMqGpFZOzf4hAmIa0sJh2LlS9YKXZ4FgwBDsaHvzZqR/rUFIywIc7pkHNNuw==
+ dependencies:
+ "@types/dns-packet" "^5.6.5"
+ buffer "^6.0.3"
+ dns-packet "^5.6.1"
+ hashlru "^2.3.0"
+ p-queue "^8.0.1"
+ progress-events "^1.0.0"
+ uint8arrays "^5.0.2"
+
+"@multiformats/mafmt@^11.0.2":
+ version "11.1.2"
+ resolved "https://registry.yarnpkg.com/@multiformats/mafmt/-/mafmt-11.1.2.tgz#c03ef4022c795b7f230b136f2f974fc263eac4f1"
+ integrity sha512-3n1o5eLU7WzTAPLuz3AodV7Iql6NWf7Ws8fqVaGT7o5nDDabUPYGBm2cZuh3OrqmwyCY61LrNUIsjzivU6UdpQ==
+ dependencies:
+ "@multiformats/multiaddr" "^12.0.0"
+
+"@multiformats/mafmt@^12.0.0":
+ version "12.1.6"
+ resolved "https://registry.yarnpkg.com/@multiformats/mafmt/-/mafmt-12.1.6.tgz#e7c1831c1e94c94932621826049afc89f3ad43b7"
+ integrity sha512-tlJRfL21X+AKn9b5i5VnaTD6bNttpSpcqwKVmDmSHLwxoz97fAHaepqFOk/l1fIu94nImIXneNbhsJx/RQNIww==
+ dependencies:
+ "@multiformats/multiaddr" "^12.0.0"
+
+"@multiformats/multiaddr-to-uri@^9.0.2":
+ version "9.0.8"
+ resolved "https://registry.yarnpkg.com/@multiformats/multiaddr-to-uri/-/multiaddr-to-uri-9.0.8.tgz#c0b1491b26a4d52273ddc16024c59ba47ef8583f"
+ integrity sha512-4eiN5iEiQfy2A98BxekUfW410L/ivg0sgjYSgSqmklnrBhK+QyMz4yqgfkub8xDTXOc7O5jp4+LVyM3ZqMeWNw==
+ dependencies:
+ "@multiformats/multiaddr" "^12.0.0"
+
+"@multiformats/multiaddr@^11.0.0", "@multiformats/multiaddr@^11.1.4":
+ version "11.6.1"
+ resolved "https://registry.yarnpkg.com/@multiformats/multiaddr/-/multiaddr-11.6.1.tgz#ec46984a298e715e27a398434c087856db5f3185"
+ integrity sha512-doST0+aB7/3dGK9+U5y3mtF3jq85KGbke1QiH0KE1F5mGQ9y56mFebTeu2D9FNOm+OT6UHb8Ss8vbSnpGjeLNw==
+ dependencies:
+ "@chainsafe/is-ip" "^2.0.1"
+ dns-over-http-resolver "^2.1.0"
+ err-code "^3.0.1"
+ multiformats "^11.0.0"
+ uint8arrays "^4.0.2"
+ varint "^6.0.0"
+
+"@multiformats/multiaddr@^12.0.0", "@multiformats/multiaddr@^12.1.3", "@multiformats/multiaddr@^12.1.5", "@multiformats/multiaddr@^12.2.3":
+ version "12.3.0"
+ resolved "https://registry.yarnpkg.com/@multiformats/multiaddr/-/multiaddr-12.3.0.tgz#b1422813446e5cdec4b0f6cba51f93239f390884"
+ integrity sha512-JQ8Gc/jgucqqvEaDTFN/AvxlYDHEE7lgEWLMYW7hKZkWggER+GvG/tVxUgUxIP8M0vFpvEHKKHE0lKzyMsgi8Q==
+ dependencies:
+ "@chainsafe/is-ip" "^2.0.1"
+ "@chainsafe/netmask" "^2.0.0"
+ "@libp2p/interface" "^1.0.0"
+ "@multiformats/dns" "^1.0.3"
+ multiformats "^13.0.0"
+ uint8-varint "^2.0.1"
+ uint8arrays "^5.0.0"
+
+"@noble/ed25519@^1.6.0":
+ version "1.7.3"
+ resolved "https://registry.yarnpkg.com/@noble/ed25519/-/ed25519-1.7.3.tgz#57e1677bf6885354b466c38e2b620c62f45a7123"
+ integrity sha512-iR8GBkDt0Q3GyaVcIu7mSsVIqnFbkbRzGLWlvhwunacoLwt4J3swfKhfaM6rN6WY+TBGoYT1GtT1mIh2/jGbRQ==
+
+"@noble/secp256k1@^1.5.4":
+ version "1.7.1"
+ resolved "https://registry.yarnpkg.com/@noble/secp256k1/-/secp256k1-1.7.1.tgz#b251c70f824ce3ca7f8dc3df08d58f005cc0507c"
+ integrity sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw==
+
"@nodelib/fs.scandir@2.1.5":
version "2.1.5"
resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5"
@@ -168,7 +1954,7 @@
resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b"
integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==
-"@nodelib/fs.walk@^1.2.3":
+"@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8":
version "1.2.8"
resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a"
integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==
@@ -548,6 +2334,16 @@
dependencies:
"@octokit/openapi-types" "^18.0.0"
+"@openzeppelin/contracts@4.6.0":
+ version "4.6.0"
+ resolved "https://registry.yarnpkg.com/@openzeppelin/contracts/-/contracts-4.6.0.tgz#c91cf64bc27f573836dba4122758b4743418c1b3"
+ integrity sha512-8vi4d50NNya/bQqCmaVzvHNmwHvS0OBKb7HNtuNwEE3scXWrP31fKQoGxNMT+KbzmrNZzatE3QK5p2gFONI/hg==
+
+"@openzeppelin/contracts@^4.7.3":
+ version "4.9.6"
+ resolved "https://registry.yarnpkg.com/@openzeppelin/contracts/-/contracts-4.9.6.tgz#2a880a24eb19b4f8b25adc2a5095f2aa27f39677"
+ integrity sha512-xSmezSupL+y9VkHZJGDoCBpmnB2ogM13ccaYDWqJTfS3dbuHkgjuwDFUmaFauBCboQMGB/S5UqUl2y54X99BmA==
+
"@parcel/watcher@2.0.4":
version "2.0.4"
resolved "https://registry.yarnpkg.com/@parcel/watcher/-/watcher-2.0.4.tgz#f300fef4cc38008ff4b8c29d92588eced3ce014b"
@@ -561,6 +2357,59 @@
resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33"
integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==
+"@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2":
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/@protobufjs/aspromise/-/aspromise-1.1.2.tgz#9b8b0cc663d669a7d8f6f5d0893a14d348f30fbf"
+ integrity sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==
+
+"@protobufjs/base64@^1.1.2":
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/@protobufjs/base64/-/base64-1.1.2.tgz#4c85730e59b9a1f1f349047dbf24296034bb2735"
+ integrity sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==
+
+"@protobufjs/codegen@^2.0.4":
+ version "2.0.4"
+ resolved "https://registry.yarnpkg.com/@protobufjs/codegen/-/codegen-2.0.4.tgz#7ef37f0d010fb028ad1ad59722e506d9262815cb"
+ integrity sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==
+
+"@protobufjs/eventemitter@^1.1.0":
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz#355cbc98bafad5978f9ed095f397621f1d066b70"
+ integrity sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==
+
+"@protobufjs/fetch@^1.1.0":
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/@protobufjs/fetch/-/fetch-1.1.0.tgz#ba99fb598614af65700c1619ff06d454b0d84c45"
+ integrity sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==
+ dependencies:
+ "@protobufjs/aspromise" "^1.1.1"
+ "@protobufjs/inquire" "^1.1.0"
+
+"@protobufjs/float@^1.0.2":
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/@protobufjs/float/-/float-1.0.2.tgz#5e9e1abdcb73fc0a7cb8b291df78c8cbd97b87d1"
+ integrity sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==
+
+"@protobufjs/inquire@^1.1.0":
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/@protobufjs/inquire/-/inquire-1.1.0.tgz#ff200e3e7cf2429e2dcafc1140828e8cc638f089"
+ integrity sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==
+
+"@protobufjs/path@^1.1.2":
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/@protobufjs/path/-/path-1.1.2.tgz#6cc2b20c5c9ad6ad0dccfd21ca7673d8d7fbf68d"
+ integrity sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==
+
+"@protobufjs/pool@^1.1.0":
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/@protobufjs/pool/-/pool-1.1.0.tgz#09fd15f2d6d3abfa9b65bc366506d6ad7846ff54"
+ integrity sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==
+
+"@protobufjs/utf8@^1.1.0":
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570"
+ integrity sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==
+
"@sigstore/bundle@^1.1.0":
version "1.1.0"
resolved "https://registry.yarnpkg.com/@sigstore/bundle/-/bundle-1.1.0.tgz#17f8d813b09348b16eeed66a8cf1c3d6bd3d04f1"
@@ -595,11 +2444,170 @@
resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.27.8.tgz#6667fac16c436b5434a387a34dedb013198f6e6e"
integrity sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==
+"@sqltools/formatter@^1.2.2":
+ version "1.2.5"
+ resolved "https://registry.yarnpkg.com/@sqltools/formatter/-/formatter-1.2.5.tgz#3abc203c79b8c3e90fd6c156a0c62d5403520e12"
+ integrity sha512-Uy0+khmZqUrUGm5dmMqVlnvufZRSK0FbYzVgp0UMstm+F5+W2/jnEEQyc9vo1ZR/E5ZI/B1WjjoTqBqwJL6Krw==
+
+"@stablelib/aead@^1.0.1":
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/@stablelib/aead/-/aead-1.0.1.tgz#c4b1106df9c23d1b867eb9b276d8f42d5fc4c0c3"
+ integrity sha512-q39ik6sxGHewqtO0nP4BuSe3db5G1fEJE8ukvngS2gLkBXyy6E7pLubhbYgnkDFv6V8cWaxcE4Xn0t6LWcJkyg==
+
+"@stablelib/binary@^1.0.1":
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/@stablelib/binary/-/binary-1.0.1.tgz#c5900b94368baf00f811da5bdb1610963dfddf7f"
+ integrity sha512-ClJWvmL6UBM/wjkvv/7m5VP3GMr9t0osr4yVgLZsLCOz4hGN9gIAFEqnJ0TsSMAN+n840nf2cHZnA5/KFqHC7Q==
+ dependencies:
+ "@stablelib/int" "^1.0.1"
+
+"@stablelib/bytes@^1.0.1":
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/@stablelib/bytes/-/bytes-1.0.1.tgz#0f4aa7b03df3080b878c7dea927d01f42d6a20d8"
+ integrity sha512-Kre4Y4kdwuqL8BR2E9hV/R5sOrUj6NanZaZis0V6lX5yzqC3hBuVSDXUIBqQv/sCpmuWRiHLwqiT1pqqjuBXoQ==
+
+"@stablelib/chacha20poly1305@^1.0.1":
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/@stablelib/chacha20poly1305/-/chacha20poly1305-1.0.1.tgz#de6b18e283a9cb9b7530d8767f99cde1fec4c2ee"
+ integrity sha512-MmViqnqHd1ymwjOQfghRKw2R/jMIGT3wySN7cthjXCBdO+qErNPUBnRzqNpnvIwg7JBCg3LdeCZZO4de/yEhVA==
+ dependencies:
+ "@stablelib/aead" "^1.0.1"
+ "@stablelib/binary" "^1.0.1"
+ "@stablelib/chacha" "^1.0.1"
+ "@stablelib/constant-time" "^1.0.1"
+ "@stablelib/poly1305" "^1.0.1"
+ "@stablelib/wipe" "^1.0.1"
+
+"@stablelib/chacha@^1.0.1":
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/@stablelib/chacha/-/chacha-1.0.1.tgz#deccfac95083e30600c3f92803a3a1a4fa761371"
+ integrity sha512-Pmlrswzr0pBzDofdFuVe1q7KdsHKhhU24e8gkEwnTGOmlC7PADzLVxGdn2PoNVBBabdg0l/IfLKg6sHAbTQugg==
+ dependencies:
+ "@stablelib/binary" "^1.0.1"
+ "@stablelib/wipe" "^1.0.1"
+
+"@stablelib/constant-time@^1.0.1":
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/@stablelib/constant-time/-/constant-time-1.0.1.tgz#bde361465e1cf7b9753061b77e376b0ca4c77e35"
+ integrity sha512-tNOs3uD0vSJcK6z1fvef4Y+buN7DXhzHDPqRLSXUel1UfqMB1PWNsnnAezrKfEwTLpN0cGH2p9NNjs6IqeD0eg==
+
+"@stablelib/hash@^1.0.1":
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/@stablelib/hash/-/hash-1.0.1.tgz#3c944403ff2239fad8ebb9015e33e98444058bc5"
+ integrity sha512-eTPJc/stDkdtOcrNMZ6mcMK1e6yBbqRBaNW55XA1jU8w/7QdnCF0CmMmOD1m7VSkBR44PWrMHU2l6r8YEQHMgg==
+
+"@stablelib/hkdf@^1.0.1":
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/@stablelib/hkdf/-/hkdf-1.0.1.tgz#b4efd47fd56fb43c6a13e8775a54b354f028d98d"
+ integrity sha512-SBEHYE16ZXlHuaW5RcGk533YlBj4grMeg5TooN80W3NpcHRtLZLLXvKyX0qcRFxf+BGDobJLnwkvgEwHIDBR6g==
+ dependencies:
+ "@stablelib/hash" "^1.0.1"
+ "@stablelib/hmac" "^1.0.1"
+ "@stablelib/wipe" "^1.0.1"
+
+"@stablelib/hmac@^1.0.1":
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/@stablelib/hmac/-/hmac-1.0.1.tgz#3d4c1b8cf194cb05d28155f0eed8a299620a07ec"
+ integrity sha512-V2APD9NSnhVpV/QMYgCVMIYKiYG6LSqw1S65wxVoirhU/51ACio6D4yDVSwMzuTJXWZoVHbDdINioBwKy5kVmA==
+ dependencies:
+ "@stablelib/constant-time" "^1.0.1"
+ "@stablelib/hash" "^1.0.1"
+ "@stablelib/wipe" "^1.0.1"
+
+"@stablelib/int@^1.0.1":
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/@stablelib/int/-/int-1.0.1.tgz#75928cc25d59d73d75ae361f02128588c15fd008"
+ integrity sha512-byr69X/sDtDiIjIV6m4roLVWnNNlRGzsvxw+agj8CIEazqWGOQp2dTYgQhtyVXV9wpO6WyXRQUzLV/JRNumT2w==
+
+"@stablelib/keyagreement@^1.0.1":
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/@stablelib/keyagreement/-/keyagreement-1.0.1.tgz#4612efb0a30989deb437cd352cee637ca41fc50f"
+ integrity sha512-VKL6xBwgJnI6l1jKrBAfn265cspaWBPAPEc62VBQrWHLqVgNRE09gQ/AnOEyKUWrrqfD+xSQ3u42gJjLDdMDQg==
+ dependencies:
+ "@stablelib/bytes" "^1.0.1"
+
+"@stablelib/poly1305@^1.0.1":
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/@stablelib/poly1305/-/poly1305-1.0.1.tgz#93bfb836c9384685d33d70080718deae4ddef1dc"
+ integrity sha512-1HlG3oTSuQDOhSnLwJRKeTRSAdFNVB/1djy2ZbS35rBSJ/PFqx9cf9qatinWghC2UbfOYD8AcrtbUQl8WoxabA==
+ dependencies:
+ "@stablelib/constant-time" "^1.0.1"
+ "@stablelib/wipe" "^1.0.1"
+
+"@stablelib/random@^1.0.2":
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/@stablelib/random/-/random-1.0.2.tgz#2dece393636489bf7e19c51229dd7900eddf742c"
+ integrity sha512-rIsE83Xpb7clHPVRlBj8qNe5L8ISQOzjghYQm/dZ7VaM2KHYwMW5adjQjrzTZCchFnNCNhkwtnOBa9HTMJCI8w==
+ dependencies:
+ "@stablelib/binary" "^1.0.1"
+ "@stablelib/wipe" "^1.0.1"
+
+"@stablelib/sha256@^1.0.1":
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/@stablelib/sha256/-/sha256-1.0.1.tgz#77b6675b67f9b0ea081d2e31bda4866297a3ae4f"
+ integrity sha512-GIIH3e6KH+91FqGV42Kcj71Uefd/QEe7Dy42sBTeqppXV95ggCcxLTk39bEr+lZfJmp+ghsR07J++ORkRELsBQ==
+ dependencies:
+ "@stablelib/binary" "^1.0.1"
+ "@stablelib/hash" "^1.0.1"
+ "@stablelib/wipe" "^1.0.1"
+
+"@stablelib/wipe@^1.0.1":
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/@stablelib/wipe/-/wipe-1.0.1.tgz#d21401f1d59ade56a62e139462a97f104ed19a36"
+ integrity sha512-WfqfX/eXGiAd3RJe4VU2snh/ZPwtSjLG4ynQ/vYzvghTh7dHFcI1wl+nrkWG6lGhukOxOsUHfv8dUXr58D0ayg==
+
+"@stablelib/x25519@^1.0.3":
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/@stablelib/x25519/-/x25519-1.0.3.tgz#13c8174f774ea9f3e5e42213cbf9fc68a3c7b7fd"
+ integrity sha512-KnTbKmUhPhHavzobclVJQG5kuivH+qDLpe84iRqX3CLrKp881cF160JvXJ+hjn1aMyCwYOKeIZefIH/P5cJoRw==
+ dependencies:
+ "@stablelib/keyagreement" "^1.0.1"
+ "@stablelib/random" "^1.0.2"
+ "@stablelib/wipe" "^1.0.1"
+
+"@statechannels/exit-format@^0.2.0":
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/@statechannels/exit-format/-/exit-format-0.2.0.tgz#b9362816c2a23d59e429b86b310021de1031a387"
+ integrity sha512-i+HIPy2P6ddwT/uP0O6AiTmBRTQ9+vLmLnfJtvXmtpTsB8OT1R9Jjj5iVKowGcWk+cg8koEtQuQDMxfrHq7LaQ==
+ dependencies:
+ "@openzeppelin/contracts" "4.6.0"
+ ethers "^5.1.4"
+ lodash "^4.17.21"
+
+"@statechannels/nitro-protocol@^2.0.1-alpha.6":
+ version "2.0.1-alpha.6"
+ resolved "https://registry.yarnpkg.com/@statechannels/nitro-protocol/-/nitro-protocol-2.0.1-alpha.6.tgz#1bb59365eb78489eef2dfa73733bc1cad9890685"
+ integrity sha512-VehCgq3AOVTGCvGGIoF23YyQX+x1IbLzByFWbqPovucsm9vW0udR7r8Okw9hC0ZHanHOjQH5KxJL6aKUnrXinw==
+ dependencies:
+ "@openzeppelin/contracts" "^4.7.3"
+ "@statechannels/exit-format" "^0.2.0"
+ "@typechain/ethers-v5" "^9.0.0"
+
"@tootallnate/once@2":
version "2.0.0"
resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.0.tgz#f544a148d3ab35801c1f633a7441fd87c2e484bf"
integrity sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==
+"@tsconfig/node10@^1.0.7":
+ version "1.0.11"
+ resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.11.tgz#6ee46400685f130e278128c7b38b7e031ff5b2f2"
+ integrity sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==
+
+"@tsconfig/node12@^1.0.7":
+ version "1.0.11"
+ resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d"
+ integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==
+
+"@tsconfig/node14@^1.0.0":
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1"
+ integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==
+
+"@tsconfig/node16@^1.0.2":
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.4.tgz#0b92dcc0cc1c81f6f306a381f28e31b1a56536e9"
+ integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==
+
"@tufjs/canonical-json@1.0.0":
version "1.0.0"
resolved "https://registry.yarnpkg.com/@tufjs/canonical-json/-/canonical-json-1.0.0.tgz#eade9fd1f537993bc1f0949f3aea276ecc4fab31"
@@ -613,7 +2621,135 @@
"@tufjs/canonical-json" "1.0.0"
minimatch "^9.0.0"
-"@types/minimatch@^3.0.3":
+"@typechain/ethers-v5@^9.0.0":
+ version "9.0.0"
+ resolved "https://registry.yarnpkg.com/@typechain/ethers-v5/-/ethers-v5-9.0.0.tgz#6aa93bea7425c0463bd8a61eea3643540ef851bd"
+ integrity sha512-bAanuPl1L2itaUdMvor/QvwnIH+TM/CmG00q17Ilv3ZZMeJ2j8HcarhgJUZ9pBY1teBb85P8cC03dz3mSSx+tQ==
+ dependencies:
+ lodash "^4.17.15"
+ ts-essentials "^7.0.1"
+
+"@types/accepts@^1.3.5":
+ version "1.3.7"
+ resolved "https://registry.yarnpkg.com/@types/accepts/-/accepts-1.3.7.tgz#3b98b1889d2b2386604c2bbbe62e4fb51e95b265"
+ integrity sha512-Pay9fq2lM2wXPWbteBsRAGiWH2hig4ZE2asK+mm7kUzlxRTfL961rj89I6zV/E3PcIkDqyuBEcMxFT7rccugeQ==
+ dependencies:
+ "@types/node" "*"
+
+"@types/body-parser@*":
+ version "1.19.5"
+ resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.5.tgz#04ce9a3b677dc8bd681a17da1ab9835dc9d3ede4"
+ integrity sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==
+ dependencies:
+ "@types/connect" "*"
+ "@types/node" "*"
+
+"@types/body-parser@1.19.2":
+ version "1.19.2"
+ resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.2.tgz#aea2059e28b7658639081347ac4fab3de166e6f0"
+ integrity sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==
+ dependencies:
+ "@types/connect" "*"
+ "@types/node" "*"
+
+"@types/connect@*":
+ version "3.4.38"
+ resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.38.tgz#5ba7f3bc4fbbdeaff8dded952e5ff2cc53f8d858"
+ integrity sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==
+ dependencies:
+ "@types/node" "*"
+
+"@types/cors@2.8.12":
+ version "2.8.12"
+ resolved "https://registry.yarnpkg.com/@types/cors/-/cors-2.8.12.tgz#6b2c510a7ad7039e98e7b8d3d6598f4359e5c080"
+ integrity sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw==
+
+"@types/debug@^4.1.5":
+ version "4.1.12"
+ resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.12.tgz#a155f21690871953410df4b6b6f53187f0500917"
+ integrity sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==
+ dependencies:
+ "@types/ms" "*"
+
+"@types/dns-packet@^5.6.5":
+ version "5.6.5"
+ resolved "https://registry.yarnpkg.com/@types/dns-packet/-/dns-packet-5.6.5.tgz#49fc29a40f5d30227ed028fa1ee82601d3745e15"
+ integrity sha512-qXOC7XLOEe43ehtWJCMnQXvgcIpv6rPmQ1jXT98Ad8A3TB1Ue50jsCbSSSyuazScEuZ/Q026vHbrOTVkmwA+7Q==
+ dependencies:
+ "@types/node" "*"
+
+"@types/express-serve-static-core@4.17.31":
+ version "4.17.31"
+ resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.31.tgz#a1139efeab4e7323834bb0226e62ac019f474b2f"
+ integrity sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q==
+ dependencies:
+ "@types/node" "*"
+ "@types/qs" "*"
+ "@types/range-parser" "*"
+
+"@types/express-serve-static-core@^4.17.18":
+ version "4.19.3"
+ resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.19.3.tgz#e469a13e4186c9e1c0418fb17be8bc8ff1b19a7a"
+ integrity sha512-KOzM7MhcBFlmnlr/fzISFF5vGWVSvN6fTd4T+ExOt08bA/dA5kpSzY52nMsI1KDFmUREpJelPYyuslLRSjjgCg==
+ dependencies:
+ "@types/node" "*"
+ "@types/qs" "*"
+ "@types/range-parser" "*"
+ "@types/send" "*"
+
+"@types/express@4.17.14":
+ version "4.17.14"
+ resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.14.tgz#143ea0557249bc1b3b54f15db4c81c3d4eb3569c"
+ integrity sha512-TEbt+vaPFQ+xpxFLFssxUDXj5cWCxZJjIcB7Yg0k0GMHGtgtQgpvx/MUQUeAkNbA9AAGrwkAsoeItdTgS7FMyg==
+ dependencies:
+ "@types/body-parser" "*"
+ "@types/express-serve-static-core" "^4.17.18"
+ "@types/qs" "*"
+ "@types/serve-static" "*"
+
+"@types/http-errors@*":
+ version "2.0.4"
+ resolved "https://registry.yarnpkg.com/@types/http-errors/-/http-errors-2.0.4.tgz#7eb47726c391b7345a6ec35ad7f4de469cf5ba4f"
+ integrity sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==
+
+"@types/http-proxy@^1.17.8":
+ version "1.17.14"
+ resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.14.tgz#57f8ccaa1c1c3780644f8a94f9c6b5000b5e2eec"
+ integrity sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==
+ dependencies:
+ "@types/node" "*"
+
+"@types/json-bigint@^1.0.0":
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/@types/json-bigint/-/json-bigint-1.0.4.tgz#250d29e593375499d8ba6efaab22d094c3199ef3"
+ integrity sha512-ydHooXLbOmxBbubnA7Eh+RpBzuaIiQjh8WGJYQB50JFGFrdxW7JzVlyEV7fAXw0T2sqJ1ysTneJbiyNLqZRAag==
+
+"@types/json-diff@^0.5.2":
+ version "0.5.2"
+ resolved "https://registry.yarnpkg.com/@types/json-diff/-/json-diff-0.5.2.tgz#83689a504b3c7759f046d125d5521d6760ab9d0d"
+ integrity sha512-2oqXStJYYLDHCciNAClY277Ti3kXT+JLvPD7lLm/490i+B7g0GR6M4qiW+bd2V5vpB+yMKY8IelbsHMAYX1D0A==
+
+"@types/json-schema@^7.0.9":
+ version "7.0.15"
+ resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841"
+ integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==
+
+"@types/json5@^0.0.29":
+ version "0.0.29"
+ resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee"
+ integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==
+
+"@types/long@^4.0.0", "@types/long@^4.0.1":
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.2.tgz#b74129719fc8d11c01868010082d483b7545591a"
+ integrity sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==
+
+"@types/mime@^1":
+ version "1.3.5"
+ resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.5.tgz#1ef302e01cf7d2b5a0fa526790c9123bf1d06690"
+ integrity sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==
+
+"@types/minimatch@^3.0.3", "@types/minimatch@^3.0.4":
version "3.0.5"
resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.5.tgz#1001cc5e6a3704b83c236027e77f2f58ea010f40"
integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==
@@ -623,7 +2759,24 @@
resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.5.tgz#ec10755e871497bcd83efe927e43ec46e8c0747e"
integrity sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==
-"@types/normalize-package-data@^2.4.0":
+"@types/ms@*":
+ version "0.7.34"
+ resolved "https://registry.yarnpkg.com/@types/ms/-/ms-0.7.34.tgz#10964ba0dee6ac4cd462e2795b6bebd407303433"
+ integrity sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==
+
+"@types/node@*", "@types/node@>=13.7.0":
+ version "20.14.2"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-20.14.2.tgz#a5f4d2bcb4b6a87bffcaa717718c5a0f208f4a18"
+ integrity sha512-xyu6WAMVwv6AKFLB+e/7ySZVr/0zLCzOa7rSpq6jNwpqOrUbcACDWC+53d4n2QHOnDou0fbIsg8wZu/sxrnI4Q==
+ dependencies:
+ undici-types "~5.26.4"
+
+"@types/node@^10.1.0":
+ version "10.17.60"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-10.17.60.tgz#35f3d6213daed95da7f0f73e75bcc6980e90597b"
+ integrity sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==
+
+"@types/normalize-package-data@^2.4.0", "@types/normalize-package-data@^2.4.3":
version "2.4.4"
resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz#56e2cc26c397c038fab0e3a917a12d5c5909e901"
integrity sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==
@@ -633,6 +2786,189 @@
resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.2.tgz#5950e50960793055845e956c427fc2b0d70c5239"
integrity sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==
+"@types/qs@*":
+ version "6.9.15"
+ resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.15.tgz#adde8a060ec9c305a82de1babc1056e73bd64dce"
+ integrity sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==
+
+"@types/range-parser@*":
+ version "1.2.7"
+ resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.7.tgz#50ae4353eaaddc04044279812f52c8c65857dbcb"
+ integrity sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==
+
+"@types/semver@^7.3.12":
+ version "7.5.8"
+ resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.8.tgz#8268a8c57a3e4abd25c165ecd36237db7948a55e"
+ integrity sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==
+
+"@types/send@*":
+ version "0.17.4"
+ resolved "https://registry.yarnpkg.com/@types/send/-/send-0.17.4.tgz#6619cd24e7270793702e4e6a4b958a9010cfc57a"
+ integrity sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==
+ dependencies:
+ "@types/mime" "^1"
+ "@types/node" "*"
+
+"@types/serve-static@*":
+ version "1.15.7"
+ resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.7.tgz#22174bbd74fb97fe303109738e9b5c2f3064f714"
+ integrity sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==
+ dependencies:
+ "@types/http-errors" "*"
+ "@types/node" "*"
+ "@types/send" "*"
+
+"@types/triple-beam@^1.3.2":
+ version "1.3.5"
+ resolved "https://registry.yarnpkg.com/@types/triple-beam/-/triple-beam-1.3.5.tgz#74fef9ffbaa198eb8b588be029f38b00299caa2c"
+ integrity sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==
+
+"@types/yargs-parser@*":
+ version "21.0.3"
+ resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.3.tgz#815e30b786d2e8f0dcd85fd5bcf5e1a04d008f15"
+ integrity sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==
+
+"@types/yargs@^17.0.0":
+ version "17.0.32"
+ resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.32.tgz#030774723a2f7faafebf645f4e5a48371dca6229"
+ integrity sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==
+ dependencies:
+ "@types/yargs-parser" "*"
+
+"@types/zen-observable@0.8.3":
+ version "0.8.3"
+ resolved "https://registry.yarnpkg.com/@types/zen-observable/-/zen-observable-0.8.3.tgz#781d360c282436494b32fe7d9f7f8e64b3118aa3"
+ integrity sha512-fbF6oTd4sGGy0xjHPKAt+eS2CrxJ3+6gQ3FGcBoIJR2TLAyCkCyI8JqZNy+FeON0AhVgNJoUumVoZQjBFUqHkw==
+
+"@typescript-eslint/eslint-plugin@^5.47.1":
+ version "5.62.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz#aeef0328d172b9e37d9bab6dbc13b87ed88977db"
+ integrity sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==
+ dependencies:
+ "@eslint-community/regexpp" "^4.4.0"
+ "@typescript-eslint/scope-manager" "5.62.0"
+ "@typescript-eslint/type-utils" "5.62.0"
+ "@typescript-eslint/utils" "5.62.0"
+ debug "^4.3.4"
+ graphemer "^1.4.0"
+ ignore "^5.2.0"
+ natural-compare-lite "^1.4.0"
+ semver "^7.3.7"
+ tsutils "^3.21.0"
+
+"@typescript-eslint/parser@^5.47.1":
+ version "5.62.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.62.0.tgz#1b63d082d849a2fcae8a569248fbe2ee1b8a56c7"
+ integrity sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==
+ dependencies:
+ "@typescript-eslint/scope-manager" "5.62.0"
+ "@typescript-eslint/types" "5.62.0"
+ "@typescript-eslint/typescript-estree" "5.62.0"
+ debug "^4.3.4"
+
+"@typescript-eslint/scope-manager@5.62.0":
+ version "5.62.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz#d9457ccc6a0b8d6b37d0eb252a23022478c5460c"
+ integrity sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==
+ dependencies:
+ "@typescript-eslint/types" "5.62.0"
+ "@typescript-eslint/visitor-keys" "5.62.0"
+
+"@typescript-eslint/type-utils@5.62.0":
+ version "5.62.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz#286f0389c41681376cdad96b309cedd17d70346a"
+ integrity sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==
+ dependencies:
+ "@typescript-eslint/typescript-estree" "5.62.0"
+ "@typescript-eslint/utils" "5.62.0"
+ debug "^4.3.4"
+ tsutils "^3.21.0"
+
+"@typescript-eslint/types@5.62.0":
+ version "5.62.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.62.0.tgz#258607e60effa309f067608931c3df6fed41fd2f"
+ integrity sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==
+
+"@typescript-eslint/typescript-estree@5.62.0":
+ version "5.62.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz#7d17794b77fabcac615d6a48fb143330d962eb9b"
+ integrity sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==
+ dependencies:
+ "@typescript-eslint/types" "5.62.0"
+ "@typescript-eslint/visitor-keys" "5.62.0"
+ debug "^4.3.4"
+ globby "^11.1.0"
+ is-glob "^4.0.3"
+ semver "^7.3.7"
+ tsutils "^3.21.0"
+
+"@typescript-eslint/utils@5.62.0":
+ version "5.62.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.62.0.tgz#141e809c71636e4a75daa39faed2fb5f4b10df86"
+ integrity sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==
+ dependencies:
+ "@eslint-community/eslint-utils" "^4.2.0"
+ "@types/json-schema" "^7.0.9"
+ "@types/semver" "^7.3.12"
+ "@typescript-eslint/scope-manager" "5.62.0"
+ "@typescript-eslint/types" "5.62.0"
+ "@typescript-eslint/typescript-estree" "5.62.0"
+ eslint-scope "^5.1.1"
+ semver "^7.3.7"
+
+"@typescript-eslint/visitor-keys@5.62.0":
+ version "5.62.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz#2174011917ce582875954ffe2f6912d5931e353e"
+ integrity sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==
+ dependencies:
+ "@typescript-eslint/types" "5.62.0"
+ eslint-visitor-keys "^3.3.0"
+
+"@ungap/promise-all-settled@1.1.2":
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz#aa58042711d6e3275dd37dc597e5d31e8c290a44"
+ integrity sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==
+
+"@ungap/structured-clone@^1.2.0":
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406"
+ integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==
+
+"@wry/caches@^1.0.0":
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/@wry/caches/-/caches-1.0.1.tgz#8641fd3b6e09230b86ce8b93558d44cf1ece7e52"
+ integrity sha512-bXuaUNLVVkD20wcGBWRyo7j9N3TxePEWFZj2Y+r9OoUzfqmavM84+mFykRicNsBqatba5JLay1t48wxaXaWnlA==
+ dependencies:
+ tslib "^2.3.0"
+
+"@wry/context@^0.7.0":
+ version "0.7.4"
+ resolved "https://registry.yarnpkg.com/@wry/context/-/context-0.7.4.tgz#e32d750fa075955c4ab2cfb8c48095e1d42d5990"
+ integrity sha512-jmT7Sb4ZQWI5iyu3lobQxICu2nC/vbUhP0vIdd6tHC9PTfenmRmuIFqktc6GH9cgi+ZHnsLWPvfSvc4DrYmKiQ==
+ dependencies:
+ tslib "^2.3.0"
+
+"@wry/equality@^0.5.6":
+ version "0.5.7"
+ resolved "https://registry.yarnpkg.com/@wry/equality/-/equality-0.5.7.tgz#72ec1a73760943d439d56b7b1e9985aec5d497bb"
+ integrity sha512-BRFORjsTuQv5gxcXsuDXx6oGRhuVsEGwZy6LOzRRfgu+eSfxbhUQ9L9YtSEIuIjY/o7g3iWFjrc5eSY1GXP2Dw==
+ dependencies:
+ tslib "^2.3.0"
+
+"@wry/trie@^0.4.3":
+ version "0.4.3"
+ resolved "https://registry.yarnpkg.com/@wry/trie/-/trie-0.4.3.tgz#077d52c22365871bf3ffcbab8e95cb8bc5689af4"
+ integrity sha512-I6bHwH0fSf6RqQcnnXLJKhkSXG45MFral3GxPaY4uAl0LYDZM+YDVDAiU9bYwjTuysy1S0IeecWtmq1SZA3M1w==
+ dependencies:
+ tslib "^2.3.0"
+
+"@wry/trie@^0.5.0":
+ version "0.5.0"
+ resolved "https://registry.yarnpkg.com/@wry/trie/-/trie-0.5.0.tgz#11e783f3a53f6e4cd1d42d2d1323f5bc3fa99c94"
+ integrity sha512-FNoYzHawTMk/6KMQoEG5O4PuioX19UbwdQKF44yw0nLfOypfQdjtfZzo/UIJWAJ23sNIFbD1Ug9lbaDGMwbqQA==
+ dependencies:
+ tslib "^2.3.0"
+
"@yarnpkg/lockfile@^1.1.0":
version "1.1.0"
resolved "https://registry.yarnpkg.com/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz#e77a97fbd345b76d83245edcd17d393b1b41fb31"
@@ -671,11 +3007,80 @@ abbrev@^2.0.0:
resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-2.0.0.tgz#cf59829b8b4f03f89dda2771cb7f3653828c89bf"
integrity sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==
+abortable-iterator@^4.0.2:
+ version "4.0.3"
+ resolved "https://registry.yarnpkg.com/abortable-iterator/-/abortable-iterator-4.0.3.tgz#432570d8256dbad2cef4f129312b651c5ffcdd0f"
+ integrity sha512-GJ5fyS9O0hK/TMf+weR+WMEwSEBWVuStHqHmUYWbfHPULyVf7QdUnAvh41+1cUWtHVf0Z/qtQynidxz4ZFDPOg==
+ dependencies:
+ get-iterator "^2.0.0"
+ it-stream-types "^1.0.3"
+
+abortable-iterator@^5.0.0, abortable-iterator@^5.0.1:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/abortable-iterator/-/abortable-iterator-5.0.1.tgz#5d93eba6fa8287a973a9ea090c64ca08b3777780"
+ integrity sha512-hlZ5Z8UwqrKsJcelVPEqDduZowJPBQJ9ZhBC2FXpja3lXy8X6MoI5uMzIgmrA8+3jcVnp8TF/tx+IBBqYJNUrg==
+ dependencies:
+ get-iterator "^2.0.0"
+ it-stream-types "^2.0.1"
+
+abstract-level@^1.0.2, abstract-level@^1.0.4:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/abstract-level/-/abstract-level-1.0.4.tgz#3ad8d684c51cc9cbc9cf9612a7100b716c414b57"
+ integrity sha512-eUP/6pbXBkMbXFdx4IH2fVgvB7M0JvR7/lIL33zcs0IBcwjdzSSl31TOJsaCzmKSSDF9h8QYSOJux4Nd4YJqFg==
+ dependencies:
+ buffer "^6.0.3"
+ catering "^2.1.0"
+ is-buffer "^2.0.5"
+ level-supports "^4.0.0"
+ level-transcoder "^1.0.1"
+ module-error "^1.0.1"
+ queue-microtask "^1.2.3"
+
+abstract-leveldown@^7.2.0:
+ version "7.2.0"
+ resolved "https://registry.yarnpkg.com/abstract-leveldown/-/abstract-leveldown-7.2.0.tgz#08d19d4e26fb5be426f7a57004851b39e1795a2e"
+ integrity sha512-DnhQwcFEaYsvYDnACLZhMmCWd3rkOeEvglpa4q5i/5Jlm3UIsWaxVzuXvDLFCSCWRO3yy2/+V/G7FusFgejnfQ==
+ dependencies:
+ buffer "^6.0.3"
+ catering "^2.0.0"
+ is-buffer "^2.0.5"
+ level-concat-iterator "^3.0.0"
+ level-supports "^2.0.1"
+ queue-microtask "^1.2.3"
+
+accepts@^1.3.5, accepts@~1.3.8:
+ version "1.3.8"
+ resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e"
+ integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==
+ dependencies:
+ mime-types "~2.1.34"
+ negotiator "0.6.3"
+
+acorn-jsx@^5.3.2:
+ version "5.3.2"
+ resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937"
+ integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==
+
+acorn-walk@^8.1.1:
+ version "8.3.2"
+ resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.2.tgz#7703af9415f1b6db9315d6895503862e231d34aa"
+ integrity sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==
+
+acorn@^8.4.1, acorn@^8.9.0:
+ version "8.11.3"
+ resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.3.tgz#71e0b14e13a4ec160724b38fb7b0f233b1b81d7a"
+ integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==
+
add-stream@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/add-stream/-/add-stream-1.0.0.tgz#6a7990437ca736d5e1288db92bd3266d5f5cb2aa"
integrity sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ==
+aes-js@3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-3.0.0.tgz#e21df10ad6c2053295bcbb8dab40b09dbea87e4d"
+ integrity sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw==
+
agent-base@6, agent-base@^6.0.2:
version "6.0.2"
resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77"
@@ -698,6 +3103,21 @@ aggregate-error@^3.0.0:
clean-stack "^2.0.0"
indent-string "^4.0.0"
+ajv@^6.12.4:
+ version "6.12.6"
+ resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4"
+ integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
+ dependencies:
+ fast-deep-equal "^3.1.1"
+ fast-json-stable-stringify "^2.0.0"
+ json-schema-traverse "^0.4.1"
+ uri-js "^4.2.2"
+
+ansi-colors@4.1.1:
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348"
+ integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==
+
ansi-colors@^4.1.1:
version "4.1.3"
resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b"
@@ -710,6 +3130,16 @@ ansi-escapes@^4.2.1:
dependencies:
type-fest "^0.21.3"
+ansi-regex@^2.0.0:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
+ integrity sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==
+
+ansi-regex@^3.0.0:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.1.tgz#123d6479e92ad45ad897d4054e3c7ca7db4944e1"
+ integrity sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==
+
ansi-regex@^5.0.1:
version "5.0.1"
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304"
@@ -720,6 +3150,11 @@ ansi-regex@^6.0.1:
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a"
integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==
+ansi-styles@^2.2.1:
+ version "2.2.1"
+ resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
+ integrity sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==
+
ansi-styles@^3.2.1:
version "3.2.1"
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
@@ -744,6 +3179,138 @@ ansi-styles@^6.1.0:
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5"
integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==
+any-promise@^1.0.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f"
+ integrity sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==
+
+any-signal@^3.0.0, any-signal@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/any-signal/-/any-signal-3.0.1.tgz#49cae34368187a3472e31de28fb5cb1430caa9a6"
+ integrity sha512-xgZgJtKEa9YmDqXodIgl7Fl1C8yNXr8w6gXjqK3LW4GcEiYT+6AQfJSE/8SPsEpLLmcvbv8YU+qet94UewHxqg==
+
+any-signal@^4.0.1:
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/any-signal/-/any-signal-4.1.1.tgz#928416c355c66899e6b2a91cad4488f0324bae03"
+ integrity sha512-iADenERppdC+A2YKbOXXB2WUeABLaM6qnpZ70kZbPZ1cZMMJ7eF+3CaYm+/PhBizgkzlvssC7QuHS30oOiQYWA==
+
+anymatch@~3.1.1:
+ version "3.1.3"
+ resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e"
+ integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==
+ dependencies:
+ normalize-path "^3.0.0"
+ picomatch "^2.0.4"
+
+apollo-datasource@^3.3.2:
+ version "3.3.2"
+ resolved "https://registry.yarnpkg.com/apollo-datasource/-/apollo-datasource-3.3.2.tgz#5711f8b38d4b7b53fb788cb4dbd4a6a526ea74c8"
+ integrity sha512-L5TiS8E2Hn/Yz7SSnWIVbZw0ZfEIXZCa5VUiVxD9P53JvSrf4aStvsFDlGWPvpIdCR+aly2CfoB79B9/JjKFqg==
+ dependencies:
+ "@apollo/utils.keyvaluecache" "^1.0.1"
+ apollo-server-env "^4.2.1"
+
+apollo-reporting-protobuf@^3.4.0:
+ version "3.4.0"
+ resolved "https://registry.yarnpkg.com/apollo-reporting-protobuf/-/apollo-reporting-protobuf-3.4.0.tgz#6edd31f09d4a3704d9e808d1db30eca2229ded26"
+ integrity sha512-h0u3EbC/9RpihWOmcSsvTW2O6RXVaD/mPEjfrPkxRPTEPWqncsgOoRJw+wih4OqfH3PvTJvoEIf4LwKrUaqWog==
+ dependencies:
+ "@apollo/protobufjs" "1.2.6"
+
+apollo-server-core@^3.11.1, apollo-server-core@^3.13.0:
+ version "3.13.0"
+ resolved "https://registry.yarnpkg.com/apollo-server-core/-/apollo-server-core-3.13.0.tgz#ad6601fbb34cc97eedca27a9fb0b5738d11cd27d"
+ integrity sha512-v/g6DR6KuHn9DYSdtQijz8dLOkP78I5JSVJzPkARhDbhpH74QNwrQ2PP2URAPPEDJ2EeZNQDX8PvbYkAKqg+kg==
+ dependencies:
+ "@apollo/utils.keyvaluecache" "^1.0.1"
+ "@apollo/utils.logger" "^1.0.0"
+ "@apollo/utils.usagereporting" "^1.0.0"
+ "@apollographql/apollo-tools" "^0.5.3"
+ "@apollographql/graphql-playground-html" "1.6.29"
+ "@graphql-tools/mock" "^8.1.2"
+ "@graphql-tools/schema" "^8.0.0"
+ "@josephg/resolvable" "^1.0.0"
+ apollo-datasource "^3.3.2"
+ apollo-reporting-protobuf "^3.4.0"
+ apollo-server-env "^4.2.1"
+ apollo-server-errors "^3.3.1"
+ apollo-server-plugin-base "^3.7.2"
+ apollo-server-types "^3.8.0"
+ async-retry "^1.2.1"
+ fast-json-stable-stringify "^2.1.0"
+ graphql-tag "^2.11.0"
+ loglevel "^1.6.8"
+ lru-cache "^6.0.0"
+ node-abort-controller "^3.0.1"
+ sha.js "^2.4.11"
+ uuid "^9.0.0"
+ whatwg-mimetype "^3.0.0"
+
+apollo-server-env@^4.2.1:
+ version "4.2.1"
+ resolved "https://registry.yarnpkg.com/apollo-server-env/-/apollo-server-env-4.2.1.tgz#ea5b1944accdbdba311f179e4dfaeca482c20185"
+ integrity sha512-vm/7c7ld+zFMxibzqZ7SSa5tBENc4B0uye9LTfjJwGoQFY5xsUPH5FpO5j0bMUDZ8YYNbrF9SNtzc5Cngcr90g==
+ dependencies:
+ node-fetch "^2.6.7"
+
+apollo-server-errors@^3.3.1:
+ version "3.3.1"
+ resolved "https://registry.yarnpkg.com/apollo-server-errors/-/apollo-server-errors-3.3.1.tgz#ba5c00cdaa33d4cbd09779f8cb6f47475d1cd655"
+ integrity sha512-xnZJ5QWs6FixHICXHxUfm+ZWqqxrNuPlQ+kj5m6RtEgIpekOPssH/SD9gf2B4HuWV0QozorrygwZnux8POvyPA==
+
+apollo-server-express@^3.11.1:
+ version "3.13.0"
+ resolved "https://registry.yarnpkg.com/apollo-server-express/-/apollo-server-express-3.13.0.tgz#0d8d9bbba3b8b8264912d215f63fd44e74d5f42a"
+ integrity sha512-iSxICNbDUyebOuM8EKb3xOrpIwOQgKxGbR2diSr4HP3IW8T3njKFOoMce50vr+moOCe1ev8BnLcw9SNbuUtf7g==
+ dependencies:
+ "@types/accepts" "^1.3.5"
+ "@types/body-parser" "1.19.2"
+ "@types/cors" "2.8.12"
+ "@types/express" "4.17.14"
+ "@types/express-serve-static-core" "4.17.31"
+ accepts "^1.3.5"
+ apollo-server-core "^3.13.0"
+ apollo-server-types "^3.8.0"
+ body-parser "^1.19.0"
+ cors "^2.8.5"
+ parseurl "^1.3.3"
+
+apollo-server-plugin-base@^3.7.2:
+ version "3.7.2"
+ resolved "https://registry.yarnpkg.com/apollo-server-plugin-base/-/apollo-server-plugin-base-3.7.2.tgz#c19cd137bc4c993ba2490ba2b571b0f3ce60a0cd"
+ integrity sha512-wE8dwGDvBOGehSsPTRZ8P/33Jan6/PmL0y0aN/1Z5a5GcbFhDaaJCjK5cav6npbbGL2DPKK0r6MPXi3k3N45aw==
+ dependencies:
+ apollo-server-types "^3.8.0"
+
+apollo-server-plugin-response-cache@^3.8.1:
+ version "3.8.2"
+ resolved "https://registry.yarnpkg.com/apollo-server-plugin-response-cache/-/apollo-server-plugin-response-cache-3.8.2.tgz#131ce372c3e83d5eaf8c826283c8432fa74b90dd"
+ integrity sha512-1k9iGgE7QIUvjC9B0A1elGrV5YcZZQFl5wEVOS7URUfEuTr3GsIHBZSFCLAEFNKTQewzS5Spqhv13AmFsOaFmg==
+ dependencies:
+ "@apollo/utils.keyvaluecache" "^1.0.1"
+ apollo-server-plugin-base "^3.7.2"
+ apollo-server-types "^3.8.0"
+
+apollo-server-types@^3.8.0:
+ version "3.8.0"
+ resolved "https://registry.yarnpkg.com/apollo-server-types/-/apollo-server-types-3.8.0.tgz#d976b6967878681f715fe2b9e4dad9ba86b1346f"
+ integrity sha512-ZI/8rTE4ww8BHktsVpb91Sdq7Cb71rdSkXELSwdSR0eXu600/sY+1UXhTWdiJvk+Eq5ljqoHLwLbY2+Clq2b9A==
+ dependencies:
+ "@apollo/utils.keyvaluecache" "^1.0.1"
+ "@apollo/utils.logger" "^1.0.0"
+ apollo-reporting-protobuf "^3.4.0"
+ apollo-server-env "^4.2.1"
+
+apollo-type-bigint@^0.1.3:
+ version "0.1.3"
+ resolved "https://registry.yarnpkg.com/apollo-type-bigint/-/apollo-type-bigint-0.1.3.tgz#9242115ca909b9467ba5c4bc6493a56a06984c0b"
+ integrity sha512-nyfwEWRZ+kon3Nnot20DufGm2EHZrkJoryYzw3soD+USdxhkcW434w1c/n+mjMLQDl86Z6EvlkvMX5Lordf2Wg==
+
+app-root-path@^3.0.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/app-root-path/-/app-root-path-3.1.0.tgz#5971a2fc12ba170369a7a1ef018c71e6e47c2e86"
+ integrity sha512-biN3PwB2gUtjaYy/isrU3aNWI5w+fAfvHkSvCKeQGxhmYpwKFUxudR3Yya+KqVRHBmEDYh+/lTozYCFbmzX4nA==
+
"aproba@^1.0.3 || ^2.0.0", aproba@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/aproba/-/aproba-2.0.0.tgz#52520b8ae5b569215b354efc0caa3fe1e45a8adc"
@@ -762,6 +3329,11 @@ are-we-there-yet@^4.0.0:
resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-4.0.2.tgz#aed25dd0eae514660d49ac2b2366b175c614785a"
integrity sha512-ncSWAawFhKMJDTdoAeOV+jyW1VCMj5QIAwULIBV0SSR7B/RLPPEQiknKcg/RIIZlUQrxELpsxMiTUoAQ4sIUyg==
+arg@^4.1.0:
+ version "4.1.3"
+ resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089"
+ integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==
+
argparse@^1.0.7:
version "1.0.10"
resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
@@ -774,21 +3346,92 @@ argparse@^2.0.1:
resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38"
integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==
+array-buffer-byte-length@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz#1e5583ec16763540a27ae52eed99ff899223568f"
+ integrity sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==
+ dependencies:
+ call-bind "^1.0.5"
+ is-array-buffer "^3.0.4"
+
array-differ@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-3.0.0.tgz#3cbb3d0f316810eafcc47624734237d6aee4ae6b"
integrity sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==
+array-flatten@1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2"
+ integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==
+
array-ify@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/array-ify/-/array-ify-1.0.0.tgz#9e528762b4a9066ad163a6962a364418e9626ece"
integrity sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==
+array-includes@^3.1.7:
+ version "3.1.8"
+ resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.8.tgz#5e370cbe172fdd5dd6530c1d4aadda25281ba97d"
+ integrity sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==
+ dependencies:
+ call-bind "^1.0.7"
+ define-properties "^1.2.1"
+ es-abstract "^1.23.2"
+ es-object-atoms "^1.0.0"
+ get-intrinsic "^1.2.4"
+ is-string "^1.0.7"
+
array-union@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d"
integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==
+array.prototype.findlastindex@^1.2.3:
+ version "1.2.5"
+ resolved "https://registry.yarnpkg.com/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz#8c35a755c72908719453f87145ca011e39334d0d"
+ integrity sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==
+ dependencies:
+ call-bind "^1.0.7"
+ define-properties "^1.2.1"
+ es-abstract "^1.23.2"
+ es-errors "^1.3.0"
+ es-object-atoms "^1.0.0"
+ es-shim-unscopables "^1.0.2"
+
+array.prototype.flat@^1.3.2:
+ version "1.3.2"
+ resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz#1476217df8cff17d72ee8f3ba06738db5b387d18"
+ integrity sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==
+ dependencies:
+ call-bind "^1.0.2"
+ define-properties "^1.2.0"
+ es-abstract "^1.22.1"
+ es-shim-unscopables "^1.0.0"
+
+array.prototype.flatmap@^1.3.2:
+ version "1.3.2"
+ resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz#c9a7c6831db8e719d6ce639190146c24bbd3e527"
+ integrity sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==
+ dependencies:
+ call-bind "^1.0.2"
+ define-properties "^1.2.0"
+ es-abstract "^1.22.1"
+ es-shim-unscopables "^1.0.0"
+
+arraybuffer.prototype.slice@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz#097972f4255e41bc3425e37dc3f6421cf9aefde6"
+ integrity sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==
+ dependencies:
+ array-buffer-byte-length "^1.0.1"
+ call-bind "^1.0.5"
+ define-properties "^1.2.1"
+ es-abstract "^1.22.3"
+ es-errors "^1.2.1"
+ get-intrinsic "^1.2.3"
+ is-array-buffer "^3.0.4"
+ is-shared-array-buffer "^1.0.2"
+
arrify@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d"
@@ -799,11 +3442,46 @@ arrify@^2.0.1:
resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa"
integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==
+assert@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/assert/-/assert-2.1.0.tgz#6d92a238d05dc02e7427c881fb8be81c8448b2dd"
+ integrity sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw==
+ dependencies:
+ call-bind "^1.0.2"
+ is-nan "^1.3.2"
+ object-is "^1.1.5"
+ object.assign "^4.1.4"
+ util "^0.12.5"
+
+assertion-error@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b"
+ integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==
+
+async-mutex@^0.4.0:
+ version "0.4.1"
+ resolved "https://registry.yarnpkg.com/async-mutex/-/async-mutex-0.4.1.tgz#bccf55b96f2baf8df90ed798cb5544a1f6ee4c2c"
+ integrity sha512-WfoBo4E/TbCX1G95XTjbWTE3X2XLG0m1Xbv2cwOtuPdyH9CZvnaA5nCt1ucjaKEgW2A5IF71hxrRhr83Je5xjA==
+ dependencies:
+ tslib "^2.4.0"
+
+async-retry@^1.2.1:
+ version "1.3.3"
+ resolved "https://registry.yarnpkg.com/async-retry/-/async-retry-1.3.3.tgz#0e7f36c04d8478e7a58bdbed80cedf977785f280"
+ integrity sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw==
+ dependencies:
+ retry "0.13.1"
+
async@^3.2.3:
version "3.2.5"
resolved "https://registry.yarnpkg.com/async/-/async-3.2.5.tgz#ebd52a8fdaf7a2289a24df399f8d8485c8a46b66"
integrity sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==
+asyncify-wasm@^1.2.1:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/asyncify-wasm/-/asyncify-wasm-1.2.1.tgz#a15c0480e858619a4f971e44e6fc05c49015d9e8"
+ integrity sha512-ZS7tZ8H8EVbUxAZnkKHvMt9UkYoALue2jwrVl7cnLByjq+1MRrbq7rL5TS+EHQduwkfXD/cNZNa+I0ZyLEBBRQ==
+
asynckit@^0.4.0:
version "0.4.0"
resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
@@ -814,6 +3492,13 @@ at-least-node@^1.0.0:
resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2"
integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==
+available-typed-arrays@^1.0.7:
+ version "1.0.7"
+ resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz#a5cc375d6a03c2efc87a553f3e0b1522def14846"
+ integrity sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==
+ dependencies:
+ possible-typed-array-names "^1.0.0"
+
axios@^1.0.0:
version "1.7.2"
resolved "https://registry.yarnpkg.com/axios/-/axios-1.7.2.tgz#b625db8a7051fbea61c35a3cbb3a1daa7b9c7621"
@@ -833,11 +3518,29 @@ base64-js@^1.3.1:
resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a"
integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
+bech32@1.1.4:
+ version "1.1.4"
+ resolved "https://registry.yarnpkg.com/bech32/-/bech32-1.1.4.tgz#e38c9f37bf179b8eb16ae3a772b40c356d4832e9"
+ integrity sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==
+
before-after-hook@^2.2.0:
version "2.2.3"
resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.2.3.tgz#c51e809c81a4e354084422b9b26bad88249c517c"
integrity sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==
+benchmark@^2.1.4:
+ version "2.1.4"
+ resolved "https://registry.yarnpkg.com/benchmark/-/benchmark-2.1.4.tgz#09f3de31c916425d498cc2ee565a0ebf3c2a5629"
+ integrity sha512-l9MlfN4M1K/H2fbhfMy3B7vJd6AGKJVQn2h6Sg/Yx+KckoUA7ewS5Vv6TjSq18ooE1kS9hhAlQRH3AkXIh/aOQ==
+ dependencies:
+ lodash "^4.17.4"
+ platform "^1.3.3"
+
+bignumber.js@^9.0.0:
+ version "9.1.2"
+ resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.1.2.tgz#b7c4242259c008903b13707983b5f4bbd31eda0c"
+ integrity sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==
+
bin-links@^4.0.1:
version "4.0.4"
resolved "https://registry.yarnpkg.com/bin-links/-/bin-links-4.0.4.tgz#c3565832b8e287c85f109a02a17027d152a58a63"
@@ -848,6 +3551,21 @@ bin-links@^4.0.1:
read-cmd-shim "^4.0.0"
write-file-atomic "^5.0.0"
+binary-extensions@^2.0.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.3.0.tgz#f6e14a97858d327252200242d4ccfe522c445522"
+ integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==
+
+binaryen@101.0.0-nightly.20210723:
+ version "101.0.0-nightly.20210723"
+ resolved "https://registry.yarnpkg.com/binaryen/-/binaryen-101.0.0-nightly.20210723.tgz#b6bb7f3501341727681a03866c0856500eec3740"
+ integrity sha512-eioJNqhHlkguVSbblHOtLqlhtC882SOEPKmNFZaDuz1hzQjolxZ+eu3/kaS10n3sGPONsIZsO7R9fR00UyhEUA==
+
+bintrees@1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/bintrees/-/bintrees-1.0.2.tgz#49f896d6e858a4a499df85c38fb399b9aff840f8"
+ integrity sha512-VOMgTMwjAaUG580SXn3LacVgjurrbMme7ZZNYGSSV7mmtY6QQRh0Eg3pwIcntQ77DErK1L0NxkbetjcoXzVwKw==
+
bl@^4.0.3, bl@^4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a"
@@ -857,6 +3575,41 @@ bl@^4.0.3, bl@^4.1.0:
inherits "^2.0.4"
readable-stream "^3.4.0"
+blob-to-it@^1.0.1:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/blob-to-it/-/blob-to-it-1.0.4.tgz#f6caf7a4e90b7bb9215fa6a318ed6bd8ad9898cb"
+ integrity sha512-iCmk0W4NdbrWgRRuxOriU8aM5ijeVLI61Zulsmg/lUHNr7pYjoj+U77opLefNagevtrrbMt3JQ5Qip7ar178kA==
+ dependencies:
+ browser-readablestream-to-it "^1.0.3"
+
+bn.js@^4.11.9:
+ version "4.12.0"
+ resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88"
+ integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==
+
+bn.js@^5.2.0, bn.js@^5.2.1:
+ version "5.2.1"
+ resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.1.tgz#0bc527a6a0d18d0aa8d5b0538ce4a77dccfa7b70"
+ integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==
+
+body-parser@1.20.2, body-parser@^1.19.0:
+ version "1.20.2"
+ resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.2.tgz#6feb0e21c4724d06de7ff38da36dad4f57a747fd"
+ integrity sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==
+ dependencies:
+ bytes "3.1.2"
+ content-type "~1.0.5"
+ debug "2.6.9"
+ depd "2.0.0"
+ destroy "1.2.0"
+ http-errors "2.0.0"
+ iconv-lite "0.4.24"
+ on-finished "2.4.1"
+ qs "6.11.0"
+ raw-body "2.5.2"
+ type-is "~1.6.18"
+ unpipe "1.0.0"
+
brace-expansion@^1.1.7:
version "1.1.11"
resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
@@ -872,13 +3625,38 @@ brace-expansion@^2.0.1:
dependencies:
balanced-match "^1.0.0"
-braces@^3.0.3:
+braces@^3.0.3, braces@~3.0.2:
version "3.0.3"
resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789"
integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==
dependencies:
fill-range "^7.1.1"
+brorand@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f"
+ integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==
+
+browser-level@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/browser-level/-/browser-level-1.0.1.tgz#36e8c3183d0fe1c405239792faaab5f315871011"
+ integrity sha512-XECYKJ+Dbzw0lbydyQuJzwNXtOpbMSq737qxJN11sIRTErOMShvDpbzTlgju7orJKvx4epULolZAuJGLzCmWRQ==
+ dependencies:
+ abstract-level "^1.0.2"
+ catering "^2.1.1"
+ module-error "^1.0.2"
+ run-parallel-limit "^1.1.0"
+
+browser-readablestream-to-it@^1.0.0, browser-readablestream-to-it@^1.0.1, browser-readablestream-to-it@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/browser-readablestream-to-it/-/browser-readablestream-to-it-1.0.3.tgz#ac3e406c7ee6cdf0a502dd55db33bab97f7fba76"
+ integrity sha512-+12sHB+Br8HIh6VAMVEG5r3UXCyESIgDW7kzk3BjIXa43DVqVwL7GC5TW3jeh+72dtcH99pPVpw0X8i0jt+/kw==
+
+browser-stdout@1.3.1:
+ version "1.3.1"
+ resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60"
+ integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==
+
buffer-from@^1.0.0:
version "1.1.2"
resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5"
@@ -892,6 +3670,14 @@ buffer@^5.5.0:
base64-js "^1.3.1"
ieee754 "^1.1.13"
+buffer@^6.0.1, buffer@^6.0.3:
+ version "6.0.3"
+ resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6"
+ integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==
+ dependencies:
+ base64-js "^1.3.1"
+ ieee754 "^1.2.1"
+
builtins@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/builtins/-/builtins-1.0.3.tgz#cb94faeb61c8696451db36534e1422f94f0aee88"
@@ -904,11 +3690,33 @@ builtins@^5.0.0:
dependencies:
semver "^7.0.0"
+bunyan@^1.8.15:
+ version "1.8.15"
+ resolved "https://registry.yarnpkg.com/bunyan/-/bunyan-1.8.15.tgz#8ce34ca908a17d0776576ca1b2f6cbd916e93b46"
+ integrity sha512-0tECWShh6wUysgucJcBAoYegf3JJoZWibxdqhTm7OHPeT42qdjkZ29QCMcKwbgU1kiH+auSIasNRXMLWXafXig==
+ optionalDependencies:
+ dtrace-provider "~0.8"
+ moment "^2.19.3"
+ mv "~2"
+ safe-json-stringify "~1"
+
+byte-access@^1.0.0, byte-access@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/byte-access/-/byte-access-1.0.1.tgz#84badd99be3671c03f0dd6a039a9c963983724af"
+ integrity sha512-GKYa+lvxnzhgHWj9X+LCsQ4s2/C5uvib573eAOiQKywXMkzFFErY2+yQdzmdE5iWVpmqecsRx3bOtOY4/1eINw==
+ dependencies:
+ uint8arraylist "^2.0.0"
+
byte-size@7.0.0:
version "7.0.0"
resolved "https://registry.yarnpkg.com/byte-size/-/byte-size-7.0.0.tgz#36528cd1ca87d39bd9abd51f5715dc93b6ceb032"
integrity sha512-NNiBxKgxybMBtWdmvx7ZITJi4ZG+CYUgwOSZTfqB1qogkRHrhbQE/R2r5Fh94X+InN5MCYz6SvB/ejHMj/HbsQ==
+bytes@3.1.2:
+ version "3.1.2"
+ resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5"
+ integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==
+
cacache@^16.1.0:
version "16.1.3"
resolved "https://registry.yarnpkg.com/cacache/-/cacache-16.1.3.tgz#a02b9f34ecfaf9a78c9f4bc16fceb94d5d67a38e"
@@ -951,6 +3759,17 @@ cacache@^17.0.0, cacache@^17.0.4:
tar "^6.1.11"
unique-filename "^3.0.0"
+call-bind@^1.0.0, call-bind@^1.0.2, call-bind@^1.0.5, call-bind@^1.0.6, call-bind@^1.0.7:
+ version "1.0.7"
+ resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.7.tgz#06016599c40c56498c18769d2730be242b6fa3b9"
+ integrity sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==
+ dependencies:
+ es-define-property "^1.0.0"
+ es-errors "^1.3.0"
+ function-bind "^1.1.2"
+ get-intrinsic "^1.2.4"
+ set-function-length "^1.2.1"
+
callsites@^3.0.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73"
@@ -970,6 +3789,39 @@ camelcase@^5.3.1:
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320"
integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==
+camelcase@^6.0.0:
+ version "6.3.0"
+ resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a"
+ integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==
+
+canonical-json@^0.0.4:
+ version "0.0.4"
+ resolved "https://registry.yarnpkg.com/canonical-json/-/canonical-json-0.0.4.tgz#6579c072c3db5c477ec41dc978fbf2b8f41074a3"
+ integrity sha512-2sW7x0m/P7dqEnO0O87U7RTVQAaa7MELcd+Jd9FA6CYgYtwJ1TlDWIYMD8nuMkH1KoThsJogqgLyklrt9d/Azw==
+
+catering@^2.0.0, catering@^2.1.0, catering@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/catering/-/catering-2.1.1.tgz#66acba06ed5ee28d5286133982a927de9a04b510"
+ integrity sha512-K7Qy8O9p76sL3/3m7/zLKbRkyOlSZAgzEaLhyj2mXS8PsCud2Eo4hAb8aLtZqHh0QGqLcb9dlJSu6lHRVENm1w==
+
+cborg@^1.5.4, cborg@^1.6.0:
+ version "1.10.2"
+ resolved "https://registry.yarnpkg.com/cborg/-/cborg-1.10.2.tgz#83cd581b55b3574c816f82696307c7512db759a1"
+ integrity sha512-b3tFPA9pUr2zCUiCfRd2+wok2/LBSNUMKOuRRok+WlvvAgEt/PlbgPTsZUcwCOs53IJvLgTp0eotwtosE6njug==
+
+chai@^4.3.4:
+ version "4.4.1"
+ resolved "https://registry.yarnpkg.com/chai/-/chai-4.4.1.tgz#3603fa6eba35425b0f2ac91a009fe924106e50d1"
+ integrity sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==
+ dependencies:
+ assertion-error "^1.1.0"
+ check-error "^1.0.3"
+ deep-eql "^4.1.3"
+ get-func-name "^2.0.2"
+ loupe "^2.3.6"
+ pathval "^1.1.1"
+ type-detect "^4.0.8"
+
chalk@4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a"
@@ -978,6 +3830,17 @@ chalk@4.1.0:
ansi-styles "^4.1.0"
supports-color "^7.1.0"
+chalk@^1.1.1:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
+ integrity sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==
+ dependencies:
+ ansi-styles "^2.2.1"
+ escape-string-regexp "^1.0.2"
+ has-ansi "^2.0.0"
+ strip-ansi "^3.0.0"
+ supports-color "^2.0.0"
+
chalk@^2.4.2:
version "2.4.2"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
@@ -987,7 +3850,7 @@ chalk@^2.4.2:
escape-string-regexp "^1.0.5"
supports-color "^5.3.0"
-chalk@^4.0.2, chalk@^4.1.0, chalk@^4.1.1:
+chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.0, chalk@^4.1.1:
version "4.1.2"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01"
integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==
@@ -1000,6 +3863,28 @@ chardet@^0.7.0:
resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e"
integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==
+check-error@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.3.tgz#a6502e4312a7ee969f646e83bb3ddd56281bd694"
+ integrity sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==
+ dependencies:
+ get-func-name "^2.0.2"
+
+chokidar@3.5.1:
+ version "3.5.1"
+ resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.1.tgz#ee9ce7bbebd2b79f49f304799d5468e31e14e68a"
+ integrity sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==
+ dependencies:
+ anymatch "~3.1.1"
+ braces "~3.0.2"
+ glob-parent "~5.1.0"
+ is-binary-path "~2.1.0"
+ is-glob "~4.0.1"
+ normalize-path "~3.0.0"
+ readdirp "~3.5.0"
+ optionalDependencies:
+ fsevents "~2.3.1"
+
chownr@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece"
@@ -1015,11 +3900,29 @@ ci-info@^3.6.1:
resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.9.0.tgz#4279a62028a7b1f262f3473fc9605f5e218c59b4"
integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==
+classic-level@^1.2.0:
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/classic-level/-/classic-level-1.4.1.tgz#169ecf9f9c6200ad42a98c8576af449c1badbaee"
+ integrity sha512-qGx/KJl3bvtOHrGau2WklEZuXhS3zme+jf+fsu6Ej7W7IP/C49v7KNlWIsT1jZu0YnfzSIYDGcEWpCa1wKGWXQ==
+ dependencies:
+ abstract-level "^1.0.2"
+ catering "^2.1.0"
+ module-error "^1.0.1"
+ napi-macros "^2.2.2"
+ node-gyp-build "^4.3.0"
+
clean-stack@^2.0.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b"
integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==
+cli-color@~0.1.6:
+ version "0.1.7"
+ resolved "https://registry.yarnpkg.com/cli-color/-/cli-color-0.1.7.tgz#adc3200fa471cc211b0da7f566b71e98b9d67347"
+ integrity sha512-xNaQxWYgI6DD4xIJLn8GY2zDZVbrN0vsU1fEbDNAHZRyceWhpj7A08mYcG1AY92q1Aw0geYkVfiAcEYIZtuTSg==
+ dependencies:
+ es5-ext "0.8.x"
+
cli-cursor@3.1.0, cli-cursor@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307"
@@ -1027,6 +3930,18 @@ cli-cursor@3.1.0, cli-cursor@^3.1.0:
dependencies:
restore-cursor "^3.1.0"
+cli-highlight@^2.1.11:
+ version "2.1.11"
+ resolved "https://registry.yarnpkg.com/cli-highlight/-/cli-highlight-2.1.11.tgz#49736fa452f0aaf4fae580e30acb26828d2dc1bf"
+ integrity sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg==
+ dependencies:
+ chalk "^4.0.0"
+ highlight.js "^10.7.1"
+ mz "^2.4.0"
+ parse5 "^5.1.1"
+ parse5-htmlparser2-tree-adapter "^6.0.0"
+ yargs "^16.0.0"
+
cli-spinners@2.6.1:
version "2.6.1"
resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.6.1.tgz#adc954ebe281c37a6319bfa401e6dd2488ffb70d"
@@ -1086,7 +4001,7 @@ cmd-shim@^6.0.0:
resolved "https://registry.yarnpkg.com/cmd-shim/-/cmd-shim-6.0.3.tgz#c491e9656594ba17ac83c4bd931590a9d6e26033"
integrity sha512-FMabTRlc5t5zjdenF6mS0MBeFZm0XqHqeOkcskKFb/LYCcRQ5fVgLOHVc4Lq9CqABd9zhjwPjMBCJvMCziSVtA==
-color-convert@^1.9.0:
+color-convert@^1.9.0, color-convert@^1.9.3:
version "1.9.3"
resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
@@ -1105,16 +4020,40 @@ color-name@1.1.3:
resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==
-color-name@~1.1.4:
+color-name@^1.0.0, color-name@~1.1.4:
version "1.1.4"
resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
+color-string@^1.6.0:
+ version "1.9.1"
+ resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.9.1.tgz#4467f9146f036f855b764dfb5bf8582bf342c7a4"
+ integrity sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==
+ dependencies:
+ color-name "^1.0.0"
+ simple-swizzle "^0.2.2"
+
color-support@^1.1.3:
version "1.1.3"
resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2"
integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==
+color@^3.1.3:
+ version "3.2.1"
+ resolved "https://registry.yarnpkg.com/color/-/color-3.2.1.tgz#3544dc198caf4490c3ecc9a790b54fe9ff45e164"
+ integrity sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==
+ dependencies:
+ color-convert "^1.9.3"
+ color-string "^1.6.0"
+
+colorspace@1.1.x:
+ version "1.1.4"
+ resolved "https://registry.yarnpkg.com/colorspace/-/colorspace-1.1.4.tgz#8d442d1186152f60453bf8070cd66eb364e59243"
+ integrity sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==
+ dependencies:
+ color "^3.1.3"
+ text-hex "1.0.x"
+
columnify@1.6.0:
version "1.6.0"
resolved "https://registry.yarnpkg.com/columnify/-/columnify-1.6.0.tgz#6989531713c9008bb29735e61e37acf5bd553cf3"
@@ -1130,6 +4069,11 @@ combined-stream@^1.0.8:
dependencies:
delayed-stream "~1.0.0"
+commander@^2.20.3:
+ version "2.20.3"
+ resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
+ integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
+
common-ancestor-path@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/common-ancestor-path/-/common-ancestor-path-1.0.1.tgz#4f7d2d1394d91b7abdf51871c62f71eadb0182a7"
@@ -1171,6 +4115,18 @@ console-control-strings@^1.1.0:
resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e"
integrity sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==
+content-disposition@0.5.4:
+ version "0.5.4"
+ resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe"
+ integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==
+ dependencies:
+ safe-buffer "5.2.1"
+
+content-type@~1.0.4, content-type@~1.0.5:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918"
+ integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==
+
conventional-changelog-angular@5.0.12:
version "5.0.12"
resolved "https://registry.yarnpkg.com/conventional-changelog-angular/-/conventional-changelog-angular-5.0.12.tgz#c979b8b921cbfe26402eb3da5bbfda02d865a2b9"
@@ -1253,11 +4209,42 @@ conventional-recommended-bump@6.1.0:
meow "^8.0.0"
q "^1.5.1"
+cookie-signature@1.0.6:
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c"
+ integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==
+
+cookie@0.6.0:
+ version "0.6.0"
+ resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.6.0.tgz#2798b04b071b0ecbff0dbb62a505a8efa4e19051"
+ integrity sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==
+
+copyfiles@^2.4.1:
+ version "2.4.1"
+ resolved "https://registry.yarnpkg.com/copyfiles/-/copyfiles-2.4.1.tgz#d2dcff60aaad1015f09d0b66e7f0f1c5cd3c5da5"
+ integrity sha512-fereAvAvxDrQDOXybk3Qu3dPbOoKoysFMWtkY3mv5BsL8//OSZVL5DCLYqgRfY5cWirgRzlC+WSrxp6Bo3eNZg==
+ dependencies:
+ glob "^7.0.5"
+ minimatch "^3.0.3"
+ mkdirp "^1.0.4"
+ noms "0.0.0"
+ through2 "^2.0.1"
+ untildify "^4.0.0"
+ yargs "^16.1.0"
+
core-util-is@~1.0.0:
version "1.0.3"
resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85"
integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==
+cors@^2.8.5:
+ version "2.8.5"
+ resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29"
+ integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==
+ dependencies:
+ object-assign "^4"
+ vary "^1"
+
cosmiconfig@7.0.0:
version "7.0.0"
resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.0.tgz#ef9b44d773959cae63ddecd122de23853b60f8d3"
@@ -1269,7 +4256,26 @@ cosmiconfig@7.0.0:
path-type "^4.0.0"
yaml "^1.10.0"
-cross-spawn@^7.0.0, cross-spawn@^7.0.3:
+create-require@^1.1.0:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333"
+ integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==
+
+cron-parser@^4.0.0:
+ version "4.9.0"
+ resolved "https://registry.yarnpkg.com/cron-parser/-/cron-parser-4.9.0.tgz#0340694af3e46a0894978c6f52a6dbb5c0f11ad5"
+ integrity sha512-p0SaNjrHOnQeR8/VnfGbmg9te2kfyYSQ7Sc/j/6DtPL3JQvKxmjO9TSjNFpujqV3vEYYBvNNvXSxzyksBWAx1Q==
+ dependencies:
+ luxon "^3.2.1"
+
+cross-fetch@^3.1.4, cross-fetch@^3.1.5:
+ version "3.1.8"
+ resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.8.tgz#0327eba65fd68a7d119f8fb2bf9334a1a7956f82"
+ integrity sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==
+ dependencies:
+ node-fetch "^2.6.12"
+
+cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3:
version "7.0.3"
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
@@ -1288,23 +4294,102 @@ cssesc@^3.0.0:
resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee"
integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==
+cssfilter@0.0.10:
+ version "0.0.10"
+ resolved "https://registry.yarnpkg.com/cssfilter/-/cssfilter-0.0.10.tgz#c6d2672632a2e5c83e013e6864a42ce8defd20ae"
+ integrity sha512-FAaLDaplstoRsDR8XGYH51znUN0UY7nMc6Z9/fvE8EXGwvJE9hu7W2vHwx1+bd6gCYnln9nLbzxFTrcO9YQDZw==
+
+dag-jose@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/dag-jose/-/dag-jose-1.0.0.tgz#52e42d70cb5bee31ae4e8e3ab860615568d7ad73"
+ integrity sha512-U0b/YsIPBp6YZNTFrVjwLZAlY3qGRxZTIEcM/CcQmrVrCWq9MWQq9pheXVSPLIhF4SNwzp2SikPva4/BIrJY+g==
+ dependencies:
+ "@ipld/dag-cbor" "^6.0.3"
+ multiformats "^9.0.2"
+
dargs@^7.0.0:
version "7.0.0"
resolved "https://registry.yarnpkg.com/dargs/-/dargs-7.0.0.tgz#04015c41de0bcb69ec84050f3d9be0caf8d6d5cc"
integrity sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==
+data-view-buffer@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/data-view-buffer/-/data-view-buffer-1.0.1.tgz#8ea6326efec17a2e42620696e671d7d5a8bc66b2"
+ integrity sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==
+ dependencies:
+ call-bind "^1.0.6"
+ es-errors "^1.3.0"
+ is-data-view "^1.0.1"
+
+data-view-byte-length@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz#90721ca95ff280677eb793749fce1011347669e2"
+ integrity sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==
+ dependencies:
+ call-bind "^1.0.7"
+ es-errors "^1.3.0"
+ is-data-view "^1.0.1"
+
+data-view-byte-offset@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz#5e0bbfb4828ed2d1b9b400cd8a7d119bca0ff18a"
+ integrity sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==
+ dependencies:
+ call-bind "^1.0.6"
+ es-errors "^1.3.0"
+ is-data-view "^1.0.1"
+
+datastore-core@^8.0.1:
+ version "8.0.4"
+ resolved "https://registry.yarnpkg.com/datastore-core/-/datastore-core-8.0.4.tgz#a5951c8e530f0ba11ca44f6bb3ce5d7070a3d44e"
+ integrity sha512-oBA6a024NFXJOTu+w9nLAimfy4wCYUhdE/5XQGtdKt1BmCVtPYW10GORvVT3pdZBcse6k/mVcBl+hjkXIlm65A==
+ dependencies:
+ "@libp2p/logger" "^2.0.0"
+ err-code "^3.0.1"
+ interface-datastore "^7.0.0"
+ it-all "^2.0.0"
+ it-drain "^2.0.0"
+ it-filter "^2.0.0"
+ it-map "^2.0.0"
+ it-merge "^2.0.0"
+ it-pipe "^2.0.3"
+ it-pushable "^3.0.0"
+ it-take "^2.0.0"
+ uint8arrays "^4.0.2"
+
dateformat@^3.0.0:
version "3.0.3"
resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae"
integrity sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==
-debug@4, debug@^4.3.3, debug@^4.3.4:
+debug@2.6.9, debug@^2.2.0:
+ version "2.6.9"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
+ integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
+ dependencies:
+ ms "2.0.0"
+
+debug@4, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4:
version "4.3.5"
resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.5.tgz#e83444eceb9fedd4a1da56d671ae2446a01a6e1e"
integrity sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==
dependencies:
ms "2.1.2"
+debug@4.3.1:
+ version "4.3.1"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee"
+ integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==
+ dependencies:
+ ms "2.1.2"
+
+debug@^3.1.0, debug@^3.2.7:
+ version "3.2.7"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a"
+ integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==
+ dependencies:
+ ms "^2.1.1"
+
decamelize-keys@^1.1.0:
version "1.1.1"
resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.1.tgz#04a2d523b2f18d80d0158a43b895d56dff8d19d8"
@@ -1318,11 +4403,40 @@ decamelize@^1.1.0:
resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==
+decamelize@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837"
+ integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==
+
+decimal.js@^10.3.1:
+ version "10.4.3"
+ resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.4.3.tgz#1044092884d245d1b7f65725fa4ad4c6f781cc23"
+ integrity sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==
+
dedent@0.7.0, dedent@^0.7.0:
version "0.7.0"
resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c"
integrity sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==
+deep-eql@^4.1.3:
+ version "4.1.4"
+ resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-4.1.4.tgz#d0d3912865911bb8fac5afb4e3acfa6a28dc72b7"
+ integrity sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==
+ dependencies:
+ type-detect "^4.0.0"
+
+deep-is@^0.1.3:
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831"
+ integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==
+
+default-gateway@^7.2.2:
+ version "7.2.2"
+ resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-7.2.2.tgz#85e6d88fde0f58703bab7744ed9d5330fa6b3f6c"
+ integrity sha512-AD7TrdNNPXRZIGw63dw+lnGmT4v7ggZC5NHNJgAYWm5njrwoze1q5JSAW9YuLy2tjnoLUG/r8FEB93MCh9QJPg==
+ dependencies:
+ execa "^7.1.1"
+
defaults@^1.0.3:
version "1.0.4"
resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.4.tgz#b0b02062c1e2aa62ff5d9528f0f98baa90978d7a"
@@ -1330,11 +4444,37 @@ defaults@^1.0.3:
dependencies:
clone "^1.0.2"
+deferred-leveldown@^7.0.0:
+ version "7.0.0"
+ resolved "https://registry.yarnpkg.com/deferred-leveldown/-/deferred-leveldown-7.0.0.tgz#39802715fda6ec06d0159a8b28bd1c7e2b1cf0bf"
+ integrity sha512-QKN8NtuS3BC6m0B8vAnBls44tX1WXAFATUsJlruyAYbZpysWV3siH6o/i3g9DCHauzodksO60bdj5NazNbjCmg==
+ dependencies:
+ abstract-leveldown "^7.2.0"
+ inherits "^2.0.3"
+
+define-data-property@^1.0.1, define-data-property@^1.1.4:
+ version "1.1.4"
+ resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e"
+ integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==
+ dependencies:
+ es-define-property "^1.0.0"
+ es-errors "^1.3.0"
+ gopd "^1.0.1"
+
define-lazy-prop@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f"
integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==
+define-properties@^1.1.3, define-properties@^1.2.0, define-properties@^1.2.1:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c"
+ integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==
+ dependencies:
+ define-data-property "^1.0.1"
+ has-property-descriptors "^1.0.0"
+ object-keys "^1.1.1"
+
del@^6.0.0:
version "6.1.1"
resolved "https://registry.yarnpkg.com/del/-/del-6.1.1.tgz#3b70314f1ec0aa325c6b14eb36b95786671edb7a"
@@ -1349,6 +4489,11 @@ del@^6.0.0:
rimraf "^3.0.2"
slash "^3.0.0"
+delay@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/delay/-/delay-5.0.0.tgz#137045ef1b96e5071060dd5be60bf9334436bd1d"
+ integrity sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==
+
delayed-stream@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
@@ -1359,16 +4504,48 @@ delegates@^1.0.0:
resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a"
integrity sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==
+denque@^1.5.0:
+ version "1.5.1"
+ resolved "https://registry.yarnpkg.com/denque/-/denque-1.5.1.tgz#07f670e29c9a78f8faecb2566a1e2c11929c5cbf"
+ integrity sha512-XwE+iZ4D6ZUB7mfYRMb5wByE8L74HCn30FBN7sWnXksWc1LO1bPDl67pBR9o/kC4z/xSNAwkMYcGgqDV3BE3Hw==
+
+depd@2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df"
+ integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==
+
deprecation@^2.0.0, deprecation@^2.3.1:
version "2.3.1"
resolved "https://registry.yarnpkg.com/deprecation/-/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919"
integrity sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==
+destroy@1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015"
+ integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==
+
detect-indent@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-5.0.0.tgz#3871cc0a6a002e8c3e5b3cf7f336264675f06b9d"
integrity sha512-rlpvsxUtM0PQvy9iZe640/IWwWYyBsTApREbA1pHOpmOUIl9MkP/U4z7vTtg4Oaojvqhxt7sdufnT0EzGaR31g==
+diff@5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/diff/-/diff-5.0.0.tgz#7ed6ad76d859d030787ec35855f5b1daf31d852b"
+ integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==
+
+diff@^4.0.1:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d"
+ integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==
+
+difflib@~0.2.1:
+ version "0.2.4"
+ resolved "https://registry.yarnpkg.com/difflib/-/difflib-0.2.4.tgz#b5e30361a6db023176d562892db85940a718f47e"
+ integrity sha512-9YVwmMb0wQHQNr5J9m6BSj6fk4pfGITGQOOs+D9Fl+INODWFOfvhIU1hNv6GgR1RBoC/9NJcwu77zShxV0kT7w==
+ dependencies:
+ heap ">= 0.2.0"
+
dir-glob@^3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f"
@@ -1376,6 +4553,46 @@ dir-glob@^3.0.1:
dependencies:
path-type "^4.0.0"
+dns-over-http-resolver@^1.2.3:
+ version "1.2.3"
+ resolved "https://registry.yarnpkg.com/dns-over-http-resolver/-/dns-over-http-resolver-1.2.3.tgz#194d5e140a42153f55bb79ac5a64dd2768c36af9"
+ integrity sha512-miDiVSI6KSNbi4SVifzO/reD8rMnxgrlnkrlkugOLQpWQTe2qMdHsZp5DmfKjxNE+/T3VAAYLQUZMv9SMr6+AA==
+ dependencies:
+ debug "^4.3.1"
+ native-fetch "^3.0.0"
+ receptacle "^1.3.2"
+
+dns-over-http-resolver@^2.1.0:
+ version "2.1.3"
+ resolved "https://registry.yarnpkg.com/dns-over-http-resolver/-/dns-over-http-resolver-2.1.3.tgz#bb7f2e10cc18d960339a6e30e21b8c1d99be7b38"
+ integrity sha512-zjRYFhq+CsxPAouQWzOsxNMvEN+SHisjzhX8EMxd2Y0EG3thvn6wXQgMJLnTDImkhe4jhLbOQpXtL10nALBOSA==
+ dependencies:
+ debug "^4.3.1"
+ native-fetch "^4.0.2"
+ receptacle "^1.3.2"
+ undici "^5.12.0"
+
+dns-packet@^5.6.1:
+ version "5.6.1"
+ resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-5.6.1.tgz#ae888ad425a9d1478a0674256ab866de1012cf2f"
+ integrity sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==
+ dependencies:
+ "@leichtgewicht/ip-codec" "^2.0.1"
+
+doctrine@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d"
+ integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==
+ dependencies:
+ esutils "^2.0.2"
+
+doctrine@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961"
+ integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==
+ dependencies:
+ esutils "^2.0.2"
+
dot-prop@6.0.1:
version "6.0.1"
resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-6.0.1.tgz#fc26b3cf142b9e59b74dbd39ed66ce620c681083"
@@ -1390,11 +4607,30 @@ dot-prop@^5.1.0:
dependencies:
is-obj "^2.0.0"
-dotenv@~10.0.0:
+dotenv@^10.0.0, dotenv@~10.0.0:
version "10.0.0"
resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-10.0.0.tgz#3d4227b8fb95f81096cdd2b66653fb2c7085ba81"
integrity sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==
+dotenv@^8.2.0:
+ version "8.6.0"
+ resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.6.0.tgz#061af664d19f7f4d8fc6e4ff9b584ce237adcb8b"
+ integrity sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==
+
+dreamopt@~0.6.0:
+ version "0.6.0"
+ resolved "https://registry.yarnpkg.com/dreamopt/-/dreamopt-0.6.0.tgz#d813ccdac8d39d8ad526775514a13dda664d6b4b"
+ integrity sha512-KRJa47iBEK0y6ZtgCgy2ykuvMT8c9gj3ua9Dv7vCkclFJJeH2FjhGY2xO5qBoWGahsjCGMlk4Cq9wJYeWxuYhQ==
+ dependencies:
+ wordwrap ">=0.0.2"
+
+dtrace-provider@~0.8:
+ version "0.8.8"
+ resolved "https://registry.yarnpkg.com/dtrace-provider/-/dtrace-provider-0.8.8.tgz#2996d5490c37e1347be263b423ed7b297fb0d97e"
+ integrity sha512-b7Z7cNtHPhH9EJhNNbbeqTcXB8LGFFZhq1PGgEvpeHlzd36bhbdTWoE/Ba/YguqpBSlAPKnARWhVlhunCMwfxg==
+ dependencies:
+ nan "^2.14.0"
+
duplexer@^0.1.1:
version "0.1.2"
resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6"
@@ -1405,6 +4641,11 @@ eastasianwidth@^0.2.0:
resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb"
integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==
+ee-first@1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
+ integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==
+
ejs@^3.1.7:
version "3.1.10"
resolved "https://registry.yarnpkg.com/ejs/-/ejs-3.1.10.tgz#69ab8358b14e896f80cc39e62087b88500c3ac3b"
@@ -1412,6 +4653,39 @@ ejs@^3.1.7:
dependencies:
jake "^10.8.5"
+electron-fetch@^1.7.2:
+ version "1.9.1"
+ resolved "https://registry.yarnpkg.com/electron-fetch/-/electron-fetch-1.9.1.tgz#e28bfe78d467de3f2dec884b1d72b8b05322f30f"
+ integrity sha512-M9qw6oUILGVrcENMSRRefE1MbHPIz0h79EKIeJWK9v563aT9Qkh8aEHPO1H5vi970wPirNY+jO9OpFoLiMsMGA==
+ dependencies:
+ encoding "^0.1.13"
+
+elliptic@6.5.4:
+ version "6.5.4"
+ resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb"
+ integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==
+ dependencies:
+ bn.js "^4.11.9"
+ brorand "^1.1.0"
+ hash.js "^1.0.0"
+ hmac-drbg "^1.0.1"
+ inherits "^2.0.4"
+ minimalistic-assert "^1.0.1"
+ minimalistic-crypto-utils "^1.0.1"
+
+elliptic@^6.5.4:
+ version "6.5.5"
+ resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.5.tgz#c715e09f78b6923977610d4c2346d6ce22e6dded"
+ integrity sha512-7EjbcmUm17NQFu4Pmgmq2olYMj8nwMnpcddByChSUjArp8F5DQWcIcpriwO4ZToLNAJig0yiyjswfyGNje/ixw==
+ dependencies:
+ bn.js "^4.11.9"
+ brorand "^1.1.0"
+ hash.js "^1.0.0"
+ hmac-drbg "^1.0.1"
+ inherits "^2.0.4"
+ minimalistic-assert "^1.0.1"
+ minimalistic-crypto-utils "^1.0.1"
+
emoji-regex@^8.0.0:
version "8.0.0"
resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
@@ -1422,6 +4696,26 @@ emoji-regex@^9.2.2:
resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72"
integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==
+enabled@2.0.x:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/enabled/-/enabled-2.0.0.tgz#f9dd92ec2d6f4bbc0d5d1e64e21d61cd4665e7c2"
+ integrity sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==
+
+encodeurl@~1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
+ integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==
+
+encoding-down@^7.1.0:
+ version "7.1.0"
+ resolved "https://registry.yarnpkg.com/encoding-down/-/encoding-down-7.1.0.tgz#8d55b5a20d50eb6f0edaf7233f6aee0ff562386a"
+ integrity sha512-ky47X5jP84ryk5EQmvedQzELwVJPjCgXDQZGeb9F6r4PdChByCGHTBrVcF3h8ynKVJ1wVbkxTsDC8zBROPypgQ==
+ dependencies:
+ abstract-leveldown "^7.2.0"
+ inherits "^2.0.3"
+ level-codec "^10.0.0"
+ level-errors "^3.0.0"
+
encoding@^0.1.13:
version "0.1.13"
resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9"
@@ -1458,6 +4752,11 @@ err-code@^2.0.2:
resolved "https://registry.yarnpkg.com/err-code/-/err-code-2.0.3.tgz#23c2f3b756ffdfc608d30e27c9a941024807e7f9"
integrity sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==
+err-code@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/err-code/-/err-code-3.0.1.tgz#a444c7b992705f2b120ee320b09972eef331c920"
+ integrity sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA==
+
error-ex@^1.3.1:
version "1.3.2"
resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf"
@@ -1465,26 +4764,387 @@ error-ex@^1.3.1:
dependencies:
is-arrayish "^0.2.1"
+es-abstract@^1.22.1, es-abstract@^1.22.3, es-abstract@^1.23.0, es-abstract@^1.23.2:
+ version "1.23.3"
+ resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.23.3.tgz#8f0c5a35cd215312573c5a27c87dfd6c881a0aa0"
+ integrity sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==
+ dependencies:
+ array-buffer-byte-length "^1.0.1"
+ arraybuffer.prototype.slice "^1.0.3"
+ available-typed-arrays "^1.0.7"
+ call-bind "^1.0.7"
+ data-view-buffer "^1.0.1"
+ data-view-byte-length "^1.0.1"
+ data-view-byte-offset "^1.0.0"
+ es-define-property "^1.0.0"
+ es-errors "^1.3.0"
+ es-object-atoms "^1.0.0"
+ es-set-tostringtag "^2.0.3"
+ es-to-primitive "^1.2.1"
+ function.prototype.name "^1.1.6"
+ get-intrinsic "^1.2.4"
+ get-symbol-description "^1.0.2"
+ globalthis "^1.0.3"
+ gopd "^1.0.1"
+ has-property-descriptors "^1.0.2"
+ has-proto "^1.0.3"
+ has-symbols "^1.0.3"
+ hasown "^2.0.2"
+ internal-slot "^1.0.7"
+ is-array-buffer "^3.0.4"
+ is-callable "^1.2.7"
+ is-data-view "^1.0.1"
+ is-negative-zero "^2.0.3"
+ is-regex "^1.1.4"
+ is-shared-array-buffer "^1.0.3"
+ is-string "^1.0.7"
+ is-typed-array "^1.1.13"
+ is-weakref "^1.0.2"
+ object-inspect "^1.13.1"
+ object-keys "^1.1.1"
+ object.assign "^4.1.5"
+ regexp.prototype.flags "^1.5.2"
+ safe-array-concat "^1.1.2"
+ safe-regex-test "^1.0.3"
+ string.prototype.trim "^1.2.9"
+ string.prototype.trimend "^1.0.8"
+ string.prototype.trimstart "^1.0.8"
+ typed-array-buffer "^1.0.2"
+ typed-array-byte-length "^1.0.1"
+ typed-array-byte-offset "^1.0.2"
+ typed-array-length "^1.0.6"
+ unbox-primitive "^1.0.2"
+ which-typed-array "^1.1.15"
+
+es-define-property@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.0.tgz#c7faefbdff8b2696cf5f46921edfb77cc4ba3845"
+ integrity sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==
+ dependencies:
+ get-intrinsic "^1.2.4"
+
+es-errors@^1.2.1, es-errors@^1.3.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f"
+ integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==
+
+es-object-atoms@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/es-object-atoms/-/es-object-atoms-1.0.0.tgz#ddb55cd47ac2e240701260bc2a8e31ecb643d941"
+ integrity sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==
+ dependencies:
+ es-errors "^1.3.0"
+
+es-set-tostringtag@^2.0.3:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz#8bb60f0a440c2e4281962428438d58545af39777"
+ integrity sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==
+ dependencies:
+ get-intrinsic "^1.2.4"
+ has-tostringtag "^1.0.2"
+ hasown "^2.0.1"
+
+es-shim-unscopables@^1.0.0, es-shim-unscopables@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz#1f6942e71ecc7835ed1c8a83006d8771a63a3763"
+ integrity sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==
+ dependencies:
+ hasown "^2.0.0"
+
+es-to-primitive@^1.2.1:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a"
+ integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==
+ dependencies:
+ is-callable "^1.1.4"
+ is-date-object "^1.0.1"
+ is-symbol "^1.0.2"
+
+es5-ext@0.8.x:
+ version "0.8.2"
+ resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.8.2.tgz#aba8d9e1943a895ac96837a62a39b3f55ecd94ab"
+ integrity sha512-H19ompyhnKiBdjHR1DPHvf5RHgHPmJaY9JNzFGbMbPgdsUkvnUCN1Ke8J4Y0IMyTwFM2M9l4h2GoHwzwpSmXbA==
+
escalade@^3.1.1:
version "3.1.2"
resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.2.tgz#54076e9ab29ea5bf3d8f1ed62acffbb88272df27"
integrity sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==
-escape-string-regexp@^1.0.5:
+escape-html@~1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
+ integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==
+
+escape-string-regexp@4.0.0, escape-string-regexp@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34"
+ integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==
+
+escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==
+eslint-config-semistandard@^15.0.1:
+ version "15.0.1"
+ resolved "https://registry.yarnpkg.com/eslint-config-semistandard/-/eslint-config-semistandard-15.0.1.tgz#a868397af8fb26d1bb6b907aa9d575d385581099"
+ integrity sha512-sfV+qNBWKOmF0kZJll1VH5XqOAdTmLlhbOl9WKI11d2eMEe+Kicxnpm24PQWHOqAfk5pAWU2An0LjNCXKa4Usg==
+
+eslint-config-standard@^16.0.3:
+ version "16.0.3"
+ resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-16.0.3.tgz#6c8761e544e96c531ff92642eeb87842b8488516"
+ integrity sha512-x4fmJL5hGqNJKGHSjnLdgA6U6h1YW/G2dW9fA+cyVur4SK6lyue8+UgNKWlZtUDTXvgKDD/Oa3GQjmB5kjtVvg==
+
+eslint-import-resolver-node@^0.3.9:
+ version "0.3.9"
+ resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz#d4eaac52b8a2e7c3cd1903eb00f7e053356118ac"
+ integrity sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==
+ dependencies:
+ debug "^3.2.7"
+ is-core-module "^2.13.0"
+ resolve "^1.22.4"
+
+eslint-module-utils@^2.8.0:
+ version "2.8.1"
+ resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.8.1.tgz#52f2404300c3bd33deece9d7372fb337cc1d7c34"
+ integrity sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==
+ dependencies:
+ debug "^3.2.7"
+
+eslint-plugin-es@^3.0.0:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz#75a7cdfdccddc0589934aeeb384175f221c57893"
+ integrity sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==
+ dependencies:
+ eslint-utils "^2.0.0"
+ regexpp "^3.0.0"
+
+eslint-plugin-import@^2.27.5:
+ version "2.29.1"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz#d45b37b5ef5901d639c15270d74d46d161150643"
+ integrity sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==
+ dependencies:
+ array-includes "^3.1.7"
+ array.prototype.findlastindex "^1.2.3"
+ array.prototype.flat "^1.3.2"
+ array.prototype.flatmap "^1.3.2"
+ debug "^3.2.7"
+ doctrine "^2.1.0"
+ eslint-import-resolver-node "^0.3.9"
+ eslint-module-utils "^2.8.0"
+ hasown "^2.0.0"
+ is-core-module "^2.13.1"
+ is-glob "^4.0.3"
+ minimatch "^3.1.2"
+ object.fromentries "^2.0.7"
+ object.groupby "^1.0.1"
+ object.values "^1.1.7"
+ semver "^6.3.1"
+ tsconfig-paths "^3.15.0"
+
+eslint-plugin-node@^11.1.0:
+ version "11.1.0"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz#c95544416ee4ada26740a30474eefc5402dc671d"
+ integrity sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==
+ dependencies:
+ eslint-plugin-es "^3.0.0"
+ eslint-utils "^2.0.0"
+ ignore "^5.1.1"
+ minimatch "^3.0.4"
+ resolve "^1.10.1"
+ semver "^6.1.0"
+
+eslint-plugin-promise@^5.1.0:
+ version "5.2.0"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-5.2.0.tgz#a596acc32981627eb36d9d75f9666ac1a4564971"
+ integrity sha512-SftLb1pUG01QYq2A/hGAWfDRXqYD82zE7j7TopDOyNdU+7SvvoXREls/+PRTY17vUXzXnZA/zfnyKgRH6x4JJw==
+
+eslint-plugin-standard@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-standard/-/eslint-plugin-standard-5.0.0.tgz#c43f6925d669f177db46f095ea30be95476b1ee4"
+ integrity sha512-eSIXPc9wBM4BrniMzJRBm2uoVuXz2EPa+NXPk2+itrVt+r5SbKFERx/IgrK/HmfjddyKVz2f+j+7gBRvu19xLg==
+
+eslint-scope@^5.1.1:
+ version "5.1.1"
+ resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c"
+ integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==
+ dependencies:
+ esrecurse "^4.3.0"
+ estraverse "^4.1.1"
+
+eslint-scope@^7.2.2:
+ version "7.2.2"
+ resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f"
+ integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==
+ dependencies:
+ esrecurse "^4.3.0"
+ estraverse "^5.2.0"
+
+eslint-utils@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27"
+ integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==
+ dependencies:
+ eslint-visitor-keys "^1.1.0"
+
+eslint-visitor-keys@^1.1.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e"
+ integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==
+
+eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3:
+ version "3.4.3"
+ resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800"
+ integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==
+
+eslint@^8.35.0:
+ version "8.57.0"
+ resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.57.0.tgz#c786a6fd0e0b68941aaf624596fb987089195668"
+ integrity sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==
+ dependencies:
+ "@eslint-community/eslint-utils" "^4.2.0"
+ "@eslint-community/regexpp" "^4.6.1"
+ "@eslint/eslintrc" "^2.1.4"
+ "@eslint/js" "8.57.0"
+ "@humanwhocodes/config-array" "^0.11.14"
+ "@humanwhocodes/module-importer" "^1.0.1"
+ "@nodelib/fs.walk" "^1.2.8"
+ "@ungap/structured-clone" "^1.2.0"
+ ajv "^6.12.4"
+ chalk "^4.0.0"
+ cross-spawn "^7.0.2"
+ debug "^4.3.2"
+ doctrine "^3.0.0"
+ escape-string-regexp "^4.0.0"
+ eslint-scope "^7.2.2"
+ eslint-visitor-keys "^3.4.3"
+ espree "^9.6.1"
+ esquery "^1.4.2"
+ esutils "^2.0.2"
+ fast-deep-equal "^3.1.3"
+ file-entry-cache "^6.0.1"
+ find-up "^5.0.0"
+ glob-parent "^6.0.2"
+ globals "^13.19.0"
+ graphemer "^1.4.0"
+ ignore "^5.2.0"
+ imurmurhash "^0.1.4"
+ is-glob "^4.0.0"
+ is-path-inside "^3.0.3"
+ js-yaml "^4.1.0"
+ json-stable-stringify-without-jsonify "^1.0.1"
+ levn "^0.4.1"
+ lodash.merge "^4.6.2"
+ minimatch "^3.1.2"
+ natural-compare "^1.4.0"
+ optionator "^0.9.3"
+ strip-ansi "^6.0.1"
+ text-table "^0.2.0"
+
+espree@^9.6.0, espree@^9.6.1:
+ version "9.6.1"
+ resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f"
+ integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==
+ dependencies:
+ acorn "^8.9.0"
+ acorn-jsx "^5.3.2"
+ eslint-visitor-keys "^3.4.1"
+
esprima@^4.0.0:
version "4.0.1"
resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
-eventemitter3@^4.0.4:
+esquery@^1.4.2:
+ version "1.5.0"
+ resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b"
+ integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==
+ dependencies:
+ estraverse "^5.1.0"
+
+esrecurse@^4.3.0:
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921"
+ integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==
+ dependencies:
+ estraverse "^5.2.0"
+
+estraverse@^4.1.1:
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d"
+ integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==
+
+estraverse@^5.1.0, estraverse@^5.2.0:
+ version "5.3.0"
+ resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123"
+ integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==
+
+esutils@^2.0.2:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
+ integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
+
+etag@~1.8.1:
+ version "1.8.1"
+ resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887"
+ integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==
+
+ethers@^5.1.4, ethers@^5.4.4, ethers@^5.7.2:
+ version "5.7.2"
+ resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.7.2.tgz#3a7deeabbb8c030d4126b24f84e525466145872e"
+ integrity sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==
+ dependencies:
+ "@ethersproject/abi" "5.7.0"
+ "@ethersproject/abstract-provider" "5.7.0"
+ "@ethersproject/abstract-signer" "5.7.0"
+ "@ethersproject/address" "5.7.0"
+ "@ethersproject/base64" "5.7.0"
+ "@ethersproject/basex" "5.7.0"
+ "@ethersproject/bignumber" "5.7.0"
+ "@ethersproject/bytes" "5.7.0"
+ "@ethersproject/constants" "5.7.0"
+ "@ethersproject/contracts" "5.7.0"
+ "@ethersproject/hash" "5.7.0"
+ "@ethersproject/hdnode" "5.7.0"
+ "@ethersproject/json-wallets" "5.7.0"
+ "@ethersproject/keccak256" "5.7.0"
+ "@ethersproject/logger" "5.7.0"
+ "@ethersproject/networks" "5.7.1"
+ "@ethersproject/pbkdf2" "5.7.0"
+ "@ethersproject/properties" "5.7.0"
+ "@ethersproject/providers" "5.7.2"
+ "@ethersproject/random" "5.7.0"
+ "@ethersproject/rlp" "5.7.0"
+ "@ethersproject/sha2" "5.7.0"
+ "@ethersproject/signing-key" "5.7.0"
+ "@ethersproject/solidity" "5.7.0"
+ "@ethersproject/strings" "5.7.0"
+ "@ethersproject/transactions" "5.7.0"
+ "@ethersproject/units" "5.7.0"
+ "@ethersproject/wallet" "5.7.0"
+ "@ethersproject/web" "5.7.1"
+ "@ethersproject/wordlists" "5.7.0"
+
+event-iterator@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/event-iterator/-/event-iterator-2.0.0.tgz#10f06740cc1e9fd6bc575f334c2bc1ae9d2dbf62"
+ integrity sha512-KGft0ldl31BZVV//jj+IAIGCxkvvUkkON+ScH6zfoX+l+omX6001ggyRSpI0Io2Hlro0ThXotswCtfzS8UkIiQ==
+
+eventemitter3@^4.0.0, eventemitter3@^4.0.4:
version "4.0.7"
resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f"
integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==
+eventemitter3@^5.0.1:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-5.0.1.tgz#53f5ffd0a492ac800721bb42c66b841de96423c4"
+ integrity sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==
+
+events@^3.3.0:
+ version "3.3.0"
+ resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400"
+ integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==
+
execa@5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/execa/-/execa-5.0.0.tgz#4029b0007998a841fbd1032e5f4de86a3c1e3376"
@@ -1515,11 +5175,79 @@ execa@^5.0.0:
signal-exit "^3.0.3"
strip-final-newline "^2.0.0"
+execa@^7.1.1:
+ version "7.2.0"
+ resolved "https://registry.yarnpkg.com/execa/-/execa-7.2.0.tgz#657e75ba984f42a70f38928cedc87d6f2d4fe4e9"
+ integrity sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==
+ dependencies:
+ cross-spawn "^7.0.3"
+ get-stream "^6.0.1"
+ human-signals "^4.3.0"
+ is-stream "^3.0.0"
+ merge-stream "^2.0.0"
+ npm-run-path "^5.1.0"
+ onetime "^6.0.0"
+ signal-exit "^3.0.7"
+ strip-final-newline "^3.0.0"
+
exponential-backoff@^3.1.1:
version "3.1.1"
resolved "https://registry.yarnpkg.com/exponential-backoff/-/exponential-backoff-3.1.1.tgz#64ac7526fe341ab18a39016cd22c787d01e00bf6"
integrity sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==
+express-end@0.0.8:
+ version "0.0.8"
+ resolved "https://registry.yarnpkg.com/express-end/-/express-end-0.0.8.tgz#0c8fd95428932158f2b4cf91f4045346bf2c5323"
+ integrity sha512-PPntzICAq006LBpXKBVJtmRUiCRqTMZ+OB8L2RFXgx+OmkMWU66IL4DTEPF/DOcxmsuC7Y0NdbT2R71lb+pBpg==
+ dependencies:
+ debug "^2.2.0"
+
+express-queue@^0.0.13:
+ version "0.0.13"
+ resolved "https://registry.yarnpkg.com/express-queue/-/express-queue-0.0.13.tgz#e9800d67749d4dfab7c34223f00595af933ce5df"
+ integrity sha512-C4OEDasGDqpXLrZICSUxbY47p5c0bKqf/3/3hwauSCmI+jVVxKBWU2w39BuKLP6nF65z87uDFBbJMPAn2ZrG3g==
+ dependencies:
+ debug "^4.3.4"
+ express-end "0.0.8"
+ mini-queue "0.0.14"
+
+express@^4.18.2:
+ version "4.19.2"
+ resolved "https://registry.yarnpkg.com/express/-/express-4.19.2.tgz#e25437827a3aa7f2a827bc8171bbbb664a356465"
+ integrity sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==
+ dependencies:
+ accepts "~1.3.8"
+ array-flatten "1.1.1"
+ body-parser "1.20.2"
+ content-disposition "0.5.4"
+ content-type "~1.0.4"
+ cookie "0.6.0"
+ cookie-signature "1.0.6"
+ debug "2.6.9"
+ depd "2.0.0"
+ encodeurl "~1.0.2"
+ escape-html "~1.0.3"
+ etag "~1.8.1"
+ finalhandler "1.2.0"
+ fresh "0.5.2"
+ http-errors "2.0.0"
+ merge-descriptors "1.0.1"
+ methods "~1.1.2"
+ on-finished "2.4.1"
+ parseurl "~1.3.3"
+ path-to-regexp "0.1.7"
+ proxy-addr "~2.0.7"
+ qs "6.11.0"
+ range-parser "~1.2.1"
+ safe-buffer "5.2.1"
+ send "0.18.0"
+ serve-static "1.15.0"
+ setprototypeof "1.2.0"
+ statuses "2.0.1"
+ type-is "~1.6.18"
+ utils-merge "1.0.1"
+ vary "~1.1.2"
+
external-editor@^3.0.3:
version "3.1.0"
resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495"
@@ -1529,6 +5257,16 @@ external-editor@^3.0.3:
iconv-lite "^0.4.24"
tmp "^0.0.33"
+fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3:
+ version "3.1.3"
+ resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
+ integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
+
+fast-fifo@^1.0.0:
+ version "1.3.2"
+ resolved "https://registry.yarnpkg.com/fast-fifo/-/fast-fifo-1.3.2.tgz#286e31de96eb96d38a97899815740ba2a4f3640c"
+ integrity sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==
+
fast-glob@3.2.7:
version "3.2.7"
resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.7.tgz#fd6cb7a2d7e9aa7a7846111e85a196d6b2f766a1"
@@ -1551,6 +5289,16 @@ fast-glob@^3.2.9:
merge2 "^1.3.0"
micromatch "^4.0.4"
+fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
+ integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
+
+fast-levenshtein@^2.0.6:
+ version "2.0.6"
+ resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
+ integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==
+
fastq@^1.6.0:
version "1.17.1"
resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.17.1.tgz#2a523f07a4e7b1e81a42b91b8bf2254107753b47"
@@ -1558,6 +5306,16 @@ fastq@^1.6.0:
dependencies:
reusify "^1.0.4"
+fecha@^4.2.0:
+ version "4.2.3"
+ resolved "https://registry.yarnpkg.com/fecha/-/fecha-4.2.3.tgz#4d9ccdbc61e8629b259fdca67e65891448d569fd"
+ integrity sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==
+
+figlet@^1.1.1:
+ version "1.7.0"
+ resolved "https://registry.yarnpkg.com/figlet/-/figlet-1.7.0.tgz#46903a04603fd19c3e380358418bb2703587a72e"
+ integrity sha512-gO8l3wvqo0V7wEFLXPbkX83b7MVjRrk1oRLfYlZXol8nEpb/ON9pcKLI4qpBv5YtOTfrINtqb7b40iYY2FTWFg==
+
figures@3.2.0, figures@^3.0.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af"
@@ -1565,6 +5323,13 @@ figures@3.2.0, figures@^3.0.0:
dependencies:
escape-string-regexp "^1.0.5"
+file-entry-cache@^6.0.1:
+ version "6.0.1"
+ resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027"
+ integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==
+ dependencies:
+ flat-cache "^3.0.4"
+
file-url@3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/file-url/-/file-url-3.0.0.tgz#247a586a746ce9f7a8ed05560290968afc262a77"
@@ -1584,7 +5349,20 @@ fill-range@^7.1.1:
dependencies:
to-regex-range "^5.0.1"
-find-up@5.0.0:
+finalhandler@1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.2.0.tgz#7d23fe5731b207b4640e4fcd00aec1f9207a7b32"
+ integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==
+ dependencies:
+ debug "2.6.9"
+ encodeurl "~1.0.2"
+ escape-html "~1.0.3"
+ on-finished "2.4.1"
+ parseurl "~1.3.3"
+ statuses "2.0.1"
+ unpipe "~1.0.0"
+
+find-up@5.0.0, find-up@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc"
integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==
@@ -1607,16 +5385,42 @@ find-up@^4.0.0, find-up@^4.1.0:
locate-path "^5.0.0"
path-exists "^4.0.0"
+flat-cache@^3.0.4:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.2.0.tgz#2c0c2d5040c99b1632771a9d105725c0115363ee"
+ integrity sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==
+ dependencies:
+ flatted "^3.2.9"
+ keyv "^4.5.3"
+ rimraf "^3.0.2"
+
flat@^5.0.2:
version "5.0.2"
resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241"
integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==
-follow-redirects@^1.15.6:
+flatted@^3.2.9:
+ version "3.3.1"
+ resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.3.1.tgz#21db470729a6734d4997002f439cb308987f567a"
+ integrity sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==
+
+fn.name@1.x.x:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/fn.name/-/fn.name-1.1.0.tgz#26cad8017967aea8731bc42961d04a3d5988accc"
+ integrity sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==
+
+follow-redirects@^1.0.0, follow-redirects@^1.15.6:
version "1.15.6"
resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.6.tgz#7f815c0cda4249c74ff09e95ef97c23b5fd0399b"
integrity sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==
+for-each@^0.3.3:
+ version "0.3.3"
+ resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e"
+ integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==
+ dependencies:
+ is-callable "^1.1.3"
+
foreground-child@^3.1.0:
version "3.1.1"
resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.1.1.tgz#1d173e776d75d2772fed08efe4a0de1ea1b12d0d"
@@ -1634,6 +5438,21 @@ form-data@^4.0.0:
combined-stream "^1.0.8"
mime-types "^2.1.12"
+forwarded@0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811"
+ integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==
+
+freeport-promise@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/freeport-promise/-/freeport-promise-2.0.0.tgz#11e4f81e24d680b88a20c15b2103551f4b6663d8"
+ integrity sha512-dwWpT1DdQcwrhmRwnDnPM/ZFny+FtzU+k50qF2eid3KxaQDsMiBrwo1i0G3qSugkN5db6Cb0zgfc68QeTOpEFg==
+
+fresh@0.5.2:
+ version "0.5.2"
+ resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7"
+ integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==
+
fs-constants@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad"
@@ -1649,6 +5468,15 @@ fs-extra@9.1.0, fs-extra@^9.1.0:
jsonfile "^6.0.1"
universalify "^2.0.0"
+fs-extra@^10.0.0:
+ version "10.1.0"
+ resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.1.0.tgz#02873cfbc4084dde127eaa5f9905eef2325d1abf"
+ integrity sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==
+ dependencies:
+ graceful-fs "^4.2.0"
+ jsonfile "^6.0.1"
+ universalify "^2.0.0"
+
fs-extra@^11.1.0:
version "11.2.0"
resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.2.0.tgz#e70e17dfad64232287d01929399e0ea7c86b0e5b"
@@ -1677,11 +5505,31 @@ fs.realpath@^1.0.0:
resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==
+fsevents@~2.3.1:
+ version "2.3.3"
+ resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6"
+ integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==
+
function-bind@^1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c"
integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==
+function.prototype.name@^1.1.6:
+ version "1.1.6"
+ resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.6.tgz#cdf315b7d90ee77a4c6ee216c3c3362da07533fd"
+ integrity sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==
+ dependencies:
+ call-bind "^1.0.2"
+ define-properties "^1.2.0"
+ es-abstract "^1.22.1"
+ functions-have-names "^1.2.3"
+
+functions-have-names@^1.2.3:
+ version "1.2.3"
+ resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834"
+ integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==
+
gauge@^4.0.3:
version "4.0.4"
resolved "https://registry.yarnpkg.com/gauge/-/gauge-4.0.4.tgz#52ff0652f2bbf607a989793d53b751bef2328dce"
@@ -1715,6 +5563,32 @@ get-caller-file@^2.0.5:
resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e"
integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==
+get-func-name@^2.0.1, get-func-name@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.2.tgz#0d7cf20cd13fda808669ffa88f4ffc7a3943fc41"
+ integrity sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==
+
+get-intrinsic@^1.1.3, get-intrinsic@^1.2.1, get-intrinsic@^1.2.3, get-intrinsic@^1.2.4:
+ version "1.2.4"
+ resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz#e385f5a4b5227d449c3eabbad05494ef0abbeadd"
+ integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==
+ dependencies:
+ es-errors "^1.3.0"
+ function-bind "^1.1.2"
+ has-proto "^1.0.1"
+ has-symbols "^1.0.3"
+ hasown "^2.0.0"
+
+get-iterator@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/get-iterator/-/get-iterator-1.0.2.tgz#cd747c02b4c084461fac14f48f6b45a80ed25c82"
+ integrity sha512-v+dm9bNVfOYsY1OrhaCrmyOcYoSeVvbt+hHZ0Au+T+p1y+0Uyj9aMaGIeUTT6xdpRbWzDeYKvfOslPhggQMcsg==
+
+get-iterator@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/get-iterator/-/get-iterator-2.0.1.tgz#a904829f61bace789e0d64bd1a504c511a015c3f"
+ integrity sha512-7HuY/hebu4gryTDT7O/XY/fvY9wRByEGdK6QOa4of8npTcv0+NS6frFKABcf6S9EBAsveTuKTsZQQBFMMNILIg==
+
get-pkg-repo@^4.0.0:
version "4.2.1"
resolved "https://registry.yarnpkg.com/get-pkg-repo/-/get-pkg-repo-4.2.1.tgz#75973e1c8050c73f48190c52047c4cee3acbf385"
@@ -1735,11 +5609,25 @@ get-stream@6.0.0:
resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.0.tgz#3e0012cb6827319da2706e601a1583e8629a6718"
integrity sha512-A1B3Bh1UmL0bidM/YX2NsCOTnGJePL9rO/M+Mw3m9f2gUpfokS0hi5Eah0WSUEWZdZhIZtMjkIYS7mDfOqNHbg==
-get-stream@^6.0.0:
+get-stream@^6.0.0, get-stream@^6.0.1:
version "6.0.1"
resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7"
integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==
+get-symbol-description@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.2.tgz#533744d5aa20aca4e079c8e5daf7fd44202821f5"
+ integrity sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==
+ dependencies:
+ call-bind "^1.0.5"
+ es-errors "^1.3.0"
+ get-intrinsic "^1.2.4"
+
+get-value@^2.0.3:
+ version "2.0.6"
+ resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28"
+ integrity sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==
+
git-raw-commits@^2.0.8:
version "2.0.11"
resolved "https://registry.yarnpkg.com/git-raw-commits/-/git-raw-commits-2.0.11.tgz#bc3576638071d18655e1cc60d7f524920008d723"
@@ -1789,13 +5677,20 @@ gitconfiglocal@^1.0.0:
dependencies:
ini "^1.3.2"
-glob-parent@5.1.2, glob-parent@^5.1.2:
+glob-parent@5.1.2, glob-parent@^5.1.2, glob-parent@~5.1.0:
version "5.1.2"
resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4"
integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
dependencies:
is-glob "^4.0.1"
+glob-parent@^6.0.2:
+ version "6.0.2"
+ resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3"
+ integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==
+ dependencies:
+ is-glob "^4.0.3"
+
glob@7.1.4:
version "7.1.4"
resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255"
@@ -1808,6 +5703,18 @@ glob@7.1.4:
once "^1.3.0"
path-is-absolute "^1.0.0"
+glob@7.1.6:
+ version "7.1.6"
+ resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6"
+ integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==
+ dependencies:
+ fs.realpath "^1.0.0"
+ inflight "^1.0.4"
+ inherits "2"
+ minimatch "^3.0.4"
+ once "^1.3.0"
+ path-is-absolute "^1.0.0"
+
glob@^10.2.2:
version "10.4.1"
resolved "https://registry.yarnpkg.com/glob/-/glob-10.4.1.tgz#0cfb01ab6a6b438177bfe6a58e2576f6efe909c2"
@@ -1819,7 +5726,18 @@ glob@^10.2.2:
minipass "^7.1.2"
path-scurry "^1.11.1"
-glob@^7.1.3, glob@^7.1.4:
+glob@^6.0.1:
+ version "6.0.4"
+ resolved "https://registry.yarnpkg.com/glob/-/glob-6.0.4.tgz#0f08860f6a155127b2fadd4f9ce24b1aab6e4d22"
+ integrity sha512-MKZeRNyYZAVVVG1oZeLaWie1uweH40m9AZwIwxyPbTSX4hHrVYSzLg0Ro5Z5R7XKkIX+Cc6oD1rqeDJnwsB8/A==
+ dependencies:
+ inflight "^1.0.4"
+ inherits "2"
+ minimatch "2 || 3"
+ once "^1.3.0"
+ path-is-absolute "^1.0.0"
+
+glob@^7.0.5, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6:
version "7.2.3"
resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b"
integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==
@@ -1852,7 +5770,22 @@ glob@^9.2.0:
minipass "^4.2.4"
path-scurry "^1.6.1"
-globby@11.1.0, globby@^11.0.1:
+globals@^13.19.0:
+ version "13.24.0"
+ resolved "https://registry.yarnpkg.com/globals/-/globals-13.24.0.tgz#8432a19d78ce0c1e833949c36adb345400bb1171"
+ integrity sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==
+ dependencies:
+ type-fest "^0.20.2"
+
+globalthis@^1.0.3:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.4.tgz#7430ed3a975d97bfb59bcce41f5cabbafa651236"
+ integrity sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==
+ dependencies:
+ define-properties "^1.2.1"
+ gopd "^1.0.1"
+
+globby@11.1.0, globby@^11.0.1, globby@^11.1.0:
version "11.1.0"
resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b"
integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==
@@ -1864,6 +5797,13 @@ globby@11.1.0, globby@^11.0.1:
merge2 "^1.4.1"
slash "^3.0.0"
+gopd@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c"
+ integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==
+ dependencies:
+ get-intrinsic "^1.1.3"
+
graceful-fs@4.2.10:
version "4.2.10"
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c"
@@ -1874,6 +5814,48 @@ graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3"
integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==
+graphemer@^1.4.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6"
+ integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==
+
+graphql-request@^6.1.0:
+ version "6.1.0"
+ resolved "https://registry.yarnpkg.com/graphql-request/-/graphql-request-6.1.0.tgz#f4eb2107967af3c7a5907eb3131c671eac89be4f"
+ integrity sha512-p+XPfS4q7aIpKVcgmnZKhMNqhltk20hfXtkaIkTfjjmiKMJ5xrt5c743cL03y/K7y1rg3WrIC49xGiEQ4mxdNw==
+ dependencies:
+ "@graphql-typed-document-node/core" "^3.2.0"
+ cross-fetch "^3.1.5"
+
+graphql-subscriptions@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/graphql-subscriptions/-/graphql-subscriptions-2.0.0.tgz#11ec181d475852d8aec879183e8e1eb94f2eb79a"
+ integrity sha512-s6k2b8mmt9gF9pEfkxsaO1lTxaySfKoEJzEfmwguBbQ//Oq23hIXCfR1hm4kdh5hnR20RdwB+s3BCb+0duHSZA==
+ dependencies:
+ iterall "^1.3.0"
+
+graphql-tag@^2.11.0, graphql-tag@^2.12.6:
+ version "2.12.6"
+ resolved "https://registry.yarnpkg.com/graphql-tag/-/graphql-tag-2.12.6.tgz#d441a569c1d2537ef10ca3d1633b48725329b5f1"
+ integrity sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg==
+ dependencies:
+ tslib "^2.1.0"
+
+graphql-ws@^5.11.2:
+ version "5.16.0"
+ resolved "https://registry.yarnpkg.com/graphql-ws/-/graphql-ws-5.16.0.tgz#849efe02f384b4332109329be01d74c345842729"
+ integrity sha512-Ju2RCU2dQMgSKtArPbEtsK5gNLnsQyTNIo/T7cZNp96niC1x0KdJNZV0TIoilceBPQwfb5itrGl8pkFeOUMl4A==
+
+graphql@^15.5.0:
+ version "15.8.0"
+ resolved "https://registry.yarnpkg.com/graphql/-/graphql-15.8.0.tgz#33410e96b012fa3bdb1091cc99a94769db212b38"
+ integrity sha512-5gghUc24tP9HRznNpV2+FIoq3xKkj5dTQqf4v0CpdPbFVwFkWoxOM+o+2OC9ZSvjEMTjfmG9QT+gcvggTwW1zw==
+
+growl@1.10.5:
+ version "1.10.5"
+ resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e"
+ integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==
+
handlebars@^4.7.7:
version "4.7.8"
resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.8.tgz#41c42c18b1be2365439188c77c6afae71c0cd9e9"
@@ -1891,6 +5873,18 @@ hard-rejection@^2.1.0:
resolved "https://registry.yarnpkg.com/hard-rejection/-/hard-rejection-2.1.0.tgz#1c6eda5c1685c63942766d79bb40ae773cecd883"
integrity sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==
+has-ansi@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91"
+ integrity sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==
+ dependencies:
+ ansi-regex "^2.0.0"
+
+has-bigints@^1.0.1, has-bigints@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa"
+ integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==
+
has-flag@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
@@ -1901,18 +5895,100 @@ has-flag@^4.0.0:
resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
+has-property-descriptors@^1.0.0, has-property-descriptors@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz#963ed7d071dc7bf5f084c5bfbe0d1b6222586854"
+ integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==
+ dependencies:
+ es-define-property "^1.0.0"
+
+has-proto@^1.0.1, has-proto@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.3.tgz#b31ddfe9b0e6e9914536a6ab286426d0214f77fd"
+ integrity sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==
+
+has-symbols@^1.0.2, has-symbols@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8"
+ integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==
+
+has-tostringtag@^1.0.0, has-tostringtag@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz#2cdc42d40bef2e5b4eeab7c01a73c54ce7ab5abc"
+ integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==
+ dependencies:
+ has-symbols "^1.0.3"
+
has-unicode@2.0.1, has-unicode@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9"
integrity sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==
-hasown@^2.0.0:
+has-value@^0.3.1:
+ version "0.3.1"
+ resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f"
+ integrity sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==
+ dependencies:
+ get-value "^2.0.3"
+ has-values "^0.1.4"
+ isobject "^2.0.0"
+
+has-values@^0.1.4:
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771"
+ integrity sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==
+
+hash.js@1.1.7, hash.js@^1.0.0, hash.js@^1.0.3:
+ version "1.1.7"
+ resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42"
+ integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==
+ dependencies:
+ inherits "^2.0.3"
+ minimalistic-assert "^1.0.1"
+
+hashlru@^2.3.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/hashlru/-/hashlru-2.3.0.tgz#5dc15928b3f6961a2056416bb3a4910216fdfb51"
+ integrity sha512-0cMsjjIC8I+D3M44pOQdsy0OHXGLVz6Z0beRuufhKa0KfaD2wGwAev6jILzXsd3/vpnNQJmWyZtIILqM1N+n5A==
+
+hasown@^2.0.0, hasown@^2.0.1, hasown@^2.0.2:
version "2.0.2"
resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003"
integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==
dependencies:
function-bind "^1.1.2"
+he@1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f"
+ integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==
+
+"heap@>= 0.2.0", heap@^0.2.7:
+ version "0.2.7"
+ resolved "https://registry.yarnpkg.com/heap/-/heap-0.2.7.tgz#1e6adf711d3f27ce35a81fe3b7bd576c2260a8fc"
+ integrity sha512-2bsegYkkHO+h/9MGbn6KWcE45cHZgPANo5LXF7EvWdT0yT2EguSVO1nDgU5c8+ZOPwp2vMNa7YFsJhVcDR9Sdg==
+
+highlight.js@^10.7.1:
+ version "10.7.3"
+ resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-10.7.3.tgz#697272e3991356e40c3cac566a74eef681756531"
+ integrity sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==
+
+hmac-drbg@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1"
+ integrity sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==
+ dependencies:
+ hash.js "^1.0.3"
+ minimalistic-assert "^1.0.0"
+ minimalistic-crypto-utils "^1.0.1"
+
+hoist-non-react-statics@^3.3.2:
+ version "3.3.2"
+ resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45"
+ integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==
+ dependencies:
+ react-is "^16.7.0"
+
hosted-git-info@^2.1.4:
version "2.8.9"
resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9"
@@ -1946,11 +6022,29 @@ hosted-git-info@^6.0.0, hosted-git-info@^6.1.1:
dependencies:
lru-cache "^7.5.1"
+hosted-git-info@^7.0.0:
+ version "7.0.2"
+ resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-7.0.2.tgz#9b751acac097757667f30114607ef7b661ff4f17"
+ integrity sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==
+ dependencies:
+ lru-cache "^10.0.1"
+
http-cache-semantics@^4.1.0, http-cache-semantics@^4.1.1:
version "4.1.1"
resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz#abe02fcb2985460bf0323be664436ec3476a6d5a"
integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==
+http-errors@2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3"
+ integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==
+ dependencies:
+ depd "2.0.0"
+ inherits "2.0.4"
+ setprototypeof "1.2.0"
+ statuses "2.0.1"
+ toidentifier "1.0.1"
+
http-proxy-agent@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz#5129800203520d434f142bc78ff3c170800f2b43"
@@ -1960,6 +6054,26 @@ http-proxy-agent@^5.0.0:
agent-base "6"
debug "4"
+http-proxy-middleware@^2.0.6:
+ version "2.0.6"
+ resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz#e1a4dd6979572c7ab5a4e4b55095d1f32a74963f"
+ integrity sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==
+ dependencies:
+ "@types/http-proxy" "^1.17.8"
+ http-proxy "^1.18.1"
+ is-glob "^4.0.1"
+ is-plain-obj "^3.0.0"
+ micromatch "^4.0.2"
+
+http-proxy@^1.18.1:
+ version "1.18.1"
+ resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549"
+ integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==
+ dependencies:
+ eventemitter3 "^4.0.0"
+ follow-redirects "^1.0.0"
+ requires-port "^1.0.0"
+
https-proxy-agent@^5.0.0:
version "5.0.1"
resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6"
@@ -1973,6 +6087,11 @@ human-signals@^2.1.0:
resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0"
integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==
+human-signals@^4.3.0:
+ version "4.3.1"
+ resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-4.3.1.tgz#ab7f811e851fca97ffbd2c1fe9a958964de321b2"
+ integrity sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==
+
humanize-ms@^1.2.1:
version "1.2.1"
resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed"
@@ -1985,7 +6104,7 @@ husky@^7.0.2:
resolved "https://registry.yarnpkg.com/husky/-/husky-7.0.4.tgz#242048245dc49c8fb1bf0cc7cfb98dd722531535"
integrity sha512-vbaCKN2QLtP/vD4yvs6iz6hBEo6wkSzs8HpRah1Z6aGmF2KW5PdYuAd7uX5a+OyBZHBhd+TFLqgjUgytQr4RvQ==
-iconv-lite@^0.4.24:
+iconv-lite@0.4.24, iconv-lite@^0.4.24:
version "0.4.24"
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
@@ -1999,7 +6118,7 @@ iconv-lite@^0.6.2:
dependencies:
safer-buffer ">= 2.1.2 < 3.0.0"
-ieee754@^1.1.13:
+ieee754@^1.1.13, ieee754@^1.2.1:
version "1.2.1"
resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352"
integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==
@@ -2018,7 +6137,7 @@ ignore-walk@^6.0.0:
dependencies:
minimatch "^9.0.0"
-ignore@^5.0.4, ignore@^5.2.0:
+ignore@^5.0.4, ignore@^5.1.1, ignore@^5.2.0:
version "5.3.1"
resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.1.tgz#5073e554cd42c5b33b394375f538b8593e34d4ef"
integrity sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==
@@ -2049,6 +6168,11 @@ indent-string@^4.0.0:
resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251"
integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==
+index-to-position@^0.1.2:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/index-to-position/-/index-to-position-0.1.2.tgz#e11bfe995ca4d8eddb1ec43274488f3c201a7f09"
+ integrity sha512-MWDKS3AS1bGCHLBA2VLImJz42f7bJh8wQsTGCzI3j519/CASStoDONUBVz2I/VID0MpiX3SGSnbOD2xUalbE5g==
+
infer-owner@^1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467"
@@ -2062,7 +6186,7 @@ inflight@^1.0.4:
once "^1.3.0"
wrappy "1"
-inherits@2, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3:
+inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3:
version "2.0.4"
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
@@ -2127,6 +6251,56 @@ inquirer@^8.2.4:
through "^2.3.6"
wrap-ansi "^6.0.1"
+interface-datastore@^6.0.2:
+ version "6.1.1"
+ resolved "https://registry.yarnpkg.com/interface-datastore/-/interface-datastore-6.1.1.tgz#5150a00de2e7513eaadba58bcafd059cb50004c1"
+ integrity sha512-AmCS+9CT34pp2u0QQVXjKztkuq3y5T+BIciuiHDDtDZucZD8VudosnSdUyXJV6IsRkN5jc4RFDhCk1O6Q3Gxjg==
+ dependencies:
+ interface-store "^2.0.2"
+ nanoid "^3.0.2"
+ uint8arrays "^3.0.0"
+
+interface-datastore@^7.0.0, interface-datastore@^7.0.3:
+ version "7.0.4"
+ resolved "https://registry.yarnpkg.com/interface-datastore/-/interface-datastore-7.0.4.tgz#f09ae4e2896f57f876d5d742a59e982fb3f42891"
+ integrity sha512-Q8LZS/jfFFHz6XyZazLTAc078SSCoa27ZPBOfobWdpDiFO7FqPA2yskitUJIhaCgxNK8C+/lMBUTBNfVIDvLiw==
+ dependencies:
+ interface-store "^3.0.0"
+ nanoid "^4.0.0"
+ uint8arrays "^4.0.2"
+
+interface-datastore@^8.2.0, interface-datastore@^8.2.11:
+ version "8.2.11"
+ resolved "https://registry.yarnpkg.com/interface-datastore/-/interface-datastore-8.2.11.tgz#1d555ce6218ab6cba6291fc361debe9713590207"
+ integrity sha512-9E0iXehfp/j0UbZ2mvlYB4K9pP7uQBCppfuy8WHs1EHF6wLQrM9+zwyX+8Qt6HnH4GKZRyXX/CNXm6oD4+QYgA==
+ dependencies:
+ interface-store "^5.0.0"
+ uint8arrays "^5.0.2"
+
+interface-store@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/interface-store/-/interface-store-2.0.2.tgz#83175fd2b0c501585ed96db54bb8ba9d55fce34c"
+ integrity sha512-rScRlhDcz6k199EkHqT8NpM87ebN89ICOzILoBHgaG36/WX50N32BnU/kpZgCGPLhARRAWUUX5/cyaIjt7Kipg==
+
+interface-store@^3.0.0:
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/interface-store/-/interface-store-3.0.4.tgz#670d95ef45f3b7061d154c3cbfaf39a538167ad7"
+ integrity sha512-OjHUuGXbH4eXSBx1TF1tTySvjLldPLzRSYYXJwrEQI+XfH5JWYZofr0gVMV4F8XTwC+4V7jomDYkvGRmDSRKqQ==
+
+interface-store@^5.0.0:
+ version "5.1.8"
+ resolved "https://registry.yarnpkg.com/interface-store/-/interface-store-5.1.8.tgz#94bf867d165b5c904cccf09adeba215a5b0f459e"
+ integrity sha512-7na81Uxkl0vqk0CBPO5PvyTkdaJBaezwUJGsMOz7riPOq0rJt+7W31iaopaMICWea/iykUsvNlPx/Tc+MxC3/w==
+
+internal-slot@^1.0.7:
+ version "1.0.7"
+ resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.7.tgz#c06dcca3ed874249881007b0a5523b172a190802"
+ integrity sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==
+ dependencies:
+ es-errors "^1.3.0"
+ hasown "^2.0.0"
+ side-channel "^1.0.4"
+
ip-address@^9.0.5:
version "9.0.5"
resolved "https://registry.yarnpkg.com/ip-address/-/ip-address-9.0.5.tgz#117a960819b08780c3bd1f14ef3c1cc1d3f3ea5a"
@@ -2135,11 +6309,175 @@ ip-address@^9.0.5:
jsbn "1.1.0"
sprintf-js "^1.1.3"
+ip-regex@^4.0.0:
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-4.3.0.tgz#687275ab0f57fa76978ff8f4dddc8a23d5990db5"
+ integrity sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==
+
+ip-regex@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-5.0.0.tgz#cd313b2ae9c80c07bd3851e12bf4fa4dc5480632"
+ integrity sha512-fOCG6lhoKKakwv+C6KdsOnGvgXnmgfmp0myi3bcNwj3qfwPAxRKWEuFhvEFF7ceYIz6+1jRZ+yguLFAmUNPEfw==
+
+ipaddr.js@1.9.1:
+ version "1.9.1"
+ resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3"
+ integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==
+
+ipaddr.js@^2.1.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-2.2.0.tgz#d33fa7bac284f4de7af949638c9d68157c6b92e8"
+ integrity sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==
+
+ipfs-core-types@^0.10.3:
+ version "0.10.3"
+ resolved "https://registry.yarnpkg.com/ipfs-core-types/-/ipfs-core-types-0.10.3.tgz#89ebe98199d4d829f2b20104bfa3299f808c80fe"
+ integrity sha512-GNid2lRBjR5qgScCglgk7w9Hk3TZAwPHQXxOLQx72wgyc0jF2U5NXRoKW0GRvX8NPbHmsrFszForIqxd23I1Gw==
+ dependencies:
+ "@ipld/dag-pb" "^2.1.3"
+ interface-datastore "^6.0.2"
+ ipfs-unixfs "^6.0.3"
+ multiaddr "^10.0.0"
+ multiformats "^9.5.1"
+
+ipfs-core-utils@^0.14.3:
+ version "0.14.3"
+ resolved "https://registry.yarnpkg.com/ipfs-core-utils/-/ipfs-core-utils-0.14.3.tgz#d04c631c472507bdefc58d4e8d1d9109efbb411c"
+ integrity sha512-aBkewVhgAj3NWXPwu6imj0wADGiGVZmJzqKzODOJsibDjkx6FGdMv8kvvqtLnK8LS/dvSk9yk32IDtuDyYoV7Q==
+ dependencies:
+ any-signal "^3.0.0"
+ blob-to-it "^1.0.1"
+ browser-readablestream-to-it "^1.0.1"
+ debug "^4.1.1"
+ err-code "^3.0.1"
+ ipfs-core-types "^0.10.3"
+ ipfs-unixfs "^6.0.3"
+ ipfs-utils "^9.0.6"
+ it-all "^1.0.4"
+ it-map "^1.0.4"
+ it-peekable "^1.0.2"
+ it-to-stream "^1.0.0"
+ merge-options "^3.0.4"
+ multiaddr "^10.0.0"
+ multiaddr-to-uri "^8.0.0"
+ multiformats "^9.5.1"
+ nanoid "^3.1.23"
+ parse-duration "^1.0.0"
+ timeout-abort-controller "^3.0.0"
+ uint8arrays "^3.0.0"
+
+ipfs-http-client@^56.0.3:
+ version "56.0.3"
+ resolved "https://registry.yarnpkg.com/ipfs-http-client/-/ipfs-http-client-56.0.3.tgz#45bbea55347ef13524769d5919cbed84d9d022d6"
+ integrity sha512-E3L5ylVl6BjyRUsNehvfuRBYp1hj8vQ8in4zskVPMNzXs6JiCFUbif5a6BtcAlSK4xPQyJCeLNNAWLUeFQTLNA==
+ dependencies:
+ "@ipld/dag-cbor" "^7.0.0"
+ "@ipld/dag-json" "^8.0.1"
+ "@ipld/dag-pb" "^2.1.3"
+ any-signal "^3.0.0"
+ dag-jose "^1.0.0"
+ debug "^4.1.1"
+ err-code "^3.0.1"
+ ipfs-core-types "^0.10.3"
+ ipfs-core-utils "^0.14.3"
+ ipfs-utils "^9.0.6"
+ it-first "^1.0.6"
+ it-last "^1.0.4"
+ merge-options "^3.0.4"
+ multiaddr "^10.0.0"
+ multiformats "^9.5.1"
+ parse-duration "^1.0.0"
+ stream-to-it "^0.2.2"
+ uint8arrays "^3.0.0"
+
+ipfs-unixfs@^6.0.3:
+ version "6.0.9"
+ resolved "https://registry.yarnpkg.com/ipfs-unixfs/-/ipfs-unixfs-6.0.9.tgz#f6613b8e081d83faa43ed96e016a694c615a9374"
+ integrity sha512-0DQ7p0/9dRB6XCb0mVCTli33GzIzSVx5udpJuVM47tGcD+W+Bl4LsnoLswd3ggNnNEakMv1FdoFITiEnchXDqQ==
+ dependencies:
+ err-code "^3.0.1"
+ protobufjs "^6.10.2"
+
+ipfs-utils@^9.0.6:
+ version "9.0.14"
+ resolved "https://registry.yarnpkg.com/ipfs-utils/-/ipfs-utils-9.0.14.tgz#24f5fda1f4567685eb32bca2543d518f95fd8704"
+ integrity sha512-zIaiEGX18QATxgaS0/EOQNoo33W0islREABAcxXE8n7y2MGAlB+hdsxXn4J0hGZge8IqVQhW8sWIb+oJz2yEvg==
+ dependencies:
+ any-signal "^3.0.0"
+ browser-readablestream-to-it "^1.0.0"
+ buffer "^6.0.1"
+ electron-fetch "^1.7.2"
+ err-code "^3.0.1"
+ is-electron "^2.2.0"
+ iso-url "^1.1.5"
+ it-all "^1.0.4"
+ it-glob "^1.0.1"
+ it-to-stream "^1.0.0"
+ merge-options "^3.0.4"
+ nanoid "^3.1.20"
+ native-fetch "^3.0.0"
+ node-fetch "^2.6.8"
+ react-native-fetch-api "^3.0.0"
+ stream-to-it "^0.2.2"
+
+is-arguments@^1.0.4:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b"
+ integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==
+ dependencies:
+ call-bind "^1.0.2"
+ has-tostringtag "^1.0.0"
+
+is-array-buffer@^3.0.4:
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.4.tgz#7a1f92b3d61edd2bc65d24f130530ea93d7fae98"
+ integrity sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==
+ dependencies:
+ call-bind "^1.0.2"
+ get-intrinsic "^1.2.1"
+
is-arrayish@^0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==
+is-arrayish@^0.3.1:
+ version "0.3.2"
+ resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03"
+ integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==
+
+is-bigint@^1.0.1:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3"
+ integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==
+ dependencies:
+ has-bigints "^1.0.1"
+
+is-binary-path@~2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09"
+ integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==
+ dependencies:
+ binary-extensions "^2.0.0"
+
+is-boolean-object@^1.1.0:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719"
+ integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==
+ dependencies:
+ call-bind "^1.0.2"
+ has-tostringtag "^1.0.0"
+
+is-buffer@^2.0.5:
+ version "2.0.5"
+ resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191"
+ integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==
+
+is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7:
+ version "1.2.7"
+ resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055"
+ integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==
+
is-ci@2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c"
@@ -2147,29 +6485,60 @@ is-ci@2.0.0:
dependencies:
ci-info "^2.0.0"
-is-core-module@^2.13.0, is-core-module@^2.5.0, is-core-module@^2.8.1:
+is-core-module@^2.13.0, is-core-module@^2.13.1, is-core-module@^2.5.0, is-core-module@^2.8.1:
version "2.13.1"
resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.1.tgz#ad0d7532c6fea9da1ebdc82742d74525c6273384"
integrity sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==
dependencies:
hasown "^2.0.0"
+is-data-view@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/is-data-view/-/is-data-view-1.0.1.tgz#4b4d3a511b70f3dc26d42c03ca9ca515d847759f"
+ integrity sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==
+ dependencies:
+ is-typed-array "^1.1.13"
+
+is-date-object@^1.0.1:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f"
+ integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==
+ dependencies:
+ has-tostringtag "^1.0.0"
+
is-docker@^2.0.0, is-docker@^2.1.1:
version "2.2.1"
resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa"
integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==
+is-electron@^2.2.0:
+ version "2.2.2"
+ resolved "https://registry.yarnpkg.com/is-electron/-/is-electron-2.2.2.tgz#3778902a2044d76de98036f5dc58089ac4d80bb9"
+ integrity sha512-FO/Rhvz5tuw4MCWkpMzHFKWD2LsfHzIb7i6MdPYZ/KW7AlxawyLkqdy+jPZP1WubqEADE3O4FUENlJHDfQASRg==
+
is-extglob@^2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==
+is-fullwidth-code-point@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f"
+ integrity sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==
+
is-fullwidth-code-point@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d"
integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==
-is-glob@^4.0.1:
+is-generator-function@^1.0.7:
+ version "1.0.10"
+ resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.10.tgz#f1558baf1ac17e0deea7c0415c438351ff2b3c72"
+ integrity sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==
+ dependencies:
+ has-tostringtag "^1.0.0"
+
+is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1:
version "4.0.3"
resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084"
integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==
@@ -2181,11 +6550,43 @@ is-interactive@^1.0.0:
resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e"
integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==
+is-ip@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/is-ip/-/is-ip-3.1.0.tgz#2ae5ddfafaf05cb8008a62093cf29734f657c5d8"
+ integrity sha512-35vd5necO7IitFPjd/YBeqwWnyDWbuLH9ZXQdMfDA8TEo7pv5X8yfrvVO3xbJbLUlERCMvf6X0hTUamQxCYJ9Q==
+ dependencies:
+ ip-regex "^4.0.0"
+
is-lambda@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/is-lambda/-/is-lambda-1.0.1.tgz#3d9877899e6a53efc0160504cde15f82e6f061d5"
integrity sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==
+is-loopback-addr@^2.0.1:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/is-loopback-addr/-/is-loopback-addr-2.0.2.tgz#70a6668fa3555d47caebdcee045745ab80adf5e4"
+ integrity sha512-26POf2KRCno/KTNL5Q0b/9TYnL00xEsSaLfiFRmjM7m7Lw7ZMmFybzzuX4CcsLAluZGd+niLUiMRxEooVE3aqg==
+
+is-nan@^1.3.2:
+ version "1.3.2"
+ resolved "https://registry.yarnpkg.com/is-nan/-/is-nan-1.3.2.tgz#043a54adea31748b55b6cd4e09aadafa69bd9e1d"
+ integrity sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==
+ dependencies:
+ call-bind "^1.0.0"
+ define-properties "^1.1.3"
+
+is-negative-zero@^2.0.3:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.3.tgz#ced903a027aca6381b777a5743069d7376a49747"
+ integrity sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==
+
+is-number-object@^1.0.4:
+ version "1.0.7"
+ resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc"
+ integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==
+ dependencies:
+ has-tostringtag "^1.0.0"
+
is-number@^7.0.0:
version "7.0.0"
resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
@@ -2201,7 +6602,7 @@ is-path-cwd@^2.2.0:
resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb"
integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==
-is-path-inside@^3.0.2:
+is-path-inside@^3.0.2, is-path-inside@^3.0.3:
version "3.0.3"
resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283"
integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==
@@ -2211,7 +6612,17 @@ is-plain-obj@^1.0.0, is-plain-obj@^1.1.0:
resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e"
integrity sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==
-is-plain-object@^2.0.4:
+is-plain-obj@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287"
+ integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==
+
+is-plain-obj@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-3.0.0.tgz#af6f2ea14ac5a646183a5bbdb5baabbc156ad9d7"
+ integrity sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==
+
+is-plain-object@^2.0.1, is-plain-object@^2.0.4:
version "2.0.4"
resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677"
integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==
@@ -2223,6 +6634,21 @@ is-plain-object@^5.0.0:
resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344"
integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==
+is-regex@^1.1.4:
+ version "1.1.4"
+ resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958"
+ integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==
+ dependencies:
+ call-bind "^1.0.2"
+ has-tostringtag "^1.0.0"
+
+is-shared-array-buffer@^1.0.2, is-shared-array-buffer@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz#1237f1cba059cdb62431d378dcc37d9680181688"
+ integrity sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==
+ dependencies:
+ call-bind "^1.0.7"
+
is-ssh@^1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/is-ssh/-/is-ssh-1.4.0.tgz#4f8220601d2839d8fa624b3106f8e8884f01b8b2"
@@ -2240,6 +6666,25 @@ is-stream@^2.0.0:
resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077"
integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==
+is-stream@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-3.0.0.tgz#e6bfd7aa6bef69f4f472ce9bb681e3e57b4319ac"
+ integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==
+
+is-string@^1.0.5, is-string@^1.0.7:
+ version "1.0.7"
+ resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd"
+ integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==
+ dependencies:
+ has-tostringtag "^1.0.0"
+
+is-symbol@^1.0.2, is-symbol@^1.0.3:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c"
+ integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==
+ dependencies:
+ has-symbols "^1.0.2"
+
is-text-path@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/is-text-path/-/is-text-path-1.0.1.tgz#4e1aa0fb51bfbcb3e92688001397202c1775b66e"
@@ -2247,11 +6692,25 @@ is-text-path@^1.0.1:
dependencies:
text-extensions "^1.0.0"
+is-typed-array@^1.1.13, is-typed-array@^1.1.3:
+ version "1.1.13"
+ resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.13.tgz#d6c5ca56df62334959322d7d7dd1cca50debe229"
+ integrity sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==
+ dependencies:
+ which-typed-array "^1.1.14"
+
is-unicode-supported@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7"
integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==
+is-weakref@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2"
+ integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==
+ dependencies:
+ call-bind "^1.0.2"
+
is-wsl@^2.2.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271"
@@ -2259,21 +6718,280 @@ is-wsl@^2.2.0:
dependencies:
is-docker "^2.0.0"
-isarray@~1.0.0:
+isarray@0.0.1:
+ version "0.0.1"
+ resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf"
+ integrity sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==
+
+isarray@1.0.0, isarray@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==
+isarray@^2.0.5:
+ version "2.0.5"
+ resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723"
+ integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==
+
isexe@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==
-isobject@^3.0.1:
+iso-random-stream@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/iso-random-stream/-/iso-random-stream-2.0.2.tgz#a24f77c34cfdad9d398707d522a6a0cc640ff27d"
+ integrity sha512-yJvs+Nnelic1L2vH2JzWvvPQFA4r7kSTnpST/+LkAQjSz0hos2oqLD+qIVi9Qk38Hoe7mNDt3j0S27R58MVjLQ==
+ dependencies:
+ events "^3.3.0"
+ readable-stream "^3.4.0"
+
+iso-url@^1.1.2, iso-url@^1.1.5:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/iso-url/-/iso-url-1.2.1.tgz#db96a49d8d9a64a1c889fc07cc525d093afb1811"
+ integrity sha512-9JPDgCN4B7QPkLtYAAOrEuAWvP9rWvR5offAr0/SeF046wIkglqH3VXgYYP6NcsKslH80UIVgmPqNe3j7tG2ng==
+
+isobject@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89"
+ integrity sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==
+ dependencies:
+ isarray "1.0.0"
+
+isobject@^3.0.0, isobject@^3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df"
integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==
+it-all@^1.0.4:
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/it-all/-/it-all-1.0.6.tgz#852557355367606295c4c3b7eff0136f07749335"
+ integrity sha512-3cmCc6Heqe3uWi3CVM/k51fa/XbMFpQVzFoDsV0IZNHSQDyAXl3c4MjHkFX5kF3922OGj7Myv1nSEUgRtcuM1A==
+
+it-all@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/it-all/-/it-all-2.0.1.tgz#45d530ecf6e13fb81d7ba583cdfd55ffdb376b05"
+ integrity sha512-9UuJcCRZsboz+HBQTNOau80Dw+ryGaHYFP/cPYzFBJBFcfDathMYnhHk4t52en9+fcyDGPTdLB+lFc1wzQIroA==
+
+it-batched-bytes@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/it-batched-bytes/-/it-batched-bytes-1.0.1.tgz#a3b12a10db24308c76a1126032af9184afc2dc63"
+ integrity sha512-ptBiZ0Mh3kJYySpG0pCS7JgvWhaAW1fGfKDVFtNIuNTA+bpSlXINvD5H3b14ZlJbnJFzFzRSCSZ10E1nH4z/WQ==
+ dependencies:
+ it-stream-types "^1.0.4"
+ p-defer "^4.0.0"
+ uint8arraylist "^2.4.1"
+
+it-drain@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/it-drain/-/it-drain-2.0.1.tgz#f50f6ce5cb8592a9d6337c9b5e780348877b152d"
+ integrity sha512-ESuHV6MLUNxuSy0vGZpKhSRjW0ixczN1FhbVy7eGJHjX6U2qiiXTyMvDc0z/w+nifOOwPyI5DT9Rc3o9IaGqEQ==
+
+it-filter@^2.0.0:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/it-filter/-/it-filter-2.0.2.tgz#c849b3de4a12a2de3cc45be734ee55f69a0ed284"
+ integrity sha512-gocw1F3siqupegsOzZ78rAc9C+sYlQbI2af/TmzgdrR613MyEJHbvfwBf12XRekGG907kqXSOGKPlxzJa6XV1Q==
+
+it-first@^1.0.6:
+ version "1.0.7"
+ resolved "https://registry.yarnpkg.com/it-first/-/it-first-1.0.7.tgz#a4bef40da8be21667f7d23e44dae652f5ccd7ab1"
+ integrity sha512-nvJKZoBpZD/6Rtde6FXqwDqDZGF1sCADmr2Zoc0hZsIvnE449gRFnGctxDf09Bzc/FWnHXAdaHVIetY6lrE0/g==
+
+it-first@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/it-first/-/it-first-2.0.1.tgz#75d66b254c385ae3a1906def060a69006a437cef"
+ integrity sha512-noC1oEQcWZZMUwq7VWxHNLML43dM+5bviZpfmkxkXlvBe60z7AFRqpZSga9uQBo792jKv9otnn1IjA4zwgNARw==
+
+it-first@^3.0.1:
+ version "3.0.6"
+ resolved "https://registry.yarnpkg.com/it-first/-/it-first-3.0.6.tgz#f532f0f36fe9bf0c291e0162b9d3375d59fe8f05"
+ integrity sha512-ExIewyK9kXKNAplg2GMeWfgjUcfC1FnUXz/RPfAvIXby+w7U4b3//5Lic0NV03gXT8O/isj5Nmp6KiY0d45pIQ==
+
+it-foreach@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/it-foreach/-/it-foreach-1.0.1.tgz#a4dab99c111457d1480bef6c4f9382076d9a6b81"
+ integrity sha512-eaVFhKxU+uwPs7+DKYxjuL6pj6c50/MBlAH+XPMgPWRRVIChVoyEIsdUQkkC0Ad6oTUmJbKRTnJxEY6o2aIs7A==
+
+it-glob@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/it-glob/-/it-glob-1.0.2.tgz#bab9b04d6aaac42884502f3a0bfee84c7a29e15e"
+ integrity sha512-Ch2Dzhw4URfB9L/0ZHyY+uqOnKvBNeS/SMcRiPmJfpHiM0TsUZn+GkpcZxAoF3dJVdPm/PuIk3A4wlV7SUo23Q==
+ dependencies:
+ "@types/minimatch" "^3.0.4"
+ minimatch "^3.0.4"
+
+it-handshake@^4.1.2, it-handshake@^4.1.3:
+ version "4.1.3"
+ resolved "https://registry.yarnpkg.com/it-handshake/-/it-handshake-4.1.3.tgz#4e6650f8eff5cb3686c6861958645289fb3dc32a"
+ integrity sha512-V6Lt9A9usox9iduOX+edU1Vo94E6v9Lt9dOvg3ubFaw1qf5NCxXLi93Ao4fyCHWDYd8Y+DUhadwNtWVyn7qqLg==
+ dependencies:
+ it-pushable "^3.1.0"
+ it-reader "^6.0.1"
+ it-stream-types "^2.0.1"
+ p-defer "^4.0.0"
+ uint8arraylist "^2.0.0"
+
+it-last@^1.0.4:
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/it-last/-/it-last-1.0.6.tgz#4106232e5905ec11e16de15a0e9f7037eaecfc45"
+ integrity sha512-aFGeibeiX/lM4bX3JY0OkVCFkAw8+n9lkukkLNivbJRvNz8lI3YXv5xcqhFUV2lDJiraEK3OXRDbGuevnnR67Q==
+
+it-length-prefixed@^8.0.2, it-length-prefixed@^8.0.4:
+ version "8.0.4"
+ resolved "https://registry.yarnpkg.com/it-length-prefixed/-/it-length-prefixed-8.0.4.tgz#80bd356d93d77a8989a71200f8ca0860db040404"
+ integrity sha512-5OJ1lxH+IaqJB7lxe8IAIwt9UfSfsmjKJoAI/RO9djYoBDt1Jfy9PeVHUmOfqhqyu/4kJvWBFAJUaG1HhLQ12A==
+ dependencies:
+ err-code "^3.0.1"
+ it-stream-types "^1.0.4"
+ uint8-varint "^1.0.1"
+ uint8arraylist "^2.0.0"
+ uint8arrays "^4.0.2"
+
+it-length-prefixed@^9.0.0:
+ version "9.0.4"
+ resolved "https://registry.yarnpkg.com/it-length-prefixed/-/it-length-prefixed-9.0.4.tgz#8096c3270420fe8abaa920c7b4d5e5895144008e"
+ integrity sha512-lz28fykbG0jq7s5XtvlzGxO5BeSOw6ikymkRllxjL21V5VKLcvB4pHr9wPvEnsAJ2et1xpOk3BRTMq9XrhgKsg==
+ dependencies:
+ err-code "^3.0.1"
+ it-reader "^6.0.1"
+ it-stream-types "^2.0.1"
+ uint8-varint "^2.0.1"
+ uint8arraylist "^2.0.0"
+ uint8arrays "^5.0.1"
+
+it-map@^1.0.4:
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/it-map/-/it-map-1.0.6.tgz#6aa547e363eedcf8d4f69d8484b450bc13c9882c"
+ integrity sha512-XT4/RM6UHIFG9IobGlQPFQUrlEKkU4eBUFG3qhWhfAdh1JfF2x11ShCrKCdmZ0OiZppPfoLuzcfA4cey6q3UAQ==
+
+it-map@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/it-map/-/it-map-2.0.1.tgz#d5251fd6b222d6ee39293d406a3f8fce54fb9220"
+ integrity sha512-a2GcYDHiAh/eSU628xlvB56LA98luXZnniH2GlD0IdBzf15shEq9rBeb0Rg3o1SWtNILUAwqmQxEXcewGCdvmQ==
+
+it-merge@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/it-merge/-/it-merge-2.0.1.tgz#6137c63f0dbdcb3b8b74ec67549f2b3351c84da8"
+ integrity sha512-ItoBy3dPlNKnhjHR8e7nfabfZzH4Jy2OMPvayYH3XHy4YNqSVKmWTIxhz7KX4UMBsLChlIJZ+5j6csJgrYGQtw==
+ dependencies:
+ it-pushable "^3.1.0"
+
+it-merge@^3.0.0:
+ version "3.0.5"
+ resolved "https://registry.yarnpkg.com/it-merge/-/it-merge-3.0.5.tgz#2b0d1d07c825b9d20c4c2889aab8e07322fd803e"
+ integrity sha512-2l7+mPf85pyRF5pqi0dKcA54E5Jm/2FyY5GsOaN51Ta0ipC7YZ3szuAsH8wOoB6eKY4XsU4k2X+mzPmFBMayEA==
+ dependencies:
+ it-pushable "^3.2.3"
+
+it-pair@^2.0.2:
+ version "2.0.6"
+ resolved "https://registry.yarnpkg.com/it-pair/-/it-pair-2.0.6.tgz#072defa6b96f611af34e0b0c84573107ddb9f28f"
+ integrity sha512-5M0t5RAcYEQYNG5BV7d7cqbdwbCAp5yLdzvkxsZmkuZsLbTdZzah6MQySYfaAQjNDCq6PUnDt0hqBZ4NwMfW6g==
+ dependencies:
+ it-stream-types "^2.0.1"
+ p-defer "^4.0.0"
+
+it-pb-stream@^3.2.0:
+ version "3.2.1"
+ resolved "https://registry.yarnpkg.com/it-pb-stream/-/it-pb-stream-3.2.1.tgz#58ad0b1268894d6eb05c17110e22326a33884a46"
+ integrity sha512-vKE04Zv5MUcwxPNE9bIEfYK3rd/Klj5ORGD1D8Bn5f0mbCLGfouSrqZP1Jntg2osqQg4BN5dKKS2BbfwyGUI3Q==
+ dependencies:
+ err-code "^3.0.1"
+ it-length-prefixed "^9.0.0"
+ it-pushable "^3.1.2"
+ it-stream-types "^1.0.4"
+ protons-runtime "^5.0.0"
+ uint8-varint "^1.0.6"
+ uint8arraylist "^2.0.0"
+
+it-peekable@^1.0.2:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/it-peekable/-/it-peekable-1.0.3.tgz#8ebe933767d9c5aa0ae4ef8e9cb3a47389bced8c"
+ integrity sha512-5+8zemFS+wSfIkSZyf0Zh5kNN+iGyccN02914BY4w/Dj+uoFEoPSvj5vaWn8pNZJNSxzjW0zHRxC3LUb2KWJTQ==
+
+it-pipe@^2.0.3, it-pipe@^2.0.4, it-pipe@^2.0.5:
+ version "2.0.5"
+ resolved "https://registry.yarnpkg.com/it-pipe/-/it-pipe-2.0.5.tgz#9caf7993dcbbc3824bc6ef64ee8b94574f65afa7"
+ integrity sha512-y85nW1N6zoiTnkidr2EAyC+ZVzc7Mwt2p+xt2a2ooG1ThFakSpNw1Kxm+7F13Aivru96brJhjQVRQNU+w0yozw==
+ dependencies:
+ it-merge "^2.0.0"
+ it-pushable "^3.1.0"
+ it-stream-types "^1.0.3"
+
+it-pipe@^3.0.0, it-pipe@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/it-pipe/-/it-pipe-3.0.1.tgz#b25720df82f4c558a8532602b5fbc37bbe4e7ba5"
+ integrity sha512-sIoNrQl1qSRg2seYSBH/3QxWhJFn9PKYvOf/bHdtCBF0bnghey44VyASsWzn5dAx0DCDDABq1hZIuzKmtBZmKA==
+ dependencies:
+ it-merge "^3.0.0"
+ it-pushable "^3.1.2"
+ it-stream-types "^2.0.1"
+
+it-pushable@^3.0.0, it-pushable@^3.1.0, it-pushable@^3.1.2, it-pushable@^3.1.3, it-pushable@^3.2.0, it-pushable@^3.2.3:
+ version "3.2.3"
+ resolved "https://registry.yarnpkg.com/it-pushable/-/it-pushable-3.2.3.tgz#e2b80aed90cfbcd54b620c0a0785e546d4e5f334"
+ integrity sha512-gzYnXYK8Y5t5b/BnJUr7glfQLO4U5vyb05gPx/TyTw+4Bv1zM9gFk4YsOrnulWefMewlphCjKkakFvj1y99Tcg==
+ dependencies:
+ p-defer "^4.0.0"
+
+it-reader@^6.0.1:
+ version "6.0.4"
+ resolved "https://registry.yarnpkg.com/it-reader/-/it-reader-6.0.4.tgz#439cb88225dcd15116be0ffde9e846a928c3871a"
+ integrity sha512-XCWifEcNFFjjBHtor4Sfaj8rcpt+FkY0L6WdhD578SCDhV4VUm7fCkF3dv5a+fTcfQqvN9BsxBTvWbYO6iCjTg==
+ dependencies:
+ it-stream-types "^2.0.1"
+ uint8arraylist "^2.0.0"
+
+it-sort@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/it-sort/-/it-sort-2.0.1.tgz#37af025862f7adb30d7fc1f8520b3cd7ef219ef6"
+ integrity sha512-9f4jKOTHfxc/FJpg/wwuQ+j+88i+sfNGKsu2HukAKymm71/XDnBFtOAOzaimko3YIhmn/ERwnfEKrsYLykxw9A==
+ dependencies:
+ it-all "^2.0.0"
+
+it-stream-types@^1.0.2, it-stream-types@^1.0.3, it-stream-types@^1.0.4:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/it-stream-types/-/it-stream-types-1.0.5.tgz#9c72e6adefdea9dac69d0a28fbea783deebd508d"
+ integrity sha512-I88Ka1nHgfX62e5mi5LLL+oueqz7Ltg0bUdtsUKDe9SoUqbQPf2Mp5kxDTe9pNhHQGs4pvYPAINwuZ1HAt42TA==
+
+it-stream-types@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/it-stream-types/-/it-stream-types-2.0.1.tgz#69cb4d7e79e707b8257a8997e02751ccb6c3af32"
+ integrity sha512-6DmOs5r7ERDbvS4q8yLKENcj6Yecr7QQTqWApbZdfAUTEC947d+PEha7PCqhm//9oxaLYL7TWRekwhoXl2s6fg==
+
+it-take@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/it-take/-/it-take-2.0.1.tgz#f9e5ddf0b73a18ba00e62fb532d9d3cde3fe4ce6"
+ integrity sha512-DL7kpZNjuoeSTnB9dMAJ0Z3m2T29LRRAU+HIgkiQM+1jH3m8l9e/1xpWs8JHTlbKivbqSFrQMTc8KVcaQNmsaA==
+
+it-to-stream@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/it-to-stream/-/it-to-stream-1.0.0.tgz#6c47f91d5b5df28bda9334c52782ef8e97fe3a4a"
+ integrity sha512-pLULMZMAB/+vbdvbZtebC0nWBTbG581lk6w8P7DfIIIKUfa8FbY7Oi0FxZcFPbxvISs7A9E+cMpLDBc1XhpAOA==
+ dependencies:
+ buffer "^6.0.3"
+ fast-fifo "^1.0.0"
+ get-iterator "^1.0.2"
+ p-defer "^3.0.0"
+ p-fifo "^1.0.0"
+ readable-stream "^3.6.0"
+
+it-ws@^5.0.6:
+ version "5.0.6"
+ resolved "https://registry.yarnpkg.com/it-ws/-/it-ws-5.0.6.tgz#9b69ff2ef9d08fda18ef2db604acf972d0fedded"
+ integrity sha512-TEEJQaGtkxgP/nGVq8dq48nPT85Afu8kwwvtDFLj4rQLWRhZcb26RWdXLdn9qhXkWPiWbK5H7JWBW1Bebj/SuQ==
+ dependencies:
+ event-iterator "^2.0.0"
+ iso-url "^1.1.2"
+ it-stream-types "^1.0.2"
+ uint8arrays "^4.0.2"
+ ws "^8.4.0"
+
+iterall@^1.3.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/iterall/-/iterall-1.3.0.tgz#afcb08492e2915cbd8a0884eb93a8c94d0d72fea"
+ integrity sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg==
+
jackspeak@^3.1.2:
version "3.4.0"
resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-3.4.0.tgz#a75763ff36ad778ede6a156d8ee8b124de445b4a"
@@ -2293,12 +7011,24 @@ jake@^10.8.5:
filelist "^1.0.4"
minimatch "^3.1.2"
-js-tokens@^4.0.0:
+js-sha3@0.8.0:
+ version "0.8.0"
+ resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.8.0.tgz#b9b7a5da73afad7dedd0f8c463954cbde6818840"
+ integrity sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==
+
+"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
-js-yaml@4.1.0, js-yaml@^4.1.0:
+js-yaml@4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.0.0.tgz#f426bc0ff4b4051926cd588c71113183409a121f"
+ integrity sha512-pqon0s+4ScYUvX30wxQi3PogGFAlUyH0awepWvwkj4jD4v+ova3RiYw8bmA6x2rDrEaj8i/oWKoRxpVNW+Re8Q==
+ dependencies:
+ argparse "^2.0.1"
+
+js-yaml@4.1.0, js-yaml@^4.0.0, js-yaml@^4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602"
integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==
@@ -2318,6 +7048,27 @@ jsbn@1.1.0:
resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-1.1.0.tgz#b01307cb29b618a1ed26ec79e911f803c4da0040"
integrity sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==
+json-bigint@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/json-bigint/-/json-bigint-1.0.0.tgz#ae547823ac0cad8398667f8cd9ef4730f5b01ff1"
+ integrity sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==
+ dependencies:
+ bignumber.js "^9.0.0"
+
+json-buffer@3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13"
+ integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==
+
+json-diff@^0.5.4:
+ version "0.5.5"
+ resolved "https://registry.yarnpkg.com/json-diff/-/json-diff-0.5.5.tgz#24658ad200dbdd64ae8a56baf4d87b2b33d7196e"
+ integrity sha512-B2RSfPv8Y5iqm6/9aKC3cOhXPzjYupKDpGuqT5py9NRulL8J0UoB/zKXUo70xBsuxPcIFgtsGgEdXLrNp0GL7w==
+ dependencies:
+ cli-color "~0.1.6"
+ difflib "~0.2.1"
+ dreamopt "~0.6.0"
+
json-parse-better-errors@^1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9"
@@ -2333,6 +7084,16 @@ json-parse-even-better-errors@^3.0.0:
resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.2.tgz#b43d35e89c0f3be6b5fbbe9dc6c82467b30c28da"
integrity sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==
+json-schema-traverse@^0.4.1:
+ version "0.4.1"
+ resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
+ integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
+
+json-stable-stringify-without-jsonify@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651"
+ integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==
+
json-stringify-nice@^1.1.4:
version "1.1.4"
resolved "https://registry.yarnpkg.com/json-stringify-nice/-/json-stringify-nice-1.1.4.tgz#2c937962b80181d3f317dd39aa323e14f5a60a67"
@@ -2343,6 +7104,13 @@ json-stringify-safe@^5.0.1:
resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"
integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==
+json5@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593"
+ integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==
+ dependencies:
+ minimist "^1.2.0"
+
json5@^2.2.2:
version "2.2.3"
resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283"
@@ -2377,11 +7145,28 @@ just-diff@^6.0.0:
resolved "https://registry.yarnpkg.com/just-diff/-/just-diff-6.0.2.tgz#03b65908543ac0521caf6d8eb85035f7d27ea285"
integrity sha512-S59eriX5u3/QhMNq3v/gm8Kd0w8OS6Tz2FS1NG4blv+z0MuQcBRJyFWjdovM0Rad4/P4aUPFtnkNjMjyMlMSYA==
+keyv@^4.5.3:
+ version "4.5.4"
+ resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93"
+ integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==
+ dependencies:
+ json-buffer "3.0.1"
+
kind-of@^6.0.2, kind-of@^6.0.3:
version "6.0.3"
resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd"
integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==
+kuler@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/kuler/-/kuler-2.0.0.tgz#e2c570a3800388fb44407e851531c1d670b061b3"
+ integrity sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==
+
+left-pad@^1.3.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/left-pad/-/left-pad-1.3.0.tgz#5b8a3a7765dfe001261dde915589e782f8c94d1e"
+ integrity sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA==
+
lerna@^6.6.1:
version "6.6.2"
resolved "https://registry.yarnpkg.com/lerna/-/lerna-6.6.2.tgz#ad921f913aca4e7307123a598768b6f15ca5804f"
@@ -2464,6 +7249,117 @@ lerna@^6.6.1:
yargs "16.2.0"
yargs-parser "20.2.4"
+level-codec@^10.0.0:
+ version "10.0.0"
+ resolved "https://registry.yarnpkg.com/level-codec/-/level-codec-10.0.0.tgz#f9e892770532c6cdcc83529546730791b0c62c12"
+ integrity sha512-QW3VteVNAp6c/LuV6nDjg7XDXx9XHK4abmQarxZmlRSDyXYk20UdaJTSX6yzVvQ4i0JyWSB7jert0DsyD/kk6g==
+ dependencies:
+ buffer "^6.0.3"
+
+level-concat-iterator@^3.0.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/level-concat-iterator/-/level-concat-iterator-3.1.0.tgz#5235b1f744bc34847ed65a50548aa88d22e881cf"
+ integrity sha512-BWRCMHBxbIqPxJ8vHOvKUsaO0v1sLYZtjN3K2iZJsRBYtp+ONsY6Jfi6hy9K3+zolgQRryhIn2NRZjZnWJ9NmQ==
+ dependencies:
+ catering "^2.1.0"
+
+level-errors@^3.0.0, level-errors@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/level-errors/-/level-errors-3.0.1.tgz#4bed48a33108cd83b0e39fdf9bbd84e96fbbef9f"
+ integrity sha512-tqTL2DxzPDzpwl0iV5+rBCv65HWbHp6eutluHNcVIftKZlQN//b6GEnZDM2CvGZvzGYMwyPtYppYnydBQd2SMQ==
+
+level-iterator-stream@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/level-iterator-stream/-/level-iterator-stream-5.0.0.tgz#85b3438e1b4c54ce5aa8c0eb973cfb628117df9e"
+ integrity sha512-wnb1+o+CVFUDdiSMR/ZymE2prPs3cjVLlXuDeSq9Zb8o032XrabGEXcTCsBxprAtseO3qvFeGzh6406z9sOTRA==
+ dependencies:
+ inherits "^2.0.4"
+ readable-stream "^3.4.0"
+
+level-js@^6.1.0:
+ version "6.1.0"
+ resolved "https://registry.yarnpkg.com/level-js/-/level-js-6.1.0.tgz#982ee9e583fca801aa75689c041995d0e7aab4ef"
+ integrity sha512-i7mPtkZm68aewfv0FnIUWvFUFfoyzIvVKnUmuQGrelEkP72vSPTaA1SGneWWoCV5KZJG4wlzbJLp1WxVNGuc6A==
+ dependencies:
+ abstract-leveldown "^7.2.0"
+ buffer "^6.0.3"
+ inherits "^2.0.3"
+ ltgt "^2.1.2"
+ run-parallel-limit "^1.1.0"
+
+level-packager@^6.0.1:
+ version "6.0.1"
+ resolved "https://registry.yarnpkg.com/level-packager/-/level-packager-6.0.1.tgz#46b521e63df7f9728543f6792c0a8fe967e679a0"
+ integrity sha512-8Ezr0XM6hmAwqX9uu8IGzGNkWz/9doyPA8Oo9/D7qcMI6meJC+XhIbNYHukJhIn8OGdlzQs/JPcL9B8lA2F6EQ==
+ dependencies:
+ encoding-down "^7.1.0"
+ levelup "^5.1.1"
+
+level-supports@^2.0.1:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/level-supports/-/level-supports-2.1.0.tgz#9af908d853597ecd592293b2fad124375be79c5f"
+ integrity sha512-E486g1NCjW5cF78KGPrMDRBYzPuueMZ6VBXHT6gC7A8UYWGiM14fGgp+s/L1oFfDWSPV/+SFkYCmZ0SiESkRKA==
+
+level-supports@^4.0.0:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/level-supports/-/level-supports-4.0.1.tgz#431546f9d81f10ff0fea0e74533a0e875c08c66a"
+ integrity sha512-PbXpve8rKeNcZ9C1mUicC9auIYFyGpkV9/i6g76tLgANwWhtG2v7I4xNBUlkn3lE2/dZF3Pi0ygYGtLc4RXXdA==
+
+level-transcoder@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/level-transcoder/-/level-transcoder-1.0.1.tgz#f8cef5990c4f1283d4c86d949e73631b0bc8ba9c"
+ integrity sha512-t7bFwFtsQeD8cl8NIoQ2iwxA0CL/9IFw7/9gAjOonH0PWTTiRfY7Hq+Ejbsxh86tXobDQ6IOiddjNYIfOBs06w==
+ dependencies:
+ buffer "^6.0.3"
+ module-error "^1.0.1"
+
+level@^7.0.0:
+ version "7.0.1"
+ resolved "https://registry.yarnpkg.com/level/-/level-7.0.1.tgz#05121748d95a4ff7355860d56eb5d0aa36faef2a"
+ integrity sha512-w3E64+ALx2eZf8RV5JL4kIcE0BFAvQscRYd1yU4YVqZN9RGTQxXSvH202xvK15yZwFFxRXe60f13LJjcJ//I4Q==
+ dependencies:
+ level-js "^6.1.0"
+ level-packager "^6.0.1"
+ leveldown "^6.1.0"
+
+level@^8.0.0:
+ version "8.0.1"
+ resolved "https://registry.yarnpkg.com/level/-/level-8.0.1.tgz#737161db1bc317193aca4e7b6f436e7e1df64379"
+ integrity sha512-oPBGkheysuw7DmzFQYyFe8NAia5jFLAgEnkgWnK3OXAuJr8qFT+xBQIwokAZPME2bhPFzS8hlYcL16m8UZrtwQ==
+ dependencies:
+ abstract-level "^1.0.4"
+ browser-level "^1.0.1"
+ classic-level "^1.2.0"
+
+leveldown@^6.1.0:
+ version "6.1.1"
+ resolved "https://registry.yarnpkg.com/leveldown/-/leveldown-6.1.1.tgz#0f0e480fa88fd807abf94c33cb7e40966ea4b5ce"
+ integrity sha512-88c+E+Eizn4CkQOBHwqlCJaTNEjGpaEIikn1S+cINc5E9HEvJ77bqY4JY/HxT5u0caWqsc3P3DcFIKBI1vHt+A==
+ dependencies:
+ abstract-leveldown "^7.2.0"
+ napi-macros "~2.0.0"
+ node-gyp-build "^4.3.0"
+
+levelup@^5.1.1:
+ version "5.1.1"
+ resolved "https://registry.yarnpkg.com/levelup/-/levelup-5.1.1.tgz#9f99699f414ac084a3f8a28fc262a1f49cd7a52c"
+ integrity sha512-0mFCcHcEebOwsQuk00WJwjLI6oCjbBuEYdh/RaRqhjnyVlzqf41T1NnDtCedumZ56qyIh8euLFDqV1KfzTAVhg==
+ dependencies:
+ catering "^2.0.0"
+ deferred-leveldown "^7.0.0"
+ level-errors "^3.0.1"
+ level-iterator-stream "^5.0.0"
+ level-supports "^2.0.1"
+ queue-microtask "^1.2.3"
+
+levn@^0.4.1:
+ version "0.4.1"
+ resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade"
+ integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==
+ dependencies:
+ prelude-ls "^1.2.1"
+ type-check "~0.4.0"
+
libnpmaccess@^6.0.3:
version "6.0.4"
resolved "https://registry.yarnpkg.com/libnpmaccess/-/libnpmaccess-6.0.4.tgz#2dd158bd8a071817e2207d3b201d37cf1ad6ae6b"
@@ -2540,16 +7436,38 @@ locate-path@^6.0.0:
dependencies:
p-locate "^5.0.0"
+lodash.debounce@^4.0.8:
+ version "4.0.8"
+ resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af"
+ integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==
+
lodash.ismatch@^4.4.0:
version "4.4.0"
resolved "https://registry.yarnpkg.com/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz#756cb5150ca3ba6f11085a78849645f188f85f37"
integrity sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g==
-lodash@^4.17.15, lodash@^4.17.21:
+lodash.merge@^4.6.2:
+ version "4.6.2"
+ resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a"
+ integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==
+
+lodash.sortby@^4.7.0:
+ version "4.7.0"
+ resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438"
+ integrity sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==
+
+lodash@^4.17.15, lodash@^4.17.21, lodash@^4.17.4:
version "4.17.21"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
+log-symbols@4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.0.0.tgz#69b3cc46d20f448eccdb75ea1fa733d9e821c920"
+ integrity sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA==
+ dependencies:
+ chalk "^4.0.0"
+
log-symbols@^4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503"
@@ -2558,7 +7476,61 @@ log-symbols@^4.1.0:
chalk "^4.1.0"
is-unicode-supported "^0.1.0"
-lru-cache@^10.2.0:
+logform@^2.3.2, logform@^2.4.0:
+ version "2.6.0"
+ resolved "https://registry.yarnpkg.com/logform/-/logform-2.6.0.tgz#8c82a983f05d6eaeb2d75e3decae7a768b2bf9b5"
+ integrity sha512-1ulHeNPp6k/LD8H91o7VYFBng5i1BDE7HoKxVbZiGFidS1Rj65qcywLxX+pVfAPoQJEjRdvKcusKwOupHCVOVQ==
+ dependencies:
+ "@colors/colors" "1.6.0"
+ "@types/triple-beam" "^1.3.2"
+ fecha "^4.2.0"
+ ms "^2.1.1"
+ safe-stable-stringify "^2.3.1"
+ triple-beam "^1.3.0"
+
+loglevel@^1.6.8:
+ version "1.9.1"
+ resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.9.1.tgz#d63976ac9bcd03c7c873116d41c2a85bafff1be7"
+ integrity sha512-hP3I3kCrDIMuRwAwHltphhDM1r8i55H33GgqjXbrisuJhF4kRhW1dNuxsRklp4bXl8DSdLaNLuiL4A/LWRfxvg==
+
+long@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28"
+ integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==
+
+long@^5.0.0:
+ version "5.2.3"
+ resolved "https://registry.yarnpkg.com/long/-/long-5.2.3.tgz#a3ba97f3877cf1d778eccbcb048525ebb77499e1"
+ integrity sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==
+
+longbits@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/longbits/-/longbits-1.1.0.tgz#d6a7b2411dead1cf4b79ee4586816e65c7356ab9"
+ integrity sha512-22U2exkkYy7sr7nuQJYx2NEZ2kEMsC69+BxM5h8auLvkVIJa+LwAB5mFIExnuW2dFuYXFOWsFMKXjaWiq/htYQ==
+ dependencies:
+ byte-access "^1.0.1"
+ uint8arraylist "^2.0.0"
+
+loose-envify@^1.4.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf"
+ integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==
+ dependencies:
+ js-tokens "^3.0.0 || ^4.0.0"
+
+loupe@^2.3.6:
+ version "2.3.7"
+ resolved "https://registry.yarnpkg.com/loupe/-/loupe-2.3.7.tgz#6e69b7d4db7d3ab436328013d37d1c8c3540c697"
+ integrity sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==
+ dependencies:
+ get-func-name "^2.0.1"
+
+"lru-cache@7.10.1 - 7.13.1":
+ version "7.13.1"
+ resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-7.13.1.tgz#267a81fbd0881327c46a81c5922606a2cfe336c4"
+ integrity sha512-CHqbAq7NFlW3RSnoWXLJBxCWaZVBrfa9UEHId2M3AW8iEBurbqduNexEUCGc3SHc6iCYXNJCDi903LajSVAEPQ==
+
+lru-cache@^10.0.0, lru-cache@^10.0.1, lru-cache@^10.2.0:
version "10.2.2"
resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.2.2.tgz#48206bc114c1252940c41b25b41af5b545aca878"
integrity sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==
@@ -2575,6 +7547,16 @@ lru-cache@^7.4.4, lru-cache@^7.5.1, lru-cache@^7.7.1:
resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-7.18.3.tgz#f793896e0fd0e954a59dfdd82f0773808df6aa89"
integrity sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==
+ltgt@^2.1.2:
+ version "2.2.1"
+ resolved "https://registry.yarnpkg.com/ltgt/-/ltgt-2.2.1.tgz#f35ca91c493f7b73da0e07495304f17b31f87ee5"
+ integrity sha512-AI2r85+4MquTw9ZYqabu4nMwy9Oftlfa/e/52t9IjtfG+mGBbTNdAoZ3RQKLHR6r0wQnwZnPIEh/Ya6XTWAKNA==
+
+luxon@^3.2.1:
+ version "3.4.4"
+ resolved "https://registry.yarnpkg.com/luxon/-/luxon-3.4.4.tgz#cf20dc27dc532ba41a169c43fdcc0063601577af"
+ integrity sha512-zobTr7akeGHnv7eBOXcRgMeCP6+uyYsczwmeRCauvpvaAltgNyTbLH/+VaEAPUeWBT+1GuNmz4wC/6jtQzbbVA==
+
make-dir@3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f"
@@ -2590,6 +7572,11 @@ make-dir@^2.1.0:
pify "^4.0.1"
semver "^5.6.0"
+make-error@^1.1.1:
+ version "1.3.6"
+ resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2"
+ integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==
+
make-fetch-happen@^10.0.3, make-fetch-happen@^10.0.6:
version "10.2.1"
resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz#f5e3835c5e9817b617f2770870d9492d28678164"
@@ -2643,6 +7630,11 @@ map-obj@^4.0.0:
resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-4.3.0.tgz#9304f906e93faae70880da102a9f1df0ea8bb05a"
integrity sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==
+media-typer@0.3.0:
+ version "0.3.0"
+ resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748"
+ integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==
+
meow@^8.0.0:
version "8.1.2"
resolved "https://registry.yarnpkg.com/meow/-/meow-8.1.2.tgz#bcbe45bda0ee1729d350c03cffc8395a36c4e897"
@@ -2660,6 +7652,18 @@ meow@^8.0.0:
type-fest "^0.18.0"
yargs-parser "^20.2.3"
+merge-descriptors@1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61"
+ integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==
+
+merge-options@^3.0.4:
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/merge-options/-/merge-options-3.0.4.tgz#84709c2aa2a4b24c1981f66c179fe5565cc6dbb7"
+ integrity sha512-2Sug1+knBjkaMsMgf1ctR1Ujx+Ayku4EdJN4Z+C2+JzoeF7A3OZ9KM2GY0CpQS51NR61LTurMJrRKPhSs3ZRTQ==
+ dependencies:
+ is-plain-obj "^2.1.0"
+
merge-stream@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60"
@@ -2670,7 +7674,12 @@ merge2@^1.3.0, merge2@^1.4.1:
resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae"
integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
-micromatch@^4.0.4:
+methods@~1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee"
+ integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==
+
+micromatch@^4.0.2, micromatch@^4.0.4:
version "4.0.7"
resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.7.tgz#33e8190d9fe474a9895525f5618eee136d46c2e5"
integrity sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==
@@ -2683,23 +7692,64 @@ mime-db@1.52.0:
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70"
integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==
-mime-types@^2.1.12:
+mime-types@^2.1.12, mime-types@~2.1.24, mime-types@~2.1.34:
version "2.1.35"
resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a"
integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==
dependencies:
mime-db "1.52.0"
+mime@1.6.0:
+ version "1.6.0"
+ resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1"
+ integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==
+
mimic-fn@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b"
integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==
+mimic-fn@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc"
+ integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==
+
min-indent@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869"
integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==
+mini-queue@0.0.14:
+ version "0.0.14"
+ resolved "https://registry.yarnpkg.com/mini-queue/-/mini-queue-0.0.14.tgz#83d2f3f908e3cac5390bd986d1e6fbbfa0d95b93"
+ integrity sha512-DNh9Wn8U1jrmn1yVfpviwClyER/Y4ltgGbG+LF/KIdKJ8BEo2Q9jDDPG7tEhz6F/DTZ/ohv5D7AAXFVSFyP05Q==
+ dependencies:
+ debug "^3.1.0"
+
+minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7"
+ integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==
+
+minimalistic-crypto-utils@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a"
+ integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==
+
+"minimatch@2 || 3", minimatch@^3.0.3, minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2:
+ version "3.1.2"
+ resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b"
+ integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
+ dependencies:
+ brace-expansion "^1.1.7"
+
+minimatch@3.0.4:
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
+ integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==
+ dependencies:
+ brace-expansion "^1.1.7"
+
minimatch@3.0.5:
version "3.0.5"
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.5.tgz#4da8f1290ee0f0f8e83d60ca69f8f134068604a3"
@@ -2707,13 +7757,6 @@ minimatch@3.0.5:
dependencies:
brace-expansion "^1.1.7"
-minimatch@^3.0.4, minimatch@^3.1.1, minimatch@^3.1.2:
- version "3.1.2"
- resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b"
- integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
- dependencies:
- brace-expansion "^1.1.7"
-
minimatch@^5.0.1:
version "5.1.6"
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96"
@@ -2858,21 +7901,130 @@ mkdirp@^1.0.3, mkdirp@^1.0.4:
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e"
integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==
+mkdirp@~0.5.1:
+ version "0.5.6"
+ resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6"
+ integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==
+ dependencies:
+ minimist "^1.2.6"
+
+mocha@^8.4.0:
+ version "8.4.0"
+ resolved "https://registry.yarnpkg.com/mocha/-/mocha-8.4.0.tgz#677be88bf15980a3cae03a73e10a0fc3997f0cff"
+ integrity sha512-hJaO0mwDXmZS4ghXsvPVriOhsxQ7ofcpQdm8dE+jISUOKopitvnXFQmpRR7jd2K6VBG6E26gU3IAbXXGIbu4sQ==
+ dependencies:
+ "@ungap/promise-all-settled" "1.1.2"
+ ansi-colors "4.1.1"
+ browser-stdout "1.3.1"
+ chokidar "3.5.1"
+ debug "4.3.1"
+ diff "5.0.0"
+ escape-string-regexp "4.0.0"
+ find-up "5.0.0"
+ glob "7.1.6"
+ growl "1.10.5"
+ he "1.2.0"
+ js-yaml "4.0.0"
+ log-symbols "4.0.0"
+ minimatch "3.0.4"
+ ms "2.1.3"
+ nanoid "3.1.20"
+ serialize-javascript "5.0.1"
+ strip-json-comments "3.1.1"
+ supports-color "8.1.1"
+ which "2.0.2"
+ wide-align "1.1.3"
+ workerpool "6.1.0"
+ yargs "16.2.0"
+ yargs-parser "20.2.4"
+ yargs-unparser "2.0.0"
+
modify-values@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/modify-values/-/modify-values-1.0.1.tgz#b3939fa605546474e3e3e3c63d64bd43b4ee6022"
integrity sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==
+module-error@^1.0.1, module-error@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/module-error/-/module-error-1.0.2.tgz#8d1a48897ca883f47a45816d4fb3e3c6ba404d86"
+ integrity sha512-0yuvsqSCv8LbaOKhnsQ/T5JhyFlCYLPXK3U2sgV10zoKQwzs/MyfuQUOZQ1V/6OCOJsK/TRgNVrPuPDqtdMFtA==
+
+mokka@^1.4.2:
+ version "1.4.2"
+ resolved "https://registry.yarnpkg.com/mokka/-/mokka-1.4.2.tgz#b0d7117e216672ff2deda6ef2212bcfa0edb8114"
+ integrity sha512-Vgki/Fr9fqUMZzChGC1yH64AQg+qkMdZZe3xKrTwYBVGEuq8j2GdnDg8voYXwWl+MLfNzWBnNiejq2xZ8PmojA==
+ dependencies:
+ bn.js "^5.2.0"
+ elliptic "^6.5.4"
+
+moment@^2.19.3:
+ version "2.30.1"
+ resolved "https://registry.yarnpkg.com/moment/-/moment-2.30.1.tgz#f8c91c07b7a786e30c59926df530b4eac96974ae"
+ integrity sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==
+
+mortice@^3.0.0:
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/mortice/-/mortice-3.0.4.tgz#34aadef768161e9dc49a7f73637b7858bcb7c6fa"
+ integrity sha512-MUHRCAztSl4v/dAmK8vbYi5u1n9NZtQu4H3FsqS7qgMFQIAFw9lTpHiErd9kJpapqmvEdD1L3dUmiikifAvLsQ==
+ dependencies:
+ observable-webworkers "^2.0.1"
+ p-queue "^8.0.1"
+ p-timeout "^6.0.0"
+
+ms@2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
+ integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==
+
ms@2.1.2:
version "2.1.2"
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
-ms@^2.0.0:
+ms@2.1.3, ms@^2.0.0, ms@^2.1.1:
version "2.1.3"
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
+multiaddr-to-uri@^8.0.0:
+ version "8.0.0"
+ resolved "https://registry.yarnpkg.com/multiaddr-to-uri/-/multiaddr-to-uri-8.0.0.tgz#65efe4b1f9de5f6b681aa42ff36a7c8db7625e58"
+ integrity sha512-dq4p/vsOOUdVEd1J1gl+R2GFrXJQH8yjLtz4hodqdVbieg39LvBOdMQRdQnfbg5LSM/q1BYNVf5CBbwZFFqBgA==
+ dependencies:
+ multiaddr "^10.0.0"
+
+multiaddr@^10.0.0:
+ version "10.0.1"
+ resolved "https://registry.yarnpkg.com/multiaddr/-/multiaddr-10.0.1.tgz#0d15848871370860a4d266bb44d93b3dac5d90ef"
+ integrity sha512-G5upNcGzEGuTHkzxezPrrD6CaIHR9uo+7MwqhNVcXTs33IInon4y7nMiGxl2CY5hG7chvYQUQhz5V52/Qe3cbg==
+ dependencies:
+ dns-over-http-resolver "^1.2.3"
+ err-code "^3.0.1"
+ is-ip "^3.1.0"
+ multiformats "^9.4.5"
+ uint8arrays "^3.0.0"
+ varint "^6.0.0"
+
+multiformats@^11.0.0, multiformats@^11.0.2:
+ version "11.0.2"
+ resolved "https://registry.yarnpkg.com/multiformats/-/multiformats-11.0.2.tgz#b14735efc42cd8581e73895e66bebb9752151b60"
+ integrity sha512-b5mYMkOkARIuVZCpvijFj9a6m5wMVLC7cf/jIPd5D/ARDOfLC5+IFkbgDXQgcU2goIsTD/O9NY4DI/Mt4OGvlg==
+
+multiformats@^12.0.1:
+ version "12.1.3"
+ resolved "https://registry.yarnpkg.com/multiformats/-/multiformats-12.1.3.tgz#cbf7a9861e11e74f8228b21376088cb43ba8754e"
+ integrity sha512-eajQ/ZH7qXZQR2AgtfpmSMizQzmyYVmCql7pdhldPuYQi4atACekbJaQplk6dWyIi10jCaFnd6pqvcEFXjbaJw==
+
+multiformats@^13.0.0, multiformats@^13.1.0:
+ version "13.1.1"
+ resolved "https://registry.yarnpkg.com/multiformats/-/multiformats-13.1.1.tgz#b22ce4df26330d2cf0d69f5bdcbc9a787095a6e5"
+ integrity sha512-JiptvwMmlxlzIlLLwhCi/srf/nk409UL0eUBr0kioRJq15hqqKyg68iftrBvhCRjR6Rw4fkNnSc4ZJXJDuta/Q==
+
+multiformats@^9.0.2, multiformats@^9.4.2, multiformats@^9.4.5, multiformats@^9.4.8, multiformats@^9.5.1, multiformats@^9.5.4:
+ version "9.9.0"
+ resolved "https://registry.yarnpkg.com/multiformats/-/multiformats-9.9.0.tgz#c68354e7d21037a8f1f8833c8ccd68618e8f1d37"
+ integrity sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg==
+
multimatch@5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-5.0.0.tgz#932b800963cea7a31a033328fa1e0c3a1874dbe6"
@@ -2889,7 +8041,80 @@ mute-stream@0.0.8, mute-stream@~0.0.4:
resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d"
integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==
-negotiator@^0.6.3:
+mv@~2:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/mv/-/mv-2.1.1.tgz#ae6ce0d6f6d5e0a4f7d893798d03c1ea9559b6a2"
+ integrity sha512-at/ZndSy3xEGJ8i0ygALh8ru9qy7gWW1cmkaqBN29JmMlIvM//MEO9y1sk/avxuwnPcfhkejkLsuPxH81BrkSg==
+ dependencies:
+ mkdirp "~0.5.1"
+ ncp "~2.0.0"
+ rimraf "~2.4.0"
+
+mz@^2.4.0:
+ version "2.7.0"
+ resolved "https://registry.yarnpkg.com/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32"
+ integrity sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==
+ dependencies:
+ any-promise "^1.0.0"
+ object-assign "^4.0.1"
+ thenify-all "^1.0.0"
+
+nan@^2.14.0:
+ version "2.19.0"
+ resolved "https://registry.yarnpkg.com/nan/-/nan-2.19.0.tgz#bb58122ad55a6c5bc973303908d5b16cfdd5a8c0"
+ integrity sha512-nO1xXxfh/RWNxfd/XPfbIfFk5vgLsAxUR9y5O0cHMJu/AW9U95JLXqthYHjEp+8gQ5p96K9jUp8nbVOxCdRbtw==
+
+nanoid@3.1.20:
+ version "3.1.20"
+ resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.20.tgz#badc263c6b1dcf14b71efaa85f6ab4c1d6cfc788"
+ integrity sha512-a1cQNyczgKbLX9jwbS/+d7W8fX/RfgYR7lVWwWOGIPNgK2m0MWvrGF6/m4kk6U3QcFMnZf3RIhL0v2Jgh/0Uxw==
+
+nanoid@^3.0.2, nanoid@^3.1.20, nanoid@^3.1.23:
+ version "3.3.7"
+ resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8"
+ integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==
+
+nanoid@^4.0.0:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-4.0.2.tgz#140b3c5003959adbebf521c170f282c5e7f9fb9e"
+ integrity sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw==
+
+napi-macros@^2.2.2:
+ version "2.2.2"
+ resolved "https://registry.yarnpkg.com/napi-macros/-/napi-macros-2.2.2.tgz#817fef20c3e0e40a963fbf7b37d1600bd0201044"
+ integrity sha512-hmEVtAGYzVQpCKdbQea4skABsdXW4RUh5t5mJ2zzqowJS2OyXZTU1KhDVFhx+NlWZ4ap9mqR9TcDO3LTTttd+g==
+
+napi-macros@~2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/napi-macros/-/napi-macros-2.0.0.tgz#2b6bae421e7b96eb687aa6c77a7858640670001b"
+ integrity sha512-A0xLykHtARfueITVDernsAWdtIMbOJgKgcluwENp3AlsKN/PloyO10HtmoqnFAQAcxPkgZN7wdfPfEd0zNGxbg==
+
+native-fetch@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/native-fetch/-/native-fetch-3.0.0.tgz#06ccdd70e79e171c365c75117959cf4fe14a09bb"
+ integrity sha512-G3Z7vx0IFb/FQ4JxvtqGABsOTIqRWvgQz6e+erkB+JJD6LrszQtMozEHI4EkmgZQvnGHrpLVzUWk7t4sJCIkVw==
+
+native-fetch@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/native-fetch/-/native-fetch-4.0.2.tgz#75c8a44c5f3bb021713e5e24f2846750883e49af"
+ integrity sha512-4QcVlKFtv2EYVS5MBgsGX5+NWKtbDbIECdUXDBGDMAZXq3Jkv9zf+y8iS7Ub8fEdga3GpYeazp9gauNqXHJOCg==
+
+natural-compare-lite@^1.4.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz#17b09581988979fddafe0201e931ba933c96cbb4"
+ integrity sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==
+
+natural-compare@^1.4.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
+ integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==
+
+ncp@~2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/ncp/-/ncp-2.0.0.tgz#195a21d6c46e361d2fb1281ba38b91e9df7bdbb3"
+ integrity sha512-zIdGUrPRFTUELUvr3Gmc7KZ2Sw/h1PiVM0Af/oHB6zgnV1ikqSfRk+TOufi79aHYCW3NiOXmr1BP5nWbzojLaA==
+
+negotiator@0.6.3, negotiator@^0.6.3:
version "0.6.3"
resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd"
integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==
@@ -2899,6 +8124,16 @@ neo-async@^2.6.2:
resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f"
integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==
+netmask@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/netmask/-/netmask-2.0.2.tgz#8b01a07644065d536383835823bc52004ebac5e7"
+ integrity sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==
+
+node-abort-controller@^3.0.1:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/node-abort-controller/-/node-abort-controller-3.1.1.tgz#a94377e964a9a37ac3976d848cb5c765833b8548"
+ integrity sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==
+
node-addon-api@^3.2.1:
version "3.2.1"
resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-3.2.1.tgz#81325e0a2117789c0128dab65e7e38f07ceba161"
@@ -2911,13 +8146,18 @@ node-fetch@2.6.7:
dependencies:
whatwg-url "^5.0.0"
-node-fetch@^2.6.7:
+node-fetch@^2.6.12, node-fetch@^2.6.7, node-fetch@^2.6.8:
version "2.7.0"
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d"
integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==
dependencies:
whatwg-url "^5.0.0"
+node-forge@^1.1.0:
+ version "1.3.1"
+ resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.3.1.tgz#be8da2af243b2417d5f646a770663a92b7e9ded3"
+ integrity sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==
+
node-gyp-build@^4.3.0:
version "4.8.1"
resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.8.1.tgz#976d3ad905e71b76086f4f0b0d3637fe79b6cda5"
@@ -2940,6 +8180,14 @@ node-gyp@^9.0.0:
tar "^6.1.2"
which "^2.0.2"
+noms@0.0.0:
+ version "0.0.0"
+ resolved "https://registry.yarnpkg.com/noms/-/noms-0.0.0.tgz#da8ebd9f3af9d6760919b27d9cdc8092a7332859"
+ integrity sha512-lNDU9VJaOPxUmXcLb+HQFeUgQQPtMI24Gt6hgfuMHRJgMRHMF/qZ4HJD3GDru4sSw9IQl2jPjAYnQrdIeLbwow==
+ dependencies:
+ inherits "^2.0.1"
+ readable-stream "~1.0.31"
+
nopt@^6.0.0:
version "6.0.0"
resolved "https://registry.yarnpkg.com/nopt/-/nopt-6.0.0.tgz#245801d8ebf409c6df22ab9d95b65e1309cdb16d"
@@ -2994,6 +8242,21 @@ normalize-package-data@^5.0.0:
semver "^7.3.5"
validate-npm-package-license "^3.0.4"
+normalize-package-data@^6.0.0:
+ version "6.0.1"
+ resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-6.0.1.tgz#fa69e9452210f0fabf4d79ee08d0c2870c51ed88"
+ integrity sha512-6rvCfeRW+OEZagAB4lMLSNuTNYZWLVtKccK79VSTf//yTY5VOCgcpH80O+bZK8Neps7pUnd5G+QlMg1yV/2iZQ==
+ dependencies:
+ hosted-git-info "^7.0.0"
+ is-core-module "^2.8.1"
+ semver "^7.3.5"
+ validate-npm-package-license "^3.0.4"
+
+normalize-path@^3.0.0, normalize-path@~3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
+ integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
+
npm-bundled@^1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.1.2.tgz#944c78789bd739035b70baa2ca5cc32b8d860bc1"
@@ -3132,6 +8395,13 @@ npm-run-path@^4.0.1:
dependencies:
path-key "^3.0.0"
+npm-run-path@^5.1.0:
+ version "5.3.0"
+ resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.3.0.tgz#e23353d0ebb9317f174e93417e4a4d82d0249e9f"
+ integrity sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==
+ dependencies:
+ path-key "^4.0.0"
+
npmlog@6.0.2, npmlog@^6.0.0, npmlog@^6.0.2:
version "6.0.2"
resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-6.0.2.tgz#c8166017a42f2dea92d6453168dd865186a70830"
@@ -3203,6 +8473,87 @@ nx@15.9.7, "nx@>=15.5.2 < 16":
"@nrwl/nx-win32-arm64-msvc" "15.9.7"
"@nrwl/nx-win32-x64-msvc" "15.9.7"
+object-assign@^4, object-assign@^4.0.1, object-assign@^4.1.1:
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
+ integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==
+
+object-inspect@^1.13.1:
+ version "1.13.1"
+ resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.1.tgz#b96c6109324ccfef6b12216a956ca4dc2ff94bc2"
+ integrity sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==
+
+object-is@^1.1.5:
+ version "1.1.6"
+ resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.6.tgz#1a6a53aed2dd8f7e6775ff870bea58545956ab07"
+ integrity sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==
+ dependencies:
+ call-bind "^1.0.7"
+ define-properties "^1.2.1"
+
+object-keys@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e"
+ integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==
+
+object.assign@^4.1.4, object.assign@^4.1.5:
+ version "4.1.5"
+ resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.5.tgz#3a833f9ab7fdb80fc9e8d2300c803d216d8fdbb0"
+ integrity sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==
+ dependencies:
+ call-bind "^1.0.5"
+ define-properties "^1.2.1"
+ has-symbols "^1.0.3"
+ object-keys "^1.1.1"
+
+object.fromentries@^2.0.7:
+ version "2.0.8"
+ resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.8.tgz#f7195d8a9b97bd95cbc1999ea939ecd1a2b00c65"
+ integrity sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==
+ dependencies:
+ call-bind "^1.0.7"
+ define-properties "^1.2.1"
+ es-abstract "^1.23.2"
+ es-object-atoms "^1.0.0"
+
+object.groupby@^1.0.1:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/object.groupby/-/object.groupby-1.0.3.tgz#9b125c36238129f6f7b61954a1e7176148d5002e"
+ integrity sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==
+ dependencies:
+ call-bind "^1.0.7"
+ define-properties "^1.2.1"
+ es-abstract "^1.23.2"
+
+object.values@^1.1.7:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.2.0.tgz#65405a9d92cee68ac2d303002e0b8470a4d9ab1b"
+ integrity sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==
+ dependencies:
+ call-bind "^1.0.7"
+ define-properties "^1.2.1"
+ es-object-atoms "^1.0.0"
+
+observable-webworkers@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/observable-webworkers/-/observable-webworkers-2.0.1.tgz#7d9086ebc567bd318b46ba0506b10cedf3813878"
+ integrity sha512-JI1vB0u3pZjoQKOK1ROWzp0ygxSi7Yb0iR+7UNsw4/Zn4cQ0P3R7XL38zac/Dy2tEA7Lg88/wIJTjF8vYXZ0uw==
+
+omit-deep@^0.3.0:
+ version "0.3.0"
+ resolved "https://registry.yarnpkg.com/omit-deep/-/omit-deep-0.3.0.tgz#21c8af3499bcadd29651a232cbcacbc52445ebec"
+ integrity sha512-Lbl/Ma59sss2b15DpnWnGmECBRL8cRl/PjPbPMVW+Y8zIQzRrwMaI65Oy6HvxyhYeILVKBJb2LWeG81bj5zbMg==
+ dependencies:
+ is-plain-object "^2.0.1"
+ unset-value "^0.1.1"
+
+on-finished@2.4.1:
+ version "2.4.1"
+ resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f"
+ integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==
+ dependencies:
+ ee-first "1.1.1"
+
once@^1.3.0, once@^1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
@@ -3210,6 +8561,13 @@ once@^1.3.0, once@^1.4.0:
dependencies:
wrappy "1"
+one-time@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/one-time/-/one-time-1.0.0.tgz#e06bc174aed214ed58edede573b433bbf827cb45"
+ integrity sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==
+ dependencies:
+ fn.name "1.x.x"
+
onetime@^5.1.0, onetime@^5.1.2:
version "5.1.2"
resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e"
@@ -3217,6 +8575,13 @@ onetime@^5.1.0, onetime@^5.1.2:
dependencies:
mimic-fn "^2.1.0"
+onetime@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/onetime/-/onetime-6.0.0.tgz#7c24c18ed1fd2e9bca4bd26806a33613c77d34b4"
+ integrity sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==
+ dependencies:
+ mimic-fn "^4.0.0"
+
open@^8.4.0:
version "8.4.2"
resolved "https://registry.yarnpkg.com/open/-/open-8.4.2.tgz#5b5ffe2a8f793dcd2aad73e550cb87b59cb084f9"
@@ -3226,6 +8591,28 @@ open@^8.4.0:
is-docker "^2.1.1"
is-wsl "^2.2.0"
+optimism@^0.18.0:
+ version "0.18.0"
+ resolved "https://registry.yarnpkg.com/optimism/-/optimism-0.18.0.tgz#e7bb38b24715f3fdad8a9a7fc18e999144bbfa63"
+ integrity sha512-tGn8+REwLRNFnb9WmcY5IfpOqeX2kpaYJ1s6Ae3mn12AeydLkR3j+jSCmVQFoXqU8D41PAJ1RG1rCRNWmNZVmQ==
+ dependencies:
+ "@wry/caches" "^1.0.0"
+ "@wry/context" "^0.7.0"
+ "@wry/trie" "^0.4.3"
+ tslib "^2.3.0"
+
+optionator@^0.9.3:
+ version "0.9.4"
+ resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.4.tgz#7ea1c1a5d91d764fb282139c88fe11e182a3a734"
+ integrity sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==
+ dependencies:
+ deep-is "^0.1.3"
+ fast-levenshtein "^2.0.6"
+ levn "^0.4.1"
+ prelude-ls "^1.2.1"
+ type-check "^0.4.0"
+ word-wrap "^1.2.5"
+
ora@^5.4.1:
version "5.4.1"
resolved "https://registry.yarnpkg.com/ora/-/ora-5.4.1.tgz#1b2678426af4ac4a509008e5e4ac9e9959db9e18"
@@ -3246,6 +8633,31 @@ os-tmpdir@~1.0.2:
resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==
+p-defer@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-3.0.0.tgz#d1dceb4ee9b2b604b1d94ffec83760175d4e6f83"
+ integrity sha512-ugZxsxmtTln604yeYd29EGrNhazN2lywetzpKhfmQjW/VJmhpDmWbiX+h0zL8V91R0UXkhb3KtPmyq9PZw3aYw==
+
+p-defer@^4.0.0:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-4.0.1.tgz#d12c6d41420785ed0d162dbd86b71ba490f7f99e"
+ integrity sha512-Mr5KC5efvAK5VUptYEIopP1bakB85k2IWXaRC0rsh1uwn1L6M0LVml8OIQ4Gudg4oyZakf7FmeRLkMMtZW1i5A==
+
+p-event@^5.0.1:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/p-event/-/p-event-5.0.1.tgz#614624ec02ae7f4f13d09a721c90586184af5b0c"
+ integrity sha512-dd589iCQ7m1L0bmC5NLlVYfy3TbBEsMUfWx9PyAgPeIcFZ/E2yaTZ4Rz4MiBmmJShviiftHVXOqfnfzJ6kyMrQ==
+ dependencies:
+ p-timeout "^5.0.2"
+
+p-fifo@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/p-fifo/-/p-fifo-1.0.0.tgz#e29d5cf17c239ba87f51dde98c1d26a9cfe20a63"
+ integrity sha512-IjoCxXW48tqdtDFz6fqo5q1UfFVjjVZe8TC1QRflvNUJtNfCUhxOUw6MOVZhDPjqhSzc26xKdugsO17gmzd5+A==
+ dependencies:
+ fast-fifo "^1.0.0"
+ p-defer "^3.0.0"
+
p-finally@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae"
@@ -3272,6 +8684,13 @@ p-limit@^3.0.2:
dependencies:
yocto-queue "^0.1.0"
+p-limit@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-4.0.0.tgz#914af6544ed32bfa54670b061cafcbd04984b644"
+ integrity sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==
+ dependencies:
+ yocto-queue "^1.0.0"
+
p-locate@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43"
@@ -3318,11 +8737,40 @@ p-queue@6.6.2:
eventemitter3 "^4.0.4"
p-timeout "^3.2.0"
+p-queue@^7.2.0:
+ version "7.4.1"
+ resolved "https://registry.yarnpkg.com/p-queue/-/p-queue-7.4.1.tgz#7f86f853048beca8272abdbb7cec1ed2afc0f265"
+ integrity sha512-vRpMXmIkYF2/1hLBKisKeVYJZ8S2tZ0zEAmIJgdVKP2nq0nh4qCdf8bgw+ZgKrkh71AOCaqzwbJJk1WtdcF3VA==
+ dependencies:
+ eventemitter3 "^5.0.1"
+ p-timeout "^5.0.2"
+
+p-queue@^8.0.1:
+ version "8.0.1"
+ resolved "https://registry.yarnpkg.com/p-queue/-/p-queue-8.0.1.tgz#718b7f83836922ef213ddec263ff4223ce70bef8"
+ integrity sha512-NXzu9aQJTAzbBqOt2hwsR63ea7yvxJc0PwN/zobNAudYfb1B7R08SzB4TsLeSbUCuG467NhnoT0oO6w1qRO+BA==
+ dependencies:
+ eventemitter3 "^5.0.1"
+ p-timeout "^6.1.2"
+
p-reduce@2.1.0, p-reduce@^2.0.0, p-reduce@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/p-reduce/-/p-reduce-2.1.0.tgz#09408da49507c6c274faa31f28df334bc712b64a"
integrity sha512-2USApvnsutq8uoxZBGbbWM0JIYLiEMJ9RlaN7fAzVNb9OZN0SHjjTTfIcb667XynS5Y1VhwDJVDa72TnPzAYWw==
+p-reflect@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/p-reflect/-/p-reflect-3.1.0.tgz#bba22747439b5fc50a7f626e8e909dc9b888218d"
+ integrity sha512-3sG3UlpisPSaX+o7u2q01hIQmrpkvdl5GSO1ZwL7pfc5kHB2bPF0eFNCfYTrW1/LTUdgmPwBAvmT0Zr8eSmaAQ==
+
+p-settle@^5.0.0:
+ version "5.1.1"
+ resolved "https://registry.yarnpkg.com/p-settle/-/p-settle-5.1.1.tgz#9300778f896d5c01e4361b8ab45d003548574c3e"
+ integrity sha512-VLgSBpA71aMncPVP5Es4nhQYxcxN0lit8hGlobJke8YTAhtwdRDu/s4KePP5gCT5LFfZty3qosBFYMgD5rFpCg==
+ dependencies:
+ p-limit "^4.0.0"
+ p-reflect "^3.1.0"
+
p-timeout@^3.2.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-3.2.0.tgz#c7e17abc971d2a7962ef83626b35d635acf23dfe"
@@ -3330,6 +8778,16 @@ p-timeout@^3.2.0:
dependencies:
p-finally "^1.0.0"
+p-timeout@^5.0.2:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-5.1.0.tgz#b3c691cf4415138ce2d9cfe071dba11f0fee085b"
+ integrity sha512-auFDyzzzGZZZdHz3BtET9VEz0SE/uMEAx7uWfGPucfzEwwe/xH0iVeZibQmANYE/hp9T2+UUZT5m+BKyrDp3Ew==
+
+p-timeout@^6.0.0, p-timeout@^6.1.1, p-timeout@^6.1.2:
+ version "6.1.2"
+ resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-6.1.2.tgz#22b8d8a78abf5e103030211c5fc6dee1166a6aa5"
+ integrity sha512-UbD77BuZ9Bc9aABo74gfXhNvzC9Tx7SxtHSh1fxvx3jTLLYvmVhiQZZrJzqqU0jKbN32kb5VOKiLEQI/3bIjgQ==
+
p-try@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3"
@@ -3402,6 +8860,11 @@ parent-module@^1.0.0:
dependencies:
callsites "^3.0.0"
+parent-require@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/parent-require/-/parent-require-1.0.0.tgz#746a167638083a860b0eef6732cb27ed46c32977"
+ integrity sha512-2MXDNZC4aXdkkap+rBBMv0lUsfJqvX5/2FiYYnfCnorZt3Pk06/IOR5KeaoghgS2w07MLWgjbsnyaq6PdHn2LQ==
+
parse-conflict-json@^3.0.0:
version "3.0.1"
resolved "https://registry.yarnpkg.com/parse-conflict-json/-/parse-conflict-json-3.0.1.tgz#67dc55312781e62aa2ddb91452c7606d1969960c"
@@ -3411,6 +8874,11 @@ parse-conflict-json@^3.0.0:
just-diff "^6.0.0"
just-diff-apply "^5.2.0"
+parse-duration@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/parse-duration/-/parse-duration-1.1.0.tgz#5192084c5d8f2a3fd676d04a451dbd2e05a1819c"
+ integrity sha512-z6t9dvSJYaPoQq7quMzdEagSFtpGu+utzHqqxmpVWNNZRIXnvqyCvn9XsTdh7c/w0Bqmdz3RB3YnRaKtpRtEXQ==
+
parse-json@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0"
@@ -3429,6 +8897,15 @@ parse-json@^5.0.0:
json-parse-even-better-errors "^2.3.0"
lines-and-columns "^1.1.6"
+parse-json@^8.0.0:
+ version "8.1.0"
+ resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-8.1.0.tgz#91cdc7728004e955af9cb734de5684733b24a717"
+ integrity sha512-rum1bPifK5SSar35Z6EKZuYPJx85pkNaFrxBK3mwdfSJ1/WKbYrjoW/zTPSjRRamfmVX1ACBIdFAO0VRErW/EA==
+ dependencies:
+ "@babel/code-frame" "^7.22.13"
+ index-to-position "^0.1.2"
+ type-fest "^4.7.1"
+
parse-path@^7.0.0:
version "7.0.0"
resolved "https://registry.yarnpkg.com/parse-path/-/parse-path-7.0.0.tgz#605a2d58d0a749c8594405d8cc3a2bf76d16099b"
@@ -3443,6 +8920,33 @@ parse-url@^8.1.0:
dependencies:
parse-path "^7.0.0"
+parse5-htmlparser2-tree-adapter@^6.0.0:
+ version "6.0.1"
+ resolved "https://registry.yarnpkg.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz#2cdf9ad823321140370d4dbf5d3e92c7c8ddc6e6"
+ integrity sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==
+ dependencies:
+ parse5 "^6.0.1"
+
+parse5@^5.1.1:
+ version "5.1.1"
+ resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.1.tgz#f68e4e5ba1852ac2cadc00f4555fff6c2abb6178"
+ integrity sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==
+
+parse5@^6.0.1:
+ version "6.0.1"
+ resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b"
+ integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==
+
+parseurl@^1.3.3, parseurl@~1.3.3:
+ version "1.3.3"
+ resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4"
+ integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==
+
+path-browserify@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-1.0.1.tgz#d98454a9c3753d5790860f16f68867b9e46be1fd"
+ integrity sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==
+
path-exists@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"
@@ -3463,6 +8967,11 @@ path-key@^3.0.0, path-key@^3.1.0:
resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
+path-key@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/path-key/-/path-key-4.0.0.tgz#295588dc3aee64154f877adb9d780b81c554bf18"
+ integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==
+
path-parse@^1.0.7:
version "1.0.7"
resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
@@ -3476,6 +8985,11 @@ path-scurry@^1.11.1, path-scurry@^1.6.1:
lru-cache "^10.2.0"
minipass "^5.0.0 || ^6.0.2 || ^7.0.0"
+path-to-regexp@0.1.7:
+ version "0.1.7"
+ resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c"
+ integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==
+
path-type@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f"
@@ -3488,12 +9002,85 @@ path-type@^4.0.0:
resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b"
integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==
+pathval@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.1.tgz#8534e77a77ce7ac5a2512ea21e0fdb8fcf6c3d8d"
+ integrity sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==
+
+pg-boss@^6.1.0:
+ version "6.2.2"
+ resolved "https://registry.yarnpkg.com/pg-boss/-/pg-boss-6.2.2.tgz#b33b6c99e53bcec201cc36bbaac69ebb6c09adf1"
+ integrity sha512-WA4cHCmN4RTOS7uCrGQ8n+Cc88tsgZXrp4U/iGUehgl2XcawSo2L5rm5bFvqX8YFcmrdsl8sh7ZDeKPWAAvOIQ==
+ dependencies:
+ cron-parser "^4.0.0"
+ delay "^5.0.0"
+ lodash.debounce "^4.0.8"
+ p-map "^4.0.0"
+ pg "^8.5.1"
+ uuid "^8.3.2"
+
+pg-cloudflare@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/pg-cloudflare/-/pg-cloudflare-1.1.1.tgz#e6d5833015b170e23ae819e8c5d7eaedb472ca98"
+ integrity sha512-xWPagP/4B6BgFO+EKz3JONXv3YDgvkbVrGw2mTo3D6tVDQRh1e7cqVGvyR3BE+eQgAvx1XhW/iEASj4/jCWl3Q==
+
+pg-connection-string@^2.6.4:
+ version "2.6.4"
+ resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-2.6.4.tgz#f543862adfa49fa4e14bc8a8892d2a84d754246d"
+ integrity sha512-v+Z7W/0EO707aNMaAEfiGnGL9sxxumwLl2fJvCQtMn9Fxsg+lPpPkdcyBSv/KFgpGdYkMfn+EI1Or2EHjpgLCA==
+
+pg-int8@1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/pg-int8/-/pg-int8-1.0.1.tgz#943bd463bf5b71b4170115f80f8efc9a0c0eb78c"
+ integrity sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==
+
+pg-pool@^3.6.2:
+ version "3.6.2"
+ resolved "https://registry.yarnpkg.com/pg-pool/-/pg-pool-3.6.2.tgz#3a592370b8ae3f02a7c8130d245bc02fa2c5f3f2"
+ integrity sha512-Htjbg8BlwXqSBQ9V8Vjtc+vzf/6fVUuak/3/XXKA9oxZprwW3IMDQTGHP+KDmVL7rtd+R1QjbnCFPuTHm3G4hg==
+
+pg-protocol@^1.6.1:
+ version "1.6.1"
+ resolved "https://registry.yarnpkg.com/pg-protocol/-/pg-protocol-1.6.1.tgz#21333e6d83b01faaebfe7a33a7ad6bfd9ed38cb3"
+ integrity sha512-jPIlvgoD63hrEuihvIg+tJhoGjUsLPn6poJY9N5CnlPd91c2T18T/9zBtLxZSb1EhYxBRoZJtzScCaWlYLtktg==
+
+pg-types@^2.1.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/pg-types/-/pg-types-2.2.0.tgz#2d0250d636454f7cfa3b6ae0382fdfa8063254a3"
+ integrity sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==
+ dependencies:
+ pg-int8 "1.0.1"
+ postgres-array "~2.0.0"
+ postgres-bytea "~1.0.0"
+ postgres-date "~1.0.4"
+ postgres-interval "^1.1.0"
+
+pg@^8.5.1:
+ version "8.12.0"
+ resolved "https://registry.yarnpkg.com/pg/-/pg-8.12.0.tgz#9341724db571022490b657908f65aee8db91df79"
+ integrity sha512-A+LHUSnwnxrnL/tZ+OLfqR1SxLN3c/pgDztZ47Rpbsd4jUytsTtwQo/TLPRzPJMp/1pbhYVhH9cuSZLAajNfjQ==
+ dependencies:
+ pg-connection-string "^2.6.4"
+ pg-pool "^3.6.2"
+ pg-protocol "^1.6.1"
+ pg-types "^2.1.0"
+ pgpass "1.x"
+ optionalDependencies:
+ pg-cloudflare "^1.1.1"
+
+pgpass@1.x:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/pgpass/-/pgpass-1.0.5.tgz#9b873e4a564bb10fa7a7dbd55312728d422a223d"
+ integrity sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==
+ dependencies:
+ split2 "^4.1.0"
+
picocolors@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.1.tgz#a8ad579b571952f0e5d25892de5445bcfe25aaa1"
integrity sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==
-picomatch@^2.3.1:
+picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1:
version "2.3.1"
resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
@@ -3525,6 +9112,21 @@ pkg-dir@^4.2.0:
dependencies:
find-up "^4.0.0"
+platform@^1.3.3:
+ version "1.3.6"
+ resolved "https://registry.yarnpkg.com/platform/-/platform-1.3.6.tgz#48b4ce983164b209c2d45a107adb31f473a6e7a7"
+ integrity sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg==
+
+pluralize@^8.0.0:
+ version "8.0.0"
+ resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-8.0.0.tgz#1a6fa16a38d12a1901e0320fa017051c539ce3b1"
+ integrity sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==
+
+possible-typed-array-names@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz#89bb63c6fada2c3e90adc4a647beeeb39cc7bf8f"
+ integrity sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==
+
postcss-selector-parser@^6.0.10:
version "6.1.0"
resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.1.0.tgz#49694cb4e7c649299fea510a29fa6577104bcf53"
@@ -3533,6 +9135,33 @@ postcss-selector-parser@^6.0.10:
cssesc "^3.0.0"
util-deprecate "^1.0.2"
+postgres-array@~2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/postgres-array/-/postgres-array-2.0.0.tgz#48f8fce054fbc69671999329b8834b772652d82e"
+ integrity sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==
+
+postgres-bytea@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/postgres-bytea/-/postgres-bytea-1.0.0.tgz#027b533c0aa890e26d172d47cf9ccecc521acd35"
+ integrity sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==
+
+postgres-date@~1.0.4:
+ version "1.0.7"
+ resolved "https://registry.yarnpkg.com/postgres-date/-/postgres-date-1.0.7.tgz#51bc086006005e5061c591cee727f2531bf641a8"
+ integrity sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==
+
+postgres-interval@^1.1.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/postgres-interval/-/postgres-interval-1.2.0.tgz#b460c82cb1587507788819a06aa0fffdb3544695"
+ integrity sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==
+ dependencies:
+ xtend "^4.0.0"
+
+prelude-ls@^1.2.1:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396"
+ integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==
+
pretty-format@29.4.3:
version "29.4.3"
resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.4.3.tgz#25500ada21a53c9e8423205cf0337056b201244c"
@@ -3542,6 +9171,16 @@ pretty-format@29.4.3:
ansi-styles "^5.0.0"
react-is "^18.0.0"
+private-ip@^3.0.0:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/private-ip/-/private-ip-3.0.2.tgz#1daf6052ee5cee53238616a377d6be180e9490ef"
+ integrity sha512-2pkOVPGYD/4QyAg95c6E/4bLYXPthT5Xw4ocXYzIIsMBhskOMn6IwkWXmg6ZiA6K58+O6VD/n02r1hDhk7vDPw==
+ dependencies:
+ "@chainsafe/is-ip" "^2.0.1"
+ ip-regex "^5.0.0"
+ ipaddr.js "^2.1.0"
+ netmask "^2.0.2"
+
proc-log@^2.0.0, proc-log@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/proc-log/-/proc-log-2.0.1.tgz#8f3f69a1f608de27878f91f5c688b225391cb685"
@@ -3557,6 +9196,18 @@ process-nextick-args@~2.0.0:
resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==
+progress-events@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/progress-events/-/progress-events-1.0.0.tgz#34f5e8fdb5dae3561837b22672d1e02277bb2109"
+ integrity sha512-zIB6QDrSbPfRg+33FZalluFIowkbV5Xh1xSuetjG+rlC5he6u2dc6VQJ0TbMdlN3R1RHdpOqxEFMKTnQ+itUwA==
+
+prom-client@^14.0.1:
+ version "14.2.0"
+ resolved "https://registry.yarnpkg.com/prom-client/-/prom-client-14.2.0.tgz#ca94504e64156f6506574c25fb1c34df7812cf11"
+ integrity sha512-sF308EhTenb/pDRPakm+WgiN+VdM/T1RaHj1x+MvAuT8UiQP8JmOEbxVqtkbfR4LrvOg5n7ic01kRBDGXjYikA==
+ dependencies:
+ tdigest "^0.1.1"
+
promise-all-reject-late@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/promise-all-reject-late/-/promise-all-reject-late-1.0.1.tgz#f8ebf13483e5ca91ad809ccc2fcf25f26f8643c2"
@@ -3580,6 +9231,11 @@ promise-retry@^2.0.1:
err-code "^2.0.2"
retry "^0.12.0"
+promjs@^0.4.2:
+ version "0.4.2"
+ resolved "https://registry.yarnpkg.com/promjs/-/promjs-0.4.2.tgz#9c2b4a60e00c1a0ecb69a3c1c322d1cfb47a300d"
+ integrity sha512-qvHcTU9xwEieFOf2Qnf5JYPKkdJU2lRbJfJvJspw6XpnoH7VPmNfnJJnOLPfN8ODJMBLRt8wEPVjxyyn0Or6RQ==
+
promzard@^0.3.0:
version "0.3.0"
resolved "https://registry.yarnpkg.com/promzard/-/promzard-0.3.0.tgz#26a5d6ee8c7dee4cb12208305acfb93ba382a9ee"
@@ -3587,27 +9243,110 @@ promzard@^0.3.0:
dependencies:
read "1"
+prop-types@^15.7.2:
+ version "15.8.1"
+ resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5"
+ integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==
+ dependencies:
+ loose-envify "^1.4.0"
+ object-assign "^4.1.1"
+ react-is "^16.13.1"
+
proto-list@~1.2.1:
version "1.2.4"
resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849"
integrity sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==
+protobufjs@^6.10.2, protobufjs@^6.11.2:
+ version "6.11.4"
+ resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-6.11.4.tgz#29a412c38bf70d89e537b6d02d904a6f448173aa"
+ integrity sha512-5kQWPaJHi1WoCpjTGszzQ32PG2F4+wRY6BmAT4Vfw56Q2FZ4YZzK20xUYQH4YkfehY1e6QSICrJquM6xXZNcrw==
+ dependencies:
+ "@protobufjs/aspromise" "^1.1.2"
+ "@protobufjs/base64" "^1.1.2"
+ "@protobufjs/codegen" "^2.0.4"
+ "@protobufjs/eventemitter" "^1.1.0"
+ "@protobufjs/fetch" "^1.1.0"
+ "@protobufjs/float" "^1.0.2"
+ "@protobufjs/inquire" "^1.1.0"
+ "@protobufjs/path" "^1.1.2"
+ "@protobufjs/pool" "^1.1.0"
+ "@protobufjs/utf8" "^1.1.0"
+ "@types/long" "^4.0.1"
+ "@types/node" ">=13.7.0"
+ long "^4.0.0"
+
+protobufjs@^7.0.0:
+ version "7.3.0"
+ resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-7.3.0.tgz#a32ec0422c039798c41a0700306a6e305b9cb32c"
+ integrity sha512-YWD03n3shzV9ImZRX3ccbjqLxj7NokGN0V/ESiBV5xWqrommYHYiihuIyavq03pWSGqlyvYUFmfoMKd+1rPA/g==
+ dependencies:
+ "@protobufjs/aspromise" "^1.1.2"
+ "@protobufjs/base64" "^1.1.2"
+ "@protobufjs/codegen" "^2.0.4"
+ "@protobufjs/eventemitter" "^1.1.0"
+ "@protobufjs/fetch" "^1.1.0"
+ "@protobufjs/float" "^1.0.2"
+ "@protobufjs/inquire" "^1.1.0"
+ "@protobufjs/path" "^1.1.2"
+ "@protobufjs/pool" "^1.1.0"
+ "@protobufjs/utf8" "^1.1.0"
+ "@types/node" ">=13.7.0"
+ long "^5.0.0"
+
protocols@^2.0.0, protocols@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/protocols/-/protocols-2.0.1.tgz#8f155da3fc0f32644e83c5782c8e8212ccf70a86"
integrity sha512-/XJ368cyBJ7fzLMwLKv1e4vLxOju2MNAIokcr7meSaNcVbWz/CPcW22cP04mwxOErdA5mwjA8Q6w/cdAQxVn7Q==
+protons-runtime@^4.0.1:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/protons-runtime/-/protons-runtime-4.0.2.tgz#a5670e703a5389dccb3700b583532e3316efcb94"
+ integrity sha512-R4N6qKHgz8T2Gl45CTcZfITzXPQY9ym8lbLb4VyFMS4ag1KusCRZwkQXTBRhxQ+93ck3K3aDhK1wIk98AMtNyw==
+ dependencies:
+ protobufjs "^7.0.0"
+ uint8arraylist "^2.4.3"
+
+protons-runtime@^5.0.0:
+ version "5.4.0"
+ resolved "https://registry.yarnpkg.com/protons-runtime/-/protons-runtime-5.4.0.tgz#2751ce22cae6c35eebba89acfd9d783419ae3726"
+ integrity sha512-XfA++W/WlQOSyjUyuF5lgYBfXZUEMP01Oh1C2dSwZAlF2e/ZrMRPfWonXj6BGM+o8Xciv7w0tsRMKYwYEuQvaw==
+ dependencies:
+ uint8-varint "^2.0.2"
+ uint8arraylist "^2.4.3"
+ uint8arrays "^5.0.1"
+
+proxy-addr@~2.0.7:
+ version "2.0.7"
+ resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025"
+ integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==
+ dependencies:
+ forwarded "0.2.0"
+ ipaddr.js "1.9.1"
+
proxy-from-env@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2"
integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==
+punycode@^2.1.0:
+ version "2.3.1"
+ resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5"
+ integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==
+
q@^1.5.1:
version "1.5.1"
resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7"
integrity sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==
-queue-microtask@^1.2.2:
+qs@6.11.0:
+ version "6.11.0"
+ resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a"
+ integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==
+ dependencies:
+ side-channel "^1.0.4"
+
+queue-microtask@^1.2.2, queue-microtask@^1.2.3:
version "1.2.3"
resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243"
integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==
@@ -3617,11 +9356,55 @@ quick-lru@^4.0.1:
resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-4.0.1.tgz#5b8878f113a58217848c6482026c73e1ba57727f"
integrity sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==
+race-signal@^1.0.0:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/race-signal/-/race-signal-1.0.2.tgz#e42379fba0cec4ee8dab7c9bbbd4aa6e0d14c25f"
+ integrity sha512-o3xNv0iTcIDQCXFlF6fPAMEBRjFxssgGoRqLbg06m+AdzEXXLUmoNOoUHTVz2NoBI8hHwKFKoC6IqyNtWr2bww==
+
+randombytes@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a"
+ integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==
+ dependencies:
+ safe-buffer "^5.1.0"
+
+range-parser@~1.2.1:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031"
+ integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==
+
+rate-limiter-flexible@^2.3.11, rate-limiter-flexible@^2.3.9:
+ version "2.4.2"
+ resolved "https://registry.yarnpkg.com/rate-limiter-flexible/-/rate-limiter-flexible-2.4.2.tgz#2a219cc473f015142fd8fb599371223d730decbd"
+ integrity sha512-rMATGGOdO1suFyf/mI5LYhts71g1sbdhmd6YvdiXO2gJnd42Tt6QS4JUKJKSWVVkMtBacm6l40FR7Trjo6Iruw==
+
+raw-body@2.5.2:
+ version "2.5.2"
+ resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.2.tgz#99febd83b90e08975087e8f1f9419a149366b68a"
+ integrity sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==
+ dependencies:
+ bytes "3.1.2"
+ http-errors "2.0.0"
+ iconv-lite "0.4.24"
+ unpipe "1.0.0"
+
+react-is@^16.13.1, react-is@^16.7.0:
+ version "16.13.1"
+ resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4"
+ integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==
+
react-is@^18.0.0:
version "18.3.1"
resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.3.1.tgz#e83557dc12eae63a99e003a46388b1dcbb44db7e"
integrity sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==
+react-native-fetch-api@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/react-native-fetch-api/-/react-native-fetch-api-3.0.0.tgz#81e1bb6562c292521bc4eca52fe1097f4c1ebab5"
+ integrity sha512-g2rtqPjdroaboDKTsJCTlcmtw54E25OjyaunUP0anOZn4Fuo2IKs8BVfe02zVggA/UysbmfSnRJIqtNkAgggNA==
+ dependencies:
+ p-defer "^3.0.0"
+
read-cmd-shim@3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/read-cmd-shim/-/read-cmd-shim-3.0.0.tgz#62b8c638225c61e6cc607f8f4b779f3b8238f155"
@@ -3714,6 +9497,17 @@ read-pkg@^5.2.0:
parse-json "^5.0.0"
type-fest "^0.6.0"
+read-pkg@^9.0.1:
+ version "9.0.1"
+ resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-9.0.1.tgz#b1b81fb15104f5dbb121b6bbdee9bbc9739f569b"
+ integrity sha512-9viLL4/n1BJUCT1NXVTdS1jtm80yDEgR5T4yCelII49Mbj0v1rZdKqj7zCiYdbB0CuCgdrvHcNogAKTFPBocFA==
+ dependencies:
+ "@types/normalize-package-data" "^2.4.3"
+ normalize-package-data "^6.0.0"
+ parse-json "^8.0.0"
+ type-fest "^4.6.0"
+ unicorn-magic "^0.1.0"
+
read@1, read@^1.0.7:
version "1.0.7"
resolved "https://registry.yarnpkg.com/read/-/read-1.0.7.tgz#b3da19bd052431a97671d44a42634adf710b40c4"
@@ -3730,6 +9524,16 @@ readable-stream@3, readable-stream@^3.0.0, readable-stream@^3.0.2, readable-stre
string_decoder "^1.1.1"
util-deprecate "^1.0.1"
+readable-stream@~1.0.31:
+ version "1.0.34"
+ resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c"
+ integrity sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==
+ dependencies:
+ core-util-is "~1.0.0"
+ inherits "~2.0.1"
+ isarray "0.0.1"
+ string_decoder "~0.10.x"
+
readable-stream@~2.3.6:
version "2.3.8"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b"
@@ -3743,6 +9547,20 @@ readable-stream@~2.3.6:
string_decoder "~1.1.1"
util-deprecate "~1.0.1"
+readdirp@~3.5.0:
+ version "3.5.0"
+ resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.5.0.tgz#9ba74c019b15d365278d2e91bb8c48d7b4d42c9e"
+ integrity sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==
+ dependencies:
+ picomatch "^2.2.1"
+
+receptacle@^1.3.2:
+ version "1.3.2"
+ resolved "https://registry.yarnpkg.com/receptacle/-/receptacle-1.3.2.tgz#a7994c7efafc7a01d0e2041839dab6c4951360d2"
+ integrity sha512-HrsFvqZZheusncQRiEE7GatOAETrARKV/lnfYicIm8lbvp/JQOdADOfhjBd2DajvoszEyxSM6RlAAIZgEoeu/A==
+ dependencies:
+ ms "^2.1.1"
+
redent@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/redent/-/redent-3.0.0.tgz#e557b7998316bb53c9f1f56fa626352c6963059f"
@@ -3751,11 +9569,41 @@ redent@^3.0.0:
indent-string "^4.0.0"
strip-indent "^3.0.0"
+reflect-metadata@^0.1.13:
+ version "0.1.14"
+ resolved "https://registry.yarnpkg.com/reflect-metadata/-/reflect-metadata-0.1.14.tgz#24cf721fe60677146bb77eeb0e1f9dece3d65859"
+ integrity sha512-ZhYeb6nRaXCfhnndflDK8qI6ZQ/YcWZCISRAWICW9XYqMUwjZM9Z0DveWX/ABN01oxSHwVxKQmxeYZSsm0jh5A==
+
+regexp.prototype.flags@^1.5.2:
+ version "1.5.2"
+ resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz#138f644a3350f981a858c44f6bb1a61ff59be334"
+ integrity sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==
+ dependencies:
+ call-bind "^1.0.6"
+ define-properties "^1.2.1"
+ es-errors "^1.3.0"
+ set-function-name "^2.0.1"
+
+regexpp@^3.0.0:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2"
+ integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==
+
+rehackt@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/rehackt/-/rehackt-0.1.0.tgz#a7c5e289c87345f70da8728a7eb878e5d03c696b"
+ integrity sha512-7kRDOuLHB87D/JESKxQoRwv4DzbIdwkAGQ7p6QKGdVlY1IZheUnVhlk/4UZlNUVxdAXpyxikE3URsG067ybVzw==
+
require-directory@^2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==
+requires-port@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff"
+ integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==
+
resolve-cwd@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d"
@@ -3773,7 +9621,7 @@ resolve-from@^4.0.0:
resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6"
integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==
-resolve@^1.10.0:
+resolve@^1.10.0, resolve@^1.10.1, resolve@^1.22.4:
version "1.22.8"
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d"
integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==
@@ -3782,6 +9630,11 @@ resolve@^1.10.0:
path-parse "^1.0.7"
supports-preserve-symlinks-flag "^1.0.0"
+response-iterator@^0.2.6:
+ version "0.2.6"
+ resolved "https://registry.yarnpkg.com/response-iterator/-/response-iterator-0.2.6.tgz#249005fb14d2e4eeb478a3f735a28fd8b4c9f3da"
+ integrity sha512-pVzEEzrsg23Sh053rmDUvLSkGXluZio0qu8VT6ukrYuvtjVfCbDZH9d6PGXb8HZfzdNZt8feXv/jvUzlhRgLnw==
+
restore-cursor@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e"
@@ -3790,6 +9643,16 @@ restore-cursor@^3.1.0:
onetime "^5.1.0"
signal-exit "^3.0.2"
+retimer@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/retimer/-/retimer-3.0.0.tgz#98b751b1feaf1af13eb0228f8ea68b8f9da530df"
+ integrity sha512-WKE0j11Pa0ZJI5YIk0nflGI7SQsfl2ljihVy7ogh7DeQSeYAUi0ubZ/yEueGtDfUPk6GH5LRw1hBdLq4IwUBWA==
+
+retry@0.13.1:
+ version "0.13.1"
+ resolved "https://registry.yarnpkg.com/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658"
+ integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==
+
retry@^0.12.0:
version "0.12.0"
resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b"
@@ -3814,11 +9677,25 @@ rimraf@^4.4.1:
dependencies:
glob "^9.2.0"
+rimraf@~2.4.0:
+ version "2.4.5"
+ resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.4.5.tgz#ee710ce5d93a8fdb856fb5ea8ff0e2d75934b2da"
+ integrity sha512-J5xnxTyqaiw06JjMftq7L9ouA448dw/E7dKghkP9WpKNuwmARNNg+Gk8/u5ryb9N/Yo2+z3MCwuqFK/+qPOPfQ==
+ dependencies:
+ glob "^6.0.1"
+
run-async@^2.4.0:
version "2.4.1"
resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455"
integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==
+run-parallel-limit@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/run-parallel-limit/-/run-parallel-limit-1.1.0.tgz#be80e936f5768623a38a963262d6bef8ff11e7ba"
+ integrity sha512-jJA7irRNM91jaKc3Hcl1npHsFLOXOoTkPCUL1JEa1R82O2miplXXRaGdjW/KM/98YQWDhJLiSs793CnXfblJUw==
+ dependencies:
+ queue-microtask "^1.2.2"
+
run-parallel@^1.1.9:
version "1.2.0"
resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee"
@@ -3833,21 +9710,67 @@ rxjs@^7.5.5:
dependencies:
tslib "^2.1.0"
+safe-array-concat@^1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.1.2.tgz#81d77ee0c4e8b863635227c721278dd524c20edb"
+ integrity sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==
+ dependencies:
+ call-bind "^1.0.7"
+ get-intrinsic "^1.2.4"
+ has-symbols "^1.0.3"
+ isarray "^2.0.5"
+
+safe-buffer@5.2.1, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@~5.2.0:
+ version "5.2.1"
+ resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
+ integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
+
safe-buffer@~5.1.0, safe-buffer@~5.1.1:
version "5.1.2"
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
-safe-buffer@~5.2.0:
- version "5.2.1"
- resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
- integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
+safe-json-stringify@~1:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/safe-json-stringify/-/safe-json-stringify-1.2.0.tgz#356e44bc98f1f93ce45df14bcd7c01cda86e0afd"
+ integrity sha512-gH8eh2nZudPQO6TytOvbxnuhYBOvDBBLW52tz5q6X58lJcd/tkmqFR+5Z9adS8aJtURSXWThWy/xJtJwixErvg==
+
+safe-regex-test@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.3.tgz#a5b4c0f06e0ab50ea2c395c14d8371232924c377"
+ integrity sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==
+ dependencies:
+ call-bind "^1.0.6"
+ es-errors "^1.3.0"
+ is-regex "^1.1.4"
+
+safe-stable-stringify@^2.3.1:
+ version "2.4.3"
+ resolved "https://registry.yarnpkg.com/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz#138c84b6f6edb3db5f8ef3ef7115b8f55ccbf886"
+ integrity sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==
"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0":
version "2.1.2"
resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
+sanitize-filename@^1.6.3:
+ version "1.6.3"
+ resolved "https://registry.yarnpkg.com/sanitize-filename/-/sanitize-filename-1.6.3.tgz#755ebd752045931977e30b2025d340d7c9090378"
+ integrity sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==
+ dependencies:
+ truncate-utf8-bytes "^1.0.0"
+
+sax@>=0.6.0:
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/sax/-/sax-1.4.1.tgz#44cc8988377f126304d3b3fc1010c733b929ef0f"
+ integrity sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==
+
+scrypt-js@3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/scrypt-js/-/scrypt-js-3.0.1.tgz#d314a57c2aef69d1ad98a138a21fe9eafa9ee312"
+ integrity sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==
+
"semver@2 || 3 || 4 || 5", semver@^5.6.0:
version "5.7.2"
resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8"
@@ -3867,7 +9790,7 @@ semver@7.5.4:
dependencies:
lru-cache "^6.0.0"
-semver@^6.0.0:
+semver@^6.0.0, semver@^6.1.0, semver@^6.3.1:
version "6.3.1"
resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4"
integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==
@@ -3877,11 +9800,87 @@ semver@^7.0.0, semver@^7.1.1, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7, semve
resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.2.tgz#1e3b34759f896e8f14d6134732ce798aeb0c6e13"
integrity sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==
+send@0.18.0:
+ version "0.18.0"
+ resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be"
+ integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==
+ dependencies:
+ debug "2.6.9"
+ depd "2.0.0"
+ destroy "1.2.0"
+ encodeurl "~1.0.2"
+ escape-html "~1.0.3"
+ etag "~1.8.1"
+ fresh "0.5.2"
+ http-errors "2.0.0"
+ mime "1.6.0"
+ ms "2.1.3"
+ on-finished "2.4.1"
+ range-parser "~1.2.1"
+ statuses "2.0.1"
+
+serialize-javascript@5.0.1:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-5.0.1.tgz#7886ec848049a462467a97d3d918ebb2aaf934f4"
+ integrity sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==
+ dependencies:
+ randombytes "^2.1.0"
+
+serve-static@1.15.0:
+ version "1.15.0"
+ resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540"
+ integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==
+ dependencies:
+ encodeurl "~1.0.2"
+ escape-html "~1.0.3"
+ parseurl "~1.3.3"
+ send "0.18.0"
+
set-blocking@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==
+set-delayed-interval@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/set-delayed-interval/-/set-delayed-interval-1.0.0.tgz#1f7c065780a365f10250f8a80e2be10175ea0388"
+ integrity sha512-29fhAwuZlLcuBnW/EwxvLcg2D3ELX+VBDNhnavs3YYkab72qmrcSeQNVdzl8EcPPahGQXhBM6MKdPLCQGMDakw==
+
+set-function-length@^1.2.1:
+ version "1.2.2"
+ resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.2.tgz#aac72314198eaed975cf77b2c3b6b880695e5449"
+ integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==
+ dependencies:
+ define-data-property "^1.1.4"
+ es-errors "^1.3.0"
+ function-bind "^1.1.2"
+ get-intrinsic "^1.2.4"
+ gopd "^1.0.1"
+ has-property-descriptors "^1.0.2"
+
+set-function-name@^2.0.1:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/set-function-name/-/set-function-name-2.0.2.tgz#16a705c5a0dc2f5e638ca96d8a8cd4e1c2b90985"
+ integrity sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==
+ dependencies:
+ define-data-property "^1.1.4"
+ es-errors "^1.3.0"
+ functions-have-names "^1.2.3"
+ has-property-descriptors "^1.0.2"
+
+setprototypeof@1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424"
+ integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==
+
+sha.js@^2.4.11:
+ version "2.4.11"
+ resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7"
+ integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==
+ dependencies:
+ inherits "^2.0.1"
+ safe-buffer "^5.0.1"
+
shallow-clone@^3.0.0:
version "3.0.1"
resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3"
@@ -3901,6 +9900,16 @@ shebang-regex@^3.0.0:
resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172"
integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
+side-channel@^1.0.4:
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.6.tgz#abd25fb7cd24baf45466406b1096b7831c9215f2"
+ integrity sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==
+ dependencies:
+ call-bind "^1.0.7"
+ es-errors "^1.3.0"
+ get-intrinsic "^1.2.4"
+ object-inspect "^1.13.1"
+
signal-exit@3.0.7, signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7:
version "3.0.7"
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9"
@@ -3922,6 +9931,13 @@ sigstore@^1.0.0, sigstore@^1.3.0, sigstore@^1.4.0:
"@sigstore/tuf" "^1.0.3"
make-fetch-happen "^11.0.1"
+simple-swizzle@^0.2.2:
+ version "0.2.2"
+ resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a"
+ integrity sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==
+ dependencies:
+ is-arrayish "^0.3.1"
+
slash@3.0.0, slash@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634"
@@ -3994,6 +10010,11 @@ split2@^3.0.0:
dependencies:
readable-stream "^3.0.0"
+split2@^4.1.0:
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/split2/-/split2-4.2.0.tgz#c9c5920904d148bab0b9f67145f245a86aadbfa4"
+ integrity sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==
+
split@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/split/-/split-1.0.1.tgz#605bd9be303aa59fb35f9229fbea0ddec9ea07d9"
@@ -4001,6 +10022,11 @@ split@^1.0.0:
dependencies:
through "2"
+sprintf-js@1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.2.tgz#da1765262bf8c0f571749f2ad6c26300207ae673"
+ integrity sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==
+
sprintf-js@^1.1.3:
version "1.1.3"
resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.3.tgz#4914b903a2f8b685d17fdf78a70e917e872e444a"
@@ -4025,6 +10051,23 @@ ssri@^10.0.0, ssri@^10.0.1:
dependencies:
minipass "^7.0.3"
+stack-trace@0.0.x:
+ version "0.0.10"
+ resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0"
+ integrity sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==
+
+statuses@2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63"
+ integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==
+
+stream-to-it@^0.2.2:
+ version "0.2.4"
+ resolved "https://registry.yarnpkg.com/stream-to-it/-/stream-to-it-0.2.4.tgz#d2fd7bfbd4a899b4c0d6a7e6a533723af5749bd0"
+ integrity sha512-4vEbkSs83OahpmBybNJXlJd7d6/RxzkkSdT3I0mnGt79Xd2Kk+e1JqbvAvsQfCeKj3aKb0QIWkyK3/n0j506vQ==
+ dependencies:
+ get-iterator "^1.0.2"
+
"string-width-cjs@npm:string-width@^4.2.0", "string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3:
version "4.2.3"
resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
@@ -4034,6 +10077,14 @@ ssri@^10.0.0, ssri@^10.0.1:
is-fullwidth-code-point "^3.0.0"
strip-ansi "^6.0.1"
+"string-width@^1.0.2 || 2":
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e"
+ integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==
+ dependencies:
+ is-fullwidth-code-point "^2.0.0"
+ strip-ansi "^4.0.0"
+
string-width@^5.0.1, string-width@^5.1.2:
version "5.1.2"
resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794"
@@ -4043,6 +10094,34 @@ string-width@^5.0.1, string-width@^5.1.2:
emoji-regex "^9.2.2"
strip-ansi "^7.0.1"
+string.prototype.trim@^1.2.9:
+ version "1.2.9"
+ resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz#b6fa326d72d2c78b6df02f7759c73f8f6274faa4"
+ integrity sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==
+ dependencies:
+ call-bind "^1.0.7"
+ define-properties "^1.2.1"
+ es-abstract "^1.23.0"
+ es-object-atoms "^1.0.0"
+
+string.prototype.trimend@^1.0.8:
+ version "1.0.8"
+ resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz#3651b8513719e8a9f48de7f2f77640b26652b229"
+ integrity sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==
+ dependencies:
+ call-bind "^1.0.7"
+ define-properties "^1.2.1"
+ es-object-atoms "^1.0.0"
+
+string.prototype.trimstart@^1.0.8:
+ version "1.0.8"
+ resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz#7ee834dda8c7c17eff3118472bb35bfedaa34dde"
+ integrity sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==
+ dependencies:
+ call-bind "^1.0.7"
+ define-properties "^1.2.1"
+ es-object-atoms "^1.0.0"
+
string_decoder@^1.1.1:
version "1.3.0"
resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e"
@@ -4050,6 +10129,11 @@ string_decoder@^1.1.1:
dependencies:
safe-buffer "~5.2.0"
+string_decoder@~0.10.x:
+ version "0.10.31"
+ resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94"
+ integrity sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==
+
string_decoder@~1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8"
@@ -4064,6 +10148,20 @@ string_decoder@~1.1.1:
dependencies:
ansi-regex "^5.0.1"
+strip-ansi@^3.0.0:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"
+ integrity sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==
+ dependencies:
+ ansi-regex "^2.0.0"
+
+strip-ansi@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f"
+ integrity sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==
+ dependencies:
+ ansi-regex "^3.0.0"
+
strip-ansi@^7.0.1:
version "7.1.0"
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45"
@@ -4086,6 +10184,11 @@ strip-final-newline@^2.0.0:
resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad"
integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==
+strip-final-newline@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd"
+ integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==
+
strip-indent@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001"
@@ -4093,6 +10196,11 @@ strip-indent@^3.0.0:
dependencies:
min-indent "^1.0.0"
+strip-json-comments@3.1.1, strip-json-comments@^3.1.1:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006"
+ integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==
+
strong-log-transformer@2.1.0, strong-log-transformer@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/strong-log-transformer/-/strong-log-transformer-2.1.0.tgz#0f5ed78d325e0421ac6f90f7f10e691d6ae3ae10"
@@ -4102,6 +10210,18 @@ strong-log-transformer@2.1.0, strong-log-transformer@^2.1.0:
minimist "^1.2.0"
through "^2.3.4"
+supports-color@8.1.1:
+ version "8.1.1"
+ resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c"
+ integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==
+ dependencies:
+ has-flag "^4.0.0"
+
+supports-color@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
+ integrity sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==
+
supports-color@^5.3.0:
version "5.5.0"
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
@@ -4121,6 +10241,11 @@ supports-preserve-symlinks-flag@^1.0.0:
resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09"
integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==
+symbol-observable@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-4.0.0.tgz#5b425f192279e87f2f9b937ac8540d1984b39205"
+ integrity sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==
+
tar-stream@~2.2.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287"
@@ -4156,6 +10281,13 @@ tar@^6.1.11, tar@^6.1.2:
mkdirp "^1.0.3"
yallist "^4.0.0"
+tdigest@^0.1.1:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/tdigest/-/tdigest-0.1.2.tgz#96c64bac4ff10746b910b0e23b515794e12faced"
+ integrity sha512-+G0LLgjjo9BZX2MfdvPfH+MKLCrxlXSYec5DaPYP1fe6Iyhf0/fSmJ0bFiZ1F8BT6cGXl2LpltQptzjXKWEkKA==
+ dependencies:
+ bintrees "1.0.2"
+
temp-dir@1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-1.0.0.tgz#0a7c0ea26d3a39afa7e0ebea9c1fc0bc4daa011d"
@@ -4182,7 +10314,31 @@ text-extensions@^1.0.0:
resolved "https://registry.yarnpkg.com/text-extensions/-/text-extensions-1.9.0.tgz#1853e45fee39c945ce6f6c36b2d659b5aabc2a26"
integrity sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==
-through2@^2.0.0:
+text-hex@1.0.x:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/text-hex/-/text-hex-1.0.0.tgz#69dc9c1b17446ee79a92bf5b884bb4b9127506f5"
+ integrity sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==
+
+text-table@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
+ integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==
+
+thenify-all@^1.0.0:
+ version "1.6.0"
+ resolved "https://registry.yarnpkg.com/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726"
+ integrity sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==
+ dependencies:
+ thenify ">= 3.1.0 < 4"
+
+"thenify@>= 3.1.0 < 4":
+ version "3.3.1"
+ resolved "https://registry.yarnpkg.com/thenify/-/thenify-3.3.1.tgz#8932e686a4066038a016dd9e2ca46add9838a95f"
+ integrity sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==
+ dependencies:
+ any-promise "^1.0.0"
+
+through2@^2.0.0, through2@^2.0.1:
version "2.0.5"
resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd"
integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==
@@ -4202,6 +10358,13 @@ through@2, "through@>=2.2.7 <3", through@^2.3.4, through@^2.3.6:
resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==
+timeout-abort-controller@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/timeout-abort-controller/-/timeout-abort-controller-3.0.0.tgz#dd57ffca041652c03769904f8d95afd93fb95595"
+ integrity sha512-O3e+2B8BKrQxU2YRyEjC/2yFdb33slI22WRdUaDx6rvysfi9anloNZyR2q0l6LnePo5qH7gSM7uZtvvwZbc2yA==
+ dependencies:
+ retimer "^3.0.0"
+
tmp@^0.0.33:
version "0.0.33"
resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9"
@@ -4221,6 +10384,16 @@ to-regex-range@^5.0.1:
dependencies:
is-number "^7.0.0"
+toidentifier@1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35"
+ integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==
+
+toml@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/toml/-/toml-3.0.0.tgz#342160f1af1904ec9d204d03a5d61222d762c5ee"
+ integrity sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==
+
tr46@~0.0.3:
version "0.0.3"
resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a"
@@ -4236,6 +10409,59 @@ trim-newlines@^3.0.0:
resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-3.0.1.tgz#260a5d962d8b752425b32f3a7db0dcacd176c144"
integrity sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==
+triple-beam@^1.3.0:
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/triple-beam/-/triple-beam-1.4.1.tgz#6fde70271dc6e5d73ca0c3b24e2d92afb7441984"
+ integrity sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==
+
+truncate-utf8-bytes@^1.0.0:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz#405923909592d56f78a5818434b0b78489ca5f2b"
+ integrity sha512-95Pu1QXQvruGEhv62XCMO3Mm90GscOCClvrIUwCM0PYOXK3kaF3l3sIHxx71ThJfcbM2O5Au6SO3AWCSEfW4mQ==
+ dependencies:
+ utf8-byte-length "^1.0.1"
+
+ts-essentials@^7.0.1:
+ version "7.0.3"
+ resolved "https://registry.yarnpkg.com/ts-essentials/-/ts-essentials-7.0.3.tgz#686fd155a02133eedcc5362dc8b5056cde3e5a38"
+ integrity sha512-8+gr5+lqO3G84KdiTSMRLtuyJ+nTBVRKuCrK4lidMPdVeEp0uqC875uE5NMcaA7YYMN7XsNiFQuMvasF8HT/xQ==
+
+ts-invariant@^0.10.3:
+ version "0.10.3"
+ resolved "https://registry.yarnpkg.com/ts-invariant/-/ts-invariant-0.10.3.tgz#3e048ff96e91459ffca01304dbc7f61c1f642f6c"
+ integrity sha512-uivwYcQaxAucv1CzRp2n/QdYPo4ILf9VXgH19zEIjFx2EJufV16P0JtJVpYHy89DItG6Kwj2oIUjrcK5au+4tQ==
+ dependencies:
+ tslib "^2.1.0"
+
+ts-node@^10.2.1:
+ version "10.9.2"
+ resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.2.tgz#70f021c9e185bccdca820e26dc413805c101c71f"
+ integrity sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==
+ dependencies:
+ "@cspotcode/source-map-support" "^0.8.0"
+ "@tsconfig/node10" "^1.0.7"
+ "@tsconfig/node12" "^1.0.7"
+ "@tsconfig/node14" "^1.0.0"
+ "@tsconfig/node16" "^1.0.2"
+ acorn "^8.4.1"
+ acorn-walk "^8.1.1"
+ arg "^4.1.0"
+ create-require "^1.1.0"
+ diff "^4.0.1"
+ make-error "^1.1.1"
+ v8-compile-cache-lib "^3.0.1"
+ yn "3.1.1"
+
+tsconfig-paths@^3.15.0:
+ version "3.15.0"
+ resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz#5299ec605e55b1abb23ec939ef15edaf483070d4"
+ integrity sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==
+ dependencies:
+ "@types/json5" "^0.0.29"
+ json5 "^1.0.2"
+ minimist "^1.2.6"
+ strip-bom "^3.0.0"
+
tsconfig-paths@^4.1.2:
version "4.2.0"
resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz#ef78e19039133446d244beac0fd6a1632e2d107c"
@@ -4245,11 +10471,23 @@ tsconfig-paths@^4.1.2:
minimist "^1.2.6"
strip-bom "^3.0.0"
+tslib@^1.8.1:
+ version "1.14.1"
+ resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00"
+ integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
+
tslib@^2.1.0, tslib@^2.3.0, tslib@^2.4.0:
version "2.6.3"
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.3.tgz#0438f810ad7a9edcde7a241c3d80db693c8cbfe0"
integrity sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==
+tsutils@^3.21.0:
+ version "3.21.0"
+ resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623"
+ integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==
+ dependencies:
+ tslib "^1.8.1"
+
tuf-js@^1.1.7:
version "1.1.7"
resolved "https://registry.yarnpkg.com/tuf-js/-/tuf-js-1.1.7.tgz#21b7ae92a9373015be77dfe0cb282a80ec3bbe43"
@@ -4259,6 +10497,18 @@ tuf-js@^1.1.7:
debug "^4.3.4"
make-fetch-happen "^11.1.1"
+type-check@^0.4.0, type-check@~0.4.0:
+ version "0.4.0"
+ resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1"
+ integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==
+ dependencies:
+ prelude-ls "^1.2.1"
+
+type-detect@^4.0.0, type-detect@^4.0.8:
+ version "4.0.8"
+ resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c"
+ integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==
+
type-fest@^0.16.0:
version "0.16.0"
resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.16.0.tgz#3240b891a78b0deae910dbeb86553e552a148860"
@@ -4269,6 +10519,11 @@ type-fest@^0.18.0:
resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.18.1.tgz#db4bc151a4a2cf4eebf9add5db75508db6cc841f"
integrity sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==
+type-fest@^0.20.2:
+ version "0.20.2"
+ resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4"
+ integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==
+
type-fest@^0.21.3:
version "0.21.3"
resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37"
@@ -4289,21 +10544,184 @@ type-fest@^0.8.1:
resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d"
integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==
+type-fest@^4.6.0, type-fest@^4.7.1:
+ version "4.19.0"
+ resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-4.19.0.tgz#f7d3d5f55a7a118b5fe3d2eef53059cf8e516dcd"
+ integrity sha512-CN2l+hWACRiejlnr68vY0/7734Kzu+9+TOslUXbSCQ1ruY9XIHDBSceVXCcHm/oXrdzhtLMMdJEKfemf1yXiZQ==
+
+type-is@~1.6.18:
+ version "1.6.18"
+ resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131"
+ integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==
+ dependencies:
+ media-typer "0.3.0"
+ mime-types "~2.1.24"
+
+typed-array-buffer@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz#1867c5d83b20fcb5ccf32649e5e2fc7424474ff3"
+ integrity sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==
+ dependencies:
+ call-bind "^1.0.7"
+ es-errors "^1.3.0"
+ is-typed-array "^1.1.13"
+
+typed-array-byte-length@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz#d92972d3cff99a3fa2e765a28fcdc0f1d89dec67"
+ integrity sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==
+ dependencies:
+ call-bind "^1.0.7"
+ for-each "^0.3.3"
+ gopd "^1.0.1"
+ has-proto "^1.0.3"
+ is-typed-array "^1.1.13"
+
+typed-array-byte-offset@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz#f9ec1acb9259f395093e4567eb3c28a580d02063"
+ integrity sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==
+ dependencies:
+ available-typed-arrays "^1.0.7"
+ call-bind "^1.0.7"
+ for-each "^0.3.3"
+ gopd "^1.0.1"
+ has-proto "^1.0.3"
+ is-typed-array "^1.1.13"
+
+typed-array-length@^1.0.6:
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.6.tgz#57155207c76e64a3457482dfdc1c9d1d3c4c73a3"
+ integrity sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==
+ dependencies:
+ call-bind "^1.0.7"
+ for-each "^0.3.3"
+ gopd "^1.0.1"
+ has-proto "^1.0.3"
+ is-typed-array "^1.1.13"
+ possible-typed-array-names "^1.0.0"
+
typedarray@^0.0.6:
version "0.0.6"
resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==
+typeorm-naming-strategies@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/typeorm-naming-strategies/-/typeorm-naming-strategies-2.0.0.tgz#c7c10bc768ddce2592ef9ad4d2dca55fd5fa6ad6"
+ integrity sha512-nsJ5jDjhBBEG6olFmxojkO4yrW7hEv38sH7ZXWWx9wnDoo9uaoH/mo2mBYAh/VKgwoFHBLu+CYxGmzXz2GUMcA==
+
+typeorm@0.2.37:
+ version "0.2.37"
+ resolved "https://registry.yarnpkg.com/typeorm/-/typeorm-0.2.37.tgz#1a5e59216077640694d27c04c99ed3f968d15dc8"
+ integrity sha512-7rkW0yCgFC24I5T0f3S/twmLSuccPh1SQmxET/oDWn2sSDVzbyWdnItSdKy27CdJGTlKHYtUVeOcMYw5LRsXVw==
+ dependencies:
+ "@sqltools/formatter" "^1.2.2"
+ app-root-path "^3.0.0"
+ buffer "^6.0.3"
+ chalk "^4.1.0"
+ cli-highlight "^2.1.11"
+ debug "^4.3.1"
+ dotenv "^8.2.0"
+ glob "^7.1.6"
+ js-yaml "^4.0.0"
+ mkdirp "^1.0.4"
+ reflect-metadata "^0.1.13"
+ sha.js "^2.4.11"
+ tslib "^2.1.0"
+ xml2js "^0.4.23"
+ yargonaut "^1.1.4"
+ yargs "^17.0.1"
+ zen-observable-ts "^1.0.0"
+
"typescript@^3 || ^4":
version "4.9.5"
resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a"
integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==
+typescript@^5.0.2:
+ version "5.4.5"
+ resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.4.5.tgz#42ccef2c571fdbd0f6718b1d1f5e6e5ef006f611"
+ integrity sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==
+
uglify-js@^3.1.4:
version "3.17.4"
resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.17.4.tgz#61678cf5fa3f5b7eb789bb345df29afb8257c22c"
integrity sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==
+uint8-varint@^1.0.1, uint8-varint@^1.0.2, uint8-varint@^1.0.6:
+ version "1.0.8"
+ resolved "https://registry.yarnpkg.com/uint8-varint/-/uint8-varint-1.0.8.tgz#3f6c268e4c1a1ece232f660ec37729faca7cc7d0"
+ integrity sha512-QS03THS87Wlc0fBCC3xP5sqScDwfvVZLUrTCeMAQbQxQUWJosPC7C8uTNhpVUEgpTbV1Ut2Fer9Se3kI1KbnlQ==
+ dependencies:
+ byte-access "^1.0.0"
+ longbits "^1.1.0"
+ uint8arraylist "^2.0.0"
+ uint8arrays "^4.0.2"
+
+uint8-varint@^2.0.1, uint8-varint@^2.0.2:
+ version "2.0.4"
+ resolved "https://registry.yarnpkg.com/uint8-varint/-/uint8-varint-2.0.4.tgz#85be52b3849eb30f2c3640a2df8a14364180affb"
+ integrity sha512-FwpTa7ZGA/f/EssWAb5/YV6pHgVF1fViKdW8cWaEarjB8t7NyofSWBdOTyFPaGuUG4gx3v1O3PQ8etsiOs3lcw==
+ dependencies:
+ uint8arraylist "^2.0.0"
+ uint8arrays "^5.0.0"
+
+uint8arraylist@^2.0.0, uint8arraylist@^2.1.0, uint8arraylist@^2.1.1, uint8arraylist@^2.1.2, uint8arraylist@^2.3.1, uint8arraylist@^2.3.2, uint8arraylist@^2.4.1, uint8arraylist@^2.4.3, uint8arraylist@^2.4.8:
+ version "2.4.8"
+ resolved "https://registry.yarnpkg.com/uint8arraylist/-/uint8arraylist-2.4.8.tgz#5a4d17f4defd77799cb38e93fd5db0f0dceddc12"
+ integrity sha512-vc1PlGOzglLF0eae1M8mLRTBivsvrGsdmJ5RbK3e+QRvRLOZfZhQROTwH/OfyF3+ZVUg9/8hE8bmKP2CvP9quQ==
+ dependencies:
+ uint8arrays "^5.0.1"
+
+uint8arrays@^3.0.0:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/uint8arrays/-/uint8arrays-3.1.1.tgz#2d8762acce159ccd9936057572dade9459f65ae0"
+ integrity sha512-+QJa8QRnbdXVpHYjLoTpJIdCTiw9Ir62nocClWuXIq2JIh4Uta0cQsTSpFL678p2CN8B+XSApwcU+pQEqVpKWg==
+ dependencies:
+ multiformats "^9.4.2"
+
+uint8arrays@^4.0.2, uint8arrays@^4.0.3, uint8arrays@^4.0.6:
+ version "4.0.10"
+ resolved "https://registry.yarnpkg.com/uint8arrays/-/uint8arrays-4.0.10.tgz#3ec5cde3348903c140e87532fc53f46b8f2e921f"
+ integrity sha512-AnJNUGGDJAgFw/eWu/Xb9zrVKEGlwJJCaeInlf3BkecE/zcTobk5YXYIPNQJO1q5Hh1QZrQQHf0JvcHqz2hqoA==
+ dependencies:
+ multiformats "^12.0.1"
+
+uint8arrays@^5.0.0, uint8arrays@^5.0.1, uint8arrays@^5.0.2:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/uint8arrays/-/uint8arrays-5.1.0.tgz#14047c9bdf825d025b7391299436e5e50e7270f1"
+ integrity sha512-vA6nFepEmlSKkMBnLBaUMVvAC4G3CTmO58C12y4sq6WPDOR7mOFYOi7GlrQ4djeSbP6JG9Pv9tJDM97PedRSww==
+ dependencies:
+ multiformats "^13.0.0"
+
+unbox-primitive@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e"
+ integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==
+ dependencies:
+ call-bind "^1.0.2"
+ has-bigints "^1.0.2"
+ has-symbols "^1.0.3"
+ which-boxed-primitive "^1.0.2"
+
+undici-types@~5.26.4:
+ version "5.26.5"
+ resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617"
+ integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==
+
+undici@^5.12.0:
+ version "5.28.4"
+ resolved "https://registry.yarnpkg.com/undici/-/undici-5.28.4.tgz#6b280408edb6a1a604a9b20340f45b422e373068"
+ integrity sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==
+ dependencies:
+ "@fastify/busboy" "^2.0.0"
+
+unicorn-magic@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/unicorn-magic/-/unicorn-magic-0.1.0.tgz#1bb9a51c823aaf9d73a8bfcd3d1a23dde94b0ce4"
+ integrity sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==
+
unique-filename@^2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-2.0.1.tgz#e785f8675a9a7589e0ac77e0b5c34d2eaeac6da2"
@@ -4318,6 +10736,11 @@ unique-filename@^3.0.0:
dependencies:
unique-slug "^4.0.0"
+unique-names-generator@^4.7.1:
+ version "4.7.1"
+ resolved "https://registry.yarnpkg.com/unique-names-generator/-/unique-names-generator-4.7.1.tgz#966407b12ba97f618928f77322cfac8c80df5597"
+ integrity sha512-lMx9dX+KRmG8sq6gulYYpKWZc9RlGsgBR6aoO8Qsm3qvkSJ+3rAymr+TnV8EDMrIrwuFJ4kruzMWM/OpYzPoow==
+
unique-slug@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-3.0.0.tgz#6d347cf57c8a7a7a6044aabd0e2d74e4d76dc7c9"
@@ -4349,21 +10772,77 @@ universalify@^2.0.0:
resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.1.tgz#168efc2180964e6386d061e094df61afe239b18d"
integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==
+unpipe@1.0.0, unpipe@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
+ integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==
+
+unset-value@^0.1.1:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-0.1.2.tgz#506810b867f27c2a5a6e9b04833631f6de58d310"
+ integrity sha512-yhv5I4TsldLdE3UcVQn0hD2T5sNCPv4+qm/CTUpRKIpwthYRIipsAPdsrNpOI79hPQa0rTTeW22Fq6JWRcTgNg==
+ dependencies:
+ has-value "^0.3.1"
+ isobject "^3.0.0"
+
+untildify@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/untildify/-/untildify-4.0.0.tgz#2bc947b953652487e4600949fb091e3ae8cd919b"
+ integrity sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==
+
upath@2.0.1, upath@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/upath/-/upath-2.0.1.tgz#50c73dea68d6f6b990f51d279ce6081665d61a8b"
integrity sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w==
+uri-js@^4.2.2:
+ version "4.4.1"
+ resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e"
+ integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==
+ dependencies:
+ punycode "^2.1.0"
+
+utf8-byte-length@^1.0.1:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/utf8-byte-length/-/utf8-byte-length-1.0.5.tgz#f9f63910d15536ee2b2d5dd4665389715eac5c1e"
+ integrity sha512-Xn0w3MtiQ6zoz2vFyUVruaCL53O/DwUvkEeOvj+uulMm0BkUGYWmBYVyElqZaSLhY6ZD0ulfU3aBra2aVT4xfA==
+
util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==
-uuid@8.3.2:
+util@^0.12.5:
+ version "0.12.5"
+ resolved "https://registry.yarnpkg.com/util/-/util-0.12.5.tgz#5f17a6059b73db61a875668781a1c2b136bd6fbc"
+ integrity sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==
+ dependencies:
+ inherits "^2.0.3"
+ is-arguments "^1.0.4"
+ is-generator-function "^1.0.7"
+ is-typed-array "^1.1.3"
+ which-typed-array "^1.1.2"
+
+utils-merge@1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713"
+ integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==
+
+uuid@8.3.2, uuid@^8.3.2:
version "8.3.2"
resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2"
integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==
+uuid@^9.0.0:
+ version "9.0.1"
+ resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.1.tgz#e188d4c8853cc722220392c424cd637f32293f30"
+ integrity sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==
+
+v8-compile-cache-lib@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf"
+ integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==
+
v8-compile-cache@2.3.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee"
@@ -4396,6 +10875,26 @@ validate-npm-package-name@^5.0.0:
resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-5.0.1.tgz#a316573e9b49f3ccd90dbb6eb52b3f06c6d604e8"
integrity sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==
+value-or-promise@1.0.11:
+ version "1.0.11"
+ resolved "https://registry.yarnpkg.com/value-or-promise/-/value-or-promise-1.0.11.tgz#3e90299af31dd014fe843fe309cefa7c1d94b140"
+ integrity sha512-41BrgH+dIbCFXClcSapVs5M6GkENd3gQOJpEfPDNa71LsUGMXDL0jMWpI/Rh7WhX+Aalfz2TTS3Zt5pUsbnhLg==
+
+value-or-promise@^1.0.12:
+ version "1.0.12"
+ resolved "https://registry.yarnpkg.com/value-or-promise/-/value-or-promise-1.0.12.tgz#0e5abfeec70148c78460a849f6b003ea7986f15c"
+ integrity sha512-Z6Uz+TYwEqE7ZN50gwn+1LCVo9ZVrpxRPOhOLnncYkY1ZzOYtrX8Fwf/rFktZ8R5mJms6EZf5TqNOMeZmnPq9Q==
+
+varint@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/varint/-/varint-6.0.0.tgz#9881eb0ce8feaea6512439d19ddf84bf551661d0"
+ integrity sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==
+
+vary@^1, vary@~1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
+ integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==
+
walk-up-path@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/walk-up-path/-/walk-up-path-1.0.0.tgz#d4745e893dd5fd0dbb58dd0a4c6a33d9c9fec53e"
@@ -4413,6 +10912,11 @@ webidl-conversions@^3.0.0:
resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871"
integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==
+whatwg-mimetype@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz#5fa1a7623867ff1af6ca3dc72ad6b8a4208beba7"
+ integrity sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==
+
whatwg-url@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d"
@@ -4421,7 +10925,36 @@ whatwg-url@^5.0.0:
tr46 "~0.0.3"
webidl-conversions "^3.0.0"
-which@^2.0.1, which@^2.0.2:
+wherearewe@^2.0.0, wherearewe@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/wherearewe/-/wherearewe-2.0.1.tgz#37c97a7bf112dca8db34bfefb2f6c997af312bb8"
+ integrity sha512-XUguZbDxCA2wBn2LoFtcEhXL6AXo+hVjGonwhSTTTU9SzbWG8Xu3onNIpzf9j/mYUcJQ0f+m37SzG77G851uFw==
+ dependencies:
+ is-electron "^2.2.0"
+
+which-boxed-primitive@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6"
+ integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==
+ dependencies:
+ is-bigint "^1.0.1"
+ is-boolean-object "^1.1.0"
+ is-number-object "^1.0.4"
+ is-string "^1.0.5"
+ is-symbol "^1.0.3"
+
+which-typed-array@^1.1.14, which-typed-array@^1.1.15, which-typed-array@^1.1.2:
+ version "1.1.15"
+ resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.15.tgz#264859e9b11a649b388bfaaf4f767df1f779b38d"
+ integrity sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==
+ dependencies:
+ available-typed-arrays "^1.0.7"
+ call-bind "^1.0.7"
+ for-each "^0.3.3"
+ gopd "^1.0.1"
+ has-tostringtag "^1.0.2"
+
+which@2.0.2, which@^2.0.1, which@^2.0.2:
version "2.0.2"
resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"
integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==
@@ -4435,6 +10968,13 @@ which@^3.0.0:
dependencies:
isexe "^2.0.0"
+wide-align@1.1.3:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457"
+ integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==
+ dependencies:
+ string-width "^1.0.2 || 2"
+
wide-align@^1.1.5:
version "1.1.5"
resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.5.tgz#df1d4c206854369ecf3c9a4898f1b23fbd9d15d3"
@@ -4442,11 +10982,47 @@ wide-align@^1.1.5:
dependencies:
string-width "^1.0.2 || 2 || 3 || 4"
-wordwrap@^1.0.0:
+winston-transport@^4.7.0:
+ version "4.7.0"
+ resolved "https://registry.yarnpkg.com/winston-transport/-/winston-transport-4.7.0.tgz#e302e6889e6ccb7f383b926df6936a5b781bd1f0"
+ integrity sha512-ajBj65K5I7denzer2IYW6+2bNIVqLGDHqDw3Ow8Ohh+vdW+rv4MZ6eiDvHoKhfJFZ2auyN8byXieDDJ96ViONg==
+ dependencies:
+ logform "^2.3.2"
+ readable-stream "^3.6.0"
+ triple-beam "^1.3.0"
+
+winston@^3.13.0:
+ version "3.13.0"
+ resolved "https://registry.yarnpkg.com/winston/-/winston-3.13.0.tgz#e76c0d722f78e04838158c61adc1287201de7ce3"
+ integrity sha512-rwidmA1w3SE4j0E5MuIufFhyJPBDG7Nu71RkZor1p2+qHvJSZ9GYDA81AyleQcZbh/+V6HjeBdfnTZJm9rSeQQ==
+ dependencies:
+ "@colors/colors" "^1.6.0"
+ "@dabh/diagnostics" "^2.0.2"
+ async "^3.2.3"
+ is-stream "^2.0.0"
+ logform "^2.4.0"
+ one-time "^1.0.0"
+ readable-stream "^3.4.0"
+ safe-stable-stringify "^2.3.1"
+ stack-trace "0.0.x"
+ triple-beam "^1.3.0"
+ winston-transport "^4.7.0"
+
+word-wrap@^1.2.5:
+ version "1.2.5"
+ resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34"
+ integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==
+
+wordwrap@>=0.0.2, wordwrap@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb"
integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==
+workerpool@6.1.0:
+ version "6.1.0"
+ resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.1.0.tgz#a8e038b4c94569596852de7a8ea4228eefdeb37b"
+ integrity sha512-toV7q9rWNYha963Pl/qyeZ6wG+3nnsyvolaNUS8+R5Wtw6qJPTxIlOP1ZSvcGhEJw+l3HMMmtiNo9Gl61G4GVg==
+
"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0:
version "7.0.0"
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
@@ -4525,7 +11101,51 @@ write-pkg@4.0.0:
type-fest "^0.4.1"
write-json-file "^3.2.0"
-xtend@~4.0.1:
+ws@7.4.6:
+ version "7.4.6"
+ resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.6.tgz#5654ca8ecdeee47c33a9a4bf6d28e2be2980377c"
+ integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==
+
+ws@^8.11.0, ws@^8.12.1, ws@^8.4.0:
+ version "8.17.0"
+ resolved "https://registry.yarnpkg.com/ws/-/ws-8.17.0.tgz#d145d18eca2ed25aaf791a183903f7be5e295fea"
+ integrity sha512-uJq6108EgZMAl20KagGkzCKfMEjxmKvZHG7Tlq0Z6nOky7YF7aq4mOx6xK8TJ/i1LeK4Qus7INktacctDgY8Ow==
+
+xml2js@^0.4.23:
+ version "0.4.23"
+ resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.23.tgz#a0c69516752421eb2ac758ee4d4ccf58843eac66"
+ integrity sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==
+ dependencies:
+ sax ">=0.6.0"
+ xmlbuilder "~11.0.0"
+
+xml2js@^0.6.0, xml2js@^0.6.2:
+ version "0.6.2"
+ resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.6.2.tgz#dd0b630083aa09c161e25a4d0901e2b2a929b499"
+ integrity sha512-T4rieHaC1EXcES0Kxxj4JWgaUQHDk+qwHcYOCFHfiwKz7tOVPLq7Hjq9dM1WCMhylqMEfP7hMcOIChvotiZegA==
+ dependencies:
+ sax ">=0.6.0"
+ xmlbuilder "~11.0.0"
+
+xmlbuilder@~11.0.0:
+ version "11.0.1"
+ resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-11.0.1.tgz#be9bae1c8a046e76b31127726347d0ad7002beb3"
+ integrity sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==
+
+xsalsa20@^1.1.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/xsalsa20/-/xsalsa20-1.2.0.tgz#e5a05cb26f8cef723f94a559102ed50c1b44c25c"
+ integrity sha512-FIr/DEeoHfj7ftfylnoFt3rAIRoWXpx2AoDfrT2qD2wtp7Dp+COajvs/Icb7uHqRW9m60f5iXZwdsJJO3kvb7w==
+
+xss@^1.0.8:
+ version "1.0.15"
+ resolved "https://registry.yarnpkg.com/xss/-/xss-1.0.15.tgz#96a0e13886f0661063028b410ed1b18670f4e59a"
+ integrity sha512-FVdlVVC67WOIPvfOwhoMETV72f6GbW7aOabBC3WxN/oUdoEMDyLz4OgRv5/gck2ZeNqEQu+Tb0kloovXOfpYVg==
+ dependencies:
+ commander "^2.20.3"
+ cssfilter "0.0.10"
+
+xtend@^4.0.0, xtend@~4.0.1:
version "4.0.2"
resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54"
integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==
@@ -4545,6 +11165,15 @@ yaml@^1.10.0:
resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b"
integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==
+yargonaut@^1.1.4:
+ version "1.1.4"
+ resolved "https://registry.yarnpkg.com/yargonaut/-/yargonaut-1.1.4.tgz#c64f56432c7465271221f53f5cc517890c3d6e0c"
+ integrity sha512-rHgFmbgXAAzl+1nngqOcwEljqHGG9uUZoPjsdZEs1w5JW9RXYzrSvH/u70C1JE5qFi0qjsdhnUX/dJRpWqitSA==
+ dependencies:
+ chalk "^1.1.1"
+ figlet "^1.1.1"
+ parent-require "^1.0.0"
+
yargs-parser@20.2.4:
version "20.2.4"
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54"
@@ -4560,7 +11189,17 @@ yargs-parser@^20.2.2, yargs-parser@^20.2.3:
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee"
integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==
-yargs@16.2.0, yargs@^16.2.0:
+yargs-unparser@2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-2.0.0.tgz#f131f9226911ae5d9ad38c432fe809366c2325eb"
+ integrity sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==
+ dependencies:
+ camelcase "^6.0.0"
+ decamelize "^4.0.0"
+ flat "^5.0.2"
+ is-plain-obj "^2.1.0"
+
+yargs@16.2.0, yargs@^16.0.0, yargs@^16.1.0, yargs@^16.2.0:
version "16.2.0"
resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66"
integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==
@@ -4573,7 +11212,7 @@ yargs@16.2.0, yargs@^16.2.0:
y18n "^5.0.5"
yargs-parser "^20.2.2"
-yargs@^17.6.2:
+yargs@^17.0.1, yargs@^17.6.2:
version "17.7.2"
resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269"
integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==
@@ -4586,7 +11225,37 @@ yargs@^17.6.2:
y18n "^5.0.5"
yargs-parser "^21.1.1"
+yn@3.1.1:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50"
+ integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==
+
yocto-queue@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b"
integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==
+
+yocto-queue@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-1.0.0.tgz#7f816433fb2cbc511ec8bf7d263c3b58a1a3c251"
+ integrity sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==
+
+zen-observable-ts@^1.0.0, zen-observable-ts@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/zen-observable-ts/-/zen-observable-ts-1.1.0.tgz#2d1aa9d79b87058e9b75698b92791c1838551f83"
+ integrity sha512-1h4zlLSqI2cRLPJUHJFL8bCWHhkpuXkF+dbGkRaWjgDIG26DmzyshUMrdV/rL3UnR+mhaX4fRq8LPouq0MYYIA==
+ dependencies:
+ "@types/zen-observable" "0.8.3"
+ zen-observable "0.8.15"
+
+zen-observable-ts@^1.2.5:
+ version "1.2.5"
+ resolved "https://registry.yarnpkg.com/zen-observable-ts/-/zen-observable-ts-1.2.5.tgz#6c6d9ea3d3a842812c6e9519209365a122ba8b58"
+ integrity sha512-QZWQekv6iB72Naeake9hS1KxHlotfRpe+WGNbNx5/ta+R3DNjVO2bswf63gXlWDcs+EMd7XY8HfVQyP1X6T4Zg==
+ dependencies:
+ zen-observable "0.8.15"
+
+zen-observable@0.8.15:
+ version "0.8.15"
+ resolved "https://registry.yarnpkg.com/zen-observable/-/zen-observable-0.8.15.tgz#96415c512d8e3ffd920afd3889604e30b9eaac15"
+ integrity sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ==