diff --git a/.github/workflows/subgraph-test.yaml b/.github/workflows/subgraph-test.yaml new file mode 100644 index 0000000000..a8ffaaacc8 --- /dev/null +++ b/.github/workflows/subgraph-test.yaml @@ -0,0 +1,45 @@ +name: OrderBook Subgraph CI +on: [push] + +jobs: + subgraph-test: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v3 + + - name: Install Nix + uses: DeterminateSystems/nix-installer-action@v4 + + - uses: DeterminateSystems/magic-nix-cache-action@v2 + + - name: Install Foundry + uses: foundry-rs/foundry-toolchain@v1 + with: + version: nightly + + - name: Forge shallow install + run: forge install --shallow + + - name: Start docker container + run: docker-compose -f subgraph/docker/docker-compose.yaml up -d + + - name: Initialize setup + working-directory: ./subgraph + run: nix run .#init-setup + + - name: Install rustup stable + uses: actions-rs/toolchain@v1 + with: + toolchain: stable + + - name: install npm dependencies + working-directory: ./subgraph + run: npm install + + - name: Run test + working-directory: ./subgraph + run: nix run .#ci-test + + - name: Stop docker container + run: docker-compose -f subgraph/docker/docker-compose.yaml down diff --git a/subgraph/.gitignore b/subgraph/.gitignore new file mode 100644 index 0000000000..865fc8705e --- /dev/null +++ b/subgraph/.gitignore @@ -0,0 +1,32 @@ +# subgraph +/build +/generated +/subgraph.yaml +/abis/*.json + + +# Rust generated files +/tests/generated/abigen +# Ignore all JSON files +/tests/generated/*.json +# But include ERC20Mock.json +!/tests/generated/ERC20Mock.json + +# npm +/node_modules + +# hardhat +/cache + +#vscode +.vscode + +#docker +/docker/data + + +# Echidna +/target + + +/todo.txt \ No newline at end of file diff --git a/subgraph/.prettierignore b/subgraph/.prettierignore new file mode 100644 index 0000000000..dbabf871ca --- /dev/null +++ b/subgraph/.prettierignore @@ -0,0 +1,24 @@ +## Deps +node_modules +lib +out +schema +utils + +## Hardhat +cache +artifacts +contracts +typechain + +## Subgraph +subgraph.template.yaml +build +generated +./docker +/docker/**/* +/docker/* +/docker/data/postgres +/scripts +contracts +utils \ No newline at end of file diff --git a/subgraph/Cargo.lock b/subgraph/Cargo.lock new file mode 100644 index 0000000000..d01950ca2e --- /dev/null +++ b/subgraph/Cargo.lock @@ -0,0 +1,4154 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "Inflector" +version = "0.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3" +dependencies = [ + "lazy_static", + "regex", +] + +[[package]] +name = "addr2line" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" +dependencies = [ + "gimli", +] + +[[package]] +name = "adler" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" + +[[package]] +name = "aes" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac1f845298e95f983ff1944b728ae08b8cebab80d684f0a832ed0fc74dfa27e2" +dependencies = [ + "cfg-if", + "cipher", + "cpufeatures", +] + +[[package]] +name = "aho-corasick" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0" +dependencies = [ + "memchr", +] + +[[package]] +name = "anstream" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ab91ebe16eb252986481c5b62f6098f3b698a45e34b5b98200cf20dd2484a44" +dependencies = [ + "anstyle", + "anstyle-parse", + "anstyle-query", + "anstyle-wincon", + "colorchoice", + "utf8parse", +] + +[[package]] +name = "anstyle" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7079075b41f533b8c61d2a4d073c4676e1f8b249ff94a393b0595db304e0dd87" + +[[package]] +name = "anstyle-parse" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "317b9a89c1868f5ea6ff1d9539a69f45dffc21ce321ac1fd1160dfa48c8e2140" +dependencies = [ + "utf8parse", +] + +[[package]] +name = "anstyle-query" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b" +dependencies = [ + "windows-sys", +] + +[[package]] +name = "anstyle-wincon" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0699d10d2f4d628a98ee7b57b289abbc98ff3bad977cb3152709d4bf2330628" +dependencies = [ + "anstyle", + "windows-sys", +] + +[[package]] +name = "anyhow" +version = "1.0.75" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6" + +[[package]] +name = "arrayvec" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" + +[[package]] +name = "ascii" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eab1c04a571841102f5345a8fc0f6bb3d31c315dec879b5c6e42e40ce7ffa34e" + +[[package]] +name = "ascii-canvas" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8824ecca2e851cec16968d54a01dd372ef8f95b244fb84b84e70128be347c3c6" +dependencies = [ + "term", +] + +[[package]] +name = "async-trait" +version = "0.1.74" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a66537f1bb974b254c98ed142ff995236e81b9d0fe4db0575f46612cb15eb0f9" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.38", +] + +[[package]] +name = "async_io_stream" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6d7b9decdf35d8908a7e3ef02f64c5e9b1695e230154c0e8de3969142d9b94c" +dependencies = [ + "futures", + "pharos", + "rustc_version", +] + +[[package]] +name = "auto_impl" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fee3da8ef1276b0bee5dd1c7258010d8fffd31801447323115a25560e1327b89" +dependencies = [ + "proc-macro-error", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "autocfg" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" + +[[package]] +name = "backtrace" +version = "0.3.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837" +dependencies = [ + "addr2line", + "cc", + "cfg-if", + "libc", + "miniz_oxide", + "object", + "rustc-demangle", +] + +[[package]] +name = "base16ct" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" + +[[package]] +name = "base64" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" + +[[package]] +name = "base64" +version = "0.21.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ba43ea6f343b788c8764558649e08df62f86c6ef251fdaeb1ffd010a9ae50a2" + +[[package]] +name = "base64ct" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" + +[[package]] +name = "bech32" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d86b93f97252c47b41663388e6d155714a9d0c398b99f1005cbc5f978b29f445" + +[[package]] +name = "bigdecimal" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c06619be423ea5bb86c95f087d5707942791a08a85530df0db2209a3ecfb8bc9" +dependencies = [ + "autocfg", + "libm", + "num-bigint", + "num-integer", + "num-traits", +] + +[[package]] +name = "bit-set" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" +dependencies = [ + "bit-vec", +] + +[[package]] +name = "bit-vec" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bitflags" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4682ae6287fcf752ecaabbfcc7b6f9b72aa33933dc23a554d853aea8eea8635" + +[[package]] +name = "bitvec" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" +dependencies = [ + "funty", + "radium", + "tap", + "wyz", +] + +[[package]] +name = "block-buffer" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" +dependencies = [ + "generic-array", +] + +[[package]] +name = "block-buffer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array", +] + +[[package]] +name = "bs58" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f5353f36341f7451062466f0b755b96ac3a9547e4d7f6b70d603fc721a7d7896" +dependencies = [ + "sha2", + "tinyvec", +] + +[[package]] +name = "bumpalo" +version = "3.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" + +[[package]] +name = "byte-slice-cast" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3ac9f8b63eca6fd385229b3675f6cc0dc5c8a5c8a54a59d4f52ffd670d87b0c" + +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + +[[package]] +name = "bytes" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" +dependencies = [ + "serde", +] + +[[package]] +name = "bzip2" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bdb116a6ef3f6c3698828873ad02c3014b3c85cadb88496095628e3ef1e347f8" +dependencies = [ + "bzip2-sys", + "libc", +] + +[[package]] +name = "bzip2-sys" +version = "0.1.11+1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "736a955f3fa7875102d57c82b8cac37ec45224a07fd32d58f9f7a186b6cd4cdc" +dependencies = [ + "cc", + "libc", + "pkg-config", +] + +[[package]] +name = "camino" +version = "1.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c59e92b5a388f549b863a7bea62612c09f24c8393560709a54558a9abdfb3b9c" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo-platform" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12024c4645c97566567129c204f65d5815a8c9aecf30fcbe682b2fe034996d36" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo_metadata" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7daec1a2a2129eeba1644b220b4647ec537b0b5d4bfd6876fcc5a540056b592" +dependencies = [ + "camino", + "cargo-platform", + "semver", + "serde", + "serde_json", + "thiserror", +] + +[[package]] +name = "cc" +version = "1.0.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" +dependencies = [ + "jobserver", + "libc", +] + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "chrono" +version = "0.4.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38" +dependencies = [ + "num-traits", +] + +[[package]] +name = "cipher" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" +dependencies = [ + "crypto-common", + "inout", +] + +[[package]] +name = "clap" +version = "4.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d04704f56c2cde07f43e8e2c154b43f216dc5c92fc98ada720177362f953b956" +dependencies = [ + "clap_builder", + "clap_derive", +] + +[[package]] +name = "clap_builder" +version = "4.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e231faeaca65ebd1ea3c737966bf858971cd38c3849107aa3ea7de90a804e45" +dependencies = [ + "anstream", + "anstyle", + "clap_lex", + "strsim", +] + +[[package]] +name = "clap_derive" +version = "4.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0862016ff20d69b84ef8247369fabf5c008a7417002411897d40ee1f4532b873" +dependencies = [ + "heck", + "proc-macro2", + "quote", + "syn 2.0.38", +] + +[[package]] +name = "clap_lex" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd7cc57abe963c6d3b9d8be5b06ba7c8957a930305ca90304f24ef040aa6f961" + +[[package]] +name = "coins-bip32" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b6be4a5df2098cd811f3194f64ddb96c267606bffd9689ac7b0160097b01ad3" +dependencies = [ + "bs58", + "coins-core", + "digest 0.10.7", + "hmac", + "k256", + "serde", + "sha2", + "thiserror", +] + +[[package]] +name = "coins-bip39" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3db8fba409ce3dc04f7d804074039eb68b960b0829161f8e06c95fea3f122528" +dependencies = [ + "bitvec", + "coins-bip32", + "hmac", + "once_cell", + "pbkdf2 0.12.2", + "rand", + "sha2", + "thiserror", +] + +[[package]] +name = "coins-core" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5286a0843c21f8367f7be734f89df9b822e0321d8bcce8d6e735aadff7d74979" +dependencies = [ + "base64 0.21.4", + "bech32", + "bs58", + "digest 0.10.7", + "generic-array", + "hex", + "ripemd", + "serde", + "serde_derive", + "sha2", + "sha3", + "thiserror", +] + +[[package]] +name = "colorchoice" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" + +[[package]] +name = "colored" +version = "2.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2674ec482fbc38012cf31e6c42ba0177b431a0cb6f15fe40efa5aab1bda516f6" +dependencies = [ + "is-terminal", + "lazy_static", + "windows-sys", +] + +[[package]] +name = "combine" +version = "3.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da3da6baa321ec19e1cc41d31bf599f00c783d0517095cdaf0332e3fe8d20680" +dependencies = [ + "ascii", + "byteorder", + "either", + "memchr", + "unreachable", +] + +[[package]] +name = "const-hex" +version = "1.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c37be52ef5e3b394db27a2341010685ad5103c72ac15ce2e9420a7e8f93f342c" +dependencies = [ + "cfg-if", + "cpufeatures", + "hex", + "serde", +] + +[[package]] +name = "const-oid" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28c122c3980598d243d63d9a704629a2d748d101f278052ff068be5a4423ab6f" + +[[package]] +name = "constant_time_eq" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" + +[[package]] +name = "convert_case" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" + +[[package]] +name = "core-foundation" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa" + +[[package]] +name = "cpufeatures" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a17b76ff3a4162b0b27f354a0c87015ddad39d35f9c0c36607a3bdd175dde1f1" +dependencies = [ + "libc", +] + +[[package]] +name = "crc32fast" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "crossbeam-deque" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef" +dependencies = [ + "cfg-if", + "crossbeam-epoch", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7" +dependencies = [ + "autocfg", + "cfg-if", + "crossbeam-utils", + "memoffset", + "scopeguard", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "crunchy" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" + +[[package]] +name = "crypto-bigint" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "740fe28e594155f10cfc383984cbefd529d7396050557148f79cb0f621204124" +dependencies = [ + "generic-array", + "rand_core", + "subtle", + "zeroize", +] + +[[package]] +name = "crypto-common" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +dependencies = [ + "generic-array", + "typenum", +] + +[[package]] +name = "ctr" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" +dependencies = [ + "cipher", +] + +[[package]] +name = "data-encoding" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2e66c9d817f1720209181c316d28635c050fa304f9c79e47a520882661b7308" + +[[package]] +name = "der" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fffa369a668c8af7dbf8b5e56c9f744fbd399949ed171606040001947de40b1c" +dependencies = [ + "const-oid", + "zeroize", +] + +[[package]] +name = "deranged" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f32d04922c60427da6f9fef14d042d9edddef64cb9d4ce0d64d0685fbeb1fd3" +dependencies = [ + "powerfmt", +] + +[[package]] +name = "derive_more" +version = "0.99.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" +dependencies = [ + "convert_case", + "proc-macro2", + "quote", + "rustc_version", + "syn 1.0.109", +] + +[[package]] +name = "diff" +version = "0.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56254986775e3233ffa9c4d7d3faaf6d36a2c09d30b20687e9f88bc8bafc16c8" + +[[package]] +name = "digest" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" +dependencies = [ + "generic-array", +] + +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer 0.10.4", + "const-oid", + "crypto-common", + "subtle", +] + +[[package]] +name = "dirs" +version = "5.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225" +dependencies = [ + "dirs-sys", +] + +[[package]] +name = "dirs-next" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1" +dependencies = [ + "cfg-if", + "dirs-sys-next", +] + +[[package]] +name = "dirs-sys" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c" +dependencies = [ + "libc", + "option-ext", + "redox_users", + "windows-sys", +] + +[[package]] +name = "dirs-sys-next" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" +dependencies = [ + "libc", + "redox_users", + "winapi", +] + +[[package]] +name = "dunce" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b" + +[[package]] +name = "ecdsa" +version = "0.16.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4b1e0c257a9e9f25f90ff76d7a68360ed497ee519c8e428d1825ef0000799d4" +dependencies = [ + "der", + "digest 0.10.7", + "elliptic-curve", + "rfc6979", + "signature", + "spki", +] + +[[package]] +name = "either" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" + +[[package]] +name = "elliptic-curve" +version = "0.13.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d97ca172ae9dc9f9b779a6e3a65d308f2af74e5b8c921299075bdb4a0370e914" +dependencies = [ + "base16ct", + "crypto-bigint", + "digest 0.10.7", + "ff", + "generic-array", + "group", + "pkcs8", + "rand_core", + "sec1", + "subtle", + "zeroize", +] + +[[package]] +name = "ena" +version = "0.14.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c533630cf40e9caa44bd91aadc88a75d75a4c3a12b4cfde353cbed41daa1e1f1" +dependencies = [ + "log 0.4.20", +] + +[[package]] +name = "encoding_rs" +version = "0.8.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "enr" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe81b5c06ecfdbc71dd845216f225f53b62a10cb8a16c946836a3467f701d05b" +dependencies = [ + "base64 0.21.4", + "bytes", + "hex", + "k256", + "log 0.4.20", + "rand", + "rlp", + "serde", + "sha3", + "zeroize", +] + +[[package]] +name = "equivalent" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" + +[[package]] +name = "errno" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3e13f66a2f95e32a39eaa81f6b95d42878ca0e1db0c7543723dfe12557e860" +dependencies = [ + "libc", + "windows-sys", +] + +[[package]] +name = "eth-keystore" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fda3bf123be441da5260717e0661c25a2fd9cb2b2c1d20bf2e05580047158ab" +dependencies = [ + "aes", + "ctr", + "digest 0.10.7", + "hex", + "hmac", + "pbkdf2 0.11.0", + "rand", + "scrypt", + "serde", + "serde_json", + "sha2", + "sha3", + "thiserror", + "uuid", +] + +[[package]] +name = "ethabi" +version = "18.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7413c5f74cc903ea37386a8965a936cbeb334bd270862fdece542c1b2dcbc898" +dependencies = [ + "ethereum-types", + "hex", + "once_cell", + "regex", + "serde", + "serde_json", + "sha3", + "thiserror", + "uint", +] + +[[package]] +name = "ethbloom" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c22d4b5885b6aa2fe5e8b9329fb8d232bf739e434e6b87347c63bdd00c120f60" +dependencies = [ + "crunchy", + "fixed-hash", + "impl-codec", + "impl-rlp", + "impl-serde", + "scale-info", + "tiny-keccak", +] + +[[package]] +name = "ethereum-types" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02d215cbf040552efcbe99a38372fe80ab9d00268e20012b79fcd0f073edd8ee" +dependencies = [ + "ethbloom", + "fixed-hash", + "impl-codec", + "impl-rlp", + "impl-serde", + "primitive-types", + "scale-info", + "uint", +] + +[[package]] +name = "ethers" +version = "2.0.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ad13497f6e0a24292fc7b408e30d22fe9dc262da1f40d7b542c3a44e7fc0476" +dependencies = [ + "ethers-addressbook", + "ethers-contract", + "ethers-core", + "ethers-etherscan", + "ethers-middleware", + "ethers-providers", + "ethers-signers", + "ethers-solc", +] + +[[package]] +name = "ethers-addressbook" +version = "2.0.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6e9e8acd0ed348403cc73a670c24daba3226c40b98dc1a41903766b3ab6240a" +dependencies = [ + "ethers-core", + "once_cell", + "serde", + "serde_json", +] + +[[package]] +name = "ethers-contract" +version = "2.0.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d79269278125006bb0552349c03593ffa9702112ca88bc7046cc669f148fb47c" +dependencies = [ + "const-hex", + "ethers-contract-abigen", + "ethers-contract-derive", + "ethers-core", + "ethers-providers", + "futures-util", + "once_cell", + "pin-project", + "serde", + "serde_json", + "thiserror", +] + +[[package]] +name = "ethers-contract-abigen" +version = "2.0.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce95a43c939b2e4e2f3191c5ad4a1f279780b8a39139c9905b43a7433531e2ab" +dependencies = [ + "Inflector", + "const-hex", + "dunce", + "ethers-core", + "ethers-etherscan", + "eyre", + "prettyplease", + "proc-macro2", + "quote", + "regex", + "reqwest", + "serde", + "serde_json", + "syn 2.0.38", + "toml", + "walkdir", +] + +[[package]] +name = "ethers-contract-derive" +version = "2.0.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e9ce44906fc871b3ee8c69a695ca7ec7f70e50cb379c9b9cb5e532269e492f6" +dependencies = [ + "Inflector", + "const-hex", + "ethers-contract-abigen", + "ethers-core", + "proc-macro2", + "quote", + "serde_json", + "syn 2.0.38", +] + +[[package]] +name = "ethers-core" +version = "2.0.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0a17f0708692024db9956b31d7a20163607d2745953f5ae8125ab368ba280ad" +dependencies = [ + "arrayvec", + "bytes", + "cargo_metadata", + "chrono", + "const-hex", + "elliptic-curve", + "ethabi", + "generic-array", + "k256", + "num_enum", + "once_cell", + "open-fastrlp", + "rand", + "rlp", + "serde", + "serde_json", + "strum", + "syn 2.0.38", + "tempfile", + "thiserror", + "tiny-keccak", + "unicode-xid", +] + +[[package]] +name = "ethers-etherscan" +version = "2.0.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e53451ea4a8128fbce33966da71132cf9e1040dcfd2a2084fd7733ada7b2045" +dependencies = [ + "ethers-core", + "reqwest", + "semver", + "serde", + "serde_json", + "thiserror", + "tracing", +] + +[[package]] +name = "ethers-middleware" +version = "2.0.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "473f1ccd0c793871bbc248729fa8df7e6d2981d6226e4343e3bbaa9281074d5d" +dependencies = [ + "async-trait", + "auto_impl", + "ethers-contract", + "ethers-core", + "ethers-etherscan", + "ethers-providers", + "ethers-signers", + "futures-channel", + "futures-locks", + "futures-util", + "instant", + "reqwest", + "serde", + "serde_json", + "thiserror", + "tokio", + "tracing", + "tracing-futures", + "url", +] + +[[package]] +name = "ethers-providers" +version = "2.0.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6838fa110e57d572336178b7c79e94ff88ef976306852d8cb87d9e5b1fc7c0b5" +dependencies = [ + "async-trait", + "auto_impl", + "base64 0.21.4", + "bytes", + "const-hex", + "enr", + "ethers-core", + "futures-core", + "futures-timer", + "futures-util", + "hashers", + "http", + "instant", + "jsonwebtoken", + "once_cell", + "pin-project", + "reqwest", + "serde", + "serde_json", + "thiserror", + "tokio", + "tokio-tungstenite", + "tracing", + "tracing-futures", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "ws_stream_wasm", +] + +[[package]] +name = "ethers-signers" +version = "2.0.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ea44bec930f12292866166f9ddbea6aa76304850e4d8dcd66dc492b43d00ff1" +dependencies = [ + "async-trait", + "coins-bip32", + "coins-bip39", + "const-hex", + "elliptic-curve", + "eth-keystore", + "ethers-core", + "rand", + "sha2", + "thiserror", + "tracing", +] + +[[package]] +name = "ethers-solc" +version = "2.0.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de34e484e7ae3cab99fbfd013d6c5dc7f9013676a4e0e414d8b12e1213e8b3ba" +dependencies = [ + "cfg-if", + "const-hex", + "dirs", + "dunce", + "ethers-core", + "glob", + "home", + "md-5", + "num_cpus", + "once_cell", + "path-slash", + "rayon", + "regex", + "semver", + "serde", + "serde_json", + "solang-parser", + "svm-rs", + "thiserror", + "tiny-keccak", + "tokio", + "tracing", + "walkdir", + "yansi", +] + +[[package]] +name = "eyre" +version = "0.6.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c2b6b5a29c02cdc822728b7d7b8ae1bab3e3b05d44522770ddd49722eeac7eb" +dependencies = [ + "indenter", + "once_cell", +] + +[[package]] +name = "fastrand" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" + +[[package]] +name = "ff" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" +dependencies = [ + "rand_core", + "subtle", +] + +[[package]] +name = "fixed-hash" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "835c052cb0c08c1acf6ffd71c022172e18723949c8282f2b9f27efbc51e64534" +dependencies = [ + "byteorder", + "rand", + "rustc-hex", + "static_assertions", +] + +[[package]] +name = "fixedbitset" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" + +[[package]] +name = "flate2" +version = "1.0.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e" +dependencies = [ + "crc32fast", + "miniz_oxide", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "foreign-types" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" +dependencies = [ + "foreign-types-shared", +] + +[[package]] +name = "foreign-types-shared" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" + +[[package]] +name = "form_urlencoded" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652" +dependencies = [ + "percent-encoding", +] + +[[package]] +name = "fs2" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9564fc758e15025b46aa6643b1b77d047d1a56a1aea6e01002ac0c7026876213" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "funty" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" + +[[package]] +name = "futures" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23342abe12aba583913b2e62f22225ff9c950774065e4bfb61a19cd9770fec40" +dependencies = [ + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-channel" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2" +dependencies = [ + "futures-core", + "futures-sink", +] + +[[package]] +name = "futures-core" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c" + +[[package]] +name = "futures-executor" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccecee823288125bd88b4d7f565c9e58e41858e47ab72e8ea2d64e93624386e0" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-io" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964" + +[[package]] +name = "futures-locks" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45ec6fe3675af967e67c5536c0b9d44e34e6c52f86bedc4ea49c5317b8e94d06" +dependencies = [ + "futures-channel", + "futures-task", +] + +[[package]] +name = "futures-macro" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.38", +] + +[[package]] +name = "futures-sink" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e" + +[[package]] +name = "futures-task" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65" + +[[package]] +name = "futures-timer" +version = "3.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c" +dependencies = [ + "gloo-timers", + "send_wrapper 0.4.0", +] + +[[package]] +name = "futures-util" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "pin-utils", + "slab", +] + +[[package]] +name = "fxhash" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" +dependencies = [ + "byteorder", +] + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", + "zeroize", +] + +[[package]] +name = "getrandom" +version = "0.2.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427" +dependencies = [ + "cfg-if", + "libc", + "wasi", +] + +[[package]] +name = "gimli" +version = "0.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fb8d784f27acf97159b40fc4db5ecd8aa23b9ad5ef69cdd136d3bc80665f0c0" + +[[package]] +name = "glob" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" + +[[package]] +name = "gloo-timers" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b995a66bb87bebce9a0f4a95aed01daca4872c050bfcb21653361c03bc35e5c" +dependencies = [ + "futures-channel", + "futures-core", + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "graphql-introspection-query" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f2a4732cf5140bd6c082434494f785a19cfb566ab07d1382c3671f5812fed6d" +dependencies = [ + "serde", +] + +[[package]] +name = "graphql-parser" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2ebc8013b4426d5b81a4364c419a95ed0b404af2b82e2457de52d9348f0e474" +dependencies = [ + "combine", + "thiserror", +] + +[[package]] +name = "graphql_client" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09cdf7b487d864c2939b23902291a5041bc4a84418268f25fda1c8d4e15ad8fa" +dependencies = [ + "graphql_query_derive", + "serde", + "serde_json", +] + +[[package]] +name = "graphql_client_codegen" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a40f793251171991c4eb75bd84bc640afa8b68ff6907bc89d3b712a22f700506" +dependencies = [ + "graphql-introspection-query", + "graphql-parser", + "heck", + "lazy_static", + "proc-macro2", + "quote", + "serde", + "serde_json", + "syn 1.0.109", +] + +[[package]] +name = "graphql_query_derive" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00bda454f3d313f909298f626115092d348bc231025699f557b27e248475f48c" +dependencies = [ + "graphql_client_codegen", + "proc-macro2", + "syn 1.0.109", +] + +[[package]] +name = "group" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" +dependencies = [ + "ff", + "rand_core", + "subtle", +] + +[[package]] +name = "h2" +version = "0.3.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91fc23aa11be92976ef4729127f1a74adf36d8436f7816b185d18df956790833" +dependencies = [ + "bytes", + "fnv", + "futures-core", + "futures-sink", + "futures-util", + "http", + "indexmap 1.9.3", + "slab", + "tokio", + "tokio-util", + "tracing", +] + +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" + +[[package]] +name = "hashbrown" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7dfda62a12f55daeae5015f81b0baea145391cb4520f86c248fc615d72640d12" + +[[package]] +name = "hashers" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2bca93b15ea5a746f220e56587f71e73c6165eab783df9e26590069953e3c30" +dependencies = [ + "fxhash", +] + +[[package]] +name = "headers" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06683b93020a07e3dbcf5f8c0f6d40080d725bea7936fc01ad345c01b97dc270" +dependencies = [ + "base64 0.21.4", + "bytes", + "headers-core", + "http", + "httpdate", + "mime", + "sha1", +] + +[[package]] +name = "headers-core" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7f66481bfee273957b1f20485a4ff3362987f85b2c236580d81b4eb7a326429" +dependencies = [ + "http", +] + +[[package]] +name = "heck" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" + +[[package]] +name = "hermit-abi" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7" + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" + +[[package]] +name = "hmac" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" +dependencies = [ + "digest 0.10.7", +] + +[[package]] +name = "home" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5444c27eef6923071f7ebcc33e3444508466a76f7a2b93da00ed6e19f30c1ddb" +dependencies = [ + "windows-sys", +] + +[[package]] +name = "http" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + +[[package]] +name = "http-body" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" +dependencies = [ + "bytes", + "http", + "pin-project-lite", +] + +[[package]] +name = "httparse" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" + +[[package]] +name = "httpdate" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" + +[[package]] +name = "hyper" +version = "0.14.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffb1cfd654a8219eaef89881fdb3bb3b1cdc5fa75ded05d6933b2b382e395468" +dependencies = [ + "bytes", + "futures-channel", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "httparse", + "httpdate", + "itoa", + "pin-project-lite", + "socket2 0.4.9", + "tokio", + "tower-service", + "tracing", + "want", +] + +[[package]] +name = "hyper-rustls" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d78e1e73ec14cf7375674f74d7dde185c8206fd9dea6fb6295e8a98098aaa97" +dependencies = [ + "futures-util", + "http", + "hyper", + "rustls", + "tokio", + "tokio-rustls", +] + +[[package]] +name = "hyper-tls" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" +dependencies = [ + "bytes", + "hyper", + "native-tls", + "tokio", + "tokio-native-tls", +] + +[[package]] +name = "idna" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c" +dependencies = [ + "unicode-bidi", + "unicode-normalization", +] + +[[package]] +name = "impl-codec" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba6a270039626615617f3f36d15fc827041df3b78c439da2cadfa47455a77f2f" +dependencies = [ + "parity-scale-codec", +] + +[[package]] +name = "impl-rlp" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f28220f89297a075ddc7245cd538076ee98b01f2a9c23a53a4f1105d5a322808" +dependencies = [ + "rlp", +] + +[[package]] +name = "impl-serde" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebc88fc67028ae3db0c853baa36269d398d5f45b6982f95549ff5def78c935cd" +dependencies = [ + "serde", +] + +[[package]] +name = "impl-trait-for-tuples" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11d7a9f6330b71fea57921c9b61c47ee6e84f72d394754eff6163ae67e7395eb" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "indenter" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683" + +[[package]] +name = "indexmap" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" +dependencies = [ + "autocfg", + "hashbrown 0.12.3", +] + +[[package]] +name = "indexmap" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8adf3ddd720272c6ea8bf59463c04e0f93d0bbf7c5439b691bca2987e0270897" +dependencies = [ + "equivalent", + "hashbrown 0.14.1", +] + +[[package]] +name = "inout" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" +dependencies = [ + "generic-array", +] + +[[package]] +name = "instant" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "ipnet" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28b29a3cd74f0f4598934efe3aeba42bae0eb4680554128851ebbecb02af14e6" + +[[package]] +name = "is-terminal" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b" +dependencies = [ + "hermit-abi", + "rustix", + "windows-sys", +] + +[[package]] +name = "itertools" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "1.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" + +[[package]] +name = "jobserver" +version = "0.1.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c37f63953c4c63420ed5fd3d6d398c719489b9f872b9fa683262f8edd363c7d" +dependencies = [ + "libc", +] + +[[package]] +name = "js-sys" +version = "0.3.64" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a" +dependencies = [ + "wasm-bindgen", +] + +[[package]] +name = "jsonrpc-core" +version = "18.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14f7f76aef2d054868398427f6c54943cf3d1caa9a7ec7d0c38d69df97a965eb" +dependencies = [ + "futures", + "futures-executor", + "futures-util", + "log 0.4.20", + "serde", + "serde_derive", + "serde_json", +] + +[[package]] +name = "jsonwebtoken" +version = "8.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6971da4d9c3aa03c3d8f3ff0f4155b534aad021292003895a469716b2a230378" +dependencies = [ + "base64 0.21.4", + "pem", + "ring", + "serde", + "serde_json", + "simple_asn1", +] + +[[package]] +name = "k256" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cadb76004ed8e97623117f3df85b17aaa6626ab0b0831e6573f104df16cd1bcc" +dependencies = [ + "cfg-if", + "ecdsa", + "elliptic-curve", + "once_cell", + "sha2", + "signature", +] + +[[package]] +name = "keccak" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f6d5ed8676d904364de097082f4e7d240b571b67989ced0240f08b7f966f940" +dependencies = [ + "cpufeatures", +] + +[[package]] +name = "lalrpop" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da4081d44f4611b66c6dd725e6de3169f9f63905421e8626fcb86b6a898998b8" +dependencies = [ + "ascii-canvas", + "bit-set", + "diff", + "ena", + "is-terminal", + "itertools 0.10.5", + "lalrpop-util", + "petgraph", + "regex", + "regex-syntax 0.7.5", + "string_cache", + "term", + "tiny-keccak", + "unicode-xid", +] + +[[package]] +name = "lalrpop-util" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f35c735096c0293d313e8f2a641627472b83d01b937177fe76e5e2708d31e0d" + +[[package]] +name = "lazy_static" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" + +[[package]] +name = "libc" +version = "0.2.149" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a08173bc88b7955d1b3145aa561539096c421ac8debde8cbc3612ec635fee29b" + +[[package]] +name = "libm" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" + +[[package]] +name = "linux-raw-sys" +version = "0.4.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da2479e8c062e40bf0066ffa0bc823de0a9368974af99c9f6df941d2c231e03f" + +[[package]] +name = "lock_api" +version = "0.4.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16" +dependencies = [ + "autocfg", + "scopeguard", +] + +[[package]] +name = "log" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e19e8d5c34a3e0e2223db8e060f9e8264aeeb5c5fc64a4ee9965c062211c024b" +dependencies = [ + "log 0.4.20", +] + +[[package]] +name = "log" +version = "0.4.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" + +[[package]] +name = "md-5" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" +dependencies = [ + "cfg-if", + "digest 0.10.7", +] + +[[package]] +name = "memchr" +version = "2.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" + +[[package]] +name = "memoffset" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" +dependencies = [ + "autocfg", +] + +[[package]] +name = "mime" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" + +[[package]] +name = "minicbor" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d15f4203d71fdf90903c2696e55426ac97a363c67b218488a73b534ce7aca10" + +[[package]] +name = "miniz_oxide" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" +dependencies = [ + "adler", +] + +[[package]] +name = "mio" +version = "0.8.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2" +dependencies = [ + "libc", + "wasi", + "windows-sys", +] + +[[package]] +name = "mustache" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51956ef1c5d20a1384524d91e616fb44dfc7d8f249bf696d49c97dd3289ecab5" +dependencies = [ + "log 0.3.9", + "serde", +] + +[[package]] +name = "native-tls" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e" +dependencies = [ + "lazy_static", + "libc", + "log 0.4.20", + "openssl", + "openssl-probe", + "openssl-sys", + "schannel", + "security-framework", + "security-framework-sys", + "tempfile", +] + +[[package]] +name = "new_debug_unreachable" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4a24736216ec316047a1fc4252e27dabb04218aa4a3f37c6e7ddbf1f9782b54" + +[[package]] +name = "num-bigint" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-integer" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" +dependencies = [ + "autocfg", + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +dependencies = [ + "autocfg", +] + +[[package]] +name = "num_cpus" +version = "1.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" +dependencies = [ + "hermit-abi", + "libc", +] + +[[package]] +name = "num_enum" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70bf6736f74634d299d00086f02986875b3c2d924781a6a2cb6c201e73da0ceb" +dependencies = [ + "num_enum_derive", +] + +[[package]] +name = "num_enum_derive" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56ea360eafe1022f7cc56cd7b869ed57330fb2453d0c7831d99b74c65d2f5597" +dependencies = [ + "proc-macro-crate", + "proc-macro2", + "quote", + "syn 2.0.38", +] + +[[package]] +name = "object" +version = "0.32.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0" +dependencies = [ + "memchr", +] + +[[package]] +name = "once_cell" +version = "1.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" + +[[package]] +name = "opaque-debug" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" + +[[package]] +name = "open-fastrlp" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "786393f80485445794f6043fd3138854dd109cc6c4bd1a6383db304c9ce9b9ce" +dependencies = [ + "arrayvec", + "auto_impl", + "bytes", + "ethereum-types", + "open-fastrlp-derive", +] + +[[package]] +name = "open-fastrlp-derive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "003b2be5c6c53c1cfeb0a238b8a1c3915cd410feb684457a36c10038f764bb1c" +dependencies = [ + "bytes", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "openssl" +version = "0.10.57" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bac25ee399abb46215765b1cb35bc0212377e58a061560d8b29b024fd0430e7c" +dependencies = [ + "bitflags 2.4.0", + "cfg-if", + "foreign-types", + "libc", + "once_cell", + "openssl-macros", + "openssl-sys", +] + +[[package]] +name = "openssl-macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.38", +] + +[[package]] +name = "openssl-probe" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" + +[[package]] +name = "openssl-sys" +version = "0.9.93" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db4d56a4c0478783083cfafcc42493dd4a981d41669da64b4572a2a089b51b1d" +dependencies = [ + "cc", + "libc", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "option-ext" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" + +[[package]] +name = "parity-scale-codec" +version = "3.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0dec8a8073036902368c2cdc0387e85ff9a37054d7e7c98e592145e0c92cd4fb" +dependencies = [ + "arrayvec", + "bitvec", + "byte-slice-cast", + "impl-trait-for-tuples", + "parity-scale-codec-derive", + "serde", +] + +[[package]] +name = "parity-scale-codec-derive" +version = "3.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "312270ee71e1cd70289dacf597cab7b207aa107d2f28191c2ae45b2ece18a260" +dependencies = [ + "proc-macro-crate", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "parking_lot" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall 0.3.5", + "smallvec", + "windows-targets", +] + +[[package]] +name = "password-hash" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7676374caaee8a325c9e7a2ae557f216c5563a171d6997b0ef8a65af35147700" +dependencies = [ + "base64ct", + "rand_core", + "subtle", +] + +[[package]] +name = "path-slash" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e91099d4268b0e11973f036e885d652fb0b21fedcf69738c627f94db6a44f42" + +[[package]] +name = "pbkdf2" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917" +dependencies = [ + "digest 0.10.7", + "hmac", + "password-hash", + "sha2", +] + +[[package]] +name = "pbkdf2" +version = "0.12.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2" +dependencies = [ + "digest 0.10.7", + "hmac", +] + +[[package]] +name = "pem" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8835c273a76a90455d7344889b0964598e3316e2a79ede8e36f16bdcf2228b8" +dependencies = [ + "base64 0.13.1", +] + +[[package]] +name = "percent-encoding" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94" + +[[package]] +name = "petgraph" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9" +dependencies = [ + "fixedbitset", + "indexmap 2.0.2", +] + +[[package]] +name = "pharos" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9567389417feee6ce15dd6527a8a1ecac205ef62c2932bcf3d9f6fc5b78b414" +dependencies = [ + "futures", + "rustc_version", +] + +[[package]] +name = "phf" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc" +dependencies = [ + "phf_macros", + "phf_shared 0.11.2", +] + +[[package]] +name = "phf_generator" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0" +dependencies = [ + "phf_shared 0.11.2", + "rand", +] + +[[package]] +name = "phf_macros" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3444646e286606587e49f3bcf1679b8cef1dc2c5ecc29ddacaffc305180d464b" +dependencies = [ + "phf_generator", + "phf_shared 0.11.2", + "proc-macro2", + "quote", + "syn 2.0.38", +] + +[[package]] +name = "phf_shared" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096" +dependencies = [ + "siphasher", +] + +[[package]] +name = "phf_shared" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b" +dependencies = [ + "siphasher", +] + +[[package]] +name = "pin-project" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fda4ed1c6c173e3fc7a83629421152e01d7b1f9b7f65fb301e490e8cfc656422" +dependencies = [ + "pin-project-internal", +] + +[[package]] +name = "pin-project-internal" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.38", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "pkcs8" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" +dependencies = [ + "der", + "spki", +] + +[[package]] +name = "pkg-config" +version = "0.3.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964" + +[[package]] +name = "powerfmt" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" + +[[package]] +name = "ppv-lite86" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" + +[[package]] +name = "precomputed-hash" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" + +[[package]] +name = "prettyplease" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae005bd773ab59b4725093fd7df83fd7892f7d8eafb48dbd7de6e024e4215f9d" +dependencies = [ + "proc-macro2", + "syn 2.0.38", +] + +[[package]] +name = "primitive-types" +version = "0.12.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b34d9fd68ae0b74a41b21c03c2f62847aa0ffea044eee893b4c140b37e244e2" +dependencies = [ + "fixed-hash", + "impl-codec", + "impl-rlp", + "impl-serde", + "scale-info", + "uint", +] + +[[package]] +name = "proc-macro-crate" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" +dependencies = [ + "once_cell", + "toml_edit", +] + +[[package]] +name = "proc-macro-error" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +dependencies = [ + "proc-macro-error-attr", + "proc-macro2", + "quote", + "syn 1.0.109", + "version_check", +] + +[[package]] +name = "proc-macro-error-attr" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +dependencies = [ + "proc-macro2", + "quote", + "version_check", +] + +[[package]] +name = "proc-macro2" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quote" +version = "1.0.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "radium" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" + +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha", + "rand_core", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom", +] + +[[package]] +name = "rayon" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c27db03db7734835b3f53954b534c91069375ce6ccaa2e065441e07d9b6cdb1" +dependencies = [ + "either", + "rayon-core", +] + +[[package]] +name = "rayon-core" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ce3fb6ad83f861aac485e76e1985cd109d9a3713802152be56c3b1f0e0658ed" +dependencies = [ + "crossbeam-deque", + "crossbeam-utils", +] + +[[package]] +name = "redox_syscall" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" +dependencies = [ + "bitflags 1.3.2", +] + +[[package]] +name = "redox_syscall" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" +dependencies = [ + "bitflags 1.3.2", +] + +[[package]] +name = "redox_users" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b" +dependencies = [ + "getrandom", + "redox_syscall 0.2.16", + "thiserror", +] + +[[package]] +name = "regex" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aaac441002f822bc9705a681810a4dd2963094b9ca0ddc41cb963a4c189189ea" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata", + "regex-syntax 0.8.2", +] + +[[package]] +name = "regex-automata" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5011c7e263a695dc8ca064cddb722af1be54e517a280b12a5356f98366899e5d" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax 0.8.2", +] + +[[package]] +name = "regex-syntax" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da" + +[[package]] +name = "regex-syntax" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" + +[[package]] +name = "reqwest" +version = "0.11.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "046cd98826c46c2ac8ddecae268eb5c2e58628688a5fc7a2643704a73faba95b" +dependencies = [ + "base64 0.21.4", + "bytes", + "encoding_rs", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "hyper", + "hyper-rustls", + "hyper-tls", + "ipnet", + "js-sys", + "log 0.4.20", + "mime", + "native-tls", + "once_cell", + "percent-encoding", + "pin-project-lite", + "rustls", + "rustls-pemfile", + "serde", + "serde_json", + "serde_urlencoded", + "system-configuration", + "tokio", + "tokio-native-tls", + "tokio-rustls", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "webpki-roots", + "winreg", +] + +[[package]] +name = "rfc6979" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" +dependencies = [ + "hmac", + "subtle", +] + +[[package]] +name = "ring" +version = "0.16.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" +dependencies = [ + "cc", + "libc", + "once_cell", + "spin", + "untrusted", + "web-sys", + "winapi", +] + +[[package]] +name = "ripemd" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd124222d17ad93a644ed9d011a40f4fb64aa54275c08cc216524a9ea82fb09f" +dependencies = [ + "digest 0.10.7", +] + +[[package]] +name = "rlp" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb919243f34364b6bd2fc10ef797edbfa75f33c252e7998527479c6d6b47e1ec" +dependencies = [ + "bytes", + "rlp-derive", + "rustc-hex", +] + +[[package]] +name = "rlp-derive" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e33d7b2abe0c340d8797fe2907d3f20d3b5ea5908683618bfe80df7f621f672a" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "rust-bigint" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe1d6964d886b707f3e2cec76ac5b0e887661a6699f695ed0d3d5bb4852d6959" +dependencies = [ + "getrandom", + "rust-gmp-kzen", + "serde", + "serde_derive", +] + +[[package]] +name = "rust-gmp-kzen" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e654bb304958a567aefa09e83cc313251388202c40bfc245fac19a0e2dd8d08" +dependencies = [ + "libc", + "num-traits", + "serde", +] + +[[package]] +name = "rustc-demangle" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" + +[[package]] +name = "rustc-hex" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e75f6a532d0fd9f7f13144f392b6ad56a32696bfcd9c78f797f16bbb6f072d6" + +[[package]] +name = "rustc_version" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +dependencies = [ + "semver", +] + +[[package]] +name = "rustix" +version = "0.38.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "745ecfa778e66b2b63c88a61cb36e0eea109e803b0b86bf9879fbc77c70e86ed" +dependencies = [ + "bitflags 2.4.0", + "errno", + "libc", + "linux-raw-sys", + "windows-sys", +] + +[[package]] +name = "rustls" +version = "0.21.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd8d6c9f025a446bc4d18ad9632e69aec8f287aa84499ee335599fabd20c3fd8" +dependencies = [ + "log 0.4.20", + "ring", + "rustls-webpki", + "sct", +] + +[[package]] +name = "rustls-pemfile" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d3987094b1d07b653b7dfdc3f70ce9a1da9c51ac18c1b06b662e4f9a0e9f4b2" +dependencies = [ + "base64 0.21.4", +] + +[[package]] +name = "rustls-webpki" +version = "0.101.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c7d5dece342910d9ba34d259310cae3e0154b873b35408b787b59bce53d34fe" +dependencies = [ + "ring", + "untrusted", +] + +[[package]] +name = "rustversion" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4" + +[[package]] +name = "ryu" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741" + +[[package]] +name = "salsa20" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97a22f5af31f73a954c10289c93e8a50cc23d971e80ee446f1f6f7137a088213" +dependencies = [ + "cipher", +] + +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "scale-info" +version = "2.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35c0a159d0c45c12b20c5a844feb1fe4bea86e28f17b92a5f0c42193634d3782" +dependencies = [ + "cfg-if", + "derive_more", + "parity-scale-codec", + "scale-info-derive", +] + +[[package]] +name = "scale-info-derive" +version = "2.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "912e55f6d20e0e80d63733872b40e1227c0bce1e1ab81ba67d696339bfd7fd29" +dependencies = [ + "proc-macro-crate", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "schannel" +version = "0.1.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c3733bf4cf7ea0880754e19cb5a462007c4a8c1914bff372ccc95b464f1df88" +dependencies = [ + "windows-sys", +] + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "scrypt" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f9e24d2b632954ded8ab2ef9fea0a0c769ea56ea98bddbafbad22caeeadf45d" +dependencies = [ + "hmac", + "pbkdf2 0.11.0", + "salsa20", + "sha2", +] + +[[package]] +name = "sct" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4" +dependencies = [ + "ring", + "untrusted", +] + +[[package]] +name = "sec1" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" +dependencies = [ + "base16ct", + "der", + "generic-array", + "pkcs8", + "subtle", + "zeroize", +] + +[[package]] +name = "secp256k1" +version = "0.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25996b82292a7a57ed3508f052cfff8640d38d32018784acd714758b43da9c8f" +dependencies = [ + "secp256k1-sys", +] + +[[package]] +name = "secp256k1-sys" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70a129b9e9efbfb223753b9163c4ab3b13cff7fd9c7f010fbac25ab4099fa07e" +dependencies = [ + "cc", +] + +[[package]] +name = "security-framework" +version = "2.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de" +dependencies = [ + "bitflags 1.3.2", + "core-foundation", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "2.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "semver" +version = "1.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090" +dependencies = [ + "serde", +] + +[[package]] +name = "send_wrapper" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f638d531eccd6e23b980caf34876660d38e265409d8e99b397ab71eb3612fad0" + +[[package]] +name = "send_wrapper" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" + +[[package]] +name = "serde" +version = "1.0.189" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e422a44e74ad4001bdc8eede9a4570ab52f71190e9c076d14369f38b9200537" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_bytes" +version = "0.11.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab33ec92f677585af6d88c65593ae2375adde54efdbf16d597f2cbc7a6d368ff" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_derive" +version = "1.0.189" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e48d1f918009ce3145511378cf68d613e3b3d9137d67272562080d68a2b32d5" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.38", +] + +[[package]] +name = "serde_json" +version = "1.0.107" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b420ce6e3d8bd882e9b243c6eed35dbc9a6110c9769e74b584e0d68d1f20c65" +dependencies = [ + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "serde_spanned" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96426c9936fd7a0124915f9185ea1d20aa9445cc9821142f0a73bc9207a2e186" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_urlencoded" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" +dependencies = [ + "form_urlencoded", + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "sha-1" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99cd6713db3cf16b6c84e06321e049a9b9f699826e16096d23bbcc44d15d51a6" +dependencies = [ + "block-buffer 0.9.0", + "cfg-if", + "cpufeatures", + "digest 0.9.0", + "opaque-debug", +] + +[[package]] +name = "sha1" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest 0.10.7", +] + +[[package]] +name = "sha2" +version = "0.10.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest 0.10.7", +] + +[[package]] +name = "sha3" +version = "0.10.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" +dependencies = [ + "digest 0.10.7", + "keccak", +] + +[[package]] +name = "signal-hook-registry" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1" +dependencies = [ + "libc", +] + +[[package]] +name = "signature" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e1788eed21689f9cf370582dfc467ef36ed9c707f073528ddafa8d83e3b8500" +dependencies = [ + "digest 0.10.7", + "rand_core", +] + +[[package]] +name = "simple_asn1" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adc4e5204eb1910f40f9cfa375f6f05b68c3abac4b6fd879c8ff5e7ae8a0a085" +dependencies = [ + "num-bigint", + "num-traits", + "thiserror", + "time", +] + +[[package]] +name = "siphasher" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" + +[[package]] +name = "slab" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" +dependencies = [ + "autocfg", +] + +[[package]] +name = "smallvec" +version = "1.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "942b4a808e05215192e39f4ab80813e599068285906cc91aa64f923db842bd5a" + +[[package]] +name = "socket2" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "socket2" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4031e820eb552adee9295814c0ced9e5cf38ddf1e8b7d566d6de8e2538ea989e" +dependencies = [ + "libc", + "windows-sys", +] + +[[package]] +name = "soketto" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41d1c5305e39e09653383c2c7244f2f78b3bcae37cf50c64cb4789c9f5096ec2" +dependencies = [ + "base64 0.13.1", + "bytes", + "futures", + "httparse", + "log 0.4.20", + "rand", + "sha-1", +] + +[[package]] +name = "solang-parser" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7cb9fa2fa2fa6837be8a2495486ff92e3ffe68a99b6eeba288e139efdd842457" +dependencies = [ + "itertools 0.11.0", + "lalrpop", + "lalrpop-util", + "phf", + "thiserror", + "unicode-xid", +] + +[[package]] +name = "spin" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" + +[[package]] +name = "spki" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d1e996ef02c474957d681f1b05213dfb0abab947b446a62d37770b23500184a" +dependencies = [ + "base64ct", + "der", +] + +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + +[[package]] +name = "string_cache" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f91138e76242f575eb1d3b38b4f1362f10d3a43f47d182a5b359af488a02293b" +dependencies = [ + "new_debug_unreachable", + "once_cell", + "parking_lot", + "phf_shared 0.10.0", + "precomputed-hash", +] + +[[package]] +name = "strsim" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" + +[[package]] +name = "strum" +version = "0.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "290d54ea6f91c969195bdbcd7442c8c2a2ba87da8bf60a7ee86a235d4bc1e125" +dependencies = [ + "strum_macros", +] + +[[package]] +name = "strum_macros" +version = "0.25.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad8d03b598d3d0fff69bf533ee3ef19b8eeb342729596df84bcc7e1f96ec4059" +dependencies = [ + "heck", + "proc-macro2", + "quote", + "rustversion", + "syn 2.0.38", +] + +[[package]] +name = "subgraph" +version = "0.1.0" +dependencies = [ + "anyhow", + "bigdecimal", + "clap", + "colored", + "ethers", + "graphql_client", + "hex", + "lazy_static", + "minicbor", + "mustache", + "once_cell", + "reqwest", + "rust-bigint", + "serde", + "serde_bytes", + "serde_json", + "thiserror", + "tiny-keccak", + "tokio", + "url", + "web3", +] + +[[package]] +name = "subtle" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" + +[[package]] +name = "svm-rs" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "597e3a746727984cb7ea2487b6a40726cad0dbe86628e7d429aa6b8c4c153db4" +dependencies = [ + "dirs", + "fs2", + "hex", + "once_cell", + "reqwest", + "semver", + "serde", + "serde_json", + "sha2", + "thiserror", + "url", + "zip", +] + +[[package]] +name = "syn" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.38" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e96b79aaa137db8f61e26363a0c9b47d8b4ec75da28b7d1d614c2303e232408b" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "system-configuration" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" +dependencies = [ + "bitflags 1.3.2", + "core-foundation", + "system-configuration-sys", +] + +[[package]] +name = "system-configuration-sys" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "tap" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" + +[[package]] +name = "tempfile" +version = "3.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb94d2f3cc536af71caac6b6fcebf65860b347e7ce0cc9ebe8f70d3e521054ef" +dependencies = [ + "cfg-if", + "fastrand", + "redox_syscall 0.3.5", + "rustix", + "windows-sys", +] + +[[package]] +name = "term" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c59df8ac95d96ff9bede18eb7300b0fda5e5d8d90960e76f8e14ae765eedbf1f" +dependencies = [ + "dirs-next", + "rustversion", + "winapi", +] + +[[package]] +name = "thiserror" +version = "1.0.49" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1177e8c6d7ede7afde3585fd2513e611227efd6481bd78d2e82ba1ce16557ed4" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.49" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10712f02019e9288794769fba95cd6847df9874d49d871d062172f9dd41bc4cc" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.38", +] + +[[package]] +name = "time" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4a34ab300f2dee6e562c10a046fc05e358b29f9bf92277f30c3c8d82275f6f5" +dependencies = [ + "deranged", + "itoa", + "powerfmt", + "serde", + "time-core", + "time-macros", +] + +[[package]] +name = "time-core" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" + +[[package]] +name = "time-macros" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ad70d68dba9e1f8aceda7aa6711965dfec1cac869f311a51bd08b3a2ccbce20" +dependencies = [ + "time-core", +] + +[[package]] +name = "tiny-keccak" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" +dependencies = [ + "crunchy", +] + +[[package]] +name = "tinyvec" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" + +[[package]] +name = "tokio" +version = "1.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f38200e3ef7995e5ef13baec2f432a6da0aa9ac495b2c0e8f3b7eec2c92d653" +dependencies = [ + "backtrace", + "bytes", + "libc", + "mio", + "num_cpus", + "parking_lot", + "pin-project-lite", + "signal-hook-registry", + "socket2 0.5.4", + "tokio-macros", + "windows-sys", +] + +[[package]] +name = "tokio-macros" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.38", +] + +[[package]] +name = "tokio-native-tls" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" +dependencies = [ + "native-tls", + "tokio", +] + +[[package]] +name = "tokio-rustls" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" +dependencies = [ + "rustls", + "tokio", +] + +[[package]] +name = "tokio-stream" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842" +dependencies = [ + "futures-core", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "tokio-tungstenite" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "212d5dcb2a1ce06d81107c3d0ffa3121fe974b73f068c8282cb1c32328113b6c" +dependencies = [ + "futures-util", + "log 0.4.20", + "rustls", + "tokio", + "tokio-rustls", + "tungstenite", + "webpki-roots", +] + +[[package]] +name = "tokio-util" +version = "0.7.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d68074620f57a0b21594d9735eb2e98ab38b17f80d3fcb189fca266771ca60d" +dependencies = [ + "bytes", + "futures-core", + "futures-io", + "futures-sink", + "pin-project-lite", + "tokio", + "tracing", +] + +[[package]] +name = "toml" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd79e69d3b627db300ff956027cc6c3798cef26d22526befdfcd12feeb6d2257" +dependencies = [ + "serde", + "serde_spanned", + "toml_datetime", + "toml_edit", +] + +[[package]] +name = "toml_datetime" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b" +dependencies = [ + "serde", +] + +[[package]] +name = "toml_edit" +version = "0.19.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" +dependencies = [ + "indexmap 2.0.2", + "serde", + "serde_spanned", + "toml_datetime", + "winnow", +] + +[[package]] +name = "tower-service" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" + +[[package]] +name = "tracing" +version = "0.1.39" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee2ef2af84856a50c1d430afce2fdded0a4ec7eda868db86409b4543df0797f9" +dependencies = [ + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.38", +] + +[[package]] +name = "tracing-core" +version = "0.1.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" +dependencies = [ + "once_cell", +] + +[[package]] +name = "tracing-futures" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" +dependencies = [ + "pin-project", + "tracing", +] + +[[package]] +name = "try-lock" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed" + +[[package]] +name = "tungstenite" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e3dac10fd62eaf6617d3a904ae222845979aec67c615d1c842b4002c7666fb9" +dependencies = [ + "byteorder", + "bytes", + "data-encoding", + "http", + "httparse", + "log 0.4.20", + "rand", + "rustls", + "sha1", + "thiserror", + "url", + "utf-8", +] + +[[package]] +name = "typenum" +version = "1.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" + +[[package]] +name = "uint" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76f64bba2c53b04fcab63c01a7d7427eadc821e3bc48c34dc9ba29c501164b52" +dependencies = [ + "byteorder", + "crunchy", + "hex", + "static_assertions", +] + +[[package]] +name = "unicode-bidi" +version = "0.3.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" + +[[package]] +name = "unicode-ident" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unicode-normalization" +version = "0.1.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "unicode-xid" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" + +[[package]] +name = "unreachable" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "382810877fe448991dfc7f0dd6e3ae5d58088fd0ea5e35189655f84e6814fa56" +dependencies = [ + "void", +] + +[[package]] +name = "untrusted" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" + +[[package]] +name = "url" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "143b538f18257fac9cad154828a57c6bf5157e1aa604d4816b5995bf6de87ae5" +dependencies = [ + "form_urlencoded", + "idna", + "percent-encoding", +] + +[[package]] +name = "utf-8" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" + +[[package]] +name = "utf8parse" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" + +[[package]] +name = "uuid" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7" +dependencies = [ + "getrandom", + "serde", +] + +[[package]] +name = "vcpkg" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" + +[[package]] +name = "version_check" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" + +[[package]] +name = "void" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" + +[[package]] +name = "walkdir" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee" +dependencies = [ + "same-file", + "winapi-util", +] + +[[package]] +name = "want" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" +dependencies = [ + "try-lock", +] + +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "wasm-bindgen" +version = "0.2.87" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342" +dependencies = [ + "cfg-if", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.87" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd" +dependencies = [ + "bumpalo", + "log 0.4.20", + "once_cell", + "proc-macro2", + "quote", + "syn 2.0.38", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c02dbc21516f9f1f04f187958890d7e6026df8d16540b7ad9492bc34a67cea03" +dependencies = [ + "cfg-if", + "js-sys", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.87" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.87" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.38", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.87" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1" + +[[package]] +name = "web-sys" +version = "0.3.64" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b85cbef8c220a6abc02aefd892dfc0fc23afb1c6a426316ec33253a3877249b" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "web3" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5388522c899d1e1c96a4c307e3797e0f697ba7c77dd8e0e625ecba9dd0342937" +dependencies = [ + "arrayvec", + "base64 0.21.4", + "bytes", + "derive_more", + "ethabi", + "ethereum-types", + "futures", + "futures-timer", + "headers", + "hex", + "idna", + "jsonrpc-core", + "log 0.4.20", + "once_cell", + "parking_lot", + "pin-project", + "reqwest", + "rlp", + "secp256k1", + "serde", + "serde_json", + "soketto", + "tiny-keccak", + "tokio", + "tokio-stream", + "tokio-util", + "url", + "web3-async-native-tls", +] + +[[package]] +name = "web3-async-native-tls" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f6d8d1636b2627fe63518d5a9b38a569405d9c9bc665c43c9c341de57227ebb" +dependencies = [ + "native-tls", + "thiserror", + "tokio", + "url", +] + +[[package]] +name = "webpki-roots" +version = "0.25.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14247bb57be4f377dfb94c72830b8ce8fc6beac03cf4bf7b9732eadd414123fc" + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-util" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596" +dependencies = [ + "winapi", +] + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows-sys" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets", +] + +[[package]] +name = "windows-targets" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +dependencies = [ + "windows_aarch64_gnullvm", + "windows_aarch64_msvc", + "windows_i686_gnu", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" + +[[package]] +name = "windows_i686_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" + +[[package]] +name = "windows_i686_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" + +[[package]] +name = "winnow" +version = "0.5.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3b801d0e0a6726477cc207f60162da452f3a95adb368399bef20a946e06f65c" +dependencies = [ + "memchr", +] + +[[package]] +name = "winreg" +version = "0.50.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" +dependencies = [ + "cfg-if", + "windows-sys", +] + +[[package]] +name = "ws_stream_wasm" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7999f5f4217fe3818726b66257a4475f71e74ffd190776ad053fa159e50737f5" +dependencies = [ + "async_io_stream", + "futures", + "js-sys", + "log 0.4.20", + "pharos", + "rustc_version", + "send_wrapper 0.6.0", + "thiserror", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "wyz" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" +dependencies = [ + "tap", +] + +[[package]] +name = "yansi" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec" + +[[package]] +name = "zeroize" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a0956f1ba7c7909bfb66c2e9e4124ab6f6482560f6628b5aaeba39207c9aad9" + +[[package]] +name = "zip" +version = "0.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "760394e246e4c28189f19d488c058bf16f564016aefac5d32bb1f3b51d5e9261" +dependencies = [ + "aes", + "byteorder", + "bzip2", + "constant_time_eq", + "crc32fast", + "crossbeam-utils", + "flate2", + "hmac", + "pbkdf2 0.11.0", + "sha1", + "time", + "zstd", +] + +[[package]] +name = "zstd" +version = "0.11.2+zstd.1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20cc960326ece64f010d2d2107537f26dc589a6573a316bd5b1dba685fa5fde4" +dependencies = [ + "zstd-safe", +] + +[[package]] +name = "zstd-safe" +version = "5.0.2+zstd.1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d2a5585e04f9eea4b2a3d1eca508c4dee9592a89ef6f450c11719da0726f4db" +dependencies = [ + "libc", + "zstd-sys", +] + +[[package]] +name = "zstd-sys" +version = "2.0.9+zstd.1.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e16efa8a874a0481a574084d34cc26fdb3b99627480f785888deb6386506656" +dependencies = [ + "cc", + "pkg-config", +] diff --git a/subgraph/Cargo.toml b/subgraph/Cargo.toml new file mode 100644 index 0000000000..0a014f64bb --- /dev/null +++ b/subgraph/Cargo.toml @@ -0,0 +1,35 @@ +[package] +name = "subgraph" +version = "0.1.0" +edition = "2021" + + + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html +[[bin]] +name = "subgraph-cli" +path = "cli/main.rs" + +[dependencies] +tokio = { version = "1.28.0", features = ["full"] } +hex = "0.4.3" +serde_json = "1.0.99" +serde = "1.0.160" +serde_bytes = "0.11.9" +anyhow = "1.0.70" +mustache = "0.9.0" +reqwest = { version = "0.11.17", features = ["json"] } +rust-bigint = "1.2.0" +graphql_client = "0.13.0" +web3 = "0.19.0" +ethers = { version = "2.0", features = ["legacy"] } +clap = { version = "4.4.6", features = ["cargo", "derive"] } +colored = "2.0.4" +lazy_static = "1.4.0" +thiserror = "1.0.49" +once_cell = "1.18.0" +minicbor = "0.20.0" +tiny-keccak = "2.0.2" +bigdecimal = "0.4.2" +url = "2.4.1" + diff --git a/subgraph/README.md b/subgraph/README.md new file mode 100644 index 0000000000..ca9946a08f --- /dev/null +++ b/subgraph/README.md @@ -0,0 +1,93 @@ +### Testing subgraph +- `nix-shell --run init` +- `nix-shell --run docker-up` +- `nix-shell --run ci-test` + +### Deploying the subgraph with registry subgraph ABI check +- `nix-shell --run init` +- ``` + nix-shell --run "ts-node scripts/deploy.ts \ + --contractAddress \ + --subgraphName \ + --graphAccessToken \ + --network + " + ``` + +### Deploying the subgraph with etherscan/polygonscan ABI check +- `nix-shell --run init` +- ``` + nix-shell --run "ts-node scripts/deploy.ts \ + --contractAddress \ + --subgraphName \ + --graphAccessToken \ + --network + --blockNumber + --etherscanAPIKey + " + ``` + +### To deploy subgraph without any ABI check +- `nix-shell --run init` +- ``` + nix-shell --run "ts-node scripts/deploy.ts \ + --contractAddress \ + --blockNumber + --subgraphName \ + --graphAccessToken \ + --network + --skipCheck + " + ``` +### Building a Subgraph to be deployed by Chainstack +When deploying with chainstack we only need to build the sugbraph. This can be done by using any of the following commands. + +#### Build Subgraph with registry subgraph ABI check +Run : +``` +nix-shell --run init +``` +and then : +``` +nix-shell --run "ts-node scripts/buildChainstackSubgraph.ts \ + --contractAddress \ + --network + " +``` +#### Build Subgraph with etherscan/polygonscan ABI check +This is the recommended command while building the subgraph. +Run : +``` +nix-shell --run init +``` +and then : +``` +nix-shell --run "ts-node scripts/buildChainstackSubgraph.ts \ + --contractAddress \ + --network + --blockNumber + --etherscanAPIKey + " +``` +#### Build Subgraph without any ABI check +Run : +``` +nix-shell --run init +``` +and then : +``` +nix-shell --run "ts-node scripts/buildChainstackSubgraph.ts \ + --contractAddress \ + --blockNumber + --network + --skipCheck + " +``` + +### Deploying Subgraph with Chainstack +- After building the subgraph to deploy subgraph , create a subgraph on https://chainstack.com/ and simply run the `Deployment command` generated by the chainstack console from the root of the project : +- The deployment command will look something like this : +``` +graph deploy --node --ipfs +``` + diff --git a/subgraph/abis/.gitkeep b/subgraph/abis/.gitkeep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/subgraph/cli/README.md b/subgraph/cli/README.md new file mode 100644 index 0000000000..544c21b797 --- /dev/null +++ b/subgraph/cli/README.md @@ -0,0 +1,5 @@ +# Rain Subpgrah CLI + +This code is intended to contain commands that help to manage the subgraph code, like the tests, generation and deployment. + +Still in process. If you want a specific command or find a bug - please report it. diff --git a/subgraph/cli/deploy/mod.rs b/subgraph/cli/deploy/mod.rs new file mode 100644 index 0000000000..66136c65af --- /dev/null +++ b/subgraph/cli/deploy/mod.rs @@ -0,0 +1,111 @@ +use anyhow::anyhow; +use mustache::MapBuilder; +use std::fs; +// use std::{fs, process::Command}; + +use crate::utils::run_cmd; + +use clap::Args; +use url::Url; + +#[derive(Args, Debug)] +pub struct DeployArgs { + /// Subgraph name (eg: User/SubgraphName) + #[arg(long = "name")] + pub subgraph_name: String, + + /// Endpoint URL where the subgraph will be deployed + #[arg(long)] + pub url: Url, + + /// Network that the subgraph will index + #[arg(long)] + pub network: String, + + /// Block number where the subgraph will start indexing + #[arg(long = "block")] + pub block_number: u32, + + /// Contract address that the subgraph will be indexing (Assuming one address) + #[arg(long)] + pub address: String, + + /// (Optional) Subgraph token to deploy the subgraph + #[arg(long)] + pub key: Option, +} + +pub fn deploy_subgraph(config: DeployArgs) -> anyhow::Result<()> { + if config.url.scheme() != "http" && config.url.scheme() != "https" { + return Err(anyhow!("Invalid URL provided")); + } + + let subgraph_template = "subgraph.template.yaml"; + let output_path = "subgraph.yaml"; + + let end_point = config.url.as_str(); + let subgraph_name = config.subgraph_name; + + let data = MapBuilder::new() + .insert_str("network", config.network) + .insert_str("orderbook", config.address) + .insert_str("blockNumber", config.block_number.to_string()) + .build(); + + let template = fs::read_to_string(subgraph_template)?; + let renderd = mustache::compile_str(&template)?.render_data_to_string(&data)?; + let _ = fs::write(output_path, renderd)?; + + // Generate the subgraph code + // let is_built = run_cmd("bash", &["-c", "npx graph codegen && npx graph build"]); + let is_built = run_cmd("bash", &["-c", "npx graph codegen"]); + if !is_built { + return Err(anyhow!("Failed to build subgraph")); + } + + // Create the endpoint node + let is_node_up = run_cmd( + "bash", + &[ + "-c", + &format!("npx graph create --node {} {}", end_point, subgraph_name), + ], + ); + if !is_node_up { + return Err(anyhow!("Failed to create subgraph endpoint node")); + } + + if config.url.host_str() == Some("localhost") { + // Deploy Subgraph to the endpoint local + let is_deploy = run_cmd( + "bash", + &[ + "-c", + &format!( + "npx graph deploy --node {} --ipfs http://localhost:5001 {} --version-label 1", + end_point, subgraph_name + ), + ], + ); + if !is_deploy { + return Err(anyhow!("Failed to deploy subgraph")); + } + } else { + // Deploy Subgraph to the endpoint + let is_deploy = run_cmd( + "bash", + &[ + "-c", + &format!( + "npx graph deploy --node {} {} --version-label 1", + end_point, subgraph_name + ), + ], + ); + if !is_deploy { + return Err(anyhow!("Failed to deploy subgraph")); + } + } + + Ok(()) +} diff --git a/subgraph/cli/main.rs b/subgraph/cli/main.rs new file mode 100644 index 0000000000..05bf7e528f --- /dev/null +++ b/subgraph/cli/main.rs @@ -0,0 +1,82 @@ +// extern crate url; +mod deploy; +mod utils; +use clap::{Parser, Subcommand}; + +use colored::*; +use deploy::{deploy_subgraph, DeployArgs}; +use utils::run_cmd; + +#[derive(Parser)] +#[clap(author, version, about)] +pub struct Cli { + #[clap(subcommand)] + pub subgraph: Subgraph, +} + +#[derive(Subcommand)] +pub enum Subgraph { + #[command(about = "Install dependecies for the rain subgraph")] + Install, + #[command(about = "Build the rain subgraph")] + Build, + #[command(about = "Test the rain subgraph")] + Test, + #[command(about = "Deploy the rain subgraph")] + Deploy(DeployArgs), +} + +fn main() -> Result<(), anyhow::Error> { + let args = Cli::parse(); + + match args.subgraph { + Subgraph::Install => { + let resp = run_cmd("npm", &["install"]); + + if !resp { + eprintln!("{}", "Error: Failed at npm install".red()); + std::process::exit(1); + } + + Ok(()) + } + + Subgraph::Build => { + let resp = run_cmd("npm", &["run", "codegen"]); + if !resp { + eprintln!("{}", "Error: Failed at npm run codegen".red()); + std::process::exit(1); + } + + let resp = run_cmd("npm", &["run", "build"]); + if !resp { + eprintln!("{}", "Error: Failed at npm run build".red()); + std::process::exit(1); + } + + Ok(()) + } + + Subgraph::Test => { + let resp = run_cmd("nix", &["run", ".#ci-test"]); + if !resp { + std::process::exit(1); + } + + Ok(()) + } + + Subgraph::Deploy(args) => { + match deploy_subgraph(args) { + Ok(_) => { + return Ok(()); + } + Err(err) => { + // Error occurred, print the error message and exit + eprintln!("Error: {}", err); + std::process::exit(1); + } + } + } + } +} diff --git a/subgraph/cli/utils/mod.rs b/subgraph/cli/utils/mod.rs new file mode 100644 index 0000000000..d41c871be1 --- /dev/null +++ b/subgraph/cli/utils/mod.rs @@ -0,0 +1,76 @@ +use colored::*; +use std::env; +use std::io::{BufRead, BufReader}; +use std::process::{Command, Stdio}; +use std::thread; + +// This function will work onthe working directory +pub fn run_cmd(main_cmd: &str, args: &[&str]) -> bool { + // Get the current working directory + let current_dir = env::current_dir().expect("Failed to get current directory"); + + // Create a new Command to run + let mut cmd = Command::new(main_cmd); + + // Add the arguments + cmd.args(args); + + // Set the directory from where the command wil run + cmd.current_dir(¤t_dir); + + // Tell what to do when try to print the process + cmd.stdout(Stdio::piped()); + cmd.stderr(Stdio::piped()); + + let full_cmd = format!("{} {}", main_cmd, args.join(" ")); + + println!("{} {}\n", "Running:".green(), full_cmd.blue()); + + // Execute the command + let mut child = cmd + .spawn() + .expect(format!("Failed to run: {}", full_cmd).as_str()); + + // Read and print stdout in a separate thread + let stdout_child = child.stdout.take().expect("Failed to get stdout"); + let stdout_reader = BufReader::new(stdout_child); + + let stdout_handle = thread::spawn({ + move || { + for line in stdout_reader.lines() { + if let Ok(line) = line { + println!("{}", line); + } + } + } + }); + + // Read and print stderr in the main thread + let stderr_reader = BufReader::new(child.stderr.take().expect("Failed to get stderr")); + for line in stderr_reader.lines() { + if let Ok(line) = line { + eprintln!("{}", line); + } + } + + // Wait for the command to finish and get the exit status + let status = child + .wait() + .expect(format!("Failed to wait: {}", full_cmd).as_str()); + + // Wait for the stdout thread to finish + stdout_handle.join().expect("Failed to join stdout thread"); + + if status.success() { + println!("✅ {} {}\n", full_cmd.blue(), "completed".green()); + return true; + } else { + eprintln!( + "❌ {} {}", + full_cmd.blue(), + format!("failed with exit code: {}\n", status.code().unwrap_or(-1)).red() + ); + + return false; + } +} diff --git a/subgraph/config/localhost.json b/subgraph/config/localhost.json new file mode 100644 index 0000000000..71707d3974 --- /dev/null +++ b/subgraph/config/localhost.json @@ -0,0 +1,5 @@ +{ + "network": "localhost", + "orderbook": "0x8341FcB21884C0e619c60881231C41f7952E9c25", + "blockNumber": 2020 +} \ No newline at end of file diff --git a/subgraph/config/mainnet.json b/subgraph/config/mainnet.json new file mode 100644 index 0000000000..2f4aea65fb --- /dev/null +++ b/subgraph/config/mainnet.json @@ -0,0 +1,5 @@ +{ + "orderbook": "0xce0a4f3E60178668C89f86d918A0585cA80E0F6d", + "blockNumber": "17140914", + "network": "mainnet" +} \ No newline at end of file diff --git a/subgraph/config/matic.json b/subgraph/config/matic.json new file mode 100644 index 0000000000..0a602d8f82 --- /dev/null +++ b/subgraph/config/matic.json @@ -0,0 +1,5 @@ +{ + "orderbook": "0xb3147EF9e726D295eBa83e4172A9A9de7BE80b1d", + "blockNumber": "45116675", + "network": "matic" +} \ No newline at end of file diff --git a/subgraph/config/mumbai.json b/subgraph/config/mumbai.json new file mode 100644 index 0000000000..bc7a373e71 --- /dev/null +++ b/subgraph/config/mumbai.json @@ -0,0 +1,5 @@ +{ + "orderbook": "0xc4f5793594be6d258a1c6bcf4cd1e1806d250de4", + "blockNumber": "35878210", + "network": "mumbai" +} \ No newline at end of file diff --git a/subgraph/config/mumbai_ob_v3.json b/subgraph/config/mumbai_ob_v3.json new file mode 100644 index 0000000000..026a9cb500 --- /dev/null +++ b/subgraph/config/mumbai_ob_v3.json @@ -0,0 +1,5 @@ +{ + "orderbook": "0x9540ad6adeb8e1c8cf78b8f52a3c04764e83711e", + "blockNumber": "39311648", + "network": "mumbai" +} diff --git a/subgraph/config/nhsbot_polygon.json b/subgraph/config/nhsbot_polygon.json new file mode 100644 index 0000000000..f6a476f266 --- /dev/null +++ b/subgraph/config/nhsbot_polygon.json @@ -0,0 +1,5 @@ +{ + "network": "matic", + "orderbook": "0xdd42ed000da6716044db223a0f9e6f02e6c86af3", + "blockNumber": 42605680 +} diff --git a/subgraph/config/polygon.json b/subgraph/config/polygon.json new file mode 100644 index 0000000000..827ee649f9 --- /dev/null +++ b/subgraph/config/polygon.json @@ -0,0 +1,5 @@ +{ + "network": "matic", + "orderbook": "0xed6ca29bf4af0c247ad5a865cb5ce1ec905429ce", + "blockNumber": 41100284 +} \ No newline at end of file diff --git a/subgraph/docker/docker-compose.yaml b/subgraph/docker/docker-compose.yaml new file mode 100644 index 0000000000..11e4503df8 --- /dev/null +++ b/subgraph/docker/docker-compose.yaml @@ -0,0 +1,53 @@ +version: '3' +services: + evm_node: + image: vishalkale151071/hardhat-node + ports: + - '8545:8545' + graph-node: + image: graphprotocol/graph-node:97e0adc + ports: + - '8000:8000' + - '8001:8001' + - '8020:8020' + - '8030:8030' + - '8040:8040' + depends_on: + - ipfs + - postgres + extra_hosts: + - host.docker.internal:host-gateway + environment: + postgres_host: postgres + postgres_user: graph-node + postgres_pass: let-me-in + postgres_db: graph-node + ipfs: 'ipfs:5001' + ethereum: 'localhost:http://host.docker.internal:8545' + GRAPH_LOG: info + ipfs: + image: ipfs/go-ipfs:v0.10.0 + ports: + - '5001:5001' + volumes: + - ./data/ipfs:/data/ipfs + postgres: + image: postgres + ports: + - '5432:5432' + command: + [ + "postgres", + "-cshared_preload_libraries=pg_stat_statements" + ] + environment: + POSTGRES_USER: graph-node + POSTGRES_PASSWORD: let-me-in + POSTGRES_DB: graph-node + # FIXME: remove this env. var. which we shouldn't need. Introduced by + # , maybe as a + # workaround for https://github.com/docker/for-mac/issues/6270? + PGDATA: "/var/lib/postgresql/data" + POSTGRES_INITDB_ARGS: "-E UTF8 --locale=C" + volumes: + - ./data/postgres:/var/lib/postgresql/data \ No newline at end of file diff --git a/subgraph/flake.lock b/subgraph/flake.lock new file mode 100644 index 0000000000..f054a3db8d --- /dev/null +++ b/subgraph/flake.lock @@ -0,0 +1,61 @@ +{ + "nodes": { + "flake-utils": { + "inputs": { + "systems": "systems" + }, + "locked": { + "lastModified": 1694529238, + "narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "ff7b65b44d01cf9ba6a71320833626af21126384", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1696019113, + "narHash": "sha256-X3+DKYWJm93DRSdC5M6K5hLqzSya9BjibtBsuARoPco=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "f5892ddac112a1e9b3612c39af1b72987ee5783a", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "root": { + "inputs": { + "flake-utils": "flake-utils", + "nixpkgs": "nixpkgs" + } + }, + "systems": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/subgraph/flake.nix b/subgraph/flake.nix new file mode 100644 index 0000000000..c75efd75cd --- /dev/null +++ b/subgraph/flake.nix @@ -0,0 +1,110 @@ +{ + description = "Flake for development orderbook subgraph workflows."; + + inputs = { + nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; + flake-utils.url = "github:numtide/flake-utils"; + }; + + + outputs = { self, nixpkgs, flake-utils }: + flake-utils.lib.eachDefaultSystem (system: + let + pkgs = nixpkgs.legacyPackages.${system}; + jq = "${pkgs.jq}/bin/jq"; + graphql_client = "${pkgs.graphql-client}/bin/graphql-client"; + + in rec { + packages = rec { + # ERC20Mock is not present here. It's hardcoded because It's just a ERC20 contract with a mint method. + concrete-contracts = ["AuthoringMetaGetter" "OrderBook" "RainterpreterExpressionDeployerNP" "RainterpreterNP" "RainterpreterStore"]; + + copy-abis = contract: '' + echo Copying ${contract}... + cp ../out/${contract}.sol/${contract}.json ./tests/generated/ + + # # Remove component duplicated that conflict with abigen + # ${jq} '.abi |= map(select(.name != "StackUnderflow"))' contract.json > updated_contract.json + # mv updated_contract.json tests/generated/RainterpreterExpressionDeployerNP.json + ''; + + remove-duplicate = '' + # Remove a component duplicated on RainterpreterExpressionDeployerNP abi that + # conflict with abigen + contract_path="tests/generated/RainterpreterExpressionDeployerNP.json" + ${jq} '.abi |= map(select(.name != "StackUnderflow"))' $contract_path > updated_contract.json + mv updated_contract.json $contract_path + echo Removed duplicated at: $contract_path + ''; + + + gen-sg-schema = '' + # Use a arbitrary address to put the endpoint up + cargo run deploy \ + --name test/test \ + --url http://localhost:8020 \ + --network localhost \ + --block 0 \ + --address 0x0000000000000000000000000000000000000000 + + ${graphql_client} introspect-schema \ + --output tests/subgraph/query/schema.json \ + http://localhost:8000/subgraphs/name/test/test + ''; + + init-setup = pkgs.writeShellScriptBin "init-setup" ('' + # NOTE: This should be called after `npm install` + + # Generating the contracts. This way, they will be updating by commit + forge build --root ../ + + # Copying the new abis into the SG abi folder + cp ../out/OrderBook.sol/OrderBook.json ./abis/ + cp ../out/ERC20.sol/ERC20.json ./abis/ERC20.json + '' + pkgs.lib.concatStrings (map copy-abis concrete-contracts) + + (remove-duplicate) + ); + + run-anvil = pkgs.writeShellScriptBin "run-anvil" ('' + anvil -m "$(cat ./test-mnemonic)" + ''); + + docker-up = pkgs.writeShellScriptBin "docker-up" '' + docker-compose -f docker/docker-compose.yaml up --build -d + ''; + + docker-down = pkgs.writeShellScriptBin "docker-down" '' + docker-compose -f docker/docker-compose.yaml down + ''; + + end-anvil = pkgs.writeShellScriptBin "end-anvil" ('' + kill -9 $(lsof -t -i :8545) + ''); + + # The graphql file can generate the schema.json file needed for testing + # Of course, this need a graph node at localhost to work + gen-subgraph-schema = pkgs.writeShellScriptBin "gen-subgraph-schema" ('' + # Use a arbitrary address to put the endpoint up + cargo run deploy \ + --name test/test \ + --url http://localhost:8020 \ + --network localhost \ + --block 0 \ + --address 0x0000000000000000000000000000000000000000 + + ${graphql_client} introspect-schema \ + --output tests/subgraph/query/schema.json \ + http://localhost:8000/subgraphs/name/test/test + ''); + + ci-test = pkgs.writeShellScriptBin "ci-test" ('' + + # Run tests in single thread + cargo test -- --test-threads=1 --nocapture; + ''); + + default = init-setup; + }; + } + ); +} diff --git a/subgraph/package-lock.json b/subgraph/package-lock.json new file mode 100644 index 0000000000..f95ae623a0 --- /dev/null +++ b/subgraph/package-lock.json @@ -0,0 +1,9589 @@ +{ + "name": "@rainprotocol/orderbook-subgraph", + "version": "0.1.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "@rainprotocol/orderbook-subgraph", + "version": "0.1.0", + "license": "CAL", + "dependencies": { + "@graphprotocol/graph-cli": "0.46.1", + "@graphprotocol/graph-ts": "0.28.1", + "@rainprotocol/assemblyscript-cbor": "0.0.6" + }, + "devDependencies": { + "mustache": "3.2.1" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.22.13", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz", + "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==", + "dependencies": { + "@babel/highlight": "^7.22.13", + "chalk": "^2.4.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/code-frame/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/code-frame/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "node_modules/@babel/code-frame/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/code-frame/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz", + "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/highlight/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "node_modules/@babel/highlight/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "dependencies": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@ethersproject/abi": { + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.0.7.tgz", + "integrity": "sha512-Cqktk+hSIckwP/W8O47Eef60VwmoSC/L3lY0+dIBhQPCNn9E4V7rwmm2aFrNRRDJfFlGuZ1khkQUOc3oBX+niw==", + "dependencies": { + "@ethersproject/address": "^5.0.4", + "@ethersproject/bignumber": "^5.0.7", + "@ethersproject/bytes": "^5.0.4", + "@ethersproject/constants": "^5.0.4", + "@ethersproject/hash": "^5.0.4", + "@ethersproject/keccak256": "^5.0.3", + "@ethersproject/logger": "^5.0.5", + "@ethersproject/properties": "^5.0.3", + "@ethersproject/strings": "^5.0.4" + } + }, + "node_modules/@ethersproject/abstract-provider": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz", + "integrity": "sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "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" + } + }, + "node_modules/@ethersproject/abstract-signer": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz", + "integrity": "sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "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" + } + }, + "node_modules/@ethersproject/address": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.7.0.tgz", + "integrity": "sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "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" + } + }, + "node_modules/@ethersproject/base64": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.7.0.tgz", + "integrity": "sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.7.0" + } + }, + "node_modules/@ethersproject/bignumber": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.7.0.tgz", + "integrity": "sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "bn.js": "^5.2.1" + } + }, + "node_modules/@ethersproject/bytes": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.7.0.tgz", + "integrity": "sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/constants": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.7.0.tgz", + "integrity": "sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bignumber": "^5.7.0" + } + }, + "node_modules/@ethersproject/hash": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.7.0.tgz", + "integrity": "sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "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" + } + }, + "node_modules/@ethersproject/keccak256": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.7.0.tgz", + "integrity": "sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "js-sha3": "0.8.0" + } + }, + "node_modules/@ethersproject/logger": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.7.0.tgz", + "integrity": "sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ] + }, + "node_modules/@ethersproject/networks": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.7.1.tgz", + "integrity": "sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/properties": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.7.0.tgz", + "integrity": "sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/rlp": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.7.0.tgz", + "integrity": "sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/signing-key": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.7.0.tgz", + "integrity": "sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "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" + } + }, + "node_modules/@ethersproject/strings": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.7.0.tgz", + "integrity": "sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/transactions": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.7.0.tgz", + "integrity": "sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "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" + } + }, + "node_modules/@ethersproject/web": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.7.1.tgz", + "integrity": "sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "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" + } + }, + "node_modules/@float-capital/float-subgraph-uncrashable": { + "version": "0.0.0-internal-testing.5", + "resolved": "https://registry.npmjs.org/@float-capital/float-subgraph-uncrashable/-/float-subgraph-uncrashable-0.0.0-internal-testing.5.tgz", + "integrity": "sha512-yZ0H5e3EpAYKokX/AbtplzlvSxEJY7ZfpvQyDzyODkks0hakAAlDG6fQu1SlDJMWorY7bbq1j7fCiFeTWci6TA==", + "dependencies": { + "@rescript/std": "9.0.0", + "graphql": "^16.6.0", + "graphql-import-node": "^0.0.5", + "js-yaml": "^4.1.0" + }, + "bin": { + "uncrashable": "bin/uncrashable" + } + }, + "node_modules/@float-capital/float-subgraph-uncrashable/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "node_modules/@float-capital/float-subgraph-uncrashable/node_modules/graphql": { + "version": "16.8.1", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.8.1.tgz", + "integrity": "sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw==", + "engines": { + "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0" + } + }, + "node_modules/@float-capital/float-subgraph-uncrashable/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@graphprotocol/graph-cli": { + "version": "0.46.1", + "resolved": "https://registry.npmjs.org/@graphprotocol/graph-cli/-/graph-cli-0.46.1.tgz", + "integrity": "sha512-594BiH2m9gThP1xdvxguVzvVlOb1KzJyVdh2F4dV78NPfMRFY2fe1nakmadKcewc72VVLXNgfdBu/J4IPfo0eg==", + "dependencies": { + "@float-capital/float-subgraph-uncrashable": "^0.0.0-alpha.4", + "@oclif/core": "2.8.0", + "@whatwg-node/fetch": "^0.8.4", + "assemblyscript": "0.19.23", + "binary-install-raw": "0.0.13", + "chalk": "3.0.0", + "chokidar": "3.5.3", + "debug": "4.3.4", + "docker-compose": "0.23.19", + "dockerode": "2.5.8", + "fs-extra": "9.1.0", + "glob": "9.3.4", + "gluegun": "git+https://github.com/edgeandnode/gluegun.git#v4.3.1-pin-colors-dep", + "graphql": "15.5.0", + "immutable": "4.2.1", + "ipfs-http-client": "55.0.0", + "jayson": "4.0.0", + "js-yaml": "3.14.1", + "prettier": "1.19.1", + "request": "2.88.2", + "semver": "7.3.8", + "sync-request": "6.1.0", + "tmp-promise": "3.0.3", + "web3-eth-abi": "1.7.0", + "which": "2.0.2", + "yaml": "1.10.2" + }, + "bin": { + "graph": "dist/bin.js" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@graphprotocol/graph-ts": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@graphprotocol/graph-ts/-/graph-ts-0.28.1.tgz", + "integrity": "sha512-1wMLQ0cu84/6Ml3zcz9ya1zFzrDAzCj0dIGZ7Rz9upnRSXg5jjqU4DefO/OYrl2K2/OPso9hSAr6I4aue2pL1Q==", + "dependencies": { + "assemblyscript": "0.19.10" + } + }, + "node_modules/@graphprotocol/graph-ts/node_modules/assemblyscript": { + "version": "0.19.10", + "resolved": "https://registry.npmjs.org/assemblyscript/-/assemblyscript-0.19.10.tgz", + "integrity": "sha512-HavcUBXB3mBTRGJcpvaQjmnmaqKHBGREjSPNsIvnAk2f9dj78y4BkMaSSdvBQYWcDDzsHQjyUC8stICFkD1Odg==", + "dependencies": { + "binaryen": "101.0.0-nightly.20210723", + "long": "^4.0.0" + }, + "bin": { + "asc": "bin/asc", + "asinit": "bin/asinit" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/assemblyscript" + } + }, + "node_modules/@graphprotocol/graph-ts/node_modules/binaryen": { + "version": "101.0.0-nightly.20210723", + "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-101.0.0-nightly.20210723.tgz", + "integrity": "sha512-eioJNqhHlkguVSbblHOtLqlhtC882SOEPKmNFZaDuz1hzQjolxZ+eu3/kaS10n3sGPONsIZsO7R9fR00UyhEUA==", + "bin": { + "wasm-opt": "bin/wasm-opt" + } + }, + "node_modules/@graphprotocol/graph-ts/node_modules/long": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", + "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" + }, + "node_modules/@ipld/dag-cbor": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/@ipld/dag-cbor/-/dag-cbor-7.0.3.tgz", + "integrity": "sha512-1VVh2huHsuohdXC1bGJNE8WR72slZ9XE2T3wbBBq31dm7ZBatmKLLxrB+XAqafxfRFjv08RZmj/W/ZqaM13AuA==", + "dependencies": { + "cborg": "^1.6.0", + "multiformats": "^9.5.4" + } + }, + "node_modules/@ipld/dag-json": { + "version": "8.0.11", + "resolved": "https://registry.npmjs.org/@ipld/dag-json/-/dag-json-8.0.11.tgz", + "integrity": "sha512-Pea7JXeYHTWXRTIhBqBlhw7G53PJ7yta3G/sizGEZyzdeEwhZRr0od5IQ0r2ZxOt1Do+2czddjeEPp+YTxDwCA==", + "dependencies": { + "cborg": "^1.5.4", + "multiformats": "^9.5.4" + } + }, + "node_modules/@ipld/dag-pb": { + "version": "2.1.18", + "resolved": "https://registry.npmjs.org/@ipld/dag-pb/-/dag-pb-2.1.18.tgz", + "integrity": "sha512-ZBnf2fuX9y3KccADURG5vb9FaOeMjFkCrNysB0PtftME/4iCTjxfaLoNq/IAh5fTqUOMXvryN6Jyka4ZGuMLIg==", + "dependencies": { + "multiformats": "^9.5.4" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@oclif/core": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/@oclif/core/-/core-2.8.0.tgz", + "integrity": "sha512-A2wHItFrD/WOw5bJ6Mtv9MD7If0bsKNR0pwEY0me+fo4HSXlJOtgYGqmzb8t8akX3DUUT7XsjPajsoHLkIJyvg==", + "dependencies": { + "@types/cli-progress": "^3.11.0", + "ansi-escapes": "^4.3.2", + "ansi-styles": "^4.3.0", + "cardinal": "^2.1.1", + "chalk": "^4.1.2", + "clean-stack": "^3.0.1", + "cli-progress": "^3.12.0", + "debug": "^4.3.4", + "ejs": "^3.1.8", + "fs-extra": "^9.1.0", + "get-package-type": "^0.1.0", + "globby": "^11.1.0", + "hyperlinker": "^1.0.0", + "indent-string": "^4.0.0", + "is-wsl": "^2.2.0", + "js-yaml": "^3.14.1", + "natural-orderby": "^2.0.3", + "object-treeify": "^1.1.33", + "password-prompt": "^1.1.2", + "semver": "^7.3.7", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "supports-color": "^8.1.1", + "supports-hyperlinks": "^2.2.0", + "ts-node": "^10.9.1", + "tslib": "^2.5.0", + "widest-line": "^3.1.0", + "wordwrap": "^1.0.0", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@oclif/core/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@oclif/core/node_modules/chalk/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@peculiar/asn1-schema": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-schema/-/asn1-schema-2.3.6.tgz", + "integrity": "sha512-izNRxPoaeJeg/AyH8hER6s+H7p4itk+03QCa4sbxI3lNdseQYCuxzgsuNK8bTXChtLTjpJz6NmXKA73qLa3rCA==", + "dependencies": { + "asn1js": "^3.0.5", + "pvtsutils": "^1.3.2", + "tslib": "^2.4.0" + } + }, + "node_modules/@peculiar/json-schema": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/@peculiar/json-schema/-/json-schema-1.1.12.tgz", + "integrity": "sha512-coUfuoMeIB7B8/NMekxaDzLhaYmp0HZNPEjYRm9goRou8UZIC3z21s0sL9AWoCw4EG876QyO3kYrc61WNF9B/w==", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@peculiar/webcrypto": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@peculiar/webcrypto/-/webcrypto-1.4.3.tgz", + "integrity": "sha512-VtaY4spKTdN5LjJ04im/d/joXuvLbQdgy5Z4DXF4MFZhQ+MTrejbNMkfZBp1Bs3O5+bFqnJgyGdPuZQflvIa5A==", + "dependencies": { + "@peculiar/asn1-schema": "^2.3.6", + "@peculiar/json-schema": "^1.1.12", + "pvtsutils": "^1.3.2", + "tslib": "^2.5.0", + "webcrypto-core": "^1.7.7" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/@protobufjs/aspromise": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", + "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==" + }, + "node_modules/@protobufjs/base64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" + }, + "node_modules/@protobufjs/codegen": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", + "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" + }, + "node_modules/@protobufjs/eventemitter": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", + "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==" + }, + "node_modules/@protobufjs/fetch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", + "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", + "dependencies": { + "@protobufjs/aspromise": "^1.1.1", + "@protobufjs/inquire": "^1.1.0" + } + }, + "node_modules/@protobufjs/float": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", + "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==" + }, + "node_modules/@protobufjs/inquire": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", + "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==" + }, + "node_modules/@protobufjs/path": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", + "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==" + }, + "node_modules/@protobufjs/pool": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", + "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==" + }, + "node_modules/@protobufjs/utf8": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", + "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" + }, + "node_modules/@rainprotocol/assemblyscript-cbor": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/@rainprotocol/assemblyscript-cbor/-/assemblyscript-cbor-0.0.6.tgz", + "integrity": "sha512-RNQfi/BH3fTJCGjU3b2AGHOduziPr+9QTRXz7kt0QBcX2LxYCByXm+d2Hc87Ozh2XKjccemy3iSLHe7TEkq/EA==" + }, + "node_modules/@rescript/std": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@rescript/std/-/std-9.0.0.tgz", + "integrity": "sha512-zGzFsgtZ44mgL4Xef2gOy1hrRVdrs9mcxCOOKZrIPsmbZW14yTkaF591GXxpQvjXiHtgZ/iA9qLyWH6oSReIxQ==" + }, + "node_modules/@tsconfig/node10": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", + "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==" + }, + "node_modules/@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==" + }, + "node_modules/@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==" + }, + "node_modules/@tsconfig/node16": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", + "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==" + }, + "node_modules/@types/bn.js": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.2.tgz", + "integrity": "sha512-dkpZu0szUtn9UXTmw+e0AJFd4D2XAxDnsCLdc05SfqpqzPEBft8eQr8uaFitfo/dUUOZERaLec2hHMG87A4Dxg==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/cli-progress": { + "version": "3.11.3", + "resolved": "https://registry.npmjs.org/@types/cli-progress/-/cli-progress-3.11.3.tgz", + "integrity": "sha512-/+C9xAdVtc+g5yHHkGBThgAA8rYpi5B+2ve3wLtybYj0JHEBs57ivR4x/zGfSsplRnV+psE91Nfin1soNKqz5Q==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/concat-stream": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@types/concat-stream/-/concat-stream-1.6.1.tgz", + "integrity": "sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect": { + "version": "3.4.36", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.36.tgz", + "integrity": "sha512-P63Zd/JUGq+PdrM1lv0Wv5SBYeA2+CORvbrXbngriYY0jzLUWfQMQQxOhjONEz/wlHOAxOdY7CY65rgQdTjq2w==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/form-data": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/@types/form-data/-/form-data-0.0.33.tgz", + "integrity": "sha512-8BSvG1kGm83cyJITQMZSulnl6QV8jqAGreJsc5tPu1Jq0vTSOiY/k24Wx82JRpWwZSqrala6sd5rWi6aNXvqcw==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/long": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", + "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==" + }, + "node_modules/@types/minimatch": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==" + }, + "node_modules/@types/node": { + "version": "20.8.6", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.8.6.tgz", + "integrity": "sha512-eWO4K2Ji70QzKUqRy6oyJWUeB7+g2cRagT3T/nxYibYcT4y2BDL8lqolRXjTHmkZCdJfIPaY73KbJAZmcryxTQ==", + "dependencies": { + "undici-types": "~5.25.1" + } + }, + "node_modules/@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==" + }, + "node_modules/@types/pbkdf2": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.0.tgz", + "integrity": "sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/qs": { + "version": "6.9.8", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.8.tgz", + "integrity": "sha512-u95svzDlTysU5xecFNTgfFG5RUWu1A9P0VzgpcIiGZA9iraHOdSzcxMxQ55DyeRaGCSxQi7LxXDI4rzq/MYfdg==" + }, + "node_modules/@types/secp256k1": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.4.tgz", + "integrity": "sha512-oN0PFsYxDZnX/qSJ5S5OwaEDTYfekhvaM5vqui2bu1AA39pKofmgL104Q29KiOXizXS2yLjSzc5YdTyMKdcy4A==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/ws": { + "version": "7.4.7", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-7.4.7.tgz", + "integrity": "sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@whatwg-node/events": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/@whatwg-node/events/-/events-0.0.3.tgz", + "integrity": "sha512-IqnKIDWfXBJkvy/k6tzskWTc2NK3LcqHlb+KHGCrjOCH4jfQckRX0NAiIcC/vIqQkzLYw2r2CTSwAxcrtcD6lA==" + }, + "node_modules/@whatwg-node/fetch": { + "version": "0.8.8", + "resolved": "https://registry.npmjs.org/@whatwg-node/fetch/-/fetch-0.8.8.tgz", + "integrity": "sha512-CdcjGC2vdKhc13KKxgsc6/616BQ7ooDIgPeTuAiE8qfCnS0mGzcfCOoZXypQSz73nxI+GWc7ZReIAVhxoE1KCg==", + "dependencies": { + "@peculiar/webcrypto": "^1.4.0", + "@whatwg-node/node-fetch": "^0.3.6", + "busboy": "^1.6.0", + "urlpattern-polyfill": "^8.0.0", + "web-streams-polyfill": "^3.2.1" + } + }, + "node_modules/@whatwg-node/node-fetch": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@whatwg-node/node-fetch/-/node-fetch-0.3.6.tgz", + "integrity": "sha512-w9wKgDO4C95qnXZRwZTfCmLWqyRnooGjcIwG0wADWjw9/HN0p7dtvtgSvItZtUyNteEvgTrd8QojNEqV6DAGTA==", + "dependencies": { + "@whatwg-node/events": "^0.0.3", + "busboy": "^1.6.0", + "fast-querystring": "^1.1.1", + "fast-url-parser": "^1.1.3", + "tslib": "^2.3.1" + } + }, + "node_modules/abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "dependencies": { + "event-target-shim": "^5.0.0" + }, + "engines": { + "node": ">=6.5" + } + }, + "node_modules/acorn": { + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", + "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "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" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-colors": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", + "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/ansicolors": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.3.2.tgz", + "integrity": "sha512-QXu7BPrP29VllRxH8GwB7x5iX5qWKAAMLqKQGWTeLWVlNHNOpVMJ91dsxQAIWXpjuW5wqvxu3Jd/nRjrJ+0pqg==" + }, + "node_modules/any-signal": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/any-signal/-/any-signal-2.1.2.tgz", + "integrity": "sha512-B+rDnWasMi/eWcajPcCWSlYc7muXOrcYrqgyzcdKisl2H/WTlQ0gip1KyQfr0ZlxJdsuWCj/LWwQm7fhyhRfIQ==", + "dependencies": { + "abort-controller": "^3.0.0", + "native-abort-controller": "^1.0.3" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/apisauce": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/apisauce/-/apisauce-1.1.5.tgz", + "integrity": "sha512-gKC8qb/bDJsPsnEXLZnXJ7gVx7dh87CEVNeIwv1dvaffnXoh5GHwac5pWR1P2broLiVj/fqFMQvLDDt/RhjiqA==", + "dependencies": { + "axios": "^0.21.2", + "ramda": "^0.25.0" + } + }, + "node_modules/app-module-path": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/app-module-path/-/app-module-path-2.2.0.tgz", + "integrity": "sha512-gkco+qxENJV+8vFcDiiFhuoSvRXb2a/QPqpSoWhVz829VNJfOTnELbBmPmNKFxf3xdNnw4DWCkzkDaavcX/1YQ==" + }, + "node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==" + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==" + }, + "node_modules/asn1": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", + "dependencies": { + "safer-buffer": "~2.1.0" + } + }, + "node_modules/asn1js": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/asn1js/-/asn1js-3.0.5.tgz", + "integrity": "sha512-FVnvrKJwpt9LP2lAMl8qZswRNm3T4q9CON+bxldk2iwk3FFpuwhx2FfinyitizWHsVYyaY+y5JzDR0rCMV5yTQ==", + "dependencies": { + "pvtsutils": "^1.3.2", + "pvutils": "^1.1.3", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/assemblyscript": { + "version": "0.19.23", + "resolved": "https://registry.npmjs.org/assemblyscript/-/assemblyscript-0.19.23.tgz", + "integrity": "sha512-fwOQNZVTMga5KRsfY80g7cpOl4PsFQczMwHzdtgoqLXaYhkhavufKb0sB0l3T1DUxpAufA0KNhlbpuuhZUwxMA==", + "dependencies": { + "binaryen": "102.0.0-nightly.20211028", + "long": "^5.2.0", + "source-map-support": "^0.5.20" + }, + "bin": { + "asc": "bin/asc", + "asinit": "bin/asinit" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/assemblyscript" + } + }, + "node_modules/assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/async": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", + "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==" + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "node_modules/at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", + "engines": { + "node": "*" + } + }, + "node_modules/aws4": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.12.0.tgz", + "integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==" + }, + "node_modules/axios": { + "version": "0.21.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", + "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", + "dependencies": { + "follow-redirects": "^1.14.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/base-x": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", + "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", + "dependencies": { + "tweetnacl": "^0.14.3" + } + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/binary-install-raw": { + "version": "0.0.13", + "resolved": "https://registry.npmjs.org/binary-install-raw/-/binary-install-raw-0.0.13.tgz", + "integrity": "sha512-v7ms6N/H7iciuk6QInon3/n2mu7oRX+6knJ9xFPsJ3rQePgAqcR3CRTwUheFd8SLbiq4LL7Z4G/44L9zscdt9A==", + "dependencies": { + "axios": "^0.21.1", + "rimraf": "^3.0.2", + "tar": "^6.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/binaryen": { + "version": "102.0.0-nightly.20211028", + "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-102.0.0-nightly.20211028.tgz", + "integrity": "sha512-GCJBVB5exbxzzvyt8MGDv/MeUjs6gkXDvf4xOIItRBptYl0Tz5sm1o/uG95YK0L0VeG5ajDu3hRtkBP2kzqC5w==", + "bin": { + "wasm-opt": "bin/wasm-opt" + } + }, + "node_modules/bl": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.3.tgz", + "integrity": "sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==", + "dependencies": { + "readable-stream": "^2.3.5", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/blakejs": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.2.1.tgz", + "integrity": "sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ==" + }, + "node_modules/blob-to-it": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/blob-to-it/-/blob-to-it-1.0.4.tgz", + "integrity": "sha512-iCmk0W4NdbrWgRRuxOriU8aM5ijeVLI61Zulsmg/lUHNr7pYjoj+U77opLefNagevtrrbMt3JQ5Qip7ar178kA==", + "dependencies": { + "browser-readablestream-to-it": "^1.0.3" + } + }, + "node_modules/bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" + }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==" + }, + "node_modules/browser-readablestream-to-it": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/browser-readablestream-to-it/-/browser-readablestream-to-it-1.0.3.tgz", + "integrity": "sha512-+12sHB+Br8HIh6VAMVEG5r3UXCyESIgDW7kzk3BjIXa43DVqVwL7GC5TW3jeh+72dtcH99pPVpw0X8i0jt+/kw==" + }, + "node_modules/browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "dependencies": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/bs58": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", + "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", + "dependencies": { + "base-x": "^3.0.2" + } + }, + "node_modules/bs58check": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", + "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", + "dependencies": { + "bs58": "^4.0.0", + "create-hash": "^1.1.0", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/buffer-alloc": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", + "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", + "dependencies": { + "buffer-alloc-unsafe": "^1.1.0", + "buffer-fill": "^1.0.0" + } + }, + "node_modules/buffer-alloc-unsafe": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", + "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==" + }, + "node_modules/buffer-fill": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", + "integrity": "sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==" + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, + "node_modules/buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==" + }, + "node_modules/busboy": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", + "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", + "dependencies": { + "streamsearch": "^1.1.0" + }, + "engines": { + "node": ">=10.16.0" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/cardinal": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/cardinal/-/cardinal-2.1.1.tgz", + "integrity": "sha512-JSr5eOgoEymtYHBjNWyjrMqet9Am2miJhlfKNdqLp6zoeAh0KN5dRAcxlecj5mAJrmQomgiOBj35xHLrFjqBpw==", + "dependencies": { + "ansicolors": "~0.3.2", + "redeyed": "~2.1.0" + }, + "bin": { + "cdl": "bin/cdl.js" + } + }, + "node_modules/caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==" + }, + "node_modules/cborg": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/cborg/-/cborg-1.10.2.tgz", + "integrity": "sha512-b3tFPA9pUr2zCUiCfRd2+wok2/LBSNUMKOuRRok+WlvvAgEt/PlbgPTsZUcwCOs53IJvLgTp0eotwtosE6njug==", + "bin": { + "cborg": "cli.js" + } + }, + "node_modules/chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/chalk/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "engines": { + "node": ">=10" + } + }, + "node_modules/cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/clean-stack": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-3.0.1.tgz", + "integrity": "sha512-lR9wNiMRcVQjSB3a7xXGLuz4cr4wJuuXlaAEbRutGowQTmlp7R72/DOgN21e8jdwblMWl9UOJMJXarX94pzKdg==", + "dependencies": { + "escape-string-regexp": "4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-progress": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/cli-progress/-/cli-progress-3.12.0.tgz", + "integrity": "sha512-tRkV3HJ1ASwm19THiiLIXLO7Im7wlTuKnvkYaTkyoAPefqjNg7W7DHKUlGRxy9vxDvbyCYQkQozvptuMkGCg8A==", + "dependencies": { + "string-width": "^4.2.3" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cli-spinners": { + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.1.tgz", + "integrity": "sha512-jHgecW0pxkonBJdrKsqxgRX9AcG+u/5k0Q7WPDfi8AogLAdwxEkyYYNWwZ5GvVFoFx2uiY1eNcSK00fh+1+FyQ==", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-table3": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.5.1.tgz", + "integrity": "sha512-7Qg2Jrep1S/+Q3EceiZtQcDPWxhAvBw+ERf1162v4sikJrvojMHFqXt8QIVha8UlH9rgU0BeWPytZ9/TzYqlUw==", + "dependencies": { + "object-assign": "^4.1.0", + "string-width": "^2.1.1" + }, + "engines": { + "node": ">=6" + }, + "optionalDependencies": { + "colors": "^1.1.2" + } + }, + "node_modules/cli-table3/node_modules/ansi-regex": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", + "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/cli-table3/node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", + "engines": { + "node": ">=4" + } + }, + "node_modules/cli-table3/node_modules/string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dependencies": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cli-table3/node_modules/strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/colors": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.3.3.tgz", + "integrity": "sha512-mmGt/1pZqYRjMxB1axhTo16/snVZ5krrKkcmMeVKxzECMMXoCgnvTPp10QgHfcbQZw8Dq2jMNG6je4JlWU0gWg==", + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "engines": [ + "node >= 0.8" + ], + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "node_modules/cosmiconfig": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", + "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.7.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "dependencies": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "node_modules/create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "dependencies": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "node_modules/create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==" + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", + "dependencies": { + "assert-plus": "^1.0.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/defaults": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", + "dependencies": { + "clone": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/delay": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/delay/-/delay-5.0.0.tgz", + "integrity": "sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dns-over-http-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/dns-over-http-resolver/-/dns-over-http-resolver-1.2.3.tgz", + "integrity": "sha512-miDiVSI6KSNbi4SVifzO/reD8rMnxgrlnkrlkugOLQpWQTe2qMdHsZp5DmfKjxNE+/T3VAAYLQUZMv9SMr6+AA==", + "dependencies": { + "debug": "^4.3.1", + "native-fetch": "^3.0.0", + "receptacle": "^1.3.2" + } + }, + "node_modules/docker-compose": { + "version": "0.23.19", + "resolved": "https://registry.npmjs.org/docker-compose/-/docker-compose-0.23.19.tgz", + "integrity": "sha512-v5vNLIdUqwj4my80wxFDkNH+4S85zsRuH29SO7dCWVWPCMt/ohZBsGN6g6KXWifT0pzQ7uOxqEKCYCDPJ8Vz4g==", + "dependencies": { + "yaml": "^1.10.2" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/docker-modem": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/docker-modem/-/docker-modem-1.0.9.tgz", + "integrity": "sha512-lVjqCSCIAUDZPAZIeyM125HXfNvOmYYInciphNrLrylUtKyW66meAjSPXWchKVzoIYZx69TPnAepVSSkeawoIw==", + "dependencies": { + "debug": "^3.2.6", + "JSONStream": "1.3.2", + "readable-stream": "~1.0.26-4", + "split-ca": "^1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/docker-modem/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/docker-modem/node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==" + }, + "node_modules/docker-modem/node_modules/readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "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" + } + }, + "node_modules/docker-modem/node_modules/string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==" + }, + "node_modules/dockerode": { + "version": "2.5.8", + "resolved": "https://registry.npmjs.org/dockerode/-/dockerode-2.5.8.tgz", + "integrity": "sha512-+7iOUYBeDTScmOmQqpUYQaE7F4vvIt6+gIZNHWhqAQEI887tiPFB9OvXI/HzQYqfUNvukMK+9myLW63oTJPZpw==", + "dependencies": { + "concat-stream": "~1.6.2", + "docker-modem": "^1.0.8", + "tar-fs": "~1.16.3" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", + "dependencies": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/ejs": { + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.9.tgz", + "integrity": "sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==", + "dependencies": { + "jake": "^10.8.5" + }, + "bin": { + "ejs": "bin/cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/electron-fetch": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/electron-fetch/-/electron-fetch-1.9.1.tgz", + "integrity": "sha512-M9qw6oUILGVrcENMSRRefE1MbHPIz0h79EKIeJWK9v563aT9Qkh8aEHPO1H5vi970wPirNY+jO9OpFoLiMsMGA==", + "dependencies": { + "encoding": "^0.1.13" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "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" + } + }, + "node_modules/elliptic/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "dependencies": { + "iconv-lite": "^0.6.2" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/enquirer": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.4.tgz", + "integrity": "sha512-pkYrrDZumL2VS6VBGDhqbajCM2xpkUNLuKfGPjfKaSIBKYopQbqEFyrOkRMIb2HDR/rO1kGhEt/5twBwtzKBXw==", + "dependencies": { + "ansi-colors": "^3.2.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/err-code": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-3.0.1.tgz", + "integrity": "sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA==" + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es6-promise": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", + "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==" + }, + "node_modules/es6-promisify": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", + "integrity": "sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ==", + "dependencies": { + "es6-promise": "^4.0.3" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ethereum-bloom-filters": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.10.tgz", + "integrity": "sha512-rxJ5OFN3RwjQxDcFP2Z5+Q9ho4eIdEmSc2ht0fCu8Se9nbXjZ7/031uXoUYJ87KHCOdVeiUuwSnoS7hmYAGVHA==", + "dependencies": { + "js-sha3": "^0.8.0" + } + }, + "node_modules/ethereum-cryptography": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", + "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", + "dependencies": { + "@types/pbkdf2": "^3.0.0", + "@types/secp256k1": "^4.0.1", + "blakejs": "^1.1.0", + "browserify-aes": "^1.2.0", + "bs58check": "^2.1.2", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "hash.js": "^1.1.7", + "keccak": "^3.0.0", + "pbkdf2": "^3.0.17", + "randombytes": "^2.1.0", + "safe-buffer": "^5.1.2", + "scrypt-js": "^3.0.0", + "secp256k1": "^4.0.1", + "setimmediate": "^1.0.5" + } + }, + "node_modules/ethereumjs-util": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", + "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", + "dependencies": { + "@types/bn.js": "^5.1.0", + "bn.js": "^5.1.2", + "create-hash": "^1.1.2", + "ethereum-cryptography": "^0.1.3", + "rlp": "^2.2.4" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/ethjs-unit": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/ethjs-unit/-/ethjs-unit-0.1.6.tgz", + "integrity": "sha512-/Sn9Y0oKl0uqQuvgFk/zQgR7aw1g36qX/jzSQ5lSwlO0GigPymk4eGQfeNTD03w1dPOqfz8V77Cy43jH56pagw==", + "dependencies": { + "bn.js": "4.11.6", + "number-to-bn": "1.7.0" + }, + "engines": { + "node": ">=6.5.0", + "npm": ">=3" + } + }, + "node_modules/ethjs-unit/node_modules/bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA==" + }, + "node_modules/event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "dependencies": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/execa": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-3.4.0.tgz", + "integrity": "sha512-r9vdGQk4bmCuK1yKQu1KTwcT2zwfWdbdaXfCtAh+5nU/4fSX+JAb7vZGvI5naJrQlvONrEB20jeruESI69530g==", + "dependencies": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "p-finally": "^2.0.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": "^8.12.0 || >=9.7.0" + } + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "node_modules/extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", + "engines": [ + "node >=0.6.0" + ] + }, + "node_modules/eyes": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", + "integrity": "sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ==", + "engines": { + "node": "> 0.1.90" + } + }, + "node_modules/fast-decode-uri-component": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/fast-decode-uri-component/-/fast-decode-uri-component-1.0.1.tgz", + "integrity": "sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg==" + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "node_modules/fast-fifo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", + "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==" + }, + "node_modules/fast-glob": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", + "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, + "node_modules/fast-querystring": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/fast-querystring/-/fast-querystring-1.1.2.tgz", + "integrity": "sha512-g6KuKWmFXc0fID8WWH0jit4g0AGBoJhCkJMb1RmbsSEUNvQ+ZC8D6CUZ+GtF8nMzSPXnhiePyyqqipzNNEnHjg==", + "dependencies": { + "fast-decode-uri-component": "^1.0.1" + } + }, + "node_modules/fast-url-parser": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/fast-url-parser/-/fast-url-parser-1.1.3.tgz", + "integrity": "sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==", + "dependencies": { + "punycode": "^1.3.2" + } + }, + "node_modules/fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/filelist": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", + "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", + "dependencies": { + "minimatch": "^5.0.1" + } + }, + "node_modules/filelist/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/follow-redirects": { + "version": "1.15.3", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz", + "integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", + "engines": { + "node": "*" + } + }, + "node_modules/form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" + }, + "node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/fs-jetpack": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/fs-jetpack/-/fs-jetpack-2.4.0.tgz", + "integrity": "sha512-S/o9Dd7K9A7gicVU32eT8G0kHcmSu0rCVdP79P0MWInKFb8XpTc8Syhoo66k9no+HDshtlh4pUJTws8X+8fdFQ==", + "dependencies": { + "minimatch": "^3.0.2", + "rimraf": "^2.6.3" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/fs-jetpack/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/fs-jetpack/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/fs-jetpack/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/fs-jetpack/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/fs-minipass/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/get-iterator": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-iterator/-/get-iterator-1.0.2.tgz", + "integrity": "sha512-v+dm9bNVfOYsY1OrhaCrmyOcYoSeVvbt+hHZ0Au+T+p1y+0Uyj9aMaGIeUTT6xdpRbWzDeYKvfOslPhggQMcsg==" + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-port": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz", + "integrity": "sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg==", + "engines": { + "node": ">=4" + } + }, + "node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", + "dependencies": { + "assert-plus": "^1.0.0" + } + }, + "node_modules/glob": { + "version": "9.3.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-9.3.4.tgz", + "integrity": "sha512-qaSc49hojMOv1EPM4EuyITjDSgSKI0rthoHnvE81tcOi1SCVndHko7auqxdQ14eiQG2NDBJBE86+2xIrbIvrbA==", + "dependencies": { + "fs.realpath": "^1.0.0", + "minimatch": "^8.0.2", + "minipass": "^4.2.4", + "path-scurry": "^1.6.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gluegun": { + "version": "4.3.1", + "resolved": "git+ssh://git@github.com/edgeandnode/gluegun.git#b34b9003d7bf556836da41b57ef36eb21570620a", + "license": "MIT", + "dependencies": { + "apisauce": "^1.0.1", + "app-module-path": "^2.2.0", + "cli-table3": "~0.5.0", + "colors": "1.3.3", + "cosmiconfig": "6.0.0", + "cross-spawn": "^7.0.0", + "ejs": "^2.6.1", + "enquirer": "2.3.4", + "execa": "^3.0.0", + "fs-jetpack": "^2.2.2", + "lodash.camelcase": "^4.3.0", + "lodash.kebabcase": "^4.1.1", + "lodash.lowercase": "^4.3.0", + "lodash.lowerfirst": "^4.3.1", + "lodash.pad": "^4.5.1", + "lodash.padend": "^4.6.1", + "lodash.padstart": "^4.6.1", + "lodash.repeat": "^4.1.0", + "lodash.snakecase": "^4.1.1", + "lodash.startcase": "^4.4.0", + "lodash.trim": "^4.5.1", + "lodash.trimend": "^4.5.1", + "lodash.trimstart": "^4.5.1", + "lodash.uppercase": "^4.3.0", + "lodash.upperfirst": "^4.3.1", + "ora": "^4.0.0", + "pluralize": "^8.0.0", + "ramdasauce": "^2.1.0", + "semver": "^7.0.0", + "which": "^2.0.0", + "yargs-parser": "^16.1.0" + }, + "bin": { + "gluegun": "bin/gluegun" + } + }, + "node_modules/gluegun/node_modules/ejs": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.7.4.tgz", + "integrity": "sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA==", + "hasInstallScript": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" + }, + "node_modules/graphql": { + "version": "15.5.0", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.5.0.tgz", + "integrity": "sha512-OmaM7y0kaK31NKG31q4YbD2beNYa6jBBKtMFT6gLYJljHLJr42IqJ8KX08u3Li/0ifzTU5HjmoOOrwa5BRLeDA==", + "engines": { + "node": ">= 10.x" + } + }, + "node_modules/graphql-import-node": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/graphql-import-node/-/graphql-import-node-0.0.5.tgz", + "integrity": "sha512-OXbou9fqh9/Lm7vwXT0XoRN9J5+WCYKnbiTalgFDvkQERITRmcfncZs6aVABedd5B85yQU5EULS4a5pnbpuI0Q==", + "peerDependencies": { + "graphql": "*" + } + }, + "node_modules/har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==", + "engines": { + "node": ">=4" + } + }, + "node_modules/har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "deprecated": "this library is no longer supported", + "dependencies": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "dependencies": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/hash-base/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/hash-base/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "node_modules/hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", + "dependencies": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/http-basic": { + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/http-basic/-/http-basic-8.1.3.tgz", + "integrity": "sha512-/EcDMwJZh3mABI2NhGfHOGOeOZITqfkEO4p/xK+l3NpyncIHUQBoMvCSF/b5GqvKtySC2srL/GGG3+EtlqlmCw==", + "dependencies": { + "caseless": "^0.12.0", + "concat-stream": "^1.6.2", + "http-response-object": "^3.0.1", + "parse-cache-control": "^1.0.1" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/http-response-object": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/http-response-object/-/http-response-object-3.0.2.tgz", + "integrity": "sha512-bqX0XTF6fnXSQcEJ2Iuyr75yVakyjIDCqroJQ/aHfSdlM743Cwqoi2nDYMzLGWUcuTWGWy8AAvOKXTfiv6q9RA==", + "dependencies": { + "@types/node": "^10.0.3" + } + }, + "node_modules/http-response-object/node_modules/@types/node": { + "version": "10.17.60", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz", + "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==" + }, + "node_modules/http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", + "dependencies": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + }, + "engines": { + "node": ">=0.8", + "npm": ">=1.3.7" + } + }, + "node_modules/human-signals": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", + "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", + "engines": { + "node": ">=8.12.0" + } + }, + "node_modules/hyperlinker": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hyperlinker/-/hyperlinker-1.0.0.tgz", + "integrity": "sha512-Ty8UblRWFEcfSuIaajM34LdPXIhbs1ajEX/BBPv24J+enSVaEVY63xQ6lTO9VRYS5LAoghIG0IDJ+p+IPzKUQQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/ignore": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/immutable": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.2.1.tgz", + "integrity": "sha512-7WYV7Q5BTs0nlQm7tl92rDYYoyELLKHoDMBKhrxEoiV4mrfVdRz8hzPiYOzH7yWjzoVEamxRuAqhxL2PLRwZYQ==" + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/interface-datastore": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-6.1.1.tgz", + "integrity": "sha512-AmCS+9CT34pp2u0QQVXjKztkuq3y5T+BIciuiHDDtDZucZD8VudosnSdUyXJV6IsRkN5jc4RFDhCk1O6Q3Gxjg==", + "dependencies": { + "interface-store": "^2.0.2", + "nanoid": "^3.0.2", + "uint8arrays": "^3.0.0" + } + }, + "node_modules/interface-store": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-2.0.2.tgz", + "integrity": "sha512-rScRlhDcz6k199EkHqT8NpM87ebN89ICOzILoBHgaG36/WX50N32BnU/kpZgCGPLhARRAWUUX5/cyaIjt7Kipg==" + }, + "node_modules/ip-regex": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-4.3.0.tgz", + "integrity": "sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/ipfs-core-types": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/ipfs-core-types/-/ipfs-core-types-0.9.0.tgz", + "integrity": "sha512-VJ8vJSHvI1Zm7/SxsZo03T+zzpsg8pkgiIi5hfwSJlsrJ1E2v68QPlnLshGHUSYw89Oxq0IbETYl2pGTFHTWfg==", + "deprecated": "js-IPFS has been deprecated in favour of Helia - please see https://github.com/ipfs/js-ipfs/issues/4336 for details", + "dependencies": { + "interface-datastore": "^6.0.2", + "multiaddr": "^10.0.0", + "multiformats": "^9.4.13" + } + }, + "node_modules/ipfs-core-utils": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/ipfs-core-utils/-/ipfs-core-utils-0.13.0.tgz", + "integrity": "sha512-HP5EafxU4/dLW3U13CFsgqVO5Ika8N4sRSIb/dTg16NjLOozMH31TXV0Grtu2ZWo1T10ahTzMvrfT5f4mhioXw==", + "deprecated": "js-IPFS has been deprecated in favour of Helia - please see https://github.com/ipfs/js-ipfs/issues/4336 for details", + "dependencies": { + "any-signal": "^2.1.2", + "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.9.0", + "ipfs-unixfs": "^6.0.3", + "ipfs-utils": "^9.0.2", + "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.4.13", + "nanoid": "^3.1.23", + "parse-duration": "^1.0.0", + "timeout-abort-controller": "^2.0.0", + "uint8arrays": "^3.0.0" + } + }, + "node_modules/ipfs-http-client": { + "version": "55.0.0", + "resolved": "https://registry.npmjs.org/ipfs-http-client/-/ipfs-http-client-55.0.0.tgz", + "integrity": "sha512-GpvEs7C7WL9M6fN/kZbjeh4Y8YN7rY8b18tVWZnKxRsVwM25cIFrRI8CwNt3Ugin9yShieI3i9sPyzYGMrLNnQ==", + "deprecated": "js-IPFS has been deprecated in favour of Helia - please see https://github.com/ipfs/js-ipfs/issues/4336 for details", + "dependencies": { + "@ipld/dag-cbor": "^7.0.0", + "@ipld/dag-json": "^8.0.1", + "@ipld/dag-pb": "^2.1.3", + "abort-controller": "^3.0.0", + "any-signal": "^2.1.2", + "debug": "^4.1.1", + "err-code": "^3.0.1", + "ipfs-core-types": "^0.9.0", + "ipfs-core-utils": "^0.13.0", + "ipfs-utils": "^9.0.2", + "it-first": "^1.0.6", + "it-last": "^1.0.4", + "merge-options": "^3.0.4", + "multiaddr": "^10.0.0", + "multiformats": "^9.4.13", + "native-abort-controller": "^1.0.3", + "parse-duration": "^1.0.0", + "stream-to-it": "^0.2.2", + "uint8arrays": "^3.0.0" + }, + "engines": { + "node": ">=14.0.0", + "npm": ">=3.0.0" + } + }, + "node_modules/ipfs-unixfs": { + "version": "6.0.9", + "resolved": "https://registry.npmjs.org/ipfs-unixfs/-/ipfs-unixfs-6.0.9.tgz", + "integrity": "sha512-0DQ7p0/9dRB6XCb0mVCTli33GzIzSVx5udpJuVM47tGcD+W+Bl4LsnoLswd3ggNnNEakMv1FdoFITiEnchXDqQ==", + "dependencies": { + "err-code": "^3.0.1", + "protobufjs": "^6.10.2" + }, + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/ipfs-utils": { + "version": "9.0.14", + "resolved": "https://registry.npmjs.org/ipfs-utils/-/ipfs-utils-9.0.14.tgz", + "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" + }, + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/ipfs-utils/node_modules/any-signal": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/any-signal/-/any-signal-3.0.1.tgz", + "integrity": "sha512-xgZgJtKEa9YmDqXodIgl7Fl1C8yNXr8w6gXjqK3LW4GcEiYT+6AQfJSE/8SPsEpLLmcvbv8YU+qet94UewHxqg==" + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-electron": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/is-electron/-/is-electron-2.2.2.tgz", + "integrity": "sha512-FO/Rhvz5tuw4MCWkpMzHFKWD2LsfHzIb7i6MdPYZ/KW7AlxawyLkqdy+jPZP1WubqEADE3O4FUENlJHDfQASRg==" + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-hex-prefixed": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz", + "integrity": "sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA==", + "engines": { + "node": ">=6.5.0", + "npm": ">=3" + } + }, + "node_modules/is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-ip": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-ip/-/is-ip-3.1.0.tgz", + "integrity": "sha512-35vd5necO7IitFPjd/YBeqwWnyDWbuLH9ZXQdMfDA8TEo7pv5X8yfrvVO3xbJbLUlERCMvf6X0hTUamQxCYJ9Q==", + "dependencies": { + "ip-regex": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "node_modules/iso-url": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/iso-url/-/iso-url-1.2.1.tgz", + "integrity": "sha512-9JPDgCN4B7QPkLtYAAOrEuAWvP9rWvR5offAr0/SeF046wIkglqH3VXgYYP6NcsKslH80UIVgmPqNe3j7tG2ng==", + "engines": { + "node": ">=12" + } + }, + "node_modules/isomorphic-ws": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz", + "integrity": "sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==", + "peerDependencies": { + "ws": "*" + } + }, + "node_modules/isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==" + }, + "node_modules/it-all": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/it-all/-/it-all-1.0.6.tgz", + "integrity": "sha512-3cmCc6Heqe3uWi3CVM/k51fa/XbMFpQVzFoDsV0IZNHSQDyAXl3c4MjHkFX5kF3922OGj7Myv1nSEUgRtcuM1A==" + }, + "node_modules/it-first": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/it-first/-/it-first-1.0.7.tgz", + "integrity": "sha512-nvJKZoBpZD/6Rtde6FXqwDqDZGF1sCADmr2Zoc0hZsIvnE449gRFnGctxDf09Bzc/FWnHXAdaHVIetY6lrE0/g==" + }, + "node_modules/it-glob": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/it-glob/-/it-glob-1.0.2.tgz", + "integrity": "sha512-Ch2Dzhw4URfB9L/0ZHyY+uqOnKvBNeS/SMcRiPmJfpHiM0TsUZn+GkpcZxAoF3dJVdPm/PuIk3A4wlV7SUo23Q==", + "dependencies": { + "@types/minimatch": "^3.0.4", + "minimatch": "^3.0.4" + } + }, + "node_modules/it-glob/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/it-glob/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/it-last": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/it-last/-/it-last-1.0.6.tgz", + "integrity": "sha512-aFGeibeiX/lM4bX3JY0OkVCFkAw8+n9lkukkLNivbJRvNz8lI3YXv5xcqhFUV2lDJiraEK3OXRDbGuevnnR67Q==" + }, + "node_modules/it-map": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/it-map/-/it-map-1.0.6.tgz", + "integrity": "sha512-XT4/RM6UHIFG9IobGlQPFQUrlEKkU4eBUFG3qhWhfAdh1JfF2x11ShCrKCdmZ0OiZppPfoLuzcfA4cey6q3UAQ==" + }, + "node_modules/it-peekable": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/it-peekable/-/it-peekable-1.0.3.tgz", + "integrity": "sha512-5+8zemFS+wSfIkSZyf0Zh5kNN+iGyccN02914BY4w/Dj+uoFEoPSvj5vaWn8pNZJNSxzjW0zHRxC3LUb2KWJTQ==" + }, + "node_modules/it-to-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/it-to-stream/-/it-to-stream-1.0.0.tgz", + "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" + } + }, + "node_modules/it-to-stream/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/jake": { + "version": "10.8.7", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.7.tgz", + "integrity": "sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==", + "dependencies": { + "async": "^3.2.3", + "chalk": "^4.0.2", + "filelist": "^1.0.4", + "minimatch": "^3.1.2" + }, + "bin": { + "jake": "bin/cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jake/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/jake/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jake/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/jake/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jayson": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jayson/-/jayson-4.0.0.tgz", + "integrity": "sha512-v2RNpDCMu45fnLzSk47vx7I+QUaOsox6f5X0CUlabAFwxoP+8MfAY0NQRFwOEYXIxm8Ih5y6OaEa5KYiQMkyAA==", + "dependencies": { + "@types/connect": "^3.4.33", + "@types/node": "^12.12.54", + "@types/ws": "^7.4.4", + "commander": "^2.20.3", + "delay": "^5.0.0", + "es6-promisify": "^5.0.0", + "eyes": "^0.1.8", + "isomorphic-ws": "^4.0.1", + "json-stringify-safe": "^5.0.1", + "JSONStream": "^1.3.5", + "uuid": "^8.3.2", + "ws": "^7.4.5" + }, + "bin": { + "jayson": "bin/jayson.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jayson/node_modules/@types/node": { + "version": "12.20.55", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", + "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==" + }, + "node_modules/jayson/node_modules/JSONStream": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "dependencies": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + }, + "bin": { + "JSONStream": "bin.js" + }, + "engines": { + "node": "*" + } + }, + "node_modules/js-sha3": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", + "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==" + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==" + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" + }, + "node_modules/json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==" + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", + "engines": [ + "node >= 0.2.0" + ] + }, + "node_modules/JSONStream": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.2.tgz", + "integrity": "sha512-mn0KSip7N4e0UDPZHnqDsHECo5uGQrixQKnAskOM1BIB8hd7QKbd6il8IPRPudPHOeHiECoCFqhyMaRO9+nWyA==", + "dependencies": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + }, + "bin": { + "JSONStream": "bin.js" + }, + "engines": { + "node": "*" + } + }, + "node_modules/jsprim": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", + "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", + "dependencies": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.4.0", + "verror": "1.10.0" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/keccak": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.4.tgz", + "integrity": "sha512-3vKuW0jV8J3XNTzvfyicFR5qvxrSAGl7KIhvgOu5cmWwM7tZRj3fMbj/pfIf4be7aznbc+prBWGjywox/g2Y6Q==", + "hasInstallScript": true, + "dependencies": { + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/keccak/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" + }, + "node_modules/lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==" + }, + "node_modules/lodash.kebabcase": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz", + "integrity": "sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==" + }, + "node_modules/lodash.lowercase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.lowercase/-/lodash.lowercase-4.3.0.tgz", + "integrity": "sha512-UcvP1IZYyDKyEL64mmrwoA1AbFu5ahojhTtkOUr1K9dbuxzS9ev8i4TxMMGCqRC9TE8uDaSoufNAXxRPNTseVA==" + }, + "node_modules/lodash.lowerfirst": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/lodash.lowerfirst/-/lodash.lowerfirst-4.3.1.tgz", + "integrity": "sha512-UUKX7VhP1/JL54NXg2aq/E1Sfnjjes8fNYTNkPU8ZmsaVeBvPHKdbNaN79Re5XRL01u6wbq3j0cbYZj71Fcu5w==" + }, + "node_modules/lodash.pad": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/lodash.pad/-/lodash.pad-4.5.1.tgz", + "integrity": "sha512-mvUHifnLqM+03YNzeTBS1/Gr6JRFjd3rRx88FHWUvamVaT9k2O/kXha3yBSOwB9/DTQrSTLJNHvLBBt2FdX7Mg==" + }, + "node_modules/lodash.padend": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz", + "integrity": "sha512-sOQs2aqGpbl27tmCS1QNZA09Uqp01ZzWfDUoD+xzTii0E7dSQfRKcRetFwa+uXaxaqL+TKm7CgD2JdKP7aZBSw==" + }, + "node_modules/lodash.padstart": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.padstart/-/lodash.padstart-4.6.1.tgz", + "integrity": "sha512-sW73O6S8+Tg66eY56DBk85aQzzUJDtpoXFBgELMd5P/SotAguo+1kYO6RuYgXxA4HJH3LFTFPASX6ET6bjfriw==" + }, + "node_modules/lodash.repeat": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/lodash.repeat/-/lodash.repeat-4.1.0.tgz", + "integrity": "sha512-eWsgQW89IewS95ZOcr15HHCX6FVDxq3f2PNUIng3fyzsPev9imFQxIYdFZ6crl8L56UR6ZlGDLcEb3RZsCSSqw==" + }, + "node_modules/lodash.snakecase": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz", + "integrity": "sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==" + }, + "node_modules/lodash.startcase": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.startcase/-/lodash.startcase-4.4.0.tgz", + "integrity": "sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==" + }, + "node_modules/lodash.trim": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/lodash.trim/-/lodash.trim-4.5.1.tgz", + "integrity": "sha512-nJAlRl/K+eiOehWKDzoBVrSMhK0K3A3YQsUNXHQa5yIrKBAhsZgSu3KoAFoFT+mEgiyBHddZ0pRk1ITpIp90Wg==" + }, + "node_modules/lodash.trimend": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/lodash.trimend/-/lodash.trimend-4.5.1.tgz", + "integrity": "sha512-lsD+k73XztDsMBKPKvzHXRKFNMohTjoTKIIo4ADLn5dA65LZ1BqlAvSXhR2rPEC3BgAUQnzMnorqDtqn2z4IHA==" + }, + "node_modules/lodash.trimstart": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/lodash.trimstart/-/lodash.trimstart-4.5.1.tgz", + "integrity": "sha512-b/+D6La8tU76L/61/aN0jULWHkT0EeJCmVstPBn/K9MtD2qBW83AsBNrr63dKuWYwVMO7ucv13QNO/Ek/2RKaQ==" + }, + "node_modules/lodash.uppercase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.uppercase/-/lodash.uppercase-4.3.0.tgz", + "integrity": "sha512-+Nbnxkj7s8K5U8z6KnEYPGUOGp3woZbB7Ecs7v3LkkjLQSm2kP9SKIILitN1ktn2mB/tmM9oSlku06I+/lH7QA==" + }, + "node_modules/lodash.upperfirst": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/lodash.upperfirst/-/lodash.upperfirst-4.3.1.tgz", + "integrity": "sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg==" + }, + "node_modules/log-symbols": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz", + "integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==", + "dependencies": { + "chalk": "^2.4.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/log-symbols/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/log-symbols/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/log-symbols/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/log-symbols/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "node_modules/log-symbols/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/log-symbols/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/log-symbols/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/long": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", + "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==" + }, + "node_modules/lru-cache": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", + "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==", + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" + }, + "node_modules/md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/merge-options": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/merge-options/-/merge-options-3.0.4.tgz", + "integrity": "sha512-2Sug1+knBjkaMsMgf1ctR1Ujx+Ayku4EdJN4Z+C2+JzoeF7A3OZ9KM2GY0CpQS51NR61LTurMJrRKPhSs3ZRTQ==", + "dependencies": { + "is-plain-obj": "^2.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + }, + "node_modules/minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==" + }, + "node_modules/minimatch": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-8.0.4.tgz", + "integrity": "sha512-W0Wvr9HyFXZRGIDgCicunpQ299OKXs9RgZfaukz4qAW/pJhcpUfupc9c+OObPOFueNy8VSrZgEmDtk6Kh4WzDA==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minipass": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.8.tgz", + "integrity": "sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minizlib/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/multiaddr": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/multiaddr/-/multiaddr-10.0.1.tgz", + "integrity": "sha512-G5upNcGzEGuTHkzxezPrrD6CaIHR9uo+7MwqhNVcXTs33IInon4y7nMiGxl2CY5hG7chvYQUQhz5V52/Qe3cbg==", + "deprecated": "This module is deprecated, please upgrade to @multiformats/multiaddr", + "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" + } + }, + "node_modules/multiaddr-to-uri": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/multiaddr-to-uri/-/multiaddr-to-uri-8.0.0.tgz", + "integrity": "sha512-dq4p/vsOOUdVEd1J1gl+R2GFrXJQH8yjLtz4hodqdVbieg39LvBOdMQRdQnfbg5LSM/q1BYNVf5CBbwZFFqBgA==", + "deprecated": "This module is deprecated, please upgrade to @multiformats/multiaddr-to-uri", + "dependencies": { + "multiaddr": "^10.0.0" + } + }, + "node_modules/multiformats": { + "version": "9.9.0", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-9.9.0.tgz", + "integrity": "sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg==" + }, + "node_modules/mustache": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/mustache/-/mustache-3.2.1.tgz", + "integrity": "sha512-RERvMFdLpaFfSRIEe632yDm5nsd0SDKn8hGmcUwswnyiE5mtdZLDybtHAz6hjJhawokF0hXvGLtx9mrQfm6FkA==", + "dev": true, + "bin": { + "mustache": "bin/mustache" + }, + "engines": { + "npm": ">=1.4.0" + } + }, + "node_modules/mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" + }, + "node_modules/nanoid": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", + "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/native-abort-controller": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/native-abort-controller/-/native-abort-controller-1.0.4.tgz", + "integrity": "sha512-zp8yev7nxczDJMoP6pDxyD20IU0T22eX8VwN2ztDccKvSZhRaV33yP1BGwKSZfXuqWUzsXopVFjBdau9OOAwMQ==", + "peerDependencies": { + "abort-controller": "*" + } + }, + "node_modules/native-fetch": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/native-fetch/-/native-fetch-3.0.0.tgz", + "integrity": "sha512-G3Z7vx0IFb/FQ4JxvtqGABsOTIqRWvgQz6e+erkB+JJD6LrszQtMozEHI4EkmgZQvnGHrpLVzUWk7t4sJCIkVw==", + "peerDependencies": { + "node-fetch": "*" + } + }, + "node_modules/natural-orderby": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/natural-orderby/-/natural-orderby-2.0.3.tgz", + "integrity": "sha512-p7KTHxU0CUrcOXe62Zfrb5Z13nLvPhSWR/so3kFulUQU0sgUll2Z0LwpsLN351eOOD+hRGu/F1g+6xDfPeD++Q==", + "engines": { + "node": "*" + } + }, + "node_modules/node-addon-api": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", + "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==" + }, + "node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-gyp-build": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.1.tgz", + "integrity": "sha512-24vnklJmyRS8ViBNI8KbtK/r/DmXQMRiOMXTNz2nrTnAYUwjmEEbnnpB/+kt+yWRv73bPsSPRFddrcIbAxSiMQ==", + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/number-to-bn": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/number-to-bn/-/number-to-bn-1.7.0.tgz", + "integrity": "sha512-wsJ9gfSz1/s4ZsJN01lyonwuxA1tml6X1yBDnfpMglypcBRFZZkus26EdPSlqS5GJfYddVZa22p3VNb3z5m5Ig==", + "dependencies": { + "bn.js": "4.11.6", + "strip-hex-prefix": "1.0.0" + }, + "engines": { + "node": ">=6.5.0", + "npm": ">=3" + } + }, + "node_modules/number-to-bn/node_modules/bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA==" + }, + "node_modules/oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "engines": { + "node": "*" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-treeify": { + "version": "1.1.33", + "resolved": "https://registry.npmjs.org/object-treeify/-/object-treeify-1.1.33.tgz", + "integrity": "sha512-EFVjAYfzWqWsBMRHPMAXLCDIJnpMhdWAqR7xG6M6a2cs6PMFpl/+Z20w9zDW4vkxOFfddegBKq9Rehd0bxWE7A==", + "engines": { + "node": ">= 10" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ora": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-4.1.1.tgz", + "integrity": "sha512-sjYP8QyVWBpBZWD6Vr1M/KwknSw6kJOz41tvGMlwWeClHBtYKTbHMki1PsLZnxKpXMPbTKv9b3pjQu3REib96A==", + "dependencies": { + "chalk": "^3.0.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.2.0", + "is-interactive": "^1.0.0", + "log-symbols": "^3.0.0", + "mute-stream": "0.0.8", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-defer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-3.0.0.tgz", + "integrity": "sha512-ugZxsxmtTln604yeYd29EGrNhazN2lywetzpKhfmQjW/VJmhpDmWbiX+h0zL8V91R0UXkhb3KtPmyq9PZw3aYw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/p-fifo": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-fifo/-/p-fifo-1.0.0.tgz", + "integrity": "sha512-IjoCxXW48tqdtDFz6fqo5q1UfFVjjVZe8TC1QRflvNUJtNfCUhxOUw6MOVZhDPjqhSzc26xKdugsO17gmzd5+A==", + "dependencies": { + "fast-fifo": "^1.0.0", + "p-defer": "^3.0.0" + } + }, + "node_modules/p-finally": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-2.0.1.tgz", + "integrity": "sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-cache-control": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-cache-control/-/parse-cache-control-1.0.1.tgz", + "integrity": "sha512-60zvsJReQPX5/QP0Kzfd/VrpjScIQ7SHBW6bFCYfEP+fp0Eppr1SHhIO5nd1PjZtvclzSzES9D/p5nFJurwfWg==" + }, + "node_modules/parse-duration": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/parse-duration/-/parse-duration-1.1.0.tgz", + "integrity": "sha512-z6t9dvSJYaPoQq7quMzdEagSFtpGu+utzHqqxmpVWNNZRIXnvqyCvn9XsTdh7c/w0Bqmdz3RB3YnRaKtpRtEXQ==" + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/password-prompt": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/password-prompt/-/password-prompt-1.1.3.tgz", + "integrity": "sha512-HkrjG2aJlvF0t2BMH0e2LB/EHf3Lcq3fNMzy4GYHcQblAvOl+QQji1Lx7WRBMqpVK8p+KR7bCg7oqAMXtdgqyw==", + "dependencies": { + "ansi-escapes": "^4.3.2", + "cross-spawn": "^7.0.3" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-scurry": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", + "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", + "dependencies": { + "lru-cache": "^9.1.1 || ^10.0.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/minipass": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/pbkdf2": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", + "dependencies": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pluralize": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", + "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/prettier": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz", + "integrity": "sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==", + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "node_modules/promise": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz", + "integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==", + "dependencies": { + "asap": "~2.0.6" + } + }, + "node_modules/protobufjs": { + "version": "6.11.4", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.4.tgz", + "integrity": "sha512-5kQWPaJHi1WoCpjTGszzQ32PG2F4+wRY6BmAT4Vfw56Q2FZ4YZzK20xUYQH4YkfehY1e6QSICrJquM6xXZNcrw==", + "hasInstallScript": true, + "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" + }, + "bin": { + "pbjs": "bin/pbjs", + "pbts": "bin/pbts" + } + }, + "node_modules/protobufjs/node_modules/long": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", + "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" + }, + "node_modules/psl": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", + "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==" + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==" + }, + "node_modules/pvtsutils": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/pvtsutils/-/pvtsutils-1.3.5.tgz", + "integrity": "sha512-ARvb14YB9Nm2Xi6nBq1ZX6dAM0FsJnuk+31aUp4TrcZEdKUlSqOqsxJHUPJDNE3qiIp+iUPEIeR6Je/tgV7zsA==", + "dependencies": { + "tslib": "^2.6.1" + } + }, + "node_modules/pvutils": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/pvutils/-/pvutils-1.1.3.tgz", + "integrity": "sha512-pMpnA0qRdFp32b1sJl1wOJNxZLQ2cbQx+k6tjNtZ8CpvVhNqEPRgivZ2WOUev2YMajecdH7ctUPDvEe87nariQ==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/qs": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", + "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/ramda": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.25.0.tgz", + "integrity": "sha512-GXpfrYVPwx3K7RQ6aYT8KPS8XViSXUVJT1ONhoKPE9VAleW42YE+U+8VEyGWt41EnEQW7gwecYJriTI0pKoecQ==" + }, + "node_modules/ramdasauce": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ramdasauce/-/ramdasauce-2.1.3.tgz", + "integrity": "sha512-Ml3CPim4SKwmg5g9UI77lnRSeKr/kQw7YhQ6rfdMcBYy6DMlwmkEwQqjygJ3OhxPR+NfFfpjKl3Tf8GXckaqqg==", + "dependencies": { + "ramda": "^0.24.1" + } + }, + "node_modules/ramdasauce/node_modules/ramda": { + "version": "0.24.1", + "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.24.1.tgz", + "integrity": "sha512-HEm619G8PaZMfkqCa23qiOe7r3R0brPu7ZgOsgKUsnvLhd0qhc/vTjkUovomgPWa5ECBa08fJZixth9LaoBo5w==" + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/react-native-fetch-api": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/react-native-fetch-api/-/react-native-fetch-api-3.0.0.tgz", + "integrity": "sha512-g2rtqPjdroaboDKTsJCTlcmtw54E25OjyaunUP0anOZn4Fuo2IKs8BVfe02zVggA/UysbmfSnRJIqtNkAgggNA==", + "dependencies": { + "p-defer": "^3.0.0" + } + }, + "node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/receptacle": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/receptacle/-/receptacle-1.3.2.tgz", + "integrity": "sha512-HrsFvqZZheusncQRiEE7GatOAETrARKV/lnfYicIm8lbvp/JQOdADOfhjBd2DajvoszEyxSM6RlAAIZgEoeu/A==", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/redeyed": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/redeyed/-/redeyed-2.1.1.tgz", + "integrity": "sha512-FNpGGo1DycYAdnrKFxCMmKYgo/mILAqtRYbkdQD8Ep/Hk2PQ5+aEAEx+IU713RTDmuBaH0c8P5ZozurNu5ObRQ==", + "dependencies": { + "esprima": "~4.0.0" + } + }, + "node_modules/request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", + "dependencies": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/request/node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "engines": { + "node": ">=4" + } + }, + "node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/retimer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/retimer/-/retimer-3.0.0.tgz", + "integrity": "sha512-WKE0j11Pa0ZJI5YIk0nflGI7SQsfl2ljihVy7ogh7DeQSeYAUi0ubZ/yEueGtDfUPk6GH5LRw1hBdLq4IwUBWA==" + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/rimraf/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "node_modules/rlp": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.7.tgz", + "integrity": "sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ==", + "dependencies": { + "bn.js": "^5.2.0" + }, + "bin": { + "rlp": "bin/rlp" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/scrypt-js": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", + "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==" + }, + "node_modules/secp256k1": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz", + "integrity": "sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==", + "hasInstallScript": true, + "dependencies": { + "elliptic": "^6.5.4", + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==" + }, + "node_modules/sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "bin": { + "sha.js": "bin.js" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "engines": { + "node": ">=8" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/split-ca": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/split-ca/-/split-ca-1.0.1.tgz", + "integrity": "sha512-Q5thBSxp5t8WPTTJQS59LrGqOZqOsrhDGDVm8azCqIBjSBd7nd9o2PM+mDulQQkh8h//4U6hFZnc/mul8t5pWQ==" + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" + }, + "node_modules/sshpk": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", + "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", + "dependencies": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + }, + "bin": { + "sshpk-conv": "bin/sshpk-conv", + "sshpk-sign": "bin/sshpk-sign", + "sshpk-verify": "bin/sshpk-verify" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stream-to-it": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/stream-to-it/-/stream-to-it-0.2.4.tgz", + "integrity": "sha512-4vEbkSs83OahpmBybNJXlJd7d6/RxzkkSdT3I0mnGt79Xd2Kk+e1JqbvAvsQfCeKj3aKb0QIWkyK3/n0j506vQ==", + "dependencies": { + "get-iterator": "^1.0.2" + } + }, + "node_modules/streamsearch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", + "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-hex-prefix": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz", + "integrity": "sha512-q8d4ue7JGEiVcypji1bALTos+0pWtyGlivAWyPuTkHzuTCJqrK9sWxYQZUq6Nq3cuyv3bm734IhHvHtGGURU6A==", + "dependencies": { + "is-hex-prefixed": "1.0.0" + }, + "engines": { + "node": ">=6.5.0", + "npm": ">=3" + } + }, + "node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/supports-hyperlinks": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", + "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", + "dependencies": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/sync-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/sync-request/-/sync-request-6.1.0.tgz", + "integrity": "sha512-8fjNkrNlNCrVc/av+Jn+xxqfCjYaBoHqCsDz6mt030UMxJGr+GSfCV1dQt2gRtlL63+VPidwDVLr7V2OcTSdRw==", + "dependencies": { + "http-response-object": "^3.0.1", + "sync-rpc": "^1.2.1", + "then-request": "^6.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/sync-rpc": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/sync-rpc/-/sync-rpc-1.3.6.tgz", + "integrity": "sha512-J8jTXuZzRlvU7HemDgHi3pGnh/rkoqR/OZSjhTyyZrEkkYQbk7Z33AXp37mkPfPpfdOuj7Ex3H/TJM1z48uPQw==", + "dependencies": { + "get-port": "^3.1.0" + } + }, + "node_modules/tar": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz", + "integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==", + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^5.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/tar-fs": { + "version": "1.16.3", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-1.16.3.tgz", + "integrity": "sha512-NvCeXpYx7OsmOh8zIOP/ebG55zZmxLE0etfWRbWok+q2Qo8x/vOR/IJT1taADXPe+jsiu9axDb3X4B+iIgNlKw==", + "dependencies": { + "chownr": "^1.0.1", + "mkdirp": "^0.5.1", + "pump": "^1.0.0", + "tar-stream": "^1.1.2" + } + }, + "node_modules/tar-fs/node_modules/chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" + }, + "node_modules/tar-fs/node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/tar-fs/node_modules/pump": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pump/-/pump-1.0.3.tgz", + "integrity": "sha512-8k0JupWme55+9tCVE+FS5ULT3K6AbgqrGa58lTT49RpyfwwcGedHqaC5LlQNdEAumn/wFsu6aPwkuPMioy8kqw==", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/tar-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz", + "integrity": "sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==", + "dependencies": { + "bl": "^1.0.0", + "buffer-alloc": "^1.2.0", + "end-of-stream": "^1.0.0", + "fs-constants": "^1.0.0", + "readable-stream": "^2.3.0", + "to-buffer": "^1.1.1", + "xtend": "^4.0.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/tar/node_modules/minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/then-request": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/then-request/-/then-request-6.0.2.tgz", + "integrity": "sha512-3ZBiG7JvP3wbDzA9iNY5zJQcHL4jn/0BWtXIkagfz7QgOL/LqjCEOBQuJNZfu0XYnv5JhKh+cDxCPM4ILrqruA==", + "dependencies": { + "@types/concat-stream": "^1.6.0", + "@types/form-data": "0.0.33", + "@types/node": "^8.0.0", + "@types/qs": "^6.2.31", + "caseless": "~0.12.0", + "concat-stream": "^1.6.0", + "form-data": "^2.2.0", + "http-basic": "^8.1.1", + "http-response-object": "^3.0.1", + "promise": "^8.0.0", + "qs": "^6.4.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/then-request/node_modules/@types/node": { + "version": "8.10.66", + "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.66.tgz", + "integrity": "sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw==" + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" + }, + "node_modules/timeout-abort-controller": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/timeout-abort-controller/-/timeout-abort-controller-2.0.0.tgz", + "integrity": "sha512-2FAPXfzTPYEgw27bQGTHc0SzrbmnU2eso4qo172zMLZzaGqeu09PFa5B2FCUHM1tflgRqPgn5KQgp6+Vex4uNA==", + "dependencies": { + "abort-controller": "^3.0.0", + "native-abort-controller": "^1.0.4", + "retimer": "^3.0.0" + } + }, + "node_modules/tmp": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "dependencies": { + "rimraf": "^3.0.0" + }, + "engines": { + "node": ">=8.17.0" + } + }, + "node_modules/tmp-promise": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/tmp-promise/-/tmp-promise-3.0.3.tgz", + "integrity": "sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ==", + "dependencies": { + "tmp": "^0.2.0" + } + }, + "node_modules/to-buffer": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz", + "integrity": "sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==" + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "dependencies": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/tough-cookie/node_modules/punycode": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + "node_modules/ts-node": { + "version": "10.9.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", + "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", + "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" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } + } + }, + "node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + }, + "node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==" + }, + "node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==" + }, + "node_modules/typescript": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz", + "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==", + "peer": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/uint8arrays": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.1.1.tgz", + "integrity": "sha512-+QJa8QRnbdXVpHYjLoTpJIdCTiw9Ir62nocClWuXIq2JIh4Uta0cQsTSpFL678p2CN8B+XSApwcU+pQEqVpKWg==", + "dependencies": { + "multiformats": "^9.4.2" + } + }, + "node_modules/undici-types": { + "version": "5.25.3", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.25.3.tgz", + "integrity": "sha512-Ga1jfYwRn7+cP9v8auvEXN1rX3sWqlayd4HP7OKk4mZWylEmu3KzXDUGrQUN6Ol7qo1gPvB2e5gX6udnyEPgdA==" + }, + "node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/uri-js/node_modules/punycode": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/urlpattern-polyfill": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/urlpattern-polyfill/-/urlpattern-polyfill-8.0.2.tgz", + "integrity": "sha512-Qp95D4TPJl1kC9SKigDcqgyM2VDVO4RiJc2d4qe5GrYm+zbIQCWWKAFaJNQ4BhdFeDGwBmAxqJBwWSJDb9T3BQ==" + }, + "node_modules/utf8": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/utf8/-/utf8-3.0.0.tgz", + "integrity": "sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ==" + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==" + }, + "node_modules/varint": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz", + "integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==" + }, + "node_modules/verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "node_modules/verror/node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==" + }, + "node_modules/wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", + "dependencies": { + "defaults": "^1.0.3" + } + }, + "node_modules/web-streams-polyfill": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz", + "integrity": "sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/web3-eth-abi": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.7.0.tgz", + "integrity": "sha512-heqR0bWxgCJwjWIhq2sGyNj9bwun5+Xox/LdZKe+WMyTSy0cXDXEAgv3XKNkXC4JqdDt/ZlbTEx4TWak4TRMSg==", + "dependencies": { + "@ethersproject/abi": "5.0.7", + "web3-utils": "1.7.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-utils": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.7.0.tgz", + "integrity": "sha512-O8Tl4Ky40Sp6pe89Olk2FsaUkgHyb5QAXuaKo38ms3CxZZ4d3rPGfjP9DNKGm5+IUgAZBNpF1VmlSmNCqfDI1w==", + "dependencies": { + "bn.js": "^4.11.9", + "ethereum-bloom-filters": "^1.0.6", + "ethereumjs-util": "^7.1.0", + "ethjs-unit": "0.1.6", + "number-to-bn": "1.7.0", + "randombytes": "^2.1.0", + "utf8": "3.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-utils/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/webcrypto-core": { + "version": "1.7.7", + "resolved": "https://registry.npmjs.org/webcrypto-core/-/webcrypto-core-1.7.7.tgz", + "integrity": "sha512-7FjigXNsBfopEj+5DV2nhNpfic2vumtjjgPmeDKk45z+MJwXKKfhPB7118Pfzrmh4jqOMST6Ch37iPAHoImg5g==", + "dependencies": { + "@peculiar/asn1-schema": "^2.3.6", + "@peculiar/json-schema": "^1.1.12", + "asn1js": "^3.0.1", + "pvtsutils": "^1.3.2", + "tslib": "^2.4.0" + } + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/widest-line": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", + "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", + "dependencies": { + "string-width": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==" + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "node_modules/ws": { + "version": "7.5.9", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/yargs-parser": { + "version": "16.1.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-16.1.0.tgz", + "integrity": "sha512-H/V41UNZQPkUMIT5h5hiwg4QKIY1RPvoBV4XcjUbRM8Bk2oKqqyZ0DIEbTFZB0XjbtSPG8SAa/0DxCQmiRgzKg==", + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + }, + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "engines": { + "node": ">=6" + } + } + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.22.13", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz", + "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==", + "requires": { + "@babel/highlight": "^7.22.13", + "chalk": "^2.4.2" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==" + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==" + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "@babel/helper-validator-identifier": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==" + }, + "@babel/highlight": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz", + "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==", + "requires": { + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==" + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==" + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "requires": { + "@jridgewell/trace-mapping": "0.3.9" + } + }, + "@ethersproject/abi": { + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.0.7.tgz", + "integrity": "sha512-Cqktk+hSIckwP/W8O47Eef60VwmoSC/L3lY0+dIBhQPCNn9E4V7rwmm2aFrNRRDJfFlGuZ1khkQUOc3oBX+niw==", + "requires": { + "@ethersproject/address": "^5.0.4", + "@ethersproject/bignumber": "^5.0.7", + "@ethersproject/bytes": "^5.0.4", + "@ethersproject/constants": "^5.0.4", + "@ethersproject/hash": "^5.0.4", + "@ethersproject/keccak256": "^5.0.3", + "@ethersproject/logger": "^5.0.5", + "@ethersproject/properties": "^5.0.3", + "@ethersproject/strings": "^5.0.4" + } + }, + "@ethersproject/abstract-provider": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz", + "integrity": "sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw==", + "requires": { + "@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": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz", + "integrity": "sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ==", + "requires": { + "@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": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.7.0.tgz", + "integrity": "sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA==", + "requires": { + "@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": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.7.0.tgz", + "integrity": "sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ==", + "requires": { + "@ethersproject/bytes": "^5.7.0" + } + }, + "@ethersproject/bignumber": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.7.0.tgz", + "integrity": "sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw==", + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "bn.js": "^5.2.1" + } + }, + "@ethersproject/bytes": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.7.0.tgz", + "integrity": "sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==", + "requires": { + "@ethersproject/logger": "^5.7.0" + } + }, + "@ethersproject/constants": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.7.0.tgz", + "integrity": "sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA==", + "requires": { + "@ethersproject/bignumber": "^5.7.0" + } + }, + "@ethersproject/hash": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.7.0.tgz", + "integrity": "sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g==", + "requires": { + "@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/keccak256": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.7.0.tgz", + "integrity": "sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg==", + "requires": { + "@ethersproject/bytes": "^5.7.0", + "js-sha3": "0.8.0" + } + }, + "@ethersproject/logger": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.7.0.tgz", + "integrity": "sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==" + }, + "@ethersproject/networks": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.7.1.tgz", + "integrity": "sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ==", + "requires": { + "@ethersproject/logger": "^5.7.0" + } + }, + "@ethersproject/properties": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.7.0.tgz", + "integrity": "sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw==", + "requires": { + "@ethersproject/logger": "^5.7.0" + } + }, + "@ethersproject/rlp": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.7.0.tgz", + "integrity": "sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w==", + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "@ethersproject/signing-key": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.7.0.tgz", + "integrity": "sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q==", + "requires": { + "@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/strings": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.7.0.tgz", + "integrity": "sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg==", + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "@ethersproject/transactions": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.7.0.tgz", + "integrity": "sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ==", + "requires": { + "@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/web": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.7.1.tgz", + "integrity": "sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w==", + "requires": { + "@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" + } + }, + "@float-capital/float-subgraph-uncrashable": { + "version": "0.0.0-internal-testing.5", + "resolved": "https://registry.npmjs.org/@float-capital/float-subgraph-uncrashable/-/float-subgraph-uncrashable-0.0.0-internal-testing.5.tgz", + "integrity": "sha512-yZ0H5e3EpAYKokX/AbtplzlvSxEJY7ZfpvQyDzyODkks0hakAAlDG6fQu1SlDJMWorY7bbq1j7fCiFeTWci6TA==", + "requires": { + "@rescript/std": "9.0.0", + "graphql": "^16.6.0", + "graphql-import-node": "^0.0.5", + "js-yaml": "^4.1.0" + }, + "dependencies": { + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "graphql": { + "version": "16.8.1", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.8.1.tgz", + "integrity": "sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw==" + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "requires": { + "argparse": "^2.0.1" + } + } + } + }, + "@graphprotocol/graph-cli": { + "version": "0.46.1", + "resolved": "https://registry.npmjs.org/@graphprotocol/graph-cli/-/graph-cli-0.46.1.tgz", + "integrity": "sha512-594BiH2m9gThP1xdvxguVzvVlOb1KzJyVdh2F4dV78NPfMRFY2fe1nakmadKcewc72VVLXNgfdBu/J4IPfo0eg==", + "requires": { + "@float-capital/float-subgraph-uncrashable": "^0.0.0-alpha.4", + "@oclif/core": "2.8.0", + "@whatwg-node/fetch": "^0.8.4", + "assemblyscript": "0.19.23", + "binary-install-raw": "0.0.13", + "chalk": "3.0.0", + "chokidar": "3.5.3", + "debug": "4.3.4", + "docker-compose": "0.23.19", + "dockerode": "2.5.8", + "fs-extra": "9.1.0", + "glob": "9.3.4", + "gluegun": "git+https://github.com/edgeandnode/gluegun.git#v4.3.1-pin-colors-dep", + "graphql": "15.5.0", + "immutable": "4.2.1", + "ipfs-http-client": "55.0.0", + "jayson": "4.0.0", + "js-yaml": "3.14.1", + "prettier": "1.19.1", + "request": "2.88.2", + "semver": "7.3.8", + "sync-request": "6.1.0", + "tmp-promise": "3.0.3", + "web3-eth-abi": "1.7.0", + "which": "2.0.2", + "yaml": "1.10.2" + } + }, + "@graphprotocol/graph-ts": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@graphprotocol/graph-ts/-/graph-ts-0.28.1.tgz", + "integrity": "sha512-1wMLQ0cu84/6Ml3zcz9ya1zFzrDAzCj0dIGZ7Rz9upnRSXg5jjqU4DefO/OYrl2K2/OPso9hSAr6I4aue2pL1Q==", + "requires": { + "assemblyscript": "0.19.10" + }, + "dependencies": { + "assemblyscript": { + "version": "0.19.10", + "resolved": "https://registry.npmjs.org/assemblyscript/-/assemblyscript-0.19.10.tgz", + "integrity": "sha512-HavcUBXB3mBTRGJcpvaQjmnmaqKHBGREjSPNsIvnAk2f9dj78y4BkMaSSdvBQYWcDDzsHQjyUC8stICFkD1Odg==", + "requires": { + "binaryen": "101.0.0-nightly.20210723", + "long": "^4.0.0" + } + }, + "binaryen": { + "version": "101.0.0-nightly.20210723", + "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-101.0.0-nightly.20210723.tgz", + "integrity": "sha512-eioJNqhHlkguVSbblHOtLqlhtC882SOEPKmNFZaDuz1hzQjolxZ+eu3/kaS10n3sGPONsIZsO7R9fR00UyhEUA==" + }, + "long": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", + "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" + } + } + }, + "@ipld/dag-cbor": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/@ipld/dag-cbor/-/dag-cbor-7.0.3.tgz", + "integrity": "sha512-1VVh2huHsuohdXC1bGJNE8WR72slZ9XE2T3wbBBq31dm7ZBatmKLLxrB+XAqafxfRFjv08RZmj/W/ZqaM13AuA==", + "requires": { + "cborg": "^1.6.0", + "multiformats": "^9.5.4" + } + }, + "@ipld/dag-json": { + "version": "8.0.11", + "resolved": "https://registry.npmjs.org/@ipld/dag-json/-/dag-json-8.0.11.tgz", + "integrity": "sha512-Pea7JXeYHTWXRTIhBqBlhw7G53PJ7yta3G/sizGEZyzdeEwhZRr0od5IQ0r2ZxOt1Do+2czddjeEPp+YTxDwCA==", + "requires": { + "cborg": "^1.5.4", + "multiformats": "^9.5.4" + } + }, + "@ipld/dag-pb": { + "version": "2.1.18", + "resolved": "https://registry.npmjs.org/@ipld/dag-pb/-/dag-pb-2.1.18.tgz", + "integrity": "sha512-ZBnf2fuX9y3KccADURG5vb9FaOeMjFkCrNysB0PtftME/4iCTjxfaLoNq/IAh5fTqUOMXvryN6Jyka4ZGuMLIg==", + "requires": { + "multiformats": "^9.5.4" + } + }, + "@jridgewell/resolve-uri": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==" + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + }, + "@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "requires": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==" + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@oclif/core": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/@oclif/core/-/core-2.8.0.tgz", + "integrity": "sha512-A2wHItFrD/WOw5bJ6Mtv9MD7If0bsKNR0pwEY0me+fo4HSXlJOtgYGqmzb8t8akX3DUUT7XsjPajsoHLkIJyvg==", + "requires": { + "@types/cli-progress": "^3.11.0", + "ansi-escapes": "^4.3.2", + "ansi-styles": "^4.3.0", + "cardinal": "^2.1.1", + "chalk": "^4.1.2", + "clean-stack": "^3.0.1", + "cli-progress": "^3.12.0", + "debug": "^4.3.4", + "ejs": "^3.1.8", + "fs-extra": "^9.1.0", + "get-package-type": "^0.1.0", + "globby": "^11.1.0", + "hyperlinker": "^1.0.0", + "indent-string": "^4.0.0", + "is-wsl": "^2.2.0", + "js-yaml": "^3.14.1", + "natural-orderby": "^2.0.3", + "object-treeify": "^1.1.33", + "password-prompt": "^1.1.2", + "semver": "^7.3.7", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "supports-color": "^8.1.1", + "supports-hyperlinks": "^2.2.0", + "ts-node": "^10.9.1", + "tslib": "^2.5.0", + "widest-line": "^3.1.0", + "wordwrap": "^1.0.0", + "wrap-ansi": "^7.0.0" + }, + "dependencies": { + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "dependencies": { + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + } + } + }, + "@peculiar/asn1-schema": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-schema/-/asn1-schema-2.3.6.tgz", + "integrity": "sha512-izNRxPoaeJeg/AyH8hER6s+H7p4itk+03QCa4sbxI3lNdseQYCuxzgsuNK8bTXChtLTjpJz6NmXKA73qLa3rCA==", + "requires": { + "asn1js": "^3.0.5", + "pvtsutils": "^1.3.2", + "tslib": "^2.4.0" + } + }, + "@peculiar/json-schema": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/@peculiar/json-schema/-/json-schema-1.1.12.tgz", + "integrity": "sha512-coUfuoMeIB7B8/NMekxaDzLhaYmp0HZNPEjYRm9goRou8UZIC3z21s0sL9AWoCw4EG876QyO3kYrc61WNF9B/w==", + "requires": { + "tslib": "^2.0.0" + } + }, + "@peculiar/webcrypto": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@peculiar/webcrypto/-/webcrypto-1.4.3.tgz", + "integrity": "sha512-VtaY4spKTdN5LjJ04im/d/joXuvLbQdgy5Z4DXF4MFZhQ+MTrejbNMkfZBp1Bs3O5+bFqnJgyGdPuZQflvIa5A==", + "requires": { + "@peculiar/asn1-schema": "^2.3.6", + "@peculiar/json-schema": "^1.1.12", + "pvtsutils": "^1.3.2", + "tslib": "^2.5.0", + "webcrypto-core": "^1.7.7" + } + }, + "@protobufjs/aspromise": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", + "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==" + }, + "@protobufjs/base64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" + }, + "@protobufjs/codegen": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", + "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" + }, + "@protobufjs/eventemitter": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", + "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==" + }, + "@protobufjs/fetch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", + "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", + "requires": { + "@protobufjs/aspromise": "^1.1.1", + "@protobufjs/inquire": "^1.1.0" + } + }, + "@protobufjs/float": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", + "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==" + }, + "@protobufjs/inquire": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", + "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==" + }, + "@protobufjs/path": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", + "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==" + }, + "@protobufjs/pool": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", + "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==" + }, + "@protobufjs/utf8": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", + "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" + }, + "@rainprotocol/assemblyscript-cbor": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/@rainprotocol/assemblyscript-cbor/-/assemblyscript-cbor-0.0.6.tgz", + "integrity": "sha512-RNQfi/BH3fTJCGjU3b2AGHOduziPr+9QTRXz7kt0QBcX2LxYCByXm+d2Hc87Ozh2XKjccemy3iSLHe7TEkq/EA==" + }, + "@rescript/std": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@rescript/std/-/std-9.0.0.tgz", + "integrity": "sha512-zGzFsgtZ44mgL4Xef2gOy1hrRVdrs9mcxCOOKZrIPsmbZW14yTkaF591GXxpQvjXiHtgZ/iA9qLyWH6oSReIxQ==" + }, + "@tsconfig/node10": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", + "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==" + }, + "@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==" + }, + "@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==" + }, + "@tsconfig/node16": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", + "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==" + }, + "@types/bn.js": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.2.tgz", + "integrity": "sha512-dkpZu0szUtn9UXTmw+e0AJFd4D2XAxDnsCLdc05SfqpqzPEBft8eQr8uaFitfo/dUUOZERaLec2hHMG87A4Dxg==", + "requires": { + "@types/node": "*" + } + }, + "@types/cli-progress": { + "version": "3.11.3", + "resolved": "https://registry.npmjs.org/@types/cli-progress/-/cli-progress-3.11.3.tgz", + "integrity": "sha512-/+C9xAdVtc+g5yHHkGBThgAA8rYpi5B+2ve3wLtybYj0JHEBs57ivR4x/zGfSsplRnV+psE91Nfin1soNKqz5Q==", + "requires": { + "@types/node": "*" + } + }, + "@types/concat-stream": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@types/concat-stream/-/concat-stream-1.6.1.tgz", + "integrity": "sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA==", + "requires": { + "@types/node": "*" + } + }, + "@types/connect": { + "version": "3.4.36", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.36.tgz", + "integrity": "sha512-P63Zd/JUGq+PdrM1lv0Wv5SBYeA2+CORvbrXbngriYY0jzLUWfQMQQxOhjONEz/wlHOAxOdY7CY65rgQdTjq2w==", + "requires": { + "@types/node": "*" + } + }, + "@types/form-data": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/@types/form-data/-/form-data-0.0.33.tgz", + "integrity": "sha512-8BSvG1kGm83cyJITQMZSulnl6QV8jqAGreJsc5tPu1Jq0vTSOiY/k24Wx82JRpWwZSqrala6sd5rWi6aNXvqcw==", + "requires": { + "@types/node": "*" + } + }, + "@types/long": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", + "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==" + }, + "@types/minimatch": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==" + }, + "@types/node": { + "version": "20.8.6", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.8.6.tgz", + "integrity": "sha512-eWO4K2Ji70QzKUqRy6oyJWUeB7+g2cRagT3T/nxYibYcT4y2BDL8lqolRXjTHmkZCdJfIPaY73KbJAZmcryxTQ==", + "requires": { + "undici-types": "~5.25.1" + } + }, + "@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==" + }, + "@types/pbkdf2": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.0.tgz", + "integrity": "sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ==", + "requires": { + "@types/node": "*" + } + }, + "@types/qs": { + "version": "6.9.8", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.8.tgz", + "integrity": "sha512-u95svzDlTysU5xecFNTgfFG5RUWu1A9P0VzgpcIiGZA9iraHOdSzcxMxQ55DyeRaGCSxQi7LxXDI4rzq/MYfdg==" + }, + "@types/secp256k1": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.4.tgz", + "integrity": "sha512-oN0PFsYxDZnX/qSJ5S5OwaEDTYfekhvaM5vqui2bu1AA39pKofmgL104Q29KiOXizXS2yLjSzc5YdTyMKdcy4A==", + "requires": { + "@types/node": "*" + } + }, + "@types/ws": { + "version": "7.4.7", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-7.4.7.tgz", + "integrity": "sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==", + "requires": { + "@types/node": "*" + } + }, + "@whatwg-node/events": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/@whatwg-node/events/-/events-0.0.3.tgz", + "integrity": "sha512-IqnKIDWfXBJkvy/k6tzskWTc2NK3LcqHlb+KHGCrjOCH4jfQckRX0NAiIcC/vIqQkzLYw2r2CTSwAxcrtcD6lA==" + }, + "@whatwg-node/fetch": { + "version": "0.8.8", + "resolved": "https://registry.npmjs.org/@whatwg-node/fetch/-/fetch-0.8.8.tgz", + "integrity": "sha512-CdcjGC2vdKhc13KKxgsc6/616BQ7ooDIgPeTuAiE8qfCnS0mGzcfCOoZXypQSz73nxI+GWc7ZReIAVhxoE1KCg==", + "requires": { + "@peculiar/webcrypto": "^1.4.0", + "@whatwg-node/node-fetch": "^0.3.6", + "busboy": "^1.6.0", + "urlpattern-polyfill": "^8.0.0", + "web-streams-polyfill": "^3.2.1" + } + }, + "@whatwg-node/node-fetch": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@whatwg-node/node-fetch/-/node-fetch-0.3.6.tgz", + "integrity": "sha512-w9wKgDO4C95qnXZRwZTfCmLWqyRnooGjcIwG0wADWjw9/HN0p7dtvtgSvItZtUyNteEvgTrd8QojNEqV6DAGTA==", + "requires": { + "@whatwg-node/events": "^0.0.3", + "busboy": "^1.6.0", + "fast-querystring": "^1.1.1", + "fast-url-parser": "^1.1.3", + "tslib": "^2.3.1" + } + }, + "abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "requires": { + "event-target-shim": "^5.0.0" + } + }, + "acorn": { + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", + "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==" + }, + "acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==" + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "requires": { + "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": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", + "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==" + }, + "ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "requires": { + "type-fest": "^0.21.3" + } + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "ansicolors": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.3.2.tgz", + "integrity": "sha512-QXu7BPrP29VllRxH8GwB7x5iX5qWKAAMLqKQGWTeLWVlNHNOpVMJ91dsxQAIWXpjuW5wqvxu3Jd/nRjrJ+0pqg==" + }, + "any-signal": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/any-signal/-/any-signal-2.1.2.tgz", + "integrity": "sha512-B+rDnWasMi/eWcajPcCWSlYc7muXOrcYrqgyzcdKisl2H/WTlQ0gip1KyQfr0ZlxJdsuWCj/LWwQm7fhyhRfIQ==", + "requires": { + "abort-controller": "^3.0.0", + "native-abort-controller": "^1.0.3" + } + }, + "anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "apisauce": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/apisauce/-/apisauce-1.1.5.tgz", + "integrity": "sha512-gKC8qb/bDJsPsnEXLZnXJ7gVx7dh87CEVNeIwv1dvaffnXoh5GHwac5pWR1P2broLiVj/fqFMQvLDDt/RhjiqA==", + "requires": { + "axios": "^0.21.2", + "ramda": "^0.25.0" + } + }, + "app-module-path": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/app-module-path/-/app-module-path-2.2.0.tgz", + "integrity": "sha512-gkco+qxENJV+8vFcDiiFhuoSvRXb2a/QPqpSoWhVz829VNJfOTnELbBmPmNKFxf3xdNnw4DWCkzkDaavcX/1YQ==" + }, + "arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==" + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==" + }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==" + }, + "asn1": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "asn1js": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/asn1js/-/asn1js-3.0.5.tgz", + "integrity": "sha512-FVnvrKJwpt9LP2lAMl8qZswRNm3T4q9CON+bxldk2iwk3FFpuwhx2FfinyitizWHsVYyaY+y5JzDR0rCMV5yTQ==", + "requires": { + "pvtsutils": "^1.3.2", + "pvutils": "^1.1.3", + "tslib": "^2.4.0" + } + }, + "assemblyscript": { + "version": "0.19.23", + "resolved": "https://registry.npmjs.org/assemblyscript/-/assemblyscript-0.19.23.tgz", + "integrity": "sha512-fwOQNZVTMga5KRsfY80g7cpOl4PsFQczMwHzdtgoqLXaYhkhavufKb0sB0l3T1DUxpAufA0KNhlbpuuhZUwxMA==", + "requires": { + "binaryen": "102.0.0-nightly.20211028", + "long": "^5.2.0", + "source-map-support": "^0.5.20" + } + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==" + }, + "async": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", + "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==" + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==" + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==" + }, + "aws4": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.12.0.tgz", + "integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==" + }, + "axios": { + "version": "0.21.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", + "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", + "requires": { + "follow-redirects": "^1.14.0" + } + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "base-x": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", + "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==" + }, + "binary-install-raw": { + "version": "0.0.13", + "resolved": "https://registry.npmjs.org/binary-install-raw/-/binary-install-raw-0.0.13.tgz", + "integrity": "sha512-v7ms6N/H7iciuk6QInon3/n2mu7oRX+6knJ9xFPsJ3rQePgAqcR3CRTwUheFd8SLbiq4LL7Z4G/44L9zscdt9A==", + "requires": { + "axios": "^0.21.1", + "rimraf": "^3.0.2", + "tar": "^6.1.0" + } + }, + "binaryen": { + "version": "102.0.0-nightly.20211028", + "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-102.0.0-nightly.20211028.tgz", + "integrity": "sha512-GCJBVB5exbxzzvyt8MGDv/MeUjs6gkXDvf4xOIItRBptYl0Tz5sm1o/uG95YK0L0VeG5ajDu3hRtkBP2kzqC5w==" + }, + "bl": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.3.tgz", + "integrity": "sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==", + "requires": { + "readable-stream": "^2.3.5", + "safe-buffer": "^5.1.1" + } + }, + "blakejs": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.2.1.tgz", + "integrity": "sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ==" + }, + "blob-to-it": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/blob-to-it/-/blob-to-it-1.0.4.tgz", + "integrity": "sha512-iCmk0W4NdbrWgRRuxOriU8aM5ijeVLI61Zulsmg/lUHNr7pYjoj+U77opLefNagevtrrbMt3JQ5Qip7ar178kA==", + "requires": { + "browser-readablestream-to-it": "^1.0.3" + } + }, + "bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" + }, + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "requires": { + "balanced-match": "^1.0.0" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "requires": { + "fill-range": "^7.0.1" + } + }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==" + }, + "browser-readablestream-to-it": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/browser-readablestream-to-it/-/browser-readablestream-to-it-1.0.3.tgz", + "integrity": "sha512-+12sHB+Br8HIh6VAMVEG5r3UXCyESIgDW7kzk3BjIXa43DVqVwL7GC5TW3jeh+72dtcH99pPVpw0X8i0jt+/kw==" + }, + "browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "requires": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "bs58": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", + "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", + "requires": { + "base-x": "^3.0.2" + } + }, + "bs58check": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", + "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", + "requires": { + "bs58": "^4.0.0", + "create-hash": "^1.1.0", + "safe-buffer": "^5.1.2" + } + }, + "buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "buffer-alloc": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", + "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", + "requires": { + "buffer-alloc-unsafe": "^1.1.0", + "buffer-fill": "^1.0.0" + } + }, + "buffer-alloc-unsafe": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", + "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==" + }, + "buffer-fill": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", + "integrity": "sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==" + }, + "buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==" + }, + "busboy": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", + "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", + "requires": { + "streamsearch": "^1.1.0" + } + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + }, + "cardinal": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/cardinal/-/cardinal-2.1.1.tgz", + "integrity": "sha512-JSr5eOgoEymtYHBjNWyjrMqet9Am2miJhlfKNdqLp6zoeAh0KN5dRAcxlecj5mAJrmQomgiOBj35xHLrFjqBpw==", + "requires": { + "ansicolors": "~0.3.2", + "redeyed": "~2.1.0" + } + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==" + }, + "cborg": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/cborg/-/cborg-1.10.2.tgz", + "integrity": "sha512-b3tFPA9pUr2zCUiCfRd2+wok2/LBSNUMKOuRRok+WlvvAgEt/PlbgPTsZUcwCOs53IJvLgTp0eotwtosE6njug==" + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "dependencies": { + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } + }, + "chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==" + }, + "cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "clean-stack": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-3.0.1.tgz", + "integrity": "sha512-lR9wNiMRcVQjSB3a7xXGLuz4cr4wJuuXlaAEbRutGowQTmlp7R72/DOgN21e8jdwblMWl9UOJMJXarX94pzKdg==", + "requires": { + "escape-string-regexp": "4.0.0" + } + }, + "cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "requires": { + "restore-cursor": "^3.1.0" + } + }, + "cli-progress": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/cli-progress/-/cli-progress-3.12.0.tgz", + "integrity": "sha512-tRkV3HJ1ASwm19THiiLIXLO7Im7wlTuKnvkYaTkyoAPefqjNg7W7DHKUlGRxy9vxDvbyCYQkQozvptuMkGCg8A==", + "requires": { + "string-width": "^4.2.3" + } + }, + "cli-spinners": { + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.1.tgz", + "integrity": "sha512-jHgecW0pxkonBJdrKsqxgRX9AcG+u/5k0Q7WPDfi8AogLAdwxEkyYYNWwZ5GvVFoFx2uiY1eNcSK00fh+1+FyQ==" + }, + "cli-table3": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.5.1.tgz", + "integrity": "sha512-7Qg2Jrep1S/+Q3EceiZtQcDPWxhAvBw+ERf1162v4sikJrvojMHFqXt8QIVha8UlH9rgU0BeWPytZ9/TzYqlUw==", + "requires": { + "colors": "^1.1.2", + "object-assign": "^4.1.0", + "string-width": "^2.1.1" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", + "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==" + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==" + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==" + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "colors": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.3.3.tgz", + "integrity": "sha512-mmGt/1pZqYRjMxB1axhTo16/snVZ5krrKkcmMeVKxzECMMXoCgnvTPp10QgHfcbQZw8Dq2jMNG6je4JlWU0gWg==" + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "cosmiconfig": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", + "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", + "requires": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.7.2" + } + }, + "create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "requires": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "requires": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==" + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", + "requires": { + "assert-plus": "^1.0.0" + } + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "requires": { + "ms": "2.1.2" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==" + }, + "defaults": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", + "requires": { + "clone": "^1.0.2" + } + }, + "delay": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/delay/-/delay-5.0.0.tgz", + "integrity": "sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==" + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" + }, + "diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==" + }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "requires": { + "path-type": "^4.0.0" + } + }, + "dns-over-http-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/dns-over-http-resolver/-/dns-over-http-resolver-1.2.3.tgz", + "integrity": "sha512-miDiVSI6KSNbi4SVifzO/reD8rMnxgrlnkrlkugOLQpWQTe2qMdHsZp5DmfKjxNE+/T3VAAYLQUZMv9SMr6+AA==", + "requires": { + "debug": "^4.3.1", + "native-fetch": "^3.0.0", + "receptacle": "^1.3.2" + } + }, + "docker-compose": { + "version": "0.23.19", + "resolved": "https://registry.npmjs.org/docker-compose/-/docker-compose-0.23.19.tgz", + "integrity": "sha512-v5vNLIdUqwj4my80wxFDkNH+4S85zsRuH29SO7dCWVWPCMt/ohZBsGN6g6KXWifT0pzQ7uOxqEKCYCDPJ8Vz4g==", + "requires": { + "yaml": "^1.10.2" + } + }, + "docker-modem": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/docker-modem/-/docker-modem-1.0.9.tgz", + "integrity": "sha512-lVjqCSCIAUDZPAZIeyM125HXfNvOmYYInciphNrLrylUtKyW66meAjSPXWchKVzoIYZx69TPnAepVSSkeawoIw==", + "requires": { + "debug": "^3.2.6", + "JSONStream": "1.3.2", + "readable-stream": "~1.0.26-4", + "split-ca": "^1.0.0" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "requires": { + "ms": "^2.1.1" + } + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==" + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==" + } + } + }, + "dockerode": { + "version": "2.5.8", + "resolved": "https://registry.npmjs.org/dockerode/-/dockerode-2.5.8.tgz", + "integrity": "sha512-+7iOUYBeDTScmOmQqpUYQaE7F4vvIt6+gIZNHWhqAQEI887tiPFB9OvXI/HzQYqfUNvukMK+9myLW63oTJPZpw==", + "requires": { + "concat-stream": "~1.6.2", + "docker-modem": "^1.0.8", + "tar-fs": "~1.16.3" + } + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "ejs": { + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.9.tgz", + "integrity": "sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==", + "requires": { + "jake": "^10.8.5" + } + }, + "electron-fetch": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/electron-fetch/-/electron-fetch-1.9.1.tgz", + "integrity": "sha512-M9qw6oUILGVrcENMSRRefE1MbHPIz0h79EKIeJWK9v563aT9Qkh8aEHPO1H5vi970wPirNY+jO9OpFoLiMsMGA==", + "requires": { + "encoding": "^0.1.13" + } + }, + "elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "requires": { + "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" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + } + } + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "requires": { + "iconv-lite": "^0.6.2" + } + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "requires": { + "once": "^1.4.0" + } + }, + "enquirer": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.4.tgz", + "integrity": "sha512-pkYrrDZumL2VS6VBGDhqbajCM2xpkUNLuKfGPjfKaSIBKYopQbqEFyrOkRMIb2HDR/rO1kGhEt/5twBwtzKBXw==", + "requires": { + "ansi-colors": "^3.2.1" + } + }, + "err-code": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-3.0.1.tgz", + "integrity": "sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA==" + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "es6-promise": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", + "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==" + }, + "es6-promisify": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", + "integrity": "sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ==", + "requires": { + "es6-promise": "^4.0.3" + } + }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==" + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" + }, + "ethereum-bloom-filters": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.10.tgz", + "integrity": "sha512-rxJ5OFN3RwjQxDcFP2Z5+Q9ho4eIdEmSc2ht0fCu8Se9nbXjZ7/031uXoUYJ87KHCOdVeiUuwSnoS7hmYAGVHA==", + "requires": { + "js-sha3": "^0.8.0" + } + }, + "ethereum-cryptography": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", + "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", + "requires": { + "@types/pbkdf2": "^3.0.0", + "@types/secp256k1": "^4.0.1", + "blakejs": "^1.1.0", + "browserify-aes": "^1.2.0", + "bs58check": "^2.1.2", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "hash.js": "^1.1.7", + "keccak": "^3.0.0", + "pbkdf2": "^3.0.17", + "randombytes": "^2.1.0", + "safe-buffer": "^5.1.2", + "scrypt-js": "^3.0.0", + "secp256k1": "^4.0.1", + "setimmediate": "^1.0.5" + } + }, + "ethereumjs-util": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", + "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", + "requires": { + "@types/bn.js": "^5.1.0", + "bn.js": "^5.1.2", + "create-hash": "^1.1.2", + "ethereum-cryptography": "^0.1.3", + "rlp": "^2.2.4" + } + }, + "ethjs-unit": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/ethjs-unit/-/ethjs-unit-0.1.6.tgz", + "integrity": "sha512-/Sn9Y0oKl0uqQuvgFk/zQgR7aw1g36qX/jzSQ5lSwlO0GigPymk4eGQfeNTD03w1dPOqfz8V77Cy43jH56pagw==", + "requires": { + "bn.js": "4.11.6", + "number-to-bn": "1.7.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA==" + } + } + }, + "event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==" + }, + "evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "requires": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "execa": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-3.4.0.tgz", + "integrity": "sha512-r9vdGQk4bmCuK1yKQu1KTwcT2zwfWdbdaXfCtAh+5nU/4fSX+JAb7vZGvI5naJrQlvONrEB20jeruESI69530g==", + "requires": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "p-finally": "^2.0.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==" + }, + "eyes": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", + "integrity": "sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ==" + }, + "fast-decode-uri-component": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/fast-decode-uri-component/-/fast-decode-uri-component-1.0.1.tgz", + "integrity": "sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg==" + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "fast-fifo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", + "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==" + }, + "fast-glob": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", + "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + } + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, + "fast-querystring": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/fast-querystring/-/fast-querystring-1.1.2.tgz", + "integrity": "sha512-g6KuKWmFXc0fID8WWH0jit4g0AGBoJhCkJMb1RmbsSEUNvQ+ZC8D6CUZ+GtF8nMzSPXnhiePyyqqipzNNEnHjg==", + "requires": { + "fast-decode-uri-component": "^1.0.1" + } + }, + "fast-url-parser": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/fast-url-parser/-/fast-url-parser-1.1.3.tgz", + "integrity": "sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==", + "requires": { + "punycode": "^1.3.2" + } + }, + "fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "requires": { + "reusify": "^1.0.4" + } + }, + "filelist": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", + "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", + "requires": { + "minimatch": "^5.0.1" + }, + "dependencies": { + "minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "requires": { + "brace-expansion": "^2.0.1" + } + } + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "follow-redirects": { + "version": "1.15.3", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz", + "integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==" + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==" + }, + "form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" + }, + "fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "fs-jetpack": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/fs-jetpack/-/fs-jetpack-2.4.0.tgz", + "integrity": "sha512-S/o9Dd7K9A7gicVU32eT8G0kHcmSu0rCVdP79P0MWInKFb8XpTc8Syhoo66k9no+HDshtlh4pUJTws8X+8fdFQ==", + "requires": { + "minimatch": "^3.0.2", + "rimraf": "^2.6.3" + }, + "dependencies": { + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "requires": { + "minipass": "^3.0.0" + }, + "dependencies": { + "minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "requires": { + "yallist": "^4.0.0" + } + } + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "optional": true + }, + "get-iterator": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-iterator/-/get-iterator-1.0.2.tgz", + "integrity": "sha512-v+dm9bNVfOYsY1OrhaCrmyOcYoSeVvbt+hHZ0Au+T+p1y+0Uyj9aMaGIeUTT6xdpRbWzDeYKvfOslPhggQMcsg==" + }, + "get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==" + }, + "get-port": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz", + "integrity": "sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg==" + }, + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "requires": { + "pump": "^3.0.0" + } + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", + "requires": { + "assert-plus": "^1.0.0" + } + }, + "glob": { + "version": "9.3.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-9.3.4.tgz", + "integrity": "sha512-qaSc49hojMOv1EPM4EuyITjDSgSKI0rthoHnvE81tcOi1SCVndHko7auqxdQ14eiQG2NDBJBE86+2xIrbIvrbA==", + "requires": { + "fs.realpath": "^1.0.0", + "minimatch": "^8.0.2", + "minipass": "^4.2.4", + "path-scurry": "^1.6.1" + } + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "requires": { + "is-glob": "^4.0.1" + } + }, + "globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + } + }, + "gluegun": { + "version": "git+ssh://git@github.com/edgeandnode/gluegun.git#b34b9003d7bf556836da41b57ef36eb21570620a", + "from": "gluegun@git+https://github.com/edgeandnode/gluegun.git#v4.3.1-pin-colors-dep", + "requires": { + "apisauce": "^1.0.1", + "app-module-path": "^2.2.0", + "cli-table3": "~0.5.0", + "colors": "1.3.3", + "cosmiconfig": "6.0.0", + "cross-spawn": "^7.0.0", + "ejs": "^2.6.1", + "enquirer": "2.3.4", + "execa": "^3.0.0", + "fs-jetpack": "^2.2.2", + "lodash.camelcase": "^4.3.0", + "lodash.kebabcase": "^4.1.1", + "lodash.lowercase": "^4.3.0", + "lodash.lowerfirst": "^4.3.1", + "lodash.pad": "^4.5.1", + "lodash.padend": "^4.6.1", + "lodash.padstart": "^4.6.1", + "lodash.repeat": "^4.1.0", + "lodash.snakecase": "^4.1.1", + "lodash.startcase": "^4.4.0", + "lodash.trim": "^4.5.1", + "lodash.trimend": "^4.5.1", + "lodash.trimstart": "^4.5.1", + "lodash.uppercase": "^4.3.0", + "lodash.upperfirst": "^4.3.1", + "ora": "^4.0.0", + "pluralize": "^8.0.0", + "ramdasauce": "^2.1.0", + "semver": "^7.0.0", + "which": "^2.0.0", + "yargs-parser": "^16.1.0" + }, + "dependencies": { + "ejs": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.7.4.tgz", + "integrity": "sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA==" + } + } + }, + "graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" + }, + "graphql": { + "version": "15.5.0", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.5.0.tgz", + "integrity": "sha512-OmaM7y0kaK31NKG31q4YbD2beNYa6jBBKtMFT6gLYJljHLJr42IqJ8KX08u3Li/0ifzTU5HjmoOOrwa5BRLeDA==" + }, + "graphql-import-node": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/graphql-import-node/-/graphql-import-node-0.0.5.tgz", + "integrity": "sha512-OXbou9fqh9/Lm7vwXT0XoRN9J5+WCYKnbiTalgFDvkQERITRmcfncZs6aVABedd5B85yQU5EULS4a5pnbpuI0Q==", + "requires": {} + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==" + }, + "har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "requires": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "requires": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + } + } + }, + "hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", + "requires": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "http-basic": { + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/http-basic/-/http-basic-8.1.3.tgz", + "integrity": "sha512-/EcDMwJZh3mABI2NhGfHOGOeOZITqfkEO4p/xK+l3NpyncIHUQBoMvCSF/b5GqvKtySC2srL/GGG3+EtlqlmCw==", + "requires": { + "caseless": "^0.12.0", + "concat-stream": "^1.6.2", + "http-response-object": "^3.0.1", + "parse-cache-control": "^1.0.1" + } + }, + "http-response-object": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/http-response-object/-/http-response-object-3.0.2.tgz", + "integrity": "sha512-bqX0XTF6fnXSQcEJ2Iuyr75yVakyjIDCqroJQ/aHfSdlM743Cwqoi2nDYMzLGWUcuTWGWy8AAvOKXTfiv6q9RA==", + "requires": { + "@types/node": "^10.0.3" + }, + "dependencies": { + "@types/node": { + "version": "10.17.60", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz", + "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==" + } + } + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "human-signals": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", + "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==" + }, + "hyperlinker": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hyperlinker/-/hyperlinker-1.0.0.tgz", + "integrity": "sha512-Ty8UblRWFEcfSuIaajM34LdPXIhbs1ajEX/BBPv24J+enSVaEVY63xQ6lTO9VRYS5LAoghIG0IDJ+p+IPzKUQQ==" + }, + "iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" + }, + "ignore": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==" + }, + "immutable": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.2.1.tgz", + "integrity": "sha512-7WYV7Q5BTs0nlQm7tl92rDYYoyELLKHoDMBKhrxEoiV4mrfVdRz8hzPiYOzH7yWjzoVEamxRuAqhxL2PLRwZYQ==" + }, + "import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==" + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "interface-datastore": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-6.1.1.tgz", + "integrity": "sha512-AmCS+9CT34pp2u0QQVXjKztkuq3y5T+BIciuiHDDtDZucZD8VudosnSdUyXJV6IsRkN5jc4RFDhCk1O6Q3Gxjg==", + "requires": { + "interface-store": "^2.0.2", + "nanoid": "^3.0.2", + "uint8arrays": "^3.0.0" + } + }, + "interface-store": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-2.0.2.tgz", + "integrity": "sha512-rScRlhDcz6k199EkHqT8NpM87ebN89ICOzILoBHgaG36/WX50N32BnU/kpZgCGPLhARRAWUUX5/cyaIjt7Kipg==" + }, + "ip-regex": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-4.3.0.tgz", + "integrity": "sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==" + }, + "ipfs-core-types": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/ipfs-core-types/-/ipfs-core-types-0.9.0.tgz", + "integrity": "sha512-VJ8vJSHvI1Zm7/SxsZo03T+zzpsg8pkgiIi5hfwSJlsrJ1E2v68QPlnLshGHUSYw89Oxq0IbETYl2pGTFHTWfg==", + "requires": { + "interface-datastore": "^6.0.2", + "multiaddr": "^10.0.0", + "multiformats": "^9.4.13" + } + }, + "ipfs-core-utils": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/ipfs-core-utils/-/ipfs-core-utils-0.13.0.tgz", + "integrity": "sha512-HP5EafxU4/dLW3U13CFsgqVO5Ika8N4sRSIb/dTg16NjLOozMH31TXV0Grtu2ZWo1T10ahTzMvrfT5f4mhioXw==", + "requires": { + "any-signal": "^2.1.2", + "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.9.0", + "ipfs-unixfs": "^6.0.3", + "ipfs-utils": "^9.0.2", + "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.4.13", + "nanoid": "^3.1.23", + "parse-duration": "^1.0.0", + "timeout-abort-controller": "^2.0.0", + "uint8arrays": "^3.0.0" + } + }, + "ipfs-http-client": { + "version": "55.0.0", + "resolved": "https://registry.npmjs.org/ipfs-http-client/-/ipfs-http-client-55.0.0.tgz", + "integrity": "sha512-GpvEs7C7WL9M6fN/kZbjeh4Y8YN7rY8b18tVWZnKxRsVwM25cIFrRI8CwNt3Ugin9yShieI3i9sPyzYGMrLNnQ==", + "requires": { + "@ipld/dag-cbor": "^7.0.0", + "@ipld/dag-json": "^8.0.1", + "@ipld/dag-pb": "^2.1.3", + "abort-controller": "^3.0.0", + "any-signal": "^2.1.2", + "debug": "^4.1.1", + "err-code": "^3.0.1", + "ipfs-core-types": "^0.9.0", + "ipfs-core-utils": "^0.13.0", + "ipfs-utils": "^9.0.2", + "it-first": "^1.0.6", + "it-last": "^1.0.4", + "merge-options": "^3.0.4", + "multiaddr": "^10.0.0", + "multiformats": "^9.4.13", + "native-abort-controller": "^1.0.3", + "parse-duration": "^1.0.0", + "stream-to-it": "^0.2.2", + "uint8arrays": "^3.0.0" + } + }, + "ipfs-unixfs": { + "version": "6.0.9", + "resolved": "https://registry.npmjs.org/ipfs-unixfs/-/ipfs-unixfs-6.0.9.tgz", + "integrity": "sha512-0DQ7p0/9dRB6XCb0mVCTli33GzIzSVx5udpJuVM47tGcD+W+Bl4LsnoLswd3ggNnNEakMv1FdoFITiEnchXDqQ==", + "requires": { + "err-code": "^3.0.1", + "protobufjs": "^6.10.2" + } + }, + "ipfs-utils": { + "version": "9.0.14", + "resolved": "https://registry.npmjs.org/ipfs-utils/-/ipfs-utils-9.0.14.tgz", + "integrity": "sha512-zIaiEGX18QATxgaS0/EOQNoo33W0islREABAcxXE8n7y2MGAlB+hdsxXn4J0hGZge8IqVQhW8sWIb+oJz2yEvg==", + "requires": { + "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" + }, + "dependencies": { + "any-signal": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/any-signal/-/any-signal-3.0.1.tgz", + "integrity": "sha512-xgZgJtKEa9YmDqXodIgl7Fl1C8yNXr8w6gXjqK3LW4GcEiYT+6AQfJSE/8SPsEpLLmcvbv8YU+qet94UewHxqg==" + } + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==" + }, + "is-electron": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/is-electron/-/is-electron-2.2.2.tgz", + "integrity": "sha512-FO/Rhvz5tuw4MCWkpMzHFKWD2LsfHzIb7i6MdPYZ/KW7AlxawyLkqdy+jPZP1WubqEADE3O4FUENlJHDfQASRg==" + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==" + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-hex-prefixed": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz", + "integrity": "sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA==" + }, + "is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==" + }, + "is-ip": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-ip/-/is-ip-3.1.0.tgz", + "integrity": "sha512-35vd5necO7IitFPjd/YBeqwWnyDWbuLH9ZXQdMfDA8TEo7pv5X8yfrvVO3xbJbLUlERCMvf6X0hTUamQxCYJ9Q==", + "requires": { + "ip-regex": "^4.0.0" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + }, + "is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==" + }, + "is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==" + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" + }, + "is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "requires": { + "is-docker": "^2.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "iso-url": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/iso-url/-/iso-url-1.2.1.tgz", + "integrity": "sha512-9JPDgCN4B7QPkLtYAAOrEuAWvP9rWvR5offAr0/SeF046wIkglqH3VXgYYP6NcsKslH80UIVgmPqNe3j7tG2ng==" + }, + "isomorphic-ws": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz", + "integrity": "sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==", + "requires": {} + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==" + }, + "it-all": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/it-all/-/it-all-1.0.6.tgz", + "integrity": "sha512-3cmCc6Heqe3uWi3CVM/k51fa/XbMFpQVzFoDsV0IZNHSQDyAXl3c4MjHkFX5kF3922OGj7Myv1nSEUgRtcuM1A==" + }, + "it-first": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/it-first/-/it-first-1.0.7.tgz", + "integrity": "sha512-nvJKZoBpZD/6Rtde6FXqwDqDZGF1sCADmr2Zoc0hZsIvnE449gRFnGctxDf09Bzc/FWnHXAdaHVIetY6lrE0/g==" + }, + "it-glob": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/it-glob/-/it-glob-1.0.2.tgz", + "integrity": "sha512-Ch2Dzhw4URfB9L/0ZHyY+uqOnKvBNeS/SMcRiPmJfpHiM0TsUZn+GkpcZxAoF3dJVdPm/PuIk3A4wlV7SUo23Q==", + "requires": { + "@types/minimatch": "^3.0.4", + "minimatch": "^3.0.4" + }, + "dependencies": { + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "requires": { + "brace-expansion": "^1.1.7" + } + } + } + }, + "it-last": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/it-last/-/it-last-1.0.6.tgz", + "integrity": "sha512-aFGeibeiX/lM4bX3JY0OkVCFkAw8+n9lkukkLNivbJRvNz8lI3YXv5xcqhFUV2lDJiraEK3OXRDbGuevnnR67Q==" + }, + "it-map": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/it-map/-/it-map-1.0.6.tgz", + "integrity": "sha512-XT4/RM6UHIFG9IobGlQPFQUrlEKkU4eBUFG3qhWhfAdh1JfF2x11ShCrKCdmZ0OiZppPfoLuzcfA4cey6q3UAQ==" + }, + "it-peekable": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/it-peekable/-/it-peekable-1.0.3.tgz", + "integrity": "sha512-5+8zemFS+wSfIkSZyf0Zh5kNN+iGyccN02914BY4w/Dj+uoFEoPSvj5vaWn8pNZJNSxzjW0zHRxC3LUb2KWJTQ==" + }, + "it-to-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/it-to-stream/-/it-to-stream-1.0.0.tgz", + "integrity": "sha512-pLULMZMAB/+vbdvbZtebC0nWBTbG581lk6w8P7DfIIIKUfa8FbY7Oi0FxZcFPbxvISs7A9E+cMpLDBc1XhpAOA==", + "requires": { + "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" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "jake": { + "version": "10.8.7", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.7.tgz", + "integrity": "sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==", + "requires": { + "async": "^3.2.3", + "chalk": "^4.0.2", + "filelist": "^1.0.4", + "minimatch": "^3.1.2" + }, + "dependencies": { + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jayson": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jayson/-/jayson-4.0.0.tgz", + "integrity": "sha512-v2RNpDCMu45fnLzSk47vx7I+QUaOsox6f5X0CUlabAFwxoP+8MfAY0NQRFwOEYXIxm8Ih5y6OaEa5KYiQMkyAA==", + "requires": { + "@types/connect": "^3.4.33", + "@types/node": "^12.12.54", + "@types/ws": "^7.4.4", + "commander": "^2.20.3", + "delay": "^5.0.0", + "es6-promisify": "^5.0.0", + "eyes": "^0.1.8", + "isomorphic-ws": "^4.0.1", + "json-stringify-safe": "^5.0.1", + "JSONStream": "^1.3.5", + "uuid": "^8.3.2", + "ws": "^7.4.5" + }, + "dependencies": { + "@types/node": { + "version": "12.20.55", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", + "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==" + }, + "JSONStream": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "requires": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + } + } + } + }, + "js-sha3": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", + "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==" + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==" + }, + "json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" + }, + "json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==" + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==" + }, + "JSONStream": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.2.tgz", + "integrity": "sha512-mn0KSip7N4e0UDPZHnqDsHECo5uGQrixQKnAskOM1BIB8hd7QKbd6il8IPRPudPHOeHiECoCFqhyMaRO9+nWyA==", + "requires": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + } + }, + "jsprim": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", + "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.4.0", + "verror": "1.10.0" + } + }, + "keccak": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.4.tgz", + "integrity": "sha512-3vKuW0jV8J3XNTzvfyicFR5qvxrSAGl7KIhvgOu5cmWwM7tZRj3fMbj/pfIf4be7aznbc+prBWGjywox/g2Y6Q==", + "requires": { + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0", + "readable-stream": "^3.6.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" + }, + "lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==" + }, + "lodash.kebabcase": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz", + "integrity": "sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==" + }, + "lodash.lowercase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.lowercase/-/lodash.lowercase-4.3.0.tgz", + "integrity": "sha512-UcvP1IZYyDKyEL64mmrwoA1AbFu5ahojhTtkOUr1K9dbuxzS9ev8i4TxMMGCqRC9TE8uDaSoufNAXxRPNTseVA==" + }, + "lodash.lowerfirst": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/lodash.lowerfirst/-/lodash.lowerfirst-4.3.1.tgz", + "integrity": "sha512-UUKX7VhP1/JL54NXg2aq/E1Sfnjjes8fNYTNkPU8ZmsaVeBvPHKdbNaN79Re5XRL01u6wbq3j0cbYZj71Fcu5w==" + }, + "lodash.pad": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/lodash.pad/-/lodash.pad-4.5.1.tgz", + "integrity": "sha512-mvUHifnLqM+03YNzeTBS1/Gr6JRFjd3rRx88FHWUvamVaT9k2O/kXha3yBSOwB9/DTQrSTLJNHvLBBt2FdX7Mg==" + }, + "lodash.padend": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz", + "integrity": "sha512-sOQs2aqGpbl27tmCS1QNZA09Uqp01ZzWfDUoD+xzTii0E7dSQfRKcRetFwa+uXaxaqL+TKm7CgD2JdKP7aZBSw==" + }, + "lodash.padstart": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.padstart/-/lodash.padstart-4.6.1.tgz", + "integrity": "sha512-sW73O6S8+Tg66eY56DBk85aQzzUJDtpoXFBgELMd5P/SotAguo+1kYO6RuYgXxA4HJH3LFTFPASX6ET6bjfriw==" + }, + "lodash.repeat": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/lodash.repeat/-/lodash.repeat-4.1.0.tgz", + "integrity": "sha512-eWsgQW89IewS95ZOcr15HHCX6FVDxq3f2PNUIng3fyzsPev9imFQxIYdFZ6crl8L56UR6ZlGDLcEb3RZsCSSqw==" + }, + "lodash.snakecase": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz", + "integrity": "sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==" + }, + "lodash.startcase": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.startcase/-/lodash.startcase-4.4.0.tgz", + "integrity": "sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==" + }, + "lodash.trim": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/lodash.trim/-/lodash.trim-4.5.1.tgz", + "integrity": "sha512-nJAlRl/K+eiOehWKDzoBVrSMhK0K3A3YQsUNXHQa5yIrKBAhsZgSu3KoAFoFT+mEgiyBHddZ0pRk1ITpIp90Wg==" + }, + "lodash.trimend": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/lodash.trimend/-/lodash.trimend-4.5.1.tgz", + "integrity": "sha512-lsD+k73XztDsMBKPKvzHXRKFNMohTjoTKIIo4ADLn5dA65LZ1BqlAvSXhR2rPEC3BgAUQnzMnorqDtqn2z4IHA==" + }, + "lodash.trimstart": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/lodash.trimstart/-/lodash.trimstart-4.5.1.tgz", + "integrity": "sha512-b/+D6La8tU76L/61/aN0jULWHkT0EeJCmVstPBn/K9MtD2qBW83AsBNrr63dKuWYwVMO7ucv13QNO/Ek/2RKaQ==" + }, + "lodash.uppercase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.uppercase/-/lodash.uppercase-4.3.0.tgz", + "integrity": "sha512-+Nbnxkj7s8K5U8z6KnEYPGUOGp3woZbB7Ecs7v3LkkjLQSm2kP9SKIILitN1ktn2mB/tmM9oSlku06I+/lH7QA==" + }, + "lodash.upperfirst": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/lodash.upperfirst/-/lodash.upperfirst-4.3.1.tgz", + "integrity": "sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg==" + }, + "log-symbols": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz", + "integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==", + "requires": { + "chalk": "^2.4.2" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==" + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==" + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "long": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", + "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==" + }, + "lru-cache": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", + "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==" + }, + "make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" + }, + "md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "merge-options": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/merge-options/-/merge-options-3.0.4.tgz", + "integrity": "sha512-2Sug1+knBjkaMsMgf1ctR1Ujx+Ayku4EdJN4Z+C2+JzoeF7A3OZ9KM2GY0CpQS51NR61LTurMJrRKPhSs3ZRTQ==", + "requires": { + "is-plain-obj": "^2.1.0" + } + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" + }, + "micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "requires": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + } + }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "requires": { + "mime-db": "1.52.0" + } + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" + }, + "minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + }, + "minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==" + }, + "minimatch": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-8.0.4.tgz", + "integrity": "sha512-W0Wvr9HyFXZRGIDgCicunpQ299OKXs9RgZfaukz4qAW/pJhcpUfupc9c+OObPOFueNy8VSrZgEmDtk6Kh4WzDA==", + "requires": { + "brace-expansion": "^2.0.1" + } + }, + "minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==" + }, + "minipass": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.8.tgz", + "integrity": "sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==" + }, + "minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "requires": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "dependencies": { + "minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "requires": { + "yallist": "^4.0.0" + } + } + } + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "multiaddr": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/multiaddr/-/multiaddr-10.0.1.tgz", + "integrity": "sha512-G5upNcGzEGuTHkzxezPrrD6CaIHR9uo+7MwqhNVcXTs33IInon4y7nMiGxl2CY5hG7chvYQUQhz5V52/Qe3cbg==", + "requires": { + "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" + } + }, + "multiaddr-to-uri": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/multiaddr-to-uri/-/multiaddr-to-uri-8.0.0.tgz", + "integrity": "sha512-dq4p/vsOOUdVEd1J1gl+R2GFrXJQH8yjLtz4hodqdVbieg39LvBOdMQRdQnfbg5LSM/q1BYNVf5CBbwZFFqBgA==", + "requires": { + "multiaddr": "^10.0.0" + } + }, + "multiformats": { + "version": "9.9.0", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-9.9.0.tgz", + "integrity": "sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg==" + }, + "mustache": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/mustache/-/mustache-3.2.1.tgz", + "integrity": "sha512-RERvMFdLpaFfSRIEe632yDm5nsd0SDKn8hGmcUwswnyiE5mtdZLDybtHAz6hjJhawokF0hXvGLtx9mrQfm6FkA==", + "dev": true + }, + "mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" + }, + "nanoid": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", + "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==" + }, + "native-abort-controller": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/native-abort-controller/-/native-abort-controller-1.0.4.tgz", + "integrity": "sha512-zp8yev7nxczDJMoP6pDxyD20IU0T22eX8VwN2ztDccKvSZhRaV33yP1BGwKSZfXuqWUzsXopVFjBdau9OOAwMQ==", + "requires": {} + }, + "native-fetch": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/native-fetch/-/native-fetch-3.0.0.tgz", + "integrity": "sha512-G3Z7vx0IFb/FQ4JxvtqGABsOTIqRWvgQz6e+erkB+JJD6LrszQtMozEHI4EkmgZQvnGHrpLVzUWk7t4sJCIkVw==", + "requires": {} + }, + "natural-orderby": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/natural-orderby/-/natural-orderby-2.0.3.tgz", + "integrity": "sha512-p7KTHxU0CUrcOXe62Zfrb5Z13nLvPhSWR/so3kFulUQU0sgUll2Z0LwpsLN351eOOD+hRGu/F1g+6xDfPeD++Q==" + }, + "node-addon-api": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", + "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==" + }, + "node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "requires": { + "whatwg-url": "^5.0.0" + } + }, + "node-gyp-build": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.1.tgz", + "integrity": "sha512-24vnklJmyRS8ViBNI8KbtK/r/DmXQMRiOMXTNz2nrTnAYUwjmEEbnnpB/+kt+yWRv73bPsSPRFddrcIbAxSiMQ==" + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "requires": { + "path-key": "^3.0.0" + } + }, + "number-to-bn": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/number-to-bn/-/number-to-bn-1.7.0.tgz", + "integrity": "sha512-wsJ9gfSz1/s4ZsJN01lyonwuxA1tml6X1yBDnfpMglypcBRFZZkus26EdPSlqS5GJfYddVZa22p3VNb3z5m5Ig==", + "requires": { + "bn.js": "4.11.6", + "strip-hex-prefix": "1.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA==" + } + } + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" + }, + "object-treeify": { + "version": "1.1.33", + "resolved": "https://registry.npmjs.org/object-treeify/-/object-treeify-1.1.33.tgz", + "integrity": "sha512-EFVjAYfzWqWsBMRHPMAXLCDIJnpMhdWAqR7xG6M6a2cs6PMFpl/+Z20w9zDW4vkxOFfddegBKq9Rehd0bxWE7A==" + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "ora": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-4.1.1.tgz", + "integrity": "sha512-sjYP8QyVWBpBZWD6Vr1M/KwknSw6kJOz41tvGMlwWeClHBtYKTbHMki1PsLZnxKpXMPbTKv9b3pjQu3REib96A==", + "requires": { + "chalk": "^3.0.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.2.0", + "is-interactive": "^1.0.0", + "log-symbols": "^3.0.0", + "mute-stream": "0.0.8", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + } + }, + "p-defer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-3.0.0.tgz", + "integrity": "sha512-ugZxsxmtTln604yeYd29EGrNhazN2lywetzpKhfmQjW/VJmhpDmWbiX+h0zL8V91R0UXkhb3KtPmyq9PZw3aYw==" + }, + "p-fifo": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-fifo/-/p-fifo-1.0.0.tgz", + "integrity": "sha512-IjoCxXW48tqdtDFz6fqo5q1UfFVjjVZe8TC1QRflvNUJtNfCUhxOUw6MOVZhDPjqhSzc26xKdugsO17gmzd5+A==", + "requires": { + "fast-fifo": "^1.0.0", + "p-defer": "^3.0.0" + } + }, + "p-finally": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-2.0.1.tgz", + "integrity": "sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw==" + }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "requires": { + "callsites": "^3.0.0" + } + }, + "parse-cache-control": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-cache-control/-/parse-cache-control-1.0.1.tgz", + "integrity": "sha512-60zvsJReQPX5/QP0Kzfd/VrpjScIQ7SHBW6bFCYfEP+fp0Eppr1SHhIO5nd1PjZtvclzSzES9D/p5nFJurwfWg==" + }, + "parse-duration": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/parse-duration/-/parse-duration-1.1.0.tgz", + "integrity": "sha512-z6t9dvSJYaPoQq7quMzdEagSFtpGu+utzHqqxmpVWNNZRIXnvqyCvn9XsTdh7c/w0Bqmdz3RB3YnRaKtpRtEXQ==" + }, + "parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + } + }, + "password-prompt": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/password-prompt/-/password-prompt-1.1.3.tgz", + "integrity": "sha512-HkrjG2aJlvF0t2BMH0e2LB/EHf3Lcq3fNMzy4GYHcQblAvOl+QQji1Lx7WRBMqpVK8p+KR7bCg7oqAMXtdgqyw==", + "requires": { + "ansi-escapes": "^4.3.2", + "cross-spawn": "^7.0.3" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==" + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" + }, + "path-scurry": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", + "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", + "requires": { + "lru-cache": "^9.1.1 || ^10.0.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "dependencies": { + "minipass": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==" + } + } + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" + }, + "pbkdf2": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", + "requires": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==" + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" + }, + "pluralize": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", + "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==" + }, + "prettier": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz", + "integrity": "sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==" + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "promise": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz", + "integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==", + "requires": { + "asap": "~2.0.6" + } + }, + "protobufjs": { + "version": "6.11.4", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.4.tgz", + "integrity": "sha512-5kQWPaJHi1WoCpjTGszzQ32PG2F4+wRY6BmAT4Vfw56Q2FZ4YZzK20xUYQH4YkfehY1e6QSICrJquM6xXZNcrw==", + "requires": { + "@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" + }, + "dependencies": { + "long": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", + "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" + } + } + }, + "psl": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", + "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==" + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==" + }, + "pvtsutils": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/pvtsutils/-/pvtsutils-1.3.5.tgz", + "integrity": "sha512-ARvb14YB9Nm2Xi6nBq1ZX6dAM0FsJnuk+31aUp4TrcZEdKUlSqOqsxJHUPJDNE3qiIp+iUPEIeR6Je/tgV7zsA==", + "requires": { + "tslib": "^2.6.1" + } + }, + "pvutils": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/pvutils/-/pvutils-1.1.3.tgz", + "integrity": "sha512-pMpnA0qRdFp32b1sJl1wOJNxZLQ2cbQx+k6tjNtZ8CpvVhNqEPRgivZ2WOUev2YMajecdH7ctUPDvEe87nariQ==" + }, + "qs": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", + "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==" + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" + }, + "ramda": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.25.0.tgz", + "integrity": "sha512-GXpfrYVPwx3K7RQ6aYT8KPS8XViSXUVJT1ONhoKPE9VAleW42YE+U+8VEyGWt41EnEQW7gwecYJriTI0pKoecQ==" + }, + "ramdasauce": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ramdasauce/-/ramdasauce-2.1.3.tgz", + "integrity": "sha512-Ml3CPim4SKwmg5g9UI77lnRSeKr/kQw7YhQ6rfdMcBYy6DMlwmkEwQqjygJ3OhxPR+NfFfpjKl3Tf8GXckaqqg==", + "requires": { + "ramda": "^0.24.1" + }, + "dependencies": { + "ramda": { + "version": "0.24.1", + "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.24.1.tgz", + "integrity": "sha512-HEm619G8PaZMfkqCa23qiOe7r3R0brPu7ZgOsgKUsnvLhd0qhc/vTjkUovomgPWa5ECBa08fJZixth9LaoBo5w==" + } + } + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "react-native-fetch-api": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/react-native-fetch-api/-/react-native-fetch-api-3.0.0.tgz", + "integrity": "sha512-g2rtqPjdroaboDKTsJCTlcmtw54E25OjyaunUP0anOZn4Fuo2IKs8BVfe02zVggA/UysbmfSnRJIqtNkAgggNA==", + "requires": { + "p-defer": "^3.0.0" + } + }, + "readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "requires": { + "picomatch": "^2.2.1" + } + }, + "receptacle": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/receptacle/-/receptacle-1.3.2.tgz", + "integrity": "sha512-HrsFvqZZheusncQRiEE7GatOAETrARKV/lnfYicIm8lbvp/JQOdADOfhjBd2DajvoszEyxSM6RlAAIZgEoeu/A==", + "requires": { + "ms": "^2.1.1" + } + }, + "redeyed": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/redeyed/-/redeyed-2.1.1.tgz", + "integrity": "sha512-FNpGGo1DycYAdnrKFxCMmKYgo/mILAqtRYbkdQD8Ep/Hk2PQ5+aEAEx+IU713RTDmuBaH0c8P5ZozurNu5ObRQ==", + "requires": { + "esprima": "~4.0.0" + } + }, + "request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "dependencies": { + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" + } + } + }, + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==" + }, + "restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "requires": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + } + }, + "retimer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/retimer/-/retimer-3.0.0.tgz", + "integrity": "sha512-WKE0j11Pa0ZJI5YIk0nflGI7SQsfl2ljihVy7ogh7DeQSeYAUi0ubZ/yEueGtDfUPk6GH5LRw1hBdLq4IwUBWA==" + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "requires": { + "glob": "^7.1.3" + }, + "dependencies": { + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "requires": { + "brace-expansion": "^1.1.7" + } + } + } + }, + "ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "rlp": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.7.tgz", + "integrity": "sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ==", + "requires": { + "bn.js": "^5.2.0" + } + }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "scrypt-js": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", + "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==" + }, + "secp256k1": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz", + "integrity": "sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==", + "requires": { + "elliptic": "^6.5.4", + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0" + } + }, + "semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "requires": { + "lru-cache": "^6.0.0" + }, + "dependencies": { + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "requires": { + "yallist": "^4.0.0" + } + } + } + }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==" + }, + "sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" + }, + "signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "split-ca": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/split-ca/-/split-ca-1.0.1.tgz", + "integrity": "sha512-Q5thBSxp5t8WPTTJQS59LrGqOZqOsrhDGDVm8azCqIBjSBd7nd9o2PM+mDulQQkh8h//4U6hFZnc/mul8t5pWQ==" + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" + }, + "sshpk": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", + "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + } + }, + "stream-to-it": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/stream-to-it/-/stream-to-it-0.2.4.tgz", + "integrity": "sha512-4vEbkSs83OahpmBybNJXlJd7d6/RxzkkSdT3I0mnGt79Xd2Kk+e1JqbvAvsQfCeKj3aKb0QIWkyK3/n0j506vQ==", + "requires": { + "get-iterator": "^1.0.2" + } + }, + "streamsearch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", + "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==" + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==" + }, + "strip-hex-prefix": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz", + "integrity": "sha512-q8d4ue7JGEiVcypji1bALTos+0pWtyGlivAWyPuTkHzuTCJqrK9sWxYQZUq6Nq3cuyv3bm734IhHvHtGGURU6A==", + "requires": { + "is-hex-prefixed": "1.0.0" + } + }, + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "requires": { + "has-flag": "^4.0.0" + } + }, + "supports-hyperlinks": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", + "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", + "requires": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "dependencies": { + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "sync-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/sync-request/-/sync-request-6.1.0.tgz", + "integrity": "sha512-8fjNkrNlNCrVc/av+Jn+xxqfCjYaBoHqCsDz6mt030UMxJGr+GSfCV1dQt2gRtlL63+VPidwDVLr7V2OcTSdRw==", + "requires": { + "http-response-object": "^3.0.1", + "sync-rpc": "^1.2.1", + "then-request": "^6.0.0" + } + }, + "sync-rpc": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/sync-rpc/-/sync-rpc-1.3.6.tgz", + "integrity": "sha512-J8jTXuZzRlvU7HemDgHi3pGnh/rkoqR/OZSjhTyyZrEkkYQbk7Z33AXp37mkPfPpfdOuj7Ex3H/TJM1z48uPQw==", + "requires": { + "get-port": "^3.1.0" + } + }, + "tar": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz", + "integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==", + "requires": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^5.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "dependencies": { + "minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==" + } + } + }, + "tar-fs": { + "version": "1.16.3", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-1.16.3.tgz", + "integrity": "sha512-NvCeXpYx7OsmOh8zIOP/ebG55zZmxLE0etfWRbWok+q2Qo8x/vOR/IJT1taADXPe+jsiu9axDb3X4B+iIgNlKw==", + "requires": { + "chownr": "^1.0.1", + "mkdirp": "^0.5.1", + "pump": "^1.0.0", + "tar-stream": "^1.1.2" + }, + "dependencies": { + "chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" + }, + "mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "requires": { + "minimist": "^1.2.6" + } + }, + "pump": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pump/-/pump-1.0.3.tgz", + "integrity": "sha512-8k0JupWme55+9tCVE+FS5ULT3K6AbgqrGa58lTT49RpyfwwcGedHqaC5LlQNdEAumn/wFsu6aPwkuPMioy8kqw==", + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + } + } + }, + "tar-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz", + "integrity": "sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==", + "requires": { + "bl": "^1.0.0", + "buffer-alloc": "^1.2.0", + "end-of-stream": "^1.0.0", + "fs-constants": "^1.0.0", + "readable-stream": "^2.3.0", + "to-buffer": "^1.1.1", + "xtend": "^4.0.0" + } + }, + "then-request": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/then-request/-/then-request-6.0.2.tgz", + "integrity": "sha512-3ZBiG7JvP3wbDzA9iNY5zJQcHL4jn/0BWtXIkagfz7QgOL/LqjCEOBQuJNZfu0XYnv5JhKh+cDxCPM4ILrqruA==", + "requires": { + "@types/concat-stream": "^1.6.0", + "@types/form-data": "0.0.33", + "@types/node": "^8.0.0", + "@types/qs": "^6.2.31", + "caseless": "~0.12.0", + "concat-stream": "^1.6.0", + "form-data": "^2.2.0", + "http-basic": "^8.1.1", + "http-response-object": "^3.0.1", + "promise": "^8.0.0", + "qs": "^6.4.0" + }, + "dependencies": { + "@types/node": { + "version": "8.10.66", + "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.66.tgz", + "integrity": "sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw==" + } + } + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" + }, + "timeout-abort-controller": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/timeout-abort-controller/-/timeout-abort-controller-2.0.0.tgz", + "integrity": "sha512-2FAPXfzTPYEgw27bQGTHc0SzrbmnU2eso4qo172zMLZzaGqeu09PFa5B2FCUHM1tflgRqPgn5KQgp6+Vex4uNA==", + "requires": { + "abort-controller": "^3.0.0", + "native-abort-controller": "^1.0.4", + "retimer": "^3.0.0" + } + }, + "tmp": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "requires": { + "rimraf": "^3.0.0" + } + }, + "tmp-promise": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/tmp-promise/-/tmp-promise-3.0.3.tgz", + "integrity": "sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ==", + "requires": { + "tmp": "^0.2.0" + } + }, + "to-buffer": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz", + "integrity": "sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==" + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "requires": { + "is-number": "^7.0.0" + } + }, + "tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "requires": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + }, + "dependencies": { + "punycode": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==" + } + } + }, + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + "ts-node": { + "version": "10.9.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", + "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", + "requires": { + "@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" + } + }, + "tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==" + }, + "type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==" + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==" + }, + "typescript": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz", + "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==", + "peer": true + }, + "uint8arrays": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.1.1.tgz", + "integrity": "sha512-+QJa8QRnbdXVpHYjLoTpJIdCTiw9Ir62nocClWuXIq2JIh4Uta0cQsTSpFL678p2CN8B+XSApwcU+pQEqVpKWg==", + "requires": { + "multiformats": "^9.4.2" + } + }, + "undici-types": { + "version": "5.25.3", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.25.3.tgz", + "integrity": "sha512-Ga1jfYwRn7+cP9v8auvEXN1rX3sWqlayd4HP7OKk4mZWylEmu3KzXDUGrQUN6Ol7qo1gPvB2e5gX6udnyEPgdA==" + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "requires": { + "punycode": "^2.1.0" + }, + "dependencies": { + "punycode": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==" + } + } + }, + "urlpattern-polyfill": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/urlpattern-polyfill/-/urlpattern-polyfill-8.0.2.tgz", + "integrity": "sha512-Qp95D4TPJl1kC9SKigDcqgyM2VDVO4RiJc2d4qe5GrYm+zbIQCWWKAFaJNQ4BhdFeDGwBmAxqJBwWSJDb9T3BQ==" + }, + "utf8": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/utf8/-/utf8-3.0.0.tgz", + "integrity": "sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ==" + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" + }, + "v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==" + }, + "varint": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz", + "integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==" + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + }, + "dependencies": { + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==" + } + } + }, + "wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", + "requires": { + "defaults": "^1.0.3" + } + }, + "web-streams-polyfill": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz", + "integrity": "sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==" + }, + "web3-eth-abi": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.7.0.tgz", + "integrity": "sha512-heqR0bWxgCJwjWIhq2sGyNj9bwun5+Xox/LdZKe+WMyTSy0cXDXEAgv3XKNkXC4JqdDt/ZlbTEx4TWak4TRMSg==", + "requires": { + "@ethersproject/abi": "5.0.7", + "web3-utils": "1.7.0" + } + }, + "web3-utils": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.7.0.tgz", + "integrity": "sha512-O8Tl4Ky40Sp6pe89Olk2FsaUkgHyb5QAXuaKo38ms3CxZZ4d3rPGfjP9DNKGm5+IUgAZBNpF1VmlSmNCqfDI1w==", + "requires": { + "bn.js": "^4.11.9", + "ethereum-bloom-filters": "^1.0.6", + "ethereumjs-util": "^7.1.0", + "ethjs-unit": "0.1.6", + "number-to-bn": "1.7.0", + "randombytes": "^2.1.0", + "utf8": "3.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + } + } + }, + "webcrypto-core": { + "version": "1.7.7", + "resolved": "https://registry.npmjs.org/webcrypto-core/-/webcrypto-core-1.7.7.tgz", + "integrity": "sha512-7FjigXNsBfopEj+5DV2nhNpfic2vumtjjgPmeDKk45z+MJwXKKfhPB7118Pfzrmh4jqOMST6Ch37iPAHoImg5g==", + "requires": { + "@peculiar/asn1-schema": "^2.3.6", + "@peculiar/json-schema": "^1.1.12", + "asn1js": "^3.0.1", + "pvtsutils": "^1.3.2", + "tslib": "^2.4.0" + } + }, + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "requires": { + "isexe": "^2.0.0" + } + }, + "widest-line": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", + "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", + "requires": { + "string-width": "^4.0.0" + } + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==" + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "ws": { + "version": "7.5.9", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", + "requires": {} + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==" + }, + "yargs-parser": { + "version": "16.1.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-16.1.0.tgz", + "integrity": "sha512-H/V41UNZQPkUMIT5h5hiwg4QKIY1RPvoBV4XcjUbRM8Bk2oKqqyZ0DIEbTFZB0XjbtSPG8SAa/0DxCQmiRgzKg==", + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + }, + "yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==" + } + } +} diff --git a/subgraph/package.json b/subgraph/package.json new file mode 100755 index 0000000000..f3559eca30 --- /dev/null +++ b/subgraph/package.json @@ -0,0 +1,32 @@ +{ + "name": "@rainprotocol/orderbook-subgraph", + "description": "Rain OrderBook Subgraph", + "version": "0.1.0", + "author": "rainprotocol", + "license": "CAL", + "repository": { + "type": "git", + "url": "https://github.com/rainprotocol/rain.orderbook.git" + }, + "keywords": [], + "bugs": { + "url": "https://github.com/rainprotocol/rain.orderbook/issues" + }, + "scripts": { + "test": "hardhat test", + "codegen": "graph codegen", + "build": "graph build", + "lint": "eslint .", + "lint-fix": "eslint . --fix", + "prettier": "prettier . '!./docker' --check", + "prettier-write": "prettier . '!./docker' --write" + }, + "dependencies": { + "@graphprotocol/graph-cli": "0.46.1", + "@graphprotocol/graph-ts": "0.28.1", + "@rainprotocol/assemblyscript-cbor": "0.0.6" + }, + "devDependencies": { + "mustache": "3.2.1" + } +} diff --git a/subgraph/schema.graphql b/subgraph/schema.graphql new file mode 100644 index 0000000000..188535de3f --- /dev/null +++ b/subgraph/schema.graphql @@ -0,0 +1,403 @@ +type OrderBook @entity { + id: Bytes! + deployer: Bytes + address: Bytes! + "The RainMetaV1 decode information" + meta: RainMetaV1 # Use the CBOR AS library to decode the meta emitted by the OB +} + +type RainMetaV1 @entity { + "Hash of the meta directly emitted by the contract" + id: Bytes! # Include the RainMeta MagicNumber. + "Original meta bytes directly emitted from the contract" + metaBytes: Bytes! # Original meta bytes emitted from the contract + "The meta content V1 decoded from the meta bytes emitted" + content: [ContentMetaV1!]! +} + +type ContentMetaV1 @entity { + "The hash of this meta, this basically is the hash of 'rawBytes' field" + id: Bytes! + "The cbor map item bytes." + rawBytes: Bytes! + "The magic number associated with this meta" + magicNumber: BigInt! + "The payload of this content" + payload: Bytes! + "The RainMeta records that have this cbor map as part of their sequence" + parents: [RainMetaV1!]! + "The header name info for Content-Type" + contentType: String + "The header name info for Content-Encoding. It's optional" + contentEncoding: String + "The header name info for Content-Language. It's optional" + contentLanguage: String +} + +# Created with the first AddOrder event, then updated on the corresponding AddOrder/RemoveOrder events +type Order implements Event @entity { + "The hash of the order" + id: ID! # This value is emitted as Uint256, but you should use the hex string representation (it's a hash) + "The hash of the order" + orderHash: Bytes! + + "The address that added the order" + owner: Account! + + "The IInterpreter address that is used to add the order" + interpreter: Bytes! + + "The IInterpreterStore address that is used to add the order" + interpreterStore: Bytes! + + "The IExpressionDeployer contract address that is used to add the order" + expressionDeployer: Bytes! + + "The address to the rain expression for the Order" + expression: Bytes! + + "Whether the order is active or inactive" + orderActive: Boolean! + + "Flag that check if there is a handle_IO entrypoint to run. If false the order book MAY skip calling the interpreter to save gas" + handleIO: Boolean! + + # "The RainMetaV1 decode information Rain `MetaV1` when the order is placed so can be used by offChain processes." + meta: RainMetaV1 + + "validInputs" + validInputs: [IO!] + + "validOutputs" + validOutputs: [IO!] + + orderJSONString: String! + expressionJSONString: String + + "Timestamp when the order was added" + transaction: Transaction! + emitter: Account! + timestamp: BigInt! + + "Take Order entities that use this order" + takeOrders: [TakeOrderEntity!] @derivedFrom(field: "order") + "Order Clear entities that use this order" + ordersClears: [OrderClear!] +} + +# Created with AddOrder +type IO @entity { + id: ID! # ID = `order.hash() - IO.token - IO.vaultId` + token: ERC20! + decimals: Int! + vault: Vault! + vaultId: BigInt! + order: Order! + tokenVault: TokenVault! + index: Int! +} + +# Created and updated whenever an AddOrder event occurs +# Created and updated whenever an Deposit event occurs +# Updated whenever an Withdraw event occurs +type Vault @entity { + id: ID! #{vaultId}-{owner} + vaultId: BigInt! + + "The owner of this Vault" + owner: Account! + + "Tokens in this Vault" + tokenVaults: [TokenVault!] @derivedFrom(field: "vault") + + "Deposits into this Vault" + deposits: [VaultDeposit!] @derivedFrom(field: "vault") # add whenever a Deposit event occurs for this {vaultId}-{owner} + "Withdrawals from this Vault" + withdraws: [VaultWithdraw!] @derivedFrom(field: "vault") # add whenever a Withdraw event occurs for this {vaultId}-{owner} +} + +# Created and updated whenever an AddOrder event occurs +# Created and updated whenever an Deposit event occurs +# Updated whenever an Withdraw event occurs +# ALSO created and updated when a pair of Clear/AfterClear events occur +type TokenVault @entity { + #{vaultId}-{owner}-{token} + id: ID! + + # From Deposit.sender / Withdraw.sender + "The owner of this Vault" + owner: Account! + "The id of this vault" + vault: Vault! + + vaultId: BigInt! + + "The token that has a balance for this vault and owner." + token: ERC20! + + # Add to this value: + # Deposit.amount when there is a matching Deposit event for {vaultId}-{owner}-{token} + # OR AfterClear.stateChange.aInput when there is a Clear event that matches {Clear.a_.inputVault}-{Clear.a_.owner}-{Clear.a_.inputToken} + # OR AfterClear.stateChange.bInput when there is a Clear event that matches {Clear.b_.inputVault}-{Clear.b_.owner}-{Clear.b_.inputToken} + # Subtract from this value: + # Withdraw.amount when there is a matching Withdraw event for {vaultId}-{owner}-{token} + # updated on every Deposit/Withdraw event that occurs for this {vaultId}-{owner}-{token} + "The balance of this token, for this vault, for this owner" + balance: BigInt! + balanceDisplay: BigDecimal! + + # Add to array: + # when {Order.inputVault}-{Order.owner}-{Order.inputToken} match this TokenVault + # OR when {Order.outputVault}-{Order.owner}-{Order.outputToken} match this TokenVault + "Orders that reference this vault, owner and token" + orders: [Order!] + + # Add to array: + # when {Clear.a_.inputVault}-{Clear.a_.owner}-{Clear.a_.inputToken} match this TokenVault + # OR when {Clear.b_.outputVault}-{Clear.b_.owner}-{Clear.b_.outputToken} match this TokenVault + # "OrderClears that reference this vault, owner and token" + orderClears: [OrderClear!] + takeOrders: [TokenVaultTakeOrder!] @derivedFrom(field: "tokenVault") +} + +type TokenVaultTakeOrder @entity { + id: ID! + wasOutput: Boolean! + wasInput: Boolean! + takeOrder: TakeOrderEntity! + tokenVault: TokenVault! +} + +# Created for every Deposit event +type VaultDeposit implements Event @entity { + id: ID! # use txhash of the event + N Deposit on the tx + "The transaction sender of this deposit" + sender: Account! # Deposit.sender + "The token that was deposited" + token: ERC20! # Deposit.config.token + "The vaultId that was deposited into" + vaultId: BigInt! # Deposit.config.vaultId + "The Vault that was deposited into" + vault: Vault! # map by {Deposit.config.vaultId}-{sender} + "The amount that was deposited" + amount: BigInt! # Deposit.config.amount + amountDisplay: BigDecimal! + "The current balance of this token for this Vault" + tokenVault: TokenVault! # map by {Deposit.config.vaultId}-{Deposit.sender}-{Deposit.config.token} + transaction: Transaction! + emitter: Account! + timestamp: BigInt! +} + +# Created for every Withdraw event +type VaultWithdraw implements Event @entity { + id: ID! # use txhash of the event + N Withdraw on the tx + "The transaction sender of this withdrawal" + sender: Account! # Withdrawal.sender + "The token that was withdrawn" + token: ERC20! # Withdraw.config.token + "The vaultId that was withdrawn from" + vaultId: BigInt! # Withdraw.config.vaultId + "The Vault that was withdrawn from" + vault: Vault! # map by {Withdraw.config.vaultId}-{sender} + "The amount that was requested be withdrawn" + requestedAmount: BigInt! # Withdraw.config.amount + requestedAmountDisplay: BigDecimal! # Withdraw.config.amount + "The amount that was withdrawn" + amount: BigInt! # Withdraw.amount + amountDisplay: BigDecimal! + "The current balance of this token for this Vault" + tokenVault: TokenVault! # map by {Withdraw.config.vaultId}-{Withdraw.sender}-{Withdraw.config.token} + transaction: Transaction! + emitter: Account! + timestamp: BigInt! +} + +type ERC20 @entity { + id: ID! # address of token + name: String! + symbol: String! + totalSupply: BigInt! + totalSupplyDisplay: BigDecimal! + decimals: Int! +} + +# Created for every pair of AfterClear/Clear events +type OrderClear implements Event @entity { + id: ID! # timestamp + "The sender address who cleared the Orders" + sender: Account! # Clear.sender + "The clearer address who cleared this order" + clearer: Account! # from Clear.sender + "Order A being cleared" + orderA: Order! # map by hash(Clear.a_) + "Order B being cleared" + orderB: Order! # map by hash(Clear.b_) + "The owners of the Orders that were cleared [Order A, Order B]" + owners: [Account!] # [Clear.a_.owner, Clear.b_.owner] + "The token input index cleared into Order A" + aInputIOIndex: BigInt! + + "The token output index cleared into Order A" + aOutputIOIndex: BigInt! + + "The token input index cleared into Order B" + bInputIOIndex: BigInt! + + "The token output index cleared into Order B" + bOutputIOIndex: BigInt! + + "The bounty paid when this order was cleared" + bounty: Bounty! @derivedFrom(field: "orderClear") # map by unique id created - see Bounty entity + "The state change that occurred because of this Clear" + stateChange: OrderClearStateChange! @derivedFrom(field: "orderClear") # map by unique id created - see OrderClearStateChange entity + transaction: Transaction! + emitter: Account! + timestamp: BigInt! +} + +# Created when each OrderClear entity is created +type Bounty @entity { + id: ID! # create a unique ID when OrderClear entity is created + "The clearer who received this bounty" + clearer: Account! # from Clear.sender + "The Clear event that paid this bounty" + orderClear: OrderClear! + + "The Vault that bounty token A was deposited into" + bountyVaultA: Vault! # map by {Clear.clearConfig.aliceBountyVaultId}-{Clear.sender} + "The Vault that bounty token B was deposited into" + bountyVaultB: Vault! # map by {Clear.clearConfig.bobBountyVaultId}-{Clear.sender} + # Not Including Tokens , bounty referenced by VaultA And VaultB + + "The A token for the bounty" + bountyTokenA: ERC20! # Clear.alice.validOutputs[clearConfig.aliceOutputIOIndex].token + "The B token for the bounty" + bountyTokenB: ERC20! # Clear.bob.validOutputs[clearConfig.bobOutputIOIndex].token + "The amount paid for bounty token A" + bountyAmountA: BigInt # AfterClear.clearStateChange.aliceOutput - AfterClear.clearStateChange.bobInput + bountyAmountADisplay: BigDecimal + + "The amount paid for bounty token B" + bountyAmountB: BigInt # AfterClear.clearStateChange.bobOutput - AfterClear.clearStateChange.aliceInput + bountyAmountBDisplay: BigDecimal + + transaction: Transaction! + emitter: Account! + timestamp: BigInt! +} + +# Created for every pair of TakeOrder events +type TakeOrderEntity implements Event @entity { + id: ID! # Hash of ((TakeOrder.config)) + sender: Account! + order: Order! + + "The input amount from the perspective of sender" + input: BigInt! + inputDisplay: BigDecimal! + + "The output amount from the perspective of sender" + output: BigInt! + outputDisplay: BigDecimal! + + "IO Ratio" + IORatio: BigDecimal! + + "The index of the input token in order to match with the take order output" + inputIOIndex: BigInt! + "The index of the output token in order to match with the take order input." + outputIOIndex: BigInt! + + "Input token from the perspective of the order taker" + inputToken: ERC20! + "Output token from the perspective of the order taker" + outputToken: ERC20! + + # Event fields + transaction: Transaction! + emitter: Account! + timestamp: BigInt! + + context: ContextEntity +} + +# Create when an OrderClear entity is created +type OrderClearStateChange @entity { + id: ID! # create a unique ID when OrderClear entity is created + orderClear: OrderClear! + aOutput: BigInt! # AfterClear.clearStateChange.aliceOutput + bOutput: BigInt! # AfterClear.clearStateChange.bobOutput + aInput: BigInt! # AfterClear.clearStateChange.aliceInput + bInput: BigInt! # AfterClear.clearStateChange.bobInput +} + +type ClearOrderConfig @entity { + id: ID! + orderClearId: OrderClear! + tokenVaultBountyAlice: TokenVault! + tokenVaultBountyBob: TokenVault! + aliceTokenVaultInput: String! + aliceTokenVaultOutput: String! + bobTokenVaultInput: String! + bobTokenVaultOutput: String! +} + +type Account @entity { + id: Bytes! + orders: [Order!] @derivedFrom(field: "owner") + withdraws: [VaultWithdraw!] @derivedFrom(field: "sender") + deposits: [VaultDeposit!] @derivedFrom(field: "sender") + ordersCleared: [OrderClear!] @derivedFrom(field: "clearer") + bounties: [Bounty!] @derivedFrom(field: "clearer") + takeOrderEntities: [TakeOrderEntity!] @derivedFrom(field: "sender") + vaults: [Vault!] @derivedFrom(field: "owner") + tokenVaults: [TokenVault!] @derivedFrom(field: "owner") + events: [Event!] @derivedFrom(field: "emitter") +} + +type Transaction @entity(immutable: true) { + id: ID! + timestamp: BigInt! + blockNumber: BigInt! + events: [Event!] @derivedFrom(field: "transaction") +} + +type ContextEntity @entity { + id: ID! + "Base caller" + caller: Account! + + "Contextual data available to both calculate order and handle IO" + callingContext: [BigInt!] + "Contains the DECIMAL RESCALED calculations" + calculationsContext: [BigInt!] + "The inputs context data" + vaultInputsContext: [BigInt!] + "The outputs context data" + vaultOutputsContext: [BigInt!] + + "Optional signed context relevant to the transaction" + signedContext: [SignedContext!] + + "Transaction where this event was emitted." + transaction: Transaction! + "Account that sent the transaction this event was emitted in." + emitter: Account! + timestamp: BigInt! +} + +type SignedContext @entity { + id: ID! + signer: Bytes! + context: [BigInt!] +} + +interface Event { + id: ID! + "Transaction this event was emitted in." + transaction: Transaction! + "Account that sent the transaction this event was emitted in." + emitter: Account! + timestamp: BigInt! +} diff --git a/subgraph/src/erc20.ts b/subgraph/src/erc20.ts new file mode 100644 index 0000000000..a0d8db882b --- /dev/null +++ b/subgraph/src/erc20.ts @@ -0,0 +1,26 @@ +import { Address } from "@graphprotocol/graph-ts"; +import { ReserveToken, Transfer } from "../generated/OrderBook/ReserveToken"; +import { ERC20 } from "../generated/schema"; +import { toDisplayWithDecimals } from "./utils"; + +export function handleTransfer(event: Transfer): void { + let token = ERC20.load(event.address.toHex()); + + if ( + token && + (event.params.from == Address.zero() || event.params.to == Address.zero()) + ) { + let reserveToken = ReserveToken.bind(Address.fromBytes(event.address)); + + let totalSupply = reserveToken.try_totalSupply(); + + if (!totalSupply.reverted) { + let value = totalSupply.value; + + token.totalSupply = value; + token.totalSupplyDisplay = toDisplayWithDecimals(value, token.decimals); + + token.save(); + } + } +} diff --git a/subgraph/src/orderBook.ts b/subgraph/src/orderBook.ts new file mode 100644 index 0000000000..365f64b7f9 --- /dev/null +++ b/subgraph/src/orderBook.ts @@ -0,0 +1,1170 @@ +import { + Bounty, + IO, + ContentMetaV1, + Order, + OrderClearStateChange, + ClearOrderConfig, + TokenVault, + ContextEntity, + TokenVaultTakeOrder, + OrderBook, +} from "../generated/schema"; +import { + AddOrder, + AfterClear, + Clear, + Context, + Deposit, + MetaV1, + OrderExceedsMaxRatio, + OrderNotFound, + OrderZeroAmount, + RemoveOrder, + TakeOrder, + Withdraw, + // Initialized, + ClearAliceStruct, +} from "../generated/OrderBook/OrderBook"; +import { + BigDecimal, + BigInt, + Bytes, + JSONValue, + JSONValueKind, + TypedMap, + // ValueKind, + ethereum, + json, + // log, + // store, +} from "@graphprotocol/graph-ts"; + +import { + AFTER_CLEAR_EVENT_TOPIC, + CLEAR_EVENT_TOPIC, + NEW_EXPRESSION_EVENT_TOPIC, + RAIN_META_DOCUMENT_HEX, + TAKE_ORDER_EVENT_TOPIC, + createAccount, + createContextEntity, + createOrder, + createOrderClear, + createSignedContext, + createTakeOrderConfig, + createToken, + createTokenVault, + createTransaction, + createVault, + createVaultDeposit, + createVaultWithdraw, + getEvenHex, + getKeccak256FromBytes, + // getOB, + getRainMetaV1, + isHexadecimalString, + stringToArrayBuffer, + toDisplay, + tuplePrefix, +} from "./utils"; +import { CBORDecoder, CBOREncoder } from "@rainprotocol/assemblyscript-cbor"; +import { ExpressionJSONString, OrderString } from "./orderJsonString"; + +export function handleContext(event: Context): void { + const receipt = event.receipt; + + // Should be at least one log (the current event is one). This is conditional + // is just for safe typing. + if (receipt && receipt.logs.length > 0) { + const logs = receipt.logs; + + const log_takeOrder = logs.findIndex( + (log_) => log_.topics[0].toHex() == TAKE_ORDER_EVENT_TOPIC + ); + const log_clear = logs.findIndex( + (log_) => log_.topics[0].toHex() == CLEAR_EVENT_TOPIC + ); + const log_afterClear = logs.findIndex( + (log_) => log_.topics[0].toHex() == AFTER_CLEAR_EVENT_TOPIC + ); + + if (log_clear != -1 && log_afterClear != -1) { + // It's a context for clear and afterClear + // This is in case that need to support context for these events + } + + if (log_takeOrder != -1) { + // It's a context for a takeOrder + // Create the TakeOrder and assign the context entity ID. + // ON the takeOrder handler, the takeOrder entity should not be created, only + // read/obtained and modified with the data of the take order event. + const context = event.params.context; + + // Column 0 is the Context Base + const sender = Bytes.fromHexString(getEvenHex(context[0][0].toHex())); + const callerContract = Bytes.fromHexString( + getEvenHex(context[0][1].toHex()) + ); + + // Column 1 is the Context Calling + const callingContext = context[1]; + + // Column 2 is the Context Calculations + const calculationsContext = context[2]; + + // Column 3 is the Context Vault Inputs + const vaultInputsContext = context[3]; + + // Column 4 is the Context Vault Outputs + const vaultOutputsContext = context[4]; + + // After the column 4, all is of signedContext + const signedContextArr = context.slice(5); + + // Where all the "real" signed conext entities are "save" + const signedContextEntities: string[] = []; + + if (signedContextArr.length > 0) { + const signers = signedContextArr.shift(); + + if (signers.length == signedContextArr.length) { + for (let i = 0; i < signedContextArr.length; i++) { + const signedContextEntity = createSignedContext( + event.transaction.hash.toHex() + ); + + signedContextEntity.context = signedContextArr[i]; + signedContextEntity.signer = Bytes.fromHexString( + getEvenHex(signers[i].toHex()) + ); + + signedContextEntity.save(); + + signedContextEntities.push(signedContextEntity.id); + } + } + } + + // Temp + const contextTakeOrder = new ContextEntity("ContextTakeOrderTemp"); + + contextTakeOrder.caller = sender; + contextTakeOrder.callingContext = callingContext; + contextTakeOrder.calculationsContext = calculationsContext; + contextTakeOrder.vaultInputsContext = vaultInputsContext; + contextTakeOrder.vaultOutputsContext = vaultOutputsContext; + contextTakeOrder.signedContext = signedContextEntities; + + contextTakeOrder.emitter = createAccount(event.params.sender).id; + contextTakeOrder.timestamp = event.block.timestamp; + contextTakeOrder.transaction = createTransaction( + event.transaction.hash.toHex(), + event.block + ).id; + + contextTakeOrder.save(); + } + } +} + +export function handleAddOrder(event: AddOrder): void { + // Order parameter from event + const orderParam = event.params.order; + + const orderHashHex = getEvenHex(event.params.orderHash.toHex()); + + let order = new Order(orderHashHex); + + order.ordersClears = []; + order.transaction = createTransaction( + event.transaction.hash.toHex(), + event.block + ).id; + + order.orderHash = Bytes.fromHexString( + getEvenHex(event.params.orderHash.toHex()) + ); + order.timestamp = event.block.timestamp; + order.owner = createAccount(orderParam.owner).id; + order.emitter = createAccount(event.params.sender).id; + + order.expressionDeployer = event.params.expressionDeployer; + order.expression = orderParam.evaluable.expression; + order.interpreter = orderParam.evaluable.interpreter; + order.interpreterStore = orderParam.evaluable.store; + order.handleIO = orderParam.handleIO; + order.orderActive = true; + order.validInputs = []; + order.validOutputs = []; + + for (let i = 0; i < orderParam.validInputs.length; i++) { + let token = createToken(orderParam.validInputs[i].token); + let vault = createVault( + orderParam.validInputs[i].vaultId.toString(), + orderParam.owner + ); + let tokenVault = createTokenVault( + orderParam.validInputs[i].vaultId.toString(), + event.params.sender, + orderParam.validInputs[i].token + ); + + if (tokenVault) { + let orders = tokenVault.orders; + if (orders) orders.push(order.id); + tokenVault.orders = orders; + tokenVault.save(); + } + + let input = new IO( + `${orderHashHex}-${token.id}-${orderParam.validInputs[i].vaultId}` + ); + input.token = token.id; + input.decimals = orderParam.validInputs[i].decimals; + input.vault = vault.id; + input.vaultId = orderParam.validInputs[i].vaultId; + input.order = orderHashHex; + input.tokenVault = tokenVault.id; + input.index = i; + input.save(); + + // Add the input to the order entity + const auxInput = order.validInputs; + if (auxInput) if (!auxInput.includes(input.id)) auxInput.push(input.id); + order.validInputs = auxInput; + } + + for (let i = 0; i < orderParam.validOutputs.length; i++) { + let token = createToken(orderParam.validOutputs[i].token); + let vault = createVault( + orderParam.validOutputs[i].vaultId.toString(), + orderParam.owner + ); + let tokenVault = createTokenVault( + orderParam.validOutputs[i].vaultId.toString(), + event.params.sender, + orderParam.validOutputs[i].token + ); + + if (tokenVault) { + let orders = tokenVault.orders; + if (orders) orders.push(order.id); + tokenVault.orders = orders; + tokenVault.save(); + } + + let output = new IO( + `${orderHashHex}-${token.id}-${orderParam.validOutputs[i].vaultId}` + ); + output.token = token.id; + output.decimals = orderParam.validOutputs[i].decimals; + output.vault = vault.id; + output.vaultId = orderParam.validOutputs[i].vaultId; + output.order = orderHashHex; + output.tokenVault = tokenVault.id; + output.index = i; + output.save(); + + // Use the OrderString class to generate a Order JSON string compatible value + const orderString = new OrderString(orderParam); + order.orderJSONString = orderString.stringify(); + + // Add the input to the order entity + const auxOutput = order.validOutputs; + if (auxOutput) + if (!auxOutput.includes(output.id)) auxOutput.push(output.id); + + order.validOutputs = auxOutput; + } + + const receipt = event.receipt; + if (receipt && receipt.logs.length > 0) { + const logs = receipt.logs; + + const log_newExpression = logs.findIndex( + (log_) => log_.topics[0].toHex() == NEW_EXPRESSION_EVENT_TOPIC + ); + + if (log_newExpression != -1) { + const log_callerMeta = logs[log_newExpression]; + + const dataTuple = tuplePrefix.concat(log_callerMeta.data); + + const decodedData = ethereum.decode( + "(address,bytes,uint256[],uint256[])", + dataTuple + ); + + if (decodedData && decodedData.kind === ethereum.ValueKind.TUPLE) { + const newExpressionTuple = decodedData.toTuple(); + + const bytecode_ = newExpressionTuple[1].toBytes(); + const constants_ = newExpressionTuple[2].toBigIntArray(); + const minOutputs_ = newExpressionTuple[3].toBigIntArray(); + + const expressionJsonString = new ExpressionJSONString( + bytecode_, + constants_, + minOutputs_ + ); + order.expressionJSONString = expressionJsonString.stringify(); + } + } + } + + order.save(); +} + +export function handleAfterClear(event: AfterClear): void { + let config = ClearOrderConfig.load("1"); + const clearStateChange = event.params.clearStateChange; + + // Amounts + const aliceInput = clearStateChange.aliceInput; + const aliceOutput = clearStateChange.aliceOutput; + const bobInput = clearStateChange.bobInput; + const bobOutput = clearStateChange.bobOutput; + + // Bounty amounts + const bountyAmountA = aliceOutput.minus(bobInput); + const bountyAmountB = bobOutput.minus(aliceInput); + + if (config) { + let orderClearStateChange = new OrderClearStateChange(config.orderClearId); + orderClearStateChange.orderClear = config.orderClearId; + orderClearStateChange.aInput = aliceInput; + orderClearStateChange.aOutput = aliceOutput; + orderClearStateChange.bInput = bobInput; + orderClearStateChange.bOutput = bobOutput; + orderClearStateChange.save(); + + let bounty = Bounty.load(config.orderClearId); + if (bounty) { + bounty.bountyAmountA = bountyAmountA; + bounty.bountyAmountADisplay = toDisplay( + bountyAmountA, + bounty.bountyTokenA + ); + bounty.bountyAmountB = bountyAmountB; + bounty.bountyAmountBDisplay = toDisplay( + bountyAmountB, + bounty.bountyTokenB + ); + bounty.save(); + } + + if (bountyAmountA.gt(BigInt.zero())) { + const tokenVaultBounty_A = TokenVault.load(config.tokenVaultBountyAlice); + + if (tokenVaultBounty_A) { + tokenVaultBounty_A.balance = tokenVaultBounty_A.balance.plus( + bountyAmountA + ); + tokenVaultBounty_A.balanceDisplay = toDisplay( + tokenVaultBounty_A.balance, + tokenVaultBounty_A.token + ); + + tokenVaultBounty_A.save(); + } + } + + if (bountyAmountB.gt(BigInt.zero())) { + const tokenVaultBounty_B = TokenVault.load(config.tokenVaultBountyBob); + + if (tokenVaultBounty_B) { + tokenVaultBounty_B.balance = tokenVaultBounty_B.balance.plus( + bountyAmountB + ); + tokenVaultBounty_B.balanceDisplay = toDisplay( + tokenVaultBounty_B.balance, + tokenVaultBounty_B.token + ); + + tokenVaultBounty_B.save(); + } + } + + // TokenVaults IDs to update balance + const aliceTokenVaultInput_ID = config.aliceTokenVaultInput; + const aliceTokenVaultOutput_ID = config.aliceTokenVaultOutput; + const bobTokenVaultInput_ID = config.bobTokenVaultInput; + const bobTokenVaultOutput_ID = config.bobTokenVaultOutput; + + // Updating alice input/output balance + const aliceTokenVaultInput = TokenVault.load(aliceTokenVaultInput_ID); + if (aliceTokenVaultInput) { + aliceTokenVaultInput.balance = aliceTokenVaultInput.balance.plus( + aliceInput + ); + aliceTokenVaultInput.balanceDisplay = toDisplay( + aliceTokenVaultInput.balance, + aliceTokenVaultInput.token + ); + aliceTokenVaultInput.save(); + } + + const aliceTokenVaultOutput = TokenVault.load(aliceTokenVaultOutput_ID); + if (aliceTokenVaultOutput) { + aliceTokenVaultOutput.balance = aliceTokenVaultOutput.balance.minus( + aliceOutput + ); + aliceTokenVaultOutput.balanceDisplay = toDisplay( + aliceTokenVaultOutput.balance, + aliceTokenVaultOutput.token + ); + aliceTokenVaultOutput.save(); + } + + // Updating bob input/output balance + const bobTokenVaultInput = TokenVault.load(bobTokenVaultInput_ID); + if (bobTokenVaultInput) { + bobTokenVaultInput.balance = bobTokenVaultInput.balance.plus(bobInput); + bobTokenVaultInput.balanceDisplay = toDisplay( + bobTokenVaultInput.balance, + bobTokenVaultInput.token + ); + bobTokenVaultInput.save(); + } + + const bobTokenVaultOutput = TokenVault.load(bobTokenVaultOutput_ID); + if (bobTokenVaultOutput) { + bobTokenVaultOutput.balance = bobTokenVaultOutput.balance.minus( + bobOutput + ); + bobTokenVaultOutput.balanceDisplay = toDisplay( + bobTokenVaultOutput.balance, + bobTokenVaultOutput.token + ); + bobTokenVaultOutput.save(); + } + } +} + +export function handleClear(event: Clear): void { + const alice = event.params.alice; + const bob = event.params.bob; + const clearConfig = event.params.clearConfig; + const sender = event.params.sender; + + let orderClear = createOrderClear(event.transaction.hash.toHex()); + orderClear.sender = createAccount(sender).id; + orderClear.clearer = createAccount(sender).id; + + const order_A = createOrder(alice); + const order_B = createOrder(changetype(bob)); + + orderClear.orderA = order_A.id; + orderClear.orderB = order_B.id; + + // Saving order clears to each orders + // - ORDER A + const ordersClears_A = order_A.ordersClears; + if (ordersClears_A) ordersClears_A.push(orderClear.id); + order_A.ordersClears = ordersClears_A; + order_A.save(); + // - ORDER B + const ordersClears_B = order_B.ordersClears; + if (ordersClears_B) ordersClears_B.push(orderClear.id); + order_B.ordersClears = ordersClears_B; + order_B.save(); + + orderClear.owners = [ + createAccount(alice.owner).id, + createAccount(bob.owner).id, + ]; + orderClear.aInputIOIndex = clearConfig.aliceInputIOIndex; + orderClear.aOutputIOIndex = clearConfig.aliceOutputIOIndex; + orderClear.bInputIOIndex = clearConfig.bobInputIOIndex; + orderClear.bOutputIOIndex = clearConfig.bobOutputIOIndex; + orderClear.transaction = createTransaction( + event.transaction.hash.toHex(), + event.block + ).id; + orderClear.emitter = createAccount(event.params.sender).id; + orderClear.timestamp = event.block.timestamp; + orderClear.save(); + + let bounty = new Bounty(orderClear.id); + bounty.clearer = createAccount(sender).id; + bounty.orderClear = orderClear.id; + bounty.bountyVaultA = createVault( + clearConfig.aliceBountyVaultId.toString(), + sender + ).id; + bounty.bountyVaultB = createVault( + clearConfig.bobBountyVaultId.toString(), + sender + ).id; + + bounty.bountyTokenA = createToken( + alice.validOutputs[clearConfig.aliceOutputIOIndex.toI32()].token + ).id; + bounty.bountyTokenB = createToken( + bob.validOutputs[clearConfig.bobOutputIOIndex.toI32()].token + ).id; + bounty.transaction = createTransaction( + event.transaction.hash.toHex(), + event.block + ).id; + bounty.emitter = createAccount(event.params.sender).id; + bounty.timestamp = event.block.timestamp; + bounty.save(); + + // IO Index values used to clear (for alice and bob) + const aliceInputIOIndex = clearConfig.aliceInputIOIndex.toI32(); + const aliceOutputIOIndex = clearConfig.aliceOutputIOIndex.toI32(); + const bobInputIOIndex = clearConfig.bobInputIOIndex.toI32(); + const bobOutputIOIndex = clearConfig.bobOutputIOIndex.toI32(); + + // Valid inputs/outpus based on the Index used (for alice and bob) + const aliceInputValues = alice.validInputs[aliceInputIOIndex]; + const aliceOutputValues = alice.validOutputs[aliceOutputIOIndex]; + const bobInputValues = bob.validInputs[bobInputIOIndex]; + const bobOutputValues = bob.validOutputs[bobOutputIOIndex]; + + // Token input/output based on the Index used (for alice and bob) + const aliceTokenInput = aliceInputValues.token; + const aliceTokenOutput = aliceOutputValues.token; + const bobTokenInput = bobInputValues.token; + const bobTokenOutput = bobOutputValues.token; + + // Vault IDs input/output based on the Index used (for alice and bob) + const aliceVaultInput = aliceInputValues.vaultId; + const aliceVaultOutput = aliceOutputValues.vaultId; + const bobVaultInput = bobInputValues.vaultId; + const bobVaultOutput = bobOutputValues.vaultId; + + // Token Vault IDs to use + const aliceTokenVaultInput = `${aliceVaultInput.toString()}-${alice.owner.toHex()}-${aliceTokenInput.toHex()}`; + const aliceTokenVaultOutput = `${aliceVaultOutput.toString()}-${alice.owner.toHex()}-${aliceTokenOutput.toHex()}`; + const bobTokenVaultInput = `${bobVaultInput.toString()}-${bob.owner.toHex()}-${bobTokenInput.toHex()}`; + const bobTokenVaultOutput = `${bobVaultOutput.toString()}-${bob.owner.toHex()}-${bobTokenOutput.toHex()}`; + + // Only should link the TokenVault to OrderClear where they are being clear + // using a the given vault and token. + // Only will link to four (4) token vaults this clear. Does not care if the + // orders have more valid inputs/outputs. + const tokenVaultArr = [ + aliceTokenVaultInput, + aliceTokenVaultOutput, + bobTokenVaultInput, + bobTokenVaultOutput, + ]; + + // The token vault should exist on this point since it was created when + // the order was added. + for (let i = 0; i < 4; i++) { + const tokenVault_ID = tokenVaultArr[i]; + let tokenVault = TokenVault.load(tokenVault_ID); + if (tokenVault) { + let orderClears = tokenVault.orderClears; + if (orderClears) orderClears.push(orderClear.id); + tokenVault.orderClears = orderClears; + tokenVault.save(); + } + } + + // Clearer/Bounty address token vaults + let tokenVaultBountyAlice = createTokenVault( + event.params.clearConfig.aliceBountyVaultId.toString(), + event.params.sender, + event.params.alice.validOutputs[ + event.params.clearConfig.aliceOutputIOIndex.toI32() + ].token + ); + + let tokenVaultBountyBob = createTokenVault( + event.params.clearConfig.bobBountyVaultId.toString(), + event.params.sender, + event.params.bob.validOutputs[ + event.params.clearConfig.bobOutputIOIndex.toI32() + ].token + ); + + let config = new ClearOrderConfig("1"); + config.orderClearId = orderClear.id; + config.tokenVaultBountyAlice = tokenVaultBountyAlice.id; + config.tokenVaultBountyBob = tokenVaultBountyBob.id; + config.aliceTokenVaultInput = aliceTokenVaultInput; + config.aliceTokenVaultOutput = aliceTokenVaultOutput; + config.bobTokenVaultInput = bobTokenVaultInput; + config.bobTokenVaultOutput = bobTokenVaultOutput; + config.save(); +} + +export function handleDeposit(event: Deposit): void { + let tokenVault = createTokenVault( + event.params.vaultId.toString(), + event.params.sender, + event.params.token + ); + + if (tokenVault) { + tokenVault.balance = tokenVault.balance.plus(event.params.amount); + tokenVault.balanceDisplay = toDisplay( + tokenVault.balance, + event.params.token.toHexString() + ); + tokenVault.save(); + } + + let vaultDeposit = createVaultDeposit(event.transaction.hash.toHex()); + vaultDeposit.sender = createAccount(event.params.sender).id; + vaultDeposit.token = createToken(event.params.token).id; + vaultDeposit.vaultId = event.params.vaultId; + vaultDeposit.vault = createVault( + event.params.vaultId.toString(), + event.params.sender + ).id; + vaultDeposit.amount = event.params.amount; + vaultDeposit.amountDisplay = toDisplay( + vaultDeposit.amount, + event.params.token.toHexString() + ); + vaultDeposit.tokenVault = tokenVault.id; + vaultDeposit.vault = createVault( + event.params.vaultId.toString(), + event.params.sender + ).id; + vaultDeposit.transaction = createTransaction( + event.transaction.hash.toHex(), + event.block + ).id; + vaultDeposit.emitter = createAccount(event.params.sender).id; + vaultDeposit.timestamp = event.block.timestamp; + vaultDeposit.save(); +} + +// eslint-disable-next-line @typescript-eslint/no-unused-vars +export function handleOrderExceedsMaxRatio(event: OrderExceedsMaxRatio): void { + // +} + +// eslint-disable-next-line @typescript-eslint/no-unused-vars +export function handleOrderNotFound(event: OrderNotFound): void { + // +} + +// eslint-disable-next-line @typescript-eslint/no-unused-vars +export function handleOrderZeroAmount(event: OrderZeroAmount): void { + // +} + +export function handleRemoveOrder(event: RemoveOrder): void { + const orderHashHex = getEvenHex(event.params.orderHash.toHex()); + + let order = Order.load(orderHashHex); + if (order) { + order.orderActive = false; + order.save(); + } +} + +export function handleTakeOrder(event: TakeOrder): void { + let takeOrderEntity = createTakeOrderConfig(event.transaction.hash.toHex()); + takeOrderEntity.sender = createAccount(event.params.sender).id; + takeOrderEntity.order = createOrder( + changetype(event.params.config.order) + ).id; + + takeOrderEntity.input = event.params.input; + takeOrderEntity.inputDisplay = toDisplay( + event.params.input, + event.params.config.order.validOutputs[ + event.params.config.outputIOIndex.toI32() + ].token.toHexString() + ); + + takeOrderEntity.output = event.params.output; + takeOrderEntity.outputDisplay = toDisplay( + event.params.output, + event.params.config.order.validInputs[ + event.params.config.inputIOIndex.toI32() + ].token.toHexString() + ); + if (takeOrderEntity.outputDisplay != BigDecimal.zero()) { + takeOrderEntity.IORatio = takeOrderEntity.inputDisplay.div( + takeOrderEntity.outputDisplay + ); + } else { + takeOrderEntity.IORatio = BigDecimal.zero(); + } + + takeOrderEntity.inputIOIndex = event.params.config.inputIOIndex; + takeOrderEntity.outputIOIndex = event.params.config.outputIOIndex; + + takeOrderEntity.inputToken = createToken( + event.params.config.order.validOutputs[ + event.params.config.outputIOIndex.toI32() + ].token + ).id; + + takeOrderEntity.outputToken = createToken( + event.params.config.order.validInputs[ + event.params.config.inputIOIndex.toI32() + ].token + ).id; + + takeOrderEntity.transaction = createTransaction( + event.transaction.hash.toHex(), + event.block + ).id; + takeOrderEntity.emitter = createAccount(event.params.sender).id; + takeOrderEntity.timestamp = event.block.timestamp; + + // Adding the context + const contextTakeOrder = ContextEntity.load("ContextTakeOrderTemp"); + if (contextTakeOrder) { + const contextEntity = createContextEntity(event.transaction.hash.toHex()); + + contextEntity.caller = contextTakeOrder.caller; + contextEntity.callingContext = contextTakeOrder.callingContext; + contextEntity.calculationsContext = contextTakeOrder.calculationsContext; + contextEntity.vaultInputsContext = contextTakeOrder.vaultInputsContext; + contextEntity.vaultOutputsContext = contextTakeOrder.vaultOutputsContext; + contextEntity.signedContext = contextTakeOrder.signedContext; + + contextEntity.emitter = contextTakeOrder.emitter; + contextEntity.timestamp = contextTakeOrder.timestamp; + contextEntity.transaction = contextTakeOrder.transaction; + + takeOrderEntity.context = contextEntity.id; + + contextEntity.save(); + + // store.remove("ContextEntity", "ContextTakeOrderTemp"); + } + + takeOrderEntity.save(); + + // Updating Balance + + let order = event.params.config.order; + + // IO Index values used to takeOrder + const inputIOIndex = event.params.config.inputIOIndex.toI32(); + const outputIOIndex = event.params.config.outputIOIndex.toI32(); + + // Valid inputs/outpus based on the Index used + const inputValues = order.validInputs[inputIOIndex]; + const outputValues = order.validOutputs[outputIOIndex]; + + // Token input/output based on the Index used + const tokenInput = inputValues.token; + const tokenOutput = outputValues.token; + + // Vault IDs input/output based on the Index used + const vaultInput = inputValues.vaultId; + const vaultOutput = outputValues.vaultId; + + const tokenVaultInput = `${vaultInput.toString()}-${order.owner.toHex()}-${tokenInput.toHex()}`; + const tokenVaultOutput = `${vaultOutput.toString()}-${order.owner.toHex()}-${tokenOutput.toHex()}`; + + // Updating order input/output balance + const orderTokenVaultInput = TokenVault.load(tokenVaultInput); + if (orderTokenVaultInput) { + orderTokenVaultInput.balance = orderTokenVaultInput.balance.plus( + event.params.output + ); + orderTokenVaultInput.balanceDisplay = toDisplay( + orderTokenVaultInput.balance, + orderTokenVaultInput.token + ); + orderTokenVaultInput.save(); + + let takeOrderTokenVault = TokenVaultTakeOrder.load( + `${takeOrderEntity.id}-${orderTokenVaultInput.id}` + ); + if (!takeOrderTokenVault) { + takeOrderTokenVault = new TokenVaultTakeOrder( + `${takeOrderEntity.id}-${orderTokenVaultInput.id}` + ); + takeOrderTokenVault.wasInput = true; + takeOrderTokenVault.wasOutput = false; + takeOrderTokenVault.takeOrder = takeOrderEntity.id; + takeOrderTokenVault.tokenVault = orderTokenVaultInput.id; + takeOrderTokenVault.save(); + } + } + + // Updating order input/output balance + const orderTokenVaultOutput = TokenVault.load(tokenVaultOutput); + if (orderTokenVaultOutput) { + orderTokenVaultOutput.balance = orderTokenVaultOutput.balance.minus( + event.params.input + ); + orderTokenVaultOutput.balanceDisplay = toDisplay( + orderTokenVaultOutput.balance, + orderTokenVaultOutput.token + ); + orderTokenVaultOutput.save(); + + let takeOrderTokenVault = TokenVaultTakeOrder.load( + `${takeOrderEntity.id}-${orderTokenVaultOutput.id}` + ); + if (!takeOrderTokenVault) { + takeOrderTokenVault = new TokenVaultTakeOrder( + `${takeOrderEntity.id}-${orderTokenVaultOutput.id}` + ); + takeOrderTokenVault.wasInput = false; + takeOrderTokenVault.wasOutput = true; + takeOrderTokenVault.takeOrder = takeOrderEntity.id; + takeOrderTokenVault.tokenVault = orderTokenVaultOutput.id; + takeOrderTokenVault.save(); + } + } +} + +export function handleWithdraw(event: Withdraw): void { + let tokenVault = createTokenVault( + event.params.vaultId.toString(), + event.params.sender, + event.params.token + ); + + if (tokenVault) { + tokenVault.balance = tokenVault.balance.minus(event.params.amount); + tokenVault.balanceDisplay = toDisplay( + tokenVault.balance, + event.params.token.toHexString() + ); + tokenVault.save(); + } + + let vaultWithdraw = createVaultWithdraw(event.transaction.hash.toHex()); + vaultWithdraw.sender = createAccount(event.params.sender).id; + vaultWithdraw.token = createToken(event.params.token).id; + vaultWithdraw.vaultId = event.params.vaultId; + vaultWithdraw.vault = createVault( + event.params.vaultId.toString(), + event.params.sender + ).id; + vaultWithdraw.requestedAmount = event.params.targetAmount; + vaultWithdraw.requestedAmountDisplay = toDisplay( + event.params.targetAmount, + event.params.token.toHexString() + ); + vaultWithdraw.amount = event.params.amount; + vaultWithdraw.amountDisplay = toDisplay( + vaultWithdraw.amount, + event.params.token.toHexString() + ); + vaultWithdraw.tokenVault = tokenVault.id; + vaultWithdraw.vault = createVault( + event.params.vaultId.toString(), + event.params.sender + ).id; + vaultWithdraw.transaction = createTransaction( + event.transaction.hash.toHex(), + event.block + ).id; + vaultWithdraw.emitter = createAccount(event.params.sender).id; + vaultWithdraw.timestamp = event.block.timestamp; + vaultWithdraw.save(); +} + +export function handleMetaV1(event: MetaV1): void { + const metaV1 = getRainMetaV1(event.params.meta); + + const subjectHex = getEvenHex(event.params.subject.toHex()); + + // If the subject is equal to the emiter address, then the meta is for the OB. + // In this scenario, it is considered that is from DeployerDiscoverableMeta. + if (subjectHex == event.address.toHex()) { + let orderBook = OrderBook.load(event.address); + if (!orderBook) { + orderBook = new OrderBook(event.address); + orderBook.deployer = event.transaction.from; + orderBook.address = event.address; + orderBook.meta = metaV1.id; + + orderBook.save(); + } + } else { + // If not, the subject is an OrderHash then it's an Order meta + const orderHash = getEvenHex(event.params.subject.toHex()); + const order = Order.load(orderHash); + if (order) { + order.meta = metaV1.id; + order.save(); + } + } + + // Converts the emitted target from Bytes to a Hexadecimal value + let meta = event.params.meta.toHex(); + + // Decode the meta only if incluse the RainMeta magic number. + if (meta.includes(RAIN_META_DOCUMENT_HEX)) { + meta = meta.replace(RAIN_META_DOCUMENT_HEX, ""); + const data = new CBORDecoder(stringToArrayBuffer(meta)); + const res = data.parse(); + + // MetaV1.content + const auxContent = metaV1.content; + + const contentArr: ContentMeta[] = []; + + if (res.isSequence) { + const dataString = res.toString(); + const jsonArr = json.fromString(dataString).toArray(); + for (let i = 0; i < jsonArr.length; i++) { + const jsonValue = jsonArr[i]; + + // if some value is not a JSON/Map, then is not following the RainMeta design. + // So, return here to avoid assignation. + if (jsonValue.kind != JSONValueKind.OBJECT) return; + + const jsonContent = jsonValue.toObject(); + + // If some content is not valid, then skip it since is bad formed + if (!ContentMeta.validate(jsonContent)) return; + + const content = new ContentMeta(jsonContent, metaV1.id); + contentArr.push(content); + } + } else if (res.isObj) { + const dataString = res.toString(); + const jsonObj = json.fromString(dataString).toObject(); + + if (!ContentMeta.validate(jsonObj)) return; + const content = new ContentMeta(jsonObj, metaV1.id); + contentArr.push(content); + // + } else { + // If the response is NOT a Sequence or an Object, then the meta have an + // error or it's bad formed. + // In this case, we skip to continue the decoding and assignation process. + return; + } + + for (let i = 0; i < contentArr.length; i++) { + const metaContent_ = contentArr[i].generate(event.address.toHex()); + + // This include each meta content on the RainMeta related + if (!auxContent.includes(metaContent_.id)) { + auxContent.push(metaContent_.id); + } + } + + // Saving + for (let i = 0; i < contentArr.length; i++) { + contentArr[i].saveMeta(); + } + + metaV1.content = auxContent; + metaV1.save(); + } else { + // The meta emitted does not include the RainMeta magic number, so does not + // follow the RainMeta Desing + return; + } +} +export class ContentMeta { + rainMetaId: Bytes; + encodedData: Bytes = Bytes.empty(); + payload: Bytes = Bytes.empty(); + // eslint-disable-next-line @typescript-eslint/ban-types + magicNumber: BigInt = BigInt.zero(); + contentType: string = ""; + contentEncoding: string = ""; + contentLanguage: string = ""; + + private contentTypeAdded: boolean = false; + private contentEncodingAdded: boolean = false; + private contentLanguageAdded: boolean = false; + + private metaContent: ContentMetaV1 = new ContentMetaV1(Bytes.empty()); + private metaStored: boolean = false; + + constructor( + metaContentV1Object_: TypedMap, + rainMetaID_: Bytes + ) { + const payload = metaContentV1Object_.get("0"); + const magicNumber = metaContentV1Object_.get("1"); + const contentType = metaContentV1Object_.get("2"); + const contentEncoding = metaContentV1Object_.get("3"); + const contentLanguage = metaContentV1Object_.get("4"); + + // RainMetaV1 ID + this.rainMetaId = rainMetaID_; + + // Mandatories keys + if (payload) { + let auxPayload = payload.toString(); + if (auxPayload.startsWith("h'")) { + auxPayload = auxPayload.replace("h'", ""); + } + if (auxPayload.endsWith("'")) { + auxPayload = auxPayload.replace("'", ""); + } + + this.payload = Bytes.fromHexString(auxPayload); + } + + // if (payload) this.payload = payload.toString(); + if (magicNumber) this.magicNumber = magicNumber.toBigInt(); + + // Keys optionals + if (contentType) { + this.contentTypeAdded = true; + this.contentType = contentType.toString(); + } + + if (contentEncoding) { + this.contentEncodingAdded = true; + this.contentEncoding = contentEncoding.toString(); + } + + if (contentLanguage) { + this.contentLanguageAdded = true; + this.contentLanguage = contentLanguage.toString(); + } + } + + /** + * Validate that the keys exist on the map + */ + static validate(metaContentV1Object: TypedMap): boolean { + const payload = metaContentV1Object.get("0"); + const magicNumber = metaContentV1Object.get("1"); + const contentType = metaContentV1Object.get("2"); + const contentEncoding = metaContentV1Object.get("3"); + const contentLanguage = metaContentV1Object.get("4"); + + // Only payload and magicNumber are mandatory on RainMetaV1 + // See: https://github.com/rainprotocol/specs/blob/main/metadata-v1.md + if (payload && magicNumber) { + if ( + payload.kind == JSONValueKind.STRING || + magicNumber.kind == JSONValueKind.NUMBER + ) { + // Check if payload is a valid Bytes (hexa) + let auxPayload = payload.toString(); + if (auxPayload.startsWith("h'")) { + auxPayload = auxPayload.replace("h'", ""); + } + if (auxPayload.endsWith("'")) { + auxPayload = auxPayload.replace("'", ""); + } + + // If the payload is not a valid bytes value + if (!isHexadecimalString(auxPayload)) { + return false; + } + + // Check the type of optionals keys + if (contentType) { + if (contentType.kind != JSONValueKind.STRING) { + return false; + } + } + if (contentEncoding) { + if (contentEncoding.kind != JSONValueKind.STRING) { + return false; + } + } + if (contentLanguage) { + if (contentLanguage.kind != JSONValueKind.STRING) { + return false; + } + } + + return true; + } + } + + return false; + } + + private getContentId(): Bytes { + // Values as Bytes + const encoder = new CBOREncoder(); + // Initially, the map always have two keys/values (payload and magic number) + let mapLength = 2; + + if (this.contentTypeAdded) mapLength += 1; + if (this.contentEncodingAdded) mapLength += 1; + if (this.contentLanguageAdded) mapLength += 1; + + encoder.addObject(mapLength); + + // -- Add key 0 (payload) + encoder.addUint8(0); + encoder.addBytes(this.payload); + + // -- Add key 1 (magic number) + encoder.addUint8(1); + encoder.addUint64(this.magicNumber.toU64()); + + if (this.contentTypeAdded) { + // -- Add key 2 (Content-Type) + encoder.addUint8(2); + encoder.addString(this.contentType); + } + + if (this.contentEncodingAdded) { + // -- Add key 3 (Content-Encoding) + encoder.addUint8(3); + encoder.addString(this.contentEncoding); + } + + if (this.contentLanguageAdded) { + // -- Add key 4 (Content-Language) + encoder.addUint8(4); + encoder.addString(this.contentLanguage); + } + + this.encodedData = Bytes.fromHexString(encoder.serializeString()); + + return getKeccak256FromBytes(this.encodedData); + } + + /** + * Create or generate a ContentMetaV1 entity based on the current fields: + * + * - If the ContentMetaV1 does not exist, create the ContentMetaV1 entity and + * made the relation to the rainMetaId. + * + * - If the ContentMetaV1 does exist, add the relation to the rainMetaId. + */ + generate(addressID: string): ContentMetaV1 { + const contentId = this.getContentId(); + + let metaContent = ContentMetaV1.load(contentId); + + if (!metaContent) { + metaContent = new ContentMetaV1(contentId); + + metaContent.rawBytes = this.encodedData; + metaContent.magicNumber = this.magicNumber; + metaContent.payload = this.payload; + metaContent.parents = []; + + if (this.contentType != "") metaContent.contentType = this.contentType; + + if (this.contentEncoding != "") + metaContent.contentEncoding = this.contentEncoding; + + if (this.contentLanguage != "") + metaContent.contentLanguage = this.contentLanguage; + } + + const auxParents = metaContent.parents; + if (!auxParents.includes(this.rainMetaId)) auxParents.push(this.rainMetaId); + metaContent.parents = auxParents; + + this.metaContent = metaContent; + this.metaStored = true; + // metaContent.save(); + + return this.metaContent; + } + + saveMeta(): void { + if (this.metaStored && this.metaContent.id.notEqual(Bytes.empty())) { + this.metaContent.save(); + } + } +} diff --git a/subgraph/src/orderJsonString.ts b/subgraph/src/orderJsonString.ts new file mode 100644 index 0000000000..6a213632f6 --- /dev/null +++ b/subgraph/src/orderJsonString.ts @@ -0,0 +1,138 @@ +import { Address, BigInt, Bytes, log } from "@graphprotocol/graph-ts"; +import { AddOrderOrderStruct } from "../generated/OrderBook/OrderBook"; +import { getEvenHex } from "./utils"; + +class JsonString { + _obj: Map; + + constructor(map_: Map) { + this._obj = map_; + } + + stringify(): string { + const keys = this._obj.keys(); + const objs: string[] = new Array(keys.length); + + for (let i: i32 = 0; i < keys.length; i++) { + const key = keys[i]; + const value = this._obj.get(key); + // "Array" + if (value.startsWith("[") && value.endsWith("]")) { + // + objs[i] = `"${key}":${value}`; + } else { + objs[i] = `"${key}":"${value}"`; + } + } + + return `{${objs.join(",")}}`; + } +} + +/** + * Generate a JSON string for a given order to be ready to use with tools + */ + +export class OrderString extends JsonString { + constructor(order_: AddOrderOrderStruct) { + const _map: Map = new Map(); + + const evaluable_ = new Evaluable_String( + order_.evaluable.interpreter, + order_.evaluable.store, + order_.evaluable.expression + ); + + const validInputsArr: string[] = []; + const validOutputsArr: string[] = []; + + const validInputs_ = order_.validInputs; + const validOutputs_ = order_.validOutputs; + + for (let i = 0; i < validInputs_.length; i++) { + const input_ = validInputs_[i]; + const io_ = new IO_String(input_.token, input_.decimals, input_.vaultId); + + validInputsArr.push(io_.stringify()); + } + + for (let i = 0; i < validOutputs_.length; i++) { + const output_ = validOutputs_[i]; + const io_ = new IO_String( + output_.token, + output_.decimals, + output_.vaultId + ); + + validOutputsArr.push(io_.stringify()); + } + + _map.set("owner", getEvenHex(order_.owner.toHex())); + _map.set("handleIo", (order_.handleIO as bool).toString()); + _map.set("evaluable", evaluable_.stringify()); + _map.set("validInputs", `[${validInputsArr.join(",")}]`); + _map.set("validOutputs", `[${validOutputsArr.join(",")}]`); + + super(_map); + } + + stringify(): string { + const keys = this._obj.keys(); + const objs: string[] = new Array(keys.length); + + for (let i: i32 = 0; i < keys.length; i++) { + const key = keys[i]; + const value = this._obj.get(key); + if (key == "owner") { + objs[i] = `"${key}":"${value}"`; + } else { + objs[i] = `"${key}":${value}`; + } + } + + return `{${objs.join(",")}}`; + } +} + +class IO_String extends JsonString { + constructor(token_: Address, decimals_: number, vaultId_: BigInt) { + const _map: Map = new Map(); + + _map.set("token", getEvenHex(token_.toHex())); + _map.set("decimals", decimals_.toString().split(".")[0]); + _map.set("vaultId", vaultId_.toHex()); + + super(_map); + } +} + +class Evaluable_String extends JsonString { + constructor(interpreter_: Address, store_: Address, expression_: Address) { + const _map: Map = new Map(); + + _map.set("interpreter", getEvenHex(interpreter_.toHex())); + _map.set("store", getEvenHex(store_.toHex())); + _map.set("expression", getEvenHex(expression_.toHex())); + + super(_map); + } +} + +export class ExpressionJSONString extends JsonString { + constructor(bytecode_: Bytes, constants_: BigInt[], minOutputs_: BigInt[]) { + const _map: Map = new Map(); + + const minOutputs_string = minOutputs_.map( + (x): string => `"${x.toHexString()}"` + ); + const constants_string = constants_.map( + (x): string => `"${x.toHexString()}"` + ); + + _map.set("bytecode", bytecode_.toHexString()); + _map.set("constants", `[${constants_string.join(",")}]`); + _map.set("minOutputs", `[${minOutputs_string.join(",")}]`); + + super(_map); + } +} diff --git a/subgraph/src/utils.ts b/subgraph/src/utils.ts new file mode 100644 index 0000000000..3d0099fe5b --- /dev/null +++ b/subgraph/src/utils.ts @@ -0,0 +1,384 @@ +import { + Bytes, + BigInt, + Address, + ethereum, + crypto, + BigDecimal, +} from "@graphprotocol/graph-ts"; +import { + Account, + ContextEntity, + ERC20, + Order, + OrderBook, + OrderClear, + RainMetaV1, + SignedContext, + TakeOrderEntity, + TokenVault, + Transaction, + Vault, + VaultDeposit, + VaultWithdraw, +} from "../generated/schema"; +import { ReserveToken } from "../generated/OrderBook/ReserveToken"; +import { ClearAliceStruct } from "../generated/OrderBook/OrderBook"; + +export const RAIN_META_DOCUMENT_HEX = "0xff0a89c674ee7874"; + +// Orderbook: TakeOrder(address sender, TakeOrderConfig config, uint256 input, uint256 output) +export let TAKE_ORDER_EVENT_TOPIC = + "0x219a030b7ae56e7bea2baab709a4a45dc174a1f85e57730e5cb395bc32962542"; + +// Orderbook: Clear(address sender, Order alice, Order bob, ClearConfig clearConfig) +export let CLEAR_EVENT_TOPIC = + "0xd153812deb929a6e4378f6f8cf61d010470840bf2e736f43fb2275803958bfa2"; + +// Orderbook: AfterClear(address sender, ClearStateChange clearStateChange); +export let AFTER_CLEAR_EVENT_TOPIC = + "0x3f20e55919cca701abb2a40ab72542b25ea7eed63a50f979dd2cd3231e5f488d"; + +// ExpressionDeployer: NewExpression(address,bytes,uint256[],uint256[]) +export let NEW_EXPRESSION_EVENT_TOPIC = + "0x4a48f556905d90b4a58742999556994182322843167010b59bf8149724db51cf"; + +export const tuplePrefix = Bytes.fromHexString( + "0000000000000000000000000000000000000000000000000000000000000020" +); + +/** + * From a given hexadecimal string, check if it's have an even length + */ +export function getEvenHex(value_: string): string { + if (value_.length % 2) { + value_ = value_.slice(0, 2) + "0" + value_.slice(2); + } + + return value_; +} + +export function stringToArrayBuffer(val: string): ArrayBuffer { + const buff = new ArrayBuffer(val.length / 2); + const view = new DataView(buff); + for (let i = 0, j = 0; i < val.length; i = i + 2, j++) { + view.setUint8(j, u8(Number.parseInt(`${val.at(i)}${val.at(i + 1)}`, 16))); + } + return buff; +} + +export function createAccount(address: Bytes): Account { + let account = Account.load(address); + if (!account) { + account = new Account(address); + account.save(); + } + return account; +} + +export function createToken(address: Bytes): ERC20 { + let token = ERC20.load(address.toHex()); + let reserveToken = ReserveToken.bind(Address.fromBytes(address)); + if (!token) { + token = new ERC20(address.toHex()); + + let decimals = reserveToken.try_decimals(); + let name = reserveToken.try_name(); + let symbol = reserveToken.try_symbol(); + let totalSupply = reserveToken.try_totalSupply(); + + token.decimals = !decimals.reverted ? decimals.value : 0; + token.name = !name.reverted ? name.value : "NONE"; + token.symbol = !symbol.reverted ? symbol.value : "NONE"; + token.totalSupply = !totalSupply.reverted + ? totalSupply.value + : BigInt.zero(); + + if (!totalSupply.reverted && !decimals.reverted) { + token.totalSupplyDisplay = toDisplayWithDecimals( + totalSupply.value, + decimals.value + ); + } else { + token.totalSupplyDisplay = BigDecimal.zero(); + } + + token.save(); + } + // else { + // let totalSupply = reserveToken.try_totalSupply(); + // if (!totalSupply.reverted) { + // let value = totalSupply.value; + // token.totalSupply = value; + // token.totalSupplyDisplay = toDisplayWithDecimals(value, token.decimals); + // } + // } + + return token; +} + +export function createVault(vaultId: string, owner: Bytes): Vault { + let vault = Vault.load(`${vaultId}-${owner.toHex()}`); + if (!vault) { + vault = new Vault(`${vaultId}-${owner.toHex()}`); + vault.owner = createAccount(owner).id; + vault.vaultId = BigInt.fromString(vaultId); + vault.save(); + } + return vault; +} + +export function createTokenVault( + vaultId: string, + owner: Bytes, + token: Bytes +): TokenVault { + let tokenVault = TokenVault.load( + `${vaultId}-${owner.toHex()}-${token.toHex()}` + ); + if (!tokenVault) { + tokenVault = new TokenVault(`${vaultId}-${owner.toHex()}-${token.toHex()}`); + tokenVault.owner = createAccount(owner).id; + tokenVault.token = createToken(token).id; + tokenVault.balance = BigInt.zero(); + tokenVault.balanceDisplay = BigDecimal.zero(); + tokenVault.vault = createVault(vaultId, owner).id; + tokenVault.vaultId = BigInt.fromString(vaultId); + tokenVault.orders = []; + tokenVault.orderClears = []; + tokenVault.save(); + } + return tokenVault; +} + +export function createOrder(order: ClearAliceStruct): Order { + let tupleEvaluable: Array = [ + ethereum.Value.fromAddress(order.evaluable.interpreter), + ethereum.Value.fromAddress(order.evaluable.store), + ethereum.Value.fromAddress(order.evaluable.expression), + ]; + + let evaluable = changetype(tupleEvaluable); + + let tupleValidInputs: Array = []; + for (let i = 0; i < order.validInputs.length; i++) { + let VI: Array = [ + ethereum.Value.fromAddress(order.validInputs[i].token), + ethereum.Value.fromI32(order.validInputs[i].decimals), + ethereum.Value.fromUnsignedBigInt(order.validInputs[i].vaultId), + ]; + + tupleValidInputs.push(changetype(VI)); + } + + let tupleValidOutputs: Array = []; + for (let i = 0; i < order.validOutputs.length; i++) { + let VO: Array = [ + ethereum.Value.fromAddress(order.validOutputs[i].token), + ethereum.Value.fromI32(order.validOutputs[i].decimals), + ethereum.Value.fromUnsignedBigInt(order.validOutputs[i].vaultId), + ]; + + tupleValidOutputs.push(changetype(VO)); + } + + let tupleArray: Array = [ + ethereum.Value.fromAddress(order.owner), + ethereum.Value.fromBoolean(order.handleIO), + ethereum.Value.fromTuple(evaluable), + ethereum.Value.fromTupleArray(tupleValidInputs), + ethereum.Value.fromTupleArray(tupleValidOutputs), + ]; + + let tuple = changetype(tupleArray); + let encodedOrder = ethereum.encode(ethereum.Value.fromTuple(tuple))!; + let keccak256 = crypto.keccak256(encodedOrder); + let orderHashHex = getEvenHex(keccak256.toHex()); + + let order_ = Order.load(orderHashHex); + if (order_) return order_; + else return new Order(orderHashHex); +} + +function hexToBI(hexString: string): BigInt { + return BigInt.fromUnsignedBytes( + changetype(Bytes.fromHexString(hexString).reverse()) + ); +} + +export function createTakeOrderConfig(txHash: string): TakeOrderEntity { + for (let i = 0; ; i++) { + let orderClear = TakeOrderEntity.load(`${txHash}-${i}`); + if (!orderClear) { + return new TakeOrderEntity(`${txHash}-${i}`); + } + } + return new TakeOrderEntity(""); +} + +export function createOrderClear(txHash: string): OrderClear { + for (let i = 0; ; i++) { + let orderClear = OrderClear.load(`${txHash}-${i}`); + if (!orderClear) { + return new OrderClear(`${txHash}-${i}`); + } + } + return new OrderClear(""); +} + +export function createVaultDeposit(txHash: string): VaultDeposit { + for (let i = 0; ; i++) { + let orderClear = VaultDeposit.load(`${txHash}-${i}`); + if (!orderClear) { + return new VaultDeposit(`${txHash}-${i}`); + } + } + return new VaultDeposit(""); +} + +export function createVaultWithdraw(txHash: string): VaultWithdraw { + for (let i = 0; ; i++) { + let orderClear = VaultWithdraw.load(`${txHash}-${i}`); + if (!orderClear) { + return new VaultWithdraw(`${txHash}-${i}`); + } + } + return new VaultWithdraw(""); +} + +export function getOB(obAddress_: Address): OrderBook { + let orderBook = OrderBook.load(obAddress_); + if (!orderBook) { + orderBook = new OrderBook(obAddress_); + orderBook.address = obAddress_; + orderBook.save(); + } + return orderBook; +} + +export function getRainMetaV1(meta_: Bytes): RainMetaV1 { + const metaV1_ID = getKeccak256FromBytes(meta_); + + let metaV1 = RainMetaV1.load(metaV1_ID); + + if (!metaV1) { + metaV1 = new RainMetaV1(metaV1_ID); + metaV1.metaBytes = meta_; + metaV1.content = []; + metaV1.save(); + } + + return metaV1; +} + +export function getKeccak256FromBytes(data_: Bytes): Bytes { + return Bytes.fromByteArray(crypto.keccak256(Bytes.fromByteArray(data_))); +} + +export function isHexadecimalString(str: string): boolean { + // Check if string is empty + if (str.length == 0) { + return false; + } + + // Check if each character is a valid hexadecimal character + for (let i = 0; i < str.length; i++) { + let charCode = str.charCodeAt(i); + if ( + !( + (charCode >= 48 && charCode <= 57) || // 0-9 + (charCode >= 65 && charCode <= 70) || // A-F + (charCode >= 97 && charCode <= 102) + ) + ) { + // a-f + return false; + } + } + + return true; +} + +export function createTransaction( + hash: string, + block: ethereum.Block +): Transaction { + let transaction = Transaction.load(hash); + if (!transaction) { + transaction = new Transaction(hash); + transaction.blockNumber = block.number; + transaction.timestamp = block.timestamp; + transaction.save(); + } + return transaction; +} + +export function toDisplay(amount: BigInt, token: string): BigDecimal { + let erc20 = createToken(Address.fromString(token)); + if (erc20) { + let denominator = BigInt.fromString(getZeros(erc20.decimals)); + return amount.toBigDecimal().div(denominator.toBigDecimal()); + } + return amount.toBigDecimal().div(BigDecimal.fromString(getZeros(0))); +} + +export function toDisplayWithDecimals( + amount: BigInt, + decimals: i32 +): BigDecimal { + let denominator = BigInt.fromString(getZeros(decimals)); + return amount.toBigDecimal().div(denominator.toBigDecimal()); +} + +function getZeros(num: number): string { + let s = "1"; + for (let i = 0; i < num; i++) { + s = s + "0"; + } + return s; +} + +export function gcd(a: BigInt, b: BigInt): BigInt { + if (b.equals(BigInt.zero())) { + return a; + } else { + return gcd(b, a.mod(b)); + } +} + +export function BDtoBIMultiplier(n1: BigDecimal, n2: BigDecimal): BigInt { + let n1_split = n1.toString().split("."); + let n1_decimals = n1_split.length == 1 ? 0 : n1_split[1].length; + + let n2_split = n2.toString().split("."); + let n2_decimals = n2_split.length == 1 ? 0 : n2_split[1].length; + + let number: BigDecimal; + if (n1_decimals > n2_decimals) { + number = n1; + } else { + number = n2; + } + let location = number.toString().indexOf("."); + let len = number.toString().slice(location + 1).length; + return BigInt.fromString(getZeros(len)); +} + +export function createSignedContext(txHash: string): SignedContext { + for (let i = 0; ; i++) { + let signedContext = SignedContext.load(`${txHash}-${i}`); + if (!signedContext) { + return new SignedContext(`${txHash}-${i}`); + } + } + return new SignedContext(""); +} +export function createContextEntity(txHash: string): ContextEntity { + for (let i = 0; ; i++) { + let contextEntity = ContextEntity.load(`${txHash}-${i}`); + if (!contextEntity) { + return new ContextEntity(`${txHash}-${i}`); + } + } + return new ContextEntity(""); +} diff --git a/subgraph/subgraph.template.yaml b/subgraph/subgraph.template.yaml new file mode 100755 index 0000000000..62342fde9b --- /dev/null +++ b/subgraph/subgraph.template.yaml @@ -0,0 +1,68 @@ +specVersion: 0.0.4 +schema: + file: ./schema.graphql +dataSources: + - kind: ethereum/contract + name: OrderBook + network: {{ network }} + source: + address: "{{ orderbook }}" + abi: OrderBook + startBlock: {{ blockNumber }} + mapping: + kind: ethereum/events + apiVersion: 0.0.7 + language: wasm/assemblyscript + entities: + - OrderBook + abis: + - name: OrderBook + file: ./abis/OrderBook.json + - name: ReserveToken + file: ./abis/ERC20.json + eventHandlers: + - event: AddOrder(address,address,(address,bool,(address,address,address),(address,uint8,uint256)[],(address,uint8,uint256)[]),bytes32) + handler: handleAddOrder + - event: AfterClear(address,(uint256,uint256,uint256,uint256)) + handler: handleAfterClear + - event: Clear(address,(address,bool,(address,address,address),(address,uint8,uint256)[],(address,uint8,uint256)[]),(address,bool,(address,address,address),(address,uint8,uint256)[],(address,uint8,uint256)[]),(uint256,uint256,uint256,uint256,uint256,uint256)) + handler: handleClear + - event: Context(address,uint256[][]) + handler: handleContext + receipt: true + - event: Deposit(address,address,uint256,uint256) + handler: handleDeposit + - event: MetaV1(address,uint256,bytes) + handler: handleMetaV1 + - event: OrderExceedsMaxRatio(address,address,bytes32) + handler: handleOrderExceedsMaxRatio + - event: OrderNotFound(address,address,bytes32) + handler: handleOrderNotFound + - event: OrderZeroAmount(address,address,bytes32) + handler: handleOrderZeroAmount + - event: RemoveOrder(address,(address,bool,(address,address,address),(address,uint8,uint256)[],(address,uint8,uint256)[]),bytes32) + handler: handleRemoveOrder + - event: TakeOrder(address,((address,bool,(address,address,address),(address,uint8,uint256)[],(address,uint8,uint256)[]),uint256,uint256,(address,uint256[],bytes)[]),uint256,uint256) + handler: handleTakeOrder + - event: Withdraw(address,address,uint256,uint256,uint256) + handler: handleWithdraw + file: ./src/orderBook.ts +templates: + - kind: ethereum/contract + name: ERC20Template + network: {{ network }} + source: + abi: ReserveToken + mapping: + kind: ethereum/events + apiVersion: 0.0.7 + language: wasm/assemblyscript + entities: + - EmissionsERC20 + abis: + - name: ReserveToken + file: ./abis/ERC20.json + eventHandlers: + - event: Transfer(indexed address,indexed address,uint256) + handler: handleTransfer + file: ./src/erc20.ts \ No newline at end of file diff --git a/subgraph/test-mnemonic b/subgraph/test-mnemonic new file mode 100644 index 0000000000..66eeda6e36 --- /dev/null +++ b/subgraph/test-mnemonic @@ -0,0 +1 @@ +test test test test test test test test test test test junk \ No newline at end of file diff --git a/subgraph/test.rs b/subgraph/test.rs new file mode 100644 index 0000000000..4c7402b864 --- /dev/null +++ b/subgraph/test.rs @@ -0,0 +1,972 @@ +//! `Eth` namespace + +use crate::{ + api::Namespace, + helpers::{self, CallFuture}, + types::{ + Address, Block, BlockHeader, BlockId, BlockNumber, Bytes, CallRequest, FeeHistory, Filter, + Index, Log, Proof, SyncState, Transaction, TransactionId, TransactionReceipt, + TransactionRequest, Work, H256, H520, H64, U256, U64, + }, + Transport, +}; + +/// `Eth` namespace +#[derive(Debug, Clone)] +pub struct Eth { + transport: T, +} + +impl Namespace for Eth { + fn new(transport: T) -> Self + where + Self: Sized, + { + Eth { transport } + } + + fn transport(&self) -> &T { + &self.transport + } +} + +impl Eth { + /// Get list of available accounts. + pub fn accounts(&self) -> CallFuture, T::Out> { + CallFuture::new(self.transport.execute("eth_accounts", vec![])) + } + + /// Get current block number + pub fn block_number(&self) -> CallFuture { + CallFuture::new(self.transport.execute("eth_blockNumber", vec![])) + } + + /// Call a constant method of contract without changing the state of the blockchain. + pub fn call(&self, req: CallRequest, block: Option) -> CallFuture { + let req = helpers::serialize(&req); + let block = helpers::serialize(&block.unwrap_or_else(|| BlockNumber::Latest.into())); + + CallFuture::new(self.transport.execute("eth_call", vec![req, block])) + } + + /// Get coinbase address + pub fn coinbase(&self) -> CallFuture { + CallFuture::new(self.transport.execute("eth_coinbase", vec![])) + } + + /// Compile LLL + pub fn compile_lll(&self, code: String) -> CallFuture { + let code = helpers::serialize(&code); + CallFuture::new(self.transport.execute("eth_compileLLL", vec![code])) + } + + /// Compile Solidity + pub fn compile_solidity(&self, code: String) -> CallFuture { + let code = helpers::serialize(&code); + CallFuture::new(self.transport.execute("eth_compileSolidity", vec![code])) + } + + /// Compile Serpent + pub fn compile_serpent(&self, code: String) -> CallFuture { + let code = helpers::serialize(&code); + CallFuture::new(self.transport.execute("eth_compileSerpent", vec![code])) + } + + /// Call a contract without changing the state of the blockchain to estimate gas usage. + pub fn estimate_gas( + &self, + req: CallRequest, + block: Option, + ) -> CallFuture { + let req = helpers::serialize(&req); + + let args = match block { + Some(block) => vec![req, helpers::serialize(&block)], + None => vec![req], + }; + + CallFuture::new(self.transport.execute("eth_estimateGas", args)) + } + + /// Get current recommended gas price + pub fn gas_price(&self) -> CallFuture { + CallFuture::new(self.transport.execute("eth_gasPrice", vec![])) + } + + /// Returns a collection of historical gas information. This can be used for evaluating the max_fee_per_gas + /// and max_priority_fee_per_gas to send the future transactions. + pub fn fee_history( + &self, + block_count: U256, + newest_block: BlockNumber, + reward_percentiles: Option>, + ) -> CallFuture { + let block_count = helpers::serialize(&block_count); + let newest_block = helpers::serialize(&newest_block); + let reward_percentiles = helpers::serialize(&reward_percentiles); + + CallFuture::new(self.transport.execute( + "eth_feeHistory", + vec![block_count, newest_block, reward_percentiles], + )) + } + + /// Get balance of given address + pub fn balance( + &self, + address: Address, + block: Option, + ) -> CallFuture { + let address = helpers::serialize(&address); + let block = helpers::serialize(&block.unwrap_or(BlockNumber::Latest)); + + CallFuture::new( + self.transport + .execute("eth_getBalance", vec![address, block]), + ) + } + + /// Get all logs matching a given filter object + pub fn logs(&self, filter: Filter) -> CallFuture, T::Out> { + let filter = helpers::serialize(&filter); + CallFuture::new(self.transport.execute("eth_getLogs", vec![filter])) + } + + /// Get block details with transaction hashes. + pub fn block(&self, block: BlockId) -> CallFuture>, T::Out> { + let include_txs = helpers::serialize(&false); + + let result = match block { + BlockId::Hash(hash) => { + let hash = helpers::serialize(&hash); + self.transport + .execute("eth_getBlockByHash", vec![hash, include_txs]) + } + BlockId::Number(num) => { + let num = helpers::serialize(&num); + self.transport + .execute("eth_getBlockByNumber", vec![num, include_txs]) + } + }; + + CallFuture::new(result) + } + + /// Get block details with full transaction objects. + pub fn block_with_txs(&self, block: BlockId) -> CallFuture>, T::Out> { + let include_txs = helpers::serialize(&true); + + let result = match block { + BlockId::Hash(hash) => { + let hash = helpers::serialize(&hash); + self.transport + .execute("eth_getBlockByHash", vec![hash, include_txs]) + } + BlockId::Number(num) => { + let num = helpers::serialize(&num); + self.transport + .execute("eth_getBlockByNumber", vec![num, include_txs]) + } + }; + + CallFuture::new(result) + } + + /// Get number of transactions in block + pub fn block_transaction_count(&self, block: BlockId) -> CallFuture, T::Out> { + let result = match block { + BlockId::Hash(hash) => { + let hash = helpers::serialize(&hash); + self.transport + .execute("eth_getBlockTransactionCountByHash", vec![hash]) + } + BlockId::Number(num) => { + let num = helpers::serialize(&num); + self.transport + .execute("eth_getBlockTransactionCountByNumber", vec![num]) + } + }; + + CallFuture::new(result) + } + + /// Get code under given address + pub fn code(&self, address: Address, block: Option) -> CallFuture { + let address = helpers::serialize(&address); + let block = helpers::serialize(&block.unwrap_or(BlockNumber::Latest)); + + CallFuture::new(self.transport.execute("eth_getCode", vec![address, block])) + } + + /// Get supported compilers + pub fn compilers(&self) -> CallFuture, T::Out> { + CallFuture::new(self.transport.execute("eth_getCompilers", vec![])) + } + + /// Get chain id + pub fn chain_id(&self) -> CallFuture { + CallFuture::new(self.transport.execute("eth_chainId", vec![])) + } + + /// Get available user accounts. This method is only available in the browser. With MetaMask, + /// this will cause the popup that prompts the user to allow or deny access to their accounts + /// to your app. + pub fn request_accounts(&self) -> CallFuture, T::Out> { + CallFuture::new(self.transport.execute("eth_requestAccounts", vec![])) + } + + /// Get storage entry + pub fn storage( + &self, + address: Address, + idx: U256, + block: Option, + ) -> CallFuture { + let address = helpers::serialize(&address); + let idx = helpers::serialize(&idx); + let block = helpers::serialize(&block.unwrap_or(BlockNumber::Latest)); + + CallFuture::new( + self.transport + .execute("eth_getStorageAt", vec![address, idx, block]), + ) + } + + /// Get nonce + pub fn transaction_count( + &self, + address: Address, + block: Option, + ) -> CallFuture { + let address = helpers::serialize(&address); + let block = helpers::serialize(&block.unwrap_or(BlockNumber::Latest)); + + CallFuture::new( + self.transport + .execute("eth_getTransactionCount", vec![address, block]), + ) + } + + /// Get transaction + pub fn transaction(&self, id: TransactionId) -> CallFuture, T::Out> { + let result = match id { + TransactionId::Hash(hash) => { + let hash = helpers::serialize(&hash); + self.transport + .execute("eth_getTransactionByHash", vec![hash]) + } + TransactionId::Block(BlockId::Hash(hash), index) => { + let hash = helpers::serialize(&hash); + let idx = helpers::serialize(&index); + self.transport + .execute("eth_getTransactionByBlockHashAndIndex", vec![hash, idx]) + } + TransactionId::Block(BlockId::Number(number), index) => { + let number = helpers::serialize(&number); + let idx = helpers::serialize(&index); + self.transport + .execute("eth_getTransactionByBlockNumberAndIndex", vec![number, idx]) + } + }; + + CallFuture::new(result) + } + + /// Get transaction receipt + pub fn transaction_receipt( + &self, + hash: H256, + ) -> CallFuture, T::Out> { + let hash = helpers::serialize(&hash); + + CallFuture::new( + self.transport + .execute("eth_getTransactionReceipt", vec![hash]), + ) + } + + /// Get uncle header by block ID and uncle index. + /// + /// This method is meant for TurboGeth compatiblity, + /// which is missing transaction hashes in the response. + pub fn uncle_header( + &self, + block: BlockId, + index: Index, + ) -> CallFuture, T::Out> { + self.fetch_uncle(block, index) + } + + /// Get uncle by block ID and uncle index -- transactions only has hashes. + pub fn uncle(&self, block: BlockId, index: Index) -> CallFuture>, T::Out> { + self.fetch_uncle(block, index) + } + + fn fetch_uncle(&self, block: BlockId, index: Index) -> CallFuture, T::Out> { + let index = helpers::serialize(&index); + + let result = match block { + BlockId::Hash(hash) => { + let hash = helpers::serialize(&hash); + self.transport + .execute("eth_getUncleByBlockHashAndIndex", vec![hash, index]) + } + BlockId::Number(num) => { + let num = helpers::serialize(&num); + self.transport + .execute("eth_getUncleByBlockNumberAndIndex", vec![num, index]) + } + }; + + CallFuture::new(result) + } + + /// Get uncle count in block + pub fn uncle_count(&self, block: BlockId) -> CallFuture, T::Out> { + let result = match block { + BlockId::Hash(hash) => { + let hash = helpers::serialize(&hash); + self.transport + .execute("eth_getUncleCountByBlockHash", vec![hash]) + } + BlockId::Number(num) => { + let num = helpers::serialize(&num); + self.transport + .execute("eth_getUncleCountByBlockNumber", vec![num]) + } + }; + + CallFuture::new(result) + } + + /// Get work package + pub fn work(&self) -> CallFuture { + CallFuture::new(self.transport.execute("eth_getWork", vec![])) + } + + /// Get hash rate + pub fn hashrate(&self) -> CallFuture { + CallFuture::new(self.transport.execute("eth_hashrate", vec![])) + } + + /// Get mining status + pub fn mining(&self) -> CallFuture { + CallFuture::new(self.transport.execute("eth_mining", vec![])) + } + + /// Start new block filter + pub fn new_block_filter(&self) -> CallFuture { + CallFuture::new(self.transport.execute("eth_newBlockFilter", vec![])) + } + + /// Start new pending transaction filter + pub fn new_pending_transaction_filter(&self) -> CallFuture { + CallFuture::new( + self.transport + .execute("eth_newPendingTransactionFilter", vec![]), + ) + } + + /// Start new pending transaction filter + pub fn protocol_version(&self) -> CallFuture { + CallFuture::new(self.transport.execute("eth_protocolVersion", vec![])) + } + + /// Sends a rlp-encoded signed transaction + pub fn send_raw_transaction(&self, rlp: Bytes) -> CallFuture { + let rlp = helpers::serialize(&rlp); + CallFuture::new(self.transport.execute("eth_sendRawTransaction", vec![rlp])) + } + + /// Sends a transaction transaction + pub fn send_transaction(&self, tx: TransactionRequest) -> CallFuture { + let tx = helpers::serialize(&tx); + CallFuture::new(self.transport.execute("eth_sendTransaction", vec![tx])) + } + + /// Signs a hash of given data + pub fn sign(&self, address: Address, data: Bytes) -> CallFuture { + let address = helpers::serialize(&address); + let data = helpers::serialize(&data); + CallFuture::new(self.transport.execute("eth_sign", vec![address, data])) + } + + /// Submit hashrate of external miner + pub fn submit_hashrate(&self, rate: U256, id: H256) -> CallFuture { + let rate = helpers::serialize(&rate); + let id = helpers::serialize(&id); + CallFuture::new(self.transport.execute("eth_submitHashrate", vec![rate, id])) + } + + /// Submit work of external miner + pub fn submit_work( + &self, + nonce: H64, + pow_hash: H256, + mix_hash: H256, + ) -> CallFuture { + let nonce = helpers::serialize(&nonce); + let pow_hash = helpers::serialize(&pow_hash); + let mix_hash = helpers::serialize(&mix_hash); + CallFuture::new( + self.transport + .execute("eth_submitWork", vec![nonce, pow_hash, mix_hash]), + ) + } + + /// Get syncing status + pub fn syncing(&self) -> CallFuture { + CallFuture::new(self.transport.execute("eth_syncing", vec![])) + } + + /// Returns the account- and storage-values of the specified account including the Merkle-proof. + pub fn proof( + &self, + address: Address, + keys: Vec, + block: Option, + ) -> CallFuture, T::Out> { + let add = helpers::serialize(&address); + let ks = helpers::serialize(&keys); + let blk = helpers::serialize(&block.unwrap_or(BlockNumber::Latest)); + CallFuture::new(self.transport.execute("eth_getProof", vec![add, ks, blk])) + } +} + +#[cfg(test)] +mod tests { + use super::Eth; + use crate::{ + api::Namespace, + rpc::Value, + types::{ + Address, Block, BlockHeader, BlockId, BlockNumber, CallRequest, FeeHistory, + FilterBuilder, Log, Proof, SyncInfo, SyncState, Transaction, TransactionId, + TransactionReceipt, TransactionRequest, Work, H256, H520, H64, U256, + }, + }; + use hex_literal::hex; + use serde_json::json; + + // taken from RPC docs. + const EXAMPLE_BLOCK: &str = r#"{ + "number": "0x1b4", + "hash": "0x0e670ec64341771606e55d6b4ca35a1a6b75ee3d5145a99d05921026d1527331", + "parentHash": "0x9646252be9520f6e71339a8df9c55e4d7619deeb018d2a3f2d21fc165dde5eb5", + "mixHash": "0x1010101010101010101010101010101010101010101010101010101010101010", + "nonce": "0x0000000000000000", + "sealFields": [ + "0xe04d296d2460cfb8472af2c5fd05b5a214109c25688d3704aed5484f9a7792f2", + "0x0000000000000042" + ], + "sha3Uncles": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "logsBloom": "0x0e670ec64341771606e55d6b4ca35a1a6b75ee3d5145a99d05921026d15273310e670ec64341771606e55d6b4ca35a1a6b75ee3d5145a99d05921026d15273310e670ec64341771606e55d6b4ca35a1a6b75ee3d5145a99d05921026d15273310e670ec64341771606e55d6b4ca35a1a6b75ee3d5145a99d05921026d15273310e670ec64341771606e55d6b4ca35a1a6b75ee3d5145a99d05921026d15273310e670ec64341771606e55d6b4ca35a1a6b75ee3d5145a99d05921026d15273310e670ec64341771606e55d6b4ca35a1a6b75ee3d5145a99d05921026d15273310e670ec64341771606e55d6b4ca35a1a6b75ee3d5145a99d05921026d1527331", + "transactionsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "stateRoot": "0xd5855eb08b3387c0af375e9cdb6acfc05eb8f519e419b874b6ff2ffda7ed1dff", + "miner": "0x4e65fda2159562a496f9f3522f89122a3088497a", + "difficulty": "0x27f07", + "totalDifficulty": "0x27f07", + "extraData": "0x0000000000000000000000000000000000000000000000000000000000000000", + "size": "0x27f07", + "gasLimit": "0x9f759", + "minGasPrice": "0x9f759", + "gasUsed": "0x9f759", + "timestamp": "0x54e34e8e", + "transactions": [], + "uncles": [] + }"#; + + // response from RPC request {"jsonrpc":"2.0","method":"eth_getBlockByNumber","params":["pending", false],"id":1}. + const EXAMPLE_PENDING_BLOCK: &str = r#"{ + "author": "0x0000000000000000000000000000000000000000", + "difficulty": "0x7eac2e8c440b2", + "extraData": "0xde830207028f5061726974792d457468657265756d86312e34312e30826c69", + "gasLimit": "0x974a0a", + "gasUsed": "0x44dd8", + "hash": null, + "logsBloom": null, + "miner": "0x0000000000000000000000000000000000000000", + "number": null, + "parentHash": "0xb4bb0904f19fd05ed527191f21ea27bd4f2d81903f77bfa2626631617001327c", + "receiptsRoot": "0x855c8c3b1c985b6bc5fd975a37b764095542b98a177588b887e197fcc5e0a0cd", + "sealFields": [], + "sha3Uncles": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "size": "0x8b6", + "stateRoot": "0xfa035b07c349fb33768aebeb988639bd2ca7d5284170f29808ead43482a432c5", + "timestamp": "0x5ea09b90", + "totalDifficulty": "0x332b576efbc4023b848", + "transactions": [ + "0x8e0d2bdfd47d7e68d5c86c30cbe4967ffcf920745a4b8177e1911fafd48e851a", + "0x2ac5f94e2d653d64fe89f7af2140600e4b7a59b3345700b5424bd4fae08212af", + "0x75d3e2d2ab548f4ca6e9f0c27306cedf28074ce60f39a6e78f56ea3f4a22e2d5", + "0xbcdb4f0829c7191a14e03dba0783fb015fa921d06b683e0ce8afb938745f89f7", + "0x75cede4d4cdb8402b242a1b1b39a23d537b2fee6a14783eaab67aa1e79bd71cd", + "0x50e406de9432a3589681b1eb3093ab6aba0895b5dc755588ca64735386591425", + "0x101e8b02d478dfab2266688b53668039107e98feacf085dcf9bfd24f390ec17d", + "0x22c75911be879047f4b0480fa07b2c2a77518571fb358d92b47c456d7065a76f", + "0x7715b514ba8ead48117b581f9ebcc61696a5b91f9111c55a7087e91474a58ec7", + "0x95dd913782cd4bfe5550a8f9102ba821f9a76691780c833d5130e311d62eb638" + ], + "transactionsRoot": "0x3acac83d7cc227b0c9a9ab1702964e70d7c8d1bfbf0f587b40e2a0aa0048aa44", + "uncles": [] + }"#; + + // taken from RPC docs, but with leading `00` added to `blockHash` + // and `transactionHash` fields because RPC docs currently show + // 31-byte values in both positions (must be 32 bytes). + const EXAMPLE_LOG: &str = r#"{ + "logIndex": "0x1", + "blockNumber":"0x1b4", + "blockHash": "0x008216c5785ac562ff41e2dcfdf5785ac562ff41e2dcfdf829c5a142f1fccd7d", + "transactionHash": "0x00df829c5a142f1fccd7d8216c5785ac562ff41e2dcfdf5785ac562ff41e2dcf", + "transactionIndex": "0x0", + "address": "0x16c5785ac562ff41e2dcfdf829c5a142f1fccd7d", + "data":"0x0000000000000000000000000000000000000000000000000000000000000000", + "topics": ["0x59ebeb90bc63057b6515673c3ecf9438e5058bca0f92585014eced636878c9a5"] + }"#; + + // taken from RPC docs. + const EXAMPLE_TX: &str = r#"{ + "hash": "0xc6ef2fc5426d6ad6fd9e2a26abeab0aa2411b7ab17f30a99d3cb96aed1d1055b", + "nonce": "0x0", + "blockHash": "0xbeab0aa2411b7ab17f30a99d3cb9c6ef2fc5426d6ad6fd9e2a26a6aed1d1055b", + "blockNumber": "0x15df", + "transactionIndex": "0x1", + "from": "0x407d73d8a49eeb85d32cf465507dd71d507100c1", + "to": "0x85dd43d8a49eeb85d32cf465507dd71d507100c1", + "value": "0x7f110", + "gas": "0x7f110", + "gasPrice": "0x09184e72a000", + "input": "0x603880600c6000396000f300603880600c6000396000f3603880600c6000396000f360" + }"#; + + // taken from RPC docs. + // https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_gettransactionreceipt + const EXAMPLE_RECEIPT: &str = r#"{ + "transactionHash": "0xb903239f8543d04b5dc1ba6579132b143087c68db1b2168786408fcbce568238", + "transactionIndex": "0x1", + "from": "0xa7d9ddbe1f17865597fbd27ec712455208b6b76d", + "blockNumber": "0xb", + "blockHash": "0xc6ef2fc5426d6ad6fd9e2a26abeab0aa2411b7ab17f30a99d3cb96aed1d1055b", + "cumulativeGasUsed": "0x33bc", + "gasUsed": "0x4dc", + "contractAddress": "0xb60e8dd61c5d32be8058bb8eb970870f07233155", + "logsBloom": "0x0e670ec64341771606e55d6b4ca35a1a6b75ee3d5145a99d05921026d15273310e670ec64341771606e55d6b4ca35a1a6b75ee3d5145a99d05921026d15273310e670ec64341771606e55d6b4ca35a1a6b75ee3d5145a99d05921026d15273310e670ec64341771606e55d6b4ca35a1a6b75ee3d5145a99d05921026d15273310e670ec64341771606e55d6b4ca35a1a6b75ee3d5145a99d05921026d15273310e670ec64341771606e55d6b4ca35a1a6b75ee3d5145a99d05921026d15273310e670ec64341771606e55d6b4ca35a1a6b75ee3d5145a99d05921026d15273310e670ec64341771606e55d6b4ca35a1a6b75ee3d5145a99d05921026d1527331", + "logs": [], + "status": "0x1", + "effectiveGasPrice": "0x100" + }"#; + + const EXAMPLE_FEE_HISTORY: &str = r#"{ + "baseFeePerGas": [ + "0x15f794d04b", + "0x1730fe199f", + "0x176212b802", + "0x165bce08cb", + "0x16c6235c9d", + "0x1539ff7ccd" + ], + "gasUsedRatio": [ + 0.722926465013414, + 0.53306761204479, + 0.32474768127264964, + 0.574309529134573, + 0.2282121795900929 + ], + "oldestBlock": "0xcd1df9" + }"#; + + ///taken from RPC docs + /// https://eips.ethereum.org/EIPS/eip-1186 + const EXAMPLE_PROOF: &str = r#"{ + "address": "0x1234567890123456789012345678901234567890", + "accountProof": [ + "0xf90211a0c3b7e484f7e3258823aee7fada1378f1667757c4a1c3bde259adb4857b481726a0d0f709bf8bd61dd176b876f250638b03e65d367aa0e13f01a122e328e6215603a0d3ca85d7f5f63a6b01d818369c656639087aed983f63906b2eba99bf71255ef3a0d168cf7cc0253337d59fa3ed11bde10744a152fcb644c77bd8babbddf878714da02d4e42471dbdbd96eb3b115877d6b6202450cebee0d96d346d650ebd73eaa96ea07c2a9fbbec5c243327961f1a5ed3ce410dd0b255e4db934e68c2df424ede2a67a00a4ae2f21873ad931752edd3b3cfeffcedf15bb070525450bde50bdce6a78faca023e61f772deb072c430adb4316b65a66d8d3cef73dae7d515938e37c0db5c2f0a0d078fc1c446572cfb172888172287dd243ec085eb54594034926c99a3051230da04182e559c0f1bd6533e52fd995760da41701d37e8e21eab59e63db07e836a80fa0968213088b84869050884d5788ae5669d7d35ac0ddbdab71cfbd241da72df9e0a0bdc9921220e3bb9b4744c1764be9a9d7c22e5007387367285dc8f7495ebc0f21a01bf9c2458bb0c5c8f477734e347fb1f940a493ff0b533fef3c0bce20a5a69628a0626a993a9f6cb9febf4ca826b5731cc2ed85066c253cea94511d28a139445699a032a58d4abc48ee971d839915b0848d26af588b23138df7b072575d2dce3cb829a01b8af404f9cc8dc1590fa6f4ed79ea93a65d1aa152854f510efaceba183c8abb80", + "0xf90211a0e1557a91967828ea9eaf9b4c25bb0f079857340c54fa01acf24977f5d4d12ad4a0805a5d2f0d1b8c33c6415d2df4f4d812f4abe6b2d0f9f12196d31bbe5d76e47da0882d8a3a3493a0d76c907b0c2a4c6e3f26ca67a6a37aba6105c428d98ec2f67ea0b8bb9bd971ca68a49135390b03c11e2f7c352c146be2e3f8fff2a311dda5ddf1a01ae7bbab4493b34935640f40c74d7d72079742157ad5040a23f70c64f5153ca7a0574403fc7faa3a262eae412a707a74785a1159027e5b8de9990e1e82278e9691a01edc831a2e842b4d55b009c9831774fd6f17acfdee99f097c4fb20be583911f6a044569f910709fedb1ef83ef29b508e24def8eb9cc876dac0f6fa4f5f791cd719a0ebfdbfe9538bd72dbbeb56024982502950c69d9beb5d0d6d985917120e77e0d5a02c6fdf33ef98ca85a94ac9ed1319832ca5e2b344c1b8d921e77eda35480ba9d0a0c6b20bfc93fa2167bd43fe14cb648eb53c66fd56a3c95d0bd4c0442e86f7e686a01bed6e7e4a83c9aed9b39c49bb29782d63064d5ac425734dbfe4f0367eb29d07a0dede0f30aa107e1383be0a3ac31e0083213c27e1b11912e45e974257fa1d9915a089673bee5c46e4ee86b7e68115bc34b6eb9387e7c0d7300af1c502a8ef14fdf8a07e8e4d1729077f052c82cbd6de80966666514c53072945b53afd55c40b4f3a47a024caac94dd8acbf9c88a149b728115651faebd379f92e0ecc126fb136d5289df80", + "0xf89180a057d3fa3f15f8c0e639b1c3ac64e623348f39c5663587003279dcd5cf261489a58080a0b65511b496c46cca3eff9484a1a1961bcf7ae59237da1ead3675eea9b3f8469fa05114cfcd51e3a3735c556d68ac28f83dd28aa1a833425090521f0b9217c2114e8080a0adaeaae85d671adf3b559aaee605156f0c4511f9aa474cbcf6a594b219d216a88080808080808080" + ], + "balance": "0x2166f8062324c623840", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": "0x6c", + "storageHash": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "storageProof": [ + { + "key": "0x0000000000000000000000000000000000000000000000000000000000000000", + "value": "0x0", + "proof": [] + }, + { + "key": "0x0000000000000000000000000000000000000000000000000000000000000001", + "value": "0x0", + "proof": [] + } + ] + }"#; + + rpc_test! ( + Eth:accounts => "eth_accounts"; + Value::Array(vec![Value::String("0x0000000000000000000000000000000000000123".into())]) => vec![Address::from_low_u64_be(0x123)] + ); + + rpc_test! ( + Eth:block_number => "eth_blockNumber"; + Value::String("0x123".into()) => 0x123 + ); + + rpc_test! ( + Eth:call, CallRequest { + from: None, to: Some(Address::from_low_u64_be(0x123)), + gas: None, gas_price: None, + value: Some(0x1.into()), data: None, + transaction_type: None, access_list: None, + max_fee_per_gas: None, max_priority_fee_per_gas: None, + }, None + => + "eth_call", vec![r#"{"to":"0x0000000000000000000000000000000000000123","value":"0x1"}"#, r#""latest""#]; + Value::String("0x010203".into()) => hex!("010203") + ); + + rpc_test! ( + Eth:coinbase => "eth_coinbase"; + Value::String("0x0000000000000000000000000000000000000123".into()) => Address::from_low_u64_be(0x123) + ); + + rpc_test! ( + Eth:compile_lll, "code" => "eth_compileLLL", vec![r#""code""#]; + Value::String("0x0123".into()) => hex!("0123") + ); + + rpc_test! ( + Eth:compile_solidity, "code" => "eth_compileSolidity", vec![r#""code""#]; + Value::String("0x0123".into()) => hex!("0123") + ); + + rpc_test! ( + Eth:compile_serpent, "code" => "eth_compileSerpent", vec![r#""code""#]; + Value::String("0x0123".into()) => hex!("0123") + ); + + rpc_test! ( + Eth:estimate_gas, CallRequest { + from: None, to: Some(Address::from_low_u64_be(0x123)), + gas: None, gas_price: None, + value: Some(0x1.into()), data: None, + transaction_type: None, access_list: None, + max_fee_per_gas: None, max_priority_fee_per_gas: None, + }, None + => + "eth_estimateGas", vec![r#"{"to":"0x0000000000000000000000000000000000000123","value":"0x1"}"#]; + Value::String("0x123".into()) => 0x123 + ); + + rpc_test! ( + Eth:estimate_gas:optional_to_addr, CallRequest { + from: None, to: None, + gas: None, gas_price: None, + value: Some(0x1.into()), data: None, + transaction_type: None, access_list: None, + max_fee_per_gas: None, max_priority_fee_per_gas: None, + }, None + => + "eth_estimateGas", vec![r#"{"value":"0x1"}"#]; + Value::String("0x5555".into()) => 0x5555 + ); + + rpc_test! ( + Eth:estimate_gas:for_block, CallRequest { + from: None, to: Some(Address::from_low_u64_be(0x123)), + gas: None, gas_price: None, + value: Some(0x1.into()), data: None, + transaction_type: None, access_list: None, + max_fee_per_gas: None, max_priority_fee_per_gas: None, + }, Some(0x123.into()) + => + "eth_estimateGas", vec![r#"{"to":"0x0000000000000000000000000000000000000123","value":"0x1"}"#, r#""0x123""#]; + Value::String("0x123".into()) => 0x123 + ); + + rpc_test! ( + Eth:gas_price => "eth_gasPrice"; + Value::String("0x123".into()) => 0x123 + ); + + rpc_test! ( + Eth:fee_history, 0x3, BlockNumber::Latest, None => "eth_feeHistory", vec![r#""0x3""#, r#""latest""#, r#"null"#]; + ::serde_json::from_str(EXAMPLE_FEE_HISTORY).unwrap() + => ::serde_json::from_str::(EXAMPLE_FEE_HISTORY).unwrap() + ); + + rpc_test! ( + Eth:balance, Address::from_low_u64_be(0x123), None + => + "eth_getBalance", vec![r#""0x0000000000000000000000000000000000000123""#, r#""latest""#]; + Value::String("0x123".into()) => 0x123 + ); + + rpc_test! ( + Eth:logs, FilterBuilder::default().build() => "eth_getLogs", vec!["{}"]; + Value::Array(vec![::serde_json::from_str(EXAMPLE_LOG).unwrap()]) + => vec![::serde_json::from_str::(EXAMPLE_LOG).unwrap()] + ); + + rpc_test! ( + Eth:block:block_by_hash, BlockId::Hash(H256::from_low_u64_be(0x123)) + => + "eth_getBlockByHash", vec![r#""0x0000000000000000000000000000000000000000000000000000000000000123""#, r#"false"#]; + ::serde_json::from_str(EXAMPLE_BLOCK).unwrap() + => Some(::serde_json::from_str::>(EXAMPLE_BLOCK).unwrap()) + ); + + rpc_test! ( + Eth:block, BlockNumber::Pending + => + "eth_getBlockByNumber", vec![r#""pending""#, r#"false"#]; + ::serde_json::from_str(EXAMPLE_PENDING_BLOCK).unwrap() + => Some(::serde_json::from_str::>(EXAMPLE_PENDING_BLOCK).unwrap()) + ); + + rpc_test! ( + Eth:block_with_txs, BlockNumber::Pending + => + "eth_getBlockByNumber", vec![r#""pending""#, r#"true"#]; + ::serde_json::from_str(EXAMPLE_BLOCK).unwrap() + => Some(::serde_json::from_str::>(EXAMPLE_BLOCK).unwrap()) + ); + + rpc_test! ( + Eth:block_transaction_count:block_tx_count_by_hash, BlockId::Hash(H256::from_low_u64_be(0x123)) + => + "eth_getBlockTransactionCountByHash", vec![r#""0x0000000000000000000000000000000000000000000000000000000000000123""#]; + Value::String("0x123".into()) => Some(0x123.into()) + ); + + rpc_test! ( + Eth:block_transaction_count, BlockNumber::Pending + => + "eth_getBlockTransactionCountByNumber", vec![r#""pending""#]; + Value::Null => None + ); + + rpc_test! ( + Eth:code, H256::from_low_u64_be(0x123), Some(BlockNumber::Pending) + => + "eth_getCode", vec![r#""0x0000000000000000000000000000000000000123""#, r#""pending""#]; + Value::String("0x0123".into()) => hex!("0123") + ); + + rpc_test! ( + Eth:compilers => "eth_getCompilers"; + Value::Array(vec![]) => vec![] + ); + + rpc_test! ( + Eth:chain_id => "eth_chainId"; + Value::String("0x123".into()) => 0x123 + ); + + rpc_test! ( + Eth:storage, Address::from_low_u64_be(0x123), 0x456, None + => + "eth_getStorageAt", vec![ + r#""0x0000000000000000000000000000000000000123""#, + r#""0x456""#, + r#""latest""# + ]; + Value::String("0x0000000000000000000000000000000000000000000000000000000000000123".into()) => H256::from_low_u64_be(0x123) + ); + + rpc_test! ( + Eth:transaction_count, Address::from_low_u64_be(0x123), None + => + "eth_getTransactionCount", vec![r#""0x0000000000000000000000000000000000000123""#, r#""latest""#]; + Value::String("0x123".into()) => 0x123 + ); + + rpc_test! ( + Eth:transaction:tx_by_hash, TransactionId::Hash(H256::from_low_u64_be(0x123)) + => + "eth_getTransactionByHash", vec![r#""0x0000000000000000000000000000000000000000000000000000000000000123""#]; + ::serde_json::from_str(EXAMPLE_TX).unwrap() + => Some(::serde_json::from_str::(EXAMPLE_TX).unwrap()) + ); + + rpc_test! ( + Eth:transaction:tx_by_block_hash_and_index, TransactionId::Block( + BlockId::Hash(H256::from_low_u64_be(0x123)), + 5.into() + ) + => + "eth_getTransactionByBlockHashAndIndex", vec![r#""0x0000000000000000000000000000000000000000000000000000000000000123""#, r#""0x5""#]; + Value::Null => None + ); + + rpc_test! ( + Eth:transaction:tx_by_block_no_and_index, TransactionId::Block( + BlockNumber::Pending.into(), + 5.into() + ) + => + "eth_getTransactionByBlockNumberAndIndex", vec![r#""pending""#, r#""0x5""#]; + ::serde_json::from_str(EXAMPLE_TX).unwrap() + => Some(::serde_json::from_str::(EXAMPLE_TX).unwrap()) + ); + + rpc_test! ( + Eth:transaction_receipt, H256::from_low_u64_be(0x123) + => + "eth_getTransactionReceipt", vec![r#""0x0000000000000000000000000000000000000000000000000000000000000123""#]; + ::serde_json::from_str(EXAMPLE_RECEIPT).unwrap() + => Some(::serde_json::from_str::(EXAMPLE_RECEIPT).unwrap()) + ); + + rpc_test! ( + Eth:uncle:uncle_by_hash, BlockId::Hash(H256::from_low_u64_be(0x123)), 5 + => + "eth_getUncleByBlockHashAndIndex", vec![r#""0x0000000000000000000000000000000000000000000000000000000000000123""#, r#""0x5""#]; + ::serde_json::from_str(EXAMPLE_BLOCK).unwrap() + => Some(::serde_json::from_str::>(EXAMPLE_BLOCK).unwrap()) + ); + + rpc_test! ( + Eth:uncle_header:uncle_header_by_hash, BlockId::Hash(H256::from_low_u64_be(0x123)), 5 + => + "eth_getUncleByBlockHashAndIndex", vec![r#""0x0000000000000000000000000000000000000000000000000000000000000123""#, r#""0x5""#]; + ::serde_json::from_str(EXAMPLE_BLOCK).unwrap() + => Some(::serde_json::from_str::(EXAMPLE_BLOCK).unwrap()) + ); + + rpc_test! ( + Eth:uncle:uncle_by_no, BlockNumber::Earliest, 5 + => + "eth_getUncleByBlockNumberAndIndex", vec![r#""earliest""#, r#""0x5""#]; + Value::Null => None + ); + + rpc_test! ( + Eth:uncle_count:uncle_count_by_hash, BlockId::Hash(H256::from_low_u64_be(0x123)) + => + "eth_getUncleCountByBlockHash", vec![r#""0x0000000000000000000000000000000000000000000000000000000000000123""#]; + Value::String("0x123".into())=> Some(0x123.into()) + ); + + rpc_test! ( + Eth:uncle_count:uncle_count_by_no, BlockNumber::Earliest + => + "eth_getUncleCountByBlockNumber", vec![r#""earliest""#]; + Value::Null => None + ); + + rpc_test! ( + Eth:work:work_3 => "eth_getWork"; + Value::Array(vec![ + Value::String("0x0000000000000000000000000000000000000000000000000000000000000123".into()), + Value::String("0x0000000000000000000000000000000000000000000000000000000000000456".into()), + Value::String("0x0000000000000000000000000000000000000000000000000000000000000789".into()), + ]) => Work { + pow_hash: H256::from_low_u64_be(0x123), + seed_hash: H256::from_low_u64_be(0x456), + target: H256::from_low_u64_be(0x789), + number: None, + } + ); + + rpc_test! ( + Eth:work:work_4 => "eth_getWork"; + Value::Array(vec![ + Value::String("0x0000000000000000000000000000000000000000000000000000000000000123".into()), + Value::String("0x0000000000000000000000000000000000000000000000000000000000000456".into()), + Value::String("0x0000000000000000000000000000000000000000000000000000000000000789".into()), + Value::Number(5.into()), + ]) => Work { + pow_hash: H256::from_low_u64_be(0x123), + seed_hash: H256::from_low_u64_be(0x456), + target: H256::from_low_u64_be(0x789), + number: Some(5), + } + ); + + rpc_test! ( + Eth:hashrate => "eth_hashrate"; + Value::String("0x123".into()) => 0x123 + ); + + rpc_test! ( + Eth:mining => "eth_mining"; + Value::Bool(true) => true + ); + + rpc_test! ( + Eth:new_block_filter => "eth_newBlockFilter"; + Value::String("0x123".into()) => 0x123 + ); + rpc_test! ( + Eth:new_pending_transaction_filter => "eth_newPendingTransactionFilter"; + Value::String("0x123".into()) => 0x123 + ); + + rpc_test! ( + Eth:protocol_version => "eth_protocolVersion"; + Value::String("0x123".into()) => "0x123" + ); + + rpc_test! ( + Eth:send_raw_transaction, hex!("01020304") + => + "eth_sendRawTransaction", vec![r#""0x01020304""#]; + Value::String("0x0000000000000000000000000000000000000000000000000000000000000123".into()) => H256::from_low_u64_be(0x123) + ); + + rpc_test! ( + Eth:send_transaction, TransactionRequest { + from: Address::from_low_u64_be(0x123), to: Some(Address::from_low_u64_be(0x123)), + gas: None, gas_price: Some(0x1.into()), + value: Some(0x1.into()), data: None, + nonce: None, condition: None, + transaction_type: None, access_list: None, + max_fee_per_gas: None, max_priority_fee_per_gas: None, + } + => + "eth_sendTransaction", vec![r#"{"from":"0x0000000000000000000000000000000000000123","gasPrice":"0x1","to":"0x0000000000000000000000000000000000000123","value":"0x1"}"#]; + Value::String("0x0000000000000000000000000000000000000000000000000000000000000123".into()) => H256::from_low_u64_be(0x123) + ); + + rpc_test! ( + Eth:sign, H256::from_low_u64_be(0x123), hex!("01020304") + => + "eth_sign", vec![r#""0x0000000000000000000000000000000000000123""#, r#""0x01020304""#]; + Value::String("0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000123".into()) => H520::from_low_u64_be(0x123) + ); + + rpc_test! ( + Eth:submit_hashrate, 0x123, H256::from_low_u64_be(0x456) + => + "eth_submitHashrate", vec![r#""0x123""#, r#""0x0000000000000000000000000000000000000000000000000000000000000456""#]; + Value::Bool(true) => true + ); + + rpc_test! ( + Eth:submit_work, H64::from_low_u64_be(0x123), H256::from_low_u64_be(0x456), H256::from_low_u64_be(0x789) + => + "eth_submitWork", vec![r#""0x0000000000000123""#, r#""0x0000000000000000000000000000000000000000000000000000000000000456""#, r#""0x0000000000000000000000000000000000000000000000000000000000000789""#]; + Value::Bool(true) => true + ); + + rpc_test! ( + Eth:syncing:syncing => "eth_syncing"; + json!({"startingBlock": "0x384","currentBlock": "0x386","highestBlock": "0x454"}) => SyncState::Syncing(SyncInfo { starting_block: 0x384.into(), current_block: 0x386.into(), highest_block: 0x454.into()}) + ); + + rpc_test! { + Eth:syncing:not_syncing => "eth_syncing"; + Value::Bool(false) => SyncState::NotSyncing + } + + rpc_test! { + Eth:proof, Address::from_low_u64_be(0x123), [U256::from(0x123)], BlockNumber::Latest + => + "eth_getProof", vec![r#""0x0000000000000000000000000000000000000123""#, r#"["0x123"]"#, r#""latest""#]; + ::serde_json::from_str(EXAMPLE_PROOF).unwrap() + => Some(::serde_json::from_str::(EXAMPLE_PROOF).unwrap()) + } +} diff --git a/subgraph/tests/entities.rs b/subgraph/tests/entities.rs new file mode 100644 index 0000000000..4a79a59b85 --- /dev/null +++ b/subgraph/tests/entities.rs @@ -0,0 +1,3140 @@ +mod generated; +mod subgraph; +mod utils; + +use std::ops::Div; + +use ethers::{ + signers::Signer, + types::{Address, Bytes, U256}, + utils::keccak256, +}; +use subgraph::{wait, Query}; +use utils::{ + bytes_to_h256, + cbor::{decode_rain_meta, encode_rain_docs, RainMapDoc}, + deploy::{deploy_erc20_mock, get_expression_deployer, get_orderbook, read_orderbook_meta}, + events::{ + _get_new_expression_event, get_add_order_event, get_after_clear_events, get_clear_events, + get_context_event, get_deposit_events, get_take_order_event, get_take_order_events, + get_withdraw_events, + }, + generate_random_u256, get_wallet, h256_to_bytes, + json_structs::{NewExpressionJson, OrderJson}, + numbers::{display_number, divide_decimal_strings, get_amount_tokens}, + transactions::{ + approve_tokens, generate_clear_config, generate_multi_add_order, generate_multi_clear, + generate_multi_deposit, generate_multi_withdraw, generate_order_config, + generate_signed_context_v1, get_block_data, get_decimals, mint_tokens, ContextIndex, + TestDepositConfig, TestWithdrawConfig, + }, + u256_to_address, +}; + +use generated::{ClearCall, SignedContextV1, TakeOrderConfig, TakeOrdersConfigV2}; + +#[tokio::main] +#[test] +async fn orderbook_entity_test() -> anyhow::Result<()> { + let orderbook = get_orderbook().await?; + + // Wait for Subgraph sync + wait().await?; + + // Query the OrderBook entity + let response = Query::orderbook(&orderbook.address()).await?; + + // This wallet is used to deploy the OrderBook at initialization, so it is the deployer + let wallet_0 = get_wallet(0); + + // Read meta from root repository (output from nix command) and convert to Bytes + let ob_meta_hashed = Bytes::from(keccak256(read_orderbook_meta())); + + assert_eq!(response.id, orderbook.address()); + assert_eq!(response.address, orderbook.address()); + assert_eq!(response.deployer, wallet_0.address()); + assert_eq!(response.meta, ob_meta_hashed); + + Ok(()) +} + +#[tokio::main] +#[test] +async fn rain_meta_v1_entity_test() -> anyhow::Result<()> { + // Always checking if OB is deployed, so we attemp to obtaing it + let _ = get_orderbook().await?; + + // Wait for Subgraph sync + wait().await?; + + // Read meta from root repository (output from nix command) and convert to Bytes + let ob_meta = read_orderbook_meta(); + let ob_meta_bytes = Bytes::from(ob_meta.clone()); + let ob_meta_hashed = Bytes::from(keccak256(ob_meta.clone())); + let ob_meta_decoded = decode_rain_meta(ob_meta.clone().into())?; + + // Query the RainMetaV1 entity + let response = Query::rain_meta_v1(&ob_meta_hashed.clone()).await?; + + assert_eq!(response.id, ob_meta_hashed); + assert_eq!(response.meta_bytes, ob_meta_bytes); + + for content in ob_meta_decoded { + let content_id: Bytes = content.hash().to_fixed_bytes().into(); + assert!( + response.content.contains(&content_id), + "Missing id '{}' in decoded contents: {:?}", + content_id, + response.content + ); + } + + Ok(()) +} + +#[tokio::main] +#[test] +async fn content_meta_v1_entity_test() -> anyhow::Result<()> { + // Always checking if OB is deployed, so we attemp to obtaing it + let _ = get_orderbook().await?; + + // Wait for Subgraph sync + wait().await?; + + // Read meta from root repository (output from nix command) and convert to Bytes + let ob_meta = read_orderbook_meta(); + let ob_meta_hashed = Bytes::from(keccak256(ob_meta.clone())); + let ob_meta_decoded = decode_rain_meta(ob_meta.clone().into())?; + + for content in ob_meta_decoded { + // Query the ContentMetaV1 entity + let response = Query::content_meta_v1(&content.hash().as_fixed_bytes().into()).await?; + + // Make the asserts + assert_eq!(response.id, content.hash().as_bytes().to_vec()); + assert_eq!(response.raw_bytes, content.encode()); + assert_eq!(response.magic_number, content.magic_number); + assert_eq!(response.payload, content.payload); + + assert_eq!(response.content_type, content.content_type); + assert_eq!(response.content_encoding, content.content_encoding); + assert_eq!(response.content_language, content.content_language); + + assert!( + response.parents.contains(&ob_meta_hashed), + "Missing parent id '{}' in {:?}", + ob_meta_hashed, + response.parents + ); + } + + Ok(()) +} + +#[tokio::main] +#[test] +async fn order_entity_add_order_test() -> anyhow::Result<()> { + let orderbook = get_orderbook().await?; + + // Connect the orderbook to another wallet + let wallet_1 = get_wallet(1); + let orderbook = orderbook.connect(&wallet_1).await; + + // Deploy ExpressionDeployerNP for the config + let expression_deployer = get_expression_deployer().await?; + + // Deploy ERC20 token contract (A) + let token_a = deploy_erc20_mock(None).await?; + + // Deploy ERC20 token contract (B) + let token_b = deploy_erc20_mock(None).await?; + + // Build OrderConfig + let order_config = + generate_order_config(&expression_deployer, &token_a, None, &token_b, None).await; + + // Add the order + let add_order_func = orderbook.add_order(order_config.clone()); + + let tx_add_order = add_order_func.send().await?; + + // Decode events from the transaction + let add_order_data = get_add_order_event(&orderbook, &tx_add_order).await?; + let new_expression_data = + _get_new_expression_event(expression_deployer.clone(), &tx_add_order).await?; + + // Wait for Subgraph sync + wait().await?; + + let order_hash = Bytes::from(add_order_data.order_hash); + + let response = Query::order(&order_hash).await?; + + // Data from the event in tx + let order_data = add_order_data.order; + + // Expected values + let transaction_hash = tx_add_order.tx_hash().clone(); + let interpreter: Address = expression_deployer.i_interpreter().call().await?; + let store: Address = expression_deployer.i_store().call().await?; + // let rain_doc_hashed = Bytes::from(keccak256(rain_doc)); + let rain_doc_hashed = Bytes::from(keccak256(order_config.meta)); + let order_json_string = OrderJson::from_order(order_data.clone()).to_json_string(); + let expression_json_string = + NewExpressionJson::from_event(new_expression_data).to_json_string(); + + let is_order_exist: bool = orderbook + .order_exists(bytes_to_h256(&order_hash).into()) + .call() + .await?; + + // Assertions + assert_eq!(response.id, order_hash); + assert_eq!(response.order_hash, order_hash); + assert_eq!(response.owner, wallet_1.address()); + + assert_eq!(response.interpreter, interpreter); + assert_eq!(response.interpreter_store, store); + assert_eq!(response.expression_deployer, expression_deployer.address()); + assert_eq!(response.expression, order_data.evaluable.expression); + + assert_eq!(response.order_active, is_order_exist, "wrong order status"); + assert_eq!(response.handle_i_o, order_data.handle_io); + assert_eq!(response.meta, rain_doc_hashed); + assert_eq!(response.emitter, wallet_1.address()); + + assert_eq!(response.order_json_string, order_json_string); + assert_eq!( + response.expression_json_string.unwrap(), + expression_json_string + ); + assert_eq!( + response.transaction, + Bytes::from(transaction_hash.as_fixed_bytes()) + ); + + assert!( + response.take_orders.is_empty(), + "take orders not empty at initial addOrder" + ); + assert!( + response.orders_clears.is_empty(), + "order clears not empty at initial addOrder" + ); + + // Iterate over each IO to generate the ID and check if present + for input in &order_data.valid_inputs { + let token: Address = input.token; + let vault_id: U256 = input.vault_id; + let id = format!("{}-{:?}-{}", order_hash, token, vault_id); + + assert!(response.valid_inputs.contains(&id), "Missing IO in order"); + } + + for output in &order_data.valid_outputs { + let token: Address = output.token; + let vault_id: U256 = output.vault_id; + let id = format!("{}-{:?}-{}", order_hash, token, vault_id); + + assert!(response.valid_outputs.contains(&id), "Missing IO in order"); + } + + Ok(()) +} + +#[tokio::main] +#[test] +async fn order_entity_remove_order_test() -> anyhow::Result<()> { + let orderbook = get_orderbook().await?; + + // Connect the orderbook to another wallet + let wallet_1 = get_wallet(1); + let orderbook = orderbook.connect(&wallet_1).await; + + // Deploy ExpressionDeployerNP for the config + let expression_deployer = get_expression_deployer().await?; + + // Deploy ERC20 token contract (A) + let token_a = deploy_erc20_mock(None).await?; + + // Deploy ERC20 token contract (B) + let token_b = deploy_erc20_mock(None).await?; + + // Build OrderConfig + let order_config = + generate_order_config(&expression_deployer, &token_a, None, &token_b, None).await; + + // Add the order + let add_order_func = orderbook.add_order(order_config.clone()); + let tx_add_order = add_order_func.send().await?; + + // Decode events from the transaction + let add_order_data = get_add_order_event(&orderbook, &tx_add_order).await?; + + let order_hash = Bytes::from(add_order_data.order_hash); + + // Data from the event in tx + let order_data = add_order_data.order; + + // Remove the order + let remove_order_fnc = orderbook.remove_order(order_data); + let _ = remove_order_fnc.send().await?; + + // Current order status + let is_order_exist: bool = orderbook + .order_exists(bytes_to_h256(&order_hash).into()) + .call() + .await?; + + // Wait for Subgraph sync + wait().await?; + + let response = Query::order(&order_hash).await?; + + assert_eq!(response.order_active, is_order_exist, "wrong order status"); + + Ok(()) +} + +#[tokio::main] +#[test] +async fn order_entity_clear_test() -> anyhow::Result<()> { + let alice = get_wallet(0); + let bob = get_wallet(1); + let bounty_bot = get_wallet(2); + + let orderbook = get_orderbook().await?; + + // Deploy ExpressionDeployerNP for the config + let expression_deployer = get_expression_deployer().await?; + + // Deploy ERC20 token contract (A) + let token_a = deploy_erc20_mock(None).await?; + // Deploy ERC20 token contract (B) + let token_b = deploy_erc20_mock(None).await?; + // Generate vault ids for each account (Input and Output) + let alice_input_vault = generate_random_u256(); + let alice_output_vault = generate_random_u256(); + let bob_input_vault = generate_random_u256(); + let bob_output_vault = generate_random_u256(); + let bounty_bot_vault_a = generate_random_u256(); + let bounty_bot_vault_b = generate_random_u256(); + + // Order Alice Configuration + let order_alice = generate_order_config( + &expression_deployer, + &token_a, + Some(alice_input_vault), + &token_b, + Some(alice_output_vault), + ) + .await; + + // Order Bob Configuration + let order_bob = generate_order_config( + &expression_deployer, + &token_b, + Some(bob_input_vault), + &token_a, + Some(bob_output_vault), + ) + .await; + + // Add order alice with Alice connected to the OB + let add_order_alice = orderbook.connect(&alice).await.add_order(order_alice); + let tx = add_order_alice.send().await?; + let add_order_alice_data = get_add_order_event(orderbook, &tx).await?; + + // Add order bob with Bob connected to the OB + let add_order_bob = orderbook.connect(&bob).await.add_order(order_bob); + let tx = add_order_bob.send().await?; + let add_order_bob_data = get_add_order_event(orderbook, &tx).await?; + + // Make deposit of corresponded output token + let decimal_a = token_a.decimals().call().await?; + let amount_alice = get_amount_tokens(8, decimal_a); + + let decimal_b = token_b.decimals().call().await?; + let amount_bob = get_amount_tokens(6, decimal_b); + + // Alice has token_b as output + mint_tokens(&amount_alice, &alice.address(), &token_b).await?; + + // Approve Alice token_b using to OB + approve_tokens( + // &amount_alice, + &amount_alice, + &orderbook.address(), + &token_b.connect(&alice).await, + ) + .await?; + + // Deposit using Alice + let deposit_func = orderbook.connect(&alice).await.deposit( + token_b.address(), + alice_output_vault, + amount_alice, + ); + let _ = deposit_func.send().await?.await?; + + // Bob has token_a as output + mint_tokens(&amount_bob, &bob.address(), &token_a).await?; + + // Approve Bob token_a using to OB + approve_tokens( + &amount_bob, + &orderbook.address(), + &token_a.connect(&bob).await, + ) + .await?; + + // Deposit using Bob + let deposit_func = + orderbook + .connect(&bob) + .await + .deposit(token_a.address(), bob_output_vault, amount_bob); + let _ = deposit_func.send().await?.await?; + + // BOUNTY BOT CLEARS THE ORDER + // Clear configuration + let order_alice = &add_order_alice_data.order; + let order_bob = &add_order_bob_data.order; + let clear_config = generate_clear_config(&bounty_bot_vault_a, &bounty_bot_vault_b); + + let a_signed_context: Vec = Vec::new(); + let b_signed_context: Vec = Vec::new(); + + let clear_func = orderbook.connect(&bounty_bot).await.clear( + order_alice.to_owned(), + order_bob.to_owned(), + clear_config, + a_signed_context, + b_signed_context, + ); + + // Wait for the transaction + let tx_clear = clear_func.send().await?; + let clear_tx_hash = tx_clear.tx_hash(); + + // Order hashes + let alice_order_hash: Bytes = add_order_alice_data.order_hash.into(); + let bob_order_hash: Bytes = add_order_bob_data.order_hash.into(); + + // Clear ID (using 0 since was only one clear) + let clear_entity_id = format!("{:?}-{}", clear_tx_hash, 0); + + // Wait for Subgraph sync + wait().await?; + + // Querying for both orders that should include the clearr + let response_a = Query::order(&alice_order_hash).await?; + let response_b = Query::order(&bob_order_hash).await?; + + assert!( + response_a.orders_clears.contains(&clear_entity_id), + "missing clear entity" + ); + assert!( + response_b.orders_clears.contains(&clear_entity_id), + "missing clear entity" + ); + + Ok(()) +} + +#[tokio::main] +#[test] +async fn io_entity_test() -> anyhow::Result<()> { + let orderbook = get_orderbook().await?; + + // Deploy ExpressionDeployerNP for the config + let expression_deployer = get_expression_deployer().await?; + + // Deploy ERC20 token contract (A) + let token_a = deploy_erc20_mock(None).await?; + + // Deploy ERC20 token contract (B) + let token_b = deploy_erc20_mock(None).await?; + + // Build OrderConfig + let order_config = + generate_order_config(&expression_deployer, &token_a, None, &token_b, None).await; + + // Add the order + let add_order_func = orderbook.add_order(order_config.clone()); + let tx_add_order = add_order_func.send().await?; + + // Decode events from the transaction + let add_order_data = get_add_order_event(&orderbook, &tx_add_order).await?; + + // Order hash + let order_hash = Bytes::from(add_order_data.order_hash); + let order_owner: Address = add_order_data.order.owner; + + // Wait for Subgraph sync + wait().await?; + + // Inputs + for (index, input) in order_config.valid_inputs.iter().enumerate() { + let token: Address = input.token; + let vault_id: U256 = input.vault_id; + let input_id = format!("{}-{:?}-{}", order_hash, token, vault_id); + + let vault_entity_id = format!("{}-{:?}", vault_id, order_owner); + let token_vault_entity_id = format!("{}-{:?}-{:?}", vault_id, order_owner, token); + + let response = Query::i_o(&input_id).await?; + + assert_eq!(response.id, input_id); + assert_eq!(response.token, token); + assert_eq!(response.decimals, 18); // TODO: Make a wrapper around the token address with the ERC20Mock + assert_eq!(response.vault_id, vault_id); + assert_eq!(response.order, order_hash); + assert_eq!(response.index, index as u8); + assert_eq!(response.vault, vault_entity_id); + assert_eq!(response.token_vault, token_vault_entity_id); + } + + // Outputs + for (index, output) in order_config.valid_outputs.iter().enumerate() { + let token: Address = output.token; + let vault_id: U256 = output.vault_id; + let output_id = format!("{}-{:?}-{}", order_hash, token, vault_id); + + let vault_entity_id = format!("{}-{:?}", vault_id, order_owner); + let token_vault_entity_id = format!("{}-{:?}-{:?}", vault_id, order_owner, token); + + let response = Query::i_o(&output_id).await?; + + assert_eq!(response.id, output_id); + assert_eq!(response.token, token); + assert_eq!(response.decimals, 18); // TODO: Make a wrapper around the token address with the ERC20Mock + assert_eq!(response.vault_id, vault_id); + assert_eq!(response.order, order_hash); + assert_eq!(response.index, index as u8); + assert_eq!(response.vault, vault_entity_id); + assert_eq!(response.token_vault, token_vault_entity_id); + } + + Ok(()) +} + +#[tokio::main] +#[test] +async fn vault_entity_add_orders_test() -> anyhow::Result<()> { + let orderbook = get_orderbook().await?; + + // Deploy ExpressionDeployerNP for the config + let expression_deployer = get_expression_deployer().await?; + + // Deploy ERC20 token contract (A) + let token_a = deploy_erc20_mock(None).await?; + + // Deploy ERC20 token contract (B) + let token_b = deploy_erc20_mock(None).await?; + + // Deploy ERC20 token contract (C) + let token_c = deploy_erc20_mock(None).await?; + + // Deploy ERC20 token contract (D) + let token_d = deploy_erc20_mock(None).await?; + + // Generate TWO order configs with identical vault ID. + // All the TokenVaults with same VaultId should be present in the Vault + let vault_id = generate_random_u256(); + + let order_config_a = generate_order_config( + &expression_deployer, + &token_a, + Some(vault_id), + &token_b, + Some(vault_id), + ) + .await; + let order_config_b = generate_order_config( + &expression_deployer, + &token_c, + Some(vault_id), + &token_d, + Some(vault_id), + ) + .await; + + // Encode them to send them with multicall + let multi_orders = generate_multi_add_order(vec![&order_config_a, &order_config_b]); + + // Connect the orderbook to another wallet (arbitrary) to send the orders + let wallet_owner = get_wallet(2); + let orderbook = orderbook.connect(&wallet_owner).await; + + // Add the orders with multicall + let multicall_func = orderbook.multicall(multi_orders); + let tx_multicall = multicall_func.send().await?; + let _ = tx_multicall.await?; + + // Wait for Subgraph sync + wait().await?; + + let vault_entity_id = format!("{}-{:?}", vault_id, wallet_owner.address()); + + let response = Query::vault(&vault_entity_id).await?; + + // Generate the expetect Token Vault IDs + let token_vault_a = format!( + "{}-{:?}-{:?}", + vault_id, + wallet_owner.address(), + token_a.address() + ); + let token_vault_b = format!( + "{}-{:?}-{:?}", + vault_id, + wallet_owner.address(), + token_b.address() + ); + let token_vault_c = format!( + "{}-{:?}-{:?}", + vault_id, + wallet_owner.address(), + token_c.address() + ); + let token_vault_d = format!( + "{}-{:?}-{:?}", + vault_id, + wallet_owner.address(), + token_d.address() + ); + + assert_eq!(response.id, vault_entity_id); + assert_eq!(response.vault_id, vault_id); + assert_eq!(response.owner, wallet_owner.address()); + + assert!( + response.token_vaults.contains(&token_vault_a), + "Missing tokenVault id" + ); + assert!( + response.token_vaults.contains(&token_vault_b), + "Missing tokenVault id" + ); + assert!( + response.token_vaults.contains(&token_vault_c), + "Missing tokenVault id" + ); + assert!( + response.token_vaults.contains(&token_vault_d), + "Missing tokenVault id" + ); + + Ok(()) +} + +#[tokio::main] +#[test] +async fn vault_entity_deposit_test() -> anyhow::Result<()> { + let orderbook = get_orderbook().await?; + + // Connect the orderbook to another wallet (arbitrary) to send the orders + let alice = get_wallet(2); + let orderbook = orderbook.connect(&alice).await; + + // Deploy ERC20 token contract (A) + let token_a = deploy_erc20_mock(None).await?; + + // Deploy ERC20 token contract (B) + let token_b = deploy_erc20_mock(None).await?; + + let amount = get_amount_tokens(1000, token_a.decimals().call().await.unwrap()); + + // Fill to Alice with tokens (A and B) + mint_tokens(&amount, &alice.address(), &token_a).await?; + + mint_tokens(&amount, &alice.address(), &token_b).await?; + + // Connect token to Alice and approve Orderbook to move tokens + approve_tokens( + &amount, + &orderbook.address(), + &token_a.connect(&alice).await, + ) + .await?; + + approve_tokens( + &amount, + &orderbook.address(), + &token_b.connect(&alice).await, + ) + .await?; + + // Get a random vaultId + let vault_id = generate_random_u256(); + + // Fill struct with same vaultId in the deposit configurations + let deposits_config = vec![ + // Config A + TestDepositConfig { + token: token_a.address(), + vault_id: vault_id, + amount, + }, + // Config B + TestDepositConfig { + token: token_b.address(), + vault_id: vault_id, + amount, + }, + ]; + + let multi_deposit = generate_multi_deposit(&deposits_config); + + // Send the deposits with multicall + let multicall_func = orderbook.multicall(multi_deposit); + let tx_multicall = multicall_func.send().await?; + let tx_receipt = tx_multicall.await?.unwrap(); + + let deposit_tx_hash = &tx_receipt.transaction_hash; + + let vault_entity_id = format!("{}-{:?}", vault_id, alice.address()); + + // Generate the expetect Token Vault IDs + let token_vault_a = format!("{}-{:?}-{:?}", vault_id, alice.address(), token_a.address()); + let token_vault_b = format!("{}-{:?}-{:?}", vault_id, alice.address(), token_b.address()); + + // Wait for Subgraph sync + wait().await?; + + let resp = Query::vault(&vault_entity_id).await?; + + // The whole entity should be created normally + assert_eq!(resp.id, vault_entity_id); + assert_eq!(resp.vault_id, vault_id); + assert_eq!(resp.owner, alice.address()); + assert!( + resp.token_vaults.contains(&token_vault_a), + "Missing tokenVault id" + ); + assert!( + resp.token_vaults.contains(&token_vault_b), + "Missing tokenVault id" + ); + + // Should include the deposits made + for index in 0..deposits_config.len() { + let deposit_id = format!("{:?}-{}", deposit_tx_hash, index); + + assert!(resp.deposits.contains(&deposit_id), "missing deposit id"); + } + + Ok(()) +} + +#[tokio::main] +#[test] +async fn vault_entity_withdraw_test() -> anyhow::Result<()> { + let orderbook = get_orderbook().await?; + + // Connect the orderbook to another wallet (arbitrary) to send the orders + let alice = get_wallet(2); + let orderbook = orderbook.connect(&alice).await; + + // Get a random vaultId + let vault_id = generate_random_u256(); + + // Vault Entity ID + let vault_entity_id = format!("{}-{:?}", vault_id, alice.address()); + + // Deploy ERC20 token contract (A) + let token_a = deploy_erc20_mock(None).await?; + + // Amount to deposit + let amount_to_deposit = get_amount_tokens(1000, token_a.decimals().call().await.unwrap()); + + // Fill to Alice with tokens + mint_tokens(&amount_to_deposit, &alice.address(), &token_a).await?; + + // Connect token to Alice and approve Orderbook to move tokens + approve_tokens( + &amount_to_deposit, + &orderbook.address(), + &token_a.connect(&alice).await, + ) + .await?; + + // Send the deposits with multicall + let deposit_func = orderbook.deposit(token_a.address(), vault_id, amount_to_deposit); + let _ = deposit_func.send().await?.await?; + + // Make two withdraw with the half of what was deposited + let amount_to_withdaw = amount_to_deposit.div(2); + + // Fill struct with same vaultId and tokens in the Withdaws configurations + let withdraws_config = vec![ + // Config A + TestWithdrawConfig { + token: token_a.address(), + vault_id: vault_id, + target_amount: amount_to_withdaw, + }, + // Config B + TestWithdrawConfig { + token: token_a.address(), + vault_id: vault_id, + target_amount: amount_to_withdaw, + }, + ]; + + // Encode the withdaws + let multi_withdaws = generate_multi_withdraw(&withdraws_config); + + // Send the deposits with multicall + let multicall_func = orderbook.multicall(multi_withdaws); + let tx_multicall_withdraws = multicall_func.send().await?; + let withdraw_tx_hash = tx_multicall_withdraws.tx_hash(); + + // Generate the expetect Token Vault IDs + let token_vault_a = format!("{}-{:?}-{:?}", vault_id, alice.address(), token_a.address()); + + // Wait for Subgraph sync + wait().await?; + + let resp = Query::vault(&vault_entity_id).await?; + + // The whole entity should be updated normally + assert_eq!(resp.vault_id, vault_id); + assert_eq!(resp.owner, alice.address()); + assert!( + resp.token_vaults.contains(&token_vault_a), + "Missing tokenVault id" + ); + + // Should include the withdraws made + for index in 0..withdraws_config.len() { + let withdraws_id = format!("{:?}-{}", withdraw_tx_hash, index); + + assert!( + resp.withdraws.contains(&withdraws_id), + "missing withdraw id" + ); + } + + Ok(()) +} + +#[tokio::main] +#[test] +async fn vault_entity_add_order_and_deposit_test() -> anyhow::Result<()> { + let orderbook = get_orderbook().await?; + + // Connect the orderbook to another wallet (arbitrary) to send the orders + let alice = get_wallet(2); + let orderbook = orderbook.connect(&alice).await; + + // Get a random vaultId + let vault_id = generate_random_u256(); + + // The expected vault entity SG ID + let vault_entity_id = format!("{}-{:?}", vault_id, alice.address()); + + // Deploy ExpressionDeployerNP for the config + let expression_deployer = get_expression_deployer().await?; + + // Deploy ERC20 token contract (A) + let token_a = deploy_erc20_mock(None).await?; + + // Deploy ERC20 token contract (B) + let token_b = deploy_erc20_mock(None).await?; + + // Build OrderConfig with the vaultId + let order_config = generate_order_config( + &expression_deployer, + &token_a, + Some(vault_id), + &token_b, + Some(vault_id), + ) + .await; + + // Add the order + let add_order_func = orderbook.add_order(order_config.clone()); + let _ = add_order_func.send().await?.await?; + + // Wait for Subgraph sync + wait().await?; + + // First query when adding order + let resp = Query::vault(&vault_entity_id).await?; + + // The whole entity should be created normally when adding the order + assert_eq!(resp.id, vault_entity_id); + + // Now, make the deposits with a given amount + let amount = get_amount_tokens(1000, token_a.decimals().call().await.unwrap()); + + // Fill to Alice with tokens (A and B) + mint_tokens(&amount, &alice.address(), &token_a).await?; + + mint_tokens(&amount, &alice.address(), &token_b).await?; + + // Connect token to Alice and approve Orderbook to move tokens + approve_tokens( + &amount, + &orderbook.address(), + &token_a.connect(&alice).await, + ) + .await?; + + approve_tokens( + &amount, + &orderbook.address(), + &token_b.connect(&alice).await, + ) + .await?; + + // Fill struct with same vaultId in the deposit configurations + let deposits_config = vec![ + // Config A + TestDepositConfig { + token: token_a.address(), + vault_id: vault_id, + amount, + }, + // Config B + TestDepositConfig { + token: token_b.address(), + vault_id: vault_id, + amount, + }, + ]; + // The multi deposit data bytes + let multi_deposit = generate_multi_deposit(&deposits_config); + + // Send the deposits with multicall + let multicall_func = orderbook.multicall(multi_deposit); + let tx_multicall = multicall_func.send().await?; + let tx_receipt = tx_multicall.await?.unwrap(); + + let deposit_tx_hash = &tx_receipt.transaction_hash; + + // Wait for Subgraph sync + wait().await?; + + // Second query, using same vault entity ID. + let resp = Query::vault(&vault_entity_id).await?; + + // Should include the deposits made in same vault entity + for index in 0..deposits_config.len() { + let deposit_id = format!("{:?}-{}", deposit_tx_hash, index); + + assert!(resp.deposits.contains(&deposit_id), "missing deposit id"); + } + + Ok(()) +} + +#[tokio::main] +#[test] +async fn vault_entity_clear_test() -> anyhow::Result<()> { + let alice = get_wallet(0); + let bob = get_wallet(1); + let bounty_bot = get_wallet(2); + + let orderbook = get_orderbook().await?; + + // Deploy ExpressionDeployerNP for the config + let expression_deployer = get_expression_deployer().await?; + + // Deploy ERC20 token contract (A) + let token_a = deploy_erc20_mock(None).await?; + // Deploy ERC20 token contract (B) + let token_b = deploy_erc20_mock(None).await?; + // Generate vault ids for each account (Input and Output) + let alice_input_vault = generate_random_u256(); + let alice_output_vault = generate_random_u256(); + let bob_input_vault = generate_random_u256(); + let bob_output_vault = generate_random_u256(); + let bounty_bot_vault_a = generate_random_u256(); + let bounty_bot_vault_b = generate_random_u256(); + + // The vaultIds entities for bounty account + let vault_a_entity_id = format!("{}-{:?}", bounty_bot_vault_a, bounty_bot.address()); + let vault_b_entity_id = format!("{}-{:?}", bounty_bot_vault_b, bounty_bot.address()); + + // Order Alice Configuration + let order_alice = generate_order_config( + &expression_deployer, + &token_a, + Some(alice_input_vault), + &token_b, + Some(alice_output_vault), + ) + .await; + + // Order Bob Configuration + let order_bob = generate_order_config( + &expression_deployer, + &token_b, + Some(bob_input_vault), + &token_a, + Some(bob_output_vault), + ) + .await; + + // Add order alice with Alice connected to the OB + let add_order_alice = orderbook.connect(&alice).await.add_order(order_alice); + let tx = add_order_alice.send().await?; + let add_order_alice_data = get_add_order_event(orderbook, &tx).await?; + + // Add order bob with Bob connected to the OB + let add_order_bob = orderbook.connect(&bob).await.add_order(order_bob); + let tx = add_order_bob.send().await?; + let add_order_bob_data = get_add_order_event(orderbook, &tx).await?; + + // Make deposit of corresponded output token + let decimal_a = token_a.decimals().call().await?; + let amount_alice = get_amount_tokens(8, decimal_a); + + let decimal_b = token_b.decimals().call().await?; + let amount_bob = get_amount_tokens(6, decimal_b); + + // Alice has token_b as output + mint_tokens(&amount_alice, &alice.address(), &token_b).await?; + + // Approve Alice token_b using to OB + approve_tokens( + // &amount_alice, + &amount_alice, + &orderbook.address(), + &token_b.connect(&alice).await, + ) + .await?; + + // Deposit using Alice + let deposit_func = orderbook.connect(&alice).await.deposit( + token_b.address(), + alice_output_vault, + amount_alice, + ); + let _ = deposit_func.send().await?.await?; + + // Bob has token_a as output + mint_tokens(&amount_bob, &bob.address(), &token_a).await?; + + // Approve Bob token_a using to OB + approve_tokens( + &amount_bob, + &orderbook.address(), + &token_a.connect(&bob).await, + ) + .await?; + + // Deposit using Bob + let deposit_func = + orderbook + .connect(&bob) + .await + .deposit(token_a.address(), bob_output_vault, amount_bob); + let _ = deposit_func.send().await?.await?; + + // BOUNTY BOT CLEARS THE ORDER + // Clear configuration + let order_alice = &add_order_alice_data.order; + let order_bob = &add_order_bob_data.order; + let clear_config = generate_clear_config(&bounty_bot_vault_a, &bounty_bot_vault_b); + + let a_signed_context: Vec = Vec::new(); + let b_signed_context: Vec = Vec::new(); + + let clear_func = orderbook.connect(&bounty_bot).await.clear( + order_alice.to_owned(), + order_bob.to_owned(), + clear_config, + a_signed_context, + b_signed_context, + ); + + // Wait for the transaction + let _ = clear_func.send().await?.await?; + + let token_vault_bounty_a = format!( + "{}-{:?}-{:?}", + bounty_bot_vault_a, + bounty_bot.address(), + token_b.address(), // Using the output of alice order + ); + + let token_vault_bounty_b = format!( + "{}-{:?}-{:?}", + bounty_bot_vault_b, + bounty_bot.address(), + token_a.address(), // Using the output of bob order + ); + + // Wait for Subgraph sync + wait().await?; + + // Querying for both vaults + let resp_a = Query::vault(&vault_a_entity_id).await?; + let resp_b = Query::vault(&vault_b_entity_id).await?; + + // BountyAlice Vault + assert_eq!(resp_a.owner, bounty_bot.address()); + assert_eq!(resp_a.vault_id, bounty_bot_vault_a); + assert!(resp_a.token_vaults.contains(&token_vault_bounty_a)); + + // BountyBob Vault + assert_eq!(resp_b.owner, bounty_bot.address()); + assert_eq!(resp_b.vault_id, bounty_bot_vault_b); + assert!(resp_b.token_vaults.contains(&token_vault_bounty_b)); + + Ok(()) +} + +#[tokio::main] +#[test] +async fn vault_deposit_multiple_deposits_test() -> anyhow::Result<()> { + let orderbook = get_orderbook().await?; + + // Connect the orderbook to another wallet (arbitrary) to send the orders + let alice = get_wallet(2); + let orderbook = orderbook.connect(&alice).await; + + // Deploy ERC20 token contract (A) + let token_a = deploy_erc20_mock(None).await?; + + // Deploy ERC20 token contract (B) + let token_b = deploy_erc20_mock(None).await?; + + let amount = get_amount_tokens(1000, token_a.decimals().call().await.unwrap()); + + // Fill to Alice with tokens (A and B) + mint_tokens(&amount, &alice.address(), &token_a).await?; + + mint_tokens(&amount, &alice.address(), &token_b).await?; + + // Connect token to Alice and approve Orderbook to move tokens + approve_tokens( + &amount, + &orderbook.address(), + &token_a.connect(&alice).await, + ) + .await?; + + approve_tokens( + &amount, + &orderbook.address(), + &token_b.connect(&alice).await, + ) + .await?; + + // Get a random vaultId + let vault_id = generate_random_u256(); + + // Fill struct with same vaultId in the deposit configurations + let deposits_config = vec![ + // Config A + TestDepositConfig { + token: token_a.address(), + vault_id: vault_id, + amount, + }, + // Config B + TestDepositConfig { + token: token_b.address(), + vault_id: vault_id, + amount, + }, + ]; + + let multi_deposit = generate_multi_deposit(&deposits_config); + + // Send the deposits with multicall + let multicall_func = orderbook.multicall(multi_deposit); + let tx_multicall = multicall_func.send().await?; + let tx_receipt = tx_multicall.await?.unwrap(); + + let deposits_tx_hash = &tx_receipt.transaction_hash; + + let block_data = get_block_data(&deposits_tx_hash).await?; + + let deposit_events = get_deposit_events(&orderbook, &deposits_tx_hash).await?; + + // Wait for Subgraph sync + wait().await?; + + for (index, deposit) in deposit_events.iter().enumerate() { + let deposit_id = format!("{:?}-{}", deposits_tx_hash, index); + + let vault_entity_id = format!("{}-{:?}", deposit.vault_id, alice.address()); + let amount_display = display_number(deposit.amount, get_decimals(deposit.token).await?); + + let token_vault_entity = format!( + "{}-{:?}-{:?}", + deposit.vault_id, + alice.address(), + deposit.token, + ); + + let resp = Query::vault_deposit(&deposit_id).await?; + + assert_eq!(resp.sender, alice.address()); + assert_eq!(resp.token, deposit.token); + assert_eq!(resp.vault_id, deposit.vault_id); + assert_eq!(resp.vault, vault_entity_id); + assert_eq!(resp.amount, deposit.amount); + assert_eq!(resp.amount_display, amount_display); + assert_eq!(resp.token_vault, token_vault_entity); + assert_eq!(resp.transaction, *deposits_tx_hash); + assert_eq!(resp.emitter, alice.address()); + assert_eq!(resp.timestamp, block_data.timestamp); + } + + Ok(()) +} + +#[tokio::main] +#[test] +async fn vault_withdraw_multiple_withdraws_test() -> anyhow::Result<()> { + let orderbook = get_orderbook().await?; + + // Connect the orderbook to another wallet (arbitrary) to send the orders + let alice = get_wallet(2); + let orderbook = orderbook.connect(&alice).await; + + // Get a random vaultId + let vault_id = generate_random_u256(); + + // Deploy ERC20 token contract (A) + let token_a = deploy_erc20_mock(None).await?; + + // Amount to deposit + let amount_to_deposit = get_amount_tokens(1000, token_a.decimals().call().await.unwrap()); + + // Fill to Alice with tokens + mint_tokens(&amount_to_deposit, &alice.address(), &token_a).await?; + + // Connect token to Alice and approve Orderbook to move tokens + approve_tokens( + &amount_to_deposit, + &orderbook.address(), + &token_a.connect(&alice).await, + ) + .await?; + + // Send the deposits with multicall + let deposit_func = orderbook.deposit(token_a.address(), vault_id, amount_to_deposit); + let _ = deposit_func.send().await?.await?; + + // Make two withdraw with the half of what was deposited + let amount_to_withdaw = amount_to_deposit.div(2); + + // Fill struct with same vaultId and tokens in the Withdaws configurations + let withdraws_config = vec![ + // Config A + TestWithdrawConfig { + token: token_a.address(), + vault_id: vault_id, + target_amount: amount_to_withdaw, + }, + // Config B + TestWithdrawConfig { + token: token_a.address(), + vault_id: vault_id, + target_amount: amount_to_withdaw, + }, + ]; + + // Encode the withdaws + let multi_withdaws = generate_multi_withdraw(&withdraws_config); + + // Send the deposits with multicall + let multicall_func = orderbook.multicall(multi_withdaws); + let tx_multicall_withdraws = multicall_func.send().await?; + let withdraw_tx_hash = tx_multicall_withdraws.tx_hash(); + + let block_data = get_block_data(&withdraw_tx_hash).await?; + + let withdraw_events = get_withdraw_events(&orderbook, &withdraw_tx_hash).await?; + + // Wait for Subgraph sync + wait().await?; + + for (index, withdraw) in withdraw_events.iter().enumerate() { + let withdraw_id = format!("{:?}-{}", withdraw_tx_hash, index); + + let vault_entity_id = format!("{}-{:?}", withdraw.vault_id, alice.address()); + let decimals = get_decimals(withdraw.token).await?; + let amount_display = display_number(withdraw.amount, decimals); + + let requested_amount_display = display_number(withdraw.target_amount, decimals); + + let token_vault_entity = format!( + "{}-{:?}-{:?}", + withdraw.vault_id, + alice.address(), + withdraw.token, + ); + + let resp = Query::vault_withdraw(&withdraw_id).await?; + + assert_eq!(resp.sender, alice.address()); + assert_eq!(resp.token, withdraw.token); + assert_eq!(resp.vault_id, withdraw.vault_id); + assert_eq!(resp.vault, vault_entity_id); + assert_eq!(resp.requested_amount, withdraw.target_amount); + assert_eq!(resp.requested_amount_display, requested_amount_display); + assert_eq!(resp.amount, withdraw.amount); + assert_eq!(resp.amount_display, amount_display); + assert_eq!(resp.token_vault, token_vault_entity); + assert_eq!(resp.transaction, withdraw_tx_hash); + assert_eq!(resp.emitter, alice.address()); + assert_eq!(resp.timestamp, block_data.timestamp); + } + + Ok(()) +} + +#[tokio::main] +#[test] +async fn erc20_entity_add_order_test() -> anyhow::Result<()> { + let orderbook = get_orderbook().await?; + + // Connect the orderbook to another wallet (arbitrary) to send the orders + let alice = get_wallet(2); + let orderbook = orderbook.connect(&alice).await; + + // Get a random vaultId + let vault_id = generate_random_u256(); + + // Deploy ExpressionDeployerNP for the config + let expression_deployer = get_expression_deployer().await?; + + // Deploy ERC20 token contract (A) + let token_a = deploy_erc20_mock(None).await?; + + // Deploy ERC20 token contract (B) + let token_b = deploy_erc20_mock(None).await?; + + // Build OrderConfig with the vaultId + let order_config = generate_order_config( + &expression_deployer, + &token_a, + Some(vault_id), + &token_b, + Some(vault_id), + ) + .await; + + // Add the order + let add_order_func = orderbook.add_order(order_config.clone()); + let _ = add_order_func.send().await?.await?; + + // Wait for Subgraph sync + wait().await?; + + // Both ERC20 entities should be created + let resp_a = Query::erc20(&token_a.address()).await?; + let resp_b = Query::erc20(&token_b.address()).await?; + + let total_supply_display_a = display_number( + token_a.total_supply().call().await?, + token_a.decimals().call().await?, + ); + + let total_supply_display_b = display_number( + token_b.total_supply().call().await?, + token_b.decimals().call().await?, + ); + + // Checking the token A + assert_eq!(resp_a.name, token_a.name().call().await?); + assert_eq!(resp_a.symbol, token_a.symbol().call().await?); + assert_eq!(resp_a.total_supply, token_a.total_supply().call().await?); + assert_eq!(resp_a.decimals, token_a.decimals().call().await?); + assert_eq!(resp_a.total_supply_display, total_supply_display_a); + + // Checking the token B + assert_eq!(resp_b.name, token_b.name().call().await?); + assert_eq!(resp_b.symbol, token_b.symbol().call().await?); + assert_eq!(resp_b.total_supply, token_b.total_supply().call().await?); + assert_eq!(resp_b.decimals, token_b.decimals().call().await?); + assert_eq!(resp_b.total_supply_display, total_supply_display_b); + + Ok(()) +} + +#[tokio::main] +#[test] +async fn erc20_entity_deposit_test() -> anyhow::Result<()> { + let orderbook = get_orderbook().await?; + + // Connect the orderbook to another wallet (arbitrary) to send the orders + let alice = get_wallet(2); + let orderbook = orderbook.connect(&alice).await; + + // Get a random vaultId + let vault_id = generate_random_u256(); + + // Deploy ERC20 token contract + let token = deploy_erc20_mock(None).await?; + + // Now, make the deposits with a given amount + let amount = get_amount_tokens(1000, token.decimals().call().await?); + + // Fill to Alice with tokens + mint_tokens(&amount, &alice.address(), &token).await?; + + // Connect token to Alice and approve Orderbook to move tokens + approve_tokens(&amount, &orderbook.address(), &token.connect(&alice).await).await?; + + // Send the deposits + let deposit_func = orderbook.deposit(token.address(), vault_id, amount); + let _ = deposit_func.send().await?.await?; + + // Wait for Subgraph sync + wait().await?; + + // Second query, using same vault entity ID. + let resp = Query::erc20(&token.address()).await?; + + let total_supply_display = display_number( + token.total_supply().call().await?, + token.decimals().call().await?, + ); + + // Checking the token + assert_eq!(resp.name, token.name().call().await?); + assert_eq!(resp.symbol, token.symbol().call().await?); + assert_eq!(resp.total_supply, token.total_supply().call().await?); + assert_eq!(resp.decimals, token.decimals().call().await?); + assert_eq!(resp.total_supply_display, total_supply_display); + + Ok(()) +} + +#[tokio::main] +#[test] +async fn order_clear_entity_clear_test() -> anyhow::Result<()> { + let alice = get_wallet(0); + let bob = get_wallet(1); + let bounty_bot = get_wallet(2); + + let orderbook = get_orderbook().await?; + + // Deploy ExpressionDeployerNP for the config + let expression_deployer = get_expression_deployer().await?; + + // Deploy ERC20 token contract (A) + let token_a = deploy_erc20_mock(None).await?; + // Deploy ERC20 token contract (B) + let token_b = deploy_erc20_mock(None).await?; + // Generate vault ids for each account (Input and Output) + let alice_input_vault = generate_random_u256(); + let alice_output_vault = generate_random_u256(); + let bob_input_vault = generate_random_u256(); + let bob_output_vault = generate_random_u256(); + let bounty_bot_vault_a = generate_random_u256(); + let bounty_bot_vault_b = generate_random_u256(); + + // Order Alice Configuration + let order_alice = generate_order_config( + &expression_deployer, + &token_a, + Some(alice_input_vault), + &token_b, + Some(alice_output_vault), + ) + .await; + + // Order Bob Configuration + let order_bob = generate_order_config( + &expression_deployer, + &token_b, + Some(bob_input_vault), + &token_a, + Some(bob_output_vault), + ) + .await; + + // Add order alice with Alice connected to the OB + let add_order_alice = orderbook.connect(&alice).await.add_order(order_alice); + let tx = add_order_alice.send().await?; + let add_order_alice_data = get_add_order_event(orderbook, &tx).await?; + + // Add order bob with Bob connected to the OB + let add_order_bob = orderbook.connect(&bob).await.add_order(order_bob); + let tx = add_order_bob.send().await?; + let add_order_bob_data = get_add_order_event(orderbook, &tx).await?; + + // Make deposit of corresponded output token + let decimal_a = token_a.decimals().call().await?; + let amount_alice = get_amount_tokens(8, decimal_a); + + let decimal_b = token_b.decimals().call().await?; + let amount_bob = get_amount_tokens(6, decimal_b); + + // Alice has token_b as output + mint_tokens(&amount_alice, &alice.address(), &token_b).await?; + + // Approve Alice token_b using to OB + approve_tokens( + // &amount_alice, + &amount_alice, + &orderbook.address(), + &token_b.connect(&alice).await, + ) + .await?; + + // Deposit using Alice + let deposit_func = orderbook.connect(&alice).await.deposit( + token_b.address(), + alice_output_vault, + amount_alice, + ); + let _ = deposit_func.send().await?.await?; + + // Bob has token_a as output + mint_tokens(&amount_bob, &bob.address(), &token_a).await?; + + // Approve Bob token_a using to OB + approve_tokens( + &amount_bob, + &orderbook.address(), + &token_a.connect(&bob).await, + ) + .await?; + + // Deposit using Bob + let deposit_func = + orderbook + .connect(&bob) + .await + .deposit(token_a.address(), bob_output_vault, amount_bob); + let _ = deposit_func.send().await?.await?; + + // BOUNTY BOT CLEARS THE ORDER + // Clear configuration + let order_alice = &add_order_alice_data.order; + let order_bob = &add_order_bob_data.order; + + let alice_hash = add_order_alice_data.order_hash; + let bob_hash = add_order_bob_data.order_hash; + + let a_signed_context: Vec = Vec::new(); + let b_signed_context: Vec = Vec::new(); + + let clear_config_1 = generate_clear_config(&bounty_bot_vault_a, &bounty_bot_vault_b); + let clear_1 = ClearCall { + alice: order_alice.to_owned(), + bob: order_bob.to_owned(), + clear_config: clear_config_1, + alice_signed_context: a_signed_context.clone(), + bob_signed_context: b_signed_context.clone(), + }; + + let clear_config_2 = generate_clear_config(&bounty_bot_vault_b, &bounty_bot_vault_a); + let clear_2 = ClearCall { + alice: order_bob.to_owned(), + bob: order_alice.to_owned(), + clear_config: clear_config_2, + alice_signed_context: b_signed_context, + bob_signed_context: a_signed_context, + }; + + let clear_configs = vec![clear_1, clear_2]; + + let multi_clear_bytes = generate_multi_clear(&clear_configs); + + let multicall_func = orderbook + .connect(&bounty_bot) + .await + .multicall(multi_clear_bytes); + + let tx_multicall = multicall_func.send().await?; + + // Tx hash that hold all the logs + let clears_tx_hash = tx_multicall.tx_hash(); + + let clear_events = get_clear_events(&orderbook, &clears_tx_hash).await?; + let after_clear_events = get_after_clear_events(&orderbook, &clears_tx_hash).await?; + + let block_data = get_block_data(&clears_tx_hash).await?; + + // It should emit the same amount of events both parts + assert_eq!(clear_events.len(), after_clear_events.len()); + + // Wait for Subgraph sync + wait().await?; + + for (index, clear) in clear_events.iter().enumerate() { + let order_clear_id = format!("{:?}-{}", clears_tx_hash, index); + let bounty_id = order_clear_id.clone(); + let state_change_id = order_clear_id.clone(); + + let resp = Query::order_clear(&order_clear_id).await?; + + assert_eq!(resp.sender, bounty_bot.address()); + assert_eq!(resp.clearer, bounty_bot.address()); + assert_eq!(resp.emitter, bounty_bot.address()); + + // The "Alice" and "Bob" orders names are from the name inside the contract. Not related to names in tests + // If the "ALICE" in the order come from alice wallet, then it's first order in event + // otherwise, it's the second + if clear.alice.owner == alice.address() { + assert_eq!(resp.order_a, h256_to_bytes(&alice_hash.into())); + } else { + assert_eq!(resp.order_b, h256_to_bytes(&alice_hash.into())); + } + + // If the "BOB" in the order come from bob wallet, then it's second order in event + // otherwise, it's the first + if clear.bob.owner == bob.address() { + assert_eq!(resp.order_b, h256_to_bytes(&bob_hash.into())); + } else { + assert_eq!(resp.order_a, h256_to_bytes(&bob_hash.into())); + } + + assert_eq!(resp.bounty, bounty_id); + assert_eq!(resp.state_change, state_change_id); + + assert_eq!(resp.transaction, clears_tx_hash); + assert_eq!(resp.timestamp, block_data.timestamp); + + assert!(resp.owners.contains(&clear.alice.owner)); + assert!(resp.owners.contains(&clear.bob.owner)); + + assert_eq!( + resp.a_input_io_index, + clear.clear_config.alice_input_io_index + ); + assert_eq!( + resp.a_output_io_index, + clear.clear_config.alice_output_io_index + ); + + assert_eq!(resp.b_input_io_index, clear.clear_config.bob_input_io_index); + assert_eq!( + resp.b_output_io_index, + clear.clear_config.bob_output_io_index + ); + } + Ok(()) +} + +#[tokio::main] +#[test] +async fn token_vault_entity_add_order_test() -> anyhow::Result<()> { + let orderbook = get_orderbook().await?; + + // Connect the orderbook to another wallet (arbitrary) to send the orders + let alice = get_wallet(5); + let orderbook = orderbook.connect(&alice).await; + + // Get a random vaultId + let vault_id = generate_random_u256(); + + // Deploy ExpressionDeployerNP for the config + let expression_deployer = get_expression_deployer().await?; + + // Deploy ERC20 token contract (A) + let token_a = deploy_erc20_mock(None).await?; + + // Deploy ERC20 token contract (B) + let token_b = deploy_erc20_mock(None).await?; + + // Build OrderConfig with the vaultId + let order_config = generate_order_config( + &expression_deployer, + &token_a, + Some(vault_id), + &token_b, + Some(vault_id), + ) + .await; + + // Add the order + let add_order_func = orderbook.add_order(order_config.clone()); + let tx = add_order_func.send().await?; + + let add_order_data = get_add_order_event(&orderbook, &tx.tx_hash()).await?; + let order_hash: Bytes = add_order_data.order_hash.into(); + + // Wait for Subgraph sync + wait().await?; + + // Generate the both Token Vault IDs + let token_vault_a = format!("{}-{:?}-{:?}", vault_id, alice.address(), token_a.address()); + let token_vault_b = format!("{}-{:?}-{:?}", vault_id, alice.address(), token_b.address()); + + // Vault entity ID + let vault_entity_id = format!("{}-{:?}", vault_id, alice.address()); + + // Vault Balances for both + let vault_balance_a: U256 = orderbook + .vault_balance(alice.address(), token_a.address(), vault_id) + .call() + .await?; + let vaul_balance_display_a = + display_number(vault_balance_a, get_decimals(token_a.address()).await?); + + let vault_balance_b: U256 = orderbook + .vault_balance(alice.address(), token_b.address(), vault_id) + .call() + .await?; + let vaul_balance_display_b = + display_number(vault_balance_b, get_decimals(token_b.address()).await?); + + // Both ERC20 entities should be created + let resp_a = Query::token_vault(&token_vault_a).await?; + let resp_b = Query::token_vault(&token_vault_b).await?; + + // Checking token vault A + assert_eq!(resp_a.owner, alice.address()); + assert_eq!(resp_a.vault, vault_entity_id); + assert_eq!(resp_a.vault_id, vault_id); + assert_eq!(resp_a.token, token_a.address()); + assert_eq!(resp_a.balance, vault_balance_a); + assert_eq!(resp_a.balance_display, vaul_balance_display_a); + assert!(resp_a.orders.contains(&order_hash), "missing order ID"); + + // Checking token vault B + assert_eq!(resp_b.owner, alice.address()); + assert_eq!(resp_b.vault, vault_entity_id); + assert_eq!(resp_b.vault_id, vault_id); + assert_eq!(resp_b.token, token_b.address()); + assert_eq!(resp_b.balance, vault_balance_b); + assert_eq!(resp_b.balance_display, vaul_balance_display_b); + assert!(resp_b.orders.contains(&order_hash), "missing order ID"); + + Ok(()) +} + +#[tokio::main] +#[test] +async fn token_vault_entity_deposit_test() -> anyhow::Result<()> { + let orderbook = get_orderbook().await?; + + // Connect the orderbook to another wallet (arbitrary) to send the orders + let alice = get_wallet(2); + let orderbook = orderbook.connect(&alice).await; + + // Get a random vaultId + let vault_id = generate_random_u256(); + + // Deploy ERC20 token contract + let token = deploy_erc20_mock(None).await?; + + // Now, make the deposits with a given amount + let amount = get_amount_tokens(1000, token.decimals().call().await?); + + // Fill to Alice with tokens + mint_tokens(&amount, &alice.address(), &token).await?; + + // Connect token to Alice and approve Orderbook to move tokens + approve_tokens(&amount, &orderbook.address(), &token.connect(&alice).await).await?; + + // Send the deposits + let deposit_func = orderbook.deposit(token.address(), vault_id, amount); + let _ = deposit_func.send().await?.await?; + + // Wait for Subgraph sync + wait().await?; + + let token_vault = format!("{}-{:?}-{:?}", vault_id, alice.address(), token.address()); + + // Vault entity ID + let vault_entity_id = format!("{}-{:?}", vault_id, alice.address()); + + // Vault Balance + let vault_balance: U256 = orderbook + .vault_balance(alice.address(), token.address(), vault_id) + .call() + .await?; + let vaul_balance_display = display_number(vault_balance, get_decimals(token.address()).await?); + + // Second query, using same vault entity ID. + let resp = Query::token_vault(&token_vault).await?; + + // Checking token vault + assert_eq!(resp.owner, alice.address()); + assert_eq!(resp.vault, vault_entity_id); + assert_eq!(resp.vault_id, vault_id); + assert_eq!(resp.token, token.address()); + assert_eq!(resp.balance, vault_balance); + assert_eq!(resp.balance_display, vaul_balance_display); + + Ok(()) +} + +#[tokio::main] +#[test] +async fn token_vault_entity_withdraw_test() -> anyhow::Result<()> { + let orderbook = get_orderbook().await?; + + // Connect the orderbook to another wallet (arbitrary) to send the orders + let alice = get_wallet(2); + let orderbook = orderbook.connect(&alice).await; + + // Get a random vaultId + let vault_id = generate_random_u256(); + + // Deploy ERC20 token contract (A) + let token = deploy_erc20_mock(None).await?; + + // Amount to deposit + let amount_to_deposit = get_amount_tokens(1000, token.decimals().call().await.unwrap()); + + // Fill to Alice with tokens + mint_tokens(&amount_to_deposit, &alice.address(), &token).await?; + + // Connect token to Alice and approve Orderbook to move tokens + approve_tokens( + &amount_to_deposit, + &orderbook.address(), + &token.connect(&alice).await, + ) + .await?; + + // Send the deposits with multicall + let deposit_func = orderbook.deposit(token.address(), vault_id, amount_to_deposit); + let _ = deposit_func.send().await?.await?; + + // Fill struct + let withdraws_config = vec![ + // Config A + TestWithdrawConfig { + token: token.address(), + vault_id: vault_id, + target_amount: amount_to_deposit.div(2), + }, + ]; + + // Encode the withdaws + let multi_withdaws = generate_multi_withdraw(&withdraws_config); + + // Send the withdaw with multicall + let multicall_func = orderbook.multicall(multi_withdaws); + let _ = multicall_func.send().await?.await?; + + // Generate the expetect Token Vault IDs + let token_vault = format!("{}-{:?}-{:?}", vault_id, alice.address(), token.address()); + + // Vault Balance + let vault_balance: U256 = orderbook + .vault_balance(alice.address(), token.address(), vault_id) + .call() + .await?; + let vaul_balance_display = display_number(vault_balance, get_decimals(token.address()).await?); + + // Wait for Subgraph sync + wait().await?; + + let resp = Query::token_vault(&token_vault).await?; + + // Checking token vault + assert_eq!(resp.token, token.address()); + assert_eq!(resp.balance, vault_balance); + assert_eq!(resp.balance_display, vaul_balance_display); + + Ok(()) +} + +#[tokio::main] +#[test] +async fn token_vault_entity_clear_test() -> anyhow::Result<()> { + let alice = get_wallet(0); + let bob = get_wallet(1); + let carl = get_wallet(2); + + let orderbook = get_orderbook().await?; + + // Deploy ExpressionDeployerNP for the config + let expression_deployer = get_expression_deployer().await?; + + // Deploy ERC20 token contract (A) + let token_a = deploy_erc20_mock(None).await?; + // Deploy ERC20 token contract (B) + let token_b = deploy_erc20_mock(None).await?; + + // Generate vault ids for each account (same for all accounts) + let vault_id = generate_random_u256(); + + // Order Alice Configuration + let order_alice = generate_order_config( + &expression_deployer, + &token_a, + Some(vault_id), + &token_b, + Some(vault_id), + ) + .await; + + // Order Bob Configuration + let order_bob = generate_order_config( + &expression_deployer, + &token_b, + Some(vault_id), + &token_a, + Some(vault_id), + ) + .await; + + // Add order alice with Alice connected to the OB + let add_order_alice = orderbook.connect(&alice).await.add_order(order_alice); + let tx = add_order_alice.send().await?; + let add_order_alice_data = get_add_order_event(orderbook, &tx).await?; + + // Add order bob with Bob connected to the OB + let add_order_bob = orderbook.connect(&bob).await.add_order(order_bob); + let tx = add_order_bob.send().await?; + let add_order_bob_data = get_add_order_event(orderbook, &tx).await?; + + // Make deposit of corresponded output token + let decimal_a = token_a.decimals().call().await?; + let amount_alice = get_amount_tokens(8, decimal_a); + + let decimal_b = token_b.decimals().call().await?; + let amount_bob = get_amount_tokens(6, decimal_b); + + // Alice has token_b as output + mint_tokens(&amount_alice, &alice.address(), &token_b).await?; + + // Approve Alice token_b using to OB + approve_tokens( + // &amount_alice, + &amount_alice, + &orderbook.address(), + &token_b.connect(&alice).await, + ) + .await?; + + // Deposit using Alice + let deposit_func = + orderbook + .connect(&alice) + .await + .deposit(token_b.address(), vault_id, amount_alice); + let _ = deposit_func.send().await?.await?; + + // Bob has token_a as output + mint_tokens(&amount_bob, &bob.address(), &token_a).await?; + + // Approve Bob token_a using to OB + approve_tokens( + &amount_bob, + &orderbook.address(), + &token_a.connect(&bob).await, + ) + .await?; + + // Deposit using Bob + let deposit_func = + orderbook + .connect(&bob) + .await + .deposit(token_a.address(), vault_id, amount_bob); + let _ = deposit_func.send().await?.await?; + + // BOUNTY BOT CLEARS THE ORDER + // Clear configuration + let order_alice = &add_order_alice_data.order; + let order_bob = &add_order_bob_data.order; + let clear_config = generate_clear_config(&vault_id, &vault_id); + + let a_signed_context: Vec = Vec::new(); + let b_signed_context: Vec = Vec::new(); + + let clear_func = orderbook.connect(&carl).await.clear( + order_alice.to_owned(), + order_bob.to_owned(), + clear_config, + a_signed_context, + b_signed_context, + ); + + // Wait for the transaction + let tx_clear = clear_func.send().await?; + let clear_tx_hash = tx_clear.tx_hash(); + + // Clear ID (using 0 since was only one clear) + let clear_entity_id = format!("{:?}-{}", clear_tx_hash, 0); + + // Wait for Subgraph sync + wait().await?; + + // Generate the both Token Vault IDs + let alice_token_vault_a = format!("{}-{:?}-{:?}", vault_id, alice.address(), token_a.address()); + let alice_token_vault_b = format!("{}-{:?}-{:?}", vault_id, alice.address(), token_b.address()); + let bob_token_vault_a = format!("{}-{:?}-{:?}", vault_id, bob.address(), token_a.address()); + let bob_token_vault_b = format!("{}-{:?}-{:?}", vault_id, bob.address(), token_b.address()); + let carl_token_vault_a = format!("{}-{:?}-{:?}", vault_id, carl.address(), token_a.address()); + let carl_token_vault_b = format!("{}-{:?}-{:?}", vault_id, carl.address(), token_b.address()); + + // All token vault entities present on the Clear should be created + // - ALICE + let vault_balance_a: U256 = orderbook + .vault_balance(alice.address(), token_a.address(), vault_id) + .call() + .await?; + let vaul_balance_display_a = + display_number(vault_balance_a, get_decimals(token_a.address()).await?); + + let vault_balance_b: U256 = orderbook + .vault_balance(alice.address(), token_b.address(), vault_id) + .call() + .await?; + let vaul_balance_display_b = + display_number(vault_balance_b, get_decimals(token_b.address()).await?); + + let resp_a = Query::token_vault(&alice_token_vault_a).await?; + let resp_b = Query::token_vault(&alice_token_vault_b).await?; + + assert_eq!(resp_a.owner, alice.address()); + assert_eq!(resp_a.balance, vault_balance_a); + assert_eq!(resp_a.balance_display, vaul_balance_display_a); + assert!( + resp_a.orders_clears.contains(&clear_entity_id), + "missing clear ID" + ); + + assert_eq!(resp_b.owner, alice.address()); + assert_eq!(resp_b.balance, vault_balance_b); + assert_eq!(resp_b.balance_display, vaul_balance_display_b); + assert!( + resp_b.orders_clears.contains(&clear_entity_id), + "missing clear ID" + ); + + // - BOB + let vault_balance_a: U256 = orderbook + .vault_balance(bob.address(), token_a.address(), vault_id) + .call() + .await?; + let vaul_balance_display_a = + display_number(vault_balance_a, get_decimals(token_a.address()).await?); + + let vault_balance_b: U256 = orderbook + .vault_balance(bob.address(), token_b.address(), vault_id) + .call() + .await?; + let vaul_balance_display_b = + display_number(vault_balance_b, get_decimals(token_b.address()).await?); + + let resp_a = Query::token_vault(&bob_token_vault_a).await?; + let resp_b = Query::token_vault(&bob_token_vault_b).await?; + + assert_eq!(resp_a.owner, bob.address()); + assert_eq!(resp_a.balance, vault_balance_a); + assert_eq!(resp_a.balance_display, vaul_balance_display_a); + assert!( + resp_a.orders_clears.contains(&clear_entity_id), + "missing clear ID" + ); + + assert_eq!(resp_b.owner, bob.address()); + assert_eq!(resp_b.balance, vault_balance_b); + assert_eq!(resp_b.balance_display, vaul_balance_display_b); + assert!( + resp_b.orders_clears.contains(&clear_entity_id), + "missing clear ID" + ); + + // - CARL + let vault_balance_a: U256 = orderbook + .vault_balance(carl.address(), token_a.address(), vault_id) + .call() + .await?; + let vaul_balance_display_a = + display_number(vault_balance_a, get_decimals(token_a.address()).await?); + + let vault_balance_b: U256 = orderbook + .vault_balance(carl.address(), token_b.address(), vault_id) + .call() + .await?; + let vaul_balance_display_b = + display_number(vault_balance_b, get_decimals(token_b.address()).await?); + + let resp_a = Query::token_vault(&carl_token_vault_a).await?; + let resp_b = Query::token_vault(&carl_token_vault_b).await?; + + assert_eq!(resp_a.owner, carl.address()); + assert_eq!(resp_a.balance, vault_balance_a); + assert_eq!(resp_a.balance_display, vaul_balance_display_a); + + assert_eq!(resp_b.owner, carl.address()); + assert_eq!(resp_b.balance, vault_balance_b); + assert_eq!(resp_b.balance_display, vaul_balance_display_b); + + Ok(()) +} + +#[tokio::main] +#[test] +async fn token_vault_entity_take_order_test() -> anyhow::Result<()> { + let orderbook = get_orderbook().await?; + + let alice = get_wallet(1); + let bob = get_wallet(2); + + // Connect the orderbook to another wallet + let orderbook = orderbook.connect(&alice).await; + + // Vault id + let vault_id = generate_random_u256(); + + // Deploy ExpressionDeployerNP for the config + let expression_deployer = get_expression_deployer().await?; + // let expression_deployer = get_expression_deployer().await?; + + // Deploy ERC20 token contract (A) connected to Alice + let token_a = deploy_erc20_mock(None).await?; + + // Deploy ERC20 token contract (B) connected to Alice + let token_b = deploy_erc20_mock(None).await?; + + // Build OrderConfig + let order_config = generate_order_config( + expression_deployer, + &token_a, + Some(vault_id), + &token_b, + Some(vault_id), + ) + .await; + + // Add the order + let add_order_func = orderbook.add_order(order_config.clone()); + let tx_add_order = add_order_func.send().await?; + + // Decode events from the transaction + let add_order_data = get_add_order_event(&orderbook, &tx_add_order).await?; + + // Amount to deposit + let amount_b = get_amount_tokens(1000, token_b.decimals().call().await.unwrap()); + + // Fill to Alice with tokens + mint_tokens(&amount_b, &alice.address(), &token_b).await?; + + // Connect token to Alice and approve Orderbook to move tokens + approve_tokens( + &amount_b, + &orderbook.address(), + &token_b.connect(&alice).await, + ) + .await?; + + // Alice deposit tokens + let deposit_func = orderbook.deposit(token_b.address(), vault_id, amount_b); + let _ = deposit_func.send().await?; + + // BOB TAKE THE ORDER + + // Take Order configs + let minimum_input = U256::from(0); + let maximum_input = get_amount_tokens(1000, token_b.decimals().call().await.unwrap()); + let maximum_io_ratio = U256::from(10000000000000000000u64); // 10e18 + + let take_order_config = TakeOrderConfig { + order: add_order_data.order, + input_io_index: U256::zero(), + output_io_index: U256::zero(), + signed_context: Vec::new(), + }; + + let take_orders_config = TakeOrdersConfigV2 { + minimum_input, + maximum_input, + maximum_io_ratio, + orders: vec![take_order_config], + data: Bytes::new(), // Empty data + }; + + // Fill bob with token A (token input of the order) + // let amount_a = get_amount_tokens(1000, token_a.decimals().call().await.unwrap()); + let amount_a = amount_b + .saturating_mul(maximum_io_ratio) + .checked_div(U256::from(1000000000000000000u64)) // 1e18 + .unwrap(); + + mint_tokens(&amount_a, &bob.address(), &token_a).await?; + + // Connect token to Bob and approve Orderbook to move tokens + approve_tokens( + &amount_a, + &orderbook.address(), + &token_a.connect(&bob).await, + ) + .await?; + + // Take the order + let take_order_func = orderbook + .connect(&bob) + .await + .take_orders(take_orders_config); + let tx_take_order = take_order_func.send().await?; + + let tx_receipt = tx_take_order.await?.unwrap(); + + let take_order_tx_hash = &tx_receipt.transaction_hash; + + let take_order_events = get_take_order_events(&orderbook, &take_order_tx_hash).await?; + + // Just one take order happned in this transaction + assert!(take_order_events.len() == 1); + + let token_vault_a = format!("{}-{:?}-{:?}", vault_id, alice.address(), token_a.address()); + let token_vault_b = format!("{}-{:?}-{:?}", vault_id, alice.address(), token_b.address()); + + // Index 0 since only one take order was made in this tx + let take_order_entity_a_id = format!("{:?}-{}-{}", take_order_tx_hash, 0, token_vault_a); + let take_order_entity_b_id = format!("{:?}-{}-{}", take_order_tx_hash, 0, token_vault_b); + + // Vault Balances for both + let vault_balance_a: U256 = orderbook + .vault_balance(alice.address(), token_a.address(), vault_id) + .call() + .await?; + let vaul_balance_display_a = + display_number(vault_balance_a, get_decimals(token_a.address()).await?); + + let vault_balance_b: U256 = orderbook + .vault_balance(alice.address(), token_b.address(), vault_id) + .call() + .await?; + let vaul_balance_display_b = + display_number(vault_balance_b, get_decimals(token_b.address()).await?); + + // Both entities should be updated + let resp_a = Query::token_vault(&token_vault_a).await?; + let resp_b = Query::token_vault(&token_vault_b).await?; + + // Checking token vault A + assert_eq!(resp_a.owner, alice.address()); + assert_eq!(resp_a.vault_id, vault_id); + assert_eq!(resp_a.token, token_a.address()); + assert_eq!(resp_a.balance, vault_balance_a); + assert_eq!(resp_a.balance_display, vaul_balance_display_a); + assert!( + resp_a.take_orders.contains(&take_order_entity_a_id), + "missing take order ID" + ); + + // Checking token vault B + assert_eq!(resp_b.owner, alice.address()); + assert_eq!(resp_b.vault_id, vault_id); + assert_eq!(resp_b.token, token_b.address()); + assert_eq!(resp_b.balance, vault_balance_b); + assert_eq!(resp_b.balance_display, vaul_balance_display_b); + assert!( + resp_b.take_orders.contains(&take_order_entity_b_id), + "missing take order ID" + ); + + Ok(()) +} + +#[tokio::main] +#[test] +async fn bounty_entity_clear_test() -> anyhow::Result<()> { + let alice = get_wallet(0); + let bob = get_wallet(1); + let bounty_bot = get_wallet(2); + + let orderbook = get_orderbook().await?; + + // Deploy ExpressionDeployerNP for the config + let expression_deployer = get_expression_deployer().await?; + + // Deploy ERC20 token contract (A) + let token_a = deploy_erc20_mock(None).await?; + // Deploy ERC20 token contract (B) + let token_b = deploy_erc20_mock(None).await?; + + // Generate vault ids for each account (Input and Output) + let vault_id = generate_random_u256(); + + // Order Alice Configuration + let order_alice = generate_order_config( + &expression_deployer, + &token_a, + Some(vault_id), + &token_b, + Some(vault_id), + ) + .await; + + // Order Bob Configuration + let order_bob = generate_order_config( + &expression_deployer, + &token_b, + Some(vault_id), + &token_a, + Some(vault_id), + ) + .await; + + // Add order alice with Alice connected to the OB + let add_order_alice = orderbook.connect(&alice).await.add_order(order_alice); + let tx = add_order_alice.send().await?; + let add_order_alice_data = get_add_order_event(orderbook, &tx).await?; + + // Add order bob with Bob connected to the OB + let add_order_bob = orderbook.connect(&bob).await.add_order(order_bob); + let tx = add_order_bob.send().await?; + let add_order_bob_data = get_add_order_event(orderbook, &tx).await?; + + // Make deposit of corresponded output token + let decimal_a = token_a.decimals().call().await?; + let amount_alice = get_amount_tokens(8, decimal_a); + + let decimal_b = token_b.decimals().call().await?; + let amount_bob = get_amount_tokens(6, decimal_b); + + // Alice has token_b as output + mint_tokens(&amount_alice, &alice.address(), &token_b).await?; + + // Approve Alice token_b using to OB + approve_tokens( + // &amount_alice, + &amount_alice, + &orderbook.address(), + &token_b.connect(&alice).await, + ) + .await?; + + // Deposit using Alice + let deposit_func = + orderbook + .connect(&alice) + .await + .deposit(token_b.address(), vault_id, amount_alice); + let _ = deposit_func.send().await?.await?; + + // Bob has token_a as output + mint_tokens(&amount_bob, &bob.address(), &token_a).await?; + + // Approve Bob token_a using to OB + approve_tokens( + &amount_bob, + &orderbook.address(), + &token_a.connect(&bob).await, + ) + .await?; + + // Deposit using Bob + let deposit_func = + orderbook + .connect(&bob) + .await + .deposit(token_a.address(), vault_id, amount_bob); + let _ = deposit_func.send().await?.await?; + + // BOUNTY BOT CLEARS THE ORDER + // Clear configuration + let order_alice = &add_order_alice_data.order; + let order_bob = &add_order_bob_data.order; + + let a_signed_context: Vec = Vec::new(); + let b_signed_context: Vec = Vec::new(); + + let clear_config_1 = generate_clear_config(&vault_id, &vault_id); + let clear_1 = ClearCall { + alice: order_alice.to_owned(), + bob: order_bob.to_owned(), + clear_config: clear_config_1, + alice_signed_context: a_signed_context.clone(), + bob_signed_context: b_signed_context.clone(), + }; + + let clear_config_2 = generate_clear_config(&vault_id, &vault_id); + let clear_2 = ClearCall { + alice: order_bob.to_owned(), + bob: order_alice.to_owned(), + clear_config: clear_config_2, + alice_signed_context: b_signed_context, + bob_signed_context: a_signed_context, + }; + + let clear_configs = vec![clear_1, clear_2]; + + let multi_clear_bytes = generate_multi_clear(&clear_configs); + + let multicall_func = orderbook + .connect(&bounty_bot) + .await + .multicall(multi_clear_bytes); + + let tx_multicall = multicall_func.send().await?; + + // Tx hash that hold all the logs + let clears_tx_hash = tx_multicall.tx_hash(); + + let clear_events = get_clear_events(&orderbook, &clears_tx_hash).await?; + let after_clear_events = get_after_clear_events(&orderbook, &clears_tx_hash).await?; + + let block_data = get_block_data(&clears_tx_hash).await?; + + // It should emit the same amount of events both parts + assert_eq!(clear_events.len(), after_clear_events.len()); + + // Bounty Vault Entity ID + let bounty_vault = format!("{}-{:?}", vault_id, bounty_bot.address()); + + // Wait for Subgraph sync + wait().await?; + + for (index, clear) in clear_events.iter().enumerate() { + let after_clear = after_clear_events.get(index).unwrap(); + + let bounty_entity_id = format!("{:?}-{}", clears_tx_hash, index); + let order_clear_id = bounty_entity_id.clone(); + + let clear_state_change = &after_clear.clear_state_change; + + // In these tests, generally only one token is added in the Order, so we pick the "first" in the array + let alice_token_output: &Address = &clear.alice.valid_outputs.first().unwrap().token; + let bob_token_output: &Address = &clear.bob.valid_outputs.first().unwrap().token; + + // Bounty Amount from A (alice) + let bounty_amount_a = clear_state_change + .alice_output + .saturating_sub(clear_state_change.bob_input); + + let bounty_amount_a_display = + display_number(bounty_amount_a, get_decimals(*alice_token_output).await?); + + // Bounty Amount from B (bpb) + let bounty_amount_b = clear_state_change + .bob_output + .saturating_sub(clear_state_change.alice_input); + + let bounty_amount_b_display = + display_number(bounty_amount_b, get_decimals(*bob_token_output).await?); + + let resp = Query::bounty(&bounty_entity_id).await?; + + assert_eq!(resp.clearer, bounty_bot.address()); + assert_eq!(resp.order_clear, order_clear_id); + + assert_eq!(resp.bounty_vault_a, bounty_vault); + assert_eq!(resp.bounty_vault_b, bounty_vault); + + assert_eq!(resp.bounty_token_a, *alice_token_output); + assert_eq!(resp.bounty_token_b, *bob_token_output); + + assert_eq!(resp.bounty_amount_a, Some(bounty_amount_a)); + assert_eq!(resp.bounty_amount_a_display, Some(bounty_amount_a_display)); + + assert_eq!(resp.bounty_amount_b, Some(bounty_amount_b)); + assert_eq!(resp.bounty_amount_b_display, Some(bounty_amount_b_display)); + + assert_eq!(resp.transaction, clears_tx_hash); + assert_eq!(resp.emitter, bounty_bot.address()); + assert_eq!(resp.timestamp, block_data.timestamp); + } + Ok(()) +} + +#[tokio::main] +#[test] +async fn order_clear_state_change_entity_clear_test() -> anyhow::Result<()> { + let alice = get_wallet(0); + let bob = get_wallet(1); + let bounty_bot = get_wallet(2); + + let orderbook = get_orderbook().await?; + + // Deploy ExpressionDeployerNP for the config + let expression_deployer = get_expression_deployer().await?; + + // Deploy ERC20 token contract (A) + let token_a = deploy_erc20_mock(None).await?; + // Deploy ERC20 token contract (B) + let token_b = deploy_erc20_mock(None).await?; + + // Generate vault ids for each account (Input and Output) + let vault_id = generate_random_u256(); + + // Order Alice Configuration + let order_alice = generate_order_config( + &expression_deployer, + &token_a, + Some(vault_id), + &token_b, + Some(vault_id), + ) + .await; + + // Order Bob Configuration + let order_bob = generate_order_config( + &expression_deployer, + &token_b, + Some(vault_id), + &token_a, + Some(vault_id), + ) + .await; + + // Add order alice with Alice connected to the OB + let add_order_alice = orderbook.connect(&alice).await.add_order(order_alice); + let tx = add_order_alice.send().await?; + let add_order_alice_data = get_add_order_event(orderbook, &tx).await?; + + // Add order bob with Bob connected to the OB + let add_order_bob = orderbook.connect(&bob).await.add_order(order_bob); + let tx = add_order_bob.send().await?; + let add_order_bob_data = get_add_order_event(orderbook, &tx).await?; + + // Make deposit of corresponded output token + let decimal_a = token_a.decimals().call().await?; + let amount_alice = get_amount_tokens(8, decimal_a); + + let decimal_b = token_b.decimals().call().await?; + let amount_bob = get_amount_tokens(6, decimal_b); + + // Alice has token_b as output + mint_tokens(&amount_alice, &alice.address(), &token_b).await?; + + // Approve Alice token_b using to OB + approve_tokens( + // &amount_alice, + &amount_alice, + &orderbook.address(), + &token_b.connect(&alice).await, + ) + .await?; + + // Deposit using Alice + let deposit_func = + orderbook + .connect(&alice) + .await + .deposit(token_b.address(), vault_id, amount_alice); + let _ = deposit_func.send().await?.await?; + + // Bob has token_a as output + mint_tokens(&amount_bob, &bob.address(), &token_a).await?; + + // Approve Bob token_a using to OB + approve_tokens( + &amount_bob, + &orderbook.address(), + &token_a.connect(&bob).await, + ) + .await?; + + // Deposit using Bob + let deposit_func = + orderbook + .connect(&bob) + .await + .deposit(token_a.address(), vault_id, amount_bob); + let _ = deposit_func.send().await?.await?; + + // BOUNTY BOT CLEARS THE ORDER + // Clear configuration + let order_alice = &add_order_alice_data.order; + let order_bob = &add_order_bob_data.order; + + let a_signed_context: Vec = Vec::new(); + let b_signed_context: Vec = Vec::new(); + + let clear_config_1 = generate_clear_config(&vault_id, &vault_id); + let clear_1 = ClearCall { + alice: order_alice.to_owned(), + bob: order_bob.to_owned(), + clear_config: clear_config_1, + alice_signed_context: a_signed_context.clone(), + bob_signed_context: b_signed_context.clone(), + }; + + let clear_config_2 = generate_clear_config(&vault_id, &vault_id); + let clear_2 = ClearCall { + alice: order_bob.to_owned(), + bob: order_alice.to_owned(), + clear_config: clear_config_2, + alice_signed_context: b_signed_context, + bob_signed_context: a_signed_context, + }; + + let clear_configs = vec![clear_1, clear_2]; + + let multi_clear_bytes = generate_multi_clear(&clear_configs); + + let multicall_func = orderbook + .connect(&bounty_bot) + .await + .multicall(multi_clear_bytes); + + let tx_multicall = multicall_func.send().await?; + + // Tx hash that hold all the logs + let clears_tx_hash = tx_multicall.tx_hash(); + + let clear_events = get_clear_events(&orderbook, &clears_tx_hash).await?; + let after_clear_events = get_after_clear_events(&orderbook, &clears_tx_hash).await?; + + // It should emit the same amount of events both parts + assert_eq!(clear_events.len(), after_clear_events.len()); + + // Wait for Subgraph sync + wait().await?; + + for (index, after_clear) in after_clear_events.iter().enumerate() { + let order_clear_id = format!("{:?}-{}", clears_tx_hash, index); + let get_order_clear_state_change_entity_id = order_clear_id.clone(); + + let clear_state_change = &after_clear.clear_state_change; + + let resp = Query::order_clear_state_change(&get_order_clear_state_change_entity_id).await?; + + assert_eq!(resp.order_clear, order_clear_id); + + assert_eq!(resp.a_output, clear_state_change.alice_output); + assert_eq!(resp.b_output, clear_state_change.bob_output); + + assert_eq!(resp.a_input, clear_state_change.alice_input); + assert_eq!(resp.b_input, clear_state_change.bob_input); + } + Ok(()) +} + +#[tokio::main] +#[test] +async fn token_vault_take_order_entity_take_order_test() -> anyhow::Result<()> { + let orderbook = get_orderbook().await?; + + let alice = get_wallet(1); + let bob = get_wallet(2); + + // Connect the orderbook to another wallet + let orderbook = orderbook.connect(&alice).await; + + // Vault id + let vault_id = generate_random_u256(); + + // Deploy ExpressionDeployerNP for the config + let expression_deployer = get_expression_deployer().await?; + // let expression_deployer = get_expression_deployer().await?; + + // Deploy ERC20 token contract (A) connected to Alice + let token_input = deploy_erc20_mock(None).await?; + + // Deploy ERC20 token contract (B) connected to Alice + let token_output = deploy_erc20_mock(None).await?; + + // Build OrderConfig + let order_config = generate_order_config( + expression_deployer, + &token_input, + Some(vault_id), + &token_output, + Some(vault_id), + ) + .await; + + // Add the order + let add_order_func = orderbook.add_order(order_config.clone()); + let tx_add_order = add_order_func.send().await?; + + // Decode events from the transaction + let add_order_data = get_add_order_event(&orderbook, &tx_add_order).await?; + + // Amount to deposit + let amount_b = get_amount_tokens(1000, token_output.decimals().call().await.unwrap()); + + // Fill to Alice with tokens + mint_tokens(&amount_b, &alice.address(), &token_output).await?; + + // Connect token to Alice and approve Orderbook to move tokens + approve_tokens( + &amount_b, + &orderbook.address(), + &token_output.connect(&alice).await, + ) + .await?; + + // Alice deposit tokens + let deposit_func = orderbook.deposit(token_output.address(), vault_id, amount_b); + let _ = deposit_func.send().await?; + + // BOB TAKE THE ORDER + + // Take Order configs + let minimum_input = U256::from(0); + let maximum_input = get_amount_tokens(1000, token_output.decimals().call().await.unwrap()); + let maximum_io_ratio = U256::from(10000000000000000000u64); // 10e18 + + let take_order_config = TakeOrderConfig { + order: add_order_data.order, + input_io_index: U256::zero(), + output_io_index: U256::zero(), + signed_context: Vec::new(), + }; + + let take_orders_config = TakeOrdersConfigV2 { + minimum_input, + maximum_input, + maximum_io_ratio, + orders: vec![take_order_config], + data: Bytes::new(), // Empty data + }; + + // Fill bob with token A (token input of the order) + // let amount_a = get_amount_tokens(1000, token_a.decimals().call().await.unwrap()); + let amount_a = amount_b + .saturating_mul(maximum_io_ratio) + .checked_div(U256::from(1000000000000000000u64)) // 1e18 + .unwrap(); + + mint_tokens(&amount_a, &bob.address(), &token_input).await?; + + // Connect token to Bob and approve Orderbook to move tokens + approve_tokens( + &amount_a, + &orderbook.address(), + &token_input.connect(&bob).await, + ) + .await?; + + // Take the order + let take_order_func = orderbook + .connect(&bob) + .await + .take_orders(take_orders_config); + let tx_take_order = take_order_func.send().await?; + + let tx_receipt = tx_take_order.await?.unwrap(); + + let take_order_tx_hash = &tx_receipt.transaction_hash; + + let take_order_events = get_take_order_events(&orderbook, &take_order_tx_hash).await?; + + // Just one take order happned in this transaction + assert!(take_order_events.len() == 1); + + // Using index 0 since only one take order was made in this tx + let take_order_entity = format!("{:?}-{}", take_order_tx_hash, 0); + let token_vault_input = format!( + "{}-{:?}-{:?}", + vault_id, + alice.address(), + token_input.address() + ); + let token_vault_output = format!( + "{}-{:?}-{:?}", + vault_id, + alice.address(), + token_output.address() + ); + + let token_vault_take_order_a_id = format!("{}-{}", take_order_entity, token_vault_input); + let token_vault_take_order_b_id = format!("{}-{}", take_order_entity, token_vault_output); + + // Wait for Subgraph sync + wait().await?; + + let resp_a = Query::token_vault_take_order(&token_vault_take_order_a_id).await?; + let resp_b = Query::token_vault_take_order(&token_vault_take_order_b_id).await?; + + // Token Input + assert!(resp_a.was_input); + assert!(!resp_a.was_output); + assert_eq!(resp_a.take_order, take_order_entity); + assert_eq!(resp_a.token_vault, token_vault_input); + + // Token Output + assert!(!resp_b.was_input); + assert!(resp_b.was_output); + assert_eq!(resp_b.take_order, take_order_entity); + assert_eq!(resp_b.token_vault, token_vault_output); + + Ok(()) +} + +#[tokio::main] +#[test] +async fn take_order_entity_take_order_test() -> anyhow::Result<()> { + let orderbook = get_orderbook().await?; + + let alice = get_wallet(1); + let bob = get_wallet(2); + + // Connect the orderbook to another wallet + let orderbook = orderbook.connect(&alice).await; + + // Vault id + let vault_id = generate_random_u256(); + + // Deploy ExpressionDeployerNP for the config + let expression_deployer = get_expression_deployer().await?; + // let expression_deployer = get_expression_deployer().await?; + + // Deploy ERC20 token contract (A) connected to Alice + let token_input = deploy_erc20_mock(None).await?; + + // Deploy ERC20 token contract (B) connected to Alice + let token_output = deploy_erc20_mock(None).await?; + + // Build OrderConfig + let order_config = generate_order_config( + expression_deployer, + &token_input, + Some(vault_id), + &token_output, + Some(vault_id), + ) + .await; + + // Add the order + let add_order_func = orderbook.add_order(order_config.clone()); + let tx_add_order = add_order_func.send().await?; + + // Decode events from the transaction + let add_order_data = get_add_order_event(&orderbook, &tx_add_order).await?; + + // Amount to deposit + let amount_b = get_amount_tokens(1000, token_output.decimals().call().await.unwrap()); + + // Fill to Alice with tokens + mint_tokens(&amount_b, &alice.address(), &token_output).await?; + + // Connect token to Alice and approve Orderbook to move tokens + approve_tokens( + &amount_b, + &orderbook.address(), + &token_output.connect(&alice).await, + ) + .await?; + + // Alice deposit tokens + let deposit_func = orderbook.deposit(token_output.address(), vault_id, amount_b); + let _ = deposit_func.send().await?; + + // BOB TAKE THE ORDER + + // Take Order configs + let minimum_input = U256::from(0); + let maximum_input = get_amount_tokens(1000, token_output.decimals().call().await.unwrap()); + let maximum_io_ratio = U256::from(10000000000000000000u64); // 10e18 + + let take_order_config = TakeOrderConfig { + order: add_order_data.order, + input_io_index: U256::zero(), + output_io_index: U256::zero(), + signed_context: Vec::new(), + }; + + let take_orders_config = TakeOrdersConfigV2 { + minimum_input, + maximum_input, + maximum_io_ratio, + orders: vec![take_order_config], + data: Bytes::new(), // Empty data + }; + + // Fill bob with token A (token input of the order) + // let amount_a = get_amount_tokens(1000, token_a.decimals().call().await.unwrap()); + let amount_a = amount_b + .saturating_mul(maximum_io_ratio) + .checked_div(U256::from(1000000000000000000u64)) // 1e18 + .unwrap(); + + mint_tokens(&amount_a, &bob.address(), &token_input).await?; + + // Connect token to Bob and approve Orderbook to move tokens + approve_tokens( + &amount_a, + &orderbook.address(), + &token_input.connect(&bob).await, + ) + .await?; + + // Take the order + let take_order_func = orderbook + .connect(&bob) + .await + .take_orders(take_orders_config); + let tx_take_order = take_order_func.send().await?; + + let tx_receipt = tx_take_order.await?.unwrap(); + + let take_order_tx_hash = &tx_receipt.transaction_hash; + let take_order_event = get_take_order_event(&orderbook, &take_order_tx_hash).await?; + + let block_data = get_block_data(&take_order_tx_hash).await?; + + // Using index 0 since only one take order was made in this tx + let take_order_entity = format!("{:?}-{}", take_order_tx_hash, 0); + + // Values with the perspective of the taker (bob) + let input_token = take_order_event + .config + .order + .valid_outputs + .first() + .unwrap() + .token; + + let output_token = take_order_event + .config + .order + .valid_inputs + .first() + .unwrap() + .token; + + let input_display = display_number(take_order_event.input, get_decimals(input_token).await?); + let output_display = display_number(take_order_event.output, get_decimals(output_token).await?); + + let io_ratio = + divide_decimal_strings(&input_display, &output_display).unwrap_or("0".to_string()); + + // Wait for Subgraph sync + wait().await?; + + let resp = Query::take_order_entity(&take_order_entity).await?; + + assert_eq!(resp.sender, take_order_event.sender); + assert_eq!(resp.order, h256_to_bytes(&add_order_data.order_hash.into())); + + assert_eq!(resp.input, take_order_event.input); + assert_eq!(resp.input_display, input_display); + + assert_eq!(resp.output, take_order_event.output); + assert_eq!(resp.output_display, output_display); + + assert_eq!(resp.io_ratio, io_ratio); + + assert_eq!(resp.input_io_index, take_order_event.config.input_io_index); + assert_eq!( + resp.output_io_index, + take_order_event.config.output_io_index + ); + + assert_eq!(resp.input_token, input_token); + assert_eq!(resp.output_token, output_token); + + assert_eq!(resp.context, Some(take_order_entity)); + + assert_eq!(resp.transaction, *take_order_tx_hash); + assert_eq!(resp.emitter, take_order_event.sender); + assert_eq!(resp.timestamp, block_data.timestamp); + + Ok(()) +} + +#[tokio::main] +#[test] +async fn context_entity_entity_take_order_test() -> anyhow::Result<()> { + let orderbook = get_orderbook().await?; + + let alice = get_wallet(1); + let bob = get_wallet(2); + + // Connect the orderbook to another wallet + let orderbook = orderbook.connect(&alice).await; + + // Vault id + let vault_id = generate_random_u256(); + + // Deploy ExpressionDeployerNP for the config + let expression_deployer = get_expression_deployer().await?; + // let expression_deployer = get_expression_deployer().await?; + + // Deploy ERC20 token contract (A) connected to Alice + let token_input = deploy_erc20_mock(None).await?; + + // Deploy ERC20 token contract (B) connected to Alice + let token_output = deploy_erc20_mock(None).await?; + + // Build OrderConfig + let order_config = generate_order_config( + expression_deployer, + &token_input, + Some(vault_id), + &token_output, + Some(vault_id), + ) + .await; + + // Add the order + let add_order_func = orderbook.add_order(order_config.clone()); + let tx_add_order = add_order_func.send().await?; + + // Decode events from the transaction + let add_order_data = get_add_order_event(&orderbook, &tx_add_order).await?; + + // Amount to deposit + let amount_b = get_amount_tokens(1000, token_output.decimals().call().await.unwrap()); + + // Fill to Alice with tokens + mint_tokens(&amount_b, &alice.address(), &token_output).await?; + + // Connect token to Alice and approve Orderbook to move tokens + approve_tokens( + &amount_b, + &orderbook.address(), + &token_output.connect(&alice).await, + ) + .await?; + + // Alice deposit tokens + let deposit_func = orderbook.deposit(token_output.address(), vault_id, amount_b); + let _ = deposit_func.send().await?; + + // BOB TAKE THE ORDER + + // Take Order configs + let minimum_input = U256::from(0); + let maximum_input = get_amount_tokens(1000, token_output.decimals().call().await.unwrap()); + let maximum_io_ratio = U256::from(10000000000000000000u64); // 10e18 + + let alice_context = generate_signed_context_v1(&alice).await?; + let bob_context = generate_signed_context_v1(&bob).await?; + + let take_order_config = TakeOrderConfig { + order: add_order_data.order, + input_io_index: U256::zero(), + output_io_index: U256::zero(), + signed_context: vec![alice_context, bob_context], + }; + + let take_orders_config = TakeOrdersConfigV2 { + minimum_input, + maximum_input, + maximum_io_ratio, + orders: vec![take_order_config], + data: Bytes::new(), // Empty data + }; + + // Fill bob with token A (token input of the order) + // let amount_a = get_amount_tokens(1000, token_a.decimals().call().await.unwrap()); + let amount_a = amount_b + .saturating_mul(maximum_io_ratio) + .checked_div(U256::from(1000000000000000000u64)) // 1e18 + .unwrap(); + + mint_tokens(&amount_a, &bob.address(), &token_input).await?; + + // Connect token to Bob and approve Orderbook to move tokens + approve_tokens( + &amount_a, + &orderbook.address(), + &token_input.connect(&bob).await, + ) + .await?; + + // Take the order + let take_order_func = orderbook + .connect(&bob) + .await + .take_orders(take_orders_config); + let tx_take_order = take_order_func.send().await?; + + let tx_receipt = tx_take_order.await?.unwrap(); + + let take_order_tx_hash = &tx_receipt.transaction_hash; + + let context_event = get_context_event(&orderbook, &take_order_tx_hash).await?; + + let context: Vec> = context_event.context; + + assert!( + context.len() >= ContextIndex::VaultOutputsColumn as usize, + "wrong context emitted by OB" + ); + + let block_data = get_block_data(&take_order_tx_hash).await?; + + // Using index 0 since only one take order was made in this tx + let take_order_entity = format!("{:?}-{}", take_order_tx_hash, 0); + let context_entity_id = take_order_entity.clone(); + + // Wait for Subgraph sync + wait().await?; + + let resp = Query::context_entity(&context_entity_id).await?; + + assert_eq!(resp.caller, bob.address(), "wrong caller"); + assert_eq!(resp.transaction, *take_order_tx_hash, "wrong tranasction"); + assert_eq!(resp.emitter, bob.address(), "wrong emitter"); + assert_eq!(resp.timestamp, block_data.timestamp, "wrong timestamp"); + + // Skiping the first colummn, since that column hold the `base` context, which is the caller and the contract + // for (index, current_context) in context.iter().enumerate().skip(1) { + for index in 1..=4 { + let current_context = context.get(index).unwrap(); + + let context_matched = match ContextIndex::from_usize(index).unwrap() { + ContextIndex::BaseContext => true, // this never happen here + ContextIndex::CallingContextColumn => { + resp.calling_context == Some(current_context.to_owned()) + } + ContextIndex::CalculationsColumn => { + resp.calculations_context == Some(current_context.to_owned()) + } + ContextIndex::VaultInputsColumn => { + resp.vault_inputs_context == Some(current_context.to_owned()) + } + ContextIndex::VaultOutputsColumn => { + resp.vault_outputs_context == Some(current_context.to_owned()) + } + }; + + assert!(context_matched, "wrong context at: {index}"); + } + + // IF it's bigger than the last column, the have signed context + if context.len() > ContextIndex::VaultOutputsColumn as usize { + if let Some(ref resp_signed_contexts) = resp.signed_context { + let signed_context_vec = context[5..].to_vec(); + + let signers: &Vec = signed_context_vec.first().unwrap(); + + assert!(signers.len() == signed_context_vec.len() - 1); + + for index in 0..signers.len() { + let signed_context_id = format!("{:?}-{}", take_order_tx_hash, index); + let current_signer = u256_to_address(&signers[index]); + let current_context = Some(signed_context_vec.get(index + 1).unwrap().to_owned()); + + let resp_context = resp_signed_contexts.get(index).unwrap(); + + assert_eq!( + resp_context.id, signed_context_id, + "missing signed_context. \n- Expected: {}\n- Found: {}", + signed_context_id, resp_context.id + ); + assert_eq!( + resp_context.signer, current_signer, + "wrong signer. \n- Expected: {:?}\n- Found: {:?}", + resp_context.signer, current_signer + ); + assert_eq!( + resp_context.context, current_context, + "wrong signed context at {}. \n- Expected: {:?}\n- Found: {:?}", + index, resp_context.context, current_context + ); + } + } else { + assert!(false, "missing signed contexts"); + } + } + + Ok(()) +} + +#[test] +fn util_cbor_meta_test() -> anyhow::Result<()> { + // Read meta from root repository (output from nix command) and convert to Bytes + let ob_meta: Vec = read_orderbook_meta(); + + let output: Vec = decode_rain_meta(ob_meta.clone().into())?; + + let encoded_again = encode_rain_docs(output); + + assert_eq!(ob_meta, encoded_again); + + Ok(()) +} diff --git a/subgraph/tests/generated/ERC20Mock.json b/subgraph/tests/generated/ERC20Mock.json new file mode 100644 index 0000000000..8059915419 --- /dev/null +++ b/subgraph/tests/generated/ERC20Mock.json @@ -0,0 +1,1252 @@ +{ + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "burn", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "subtractedValue", + "type": "uint256" + } + ], + "name": "decreaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "addedValue", + "type": "uint256" + } + ], + "name": "increaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "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": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": { + "object": "0x60806040523480156200001157600080fd5b506040518060400160405280600981526020016845524332304d6f636b60b81b815250604051806040016040528060048152602001634532304d60e01b81525081600390816200006291906200011f565b5060046200007182826200011f565b505050620001eb565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620000a557607f821691505b602082108103620000c657634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200011a57600081815260208120601f850160051c81016020861015620000f55750805b601f850160051c820191505b81811015620001165782815560010162000101565b5050505b505050565b81516001600160401b038111156200013b576200013b6200007a565b62000153816200014c845462000090565b84620000cc565b602080601f8311600181146200018b5760008415620001725750858301515b600019600386901b1c1916600185901b17855562000116565b600085815260208120601f198616915b82811015620001bc578886015182559484019460019091019084016200019b565b5085821015620001db5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b610aa280620001fb6000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c806340c10f191161008c5780639dc29fac116100665780639dc29fac146101a2578063a457c2d7146101b5578063a9059cbb146101c8578063dd62ed3e146101db57600080fd5b806340c10f191461015c57806370a082311461017157806395d89b411461019a57600080fd5b806306fdde03146100d4578063095ea7b3146100f257806318160ddd1461011557806323b872dd14610127578063313ce5671461013a5780633950935114610149575b600080fd5b6100dc6101ee565b6040516100e991906108ec565b60405180910390f35b610105610100366004610956565b610280565b60405190151581526020016100e9565b6002545b6040519081526020016100e9565b610105610135366004610980565b61029a565b604051601281526020016100e9565b610105610157366004610956565b6102be565b61016f61016a366004610956565b6102e0565b005b61011961017f3660046109bc565b6001600160a01b031660009081526020819052604090205490565b6100dc6102ee565b61016f6101b0366004610956565b6102fd565b6101056101c3366004610956565b610307565b6101056101d6366004610956565b610387565b6101196101e93660046109de565b610395565b6060600380546101fd90610a11565b80601f016020809104026020016040519081016040528092919081815260200182805461022990610a11565b80156102765780601f1061024b57610100808354040283529160200191610276565b820191906000526020600020905b81548152906001019060200180831161025957829003601f168201915b5050505050905090565b60003361028e8185856103c0565b60019150505b92915050565b6000336102a88582856104e5565b6102b385858561055f565b506001949350505050565b60003361028e8185856102d18383610395565b6102db9190610a4b565b6103c0565b6102ea8282610703565b5050565b6060600480546101fd90610a11565b6102ea82826107c2565b600033816103158286610395565b90508381101561037a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6102b382868684036103c0565b60003361028e81858561055f565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166104225760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610371565b6001600160a01b0382166104835760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610371565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b60006104f18484610395565b90506000198114610559578181101561054c5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610371565b61055984848484036103c0565b50505050565b6001600160a01b0383166105c35760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610371565b6001600160a01b0382166106255760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610371565b6001600160a01b0383166000908152602081905260409020548181101561069d5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610371565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610559565b6001600160a01b0382166107595760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610371565b806002600082825461076b9190610a4b565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6001600160a01b0382166108225760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610371565b6001600160a01b038216600090815260208190526040902054818110156108965760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610371565b6001600160a01b0383166000818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91016104d8565b600060208083528351808285015260005b81811015610919578581018301518582016040015282016108fd565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461095157600080fd5b919050565b6000806040838503121561096957600080fd5b6109728361093a565b946020939093013593505050565b60008060006060848603121561099557600080fd5b61099e8461093a565b92506109ac6020850161093a565b9150604084013590509250925092565b6000602082840312156109ce57600080fd5b6109d78261093a565b9392505050565b600080604083850312156109f157600080fd5b6109fa8361093a565b9150610a086020840161093a565b90509250929050565b600181811c90821680610a2557607f821691505b602082108103610a4557634e487b7160e01b600052602260045260246000fd5b50919050565b8082018082111561029457634e487b7160e01b600052601160045260246000fdfea26469706673582212202d7597b2dd2f4b94ffb19355f2921eb82c48391601c4fa9d14d5912e7bb8ee6464736f6c63430008130033", + "sourceMap": "106:281:87:-:0;;;140:43;;;;;;;;;;1980:113:175;;;;;;;;;;;;;-1:-1:-1;;;1980:113:175;;;;;;;;;;;;;;;;-1:-1:-1;;;1980:113:175;;;2054:5;2046;:13;;;;;;:::i;:::-;-1:-1:-1;2069:7:175;:17;2079:7;2069;:17;:::i;:::-;;1980:113;;106:281:87;;14:127:287;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:380;225:1;221:12;;;;268;;;289:61;;343:4;335:6;331:17;321:27;;289:61;396:2;388:6;385:14;365:18;362:38;359:161;;442:10;437:3;433:20;430:1;423:31;477:4;474:1;467:15;505:4;502:1;495:15;359:161;;146:380;;;:::o;657:545::-;759:2;754:3;751:11;748:448;;;795:1;820:5;816:2;809:17;865:4;861:2;851:19;935:2;923:10;919:19;916:1;912:27;906:4;902:38;971:4;959:10;956:20;953:47;;;-1:-1:-1;994:4:287;953:47;1049:2;1044:3;1040:12;1037:1;1033:20;1027:4;1023:31;1013:41;;1104:82;1122:2;1115:5;1112:13;1104:82;;;1167:17;;;1148:1;1137:13;1104:82;;;1108:3;;;748:448;657:545;;;:::o;1378:1352::-;1498:10;;-1:-1:-1;;;;;1520:30:287;;1517:56;;;1553:18;;:::i;:::-;1582:97;1672:6;1632:38;1664:4;1658:11;1632:38;:::i;:::-;1626:4;1582:97;:::i;:::-;1734:4;;1798:2;1787:14;;1815:1;1810:663;;;;2517:1;2534:6;2531:89;;;-1:-1:-1;2586:19:287;;;2580:26;2531:89;-1:-1:-1;;1335:1:287;1331:11;;;1327:24;1323:29;1313:40;1359:1;1355:11;;;1310:57;2633:81;;1780:944;;1810:663;604:1;597:14;;;641:4;628:18;;-1:-1:-1;;1846:20:287;;;1964:236;1978:7;1975:1;1972:14;1964:236;;;2067:19;;;2061:26;2046:42;;2159:27;;;;2127:1;2115:14;;;;1994:19;;1964:236;;;1968:3;2228:6;2219:7;2216:19;2213:201;;;2289:19;;;2283:26;-1:-1:-1;;2372:1:287;2368:14;;;2384:3;2364:24;2360:37;2356:42;2341:58;2326:74;;2213:201;-1:-1:-1;;;;;2460:1:287;2444:14;;;2440:22;2427:36;;-1:-1:-1;1378:1352:287:o;:::-;106:281:87;;;;;;", + "linkReferences": {} + }, + "deployedBytecode": { + "object": "0x608060405234801561001057600080fd5b50600436106100cf5760003560e01c806340c10f191161008c5780639dc29fac116100665780639dc29fac146101a2578063a457c2d7146101b5578063a9059cbb146101c8578063dd62ed3e146101db57600080fd5b806340c10f191461015c57806370a082311461017157806395d89b411461019a57600080fd5b806306fdde03146100d4578063095ea7b3146100f257806318160ddd1461011557806323b872dd14610127578063313ce5671461013a5780633950935114610149575b600080fd5b6100dc6101ee565b6040516100e991906108ec565b60405180910390f35b610105610100366004610956565b610280565b60405190151581526020016100e9565b6002545b6040519081526020016100e9565b610105610135366004610980565b61029a565b604051601281526020016100e9565b610105610157366004610956565b6102be565b61016f61016a366004610956565b6102e0565b005b61011961017f3660046109bc565b6001600160a01b031660009081526020819052604090205490565b6100dc6102ee565b61016f6101b0366004610956565b6102fd565b6101056101c3366004610956565b610307565b6101056101d6366004610956565b610387565b6101196101e93660046109de565b610395565b6060600380546101fd90610a11565b80601f016020809104026020016040519081016040528092919081815260200182805461022990610a11565b80156102765780601f1061024b57610100808354040283529160200191610276565b820191906000526020600020905b81548152906001019060200180831161025957829003601f168201915b5050505050905090565b60003361028e8185856103c0565b60019150505b92915050565b6000336102a88582856104e5565b6102b385858561055f565b506001949350505050565b60003361028e8185856102d18383610395565b6102db9190610a4b565b6103c0565b6102ea8282610703565b5050565b6060600480546101fd90610a11565b6102ea82826107c2565b600033816103158286610395565b90508381101561037a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6102b382868684036103c0565b60003361028e81858561055f565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166104225760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610371565b6001600160a01b0382166104835760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610371565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b60006104f18484610395565b90506000198114610559578181101561054c5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610371565b61055984848484036103c0565b50505050565b6001600160a01b0383166105c35760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610371565b6001600160a01b0382166106255760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610371565b6001600160a01b0383166000908152602081905260409020548181101561069d5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610371565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610559565b6001600160a01b0382166107595760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610371565b806002600082825461076b9190610a4b565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6001600160a01b0382166108225760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610371565b6001600160a01b038216600090815260208190526040902054818110156108965760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610371565b6001600160a01b0383166000818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91016104d8565b600060208083528351808285015260005b81811015610919578581018301518582016040015282016108fd565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461095157600080fd5b919050565b6000806040838503121561096957600080fd5b6109728361093a565b946020939093013593505050565b60008060006060848603121561099557600080fd5b61099e8461093a565b92506109ac6020850161093a565b9150604084013590509250925092565b6000602082840312156109ce57600080fd5b6109d78261093a565b9392505050565b600080604083850312156109f157600080fd5b6109fa8361093a565b9150610a086020840161093a565b90509250929050565b600181811c90821680610a2557607f821691505b602082108103610a4557634e487b7160e01b600052602260045260246000fd5b50919050565b8082018082111561029457634e487b7160e01b600052601160045260246000fdfea26469706673582212202d7597b2dd2f4b94ffb19355f2921eb82c48391601c4fa9d14d5912e7bb8ee6464736f6c63430008130033", + "sourceMap": "106:281:87:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2158:98:175;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4444:197;;;;;;:::i;:::-;;:::i;:::-;;;1169:14:287;;1162:22;1144:41;;1132:2;1117:18;4444:197:175;1004:187:287;3255:106:175;3342:12;;3255:106;;;1342:25:287;;;1330:2;1315:18;3255:106:175;1196:177:287;5203:256:175;;;;;;:::i;:::-;;:::i;3104:91::-;;;3186:2;1853:36:287;;1841:2;1826:18;3104:91:175;1711:184:287;5854:234:175;;;;;;:::i;:::-;;:::i;189:95:87:-;;;;;;:::i;:::-;;:::i;:::-;;3419:125:175;;;;;;:::i;:::-;-1:-1:-1;;;;;3519:18:175;3493:7;3519:18;;;;;;;;;;;;3419:125;2369:102;;;:::i;290:95:87:-;;;;;;:::i;:::-;;:::i;6575:427:175:-;;;;;;:::i;:::-;;:::i;3740:189::-;;;;;;:::i;:::-;;:::i;3987:149::-;;;;;;:::i;:::-;;:::i;2158:98::-;2212:13;2244:5;2237:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2158:98;:::o;4444:197::-;4527:4;719:10:221;4581:32:175;719:10:221;4597:7:175;4606:6;4581:8;:32::i;:::-;4630:4;4623:11;;;4444:197;;;;;:::o;5203:256::-;5300:4;719:10:221;5356:38:175;5372:4;719:10:221;5387:6:175;5356:15;:38::i;:::-;5404:27;5414:4;5420:2;5424:6;5404:9;:27::i;:::-;-1:-1:-1;5448:4:175;;5203:256;-1:-1:-1;;;;5203:256:175:o;5854:234::-;5942:4;719:10:221;5996:64:175;719:10:221;6012:7:175;6049:10;6021:25;719:10:221;6012:7:175;6021:9;:25::i;:::-;:38;;;;:::i;:::-;5996:8;:64::i;189:95:87:-;255:22;261:7;270:6;255:5;:22::i;:::-;189:95;;:::o;2369:102:175:-;2425:13;2457:7;2450:14;;;;;:::i;290:95:87:-;356:22;362:7;371:6;356:5;:22::i;6575:427:175:-;6668:4;719:10:221;6668:4:175;6749:25;719:10:221;6766:7:175;6749:9;:25::i;:::-;6722:52;;6812:15;6792:16;:35;;6784:85;;;;-1:-1:-1;;;6784:85:175;;3170:2:287;6784:85:175;;;3152:21:287;3209:2;3189:18;;;3182:30;3248:34;3228:18;;;3221:62;-1:-1:-1;;;3299:18:287;;;3292:35;3344:19;;6784:85:175;;;;;;;;;6903:60;6912:5;6919:7;6947:15;6928:16;:34;6903:8;:60::i;3740:189::-;3819:4;719:10:221;3873:28:175;719:10:221;3890:2:175;3894:6;3873:9;:28::i;3987:149::-;-1:-1:-1;;;;;4102:18:175;;;4076:7;4102:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3987:149::o;10457:340::-;-1:-1:-1;;;;;10558:19:175;;10550:68;;;;-1:-1:-1;;;10550:68:175;;3576:2:287;10550:68:175;;;3558:21:287;3615:2;3595:18;;;3588:30;3654:34;3634:18;;;3627:62;-1:-1:-1;;;3705:18:287;;;3698:34;3749:19;;10550:68:175;3374:400:287;10550:68:175;-1:-1:-1;;;;;10636:21:175;;10628:68;;;;-1:-1:-1;;;10628:68:175;;3981:2:287;10628:68:175;;;3963:21:287;4020:2;4000:18;;;3993:30;4059:34;4039:18;;;4032:62;-1:-1:-1;;;4110:18:287;;;4103:32;4152:19;;10628:68:175;3779:398:287;10628:68:175;-1:-1:-1;;;;;10707:18:175;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10758:32;;1342:25:287;;;10758:32:175;;1315:18:287;10758:32:175;;;;;;;;10457:340;;;:::o;11078:411::-;11178:24;11205:25;11215:5;11222:7;11205:9;:25::i;:::-;11178:52;;-1:-1:-1;;11244:16:175;:37;11240:243;;11325:6;11305:16;:26;;11297:68;;;;-1:-1:-1;;;11297:68:175;;4384:2:287;11297:68:175;;;4366:21:287;4423:2;4403:18;;;4396:30;4462:31;4442:18;;;4435:59;4511:18;;11297:68:175;4182:353:287;11297:68:175;11407:51;11416:5;11423:7;11451:6;11432:16;:25;11407:8;:51::i;:::-;11168:321;11078:411;;;:::o;7456:788::-;-1:-1:-1;;;;;7552:18:175;;7544:68;;;;-1:-1:-1;;;7544:68:175;;4742:2:287;7544:68:175;;;4724:21:287;4781:2;4761:18;;;4754:30;4820:34;4800:18;;;4793:62;-1:-1:-1;;;4871:18:287;;;4864:35;4916:19;;7544:68:175;4540:401:287;7544:68:175;-1:-1:-1;;;;;7630:16:175;;7622:64;;;;-1:-1:-1;;;7622:64:175;;5148:2:287;7622:64:175;;;5130:21:287;5187:2;5167:18;;;5160:30;5226:34;5206:18;;;5199:62;-1:-1:-1;;;5277:18:287;;;5270:33;5320:19;;7622:64:175;4946:399:287;7622:64:175;-1:-1:-1;;;;;7768:15:175;;7746:19;7768:15;;;;;;;;;;;7801:21;;;;7793:72;;;;-1:-1:-1;;;7793:72:175;;5552:2:287;7793:72:175;;;5534:21:287;5591:2;5571:18;;;5564:30;5630:34;5610:18;;;5603:62;-1:-1:-1;;;5681:18:287;;;5674:36;5727:19;;7793:72:175;5350:402:287;7793:72:175;-1:-1:-1;;;;;7899:15:175;;;:9;:15;;;;;;;;;;;7917:20;;;7899:38;;8114:13;;;;;;;;;;:23;;;;;;8163:26;;1342:25:287;;;8114:13:175;;8163:26;;1315:18:287;8163:26:175;;;;;;;8200:37;9375:659;8520:535;-1:-1:-1;;;;;8603:21:175;;8595:65;;;;-1:-1:-1;;;8595:65:175;;5959:2:287;8595:65:175;;;5941:21:287;5998:2;5978:18;;;5971:30;6037:33;6017:18;;;6010:61;6088:18;;8595:65:175;5757:355:287;8595:65:175;8747:6;8731:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;8899:18:175;;:9;:18;;;;;;;;;;;:28;;;;;;8952:37;1342:25:287;;;8952:37:175;;1315:18:287;8952:37:175;;;;;;;189:95:87;;:::o;9375:659:175:-;-1:-1:-1;;;;;9458:21:175;;9450:67;;;;-1:-1:-1;;;9450:67:175;;6319:2:287;9450:67:175;;;6301:21:287;6358:2;6338:18;;;6331:30;6397:34;6377:18;;;6370:62;-1:-1:-1;;;6448:18:287;;;6441:31;6489:19;;9450:67:175;6117:397:287;9450:67:175;-1:-1:-1;;;;;9613:18:175;;9588:22;9613:18;;;;;;;;;;;9649:24;;;;9641:71;;;;-1:-1:-1;;;9641:71:175;;6721:2:287;9641:71:175;;;6703:21:287;6760:2;6740:18;;;6733:30;6799:34;6779:18;;;6772:62;-1:-1:-1;;;6850:18:287;;;6843:32;6892:19;;9641:71:175;6519:398:287;9641:71:175;-1:-1:-1;;;;;9746:18:175;;:9;:18;;;;;;;;;;;9767:23;;;9746:44;;9883:12;:22;;;;;;;9931:37;1342:25:287;;;9746:9:175;;:18;9931:37;;1315:18:287;9931:37:175;1196:177:287;14:548;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:173::-;635:20;;-1:-1:-1;;;;;684:31:287;;674:42;;664:70;;730:1;727;720:12;664:70;567:173;;;:::o;745:254::-;813:6;821;874:2;862:9;853:7;849:23;845:32;842:52;;;890:1;887;880:12;842:52;913:29;932:9;913:29;:::i;:::-;903:39;989:2;974:18;;;;961:32;;-1:-1:-1;;;745:254:287:o;1378:328::-;1455:6;1463;1471;1524:2;1512:9;1503:7;1499:23;1495:32;1492:52;;;1540:1;1537;1530:12;1492:52;1563:29;1582:9;1563:29;:::i;:::-;1553:39;;1611:38;1645:2;1634:9;1630:18;1611:38;:::i;:::-;1601:48;;1696:2;1685:9;1681:18;1668:32;1658:42;;1378:328;;;;;:::o;1900:186::-;1959:6;2012:2;2000:9;1991:7;1987:23;1983:32;1980:52;;;2028:1;2025;2018:12;1980:52;2051:29;2070:9;2051:29;:::i;:::-;2041:39;1900:186;-1:-1:-1;;;1900:186:287:o;2091:260::-;2159:6;2167;2220:2;2208:9;2199:7;2195:23;2191:32;2188:52;;;2236:1;2233;2226:12;2188:52;2259:29;2278:9;2259:29;:::i;:::-;2249:39;;2307:38;2341:2;2330:9;2326:18;2307:38;:::i;:::-;2297:48;;2091:260;;;;;:::o;2356:380::-;2435:1;2431:12;;;;2478;;;2499:61;;2553:4;2545:6;2541:17;2531:27;;2499:61;2606:2;2598:6;2595:14;2575:18;2572:38;2569:161;;2652:10;2647:3;2643:20;2640:1;2633:31;2687:4;2684:1;2677:15;2715:4;2712:1;2705:15;2569:161;;2356:380;;;:::o;2741:222::-;2806:9;;;2827:10;;;2824:133;;;2879:10;2874:3;2870:20;2867:1;2860:31;2914:4;2911:1;2904:15;2942:4;2939:1;2932:15", + "linkReferences": {} + }, + "methodIdentifiers": { + "allowance(address,address)": "dd62ed3e", + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "burn(address,uint256)": "9dc29fac", + "decimals()": "313ce567", + "decreaseAllowance(address,uint256)": "a457c2d7", + "increaseAllowance(address,uint256)": "39509351", + "mint(address,uint256)": "40c10f19", + "name()": "06fdde03", + "symbol()": "95d89b41", + "totalSupply()": "18160ddd", + "transfer(address,uint256)": "a9059cbb", + "transferFrom(address,address,uint256)": "23b872dd" + }, + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"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\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/mocks/ERC20Mock.sol\":\"ERC20Mock\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin/=contracts/\"]},\"sources\":{\"contracts/mocks/ERC20Mock.sol\":{\"keccak256\":\"0x84e74b44b4a040b78c59f5775b3488568a52b6c444936c7da270d77b8978803a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0c3b5d3c0abdf59181985086fa335519b96f3a9489570ee1188fd293b08a7b6f\",\"dweb:/ipfs/Qmey8qcStYDSubZatenoeRoM1ibkpd4nv6Ggdw4sHpct6P\"]},\"contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xa56ca923f70c1748830700250b19c61b70db9a683516dc5e216694a50445d99c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cac938788bc4be12101e59d45588b4e059579f4e61062e1cda8d6b06c0191b15\",\"dweb:/ipfs/QmV2JKCyjTVH3rkWNrfdJRhAT7tZ3usAN2XcnD4h53Mvih\"]},\"contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]}},\"version\":1}", + "metadata": { + "compiler": { + "version": "0.8.19+commit.7dd6d404" + }, + "language": "Solidity", + "output": { + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address", + "indexed": true + }, + { + "internalType": "address", + "name": "spender", + "type": "address", + "indexed": true + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256", + "indexed": false + } + ], + "type": "event", + "name": "Approval", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address", + "indexed": true + }, + { + "internalType": "address", + "name": "to", + "type": "address", + "indexed": true + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256", + "indexed": false + } + ], + "type": "event", + "name": "Transfer", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function", + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function", + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "burn" + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "subtractedValue", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "decreaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "addedValue", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "increaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "mint" + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ] + } + ], + "devdoc": { + "kind": "dev", + "methods": { + "allowance(address,address)": { + "details": "See {IERC20-allowance}." + }, + "approve(address,uint256)": { + "details": "See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address." + }, + "balanceOf(address)": { + "details": "See {IERC20-balanceOf}." + }, + "decimals()": { + "details": "Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}." + }, + "decreaseAllowance(address,uint256)": { + "details": "Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`." + }, + "increaseAllowance(address,uint256)": { + "details": "Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address." + }, + "name()": { + "details": "Returns the name of the token." + }, + "symbol()": { + "details": "Returns the symbol of the token, usually a shorter version of the name." + }, + "totalSupply()": { + "details": "See {IERC20-totalSupply}." + }, + "transfer(address,uint256)": { + "details": "See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`." + }, + "transferFrom(address,address,uint256)": { + "details": "See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`." + } + }, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + }, + "settings": { + "remappings": [ + "ds-test/=lib/forge-std/lib/ds-test/src/", + "erc4626-tests/=lib/erc4626-tests/", + "forge-std/=lib/forge-std/src/", + "openzeppelin/=contracts/" + ], + "optimizer": { + "enabled": true, + "runs": 200 + }, + "metadata": { + "bytecodeHash": "ipfs" + }, + "compilationTarget": { + "contracts/mocks/ERC20Mock.sol": "ERC20Mock" + }, + "libraries": {} + }, + "sources": { + "contracts/mocks/ERC20Mock.sol": { + "keccak256": "0x84e74b44b4a040b78c59f5775b3488568a52b6c444936c7da270d77b8978803a", + "urls": [ + "bzz-raw://0c3b5d3c0abdf59181985086fa335519b96f3a9489570ee1188fd293b08a7b6f", + "dweb:/ipfs/Qmey8qcStYDSubZatenoeRoM1ibkpd4nv6Ggdw4sHpct6P" + ], + "license": "MIT" + }, + "contracts/token/ERC20/ERC20.sol": { + "keccak256": "0xa56ca923f70c1748830700250b19c61b70db9a683516dc5e216694a50445d99c", + "urls": [ + "bzz-raw://cac938788bc4be12101e59d45588b4e059579f4e61062e1cda8d6b06c0191b15", + "dweb:/ipfs/QmV2JKCyjTVH3rkWNrfdJRhAT7tZ3usAN2XcnD4h53Mvih" + ], + "license": "MIT" + }, + "contracts/token/ERC20/IERC20.sol": { + "keccak256": "0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305", + "urls": [ + "bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5", + "dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53" + ], + "license": "MIT" + }, + "contracts/token/ERC20/extensions/IERC20Metadata.sol": { + "keccak256": "0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca", + "urls": [ + "bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd", + "dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8" + ], + "license": "MIT" + }, + "contracts/utils/Context.sol": { + "keccak256": "0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7", + "urls": [ + "bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92", + "dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3" + ], + "license": "MIT" + } + }, + "version": 1 + }, + "ast": { + "absolutePath": "contracts/mocks/ERC20Mock.sol", + "id": 10831, + "exportedSymbols": { + "ERC20": [22925], + "ERC20Mock": [10830] + }, + "nodeType": "SourceUnit", + "src": "32:356:87", + "nodes": [ + { + "id": 10791, + "nodeType": "PragmaDirective", + "src": "32:23:87", + "nodes": [], + "literals": ["solidity", "^", "0.8", ".0"] + }, + { + "id": 10793, + "nodeType": "ImportDirective", + "src": "57:47:87", + "nodes": [], + "absolutePath": "contracts/token/ERC20/ERC20.sol", + "file": "../token/ERC20/ERC20.sol", + "nameLocation": "-1:-1:-1", + "scope": 10831, + "sourceUnit": 22926, + "symbolAliases": [ + { + "foreign": { + "id": 10792, + "name": "ERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22925, + "src": "65:5:87", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 10830, + "nodeType": "ContractDefinition", + "src": "106:281:87", + "nodes": [ + { + "id": 10803, + "nodeType": "FunctionDefinition", + "src": "140:43:87", + "nodes": [], + "body": { + "id": 10802, + "nodeType": "Block", + "src": "181:2:87", + "nodes": [], + "statements": [] + }, + "implemented": true, + "kind": "constructor", + "modifiers": [ + { + "arguments": [ + { + "hexValue": "45524332304d6f636b", + "id": 10798, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "160:11:87", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_33e204670039f8eeeb54743b50a42c4eacdfe9c2a99e7c90a68653a84d2870ae", + "typeString": "literal_string \"ERC20Mock\"" + }, + "value": "ERC20Mock" + }, + { + "hexValue": "4532304d", + "id": 10799, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "173:6:87", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e146b19f4863aaa90bb9ad2c640c77b569e376541b06949c872e8cb5e47c42ef", + "typeString": "literal_string \"E20M\"" + }, + "value": "E20M" + } + ], + "id": 10800, + "kind": "baseConstructorSpecifier", + "modifierName": { + "id": 10797, + "name": "ERC20", + "nameLocations": ["154:5:87"], + "nodeType": "IdentifierPath", + "referencedDeclaration": 22925, + "src": "154:5:87" + }, + "nodeType": "ModifierInvocation", + "src": "154:26:87" + } + ], + "name": "", + "nameLocation": "-1:-1:-1", + "parameters": { + "id": 10796, + "nodeType": "ParameterList", + "parameters": [], + "src": "151:2:87" + }, + "returnParameters": { + "id": 10801, + "nodeType": "ParameterList", + "parameters": [], + "src": "181:0:87" + }, + "scope": 10830, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "id": 10816, + "nodeType": "FunctionDefinition", + "src": "189:95:87", + "nodes": [], + "body": { + "id": 10815, + "nodeType": "Block", + "src": "245:39:87", + "nodes": [], + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 10811, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10805, + "src": "261:7:87", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 10812, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10807, + "src": "270:6:87", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10810, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22742, + "src": "255:5:87", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 10813, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "255:22:87", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10814, + "nodeType": "ExpressionStatement", + "src": "255:22:87" + } + ] + }, + "functionSelector": "40c10f19", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mint", + "nameLocation": "198:4:87", + "parameters": { + "id": 10808, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10805, + "mutability": "mutable", + "name": "account", + "nameLocation": "211:7:87", + "nodeType": "VariableDeclaration", + "scope": 10816, + "src": "203:15:87", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10804, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "203:7:87", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 10807, + "mutability": "mutable", + "name": "amount", + "nameLocation": "228:6:87", + "nodeType": "VariableDeclaration", + "scope": 10816, + "src": "220:14:87", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10806, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "220:7:87", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "202:33:87" + }, + "returnParameters": { + "id": 10809, + "nodeType": "ParameterList", + "parameters": [], + "src": "245:0:87" + }, + "scope": 10830, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 10829, + "nodeType": "FunctionDefinition", + "src": "290:95:87", + "nodes": [], + "body": { + "id": 10828, + "nodeType": "Block", + "src": "346:39:87", + "nodes": [], + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 10824, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10818, + "src": "362:7:87", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 10825, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10820, + "src": "371:6:87", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10823, + "name": "_burn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22814, + "src": "356:5:87", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 10826, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "356:22:87", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10827, + "nodeType": "ExpressionStatement", + "src": "356:22:87" + } + ] + }, + "functionSelector": "9dc29fac", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "burn", + "nameLocation": "299:4:87", + "parameters": { + "id": 10821, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10818, + "mutability": "mutable", + "name": "account", + "nameLocation": "312:7:87", + "nodeType": "VariableDeclaration", + "scope": 10829, + "src": "304:15:87", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10817, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "304:7:87", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 10820, + "mutability": "mutable", + "name": "amount", + "nameLocation": "329:6:87", + "nodeType": "VariableDeclaration", + "scope": 10829, + "src": "321:14:87", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10819, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "321:7:87", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "303:33:87" + }, + "returnParameters": { + "id": 10822, + "nodeType": "ParameterList", + "parameters": [], + "src": "346:0:87" + }, + "scope": 10830, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 10794, + "name": "ERC20", + "nameLocations": ["128:5:87"], + "nodeType": "IdentifierPath", + "referencedDeclaration": 22925, + "src": "128:5:87" + }, + "id": 10795, + "nodeType": "InheritanceSpecifier", + "src": "128:5:87" + } + ], + "canonicalName": "ERC20Mock", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "linearizedBaseContracts": [10830, 22925, 25478, 23003, 32336], + "name": "ERC20Mock", + "nameLocation": "115:9:87", + "scope": 10831, + "usedErrors": [] + } + ], + "license": "MIT" + }, + "id": 87 +} diff --git a/subgraph/tests/generated/mod.rs b/subgraph/tests/generated/mod.rs new file mode 100644 index 0000000000..a1b68de0d5 --- /dev/null +++ b/subgraph/tests/generated/mod.rs @@ -0,0 +1,23 @@ +use ethers::prelude::*; + +abigen!( + RainterpreterExpressionDeployer, + "tests/generated/RainterpreterExpressionDeployerNP.json", + derives(serde::Deserialize, serde::Serialize); + + Rainterpreter, + "tests/generated/RainterpreterNP.json"; + + RainterpreterStore, + "tests/generated/RainterpreterStore.json"; + + AuthoringMetaGetter, + "tests/generated/AuthoringMetaGetter.json"; + + OrderBook, + "tests/generated/OrderBook.json"; + + // ERC20Mock should not be replaced. It's for testing purpose + ERC20Mock, + "tests/generated/ERC20Mock.json"; +); diff --git a/subgraph/tests/subgraph/deploy/mod.rs b/subgraph/tests/subgraph/deploy/mod.rs new file mode 100644 index 0000000000..38514429b6 --- /dev/null +++ b/subgraph/tests/subgraph/deploy/mod.rs @@ -0,0 +1,91 @@ +use anyhow::anyhow; +use mustache::MapBuilder; +use std::{fs, process::Command}; + +pub struct Config<'a> { + // contracts address + pub contract_address: &'a String, + // block-number + pub block_number: u64, +} + +pub fn deploy(config: Config) -> anyhow::Result { + let subgraph_template = "subgraph.template.yaml"; + let output_path = "subgraph.yaml"; + let root_dir = "./"; + let end_point = "http://localhost:8020/"; + let subgraph_name = "test/test"; + + let data = MapBuilder::new() + .insert_str("network", "localhost") + .insert_str("orderbook", config.contract_address) + .insert_str("blockNumber", config.block_number.to_string()) + .build(); + + let template = fs::read_to_string(subgraph_template) + .expect(&format!("Fail to read {}", subgraph_template)); + + let renderd = mustache::compile_str(&template) + .expect("Failed to compile template") + .render_data_to_string(&data) + .expect("Failed to render template"); + + let _write = fs::write(output_path, renderd)?; + + let output = Command::new("bash") + .current_dir(format!( + "{}/{}", + std::env::current_dir().unwrap().display(), + root_dir + )) + .args(&["-c", "npx graph codegen && npx graph build"]) + .output() + .expect("Failed graph codegen and graph build command"); + + if output.status.success() { + let stdout = String::from_utf8_lossy(&output.stdout); + println!("{}", stdout); + } else { + let stderr = String::from_utf8_lossy(&output.stderr); + return Err(anyhow!("{}", stderr)); + } + + let _output = Command::new("bash") + .current_dir(format!( + "{}/{}", + std::env::current_dir().unwrap().display(), + root_dir + )) + .args(&[ + "-c", + &format!("npx graph create --node {} {}", end_point, subgraph_name), + ]) + .output() + .expect("Failed graph create command"); + + let output = Command::new("bash") + .current_dir(format!( + "{}/{}", + std::env::current_dir().unwrap().display(), + root_dir + )) + .args(&[ + "-c", + &format!( + "npx graph deploy --node {} --ipfs http://localhost:5001 {} --version-label 1", + end_point, subgraph_name + ), + ]) + .output() + .expect("Failed local deploy command"); + + if output.status.success() { + let stdout = String::from_utf8_lossy(&output.stdout); + println!("{}", stdout); + } else { + let stderr = String::from_utf8_lossy(&output.stderr); + return Err(anyhow!("{}", stderr)); + } + + Ok(true) +} diff --git a/subgraph/tests/subgraph/mod.rs b/subgraph/tests/subgraph/mod.rs new file mode 100644 index 0000000000..6fa437f896 --- /dev/null +++ b/subgraph/tests/subgraph/mod.rs @@ -0,0 +1,7 @@ +pub mod deploy; +pub mod query; +pub mod wait; + +pub use deploy::{deploy, Config}; +pub use query::Query; +pub use wait::wait; diff --git a/subgraph/tests/subgraph/query/bounty/bounty.graphql b/subgraph/tests/subgraph/query/bounty/bounty.graphql new file mode 100644 index 0000000000..5f45a9c106 --- /dev/null +++ b/subgraph/tests/subgraph/query/bounty/bounty.graphql @@ -0,0 +1,34 @@ +query Bounty($id: String) { + bounty(id: $id) { + id + clearer { + id + } + orderClear { + id + } + bountyVaultA { + id + } + bountyVaultB { + id + } + bountyTokenA { + id + } + bountyTokenB { + id + } + bountyAmountA + bountyAmountADisplay + bountyAmountB + bountyAmountBDisplay + transaction { + id + } + emitter { + id + } + timestamp + } +} diff --git a/subgraph/tests/subgraph/query/bounty/mod.rs b/subgraph/tests/subgraph/query/bounty/mod.rs new file mode 100644 index 0000000000..53c16042ec --- /dev/null +++ b/subgraph/tests/subgraph/query/bounty/mod.rs @@ -0,0 +1,104 @@ +use self::bounty::ResponseData; +use super::SG_URL; +use crate::utils::{bytes_to_h256, hex_string_to_bytes, mn_mpz_to_u256}; +use anyhow::{anyhow, Result}; +use ethers::types::{Address, Bytes, TxHash, U256}; +use graphql_client::{GraphQLQuery, Response}; +use rust_bigint::BigInt; +use serde::{Deserialize, Serialize}; + +// use bigdecimal::BigDecimal; +type BigDecimal = String; + +#[derive(GraphQLQuery)] +#[graphql( + schema_path = "tests/subgraph/query/schema.json", + query_path = "tests/subgraph/query/bounty/bounty.graphql", + response_derives = "Debug, Serialize, Deserialize" +)] +#[derive(Serialize, Deserialize, Debug)] +pub struct Bounty; + +#[derive(Serialize, Deserialize, Debug)] +pub struct BountyResponse { + pub id: String, + pub clearer: Address, + pub order_clear: String, + pub bounty_vault_a: String, + pub bounty_vault_b: String, + pub bounty_token_a: Address, + pub bounty_token_b: Address, + pub bounty_amount_a: Option, + pub bounty_amount_a_display: Option, + pub bounty_amount_b: Option, + pub bounty_amount_b_display: Option, + pub transaction: TxHash, + pub emitter: Address, + pub timestamp: U256, +} + +impl BountyResponse { + pub fn from(response: ResponseData) -> BountyResponse { + let data = response.bounty.unwrap(); + + let clearer = Address::from_slice(&data.clearer.id); + + let bounty_token_a = + Address::from_slice(&hex_string_to_bytes(&data.bounty_token_a.id).unwrap()); + let bounty_token_b = + Address::from_slice(&hex_string_to_bytes(&data.bounty_token_b.id).unwrap()); + + let bounty_amount_a = match data.bounty_amount_a { + Some(value) => Some(mn_mpz_to_u256(&value)), + None => None, + }; + let bounty_amount_b = match data.bounty_amount_b { + Some(value) => Some(mn_mpz_to_u256(&value)), + None => None, + }; + + let emitter = Address::from_slice(&data.emitter.id); + let transaction = bytes_to_h256(&hex_string_to_bytes(&data.transaction.id).unwrap()); + + BountyResponse { + id: data.id, + clearer, + order_clear: data.order_clear.id, + bounty_vault_a: data.bounty_vault_a.id, + bounty_vault_b: data.bounty_vault_b.id, + bounty_token_a, + bounty_token_b, + bounty_amount_a, + bounty_amount_a_display: data.bounty_amount_a_display, + bounty_amount_b, + bounty_amount_b_display: data.bounty_amount_b_display, + transaction, + emitter, + timestamp: mn_mpz_to_u256(&data.timestamp), + } + } +} + +pub async fn get_bounty(id: &String) -> Result { + let variables = bounty::Variables { + id: id.to_string().into(), + }; + + let request_body = Bounty::build_query(variables); + let client = reqwest::Client::new(); + let res = client + .post((*SG_URL).clone()) + .json(&request_body) + .send() + .await?; + + let response_body: Response = res.json().await?; + + match response_body.data { + Some(data) => { + let response = BountyResponse::from(data); + Ok(response) + } + None => Err(anyhow!("Failed to get query")), + } +} diff --git a/subgraph/tests/subgraph/query/content_meta_v1/content_meta_v1.graphql b/subgraph/tests/subgraph/query/content_meta_v1/content_meta_v1.graphql new file mode 100644 index 0000000000..35920c3752 --- /dev/null +++ b/subgraph/tests/subgraph/query/content_meta_v1/content_meta_v1.graphql @@ -0,0 +1,14 @@ +query ContentMetaV1($content_meta: String) { + contentMetaV1(id: $content_meta) { + id + rawBytes + magicNumber + payload + parents { + id + } + contentType + contentEncoding + contentLanguage + } +} diff --git a/subgraph/tests/subgraph/query/content_meta_v1/mod.rs b/subgraph/tests/subgraph/query/content_meta_v1/mod.rs new file mode 100644 index 0000000000..a1f408bb6a --- /dev/null +++ b/subgraph/tests/subgraph/query/content_meta_v1/mod.rs @@ -0,0 +1,71 @@ +use self::content_meta_v1::ResponseData; +use super::SG_URL; +use crate::utils::mn_mpz_to_u256; +use anyhow::{anyhow, Result}; +use ethers::types::{Bytes, U256}; +use graphql_client::{GraphQLQuery, Response}; +use rust_bigint::BigInt; +use serde::{Deserialize, Serialize}; + +#[derive(GraphQLQuery)] +#[graphql( + schema_path = "tests/subgraph/query/schema.json", + query_path = "tests/subgraph/query/content_meta_v1/content_meta_v1.graphql", + response_derives = "Debug, Serialize, Deserialize" +)] +pub struct ContentMetaV1; + +#[derive(Serialize, Deserialize, Debug)] +pub struct ContentMetaV1Response { + pub id: Bytes, + pub raw_bytes: Bytes, + pub magic_number: U256, + pub payload: Bytes, + pub parents: Vec, + pub content_type: Option, + pub content_encoding: Option, + pub content_language: Option, +} + +impl ContentMetaV1Response { + pub fn from(response: ResponseData) -> ContentMetaV1Response { + let data = response.content_meta_v1.unwrap(); + + let parents: Vec = data.parents.iter().map(|meta| meta.id.clone()).collect(); + + ContentMetaV1Response { + id: data.id, + raw_bytes: data.raw_bytes, + magic_number: mn_mpz_to_u256(&data.magic_number), + payload: data.payload, + parents, + content_type: data.content_type, + content_encoding: data.content_encoding, + content_language: data.content_language, + } + } +} + +pub async fn get_content_meta_v1(id: &Bytes) -> Result { + let variables = content_meta_v1::Variables { + content_meta: id.to_string().into(), + }; + + let request_body = ContentMetaV1::build_query(variables); + let client = reqwest::Client::new(); + let res = client + .post((*SG_URL).clone()) + .json(&request_body) + .send() + .await?; + + let response_body: Response = res.json().await?; + + match response_body.data { + Some(data) => { + let response: ContentMetaV1Response = ContentMetaV1Response::from(data); + Ok(response) + } + None => Err(anyhow!("Failed to get query")), + } +} diff --git a/subgraph/tests/subgraph/query/context_entity/context_entity.graphql b/subgraph/tests/subgraph/query/context_entity/context_entity.graphql new file mode 100644 index 0000000000..43a57c06d7 --- /dev/null +++ b/subgraph/tests/subgraph/query/context_entity/context_entity.graphql @@ -0,0 +1,24 @@ +query ContextEntity($id: String) { + contextEntity(id: $id) { + id + caller { + id + } + callingContext + calculationsContext + vaultInputsContext + vaultOutputsContext + signedContext { + id + signer + context + } + transaction { + id + } + emitter { + id + } + timestamp + } +} diff --git a/subgraph/tests/subgraph/query/context_entity/mod.rs b/subgraph/tests/subgraph/query/context_entity/mod.rs new file mode 100644 index 0000000000..5013c447b0 --- /dev/null +++ b/subgraph/tests/subgraph/query/context_entity/mod.rs @@ -0,0 +1,151 @@ +use self::context_entity::ResponseData; +use super::SG_URL; +use crate::utils::{bytes_to_h256, hex_string_to_bytes, mn_mpz_to_u256}; +use anyhow::{anyhow, Result}; +use ethers::types::TxHash; +use ethers::types::{Address, Bytes, U256}; +use graphql_client::{GraphQLQuery, Response}; +use rust_bigint::BigInt; +use serde::{Deserialize, Serialize}; + +#[derive(GraphQLQuery)] +#[graphql( + schema_path = "tests/subgraph/query/schema.json", + query_path = "tests/subgraph/query/context_entity/context_entity.graphql", + response_derives = "Debug, Serialize, Deserialize" +)] +#[derive(Serialize, Deserialize, Debug)] +pub struct ContextEntity; + +#[derive(Serialize, Deserialize, Debug)] +pub struct ContextEntityResponse { + pub id: String, + pub caller: Address, + pub calling_context: Option>, + pub calculations_context: Option>, + pub vault_inputs_context: Option>, + pub vault_outputs_context: Option>, + pub signed_context: Option>, + pub emitter: Address, + pub transaction: TxHash, + pub timestamp: U256, +} + +#[derive(Serialize, Deserialize, Debug)] +pub struct SignedContext { + pub id: String, + pub signer: Address, + pub context: Option>, +} + +impl ContextEntityResponse { + pub fn from(response: ResponseData) -> ContextEntityResponse { + let data = response.context_entity.unwrap(); + + let caller = Address::from_slice(&data.caller.id); + + let calling_context = match data.calling_context { + Some(values) => { + let values_collected: Vec = + values.iter().map(|value| mn_mpz_to_u256(&value)).collect(); + + Some(values_collected) + } + None => None, + }; + + let calculations_context = match data.calculations_context { + Some(values) => { + let values_collected: Vec = + values.iter().map(|value| mn_mpz_to_u256(&value)).collect(); + + Some(values_collected) + } + None => None, + }; + + let vault_inputs_context = match data.vault_inputs_context { + Some(values) => { + let values_collected: Vec = + values.iter().map(|value| mn_mpz_to_u256(&value)).collect(); + + Some(values_collected) + } + None => None, + }; + + let vault_outputs_context = match data.vault_outputs_context { + Some(values) => { + let values_collected: Vec = + values.iter().map(|value| mn_mpz_to_u256(&value)).collect(); + + Some(values_collected) + } + None => None, + }; + + let signed_context = match data.signed_context { + Some(values) => { + let values_collected: Vec = values + .iter() + .map(|value| SignedContext { + id: value.id.clone(), + signer: Address::from_slice(&value.signer), + context: match value.context.clone() { + Some(values) => { + let values_collected: Vec = + values.iter().map(|value| mn_mpz_to_u256(&value)).collect(); + + Some(values_collected) + } + None => None, + }, + }) + .collect(); + + Some(values_collected) + } + None => None, + }; + + let emitter = Address::from_slice(&data.emitter.id); + let transaction = bytes_to_h256(&hex_string_to_bytes(&data.transaction.id).unwrap()); + + ContextEntityResponse { + id: data.id, + caller, + calling_context, + calculations_context, + vault_inputs_context, + vault_outputs_context, + signed_context, + emitter, + transaction, + timestamp: mn_mpz_to_u256(&data.timestamp), + } + } +} + +pub async fn get_context_entity(id: &String) -> Result { + let variables = context_entity::Variables { + id: id.to_string().into(), + }; + + let request_body = ContextEntity::build_query(variables); + let client = reqwest::Client::new(); + let res = client + .post((*SG_URL).clone()) + .json(&request_body) + .send() + .await?; + + let response_body: Response = res.json().await?; + + match response_body.data { + Some(data) => { + let response = ContextEntityResponse::from(data); + Ok(response) + } + None => Err(anyhow!("Failed to get query")), + } +} diff --git a/subgraph/tests/subgraph/query/erc20/erc20.graphql b/subgraph/tests/subgraph/query/erc20/erc20.graphql new file mode 100644 index 0000000000..f792810751 --- /dev/null +++ b/subgraph/tests/subgraph/query/erc20/erc20.graphql @@ -0,0 +1,10 @@ +query ERC20($id: String) { + erc20(id: $id) { + id + name + symbol + totalSupply + totalSupplyDisplay + decimals + } +} \ No newline at end of file diff --git a/subgraph/tests/subgraph/query/erc20/mod.rs b/subgraph/tests/subgraph/query/erc20/mod.rs new file mode 100644 index 0000000000..7a89e620db --- /dev/null +++ b/subgraph/tests/subgraph/query/erc20/mod.rs @@ -0,0 +1,71 @@ +use self::erc20::ResponseData; +use super::SG_URL; +use crate::utils::{hex_string_to_bytes, mn_mpz_to_u256}; +use anyhow::{anyhow, Result}; +use ethers::types::{Address, U256}; +use graphql_client::{GraphQLQuery, Response}; +use rust_bigint::BigInt; +use serde::{Deserialize, Serialize}; + +// use bigdecimal::BigDecimal; +type BigDecimal = String; + +#[derive(GraphQLQuery)] +#[graphql( + schema_path = "tests/subgraph/query/schema.json", + query_path = "tests/subgraph/query/erc20/erc20.graphql", + response_derives = "Debug, Serialize, Deserialize" +)] +#[derive(Serialize, Deserialize, Debug)] +pub struct ERC20; + +#[derive(Serialize, Deserialize, Debug)] +pub struct ERC20Response { + pub id: Address, + pub name: String, + pub symbol: String, + pub total_supply: U256, + pub total_supply_display: String, + pub decimals: u8, +} + +impl ERC20Response { + pub fn from(response: ResponseData) -> ERC20Response { + let data = response.erc20.unwrap(); + + let id = Address::from_slice(&hex_string_to_bytes(&data.id).unwrap()); + + ERC20Response { + id, + name: data.name, + symbol: data.symbol, + total_supply: mn_mpz_to_u256(&data.total_supply), + total_supply_display: data.total_supply_display, + decimals: data.decimals as u8, + } + } +} + +pub async fn get_erc20(id: &Address) -> Result { + let variables = erc20::Variables { + id: Some(format!("{:?}", id)), + }; + + let request_body = ERC20::build_query(variables); + let client = reqwest::Client::new(); + let res = client + .post((*SG_URL).clone()) + .json(&request_body) + .send() + .await?; + + let response_body: Response = res.json().await?; + + match response_body.data { + Some(data) => { + let response = ERC20Response::from(data); + Ok(response) + } + None => Err(anyhow!("Failed to get query")), + } +} diff --git a/subgraph/tests/subgraph/query/io/io.graphql b/subgraph/tests/subgraph/query/io/io.graphql new file mode 100644 index 0000000000..cf1e0d7e20 --- /dev/null +++ b/subgraph/tests/subgraph/query/io/io.graphql @@ -0,0 +1,20 @@ +query IO($id: String) { + io(id: $id) { + id + token { + id + } + decimals + vaultId + vault { + id + } + order { + id + } + tokenVault { + id + } + index + } +} diff --git a/subgraph/tests/subgraph/query/io/mod.rs b/subgraph/tests/subgraph/query/io/mod.rs new file mode 100644 index 0000000000..d513a3586d --- /dev/null +++ b/subgraph/tests/subgraph/query/io/mod.rs @@ -0,0 +1,77 @@ +use self::io::ResponseData; +use super::SG_URL; +use crate::utils::{hex_string_to_bytes, mn_mpz_to_u256}; +use anyhow::{anyhow, Result}; +use ethers::types::{Address, Bytes, U256}; +use graphql_client::{GraphQLQuery, Response}; +use rust_bigint::BigInt; +use serde::{Deserialize, Serialize}; + +#[derive(GraphQLQuery)] +#[graphql( + schema_path = "tests/subgraph/query/schema.json", + query_path = "tests/subgraph/query/io/io.graphql", + response_derives = "Debug, Serialize, Deserialize" +)] +#[derive(Serialize, Deserialize, Debug)] +pub struct IO; + +#[derive(Serialize, Deserialize, Debug)] +pub struct IOResponse { + pub id: String, + pub token: Address, + pub decimals: u8, + pub vault_id: U256, + pub order: Bytes, + pub index: u8, + pub vault: String, + pub token_vault: String, +} + +impl IOResponse { + pub fn from(response: ResponseData) -> IOResponse { + let data = response.io.unwrap(); + + let token = Address::from_slice( + hex_string_to_bytes(&data.token.id) + .unwrap() + .to_vec() + .as_slice(), + ); + + IOResponse { + id: data.id, + token, + decimals: data.decimals as u8, + vault: data.vault.id, + vault_id: mn_mpz_to_u256(&data.vault_id), + order: hex_string_to_bytes(&data.order.id).expect("not a hex value"), + token_vault: data.token_vault.id, + index: data.index as u8, + } + } +} + +pub async fn get_i_o(id: &String) -> Result { + let variables = io::Variables { + id: id.to_string().into(), + }; + + let request_body = IO::build_query(variables); + let client = reqwest::Client::new(); + let res = client + .post((*SG_URL).clone()) + .json(&request_body) + .send() + .await?; + + let response_body: Response = res.json().await?; + + match response_body.data { + Some(data) => { + let response = IOResponse::from(data); + Ok(response) + } + None => Err(anyhow!("Failed to get query")), + } +} diff --git a/subgraph/tests/subgraph/query/mod.rs b/subgraph/tests/subgraph/query/mod.rs new file mode 100644 index 0000000000..4bedadaf0d --- /dev/null +++ b/subgraph/tests/subgraph/query/mod.rs @@ -0,0 +1,109 @@ +pub(crate) mod bounty; +pub(crate) mod content_meta_v1; +pub(crate) mod context_entity; +pub(crate) mod erc20; +pub(crate) mod io; +pub(crate) mod order; +pub(crate) mod order_clear; +pub(crate) mod order_clear_state_change; +pub(crate) mod orderbook; +pub(crate) mod rain_meta_v1; +pub(crate) mod take_order_entity; +pub(crate) mod token_vault; +pub(crate) mod token_vault_take_order; +pub(crate) mod vault; +pub(crate) mod vault_deposit; +pub(crate) mod vault_withdraw; + +use anyhow::Result; +use ethers::types::{Address, Bytes}; +use once_cell::sync::Lazy; +use reqwest::Url; + +use bounty::{get_bounty, BountyResponse}; +use content_meta_v1::{get_content_meta_v1, ContentMetaV1Response}; +use context_entity::{get_context_entity, ContextEntityResponse}; +use erc20::{get_erc20, ERC20Response}; +use io::{get_i_o, IOResponse}; +use order::{get_order, OrderResponse}; +use order_clear::{get_order_clear, OrderClearResponse}; +use order_clear_state_change::{get_order_clear_state_change, OrderClearStateChangeResponse}; +use orderbook::{get_orderbook_query, OrderBookResponse}; +use rain_meta_v1::{get_rain_meta_v1, RainMetaV1Response}; +use take_order_entity::{get_take_order_entity, TakeOrderEntityResponse}; +use token_vault::{get_token_vault, TokenVaultResponse}; +use token_vault_take_order::{get_token_vault_take_order, TokenVaultTakeOrderResponse}; +use vault::{get_vault, VaultResponse}; +use vault_deposit::{get_vault_deposit, VaultDepositResponse}; +use vault_withdraw::{get_vault_withdraw, VaultWithdrawResponse}; + +pub static SG_URL: Lazy = + Lazy::new(|| Url::parse("http://localhost:8000/subgraphs/name/test/test").unwrap()); + +pub struct Query; + +impl Query { + pub async fn orderbook(id: &Address) -> Result { + get_orderbook_query(id).await + } + + pub async fn rain_meta_v1(id: &Bytes) -> Result { + get_rain_meta_v1(id).await + } + + pub async fn content_meta_v1(id: &Bytes) -> Result { + get_content_meta_v1(id).await + } + + pub async fn order(id: &Bytes) -> Result { + get_order(id).await + } + + pub async fn i_o(id: &String) -> Result { + get_i_o(id).await + } + + pub async fn vault(id: &String) -> Result { + get_vault(id).await + } + + pub async fn vault_deposit(id: &String) -> Result { + get_vault_deposit(id).await + } + + pub async fn vault_withdraw(id: &String) -> Result { + get_vault_withdraw(id).await + } + + pub async fn erc20(id: &Address) -> Result { + get_erc20(id).await + } + + pub async fn order_clear(id: &String) -> Result { + get_order_clear(id).await + } + + pub async fn token_vault(id: &String) -> Result { + get_token_vault(id).await + } + + pub async fn bounty(id: &String) -> Result { + get_bounty(id).await + } + + pub async fn order_clear_state_change(id: &String) -> Result { + get_order_clear_state_change(id).await + } + + pub async fn token_vault_take_order(id: &String) -> Result { + get_token_vault_take_order(id).await + } + + pub async fn take_order_entity(id: &String) -> Result { + get_take_order_entity(id).await + } + + pub async fn context_entity(id: &String) -> Result { + get_context_entity(id).await + } +} diff --git a/subgraph/tests/subgraph/query/order/mod.rs b/subgraph/tests/subgraph/query/order/mod.rs new file mode 100644 index 0000000000..b0638c0a51 --- /dev/null +++ b/subgraph/tests/subgraph/query/order/mod.rs @@ -0,0 +1,120 @@ +use self::order::ResponseData; +use super::SG_URL; +use crate::utils::{hex_string_to_bytes, mn_mpz_to_u256}; +use anyhow::{anyhow, Result}; +use ethers::types::{Address, Bytes, U256}; +use graphql_client::{GraphQLQuery, Response}; +use rust_bigint::BigInt; +use serde::{Deserialize, Serialize}; + +#[derive(GraphQLQuery)] +#[graphql( + schema_path = "tests/subgraph/query/schema.json", + query_path = "tests/subgraph/query/order/order.graphql", + response_derives = "Debug, Serialize, Deserialize" +)] +#[derive(Serialize, Deserialize, Debug)] +pub struct Order; + +#[derive(Serialize, Deserialize, Debug)] +pub struct OrderResponse { + pub id: Bytes, + pub order_hash: Bytes, + pub owner: Address, + pub interpreter: Address, + pub interpreter_store: Address, + pub expression_deployer: Address, + pub expression: Address, + pub order_active: bool, + pub handle_i_o: bool, + pub meta: Bytes, + pub valid_inputs: Vec, + pub valid_outputs: Vec, + pub order_json_string: String, + pub expression_json_string: Option, + pub transaction: Bytes, + pub emitter: Address, + pub timestamp: U256, + pub take_orders: Vec, + pub orders_clears: Vec, +} + +impl OrderResponse { + pub fn from(response: ResponseData) -> OrderResponse { + let data = response.order.unwrap(); + + let valid_inputs: Vec = data + .valid_inputs + .unwrap() + .iter() + .map(|data| data.id.clone()) + .collect(); + + let valid_outputs: Vec = data + .valid_outputs + .unwrap() + .iter() + .map(|data| data.id.clone()) + .collect(); + + let take_orders: Vec = data + .take_orders + .unwrap() + .iter() + .map(|data| data.id.clone()) + .collect(); + + let orders_clears: Vec = data + .orders_clears + .unwrap() + .iter() + .map(|data| data.id.clone()) + .collect(); + + OrderResponse { + id: hex_string_to_bytes(&data.id).expect("not a hex value"), + order_hash: data.order_hash, + owner: Address::from_slice(&data.owner.id), + interpreter: Address::from_slice(&data.interpreter), + interpreter_store: Address::from_slice(&data.interpreter_store), + expression_deployer: Address::from_slice(&data.expression_deployer), + expression: Address::from_slice(&data.expression), + order_active: data.order_active, + handle_i_o: data.handle_io, + meta: data.meta.unwrap().id, + valid_inputs, + valid_outputs, + order_json_string: data.order_json_string, + expression_json_string: data.expression_json_string, + transaction: hex_string_to_bytes(&data.transaction.id).unwrap(), + emitter: Address::from_slice(&data.emitter.id), + timestamp: mn_mpz_to_u256(&data.timestamp), + take_orders, + orders_clears, + } + } +} + +pub async fn get_order(id: &Bytes) -> Result { + let variables = order::Variables { + id: id.to_string().into(), + }; + + let request_body = Order::build_query(variables); + let client = reqwest::Client::new(); + let res = client + .post((*SG_URL).clone()) + .json(&request_body) + .send() + .await?; + + let response_body: Response = res.json().await?; + + match response_body.data { + Some(data) => { + let response = OrderResponse::from(data); + Ok(response) + } + None => Err(anyhow!("Failed to get query")), + } +} diff --git a/subgraph/tests/subgraph/query/order/order.graphql b/subgraph/tests/subgraph/query/order/order.graphql new file mode 100644 index 0000000000..16e8ea7d84 --- /dev/null +++ b/subgraph/tests/subgraph/query/order/order.graphql @@ -0,0 +1,39 @@ +query Order($id: String) { + order(id: $id) { + id + orderHash + interpreter + interpreterStore + expressionDeployer + expression + orderActive + handleIO + meta { + id + } + validInputs { + id + } + validOutputs { + id + } + orderJSONString + expressionJSONString + transaction { + id + } + owner { + id + } + emitter { + id + } + timestamp + takeOrders { + id + } + ordersClears { + id + } + } +} diff --git a/subgraph/tests/subgraph/query/order_clear/mod.rs b/subgraph/tests/subgraph/query/order_clear/mod.rs new file mode 100644 index 0000000000..d10b2d82ab --- /dev/null +++ b/subgraph/tests/subgraph/query/order_clear/mod.rs @@ -0,0 +1,96 @@ +use self::order_clear::ResponseData; +use super::SG_URL; +use crate::utils::{bytes_to_h256, hex_string_to_bytes, mn_mpz_to_u256}; +use anyhow::{anyhow, Result}; +use ethers::types::TxHash; +use ethers::types::{Address, Bytes, U256}; +use graphql_client::{GraphQLQuery, Response}; +use rust_bigint::BigInt; +use serde::{Deserialize, Serialize}; + +#[derive(GraphQLQuery)] +#[graphql( + schema_path = "tests/subgraph/query/schema.json", + query_path = "tests/subgraph/query/order_clear/order_clear.graphql", + response_derives = "Debug, Serialize, Deserialize" +)] +#[derive(Serialize, Deserialize, Debug)] +pub struct OrderClear; + +#[derive(Serialize, Deserialize, Debug)] +pub struct OrderClearResponse { + pub id: String, + pub sender: Address, + pub clearer: Address, + pub order_a: Bytes, + pub order_b: Bytes, + pub owners: [Address; 2], + pub a_input_io_index: U256, + pub a_output_io_index: U256, + pub b_input_io_index: U256, + pub b_output_io_index: U256, + pub bounty: String, + pub state_change: String, + pub transaction: TxHash, + pub emitter: Address, + pub timestamp: U256, +} + +impl OrderClearResponse { + pub fn from(response: ResponseData) -> OrderClearResponse { + let data = response.order_clear.unwrap(); + + let sender = Address::from_slice(&data.sender.id); + let clearer = Address::from_slice(&data.clearer.id); + let emitter = Address::from_slice(&data.emitter.id); + let transaction = bytes_to_h256(&hex_string_to_bytes(&data.transaction.id).unwrap()); + + let owners_vec = data.owners.unwrap(); + let owners: [Address; 2] = [ + Address::from_slice(&owners_vec.get(0).unwrap().id), + Address::from_slice(&owners_vec.get(1).unwrap().id), + ]; + + OrderClearResponse { + id: data.id, + sender, + clearer, + order_a: hex_string_to_bytes(&data.order_a.id).expect("not a hex value"), + order_b: hex_string_to_bytes(&data.order_b.id).expect("not a hex value"), + owners, + a_input_io_index: mn_mpz_to_u256(&data.a_input_io_index), + a_output_io_index: mn_mpz_to_u256(&data.a_output_io_index), + b_input_io_index: mn_mpz_to_u256(&data.b_input_io_index), + b_output_io_index: mn_mpz_to_u256(&data.b_output_io_index), + bounty: data.bounty.id, + state_change: data.state_change.id, + transaction, + emitter, + timestamp: mn_mpz_to_u256(&data.timestamp), + } + } +} + +pub async fn get_order_clear(id: &String) -> Result { + let variables = order_clear::Variables { + id: id.to_string().into(), + }; + + let request_body = OrderClear::build_query(variables); + let client = reqwest::Client::new(); + let res = client + .post((*SG_URL).clone()) + .json(&request_body) + .send() + .await?; + + let response_body: Response = res.json().await?; + + match response_body.data { + Some(data) => { + let response = OrderClearResponse::from(data); + Ok(response) + } + None => Err(anyhow!("Failed to get query")), + } +} diff --git a/subgraph/tests/subgraph/query/order_clear/order_clear.graphql b/subgraph/tests/subgraph/query/order_clear/order_clear.graphql new file mode 100644 index 0000000000..e1ffbaf321 --- /dev/null +++ b/subgraph/tests/subgraph/query/order_clear/order_clear.graphql @@ -0,0 +1,37 @@ +query OrderClear($id: String) { + orderClear(id: $id) { + id + sender { + id + } + clearer { + id + } + orderA { + id + } + orderB { + id + } + owners { + id + } + aInputIOIndex + aOutputIOIndex + bInputIOIndex + bOutputIOIndex + bounty { + id + } + stateChange { + id + } + transaction { + id + } + emitter { + id + } + timestamp + } +} diff --git a/subgraph/tests/subgraph/query/order_clear_state_change/mod.rs b/subgraph/tests/subgraph/query/order_clear_state_change/mod.rs new file mode 100644 index 0000000000..9149fac04a --- /dev/null +++ b/subgraph/tests/subgraph/query/order_clear_state_change/mod.rs @@ -0,0 +1,66 @@ +use self::order_clear_state_change::ResponseData; +use super::SG_URL; +use crate::utils::mn_mpz_to_u256; +use anyhow::{anyhow, Result}; +use ethers::types::U256; +use graphql_client::{GraphQLQuery, Response}; +use rust_bigint::BigInt; +use serde::{Deserialize, Serialize}; + +#[derive(GraphQLQuery)] +#[graphql( + schema_path = "tests/subgraph/query/schema.json", + query_path = "tests/subgraph/query/order_clear_state_change/order_clear_state_change.graphql", + response_derives = "Debug, Serialize, Deserialize" +)] +#[derive(Serialize, Deserialize, Debug)] +pub struct OrderClearStateChange; + +#[derive(Serialize, Deserialize, Debug)] +pub struct OrderClearStateChangeResponse { + pub id: String, + pub order_clear: String, + pub a_output: U256, + pub b_output: U256, + pub a_input: U256, + pub b_input: U256, +} + +impl OrderClearStateChangeResponse { + pub fn from(response: ResponseData) -> OrderClearStateChangeResponse { + let data = response.order_clear_state_change.unwrap(); + + OrderClearStateChangeResponse { + id: data.id, + order_clear: data.order_clear.id, + a_output: mn_mpz_to_u256(&data.a_output), + b_output: mn_mpz_to_u256(&data.b_output), + a_input: mn_mpz_to_u256(&data.a_input), + b_input: mn_mpz_to_u256(&data.b_input), + } + } +} + +pub async fn get_order_clear_state_change(id: &String) -> Result { + let variables = order_clear_state_change::Variables { + id: id.to_string().into(), + }; + + let request_body = OrderClearStateChange::build_query(variables); + let client = reqwest::Client::new(); + let res = client + .post((*SG_URL).clone()) + .json(&request_body) + .send() + .await?; + + let response_body: Response = res.json().await?; + + match response_body.data { + Some(data) => { + let response = OrderClearStateChangeResponse::from(data); + Ok(response) + } + None => Err(anyhow!("Failed to get query")), + } +} diff --git a/subgraph/tests/subgraph/query/order_clear_state_change/order_clear_state_change.graphql b/subgraph/tests/subgraph/query/order_clear_state_change/order_clear_state_change.graphql new file mode 100644 index 0000000000..91c0cac131 --- /dev/null +++ b/subgraph/tests/subgraph/query/order_clear_state_change/order_clear_state_change.graphql @@ -0,0 +1,12 @@ +query OrderClearStateChange($id: String) { + orderClearStateChange(id: $id) { + id + orderClear { + id + } + aOutput + bOutput + aInput + bInput + } +} diff --git a/subgraph/tests/subgraph/query/orderbook/mod.rs b/subgraph/tests/subgraph/query/orderbook/mod.rs new file mode 100644 index 0000000000..cb762a1de4 --- /dev/null +++ b/subgraph/tests/subgraph/query/orderbook/mod.rs @@ -0,0 +1,66 @@ +use self::order_book::ResponseData; +use super::SG_URL; +use anyhow::{anyhow, Result}; +use ethers::types::{Address, Bytes}; +use graphql_client::{GraphQLQuery, Response}; +use serde::{Deserialize, Serialize}; + +#[derive(GraphQLQuery)] +#[graphql( + schema_path = "tests/subgraph/query/schema.json", + query_path = "tests/subgraph/query/orderbook/orderbook.graphql", + response_derives = "Debug, Serialize, Deserialize" +)] +pub struct OrderBook; + +#[derive(Serialize, Deserialize, Debug)] +pub struct OrderBookResponse { + pub id: Address, + pub deployer: Address, + pub address: Address, + pub meta: Bytes, +} + +impl OrderBookResponse { + pub fn from(response: ResponseData) -> OrderBookResponse { + let orderbook: order_book::OrderBookOrderBook = response.order_book.unwrap(); + + let meta_bytes = orderbook + .meta + .unwrap_or(order_book::OrderBookOrderBookMeta { + id: Bytes::from([0u8, 32]), + }) + .id; + + OrderBookResponse { + id: Address::from_slice(&orderbook.id), + address: Address::from_slice(&orderbook.address), + deployer: Address::from_slice(&orderbook.deployer.unwrap_or_default()), + meta: meta_bytes, + } + } +} + +pub async fn get_orderbook_query(id: &Address) -> Result { + let variables = order_book::Variables { + orderbook: format!("{:?}", id).to_string().into(), + }; + + let request_body = OrderBook::build_query(variables); + let client = reqwest::Client::new(); + let res = client + .post((*SG_URL).clone()) + .json(&request_body) + .send() + .await?; + + let response_body: Response = res.json().await?; + + match response_body.data { + Some(data) => { + let response = OrderBookResponse::from(data); + Ok(response) + } + None => Err(anyhow!("Failed to get query")), + } +} diff --git a/subgraph/tests/subgraph/query/orderbook/orderbook.graphql b/subgraph/tests/subgraph/query/orderbook/orderbook.graphql new file mode 100644 index 0000000000..e7bd5127ca --- /dev/null +++ b/subgraph/tests/subgraph/query/orderbook/orderbook.graphql @@ -0,0 +1,10 @@ +query OrderBook($orderbook: String) { + orderBook(id: $orderbook) { + id + deployer + address + meta { + id + } + } +} diff --git a/subgraph/tests/subgraph/query/rain_meta_v1/mod.rs b/subgraph/tests/subgraph/query/rain_meta_v1/mod.rs new file mode 100644 index 0000000000..ed36dc93b7 --- /dev/null +++ b/subgraph/tests/subgraph/query/rain_meta_v1/mod.rs @@ -0,0 +1,61 @@ +use self::rain_meta_v1::{RainMetaV1RainMetaV1Content, ResponseData}; +use super::SG_URL; +use anyhow::{anyhow, Result}; +use ethers::types::Bytes; +use graphql_client::{GraphQLQuery, Response}; +use serde::{Deserialize, Serialize}; + +#[derive(GraphQLQuery)] +#[graphql( + schema_path = "tests/subgraph/query/schema.json", + query_path = "tests/subgraph/query/rain_meta_v1/rain_meta_v1.graphql", + response_derives = "Debug, Serialize, Deserialize" +)] +pub struct RainMetaV1; + +#[derive(Serialize, Deserialize, Debug)] +pub struct RainMetaV1Response { + pub id: Bytes, + pub meta_bytes: Bytes, + pub content: Vec, +} + +impl RainMetaV1Response { + pub fn from(response: ResponseData) -> RainMetaV1Response { + let data = response.rain_meta_v1.unwrap(); + + let content_data: Vec = data.content; + + let content: Vec = content_data.iter().map(|meta| meta.id.clone()).collect(); + + RainMetaV1Response { + id: data.id, + meta_bytes: data.meta_bytes, + content, + } + } +} + +pub async fn get_rain_meta_v1(id: &Bytes) -> Result { + let variables = rain_meta_v1::Variables { + rain_meta: id.to_string().into(), + }; + + let request_body = RainMetaV1::build_query(variables); + let client = reqwest::Client::new(); + let res = client + .post((*SG_URL).clone()) + .json(&request_body) + .send() + .await?; + + let response_body: Response = res.json().await?; + + match response_body.data { + Some(data) => { + let response: RainMetaV1Response = RainMetaV1Response::from(data); + Ok(response) + } + None => Err(anyhow!("Failed to get query")), + } +} diff --git a/subgraph/tests/subgraph/query/rain_meta_v1/rain_meta_v1.graphql b/subgraph/tests/subgraph/query/rain_meta_v1/rain_meta_v1.graphql new file mode 100644 index 0000000000..99a3724cef --- /dev/null +++ b/subgraph/tests/subgraph/query/rain_meta_v1/rain_meta_v1.graphql @@ -0,0 +1,9 @@ +query RainMetaV1($rain_meta: String) { + rainMetaV1(id: $rain_meta) { + id + metaBytes + content { + id + } + } +} diff --git a/subgraph/tests/subgraph/query/schema.json b/subgraph/tests/subgraph/query/schema.json new file mode 100644 index 0000000000..a85b01b9a8 --- /dev/null +++ b/subgraph/tests/subgraph/query/schema.json @@ -0,0 +1,40192 @@ +{ + "data": { + "__schema": { + "directives": [ + { + "args": [ + { + "defaultValue": null, + "description": null, + "name": "if", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + } + } + ], + "description": null, + "locations": [ + "FIELD", + "FRAGMENT_SPREAD", + "INLINE_FRAGMENT" + ], + "name": "skip" + }, + { + "args": [ + { + "defaultValue": null, + "description": null, + "name": "if", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + } + } + ], + "description": null, + "locations": [ + "FIELD", + "FRAGMENT_SPREAD", + "INLINE_FRAGMENT" + ], + "name": "include" + }, + { + "args": [], + "description": "Marks the GraphQL type as indexable entity. Each type that should be an entity is required to be annotated with this directive.", + "locations": [ + "OBJECT" + ], + "name": "entity" + }, + { + "args": [ + { + "defaultValue": null, + "description": null, + "name": "id", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + ], + "description": "Defined a Subgraph ID for an object type", + "locations": [ + "OBJECT" + ], + "name": "subgraphId" + }, + { + "args": [ + { + "defaultValue": null, + "description": null, + "name": "field", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + ], + "description": "creates a virtual field on the entity that may be queried but cannot be set manually through the mappings API.", + "locations": [ + "FIELD_DEFINITION" + ], + "name": "derivedFrom" + } + ], + "mutationType": null, + "queryType": { + "name": "Query" + }, + "subscriptionType": { + "name": "Subscription" + }, + "types": [ + { + "description": null, + "enumValues": null, + "fields": [ + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "id", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + } + }, + { + "args": [ + { + "defaultValue": "0", + "description": null, + "name": "skip", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": "100", + "description": null, + "name": "first", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderBy", + "type": { + "kind": "ENUM", + "name": "Order_orderBy", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderDirection", + "type": { + "kind": "ENUM", + "name": "OrderDirection", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "Order_filter", + "ofType": null + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "orders", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Order", + "ofType": null + } + } + } + }, + { + "args": [ + { + "defaultValue": "0", + "description": null, + "name": "skip", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": "100", + "description": null, + "name": "first", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderBy", + "type": { + "kind": "ENUM", + "name": "VaultWithdraw_orderBy", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderDirection", + "type": { + "kind": "ENUM", + "name": "OrderDirection", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "VaultWithdraw_filter", + "ofType": null + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "withdraws", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "VaultWithdraw", + "ofType": null + } + } + } + }, + { + "args": [ + { + "defaultValue": "0", + "description": null, + "name": "skip", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": "100", + "description": null, + "name": "first", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderBy", + "type": { + "kind": "ENUM", + "name": "VaultDeposit_orderBy", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderDirection", + "type": { + "kind": "ENUM", + "name": "OrderDirection", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "VaultDeposit_filter", + "ofType": null + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "deposits", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "VaultDeposit", + "ofType": null + } + } + } + }, + { + "args": [ + { + "defaultValue": "0", + "description": null, + "name": "skip", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": "100", + "description": null, + "name": "first", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderBy", + "type": { + "kind": "ENUM", + "name": "OrderClear_orderBy", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderDirection", + "type": { + "kind": "ENUM", + "name": "OrderDirection", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "OrderClear_filter", + "ofType": null + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "ordersCleared", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "OrderClear", + "ofType": null + } + } + } + }, + { + "args": [ + { + "defaultValue": "0", + "description": null, + "name": "skip", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": "100", + "description": null, + "name": "first", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderBy", + "type": { + "kind": "ENUM", + "name": "Bounty_orderBy", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderDirection", + "type": { + "kind": "ENUM", + "name": "OrderDirection", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "Bounty_filter", + "ofType": null + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "bounties", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Bounty", + "ofType": null + } + } + } + }, + { + "args": [ + { + "defaultValue": "0", + "description": null, + "name": "skip", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": "100", + "description": null, + "name": "first", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderBy", + "type": { + "kind": "ENUM", + "name": "TakeOrderEntity_orderBy", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderDirection", + "type": { + "kind": "ENUM", + "name": "OrderDirection", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "TakeOrderEntity_filter", + "ofType": null + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "takeOrderEntities", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "TakeOrderEntity", + "ofType": null + } + } + } + }, + { + "args": [ + { + "defaultValue": "0", + "description": null, + "name": "skip", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": "100", + "description": null, + "name": "first", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderBy", + "type": { + "kind": "ENUM", + "name": "Vault_orderBy", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderDirection", + "type": { + "kind": "ENUM", + "name": "OrderDirection", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "Vault_filter", + "ofType": null + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "vaults", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Vault", + "ofType": null + } + } + } + }, + { + "args": [ + { + "defaultValue": "0", + "description": null, + "name": "skip", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": "100", + "description": null, + "name": "first", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderBy", + "type": { + "kind": "ENUM", + "name": "TokenVault_orderBy", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderDirection", + "type": { + "kind": "ENUM", + "name": "OrderDirection", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "TokenVault_filter", + "ofType": null + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "tokenVaults", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "TokenVault", + "ofType": null + } + } + } + }, + { + "args": [ + { + "defaultValue": "0", + "description": null, + "name": "skip", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": "100", + "description": null, + "name": "first", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderBy", + "type": { + "kind": "ENUM", + "name": "Event_orderBy", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderDirection", + "type": { + "kind": "ENUM", + "name": "OrderDirection", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "Event_filter", + "ofType": null + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "events", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INTERFACE", + "name": "Event", + "ofType": null + } + } + } + } + ], + "inputFields": null, + "interfaces": [], + "kind": "OBJECT", + "name": "Account", + "possibleTypes": null + }, + { + "description": null, + "enumValues": null, + "fields": null, + "inputFields": [ + { + "defaultValue": null, + "description": null, + "name": "id", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_not", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_gt", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_lt", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_gte", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_lte", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_contains", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_not_contains", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orders_", + "type": { + "kind": "INPUT_OBJECT", + "name": "Order_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "withdraws_", + "type": { + "kind": "INPUT_OBJECT", + "name": "VaultWithdraw_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "deposits_", + "type": { + "kind": "INPUT_OBJECT", + "name": "VaultDeposit_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "ordersCleared_", + "type": { + "kind": "INPUT_OBJECT", + "name": "OrderClear_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bounties_", + "type": { + "kind": "INPUT_OBJECT", + "name": "Bounty_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "takeOrderEntities_", + "type": { + "kind": "INPUT_OBJECT", + "name": "TakeOrderEntity_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vaults_", + "type": { + "kind": "INPUT_OBJECT", + "name": "Vault_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVaults_", + "type": { + "kind": "INPUT_OBJECT", + "name": "TokenVault_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "events_", + "type": { + "kind": "INPUT_OBJECT", + "name": "Event_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": "Filter for the block changed event.", + "name": "_change_block", + "type": { + "kind": "INPUT_OBJECT", + "name": "BlockChangedFilter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "and", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "Account_filter", + "ofType": null + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "or", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "Account_filter", + "ofType": null + } + } + } + ], + "interfaces": null, + "kind": "INPUT_OBJECT", + "name": "Account_filter", + "possibleTypes": null + }, + { + "description": null, + "enumValues": [ + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "id" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "orders" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "withdraws" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "deposits" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "ordersCleared" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "bounties" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "takeOrderEntities" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "vaults" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "tokenVaults" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "events" + } + ], + "fields": null, + "inputFields": null, + "interfaces": null, + "kind": "ENUM", + "name": "Account_orderBy", + "possibleTypes": null + }, + { + "description": null, + "enumValues": null, + "fields": null, + "inputFields": null, + "interfaces": null, + "kind": "SCALAR", + "name": "BigDecimal", + "possibleTypes": null + }, + { + "description": null, + "enumValues": null, + "fields": null, + "inputFields": null, + "interfaces": null, + "kind": "SCALAR", + "name": "BigInt", + "possibleTypes": null + }, + { + "description": null, + "enumValues": null, + "fields": null, + "inputFields": [ + { + "defaultValue": null, + "description": null, + "name": "number_gte", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + } + } + ], + "interfaces": null, + "kind": "INPUT_OBJECT", + "name": "BlockChangedFilter", + "possibleTypes": null + }, + { + "description": null, + "enumValues": null, + "fields": null, + "inputFields": [ + { + "defaultValue": null, + "description": null, + "name": "hash", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "number", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "number_gte", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + } + ], + "interfaces": null, + "kind": "INPUT_OBJECT", + "name": "Block_height", + "possibleTypes": null + }, + { + "description": null, + "enumValues": null, + "fields": null, + "inputFields": null, + "interfaces": null, + "kind": "SCALAR", + "name": "Boolean", + "possibleTypes": null + }, + { + "description": null, + "enumValues": null, + "fields": [ + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "id", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": "The clearer who received this bounty", + "isDeprecated": false, + "name": "clearer", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Account", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": "The Clear event that paid this bounty", + "isDeprecated": false, + "name": "orderClear", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "OrderClear", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": "The Vault that bounty token A was deposited into", + "isDeprecated": false, + "name": "bountyVaultA", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Vault", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": "The Vault that bounty token B was deposited into", + "isDeprecated": false, + "name": "bountyVaultB", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Vault", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": "The A token for the bounty", + "isDeprecated": false, + "name": "bountyTokenA", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "ERC20", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": "The B token for the bounty", + "isDeprecated": false, + "name": "bountyTokenB", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "ERC20", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": "The amount paid for bounty token A", + "isDeprecated": false, + "name": "bountyAmountA", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "bountyAmountADisplay", + "type": { + "kind": "SCALAR", + "name": "BigDecimal", + "ofType": null + } + }, + { + "args": [], + "deprecationReason": null, + "description": "The amount paid for bounty token B", + "isDeprecated": false, + "name": "bountyAmountB", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "bountyAmountBDisplay", + "type": { + "kind": "SCALAR", + "name": "BigDecimal", + "ofType": null + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "transaction", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Transaction", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "emitter", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Account", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "timestamp", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + ], + "inputFields": null, + "interfaces": [], + "kind": "OBJECT", + "name": "Bounty", + "possibleTypes": null + }, + { + "description": null, + "enumValues": null, + "fields": null, + "inputFields": [ + { + "defaultValue": null, + "description": null, + "name": "id", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_not", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_gt", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_lt", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_gte", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_lte", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "clearer", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "clearer_not", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "clearer_gt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "clearer_lt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "clearer_gte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "clearer_lte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "clearer_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "clearer_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "clearer_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "clearer_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "clearer_not_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "clearer_not_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "clearer_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "clearer_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "clearer_not_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "clearer_not_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "clearer_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "clearer_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "clearer_not_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "clearer_not_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "clearer_", + "type": { + "kind": "INPUT_OBJECT", + "name": "Account_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderClear", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderClear_not", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderClear_gt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderClear_lt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderClear_gte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderClear_lte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderClear_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderClear_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderClear_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderClear_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderClear_not_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderClear_not_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderClear_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderClear_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderClear_not_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderClear_not_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderClear_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderClear_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderClear_not_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderClear_not_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderClear_", + "type": { + "kind": "INPUT_OBJECT", + "name": "OrderClear_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyVaultA", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyVaultA_not", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyVaultA_gt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyVaultA_lt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyVaultA_gte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyVaultA_lte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyVaultA_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyVaultA_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyVaultA_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyVaultA_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyVaultA_not_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyVaultA_not_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyVaultA_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyVaultA_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyVaultA_not_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyVaultA_not_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyVaultA_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyVaultA_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyVaultA_not_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyVaultA_not_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyVaultA_", + "type": { + "kind": "INPUT_OBJECT", + "name": "Vault_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyVaultB", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyVaultB_not", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyVaultB_gt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyVaultB_lt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyVaultB_gte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyVaultB_lte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyVaultB_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyVaultB_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyVaultB_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyVaultB_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyVaultB_not_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyVaultB_not_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyVaultB_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyVaultB_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyVaultB_not_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyVaultB_not_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyVaultB_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyVaultB_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyVaultB_not_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyVaultB_not_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyVaultB_", + "type": { + "kind": "INPUT_OBJECT", + "name": "Vault_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyTokenA", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyTokenA_not", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyTokenA_gt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyTokenA_lt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyTokenA_gte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyTokenA_lte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyTokenA_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyTokenA_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyTokenA_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyTokenA_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyTokenA_not_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyTokenA_not_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyTokenA_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyTokenA_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyTokenA_not_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyTokenA_not_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyTokenA_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyTokenA_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyTokenA_not_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyTokenA_not_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyTokenA_", + "type": { + "kind": "INPUT_OBJECT", + "name": "ERC20_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyTokenB", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyTokenB_not", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyTokenB_gt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyTokenB_lt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyTokenB_gte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyTokenB_lte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyTokenB_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyTokenB_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyTokenB_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyTokenB_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyTokenB_not_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyTokenB_not_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyTokenB_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyTokenB_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyTokenB_not_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyTokenB_not_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyTokenB_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyTokenB_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyTokenB_not_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyTokenB_not_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyTokenB_", + "type": { + "kind": "INPUT_OBJECT", + "name": "ERC20_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyAmountA", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyAmountA_not", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyAmountA_gt", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyAmountA_lt", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyAmountA_gte", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyAmountA_lte", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyAmountA_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyAmountA_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyAmountADisplay", + "type": { + "kind": "SCALAR", + "name": "BigDecimal", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyAmountADisplay_not", + "type": { + "kind": "SCALAR", + "name": "BigDecimal", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyAmountADisplay_gt", + "type": { + "kind": "SCALAR", + "name": "BigDecimal", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyAmountADisplay_lt", + "type": { + "kind": "SCALAR", + "name": "BigDecimal", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyAmountADisplay_gte", + "type": { + "kind": "SCALAR", + "name": "BigDecimal", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyAmountADisplay_lte", + "type": { + "kind": "SCALAR", + "name": "BigDecimal", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyAmountADisplay_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigDecimal", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyAmountADisplay_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigDecimal", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyAmountB", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyAmountB_not", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyAmountB_gt", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyAmountB_lt", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyAmountB_gte", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyAmountB_lte", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyAmountB_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyAmountB_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyAmountBDisplay", + "type": { + "kind": "SCALAR", + "name": "BigDecimal", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyAmountBDisplay_not", + "type": { + "kind": "SCALAR", + "name": "BigDecimal", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyAmountBDisplay_gt", + "type": { + "kind": "SCALAR", + "name": "BigDecimal", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyAmountBDisplay_lt", + "type": { + "kind": "SCALAR", + "name": "BigDecimal", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyAmountBDisplay_gte", + "type": { + "kind": "SCALAR", + "name": "BigDecimal", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyAmountBDisplay_lte", + "type": { + "kind": "SCALAR", + "name": "BigDecimal", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyAmountBDisplay_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigDecimal", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "bountyAmountBDisplay_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigDecimal", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_not", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_gt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_lt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_gte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_lte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_not_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_not_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_not_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_not_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_not_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_not_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_", + "type": { + "kind": "INPUT_OBJECT", + "name": "Transaction_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_not", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_gt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_lt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_gte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_lte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_not_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_not_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_not_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_not_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_not_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_not_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_", + "type": { + "kind": "INPUT_OBJECT", + "name": "Account_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "timestamp", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "timestamp_not", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "timestamp_gt", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "timestamp_lt", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "timestamp_gte", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "timestamp_lte", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "timestamp_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "timestamp_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": "Filter for the block changed event.", + "name": "_change_block", + "type": { + "kind": "INPUT_OBJECT", + "name": "BlockChangedFilter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "and", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "Bounty_filter", + "ofType": null + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "or", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "Bounty_filter", + "ofType": null + } + } + } + ], + "interfaces": null, + "kind": "INPUT_OBJECT", + "name": "Bounty_filter", + "possibleTypes": null + }, + { + "description": null, + "enumValues": [ + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "id" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "clearer" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "clearer__id" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "orderClear" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "orderClear__id" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "orderClear__aInputIOIndex" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "orderClear__aOutputIOIndex" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "orderClear__bInputIOIndex" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "orderClear__bOutputIOIndex" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "orderClear__timestamp" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "bountyVaultA" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "bountyVaultA__id" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "bountyVaultA__vaultId" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "bountyVaultB" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "bountyVaultB__id" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "bountyVaultB__vaultId" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "bountyTokenA" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "bountyTokenA__id" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "bountyTokenA__name" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "bountyTokenA__symbol" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "bountyTokenA__totalSupply" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "bountyTokenA__totalSupplyDisplay" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "bountyTokenA__decimals" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "bountyTokenB" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "bountyTokenB__id" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "bountyTokenB__name" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "bountyTokenB__symbol" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "bountyTokenB__totalSupply" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "bountyTokenB__totalSupplyDisplay" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "bountyTokenB__decimals" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "bountyAmountA" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "bountyAmountADisplay" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "bountyAmountB" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "bountyAmountBDisplay" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "transaction" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "transaction__id" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "transaction__timestamp" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "transaction__blockNumber" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "emitter" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "emitter__id" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "timestamp" + } + ], + "fields": null, + "inputFields": null, + "interfaces": null, + "kind": "ENUM", + "name": "Bounty_orderBy", + "possibleTypes": null + }, + { + "description": null, + "enumValues": null, + "fields": null, + "inputFields": null, + "interfaces": null, + "kind": "SCALAR", + "name": "Bytes", + "possibleTypes": null + }, + { + "description": null, + "enumValues": null, + "fields": [ + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "id", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "orderClearId", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "OrderClear", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "tokenVaultBountyAlice", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "TokenVault", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "tokenVaultBountyBob", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "TokenVault", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "aliceTokenVaultInput", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "aliceTokenVaultOutput", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "bobTokenVaultInput", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "bobTokenVaultOutput", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + ], + "inputFields": null, + "interfaces": [], + "kind": "OBJECT", + "name": "ClearOrderConfig", + "possibleTypes": null + }, + { + "description": null, + "enumValues": null, + "fields": null, + "inputFields": [ + { + "defaultValue": null, + "description": null, + "name": "id", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_not", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_gt", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_lt", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_gte", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_lte", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderClearId", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderClearId_not", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderClearId_gt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderClearId_lt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderClearId_gte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderClearId_lte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderClearId_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderClearId_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderClearId_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderClearId_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderClearId_not_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderClearId_not_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderClearId_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderClearId_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderClearId_not_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderClearId_not_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderClearId_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderClearId_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderClearId_not_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderClearId_not_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderClearId_", + "type": { + "kind": "INPUT_OBJECT", + "name": "OrderClear_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVaultBountyAlice", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVaultBountyAlice_not", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVaultBountyAlice_gt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVaultBountyAlice_lt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVaultBountyAlice_gte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVaultBountyAlice_lte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVaultBountyAlice_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVaultBountyAlice_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVaultBountyAlice_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVaultBountyAlice_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVaultBountyAlice_not_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVaultBountyAlice_not_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVaultBountyAlice_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVaultBountyAlice_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVaultBountyAlice_not_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVaultBountyAlice_not_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVaultBountyAlice_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVaultBountyAlice_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVaultBountyAlice_not_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVaultBountyAlice_not_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVaultBountyAlice_", + "type": { + "kind": "INPUT_OBJECT", + "name": "TokenVault_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVaultBountyBob", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVaultBountyBob_not", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVaultBountyBob_gt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVaultBountyBob_lt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVaultBountyBob_gte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVaultBountyBob_lte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVaultBountyBob_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVaultBountyBob_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVaultBountyBob_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVaultBountyBob_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVaultBountyBob_not_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVaultBountyBob_not_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVaultBountyBob_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVaultBountyBob_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVaultBountyBob_not_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVaultBountyBob_not_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVaultBountyBob_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVaultBountyBob_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVaultBountyBob_not_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVaultBountyBob_not_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVaultBountyBob_", + "type": { + "kind": "INPUT_OBJECT", + "name": "TokenVault_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "aliceTokenVaultInput", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "aliceTokenVaultInput_not", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "aliceTokenVaultInput_gt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "aliceTokenVaultInput_lt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "aliceTokenVaultInput_gte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "aliceTokenVaultInput_lte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "aliceTokenVaultInput_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "aliceTokenVaultInput_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "aliceTokenVaultInput_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "aliceTokenVaultInput_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "aliceTokenVaultInput_not_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "aliceTokenVaultInput_not_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "aliceTokenVaultInput_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "aliceTokenVaultInput_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "aliceTokenVaultInput_not_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "aliceTokenVaultInput_not_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "aliceTokenVaultInput_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "aliceTokenVaultInput_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "aliceTokenVaultInput_not_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "aliceTokenVaultInput_not_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "aliceTokenVaultOutput", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "aliceTokenVaultOutput_not", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "aliceTokenVaultOutput_gt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "aliceTokenVaultOutput_lt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "aliceTokenVaultOutput_gte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "aliceTokenVaultOutput_lte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "aliceTokenVaultOutput_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "aliceTokenVaultOutput_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "aliceTokenVaultOutput_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "aliceTokenVaultOutput_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "aliceTokenVaultOutput_not_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "aliceTokenVaultOutput_not_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "aliceTokenVaultOutput_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "aliceTokenVaultOutput_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "aliceTokenVaultOutput_not_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "aliceTokenVaultOutput_not_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "aliceTokenVaultOutput_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "aliceTokenVaultOutput_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "aliceTokenVaultOutput_not_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "aliceTokenVaultOutput_not_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bobTokenVaultInput", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bobTokenVaultInput_not", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bobTokenVaultInput_gt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bobTokenVaultInput_lt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bobTokenVaultInput_gte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bobTokenVaultInput_lte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bobTokenVaultInput_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "bobTokenVaultInput_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "bobTokenVaultInput_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bobTokenVaultInput_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bobTokenVaultInput_not_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bobTokenVaultInput_not_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bobTokenVaultInput_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bobTokenVaultInput_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bobTokenVaultInput_not_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bobTokenVaultInput_not_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bobTokenVaultInput_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bobTokenVaultInput_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bobTokenVaultInput_not_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bobTokenVaultInput_not_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bobTokenVaultOutput", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bobTokenVaultOutput_not", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bobTokenVaultOutput_gt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bobTokenVaultOutput_lt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bobTokenVaultOutput_gte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bobTokenVaultOutput_lte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bobTokenVaultOutput_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "bobTokenVaultOutput_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "bobTokenVaultOutput_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bobTokenVaultOutput_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bobTokenVaultOutput_not_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bobTokenVaultOutput_not_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bobTokenVaultOutput_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bobTokenVaultOutput_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bobTokenVaultOutput_not_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bobTokenVaultOutput_not_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bobTokenVaultOutput_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bobTokenVaultOutput_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bobTokenVaultOutput_not_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bobTokenVaultOutput_not_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": "Filter for the block changed event.", + "name": "_change_block", + "type": { + "kind": "INPUT_OBJECT", + "name": "BlockChangedFilter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "and", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "ClearOrderConfig_filter", + "ofType": null + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "or", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "ClearOrderConfig_filter", + "ofType": null + } + } + } + ], + "interfaces": null, + "kind": "INPUT_OBJECT", + "name": "ClearOrderConfig_filter", + "possibleTypes": null + }, + { + "description": null, + "enumValues": [ + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "id" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "orderClearId" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "orderClearId__id" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "orderClearId__aInputIOIndex" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "orderClearId__aOutputIOIndex" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "orderClearId__bInputIOIndex" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "orderClearId__bOutputIOIndex" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "orderClearId__timestamp" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "tokenVaultBountyAlice" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "tokenVaultBountyAlice__id" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "tokenVaultBountyAlice__vaultId" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "tokenVaultBountyAlice__balance" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "tokenVaultBountyAlice__balanceDisplay" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "tokenVaultBountyBob" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "tokenVaultBountyBob__id" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "tokenVaultBountyBob__vaultId" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "tokenVaultBountyBob__balance" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "tokenVaultBountyBob__balanceDisplay" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "aliceTokenVaultInput" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "aliceTokenVaultOutput" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "bobTokenVaultInput" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "bobTokenVaultOutput" + } + ], + "fields": null, + "inputFields": null, + "interfaces": null, + "kind": "ENUM", + "name": "ClearOrderConfig_orderBy", + "possibleTypes": null + }, + { + "description": null, + "enumValues": null, + "fields": [ + { + "args": [], + "deprecationReason": null, + "description": "The hash of this meta, this basically is the hash of 'rawBytes' field", + "isDeprecated": false, + "name": "id", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": "The cbor map item bytes.", + "isDeprecated": false, + "name": "rawBytes", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": "The magic number associated with this meta", + "isDeprecated": false, + "name": "magicNumber", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": "The payload of this content", + "isDeprecated": false, + "name": "payload", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + } + }, + { + "args": [ + { + "defaultValue": "0", + "description": null, + "name": "skip", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": "100", + "description": null, + "name": "first", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderBy", + "type": { + "kind": "ENUM", + "name": "RainMetaV1_orderBy", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderDirection", + "type": { + "kind": "ENUM", + "name": "OrderDirection", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "RainMetaV1_filter", + "ofType": null + } + } + ], + "deprecationReason": null, + "description": "The RainMeta records that have this cbor map as part of their sequence", + "isDeprecated": false, + "name": "parents", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "RainMetaV1", + "ofType": null + } + } + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": "The header name info for Content-Type", + "isDeprecated": false, + "name": "contentType", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "args": [], + "deprecationReason": null, + "description": "The header name info for Content-Encoding. It's optional", + "isDeprecated": false, + "name": "contentEncoding", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "args": [], + "deprecationReason": null, + "description": "The header name info for Content-Language. It's optional", + "isDeprecated": false, + "name": "contentLanguage", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + ], + "inputFields": null, + "interfaces": [], + "kind": "OBJECT", + "name": "ContentMetaV1", + "possibleTypes": null + }, + { + "description": null, + "enumValues": null, + "fields": null, + "inputFields": [ + { + "defaultValue": null, + "description": null, + "name": "id", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_not", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_gt", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_lt", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_gte", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_lte", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_contains", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_not_contains", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "rawBytes", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "rawBytes_not", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "rawBytes_gt", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "rawBytes_lt", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "rawBytes_gte", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "rawBytes_lte", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "rawBytes_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "rawBytes_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "rawBytes_contains", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "rawBytes_not_contains", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "magicNumber", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "magicNumber_not", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "magicNumber_gt", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "magicNumber_lt", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "magicNumber_gte", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "magicNumber_lte", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "magicNumber_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "magicNumber_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "payload", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "payload_not", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "payload_gt", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "payload_lt", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "payload_gte", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "payload_lte", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "payload_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "payload_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "payload_contains", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "payload_not_contains", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "parents", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "parents_not", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "parents_contains", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "parents_contains_nocase", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "parents_not_contains", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "parents_not_contains_nocase", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "parents_", + "type": { + "kind": "INPUT_OBJECT", + "name": "RainMetaV1_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "contentType", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "contentType_not", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "contentType_gt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "contentType_lt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "contentType_gte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "contentType_lte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "contentType_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "contentType_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "contentType_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "contentType_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "contentType_not_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "contentType_not_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "contentType_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "contentType_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "contentType_not_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "contentType_not_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "contentType_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "contentType_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "contentType_not_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "contentType_not_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "contentEncoding", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "contentEncoding_not", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "contentEncoding_gt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "contentEncoding_lt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "contentEncoding_gte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "contentEncoding_lte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "contentEncoding_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "contentEncoding_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "contentEncoding_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "contentEncoding_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "contentEncoding_not_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "contentEncoding_not_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "contentEncoding_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "contentEncoding_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "contentEncoding_not_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "contentEncoding_not_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "contentEncoding_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "contentEncoding_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "contentEncoding_not_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "contentEncoding_not_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "contentLanguage", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "contentLanguage_not", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "contentLanguage_gt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "contentLanguage_lt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "contentLanguage_gte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "contentLanguage_lte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "contentLanguage_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "contentLanguage_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "contentLanguage_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "contentLanguage_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "contentLanguage_not_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "contentLanguage_not_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "contentLanguage_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "contentLanguage_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "contentLanguage_not_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "contentLanguage_not_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "contentLanguage_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "contentLanguage_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "contentLanguage_not_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "contentLanguage_not_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": "Filter for the block changed event.", + "name": "_change_block", + "type": { + "kind": "INPUT_OBJECT", + "name": "BlockChangedFilter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "and", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "ContentMetaV1_filter", + "ofType": null + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "or", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "ContentMetaV1_filter", + "ofType": null + } + } + } + ], + "interfaces": null, + "kind": "INPUT_OBJECT", + "name": "ContentMetaV1_filter", + "possibleTypes": null + }, + { + "description": null, + "enumValues": [ + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "id" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "rawBytes" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "magicNumber" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "payload" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "parents" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "contentType" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "contentEncoding" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "contentLanguage" + } + ], + "fields": null, + "inputFields": null, + "interfaces": null, + "kind": "ENUM", + "name": "ContentMetaV1_orderBy", + "possibleTypes": null + }, + { + "description": null, + "enumValues": null, + "fields": [ + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "id", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": "Base caller", + "isDeprecated": false, + "name": "caller", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Account", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": "Contextual data available to both calculate order and handle IO", + "isDeprecated": false, + "name": "callingContext", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": "Contains the DECIMAL RESCALED calculations", + "isDeprecated": false, + "name": "calculationsContext", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": "The inputs context data", + "isDeprecated": false, + "name": "vaultInputsContext", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": "The outputs context data", + "isDeprecated": false, + "name": "vaultOutputsContext", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "args": [ + { + "defaultValue": "0", + "description": null, + "name": "skip", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": "100", + "description": null, + "name": "first", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderBy", + "type": { + "kind": "ENUM", + "name": "SignedContext_orderBy", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderDirection", + "type": { + "kind": "ENUM", + "name": "OrderDirection", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "SignedContext_filter", + "ofType": null + } + } + ], + "deprecationReason": null, + "description": "Optional signed context relevant to the transaction", + "isDeprecated": false, + "name": "signedContext", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "SignedContext", + "ofType": null + } + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": "Transaction where this event was emitted.", + "isDeprecated": false, + "name": "transaction", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Transaction", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": "Account that sent the transaction this event was emitted in.", + "isDeprecated": false, + "name": "emitter", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Account", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "timestamp", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + ], + "inputFields": null, + "interfaces": [], + "kind": "OBJECT", + "name": "ContextEntity", + "possibleTypes": null + }, + { + "description": null, + "enumValues": null, + "fields": null, + "inputFields": [ + { + "defaultValue": null, + "description": null, + "name": "id", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_not", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_gt", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_lt", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_gte", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_lte", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "caller", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "caller_not", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "caller_gt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "caller_lt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "caller_gte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "caller_lte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "caller_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "caller_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "caller_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "caller_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "caller_not_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "caller_not_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "caller_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "caller_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "caller_not_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "caller_not_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "caller_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "caller_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "caller_not_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "caller_not_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "caller_", + "type": { + "kind": "INPUT_OBJECT", + "name": "Account_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "callingContext", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "callingContext_not", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "callingContext_contains", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "callingContext_contains_nocase", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "callingContext_not_contains", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "callingContext_not_contains_nocase", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "calculationsContext", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "calculationsContext_not", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "calculationsContext_contains", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "calculationsContext_contains_nocase", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "calculationsContext_not_contains", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "calculationsContext_not_contains_nocase", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "vaultInputsContext", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "vaultInputsContext_not", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "vaultInputsContext_contains", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "vaultInputsContext_contains_nocase", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "vaultInputsContext_not_contains", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "vaultInputsContext_not_contains_nocase", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "vaultOutputsContext", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "vaultOutputsContext_not", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "vaultOutputsContext_contains", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "vaultOutputsContext_contains_nocase", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "vaultOutputsContext_not_contains", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "vaultOutputsContext_not_contains_nocase", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "signedContext", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "signedContext_not", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "signedContext_contains", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "signedContext_contains_nocase", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "signedContext_not_contains", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "signedContext_not_contains_nocase", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "signedContext_", + "type": { + "kind": "INPUT_OBJECT", + "name": "SignedContext_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_not", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_gt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_lt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_gte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_lte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_not_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_not_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_not_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_not_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_not_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_not_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_", + "type": { + "kind": "INPUT_OBJECT", + "name": "Transaction_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_not", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_gt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_lt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_gte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_lte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_not_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_not_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_not_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_not_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_not_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_not_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_", + "type": { + "kind": "INPUT_OBJECT", + "name": "Account_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "timestamp", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "timestamp_not", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "timestamp_gt", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "timestamp_lt", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "timestamp_gte", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "timestamp_lte", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "timestamp_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "timestamp_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": "Filter for the block changed event.", + "name": "_change_block", + "type": { + "kind": "INPUT_OBJECT", + "name": "BlockChangedFilter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "and", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "ContextEntity_filter", + "ofType": null + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "or", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "ContextEntity_filter", + "ofType": null + } + } + } + ], + "interfaces": null, + "kind": "INPUT_OBJECT", + "name": "ContextEntity_filter", + "possibleTypes": null + }, + { + "description": null, + "enumValues": [ + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "id" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "caller" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "caller__id" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "callingContext" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "calculationsContext" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "vaultInputsContext" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "vaultOutputsContext" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "signedContext" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "transaction" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "transaction__id" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "transaction__timestamp" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "transaction__blockNumber" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "emitter" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "emitter__id" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "timestamp" + } + ], + "fields": null, + "inputFields": null, + "interfaces": null, + "kind": "ENUM", + "name": "ContextEntity_orderBy", + "possibleTypes": null + }, + { + "description": null, + "enumValues": null, + "fields": [ + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "id", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "name", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "symbol", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "totalSupply", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "totalSupplyDisplay", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigDecimal", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "decimals", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + } + } + ], + "inputFields": null, + "interfaces": [], + "kind": "OBJECT", + "name": "ERC20", + "possibleTypes": null + }, + { + "description": null, + "enumValues": null, + "fields": null, + "inputFields": [ + { + "defaultValue": null, + "description": null, + "name": "id", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_not", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_gt", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_lt", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_gte", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_lte", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "name", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "name_not", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "name_gt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "name_lt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "name_gte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "name_lte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "name_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "name_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "name_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "name_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "name_not_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "name_not_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "name_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "name_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "name_not_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "name_not_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "name_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "name_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "name_not_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "name_not_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "symbol", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "symbol_not", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "symbol_gt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "symbol_lt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "symbol_gte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "symbol_lte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "symbol_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "symbol_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "symbol_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "symbol_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "symbol_not_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "symbol_not_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "symbol_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "symbol_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "symbol_not_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "symbol_not_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "symbol_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "symbol_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "symbol_not_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "symbol_not_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "totalSupply", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "totalSupply_not", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "totalSupply_gt", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "totalSupply_lt", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "totalSupply_gte", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "totalSupply_lte", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "totalSupply_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "totalSupply_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "totalSupplyDisplay", + "type": { + "kind": "SCALAR", + "name": "BigDecimal", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "totalSupplyDisplay_not", + "type": { + "kind": "SCALAR", + "name": "BigDecimal", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "totalSupplyDisplay_gt", + "type": { + "kind": "SCALAR", + "name": "BigDecimal", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "totalSupplyDisplay_lt", + "type": { + "kind": "SCALAR", + "name": "BigDecimal", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "totalSupplyDisplay_gte", + "type": { + "kind": "SCALAR", + "name": "BigDecimal", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "totalSupplyDisplay_lte", + "type": { + "kind": "SCALAR", + "name": "BigDecimal", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "totalSupplyDisplay_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigDecimal", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "totalSupplyDisplay_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigDecimal", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "decimals", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "decimals_not", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "decimals_gt", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "decimals_lt", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "decimals_gte", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "decimals_lte", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "decimals_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "decimals_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": "Filter for the block changed event.", + "name": "_change_block", + "type": { + "kind": "INPUT_OBJECT", + "name": "BlockChangedFilter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "and", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "ERC20_filter", + "ofType": null + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "or", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "ERC20_filter", + "ofType": null + } + } + } + ], + "interfaces": null, + "kind": "INPUT_OBJECT", + "name": "ERC20_filter", + "possibleTypes": null + }, + { + "description": null, + "enumValues": [ + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "id" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "name" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "symbol" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "totalSupply" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "totalSupplyDisplay" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "decimals" + } + ], + "fields": null, + "inputFields": null, + "interfaces": null, + "kind": "ENUM", + "name": "ERC20_orderBy", + "possibleTypes": null + }, + { + "description": null, + "enumValues": null, + "fields": [ + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "id", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": "Transaction this event was emitted in.", + "isDeprecated": false, + "name": "transaction", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Transaction", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": "Account that sent the transaction this event was emitted in.", + "isDeprecated": false, + "name": "emitter", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Account", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "timestamp", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + ], + "inputFields": null, + "interfaces": null, + "kind": "INTERFACE", + "name": "Event", + "possibleTypes": [ + { + "kind": "OBJECT", + "name": "Order", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "VaultDeposit", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "VaultWithdraw", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "OrderClear", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "TakeOrderEntity", + "ofType": null + } + ] + }, + { + "description": null, + "enumValues": null, + "fields": null, + "inputFields": [ + { + "defaultValue": null, + "description": null, + "name": "id", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_not", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_gt", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_lt", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_gte", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_lte", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_not", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_gt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_lt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_gte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_lte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_not_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_not_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_not_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_not_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_not_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_not_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_", + "type": { + "kind": "INPUT_OBJECT", + "name": "Transaction_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_not", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_gt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_lt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_gte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_lte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_not_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_not_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_not_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_not_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_not_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_not_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_", + "type": { + "kind": "INPUT_OBJECT", + "name": "Account_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "timestamp", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "timestamp_not", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "timestamp_gt", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "timestamp_lt", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "timestamp_gte", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "timestamp_lte", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "timestamp_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "timestamp_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": "Filter for the block changed event.", + "name": "_change_block", + "type": { + "kind": "INPUT_OBJECT", + "name": "BlockChangedFilter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "and", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "Event_filter", + "ofType": null + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "or", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "Event_filter", + "ofType": null + } + } + } + ], + "interfaces": null, + "kind": "INPUT_OBJECT", + "name": "Event_filter", + "possibleTypes": null + }, + { + "description": null, + "enumValues": [ + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "id" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "transaction" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "transaction__id" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "transaction__timestamp" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "transaction__blockNumber" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "emitter" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "emitter__id" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "timestamp" + } + ], + "fields": null, + "inputFields": null, + "interfaces": null, + "kind": "ENUM", + "name": "Event_orderBy", + "possibleTypes": null + }, + { + "description": null, + "enumValues": null, + "fields": null, + "inputFields": null, + "interfaces": null, + "kind": "SCALAR", + "name": "Float", + "possibleTypes": null + }, + { + "description": null, + "enumValues": null, + "fields": null, + "inputFields": null, + "interfaces": null, + "kind": "SCALAR", + "name": "ID", + "possibleTypes": null + }, + { + "description": null, + "enumValues": null, + "fields": [ + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "id", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "token", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "ERC20", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "decimals", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "vault", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Vault", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "vaultId", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "order", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Order", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "tokenVault", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "TokenVault", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "index", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + } + } + ], + "inputFields": null, + "interfaces": [], + "kind": "OBJECT", + "name": "IO", + "possibleTypes": null + }, + { + "description": null, + "enumValues": null, + "fields": null, + "inputFields": [ + { + "defaultValue": null, + "description": null, + "name": "id", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_not", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_gt", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_lt", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_gte", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_lte", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "token", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "token_not", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "token_gt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "token_lt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "token_gte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "token_lte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "token_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "token_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "token_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "token_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "token_not_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "token_not_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "token_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "token_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "token_not_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "token_not_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "token_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "token_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "token_not_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "token_not_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "token_", + "type": { + "kind": "INPUT_OBJECT", + "name": "ERC20_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "decimals", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "decimals_not", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "decimals_gt", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "decimals_lt", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "decimals_gte", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "decimals_lte", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "decimals_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "decimals_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "vault", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vault_not", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vault_gt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vault_lt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vault_gte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vault_lte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vault_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "vault_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "vault_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vault_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vault_not_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vault_not_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vault_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vault_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vault_not_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vault_not_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vault_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vault_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vault_not_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vault_not_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vault_", + "type": { + "kind": "INPUT_OBJECT", + "name": "Vault_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vaultId", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vaultId_not", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vaultId_gt", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vaultId_lt", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vaultId_gte", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vaultId_lte", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vaultId_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "vaultId_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "order", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "order_not", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "order_gt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "order_lt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "order_gte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "order_lte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "order_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "order_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "order_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "order_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "order_not_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "order_not_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "order_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "order_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "order_not_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "order_not_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "order_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "order_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "order_not_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "order_not_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "order_", + "type": { + "kind": "INPUT_OBJECT", + "name": "Order_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVault", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVault_not", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVault_gt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVault_lt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVault_gte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVault_lte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVault_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVault_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVault_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVault_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVault_not_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVault_not_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVault_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVault_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVault_not_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVault_not_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVault_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVault_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVault_not_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVault_not_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVault_", + "type": { + "kind": "INPUT_OBJECT", + "name": "TokenVault_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "index", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "index_not", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "index_gt", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "index_lt", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "index_gte", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "index_lte", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "index_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "index_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": "Filter for the block changed event.", + "name": "_change_block", + "type": { + "kind": "INPUT_OBJECT", + "name": "BlockChangedFilter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "and", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "IO_filter", + "ofType": null + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "or", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "IO_filter", + "ofType": null + } + } + } + ], + "interfaces": null, + "kind": "INPUT_OBJECT", + "name": "IO_filter", + "possibleTypes": null + }, + { + "description": null, + "enumValues": [ + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "id" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "token" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "token__id" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "token__name" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "token__symbol" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "token__totalSupply" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "token__totalSupplyDisplay" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "token__decimals" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "decimals" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "vault" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "vault__id" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "vault__vaultId" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "vaultId" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "order" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "order__id" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "order__orderHash" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "order__interpreter" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "order__interpreterStore" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "order__expressionDeployer" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "order__expression" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "order__orderActive" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "order__handleIO" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "order__orderJSONString" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "order__expressionJSONString" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "order__timestamp" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "tokenVault" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "tokenVault__id" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "tokenVault__vaultId" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "tokenVault__balance" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "tokenVault__balanceDisplay" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "index" + } + ], + "fields": null, + "inputFields": null, + "interfaces": null, + "kind": "ENUM", + "name": "IO_orderBy", + "possibleTypes": null + }, + { + "description": "4 bytes signed integer\n", + "enumValues": null, + "fields": null, + "inputFields": null, + "interfaces": null, + "kind": "SCALAR", + "name": "Int", + "possibleTypes": null + }, + { + "description": "8 bytes signed integer\n", + "enumValues": null, + "fields": null, + "inputFields": null, + "interfaces": null, + "kind": "SCALAR", + "name": "Int8", + "possibleTypes": null + }, + { + "description": null, + "enumValues": null, + "fields": [ + { + "args": [], + "deprecationReason": null, + "description": "The hash of the order", + "isDeprecated": false, + "name": "id", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": "The hash of the order", + "isDeprecated": false, + "name": "orderHash", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": "The address that added the order", + "isDeprecated": false, + "name": "owner", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Account", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": "The IInterpreter address that is used to add the order", + "isDeprecated": false, + "name": "interpreter", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": "The IInterpreterStore address that is used to add the order", + "isDeprecated": false, + "name": "interpreterStore", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": "The IExpressionDeployer contract address that is used to add the order", + "isDeprecated": false, + "name": "expressionDeployer", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": "The address to the rain expression for the Order", + "isDeprecated": false, + "name": "expression", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": "Whether the order is active or inactive", + "isDeprecated": false, + "name": "orderActive", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": "Flag that check if there is a handle_IO entrypoint to run. If false the order book MAY skip calling the interpreter to save gas", + "isDeprecated": false, + "name": "handleIO", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "meta", + "type": { + "kind": "OBJECT", + "name": "RainMetaV1", + "ofType": null + } + }, + { + "args": [ + { + "defaultValue": "0", + "description": null, + "name": "skip", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": "100", + "description": null, + "name": "first", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderBy", + "type": { + "kind": "ENUM", + "name": "IO_orderBy", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderDirection", + "type": { + "kind": "ENUM", + "name": "OrderDirection", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "IO_filter", + "ofType": null + } + } + ], + "deprecationReason": null, + "description": "validInputs", + "isDeprecated": false, + "name": "validInputs", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "IO", + "ofType": null + } + } + } + }, + { + "args": [ + { + "defaultValue": "0", + "description": null, + "name": "skip", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": "100", + "description": null, + "name": "first", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderBy", + "type": { + "kind": "ENUM", + "name": "IO_orderBy", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderDirection", + "type": { + "kind": "ENUM", + "name": "OrderDirection", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "IO_filter", + "ofType": null + } + } + ], + "deprecationReason": null, + "description": "validOutputs", + "isDeprecated": false, + "name": "validOutputs", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "IO", + "ofType": null + } + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "orderJSONString", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "expressionJSONString", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "args": [], + "deprecationReason": null, + "description": "Timestamp when the order was added", + "isDeprecated": false, + "name": "transaction", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Transaction", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "emitter", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Account", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "timestamp", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + }, + { + "args": [ + { + "defaultValue": "0", + "description": null, + "name": "skip", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": "100", + "description": null, + "name": "first", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderBy", + "type": { + "kind": "ENUM", + "name": "TakeOrderEntity_orderBy", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderDirection", + "type": { + "kind": "ENUM", + "name": "OrderDirection", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "TakeOrderEntity_filter", + "ofType": null + } + } + ], + "deprecationReason": null, + "description": "Take Order entities that use this order", + "isDeprecated": false, + "name": "takeOrders", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "TakeOrderEntity", + "ofType": null + } + } + } + }, + { + "args": [ + { + "defaultValue": "0", + "description": null, + "name": "skip", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": "100", + "description": null, + "name": "first", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderBy", + "type": { + "kind": "ENUM", + "name": "OrderClear_orderBy", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderDirection", + "type": { + "kind": "ENUM", + "name": "OrderDirection", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "OrderClear_filter", + "ofType": null + } + } + ], + "deprecationReason": null, + "description": "Order Clear entities that use this order", + "isDeprecated": false, + "name": "ordersClears", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "OrderClear", + "ofType": null + } + } + } + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "Event", + "ofType": null + } + ], + "kind": "OBJECT", + "name": "Order", + "possibleTypes": null + }, + { + "description": null, + "enumValues": null, + "fields": [ + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "id", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "deployer", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "address", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": "The RainMetaV1 decode information", + "isDeprecated": false, + "name": "meta", + "type": { + "kind": "OBJECT", + "name": "RainMetaV1", + "ofType": null + } + } + ], + "inputFields": null, + "interfaces": [], + "kind": "OBJECT", + "name": "OrderBook", + "possibleTypes": null + }, + { + "description": null, + "enumValues": null, + "fields": null, + "inputFields": [ + { + "defaultValue": null, + "description": null, + "name": "id", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_not", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_gt", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_lt", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_gte", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_lte", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_contains", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_not_contains", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "deployer", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "deployer_not", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "deployer_gt", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "deployer_lt", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "deployer_gte", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "deployer_lte", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "deployer_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "deployer_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "deployer_contains", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "deployer_not_contains", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "address", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "address_not", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "address_gt", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "address_lt", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "address_gte", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "address_lte", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "address_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "address_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "address_contains", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "address_not_contains", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "meta", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "meta_not", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "meta_gt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "meta_lt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "meta_gte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "meta_lte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "meta_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "meta_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "meta_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "meta_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "meta_not_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "meta_not_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "meta_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "meta_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "meta_not_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "meta_not_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "meta_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "meta_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "meta_not_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "meta_not_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "meta_", + "type": { + "kind": "INPUT_OBJECT", + "name": "RainMetaV1_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": "Filter for the block changed event.", + "name": "_change_block", + "type": { + "kind": "INPUT_OBJECT", + "name": "BlockChangedFilter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "and", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "OrderBook_filter", + "ofType": null + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "or", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "OrderBook_filter", + "ofType": null + } + } + } + ], + "interfaces": null, + "kind": "INPUT_OBJECT", + "name": "OrderBook_filter", + "possibleTypes": null + }, + { + "description": null, + "enumValues": [ + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "id" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "deployer" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "address" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "meta" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "meta__id" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "meta__metaBytes" + } + ], + "fields": null, + "inputFields": null, + "interfaces": null, + "kind": "ENUM", + "name": "OrderBook_orderBy", + "possibleTypes": null + }, + { + "description": null, + "enumValues": null, + "fields": [ + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "id", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": "The sender address who cleared the Orders", + "isDeprecated": false, + "name": "sender", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Account", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": "The clearer address who cleared this order", + "isDeprecated": false, + "name": "clearer", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Account", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": "Order A being cleared", + "isDeprecated": false, + "name": "orderA", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Order", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": "Order B being cleared", + "isDeprecated": false, + "name": "orderB", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Order", + "ofType": null + } + } + }, + { + "args": [ + { + "defaultValue": "0", + "description": null, + "name": "skip", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": "100", + "description": null, + "name": "first", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderBy", + "type": { + "kind": "ENUM", + "name": "Account_orderBy", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderDirection", + "type": { + "kind": "ENUM", + "name": "OrderDirection", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "Account_filter", + "ofType": null + } + } + ], + "deprecationReason": null, + "description": "The owners of the Orders that were cleared [Order A, Order B]", + "isDeprecated": false, + "name": "owners", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Account", + "ofType": null + } + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": "The token input index cleared into Order A", + "isDeprecated": false, + "name": "aInputIOIndex", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": "The token output index cleared into Order A", + "isDeprecated": false, + "name": "aOutputIOIndex", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": "The token input index cleared into Order B", + "isDeprecated": false, + "name": "bInputIOIndex", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": "The token output index cleared into Order B", + "isDeprecated": false, + "name": "bOutputIOIndex", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": "The bounty paid when this order was cleared", + "isDeprecated": false, + "name": "bounty", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Bounty", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": "The state change that occurred because of this Clear", + "isDeprecated": false, + "name": "stateChange", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "OrderClearStateChange", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "transaction", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Transaction", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "emitter", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Account", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "timestamp", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "Event", + "ofType": null + } + ], + "kind": "OBJECT", + "name": "OrderClear", + "possibleTypes": null + }, + { + "description": null, + "enumValues": null, + "fields": [ + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "id", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "orderClear", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "OrderClear", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "aOutput", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "bOutput", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "aInput", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "bInput", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + ], + "inputFields": null, + "interfaces": [], + "kind": "OBJECT", + "name": "OrderClearStateChange", + "possibleTypes": null + }, + { + "description": null, + "enumValues": null, + "fields": null, + "inputFields": [ + { + "defaultValue": null, + "description": null, + "name": "id", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_not", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_gt", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_lt", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_gte", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_lte", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderClear", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderClear_not", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderClear_gt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderClear_lt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderClear_gte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderClear_lte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderClear_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderClear_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderClear_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderClear_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderClear_not_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderClear_not_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderClear_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderClear_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderClear_not_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderClear_not_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderClear_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderClear_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderClear_not_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderClear_not_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderClear_", + "type": { + "kind": "INPUT_OBJECT", + "name": "OrderClear_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "aOutput", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "aOutput_not", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "aOutput_gt", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "aOutput_lt", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "aOutput_gte", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "aOutput_lte", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "aOutput_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "aOutput_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "bOutput", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bOutput_not", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bOutput_gt", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bOutput_lt", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bOutput_gte", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bOutput_lte", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bOutput_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "bOutput_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "aInput", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "aInput_not", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "aInput_gt", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "aInput_lt", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "aInput_gte", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "aInput_lte", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "aInput_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "aInput_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "bInput", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bInput_not", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bInput_gt", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bInput_lt", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bInput_gte", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bInput_lte", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bInput_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "bInput_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": "Filter for the block changed event.", + "name": "_change_block", + "type": { + "kind": "INPUT_OBJECT", + "name": "BlockChangedFilter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "and", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "OrderClearStateChange_filter", + "ofType": null + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "or", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "OrderClearStateChange_filter", + "ofType": null + } + } + } + ], + "interfaces": null, + "kind": "INPUT_OBJECT", + "name": "OrderClearStateChange_filter", + "possibleTypes": null + }, + { + "description": null, + "enumValues": [ + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "id" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "orderClear" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "orderClear__id" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "orderClear__aInputIOIndex" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "orderClear__aOutputIOIndex" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "orderClear__bInputIOIndex" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "orderClear__bOutputIOIndex" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "orderClear__timestamp" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "aOutput" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "bOutput" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "aInput" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "bInput" + } + ], + "fields": null, + "inputFields": null, + "interfaces": null, + "kind": "ENUM", + "name": "OrderClearStateChange_orderBy", + "possibleTypes": null + }, + { + "description": null, + "enumValues": null, + "fields": null, + "inputFields": [ + { + "defaultValue": null, + "description": null, + "name": "id", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_not", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_gt", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_lt", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_gte", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_lte", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "sender", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "sender_not", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "sender_gt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "sender_lt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "sender_gte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "sender_lte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "sender_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "sender_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "sender_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "sender_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "sender_not_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "sender_not_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "sender_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "sender_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "sender_not_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "sender_not_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "sender_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "sender_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "sender_not_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "sender_not_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "sender_", + "type": { + "kind": "INPUT_OBJECT", + "name": "Account_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "clearer", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "clearer_not", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "clearer_gt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "clearer_lt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "clearer_gte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "clearer_lte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "clearer_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "clearer_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "clearer_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "clearer_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "clearer_not_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "clearer_not_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "clearer_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "clearer_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "clearer_not_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "clearer_not_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "clearer_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "clearer_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "clearer_not_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "clearer_not_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "clearer_", + "type": { + "kind": "INPUT_OBJECT", + "name": "Account_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderA", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderA_not", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderA_gt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderA_lt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderA_gte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderA_lte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderA_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderA_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderA_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderA_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderA_not_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderA_not_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderA_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderA_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderA_not_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderA_not_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderA_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderA_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderA_not_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderA_not_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderA_", + "type": { + "kind": "INPUT_OBJECT", + "name": "Order_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderB", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderB_not", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderB_gt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderB_lt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderB_gte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderB_lte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderB_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderB_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderB_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderB_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderB_not_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderB_not_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderB_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderB_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderB_not_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderB_not_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderB_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderB_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderB_not_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderB_not_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderB_", + "type": { + "kind": "INPUT_OBJECT", + "name": "Order_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "owners", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "owners_not", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "owners_contains", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "owners_contains_nocase", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "owners_not_contains", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "owners_not_contains_nocase", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "owners_", + "type": { + "kind": "INPUT_OBJECT", + "name": "Account_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "aInputIOIndex", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "aInputIOIndex_not", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "aInputIOIndex_gt", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "aInputIOIndex_lt", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "aInputIOIndex_gte", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "aInputIOIndex_lte", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "aInputIOIndex_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "aInputIOIndex_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "aOutputIOIndex", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "aOutputIOIndex_not", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "aOutputIOIndex_gt", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "aOutputIOIndex_lt", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "aOutputIOIndex_gte", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "aOutputIOIndex_lte", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "aOutputIOIndex_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "aOutputIOIndex_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "bInputIOIndex", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bInputIOIndex_not", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bInputIOIndex_gt", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bInputIOIndex_lt", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bInputIOIndex_gte", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bInputIOIndex_lte", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bInputIOIndex_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "bInputIOIndex_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "bOutputIOIndex", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bOutputIOIndex_not", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bOutputIOIndex_gt", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bOutputIOIndex_lt", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bOutputIOIndex_gte", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bOutputIOIndex_lte", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "bOutputIOIndex_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "bOutputIOIndex_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "bounty_", + "type": { + "kind": "INPUT_OBJECT", + "name": "Bounty_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "stateChange_", + "type": { + "kind": "INPUT_OBJECT", + "name": "OrderClearStateChange_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_not", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_gt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_lt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_gte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_lte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_not_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_not_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_not_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_not_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_not_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_not_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_", + "type": { + "kind": "INPUT_OBJECT", + "name": "Transaction_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_not", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_gt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_lt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_gte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_lte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_not_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_not_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_not_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_not_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_not_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_not_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_", + "type": { + "kind": "INPUT_OBJECT", + "name": "Account_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "timestamp", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "timestamp_not", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "timestamp_gt", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "timestamp_lt", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "timestamp_gte", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "timestamp_lte", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "timestamp_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "timestamp_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": "Filter for the block changed event.", + "name": "_change_block", + "type": { + "kind": "INPUT_OBJECT", + "name": "BlockChangedFilter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "and", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "OrderClear_filter", + "ofType": null + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "or", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "OrderClear_filter", + "ofType": null + } + } + } + ], + "interfaces": null, + "kind": "INPUT_OBJECT", + "name": "OrderClear_filter", + "possibleTypes": null + }, + { + "description": null, + "enumValues": [ + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "id" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "sender" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "sender__id" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "clearer" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "clearer__id" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "orderA" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "orderA__id" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "orderA__orderHash" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "orderA__interpreter" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "orderA__interpreterStore" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "orderA__expressionDeployer" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "orderA__expression" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "orderA__orderActive" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "orderA__handleIO" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "orderA__orderJSONString" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "orderA__expressionJSONString" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "orderA__timestamp" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "orderB" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "orderB__id" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "orderB__orderHash" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "orderB__interpreter" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "orderB__interpreterStore" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "orderB__expressionDeployer" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "orderB__expression" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "orderB__orderActive" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "orderB__handleIO" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "orderB__orderJSONString" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "orderB__expressionJSONString" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "orderB__timestamp" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "owners" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "aInputIOIndex" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "aOutputIOIndex" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "bInputIOIndex" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "bOutputIOIndex" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "bounty" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "bounty__id" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "bounty__bountyAmountA" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "bounty__bountyAmountADisplay" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "bounty__bountyAmountB" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "bounty__bountyAmountBDisplay" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "bounty__timestamp" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "stateChange" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "stateChange__id" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "stateChange__aOutput" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "stateChange__bOutput" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "stateChange__aInput" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "stateChange__bInput" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "transaction" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "transaction__id" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "transaction__timestamp" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "transaction__blockNumber" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "emitter" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "emitter__id" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "timestamp" + } + ], + "fields": null, + "inputFields": null, + "interfaces": null, + "kind": "ENUM", + "name": "OrderClear_orderBy", + "possibleTypes": null + }, + { + "description": "Defines the order direction, either ascending or descending", + "enumValues": [ + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "asc" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "desc" + } + ], + "fields": null, + "inputFields": null, + "interfaces": null, + "kind": "ENUM", + "name": "OrderDirection", + "possibleTypes": null + }, + { + "description": null, + "enumValues": null, + "fields": null, + "inputFields": [ + { + "defaultValue": null, + "description": null, + "name": "id", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_not", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_gt", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_lt", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_gte", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_lte", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderHash", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderHash_not", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderHash_gt", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderHash_lt", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderHash_gte", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderHash_lte", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderHash_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderHash_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderHash_contains", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderHash_not_contains", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "owner", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "owner_not", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "owner_gt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "owner_lt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "owner_gte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "owner_lte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "owner_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "owner_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "owner_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "owner_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "owner_not_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "owner_not_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "owner_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "owner_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "owner_not_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "owner_not_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "owner_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "owner_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "owner_not_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "owner_not_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "owner_", + "type": { + "kind": "INPUT_OBJECT", + "name": "Account_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "interpreter", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "interpreter_not", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "interpreter_gt", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "interpreter_lt", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "interpreter_gte", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "interpreter_lte", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "interpreter_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "interpreter_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "interpreter_contains", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "interpreter_not_contains", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "interpreterStore", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "interpreterStore_not", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "interpreterStore_gt", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "interpreterStore_lt", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "interpreterStore_gte", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "interpreterStore_lte", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "interpreterStore_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "interpreterStore_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "interpreterStore_contains", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "interpreterStore_not_contains", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "expressionDeployer", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "expressionDeployer_not", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "expressionDeployer_gt", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "expressionDeployer_lt", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "expressionDeployer_gte", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "expressionDeployer_lte", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "expressionDeployer_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "expressionDeployer_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "expressionDeployer_contains", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "expressionDeployer_not_contains", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "expression", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "expression_not", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "expression_gt", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "expression_lt", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "expression_gte", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "expression_lte", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "expression_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "expression_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "expression_contains", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "expression_not_contains", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderActive", + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderActive_not", + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderActive_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderActive_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "handleIO", + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "handleIO_not", + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "handleIO_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "handleIO_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "meta", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "meta_not", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "meta_gt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "meta_lt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "meta_gte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "meta_lte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "meta_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "meta_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "meta_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "meta_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "meta_not_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "meta_not_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "meta_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "meta_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "meta_not_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "meta_not_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "meta_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "meta_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "meta_not_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "meta_not_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "meta_", + "type": { + "kind": "INPUT_OBJECT", + "name": "RainMetaV1_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "validInputs", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "validInputs_not", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "validInputs_contains", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "validInputs_contains_nocase", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "validInputs_not_contains", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "validInputs_not_contains_nocase", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "validInputs_", + "type": { + "kind": "INPUT_OBJECT", + "name": "IO_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "validOutputs", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "validOutputs_not", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "validOutputs_contains", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "validOutputs_contains_nocase", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "validOutputs_not_contains", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "validOutputs_not_contains_nocase", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "validOutputs_", + "type": { + "kind": "INPUT_OBJECT", + "name": "IO_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderJSONString", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderJSONString_not", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderJSONString_gt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderJSONString_lt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderJSONString_gte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderJSONString_lte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderJSONString_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderJSONString_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderJSONString_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderJSONString_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderJSONString_not_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderJSONString_not_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderJSONString_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderJSONString_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderJSONString_not_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderJSONString_not_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderJSONString_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderJSONString_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderJSONString_not_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderJSONString_not_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "expressionJSONString", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "expressionJSONString_not", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "expressionJSONString_gt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "expressionJSONString_lt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "expressionJSONString_gte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "expressionJSONString_lte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "expressionJSONString_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "expressionJSONString_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "expressionJSONString_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "expressionJSONString_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "expressionJSONString_not_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "expressionJSONString_not_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "expressionJSONString_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "expressionJSONString_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "expressionJSONString_not_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "expressionJSONString_not_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "expressionJSONString_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "expressionJSONString_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "expressionJSONString_not_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "expressionJSONString_not_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_not", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_gt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_lt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_gte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_lte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_not_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_not_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_not_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_not_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_not_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_not_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_", + "type": { + "kind": "INPUT_OBJECT", + "name": "Transaction_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_not", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_gt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_lt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_gte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_lte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_not_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_not_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_not_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_not_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_not_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_not_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_", + "type": { + "kind": "INPUT_OBJECT", + "name": "Account_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "timestamp", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "timestamp_not", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "timestamp_gt", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "timestamp_lt", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "timestamp_gte", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "timestamp_lte", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "timestamp_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "timestamp_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "takeOrders_", + "type": { + "kind": "INPUT_OBJECT", + "name": "TakeOrderEntity_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "ordersClears", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "ordersClears_not", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "ordersClears_contains", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "ordersClears_contains_nocase", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "ordersClears_not_contains", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "ordersClears_not_contains_nocase", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "ordersClears_", + "type": { + "kind": "INPUT_OBJECT", + "name": "OrderClear_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": "Filter for the block changed event.", + "name": "_change_block", + "type": { + "kind": "INPUT_OBJECT", + "name": "BlockChangedFilter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "and", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "Order_filter", + "ofType": null + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "or", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "Order_filter", + "ofType": null + } + } + } + ], + "interfaces": null, + "kind": "INPUT_OBJECT", + "name": "Order_filter", + "possibleTypes": null + }, + { + "description": null, + "enumValues": [ + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "id" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "orderHash" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "owner" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "owner__id" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "interpreter" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "interpreterStore" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "expressionDeployer" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "expression" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "orderActive" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "handleIO" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "meta" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "meta__id" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "meta__metaBytes" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "validInputs" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "validOutputs" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "orderJSONString" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "expressionJSONString" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "transaction" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "transaction__id" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "transaction__timestamp" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "transaction__blockNumber" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "emitter" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "emitter__id" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "timestamp" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "takeOrders" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "ordersClears" + } + ], + "fields": null, + "inputFields": null, + "interfaces": null, + "kind": "ENUM", + "name": "Order_orderBy", + "possibleTypes": null + }, + { + "description": null, + "enumValues": null, + "fields": [ + { + "args": [ + { + "defaultValue": null, + "description": null, + "name": "id", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + }, + { + "defaultValue": null, + "description": "The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.", + "name": "block", + "type": { + "kind": "INPUT_OBJECT", + "name": "Block_height", + "ofType": null + } + }, + { + "defaultValue": "deny", + "description": "Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.", + "name": "subgraphError", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "_SubgraphErrorPolicy_", + "ofType": null + } + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "orderBook", + "type": { + "kind": "OBJECT", + "name": "OrderBook", + "ofType": null + } + }, + { + "args": [ + { + "defaultValue": "0", + "description": null, + "name": "skip", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": "100", + "description": null, + "name": "first", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderBy", + "type": { + "kind": "ENUM", + "name": "OrderBook_orderBy", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderDirection", + "type": { + "kind": "ENUM", + "name": "OrderDirection", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "OrderBook_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": "The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.", + "name": "block", + "type": { + "kind": "INPUT_OBJECT", + "name": "Block_height", + "ofType": null + } + }, + { + "defaultValue": "deny", + "description": "Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.", + "name": "subgraphError", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "_SubgraphErrorPolicy_", + "ofType": null + } + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "orderBooks", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "OrderBook", + "ofType": null + } + } + } + } + }, + { + "args": [ + { + "defaultValue": null, + "description": null, + "name": "id", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + }, + { + "defaultValue": null, + "description": "The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.", + "name": "block", + "type": { + "kind": "INPUT_OBJECT", + "name": "Block_height", + "ofType": null + } + }, + { + "defaultValue": "deny", + "description": "Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.", + "name": "subgraphError", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "_SubgraphErrorPolicy_", + "ofType": null + } + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "rainMetaV1", + "type": { + "kind": "OBJECT", + "name": "RainMetaV1", + "ofType": null + } + }, + { + "args": [ + { + "defaultValue": "0", + "description": null, + "name": "skip", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": "100", + "description": null, + "name": "first", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderBy", + "type": { + "kind": "ENUM", + "name": "RainMetaV1_orderBy", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderDirection", + "type": { + "kind": "ENUM", + "name": "OrderDirection", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "RainMetaV1_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": "The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.", + "name": "block", + "type": { + "kind": "INPUT_OBJECT", + "name": "Block_height", + "ofType": null + } + }, + { + "defaultValue": "deny", + "description": "Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.", + "name": "subgraphError", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "_SubgraphErrorPolicy_", + "ofType": null + } + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "rainMetaV1S", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "RainMetaV1", + "ofType": null + } + } + } + } + }, + { + "args": [ + { + "defaultValue": null, + "description": null, + "name": "id", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + }, + { + "defaultValue": null, + "description": "The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.", + "name": "block", + "type": { + "kind": "INPUT_OBJECT", + "name": "Block_height", + "ofType": null + } + }, + { + "defaultValue": "deny", + "description": "Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.", + "name": "subgraphError", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "_SubgraphErrorPolicy_", + "ofType": null + } + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "contentMetaV1", + "type": { + "kind": "OBJECT", + "name": "ContentMetaV1", + "ofType": null + } + }, + { + "args": [ + { + "defaultValue": "0", + "description": null, + "name": "skip", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": "100", + "description": null, + "name": "first", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderBy", + "type": { + "kind": "ENUM", + "name": "ContentMetaV1_orderBy", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderDirection", + "type": { + "kind": "ENUM", + "name": "OrderDirection", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "ContentMetaV1_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": "The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.", + "name": "block", + "type": { + "kind": "INPUT_OBJECT", + "name": "Block_height", + "ofType": null + } + }, + { + "defaultValue": "deny", + "description": "Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.", + "name": "subgraphError", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "_SubgraphErrorPolicy_", + "ofType": null + } + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "contentMetaV1S", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "ContentMetaV1", + "ofType": null + } + } + } + } + }, + { + "args": [ + { + "defaultValue": null, + "description": null, + "name": "id", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + }, + { + "defaultValue": null, + "description": "The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.", + "name": "block", + "type": { + "kind": "INPUT_OBJECT", + "name": "Block_height", + "ofType": null + } + }, + { + "defaultValue": "deny", + "description": "Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.", + "name": "subgraphError", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "_SubgraphErrorPolicy_", + "ofType": null + } + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "order", + "type": { + "kind": "OBJECT", + "name": "Order", + "ofType": null + } + }, + { + "args": [ + { + "defaultValue": "0", + "description": null, + "name": "skip", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": "100", + "description": null, + "name": "first", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderBy", + "type": { + "kind": "ENUM", + "name": "Order_orderBy", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderDirection", + "type": { + "kind": "ENUM", + "name": "OrderDirection", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "Order_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": "The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.", + "name": "block", + "type": { + "kind": "INPUT_OBJECT", + "name": "Block_height", + "ofType": null + } + }, + { + "defaultValue": "deny", + "description": "Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.", + "name": "subgraphError", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "_SubgraphErrorPolicy_", + "ofType": null + } + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "orders", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Order", + "ofType": null + } + } + } + } + }, + { + "args": [ + { + "defaultValue": null, + "description": null, + "name": "id", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + }, + { + "defaultValue": null, + "description": "The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.", + "name": "block", + "type": { + "kind": "INPUT_OBJECT", + "name": "Block_height", + "ofType": null + } + }, + { + "defaultValue": "deny", + "description": "Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.", + "name": "subgraphError", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "_SubgraphErrorPolicy_", + "ofType": null + } + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "io", + "type": { + "kind": "OBJECT", + "name": "IO", + "ofType": null + } + }, + { + "args": [ + { + "defaultValue": "0", + "description": null, + "name": "skip", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": "100", + "description": null, + "name": "first", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderBy", + "type": { + "kind": "ENUM", + "name": "IO_orderBy", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderDirection", + "type": { + "kind": "ENUM", + "name": "OrderDirection", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "IO_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": "The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.", + "name": "block", + "type": { + "kind": "INPUT_OBJECT", + "name": "Block_height", + "ofType": null + } + }, + { + "defaultValue": "deny", + "description": "Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.", + "name": "subgraphError", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "_SubgraphErrorPolicy_", + "ofType": null + } + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "ios", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "IO", + "ofType": null + } + } + } + } + }, + { + "args": [ + { + "defaultValue": null, + "description": null, + "name": "id", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + }, + { + "defaultValue": null, + "description": "The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.", + "name": "block", + "type": { + "kind": "INPUT_OBJECT", + "name": "Block_height", + "ofType": null + } + }, + { + "defaultValue": "deny", + "description": "Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.", + "name": "subgraphError", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "_SubgraphErrorPolicy_", + "ofType": null + } + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "vault", + "type": { + "kind": "OBJECT", + "name": "Vault", + "ofType": null + } + }, + { + "args": [ + { + "defaultValue": "0", + "description": null, + "name": "skip", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": "100", + "description": null, + "name": "first", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderBy", + "type": { + "kind": "ENUM", + "name": "Vault_orderBy", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderDirection", + "type": { + "kind": "ENUM", + "name": "OrderDirection", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "Vault_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": "The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.", + "name": "block", + "type": { + "kind": "INPUT_OBJECT", + "name": "Block_height", + "ofType": null + } + }, + { + "defaultValue": "deny", + "description": "Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.", + "name": "subgraphError", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "_SubgraphErrorPolicy_", + "ofType": null + } + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "vaults", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Vault", + "ofType": null + } + } + } + } + }, + { + "args": [ + { + "defaultValue": null, + "description": null, + "name": "id", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + }, + { + "defaultValue": null, + "description": "The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.", + "name": "block", + "type": { + "kind": "INPUT_OBJECT", + "name": "Block_height", + "ofType": null + } + }, + { + "defaultValue": "deny", + "description": "Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.", + "name": "subgraphError", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "_SubgraphErrorPolicy_", + "ofType": null + } + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "tokenVault", + "type": { + "kind": "OBJECT", + "name": "TokenVault", + "ofType": null + } + }, + { + "args": [ + { + "defaultValue": "0", + "description": null, + "name": "skip", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": "100", + "description": null, + "name": "first", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderBy", + "type": { + "kind": "ENUM", + "name": "TokenVault_orderBy", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderDirection", + "type": { + "kind": "ENUM", + "name": "OrderDirection", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "TokenVault_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": "The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.", + "name": "block", + "type": { + "kind": "INPUT_OBJECT", + "name": "Block_height", + "ofType": null + } + }, + { + "defaultValue": "deny", + "description": "Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.", + "name": "subgraphError", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "_SubgraphErrorPolicy_", + "ofType": null + } + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "tokenVaults", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "TokenVault", + "ofType": null + } + } + } + } + }, + { + "args": [ + { + "defaultValue": null, + "description": null, + "name": "id", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + }, + { + "defaultValue": null, + "description": "The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.", + "name": "block", + "type": { + "kind": "INPUT_OBJECT", + "name": "Block_height", + "ofType": null + } + }, + { + "defaultValue": "deny", + "description": "Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.", + "name": "subgraphError", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "_SubgraphErrorPolicy_", + "ofType": null + } + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "tokenVaultTakeOrder", + "type": { + "kind": "OBJECT", + "name": "TokenVaultTakeOrder", + "ofType": null + } + }, + { + "args": [ + { + "defaultValue": "0", + "description": null, + "name": "skip", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": "100", + "description": null, + "name": "first", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderBy", + "type": { + "kind": "ENUM", + "name": "TokenVaultTakeOrder_orderBy", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderDirection", + "type": { + "kind": "ENUM", + "name": "OrderDirection", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "TokenVaultTakeOrder_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": "The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.", + "name": "block", + "type": { + "kind": "INPUT_OBJECT", + "name": "Block_height", + "ofType": null + } + }, + { + "defaultValue": "deny", + "description": "Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.", + "name": "subgraphError", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "_SubgraphErrorPolicy_", + "ofType": null + } + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "tokenVaultTakeOrders", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "TokenVaultTakeOrder", + "ofType": null + } + } + } + } + }, + { + "args": [ + { + "defaultValue": null, + "description": null, + "name": "id", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + }, + { + "defaultValue": null, + "description": "The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.", + "name": "block", + "type": { + "kind": "INPUT_OBJECT", + "name": "Block_height", + "ofType": null + } + }, + { + "defaultValue": "deny", + "description": "Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.", + "name": "subgraphError", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "_SubgraphErrorPolicy_", + "ofType": null + } + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "vaultDeposit", + "type": { + "kind": "OBJECT", + "name": "VaultDeposit", + "ofType": null + } + }, + { + "args": [ + { + "defaultValue": "0", + "description": null, + "name": "skip", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": "100", + "description": null, + "name": "first", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderBy", + "type": { + "kind": "ENUM", + "name": "VaultDeposit_orderBy", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderDirection", + "type": { + "kind": "ENUM", + "name": "OrderDirection", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "VaultDeposit_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": "The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.", + "name": "block", + "type": { + "kind": "INPUT_OBJECT", + "name": "Block_height", + "ofType": null + } + }, + { + "defaultValue": "deny", + "description": "Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.", + "name": "subgraphError", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "_SubgraphErrorPolicy_", + "ofType": null + } + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "vaultDeposits", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "VaultDeposit", + "ofType": null + } + } + } + } + }, + { + "args": [ + { + "defaultValue": null, + "description": null, + "name": "id", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + }, + { + "defaultValue": null, + "description": "The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.", + "name": "block", + "type": { + "kind": "INPUT_OBJECT", + "name": "Block_height", + "ofType": null + } + }, + { + "defaultValue": "deny", + "description": "Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.", + "name": "subgraphError", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "_SubgraphErrorPolicy_", + "ofType": null + } + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "vaultWithdraw", + "type": { + "kind": "OBJECT", + "name": "VaultWithdraw", + "ofType": null + } + }, + { + "args": [ + { + "defaultValue": "0", + "description": null, + "name": "skip", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": "100", + "description": null, + "name": "first", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderBy", + "type": { + "kind": "ENUM", + "name": "VaultWithdraw_orderBy", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderDirection", + "type": { + "kind": "ENUM", + "name": "OrderDirection", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "VaultWithdraw_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": "The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.", + "name": "block", + "type": { + "kind": "INPUT_OBJECT", + "name": "Block_height", + "ofType": null + } + }, + { + "defaultValue": "deny", + "description": "Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.", + "name": "subgraphError", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "_SubgraphErrorPolicy_", + "ofType": null + } + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "vaultWithdraws", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "VaultWithdraw", + "ofType": null + } + } + } + } + }, + { + "args": [ + { + "defaultValue": null, + "description": null, + "name": "id", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + }, + { + "defaultValue": null, + "description": "The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.", + "name": "block", + "type": { + "kind": "INPUT_OBJECT", + "name": "Block_height", + "ofType": null + } + }, + { + "defaultValue": "deny", + "description": "Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.", + "name": "subgraphError", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "_SubgraphErrorPolicy_", + "ofType": null + } + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "erc20", + "type": { + "kind": "OBJECT", + "name": "ERC20", + "ofType": null + } + }, + { + "args": [ + { + "defaultValue": "0", + "description": null, + "name": "skip", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": "100", + "description": null, + "name": "first", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderBy", + "type": { + "kind": "ENUM", + "name": "ERC20_orderBy", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderDirection", + "type": { + "kind": "ENUM", + "name": "OrderDirection", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "ERC20_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": "The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.", + "name": "block", + "type": { + "kind": "INPUT_OBJECT", + "name": "Block_height", + "ofType": null + } + }, + { + "defaultValue": "deny", + "description": "Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.", + "name": "subgraphError", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "_SubgraphErrorPolicy_", + "ofType": null + } + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "erc20S", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "ERC20", + "ofType": null + } + } + } + } + }, + { + "args": [ + { + "defaultValue": null, + "description": null, + "name": "id", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + }, + { + "defaultValue": null, + "description": "The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.", + "name": "block", + "type": { + "kind": "INPUT_OBJECT", + "name": "Block_height", + "ofType": null + } + }, + { + "defaultValue": "deny", + "description": "Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.", + "name": "subgraphError", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "_SubgraphErrorPolicy_", + "ofType": null + } + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "orderClear", + "type": { + "kind": "OBJECT", + "name": "OrderClear", + "ofType": null + } + }, + { + "args": [ + { + "defaultValue": "0", + "description": null, + "name": "skip", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": "100", + "description": null, + "name": "first", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderBy", + "type": { + "kind": "ENUM", + "name": "OrderClear_orderBy", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderDirection", + "type": { + "kind": "ENUM", + "name": "OrderDirection", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "OrderClear_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": "The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.", + "name": "block", + "type": { + "kind": "INPUT_OBJECT", + "name": "Block_height", + "ofType": null + } + }, + { + "defaultValue": "deny", + "description": "Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.", + "name": "subgraphError", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "_SubgraphErrorPolicy_", + "ofType": null + } + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "orderClears", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "OrderClear", + "ofType": null + } + } + } + } + }, + { + "args": [ + { + "defaultValue": null, + "description": null, + "name": "id", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + }, + { + "defaultValue": null, + "description": "The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.", + "name": "block", + "type": { + "kind": "INPUT_OBJECT", + "name": "Block_height", + "ofType": null + } + }, + { + "defaultValue": "deny", + "description": "Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.", + "name": "subgraphError", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "_SubgraphErrorPolicy_", + "ofType": null + } + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "bounty", + "type": { + "kind": "OBJECT", + "name": "Bounty", + "ofType": null + } + }, + { + "args": [ + { + "defaultValue": "0", + "description": null, + "name": "skip", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": "100", + "description": null, + "name": "first", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderBy", + "type": { + "kind": "ENUM", + "name": "Bounty_orderBy", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderDirection", + "type": { + "kind": "ENUM", + "name": "OrderDirection", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "Bounty_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": "The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.", + "name": "block", + "type": { + "kind": "INPUT_OBJECT", + "name": "Block_height", + "ofType": null + } + }, + { + "defaultValue": "deny", + "description": "Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.", + "name": "subgraphError", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "_SubgraphErrorPolicy_", + "ofType": null + } + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "bounties", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Bounty", + "ofType": null + } + } + } + } + }, + { + "args": [ + { + "defaultValue": null, + "description": null, + "name": "id", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + }, + { + "defaultValue": null, + "description": "The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.", + "name": "block", + "type": { + "kind": "INPUT_OBJECT", + "name": "Block_height", + "ofType": null + } + }, + { + "defaultValue": "deny", + "description": "Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.", + "name": "subgraphError", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "_SubgraphErrorPolicy_", + "ofType": null + } + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "takeOrderEntity", + "type": { + "kind": "OBJECT", + "name": "TakeOrderEntity", + "ofType": null + } + }, + { + "args": [ + { + "defaultValue": "0", + "description": null, + "name": "skip", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": "100", + "description": null, + "name": "first", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderBy", + "type": { + "kind": "ENUM", + "name": "TakeOrderEntity_orderBy", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderDirection", + "type": { + "kind": "ENUM", + "name": "OrderDirection", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "TakeOrderEntity_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": "The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.", + "name": "block", + "type": { + "kind": "INPUT_OBJECT", + "name": "Block_height", + "ofType": null + } + }, + { + "defaultValue": "deny", + "description": "Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.", + "name": "subgraphError", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "_SubgraphErrorPolicy_", + "ofType": null + } + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "takeOrderEntities", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "TakeOrderEntity", + "ofType": null + } + } + } + } + }, + { + "args": [ + { + "defaultValue": null, + "description": null, + "name": "id", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + }, + { + "defaultValue": null, + "description": "The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.", + "name": "block", + "type": { + "kind": "INPUT_OBJECT", + "name": "Block_height", + "ofType": null + } + }, + { + "defaultValue": "deny", + "description": "Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.", + "name": "subgraphError", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "_SubgraphErrorPolicy_", + "ofType": null + } + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "orderClearStateChange", + "type": { + "kind": "OBJECT", + "name": "OrderClearStateChange", + "ofType": null + } + }, + { + "args": [ + { + "defaultValue": "0", + "description": null, + "name": "skip", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": "100", + "description": null, + "name": "first", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderBy", + "type": { + "kind": "ENUM", + "name": "OrderClearStateChange_orderBy", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderDirection", + "type": { + "kind": "ENUM", + "name": "OrderDirection", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "OrderClearStateChange_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": "The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.", + "name": "block", + "type": { + "kind": "INPUT_OBJECT", + "name": "Block_height", + "ofType": null + } + }, + { + "defaultValue": "deny", + "description": "Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.", + "name": "subgraphError", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "_SubgraphErrorPolicy_", + "ofType": null + } + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "orderClearStateChanges", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "OrderClearStateChange", + "ofType": null + } + } + } + } + }, + { + "args": [ + { + "defaultValue": null, + "description": null, + "name": "id", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + }, + { + "defaultValue": null, + "description": "The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.", + "name": "block", + "type": { + "kind": "INPUT_OBJECT", + "name": "Block_height", + "ofType": null + } + }, + { + "defaultValue": "deny", + "description": "Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.", + "name": "subgraphError", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "_SubgraphErrorPolicy_", + "ofType": null + } + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "clearOrderConfig", + "type": { + "kind": "OBJECT", + "name": "ClearOrderConfig", + "ofType": null + } + }, + { + "args": [ + { + "defaultValue": "0", + "description": null, + "name": "skip", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": "100", + "description": null, + "name": "first", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderBy", + "type": { + "kind": "ENUM", + "name": "ClearOrderConfig_orderBy", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderDirection", + "type": { + "kind": "ENUM", + "name": "OrderDirection", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "ClearOrderConfig_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": "The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.", + "name": "block", + "type": { + "kind": "INPUT_OBJECT", + "name": "Block_height", + "ofType": null + } + }, + { + "defaultValue": "deny", + "description": "Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.", + "name": "subgraphError", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "_SubgraphErrorPolicy_", + "ofType": null + } + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "clearOrderConfigs", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "ClearOrderConfig", + "ofType": null + } + } + } + } + }, + { + "args": [ + { + "defaultValue": null, + "description": null, + "name": "id", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + }, + { + "defaultValue": null, + "description": "The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.", + "name": "block", + "type": { + "kind": "INPUT_OBJECT", + "name": "Block_height", + "ofType": null + } + }, + { + "defaultValue": "deny", + "description": "Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.", + "name": "subgraphError", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "_SubgraphErrorPolicy_", + "ofType": null + } + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "account", + "type": { + "kind": "OBJECT", + "name": "Account", + "ofType": null + } + }, + { + "args": [ + { + "defaultValue": "0", + "description": null, + "name": "skip", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": "100", + "description": null, + "name": "first", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderBy", + "type": { + "kind": "ENUM", + "name": "Account_orderBy", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderDirection", + "type": { + "kind": "ENUM", + "name": "OrderDirection", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "Account_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": "The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.", + "name": "block", + "type": { + "kind": "INPUT_OBJECT", + "name": "Block_height", + "ofType": null + } + }, + { + "defaultValue": "deny", + "description": "Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.", + "name": "subgraphError", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "_SubgraphErrorPolicy_", + "ofType": null + } + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "accounts", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Account", + "ofType": null + } + } + } + } + }, + { + "args": [ + { + "defaultValue": null, + "description": null, + "name": "id", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + }, + { + "defaultValue": null, + "description": "The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.", + "name": "block", + "type": { + "kind": "INPUT_OBJECT", + "name": "Block_height", + "ofType": null + } + }, + { + "defaultValue": "deny", + "description": "Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.", + "name": "subgraphError", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "_SubgraphErrorPolicy_", + "ofType": null + } + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "transaction", + "type": { + "kind": "OBJECT", + "name": "Transaction", + "ofType": null + } + }, + { + "args": [ + { + "defaultValue": "0", + "description": null, + "name": "skip", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": "100", + "description": null, + "name": "first", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderBy", + "type": { + "kind": "ENUM", + "name": "Transaction_orderBy", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderDirection", + "type": { + "kind": "ENUM", + "name": "OrderDirection", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "Transaction_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": "The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.", + "name": "block", + "type": { + "kind": "INPUT_OBJECT", + "name": "Block_height", + "ofType": null + } + }, + { + "defaultValue": "deny", + "description": "Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.", + "name": "subgraphError", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "_SubgraphErrorPolicy_", + "ofType": null + } + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "transactions", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Transaction", + "ofType": null + } + } + } + } + }, + { + "args": [ + { + "defaultValue": null, + "description": null, + "name": "id", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + }, + { + "defaultValue": null, + "description": "The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.", + "name": "block", + "type": { + "kind": "INPUT_OBJECT", + "name": "Block_height", + "ofType": null + } + }, + { + "defaultValue": "deny", + "description": "Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.", + "name": "subgraphError", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "_SubgraphErrorPolicy_", + "ofType": null + } + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "contextEntity", + "type": { + "kind": "OBJECT", + "name": "ContextEntity", + "ofType": null + } + }, + { + "args": [ + { + "defaultValue": "0", + "description": null, + "name": "skip", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": "100", + "description": null, + "name": "first", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderBy", + "type": { + "kind": "ENUM", + "name": "ContextEntity_orderBy", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderDirection", + "type": { + "kind": "ENUM", + "name": "OrderDirection", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "ContextEntity_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": "The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.", + "name": "block", + "type": { + "kind": "INPUT_OBJECT", + "name": "Block_height", + "ofType": null + } + }, + { + "defaultValue": "deny", + "description": "Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.", + "name": "subgraphError", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "_SubgraphErrorPolicy_", + "ofType": null + } + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "contextEntities", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "ContextEntity", + "ofType": null + } + } + } + } + }, + { + "args": [ + { + "defaultValue": null, + "description": null, + "name": "id", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + }, + { + "defaultValue": null, + "description": "The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.", + "name": "block", + "type": { + "kind": "INPUT_OBJECT", + "name": "Block_height", + "ofType": null + } + }, + { + "defaultValue": "deny", + "description": "Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.", + "name": "subgraphError", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "_SubgraphErrorPolicy_", + "ofType": null + } + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "signedContext", + "type": { + "kind": "OBJECT", + "name": "SignedContext", + "ofType": null + } + }, + { + "args": [ + { + "defaultValue": "0", + "description": null, + "name": "skip", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": "100", + "description": null, + "name": "first", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderBy", + "type": { + "kind": "ENUM", + "name": "SignedContext_orderBy", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderDirection", + "type": { + "kind": "ENUM", + "name": "OrderDirection", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "SignedContext_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": "The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.", + "name": "block", + "type": { + "kind": "INPUT_OBJECT", + "name": "Block_height", + "ofType": null + } + }, + { + "defaultValue": "deny", + "description": "Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.", + "name": "subgraphError", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "_SubgraphErrorPolicy_", + "ofType": null + } + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "signedContexts", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "SignedContext", + "ofType": null + } + } + } + } + }, + { + "args": [ + { + "defaultValue": null, + "description": null, + "name": "id", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + }, + { + "defaultValue": null, + "description": "The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.", + "name": "block", + "type": { + "kind": "INPUT_OBJECT", + "name": "Block_height", + "ofType": null + } + }, + { + "defaultValue": "deny", + "description": "Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.", + "name": "subgraphError", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "_SubgraphErrorPolicy_", + "ofType": null + } + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "event", + "type": { + "kind": "INTERFACE", + "name": "Event", + "ofType": null + } + }, + { + "args": [ + { + "defaultValue": "0", + "description": null, + "name": "skip", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": "100", + "description": null, + "name": "first", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderBy", + "type": { + "kind": "ENUM", + "name": "Event_orderBy", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderDirection", + "type": { + "kind": "ENUM", + "name": "OrderDirection", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "Event_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": "The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.", + "name": "block", + "type": { + "kind": "INPUT_OBJECT", + "name": "Block_height", + "ofType": null + } + }, + { + "defaultValue": "deny", + "description": "Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.", + "name": "subgraphError", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "_SubgraphErrorPolicy_", + "ofType": null + } + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "events", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INTERFACE", + "name": "Event", + "ofType": null + } + } + } + } + }, + { + "args": [ + { + "defaultValue": null, + "description": null, + "name": "block", + "type": { + "kind": "INPUT_OBJECT", + "name": "Block_height", + "ofType": null + } + } + ], + "deprecationReason": null, + "description": "Access to subgraph metadata", + "isDeprecated": false, + "name": "_meta", + "type": { + "kind": "OBJECT", + "name": "_Meta_", + "ofType": null + } + } + ], + "inputFields": null, + "interfaces": [], + "kind": "OBJECT", + "name": "Query", + "possibleTypes": null + }, + { + "description": null, + "enumValues": null, + "fields": [ + { + "args": [], + "deprecationReason": null, + "description": "Hash of the meta directly emitted by the contract", + "isDeprecated": false, + "name": "id", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": "Original meta bytes directly emitted from the contract", + "isDeprecated": false, + "name": "metaBytes", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + } + }, + { + "args": [ + { + "defaultValue": "0", + "description": null, + "name": "skip", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": "100", + "description": null, + "name": "first", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderBy", + "type": { + "kind": "ENUM", + "name": "ContentMetaV1_orderBy", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderDirection", + "type": { + "kind": "ENUM", + "name": "OrderDirection", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "ContentMetaV1_filter", + "ofType": null + } + } + ], + "deprecationReason": null, + "description": "The meta content V1 decoded from the meta bytes emitted", + "isDeprecated": false, + "name": "content", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "ContentMetaV1", + "ofType": null + } + } + } + } + } + ], + "inputFields": null, + "interfaces": [], + "kind": "OBJECT", + "name": "RainMetaV1", + "possibleTypes": null + }, + { + "description": null, + "enumValues": null, + "fields": null, + "inputFields": [ + { + "defaultValue": null, + "description": null, + "name": "id", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_not", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_gt", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_lt", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_gte", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_lte", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_contains", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_not_contains", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "metaBytes", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "metaBytes_not", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "metaBytes_gt", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "metaBytes_lt", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "metaBytes_gte", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "metaBytes_lte", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "metaBytes_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "metaBytes_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "metaBytes_contains", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "metaBytes_not_contains", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "content", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "content_not", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "content_contains", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "content_contains_nocase", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "content_not_contains", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "content_not_contains_nocase", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "content_", + "type": { + "kind": "INPUT_OBJECT", + "name": "ContentMetaV1_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": "Filter for the block changed event.", + "name": "_change_block", + "type": { + "kind": "INPUT_OBJECT", + "name": "BlockChangedFilter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "and", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "RainMetaV1_filter", + "ofType": null + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "or", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "RainMetaV1_filter", + "ofType": null + } + } + } + ], + "interfaces": null, + "kind": "INPUT_OBJECT", + "name": "RainMetaV1_filter", + "possibleTypes": null + }, + { + "description": null, + "enumValues": [ + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "id" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "metaBytes" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "content" + } + ], + "fields": null, + "inputFields": null, + "interfaces": null, + "kind": "ENUM", + "name": "RainMetaV1_orderBy", + "possibleTypes": null + }, + { + "description": null, + "enumValues": null, + "fields": [ + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "id", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "signer", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "context", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + } + ], + "inputFields": null, + "interfaces": [], + "kind": "OBJECT", + "name": "SignedContext", + "possibleTypes": null + }, + { + "description": null, + "enumValues": null, + "fields": null, + "inputFields": [ + { + "defaultValue": null, + "description": null, + "name": "id", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_not", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_gt", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_lt", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_gte", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_lte", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "signer", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "signer_not", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "signer_gt", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "signer_lt", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "signer_gte", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "signer_lte", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "signer_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "signer_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "signer_contains", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "signer_not_contains", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "context", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "context_not", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "context_contains", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "context_contains_nocase", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "context_not_contains", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "context_not_contains_nocase", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": "Filter for the block changed event.", + "name": "_change_block", + "type": { + "kind": "INPUT_OBJECT", + "name": "BlockChangedFilter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "and", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "SignedContext_filter", + "ofType": null + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "or", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "SignedContext_filter", + "ofType": null + } + } + } + ], + "interfaces": null, + "kind": "INPUT_OBJECT", + "name": "SignedContext_filter", + "possibleTypes": null + }, + { + "description": null, + "enumValues": [ + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "id" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "signer" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "context" + } + ], + "fields": null, + "inputFields": null, + "interfaces": null, + "kind": "ENUM", + "name": "SignedContext_orderBy", + "possibleTypes": null + }, + { + "description": null, + "enumValues": null, + "fields": null, + "inputFields": null, + "interfaces": null, + "kind": "SCALAR", + "name": "String", + "possibleTypes": null + }, + { + "description": null, + "enumValues": null, + "fields": [ + { + "args": [ + { + "defaultValue": null, + "description": null, + "name": "id", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + }, + { + "defaultValue": null, + "description": "The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.", + "name": "block", + "type": { + "kind": "INPUT_OBJECT", + "name": "Block_height", + "ofType": null + } + }, + { + "defaultValue": "deny", + "description": "Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.", + "name": "subgraphError", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "_SubgraphErrorPolicy_", + "ofType": null + } + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "orderBook", + "type": { + "kind": "OBJECT", + "name": "OrderBook", + "ofType": null + } + }, + { + "args": [ + { + "defaultValue": "0", + "description": null, + "name": "skip", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": "100", + "description": null, + "name": "first", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderBy", + "type": { + "kind": "ENUM", + "name": "OrderBook_orderBy", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderDirection", + "type": { + "kind": "ENUM", + "name": "OrderDirection", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "OrderBook_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": "The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.", + "name": "block", + "type": { + "kind": "INPUT_OBJECT", + "name": "Block_height", + "ofType": null + } + }, + { + "defaultValue": "deny", + "description": "Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.", + "name": "subgraphError", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "_SubgraphErrorPolicy_", + "ofType": null + } + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "orderBooks", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "OrderBook", + "ofType": null + } + } + } + } + }, + { + "args": [ + { + "defaultValue": null, + "description": null, + "name": "id", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + }, + { + "defaultValue": null, + "description": "The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.", + "name": "block", + "type": { + "kind": "INPUT_OBJECT", + "name": "Block_height", + "ofType": null + } + }, + { + "defaultValue": "deny", + "description": "Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.", + "name": "subgraphError", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "_SubgraphErrorPolicy_", + "ofType": null + } + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "rainMetaV1", + "type": { + "kind": "OBJECT", + "name": "RainMetaV1", + "ofType": null + } + }, + { + "args": [ + { + "defaultValue": "0", + "description": null, + "name": "skip", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": "100", + "description": null, + "name": "first", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderBy", + "type": { + "kind": "ENUM", + "name": "RainMetaV1_orderBy", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderDirection", + "type": { + "kind": "ENUM", + "name": "OrderDirection", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "RainMetaV1_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": "The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.", + "name": "block", + "type": { + "kind": "INPUT_OBJECT", + "name": "Block_height", + "ofType": null + } + }, + { + "defaultValue": "deny", + "description": "Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.", + "name": "subgraphError", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "_SubgraphErrorPolicy_", + "ofType": null + } + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "rainMetaV1S", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "RainMetaV1", + "ofType": null + } + } + } + } + }, + { + "args": [ + { + "defaultValue": null, + "description": null, + "name": "id", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + }, + { + "defaultValue": null, + "description": "The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.", + "name": "block", + "type": { + "kind": "INPUT_OBJECT", + "name": "Block_height", + "ofType": null + } + }, + { + "defaultValue": "deny", + "description": "Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.", + "name": "subgraphError", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "_SubgraphErrorPolicy_", + "ofType": null + } + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "contentMetaV1", + "type": { + "kind": "OBJECT", + "name": "ContentMetaV1", + "ofType": null + } + }, + { + "args": [ + { + "defaultValue": "0", + "description": null, + "name": "skip", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": "100", + "description": null, + "name": "first", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderBy", + "type": { + "kind": "ENUM", + "name": "ContentMetaV1_orderBy", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderDirection", + "type": { + "kind": "ENUM", + "name": "OrderDirection", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "ContentMetaV1_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": "The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.", + "name": "block", + "type": { + "kind": "INPUT_OBJECT", + "name": "Block_height", + "ofType": null + } + }, + { + "defaultValue": "deny", + "description": "Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.", + "name": "subgraphError", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "_SubgraphErrorPolicy_", + "ofType": null + } + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "contentMetaV1S", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "ContentMetaV1", + "ofType": null + } + } + } + } + }, + { + "args": [ + { + "defaultValue": null, + "description": null, + "name": "id", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + }, + { + "defaultValue": null, + "description": "The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.", + "name": "block", + "type": { + "kind": "INPUT_OBJECT", + "name": "Block_height", + "ofType": null + } + }, + { + "defaultValue": "deny", + "description": "Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.", + "name": "subgraphError", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "_SubgraphErrorPolicy_", + "ofType": null + } + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "order", + "type": { + "kind": "OBJECT", + "name": "Order", + "ofType": null + } + }, + { + "args": [ + { + "defaultValue": "0", + "description": null, + "name": "skip", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": "100", + "description": null, + "name": "first", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderBy", + "type": { + "kind": "ENUM", + "name": "Order_orderBy", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderDirection", + "type": { + "kind": "ENUM", + "name": "OrderDirection", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "Order_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": "The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.", + "name": "block", + "type": { + "kind": "INPUT_OBJECT", + "name": "Block_height", + "ofType": null + } + }, + { + "defaultValue": "deny", + "description": "Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.", + "name": "subgraphError", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "_SubgraphErrorPolicy_", + "ofType": null + } + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "orders", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Order", + "ofType": null + } + } + } + } + }, + { + "args": [ + { + "defaultValue": null, + "description": null, + "name": "id", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + }, + { + "defaultValue": null, + "description": "The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.", + "name": "block", + "type": { + "kind": "INPUT_OBJECT", + "name": "Block_height", + "ofType": null + } + }, + { + "defaultValue": "deny", + "description": "Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.", + "name": "subgraphError", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "_SubgraphErrorPolicy_", + "ofType": null + } + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "io", + "type": { + "kind": "OBJECT", + "name": "IO", + "ofType": null + } + }, + { + "args": [ + { + "defaultValue": "0", + "description": null, + "name": "skip", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": "100", + "description": null, + "name": "first", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderBy", + "type": { + "kind": "ENUM", + "name": "IO_orderBy", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderDirection", + "type": { + "kind": "ENUM", + "name": "OrderDirection", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "IO_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": "The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.", + "name": "block", + "type": { + "kind": "INPUT_OBJECT", + "name": "Block_height", + "ofType": null + } + }, + { + "defaultValue": "deny", + "description": "Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.", + "name": "subgraphError", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "_SubgraphErrorPolicy_", + "ofType": null + } + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "ios", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "IO", + "ofType": null + } + } + } + } + }, + { + "args": [ + { + "defaultValue": null, + "description": null, + "name": "id", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + }, + { + "defaultValue": null, + "description": "The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.", + "name": "block", + "type": { + "kind": "INPUT_OBJECT", + "name": "Block_height", + "ofType": null + } + }, + { + "defaultValue": "deny", + "description": "Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.", + "name": "subgraphError", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "_SubgraphErrorPolicy_", + "ofType": null + } + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "vault", + "type": { + "kind": "OBJECT", + "name": "Vault", + "ofType": null + } + }, + { + "args": [ + { + "defaultValue": "0", + "description": null, + "name": "skip", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": "100", + "description": null, + "name": "first", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderBy", + "type": { + "kind": "ENUM", + "name": "Vault_orderBy", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderDirection", + "type": { + "kind": "ENUM", + "name": "OrderDirection", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "Vault_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": "The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.", + "name": "block", + "type": { + "kind": "INPUT_OBJECT", + "name": "Block_height", + "ofType": null + } + }, + { + "defaultValue": "deny", + "description": "Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.", + "name": "subgraphError", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "_SubgraphErrorPolicy_", + "ofType": null + } + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "vaults", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Vault", + "ofType": null + } + } + } + } + }, + { + "args": [ + { + "defaultValue": null, + "description": null, + "name": "id", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + }, + { + "defaultValue": null, + "description": "The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.", + "name": "block", + "type": { + "kind": "INPUT_OBJECT", + "name": "Block_height", + "ofType": null + } + }, + { + "defaultValue": "deny", + "description": "Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.", + "name": "subgraphError", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "_SubgraphErrorPolicy_", + "ofType": null + } + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "tokenVault", + "type": { + "kind": "OBJECT", + "name": "TokenVault", + "ofType": null + } + }, + { + "args": [ + { + "defaultValue": "0", + "description": null, + "name": "skip", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": "100", + "description": null, + "name": "first", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderBy", + "type": { + "kind": "ENUM", + "name": "TokenVault_orderBy", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderDirection", + "type": { + "kind": "ENUM", + "name": "OrderDirection", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "TokenVault_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": "The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.", + "name": "block", + "type": { + "kind": "INPUT_OBJECT", + "name": "Block_height", + "ofType": null + } + }, + { + "defaultValue": "deny", + "description": "Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.", + "name": "subgraphError", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "_SubgraphErrorPolicy_", + "ofType": null + } + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "tokenVaults", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "TokenVault", + "ofType": null + } + } + } + } + }, + { + "args": [ + { + "defaultValue": null, + "description": null, + "name": "id", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + }, + { + "defaultValue": null, + "description": "The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.", + "name": "block", + "type": { + "kind": "INPUT_OBJECT", + "name": "Block_height", + "ofType": null + } + }, + { + "defaultValue": "deny", + "description": "Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.", + "name": "subgraphError", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "_SubgraphErrorPolicy_", + "ofType": null + } + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "tokenVaultTakeOrder", + "type": { + "kind": "OBJECT", + "name": "TokenVaultTakeOrder", + "ofType": null + } + }, + { + "args": [ + { + "defaultValue": "0", + "description": null, + "name": "skip", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": "100", + "description": null, + "name": "first", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderBy", + "type": { + "kind": "ENUM", + "name": "TokenVaultTakeOrder_orderBy", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderDirection", + "type": { + "kind": "ENUM", + "name": "OrderDirection", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "TokenVaultTakeOrder_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": "The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.", + "name": "block", + "type": { + "kind": "INPUT_OBJECT", + "name": "Block_height", + "ofType": null + } + }, + { + "defaultValue": "deny", + "description": "Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.", + "name": "subgraphError", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "_SubgraphErrorPolicy_", + "ofType": null + } + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "tokenVaultTakeOrders", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "TokenVaultTakeOrder", + "ofType": null + } + } + } + } + }, + { + "args": [ + { + "defaultValue": null, + "description": null, + "name": "id", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + }, + { + "defaultValue": null, + "description": "The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.", + "name": "block", + "type": { + "kind": "INPUT_OBJECT", + "name": "Block_height", + "ofType": null + } + }, + { + "defaultValue": "deny", + "description": "Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.", + "name": "subgraphError", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "_SubgraphErrorPolicy_", + "ofType": null + } + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "vaultDeposit", + "type": { + "kind": "OBJECT", + "name": "VaultDeposit", + "ofType": null + } + }, + { + "args": [ + { + "defaultValue": "0", + "description": null, + "name": "skip", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": "100", + "description": null, + "name": "first", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderBy", + "type": { + "kind": "ENUM", + "name": "VaultDeposit_orderBy", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderDirection", + "type": { + "kind": "ENUM", + "name": "OrderDirection", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "VaultDeposit_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": "The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.", + "name": "block", + "type": { + "kind": "INPUT_OBJECT", + "name": "Block_height", + "ofType": null + } + }, + { + "defaultValue": "deny", + "description": "Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.", + "name": "subgraphError", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "_SubgraphErrorPolicy_", + "ofType": null + } + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "vaultDeposits", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "VaultDeposit", + "ofType": null + } + } + } + } + }, + { + "args": [ + { + "defaultValue": null, + "description": null, + "name": "id", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + }, + { + "defaultValue": null, + "description": "The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.", + "name": "block", + "type": { + "kind": "INPUT_OBJECT", + "name": "Block_height", + "ofType": null + } + }, + { + "defaultValue": "deny", + "description": "Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.", + "name": "subgraphError", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "_SubgraphErrorPolicy_", + "ofType": null + } + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "vaultWithdraw", + "type": { + "kind": "OBJECT", + "name": "VaultWithdraw", + "ofType": null + } + }, + { + "args": [ + { + "defaultValue": "0", + "description": null, + "name": "skip", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": "100", + "description": null, + "name": "first", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderBy", + "type": { + "kind": "ENUM", + "name": "VaultWithdraw_orderBy", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderDirection", + "type": { + "kind": "ENUM", + "name": "OrderDirection", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "VaultWithdraw_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": "The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.", + "name": "block", + "type": { + "kind": "INPUT_OBJECT", + "name": "Block_height", + "ofType": null + } + }, + { + "defaultValue": "deny", + "description": "Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.", + "name": "subgraphError", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "_SubgraphErrorPolicy_", + "ofType": null + } + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "vaultWithdraws", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "VaultWithdraw", + "ofType": null + } + } + } + } + }, + { + "args": [ + { + "defaultValue": null, + "description": null, + "name": "id", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + }, + { + "defaultValue": null, + "description": "The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.", + "name": "block", + "type": { + "kind": "INPUT_OBJECT", + "name": "Block_height", + "ofType": null + } + }, + { + "defaultValue": "deny", + "description": "Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.", + "name": "subgraphError", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "_SubgraphErrorPolicy_", + "ofType": null + } + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "erc20", + "type": { + "kind": "OBJECT", + "name": "ERC20", + "ofType": null + } + }, + { + "args": [ + { + "defaultValue": "0", + "description": null, + "name": "skip", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": "100", + "description": null, + "name": "first", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderBy", + "type": { + "kind": "ENUM", + "name": "ERC20_orderBy", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderDirection", + "type": { + "kind": "ENUM", + "name": "OrderDirection", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "ERC20_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": "The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.", + "name": "block", + "type": { + "kind": "INPUT_OBJECT", + "name": "Block_height", + "ofType": null + } + }, + { + "defaultValue": "deny", + "description": "Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.", + "name": "subgraphError", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "_SubgraphErrorPolicy_", + "ofType": null + } + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "erc20S", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "ERC20", + "ofType": null + } + } + } + } + }, + { + "args": [ + { + "defaultValue": null, + "description": null, + "name": "id", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + }, + { + "defaultValue": null, + "description": "The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.", + "name": "block", + "type": { + "kind": "INPUT_OBJECT", + "name": "Block_height", + "ofType": null + } + }, + { + "defaultValue": "deny", + "description": "Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.", + "name": "subgraphError", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "_SubgraphErrorPolicy_", + "ofType": null + } + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "orderClear", + "type": { + "kind": "OBJECT", + "name": "OrderClear", + "ofType": null + } + }, + { + "args": [ + { + "defaultValue": "0", + "description": null, + "name": "skip", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": "100", + "description": null, + "name": "first", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderBy", + "type": { + "kind": "ENUM", + "name": "OrderClear_orderBy", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderDirection", + "type": { + "kind": "ENUM", + "name": "OrderDirection", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "OrderClear_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": "The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.", + "name": "block", + "type": { + "kind": "INPUT_OBJECT", + "name": "Block_height", + "ofType": null + } + }, + { + "defaultValue": "deny", + "description": "Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.", + "name": "subgraphError", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "_SubgraphErrorPolicy_", + "ofType": null + } + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "orderClears", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "OrderClear", + "ofType": null + } + } + } + } + }, + { + "args": [ + { + "defaultValue": null, + "description": null, + "name": "id", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + }, + { + "defaultValue": null, + "description": "The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.", + "name": "block", + "type": { + "kind": "INPUT_OBJECT", + "name": "Block_height", + "ofType": null + } + }, + { + "defaultValue": "deny", + "description": "Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.", + "name": "subgraphError", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "_SubgraphErrorPolicy_", + "ofType": null + } + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "bounty", + "type": { + "kind": "OBJECT", + "name": "Bounty", + "ofType": null + } + }, + { + "args": [ + { + "defaultValue": "0", + "description": null, + "name": "skip", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": "100", + "description": null, + "name": "first", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderBy", + "type": { + "kind": "ENUM", + "name": "Bounty_orderBy", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderDirection", + "type": { + "kind": "ENUM", + "name": "OrderDirection", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "Bounty_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": "The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.", + "name": "block", + "type": { + "kind": "INPUT_OBJECT", + "name": "Block_height", + "ofType": null + } + }, + { + "defaultValue": "deny", + "description": "Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.", + "name": "subgraphError", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "_SubgraphErrorPolicy_", + "ofType": null + } + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "bounties", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Bounty", + "ofType": null + } + } + } + } + }, + { + "args": [ + { + "defaultValue": null, + "description": null, + "name": "id", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + }, + { + "defaultValue": null, + "description": "The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.", + "name": "block", + "type": { + "kind": "INPUT_OBJECT", + "name": "Block_height", + "ofType": null + } + }, + { + "defaultValue": "deny", + "description": "Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.", + "name": "subgraphError", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "_SubgraphErrorPolicy_", + "ofType": null + } + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "takeOrderEntity", + "type": { + "kind": "OBJECT", + "name": "TakeOrderEntity", + "ofType": null + } + }, + { + "args": [ + { + "defaultValue": "0", + "description": null, + "name": "skip", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": "100", + "description": null, + "name": "first", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderBy", + "type": { + "kind": "ENUM", + "name": "TakeOrderEntity_orderBy", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderDirection", + "type": { + "kind": "ENUM", + "name": "OrderDirection", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "TakeOrderEntity_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": "The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.", + "name": "block", + "type": { + "kind": "INPUT_OBJECT", + "name": "Block_height", + "ofType": null + } + }, + { + "defaultValue": "deny", + "description": "Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.", + "name": "subgraphError", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "_SubgraphErrorPolicy_", + "ofType": null + } + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "takeOrderEntities", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "TakeOrderEntity", + "ofType": null + } + } + } + } + }, + { + "args": [ + { + "defaultValue": null, + "description": null, + "name": "id", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + }, + { + "defaultValue": null, + "description": "The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.", + "name": "block", + "type": { + "kind": "INPUT_OBJECT", + "name": "Block_height", + "ofType": null + } + }, + { + "defaultValue": "deny", + "description": "Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.", + "name": "subgraphError", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "_SubgraphErrorPolicy_", + "ofType": null + } + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "orderClearStateChange", + "type": { + "kind": "OBJECT", + "name": "OrderClearStateChange", + "ofType": null + } + }, + { + "args": [ + { + "defaultValue": "0", + "description": null, + "name": "skip", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": "100", + "description": null, + "name": "first", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderBy", + "type": { + "kind": "ENUM", + "name": "OrderClearStateChange_orderBy", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderDirection", + "type": { + "kind": "ENUM", + "name": "OrderDirection", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "OrderClearStateChange_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": "The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.", + "name": "block", + "type": { + "kind": "INPUT_OBJECT", + "name": "Block_height", + "ofType": null + } + }, + { + "defaultValue": "deny", + "description": "Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.", + "name": "subgraphError", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "_SubgraphErrorPolicy_", + "ofType": null + } + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "orderClearStateChanges", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "OrderClearStateChange", + "ofType": null + } + } + } + } + }, + { + "args": [ + { + "defaultValue": null, + "description": null, + "name": "id", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + }, + { + "defaultValue": null, + "description": "The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.", + "name": "block", + "type": { + "kind": "INPUT_OBJECT", + "name": "Block_height", + "ofType": null + } + }, + { + "defaultValue": "deny", + "description": "Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.", + "name": "subgraphError", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "_SubgraphErrorPolicy_", + "ofType": null + } + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "clearOrderConfig", + "type": { + "kind": "OBJECT", + "name": "ClearOrderConfig", + "ofType": null + } + }, + { + "args": [ + { + "defaultValue": "0", + "description": null, + "name": "skip", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": "100", + "description": null, + "name": "first", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderBy", + "type": { + "kind": "ENUM", + "name": "ClearOrderConfig_orderBy", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderDirection", + "type": { + "kind": "ENUM", + "name": "OrderDirection", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "ClearOrderConfig_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": "The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.", + "name": "block", + "type": { + "kind": "INPUT_OBJECT", + "name": "Block_height", + "ofType": null + } + }, + { + "defaultValue": "deny", + "description": "Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.", + "name": "subgraphError", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "_SubgraphErrorPolicy_", + "ofType": null + } + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "clearOrderConfigs", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "ClearOrderConfig", + "ofType": null + } + } + } + } + }, + { + "args": [ + { + "defaultValue": null, + "description": null, + "name": "id", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + }, + { + "defaultValue": null, + "description": "The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.", + "name": "block", + "type": { + "kind": "INPUT_OBJECT", + "name": "Block_height", + "ofType": null + } + }, + { + "defaultValue": "deny", + "description": "Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.", + "name": "subgraphError", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "_SubgraphErrorPolicy_", + "ofType": null + } + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "account", + "type": { + "kind": "OBJECT", + "name": "Account", + "ofType": null + } + }, + { + "args": [ + { + "defaultValue": "0", + "description": null, + "name": "skip", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": "100", + "description": null, + "name": "first", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderBy", + "type": { + "kind": "ENUM", + "name": "Account_orderBy", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderDirection", + "type": { + "kind": "ENUM", + "name": "OrderDirection", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "Account_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": "The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.", + "name": "block", + "type": { + "kind": "INPUT_OBJECT", + "name": "Block_height", + "ofType": null + } + }, + { + "defaultValue": "deny", + "description": "Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.", + "name": "subgraphError", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "_SubgraphErrorPolicy_", + "ofType": null + } + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "accounts", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Account", + "ofType": null + } + } + } + } + }, + { + "args": [ + { + "defaultValue": null, + "description": null, + "name": "id", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + }, + { + "defaultValue": null, + "description": "The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.", + "name": "block", + "type": { + "kind": "INPUT_OBJECT", + "name": "Block_height", + "ofType": null + } + }, + { + "defaultValue": "deny", + "description": "Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.", + "name": "subgraphError", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "_SubgraphErrorPolicy_", + "ofType": null + } + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "transaction", + "type": { + "kind": "OBJECT", + "name": "Transaction", + "ofType": null + } + }, + { + "args": [ + { + "defaultValue": "0", + "description": null, + "name": "skip", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": "100", + "description": null, + "name": "first", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderBy", + "type": { + "kind": "ENUM", + "name": "Transaction_orderBy", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderDirection", + "type": { + "kind": "ENUM", + "name": "OrderDirection", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "Transaction_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": "The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.", + "name": "block", + "type": { + "kind": "INPUT_OBJECT", + "name": "Block_height", + "ofType": null + } + }, + { + "defaultValue": "deny", + "description": "Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.", + "name": "subgraphError", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "_SubgraphErrorPolicy_", + "ofType": null + } + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "transactions", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Transaction", + "ofType": null + } + } + } + } + }, + { + "args": [ + { + "defaultValue": null, + "description": null, + "name": "id", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + }, + { + "defaultValue": null, + "description": "The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.", + "name": "block", + "type": { + "kind": "INPUT_OBJECT", + "name": "Block_height", + "ofType": null + } + }, + { + "defaultValue": "deny", + "description": "Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.", + "name": "subgraphError", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "_SubgraphErrorPolicy_", + "ofType": null + } + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "contextEntity", + "type": { + "kind": "OBJECT", + "name": "ContextEntity", + "ofType": null + } + }, + { + "args": [ + { + "defaultValue": "0", + "description": null, + "name": "skip", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": "100", + "description": null, + "name": "first", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderBy", + "type": { + "kind": "ENUM", + "name": "ContextEntity_orderBy", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderDirection", + "type": { + "kind": "ENUM", + "name": "OrderDirection", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "ContextEntity_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": "The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.", + "name": "block", + "type": { + "kind": "INPUT_OBJECT", + "name": "Block_height", + "ofType": null + } + }, + { + "defaultValue": "deny", + "description": "Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.", + "name": "subgraphError", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "_SubgraphErrorPolicy_", + "ofType": null + } + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "contextEntities", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "ContextEntity", + "ofType": null + } + } + } + } + }, + { + "args": [ + { + "defaultValue": null, + "description": null, + "name": "id", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + }, + { + "defaultValue": null, + "description": "The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.", + "name": "block", + "type": { + "kind": "INPUT_OBJECT", + "name": "Block_height", + "ofType": null + } + }, + { + "defaultValue": "deny", + "description": "Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.", + "name": "subgraphError", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "_SubgraphErrorPolicy_", + "ofType": null + } + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "signedContext", + "type": { + "kind": "OBJECT", + "name": "SignedContext", + "ofType": null + } + }, + { + "args": [ + { + "defaultValue": "0", + "description": null, + "name": "skip", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": "100", + "description": null, + "name": "first", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderBy", + "type": { + "kind": "ENUM", + "name": "SignedContext_orderBy", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderDirection", + "type": { + "kind": "ENUM", + "name": "OrderDirection", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "SignedContext_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": "The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.", + "name": "block", + "type": { + "kind": "INPUT_OBJECT", + "name": "Block_height", + "ofType": null + } + }, + { + "defaultValue": "deny", + "description": "Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.", + "name": "subgraphError", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "_SubgraphErrorPolicy_", + "ofType": null + } + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "signedContexts", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "SignedContext", + "ofType": null + } + } + } + } + }, + { + "args": [ + { + "defaultValue": null, + "description": null, + "name": "id", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + }, + { + "defaultValue": null, + "description": "The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.", + "name": "block", + "type": { + "kind": "INPUT_OBJECT", + "name": "Block_height", + "ofType": null + } + }, + { + "defaultValue": "deny", + "description": "Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.", + "name": "subgraphError", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "_SubgraphErrorPolicy_", + "ofType": null + } + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "event", + "type": { + "kind": "INTERFACE", + "name": "Event", + "ofType": null + } + }, + { + "args": [ + { + "defaultValue": "0", + "description": null, + "name": "skip", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": "100", + "description": null, + "name": "first", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderBy", + "type": { + "kind": "ENUM", + "name": "Event_orderBy", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderDirection", + "type": { + "kind": "ENUM", + "name": "OrderDirection", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "Event_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": "The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.", + "name": "block", + "type": { + "kind": "INPUT_OBJECT", + "name": "Block_height", + "ofType": null + } + }, + { + "defaultValue": "deny", + "description": "Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.", + "name": "subgraphError", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "_SubgraphErrorPolicy_", + "ofType": null + } + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "events", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INTERFACE", + "name": "Event", + "ofType": null + } + } + } + } + }, + { + "args": [ + { + "defaultValue": null, + "description": null, + "name": "block", + "type": { + "kind": "INPUT_OBJECT", + "name": "Block_height", + "ofType": null + } + } + ], + "deprecationReason": null, + "description": "Access to subgraph metadata", + "isDeprecated": false, + "name": "_meta", + "type": { + "kind": "OBJECT", + "name": "_Meta_", + "ofType": null + } + } + ], + "inputFields": null, + "interfaces": [], + "kind": "OBJECT", + "name": "Subscription", + "possibleTypes": null + }, + { + "description": null, + "enumValues": null, + "fields": [ + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "id", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "sender", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Account", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "order", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Order", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": "The input amount from the perspective of sender", + "isDeprecated": false, + "name": "input", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "inputDisplay", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigDecimal", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": "The output amount from the perspective of sender", + "isDeprecated": false, + "name": "output", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "outputDisplay", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigDecimal", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": "IO Ratio", + "isDeprecated": false, + "name": "IORatio", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigDecimal", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": "The index of the input token in order to match with the take order output", + "isDeprecated": false, + "name": "inputIOIndex", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": "The index of the output token in order to match with the take order input.", + "isDeprecated": false, + "name": "outputIOIndex", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": "Input token from the perspective of the order taker", + "isDeprecated": false, + "name": "inputToken", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "ERC20", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": "Output token from the perspective of the order taker", + "isDeprecated": false, + "name": "outputToken", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "ERC20", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "transaction", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Transaction", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "emitter", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Account", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "timestamp", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "context", + "type": { + "kind": "OBJECT", + "name": "ContextEntity", + "ofType": null + } + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "Event", + "ofType": null + } + ], + "kind": "OBJECT", + "name": "TakeOrderEntity", + "possibleTypes": null + }, + { + "description": null, + "enumValues": null, + "fields": null, + "inputFields": [ + { + "defaultValue": null, + "description": null, + "name": "id", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_not", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_gt", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_lt", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_gte", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_lte", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "sender", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "sender_not", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "sender_gt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "sender_lt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "sender_gte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "sender_lte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "sender_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "sender_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "sender_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "sender_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "sender_not_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "sender_not_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "sender_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "sender_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "sender_not_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "sender_not_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "sender_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "sender_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "sender_not_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "sender_not_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "sender_", + "type": { + "kind": "INPUT_OBJECT", + "name": "Account_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "order", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "order_not", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "order_gt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "order_lt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "order_gte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "order_lte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "order_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "order_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "order_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "order_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "order_not_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "order_not_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "order_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "order_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "order_not_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "order_not_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "order_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "order_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "order_not_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "order_not_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "order_", + "type": { + "kind": "INPUT_OBJECT", + "name": "Order_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "input", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "input_not", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "input_gt", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "input_lt", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "input_gte", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "input_lte", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "input_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "input_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "inputDisplay", + "type": { + "kind": "SCALAR", + "name": "BigDecimal", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "inputDisplay_not", + "type": { + "kind": "SCALAR", + "name": "BigDecimal", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "inputDisplay_gt", + "type": { + "kind": "SCALAR", + "name": "BigDecimal", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "inputDisplay_lt", + "type": { + "kind": "SCALAR", + "name": "BigDecimal", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "inputDisplay_gte", + "type": { + "kind": "SCALAR", + "name": "BigDecimal", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "inputDisplay_lte", + "type": { + "kind": "SCALAR", + "name": "BigDecimal", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "inputDisplay_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigDecimal", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "inputDisplay_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigDecimal", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "output", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "output_not", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "output_gt", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "output_lt", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "output_gte", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "output_lte", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "output_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "output_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "outputDisplay", + "type": { + "kind": "SCALAR", + "name": "BigDecimal", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "outputDisplay_not", + "type": { + "kind": "SCALAR", + "name": "BigDecimal", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "outputDisplay_gt", + "type": { + "kind": "SCALAR", + "name": "BigDecimal", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "outputDisplay_lt", + "type": { + "kind": "SCALAR", + "name": "BigDecimal", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "outputDisplay_gte", + "type": { + "kind": "SCALAR", + "name": "BigDecimal", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "outputDisplay_lte", + "type": { + "kind": "SCALAR", + "name": "BigDecimal", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "outputDisplay_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigDecimal", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "outputDisplay_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigDecimal", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "IORatio", + "type": { + "kind": "SCALAR", + "name": "BigDecimal", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "IORatio_not", + "type": { + "kind": "SCALAR", + "name": "BigDecimal", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "IORatio_gt", + "type": { + "kind": "SCALAR", + "name": "BigDecimal", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "IORatio_lt", + "type": { + "kind": "SCALAR", + "name": "BigDecimal", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "IORatio_gte", + "type": { + "kind": "SCALAR", + "name": "BigDecimal", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "IORatio_lte", + "type": { + "kind": "SCALAR", + "name": "BigDecimal", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "IORatio_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigDecimal", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "IORatio_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigDecimal", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "inputIOIndex", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "inputIOIndex_not", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "inputIOIndex_gt", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "inputIOIndex_lt", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "inputIOIndex_gte", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "inputIOIndex_lte", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "inputIOIndex_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "inputIOIndex_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "outputIOIndex", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "outputIOIndex_not", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "outputIOIndex_gt", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "outputIOIndex_lt", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "outputIOIndex_gte", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "outputIOIndex_lte", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "outputIOIndex_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "outputIOIndex_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "inputToken", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "inputToken_not", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "inputToken_gt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "inputToken_lt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "inputToken_gte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "inputToken_lte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "inputToken_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "inputToken_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "inputToken_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "inputToken_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "inputToken_not_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "inputToken_not_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "inputToken_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "inputToken_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "inputToken_not_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "inputToken_not_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "inputToken_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "inputToken_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "inputToken_not_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "inputToken_not_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "inputToken_", + "type": { + "kind": "INPUT_OBJECT", + "name": "ERC20_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "outputToken", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "outputToken_not", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "outputToken_gt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "outputToken_lt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "outputToken_gte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "outputToken_lte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "outputToken_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "outputToken_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "outputToken_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "outputToken_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "outputToken_not_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "outputToken_not_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "outputToken_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "outputToken_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "outputToken_not_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "outputToken_not_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "outputToken_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "outputToken_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "outputToken_not_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "outputToken_not_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "outputToken_", + "type": { + "kind": "INPUT_OBJECT", + "name": "ERC20_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_not", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_gt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_lt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_gte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_lte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_not_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_not_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_not_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_not_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_not_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_not_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_", + "type": { + "kind": "INPUT_OBJECT", + "name": "Transaction_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_not", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_gt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_lt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_gte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_lte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_not_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_not_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_not_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_not_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_not_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_not_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_", + "type": { + "kind": "INPUT_OBJECT", + "name": "Account_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "timestamp", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "timestamp_not", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "timestamp_gt", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "timestamp_lt", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "timestamp_gte", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "timestamp_lte", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "timestamp_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "timestamp_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "context", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "context_not", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "context_gt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "context_lt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "context_gte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "context_lte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "context_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "context_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "context_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "context_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "context_not_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "context_not_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "context_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "context_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "context_not_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "context_not_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "context_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "context_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "context_not_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "context_not_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "context_", + "type": { + "kind": "INPUT_OBJECT", + "name": "ContextEntity_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": "Filter for the block changed event.", + "name": "_change_block", + "type": { + "kind": "INPUT_OBJECT", + "name": "BlockChangedFilter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "and", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "TakeOrderEntity_filter", + "ofType": null + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "or", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "TakeOrderEntity_filter", + "ofType": null + } + } + } + ], + "interfaces": null, + "kind": "INPUT_OBJECT", + "name": "TakeOrderEntity_filter", + "possibleTypes": null + }, + { + "description": null, + "enumValues": [ + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "id" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "sender" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "sender__id" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "order" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "order__id" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "order__orderHash" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "order__interpreter" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "order__interpreterStore" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "order__expressionDeployer" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "order__expression" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "order__orderActive" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "order__handleIO" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "order__orderJSONString" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "order__expressionJSONString" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "order__timestamp" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "input" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "inputDisplay" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "output" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "outputDisplay" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "IORatio" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "inputIOIndex" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "outputIOIndex" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "inputToken" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "inputToken__id" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "inputToken__name" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "inputToken__symbol" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "inputToken__totalSupply" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "inputToken__totalSupplyDisplay" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "inputToken__decimals" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "outputToken" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "outputToken__id" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "outputToken__name" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "outputToken__symbol" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "outputToken__totalSupply" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "outputToken__totalSupplyDisplay" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "outputToken__decimals" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "transaction" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "transaction__id" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "transaction__timestamp" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "transaction__blockNumber" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "emitter" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "emitter__id" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "timestamp" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "context" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "context__id" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "context__timestamp" + } + ], + "fields": null, + "inputFields": null, + "interfaces": null, + "kind": "ENUM", + "name": "TakeOrderEntity_orderBy", + "possibleTypes": null + }, + { + "description": null, + "enumValues": null, + "fields": [ + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "id", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": "The owner of this Vault", + "isDeprecated": false, + "name": "owner", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Account", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": "The id of this vault", + "isDeprecated": false, + "name": "vault", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Vault", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "vaultId", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": "The token that has a balance for this vault and owner.", + "isDeprecated": false, + "name": "token", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "ERC20", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": "The balance of this token, for this vault, for this owner", + "isDeprecated": false, + "name": "balance", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "balanceDisplay", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigDecimal", + "ofType": null + } + } + }, + { + "args": [ + { + "defaultValue": "0", + "description": null, + "name": "skip", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": "100", + "description": null, + "name": "first", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderBy", + "type": { + "kind": "ENUM", + "name": "Order_orderBy", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderDirection", + "type": { + "kind": "ENUM", + "name": "OrderDirection", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "Order_filter", + "ofType": null + } + } + ], + "deprecationReason": null, + "description": "Orders that reference this vault, owner and token", + "isDeprecated": false, + "name": "orders", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Order", + "ofType": null + } + } + } + }, + { + "args": [ + { + "defaultValue": "0", + "description": null, + "name": "skip", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": "100", + "description": null, + "name": "first", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderBy", + "type": { + "kind": "ENUM", + "name": "OrderClear_orderBy", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderDirection", + "type": { + "kind": "ENUM", + "name": "OrderDirection", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "OrderClear_filter", + "ofType": null + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "orderClears", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "OrderClear", + "ofType": null + } + } + } + }, + { + "args": [ + { + "defaultValue": "0", + "description": null, + "name": "skip", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": "100", + "description": null, + "name": "first", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderBy", + "type": { + "kind": "ENUM", + "name": "TokenVaultTakeOrder_orderBy", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderDirection", + "type": { + "kind": "ENUM", + "name": "OrderDirection", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "TokenVaultTakeOrder_filter", + "ofType": null + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "takeOrders", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "TokenVaultTakeOrder", + "ofType": null + } + } + } + } + ], + "inputFields": null, + "interfaces": [], + "kind": "OBJECT", + "name": "TokenVault", + "possibleTypes": null + }, + { + "description": null, + "enumValues": null, + "fields": [ + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "id", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "wasOutput", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "wasInput", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "takeOrder", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "TakeOrderEntity", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "tokenVault", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "TokenVault", + "ofType": null + } + } + } + ], + "inputFields": null, + "interfaces": [], + "kind": "OBJECT", + "name": "TokenVaultTakeOrder", + "possibleTypes": null + }, + { + "description": null, + "enumValues": null, + "fields": null, + "inputFields": [ + { + "defaultValue": null, + "description": null, + "name": "id", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_not", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_gt", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_lt", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_gte", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_lte", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "wasOutput", + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "wasOutput_not", + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "wasOutput_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "wasOutput_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "wasInput", + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "wasInput_not", + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "wasInput_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "wasInput_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "takeOrder", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "takeOrder_not", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "takeOrder_gt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "takeOrder_lt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "takeOrder_gte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "takeOrder_lte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "takeOrder_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "takeOrder_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "takeOrder_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "takeOrder_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "takeOrder_not_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "takeOrder_not_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "takeOrder_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "takeOrder_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "takeOrder_not_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "takeOrder_not_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "takeOrder_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "takeOrder_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "takeOrder_not_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "takeOrder_not_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "takeOrder_", + "type": { + "kind": "INPUT_OBJECT", + "name": "TakeOrderEntity_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVault", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVault_not", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVault_gt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVault_lt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVault_gte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVault_lte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVault_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVault_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVault_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVault_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVault_not_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVault_not_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVault_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVault_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVault_not_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVault_not_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVault_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVault_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVault_not_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVault_not_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVault_", + "type": { + "kind": "INPUT_OBJECT", + "name": "TokenVault_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": "Filter for the block changed event.", + "name": "_change_block", + "type": { + "kind": "INPUT_OBJECT", + "name": "BlockChangedFilter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "and", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "TokenVaultTakeOrder_filter", + "ofType": null + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "or", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "TokenVaultTakeOrder_filter", + "ofType": null + } + } + } + ], + "interfaces": null, + "kind": "INPUT_OBJECT", + "name": "TokenVaultTakeOrder_filter", + "possibleTypes": null + }, + { + "description": null, + "enumValues": [ + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "id" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "wasOutput" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "wasInput" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "takeOrder" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "takeOrder__id" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "takeOrder__input" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "takeOrder__inputDisplay" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "takeOrder__output" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "takeOrder__outputDisplay" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "takeOrder__IORatio" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "takeOrder__inputIOIndex" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "takeOrder__outputIOIndex" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "takeOrder__timestamp" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "tokenVault" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "tokenVault__id" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "tokenVault__vaultId" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "tokenVault__balance" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "tokenVault__balanceDisplay" + } + ], + "fields": null, + "inputFields": null, + "interfaces": null, + "kind": "ENUM", + "name": "TokenVaultTakeOrder_orderBy", + "possibleTypes": null + }, + { + "description": null, + "enumValues": null, + "fields": null, + "inputFields": [ + { + "defaultValue": null, + "description": null, + "name": "id", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_not", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_gt", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_lt", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_gte", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_lte", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "owner", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "owner_not", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "owner_gt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "owner_lt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "owner_gte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "owner_lte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "owner_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "owner_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "owner_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "owner_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "owner_not_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "owner_not_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "owner_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "owner_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "owner_not_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "owner_not_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "owner_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "owner_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "owner_not_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "owner_not_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "owner_", + "type": { + "kind": "INPUT_OBJECT", + "name": "Account_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vault", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vault_not", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vault_gt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vault_lt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vault_gte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vault_lte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vault_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "vault_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "vault_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vault_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vault_not_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vault_not_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vault_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vault_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vault_not_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vault_not_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vault_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vault_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vault_not_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vault_not_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vault_", + "type": { + "kind": "INPUT_OBJECT", + "name": "Vault_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vaultId", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vaultId_not", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vaultId_gt", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vaultId_lt", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vaultId_gte", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vaultId_lte", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vaultId_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "vaultId_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "token", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "token_not", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "token_gt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "token_lt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "token_gte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "token_lte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "token_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "token_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "token_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "token_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "token_not_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "token_not_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "token_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "token_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "token_not_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "token_not_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "token_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "token_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "token_not_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "token_not_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "token_", + "type": { + "kind": "INPUT_OBJECT", + "name": "ERC20_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "balance", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "balance_not", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "balance_gt", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "balance_lt", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "balance_gte", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "balance_lte", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "balance_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "balance_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "balanceDisplay", + "type": { + "kind": "SCALAR", + "name": "BigDecimal", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "balanceDisplay_not", + "type": { + "kind": "SCALAR", + "name": "BigDecimal", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "balanceDisplay_gt", + "type": { + "kind": "SCALAR", + "name": "BigDecimal", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "balanceDisplay_lt", + "type": { + "kind": "SCALAR", + "name": "BigDecimal", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "balanceDisplay_gte", + "type": { + "kind": "SCALAR", + "name": "BigDecimal", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "balanceDisplay_lte", + "type": { + "kind": "SCALAR", + "name": "BigDecimal", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "balanceDisplay_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigDecimal", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "balanceDisplay_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigDecimal", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "orders", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "orders_not", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "orders_contains", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "orders_contains_nocase", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "orders_not_contains", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "orders_not_contains_nocase", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "orders_", + "type": { + "kind": "INPUT_OBJECT", + "name": "Order_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderClears", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderClears_not", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderClears_contains", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderClears_contains_nocase", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderClears_not_contains", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderClears_not_contains_nocase", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderClears_", + "type": { + "kind": "INPUT_OBJECT", + "name": "OrderClear_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "takeOrders_", + "type": { + "kind": "INPUT_OBJECT", + "name": "TokenVaultTakeOrder_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": "Filter for the block changed event.", + "name": "_change_block", + "type": { + "kind": "INPUT_OBJECT", + "name": "BlockChangedFilter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "and", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "TokenVault_filter", + "ofType": null + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "or", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "TokenVault_filter", + "ofType": null + } + } + } + ], + "interfaces": null, + "kind": "INPUT_OBJECT", + "name": "TokenVault_filter", + "possibleTypes": null + }, + { + "description": null, + "enumValues": [ + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "id" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "owner" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "owner__id" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "vault" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "vault__id" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "vault__vaultId" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "vaultId" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "token" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "token__id" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "token__name" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "token__symbol" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "token__totalSupply" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "token__totalSupplyDisplay" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "token__decimals" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "balance" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "balanceDisplay" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "orders" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "orderClears" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "takeOrders" + } + ], + "fields": null, + "inputFields": null, + "interfaces": null, + "kind": "ENUM", + "name": "TokenVault_orderBy", + "possibleTypes": null + }, + { + "description": null, + "enumValues": null, + "fields": [ + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "id", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "timestamp", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "blockNumber", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + }, + { + "args": [ + { + "defaultValue": "0", + "description": null, + "name": "skip", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": "100", + "description": null, + "name": "first", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderBy", + "type": { + "kind": "ENUM", + "name": "Event_orderBy", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderDirection", + "type": { + "kind": "ENUM", + "name": "OrderDirection", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "Event_filter", + "ofType": null + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "events", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INTERFACE", + "name": "Event", + "ofType": null + } + } + } + } + ], + "inputFields": null, + "interfaces": [], + "kind": "OBJECT", + "name": "Transaction", + "possibleTypes": null + }, + { + "description": null, + "enumValues": null, + "fields": null, + "inputFields": [ + { + "defaultValue": null, + "description": null, + "name": "id", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_not", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_gt", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_lt", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_gte", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_lte", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "timestamp", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "timestamp_not", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "timestamp_gt", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "timestamp_lt", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "timestamp_gte", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "timestamp_lte", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "timestamp_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "timestamp_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "blockNumber", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "blockNumber_not", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "blockNumber_gt", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "blockNumber_lt", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "blockNumber_gte", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "blockNumber_lte", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "blockNumber_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "blockNumber_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "events_", + "type": { + "kind": "INPUT_OBJECT", + "name": "Event_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": "Filter for the block changed event.", + "name": "_change_block", + "type": { + "kind": "INPUT_OBJECT", + "name": "BlockChangedFilter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "and", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "Transaction_filter", + "ofType": null + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "or", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "Transaction_filter", + "ofType": null + } + } + } + ], + "interfaces": null, + "kind": "INPUT_OBJECT", + "name": "Transaction_filter", + "possibleTypes": null + }, + { + "description": null, + "enumValues": [ + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "id" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "timestamp" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "blockNumber" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "events" + } + ], + "fields": null, + "inputFields": null, + "interfaces": null, + "kind": "ENUM", + "name": "Transaction_orderBy", + "possibleTypes": null + }, + { + "description": null, + "enumValues": null, + "fields": [ + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "id", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "vaultId", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": "The owner of this Vault", + "isDeprecated": false, + "name": "owner", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Account", + "ofType": null + } + } + }, + { + "args": [ + { + "defaultValue": "0", + "description": null, + "name": "skip", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": "100", + "description": null, + "name": "first", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderBy", + "type": { + "kind": "ENUM", + "name": "TokenVault_orderBy", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderDirection", + "type": { + "kind": "ENUM", + "name": "OrderDirection", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "TokenVault_filter", + "ofType": null + } + } + ], + "deprecationReason": null, + "description": "Tokens in this Vault", + "isDeprecated": false, + "name": "tokenVaults", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "TokenVault", + "ofType": null + } + } + } + }, + { + "args": [ + { + "defaultValue": "0", + "description": null, + "name": "skip", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": "100", + "description": null, + "name": "first", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderBy", + "type": { + "kind": "ENUM", + "name": "VaultDeposit_orderBy", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderDirection", + "type": { + "kind": "ENUM", + "name": "OrderDirection", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "VaultDeposit_filter", + "ofType": null + } + } + ], + "deprecationReason": null, + "description": "Deposits into this Vault", + "isDeprecated": false, + "name": "deposits", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "VaultDeposit", + "ofType": null + } + } + } + }, + { + "args": [ + { + "defaultValue": "0", + "description": null, + "name": "skip", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": "100", + "description": null, + "name": "first", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderBy", + "type": { + "kind": "ENUM", + "name": "VaultWithdraw_orderBy", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "orderDirection", + "type": { + "kind": "ENUM", + "name": "OrderDirection", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "where", + "type": { + "kind": "INPUT_OBJECT", + "name": "VaultWithdraw_filter", + "ofType": null + } + } + ], + "deprecationReason": null, + "description": "Withdrawals from this Vault", + "isDeprecated": false, + "name": "withdraws", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "VaultWithdraw", + "ofType": null + } + } + } + } + ], + "inputFields": null, + "interfaces": [], + "kind": "OBJECT", + "name": "Vault", + "possibleTypes": null + }, + { + "description": null, + "enumValues": null, + "fields": [ + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "id", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": "The transaction sender of this deposit", + "isDeprecated": false, + "name": "sender", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Account", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": "The token that was deposited", + "isDeprecated": false, + "name": "token", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "ERC20", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": "The vaultId that was deposited into", + "isDeprecated": false, + "name": "vaultId", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": "The Vault that was deposited into", + "isDeprecated": false, + "name": "vault", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Vault", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": "The amount that was deposited", + "isDeprecated": false, + "name": "amount", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "amountDisplay", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigDecimal", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": "The current balance of this token for this Vault", + "isDeprecated": false, + "name": "tokenVault", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "TokenVault", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "transaction", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Transaction", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "emitter", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Account", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "timestamp", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "Event", + "ofType": null + } + ], + "kind": "OBJECT", + "name": "VaultDeposit", + "possibleTypes": null + }, + { + "description": null, + "enumValues": null, + "fields": null, + "inputFields": [ + { + "defaultValue": null, + "description": null, + "name": "id", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_not", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_gt", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_lt", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_gte", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_lte", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "sender", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "sender_not", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "sender_gt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "sender_lt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "sender_gte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "sender_lte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "sender_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "sender_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "sender_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "sender_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "sender_not_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "sender_not_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "sender_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "sender_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "sender_not_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "sender_not_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "sender_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "sender_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "sender_not_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "sender_not_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "sender_", + "type": { + "kind": "INPUT_OBJECT", + "name": "Account_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "token", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "token_not", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "token_gt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "token_lt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "token_gte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "token_lte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "token_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "token_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "token_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "token_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "token_not_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "token_not_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "token_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "token_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "token_not_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "token_not_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "token_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "token_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "token_not_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "token_not_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "token_", + "type": { + "kind": "INPUT_OBJECT", + "name": "ERC20_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vaultId", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vaultId_not", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vaultId_gt", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vaultId_lt", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vaultId_gte", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vaultId_lte", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vaultId_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "vaultId_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "vault", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vault_not", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vault_gt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vault_lt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vault_gte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vault_lte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vault_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "vault_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "vault_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vault_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vault_not_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vault_not_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vault_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vault_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vault_not_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vault_not_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vault_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vault_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vault_not_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vault_not_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vault_", + "type": { + "kind": "INPUT_OBJECT", + "name": "Vault_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "amount", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "amount_not", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "amount_gt", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "amount_lt", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "amount_gte", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "amount_lte", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "amount_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "amount_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "amountDisplay", + "type": { + "kind": "SCALAR", + "name": "BigDecimal", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "amountDisplay_not", + "type": { + "kind": "SCALAR", + "name": "BigDecimal", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "amountDisplay_gt", + "type": { + "kind": "SCALAR", + "name": "BigDecimal", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "amountDisplay_lt", + "type": { + "kind": "SCALAR", + "name": "BigDecimal", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "amountDisplay_gte", + "type": { + "kind": "SCALAR", + "name": "BigDecimal", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "amountDisplay_lte", + "type": { + "kind": "SCALAR", + "name": "BigDecimal", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "amountDisplay_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigDecimal", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "amountDisplay_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigDecimal", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVault", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVault_not", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVault_gt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVault_lt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVault_gte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVault_lte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVault_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVault_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVault_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVault_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVault_not_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVault_not_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVault_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVault_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVault_not_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVault_not_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVault_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVault_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVault_not_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVault_not_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVault_", + "type": { + "kind": "INPUT_OBJECT", + "name": "TokenVault_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_not", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_gt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_lt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_gte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_lte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_not_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_not_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_not_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_not_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_not_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_not_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_", + "type": { + "kind": "INPUT_OBJECT", + "name": "Transaction_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_not", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_gt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_lt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_gte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_lte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_not_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_not_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_not_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_not_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_not_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_not_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_", + "type": { + "kind": "INPUT_OBJECT", + "name": "Account_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "timestamp", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "timestamp_not", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "timestamp_gt", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "timestamp_lt", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "timestamp_gte", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "timestamp_lte", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "timestamp_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "timestamp_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": "Filter for the block changed event.", + "name": "_change_block", + "type": { + "kind": "INPUT_OBJECT", + "name": "BlockChangedFilter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "and", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "VaultDeposit_filter", + "ofType": null + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "or", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "VaultDeposit_filter", + "ofType": null + } + } + } + ], + "interfaces": null, + "kind": "INPUT_OBJECT", + "name": "VaultDeposit_filter", + "possibleTypes": null + }, + { + "description": null, + "enumValues": [ + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "id" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "sender" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "sender__id" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "token" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "token__id" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "token__name" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "token__symbol" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "token__totalSupply" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "token__totalSupplyDisplay" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "token__decimals" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "vaultId" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "vault" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "vault__id" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "vault__vaultId" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "amount" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "amountDisplay" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "tokenVault" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "tokenVault__id" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "tokenVault__vaultId" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "tokenVault__balance" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "tokenVault__balanceDisplay" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "transaction" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "transaction__id" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "transaction__timestamp" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "transaction__blockNumber" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "emitter" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "emitter__id" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "timestamp" + } + ], + "fields": null, + "inputFields": null, + "interfaces": null, + "kind": "ENUM", + "name": "VaultDeposit_orderBy", + "possibleTypes": null + }, + { + "description": null, + "enumValues": null, + "fields": [ + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "id", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": "The transaction sender of this withdrawal", + "isDeprecated": false, + "name": "sender", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Account", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": "The token that was withdrawn", + "isDeprecated": false, + "name": "token", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "ERC20", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": "The vaultId that was withdrawn from", + "isDeprecated": false, + "name": "vaultId", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": "The Vault that was withdrawn from", + "isDeprecated": false, + "name": "vault", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Vault", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": "The amount that was requested be withdrawn", + "isDeprecated": false, + "name": "requestedAmount", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "requestedAmountDisplay", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigDecimal", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": "The amount that was withdrawn", + "isDeprecated": false, + "name": "amount", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "amountDisplay", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigDecimal", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": "The current balance of this token for this Vault", + "isDeprecated": false, + "name": "tokenVault", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "TokenVault", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "transaction", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Transaction", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "emitter", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Account", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "timestamp", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "Event", + "ofType": null + } + ], + "kind": "OBJECT", + "name": "VaultWithdraw", + "possibleTypes": null + }, + { + "description": null, + "enumValues": null, + "fields": null, + "inputFields": [ + { + "defaultValue": null, + "description": null, + "name": "id", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_not", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_gt", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_lt", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_gte", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_lte", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "sender", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "sender_not", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "sender_gt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "sender_lt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "sender_gte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "sender_lte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "sender_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "sender_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "sender_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "sender_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "sender_not_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "sender_not_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "sender_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "sender_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "sender_not_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "sender_not_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "sender_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "sender_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "sender_not_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "sender_not_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "sender_", + "type": { + "kind": "INPUT_OBJECT", + "name": "Account_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "token", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "token_not", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "token_gt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "token_lt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "token_gte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "token_lte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "token_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "token_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "token_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "token_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "token_not_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "token_not_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "token_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "token_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "token_not_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "token_not_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "token_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "token_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "token_not_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "token_not_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "token_", + "type": { + "kind": "INPUT_OBJECT", + "name": "ERC20_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vaultId", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vaultId_not", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vaultId_gt", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vaultId_lt", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vaultId_gte", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vaultId_lte", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vaultId_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "vaultId_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "vault", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vault_not", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vault_gt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vault_lt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vault_gte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vault_lte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vault_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "vault_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "vault_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vault_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vault_not_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vault_not_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vault_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vault_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vault_not_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vault_not_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vault_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vault_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vault_not_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vault_not_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vault_", + "type": { + "kind": "INPUT_OBJECT", + "name": "Vault_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "requestedAmount", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "requestedAmount_not", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "requestedAmount_gt", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "requestedAmount_lt", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "requestedAmount_gte", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "requestedAmount_lte", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "requestedAmount_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "requestedAmount_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "requestedAmountDisplay", + "type": { + "kind": "SCALAR", + "name": "BigDecimal", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "requestedAmountDisplay_not", + "type": { + "kind": "SCALAR", + "name": "BigDecimal", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "requestedAmountDisplay_gt", + "type": { + "kind": "SCALAR", + "name": "BigDecimal", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "requestedAmountDisplay_lt", + "type": { + "kind": "SCALAR", + "name": "BigDecimal", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "requestedAmountDisplay_gte", + "type": { + "kind": "SCALAR", + "name": "BigDecimal", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "requestedAmountDisplay_lte", + "type": { + "kind": "SCALAR", + "name": "BigDecimal", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "requestedAmountDisplay_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigDecimal", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "requestedAmountDisplay_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigDecimal", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "amount", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "amount_not", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "amount_gt", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "amount_lt", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "amount_gte", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "amount_lte", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "amount_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "amount_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "amountDisplay", + "type": { + "kind": "SCALAR", + "name": "BigDecimal", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "amountDisplay_not", + "type": { + "kind": "SCALAR", + "name": "BigDecimal", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "amountDisplay_gt", + "type": { + "kind": "SCALAR", + "name": "BigDecimal", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "amountDisplay_lt", + "type": { + "kind": "SCALAR", + "name": "BigDecimal", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "amountDisplay_gte", + "type": { + "kind": "SCALAR", + "name": "BigDecimal", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "amountDisplay_lte", + "type": { + "kind": "SCALAR", + "name": "BigDecimal", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "amountDisplay_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigDecimal", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "amountDisplay_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigDecimal", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVault", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVault_not", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVault_gt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVault_lt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVault_gte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVault_lte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVault_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVault_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVault_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVault_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVault_not_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVault_not_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVault_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVault_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVault_not_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVault_not_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVault_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVault_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVault_not_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVault_not_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVault_", + "type": { + "kind": "INPUT_OBJECT", + "name": "TokenVault_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_not", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_gt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_lt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_gte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_lte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_not_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_not_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_not_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_not_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_not_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_not_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "transaction_", + "type": { + "kind": "INPUT_OBJECT", + "name": "Transaction_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_not", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_gt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_lt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_gte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_lte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_not_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_not_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_not_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_not_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_not_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_not_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "emitter_", + "type": { + "kind": "INPUT_OBJECT", + "name": "Account_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "timestamp", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "timestamp_not", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "timestamp_gt", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "timestamp_lt", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "timestamp_gte", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "timestamp_lte", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "timestamp_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "timestamp_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": "Filter for the block changed event.", + "name": "_change_block", + "type": { + "kind": "INPUT_OBJECT", + "name": "BlockChangedFilter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "and", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "VaultWithdraw_filter", + "ofType": null + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "or", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "VaultWithdraw_filter", + "ofType": null + } + } + } + ], + "interfaces": null, + "kind": "INPUT_OBJECT", + "name": "VaultWithdraw_filter", + "possibleTypes": null + }, + { + "description": null, + "enumValues": [ + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "id" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "sender" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "sender__id" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "token" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "token__id" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "token__name" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "token__symbol" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "token__totalSupply" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "token__totalSupplyDisplay" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "token__decimals" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "vaultId" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "vault" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "vault__id" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "vault__vaultId" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "requestedAmount" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "requestedAmountDisplay" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "amount" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "amountDisplay" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "tokenVault" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "tokenVault__id" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "tokenVault__vaultId" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "tokenVault__balance" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "tokenVault__balanceDisplay" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "transaction" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "transaction__id" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "transaction__timestamp" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "transaction__blockNumber" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "emitter" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "emitter__id" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "timestamp" + } + ], + "fields": null, + "inputFields": null, + "interfaces": null, + "kind": "ENUM", + "name": "VaultWithdraw_orderBy", + "possibleTypes": null + }, + { + "description": null, + "enumValues": null, + "fields": null, + "inputFields": [ + { + "defaultValue": null, + "description": null, + "name": "id", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_not", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_gt", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_lt", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_gte", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_lte", + "type": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "id_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "vaultId", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vaultId_not", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vaultId_gt", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vaultId_lt", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vaultId_gte", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vaultId_lte", + "type": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "vaultId_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "vaultId_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "owner", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "owner_not", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "owner_gt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "owner_lt", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "owner_gte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "owner_lte", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "owner_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "owner_not_in", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "owner_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "owner_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "owner_not_contains", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "owner_not_contains_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "owner_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "owner_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "owner_not_starts_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "owner_not_starts_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "owner_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "owner_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "owner_not_ends_with", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "owner_not_ends_with_nocase", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "owner_", + "type": { + "kind": "INPUT_OBJECT", + "name": "Account_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "tokenVaults_", + "type": { + "kind": "INPUT_OBJECT", + "name": "TokenVault_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "deposits_", + "type": { + "kind": "INPUT_OBJECT", + "name": "VaultDeposit_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "withdraws_", + "type": { + "kind": "INPUT_OBJECT", + "name": "VaultWithdraw_filter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": "Filter for the block changed event.", + "name": "_change_block", + "type": { + "kind": "INPUT_OBJECT", + "name": "BlockChangedFilter", + "ofType": null + } + }, + { + "defaultValue": null, + "description": null, + "name": "and", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "Vault_filter", + "ofType": null + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "or", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "Vault_filter", + "ofType": null + } + } + } + ], + "interfaces": null, + "kind": "INPUT_OBJECT", + "name": "Vault_filter", + "possibleTypes": null + }, + { + "description": null, + "enumValues": [ + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "id" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "vaultId" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "owner" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "owner__id" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "tokenVaults" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "deposits" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "withdraws" + } + ], + "fields": null, + "inputFields": null, + "interfaces": null, + "kind": "ENUM", + "name": "Vault_orderBy", + "possibleTypes": null + }, + { + "description": null, + "enumValues": null, + "fields": [ + { + "args": [], + "deprecationReason": null, + "description": "The hash of the block", + "isDeprecated": false, + "name": "hash", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "args": [], + "deprecationReason": null, + "description": "The block number", + "isDeprecated": false, + "name": "number", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": "Integer representation of the timestamp stored in blocks for the chain", + "isDeprecated": false, + "name": "timestamp", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + } + ], + "inputFields": null, + "interfaces": [], + "kind": "OBJECT", + "name": "_Block_", + "possibleTypes": null + }, + { + "description": "The type for the top-level _meta field", + "enumValues": null, + "fields": [ + { + "args": [], + "deprecationReason": null, + "description": "Information about a specific subgraph block. The hash of the block\nwill be null if the _meta field has a block constraint that asks for\na block number. It will be filled if the _meta field has no block constraint\nand therefore asks for the latest block\n", + "isDeprecated": false, + "name": "block", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "_Block_", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": "The deployment ID", + "isDeprecated": false, + "name": "deployment", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": "If `true`, the subgraph encountered indexing errors at some past block", + "isDeprecated": false, + "name": "hasIndexingErrors", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + } + } + ], + "inputFields": null, + "interfaces": [], + "kind": "OBJECT", + "name": "_Meta_", + "possibleTypes": null + }, + { + "description": null, + "enumValues": [ + { + "deprecationReason": null, + "description": "Data will be returned even if the subgraph has indexing errors", + "isDeprecated": false, + "name": "allow" + }, + { + "deprecationReason": null, + "description": "If the subgraph has indexing errors, data will be omitted. The default.", + "isDeprecated": false, + "name": "deny" + } + ], + "fields": null, + "inputFields": null, + "interfaces": null, + "kind": "ENUM", + "name": "_SubgraphErrorPolicy_", + "possibleTypes": null + } + ] + } + } +} \ No newline at end of file diff --git a/subgraph/tests/subgraph/query/take_order_entity/mod.rs b/subgraph/tests/subgraph/query/take_order_entity/mod.rs new file mode 100644 index 0000000000..153a4943c7 --- /dev/null +++ b/subgraph/tests/subgraph/query/take_order_entity/mod.rs @@ -0,0 +1,102 @@ +use self::take_order_entity::ResponseData; +use super::SG_URL; +use crate::utils::{bytes_to_h256, hex_string_to_bytes, mn_mpz_to_u256}; +use anyhow::{anyhow, Result}; +use ethers::types::TxHash; +use ethers::types::{Address, Bytes, U256}; +use graphql_client::{GraphQLQuery, Response}; +use rust_bigint::BigInt; +use serde::{Deserialize, Serialize}; + +// use bigdecimal::BigDecimal; +type BigDecimal = String; + +#[derive(GraphQLQuery)] +#[graphql( + schema_path = "tests/subgraph/query/schema.json", + query_path = "tests/subgraph/query/take_order_entity/take_order_entity.graphql", + response_derives = "Debug, Serialize, Deserialize" +)] +#[derive(Serialize, Deserialize, Debug)] +pub struct TakeOrderEntity; + +#[derive(Serialize, Deserialize, Debug)] +pub struct TakeOrderEntityResponse { + pub id: String, + pub sender: Address, + pub order: Bytes, + pub input: U256, + pub input_display: String, + pub output: U256, + pub output_display: String, + pub io_ratio: String, + pub input_io_index: U256, + pub output_io_index: U256, + pub input_token: Address, + pub output_token: Address, + pub context: Option, + pub emitter: Address, + pub transaction: TxHash, + pub timestamp: U256, +} + +impl TakeOrderEntityResponse { + pub fn from(response: ResponseData) -> TakeOrderEntityResponse { + let data = response.take_order_entity.unwrap(); + + let sender = Address::from_slice(&data.sender.id); + let input_token = Address::from_slice(&hex_string_to_bytes(&data.input_token.id).unwrap()); + let output_token = + Address::from_slice(&hex_string_to_bytes(&data.output_token.id).unwrap()); + let emitter = Address::from_slice(&data.emitter.id); + let transaction = bytes_to_h256(&hex_string_to_bytes(&data.transaction.id).unwrap()); + + let context = match data.context { + Some(value) => Some(value.id), + None => None, + }; + + TakeOrderEntityResponse { + id: data.id, + sender, + order: hex_string_to_bytes(&data.order.id).unwrap(), + input: mn_mpz_to_u256(&data.input), + input_display: data.input_display, + output: mn_mpz_to_u256(&data.input), + output_display: data.output_display, + io_ratio: data.io_ratio, + input_io_index: mn_mpz_to_u256(&data.input_io_index), + output_io_index: mn_mpz_to_u256(&data.output_io_index), + input_token, + output_token, + context, + emitter, + transaction, + timestamp: mn_mpz_to_u256(&data.timestamp), + } + } +} + +pub async fn get_take_order_entity(id: &String) -> Result { + let variables = take_order_entity::Variables { + id: id.to_string().into(), + }; + + let request_body = TakeOrderEntity::build_query(variables); + let client = reqwest::Client::new(); + let res = client + .post((*SG_URL).clone()) + .json(&request_body) + .send() + .await?; + + let response_body: Response = res.json().await?; + + match response_body.data { + Some(data) => { + let response = TakeOrderEntityResponse::from(data); + Ok(response) + } + None => Err(anyhow!("Failed to get query")), + } +} diff --git a/subgraph/tests/subgraph/query/take_order_entity/take_order_entity.graphql b/subgraph/tests/subgraph/query/take_order_entity/take_order_entity.graphql new file mode 100644 index 0000000000..28d1269c35 --- /dev/null +++ b/subgraph/tests/subgraph/query/take_order_entity/take_order_entity.graphql @@ -0,0 +1,34 @@ +query TakeOrderEntity($id: String) { + takeOrderEntity(id: $id) { + id + sender { + id + } + order { + id + } + input + inputDisplay + output + outputDisplay + IORatio + inputIOIndex + outputIOIndex + inputToken { + id + } + outputToken { + id + } + transaction { + id + } + emitter { + id + } + timestamp + context { + id + } + } +} diff --git a/subgraph/tests/subgraph/query/token_vault/mod.rs b/subgraph/tests/subgraph/query/token_vault/mod.rs new file mode 100644 index 0000000000..93e29dab2b --- /dev/null +++ b/subgraph/tests/subgraph/query/token_vault/mod.rs @@ -0,0 +1,106 @@ +use self::token_vault::ResponseData; +use super::SG_URL; +use crate::utils::{hex_string_to_bytes, mn_mpz_to_u256}; +use anyhow::{anyhow, Result}; +use ethers::types::{Address, Bytes, U256}; +use graphql_client::{GraphQLQuery, Response}; +use rust_bigint::BigInt; +use serde::{Deserialize, Serialize}; + +// use bigdecimal::BigDecimal; +type BigDecimal = String; + +#[derive(GraphQLQuery)] +#[graphql( + schema_path = "tests/subgraph/query/schema.json", + query_path = "tests/subgraph/query/token_vault/token_vault.graphql", + response_derives = "Debug, Serialize, Deserialize" +)] +#[derive(Serialize, Deserialize, Debug)] +pub struct TokenVault; + +#[derive(Serialize, Deserialize, Debug)] +pub struct TokenVaultResponse { + pub id: String, + pub owner: Address, + pub vault: String, + pub vault_id: U256, + pub token: Address, + pub balance: U256, + pub balance_display: String, + pub orders: Vec, + pub take_orders: Vec, + pub orders_clears: Vec, +} + +impl TokenVaultResponse { + pub fn from(response: ResponseData) -> TokenVaultResponse { + let data = response.token_vault.unwrap(); + + let owner = Address::from_slice(&data.owner.id); + let token = Address::from_slice( + hex_string_to_bytes(&data.token.id) + .unwrap() + .to_vec() + .as_slice(), + ); + + let orders: Vec = data + .orders + .unwrap() + .iter() + .map(|data| hex_string_to_bytes(&data.id).unwrap()) + .collect(); + + let take_orders: Vec = data + .take_orders + .unwrap() + .iter() + .map(|data| data.id.clone()) + .collect(); + + let orders_clears: Vec = data + .order_clears + .unwrap() + .iter() + .map(|data| data.id.clone()) + .collect(); + + TokenVaultResponse { + id: data.id, + owner, + vault: data.vault.id, + vault_id: mn_mpz_to_u256(&data.vault_id), + token, + balance: mn_mpz_to_u256(&data.balance), + balance_display: data.balance_display, + orders, + take_orders, + orders_clears, + } + } +} + +pub async fn get_token_vault(id: &String) -> Result { + let variables = token_vault::Variables { + id: id.to_string().into(), + }; + + let request_body = TokenVault::build_query(variables); + let client = reqwest::Client::new(); + let res = client + .post((*SG_URL).clone()) + .json(&request_body) + .send() + .await?; + + let response_body: Response = res.json().await?; + + match response_body.data { + Some(data) => { + let response = TokenVaultResponse::from(data); + Ok(response) + } + None => Err(anyhow!("Failed to get query")), + } +} diff --git a/subgraph/tests/subgraph/query/token_vault/token_vault.graphql b/subgraph/tests/subgraph/query/token_vault/token_vault.graphql new file mode 100644 index 0000000000..9500485f3d --- /dev/null +++ b/subgraph/tests/subgraph/query/token_vault/token_vault.graphql @@ -0,0 +1,26 @@ +query TokenVault($id: String) { + tokenVault(id: $id) { + id + owner { + id + } + vault { + id + } + vaultId + token { + id + } + balance + balanceDisplay + orders { + id + } + orderClears { + id + } + takeOrders { + id + } + } +} diff --git a/subgraph/tests/subgraph/query/token_vault_take_order/mod.rs b/subgraph/tests/subgraph/query/token_vault_take_order/mod.rs new file mode 100644 index 0000000000..be38d5f133 --- /dev/null +++ b/subgraph/tests/subgraph/query/token_vault_take_order/mod.rs @@ -0,0 +1,61 @@ +use self::token_vault_take_order::ResponseData; +use super::SG_URL; +use anyhow::{anyhow, Result}; +use graphql_client::{GraphQLQuery, Response}; +use serde::{Deserialize, Serialize}; + +#[derive(GraphQLQuery)] +#[graphql( + schema_path = "tests/subgraph/query/schema.json", + query_path = "tests/subgraph/query/token_vault_take_order/token_vault_take_order.graphql", + response_derives = "Debug, Serialize, Deserialize" +)] +#[derive(Serialize, Deserialize, Debug)] +pub struct TokenVaultTakeOrder; + +#[derive(Serialize, Deserialize, Debug)] +pub struct TokenVaultTakeOrderResponse { + pub id: String, + pub was_output: bool, + pub was_input: bool, + pub take_order: String, + pub token_vault: String, +} + +impl TokenVaultTakeOrderResponse { + pub fn from(response: ResponseData) -> TokenVaultTakeOrderResponse { + let data = response.token_vault_take_order.unwrap(); + + TokenVaultTakeOrderResponse { + id: data.id, + was_output: data.was_output, + was_input: data.was_input, + take_order: data.take_order.id, + token_vault: data.token_vault.id, + } + } +} + +pub async fn get_token_vault_take_order(id: &String) -> Result { + let variables = token_vault_take_order::Variables { + id: id.to_string().into(), + }; + + let request_body = TokenVaultTakeOrder::build_query(variables); + let client = reqwest::Client::new(); + let res = client + .post((*SG_URL).clone()) + .json(&request_body) + .send() + .await?; + + let response_body: Response = res.json().await?; + + match response_body.data { + Some(data) => { + let response = TokenVaultTakeOrderResponse::from(data); + Ok(response) + } + None => Err(anyhow!("Failed to get query")), + } +} diff --git a/subgraph/tests/subgraph/query/token_vault_take_order/token_vault_take_order.graphql b/subgraph/tests/subgraph/query/token_vault_take_order/token_vault_take_order.graphql new file mode 100644 index 0000000000..125d481e4c --- /dev/null +++ b/subgraph/tests/subgraph/query/token_vault_take_order/token_vault_take_order.graphql @@ -0,0 +1,13 @@ +query TokenVaultTakeOrder($id: String) { + tokenVaultTakeOrder(id: $id) { + id + wasOutput + wasInput + takeOrder { + id + } + tokenVault { + id + } + } +} diff --git a/subgraph/tests/subgraph/query/vault/mod.rs b/subgraph/tests/subgraph/query/vault/mod.rs new file mode 100644 index 0000000000..610b6d8e18 --- /dev/null +++ b/subgraph/tests/subgraph/query/vault/mod.rs @@ -0,0 +1,87 @@ +use self::vault::ResponseData; +use super::SG_URL; +use crate::utils::mn_mpz_to_u256; +use anyhow::{anyhow, Result}; +use ethers::types::{Address, Bytes, U256}; +use graphql_client::{GraphQLQuery, Response}; +use rust_bigint::BigInt; +use serde::{Deserialize, Serialize}; + +#[derive(GraphQLQuery)] +#[graphql( + schema_path = "tests/subgraph/query/schema.json", + query_path = "tests/subgraph/query/vault/vault.graphql", + response_derives = "Debug, Serialize, Deserialize" +)] +#[derive(Serialize, Deserialize, Debug)] +pub struct Vault; + +#[derive(Serialize, Deserialize, Debug)] +pub struct VaultResponse { + pub id: String, + pub vault_id: U256, + pub owner: Address, + pub token_vaults: Vec, + pub deposits: Vec, + pub withdraws: Vec, +} + +impl VaultResponse { + pub fn from(response: ResponseData) -> VaultResponse { + let data = response.vault.unwrap(); + + let token_vaults: Vec = data + .token_vaults + .unwrap() + .iter() + .map(|data| data.id.clone()) + .collect(); + + let deposits: Vec = data + .deposits + .unwrap() + .iter() + .map(|data| data.id.clone()) + .collect(); + + let withdraws: Vec = data + .withdraws + .unwrap() + .iter() + .map(|data| data.id.clone()) + .collect(); + + VaultResponse { + id: data.id, + vault_id: mn_mpz_to_u256(&data.vault_id), + owner: Address::from_slice(&data.owner.id), + token_vaults, + deposits, + withdraws, + } + } +} + +pub async fn get_vault(id: &String) -> Result { + let variables = vault::Variables { + id: id.to_string().into(), + }; + + let request_body = Vault::build_query(variables); + let client = reqwest::Client::new(); + let res = client + .post((*SG_URL).clone()) + .json(&request_body) + .send() + .await?; + + let response_body: Response = res.json().await?; + + match response_body.data { + Some(data) => { + let response = VaultResponse::from(data); + Ok(response) + } + None => Err(anyhow!("Failed to get query")), + } +} diff --git a/subgraph/tests/subgraph/query/vault/vault.graphql b/subgraph/tests/subgraph/query/vault/vault.graphql new file mode 100644 index 0000000000..8190996772 --- /dev/null +++ b/subgraph/tests/subgraph/query/vault/vault.graphql @@ -0,0 +1,18 @@ +query Vault($id: String) { + vault(id: $id) { + id + vaultId + owner { + id + } + tokenVaults { + id + } + deposits { + id + } + withdraws { + id + } + } +} diff --git a/subgraph/tests/subgraph/query/vault_deposit/mod.rs b/subgraph/tests/subgraph/query/vault_deposit/mod.rs new file mode 100644 index 0000000000..2fee66e1ab --- /dev/null +++ b/subgraph/tests/subgraph/query/vault_deposit/mod.rs @@ -0,0 +1,85 @@ +use self::vault_deposit::ResponseData; +use super::SG_URL; +use crate::utils::{bytes_to_h256, hex_string_to_bytes, mn_mpz_to_u256}; +use anyhow::{anyhow, Result}; +use ethers::types::TxHash; +use ethers::types::{Address, Bytes, U256}; +use graphql_client::{GraphQLQuery, Response}; +use rust_bigint::BigInt; +use serde::{Deserialize, Serialize}; + +// use bigdecimal::BigDecimal; +type BigDecimal = String; + +#[derive(GraphQLQuery)] +#[graphql( + schema_path = "tests/subgraph/query/schema.json", + query_path = "tests/subgraph/query/vault_deposit/vault_deposit.graphql", + response_derives = "Debug, Serialize, Deserialize" +)] +#[derive(Serialize, Deserialize, Debug)] +pub struct VaultDeposit; + +#[derive(Serialize, Deserialize, Debug)] +pub struct VaultDepositResponse { + pub id: String, + pub sender: Address, + pub token: Address, + pub vault_id: U256, + pub vault: String, + pub amount: U256, + pub amount_display: String, + pub token_vault: String, + pub emitter: Address, + pub transaction: TxHash, + pub timestamp: U256, +} + +impl VaultDepositResponse { + pub fn from(response: ResponseData) -> VaultDepositResponse { + let data = response.vault_deposit.unwrap(); + + let sender = Address::from_slice(&data.sender.id); + let token = Address::from_slice(&hex_string_to_bytes(&data.token.id).unwrap()); + let emitter = Address::from_slice(&data.emitter.id); + let transaction = bytes_to_h256(&hex_string_to_bytes(&data.transaction.id).unwrap()); + + VaultDepositResponse { + id: data.id, + sender, + token, + vault_id: mn_mpz_to_u256(&data.vault_id), + vault: data.vault.id, + amount: mn_mpz_to_u256(&data.amount), + amount_display: data.amount_display, + token_vault: data.token_vault.id, + emitter, + transaction, + timestamp: mn_mpz_to_u256(&data.timestamp), + } + } +} + +pub async fn get_vault_deposit(id: &String) -> Result { + let variables = vault_deposit::Variables { + id: id.to_string().into(), + }; + + let request_body = VaultDeposit::build_query(variables); + let client = reqwest::Client::new(); + let res = client + .post((*SG_URL).clone()) + .json(&request_body) + .send() + .await?; + + let response_body: Response = res.json().await?; + + match response_body.data { + Some(data) => { + let response = VaultDepositResponse::from(data); + Ok(response) + } + None => Err(anyhow!("Failed to get query")), + } +} diff --git a/subgraph/tests/subgraph/query/vault_deposit/vault_deposit.graphql b/subgraph/tests/subgraph/query/vault_deposit/vault_deposit.graphql new file mode 100644 index 0000000000..31589674ea --- /dev/null +++ b/subgraph/tests/subgraph/query/vault_deposit/vault_deposit.graphql @@ -0,0 +1,27 @@ +query VaultDeposit($id: String) { + vaultDeposit(id: $id) { + id + sender { + id + } + token { + id + } + vaultId + vault { + id + } + amount + amountDisplay + tokenVault { + id + } + transaction { + id + } + emitter { + id + } + timestamp + } +} diff --git a/subgraph/tests/subgraph/query/vault_withdraw/mod.rs b/subgraph/tests/subgraph/query/vault_withdraw/mod.rs new file mode 100644 index 0000000000..9d706446fa --- /dev/null +++ b/subgraph/tests/subgraph/query/vault_withdraw/mod.rs @@ -0,0 +1,89 @@ +use self::vault_withdraw::ResponseData; +use super::SG_URL; +use crate::utils::{bytes_to_h256, hex_string_to_bytes, mn_mpz_to_u256}; +use anyhow::{anyhow, Result}; +use ethers::types::TxHash; +use ethers::types::{Address, Bytes, U256}; +use graphql_client::{GraphQLQuery, Response}; +use rust_bigint::BigInt; +use serde::{Deserialize, Serialize}; + +// use bigdecimal::BigDecimal; +type BigDecimal = String; + +#[derive(GraphQLQuery)] +#[graphql( + schema_path = "tests/subgraph/query/schema.json", + query_path = "tests/subgraph/query/vault_withdraw/vault_withdraw.graphql", + response_derives = "Debug, Serialize, Deserialize" +)] +#[derive(Serialize, Deserialize, Debug)] +pub struct VaultWithdraw; + +#[derive(Serialize, Deserialize, Debug)] +pub struct VaultWithdrawResponse { + pub id: String, + pub sender: Address, + pub token: Address, + pub vault_id: U256, + pub vault: String, + pub requested_amount: U256, + pub requested_amount_display: String, + pub amount: U256, + pub amount_display: String, + pub token_vault: String, + pub emitter: Address, + pub transaction: TxHash, + pub timestamp: U256, +} + +impl VaultWithdrawResponse { + pub fn from(response: ResponseData) -> VaultWithdrawResponse { + let data = response.vault_withdraw.unwrap(); + + let sender = Address::from_slice(&data.sender.id); + let token = Address::from_slice(&hex_string_to_bytes(&data.token.id).unwrap()); + let emitter = Address::from_slice(&data.emitter.id); + let transaction = bytes_to_h256(&hex_string_to_bytes(&data.transaction.id).unwrap()); + + VaultWithdrawResponse { + id: data.id, + sender, + token, + vault_id: mn_mpz_to_u256(&data.vault_id), + vault: data.vault.id, + requested_amount: mn_mpz_to_u256(&data.requested_amount), + requested_amount_display: data.requested_amount_display, + amount: mn_mpz_to_u256(&data.amount), + amount_display: data.amount_display, + token_vault: data.token_vault.id, + emitter, + transaction, + timestamp: mn_mpz_to_u256(&data.timestamp), + } + } +} + +pub async fn get_vault_withdraw(id: &String) -> Result { + let variables = vault_withdraw::Variables { + id: id.to_string().into(), + }; + + let request_body = VaultWithdraw::build_query(variables); + let client = reqwest::Client::new(); + let res = client + .post((*SG_URL).clone()) + .json(&request_body) + .send() + .await?; + + let response_body: Response = res.json().await?; + + match response_body.data { + Some(data) => { + let response = VaultWithdrawResponse::from(data); + Ok(response) + } + None => Err(anyhow!("Failed to get query")), + } +} diff --git a/subgraph/tests/subgraph/query/vault_withdraw/vault_withdraw.graphql b/subgraph/tests/subgraph/query/vault_withdraw/vault_withdraw.graphql new file mode 100644 index 0000000000..1c6a830b74 --- /dev/null +++ b/subgraph/tests/subgraph/query/vault_withdraw/vault_withdraw.graphql @@ -0,0 +1,29 @@ +query VaultWithdraw($id: String) { + vaultWithdraw(id: $id) { + id + sender { + id + } + token { + id + } + vaultId + vault { + id + } + requestedAmount + requestedAmountDisplay + amount + amountDisplay + tokenVault { + id + } + transaction { + id + } + emitter { + id + } + timestamp + } +} diff --git a/subgraph/tests/subgraph/wait/mod.rs b/subgraph/tests/subgraph/wait/mod.rs new file mode 100644 index 0000000000..713aa5caed --- /dev/null +++ b/subgraph/tests/subgraph/wait/mod.rs @@ -0,0 +1,117 @@ +use self::sync_status::Health; +use crate::utils::get_block_number; +use anyhow::{anyhow, format_err}; +use graphql_client::{GraphQLQuery, Response}; +use reqwest::Url; +use rust_bigint::BigInt; +use std::thread; +use std::{ + str::FromStr, + time::{Duration, SystemTime, UNIX_EPOCH}, +}; +use tokio::time::timeout; +// use web3::types::U256; +use ethers::types::U256; + +#[derive(GraphQLQuery)] +#[graphql( + schema_path = "tests/subgraph/wait/schema.json", + query_path = "tests/subgraph/wait/query.graphql", + response_derives = "Debug, Serialize, Deserialize" +)] + +pub struct SyncStatus; + +pub async fn wait() -> anyhow::Result { + let block_number = get_block_number().await?; + + // let _ = get_orderbook().await.expect("cannot get OB in waiting"); + + let url = Url::from_str(&"http://localhost:8030/graphql")?; + + let variables = sync_status::Variables {}; + + let request_body = SyncStatus::build_query(variables); + let client = reqwest::Client::new(); + let deadline = SystemTime::now().duration_since(UNIX_EPOCH)? + Duration::from_secs(5); + + loop { + let current_time = SystemTime::now().duration_since(UNIX_EPOCH)?; + let response = client.post(url.clone()).json(&request_body).send().await?; + + let response_body: Response = + response.json().await.expect("cannot awit json respon sg"); + + if let Some(data) = response_body.data.and_then(|data| Some(data)) { + let sync_data = data + .indexing_status_for_current_version + .expect("failed on: getting indexing_status_for_current_version"); + + if sync_data.synced { + let chain = &sync_data.chains[0]; + + let latest_block = &chain.latest_block.as_ref().unwrap().number; + let latest_block = U256::from_dec_str(&latest_block.to_str_radix(16)) + .unwrap() + .as_u64(); + + let health = &sync_data.health; + + if latest_block >= block_number.as_u64() { + return Ok(true); + } else if let Health::failed = health { + return Err(format_err!("Fatal error : {:?}", response_body.errors)); + } else if deadline < current_time { + return Err(anyhow!("wait function timeout")); + } + } else if deadline < current_time { + return Err(anyhow!("wait function timeout in sync")); + } + } else { + println!("Errors : {:?}", response_body.errors.unwrap()); + } + thread::sleep(Duration::from_secs(1)); + } +} + +/// Check if the subgraph node is live to be able to deploy subgraphs +pub async fn _check_subgraph_node() -> bool { + let client = reqwest::Client::new(); + + let url = "http://localhost:8030"; + + let mut retries = 0; + // Max retries allowed + let max_retries = 6; + // Retry interval + let retry_interval = Duration::from_secs(5); + + loop { + retries += 1; + // Send an HTTP GET request with a timeout + let response = timeout(Duration::from_secs(5), client.get(url).send()) + .await + .expect("No reqyest sent to the url"); + + match response { + Ok(res) if (res.status().is_success()) => { + return true; + } + _ => { + if retries >= max_retries { + if retries >= max_retries { + println!("Max retries reached. Exiting."); + // return Err(reqwest::Error::from("Max retries reached")); + return false; + } + } + println!( + "Retry attempt {} failed. Retrying in {} seconds...", + retries, + retry_interval.as_secs() + ); + tokio::time::sleep(retry_interval).await; + } + } + } +} diff --git a/subgraph/tests/subgraph/wait/query.graphql b/subgraph/tests/subgraph/wait/query.graphql new file mode 100644 index 0000000000..30b0189a20 --- /dev/null +++ b/subgraph/tests/subgraph/wait/query.graphql @@ -0,0 +1,20 @@ +query SyncStatus { + indexingStatusForCurrentVersion(subgraphName: "test/test") { + synced + health + fatalError { + message + handler + } + chains { + __typename + + chainHeadBlock { + number + } + latestBlock { + number + } + } + } +} diff --git a/subgraph/tests/subgraph/wait/schema.json b/subgraph/tests/subgraph/wait/schema.json new file mode 100644 index 0000000000..d5436408d4 --- /dev/null +++ b/subgraph/tests/subgraph/wait/schema.json @@ -0,0 +1,1729 @@ +{ + "data": { + "__schema": { + "directives": [], + "mutationType": null, + "queryType": { + "name": "Query" + }, + "subscriptionType": null, + "types": [ + { + "description": null, + "enumValues": null, + "fields": [ + { + "args": [], + "deprecationReason": null, + "description": "Version number in SemVer format\n", + "isDeprecated": false, + "name": "version", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + ], + "inputFields": null, + "interfaces": [], + "kind": "OBJECT", + "name": "ApiVersion", + "possibleTypes": null + }, + { + "description": null, + "enumValues": null, + "fields": null, + "inputFields": null, + "interfaces": null, + "kind": "SCALAR", + "name": "BigInt", + "possibleTypes": null + }, + { + "description": null, + "enumValues": null, + "fields": [ + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "hash", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "number", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + ], + "inputFields": null, + "interfaces": [], + "kind": "OBJECT", + "name": "Block", + "possibleTypes": null + }, + { + "description": null, + "enumValues": null, + "fields": null, + "inputFields": [ + { + "defaultValue": null, + "description": null, + "name": "hash", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "number", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + ], + "interfaces": null, + "kind": "INPUT_OBJECT", + "name": "BlockInput", + "possibleTypes": null + }, + { + "description": null, + "enumValues": null, + "fields": null, + "inputFields": null, + "interfaces": null, + "kind": "SCALAR", + "name": "Boolean", + "possibleTypes": null + }, + { + "description": null, + "enumValues": null, + "fields": null, + "inputFields": null, + "interfaces": null, + "kind": "SCALAR", + "name": "Bytes", + "possibleTypes": null + }, + { + "description": null, + "enumValues": null, + "fields": [ + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "idHash", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "block", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Block", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "contractAddress", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "returnValue", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + } + } + ], + "inputFields": null, + "interfaces": [], + "kind": "OBJECT", + "name": "CachedEthereumCall", + "possibleTypes": null + }, + { + "description": null, + "enumValues": null, + "fields": [ + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "network", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "chainHeadBlock", + "type": { + "kind": "OBJECT", + "name": "Block", + "ofType": null + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "earliestBlock", + "type": { + "kind": "OBJECT", + "name": "EarliestBlock", + "ofType": null + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "latestBlock", + "type": { + "kind": "OBJECT", + "name": "Block", + "ofType": null + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "lastHealthyBlock", + "type": { + "kind": "OBJECT", + "name": "Block", + "ofType": null + } + } + ], + "inputFields": null, + "interfaces": null, + "kind": "INTERFACE", + "name": "ChainIndexingStatus", + "possibleTypes": [ + { + "kind": "OBJECT", + "name": "EthereumIndexingStatus", + "ofType": null + } + ] + }, + { + "description": null, + "enumValues": null, + "fields": null, + "inputFields": null, + "interfaces": null, + "kind": "SCALAR", + "name": "Date", + "possibleTypes": null + }, + { + "description": null, + "enumValues": null, + "fields": [ + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "hash", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "number", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + ], + "inputFields": null, + "interfaces": [], + "kind": "OBJECT", + "name": "EarliestBlock", + "possibleTypes": null + }, + { + "description": null, + "enumValues": null, + "fields": [ + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "updates", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "EntityTypeUpdates", + "ofType": null + } + } + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "deletions", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "EntityTypeDeletions", + "ofType": null + } + } + } + } + } + ], + "inputFields": null, + "interfaces": [], + "kind": "OBJECT", + "name": "EntityChanges", + "possibleTypes": null + }, + { + "description": null, + "enumValues": null, + "fields": [ + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "type", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "entities", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + } + } + } + ], + "inputFields": null, + "interfaces": [], + "kind": "OBJECT", + "name": "EntityTypeDeletions", + "possibleTypes": null + }, + { + "description": null, + "enumValues": null, + "fields": [ + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "type", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "entities", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "JSONObject", + "ofType": null + } + } + } + } + } + ], + "inputFields": null, + "interfaces": [], + "kind": "OBJECT", + "name": "EntityTypeUpdates", + "possibleTypes": null + }, + { + "description": null, + "enumValues": null, + "fields": [ + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "network", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "chainHeadBlock", + "type": { + "kind": "OBJECT", + "name": "Block", + "ofType": null + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "earliestBlock", + "type": { + "kind": "OBJECT", + "name": "EarliestBlock", + "ofType": null + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "latestBlock", + "type": { + "kind": "OBJECT", + "name": "Block", + "ofType": null + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "lastHealthyBlock", + "type": { + "kind": "OBJECT", + "name": "Block", + "ofType": null + } + } + ], + "inputFields": null, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "ChainIndexingStatus", + "ofType": null + } + ], + "kind": "OBJECT", + "name": "EthereumIndexingStatus", + "possibleTypes": null + }, + { + "description": null, + "enumValues": [ + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "nonFatalErrors" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "grafting" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "fullTextSearch" + }, + { + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "ipfsOnEthereumContracts" + } + ], + "fields": null, + "inputFields": null, + "interfaces": null, + "kind": "ENUM", + "name": "Feature", + "possibleTypes": null + }, + { + "description": null, + "enumValues": [ + { + "deprecationReason": null, + "description": "Subgraph syncing normally", + "isDeprecated": false, + "name": "healthy" + }, + { + "deprecationReason": null, + "description": "Subgraph syncing but with errors", + "isDeprecated": false, + "name": "unhealthy" + }, + { + "deprecationReason": null, + "description": "Subgraph halted due to errors", + "isDeprecated": false, + "name": "failed" + } + ], + "fields": null, + "inputFields": null, + "interfaces": null, + "kind": "ENUM", + "name": "Health", + "possibleTypes": null + }, + { + "description": null, + "enumValues": null, + "fields": null, + "inputFields": null, + "interfaces": null, + "kind": "SCALAR", + "name": "ID", + "possibleTypes": null + }, + { + "description": null, + "enumValues": null, + "fields": null, + "inputFields": null, + "interfaces": null, + "kind": "SCALAR", + "name": "Int", + "possibleTypes": null + }, + { + "description": null, + "enumValues": null, + "fields": null, + "inputFields": null, + "interfaces": null, + "kind": "SCALAR", + "name": "JSONObject", + "possibleTypes": null + }, + { + "description": null, + "enumValues": null, + "fields": [ + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "hash", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "number", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + ], + "inputFields": null, + "interfaces": [], + "kind": "OBJECT", + "name": "PartialBlock", + "possibleTypes": null + }, + { + "description": null, + "enumValues": null, + "fields": null, + "inputFields": [ + { + "defaultValue": null, + "description": null, + "name": "deployment", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "block", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "BlockInput", + "ofType": null + } + } + } + ], + "interfaces": null, + "kind": "INPUT_OBJECT", + "name": "ProofOfIndexingRequest", + "possibleTypes": null + }, + { + "description": null, + "enumValues": null, + "fields": [ + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "deployment", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "block", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Block", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": "There may not be a proof of indexing available for the deployment and block", + "isDeprecated": false, + "name": "proofOfIndexing", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + } + ], + "inputFields": null, + "interfaces": [], + "kind": "OBJECT", + "name": "ProofOfIndexingResult", + "possibleTypes": null + }, + { + "description": null, + "enumValues": null, + "fields": null, + "inputFields": [ + { + "defaultValue": null, + "description": null, + "name": "deployment", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "blockNumber", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + } + ], + "interfaces": null, + "kind": "INPUT_OBJECT", + "name": "PublicProofOfIndexingRequest", + "possibleTypes": null + }, + { + "description": null, + "enumValues": null, + "fields": [ + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "deployment", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "block", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "PartialBlock", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "proofOfIndexing", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + } + } + ], + "inputFields": null, + "interfaces": [], + "kind": "OBJECT", + "name": "PublicProofOfIndexingResult", + "possibleTypes": null + }, + { + "description": null, + "enumValues": null, + "fields": [ + { + "args": [ + { + "defaultValue": null, + "description": null, + "name": "subgraphName", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "indexingStatusForCurrentVersion", + "type": { + "kind": "OBJECT", + "name": "SubgraphIndexingStatus", + "ofType": null + } + }, + { + "args": [ + { + "defaultValue": null, + "description": null, + "name": "subgraphName", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "indexingStatusForPendingVersion", + "type": { + "kind": "OBJECT", + "name": "SubgraphIndexingStatus", + "ofType": null + } + }, + { + "args": [ + { + "defaultValue": null, + "description": null, + "name": "subgraphName", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "indexingStatusesForSubgraphName", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "SubgraphIndexingStatus", + "ofType": null + } + } + } + } + }, + { + "args": [ + { + "defaultValue": null, + "description": null, + "name": "subgraphs", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "indexingStatuses", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "SubgraphIndexingStatus", + "ofType": null + } + } + } + } + }, + { + "args": [ + { + "defaultValue": null, + "description": null, + "name": "subgraph", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "blockNumber", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "blockHash", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "indexer", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "proofOfIndexing", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "args": [ + { + "defaultValue": null, + "description": null, + "name": "requests", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "PublicProofOfIndexingRequest", + "ofType": null + } + } + } + } + } + ], + "deprecationReason": null, + "description": "Proofs of indexing for several deployments and blocks that can be shared and\ncompared in public without revealing the _actual_ proof of indexing that every\nindexer has in their database\n", + "isDeprecated": false, + "name": "publicProofsOfIndexing", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "PublicProofOfIndexingResult", + "ofType": null + } + } + } + } + }, + { + "args": [ + { + "defaultValue": null, + "description": null, + "name": "subgraphId", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "subgraphFeatures", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "SubgraphFeatures", + "ofType": null + } + } + }, + { + "args": [ + { + "defaultValue": null, + "description": null, + "name": "subgraphId", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "blockNumber", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "entityChangesInBlock", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "EntityChanges", + "ofType": null + } + } + }, + { + "args": [ + { + "defaultValue": null, + "description": null, + "name": "network", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "blockHash", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "blockData", + "type": { + "kind": "SCALAR", + "name": "JSONObject", + "ofType": null + } + }, + { + "args": [ + { + "defaultValue": null, + "description": null, + "name": "network", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "blockNumber", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "blockHashFromNumber", + "type": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + }, + { + "args": [ + { + "defaultValue": null, + "description": null, + "name": "network", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + }, + { + "defaultValue": null, + "description": null, + "name": "blockHash", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Bytes", + "ofType": null + } + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "cachedEthereumCalls", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "CachedEthereumCall", + "ofType": null + } + } + } + }, + { + "args": [ + { + "defaultValue": null, + "description": null, + "name": "subgraphId", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + ], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "apiVersions", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "ApiVersion", + "ofType": null + } + } + } + } + } + ], + "inputFields": null, + "interfaces": [], + "kind": "OBJECT", + "name": "Query", + "possibleTypes": null + }, + { + "description": null, + "enumValues": null, + "fields": null, + "inputFields": null, + "interfaces": null, + "kind": "SCALAR", + "name": "String", + "possibleTypes": null + }, + { + "description": null, + "enumValues": null, + "fields": [ + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "message", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "block", + "type": { + "kind": "OBJECT", + "name": "Block", + "ofType": null + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "handler", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "deterministic", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + } + } + ], + "inputFields": null, + "interfaces": [], + "kind": "OBJECT", + "name": "SubgraphError", + "possibleTypes": null + }, + { + "description": null, + "enumValues": null, + "fields": [ + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "features", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "Feature", + "ofType": null + } + } + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "errors", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "network", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + ], + "inputFields": null, + "interfaces": [], + "kind": "OBJECT", + "name": "SubgraphFeatures", + "possibleTypes": null + }, + { + "description": null, + "enumValues": null, + "fields": [ + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "subgraph", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "synced", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "health", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "Health", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": "If the subgraph has failed, this is the error caused it", + "isDeprecated": false, + "name": "fatalError", + "type": { + "kind": "OBJECT", + "name": "SubgraphError", + "ofType": null + } + }, + { + "args": [], + "deprecationReason": null, + "description": "Sorted from first to last, limited to first 1000", + "isDeprecated": false, + "name": "nonFatalErrors", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "SubgraphError", + "ofType": null + } + } + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "chains", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INTERFACE", + "name": "ChainIndexingStatus", + "ofType": null + } + } + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "entityCount", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BigInt", + "ofType": null + } + } + }, + { + "args": [], + "deprecationReason": null, + "description": null, + "isDeprecated": false, + "name": "node", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + ], + "inputFields": null, + "interfaces": [], + "kind": "OBJECT", + "name": "SubgraphIndexingStatus", + "possibleTypes": null + } + ] + } + } +} \ No newline at end of file diff --git a/subgraph/tests/utils/cbor.rs b/subgraph/tests/utils/cbor.rs new file mode 100644 index 0000000000..4c520ea66d --- /dev/null +++ b/subgraph/tests/utils/cbor.rs @@ -0,0 +1,277 @@ +use super::{ascii_string_to_bytes, hash_keccak, MagicNumber}; +use anyhow::{anyhow, Result}; +use ethers::types::{Bytes, H256, U256}; +use minicbor::data::Type; +use minicbor::decode::{Decode, Decoder, Error as DecodeError}; +use minicbor::encode::{Encode, Encoder, Error as EncodeError, Write}; +use serde::Deserialize; + +#[derive(Debug, Deserialize)] +pub struct RainMapDoc { + pub payload: Bytes, + pub magic_number: U256, + pub content_type: Option, + pub content_encoding: Option, + pub content_language: Option, +} + +impl RainMapDoc { + /// Keys prensent on the RainDocument + /// + /// See: https://github.com/rainprotocol/specs/blob/main/metadata-v1.md#header-name-aliases-cbor-map-keys + fn len(&self) -> usize { + // Starting on two (2) since payload and magic_number are not optional. + let mut count = 2; + + if self.content_type.is_some() { + count += 1; + } + if self.content_encoding.is_some() { + count += 1; + } + if self.content_language.is_some() { + count += 1; + } + + count + } + + /// Length in bytes fo the rain document + fn len_bytes(&self) -> usize { + // The byte used by the known length/size map + let mut count = 1; + + // Getting the length of the payload + // Key(1 byte) + string type(1 byte) + arg bytes + data bytes + let payload_type_size = key_bytes_size(&self.payload); + count += 2 + payload_type_size + &self.payload.len(); + + // Tecnically, the magic number in RainDocument it should be a u64(8bytes) + // So, it should 1 byte from the map key, 1 byte for the u64 representaiton + // and 8 bytes for the number itself. So, in total is 10 bytes + // Later we could add support for receiving any number. + count += 10; // 10 bytes + + // Check for optional fiedls + if self.content_type.is_some() { + let string_bytes = ascii_string_to_bytes(self.content_type.clone().unwrap()); + let type_size = key_bytes_size(&string_bytes); + + // Key(1 byte) + string type(1 byte) + arg bytes + data bytes + count += 2 + type_size + string_bytes.len(); + } + if self.content_encoding.is_some() { + let string_bytes = ascii_string_to_bytes(self.content_encoding.clone().unwrap()); + let type_size = key_bytes_size(&string_bytes); + + // Key(1 byte) + string type(1 byte) + arg bytes + data bytes + count += 2 + type_size + string_bytes.len(); + } + if self.content_language.is_some() { + let string_bytes = ascii_string_to_bytes(self.content_language.clone().unwrap()); + let type_size = key_bytes_size(&string_bytes); + + // Key(1 byte) + string type(1 byte) + arg bytes + data bytes + count += 2 + type_size + string_bytes.len(); + } + + // return it + count + } + + /// Hash the rain map document using Keccak256 + pub fn hash(&self) -> H256 { + let doc_encoded = self.encode(); + + hash_keccak(&doc_encoded) + } + + /// CBOR encode the Rain Document using CBOR. + pub fn encode(&self) -> Vec { + let mut buffer: Vec = vec![0u8; self.len_bytes()]; + let mut encoder = Encoder::new(&mut buffer[..]); + + let _ = encoder.encode(self); + + return buffer; + } + + fn bad_meta_map() -> Result { + Err(DecodeError::message("bad rain meta map")) + } + fn no_meta_map() -> Result { + Err(DecodeError::message("not rain meta map")) + } +} + +impl<'b> Decode<'b, ()> for RainMapDoc { + fn decode(d: &mut Decoder<'b>, _: &mut ()) -> Result { + // Check what it's the current datatype. + let datatype = d.datatype()?; + + if datatype == Type::Map { + // Tecnically, it should not panic here since we already checked that + // it is a map (the length map) + let map_length = d.map()?.unwrap(); + + if map_length < 2 || map_length > 5 { + return Self::bad_meta_map(); + } + + let mut payload: Option = None; + let mut magic_number: Option = None; + let mut content_type: Option = None; + let mut content_encoding: Option = None; + let mut content_language: Option = None; + + for _ in 0..map_length { + let key = d.u8()?; + + match key { + 0 => payload = Some(d.bytes()?.to_vec().into()), + + 1 => magic_number = Some(d.u64()?.into()), + + 2 => content_type = Some(d.str()?.to_string()), + + 3 => content_encoding = Some(d.str()?.to_string()), + + 4 => content_language = Some(d.str()?.to_string()), + + // Does not allow other keys than the defnied by the metadata spec. + // See: https://github.com/rainprotocol/specs/blob/main/metadata-v1.md#header-name-aliases-cbor-map-keys + _ => return Self::bad_meta_map(), + } + } + + // This keys are mandatory + if payload.is_none() || magic_number.is_none() { + return Self::bad_meta_map(); + } + + Ok(RainMapDoc { + payload: payload.unwrap(), + magic_number: magic_number.unwrap(), + content_type, + content_encoding, + content_language, + }) + } else { + // Since it's starting to decode and it's not a map, return an error. + Self::no_meta_map() + } + } +} + +impl Encode for RainMapDoc { + fn encode( + &self, + enc: &mut Encoder, + _: &mut C, + ) -> Result<(), EncodeError> { + let doc_len = self.len() as u8; + + // Creating the map based on the rain document length + let _ = enc.map(doc_len.into()); + + // Key 0 + let _ = enc.u8(0); + let _ = enc.bytes(&self.payload); + + // Key 1 + // Low_u64 to not panic (max u64 as the spec + let _ = enc.u8(1); + let _ = enc.u64(self.magic_number.low_u64()); + + if self.content_type.is_some() { + let _ = enc.u8(2); + let _ = enc.str(&self.content_type.clone().unwrap()); + } + + if self.content_encoding.is_some() { + let _ = enc.u8(3); + let _ = enc.str(&self.content_encoding.clone().unwrap()); + } + + if self.content_language.is_some() { + let _ = enc.u8(4); + let _ = enc.str(&self.content_language.clone().unwrap()); + } + + Ok(()) + } +} + +/// Receive a Rain Meta document with his prefix bytes and try to decode it usin cbor. +pub fn decode_rain_meta(meta_data: Bytes) -> Result> { + let (doc_magic_number, cbor_data) = meta_data.split_at(8); + + if MagicNumber::rain_meta_document_v1() == doc_magic_number.to_vec() { + let mut decoder = Decoder::new(cbor_data); + + let mut all_docs: Vec = vec![]; + + while decoder.position() < decoder.input().len() { + let doc: std::result::Result = decoder.decode(); + + if doc.is_err() { + let errorsito = doc.unwrap_err(); + return Err(anyhow!("{}", errorsito.to_string())); + } + + all_docs.push(doc.unwrap()); + } + + return Ok(all_docs); + } + + Err(anyhow!("Unable to decode - missing rain doc prefix")) +} + +/// Receive a vec of RainMapDoc and try to encode it. If the length of the Vec is greater than one (1), then the output will be +/// an cbor sequence. +/// +pub fn encode_rain_docs(docs: Vec) -> Vec { + let mut main_buffer = MagicNumber::rain_meta_document_v1().to_vec(); + + for doc_index in 0..docs.len() { + let doc = docs.get(doc_index).unwrap(); + + let mut inner_buffer = doc.encode(); + + main_buffer.append(&mut inner_buffer); + } + + return main_buffer; +} + +/// Based on the length of the bytes, return if it will need extra bytes to +/// store the byte length based in CBOR. +/// +/// ## Example: +/// ``` +/// // If size is 0, the bytes length will be in the args itself. +/// let size_0 = key_bytes_size(<>); +/// +/// // If size is 1, it will need 1 byte more to store the length. +/// let size_1 = key_bytes_size(<>); +/// +/// // If size is 2, it will need 2 byte more to store the length. +/// let size_2 = key_bytes_size(<>); +/// +/// ``` +fn key_bytes_size(bytes: &Bytes) -> usize { + let size_bytes = bytes.len(); + + if size_bytes < 119 { + return 0; + } else { + let mut bytes = 1; + let mut value = 255; + while size_bytes > value { + bytes *= 2; + value = (value << 8) | 255; + } + bytes + } +} diff --git a/subgraph/tests/utils/deploy/erc20_mock/mod.rs b/subgraph/tests/utils/deploy/erc20_mock/mod.rs new file mode 100644 index 0000000000..ab976b538c --- /dev/null +++ b/subgraph/tests/utils/deploy/erc20_mock/mod.rs @@ -0,0 +1,50 @@ +use crate::{ + generated::ERC20Mock, + utils::{get_provider, get_wallet}, +}; +use anyhow::Result; +use ethers::{ + core::k256::ecdsa::SigningKey, + prelude::SignerMiddleware, + providers::{Http, Middleware, Provider}, + signers::{Signer, Wallet}, +}; +use std::sync::Arc; + +pub async fn deploy_erc20_mock( + wallet: Option>, +) -> Result, Wallet>>> { + let wallet = wallet.unwrap_or(get_wallet(0)); + let provider = get_provider().await.expect("cannot get provider"); + let chain_id = provider.get_chainid().await.expect("cannot get chain id"); + + let client = Arc::new(SignerMiddleware::new( + provider.clone(), + wallet.with_chain_id(chain_id.as_u64()), + )); + + let contract = ERC20Mock::deploy(client, ()) + .expect("cannot get the ERC20Mock") + .send() + .await + .expect("failed to send ERC20Mock"); + + Ok(contract) +} + +impl ERC20Mock, Wallet>> { + pub async fn connect( + &self, + wallet: &Wallet, + ) -> ERC20Mock, Wallet>> { + let provider = get_provider().await.expect("cannot get provider"); + let chain_id = provider.get_chainid().await.expect("cannot get chain id"); + + let client = Arc::new(SignerMiddleware::new( + provider.clone(), + wallet.clone().with_chain_id(chain_id.as_u64()), + )); + + ERC20Mock::new(self.address(), client) + } +} diff --git a/subgraph/tests/utils/deploy/meta_getter/mod.rs b/subgraph/tests/utils/deploy/meta_getter/mod.rs new file mode 100644 index 0000000000..1329f85f72 --- /dev/null +++ b/subgraph/tests/utils/deploy/meta_getter/mod.rs @@ -0,0 +1,87 @@ +use crate::{ + generated::AuthoringMetaGetter, + utils::{get_provider, get_wallet}, +}; +use anyhow::Result; +use ethers::prelude::SignerMiddleware; +use ethers::providers::{Http, Middleware}; +use ethers::types::{Bytes, H160}; +use ethers::{providers::Provider, signers::Signer}; +use once_cell::sync::Lazy; +use std::sync::Arc; +use tokio::sync::OnceCell; + +static META_GETTER: Lazy> = Lazy::new(|| OnceCell::new()); + +#[derive(thiserror::Error, Debug)] +pub enum MetaGetterError { + #[error("An error when deploying MetaGetter")] + DeployError(#[from] Box), +} + +async fn meta_getter_init(provider: &Provider) -> Result { + // let provider = get_provider().await.expect("cannot get provider"); + let meta_address = authoring_meta_getter_deploy(provider) + .await + .expect("cannot deploy in init"); + + Ok(meta_address) +} + +async fn meta_getter(provider: &Provider) -> Result { + // If an error occurs, wrap it using MetaGetterError::DeployError + match meta_getter_init(provider).await { + Ok(data) => Ok(data), + Err(err) => Err(MetaGetterError::DeployError(Box::new(err))), + } +} + +/// +pub async fn get_meta_address(provider: &Provider) -> Result<&'static H160, MetaGetterError> { + META_GETTER + .get_or_try_init(|| async { meta_getter(provider).await }) + .await + .map_err(|e| MetaGetterError::DeployError(Box::new(e))) +} + +pub async fn authoring_meta_getter_deploy(provider: &Provider) -> Result { + let wallet = get_wallet(0); + + let chain_id = provider.get_chainid().await.expect("cannot get chain id"); + + let deployer = Arc::new(SignerMiddleware::new( + provider.clone(), + wallet.with_chain_id(chain_id.as_u64()), + )); + + let contract = AuthoringMetaGetter::deploy(deployer, ()) + .expect("cannot create the factory AuthoringMetaGetter instance") + .send() + .await + .expect("cannot deploy AuthoringMetaGetter"); + + Ok(contract.address()) +} + +/// Get the AuthoringMeta bytes to deploy ExpressionDeployers. +/// This function only will work after the META_GETTER is being initialized by calling `get_meta_address()` +pub async fn get_authoring_meta() -> Bytes { + let provider = get_provider().await.expect("cannot get provider"); + let wallet = get_wallet(0); + + let meta_address: H160 = *META_GETTER + .get() + .expect("AuthoringMetaGetter has not being initialized"); + + let chain_id = provider.get_chainid().await.expect("cannot get chain id"); + + let deployer = Arc::new(SignerMiddleware::new( + provider.clone(), + wallet.with_chain_id(chain_id.as_u64()), + )); + + return AuthoringMetaGetter::new(meta_address, deployer) + .get_authoring_meta() + .await + .expect("not able to get meta bytes"); +} diff --git a/subgraph/tests/utils/deploy/mod.rs b/subgraph/tests/utils/deploy/mod.rs new file mode 100644 index 0000000000..f6f9a685ca --- /dev/null +++ b/subgraph/tests/utils/deploy/mod.rs @@ -0,0 +1,12 @@ +mod erc20_mock; +mod meta_getter; +pub mod orderbook; +mod registry1820; +mod touch_deployer; + +pub use erc20_mock::deploy_erc20_mock; + +pub use meta_getter::{authoring_meta_getter_deploy, get_meta_address}; +pub use orderbook::{deploy_orderbook, get_orderbook, read_orderbook_meta}; +pub use registry1820::deploy1820; +pub use touch_deployer::{touch_deployer, get_expression_deployer}; diff --git a/subgraph/tests/utils/deploy/orderbook/mod.rs b/subgraph/tests/utils/deploy/orderbook/mod.rs new file mode 100644 index 0000000000..199af29721 --- /dev/null +++ b/subgraph/tests/utils/deploy/orderbook/mod.rs @@ -0,0 +1,94 @@ +use super::get_expression_deployer; +// use super::touch_deployer::touch_deployer; +use crate::generated::{OrderBook, ORDERBOOK_ABI, ORDERBOOK_BYTECODE}; +use crate::utils::{get_provider, get_wallet}; +use anyhow::Result; +use ethers::{ + abi::Token, + contract::ContractFactory, + core::k256::ecdsa::SigningKey, + prelude::SignerMiddleware, + providers::{Http, Middleware, Provider}, + signers::{Signer, Wallet}, +}; +use std::{env, fs::File, io::Read, sync::Arc}; + +mod setup; +pub use setup::get_orderbook; + +pub async fn deploy_orderbook( + wallet: Option>, +) -> Result, Wallet>>> { + let wallet = wallet.unwrap_or(get_wallet(0)); + let provider = get_provider().await.expect("cannot get provider"); + let chain_id = provider.get_chainid().await.expect("cannot get chain id"); + + let client = Arc::new(SignerMiddleware::new( + provider.clone(), + wallet.clone().with_chain_id(chain_id.as_u64()), + )); + + // Deploying deployer + let expression_deployer = get_expression_deployer().await?; + // let expression_deployer = touch_deployer(Some(wallet.clone())) + // .await + // .expect("cannot touch deployer (ob)"); + + // Obtaining OB Meta bytes + let meta = read_orderbook_meta(); + + let args = vec![Token::Tuple(vec![ + Token::Address(expression_deployer.address()), + Token::Bytes(meta), + ])]; + + // Obtaining OB deploy transaction + let deploy_transaction = ContractFactory::new( + ORDERBOOK_ABI.clone(), + ORDERBOOK_BYTECODE.clone(), + client.clone(), + ); + + let contract = deploy_transaction + .deploy_tokens(args) + .expect("failed deploy tokens") + .send() + .await + .expect("failed at deployment"); + + let orderbook = OrderBook::new(contract.address(), client); + + return Ok(orderbook); +} + +impl OrderBook, Wallet>> { + pub async fn connect( + &self, + wallet: &Wallet, + ) -> OrderBook, Wallet>> { + let provider = get_provider().await.expect("cannot get provider"); + let chain_id = provider.get_chainid().await.expect("cannot get chain id"); + + let client = Arc::new(SignerMiddleware::new( + provider.clone(), + wallet.clone().with_chain_id(chain_id.as_u64()), + )); + + OrderBook::new(self.address(), client) + } +} + +pub fn read_orderbook_meta() -> Vec { + let meta_directory = env::current_dir() + .expect("cannot get the current directory") + .parent() + .expect("cannot get the parent from current dir") + .join("meta/OrderBook.rain.meta"); + + let mut file = File::open(meta_directory).expect("cannot open the file"); + let mut contents = Vec::new(); + file.read_to_end(&mut contents) + .expect("failed on read_to_end"); + + return contents; +} diff --git a/subgraph/tests/utils/deploy/orderbook/setup.rs b/subgraph/tests/utils/deploy/orderbook/setup.rs new file mode 100644 index 0000000000..93a1c73466 --- /dev/null +++ b/subgraph/tests/utils/deploy/orderbook/setup.rs @@ -0,0 +1,77 @@ +use crate::{ + generated::OrderBook, + subgraph::{deploy, Config}, + utils::get_block_number, +}; +use anyhow::Result; +use ethers::{ + core::k256::ecdsa::SigningKey, + prelude::SignerMiddleware, + providers::{Http, Provider}, + signers::Wallet, +}; +use once_cell::sync::Lazy; +use thiserror::Error; +use tokio::sync::OnceCell; + +use super::deploy_orderbook; + +static ORDERBOOK: Lazy, Wallet>>>> = + Lazy::new(|| OnceCell::new()); + +#[derive(Error, Debug)] +pub enum OrderBookSetupError { + #[error("An error occurred when deploying OB at initialization provider instance: {0}")] + InitDeployOBError(#[from] Box), + #[error("An error occurred when deploying the OB subgraph")] + SgDeployError(), +} + +// PROVIDER CODE INIT +/// Deploy (initialize) an orderbook contract to be used across the setup +pub async fn init_orderbook( +) -> Result, Wallet>>, OrderBookSetupError> { + // By providing `None` as wallet, the function will use the default - The wallet at index 0. + let orderbook = deploy_orderbook(None) + .await + .expect("cannot deploy OB at setup initialization"); + + let sg_config = Config { + contract_address: &format!("{:?}", orderbook.address()), + block_number: get_block_number() + .await + .expect("cannot get block number") + .as_u64(), + }; + + let is_sg_deployed = deploy(sg_config).expect("cannot deploy OB SG at setup initialization"); + + if is_sg_deployed { + Ok(orderbook) + } else { + Err(OrderBookSetupError::SgDeployError()) + } + // Ok(orderbook) +} + +async fn try_ob_deploy( +) -> Result, Wallet>>, OrderBookSetupError> { + match init_orderbook().await { + Ok(data) => Ok(data), + Err(err) => Err(OrderBookSetupError::InitDeployOBError(Box::new(err))), + } +} + +/// Obtain the OB deployed for the test +pub async fn get_orderbook( +) -> Result<&'static OrderBook, Wallet>>> { + let orderbook_lazy = ORDERBOOK + .get_or_try_init(|| async { try_ob_deploy().await }) + .await + .map_err(|err| OrderBookSetupError::InitDeployOBError(Box::new(err))); + + match orderbook_lazy { + Ok(contract) => Ok(contract), + Err(e) => return Err(anyhow::Error::msg(e.to_string())), + } +} diff --git a/subgraph/tests/utils/deploy/registry1820/mod.rs b/subgraph/tests/utils/deploy/registry1820/mod.rs new file mode 100644 index 0000000000..88bd9929c8 --- /dev/null +++ b/subgraph/tests/utils/deploy/registry1820/mod.rs @@ -0,0 +1,48 @@ +use anyhow::Result; +use ethers::{ + providers::{Http, Middleware, Provider}, + types::BlockId, + types::{Bytes, NameOrAddress, TransactionRequest, U256}, +}; + +pub async fn deploy1820(provider: &Provider) -> Result<()> { + let signature_address: NameOrAddress = "0xa990077c3205cbDf861e17Fa532eeB069cE9fF96".parse()?; + let registry_address = "0x1820a4B7618BdE71Dce8cdc73aAB6C95905faD24"; + let cost: U256 = U256::from("80000000000000000"); + + let tx_erc1820_registry_deployment = + "f90a388085174876e800830c35008080b909e5608060405234801561001057600080fd5b506109c5806100206000396000f3fe608060405234801561001057600080fd5b50600436106100a5576000357c010000000000000000000000000000000000000000000000000000000090048063a41e7d5111610078578063a41e7d51146101d4578063aabbb8ca1461020a578063b705676514610236578063f712f3e814610280576100a5565b806329965a1d146100aa5780633d584063146100e25780635df8122f1461012457806365ba36c114610152575b600080fd5b6100e0600480360360608110156100c057600080fd5b50600160a060020a038135811691602081013591604090910135166102b6565b005b610108600480360360208110156100f857600080fd5b5035600160a060020a0316610570565b60408051600160a060020a039092168252519081900360200190f35b6100e06004803603604081101561013a57600080fd5b50600160a060020a03813581169160200135166105bc565b6101c26004803603602081101561016857600080fd5b81019060208101813564010000000081111561018357600080fd5b82018360208201111561019557600080fd5b803590602001918460018302840111640100000000831117156101b757600080fd5b5090925090506106b3565b60408051918252519081900360200190f35b6100e0600480360360408110156101ea57600080fd5b508035600160a060020a03169060200135600160e060020a0319166106ee565b6101086004803603604081101561022057600080fd5b50600160a060020a038135169060200135610778565b61026c6004803603604081101561024c57600080fd5b508035600160a060020a03169060200135600160e060020a0319166107ef565b604080519115158252519081900360200190f35b61026c6004803603604081101561029657600080fd5b508035600160a060020a03169060200135600160e060020a0319166108aa565b6000600160a060020a038416156102cd57836102cf565b335b9050336102db82610570565b600160a060020a031614610339576040805160e560020a62461bcd02815260206004820152600f60248201527f4e6f7420746865206d616e616765720000000000000000000000000000000000604482015290519081900360640190fd5b6103428361092a565b15610397576040805160e560020a62461bcd02815260206004820152601a60248201527f4d757374206e6f7420626520616e204552433136352068617368000000000000604482015290519081900360640190fd5b600160a060020a038216158015906103b85750600160a060020a0382163314155b156104ff5760405160200180807f455243313832305f4143434550545f4d4147494300000000000000000000000081525060140190506040516020818303038152906040528051906020012082600160a060020a031663249cb3fa85846040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083815260200182600160a060020a0316600160a060020a031681526020019250505060206040518083038186803b15801561047e57600080fd5b505afa158015610492573d6000803e3d6000fd5b505050506040513d60208110156104a857600080fd5b5051146104ff576040805160e560020a62461bcd02815260206004820181905260248201527f446f6573206e6f7420696d706c656d656e742074686520696e74657266616365604482015290519081900360640190fd5b600160a060020a03818116600081815260208181526040808320888452909152808220805473ffffffffffffffffffffffffffffffffffffffff19169487169485179055518692917f93baa6efbd2244243bfee6ce4cfdd1d04fc4c0e9a786abd3a41313bd352db15391a450505050565b600160a060020a03818116600090815260016020526040812054909116151561059a5750806105b7565b50600160a060020a03808216600090815260016020526040902054165b919050565b336105c683610570565b600160a060020a031614610624576040805160e560020a62461bcd02815260206004820152600f60248201527f4e6f7420746865206d616e616765720000000000000000000000000000000000604482015290519081900360640190fd5b81600160a060020a031681600160a060020a0316146106435780610646565b60005b600160a060020a03838116600081815260016020526040808220805473ffffffffffffffffffffffffffffffffffffffff19169585169590951790945592519184169290917f605c2dbf762e5f7d60a546d42e7205dcb1b011ebc62a61736a57c9089d3a43509190a35050565b600082826040516020018083838082843780830192505050925050506040516020818303038152906040528051906020012090505b92915050565b6106f882826107ef565b610703576000610705565b815b600160a060020a03928316600081815260208181526040808320600160e060020a031996909616808452958252808320805473ffffffffffffffffffffffffffffffffffffffff19169590971694909417909555908152600284528181209281529190925220805460ff19166001179055565b600080600160a060020a038416156107905783610792565b335b905061079d8361092a565b156107c357826107ad82826108aa565b6107b85760006107ba565b815b925050506106e8565b600160a060020a0390811660009081526020818152604080832086845290915290205416905092915050565b6000808061081d857f01ffc9a70000000000000000000000000000000000000000000000000000000061094c565b909250905081158061082d575080155b1561083d576000925050506106e8565b61084f85600160e060020a031961094c565b909250905081158061086057508015155b15610870576000925050506106e8565b61087a858561094c565b909250905060018214801561088f5750806001145b1561089f576001925050506106e8565b506000949350505050565b600160a060020a0382166000908152600260209081526040808320600160e060020a03198516845290915281205460ff1615156108f2576108eb83836107ef565b90506106e8565b50600160a060020a03808316600081815260208181526040808320600160e060020a0319871684529091529020549091161492915050565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff161590565b6040517f01ffc9a7000000000000000000000000000000000000000000000000000000008082526004820183905260009182919060208160248189617530fa90519096909550935050505056fea165627a7a72305820377f4a2d4301ede9949f163f319021a6e9c687c292a5e2b2c4734c126b524e6c00291ba01820182018201820182018201820182018201820182018201820182018201820a01820182018201820182018201820182018201820182018201820182018201820"; + + let tx_erc1820_registry_deployment = hex::decode(tx_erc1820_registry_deployment)?; + let tx_erc1820_registry_deployment = Bytes::from(tx_erc1820_registry_deployment); + + let block = BlockId::from(provider.get_block_number().await?); + + let code = provider.get_code(registry_address, block.into()).await?; + + if code == Bytes::default() { + // let deployer = anvil.addresses()[0]; + let deployer = provider + .get_accounts() + .await + .expect("Not deployer [1820Registry]")[0]; + + let nonce = provider + .get_transaction_count(deployer, block.into()) + .await?; + + let tx: TransactionRequest = TransactionRequest { + to: Some(signature_address), + value: Some(cost), + from: Some(deployer), + nonce: Some(nonce), + ..Default::default() + }; + + provider.send_transaction(tx, None).await?; + provider + .send_raw_transaction(tx_erc1820_registry_deployment) + .await?; + } + Ok(()) +} diff --git a/subgraph/tests/utils/deploy/touch_deployer/mod.rs b/subgraph/tests/utils/deploy/touch_deployer/mod.rs new file mode 100644 index 0000000000..6b13076f2f --- /dev/null +++ b/subgraph/tests/utils/deploy/touch_deployer/mod.rs @@ -0,0 +1,112 @@ +use super::meta_getter::get_authoring_meta; +use crate::{ + generated::{ + Rainterpreter, RainterpreterExpressionDeployer, RainterpreterStore, + RAINTERPRETEREXPRESSIONDEPLOYER_ABI, RAINTERPRETEREXPRESSIONDEPLOYER_BYTECODE, + }, + utils::{get_provider, get_wallet}, +}; +use anyhow::Result; +use ethers::{ + abi::Token, + contract::ContractFactory, + core::k256::ecdsa::SigningKey, + prelude::SignerMiddleware, + providers::{Http, Middleware, Provider}, + signers::{Signer, Wallet}, + types::H160, +}; +use std::sync::Arc; + +mod setup; +pub use setup::get_expression_deployer; + +pub async fn touch_deployer( + wallet: Option>, +) -> Result, Wallet>>> { + let wallet = Some(wallet.unwrap_or(get_wallet(0))); + + let rainterpreter = rainterpreter_deploy(wallet.clone()).await?; + + let store = rainterpreter_store_deploy(wallet.clone()).await?; + + let expression_deployer = + rainterpreter_expression_deployer_deploy(rainterpreter.address(), store.address(), None) + .await + .expect("failed at expression_deployer_deploy"); + + Ok(expression_deployer) +} + +pub async fn rainterpreter_deploy( + wallet: Option>, +) -> Result, Wallet>>> { + let wallet = wallet.unwrap_or(get_wallet(0)); + let provider = get_provider().await.expect("cannot get provider"); + let chain_id = provider.get_chainid().await.expect("cannot get chain id"); + + let deployer = Arc::new(SignerMiddleware::new( + provider.clone(), + wallet.with_chain_id(chain_id.as_u64()), + )); + + let interpreter = Rainterpreter::deploy(deployer, ())?.send().await?; + + Ok(interpreter) +} + +pub async fn rainterpreter_store_deploy( + wallet: Option>, +) -> Result, Wallet>>> { + let wallet = wallet.unwrap_or(get_wallet(0)); + let provider = get_provider().await.expect("cannot get provider"); + let chain_id = provider.get_chainid().await.expect("cannot get chain id"); + + let deployer = Arc::new(SignerMiddleware::new( + provider.clone(), + wallet.with_chain_id(chain_id.as_u64()), + )); + + let store = RainterpreterStore::deploy(deployer, ())?.send().await?; + + Ok(store) +} + +pub async fn rainterpreter_expression_deployer_deploy( + rainiterpreter_address: H160, + store_address: H160, + wallet: Option>, +) -> Result, Wallet>>> { + let wallet = wallet.unwrap_or(get_wallet(0)); + let provider = get_provider().await.expect("cannot get provider"); + let chain_id = provider.get_chainid().await.expect("cannot get chain id"); + + let client = Arc::new(SignerMiddleware::new( + provider.clone(), + wallet.with_chain_id(chain_id.as_u64()), + )); + + let meta_bytes = get_authoring_meta().await.to_vec(); + let args = vec![Token::Tuple(vec![ + Token::Address(rainiterpreter_address), + Token::Address(store_address), + Token::Bytes(meta_bytes), + ])]; + + let deploy_transaction = ContractFactory::new( + RAINTERPRETEREXPRESSIONDEPLOYER_ABI.clone(), + RAINTERPRETEREXPRESSIONDEPLOYER_BYTECODE.clone(), + client.clone(), + ); + + let contract = deploy_transaction + .deploy_tokens(args) + .expect("failed deploy tokens") + .send() + .await + .expect("failed at deployment"); + + let deployer = RainterpreterExpressionDeployer::new(contract.address(), client); + + return Ok(deployer); +} diff --git a/subgraph/tests/utils/deploy/touch_deployer/setup.rs b/subgraph/tests/utils/deploy/touch_deployer/setup.rs new file mode 100644 index 0000000000..a63c07b367 --- /dev/null +++ b/subgraph/tests/utils/deploy/touch_deployer/setup.rs @@ -0,0 +1,64 @@ +use crate::generated::RainterpreterExpressionDeployer; +use anyhow::Result; +use ethers::{ + core::k256::ecdsa::SigningKey, + prelude::SignerMiddleware, + providers::{Http, Provider}, + signers::Wallet, +}; +use once_cell::sync::Lazy; +use thiserror::Error; +use tokio::sync::OnceCell; + +use super::touch_deployer; + +static EXPRESSION_DEPLOYER: Lazy< + OnceCell, Wallet>>>, +> = Lazy::new(|| OnceCell::new()); + +#[derive(Error, Debug)] +pub enum ExpressionDeployerSetupError { + #[error("An error occurred when deploying ExpressionDeployer at initialization provider instance: {0}")] + InitDeployDeployerError(#[from] Box), +} + +// PROVIDER CODE INIT +/// Deploy (initialize) an expression deployer contract to be used across the setup +pub async fn init_deployer() -> Result< + RainterpreterExpressionDeployer, Wallet>>, + ExpressionDeployerSetupError, +> { + // By providing `None` as wallet, the function will use the default - The wallet at index 0. + let contract = touch_deployer(None) + .await + .expect("cannot deploy expression deployer at setup initialization"); + + Ok(contract) +} + +async fn try_deployer_deploy() -> Result< + RainterpreterExpressionDeployer, Wallet>>, + ExpressionDeployerSetupError, +> { + match init_deployer().await { + Ok(data) => Ok(data), + Err(err) => Err(ExpressionDeployerSetupError::InitDeployDeployerError( + Box::new(err), + )), + } +} + +/// Obtain the RainterpreterExpressionDeployer deployed for the test +pub async fn get_expression_deployer() -> Result< + &'static RainterpreterExpressionDeployer, Wallet>>, +> { + let orderbook_lazy = EXPRESSION_DEPLOYER + .get_or_try_init(|| async { try_deployer_deploy().await }) + .await + .map_err(|err| ExpressionDeployerSetupError::InitDeployDeployerError(Box::new(err))); + + match orderbook_lazy { + Ok(contract) => Ok(contract), + Err(e) => return Err(anyhow::Error::msg(e.to_string())), + } +} diff --git a/subgraph/tests/utils/events.rs b/subgraph/tests/utils/events.rs new file mode 100644 index 0000000000..40c6310087 --- /dev/null +++ b/subgraph/tests/utils/events.rs @@ -0,0 +1,409 @@ +use crate::generated::{ + AddOrderFilter, AfterClearFilter, ClearFilter, ContextFilter, DepositFilter, OrderBook, + TakeOrderFilter, WithdrawFilter, +}; +use crate::generated::{ERC20Mock, TransferFilter}; +use crate::generated::{NewExpressionFilter, RainterpreterExpressionDeployer}; +use anyhow::{Error, Result}; +use ethers::{ + core::k256::ecdsa::SigningKey, + prelude::SignerMiddleware, + providers::{Http, PendingTransaction, Provider}, + signers::Wallet, + types::{Filter, Log, Topic, TransactionReceipt, TxHash}, +}; + +use super::get_provider; + +/// Try to extract the hash value from a Topic (ValueOrArray) type +// fn extract_topic_hash(topic: ValueOrArray>) -> Option { +fn extract_topic_hash(filter: Filter) -> Option { + let option_topic = filter.topics[0].clone(); + + if let Some(topic) = option_topic { + match topic { + Topic::Value(Some(data)) => return Some(data), + Topic::Array(topic) => { + if let Some(data) = topic.get(0) { + return data.clone(); + } else { + return None; + } + } + _ => return None, + } + } + + None +} + +/// Get the first log in a transaction that match the filter +async fn get_matched_log(receipt: TransactionReceipt, filter: Filter) -> Option { + let topic_hash = extract_topic_hash(filter); + + if let Some(hash) = topic_hash { + for log in receipt.logs { + if let Some(first_topic) = log.topics.get(0) { + if first_topic == &hash { + return Some(log.clone()); + } + } + } + } + + None +} + +/// Get all the logs in a transaction for a given matched filter. +async fn get_matched_logs(receipt: TransactionReceipt, filter: Filter) -> Option> { + let topic_hash = extract_topic_hash(filter); + + if let Some(hash) = topic_hash { + let mut logs: Vec = Vec::new(); + // + for log in receipt.logs { + if let Some(first_topic) = log.topics.get(0) { + if first_topic == &hash { + logs.push(log.clone()) + } + } + } + + if logs.len() > 0 { + return Some(logs); + } + } + + None +} + +async fn get_pending_tx(tx_hash: &TxHash) -> Result { + let provider = get_provider().await?; + + let pending_tx = PendingTransaction::new(*tx_hash, provider); + + match pending_tx.await? { + Some(receipt) => return Ok(receipt), + None => return Err(Error::msg("receipt not found")), + }; +} + +pub async fn get_add_order_event( + contract: &OrderBook, Wallet>>, + tx_hash: &TxHash, +) -> Result { + let receipt = get_pending_tx(tx_hash).await?; + let filter: Filter = contract.clone().add_order_filter().filter; + + let option_log = get_matched_log(receipt, filter).await; + + match option_log { + Some(log) => { + let event = + contract.decode_event::("AddOrder", log.topics, log.data)?; + + return Ok(event); + } + None => return Err(Error::msg("event not found")), + } +} + +pub async fn _get_add_order_events( + contract: &OrderBook, Wallet>>, + tx_hash: &TxHash, +) -> Result> { + let receipt = get_pending_tx(tx_hash).await?; + let filter: Filter = contract.clone().add_order_filter().filter; + + let option_logs = get_matched_logs(receipt, filter).await; + + match option_logs { + Some(logs) => { + let mut events: Vec = Vec::new(); + + for log in logs { + let event: AddOrderFilter = + contract.decode_event::("AddOrder", log.topics, log.data)?; + + events.push(event); + } + + return Ok(events); + } + None => return Err(Error::msg("events not found")), + } +} + +pub async fn _get_clear_event( + contract: &OrderBook, Wallet>>, + tx_hash: &TxHash, +) -> Result { + let receipt = get_pending_tx(tx_hash).await?; + let filter: Filter = contract.clear_filter().filter; + + let option_log = get_matched_log(receipt, filter).await; + + match option_log { + Some(log) => { + let event = contract.decode_event::("Clear", log.topics, log.data)?; + return Ok(event); + } + None => return Err(Error::msg("receipt not found")), + } +} + +pub async fn _get_after_clear_event( + contract: &OrderBook, Wallet>>, + tx_hash: &TxHash, +) -> Result { + let receipt = get_pending_tx(tx_hash).await?; + let filter: Filter = contract.after_clear_filter().filter; + + let option_log = get_matched_log(receipt, filter).await; + + match option_log { + Some(log) => { + let event = + contract.decode_event::("AfterClear", log.topics, log.data)?; + return Ok(event); + } + None => return Err(Error::msg("event not found")), + } +} + +pub async fn _get_transfer_event( + contract: ERC20Mock, Wallet>>, + tx_hash: &TxHash, +) -> Result { + let receipt = get_pending_tx(tx_hash).await?; + let filter = contract.transfer_filter().filter; + + let option_log = get_matched_log(receipt, filter).await; + + match option_log { + Some(log) => { + let event = + contract.decode_event::("Transfer", log.topics, log.data)?; + return Ok(event); + } + None => return Err(Error::msg("event not found")), + } +} + +pub async fn _get_new_expression_event( + contract: RainterpreterExpressionDeployer, Wallet>>, + tx_hash: &TxHash, +) -> Result { + let receipt = get_pending_tx(tx_hash).await?; + let filter: Filter = contract.clone().new_expression_filter().filter; + + let option_log = get_matched_log(receipt, filter).await; + + match option_log { + Some(log) => { + let event = contract.decode_event::( + "NewExpression", + log.topics, + log.data, + )?; + return Ok(event); + } + None => return Err(Error::msg("event not found")), + } +} + +pub async fn get_withdraw_events( + contract: &OrderBook, Wallet>>, + tx_hash: &TxHash, +) -> Result> { + let receipt = get_pending_tx(tx_hash).await?; + let filter: Filter = contract.clone().withdraw_filter().filter; + + let option_logs = get_matched_logs(receipt, filter).await; + + match option_logs { + Some(logs) => { + let mut events: Vec = Vec::new(); + + for log in logs { + let event: WithdrawFilter = + contract.decode_event::("Withdraw", log.topics, log.data)?; + + events.push(event); + } + + return Ok(events); + } + None => return Err(Error::msg("events not found")), + } +} + +pub async fn get_deposit_events( + contract: &OrderBook, Wallet>>, + tx_hash: &TxHash, +) -> Result> { + let receipt = get_pending_tx(tx_hash).await?; + let filter: Filter = contract.clone().deposit_filter().filter; + + let option_logs = get_matched_logs(receipt, filter).await; + + match option_logs { + Some(logs) => { + let mut events: Vec = Vec::new(); + + for log in logs { + let event: DepositFilter = + contract.decode_event::("Deposit", log.topics, log.data)?; + + events.push(event); + } + + return Ok(events); + } + None => return Err(Error::msg("events not found")), + } +} + +pub async fn get_clear_events( + contract: &OrderBook, Wallet>>, + tx_hash: &TxHash, +) -> Result> { + let receipt = get_pending_tx(tx_hash).await?; + let filter: Filter = contract.clone().clear_filter().filter; + + let option_logs = get_matched_logs(receipt, filter).await; + + match option_logs { + Some(logs) => { + let mut events: Vec = Vec::new(); + + for log in logs { + let event: ClearFilter = + contract.decode_event::("Clear", log.topics, log.data)?; + + events.push(event); + } + + return Ok(events); + } + None => return Err(Error::msg("events not found")), + } +} + +pub async fn get_after_clear_events( + contract: &OrderBook, Wallet>>, + tx_hash: &TxHash, +) -> Result> { + let receipt = get_pending_tx(tx_hash).await?; + let filter: Filter = contract.clone().after_clear_filter().filter; + + let option_logs = get_matched_logs(receipt, filter).await; + + match option_logs { + Some(logs) => { + let mut events: Vec = Vec::new(); + + for log in logs { + let event: AfterClearFilter = contract.decode_event::( + "AfterClear", + log.topics, + log.data, + )?; + + events.push(event); + } + + return Ok(events); + } + None => return Err(Error::msg("events not found")), + } +} + +pub async fn get_take_order_event( + contract: &OrderBook, Wallet>>, + tx_hash: &TxHash, +) -> Result { + let receipt = get_pending_tx(tx_hash).await?; + let filter: Filter = contract.take_order_filter().filter; + + let option_log = get_matched_log(receipt, filter).await; + + match option_log { + Some(log) => { + let event = + contract.decode_event::("TakeOrder", log.topics, log.data)?; + return Ok(event); + } + None => return Err(Error::msg("event not found")), + } +} + +pub async fn get_take_order_events( + contract: &OrderBook, Wallet>>, + tx_hash: &TxHash, +) -> Result> { + let receipt = get_pending_tx(tx_hash).await?; + let filter: Filter = contract.clone().take_order_filter().filter; + + let option_logs = get_matched_logs(receipt, filter).await; + + match option_logs { + Some(logs) => { + let mut events: Vec = Vec::new(); + + for log in logs { + let event: TakeOrderFilter = + contract.decode_event::("TakeOrder", log.topics, log.data)?; + + events.push(event); + } + + return Ok(events); + } + None => return Err(Error::msg("events not found")), + } +} + +pub async fn get_context_event( + contract: &OrderBook, Wallet>>, + tx_hash: &TxHash, +) -> Result { + let receipt = get_pending_tx(tx_hash).await?; + let filter: Filter = contract.context_filter().filter; + + let option_log = get_matched_log(receipt, filter).await; + + match option_log { + Some(log) => { + let event = contract.decode_event::("Context", log.topics, log.data)?; + return Ok(event); + } + None => return Err(Error::msg("event not found")), + } +} + +pub async fn _get_context_events( + contract: &OrderBook, Wallet>>, + tx_hash: &TxHash, +) -> Result> { + let receipt = get_pending_tx(tx_hash).await?; + let filter: Filter = contract.clone().context_filter().filter; + + let option_logs = get_matched_logs(receipt, filter).await; + + match option_logs { + Some(logs) => { + let mut events: Vec = Vec::new(); + + for log in logs { + let event: ContextFilter = + contract.decode_event::("Context", log.topics, log.data)?; + + events.push(event); + } + + return Ok(events); + } + None => return Err(Error::msg("events not found")), + } +} diff --git a/subgraph/tests/utils/gen_abigen/mod.rs b/subgraph/tests/utils/gen_abigen/mod.rs new file mode 100644 index 0000000000..075a7a5db7 --- /dev/null +++ b/subgraph/tests/utils/gen_abigen/mod.rs @@ -0,0 +1,62 @@ +use ethers::prelude::*; +use std::{env, fs}; + +pub fn _abigen_rust_generation() -> anyhow::Result<()> { + _process_abi_json_to_rust("tests/generated"); + + Ok(()) +} + +/// Use the given path (relative to the current directory) to search ABI JSON +/// files and generate a definition in Rust using abigen. +/// +/// The output path will be the same that the provided. +fn _process_abi_json_to_rust(dir_path: &str) { + let current_directory = env::current_dir().expect("cannot get current directory"); + let output_directory = current_directory.join(dir_path.to_owned() + "/abigen"); + + if !output_directory.is_dir() { + if let Err(err) = fs::create_dir_all(&output_directory) { + eprintln!("Error creating directory: {}", err); + } + } + + if let Ok(entries) = fs::read_dir(dir_path) { + for entry in entries { + if let Ok(entry) = entry { + let path = entry.path(); + if let Some(extension) = path.extension() { + // Only reading ABI JSON files + if extension == "json" { + // The source path of this ABI + let abi_source_path = path.to_str().unwrap(); + + // The ABI name based on the path without the extension + let abi_name = path + .file_stem() + .expect("cannot get filename") + .to_str() + .unwrap(); + + // The out path where the .rs file will be write + let out_file = current_directory + // .join(abi_source_path.clone().replace(".json", ".rs")); + .join(dir_path.to_owned() + "/abigen/" + abi_name + ".rs"); + + // This allow to remove old files + if out_file.exists() { + fs::remove_file(&out_file).expect("cannot delete file"); + } + + Abigen::new(abi_name, abi_source_path) + .expect("failed on new call") + .generate() + .expect("failed on generate") + .write_to_file(out_file) + .expect("failed on write"); + } + } + } + } + } +} diff --git a/subgraph/tests/utils/json_structs.rs b/subgraph/tests/utils/json_structs.rs new file mode 100644 index 0000000000..8421aabd56 --- /dev/null +++ b/subgraph/tests/utils/json_structs.rs @@ -0,0 +1,239 @@ +use ethers::types::{Address, Bytes, U256}; +use serde::{Deserialize, Serialize, Serializer}; +use serde_json::{Result, Value}; + +use crate::generated::{Evaluable, Io, NewExpressionFilter, Order}; +use crate::utils::hex_string_to_bytes; + +#[derive(Debug, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct NewExpressionJson { + bytecode: Bytes, + constants: Vec, + min_outputs: Vec, +} + +impl NewExpressionJson { + pub fn from_event(event_data: NewExpressionFilter) -> NewExpressionJson { + NewExpressionJson { + bytecode: event_data.bytecode.clone(), + constants: event_data.constants.clone(), + min_outputs: event_data.min_outputs.clone(), + } + } + + pub fn _from_json_string(json_data: &String) -> anyhow::Result { + let parsed_json: Result = serde_json::from_str(json_data); + + match parsed_json { + Ok(data) => { + let obj = data.as_object().unwrap(); + + let bytecode = + hex_string_to_bytes(obj.get("bytecode").unwrap().as_str().unwrap()).unwrap(); + + let constants = + _array_to_vec_256(obj.get("constants").unwrap().as_array().unwrap()); + + let min_outputs = + _array_to_vec_256(obj.get("minOutputs").unwrap().as_array().unwrap()); + + Ok(NewExpressionJson { + bytecode, + constants, + min_outputs, + }) + } + Err(err) => Err(anyhow::anyhow!("parse failed: {}", err)), + } + } + + pub fn to_json_string(&self) -> String { + serde_json::to_string(&self).expect("Failed to serialize struct to JSON") + } +} + +#[derive(Debug, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct OrderJson { + pub owner: Address, + pub handle_io: bool, + pub evaluable: EvaluableJson, + pub valid_inputs: Vec, + pub valid_outputs: Vec, +} + +impl OrderJson { + pub fn from_order(data: Order) -> OrderJson { + let evaluable = EvaluableJson::from(data.evaluable); + let valid_inputs = data + .valid_inputs + .iter() + .map(|data| IoJson::from(data.clone())) + .collect(); + + let valid_outputs = data + .valid_outputs + .iter() + .map(|data| IoJson::from(data.clone())) + .collect(); + + OrderJson { + owner: data.owner, + handle_io: data.handle_io, + evaluable, + valid_inputs, + valid_outputs, + } + } + + pub fn _from_json_string(json_data: &String) -> anyhow::Result { + let parsed_json: Result = serde_json::from_str(json_data); + + match parsed_json { + Ok(data) => { + let obj = data.as_object().unwrap(); + + let owner = Address::from_slice( + &hex_string_to_bytes(obj.get("owner").unwrap().as_str().unwrap()).unwrap(), + ); + + let handle_io = obj.get("handleIo").unwrap().as_bool().unwrap(); + + let evaluable = EvaluableJson::_from_value(obj.get("evaluable").unwrap()); + + let valid_inputs: Vec = obj + .get("validInputs") + .unwrap() + .as_array() + .unwrap() + .iter() + .map(|data| IoJson::_from_value(data)) + .collect(); + + let valid_outputs: Vec = obj + .get("validOutputs") + .unwrap() + .as_array() + .unwrap() + .iter() + .map(|data| IoJson::_from_value(data)) + .collect(); + + Ok(OrderJson { + owner, + handle_io, + evaluable, + valid_inputs, + valid_outputs, + }) + } + Err(err) => Err(anyhow::anyhow!("parse failed: {}", err)), + } + } + + pub fn to_json_string(&self) -> String { + serde_json::to_string(&self).expect("Failed to serialize struct to JSON") + } +} +#[derive(Debug, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct EvaluableJson { + interpreter: Address, + store: Address, + expression: Address, +} + +impl EvaluableJson { + fn from(data: Evaluable) -> EvaluableJson { + EvaluableJson { + interpreter: data.interpreter, + store: data.store, + expression: data.expression, + } + } + + fn _from_value(value: &Value) -> EvaluableJson { + let obj = value.as_object().unwrap(); + + let interpreter = Address::from_slice( + &hex_string_to_bytes(obj.get("interpreter").unwrap().as_str().unwrap()).unwrap(), + ); + + let store = Address::from_slice( + &hex_string_to_bytes(obj.get("store").unwrap().as_str().unwrap()).unwrap(), + ); + + let expression = Address::from_slice( + &hex_string_to_bytes(obj.get("expression").unwrap().as_str().unwrap()).unwrap(), + ); + + EvaluableJson { + interpreter, + store, + expression, + } + } +} + +#[derive(Debug, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct IoJson { + token: Address, + decimals: QuotedU8, + vault_id: U256, +} + +impl IoJson { + fn from(data: Io) -> IoJson { + IoJson { + token: data.token, + decimals: QuotedU8(data.decimals), + vault_id: data.vault_id, + } + } + + fn _from_value(value: &Value) -> IoJson { + let obj = value.as_object().unwrap(); + + let token = Address::from_slice( + &hex_string_to_bytes(obj.get("token").unwrap().as_str().unwrap()).unwrap(), + ); + + let decimals: u8 = obj.get("decimals").unwrap().as_u64().unwrap() as u8; + + let vault_id = + U256::from_str_radix(obj.get("vaultId").unwrap().as_str().unwrap(), 16).unwrap(); + + IoJson { + token, + decimals: QuotedU8(decimals), + vault_id, + } + } +} + +#[derive(Debug, Clone, Deserialize)] +struct QuotedU8(u8); + +impl Serialize for QuotedU8 { + fn serialize(&self, serializer: S) -> anyhow::Result + where + S: Serializer, + { + // Format the u8 as a string enclosed in double quotes + let quoted_value = format!("{}", self.0); + + // Serialize the quoted value as a string + serializer.serialize_str("ed_value) + } +} + +fn _array_to_vec_256(values: &Vec) -> Vec { + let resp: Vec = values + .iter() + .map(|data| U256::from_str_radix(data.as_str().unwrap(), 16).unwrap()) + .collect(); + + return resp; +} diff --git a/subgraph/tests/utils/mod.rs b/subgraph/tests/utils/mod.rs new file mode 100644 index 0000000000..01bcc9383c --- /dev/null +++ b/subgraph/tests/utils/mod.rs @@ -0,0 +1,234 @@ +pub mod cbor; +pub mod deploy; +pub mod events; +pub mod gen_abigen; +pub mod json_structs; +pub mod numbers; +pub mod setup; +pub mod transactions; + +use ethers::{ + core::{k256::ecdsa::SigningKey, rand::random, utils::hex}, + providers::Middleware, + signers::{coins_bip39::English, MnemonicBuilder, Wallet}, + types::{Address, Bytes, H256, U256, U64}, +}; +use hex::FromHex; +use rust_bigint::BigInt; +pub use setup::get_provider; +use std::{ + env, + io::{BufRead, BufReader}, + process::{Command, Stdio}, + thread, +}; +use tiny_keccak::Hasher; +use tiny_keccak::Keccak; + +pub async fn get_block_number() -> anyhow::Result { + let provider = get_provider().await?; + Ok(provider.get_block_number().await?) +} + +/// Get the wallet test at the given index +pub fn get_wallet(index: u32) -> Wallet { + let mnemonic = std::fs::read_to_string("./test-mnemonic").expect("Test mnemonic not found"); + + let wallet_builder = MnemonicBuilder::::default().phrase(mnemonic.as_str()); + + return wallet_builder + .clone() + .index(index) + .expect(format!("MnemonicBuilder cannot get index {}", index).as_str()) + .build() + .expect(format!("MnemonicBuilder cannot build wallet at the index {}", index).as_str()); +} + +// This function will work on the working directory +pub fn _run_cmd(main_cmd: &str, args: &[&str]) -> bool { + // Get the current working directory + let current_dir = env::current_dir().expect("Failed to get current directory"); + + // Create a new Command to run + let mut cmd = Command::new(main_cmd); + + // Add the arguments + cmd.args(args); + + // Set the directory from where the command wil run + cmd.current_dir(¤t_dir); + + // Tell what to do when try to print the process + cmd.stdout(Stdio::piped()); + cmd.stderr(Stdio::piped()); + + let full_cmd = format!("{} {}", main_cmd, args.join(" ")); + + println!("Running: {}", full_cmd); + + // Execute the command + let mut child = cmd + .spawn() + .expect(format!("Failed to run: {}", full_cmd).as_str()); + + // Read and print stdout in a separate thread + let stdout_child = child.stdout.take().expect("Failed to get stdout"); + let stdout_reader = BufReader::new(stdout_child); + + let stdout_handle = thread::spawn({ + move || { + for line in stdout_reader.lines() { + if let Ok(line) = line { + println!("{}", line); + } + } + } + }); + + // Read and print stderr in the main thread + let stderr_reader = BufReader::new(child.stderr.take().expect("Failed to get stderr")); + for line in stderr_reader.lines() { + if let Ok(line) = line { + eprintln!("{}", line); + } + } + + // Wait for the command to finish and get the exit status + let status = child + .wait() + .expect(format!("Failed to wait: {}", full_cmd).as_str()); + + // Wait for the stdout thread to finish + stdout_handle.join().expect("Failed to join stdout thread"); + + if status.success() { + println!("Success: {}", full_cmd); + return true; + } else { + eprintln!( + "Fail: {} {}", + full_cmd, + format!("failed with exit code: {}", status.code().unwrap_or(-1)) + ); + + return false; + } +} + +/// Convert an string to bytes using their ASCII corresponding values. +pub fn ascii_string_to_bytes(value: String) -> Bytes { + Bytes::from(value.as_bytes().to_vec()) +} + +/// Convert an hexadecimal string to bytes +pub fn hex_string_to_bytes(value: &str) -> anyhow::Result { + Ok(Bytes::from_hex(value)?) +} + +pub fn _remove_trailing_zeros(arr: &[u8]) -> Vec { + // Find the position of the last non-zero element + let length = arr.iter().rposition(|&x| x != 0).map(|pos| pos + 1); + + match length { + Some(len) => { + // Create a new Vec with the non-zero data + arr[0..len].to_vec() + } + // All elements are zeros, so return just one zero + None => vec![0], + } +} + +/// Parse a given `BigInt`/`Mpz(rust_bigint::BigInt)` comming from Subgraph responses +/// to a value to an `ethers::U256`. +/// ### NOTE: +/// For some reason, the BigInt comming from Subgraph responses consider the BigInt +/// as an hexadecimal value and parse it (internally) to a decimal. In this function +/// the parse logic is made considering that, so parse it from "hex" to "decimal". +pub fn mn_mpz_to_u256(value: &BigInt) -> U256 { + U256::from_dec_str(&value.to_str_radix(16)).unwrap() +} + +/// Take a Bytes value and parse it to an H256. Take in count that if the Bytes value +/// is bigger than 32 Bytes, will be truncated. +pub fn bytes_to_h256(value: &Bytes) -> H256 { + H256::from_slice(value.to_vec().as_slice()) +} + +/// Take a H256 value and parse it to a Bytes +pub fn h256_to_bytes(value: &H256) -> Bytes { + Bytes::from(value.as_bytes().to_vec()) +} + +/// Take a U256 value and parse it to a Bytes +pub fn u256_to_bytes(value: &U256) -> Bytes { + let mut bb: [u8; 32] = [0; 32]; + value.to_big_endian(&mut bb); + + ethers::types::Bytes::from(bb) +} + +/// Take a U256 value and parse it to an Address +pub fn u256_to_address(value: &U256) -> Address { + let bytes = u256_to_bytes(value); + + Address::from_slice(&bytes[12..]) +} + +/// Get a mock encoded rain document with hardcoded data. +/// Does not contain any well info. Only rain doc well formed. +pub fn mock_rain_doc() -> Bytes { + Bytes::from_hex("0xff0a89c674ee7874a30052746869735f69735f616e5f6578616d706c65011bffe5ffb4a3ff2cde02706170706c69636174696f6e2f6a736f6e").unwrap() +} + +pub fn generate_random_u256() -> U256 { + // This trully is a random u64, but it's work for testing + return U256::from(random::()); +} + +pub fn hash_keccak(data: &Vec) -> H256 { + let mut keccak = Keccak::v256(); + keccak.update(&data); + + let mut output = [0u8; 32]; + keccak.finalize(&mut output); + + return H256::from(output); +} + +/// Rain Magic Numbers +pub struct MagicNumber; + +impl MagicNumber { + pub fn rain_meta_document_v1() -> Bytes { + Bytes::from_hex("0xff0a89c674ee7874").unwrap() + } + + pub fn _solidity_abi_v2() -> Bytes { + Bytes::from_hex("0xffe5ffb4a3ff2cde").unwrap() + } + + pub fn _op_meta_v1() -> Bytes { + Bytes::from_hex("0xffe5282f43e495b4").unwrap() + } + + pub fn _interpreter_caller_meta_v1() -> Bytes { + Bytes::from_hex("0xffc21bbf86cc199b").unwrap() + } + + pub fn _authoring_meta_v1() -> Bytes { + Bytes::from_hex("0xffe9e3a02ca8e235").unwrap() + } + + pub fn _rainlang_v1() -> Bytes { + Bytes::from_hex("0xff1c198cec3b48a7").unwrap() + } + + pub fn _dotrain_v1() -> Bytes { + Bytes::from_hex("0xffdac2f2f37be894").unwrap() + } + + pub fn _expression_deployer_v2() -> Bytes { + Bytes::from_hex("0xffdb988a8cd04d32").unwrap() + } +} diff --git a/subgraph/tests/utils/numbers.rs b/subgraph/tests/utils/numbers.rs new file mode 100644 index 0000000000..120a264777 --- /dev/null +++ b/subgraph/tests/utils/numbers.rs @@ -0,0 +1,61 @@ +use bigdecimal::Zero; +use ethers::types::U256; +use std::{ops::Mul, str::FromStr}; +extern crate bigdecimal; +use bigdecimal::BigDecimal; + +pub fn get_amount_tokens(amount: u64, decimals: u8) -> U256 { + let result: U256 = U256::from(amount).mul(U256::from(10).pow(U256::from(decimals))); + + return result; +} + +pub fn display_number(number: U256, decimals: u8) -> String { + if number.is_zero() || decimals == 0 { + return number.to_string(); + } + + let mut result = number.to_string(); + let len = result.len() as u32; + let decimals_u32 = decimals as u32; + + if len > decimals_u32 { + let integer_part = &result[0..(len - decimals_u32) as usize]; + let mut decimal_part = &result[(len - decimals_u32) as usize..]; + + // Remove trailing zeros from the decimal part + decimal_part = decimal_part.trim_end_matches('0'); + + if !decimal_part.is_empty() { + result = format!("{}.{}", integer_part, decimal_part); + } else { + result = integer_part.to_string(); + } + } else { + result = format!("0.{}", "0".repeat((decimals_u32 - len) as usize)); + } + + result +} + +/// TODO: WOrk in return a Result> +pub fn divide_decimal_strings(value_1: &str, value_2: &str) -> Option { + // Parse the input strings into BigDecimal values + let decimal_1 = BigDecimal::from_str(value_1).expect("Invalid decimal value for value_1"); + let decimal_2 = BigDecimal::from_str(value_2).expect("Invalid decimal value for value_2"); + + // Check for division by zero + if decimal_2.is_zero() { + return None; + } + + // Perform the division + let result = decimal_1 / decimal_2; + + let formatted_result = format!("{:.2}", result); + + // Format the result as a string with a specific precision + let formatted_value = formatted_result.trim_end_matches('0').trim_end_matches('.'); + + Some(formatted_value.to_string()) +} diff --git a/subgraph/tests/utils/setup/mod.rs b/subgraph/tests/utils/setup/mod.rs new file mode 100644 index 0000000000..ba9c66ada0 --- /dev/null +++ b/subgraph/tests/utils/setup/mod.rs @@ -0,0 +1,50 @@ +use crate::utils::deploy::{deploy1820, get_meta_address}; +use anyhow::Result; +use ethers::providers::{Http, Provider}; +use once_cell::sync::Lazy; +use thiserror::Error; +use tokio::sync::OnceCell; + +static PROVIDER: Lazy>> = Lazy::new(|| OnceCell::new()); + +#[derive(Error, Debug)] +pub enum SetupError { + #[error("An error occurred when creating provider instance: {0}")] + ProviderInstanceError(#[from] Box), +} + +// PROVIDER CODE INIT +pub async fn init_provider() -> Result, SetupError> { + let provider_url = "http://localhost:8545"; + + let provider: Provider = + Provider::::try_from(provider_url).expect("could not instantiate Provider"); + + // Always checking if the Registry1820 is deployed. Deploy it otherwise + let _ = deploy1820(&provider).await; + + get_meta_address(&provider) + .await + .expect("cannot deploy AuthoringMetaGetter at initialization"); + + Ok(provider) +} + +async fn provider_node() -> Result, SetupError> { + match init_provider().await { + Ok(data) => Ok(data), + Err(err) => Err(SetupError::ProviderInstanceError(Box::new(err))), + } +} + +pub async fn get_provider() -> Result<&'static Provider> { + let provider_lazy = PROVIDER + .get_or_try_init(|| async { provider_node().await }) + .await + .map_err(|err| SetupError::ProviderInstanceError(Box::new(err))); + + match provider_lazy { + Ok(provider) => Ok(provider), + Err(e) => return Err(anyhow::Error::msg(e.to_string())), + } +} diff --git a/subgraph/tests/utils/transactions/mod.rs b/subgraph/tests/utils/transactions/mod.rs new file mode 100644 index 0000000000..85830fdf62 --- /dev/null +++ b/subgraph/tests/utils/transactions/mod.rs @@ -0,0 +1,299 @@ +use std::sync::Arc; + +use crate::{ + generated::{ + AddOrderCall, ClearCall, ClearConfig, DepositCall, ERC20Mock, EvaluableConfigV2, Io, + OrderConfigV2, RainterpreterExpressionDeployer, SignedContextV1, WithdrawCall, + }, + utils::{generate_random_u256, mock_rain_doc}, +}; +use ethers::{ + core::{abi::AbiEncode, k256::ecdsa::SigningKey}, + prelude::SignerMiddleware, + providers::{Http, Middleware, PendingTransaction, Provider}, + signers::{Signer, Wallet}, + types::{Address, Block, Bytes, TxHash, H256, U256}, +}; + +use super::{get_provider, get_wallet, hash_keccak}; + +/// A Deposit configuration struct to encode deposit to be used with multicall +pub struct TestDepositConfig { + pub token: Address, + pub vault_id: U256, + pub amount: U256, +} + +/// A Withdraw configuration struct to encode withdraw to be used with multicall +pub struct TestWithdrawConfig { + pub token: Address, + pub vault_id: U256, + pub target_amount: U256, +} + +/// Hold all the index from Context inside Orderbook and emitted by Context event. +/// +/// If the length of the Context array is above this enum, they are signed context. +pub enum ContextIndex { + BaseContext = 0, + CallingContextColumn = 1, + CalculationsColumn = 2, + VaultInputsColumn = 3, + VaultOutputsColumn = 4, +} + +impl ContextIndex { + pub fn from_usize(value: usize) -> Option { + if Self::BaseContext as usize == value { + return Some(Self::BaseContext); + } + + if Self::CallingContextColumn as usize == value { + return Some(Self::CallingContextColumn); + } + + if Self::CalculationsColumn as usize == value { + return Some(Self::CalculationsColumn); + } + + if Self::VaultInputsColumn as usize == value { + return Some(Self::VaultInputsColumn); + } + + if Self::VaultOutputsColumn as usize == value { + return Some(Self::VaultOutputsColumn); + } + + None + } +} + +pub async fn get_block_data(tx_hash: &TxHash) -> anyhow::Result> { + let provider = get_provider().await?; + + let pending_tx = PendingTransaction::new(*tx_hash, provider); + + let receipt = match pending_tx.await? { + Some(receipt) => receipt, + None => return Err(anyhow::Error::msg("receipt not found")), + }; + + let block_number = match receipt.block_number { + Some(block_number) => block_number, + None => return Err(anyhow::Error::msg("block number not found")), + }; + + match provider.get_block(block_number).await? { + Some(block_data) => Ok(block_data), + None => return Err(anyhow::Error::msg("block data not found")), + } +} + +pub async fn mint_tokens( + amount: &U256, + target: &Address, + token: &ERC20Mock, Wallet>>, +) -> anyhow::Result<()> { + token.mint(*target, *amount).send().await?.await?; + + Ok(()) +} + +pub async fn approve_tokens( + amount: &U256, + spender: &Address, + token: &ERC20Mock, Wallet>>, +) -> anyhow::Result<()> { + token.approve(*spender, *amount).send().await?.await?; + + Ok(()) +} + +pub async fn get_decimals(address: Address) -> anyhow::Result { + let wallet = get_wallet(0); + let provider = get_provider().await?; + let chain_id = provider.get_chainid().await?; + + let client = Arc::new(SignerMiddleware::new( + provider.clone(), + wallet.clone().with_chain_id(chain_id.as_u64()), + )); + + let contract = ERC20Mock::new(address, client); + + Ok(contract.decimals().call().await?) +} + +pub async fn generate_order_config( + expression_deployer: &RainterpreterExpressionDeployer< + SignerMiddleware, Wallet>, + >, + token_input: &ERC20Mock, Wallet>>, + vault_id_input: Option, + token_output: &ERC20Mock, Wallet>>, + vault_id_output: Option, +) -> OrderConfigV2 { + let io_input = generate_io(token_input, vault_id_input).await; + let io_output = generate_io(token_output, vault_id_output).await; + + let eval_config = generate_eval_config(expression_deployer).await; + + // Build the OrderConfig and return it + OrderConfigV2 { + valid_inputs: vec![io_input], + valid_outputs: vec![io_output], + evaluable_config: eval_config, + meta: mock_rain_doc(), + } +} + +async fn generate_io( + token: &ERC20Mock, Wallet>>, + vault_id: Option, +) -> Io { + // Build the IO and return it + Io { + token: token.address(), + decimals: token.decimals().await.unwrap(), + vault_id: vault_id.unwrap_or(generate_random_u256()), + } +} + +async fn generate_eval_config( + expression_deployer: &RainterpreterExpressionDeployer< + SignerMiddleware, Wallet>, + >, +) -> EvaluableConfigV2 { + // let data_parse = Bytes::from_static(b"_ _ _:block-timestamp() chain-id() block-number();:;"); + let data_parse = + Bytes::from_static(b"_ _ _:block-timestamp() 6000000000000000000 1000000000000000000;:;"); + // Bytes::from_static(b"_ _ _:block-timestamp() 6000000000000000000 1000000000000000000;:;"); + let (bytecode, constants) = expression_deployer + .parse(data_parse.clone()) + .await + .expect("cannot get value from parse"); + + // Build the EvaluableConfig and return it + EvaluableConfigV2 { + deployer: expression_deployer.address(), + bytecode, + constants, + } +} + +/// From given orders, encode them to a collection of Bytes to be used with multicall +pub fn generate_multi_add_order(orders: Vec<&OrderConfigV2>) -> Vec { + let mut data: Vec = Vec::new(); + + for order in orders { + let call_config = AddOrderCall { + config: order.to_owned(), + }; + + let encoded_call = Bytes::from(AbiEncode::encode(call_config)); + + // Push the bytes + data.push(encoded_call); + } + + return data; +} + +/// From given arguments, encode them to a collection of Bytes to be used with multicall +pub fn generate_multi_deposit(deposit_configs: &Vec) -> Vec { + let mut data: Vec = Vec::new(); + + for config in deposit_configs { + let call_config = DepositCall { + token: config.token, + vault_id: config.vault_id, + amount: config.amount, + }; + + let encoded_call = Bytes::from(AbiEncode::encode(call_config)); + + // Push the bytes + data.push(encoded_call); + } + + return data; +} + +/// From given arguments, encode them to a collection of Bytes to be used with multicall +pub fn generate_multi_withdraw(configs: &Vec) -> Vec { + let mut data: Vec = Vec::new(); + + for config in configs { + let call_config = WithdrawCall { + token: config.token, + vault_id: config.vault_id, + target_amount: config.target_amount, + }; + + let encoded_call = Bytes::from(AbiEncode::encode(call_config)); + + // Push the bytes + data.push(encoded_call); + } + + return data; +} + +/// The function assume that all the IO index are zero. +pub fn generate_clear_config( + alice_bounty_vault_id: &U256, + bob_bounty_vault_id: &U256, +) -> ClearConfig { + ClearConfig { + alice_input_io_index: U256::zero(), + alice_output_io_index: U256::zero(), + bob_input_io_index: U256::zero(), + bob_output_io_index: U256::zero(), + alice_bounty_vault_id: *alice_bounty_vault_id, + bob_bounty_vault_id: *bob_bounty_vault_id, + } +} + +/// From given arguments, encode them to a collection of Bytes to be used with multicall +pub fn generate_multi_clear(configs: &Vec) -> Vec { + let mut data: Vec = Vec::new(); + + for config in configs { + let encoded_call = Bytes::from(AbiEncode::encode(config.to_owned())); + + // Push the bytes + data.push(encoded_call); + } + + return data; +} + +pub async fn generate_signed_context_v1( + wallet: &Wallet, +) -> anyhow::Result { + let context = vec![ + generate_random_u256(), + generate_random_u256(), + generate_random_u256(), + ]; + + // Removing the first 64bits (2bytes) that include the tuple mark and the array length + let encoded: Vec = AbiEncode::encode(context.clone()) + .into_iter() + .skip(64) + .collect(); + + let hash = hash_keccak(&Bytes::from(encoded).to_vec()) + .as_bytes() + .to_vec(); + + let signed_message = wallet.sign_message(hash.clone()).await?; + + let signature = Bytes::from(signed_message.to_vec()); + + Ok(SignedContextV1 { + signer: wallet.address(), + context, + signature, + }) +} diff --git a/subgraph/tsconfig.json b/subgraph/tsconfig.json new file mode 100644 index 0000000000..610e9c8564 --- /dev/null +++ b/subgraph/tsconfig.json @@ -0,0 +1,11 @@ +{ + "include": ["./test", "./utils", "./src"], + "exclude": ["node_modules/*"], + "compilerOptions": { + "target": "ES2020", + "esModuleInterop": true, + "moduleResolution": "node", + "resolveJsonModule": true, + "lib": ["es6"] + } +} diff --git a/test/util/subgraph/AuthoringMetaGetter.sol b/test/util/subgraph/AuthoringMetaGetter.sol new file mode 100644 index 0000000000..a7e8bdc934 --- /dev/null +++ b/test/util/subgraph/AuthoringMetaGetter.sol @@ -0,0 +1,13 @@ +// SPDX-License-Identifier: CAL +pragma solidity =0.8.19; + +import "lib/openzeppelin-contracts/contracts/utils/Address.sol"; +import "lib/rain.interpreter/src/lib/op/LibAllStandardOpsNP.sol"; + +/// @title AuthoringMetaGetter +/// A contract to obtain the current AuthoringMeta of the interpreter +contract AuthoringMetaGetter { + function getAuthoringMeta() external pure returns (bytes memory) { + return LibAllStandardOpsNP.authoringMeta(); + } +}