From d906ab266d883919a0b7aa9b27fc6d511936e23e Mon Sep 17 00:00:00 2001 From: Torben Poguntke Date: Mon, 22 Apr 2024 12:54:55 +0200 Subject: [PATCH] init --- Cargo.lock | 11724 ++++++++++++++++ Cargo.toml | 191 + Dockerfile | 36 + LICENSE | 201 + README.md | 211 + docs/assets/account_type.png | Bin 0 -> 52508 bytes docs/assets/add_network.png | Bin 0 -> 75464 bytes docs/assets/aya_local_testnet.png | Bin 0 -> 60378 bytes docs/assets/metamask_settings.png | Bin 0 -> 64436 bytes docs/assets/network_selector.png | Bin 0 -> 9294 bytes docs/assets/node_identity_alice.png | Bin 0 -> 81125 bytes docs/assets/polkadotjs_explorer.png | Bin 0 -> 338362 bytes docs/assets/polkajs_fin.png | Bin 0 -> 132556 bytes docs/assets/polkajs_talis_con.png | Bin 0 -> 62300 bytes docs/assets/settings.png | Bin 0 -> 78483 bytes docs/assets/talis_add_network.png | Bin 0 -> 35538 bytes docs/assets/talis_mng_networks.png | Bin 0 -> 96920 bytes docs/assets/talisman_import.png | Bin 0 -> 57043 bytes docs/assets/talisman_net.png | Bin 0 -> 83607 bytes docs/guide_custom_account.md | 103 + docs/guide_local_chain_setup.md | 70 + examples/contract-erc20/.gitignore | 2 + examples/contract-erc20/README.md | 76 + examples/contract-erc20/create-erc20-rpc.ts | 83 + examples/contract-erc20/create-erc20.ts | 203 + examples/contract-erc20/package-lock.json | 2483 ++++ examples/contract-erc20/package.json | 11 + examples/contract-erc20/truffle/.gitignore | 2 + .../truffle/contracts/MyToken.json | 857 ++ .../truffle/contracts/MyToken.sol | 10 + .../contract-erc20/truffle/package-lock.json | 7107 ++++++++++ examples/contract-erc20/truffle/package.json | 8 + .../contract-erc20/truffle/truffle-config.js | 99 + examples/contract-erc20/tsconfig.json | 5 + examples/contract-hello/.gitignore | 1 + examples/contract-hello/Hello.sol | 11 + examples/contract-hello/index.js | 23 + examples/contract-hello/package-lock.json | 805 ++ examples/contract-hello/package.json | 23 + node/Cargo.toml | 117 + node/build.rs | 7 + node/src/benchmarking.rs | 191 + node/src/chain_spec.rs | 215 + node/src/cli.rs | 68 + node/src/client.rs | 77 + node/src/command.rs | 254 + node/src/eth.rs | 211 + node/src/main.rs | 23 + node/src/rpc/eth.rs | 206 + node/src/rpc/mod.rs | 114 + node/src/service.rs | 728 + pallets/substrate-validator-set/Cargo.toml | 45 + pallets/substrate-validator-set/LICENSE | 201 + pallets/substrate-validator-set/rustfmt.toml | 25 + .../src/benchmarking.rs | 27 + pallets/substrate-validator-set/src/lib.rs | 290 + pallets/substrate-validator-set/src/mock.rs | 177 + pallets/substrate-validator-set/src/tests.rs | 68 + .../substrate-validator-set/src/weights.rs | 93 + runtime/Cargo.toml | 153 + runtime/build.rs | 8 + runtime/src/assets_api.rs | 34 + runtime/src/lib.rs | 1475 ++ runtime/src/precompiles.rs | 61 + 64 files changed, 29213 insertions(+) create mode 100644 Cargo.lock create mode 100644 Cargo.toml create mode 100644 Dockerfile create mode 100644 LICENSE create mode 100644 README.md create mode 100644 docs/assets/account_type.png create mode 100644 docs/assets/add_network.png create mode 100644 docs/assets/aya_local_testnet.png create mode 100644 docs/assets/metamask_settings.png create mode 100644 docs/assets/network_selector.png create mode 100644 docs/assets/node_identity_alice.png create mode 100644 docs/assets/polkadotjs_explorer.png create mode 100644 docs/assets/polkajs_fin.png create mode 100644 docs/assets/polkajs_talis_con.png create mode 100644 docs/assets/settings.png create mode 100644 docs/assets/talis_add_network.png create mode 100644 docs/assets/talis_mng_networks.png create mode 100644 docs/assets/talisman_import.png create mode 100644 docs/assets/talisman_net.png create mode 100644 docs/guide_custom_account.md create mode 100644 docs/guide_local_chain_setup.md create mode 100644 examples/contract-erc20/.gitignore create mode 100644 examples/contract-erc20/README.md create mode 100755 examples/contract-erc20/create-erc20-rpc.ts create mode 100644 examples/contract-erc20/create-erc20.ts create mode 100644 examples/contract-erc20/package-lock.json create mode 100644 examples/contract-erc20/package.json create mode 100644 examples/contract-erc20/truffle/.gitignore create mode 100644 examples/contract-erc20/truffle/contracts/MyToken.json create mode 100644 examples/contract-erc20/truffle/contracts/MyToken.sol create mode 100644 examples/contract-erc20/truffle/package-lock.json create mode 100644 examples/contract-erc20/truffle/package.json create mode 100644 examples/contract-erc20/truffle/truffle-config.js create mode 100644 examples/contract-erc20/tsconfig.json create mode 100644 examples/contract-hello/.gitignore create mode 100644 examples/contract-hello/Hello.sol create mode 100644 examples/contract-hello/index.js create mode 100644 examples/contract-hello/package-lock.json create mode 100644 examples/contract-hello/package.json create mode 100644 node/Cargo.toml create mode 100644 node/build.rs create mode 100644 node/src/benchmarking.rs create mode 100644 node/src/chain_spec.rs create mode 100644 node/src/cli.rs create mode 100644 node/src/client.rs create mode 100644 node/src/command.rs create mode 100644 node/src/eth.rs create mode 100644 node/src/main.rs create mode 100644 node/src/rpc/eth.rs create mode 100644 node/src/rpc/mod.rs create mode 100644 node/src/service.rs create mode 100644 pallets/substrate-validator-set/Cargo.toml create mode 100644 pallets/substrate-validator-set/LICENSE create mode 100644 pallets/substrate-validator-set/rustfmt.toml create mode 100644 pallets/substrate-validator-set/src/benchmarking.rs create mode 100644 pallets/substrate-validator-set/src/lib.rs create mode 100644 pallets/substrate-validator-set/src/mock.rs create mode 100644 pallets/substrate-validator-set/src/tests.rs create mode 100644 pallets/substrate-validator-set/src/weights.rs create mode 100644 runtime/Cargo.toml create mode 100644 runtime/build.rs create mode 100644 runtime/src/assets_api.rs create mode 100644 runtime/src/lib.rs create mode 100644 runtime/src/precompiles.rs diff --git a/Cargo.lock b/Cargo.lock new file mode 100644 index 0000000..2112e3e --- /dev/null +++ b/Cargo.lock @@ -0,0 +1,11724 @@ +# 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.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a76fd60b23679b7d19bd066031410fb7e458ccc5e958eb5c325888ce4baedc97" +dependencies = [ + "gimli 0.27.3", +] + +[[package]] +name = "addr2line" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" +dependencies = [ + "gimli 0.28.1", +] + +[[package]] +name = "adler" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" + +[[package]] +name = "aead" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0" +dependencies = [ + "crypto-common", + "generic-array 0.14.7", +] + +[[package]] +name = "aes" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" +dependencies = [ + "cfg-if", + "cipher 0.4.4", + "cpufeatures", +] + +[[package]] +name = "aes-gcm" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "831010a0f742e1209b3bcea8fab6a8e149051ba6099432c8cb2cc117dec3ead1" +dependencies = [ + "aead", + "aes", + "cipher 0.4.4", + "ctr", + "ghash", + "subtle 2.5.0", +] + +[[package]] +name = "ahash" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9" +dependencies = [ + "getrandom 0.2.14", + "once_cell", + "version_check", +] + +[[package]] +name = "ahash" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" +dependencies = [ + "cfg-if", + "getrandom 0.2.14", + "once_cell", + "version_check", + "zerocopy", +] + +[[package]] +name = "aho-corasick" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" +dependencies = [ + "memchr", +] + +[[package]] +name = "allocator-api2" +version = "0.2.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" + +[[package]] +name = "android-tzdata" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" + +[[package]] +name = "android_system_properties" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" +dependencies = [ + "libc", +] + +[[package]] +name = "ansi_term" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" +dependencies = [ + "winapi", +] + +[[package]] +name = "anstream" +version = "0.6.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d96bd03f33fe50a863e394ee9718a706f988b9079b20c3784fb726e7678b62fb" +dependencies = [ + "anstyle", + "anstyle-parse", + "anstyle-query", + "anstyle-wincon", + "colorchoice", + "utf8parse", +] + +[[package]] +name = "anstyle" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc" + +[[package]] +name = "anstyle-parse" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c" +dependencies = [ + "utf8parse", +] + +[[package]] +name = "anstyle-query" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648" +dependencies = [ + "windows-sys 0.52.0", +] + +[[package]] +name = "anstyle-wincon" +version = "3.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7" +dependencies = [ + "anstyle", + "windows-sys 0.52.0", +] + +[[package]] +name = "anyhow" +version = "1.0.82" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f538837af36e6f6a9be0faa67f9a314f8119e4e4b5867c6ab40ed60360142519" + +[[package]] +name = "approx" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cab112f0a86d568ea0e627cc1d6be74a1e9cd55214684db5561995f6dad897c6" +dependencies = [ + "num-traits", +] + +[[package]] +name = "aquamarine" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1da02abba9f9063d786eab1509833ebb2fac0f966862ca59439c76b9c566760" +dependencies = [ + "include_dir", + "itertools 0.10.5", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "aquamarine" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21cc1548309245035eb18aa7f0967da6bc65587005170c56e6ef2788a4cf3f4e" +dependencies = [ + "include_dir", + "itertools 0.10.5", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 2.0.60", +] + +[[package]] +name = "ark-bls12-377" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb00293ba84f51ce3bd026bd0de55899c4e68f0a39a5728cebae3a73ffdc0a4f" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-std", +] + +[[package]] +name = "ark-bls12-377-ext" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20c7021f180a0cbea0380eba97c2af3c57074cdaffe0eef7e840e1c9f2841e55" +dependencies = [ + "ark-bls12-377", + "ark-ec", + "ark-models-ext", + "ark-std", +] + +[[package]] +name = "ark-bls12-381" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c775f0d12169cba7aae4caeb547bb6a50781c7449a8aa53793827c9ec4abf488" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-serialize", + "ark-std", +] + +[[package]] +name = "ark-bls12-381-ext" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1dc4b3d08f19e8ec06e949712f95b8361e43f1391d94f65e4234df03480631c" +dependencies = [ + "ark-bls12-381", + "ark-ec", + "ark-ff", + "ark-models-ext", + "ark-serialize", + "ark-std", +] + +[[package]] +name = "ark-bw6-761" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e0605daf0cc5aa2034b78d008aaf159f56901d92a52ee4f6ecdfdac4f426700" +dependencies = [ + "ark-bls12-377", + "ark-ec", + "ark-ff", + "ark-std", +] + +[[package]] +name = "ark-bw6-761-ext" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccee5fba47266f460067588ee1bf070a9c760bf2050c1c509982c5719aadb4f2" +dependencies = [ + "ark-bw6-761", + "ark-ec", + "ark-ff", + "ark-models-ext", + "ark-std", +] + +[[package]] +name = "ark-ec" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "defd9a439d56ac24968cca0571f598a61bc8c55f71d50a89cda591cb750670ba" +dependencies = [ + "ark-ff", + "ark-poly", + "ark-serialize", + "ark-std", + "derivative", + "hashbrown 0.13.2", + "itertools 0.10.5", + "num-traits", + "rayon", + "zeroize", +] + +[[package]] +name = "ark-ed-on-bls12-377" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b10d901b9ac4b38f9c32beacedfadcdd64e46f8d7f8e88c1ae1060022cf6f6c6" +dependencies = [ + "ark-bls12-377", + "ark-ec", + "ark-ff", + "ark-std", +] + +[[package]] +name = "ark-ed-on-bls12-377-ext" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "524a4fb7540df2e1a8c2e67a83ba1d1e6c3947f4f9342cc2359fc2e789ad731d" +dependencies = [ + "ark-ec", + "ark-ed-on-bls12-377", + "ark-ff", + "ark-models-ext", + "ark-std", +] + +[[package]] +name = "ark-ed-on-bls12-381-bandersnatch" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9cde0f2aa063a2a5c28d39b47761aa102bda7c13c84fc118a61b87c7b2f785c" +dependencies = [ + "ark-bls12-381", + "ark-ec", + "ark-ff", + "ark-std", +] + +[[package]] +name = "ark-ed-on-bls12-381-bandersnatch-ext" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d15185f1acb49a07ff8cbe5f11a1adc5a93b19e211e325d826ae98e98e124346" +dependencies = [ + "ark-ec", + "ark-ed-on-bls12-381-bandersnatch", + "ark-ff", + "ark-models-ext", + "ark-std", +] + +[[package]] +name = "ark-ff" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec847af850f44ad29048935519032c33da8aa03340876d351dfab5660d2966ba" +dependencies = [ + "ark-ff-asm", + "ark-ff-macros", + "ark-serialize", + "ark-std", + "derivative", + "digest 0.10.7", + "itertools 0.10.5", + "num-bigint", + "num-traits", + "paste", + "rustc_version 0.4.0", + "zeroize", +] + +[[package]] +name = "ark-ff-asm" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ed4aa4fe255d0bc6d79373f7e31d2ea147bcf486cba1be5ba7ea85abdb92348" +dependencies = [ + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-ff-macros" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7abe79b0e4288889c4574159ab790824d0033b9fdcb2a112a3182fac2e514565" +dependencies = [ + "num-bigint", + "num-traits", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-models-ext" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e9eab5d4b5ff2f228b763d38442adc9b084b0a465409b059fac5c2308835ec2" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-serialize", + "ark-std", + "derivative", +] + +[[package]] +name = "ark-poly" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d320bfc44ee185d899ccbadfa8bc31aab923ce1558716e1997a1e74057fe86bf" +dependencies = [ + "ark-ff", + "ark-serialize", + "ark-std", + "derivative", + "hashbrown 0.13.2", +] + +[[package]] +name = "ark-scale" +version = "0.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f69c00b3b529be29528a6f2fd5fa7b1790f8bed81b9cdca17e326538545a179" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-serialize", + "ark-std", + "parity-scale-codec", + "scale-info", +] + +[[package]] +name = "ark-secret-scalar" +version = "0.0.2" +source = "git+https://github.com/w3f/ring-vrf?rev=e9782f9#e9782f938629c90f3adb3fff2358bc8d1386af3e" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-serialize", + "ark-std", + "ark-transcript", + "digest 0.10.7", + "getrandom_or_panic", + "zeroize", +] + +[[package]] +name = "ark-serialize" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adb7b85a02b83d2f22f89bd5cac66c9c89474240cb6207cb1efc16d098e822a5" +dependencies = [ + "ark-serialize-derive", + "ark-std", + "digest 0.10.7", + "num-bigint", +] + +[[package]] +name = "ark-serialize-derive" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae3281bc6d0fd7e549af32b52511e1302185bd688fd3359fa36423346ff682ea" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-std" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94893f1e0c6eeab764ade8dc4c0db24caf4fe7cbbaafc0eba0a9030f447b5185" +dependencies = [ + "num-traits", + "rand", + "rayon", +] + +[[package]] +name = "ark-transcript" +version = "0.0.2" +source = "git+https://github.com/w3f/ring-vrf?rev=e9782f9#e9782f938629c90f3adb3fff2358bc8d1386af3e" +dependencies = [ + "ark-ff", + "ark-serialize", + "ark-std", + "digest 0.10.7", + "rand_core 0.6.4", + "sha3", +] + +[[package]] +name = "array-bytes" +version = "4.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f52f63c5c1316a16a4b35eaac8b76a98248961a533f061684cb2a7cb0eafb6c6" + +[[package]] +name = "array-bytes" +version = "6.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f840fb7195bcfc5e17ea40c26e5ce6d5b9ce5d584466e17703209657e459ae0" + +[[package]] +name = "arrayref" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545" + +[[package]] +name = "arrayvec" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" + +[[package]] +name = "asn1-rs" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f6fd5ddaf0351dff5b8da21b2fb4ff8e08ddd02857f0bf69c47639106c0fff0" +dependencies = [ + "asn1-rs-derive", + "asn1-rs-impl", + "displaydoc", + "nom", + "num-traits", + "rusticata-macros", + "thiserror", + "time", +] + +[[package]] +name = "asn1-rs-derive" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "726535892e8eae7e70657b4c8ea93d26b8553afb1ce617caee529ef96d7dee6c" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", + "synstructure", +] + +[[package]] +name = "asn1-rs-impl" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2777730b2039ac0f95f093556e61b6d26cebed5393ca6f152717777cec3a42ed" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "assert_matches" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b34d609dfbaf33d6889b2b7106d3ca345eacad44200913df5ba02bfd31d2ba9" + +[[package]] +name = "async-channel" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35" +dependencies = [ + "concurrent-queue", + "event-listener 2.5.3", + "futures-core", +] + +[[package]] +name = "async-io" +version = "2.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcccb0f599cfa2f8ace422d3555572f47424da5648a4382a9dd0310ff8210884" +dependencies = [ + "async-lock", + "cfg-if", + "concurrent-queue", + "futures-io", + "futures-lite", + "parking", + "polling", + "rustix 0.38.32", + "slab", + "tracing", + "windows-sys 0.52.0", +] + +[[package]] +name = "async-lock" +version = "3.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d034b430882f8381900d3fe6f0aaa3ad94f2cb4ac519b429692a1bc2dda4ae7b" +dependencies = [ + "event-listener 4.0.3", + "event-listener-strategy", + "pin-project-lite 0.2.14", +] + +[[package]] +name = "async-trait" +version = "0.1.80" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6fa2087f2753a7da8cc1c0dbfcf89579dd57458e36769de5ac750b4671737ca" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.60", +] + +[[package]] +name = "asynchronous-codec" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4057f2c32adbb2fc158e22fb38433c8e9bbf76b75a4732c7c0cbaf695fb65568" +dependencies = [ + "bytes", + "futures-sink", + "futures-util", + "memchr", + "pin-project-lite 0.2.14", +] + +[[package]] +name = "atoi" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f28d99ec8bfea296261ca1af174f24225171fea9664ba9003cbebee704810528" +dependencies = [ + "num-traits", +] + +[[package]] +name = "auto_impl" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c87f3f15e7794432337fc718554eaa4dc8f04c9677a950ffe366f20a162ae42" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.60", +] + +[[package]] +name = "autocfg" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" + +[[package]] +name = "aya-node" +version = "0.1.0" +dependencies = [ + "async-trait", + "aya-runtime", + "clap", + "fc-api", + "fc-cli", + "fc-consensus", + "fc-db", + "fc-mapping-sync", + "fc-rpc", + "fc-rpc-core", + "fc-storage", + "fp-account", + "fp-dynamic-fee", + "fp-evm", + "fp-rpc", + "frame-benchmarking", + "frame-benchmarking-cli", + "frame-system", + "frame-system-rpc-runtime-api", + "futures", + "hex-literal", + "jsonrpsee", + "log", + "pallet-im-online", + "pallet-transaction-payment", + "pallet-transaction-payment-rpc", + "pallet-transaction-payment-rpc-runtime-api", + "parity-scale-codec", + "sc-basic-authorship", + "sc-chain-spec", + "sc-cli", + "sc-client-api", + "sc-consensus", + "sc-consensus-aura", + "sc-consensus-grandpa", + "sc-consensus-manual-seal", + "sc-executor", + "sc-network", + "sc-network-sync", + "sc-offchain", + "sc-rpc", + "sc-rpc-api", + "sc-service", + "sc-telemetry", + "sc-transaction-pool", + "sc-transaction-pool-api", + "serde_json", + "sp-api", + "sp-block-builder", + "sp-blockchain", + "sp-consensus-aura", + "sp-consensus-grandpa", + "sp-core", + "sp-inherents", + "sp-offchain", + "sp-runtime", + "sp-session", + "sp-timestamp", + "sp-transaction-pool", + "substrate-build-script-utils", + "substrate-frame-rpc-system", + "substrate-prometheus-endpoint", +] + +[[package]] +name = "aya-runtime" +version = "0.1.0" +dependencies = [ + "fp-account", + "fp-evm", + "fp-rpc", + "fp-self-contained", + "frame-benchmarking", + "frame-executive", + "frame-support", + "frame-system", + "frame-system-benchmarking", + "frame-system-rpc-runtime-api", + "log", + "pallet-assets", + "pallet-aura", + "pallet-authorship", + "pallet-balances", + "pallet-base-fee", + "pallet-contracts", + "pallet-dynamic-fee", + "pallet-ethereum", + "pallet-evm", + "pallet-evm-chain-id", + "pallet-evm-precompile-modexp", + "pallet-evm-precompile-sha3fips", + "pallet-evm-precompile-simple", + "pallet-grandpa", + "pallet-hotfix-sufficients", + "pallet-im-online", + "pallet-indices", + "pallet-insecure-randomness-collective-flip", + "pallet-multisig", + "pallet-parameters", + "pallet-recovery", + "pallet-session", + "pallet-sudo", + "pallet-timestamp", + "pallet-transaction-payment", + "pallet-transaction-payment-rpc-runtime-api", + "pallet-uniques", + "parity-scale-codec", + "scale-info", + "sp-api", + "sp-block-builder", + "sp-consensus-aura", + "sp-consensus-grandpa", + "sp-core", + "sp-genesis-builder", + "sp-inherents", + "sp-offchain", + "sp-runtime", + "sp-session", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "sp-transaction-pool", + "sp-version", + "static_assertions", + "substrate-validator-set", + "substrate-wasm-builder", +] + +[[package]] +name = "backtrace" +version = "0.3.71" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26b05800d2e817c8b3b4b54abd461726265fa9789ae34330622f2db9ee696f9d" +dependencies = [ + "addr2line 0.21.0", + "cc", + "cfg-if", + "libc", + "miniz_oxide", + "object 0.32.2", + "rustc-demangle", +] + +[[package]] +name = "bandersnatch_vrfs" +version = "0.0.4" +source = "git+https://github.com/w3f/ring-vrf?rev=e9782f9#e9782f938629c90f3adb3fff2358bc8d1386af3e" +dependencies = [ + "ark-bls12-381", + "ark-ec", + "ark-ed-on-bls12-381-bandersnatch", + "ark-ff", + "ark-serialize", + "ark-std", + "dleq_vrf", + "fflonk", + "merlin", + "rand_chacha", + "rand_core 0.6.4", + "ring 0.1.0", + "sha2 0.10.8", + "sp-ark-bls12-381", + "sp-ark-ed-on-bls12-381-bandersnatch", + "zeroize", +] + +[[package]] +name = "base-x" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cbbc9d0964165b47557570cce6c952866c2678457aca742aafc9fb771d30270" + +[[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.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" + +[[package]] +name = "base64ct" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" + +[[package]] +name = "beef" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a8241f3ebb85c056b509d4327ad0358fbbba6ffb340bf388f26350aeda225b1" +dependencies = [ + "serde", +] + +[[package]] +name = "bincode" +version = "1.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" +dependencies = [ + "serde", +] + +[[package]] +name = "bindgen" +version = "0.65.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfdf7b466f9a4903edc73f95d6d2bcd5baf8ae620638762244d3f60143643cc5" +dependencies = [ + "bitflags 1.3.2", + "cexpr", + "clang-sys", + "lazy_static", + "lazycell", + "peeking_take_while", + "prettyplease 0.2.19", + "proc-macro2", + "quote", + "regex", + "rustc-hash", + "shlex", + "syn 2.0.60", +] + +[[package]] +name = "bitcoin-internals" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9425c3bf7089c983facbae04de54513cce73b41c7f9ff8c845b54e7bc64ebbfb" + +[[package]] +name = "bitcoin_hashes" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1930a4dabfebb8d7d9992db18ebe3ae2876f0a305fab206fd168df931ede293b" +dependencies = [ + "bitcoin-internals", + "hex-conservative", +] + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bitflags" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" + +[[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 = "blake2" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94cb07b0da6a73955f8fb85d24c466778e70cda767a568229b104f0264089330" +dependencies = [ + "byte-tools", + "crypto-mac 0.7.0", + "digest 0.8.1", + "opaque-debug 0.2.3", +] + +[[package]] +name = "blake2" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46502ad458c9a52b69d4d4d32775c788b7a1b85e8bc9d482d92250fc0e3f8efe" +dependencies = [ + "digest 0.10.7", +] + +[[package]] +name = "blake2b_simd" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23285ad32269793932e830392f2fe2f83e26488fd3ec778883a93c8323735780" +dependencies = [ + "arrayref", + "arrayvec", + "constant_time_eq", +] + +[[package]] +name = "blake2s_simd" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94230421e395b9920d23df13ea5d77a20e1725331f90fbbf6df6040b33f756ae" +dependencies = [ + "arrayref", + "arrayvec", + "constant_time_eq", +] + +[[package]] +name = "blake3" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30cca6d3674597c30ddf2c587bf8d9d65c9a84d2326d941cc79c9842dfe0ef52" +dependencies = [ + "arrayref", + "arrayvec", + "cc", + "cfg-if", + "constant_time_eq", +] + +[[package]] +name = "block-buffer" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" +dependencies = [ + "generic-array 0.14.7", +] + +[[package]] +name = "block-buffer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array 0.14.7", +] + +[[package]] +name = "bounded-collections" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d32385ecb91a31bddaf908e8dcf4a15aef1bcd3913cc03ebfad02ff6d568abc1" +dependencies = [ + "log", + "parity-scale-codec", + "scale-info", + "serde", +] + +[[package]] +name = "bs58" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3" + +[[package]] +name = "bs58" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "build-helper" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bdce191bf3fa4995ce948c8c83b4640a1745457a149e73c6db75b4ffe36aad5f" +dependencies = [ + "semver 0.6.0", +] + +[[package]] +name = "bumpalo" +version = "3.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" + +[[package]] +name = "byte-slice-cast" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3ac9f8b63eca6fd385229b3675f6cc0dc5c8a5c8a54a59d4f52ffd670d87b0c" + +[[package]] +name = "byte-tools" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7" + +[[package]] +name = "bytemuck" +version = "1.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d6d68c57235a3a081186990eca2867354726650f42f7516ca50c28d6281fd15" + +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + +[[package]] +name = "bytes" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9" + +[[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 = "c2-chacha" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d27dae93fe7b1e0424dc57179ac396908c26b035a87234809f5c4dfd1b47dc80" +dependencies = [ + "cipher 0.2.5", + "ppv-lite86", +] + +[[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.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24b1f0365a6c6bb4020cd05806fd0d33c44d38046b8bd7f0e40814b9763cabfc" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo_metadata" +version = "0.15.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eee4243f1f26fc7a42710e7439c149e2b10b05472f88090acce52632f231a73a" +dependencies = [ + "camino", + "cargo-platform", + "semver 1.0.22", + "serde", + "serde_json", + "thiserror", +] + +[[package]] +name = "cc" +version = "1.0.94" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17f6e324229dc011159fcc089755d1e2e216a90d43a7dea6853ca740b84f35e7" +dependencies = [ + "jobserver", + "libc", +] + +[[package]] +name = "cexpr" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766" +dependencies = [ + "nom", +] + +[[package]] +name = "cfg-expr" +version = "0.15.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d067ad48b8650848b989a59a86c6c36a995d02d2bf778d45c3c5d57bc2718f02" +dependencies = [ + "smallvec", +] + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "cfg_aliases" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" + +[[package]] +name = "chacha" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ddf3c081b5fba1e5615640aae998e0fbd10c24cbd897ee39ed754a77601a4862" +dependencies = [ + "byteorder", + "keystream", +] + +[[package]] +name = "chacha20" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3613f74bd2eac03dad61bd53dbe620703d4371614fe0bc3b9f04dd36fe4e818" +dependencies = [ + "cfg-if", + "cipher 0.4.4", + "cpufeatures", +] + +[[package]] +name = "chacha20poly1305" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10cd79432192d1c0f4e1a0fef9527696cc039165d729fb41b3f4f4f354c2dc35" +dependencies = [ + "aead", + "chacha20", + "cipher 0.4.4", + "poly1305", + "zeroize", +] + +[[package]] +name = "chrono" +version = "0.4.38" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401" +dependencies = [ + "android-tzdata", + "iana-time-zone", + "js-sys", + "num-traits", + "wasm-bindgen", + "windows-targets 0.52.5", +] + +[[package]] +name = "cid" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9b68e3193982cd54187d71afdb2a271ad4cf8af157858e9cb911b91321de143" +dependencies = [ + "core2", + "multibase", + "multihash", + "serde", + "unsigned-varint", +] + +[[package]] +name = "cipher" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12f8e7987cbd042a63249497f41aed09f8e65add917ea6566effbc56578d6801" +dependencies = [ + "generic-array 0.14.7", +] + +[[package]] +name = "cipher" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" +dependencies = [ + "crypto-common", + "inout", + "zeroize", +] + +[[package]] +name = "clang-sys" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67523a3b4be3ce1989d607a828d036249522dd9c1c8de7f4dd2dae43a37369d1" +dependencies = [ + "glob", + "libc", + "libloading", +] + +[[package]] +name = "clap" +version = "4.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90bc066a67923782aa8515dbaea16946c5bcc5addbd668bb80af688e53e548a0" +dependencies = [ + "clap_builder", + "clap_derive", +] + +[[package]] +name = "clap_builder" +version = "4.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae129e2e766ae0ec03484e609954119f123cc1fe650337e155d03b022f24f7b4" +dependencies = [ + "anstream", + "anstyle", + "clap_lex", + "strsim", + "terminal_size", +] + +[[package]] +name = "clap_derive" +version = "4.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "528131438037fd55894f62d6e9f068b8f45ac57ffa77517819645d10aed04f64" +dependencies = [ + "heck 0.5.0", + "proc-macro2", + "quote", + "syn 2.0.60", +] + +[[package]] +name = "clap_lex" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce" + +[[package]] +name = "codespan-reporting" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e" +dependencies = [ + "termcolor", + "unicode-width", +] + +[[package]] +name = "colorchoice" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" + +[[package]] +name = "comfy-table" +version = "7.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b34115915337defe99b2aff5c2ce6771e5fbc4079f4b506301f5cf394c8452f7" +dependencies = [ + "strum 0.26.2", + "strum_macros 0.26.2", + "unicode-width", +] + +[[package]] +name = "common" +version = "0.1.0" +source = "git+https://github.com/w3f/ring-proof#b273d33f9981e2bb3375ab45faeb537f7ee35224" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-poly", + "ark-serialize", + "ark-std", + "fflonk", + "getrandom_or_panic", + "merlin", + "rand_chacha", +] + +[[package]] +name = "common-path" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2382f75942f4b3be3690fe4f86365e9c853c1587d6ee58212cebf6e2a9ccd101" + +[[package]] +name = "concurrent-queue" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d16048cd947b08fa32c24458a22f5dc5e835264f689f4f5653210c69fd107363" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "console" +version = "0.15.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e1f83fc076bd6dd27517eacdf25fef6c4dfe5f1d7448bafaaf3a26f13b5e4eb" +dependencies = [ + "encode_unicode", + "lazy_static", + "libc", + "unicode-width", + "windows-sys 0.52.0", +] + +[[package]] +name = "const-oid" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" + +[[package]] +name = "const-random" +version = "0.1.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87e00182fe74b066627d63b85fd550ac2998d4b0bd86bfed477a0ae4c7c71359" +dependencies = [ + "const-random-macro", +] + +[[package]] +name = "const-random-macro" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9d839f2a20b0aee515dc581a6172f2321f96cab76c1a38a4c584a194955390e" +dependencies = [ + "getrandom 0.2.14", + "once_cell", + "tiny-keccak", +] + +[[package]] +name = "constant_time_eq" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2" + +[[package]] +name = "constcat" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd7e35aee659887cbfb97aaf227ac12cad1a9d7c71e55ff3376839ed4e282d08" + +[[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.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" + +[[package]] +name = "core2" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b49ba7ef1ad6107f8824dbe97de947cbaac53c44e7f9756a1fba0d37c1eec505" +dependencies = [ + "memchr", +] + +[[package]] +name = "cpp_demangle" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eeaa953eaad386a53111e47172c2fedba671e5684c8dd601a5f474f4f118710f" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "cpufeatures" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" +dependencies = [ + "libc", +] + +[[package]] +name = "cranelift-bforest" +version = "0.95.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1277fbfa94bc82c8ec4af2ded3e639d49ca5f7f3c7eeab2c66accd135ece4e70" +dependencies = [ + "cranelift-entity", +] + +[[package]] +name = "cranelift-codegen" +version = "0.95.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6e8c31ad3b2270e9aeec38723888fe1b0ace3bea2b06b3f749ccf46661d3220" +dependencies = [ + "bumpalo", + "cranelift-bforest", + "cranelift-codegen-meta", + "cranelift-codegen-shared", + "cranelift-entity", + "cranelift-isle", + "gimli 0.27.3", + "hashbrown 0.13.2", + "log", + "regalloc2 0.6.1", + "smallvec", + "target-lexicon", +] + +[[package]] +name = "cranelift-codegen-meta" +version = "0.95.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8ac5ac30d62b2d66f12651f6b606dbdfd9c2cfd0908de6b387560a277c5c9da" +dependencies = [ + "cranelift-codegen-shared", +] + +[[package]] +name = "cranelift-codegen-shared" +version = "0.95.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd82b8b376247834b59ed9bdc0ddeb50f517452827d4a11bccf5937b213748b8" + +[[package]] +name = "cranelift-entity" +version = "0.95.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40099d38061b37e505e63f89bab52199037a72b931ad4868d9089ff7268660b0" +dependencies = [ + "serde", +] + +[[package]] +name = "cranelift-frontend" +version = "0.95.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64a25d9d0a0ae3079c463c34115ec59507b4707175454f0eee0891e83e30e82d" +dependencies = [ + "cranelift-codegen", + "log", + "smallvec", + "target-lexicon", +] + +[[package]] +name = "cranelift-isle" +version = "0.95.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80de6a7d0486e4acbd5f9f87ec49912bf4c8fb6aea00087b989685460d4469ba" + +[[package]] +name = "cranelift-native" +version = "0.95.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb6b03e0e03801c4b3fd8ce0758a94750c07a44e7944cc0ffbf0d3f2e7c79b00" +dependencies = [ + "cranelift-codegen", + "libc", + "target-lexicon", +] + +[[package]] +name = "cranelift-wasm" +version = "0.95.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff3220489a3d928ad91e59dd7aeaa8b3de18afb554a6211213673a71c90737ac" +dependencies = [ + "cranelift-codegen", + "cranelift-entity", + "cranelift-frontend", + "itertools 0.10.5", + "log", + "smallvec", + "wasmparser", + "wasmtime-types", +] + +[[package]] +name = "crc" +version = "3.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69e6e4d7b33a94f0991c26729976b10ebde1d34c3ee82408fb536164fa10d636" +dependencies = [ + "crc-catalog", +] + +[[package]] +name = "crc-catalog" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5" + +[[package]] +name = "crc32fast" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3855a8a784b474f333699ef2bbca9db2c4a1f6d9088a90a2d25b1eb53111eaa" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "crossbeam-deque" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d" +dependencies = [ + "crossbeam-epoch", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-queue" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df0346b5d5e76ac2fe4e327c5fd1118d6be7c51dfb18f9b7922923f287471e35" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345" + +[[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.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" +dependencies = [ + "generic-array 0.14.7", + "rand_core 0.6.4", + "subtle 2.5.0", + "zeroize", +] + +[[package]] +name = "crypto-common" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +dependencies = [ + "generic-array 0.14.7", + "rand_core 0.6.4", + "typenum", +] + +[[package]] +name = "crypto-mac" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4434400df11d95d556bac068ddfedd482915eb18fe8bea89bc80b6e4b1c179e5" +dependencies = [ + "generic-array 0.12.4", + "subtle 1.0.0", +] + +[[package]] +name = "crypto-mac" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b584a330336237c1eecd3e94266efb216c56ed91225d634cb2991c5f3fd1aeab" +dependencies = [ + "generic-array 0.14.7", + "subtle 2.5.0", +] + +[[package]] +name = "ctr" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" +dependencies = [ + "cipher 0.4.4", +] + +[[package]] +name = "curve25519-dalek" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b9fdf9972b2bd6af2d913799d9ebc165ea4d2e65878e329d9c6b372c4491b61" +dependencies = [ + "byteorder", + "digest 0.9.0", + "rand_core 0.5.1", + "subtle 2.5.0", + "zeroize", +] + +[[package]] +name = "curve25519-dalek" +version = "4.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a677b8922c94e01bdbb12126b0bc852f00447528dee1782229af9c720c3f348" +dependencies = [ + "cfg-if", + "cpufeatures", + "curve25519-dalek-derive", + "digest 0.10.7", + "fiat-crypto", + "platforms", + "rustc_version 0.4.0", + "subtle 2.5.0", + "zeroize", +] + +[[package]] +name = "curve25519-dalek-derive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.60", +] + +[[package]] +name = "cxx" +version = "1.0.121" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21db378d04296a84d8b7d047c36bb3954f0b46529db725d7e62fb02f9ba53ccc" +dependencies = [ + "cc", + "cxxbridge-flags", + "cxxbridge-macro", + "link-cplusplus", +] + +[[package]] +name = "cxx-build" +version = "1.0.121" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e5262a7fa3f0bae2a55b767c223ba98032d7c328f5c13fa5cdc980b77fc0658" +dependencies = [ + "cc", + "codespan-reporting", + "once_cell", + "proc-macro2", + "quote", + "scratch", + "syn 2.0.60", +] + +[[package]] +name = "cxxbridge-flags" +version = "1.0.121" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be8dcadd2e2fb4a501e1d9e93d6e88e6ea494306d8272069c92d5a9edf8855c0" + +[[package]] +name = "cxxbridge-macro" +version = "1.0.121" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad08a837629ad949b73d032c637653d069e909cffe4ee7870b02301939ce39cc" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.60", +] + +[[package]] +name = "dashmap" +version = "5.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856" +dependencies = [ + "cfg-if", + "hashbrown 0.14.3", + "lock_api", + "once_cell", + "parking_lot_core 0.9.9", +] + +[[package]] +name = "data-encoding" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e962a19be5cfc3f3bf6dd8f61eb50107f356ad6270fbb3ed41476571db78be5" + +[[package]] +name = "data-encoding-macro" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20c01c06f5f429efdf2bae21eb67c28b3df3cf85b7dd2d8ef09c0838dac5d33e" +dependencies = [ + "data-encoding", + "data-encoding-macro-internal", +] + +[[package]] +name = "data-encoding-macro-internal" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0047d07f2c89b17dd631c80450d69841a6b5d7fb17278cbc43d7e4cfcf2576f3" +dependencies = [ + "data-encoding", + "syn 1.0.109", +] + +[[package]] +name = "der" +version = "0.7.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f55bf8e7b65898637379c1b74eb1551107c8294ed26d855ceb9fd1a09cfc9bc0" +dependencies = [ + "const-oid", + "zeroize", +] + +[[package]] +name = "der-parser" +version = "8.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbd676fbbab537128ef0278adb5576cf363cff6aa22a7b24effe97347cfab61e" +dependencies = [ + "asn1-rs", + "displaydoc", + "nom", + "num-bigint", + "num-traits", + "rusticata-macros", +] + +[[package]] +name = "deranged" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" +dependencies = [ + "powerfmt", +] + +[[package]] +name = "derivative" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "derive-syn-parse" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e79116f119dd1dba1abf1f3405f03b9b0e79a27a3883864bfebded8a3dc768cd" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "derive-syn-parse" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d65d7ce8132b7c0e54497a4d9a55a1c2a0912a0d786cf894472ba818fba45762" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.60", +] + +[[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 0.4.0", + "syn 1.0.109", +] + +[[package]] +name = "difflib" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6184e33543162437515c2e2b48714794e37845ec9851711914eec9d308f6ebe8" + +[[package]] +name = "digest" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3d0c8c8752312f9713efd397ff63acb9f85585afbf179282e720e7704954dd5" +dependencies = [ + "generic-array 0.12.4", +] + +[[package]] +name = "digest" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" +dependencies = [ + "generic-array 0.14.7", +] + +[[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 2.5.0", +] + +[[package]] +name = "directories" +version = "5.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a49173b84e034382284f27f1af4dcbbd231ffa358c0fe316541a7337f376a35" +dependencies = [ + "dirs-sys", +] + +[[package]] +name = "directories-next" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "339ee130d97a610ea5a5872d2bbb130fdf68884ff09d3028b81bec8a1ac23bbc" +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 0.48.0", +] + +[[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 = "displaydoc" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.60", +] + +[[package]] +name = "dleq_vrf" +version = "0.0.2" +source = "git+https://github.com/w3f/ring-vrf?rev=e9782f9#e9782f938629c90f3adb3fff2358bc8d1386af3e" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-scale", + "ark-secret-scalar", + "ark-serialize", + "ark-std", + "ark-transcript", + "arrayvec", + "zeroize", +] + +[[package]] +name = "docify" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43a2f138ad521dc4a2ced1a4576148a6a610b4c5923933b062a263130a6802ce" +dependencies = [ + "docify_macros", +] + +[[package]] +name = "docify_macros" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a081e51fb188742f5a7a1164ad752121abcb22874b21e2c3b0dd040c515fdad" +dependencies = [ + "common-path", + "derive-syn-parse 0.2.0", + "once_cell", + "proc-macro2", + "quote", + "regex", + "syn 2.0.60", + "termcolor", + "toml 0.8.12", + "walkdir", +] + +[[package]] +name = "dotenvy" +version = "0.15.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1aaf95b3e5c8f23aa320147307562d361db0ae0d51242340f558153b4eb2439b" + +[[package]] +name = "downcast" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1435fa1053d8b2fbbe9be7e97eca7f33d37b28409959813daefc1446a14247f1" + +[[package]] +name = "downcast-rs" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2" + +[[package]] +name = "dtoa" +version = "1.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcbb2bf8e87535c23f7a8a321e364ce21462d0ff10cb6407820e8e96dfff6653" + +[[package]] +name = "dyn-clonable" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e9232f0e607a262ceb9bd5141a3dfb3e4db6994b31989bbfd845878cba59fd4" +dependencies = [ + "dyn-clonable-impl", + "dyn-clone", +] + +[[package]] +name = "dyn-clonable-impl" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "558e40ea573c374cf53507fd240b7ee2f5477df7cfebdb97323ec61c719399c5" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "dyn-clone" +version = "1.0.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d6ef0072f8a535281e4876be788938b528e9a1d43900b82c2569af7da799125" + +[[package]] +name = "ecdsa" +version = "0.16.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" +dependencies = [ + "der", + "digest 0.10.7", + "elliptic-curve", + "rfc6979", + "serdect", + "signature", + "spki", +] + +[[package]] +name = "ed25519" +version = "2.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53" +dependencies = [ + "pkcs8", + "signature", +] + +[[package]] +name = "ed25519-dalek" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a3daa8e81a3963a60642bcc1f90a670680bd4a77535faa384e9d1c79d620871" +dependencies = [ + "curve25519-dalek 4.1.2", + "ed25519", + "rand_core 0.6.4", + "serde", + "sha2 0.10.8", + "subtle 2.5.0", + "zeroize", +] + +[[package]] +name = "ed25519-zebra" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c24f403d068ad0b359e577a77f92392118be3f3c927538f2bb544a5ecd828c6" +dependencies = [ + "curve25519-dalek 3.2.0", + "hashbrown 0.12.3", + "hex", + "rand_core 0.6.4", + "sha2 0.9.9", + "zeroize", +] + +[[package]] +name = "either" +version = "1.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a47c1c47d2f5964e29c61246e81db715514cd532db6b5116a25ea3c03d6780a2" +dependencies = [ + "serde", +] + +[[package]] +name = "elliptic-curve" +version = "0.13.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47" +dependencies = [ + "base16ct", + "crypto-bigint", + "digest 0.10.7", + "ff", + "generic-array 0.14.7", + "group", + "pkcs8", + "rand_core 0.6.4", + "sec1", + "serdect", + "subtle 2.5.0", + "zeroize", +] + +[[package]] +name = "encode_unicode" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f" + +[[package]] +name = "enum-as-inner" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9720bba047d567ffc8a3cba48bf19126600e249ab7f128e9233e6376976a116" +dependencies = [ + "heck 0.4.1", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "env_logger" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cd405aab171cb85d6735e5c8d9db038c17d3ca007a4d2c25f337935c3d90580" +dependencies = [ + "humantime", + "is-terminal", + "log", + "regex", + "termcolor", +] + +[[package]] +name = "environmental" +version = "1.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e48c92028aaa870e83d51c64e5d4e0b6981b360c522198c23959f219a4e1b15b" + +[[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.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + +[[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" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e04d24d20b8ff2235cffbf242d5092de3aa45f77c5270ddbfadd2778ca13fea" +dependencies = [ + "bytes", + "ethereum-types", + "hash-db", + "hash256-std-hasher", + "parity-scale-codec", + "rlp", + "scale-info", + "serde", + "sha3", + "trie-root", +] + +[[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 = "event-listener" +version = "2.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" + +[[package]] +name = "event-listener" +version = "4.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67b215c49b2b248c855fb73579eb1f4f26c38ffdc12973e20e07b91d78d5646e" +dependencies = [ + "concurrent-queue", + "parking", + "pin-project-lite 0.2.14", +] + +[[package]] +name = "event-listener-strategy" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "958e4d70b6d5e81971bebec42271ec641e7ff4e170a6fa605f2b8a8b65cb97d3" +dependencies = [ + "event-listener 4.0.3", + "pin-project-lite 0.2.14", +] + +[[package]] +name = "evm" +version = "0.41.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "767f43e9630cc36cf8ff2777cbb0121b055f0d1fd6eaaa13b46a1808f0d0e7e9" +dependencies = [ + "auto_impl", + "environmental", + "ethereum", + "evm-core", + "evm-gasometer", + "evm-runtime", + "log", + "parity-scale-codec", + "primitive-types", + "rlp", + "scale-info", + "serde", + "sha3", +] + +[[package]] +name = "evm-core" +version = "0.41.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1da6cedc5cedb4208e59467106db0d1f50db01b920920589f8e672c02fdc04f" +dependencies = [ + "parity-scale-codec", + "primitive-types", + "scale-info", + "serde", +] + +[[package]] +name = "evm-gasometer" +version = "0.41.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1dc0eb591abc5cd7b05bef6a036c2bb6c66ab6c5e0c5ce94bfe377ab670b1fd7" +dependencies = [ + "environmental", + "evm-core", + "evm-runtime", + "primitive-types", +] + +[[package]] +name = "evm-runtime" +version = "0.41.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84bbe09b64ae13a29514048c1bb6fda6374ac0b4f6a1f15a443348ab88ef42cd" +dependencies = [ + "auto_impl", + "environmental", + "evm-core", + "primitive-types", + "sha3", +] + +[[package]] +name = "exit-future" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e43f2f1833d64e33f15592464d6fdd70f349dda7b1a53088eb83cd94014008c5" +dependencies = [ + "futures", +] + +[[package]] +name = "expander" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00e83c02035136f1592a47964ea60c05a50e4ed8b5892cfac197063850898d4d" +dependencies = [ + "blake2 0.10.6", + "fs-err", + "prettier-please", + "proc-macro2", + "quote", + "syn 2.0.60", +] + +[[package]] +name = "fallible-iterator" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7" + +[[package]] +name = "fallible-iterator" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2acce4a10f12dc2fb14a218589d4f1f62ef011b2d0cc4b3cb1bba8e94da14649" + +[[package]] +name = "fastrand" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "658bd65b1cf4c852a3cc96f18a8ce7b5640f6b703f905c7d74532294c2a63984" + +[[package]] +name = "fc-api" +version = "1.0.0-dev" +source = "git+https://github.com/polkadot-evm/frontier?branch=master#7e4a4e2b2e0635d5ba193de73d75fb708f4b339f" +dependencies = [ + "async-trait", + "fp-storage", + "parity-scale-codec", + "sp-core", + "sp-runtime", +] + +[[package]] +name = "fc-cli" +version = "1.0.0-dev" +source = "git+https://github.com/polkadot-evm/frontier?branch=master#7e4a4e2b2e0635d5ba193de73d75fb708f4b339f" +dependencies = [ + "clap", + "ethereum-types", + "fc-db", + "fp-rpc", + "fp-storage", + "sc-cli", + "serde", + "serde_json", + "sp-api", + "sp-blockchain", + "sp-runtime", +] + +[[package]] +name = "fc-consensus" +version = "2.0.0-dev" +source = "git+https://github.com/polkadot-evm/frontier?branch=master#7e4a4e2b2e0635d5ba193de73d75fb708f4b339f" +dependencies = [ + "async-trait", + "fp-consensus", + "fp-rpc", + "sc-consensus", + "sp-api", + "sp-block-builder", + "sp-consensus", + "sp-runtime", + "thiserror", +] + +[[package]] +name = "fc-db" +version = "2.0.0-dev" +source = "git+https://github.com/polkadot-evm/frontier?branch=master#7e4a4e2b2e0635d5ba193de73d75fb708f4b339f" +dependencies = [ + "async-trait", + "ethereum", + "fc-api", + "fc-storage", + "fp-consensus", + "fp-rpc", + "fp-storage", + "futures", + "kvdb-rocksdb", + "log", + "parity-db", + "parity-scale-codec", + "parking_lot 0.12.1", + "sc-client-api", + "sc-client-db", + "smallvec", + "sp-api", + "sp-blockchain", + "sp-core", + "sp-database", + "sp-runtime", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "sqlx", + "tokio", +] + +[[package]] +name = "fc-mapping-sync" +version = "2.0.0-dev" +source = "git+https://github.com/polkadot-evm/frontier?branch=master#7e4a4e2b2e0635d5ba193de73d75fb708f4b339f" +dependencies = [ + "fc-db", + "fc-storage", + "fp-consensus", + "fp-rpc", + "futures", + "futures-timer", + "log", + "parking_lot 0.12.1", + "sc-client-api", + "sc-utils", + "sp-api", + "sp-blockchain", + "sp-consensus", + "sp-core", + "sp-runtime", + "tokio", +] + +[[package]] +name = "fc-rpc" +version = "2.0.0-dev" +source = "git+https://github.com/polkadot-evm/frontier?branch=master#7e4a4e2b2e0635d5ba193de73d75fb708f4b339f" +dependencies = [ + "ethereum", + "ethereum-types", + "evm", + "fc-api", + "fc-mapping-sync", + "fc-rpc-core", + "fc-storage", + "fp-evm", + "fp-rpc", + "fp-storage", + "futures", + "hex", + "jsonrpsee", + "libsecp256k1", + "log", + "pallet-evm", + "parity-scale-codec", + "prometheus", + "rand", + "rlp", + "sc-client-api", + "sc-consensus-aura", + "sc-network", + "sc-network-common", + "sc-network-sync", + "sc-rpc", + "sc-service", + "sc-transaction-pool", + "sc-transaction-pool-api", + "sc-utils", + "schnellru", + "serde", + "sp-api", + "sp-block-builder", + "sp-blockchain", + "sp-consensus", + "sp-consensus-aura", + "sp-core", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "sp-inherents", + "sp-io", + "sp-runtime", + "sp-state-machine", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "sp-timestamp", + "substrate-prometheus-endpoint", + "thiserror", + "tokio", +] + +[[package]] +name = "fc-rpc-core" +version = "1.1.0-dev" +source = "git+https://github.com/polkadot-evm/frontier?branch=master#7e4a4e2b2e0635d5ba193de73d75fb708f4b339f" +dependencies = [ + "ethereum", + "ethereum-types", + "jsonrpsee", + "rlp", + "rustc-hex", + "serde", + "serde_json", + "sp-crypto-hashing", +] + +[[package]] +name = "fc-storage" +version = "1.0.0-dev" +source = "git+https://github.com/polkadot-evm/frontier?branch=master#7e4a4e2b2e0635d5ba193de73d75fb708f4b339f" +dependencies = [ + "ethereum", + "ethereum-types", + "fp-rpc", + "fp-storage", + "parity-scale-codec", + "sc-client-api", + "sp-api", + "sp-blockchain", + "sp-io", + "sp-runtime", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", +] + +[[package]] +name = "fdlimit" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e182f7dbc2ef73d9ef67351c5fbbea084729c48362d3ce9dd44c28e32e277fe5" +dependencies = [ + "libc", + "thiserror", +] + +[[package]] +name = "ff" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" +dependencies = [ + "rand_core 0.6.4", + "subtle 2.5.0", +] + +[[package]] +name = "fflonk" +version = "0.1.0" +source = "git+https://github.com/w3f/fflonk#1e854f35e9a65d08b11a86291405cdc95baa0a35" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-poly", + "ark-serialize", + "ark-std", + "merlin", +] + +[[package]] +name = "fiat-crypto" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c007b1ae3abe1cb6f85a16305acd418b7ca6343b953633fee2b76d8f108b830f" + +[[package]] +name = "file-per-thread-logger" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84f2e425d9790201ba4af4630191feac6dcc98765b118d4d18e91d23c2353866" +dependencies = [ + "env_logger", + "log", +] + +[[package]] +name = "filetime" +version = "0.2.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ee447700ac8aa0b2f2bd7bc4462ad686ba06baa6727ac149a2d6277f0d240fd" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall 0.4.1", + "windows-sys 0.52.0", +] + +[[package]] +name = "finality-grandpa" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "36530797b9bf31cd4ff126dcfee8170f86b00cfdcea3269d73133cc0415945c3" +dependencies = [ + "either", + "futures", + "futures-timer", + "log", + "num-traits", + "parity-scale-codec", + "parking_lot 0.12.1", + "scale-info", +] + +[[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", + "libz-sys", + "miniz_oxide", +] + +[[package]] +name = "float-cmp" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "98de4bbd547a563b716d8dfa9aad1cb19bfab00f4fa09a6a4ed21dbcf44ce9c4" +dependencies = [ + "num-traits", +] + +[[package]] +name = "flume" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55ac459de2512911e4b674ce33cf20befaba382d05b62b008afc1c8b57cbf181" +dependencies = [ + "futures-core", + "futures-sink", + "spin 0.9.8", +] + +[[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 = "fork-tree" +version = "12.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "parity-scale-codec", +] + +[[package]] +name = "form_urlencoded" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" +dependencies = [ + "percent-encoding", +] + +[[package]] +name = "fp-account" +version = "1.0.0-dev" +source = "git+https://github.com/polkadot-evm/frontier?branch=master#7e4a4e2b2e0635d5ba193de73d75fb708f4b339f" +dependencies = [ + "hex", + "impl-serde", + "libsecp256k1", + "log", + "parity-scale-codec", + "scale-info", + "serde", + "sp-core", + "sp-io", + "sp-runtime", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", +] + +[[package]] +name = "fp-consensus" +version = "2.0.0-dev" +source = "git+https://github.com/polkadot-evm/frontier?branch=master#7e4a4e2b2e0635d5ba193de73d75fb708f4b339f" +dependencies = [ + "ethereum", + "parity-scale-codec", + "sp-core", + "sp-runtime", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", +] + +[[package]] +name = "fp-dynamic-fee" +version = "1.0.0" +source = "git+https://github.com/polkadot-evm/frontier?branch=master#7e4a4e2b2e0635d5ba193de73d75fb708f4b339f" +dependencies = [ + "async-trait", + "sp-core", + "sp-inherents", +] + +[[package]] +name = "fp-ethereum" +version = "1.0.0-dev" +source = "git+https://github.com/polkadot-evm/frontier?branch=master#7e4a4e2b2e0635d5ba193de73d75fb708f4b339f" +dependencies = [ + "ethereum", + "ethereum-types", + "fp-evm", + "frame-support", + "parity-scale-codec", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", +] + +[[package]] +name = "fp-evm" +version = "3.0.0-dev" +source = "git+https://github.com/polkadot-evm/frontier?branch=master#7e4a4e2b2e0635d5ba193de73d75fb708f4b339f" +dependencies = [ + "evm", + "frame-support", + "num_enum", + "parity-scale-codec", + "scale-info", + "serde", + "sp-core", + "sp-runtime", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", +] + +[[package]] +name = "fp-rpc" +version = "3.0.0-dev" +source = "git+https://github.com/polkadot-evm/frontier?branch=master#7e4a4e2b2e0635d5ba193de73d75fb708f4b339f" +dependencies = [ + "ethereum", + "ethereum-types", + "fp-evm", + "parity-scale-codec", + "scale-info", + "sp-api", + "sp-core", + "sp-runtime", + "sp-state-machine", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", +] + +[[package]] +name = "fp-self-contained" +version = "1.0.0-dev" +source = "git+https://github.com/polkadot-evm/frontier?branch=master#7e4a4e2b2e0635d5ba193de73d75fb708f4b339f" +dependencies = [ + "frame-support", + "parity-scale-codec", + "scale-info", + "serde", + "sp-runtime", +] + +[[package]] +name = "fp-storage" +version = "2.0.0" +source = "git+https://github.com/polkadot-evm/frontier?branch=master#7e4a4e2b2e0635d5ba193de73d75fb708f4b339f" +dependencies = [ + "parity-scale-codec", + "serde", +] + +[[package]] +name = "fragile" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c2141d6d6c8512188a7891b4b01590a45f6dac67afb4f255c4124dbb86d4eaa" + +[[package]] +name = "frame-benchmarking" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "frame-support", + "frame-support-procedural", + "frame-system", + "linregress", + "log", + "parity-scale-codec", + "paste", + "scale-info", + "serde", + "sp-api", + "sp-application-crypto", + "sp-core", + "sp-io", + "sp-runtime", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "static_assertions", +] + +[[package]] +name = "frame-benchmarking-cli" +version = "32.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "Inflector", + "array-bytes 6.2.2", + "chrono", + "clap", + "comfy-table", + "frame-benchmarking", + "frame-support", + "frame-system", + "gethostname", + "handlebars", + "itertools 0.10.5", + "lazy_static", + "linked-hash-map", + "log", + "parity-scale-codec", + "rand", + "rand_pcg", + "sc-block-builder", + "sc-cli", + "sc-client-api", + "sc-client-db", + "sc-executor", + "sc-service", + "sc-sysinfo", + "serde", + "serde_json", + "sp-api", + "sp-blockchain", + "sp-core", + "sp-database", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "sp-inherents", + "sp-io", + "sp-keystore", + "sp-runtime", + "sp-state-machine", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "sp-trie", + "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "thiserror", + "thousands", +] + +[[package]] +name = "frame-executive" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "aquamarine 0.3.3", + "frame-support", + "frame-system", + "frame-try-runtime", + "log", + "parity-scale-codec", + "scale-info", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", +] + +[[package]] +name = "frame-metadata" +version = "16.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87cf1549fba25a6fcac22785b61698317d958e96cac72a59102ea45b9ae64692" +dependencies = [ + "cfg-if", + "parity-scale-codec", + "scale-info", + "serde", +] + +[[package]] +name = "frame-support" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "aquamarine 0.5.0", + "array-bytes 6.2.2", + "bitflags 1.3.2", + "docify", + "environmental", + "frame-metadata", + "frame-support-procedural", + "impl-trait-for-tuples", + "k256", + "log", + "macro_magic", + "parity-scale-codec", + "paste", + "scale-info", + "serde", + "serde_json", + "smallvec", + "sp-api", + "sp-arithmetic", + "sp-core", + "sp-crypto-hashing-proc-macro", + "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "sp-genesis-builder", + "sp-inherents", + "sp-io", + "sp-metadata-ir", + "sp-runtime", + "sp-staking", + "sp-state-machine", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "sp-weights", + "static_assertions", + "tt-call", +] + +[[package]] +name = "frame-support-procedural" +version = "23.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "Inflector", + "cfg-expr", + "derive-syn-parse 0.1.5", + "expander", + "frame-support-procedural-tools", + "itertools 0.10.5", + "macro_magic", + "proc-macro-warning", + "proc-macro2", + "quote", + "sp-crypto-hashing", + "syn 2.0.60", +] + +[[package]] +name = "frame-support-procedural-tools" +version = "10.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "frame-support-procedural-tools-derive", + "proc-macro-crate 3.1.0", + "proc-macro2", + "quote", + "syn 2.0.60", +] + +[[package]] +name = "frame-support-procedural-tools-derive" +version = "11.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.60", +] + +[[package]] +name = "frame-system" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "cfg-if", + "docify", + "frame-support", + "log", + "parity-scale-codec", + "scale-info", + "serde", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "sp-version", + "sp-weights", +] + +[[package]] +name = "frame-system-benchmarking" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "parity-scale-codec", + "scale-info", + "sp-core", + "sp-runtime", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", +] + +[[package]] +name = "frame-system-rpc-runtime-api" +version = "26.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "parity-scale-codec", + "sp-api", +] + +[[package]] +name = "frame-try-runtime" +version = "0.34.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "frame-support", + "parity-scale-codec", + "sp-api", + "sp-runtime", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", +] + +[[package]] +name = "fs-err" +version = "2.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88a41f105fe1d5b6b34b2055e3dc59bb79b46b48b2040b9e6c7b4b5de097aa41" +dependencies = [ + "autocfg", +] + +[[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.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0" +dependencies = [ + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-channel" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" +dependencies = [ + "futures-core", + "futures-sink", +] + +[[package]] +name = "futures-core" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" + +[[package]] +name = "futures-executor" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", + "num_cpus", +] + +[[package]] +name = "futures-intrusive" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d930c203dd0b6ff06e0201a4a2fe9149b43c684fd4420555b26d21b1a02956f" +dependencies = [ + "futures-core", + "lock_api", + "parking_lot 0.12.1", +] + +[[package]] +name = "futures-io" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" + +[[package]] +name = "futures-lite" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52527eb5074e35e9339c6b4e8d12600c7128b68fb25dcb9fa9dec18f7c25f3a5" +dependencies = [ + "futures-core", + "pin-project-lite 0.2.14", +] + +[[package]] +name = "futures-macro" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.60", +] + +[[package]] +name = "futures-rustls" +version = "0.22.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2411eed028cdf8c8034eaf21f9915f956b6c3abec4d4c7949ee67f0721127bd" +dependencies = [ + "futures-io", + "rustls 0.20.9", + "webpki", +] + +[[package]] +name = "futures-sink" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" + +[[package]] +name = "futures-task" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" + +[[package]] +name = "futures-timer" +version = "3.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24" + +[[package]] +name = "futures-util" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite 0.2.14", + "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.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffdf9f34f1447443d37393cc6c2b8313aebddcd96906caf34e54c68d8e57d7bd" +dependencies = [ + "typenum", +] + +[[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 = "gethostname" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1ebd34e35c46e00bb73e81363248d627782724609fe1b6396f553f68fe3862e" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "getrandom" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.9.0+wasi-snapshot-preview1", +] + +[[package]] +name = "getrandom" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94b22e06ecb0110981051723910cbf0b5f5e09a2062dd7663334ee79a9d1286c" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.11.0+wasi-snapshot-preview1", +] + +[[package]] +name = "getrandom_or_panic" +version = "0.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ea1015b5a70616b688dc230cfe50c8af89d972cb132d5a622814d29773b10b9" +dependencies = [ + "rand", + "rand_core 0.6.4", +] + +[[package]] +name = "ghash" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0d8a4362ccb29cb0b265253fb0a2728f592895ee6854fd9bc13f2ffda266ff1" +dependencies = [ + "opaque-debug 0.3.1", + "polyval", +] + +[[package]] +name = "gimli" +version = "0.27.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c80984affa11d98d1b88b66ac8853f143217b399d3c74116778ff8fdb4ed2e" +dependencies = [ + "fallible-iterator 0.2.0", + "indexmap 1.9.3", + "stable_deref_trait", +] + +[[package]] +name = "gimli" +version = "0.28.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" +dependencies = [ + "fallible-iterator 0.3.0", + "stable_deref_trait", +] + +[[package]] +name = "glob" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" + +[[package]] +name = "governor" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68a7f542ee6b35af73b06abc0dad1c1bae89964e4e253bc4b587b91c9637867b" +dependencies = [ + "cfg-if", + "dashmap", + "futures", + "futures-timer", + "no-std-compat", + "nonzero_ext", + "parking_lot 0.12.1", + "portable-atomic", + "quanta", + "rand", + "smallvec", + "spinning_top", +] + +[[package]] +name = "group" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" +dependencies = [ + "ff", + "rand_core 0.6.4", + "subtle 2.5.0", +] + +[[package]] +name = "h2" +version = "0.3.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" +dependencies = [ + "bytes", + "fnv", + "futures-core", + "futures-sink", + "futures-util", + "http", + "indexmap 2.2.6", + "slab", + "tokio", + "tokio-util", + "tracing", +] + +[[package]] +name = "handlebars" +version = "5.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d08485b96a0e6393e9e4d1b8d48cf74ad6c063cd905eb33f42c1ce3f0377539b" +dependencies = [ + "log", + "pest", + "pest_derive", + "serde", + "serde_json", + "thiserror", +] + +[[package]] +name = "hash-db" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e7d7786361d7425ae2fe4f9e407eb0efaa0840f5212d109cc018c40c35c6ab4" + +[[package]] +name = "hash256-std-hasher" +version = "0.15.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92c171d55b98633f4ed3860808f004099b36c1cc29c42cfc53aa8591b21efcf2" +dependencies = [ + "crunchy", +] + +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" +dependencies = [ + "ahash 0.7.8", +] + +[[package]] +name = "hashbrown" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" +dependencies = [ + "ahash 0.8.11", +] + +[[package]] +name = "hashbrown" +version = "0.14.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" +dependencies = [ + "ahash 0.8.11", + "allocator-api2", +] + +[[package]] +name = "hashlink" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8094feaf31ff591f651a2664fb9cfd92bba7a60ce3197265e9482ebe753c8f7" +dependencies = [ + "hashbrown 0.14.3", +] + +[[package]] +name = "heck" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" +dependencies = [ + "unicode-segmentation", +] + +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + +[[package]] +name = "hermit-abi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" + +[[package]] +name = "hex-conservative" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30ed443af458ccb6d81c1e7e661545f94d3176752fb1df2f543b902a1e0f51e2" + +[[package]] +name = "hex-literal" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" + +[[package]] +name = "hkdf" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7" +dependencies = [ + "hmac 0.12.1", +] + +[[package]] +name = "hmac" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "126888268dcc288495a26bf004b38c5fdbb31682f992c84ceb046a1f0fe38840" +dependencies = [ + "crypto-mac 0.8.0", + "digest 0.9.0", +] + +[[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 = "hmac-drbg" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17ea0a1394df5b6574da6e0c1ade9e78868c9fb0a4e5ef4428e32da4676b85b1" +dependencies = [ + "digest 0.9.0", + "generic-array 0.14.7", + "hmac 0.8.1", +] + +[[package]] +name = "home" +version = "0.5.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5" +dependencies = [ + "windows-sys 0.52.0", +] + +[[package]] +name = "hostname" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c731c3e10504cc8ed35cfe2f1db4c9274c3d35fa486e3b31df46f068ef3e867" +dependencies = [ + "libc", + "match_cfg", + "winapi", +] + +[[package]] +name = "http" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + +[[package]] +name = "http-body" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" +dependencies = [ + "bytes", + "http", + "pin-project-lite 0.2.14", +] + +[[package]] +name = "http-range-header" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "add0ab9360ddbd88cfeb3bd9574a1d85cfdfa14db10b3e21d3700dbc4328758f" + +[[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 = "humantime" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" + +[[package]] +name = "hyper" +version = "0.14.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf96e135eb83a2a8ddf766e426a841d8ddd7449d5f00d34ea02b41d2f19eef80" +dependencies = [ + "bytes", + "futures-channel", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "httparse", + "httpdate", + "itoa", + "pin-project-lite 0.2.14", + "socket2 0.5.6", + "tokio", + "tower-service", + "tracing", + "want", +] + +[[package]] +name = "hyper-rustls" +version = "0.24.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590" +dependencies = [ + "futures-util", + "http", + "hyper", + "log", + "rustls 0.21.10", + "rustls-native-certs", + "tokio", + "tokio-rustls", +] + +[[package]] +name = "iana-time-zone" +version = "0.1.60" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "wasm-bindgen", + "windows-core 0.52.0", +] + +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" +dependencies = [ + "cc", +] + +[[package]] +name = "idna" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8" +dependencies = [ + "matches", + "unicode-bidi", + "unicode-normalization", +] + +[[package]] +name = "idna" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" +dependencies = [ + "unicode-bidi", + "unicode-normalization", +] + +[[package]] +name = "if-addrs" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cabb0019d51a643781ff15c9c8a3e5dedc365c47211270f4e8f82812fedd8f0a" +dependencies = [ + "libc", + "windows-sys 0.48.0", +] + +[[package]] +name = "if-watch" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6b0422c86d7ce0e97169cc42e04ae643caf278874a7a3c87b8150a220dc7e1e" +dependencies = [ + "async-io", + "core-foundation", + "fnv", + "futures", + "if-addrs", + "ipnet", + "log", + "rtnetlink", + "system-configuration", + "tokio", + "windows", +] + +[[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 = "include_dir" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18762faeff7122e89e0857b02f7ce6fcc0d101d5e9ad2ad7846cc01d61b7f19e" +dependencies = [ + "include_dir_macros", +] + +[[package]] +name = "include_dir_macros" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b139284b5cf57ecfa712bcc66950bb635b31aff41c188e8a4cfc758eca374a3f" +dependencies = [ + "proc-macro2", + "quote", +] + +[[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", + "serde", +] + +[[package]] +name = "indexmap" +version = "2.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" +dependencies = [ + "equivalent", + "hashbrown 0.14.3", +] + +[[package]] +name = "indexmap-nostd" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e04e2fd2b8188ea827b32ef11de88377086d690286ab35747ef7f9bf3ccb590" + +[[package]] +name = "inout" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" +dependencies = [ + "generic-array 0.14.7", +] + +[[package]] +name = "instant" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "integer-sqrt" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "276ec31bcb4a9ee45f58bec6f9ec700ae4cf4f4f8f2fa7e06cb406bd5ffdd770" +dependencies = [ + "num-traits", +] + +[[package]] +name = "io-lifetimes" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" +dependencies = [ + "hermit-abi", + "libc", + "windows-sys 0.48.0", +] + +[[package]] +name = "ip_network" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa2f047c0a98b2f299aa5d6d7088443570faae494e9ae1305e48be000c9e0eb1" + +[[package]] +name = "ipconfig" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b58db92f96b720de98181bbbe63c831e87005ab460c1bf306eb2622b4707997f" +dependencies = [ + "socket2 0.5.6", + "widestring", + "windows-sys 0.48.0", + "winreg", +] + +[[package]] +name = "ipnet" +version = "2.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" + +[[package]] +name = "is-terminal" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f23ff5ef2b80d608d61efee834934d862cd92461afc0560dedf493e4c033738b" +dependencies = [ + "hermit-abi", + "libc", + "windows-sys 0.52.0", +] + +[[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.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" + +[[package]] +name = "jobserver" +version = "0.1.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "685a7d121ee3f65ae4fddd72b25a04bb36b6af81bc0828f7d5434c0fe60fa3a2" +dependencies = [ + "libc", +] + +[[package]] +name = "js-sys" +version = "0.3.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d" +dependencies = [ + "wasm-bindgen", +] + +[[package]] +name = "jsonrpsee" +version = "0.22.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4b0e68d9af1f066c06d6e2397583795b912d78537d7d907c561e82c13d69fa1" +dependencies = [ + "jsonrpsee-core", + "jsonrpsee-proc-macros", + "jsonrpsee-server", + "jsonrpsee-types", + "tokio", + "tracing", +] + +[[package]] +name = "jsonrpsee-core" +version = "0.22.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "274d68152c24aa78977243bb56f28d7946e6aa309945b37d33174a3f92d89a3a" +dependencies = [ + "anyhow", + "async-trait", + "beef", + "futures-util", + "hyper", + "jsonrpsee-types", + "parking_lot 0.12.1", + "rand", + "rustc-hash", + "serde", + "serde_json", + "thiserror", + "tokio", + "tracing", +] + +[[package]] +name = "jsonrpsee-proc-macros" +version = "0.22.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c326f9e95aeff7d707b2ffde72c22a52acc975ba1c48587776c02b90c4747a6" +dependencies = [ + "heck 0.4.1", + "proc-macro-crate 3.1.0", + "proc-macro2", + "quote", + "syn 2.0.60", +] + +[[package]] +name = "jsonrpsee-server" +version = "0.22.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b5bfbda5f8fb63f997102fd18f73e35e34c84c6dcdbdbbe72c6e48f6d2c959b" +dependencies = [ + "futures-util", + "http", + "hyper", + "jsonrpsee-core", + "jsonrpsee-types", + "pin-project", + "route-recognizer", + "serde", + "serde_json", + "soketto", + "thiserror", + "tokio", + "tokio-stream", + "tokio-util", + "tower", + "tracing", +] + +[[package]] +name = "jsonrpsee-types" +version = "0.22.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3dc828e537868d6b12bbb07ec20324909a22ced6efca0057c825c3e1126b2c6d" +dependencies = [ + "anyhow", + "beef", + "serde", + "serde_json", + "thiserror", +] + +[[package]] +name = "k256" +version = "0.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "956ff9b67e26e1a6a866cb758f12c6f8746208489e3e4a4b5580802f2f0a587b" +dependencies = [ + "cfg-if", + "ecdsa", + "elliptic-curve", + "once_cell", + "serdect", + "sha2 0.10.8", +] + +[[package]] +name = "keccak" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654" +dependencies = [ + "cpufeatures", +] + +[[package]] +name = "keystream" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c33070833c9ee02266356de0c43f723152bd38bd96ddf52c82b3af10c9138b28" + +[[package]] +name = "kvdb" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7d770dcb02bf6835887c3a979b5107a04ff4bbde97a5f0928d27404a155add9" +dependencies = [ + "smallvec", +] + +[[package]] +name = "kvdb-memorydb" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf7a85fe66f9ff9cd74e169fdd2c94c6e1e74c412c99a73b4df3200b5d3760b2" +dependencies = [ + "kvdb", + "parking_lot 0.12.1", +] + +[[package]] +name = "kvdb-rocksdb" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b644c70b92285f66bfc2032922a79000ea30af7bc2ab31902992a5dcb9b434f6" +dependencies = [ + "kvdb", + "num_cpus", + "parking_lot 0.12.1", + "regex", + "rocksdb", + "smallvec", +] + +[[package]] +name = "lazy_static" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" + +[[package]] +name = "lazycell" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" + +[[package]] +name = "libc" +version = "0.2.153" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" + +[[package]] +name = "libloading" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c2a198fb6b0eada2a8df47933734e6d35d350665a33a3593d7164fa52c75c19" +dependencies = [ + "cfg-if", + "windows-targets 0.52.5", +] + +[[package]] +name = "libm" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" + +[[package]] +name = "libp2p" +version = "0.51.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f35eae38201a993ece6bdc823292d6abd1bffed1c4d0f4a3517d2bd8e1d917fe" +dependencies = [ + "bytes", + "futures", + "futures-timer", + "getrandom 0.2.14", + "instant", + "libp2p-allow-block-list", + "libp2p-connection-limits", + "libp2p-core", + "libp2p-dns", + "libp2p-identify", + "libp2p-identity", + "libp2p-kad", + "libp2p-mdns", + "libp2p-metrics", + "libp2p-noise", + "libp2p-ping", + "libp2p-quic", + "libp2p-request-response", + "libp2p-swarm", + "libp2p-tcp", + "libp2p-wasm-ext", + "libp2p-websocket", + "libp2p-yamux", + "multiaddr", + "pin-project", +] + +[[package]] +name = "libp2p-allow-block-list" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "510daa05efbc25184458db837f6f9a5143888f1caa742426d92e1833ddd38a50" +dependencies = [ + "libp2p-core", + "libp2p-identity", + "libp2p-swarm", + "void", +] + +[[package]] +name = "libp2p-connection-limits" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4caa33f1d26ed664c4fe2cca81a08c8e07d4c1c04f2f4ac7655c2dd85467fda0" +dependencies = [ + "libp2p-core", + "libp2p-identity", + "libp2p-swarm", + "void", +] + +[[package]] +name = "libp2p-core" +version = "0.39.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c1df63c0b582aa434fb09b2d86897fa2b419ffeccf934b36f87fcedc8e835c2" +dependencies = [ + "either", + "fnv", + "futures", + "futures-timer", + "instant", + "libp2p-identity", + "log", + "multiaddr", + "multihash", + "multistream-select", + "once_cell", + "parking_lot 0.12.1", + "pin-project", + "quick-protobuf", + "rand", + "rw-stream-sink", + "smallvec", + "thiserror", + "unsigned-varint", + "void", +] + +[[package]] +name = "libp2p-dns" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "146ff7034daae62077c415c2376b8057368042df6ab95f5432ad5e88568b1554" +dependencies = [ + "futures", + "libp2p-core", + "log", + "parking_lot 0.12.1", + "smallvec", + "trust-dns-resolver", +] + +[[package]] +name = "libp2p-identify" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5455f472243e63b9c497ff320ded0314254a9eb751799a39c283c6f20b793f3c" +dependencies = [ + "asynchronous-codec", + "either", + "futures", + "futures-timer", + "libp2p-core", + "libp2p-identity", + "libp2p-swarm", + "log", + "lru", + "quick-protobuf", + "quick-protobuf-codec", + "smallvec", + "thiserror", + "void", +] + +[[package]] +name = "libp2p-identity" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "276bb57e7af15d8f100d3c11cbdd32c6752b7eef4ba7a18ecf464972c07abcce" +dependencies = [ + "bs58 0.4.0", + "ed25519-dalek", + "log", + "multiaddr", + "multihash", + "quick-protobuf", + "rand", + "sha2 0.10.8", + "thiserror", + "zeroize", +] + +[[package]] +name = "libp2p-kad" +version = "0.43.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39d5ef876a2b2323d63c258e63c2f8e36f205fe5a11f0b3095d59635650790ff" +dependencies = [ + "arrayvec", + "asynchronous-codec", + "bytes", + "either", + "fnv", + "futures", + "futures-timer", + "instant", + "libp2p-core", + "libp2p-identity", + "libp2p-swarm", + "log", + "quick-protobuf", + "rand", + "sha2 0.10.8", + "smallvec", + "thiserror", + "uint", + "unsigned-varint", + "void", +] + +[[package]] +name = "libp2p-mdns" +version = "0.43.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19983e1f949f979a928f2c603de1cf180cc0dc23e4ac93a62651ccb18341460b" +dependencies = [ + "data-encoding", + "futures", + "if-watch", + "libp2p-core", + "libp2p-identity", + "libp2p-swarm", + "log", + "rand", + "smallvec", + "socket2 0.4.10", + "tokio", + "trust-dns-proto", + "void", +] + +[[package]] +name = "libp2p-metrics" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a42ec91e227d7d0dafa4ce88b333cdf5f277253873ab087555c92798db2ddd46" +dependencies = [ + "libp2p-core", + "libp2p-identify", + "libp2p-kad", + "libp2p-ping", + "libp2p-swarm", + "prometheus-client", +] + +[[package]] +name = "libp2p-noise" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c3673da89d29936bc6435bafc638e2f184180d554ce844db65915113f86ec5e" +dependencies = [ + "bytes", + "curve25519-dalek 3.2.0", + "futures", + "libp2p-core", + "libp2p-identity", + "log", + "once_cell", + "quick-protobuf", + "rand", + "sha2 0.10.8", + "snow", + "static_assertions", + "thiserror", + "x25519-dalek 1.1.1", + "zeroize", +] + +[[package]] +name = "libp2p-ping" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e57759c19c28a73ef1eb3585ca410cefb72c1a709fcf6de1612a378e4219202" +dependencies = [ + "either", + "futures", + "futures-timer", + "instant", + "libp2p-core", + "libp2p-swarm", + "log", + "rand", + "void", +] + +[[package]] +name = "libp2p-quic" +version = "0.7.0-alpha.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6b26abd81cd2398382a1edfe739b539775be8a90fa6914f39b2ab49571ec735" +dependencies = [ + "bytes", + "futures", + "futures-timer", + "if-watch", + "libp2p-core", + "libp2p-identity", + "libp2p-tls", + "log", + "parking_lot 0.12.1", + "quinn-proto", + "rand", + "rustls 0.20.9", + "thiserror", + "tokio", +] + +[[package]] +name = "libp2p-request-response" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ffdb374267d42dc5ed5bc53f6e601d4a64ac5964779c6e40bb9e4f14c1e30d5" +dependencies = [ + "async-trait", + "futures", + "instant", + "libp2p-core", + "libp2p-identity", + "libp2p-swarm", + "rand", + "smallvec", +] + +[[package]] +name = "libp2p-swarm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "903b3d592d7694e56204d211f29d31bc004be99386644ba8731fc3e3ef27b296" +dependencies = [ + "either", + "fnv", + "futures", + "futures-timer", + "instant", + "libp2p-core", + "libp2p-identity", + "libp2p-swarm-derive", + "log", + "rand", + "smallvec", + "tokio", + "void", +] + +[[package]] +name = "libp2p-swarm-derive" +version = "0.32.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fba456131824ab6acd4c7bf61e9c0f0a3014b5fc9868ccb8e10d344594cdc4f" +dependencies = [ + "heck 0.4.1", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "libp2p-tcp" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33d33698596d7722d85d3ab0c86c2c322254fce1241e91208e3679b4eb3026cf" +dependencies = [ + "futures", + "futures-timer", + "if-watch", + "libc", + "libp2p-core", + "log", + "socket2 0.4.10", + "tokio", +] + +[[package]] +name = "libp2p-tls" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff08d13d0dc66e5e9ba6279c1de417b84fa0d0adc3b03e5732928c180ec02781" +dependencies = [ + "futures", + "futures-rustls", + "libp2p-core", + "libp2p-identity", + "rcgen", + "ring 0.16.20", + "rustls 0.20.9", + "thiserror", + "webpki", + "x509-parser", + "yasna", +] + +[[package]] +name = "libp2p-wasm-ext" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77dff9d32353a5887adb86c8afc1de1a94d9e8c3bc6df8b2201d7cdf5c848f43" +dependencies = [ + "futures", + "js-sys", + "libp2p-core", + "parity-send-wrapper", + "wasm-bindgen", + "wasm-bindgen-futures", +] + +[[package]] +name = "libp2p-websocket" +version = "0.41.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "111273f7b3d3510524c752e8b7a5314b7f7a1fee7e68161c01a7d72cbb06db9f" +dependencies = [ + "either", + "futures", + "futures-rustls", + "libp2p-core", + "log", + "parking_lot 0.12.1", + "quicksink", + "rw-stream-sink", + "soketto", + "url", + "webpki-roots", +] + +[[package]] +name = "libp2p-yamux" +version = "0.43.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4dcd21d950662700a385d4c6d68e2f5f54d778e97068cdd718522222ef513bda" +dependencies = [ + "futures", + "libp2p-core", + "log", + "thiserror", + "yamux", +] + +[[package]] +name = "libredox" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" +dependencies = [ + "bitflags 2.5.0", + "libc", +] + +[[package]] +name = "librocksdb-sys" +version = "0.11.0+8.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3386f101bcb4bd252d8e9d2fb41ec3b0862a15a62b478c355b2982efa469e3e" +dependencies = [ + "bindgen", + "bzip2-sys", + "cc", + "glob", + "libc", + "libz-sys", + "tikv-jemalloc-sys", +] + +[[package]] +name = "libsecp256k1" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95b09eff1b35ed3b33b877ced3a691fc7a481919c7e29c53c906226fcf55e2a1" +dependencies = [ + "arrayref", + "base64 0.13.1", + "digest 0.9.0", + "hmac-drbg", + "libsecp256k1-core", + "libsecp256k1-gen-ecmult", + "libsecp256k1-gen-genmult", + "rand", + "serde", + "sha2 0.9.9", + "typenum", +] + +[[package]] +name = "libsecp256k1-core" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5be9b9bb642d8522a44d533eab56c16c738301965504753b03ad1de3425d5451" +dependencies = [ + "crunchy", + "digest 0.9.0", + "subtle 2.5.0", +] + +[[package]] +name = "libsecp256k1-gen-ecmult" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3038c808c55c87e8a172643a7d87187fc6c4174468159cb3090659d55bcb4809" +dependencies = [ + "libsecp256k1-core", +] + +[[package]] +name = "libsecp256k1-gen-genmult" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3db8d6ba2cec9eacc40e6e8ccc98931840301f1006e95647ceb2dd5c3aa06f7c" +dependencies = [ + "libsecp256k1-core", +] + +[[package]] +name = "libsqlite3-sys" +version = "0.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf4e226dcd58b4be396f7bd3c20da8fdee2911400705297ba7d2d7cc2c30f716" +dependencies = [ + "cc", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "libz-sys" +version = "1.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e143b5e666b2695d28f6bca6497720813f699c9602dd7f5cac91008b8ada7f9" +dependencies = [ + "cc", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "link-cplusplus" +version = "1.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d240c6f7e1ba3a28b0249f774e6a9dd0175054b52dfbb61b16eb8505c3785c9" +dependencies = [ + "cc", +] + +[[package]] +name = "linked-hash-map" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" + +[[package]] +name = "linked_hash_set" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47186c6da4d81ca383c7c47c1bfc80f4b95f4720514d860a5407aaf4233f9588" +dependencies = [ + "linked-hash-map", +] + +[[package]] +name = "linregress" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4de04dcecc58d366391f9920245b85ffa684558a5ef6e7736e754347c3aea9c2" +dependencies = [ + "nalgebra", +] + +[[package]] +name = "linux-raw-sys" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f051f77a7c8e6957c0696eac88f26b0117e54f52d3fc682ab19397a8812846a4" + +[[package]] +name = "linux-raw-sys" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c" + +[[package]] +name = "lioness" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ae926706ba42c425c9457121178330d75e273df2e82e28b758faf3de3a9acb9" +dependencies = [ + "arrayref", + "blake2 0.8.1", + "chacha", + "keystream", +] + +[[package]] +name = "lock_api" +version = "0.4.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45" +dependencies = [ + "autocfg", + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c" + +[[package]] +name = "lru" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "718e8fae447df0c7e1ba7f5189829e63fd536945c8988d61444c19039f16b670" +dependencies = [ + "hashbrown 0.13.2", +] + +[[package]] +name = "lru-cache" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31e24f1ad8321ca0e8a1e0ac13f23cb668e6f5466c2c57319f6a5cf1cc8e3b1c" +dependencies = [ + "linked-hash-map", +] + +[[package]] +name = "lz4" +version = "1.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e9e2dd86df36ce760a60f6ff6ad526f7ba1f14ba0356f8254fb6905e6494df1" +dependencies = [ + "libc", + "lz4-sys", +] + +[[package]] +name = "lz4-sys" +version = "1.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57d27b317e207b10f69f5e75494119e391a96f48861ae870d1da6edac98ca900" +dependencies = [ + "cc", + "libc", +] + +[[package]] +name = "mach" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b823e83b2affd8f40a9ee8c29dbc56404c1e34cd2710921f2801e2cf29527afa" +dependencies = [ + "libc", +] + +[[package]] +name = "macro_magic" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e03844fc635e92f3a0067e25fa4bf3e3dbf3f2927bf3aa01bb7bc8f1c428949d" +dependencies = [ + "macro_magic_core", + "macro_magic_macros", + "quote", + "syn 2.0.60", +] + +[[package]] +name = "macro_magic_core" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "468155613a44cfd825f1fb0ffa532b018253920d404e6fca1e8d43155198a46d" +dependencies = [ + "const-random", + "derive-syn-parse 0.1.5", + "macro_magic_core_macros", + "proc-macro2", + "quote", + "syn 2.0.60", +] + +[[package]] +name = "macro_magic_core_macros" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ea73aa640dc01d62a590d48c0c3521ed739d53b27f919b25c3551e233481654" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.60", +] + +[[package]] +name = "macro_magic_macros" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef9d79ae96aaba821963320eb2b6e34d17df1e5a83d8a1985c29cc5be59577b3" +dependencies = [ + "macro_magic_core", + "quote", + "syn 2.0.60", +] + +[[package]] +name = "match_cfg" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4" + +[[package]] +name = "matchers" +version = "0.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f099785f7595cc4b4553a174ce30dd7589ef93391ff414dbb67f62392b9e0ce1" +dependencies = [ + "regex-automata 0.1.10", +] + +[[package]] +name = "matchers" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" +dependencies = [ + "regex-automata 0.1.10", +] + +[[package]] +name = "matches" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5" + +[[package]] +name = "matrixmultiply" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7574c1cf36da4798ab73da5b215bbf444f50718207754cb522201d78d1cd0ff2" +dependencies = [ + "autocfg", + "rawpointer", +] + +[[package]] +name = "memchr" +version = "2.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d" + +[[package]] +name = "memfd" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2cffa4ad52c6f791f4f8b15f0c05f9824b2ced1160e88cc393d64fff9a8ac64" +dependencies = [ + "rustix 0.38.32", +] + +[[package]] +name = "memmap2" +version = "0.5.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83faa42c0a078c393f6b29d5db232d8be22776a891f8f56e5284faee4a20b327" +dependencies = [ + "libc", +] + +[[package]] +name = "memmap2" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe751422e4a8caa417e13c3ea66452215d7d63e19e604f4980461212f3ae1322" +dependencies = [ + "libc", +] + +[[package]] +name = "memoffset" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d61c719bcfbcf5d62b3a09efa6088de8c54bc0bfcd3ea7ae39fcc186108b8de1" +dependencies = [ + "autocfg", +] + +[[package]] +name = "memory-db" +version = "0.32.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "808b50db46293432a45e63bc15ea51e0ab4c0a1647b8eb114e31a3e698dd6fbe" +dependencies = [ + "hash-db", +] + +[[package]] +name = "merlin" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58c38e2799fc0978b65dfff8023ec7843e2330bb462f19198840b34b6582397d" +dependencies = [ + "byteorder", + "keccak", + "rand_core 0.6.4", + "zeroize", +] + +[[package]] +name = "minimal-lexical" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" + +[[package]] +name = "miniz_oxide" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7" +dependencies = [ + "adler", +] + +[[package]] +name = "mio" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c" +dependencies = [ + "libc", + "wasi 0.11.0+wasi-snapshot-preview1", + "windows-sys 0.48.0", +] + +[[package]] +name = "mixnet" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daa3eb39495d8e2e2947a1d862852c90cc6a4a8845f8b41c8829cb9fcc047f4a" +dependencies = [ + "arrayref", + "arrayvec", + "bitflags 1.3.2", + "blake2 0.10.6", + "c2-chacha", + "curve25519-dalek 4.1.2", + "either", + "hashlink", + "lioness", + "log", + "parking_lot 0.12.1", + "rand", + "rand_chacha", + "rand_distr", + "subtle 2.5.0", + "thiserror", + "zeroize", +] + +[[package]] +name = "mockall" +version = "0.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c84490118f2ee2d74570d114f3d0493cbf02790df303d2707606c3e14e07c96" +dependencies = [ + "cfg-if", + "downcast", + "fragile", + "lazy_static", + "mockall_derive", + "predicates", + "predicates-tree", +] + +[[package]] +name = "mockall_derive" +version = "0.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22ce75669015c4f47b289fd4d4f56e894e4c96003ffdf3ac51313126f94c6cbb" +dependencies = [ + "cfg-if", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "multiaddr" +version = "0.17.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b36f567c7099511fa8612bbbb52dda2419ce0bdbacf31714e3a5ffdb766d3bd" +dependencies = [ + "arrayref", + "byteorder", + "data-encoding", + "log", + "multibase", + "multihash", + "percent-encoding", + "serde", + "static_assertions", + "unsigned-varint", + "url", +] + +[[package]] +name = "multibase" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b3539ec3c1f04ac9748a260728e855f261b4977f5c3406612c884564f329404" +dependencies = [ + "base-x", + "data-encoding", + "data-encoding-macro", +] + +[[package]] +name = "multihash" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "835d6ff01d610179fbce3de1694d007e500bf33a7f29689838941d6bf783ae40" +dependencies = [ + "blake2b_simd", + "blake2s_simd", + "blake3", + "core2", + "digest 0.10.7", + "multihash-derive", + "sha2 0.10.8", + "sha3", + "unsigned-varint", +] + +[[package]] +name = "multihash-derive" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d6d4752e6230d8ef7adf7bd5d8c4b1f6561c1014c5ba9a37445ccefe18aa1db" +dependencies = [ + "proc-macro-crate 1.1.3", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 1.0.109", + "synstructure", +] + +[[package]] +name = "multimap" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6a" + +[[package]] +name = "multistream-select" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8552ab875c1313b97b8d20cb857b9fd63e2d1d6a0a1b53ce9821e575405f27a" +dependencies = [ + "bytes", + "futures", + "log", + "pin-project", + "smallvec", + "unsigned-varint", +] + +[[package]] +name = "nalgebra" +version = "0.32.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ea4908d4f23254adda3daa60ffef0f1ac7b8c3e9a864cf3cc154b251908a2ef" +dependencies = [ + "approx", + "matrixmultiply", + "nalgebra-macros", + "num-complex", + "num-rational", + "num-traits", + "simba", + "typenum", +] + +[[package]] +name = "nalgebra-macros" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91761aed67d03ad966ef783ae962ef9bbaca728d2dd7ceb7939ec110fffad998" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "names" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7bddcd3bf5144b6392de80e04c347cd7fab2508f6df16a85fc496ecd5cec39bc" +dependencies = [ + "rand", +] + +[[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", + "openssl", + "openssl-probe", + "openssl-sys", + "schannel", + "security-framework", + "security-framework-sys", + "tempfile", +] + +[[package]] +name = "netlink-packet-core" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "345b8ab5bd4e71a2986663e88c56856699d060e78e152e6e9d7966fcd5491297" +dependencies = [ + "anyhow", + "byteorder", + "libc", + "netlink-packet-utils", +] + +[[package]] +name = "netlink-packet-route" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9ea4302b9759a7a88242299225ea3688e63c85ea136371bb6cf94fd674efaab" +dependencies = [ + "anyhow", + "bitflags 1.3.2", + "byteorder", + "libc", + "netlink-packet-core", + "netlink-packet-utils", +] + +[[package]] +name = "netlink-packet-utils" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ede8a08c71ad5a95cdd0e4e52facd37190977039a4704eb82a283f713747d34" +dependencies = [ + "anyhow", + "byteorder", + "paste", + "thiserror", +] + +[[package]] +name = "netlink-proto" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "65b4b14489ab424703c092062176d52ba55485a89c076b4f9db05092b7223aa6" +dependencies = [ + "bytes", + "futures", + "log", + "netlink-packet-core", + "netlink-sys", + "thiserror", + "tokio", +] + +[[package]] +name = "netlink-sys" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "416060d346fbaf1f23f9512963e3e878f1a78e707cb699ba9215761754244307" +dependencies = [ + "bytes", + "futures", + "libc", + "log", + "tokio", +] + +[[package]] +name = "nix" +version = "0.24.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa52e972a9a719cecb6864fb88568781eb706bac2cd1d4f04a648542dbf78069" +dependencies = [ + "bitflags 1.3.2", + "cfg-if", + "libc", +] + +[[package]] +name = "no-std-compat" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b93853da6d84c2e3c7d730d6473e8817692dd89be387eb01b94d7f108ecb5b8c" + +[[package]] +name = "nohash-hasher" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2bf50223579dc7cdcfb3bfcacf7069ff68243f8c363f62ffa99cf000a6b9c451" + +[[package]] +name = "nom" +version = "7.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" +dependencies = [ + "memchr", + "minimal-lexical", +] + +[[package]] +name = "nonzero_ext" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38bf9645c8b145698bb0b18a4637dcacbc421ea49bef2317e4fd8065a387cf21" + +[[package]] +name = "normalize-line-endings" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be" + +[[package]] +name = "nu-ansi-term" +version = "0.46.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" +dependencies = [ + "overload", + "winapi", +] + +[[package]] +name = "num" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3135b08af27d103b0a51f2ae0f8632117b7b185ccf931445affa8df530576a41" +dependencies = [ + "num-bigint", + "num-complex", + "num-integer", + "num-iter", + "num-rational", + "num-traits", +] + +[[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-complex" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23c6602fda94a57c990fe0df199a035d83576b496aa29f4e634a8ac6004e68a6" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-conv" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" + +[[package]] +name = "num-format" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a652d9771a63711fd3c3deb670acfbe5c30a4072e664d7a3bf5a9e1056ac72c3" +dependencies = [ + "arrayvec", + "itoa", +] + +[[package]] +name = "num-integer" +version = "0.1.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-iter" +version = "0.1.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d869c01cc0c455284163fd0092f1f93835385ccab5a98a0dcc497b2f8bf055a9" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-rational" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0" +dependencies = [ + "autocfg", + "num-bigint", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a" +dependencies = [ + "autocfg", + "libm", +] + +[[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.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02339744ee7253741199f897151b38e72257d13802d4ee837285cc2990a90845" +dependencies = [ + "num_enum_derive", +] + +[[package]] +name = "num_enum_derive" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "681030a937600a36906c185595136d26abfebb4aa9c65701cefcaf8578bb982b" +dependencies = [ + "proc-macro-crate 3.1.0", + "proc-macro2", + "quote", + "syn 2.0.60", +] + +[[package]] +name = "object" +version = "0.30.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03b4680b86d9cfafba8fc491dc9b6df26b68cf40e9e6cd73909194759a63c385" +dependencies = [ + "crc32fast", + "hashbrown 0.13.2", + "indexmap 1.9.3", + "memchr", +] + +[[package]] +name = "object" +version = "0.32.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441" +dependencies = [ + "memchr", +] + +[[package]] +name = "oid-registry" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9bedf36ffb6ba96c2eb7144ef6270557b52e54b20c0a8e1eb2ff99a6c6959bff" +dependencies = [ + "asn1-rs", +] + +[[package]] +name = "once_cell" +version = "1.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" + +[[package]] +name = "opaque-debug" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529c" + +[[package]] +name = "opaque-debug" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" + +[[package]] +name = "openssl" +version = "0.10.64" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95a0481286a310808298130d22dd1fef0fa571e05a8f44ec801801e84b216b1f" +dependencies = [ + "bitflags 2.5.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.60", +] + +[[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.102" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c597637d56fbc83893a35eb0dd04b2b8e7a50c91e64e9493e398b5df4fb45fa2" +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 = "overload" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" + +[[package]] +name = "pallet-assets" +version = "29.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "log", + "parity-scale-codec", + "scale-info", + "sp-core", + "sp-runtime", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", +] + +[[package]] +name = "pallet-aura" +version = "27.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "frame-support", + "frame-system", + "log", + "pallet-timestamp", + "parity-scale-codec", + "scale-info", + "sp-application-crypto", + "sp-consensus-aura", + "sp-runtime", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", +] + +[[package]] +name = "pallet-authorship" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "frame-support", + "frame-system", + "impl-trait-for-tuples", + "parity-scale-codec", + "scale-info", + "sp-runtime", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", +] + +[[package]] +name = "pallet-balances" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "docify", + "frame-benchmarking", + "frame-support", + "frame-system", + "log", + "parity-scale-codec", + "scale-info", + "sp-runtime", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", +] + +[[package]] +name = "pallet-base-fee" +version = "1.0.0" +source = "git+https://github.com/polkadot-evm/frontier?branch=master#7e4a4e2b2e0635d5ba193de73d75fb708f4b339f" +dependencies = [ + "fp-evm", + "frame-support", + "frame-system", + "parity-scale-codec", + "scale-info", + "sp-core", + "sp-runtime", +] + +[[package]] +name = "pallet-contracts" +version = "27.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "bitflags 1.3.2", + "environmental", + "frame-benchmarking", + "frame-support", + "frame-system", + "impl-trait-for-tuples", + "log", + "pallet-balances", + "pallet-contracts-proc-macro", + "pallet-contracts-uapi", + "parity-scale-codec", + "rand", + "scale-info", + "serde", + "smallvec", + "sp-api", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "staging-xcm", + "staging-xcm-builder", + "wasm-instrument", + "wasmi", +] + +[[package]] +name = "pallet-contracts-proc-macro" +version = "18.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.60", +] + +[[package]] +name = "pallet-contracts-uapi" +version = "5.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "bitflags 1.3.2", + "parity-scale-codec", + "paste", + "polkavm-derive 0.5.0", + "scale-info", +] + +[[package]] +name = "pallet-dynamic-fee" +version = "4.0.0-dev" +source = "git+https://github.com/polkadot-evm/frontier?branch=master#7e4a4e2b2e0635d5ba193de73d75fb708f4b339f" +dependencies = [ + "fp-dynamic-fee", + "fp-evm", + "frame-support", + "frame-system", + "parity-scale-codec", + "scale-info", + "sp-core", + "sp-inherents", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", +] + +[[package]] +name = "pallet-ethereum" +version = "4.0.0-dev" +source = "git+https://github.com/polkadot-evm/frontier?branch=master#7e4a4e2b2e0635d5ba193de73d75fb708f4b339f" +dependencies = [ + "ethereum", + "ethereum-types", + "evm", + "fp-consensus", + "fp-ethereum", + "fp-evm", + "fp-rpc", + "fp-storage", + "frame-support", + "frame-system", + "pallet-evm", + "parity-scale-codec", + "scale-info", + "sp-io", + "sp-runtime", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", +] + +[[package]] +name = "pallet-evm" +version = "6.0.0-dev" +source = "git+https://github.com/polkadot-evm/frontier?branch=master#7e4a4e2b2e0635d5ba193de73d75fb708f4b339f" +dependencies = [ + "environmental", + "evm", + "fp-account", + "fp-evm", + "frame-benchmarking", + "frame-support", + "frame-system", + "hash-db", + "hex", + "hex-literal", + "impl-trait-for-tuples", + "log", + "parity-scale-codec", + "rlp", + "scale-info", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", +] + +[[package]] +name = "pallet-evm-chain-id" +version = "1.0.0-dev" +source = "git+https://github.com/polkadot-evm/frontier?branch=master#7e4a4e2b2e0635d5ba193de73d75fb708f4b339f" +dependencies = [ + "frame-support", + "frame-system", + "parity-scale-codec", + "scale-info", +] + +[[package]] +name = "pallet-evm-precompile-modexp" +version = "2.0.0-dev" +source = "git+https://github.com/polkadot-evm/frontier?branch=master#7e4a4e2b2e0635d5ba193de73d75fb708f4b339f" +dependencies = [ + "fp-evm", + "num", +] + +[[package]] +name = "pallet-evm-precompile-sha3fips" +version = "2.0.0-dev" +source = "git+https://github.com/polkadot-evm/frontier?branch=master#7e4a4e2b2e0635d5ba193de73d75fb708f4b339f" +dependencies = [ + "fp-evm", + "tiny-keccak", +] + +[[package]] +name = "pallet-evm-precompile-simple" +version = "2.0.0-dev" +source = "git+https://github.com/polkadot-evm/frontier?branch=master#7e4a4e2b2e0635d5ba193de73d75fb708f4b339f" +dependencies = [ + "fp-evm", + "ripemd", + "sp-io", +] + +[[package]] +name = "pallet-grandpa" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "log", + "pallet-authorship", + "pallet-session", + "parity-scale-codec", + "scale-info", + "sp-application-crypto", + "sp-consensus-grandpa", + "sp-core", + "sp-io", + "sp-runtime", + "sp-session", + "sp-staking", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", +] + +[[package]] +name = "pallet-hotfix-sufficients" +version = "1.0.0" +source = "git+https://github.com/polkadot-evm/frontier?branch=master#7e4a4e2b2e0635d5ba193de73d75fb708f4b339f" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "pallet-evm", + "parity-scale-codec", + "scale-info", + "sp-core", + "sp-runtime", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", +] + +[[package]] +name = "pallet-im-online" +version = "27.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "log", + "pallet-authorship", + "parity-scale-codec", + "scale-info", + "sp-application-crypto", + "sp-core", + "sp-io", + "sp-runtime", + "sp-staking", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", +] + +[[package]] +name = "pallet-indices" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "parity-scale-codec", + "scale-info", + "sp-core", + "sp-io", + "sp-keyring", + "sp-runtime", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", +] + +[[package]] +name = "pallet-insecure-randomness-collective-flip" +version = "16.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "frame-support", + "frame-system", + "parity-scale-codec", + "safe-mix", + "scale-info", + "sp-runtime", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", +] + +[[package]] +name = "pallet-multisig" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "log", + "parity-scale-codec", + "scale-info", + "sp-io", + "sp-runtime", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", +] + +[[package]] +name = "pallet-parameters" +version = "0.0.1" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "docify", + "frame-benchmarking", + "frame-support", + "frame-system", + "parity-scale-codec", + "paste", + "scale-info", + "serde", + "sp-core", + "sp-runtime", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", +] + +[[package]] +name = "pallet-recovery" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "parity-scale-codec", + "scale-info", + "sp-io", + "sp-runtime", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", +] + +[[package]] +name = "pallet-session" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "frame-support", + "frame-system", + "impl-trait-for-tuples", + "log", + "pallet-timestamp", + "parity-scale-codec", + "scale-info", + "sp-core", + "sp-io", + "sp-runtime", + "sp-session", + "sp-staking", + "sp-state-machine", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "sp-trie", +] + +[[package]] +name = "pallet-sudo" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "docify", + "frame-benchmarking", + "frame-support", + "frame-system", + "parity-scale-codec", + "scale-info", + "sp-io", + "sp-runtime", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", +] + +[[package]] +name = "pallet-timestamp" +version = "27.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "docify", + "frame-benchmarking", + "frame-support", + "frame-system", + "log", + "parity-scale-codec", + "scale-info", + "sp-inherents", + "sp-io", + "sp-runtime", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "sp-timestamp", +] + +[[package]] +name = "pallet-transaction-payment" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "frame-support", + "frame-system", + "parity-scale-codec", + "scale-info", + "serde", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", +] + +[[package]] +name = "pallet-transaction-payment-rpc" +version = "30.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "jsonrpsee", + "pallet-transaction-payment-rpc-runtime-api", + "parity-scale-codec", + "sp-api", + "sp-blockchain", + "sp-core", + "sp-rpc", + "sp-runtime", + "sp-weights", +] + +[[package]] +name = "pallet-transaction-payment-rpc-runtime-api" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "pallet-transaction-payment", + "parity-scale-codec", + "sp-api", + "sp-runtime", + "sp-weights", +] + +[[package]] +name = "pallet-uniques" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "log", + "parity-scale-codec", + "scale-info", + "sp-runtime", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", +] + +[[package]] +name = "parity-bip39" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e69bf016dc406eff7d53a7d3f7cf1c2e72c82b9088aac1118591e36dd2cd3e9" +dependencies = [ + "bitcoin_hashes", + "rand", + "rand_core 0.6.4", + "serde", + "unicode-normalization", +] + +[[package]] +name = "parity-db" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "592a28a24b09c9dc20ac8afaa6839abc417c720afe42c12e1e4a9d6aa2508d2e" +dependencies = [ + "blake2 0.10.6", + "crc32fast", + "fs2", + "hex", + "libc", + "log", + "lz4", + "memmap2 0.5.10", + "parking_lot 0.12.1", + "rand", + "siphasher", + "snap", + "winapi", +] + +[[package]] +name = "parity-scale-codec" +version = "3.6.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "881331e34fa842a2fb61cc2db9643a8fedc615e47cfcc52597d1af0db9a7e8fe" +dependencies = [ + "arrayvec", + "bitvec", + "byte-slice-cast", + "bytes", + "impl-trait-for-tuples", + "parity-scale-codec-derive", + "serde", +] + +[[package]] +name = "parity-scale-codec-derive" +version = "3.6.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be30eaf4b0a9fba5336683b38de57bb86d179a35862ba6bfcf57625d006bde5b" +dependencies = [ + "proc-macro-crate 2.0.0", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "parity-send-wrapper" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa9777aa91b8ad9dd5aaa04a9b6bcb02c7f1deb952fca5a66034d5e63afc5c6f" + +[[package]] +name = "parity-wasm" +version = "0.45.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1ad0aff30c1da14b1254fcb2af73e1fa9a28670e584a626f53a369d0e157304" + +[[package]] +name = "parking" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae" + +[[package]] +name = "parking_lot" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" +dependencies = [ + "instant", + "lock_api", + "parking_lot_core 0.8.6", +] + +[[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 0.9.9", +] + +[[package]] +name = "parking_lot_core" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc" +dependencies = [ + "cfg-if", + "instant", + "libc", + "redox_syscall 0.2.16", + "smallvec", + "winapi", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall 0.4.1", + "smallvec", + "windows-targets 0.48.5", +] + +[[package]] +name = "partial_sort" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7924d1d0ad836f665c9065e26d016c673ece3993f30d340068b16f282afc1156" + +[[package]] +name = "password-hash" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "346f04948ba92c43e8469c1ee6736c7563d71012b17d40745260fe106aac2166" +dependencies = [ + "base64ct", + "rand_core 0.6.4", + "subtle 2.5.0", +] + +[[package]] +name = "paste" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" + +[[package]] +name = "pbkdf2" +version = "0.12.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2" +dependencies = [ + "digest 0.10.7", + "password-hash", +] + +[[package]] +name = "peeking_take_while" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099" + +[[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.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" + +[[package]] +name = "pest" +version = "2.7.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "311fb059dee1a7b802f036316d790138c613a4e8b180c822e3925a662e9f0c95" +dependencies = [ + "memchr", + "thiserror", + "ucd-trie", +] + +[[package]] +name = "pest_derive" +version = "2.7.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f73541b156d32197eecda1a4014d7f868fd2bcb3c550d5386087cfba442bf69c" +dependencies = [ + "pest", + "pest_generator", +] + +[[package]] +name = "pest_generator" +version = "2.7.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c35eeed0a3fab112f75165fdc026b3913f4183133f19b49be773ac9ea966e8bd" +dependencies = [ + "pest", + "pest_meta", + "proc-macro2", + "quote", + "syn 2.0.60", +] + +[[package]] +name = "pest_meta" +version = "2.7.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2adbf29bb9776f28caece835398781ab24435585fe0d4dc1374a61db5accedca" +dependencies = [ + "once_cell", + "pest", + "sha2 0.10.8", +] + +[[package]] +name = "petgraph" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9" +dependencies = [ + "fixedbitset", + "indexmap 2.2.6", +] + +[[package]] +name = "pin-project" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3" +dependencies = [ + "pin-project-internal", +] + +[[package]] +name = "pin-project-internal" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.60", +] + +[[package]] +name = "pin-project-lite" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "257b64915a082f7811703966789728173279bdebb956b143dbcd23f6f970a777" + +[[package]] +name = "pin-project-lite" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" + +[[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.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" + +[[package]] +name = "platforms" +version = "3.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db23d408679286588f4d4644f965003d056e3dd5abcaaa938116871d7ce2fee7" + +[[package]] +name = "polkadot-core-primitives" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "parity-scale-codec", + "scale-info", + "sp-core", + "sp-runtime", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", +] + +[[package]] +name = "polkadot-parachain-primitives" +version = "6.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "bounded-collections", + "derive_more", + "parity-scale-codec", + "polkadot-core-primitives", + "scale-info", + "serde", + "sp-core", + "sp-runtime", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "sp-weights", +] + +[[package]] +name = "polkavm" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a3693e5efdb2bf74e449cd25fd777a28bd7ed87e41f5d5da75eb31b4de48b94" +dependencies = [ + "libc", + "log", + "polkavm-assembler", + "polkavm-common 0.9.0", + "polkavm-linux-raw", +] + +[[package]] +name = "polkavm-assembler" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fa96d6d868243acc12de813dd48e756cbadcc8e13964c70d272753266deadc1" +dependencies = [ + "log", +] + +[[package]] +name = "polkavm-common" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88b4e215c80fe876147f3d58158d5dfeae7dabdd6047e175af77095b78d0035c" + +[[package]] +name = "polkavm-common" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d9428a5cfcc85c5d7b9fc4b6a18c4b802d0173d768182a51cc7751640f08b92" +dependencies = [ + "log", +] + +[[package]] +name = "polkavm-derive" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6380dbe1fb03ecc74ad55d841cfc75480222d153ba69ddcb00977866cbdabdb8" +dependencies = [ + "polkavm-derive-impl 0.5.0", + "syn 2.0.60", +] + +[[package]] +name = "polkavm-derive" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae8c4bea6f3e11cd89bb18bcdddac10bd9a24015399bd1c485ad68a985a19606" +dependencies = [ + "polkavm-derive-impl-macro", +] + +[[package]] +name = "polkavm-derive-impl" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc8211b3365bbafb2fb32057d68b0e1ca55d079f5cf6f9da9b98079b94b3987d" +dependencies = [ + "polkavm-common 0.5.0", + "proc-macro2", + "quote", + "syn 2.0.60", +] + +[[package]] +name = "polkavm-derive-impl" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c4fdfc49717fb9a196e74a5d28e0bc764eb394a2c803eb11133a31ac996c60c" +dependencies = [ + "polkavm-common 0.9.0", + "proc-macro2", + "quote", + "syn 2.0.60", +] + +[[package]] +name = "polkavm-derive-impl-macro" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ba81f7b5faac81e528eb6158a6f3c9e0bb1008e0ffa19653bc8dea925ecb429" +dependencies = [ + "polkavm-derive-impl 0.9.0", + "syn 2.0.60", +] + +[[package]] +name = "polkavm-linker" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c7be503e60cf56c0eb785f90aaba4b583b36bff00e93997d93fef97f9553c39" +dependencies = [ + "gimli 0.28.1", + "hashbrown 0.14.3", + "log", + "object 0.32.2", + "polkavm-common 0.9.0", + "regalloc2 0.9.3", + "rustc-demangle", +] + +[[package]] +name = "polkavm-linux-raw" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26e85d3456948e650dff0cfc85603915847faf893ed1e66b020bb82ef4557120" + +[[package]] +name = "polling" +version = "3.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0c976a60b2d7e99d6f229e414670a9b85d13ac305cc6d1e9c134de58c5aaaf6" +dependencies = [ + "cfg-if", + "concurrent-queue", + "hermit-abi", + "pin-project-lite 0.2.14", + "rustix 0.38.32", + "tracing", + "windows-sys 0.52.0", +] + +[[package]] +name = "poly1305" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8159bd90725d2df49889a078b54f4f79e87f1f8a8444194cdca81d38f5393abf" +dependencies = [ + "cpufeatures", + "opaque-debug 0.3.1", + "universal-hash", +] + +[[package]] +name = "polyval" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d1fe60d06143b2430aa532c94cfe9e29783047f06c0d7fd359a9a51b729fa25" +dependencies = [ + "cfg-if", + "cpufeatures", + "opaque-debug 0.3.1", + "universal-hash", +] + +[[package]] +name = "portable-atomic" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7170ef9988bc169ba16dd36a7fa041e5c4cbeb6a35b76d4c03daded371eae7c0" + +[[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 = "predicates" +version = "2.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59230a63c37f3e18569bdb90e4a89cbf5bf8b06fea0b84e65ea10cc4df47addd" +dependencies = [ + "difflib", + "float-cmp", + "itertools 0.10.5", + "normalize-line-endings", + "predicates-core", + "regex", +] + +[[package]] +name = "predicates-core" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b794032607612e7abeb4db69adb4e33590fa6cf1149e95fd7cb00e634b92f174" + +[[package]] +name = "predicates-tree" +version = "1.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "368ba315fb8c5052ab692e68a0eefec6ec57b23a36959c14496f0b0df2c0cecf" +dependencies = [ + "predicates-core", + "termtree", +] + +[[package]] +name = "prettier-please" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22020dfcf177fcc7bf5deaf7440af371400c67c0de14c399938d8ed4fb4645d3" +dependencies = [ + "proc-macro2", + "syn 2.0.60", +] + +[[package]] +name = "prettyplease" +version = "0.1.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f28f53e8b192565862cf99343194579a022eb9c7dd3a8d03134734803c7b3125" +dependencies = [ + "proc-macro2", + "syn 1.0.109", +] + +[[package]] +name = "prettyplease" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ac2cf0f2e4f42b49f5ffd07dae8d746508ef7526c13940e5f524012ae6c6550" +dependencies = [ + "proc-macro2", + "syn 2.0.60", +] + +[[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.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e17d47ce914bf4de440332250b0edd23ce48c005f59fab39d3335866b114f11a" +dependencies = [ + "thiserror", + "toml 0.5.11", +] + +[[package]] +name = "proc-macro-crate" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e8366a6159044a37876a2b9817124296703c586a5c92e2c53751fa06d8d43e8" +dependencies = [ + "toml_edit 0.20.7", +] + +[[package]] +name = "proc-macro-crate" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284" +dependencies = [ + "toml_edit 0.21.1", +] + +[[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-macro-warning" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "834da187cfe638ae8abb0203f0b33e5ccdb02a28e7199f2f47b3e2754f50edca" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.60", +] + +[[package]] +name = "proc-macro2" +version = "1.0.81" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d1597b0c024618f09a9c3b8655b7e430397a36d23fdafec26d6965e9eec3eba" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "prometheus" +version = "0.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "449811d15fbdf5ceb5c1144416066429cf82316e2ec8ce0c1f6f8a02e7bbcf8c" +dependencies = [ + "cfg-if", + "fnv", + "lazy_static", + "memchr", + "parking_lot 0.12.1", + "thiserror", +] + +[[package]] +name = "prometheus-client" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d6fa99d535dd930d1249e6c79cb3c2915f9172a540fe2b02a4c8f9ca954721e" +dependencies = [ + "dtoa", + "itoa", + "parking_lot 0.12.1", + "prometheus-client-derive-encode", +] + +[[package]] +name = "prometheus-client-derive-encode" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "440f724eba9f6996b75d63681b0a92b06947f1457076d503a4d2e2c8f56442b8" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.60", +] + +[[package]] +name = "prost" +version = "0.11.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b82eaa1d779e9a4bc1c3217db8ffbeabaae1dca241bf70183242128d48681cd" +dependencies = [ + "bytes", + "prost-derive 0.11.9", +] + +[[package]] +name = "prost" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0f5d036824e4761737860779c906171497f6d55681139d8312388f8fe398922" +dependencies = [ + "bytes", + "prost-derive 0.12.4", +] + +[[package]] +name = "prost-build" +version = "0.11.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "119533552c9a7ffacc21e099c24a0ac8bb19c2a2a3f363de84cd9b844feab270" +dependencies = [ + "bytes", + "heck 0.4.1", + "itertools 0.10.5", + "lazy_static", + "log", + "multimap", + "petgraph", + "prettyplease 0.1.11", + "prost 0.11.9", + "prost-types", + "regex", + "syn 1.0.109", + "tempfile", + "which", +] + +[[package]] +name = "prost-derive" +version = "0.11.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5d2d8d10f3c6ded6da8b05b5fb3b8a5082514344d56c9f871412d29b4e075b4" +dependencies = [ + "anyhow", + "itertools 0.10.5", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "prost-derive" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19de2de2a00075bf566bee3bd4db014b11587e84184d3f7a791bc17f1a8e9e48" +dependencies = [ + "anyhow", + "itertools 0.12.1", + "proc-macro2", + "quote", + "syn 2.0.60", +] + +[[package]] +name = "prost-types" +version = "0.11.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "213622a1460818959ac1181aaeb2dc9c7f63df720db7d788b3e24eacd1983e13" +dependencies = [ + "prost 0.11.9", +] + +[[package]] +name = "psm" +version = "0.1.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5787f7cda34e3033a72192c018bc5883100330f362ef279a8cbccfce8bb4e874" +dependencies = [ + "cc", +] + +[[package]] +name = "quanta" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e5167a477619228a0b284fac2674e3c388cba90631d7b7de620e6f1fcd08da5" +dependencies = [ + "crossbeam-utils", + "libc", + "once_cell", + "raw-cpuid", + "wasi 0.11.0+wasi-snapshot-preview1", + "web-sys", + "winapi", +] + +[[package]] +name = "quick-error" +version = "1.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" + +[[package]] +name = "quick-protobuf" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d6da84cc204722a989e01ba2f6e1e276e190f22263d0cb6ce8526fcdb0d2e1f" +dependencies = [ + "byteorder", +] + +[[package]] +name = "quick-protobuf-codec" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1693116345026436eb2f10b677806169c1a1260c1c60eaaffe3fb5a29ae23d8b" +dependencies = [ + "asynchronous-codec", + "bytes", + "quick-protobuf", + "thiserror", + "unsigned-varint", +] + +[[package]] +name = "quicksink" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77de3c815e5a160b1539c6592796801df2043ae35e123b46d73380cfa57af858" +dependencies = [ + "futures-core", + "futures-sink", + "pin-project-lite 0.1.12", +] + +[[package]] +name = "quinn-proto" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94b0b33c13a79f669c85defaf4c275dc86a0c0372807d0ca3d78e0bb87274863" +dependencies = [ + "bytes", + "rand", + "ring 0.16.20", + "rustc-hash", + "rustls 0.20.9", + "slab", + "thiserror", + "tinyvec", + "tracing", + "webpki", +] + +[[package]] +name = "quote" +version = "1.0.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" +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 0.6.4", +] + +[[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 0.6.4", +] + +[[package]] +name = "rand_core" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" +dependencies = [ + "getrandom 0.1.16", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom 0.2.14", +] + +[[package]] +name = "rand_distr" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32cb0b9bc82b0a0876c2dd994a7e7a2683d3e7390ca40e6886785ef0c7e3ee31" +dependencies = [ + "num-traits", + "rand", +] + +[[package]] +name = "rand_pcg" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59cad018caf63deb318e5a4586d99a24424a364f40f1e5778c29aca23f4fc73e" +dependencies = [ + "rand_core 0.6.4", +] + +[[package]] +name = "raw-cpuid" +version = "11.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d86a7c4638d42c44551f4791a20e687dbb4c3de1f33c43dd71e355cd429def1" +dependencies = [ + "bitflags 2.5.0", +] + +[[package]] +name = "rawpointer" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3" + +[[package]] +name = "rayon" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" +dependencies = [ + "either", + "rayon-core", +] + +[[package]] +name = "rayon-core" +version = "1.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" +dependencies = [ + "crossbeam-deque", + "crossbeam-utils", +] + +[[package]] +name = "rcgen" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffbe84efe2f38dea12e9bfc1f65377fdf03e53a18cb3b995faedf7934c7e785b" +dependencies = [ + "pem", + "ring 0.16.20", + "time", + "yasna", +] + +[[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.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" +dependencies = [ + "bitflags 1.3.2", +] + +[[package]] +name = "redox_users" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd283d9651eeda4b2a83a43c1c91b266c40fd76ecd39a50a8c630ae69dc72891" +dependencies = [ + "getrandom 0.2.14", + "libredox", + "thiserror", +] + +[[package]] +name = "ref-cast" +version = "1.0.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4846d4c50d1721b1a3bef8af76924eef20d5e723647333798c1b519b3a9473f" +dependencies = [ + "ref-cast-impl", +] + +[[package]] +name = "ref-cast-impl" +version = "1.0.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5fddb4f8d99b0a2ebafc65a87a69a7b9875e4b1ae1f00db265d300ef7f28bccc" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.60", +] + +[[package]] +name = "regalloc2" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80535183cae11b149d618fbd3c37e38d7cda589d82d7769e196ca9a9042d7621" +dependencies = [ + "fxhash", + "log", + "slice-group-by", + "smallvec", +] + +[[package]] +name = "regalloc2" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad156d539c879b7a24a363a2016d77961786e71f48f2e2fc8302a92abd2429a6" +dependencies = [ + "hashbrown 0.13.2", + "log", + "rustc-hash", + "slice-group-by", + "smallvec", +] + +[[package]] +name = "regex" +version = "1.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata 0.4.6", + "regex-syntax 0.8.3", +] + +[[package]] +name = "regex-automata" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" +dependencies = [ + "regex-syntax 0.6.29", +] + +[[package]] +name = "regex-automata" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax 0.8.3", +] + +[[package]] +name = "regex-syntax" +version = "0.6.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" + +[[package]] +name = "regex-syntax" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56" + +[[package]] +name = "resolv-conf" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52e44394d2086d010551b14b53b1f24e31647570cd1deb0379e2c21b329aba00" +dependencies = [ + "hostname", + "quick-error", +] + +[[package]] +name = "rfc6979" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" +dependencies = [ + "hmac 0.12.1", + "subtle 2.5.0", +] + +[[package]] +name = "ring" +version = "0.1.0" +source = "git+https://github.com/w3f/ring-proof#b273d33f9981e2bb3375ab45faeb537f7ee35224" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-poly", + "ark-serialize", + "ark-std", + "blake2 0.10.6", + "common", + "fflonk", + "merlin", +] + +[[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 0.5.2", + "untrusted 0.7.1", + "web-sys", + "winapi", +] + +[[package]] +name = "ring" +version = "0.17.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" +dependencies = [ + "cc", + "cfg-if", + "getrandom 0.2.14", + "libc", + "spin 0.9.8", + "untrusted 0.9.0", + "windows-sys 0.52.0", +] + +[[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 = "rocksdb" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb6f170a4041d50a0ce04b0d2e14916d6ca863ea2e422689a5b694395d299ffe" +dependencies = [ + "libc", + "librocksdb-sys", +] + +[[package]] +name = "route-recognizer" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "afab94fb28594581f62d981211a9a4d53cc8130bbcbbb89a0440d9b8e81a7746" + +[[package]] +name = "rpassword" +version = "7.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80472be3c897911d0137b2d2b9055faf6eeac5b14e324073d83bc17b191d7e3f" +dependencies = [ + "libc", + "rtoolbox", + "windows-sys 0.48.0", +] + +[[package]] +name = "rtnetlink" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "322c53fd76a18698f1c27381d58091de3a043d356aa5bd0d510608b565f469a0" +dependencies = [ + "futures", + "log", + "netlink-packet-route", + "netlink-proto", + "nix", + "thiserror", + "tokio", +] + +[[package]] +name = "rtoolbox" +version = "0.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c247d24e63230cdb56463ae328478bd5eac8b8faa8c69461a77e8e323afac90e" +dependencies = [ + "libc", + "windows-sys 0.48.0", +] + +[[package]] +name = "rustc-demangle" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" + +[[package]] +name = "rustc-hash" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" + +[[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.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" +dependencies = [ + "semver 0.9.0", +] + +[[package]] +name = "rustc_version" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +dependencies = [ + "semver 1.0.22", +] + +[[package]] +name = "rusticata-macros" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "faf0c4a6ece9950b9abdb62b1cfcf2a68b3b67a10ba445b3bb85be2a293d0632" +dependencies = [ + "nom", +] + +[[package]] +name = "rustix" +version = "0.36.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "305efbd14fde4139eb501df5f136994bb520b033fa9fbdce287507dc23b8c7ed" +dependencies = [ + "bitflags 1.3.2", + "errno", + "io-lifetimes", + "libc", + "linux-raw-sys 0.1.4", + "windows-sys 0.45.0", +] + +[[package]] +name = "rustix" +version = "0.38.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "65e04861e65f21776e67888bfbea442b3642beaa0138fdb1dd7a84a52dffdb89" +dependencies = [ + "bitflags 2.5.0", + "errno", + "libc", + "linux-raw-sys 0.4.13", + "windows-sys 0.52.0", +] + +[[package]] +name = "rustls" +version = "0.20.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b80e3dec595989ea8510028f30c408a4630db12c9cbb8de34203b89d6577e99" +dependencies = [ + "log", + "ring 0.16.20", + "sct", + "webpki", +] + +[[package]] +name = "rustls" +version = "0.21.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9d5a6813c0759e4609cd494e8e725babae6a2ca7b62a5536a13daaec6fcb7ba" +dependencies = [ + "log", + "ring 0.17.8", + "rustls-webpki", + "sct", +] + +[[package]] +name = "rustls-native-certs" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00" +dependencies = [ + "openssl-probe", + "rustls-pemfile", + "schannel", + "security-framework", +] + +[[package]] +name = "rustls-pemfile" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" +dependencies = [ + "base64 0.21.7", +] + +[[package]] +name = "rustls-webpki" +version = "0.101.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" +dependencies = [ + "ring 0.17.8", + "untrusted 0.9.0", +] + +[[package]] +name = "rustversion" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80af6f9131f277a45a3fba6ce8e2258037bb0477a67e610d3c1fe046ab31de47" + +[[package]] +name = "rw-stream-sink" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26338f5e09bb721b85b135ea05af7767c90b52f6de4f087d4f4a3a9d64e7dc04" +dependencies = [ + "futures", + "pin-project", + "static_assertions", +] + +[[package]] +name = "ryu" +version = "1.0.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1" + +[[package]] +name = "safe-mix" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d3d055a2582e6b00ed7a31c1524040aa391092bf636328350813f3a0605215c" +dependencies = [ + "rustc_version 0.2.3", +] + +[[package]] +name = "safe_arch" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f398075ce1e6a179b46f51bd88d0598b92b00d3551f1a2d4ac49e771b56ac354" +dependencies = [ + "bytemuck", +] + +[[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 = "sc-allocator" +version = "23.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "log", + "sp-core", + "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "thiserror", +] + +[[package]] +name = "sc-basic-authorship" +version = "0.34.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "futures", + "futures-timer", + "log", + "parity-scale-codec", + "sc-block-builder", + "sc-proposer-metrics", + "sc-telemetry", + "sc-transaction-pool-api", + "sp-api", + "sp-blockchain", + "sp-consensus", + "sp-core", + "sp-inherents", + "sp-runtime", + "substrate-prometheus-endpoint", +] + +[[package]] +name = "sc-block-builder" +version = "0.33.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "parity-scale-codec", + "sp-api", + "sp-block-builder", + "sp-blockchain", + "sp-core", + "sp-inherents", + "sp-runtime", + "sp-trie", +] + +[[package]] +name = "sc-chain-spec" +version = "27.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "array-bytes 6.2.2", + "docify", + "log", + "memmap2 0.9.4", + "parity-scale-codec", + "sc-chain-spec-derive", + "sc-client-api", + "sc-executor", + "sc-network", + "sc-telemetry", + "serde", + "serde_json", + "sp-blockchain", + "sp-core", + "sp-crypto-hashing", + "sp-genesis-builder", + "sp-io", + "sp-runtime", + "sp-state-machine", +] + +[[package]] +name = "sc-chain-spec-derive" +version = "11.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "proc-macro-crate 3.1.0", + "proc-macro2", + "quote", + "syn 2.0.60", +] + +[[package]] +name = "sc-cli" +version = "0.36.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "array-bytes 6.2.2", + "chrono", + "clap", + "fdlimit", + "futures", + "itertools 0.10.5", + "libp2p-identity", + "log", + "names", + "parity-bip39", + "parity-scale-codec", + "rand", + "regex", + "rpassword", + "sc-client-api", + "sc-client-db", + "sc-keystore", + "sc-mixnet", + "sc-network", + "sc-service", + "sc-telemetry", + "sc-tracing", + "sc-utils", + "serde", + "serde_json", + "sp-blockchain", + "sp-core", + "sp-keyring", + "sp-keystore", + "sp-panic-handler", + "sp-runtime", + "sp-version", + "thiserror", + "tokio", +] + +[[package]] +name = "sc-client-api" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "fnv", + "futures", + "log", + "parity-scale-codec", + "parking_lot 0.12.1", + "sc-executor", + "sc-transaction-pool-api", + "sc-utils", + "sp-api", + "sp-blockchain", + "sp-consensus", + "sp-core", + "sp-database", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "sp-runtime", + "sp-state-machine", + "sp-statement-store", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "sp-trie", + "substrate-prometheus-endpoint", +] + +[[package]] +name = "sc-client-db" +version = "0.35.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "hash-db", + "kvdb", + "kvdb-memorydb", + "kvdb-rocksdb", + "linked-hash-map", + "log", + "parity-db", + "parity-scale-codec", + "parking_lot 0.12.1", + "sc-client-api", + "sc-state-db", + "schnellru", + "sp-arithmetic", + "sp-blockchain", + "sp-core", + "sp-database", + "sp-runtime", + "sp-state-machine", + "sp-trie", +] + +[[package]] +name = "sc-consensus" +version = "0.33.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "async-trait", + "futures", + "futures-timer", + "libp2p-identity", + "log", + "mockall", + "parking_lot 0.12.1", + "sc-client-api", + "sc-utils", + "serde", + "sp-api", + "sp-blockchain", + "sp-consensus", + "sp-core", + "sp-runtime", + "sp-state-machine", + "substrate-prometheus-endpoint", + "thiserror", +] + +[[package]] +name = "sc-consensus-aura" +version = "0.34.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "async-trait", + "futures", + "log", + "parity-scale-codec", + "sc-block-builder", + "sc-client-api", + "sc-consensus", + "sc-consensus-slots", + "sc-telemetry", + "sp-api", + "sp-application-crypto", + "sp-block-builder", + "sp-blockchain", + "sp-consensus", + "sp-consensus-aura", + "sp-consensus-slots", + "sp-core", + "sp-inherents", + "sp-keystore", + "sp-runtime", + "substrate-prometheus-endpoint", + "thiserror", +] + +[[package]] +name = "sc-consensus-babe" +version = "0.34.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "async-trait", + "fork-tree", + "futures", + "log", + "num-bigint", + "num-rational", + "num-traits", + "parity-scale-codec", + "parking_lot 0.12.1", + "sc-client-api", + "sc-consensus", + "sc-consensus-epochs", + "sc-consensus-slots", + "sc-telemetry", + "sc-transaction-pool-api", + "sp-api", + "sp-application-crypto", + "sp-block-builder", + "sp-blockchain", + "sp-consensus", + "sp-consensus-babe", + "sp-consensus-slots", + "sp-core", + "sp-crypto-hashing", + "sp-inherents", + "sp-keystore", + "sp-runtime", + "substrate-prometheus-endpoint", + "thiserror", +] + +[[package]] +name = "sc-consensus-epochs" +version = "0.33.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "fork-tree", + "parity-scale-codec", + "sc-client-api", + "sc-consensus", + "sp-blockchain", + "sp-runtime", +] + +[[package]] +name = "sc-consensus-grandpa" +version = "0.19.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "ahash 0.8.11", + "array-bytes 6.2.2", + "async-trait", + "dyn-clone", + "finality-grandpa", + "fork-tree", + "futures", + "futures-timer", + "log", + "parity-scale-codec", + "parking_lot 0.12.1", + "rand", + "sc-block-builder", + "sc-chain-spec", + "sc-client-api", + "sc-consensus", + "sc-network", + "sc-network-common", + "sc-network-gossip", + "sc-network-sync", + "sc-telemetry", + "sc-transaction-pool-api", + "sc-utils", + "serde_json", + "sp-api", + "sp-application-crypto", + "sp-arithmetic", + "sp-blockchain", + "sp-consensus", + "sp-consensus-grandpa", + "sp-core", + "sp-crypto-hashing", + "sp-keystore", + "sp-runtime", + "substrate-prometheus-endpoint", + "thiserror", +] + +[[package]] +name = "sc-consensus-manual-seal" +version = "0.35.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "assert_matches", + "async-trait", + "futures", + "futures-timer", + "jsonrpsee", + "log", + "parity-scale-codec", + "sc-client-api", + "sc-consensus", + "sc-consensus-aura", + "sc-consensus-babe", + "sc-consensus-epochs", + "sc-transaction-pool", + "sc-transaction-pool-api", + "serde", + "sp-api", + "sp-blockchain", + "sp-consensus", + "sp-consensus-aura", + "sp-consensus-babe", + "sp-consensus-slots", + "sp-core", + "sp-inherents", + "sp-keystore", + "sp-runtime", + "sp-timestamp", + "substrate-prometheus-endpoint", + "thiserror", +] + +[[package]] +name = "sc-consensus-slots" +version = "0.33.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "async-trait", + "futures", + "futures-timer", + "log", + "parity-scale-codec", + "sc-client-api", + "sc-consensus", + "sc-telemetry", + "sp-arithmetic", + "sp-blockchain", + "sp-consensus", + "sp-consensus-slots", + "sp-core", + "sp-inherents", + "sp-runtime", + "sp-state-machine", +] + +[[package]] +name = "sc-executor" +version = "0.32.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "parity-scale-codec", + "parking_lot 0.12.1", + "sc-executor-common", + "sc-executor-polkavm", + "sc-executor-wasmtime", + "schnellru", + "sp-api", + "sp-core", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "sp-io", + "sp-panic-handler", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "sp-trie", + "sp-version", + "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "tracing", +] + +[[package]] +name = "sc-executor-common" +version = "0.29.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "polkavm", + "sc-allocator", + "sp-maybe-compressed-blob", + "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "thiserror", + "wasm-instrument", +] + +[[package]] +name = "sc-executor-polkavm" +version = "0.29.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "log", + "polkavm", + "sc-executor-common", + "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", +] + +[[package]] +name = "sc-executor-wasmtime" +version = "0.29.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "anyhow", + "cfg-if", + "libc", + "log", + "parking_lot 0.12.1", + "rustix 0.36.17", + "sc-allocator", + "sc-executor-common", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "wasmtime", +] + +[[package]] +name = "sc-informant" +version = "0.33.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "ansi_term", + "futures", + "futures-timer", + "log", + "sc-client-api", + "sc-network", + "sc-network-common", + "sc-network-sync", + "sp-blockchain", + "sp-runtime", +] + +[[package]] +name = "sc-keystore" +version = "25.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "array-bytes 6.2.2", + "parking_lot 0.12.1", + "serde_json", + "sp-application-crypto", + "sp-core", + "sp-keystore", + "thiserror", +] + +[[package]] +name = "sc-mixnet" +version = "0.4.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "array-bytes 4.2.0", + "arrayvec", + "blake2 0.10.6", + "bytes", + "futures", + "futures-timer", + "libp2p-identity", + "log", + "mixnet", + "multiaddr", + "parity-scale-codec", + "parking_lot 0.12.1", + "sc-client-api", + "sc-network", + "sc-transaction-pool-api", + "sp-api", + "sp-consensus", + "sp-core", + "sp-keystore", + "sp-mixnet", + "sp-runtime", + "thiserror", +] + +[[package]] +name = "sc-network" +version = "0.34.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "array-bytes 6.2.2", + "async-channel", + "async-trait", + "asynchronous-codec", + "bytes", + "either", + "fnv", + "futures", + "futures-timer", + "ip_network", + "libp2p", + "linked_hash_set", + "log", + "mockall", + "parity-scale-codec", + "parking_lot 0.12.1", + "partial_sort", + "pin-project", + "rand", + "sc-client-api", + "sc-network-common", + "sc-utils", + "serde", + "serde_json", + "smallvec", + "sp-arithmetic", + "sp-blockchain", + "sp-core", + "sp-runtime", + "substrate-prometheus-endpoint", + "thiserror", + "tokio", + "tokio-stream", + "unsigned-varint", + "wasm-timer", + "zeroize", +] + +[[package]] +name = "sc-network-bitswap" +version = "0.33.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "async-channel", + "cid", + "futures", + "libp2p-identity", + "log", + "prost 0.12.4", + "prost-build", + "sc-client-api", + "sc-network", + "sp-blockchain", + "sp-runtime", + "thiserror", + "unsigned-varint", +] + +[[package]] +name = "sc-network-common" +version = "0.33.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "async-trait", + "bitflags 1.3.2", + "futures", + "libp2p-identity", + "parity-scale-codec", + "prost-build", + "sc-consensus", + "sp-consensus", + "sp-consensus-grandpa", + "sp-runtime", +] + +[[package]] +name = "sc-network-gossip" +version = "0.34.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "ahash 0.8.11", + "futures", + "futures-timer", + "libp2p", + "log", + "sc-network", + "sc-network-common", + "sc-network-sync", + "schnellru", + "sp-runtime", + "substrate-prometheus-endpoint", + "tracing", +] + +[[package]] +name = "sc-network-light" +version = "0.33.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "array-bytes 6.2.2", + "async-channel", + "futures", + "libp2p-identity", + "log", + "parity-scale-codec", + "prost 0.12.4", + "prost-build", + "sc-client-api", + "sc-network", + "sp-blockchain", + "sp-core", + "sp-runtime", + "thiserror", +] + +[[package]] +name = "sc-network-sync" +version = "0.33.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "array-bytes 6.2.2", + "async-channel", + "async-trait", + "fork-tree", + "futures", + "futures-timer", + "libp2p", + "log", + "mockall", + "parity-scale-codec", + "prost 0.12.4", + "prost-build", + "sc-client-api", + "sc-consensus", + "sc-network", + "sc-network-common", + "sc-utils", + "schnellru", + "smallvec", + "sp-arithmetic", + "sp-blockchain", + "sp-consensus", + "sp-consensus-grandpa", + "sp-core", + "sp-runtime", + "substrate-prometheus-endpoint", + "thiserror", + "tokio", + "tokio-stream", +] + +[[package]] +name = "sc-network-transactions" +version = "0.33.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "array-bytes 6.2.2", + "futures", + "libp2p", + "log", + "parity-scale-codec", + "sc-network", + "sc-network-common", + "sc-network-sync", + "sc-utils", + "sp-consensus", + "sp-runtime", + "substrate-prometheus-endpoint", +] + +[[package]] +name = "sc-offchain" +version = "29.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "array-bytes 6.2.2", + "bytes", + "fnv", + "futures", + "futures-timer", + "hyper", + "hyper-rustls", + "libp2p", + "log", + "num_cpus", + "once_cell", + "parity-scale-codec", + "parking_lot 0.12.1", + "rand", + "sc-client-api", + "sc-network", + "sc-network-common", + "sc-transaction-pool-api", + "sc-utils", + "sp-api", + "sp-core", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "sp-keystore", + "sp-offchain", + "sp-runtime", + "threadpool", + "tracing", +] + +[[package]] +name = "sc-proposer-metrics" +version = "0.17.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "log", + "substrate-prometheus-endpoint", +] + +[[package]] +name = "sc-rpc" +version = "29.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "futures", + "jsonrpsee", + "log", + "parity-scale-codec", + "parking_lot 0.12.1", + "sc-block-builder", + "sc-chain-spec", + "sc-client-api", + "sc-mixnet", + "sc-rpc-api", + "sc-tracing", + "sc-transaction-pool-api", + "sc-utils", + "serde_json", + "sp-api", + "sp-blockchain", + "sp-core", + "sp-keystore", + "sp-offchain", + "sp-rpc", + "sp-runtime", + "sp-session", + "sp-statement-store", + "sp-version", + "tokio", +] + +[[package]] +name = "sc-rpc-api" +version = "0.33.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "jsonrpsee", + "parity-scale-codec", + "sc-chain-spec", + "sc-mixnet", + "sc-transaction-pool-api", + "scale-info", + "serde", + "serde_json", + "sp-core", + "sp-rpc", + "sp-runtime", + "sp-version", + "thiserror", +] + +[[package]] +name = "sc-rpc-server" +version = "11.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "futures", + "governor", + "http", + "hyper", + "jsonrpsee", + "log", + "serde_json", + "substrate-prometheus-endpoint", + "tokio", + "tower", + "tower-http", +] + +[[package]] +name = "sc-rpc-spec-v2" +version = "0.34.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "array-bytes 6.2.2", + "futures", + "futures-util", + "hex", + "jsonrpsee", + "log", + "parity-scale-codec", + "parking_lot 0.12.1", + "rand", + "sc-chain-spec", + "sc-client-api", + "sc-rpc", + "sc-transaction-pool-api", + "sc-utils", + "serde", + "sp-api", + "sp-blockchain", + "sp-core", + "sp-rpc", + "sp-runtime", + "sp-version", + "thiserror", + "tokio", + "tokio-stream", +] + +[[package]] +name = "sc-service" +version = "0.35.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "async-trait", + "directories", + "exit-future", + "futures", + "futures-timer", + "jsonrpsee", + "log", + "parity-scale-codec", + "parking_lot 0.12.1", + "pin-project", + "rand", + "sc-chain-spec", + "sc-client-api", + "sc-client-db", + "sc-consensus", + "sc-executor", + "sc-informant", + "sc-keystore", + "sc-network", + "sc-network-bitswap", + "sc-network-common", + "sc-network-light", + "sc-network-sync", + "sc-network-transactions", + "sc-rpc", + "sc-rpc-server", + "sc-rpc-spec-v2", + "sc-sysinfo", + "sc-telemetry", + "sc-tracing", + "sc-transaction-pool", + "sc-transaction-pool-api", + "sc-utils", + "schnellru", + "serde", + "serde_json", + "sp-api", + "sp-blockchain", + "sp-consensus", + "sp-core", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "sp-keystore", + "sp-runtime", + "sp-session", + "sp-state-machine", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "sp-transaction-pool", + "sp-transaction-storage-proof", + "sp-trie", + "sp-version", + "static_init", + "substrate-prometheus-endpoint", + "tempfile", + "thiserror", + "tokio", + "tracing", + "tracing-futures", +] + +[[package]] +name = "sc-state-db" +version = "0.30.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "log", + "parity-scale-codec", + "parking_lot 0.12.1", + "sp-core", +] + +[[package]] +name = "sc-sysinfo" +version = "27.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "derive_more", + "futures", + "libc", + "log", + "rand", + "rand_pcg", + "regex", + "sc-telemetry", + "serde", + "serde_json", + "sp-core", + "sp-crypto-hashing", + "sp-io", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", +] + +[[package]] +name = "sc-telemetry" +version = "15.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "chrono", + "futures", + "libp2p", + "log", + "parking_lot 0.12.1", + "pin-project", + "rand", + "sc-utils", + "serde", + "serde_json", + "thiserror", + "wasm-timer", +] + +[[package]] +name = "sc-tracing" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "ansi_term", + "chrono", + "is-terminal", + "lazy_static", + "libc", + "log", + "parity-scale-codec", + "parking_lot 0.12.1", + "regex", + "rustc-hash", + "sc-client-api", + "sc-tracing-proc-macro", + "serde", + "sp-api", + "sp-blockchain", + "sp-core", + "sp-rpc", + "sp-runtime", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "thiserror", + "tracing", + "tracing-log 0.1.4", + "tracing-subscriber 0.2.25", +] + +[[package]] +name = "sc-tracing-proc-macro" +version = "11.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "proc-macro-crate 3.1.0", + "proc-macro2", + "quote", + "syn 2.0.60", +] + +[[package]] +name = "sc-transaction-pool" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "async-trait", + "futures", + "futures-timer", + "linked-hash-map", + "log", + "parity-scale-codec", + "parking_lot 0.12.1", + "sc-client-api", + "sc-transaction-pool-api", + "sc-utils", + "serde", + "sp-api", + "sp-blockchain", + "sp-core", + "sp-crypto-hashing", + "sp-runtime", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "sp-transaction-pool", + "substrate-prometheus-endpoint", + "thiserror", +] + +[[package]] +name = "sc-transaction-pool-api" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "async-trait", + "futures", + "log", + "parity-scale-codec", + "serde", + "sp-blockchain", + "sp-core", + "sp-runtime", + "thiserror", +] + +[[package]] +name = "sc-utils" +version = "14.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "async-channel", + "futures", + "futures-timer", + "lazy_static", + "log", + "parking_lot 0.12.1", + "prometheus", + "sp-arithmetic", +] + +[[package]] +name = "scale-info" +version = "2.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c453e59a955f81fb62ee5d596b450383d699f152d350e9d23a0db2adb78e4c0" +dependencies = [ + "bitvec", + "cfg-if", + "derive_more", + "parity-scale-codec", + "scale-info-derive", + "serde", +] + +[[package]] +name = "scale-info-derive" +version = "2.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18cf6c6447f813ef19eb450e985bcce6705f9ce7660db221b59093d15c79c4b7" +dependencies = [ + "proc-macro-crate 1.1.3", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "schannel" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534" +dependencies = [ + "windows-sys 0.52.0", +] + +[[package]] +name = "schnellru" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "772575a524feeb803e5b0fcbc6dd9f367e579488197c94c6e4023aad2305774d" +dependencies = [ + "ahash 0.8.11", + "cfg-if", + "hashbrown 0.13.2", +] + +[[package]] +name = "schnorrkel" +version = "0.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8de18f6d8ba0aad7045f5feae07ec29899c1112584a38509a84ad7b04451eaa0" +dependencies = [ + "aead", + "arrayref", + "arrayvec", + "curve25519-dalek 4.1.2", + "getrandom_or_panic", + "merlin", + "rand_core 0.6.4", + "serde_bytes", + "sha2 0.10.8", + "subtle 2.5.0", + "zeroize", +] + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "scratch" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3cf7c11c38cb994f3d40e8a8cde3bbd1f72a435e4c49e85d6553d8312306152" + +[[package]] +name = "sct" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" +dependencies = [ + "ring 0.17.8", + "untrusted 0.9.0", +] + +[[package]] +name = "sec1" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" +dependencies = [ + "base16ct", + "der", + "generic-array 0.14.7", + "pkcs8", + "serdect", + "subtle 2.5.0", + "zeroize", +] + +[[package]] +name = "secp256k1" +version = "0.28.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d24b59d129cdadea20aea4fb2352fa053712e5d713eee47d700cd4b2bc002f10" +dependencies = [ + "secp256k1-sys", +] + +[[package]] +name = "secp256k1-sys" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5d1746aae42c19d583c3c1a8c646bfad910498e2051c551a7f2e3c0c9fbb7eb" +dependencies = [ + "cc", +] + +[[package]] +name = "secrecy" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9bd1c54ea06cfd2f6b63219704de0b9b4f72dcc2b8fdef820be6cd799780e91e" +dependencies = [ + "zeroize", +] + +[[package]] +name = "security-framework" +version = "2.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "770452e37cad93e0a50d5abc3990d2bc351c36d0328f86cefec2f2fb206eaef6" +dependencies = [ + "bitflags 1.3.2", + "core-foundation", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "2.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41f3cc463c0ef97e11c3461a9d3787412d30e8e7eb907c79180c4a57bf7c04ef" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "semver" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a3186ec9e65071a2095434b1f5bb24838d4e8e130f584c790f6033c79943537" +dependencies = [ + "semver-parser", +] + +[[package]] +name = "semver" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" +dependencies = [ + "semver-parser", +] + +[[package]] +name = "semver" +version = "1.0.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca" +dependencies = [ + "serde", +] + +[[package]] +name = "semver-parser" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" + +[[package]] +name = "serde" +version = "1.0.198" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9846a40c979031340571da2545a4e5b7c4163bdae79b301d5f86d03979451fcc" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_bytes" +version = "0.11.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b8497c313fd43ab992087548117643f6fcd935cbf36f176ffda0aacf9591734" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_derive" +version = "1.0.198" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e88edab869b01783ba905e7d0153f9fc1a6505a96e4ad3018011eedb838566d9" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.60", +] + +[[package]] +name = "serde_json" +version = "1.0.116" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e17db7126d17feb94eb3fad46bf1a96b034e8aacbc2e775fe81505f8b0b2813" +dependencies = [ + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "serde_spanned" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1" +dependencies = [ + "serde", +] + +[[package]] +name = "serdect" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a84f14a19e9a014bb9f4512488d9829a68e04ecabffb0f9904cd1ace94598177" +dependencies = [ + "base16ct", + "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 0.3.1", +] + +[[package]] +name = "sha2" +version = "0.9.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" +dependencies = [ + "block-buffer 0.9.0", + "cfg-if", + "cpufeatures", + "digest 0.9.0", + "opaque-debug 0.3.1", +] + +[[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 = "sharded-slab" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" +dependencies = [ + "lazy_static", +] + +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + +[[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.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" +dependencies = [ + "digest 0.10.7", + "rand_core 0.6.4", +] + +[[package]] +name = "simba" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "061507c94fc6ab4ba1c9a0305018408e312e17c041eb63bef8aa726fa33aceae" +dependencies = [ + "approx", + "num-complex", + "num-traits", + "paste", + "wide", +] + +[[package]] +name = "simple-mermaid" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "620a1d43d70e142b1d46a929af51d44f383db9c7a2ec122de2cd992ccfcf3c18" + +[[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 = "slice-group-by" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "826167069c09b99d56f31e9ae5c99049e932a98c9dc2dac47645b08dbbf76ba7" + +[[package]] +name = "smallvec" +version = "1.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" + +[[package]] +name = "snap" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b6b67fb9a61334225b5b790716f609cd58395f895b3fe8b328786812a40bc3b" + +[[package]] +name = "snow" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "850948bee068e713b8ab860fe1adc4d109676ab4c3b621fd8147f06b261f2f85" +dependencies = [ + "aes-gcm", + "blake2 0.10.6", + "chacha20poly1305", + "curve25519-dalek 4.1.2", + "rand_core 0.6.4", + "ring 0.17.8", + "rustc_version 0.4.0", + "sha2 0.10.8", + "subtle 2.5.0", +] + +[[package]] +name = "socket2" +version = "0.4.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "socket2" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05ffd9c0a93b7543e062e759284fcf5f5e3b098501104bfbdde4d404db792871" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + +[[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", + "flate2", + "futures", + "http", + "httparse", + "log", + "rand", + "sha-1", +] + +[[package]] +name = "sp-api" +version = "26.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "hash-db", + "log", + "parity-scale-codec", + "scale-info", + "sp-api-proc-macro", + "sp-core", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "sp-metadata-ir", + "sp-runtime", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "sp-state-machine", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "sp-trie", + "sp-version", + "thiserror", +] + +[[package]] +name = "sp-api-proc-macro" +version = "15.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "Inflector", + "blake2 0.10.6", + "expander", + "proc-macro-crate 3.1.0", + "proc-macro2", + "quote", + "syn 2.0.60", +] + +[[package]] +name = "sp-application-crypto" +version = "30.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "parity-scale-codec", + "scale-info", + "serde", + "sp-core", + "sp-io", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", +] + +[[package]] +name = "sp-arithmetic" +version = "23.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "integer-sqrt", + "num-traits", + "parity-scale-codec", + "scale-info", + "serde", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "static_assertions", +] + +[[package]] +name = "sp-ark-bls12-381" +version = "0.4.2" +source = "git+https://github.com/paritytech/arkworks-substrate#caa2eed74beb885dd07c7db5f916f2281dad818f" +dependencies = [ + "ark-bls12-381-ext", + "sp-crypto-ec-utils", +] + +[[package]] +name = "sp-ark-ed-on-bls12-381-bandersnatch" +version = "0.4.2" +source = "git+https://github.com/paritytech/arkworks-substrate#caa2eed74beb885dd07c7db5f916f2281dad818f" +dependencies = [ + "ark-ed-on-bls12-381-bandersnatch-ext", + "sp-crypto-ec-utils", +] + +[[package]] +name = "sp-block-builder" +version = "26.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "sp-api", + "sp-inherents", + "sp-runtime", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", +] + +[[package]] +name = "sp-blockchain" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "futures", + "log", + "parity-scale-codec", + "parking_lot 0.12.1", + "schnellru", + "sp-api", + "sp-consensus", + "sp-database", + "sp-runtime", + "sp-state-machine", + "thiserror", +] + +[[package]] +name = "sp-consensus" +version = "0.32.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "async-trait", + "futures", + "log", + "sp-core", + "sp-inherents", + "sp-runtime", + "sp-state-machine", + "thiserror", +] + +[[package]] +name = "sp-consensus-aura" +version = "0.32.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "async-trait", + "parity-scale-codec", + "scale-info", + "sp-api", + "sp-application-crypto", + "sp-consensus-slots", + "sp-inherents", + "sp-runtime", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "sp-timestamp", +] + +[[package]] +name = "sp-consensus-babe" +version = "0.32.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "async-trait", + "parity-scale-codec", + "scale-info", + "serde", + "sp-api", + "sp-application-crypto", + "sp-consensus-slots", + "sp-core", + "sp-inherents", + "sp-runtime", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "sp-timestamp", +] + +[[package]] +name = "sp-consensus-grandpa" +version = "13.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "finality-grandpa", + "log", + "parity-scale-codec", + "scale-info", + "serde", + "sp-api", + "sp-application-crypto", + "sp-core", + "sp-keystore", + "sp-runtime", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", +] + +[[package]] +name = "sp-consensus-slots" +version = "0.32.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "parity-scale-codec", + "scale-info", + "serde", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "sp-timestamp", +] + +[[package]] +name = "sp-core" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "array-bytes 6.2.2", + "bandersnatch_vrfs", + "bitflags 1.3.2", + "blake2 0.10.6", + "bounded-collections", + "bs58 0.5.1", + "dyn-clonable", + "ed25519-zebra", + "futures", + "hash-db", + "hash256-std-hasher", + "impl-serde", + "itertools 0.10.5", + "k256", + "libsecp256k1", + "log", + "merlin", + "parity-bip39", + "parity-scale-codec", + "parking_lot 0.12.1", + "paste", + "primitive-types", + "rand", + "scale-info", + "schnorrkel", + "secp256k1", + "secrecy", + "serde", + "sp-crypto-hashing", + "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "ss58-registry", + "substrate-bip39", + "thiserror", + "tracing", + "w3f-bls", + "zeroize", +] + +[[package]] +name = "sp-crypto-ec-utils" +version = "0.10.0" +source = "git+https://github.com/paritytech/polkadot-sdk#d591b16f6b1dec88003323cdae0c3abe3b5c9cbe" +dependencies = [ + "ark-bls12-377", + "ark-bls12-377-ext", + "ark-bls12-381", + "ark-bls12-381-ext", + "ark-bw6-761", + "ark-bw6-761-ext", + "ark-ec", + "ark-ed-on-bls12-377", + "ark-ed-on-bls12-377-ext", + "ark-ed-on-bls12-381-bandersnatch", + "ark-ed-on-bls12-381-bandersnatch-ext", + "ark-scale", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk)", +] + +[[package]] +name = "sp-crypto-hashing" +version = "0.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "blake2b_simd", + "byteorder", + "digest 0.10.7", + "sha2 0.10.8", + "sha3", + "twox-hash", +] + +[[package]] +name = "sp-crypto-hashing-proc-macro" +version = "0.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "quote", + "sp-crypto-hashing", + "syn 2.0.60", +] + +[[package]] +name = "sp-database" +version = "10.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "kvdb", + "parking_lot 0.12.1", +] + +[[package]] +name = "sp-debug-derive" +version = "14.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.60", +] + +[[package]] +name = "sp-debug-derive" +version = "14.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk#d591b16f6b1dec88003323cdae0c3abe3b5c9cbe" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.60", +] + +[[package]] +name = "sp-externalities" +version = "0.25.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "environmental", + "parity-scale-codec", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", +] + +[[package]] +name = "sp-externalities" +version = "0.25.0" +source = "git+https://github.com/paritytech/polkadot-sdk#d591b16f6b1dec88003323cdae0c3abe3b5c9cbe" +dependencies = [ + "environmental", + "parity-scale-codec", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk)", +] + +[[package]] +name = "sp-genesis-builder" +version = "0.7.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "serde_json", + "sp-api", + "sp-runtime", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", +] + +[[package]] +name = "sp-inherents" +version = "26.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "async-trait", + "impl-trait-for-tuples", + "parity-scale-codec", + "scale-info", + "sp-runtime", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "thiserror", +] + +[[package]] +name = "sp-io" +version = "30.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "bytes", + "ed25519-dalek", + "libsecp256k1", + "log", + "parity-scale-codec", + "polkavm-derive 0.9.1", + "rustversion", + "secp256k1", + "sp-core", + "sp-crypto-hashing", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "sp-keystore", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "sp-state-machine", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "sp-trie", + "tracing", + "tracing-core", +] + +[[package]] +name = "sp-keyring" +version = "31.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "sp-core", + "sp-runtime", + "strum 0.24.1", +] + +[[package]] +name = "sp-keystore" +version = "0.34.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "parity-scale-codec", + "parking_lot 0.12.1", + "sp-core", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", +] + +[[package]] +name = "sp-maybe-compressed-blob" +version = "11.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "thiserror", + "zstd 0.12.4", +] + +[[package]] +name = "sp-metadata-ir" +version = "0.6.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "frame-metadata", + "parity-scale-codec", + "scale-info", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", +] + +[[package]] +name = "sp-mixnet" +version = "0.4.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "parity-scale-codec", + "scale-info", + "sp-api", + "sp-application-crypto", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", +] + +[[package]] +name = "sp-offchain" +version = "26.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "sp-api", + "sp-core", + "sp-runtime", +] + +[[package]] +name = "sp-panic-handler" +version = "13.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "backtrace", + "lazy_static", + "regex", +] + +[[package]] +name = "sp-rpc" +version = "26.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "rustc-hash", + "serde", + "sp-core", +] + +[[package]] +name = "sp-runtime" +version = "31.0.1" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "docify", + "either", + "hash256-std-hasher", + "impl-trait-for-tuples", + "log", + "parity-scale-codec", + "paste", + "rand", + "scale-info", + "serde", + "simple-mermaid", + "sp-application-crypto", + "sp-arithmetic", + "sp-core", + "sp-io", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "sp-weights", +] + +[[package]] +name = "sp-runtime-interface" +version = "24.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "bytes", + "impl-trait-for-tuples", + "parity-scale-codec", + "polkavm-derive 0.9.1", + "primitive-types", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "sp-runtime-interface-proc-macro 17.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "static_assertions", +] + +[[package]] +name = "sp-runtime-interface" +version = "24.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk#d591b16f6b1dec88003323cdae0c3abe3b5c9cbe" +dependencies = [ + "bytes", + "impl-trait-for-tuples", + "parity-scale-codec", + "polkavm-derive 0.9.1", + "primitive-types", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk)", + "sp-runtime-interface-proc-macro 17.0.0 (git+https://github.com/paritytech/polkadot-sdk)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk)", + "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk)", + "static_assertions", +] + +[[package]] +name = "sp-runtime-interface-proc-macro" +version = "17.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "Inflector", + "expander", + "proc-macro-crate 3.1.0", + "proc-macro2", + "quote", + "syn 2.0.60", +] + +[[package]] +name = "sp-runtime-interface-proc-macro" +version = "17.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk#d591b16f6b1dec88003323cdae0c3abe3b5c9cbe" +dependencies = [ + "Inflector", + "expander", + "proc-macro-crate 3.1.0", + "proc-macro2", + "quote", + "syn 2.0.60", +] + +[[package]] +name = "sp-session" +version = "27.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "parity-scale-codec", + "scale-info", + "sp-api", + "sp-core", + "sp-keystore", + "sp-runtime", + "sp-staking", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", +] + +[[package]] +name = "sp-staking" +version = "26.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "impl-trait-for-tuples", + "parity-scale-codec", + "scale-info", + "serde", + "sp-core", + "sp-runtime", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", +] + +[[package]] +name = "sp-state-machine" +version = "0.35.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "hash-db", + "log", + "parity-scale-codec", + "parking_lot 0.12.1", + "rand", + "smallvec", + "sp-core", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "sp-panic-handler", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "sp-trie", + "thiserror", + "tracing", + "trie-db", +] + +[[package]] +name = "sp-statement-store" +version = "10.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "aes-gcm", + "curve25519-dalek 4.1.2", + "ed25519-dalek", + "hkdf", + "parity-scale-codec", + "rand", + "scale-info", + "sha2 0.10.8", + "sp-api", + "sp-application-crypto", + "sp-core", + "sp-crypto-hashing", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "sp-runtime", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "thiserror", + "x25519-dalek 2.0.1", +] + +[[package]] +name = "sp-std" +version = "14.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" + +[[package]] +name = "sp-std" +version = "14.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk#d591b16f6b1dec88003323cdae0c3abe3b5c9cbe" + +[[package]] +name = "sp-storage" +version = "19.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "impl-serde", + "parity-scale-codec", + "ref-cast", + "serde", + "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", +] + +[[package]] +name = "sp-storage" +version = "19.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk#d591b16f6b1dec88003323cdae0c3abe3b5c9cbe" +dependencies = [ + "impl-serde", + "parity-scale-codec", + "ref-cast", + "serde", + "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk)", +] + +[[package]] +name = "sp-timestamp" +version = "26.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "async-trait", + "parity-scale-codec", + "sp-inherents", + "sp-runtime", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "thiserror", +] + +[[package]] +name = "sp-tracing" +version = "16.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "parity-scale-codec", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "tracing", + "tracing-core", + "tracing-subscriber 0.2.25", +] + +[[package]] +name = "sp-tracing" +version = "16.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk#d591b16f6b1dec88003323cdae0c3abe3b5c9cbe" +dependencies = [ + "parity-scale-codec", + "tracing", + "tracing-core", + "tracing-subscriber 0.3.18", +] + +[[package]] +name = "sp-transaction-pool" +version = "26.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "sp-api", + "sp-runtime", +] + +[[package]] +name = "sp-transaction-storage-proof" +version = "26.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "async-trait", + "parity-scale-codec", + "scale-info", + "sp-core", + "sp-inherents", + "sp-runtime", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "sp-trie", +] + +[[package]] +name = "sp-trie" +version = "29.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "ahash 0.8.11", + "hash-db", + "lazy_static", + "memory-db", + "nohash-hasher", + "parity-scale-codec", + "parking_lot 0.12.1", + "rand", + "scale-info", + "schnellru", + "sp-core", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "thiserror", + "tracing", + "trie-db", + "trie-root", +] + +[[package]] +name = "sp-version" +version = "29.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "impl-serde", + "parity-scale-codec", + "parity-wasm", + "scale-info", + "serde", + "sp-crypto-hashing-proc-macro", + "sp-runtime", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "sp-version-proc-macro", + "thiserror", +] + +[[package]] +name = "sp-version-proc-macro" +version = "13.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "parity-scale-codec", + "proc-macro2", + "quote", + "syn 2.0.60", +] + +[[package]] +name = "sp-wasm-interface" +version = "20.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "anyhow", + "impl-trait-for-tuples", + "log", + "parity-scale-codec", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "wasmtime", +] + +[[package]] +name = "sp-wasm-interface" +version = "20.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk#d591b16f6b1dec88003323cdae0c3abe3b5c9cbe" +dependencies = [ + "impl-trait-for-tuples", + "log", + "parity-scale-codec", +] + +[[package]] +name = "sp-weights" +version = "27.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "bounded-collections", + "parity-scale-codec", + "scale-info", + "serde", + "smallvec", + "sp-arithmetic", + "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", +] + +[[package]] +name = "spin" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" + +[[package]] +name = "spin" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" +dependencies = [ + "lock_api", +] + +[[package]] +name = "spinning_top" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d96d2d1d716fb500937168cc09353ffdc7a012be8475ac7308e1bdf0e3923300" +dependencies = [ + "lock_api", +] + +[[package]] +name = "spki" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" +dependencies = [ + "base64ct", + "der", +] + +[[package]] +name = "sqlformat" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce81b7bd7c4493975347ef60d8c7e8b742d4694f4c49f93e0a12ea263938176c" +dependencies = [ + "itertools 0.12.1", + "nom", + "unicode_categories", +] + +[[package]] +name = "sqlx" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9a2ccff1a000a5a59cd33da541d9f2fdcd9e6e8229cc200565942bff36d0aaa" +dependencies = [ + "sqlx-core", + "sqlx-macros", + "sqlx-sqlite", +] + +[[package]] +name = "sqlx-core" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24ba59a9342a3d9bab6c56c118be528b27c9b60e490080e9711a04dccac83ef6" +dependencies = [ + "ahash 0.8.11", + "atoi", + "byteorder", + "bytes", + "crc", + "crossbeam-queue", + "either", + "event-listener 2.5.3", + "futures-channel", + "futures-core", + "futures-intrusive", + "futures-io", + "futures-util", + "hashlink", + "hex", + "indexmap 2.2.6", + "log", + "memchr", + "native-tls", + "once_cell", + "paste", + "percent-encoding", + "serde", + "sha2 0.10.8", + "smallvec", + "sqlformat", + "thiserror", + "tokio", + "tokio-stream", + "tracing", + "url", +] + +[[package]] +name = "sqlx-macros" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ea40e2345eb2faa9e1e5e326db8c34711317d2b5e08d0d5741619048a803127" +dependencies = [ + "proc-macro2", + "quote", + "sqlx-core", + "sqlx-macros-core", + "syn 1.0.109", +] + +[[package]] +name = "sqlx-macros-core" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5833ef53aaa16d860e92123292f1f6a3d53c34ba8b1969f152ef1a7bb803f3c8" +dependencies = [ + "dotenvy", + "either", + "heck 0.4.1", + "hex", + "once_cell", + "proc-macro2", + "quote", + "serde", + "serde_json", + "sha2 0.10.8", + "sqlx-core", + "sqlx-sqlite", + "syn 1.0.109", + "tempfile", + "tokio", + "url", +] + +[[package]] +name = "sqlx-sqlite" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b244ef0a8414da0bed4bb1910426e890b19e5e9bccc27ada6b797d05c55ae0aa" +dependencies = [ + "atoi", + "flume", + "futures-channel", + "futures-core", + "futures-executor", + "futures-intrusive", + "futures-util", + "libsqlite3-sys", + "log", + "percent-encoding", + "serde", + "sqlx-core", + "tracing", + "url", + "urlencoding", +] + +[[package]] +name = "ss58-registry" +version = "1.47.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4743ce898933fbff7bbf414f497c459a782d496269644b3d650a398ae6a487ba" +dependencies = [ + "Inflector", + "num-format", + "proc-macro2", + "quote", + "serde", + "serde_json", + "unicode-xid", +] + +[[package]] +name = "stable_deref_trait" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" + +[[package]] +name = "staging-xcm" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "array-bytes 6.2.2", + "bounded-collections", + "derivative", + "environmental", + "impl-trait-for-tuples", + "log", + "parity-scale-codec", + "scale-info", + "serde", + "sp-weights", + "xcm-procedural", +] + +[[package]] +name = "staging-xcm-builder" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "frame-support", + "frame-system", + "impl-trait-for-tuples", + "log", + "pallet-transaction-payment", + "parity-scale-codec", + "polkadot-parachain-primitives", + "scale-info", + "sp-arithmetic", + "sp-io", + "sp-runtime", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "sp-weights", + "staging-xcm", + "staging-xcm-executor", +] + +[[package]] +name = "staging-xcm-executor" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "environmental", + "frame-benchmarking", + "frame-support", + "impl-trait-for-tuples", + "log", + "parity-scale-codec", + "scale-info", + "sp-arithmetic", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "sp-weights", + "staging-xcm", +] + +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + +[[package]] +name = "static_init" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a2a1c578e98c1c16fc3b8ec1328f7659a500737d7a0c6d625e73e830ff9c1f6" +dependencies = [ + "bitflags 1.3.2", + "cfg_aliases", + "libc", + "parking_lot 0.11.2", + "parking_lot_core 0.8.6", + "static_init_macro", + "winapi", +] + +[[package]] +name = "static_init_macro" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70a2595fc3aa78f2d0e45dd425b22282dd863273761cc77780914b2cf3003acf" +dependencies = [ + "cfg_aliases", + "memchr", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "strsim" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" + +[[package]] +name = "strum" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "063e6045c0e62079840579a7e47a355ae92f60eb74daaf156fb1e84ba164e63f" +dependencies = [ + "strum_macros 0.24.3", +] + +[[package]] +name = "strum" +version = "0.26.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d8cec3501a5194c432b2b7976db6b7d10ec95c253208b45f83f7136aa985e29" + +[[package]] +name = "strum_macros" +version = "0.24.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59" +dependencies = [ + "heck 0.4.1", + "proc-macro2", + "quote", + "rustversion", + "syn 1.0.109", +] + +[[package]] +name = "strum_macros" +version = "0.26.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6cf59daf282c0a494ba14fd21610a0325f9f90ec9d1231dea26bcb1d696c946" +dependencies = [ + "heck 0.4.1", + "proc-macro2", + "quote", + "rustversion", + "syn 2.0.60", +] + +[[package]] +name = "substrate-bip39" +version = "0.4.7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "hmac 0.12.1", + "pbkdf2", + "schnorrkel", + "sha2 0.10.8", + "zeroize", +] + +[[package]] +name = "substrate-build-script-utils" +version = "11.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" + +[[package]] +name = "substrate-frame-rpc-system" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "frame-system-rpc-runtime-api", + "futures", + "jsonrpsee", + "log", + "parity-scale-codec", + "sc-rpc-api", + "sc-transaction-pool-api", + "sp-api", + "sp-block-builder", + "sp-blockchain", + "sp-core", + "sp-runtime", +] + +[[package]] +name = "substrate-prometheus-endpoint" +version = "0.17.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "hyper", + "log", + "prometheus", + "thiserror", + "tokio", +] + +[[package]] +name = "substrate-validator-set" +version = "1.1.0" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "log", + "pallet-session", + "parity-scale-codec", + "scale-info", + "serde", + "sp-core", + "sp-io", + "sp-runtime", + "sp-staking", + "sp-state-machine", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0)", + "sp-weights", +] + +[[package]] +name = "substrate-wasm-builder" +version = "17.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "build-helper", + "cargo_metadata", + "console", + "filetime", + "parity-wasm", + "polkavm-linker", + "sp-maybe-compressed-blob", + "strum 0.24.1", + "tempfile", + "toml 0.8.12", + "walkdir", + "wasm-opt", +] + +[[package]] +name = "subtle" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d67a5a62ba6e01cb2192ff309324cb4875d0c451d55fe2319433abe7a05a8ee" + +[[package]] +name = "subtle" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" + +[[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.60" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "909518bc7b1c9b779f1bbf07f2929d35af9f0f37e47c6e9ef7f9dddc1e1821f3" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "synstructure" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", + "unicode-xid", +] + +[[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 = "target-lexicon" +version = "0.12.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1fc403891a21bcfb7c37834ba66a547a8f402146eba7265b5a6d88059c9ff2f" + +[[package]] +name = "tempfile" +version = "3.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1" +dependencies = [ + "cfg-if", + "fastrand", + "rustix 0.38.32", + "windows-sys 0.52.0", +] + +[[package]] +name = "termcolor" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "terminal_size" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21bebf2b7c9e0a515f6e0f8c51dc0f8e4696391e6f1ff30379559f8365fb0df7" +dependencies = [ + "rustix 0.38.32", + "windows-sys 0.48.0", +] + +[[package]] +name = "termtree" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3369f5ac52d5eb6ab48c6b4ffdc8efbcad6b89c765749064ba298f2c68a16a76" + +[[package]] +name = "thiserror" +version = "1.0.58" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03468839009160513471e86a034bb2c5c0e4baae3b43f79ffc55c4a5427b3297" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.58" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.60", +] + +[[package]] +name = "thousands" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3bf63baf9f5039dadc247375c29eb13706706cfde997d0330d05aa63a77d8820" + +[[package]] +name = "thread_local" +version = "1.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" +dependencies = [ + "cfg-if", + "once_cell", +] + +[[package]] +name = "threadpool" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa" +dependencies = [ + "num_cpus", +] + +[[package]] +name = "tikv-jemalloc-sys" +version = "0.5.4+5.3.0-patched" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9402443cb8fd499b6f327e40565234ff34dbda27460c5b47db0db77443dd85d1" +dependencies = [ + "cc", + "libc", +] + +[[package]] +name = "time" +version = "0.3.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" +dependencies = [ + "deranged", + "itoa", + "num-conv", + "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.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf" +dependencies = [ + "num-conv", + "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.37.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1adbebffeca75fcfd058afa480fb6c0b81e165a0323f9c9d39c9697e37c46787" +dependencies = [ + "backtrace", + "bytes", + "libc", + "mio", + "num_cpus", + "parking_lot 0.12.1", + "pin-project-lite 0.2.14", + "signal-hook-registry", + "socket2 0.5.6", + "tokio-macros", + "windows-sys 0.48.0", +] + +[[package]] +name = "tokio-macros" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.60", +] + +[[package]] +name = "tokio-rustls" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" +dependencies = [ + "rustls 0.21.10", + "tokio", +] + +[[package]] +name = "tokio-stream" +version = "0.1.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "267ac89e0bec6e691e5813911606935d77c476ff49024f98abcea3e7b15e37af" +dependencies = [ + "futures-core", + "pin-project-lite 0.2.14", + "tokio", + "tokio-util", +] + +[[package]] +name = "tokio-util" +version = "0.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15" +dependencies = [ + "bytes", + "futures-core", + "futures-io", + "futures-sink", + "pin-project-lite 0.2.14", + "tokio", + "tracing", +] + +[[package]] +name = "toml" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" +dependencies = [ + "serde", +] + +[[package]] +name = "toml" +version = "0.8.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9dd1545e8208b4a5af1aa9bbd0b4cf7e9ea08fabc5d0a5c67fcaafa17433aa3" +dependencies = [ + "serde", + "serde_spanned", + "toml_datetime", + "toml_edit 0.22.9", +] + +[[package]] +name = "toml_datetime" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1" +dependencies = [ + "serde", +] + +[[package]] +name = "toml_edit" +version = "0.20.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70f427fce4d84c72b5b732388bf4a9f4531b53f74e2887e3ecb2481f68f66d81" +dependencies = [ + "indexmap 2.2.6", + "toml_datetime", + "winnow 0.5.40", +] + +[[package]] +name = "toml_edit" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" +dependencies = [ + "indexmap 2.2.6", + "toml_datetime", + "winnow 0.5.40", +] + +[[package]] +name = "toml_edit" +version = "0.22.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e40bb779c5187258fd7aad0eb68cb8706a0a81fa712fbea808ab43c4b8374c4" +dependencies = [ + "indexmap 2.2.6", + "serde", + "serde_spanned", + "toml_datetime", + "winnow 0.6.6", +] + +[[package]] +name = "tower" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" +dependencies = [ + "futures-core", + "futures-util", + "pin-project", + "pin-project-lite 0.2.14", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tower-http" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61c5bb1d698276a2443e5ecfabc1008bf15a36c12e6a7176e7bf089ea9131140" +dependencies = [ + "bitflags 2.5.0", + "bytes", + "futures-core", + "futures-util", + "http", + "http-body", + "http-range-header", + "pin-project-lite 0.2.14", + "tower-layer", + "tower-service", +] + +[[package]] +name = "tower-layer" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0" + +[[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.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" +dependencies = [ + "log", + "pin-project-lite 0.2.14", + "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.60", +] + +[[package]] +name = "tracing-core" +version = "0.1.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" +dependencies = [ + "once_cell", + "valuable", +] + +[[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 = "tracing-log" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f751112709b4e791d8ce53e32c4ed2d353565a795ce84da2285393f41557bdf2" +dependencies = [ + "log", + "once_cell", + "tracing-core", +] + +[[package]] +name = "tracing-log" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" +dependencies = [ + "log", + "once_cell", + "tracing-core", +] + +[[package]] +name = "tracing-serde" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc6b213177105856957181934e4920de57730fc69bf42c37ee5bb664d406d9e1" +dependencies = [ + "serde", + "tracing-core", +] + +[[package]] +name = "tracing-subscriber" +version = "0.2.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e0d2eaa99c3c2e41547cfa109e910a68ea03823cccad4a0525dcbc9b01e8c71" +dependencies = [ + "ansi_term", + "chrono", + "lazy_static", + "matchers 0.0.1", + "parking_lot 0.11.2", + "regex", + "serde", + "serde_json", + "sharded-slab", + "smallvec", + "thread_local", + "tracing", + "tracing-core", + "tracing-log 0.1.4", + "tracing-serde", +] + +[[package]] +name = "tracing-subscriber" +version = "0.3.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b" +dependencies = [ + "matchers 0.1.0", + "nu-ansi-term", + "once_cell", + "regex", + "sharded-slab", + "smallvec", + "thread_local", + "tracing", + "tracing-core", + "tracing-log 0.2.0", +] + +[[package]] +name = "trie-db" +version = "0.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff28e0f815c2fea41ebddf148e008b077d2faddb026c9555b29696114d602642" +dependencies = [ + "hash-db", + "hashbrown 0.13.2", + "log", + "rustc-hex", + "smallvec", +] + +[[package]] +name = "trie-root" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4ed310ef5ab98f5fa467900ed906cb9232dd5376597e00fd4cba2a449d06c0b" +dependencies = [ + "hash-db", +] + +[[package]] +name = "trust-dns-proto" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f7f83d1e4a0e4358ac54c5c3681e5d7da5efc5a7a632c90bb6d6669ddd9bc26" +dependencies = [ + "async-trait", + "cfg-if", + "data-encoding", + "enum-as-inner", + "futures-channel", + "futures-io", + "futures-util", + "idna 0.2.3", + "ipnet", + "lazy_static", + "rand", + "smallvec", + "socket2 0.4.10", + "thiserror", + "tinyvec", + "tokio", + "tracing", + "url", +] + +[[package]] +name = "trust-dns-resolver" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aff21aa4dcefb0a1afbfac26deb0adc93888c7d295fb63ab273ef276ba2b7cfe" +dependencies = [ + "cfg-if", + "futures-util", + "ipconfig", + "lazy_static", + "lru-cache", + "parking_lot 0.12.1", + "resolv-conf", + "smallvec", + "thiserror", + "tokio", + "tracing", + "trust-dns-proto", +] + +[[package]] +name = "try-lock" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" + +[[package]] +name = "tt-call" +version = "1.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4f195fd851901624eee5a58c4bb2b4f06399148fcd0ed336e6f1cb60a9881df" + +[[package]] +name = "twox-hash" +version = "1.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675" +dependencies = [ + "cfg-if", + "digest 0.10.7", + "rand", + "static_assertions", +] + +[[package]] +name = "typenum" +version = "1.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" + +[[package]] +name = "ucd-trie" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9" + +[[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.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" + +[[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-segmentation" +version = "1.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202" + +[[package]] +name = "unicode-width" +version = "0.1.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85" + +[[package]] +name = "unicode-xid" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" + +[[package]] +name = "unicode_categories" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39ec24b3121d976906ece63c9daad25b85969647682eee313cb5779fdd69e14e" + +[[package]] +name = "universal-hash" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea" +dependencies = [ + "crypto-common", + "subtle 2.5.0", +] + +[[package]] +name = "unsigned-varint" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6889a77d49f1f013504cec6bf97a2c730394adedaeb1deb5ea08949a50541105" +dependencies = [ + "asynchronous-codec", + "bytes", + "futures-io", + "futures-util", +] + +[[package]] +name = "untrusted" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" + +[[package]] +name = "untrusted" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" + +[[package]] +name = "url" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633" +dependencies = [ + "form_urlencoded", + "idna 0.5.0", + "percent-encoding", +] + +[[package]] +name = "urlencoding" +version = "2.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da" + +[[package]] +name = "utf8parse" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" + +[[package]] +name = "valuable" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" + +[[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 = "w3f-bls" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7335e4c132c28cc43caef6adb339789e599e39adbe78da0c4d547fad48cbc331" +dependencies = [ + "ark-bls12-377", + "ark-bls12-381", + "ark-ec", + "ark-ff", + "ark-serialize", + "ark-serialize-derive", + "arrayref", + "constcat", + "digest 0.10.7", + "rand", + "rand_chacha", + "rand_core 0.6.4", + "sha2 0.10.8", + "sha3", + "thiserror", + "zeroize", +] + +[[package]] +name = "walkdir" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" +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.9.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" + +[[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.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8" +dependencies = [ + "cfg-if", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da" +dependencies = [ + "bumpalo", + "log", + "once_cell", + "proc-macro2", + "quote", + "syn 2.0.60", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.42" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0" +dependencies = [ + "cfg-if", + "js-sys", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.60", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" + +[[package]] +name = "wasm-instrument" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a47ecb37b9734d1085eaa5ae1a81e60801fd8c28d4cabdd8aedb982021918bc" +dependencies = [ + "parity-wasm", +] + +[[package]] +name = "wasm-opt" +version = "0.116.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2fd87a4c135535ffed86123b6fb0f0a5a0bc89e50416c942c5f0662c645f679c" +dependencies = [ + "anyhow", + "libc", + "strum 0.24.1", + "strum_macros 0.24.3", + "tempfile", + "thiserror", + "wasm-opt-cxx-sys", + "wasm-opt-sys", +] + +[[package]] +name = "wasm-opt-cxx-sys" +version = "0.116.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c57b28207aa724318fcec6575fe74803c23f6f266fce10cbc9f3f116762f12e" +dependencies = [ + "anyhow", + "cxx", + "cxx-build", + "wasm-opt-sys", +] + +[[package]] +name = "wasm-opt-sys" +version = "0.116.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a1cce564dc768dacbdb718fc29df2dba80bd21cb47d8f77ae7e3d95ceb98cbe" +dependencies = [ + "anyhow", + "cc", + "cxx", + "cxx-build", +] + +[[package]] +name = "wasm-timer" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be0ecb0db480561e9a7642b5d3e4187c128914e58aa84330b9493e3eb68c5e7f" +dependencies = [ + "futures", + "js-sys", + "parking_lot 0.11.2", + "pin-utils", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "wasmi" +version = "0.31.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77a8281d1d660cdf54c76a3efa9ddd0c270cada1383a995db3ccb43d166456c7" +dependencies = [ + "smallvec", + "spin 0.9.8", + "wasmi_arena", + "wasmi_core", + "wasmparser-nostd", +] + +[[package]] +name = "wasmi_arena" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "104a7f73be44570cac297b3035d76b169d6599637631cf37a1703326a0727073" + +[[package]] +name = "wasmi_core" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcf1a7db34bff95b85c261002720c00c3a6168256dcb93041d3fa2054d19856a" +dependencies = [ + "downcast-rs", + "libm", + "num-traits", + "paste", +] + +[[package]] +name = "wasmparser" +version = "0.102.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48134de3d7598219ab9eaf6b91b15d8e50d31da76b8519fe4ecfcec2cf35104b" +dependencies = [ + "indexmap 1.9.3", + "url", +] + +[[package]] +name = "wasmparser-nostd" +version = "0.100.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9157cab83003221bfd385833ab587a039f5d6fa7304854042ba358a3b09e0724" +dependencies = [ + "indexmap-nostd", +] + +[[package]] +name = "wasmtime" +version = "8.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f907fdead3153cb9bfb7a93bbd5b62629472dc06dee83605358c64c52ed3dda9" +dependencies = [ + "anyhow", + "bincode", + "cfg-if", + "indexmap 1.9.3", + "libc", + "log", + "object 0.30.4", + "once_cell", + "paste", + "psm", + "rayon", + "serde", + "target-lexicon", + "wasmparser", + "wasmtime-cache", + "wasmtime-cranelift", + "wasmtime-environ", + "wasmtime-jit", + "wasmtime-runtime", + "windows-sys 0.45.0", +] + +[[package]] +name = "wasmtime-asm-macros" +version = "8.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3b9daa7c14cd4fa3edbf69de994408d5f4b7b0959ac13fa69d465f6597f810d" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "wasmtime-cache" +version = "8.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c86437fa68626fe896e5afc69234bb2b5894949083586535f200385adfd71213" +dependencies = [ + "anyhow", + "base64 0.21.7", + "bincode", + "directories-next", + "file-per-thread-logger", + "log", + "rustix 0.36.17", + "serde", + "sha2 0.10.8", + "toml 0.5.11", + "windows-sys 0.45.0", + "zstd 0.11.2+zstd.1.5.2", +] + +[[package]] +name = "wasmtime-cranelift" +version = "8.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1cefde0cce8cb700b1b21b6298a3837dba46521affd7b8c38a9ee2c869eee04" +dependencies = [ + "anyhow", + "cranelift-codegen", + "cranelift-entity", + "cranelift-frontend", + "cranelift-native", + "cranelift-wasm", + "gimli 0.27.3", + "log", + "object 0.30.4", + "target-lexicon", + "thiserror", + "wasmparser", + "wasmtime-cranelift-shared", + "wasmtime-environ", +] + +[[package]] +name = "wasmtime-cranelift-shared" +version = "8.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd041e382ef5aea1b9fc78442394f1a4f6d676ce457e7076ca4cb3f397882f8b" +dependencies = [ + "anyhow", + "cranelift-codegen", + "cranelift-native", + "gimli 0.27.3", + "object 0.30.4", + "target-lexicon", + "wasmtime-environ", +] + +[[package]] +name = "wasmtime-environ" +version = "8.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a990198cee4197423045235bf89d3359e69bd2ea031005f4c2d901125955c949" +dependencies = [ + "anyhow", + "cranelift-entity", + "gimli 0.27.3", + "indexmap 1.9.3", + "log", + "object 0.30.4", + "serde", + "target-lexicon", + "thiserror", + "wasmparser", + "wasmtime-types", +] + +[[package]] +name = "wasmtime-jit" +version = "8.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0de48df552cfca1c9b750002d3e07b45772dd033b0b206d5c0968496abf31244" +dependencies = [ + "addr2line 0.19.0", + "anyhow", + "bincode", + "cfg-if", + "cpp_demangle", + "gimli 0.27.3", + "log", + "object 0.30.4", + "rustc-demangle", + "serde", + "target-lexicon", + "wasmtime-environ", + "wasmtime-jit-debug", + "wasmtime-jit-icache-coherence", + "wasmtime-runtime", + "windows-sys 0.45.0", +] + +[[package]] +name = "wasmtime-jit-debug" +version = "8.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e0554b84c15a27d76281d06838aed94e13a77d7bf604bbbaf548aa20eb93846" +dependencies = [ + "object 0.30.4", + "once_cell", + "rustix 0.36.17", +] + +[[package]] +name = "wasmtime-jit-icache-coherence" +version = "8.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aecae978b13f7f67efb23bd827373ace4578f2137ec110bbf6a4a7cde4121bbd" +dependencies = [ + "cfg-if", + "libc", + "windows-sys 0.45.0", +] + +[[package]] +name = "wasmtime-runtime" +version = "8.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "658cf6f325232b6760e202e5255d823da5e348fdea827eff0a2a22319000b441" +dependencies = [ + "anyhow", + "cc", + "cfg-if", + "indexmap 1.9.3", + "libc", + "log", + "mach", + "memfd", + "memoffset", + "paste", + "rand", + "rustix 0.36.17", + "wasmtime-asm-macros", + "wasmtime-environ", + "wasmtime-jit-debug", + "windows-sys 0.45.0", +] + +[[package]] +name = "wasmtime-types" +version = "8.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4f6fffd2a1011887d57f07654dd112791e872e3ff4a2e626aee8059ee17f06f" +dependencies = [ + "cranelift-entity", + "serde", + "thiserror", + "wasmparser", +] + +[[package]] +name = "web-sys" +version = "0.3.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "webpki" +version = "0.22.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed63aea5ce73d0ff405984102c42de94fc55a6b75765d621c65262469b3c9b53" +dependencies = [ + "ring 0.17.8", + "untrusted 0.9.0", +] + +[[package]] +name = "webpki-roots" +version = "0.22.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c71e40d7d2c34a5106301fb632274ca37242cd0c9d3e64dbece371a40a2d87" +dependencies = [ + "webpki", +] + +[[package]] +name = "which" +version = "4.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7" +dependencies = [ + "either", + "home", + "once_cell", + "rustix 0.38.32", +] + +[[package]] +name = "wide" +version = "0.7.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81a1851a719f11d1d2fea40e15c72f6c00de8c142d7ac47c1441cc7e4d0d5bc6" +dependencies = [ + "bytemuck", + "safe_arch", +] + +[[package]] +name = "widestring" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7219d36b6eac893fa81e84ebe06485e7dcbb616177469b142df14f1f4deb1311" + +[[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" +version = "0.51.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca229916c5ee38c2f2bc1e9d8f04df975b4bd93f9955dc69fabb5d91270045c9" +dependencies = [ + "windows-core 0.51.1", + "windows-targets 0.48.5", +] + +[[package]] +name = "windows-core" +version = "0.51.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1f8cf84f35d2db49a46868f947758c7a1138116f7fac3bc844f43ade1292e64" +dependencies = [ + "windows-targets 0.48.5", +] + +[[package]] +name = "windows-core" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" +dependencies = [ + "windows-targets 0.52.5", +] + +[[package]] +name = "windows-sys" +version = "0.45.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" +dependencies = [ + "windows-targets 0.42.2", +] + +[[package]] +name = "windows-sys" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets 0.48.5", +] + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.5", +] + +[[package]] +name = "windows-targets" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" +dependencies = [ + "windows_aarch64_gnullvm 0.42.2", + "windows_aarch64_msvc 0.42.2", + "windows_i686_gnu 0.42.2", + "windows_i686_msvc 0.42.2", + "windows_x86_64_gnu 0.42.2", + "windows_x86_64_gnullvm 0.42.2", + "windows_x86_64_msvc 0.42.2", +] + +[[package]] +name = "windows-targets" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +dependencies = [ + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", +] + +[[package]] +name = "windows-targets" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb" +dependencies = [ + "windows_aarch64_gnullvm 0.52.5", + "windows_aarch64_msvc 0.52.5", + "windows_i686_gnu 0.52.5", + "windows_i686_gnullvm", + "windows_i686_msvc 0.52.5", + "windows_x86_64_gnu 0.52.5", + "windows_x86_64_gnullvm 0.52.5", + "windows_x86_64_msvc 0.52.5", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" + +[[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_gnullvm" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6" + +[[package]] +name = "windows_i686_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" + +[[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_gnu" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9" + +[[package]] +name = "windows_i686_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" + +[[package]] +name = "windows_i686_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" + +[[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_gnu" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" + +[[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_gnullvm" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0" + +[[package]] +name = "winnow" +version = "0.5.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" +dependencies = [ + "memchr", +] + +[[package]] +name = "winnow" +version = "0.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0c976aaaa0e1f90dbb21e9587cdaf1d9679a1cde8875c0d6bd83ab96a208352" +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 0.48.0", +] + +[[package]] +name = "wyz" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" +dependencies = [ + "tap", +] + +[[package]] +name = "x25519-dalek" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a0c105152107e3b96f6a00a65e86ce82d9b125230e1c4302940eca58ff71f4f" +dependencies = [ + "curve25519-dalek 3.2.0", + "rand_core 0.5.1", + "zeroize", +] + +[[package]] +name = "x25519-dalek" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7e468321c81fb07fa7f4c636c3972b9100f0346e5b6a9f2bd0603a52f7ed277" +dependencies = [ + "curve25519-dalek 4.1.2", + "rand_core 0.6.4", + "serde", + "zeroize", +] + +[[package]] +name = "x509-parser" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0ecbeb7b67ce215e40e3cc7f2ff902f94a223acf44995934763467e7b1febc8" +dependencies = [ + "asn1-rs", + "base64 0.13.1", + "data-encoding", + "der-parser", + "lazy_static", + "nom", + "oid-registry", + "rusticata-macros", + "thiserror", + "time", +] + +[[package]] +name = "xcm-procedural" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +dependencies = [ + "Inflector", + "proc-macro2", + "quote", + "syn 2.0.60", +] + +[[package]] +name = "yamux" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5d9ba232399af1783a58d8eb26f6b5006fbefe2dc9ef36bd283324792d03ea5" +dependencies = [ + "futures", + "log", + "nohash-hasher", + "parking_lot 0.12.1", + "rand", + "static_assertions", +] + +[[package]] +name = "yasna" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e17bb3549cc1321ae1296b9cdc2698e2b6cb1992adfa19a8c72e5b7a738f44cd" +dependencies = [ + "time", +] + +[[package]] +name = "zerocopy" +version = "0.7.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.7.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.60", +] + +[[package]] +name = "zeroize" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d" +dependencies = [ + "zeroize_derive", +] + +[[package]] +name = "zeroize_derive" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.60", +] + +[[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 5.0.2+zstd.1.5.2", +] + +[[package]] +name = "zstd" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a27595e173641171fc74a1232b7b1c7a7cb6e18222c11e9dfb9888fa424c53c" +dependencies = [ + "zstd-safe 6.0.6", +] + +[[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-safe" +version = "6.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee98ffd0b48ee95e6c5168188e44a54550b1564d9d530ee21d5f0eaed1069581" +dependencies = [ + "libc", + "zstd-sys", +] + +[[package]] +name = "zstd-sys" +version = "2.0.10+zstd.1.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c253a4914af5bafc8fa8c86ee400827e83cf6ec01195ec1f1ed8441bf00d65aa" +dependencies = [ + "cc", + "pkg-config", +] diff --git a/Cargo.toml b/Cargo.toml new file mode 100644 index 0000000..ef8b42b --- /dev/null +++ b/Cargo.toml @@ -0,0 +1,191 @@ +[workspace] +members = [ + "node", + "runtime", +] +resolver = "2" + +[workspace.package] +authors = ["World Mobile Group"] +edition = "2021" +repository = "https://github.com/worldmobilegroup/aya-node/" + +[workspace.dependencies] +async-trait = "0.1" +bn = { package = "substrate-bn", version = "0.6", default-features = false } +clap = { version = "4.5", features = ["derive", "deprecated"] } +derive_more = "0.99" +environmental = { version = "1.1.4", default-features = false } +ethereum = { version = "0.15.0", default-features = false } +ethereum-types = { version = "0.14.1", default-features = false } +evm = { version = "0.41.1", default-features = false } +futures = "0.3.30" +hash-db = { version = "0.16.0", default-features = false } +hex = { version = "0.4.3", default-features = false, features = ["alloc"] } +hex-literal = "0.4.1" +impl-serde = { version = "0.4.0", default-features = false } +impl-trait-for-tuples = "0.2.1" +jsonrpsee = "0.22.3" +kvdb-rocksdb = "0.19.0" +libsecp256k1 = { version = "0.7.1", default-features = false } +log = { version = "0.4.21", default-features = false } +num_enum = { version = "0.7.2", default-features = false } +parity-db = "0.4.13" +parking_lot = "0.12.1" +rlp = { version = "0.5.2", default-features = false } +scale-codec = { package = "parity-scale-codec", version = "3.6.4", default-features = false, features = ["derive"] } +scale-info = { version = "2.11.0", default-features = false, features = ["derive"] } +serde = { version = "1.0", default-features = false, features = ["derive", "alloc"] } +serde_json = "1.0" +sha3 = { version = "0.10", default-features = false } +similar-asserts = "1.5.0" +sqlx = { version = "0.7.4", default-features = false, features = ["macros"] } +thiserror = "1.0" +tokio = "1.36.0" + +# Substrate Client +sc-basic-authorship = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0" } +sc-block-builder = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0" } +sc-chain-spec = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0" } +sc-cli = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +sc-client-api = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0" } +sc-client-db = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +sc-consensus = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0" } +sc-consensus-aura = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0" } +sc-consensus-grandpa = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0" } +sc-consensus-manual-seal = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0" } +sc-executor = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0" } +sc-keystore = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0" } +sc-network = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0" } +sc-network-common = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0" } +sc-network-sync = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0" } +sc-offchain = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0" } +sc-rpc = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0" } +sc-rpc-api = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0" } +sc-service = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +sc-telemetry = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0" } +sc-transaction-pool = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0" } +sc-transaction-pool-api = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0" } +sc-utils = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0" } +# Substrate Primitive +sp-api = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +sp-block-builder = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +sp-blockchain = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0" } +sp-consensus = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0" } +sp-consensus-aura = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +sp-consensus-grandpa = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +sp-core = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +sp-crypto-hashing = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +sp-database = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0" } +sp-externalities = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +sp-genesis-builder = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +sp-inherents = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +sp-io = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +sp-keyring = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0" } +sp-offchain = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +sp-runtime = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +sp-runtime-interface = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +sp-session = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +sp-staking = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +sp-state-machine = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +sp-std = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +sp-storage = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +sp-timestamp = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +sp-transaction-pool = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +sp-version = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +sp-weights = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +# Substrate FRAME +frame-benchmarking = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +frame-executive = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +frame-support = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +frame-system = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +frame-system-benchmarking = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +pallet-aura = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +pallet-balances = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +pallet-grandpa = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +pallet-sudo = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +pallet-timestamp = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +pallet-transaction-payment = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0" } +pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +pallet-utility = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +pallet-contracts = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +pallet-parameters = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +pallet-insecure-randomness-collective-flip = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +pallet-assets = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +pallet-indices = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +pallet-multisig = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +pallet-node-authorization = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +pallet-recovery = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +pallet-session = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false, features = ["historical"] } +pallet-session-benchmarking = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +pallet-authorship = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +pallet-uniques = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +pallet-im-online = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } +#validator-set = { package = 'substrate-validator-set', branch = "master", git = 'https://github.com/gautamdhameja/substrate-validator-set.git', default-features = false } +substrate-validator-set = { path = "pallets/substrate-validator-set", default-features = false } +# Substrate Utility +frame-benchmarking-cli = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0" } +prometheus-endpoint = { package = "substrate-prometheus-endpoint", git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0" } +substrate-build-script-utils = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0" } +substrate-frame-rpc-system = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0" } +substrate-test-runtime-client = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0" } +substrate-wasm-builder = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0" } + +# XCM +xcm = { package = "staging-xcm", git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.9.0", default-features = false } + +# Arkworks +ark-bls12-377 = { version = "0.4.0", default-features = false, features = ["curve"] } +ark-bls12-381 = { version = "0.4.0", default-features = false, features = ["curve"] } +ark-bw6-761 = { version = "0.4.0", default-features = false } +ark-ec = { version = "0.4.0", default-features = false } +ark-ff = { version = "0.4.0", default-features = false } +ark-std = { version = "0.4.0", default-features = false } + +# Frontier Client +fc-api = { git = "https://github.com/polkadot-evm/frontier", branch = "master" } +fc-cli = { git = "https://github.com/polkadot-evm/frontier", branch = "master", default-features = false } +fc-consensus = { git = "https://github.com/polkadot-evm/frontier", branch = "master" } +fc-db = { git = "https://github.com/polkadot-evm/frontier", branch = "master", default-features = false } +fc-mapping-sync = { git = "https://github.com/polkadot-evm/frontier", branch = "master", default-features = false } +fc-rpc = { git = "https://github.com/polkadot-evm/frontier", branch = "master", default-features = false } +fc-rpc-core = { git = "https://github.com/polkadot-evm/frontier", branch = "master" } +fc-storage = { git = "https://github.com/polkadot-evm/frontier", branch = "master" } +# Frontier Primitive +fp-account = { git = "https://github.com/polkadot-evm/frontier", branch = "master", default-features = false } +fp-consensus = { git = "https://github.com/polkadot-evm/frontier", branch = "master", default-features = false } +fp-dynamic-fee = { git = "https://github.com/polkadot-evm/frontier", branch = "master", default-features = false } +fp-ethereum = { git = "https://github.com/polkadot-evm/frontier", branch = "master", default-features = false } +fp-evm = { git = "https://github.com/polkadot-evm/frontier", branch = "master", default-features = false } +fp-rpc = { git = "https://github.com/polkadot-evm/frontier", branch = "master", default-features = false } +fp-self-contained = { git = "https://github.com/polkadot-evm/frontier", branch = "master", default-features = false } +fp-storage = { git = "https://github.com/polkadot-evm/frontier", branch = "master", default-features = false } +# Frontier FRAME +pallet-base-fee = { git = "https://github.com/polkadot-evm/frontier", branch = "master", default-features = false } +pallet-dynamic-fee = { git = "https://github.com/polkadot-evm/frontier", branch = "master", default-features = false } +pallet-ethereum = { git = "https://github.com/polkadot-evm/frontier", branch = "master", default-features = false } +pallet-evm = { git = "https://github.com/polkadot-evm/frontier", branch = "master", default-features = false } +pallet-evm-chain-id = { git = "https://github.com/polkadot-evm/frontier", branch = "master", default-features = false } +pallet-evm-precompile-modexp = { git = "https://github.com/polkadot-evm/frontier", branch = "master", default-features = false } +pallet-evm-precompile-sha3fips = { git = "https://github.com/polkadot-evm/frontier", branch = "master", default-features = false } +pallet-evm-precompile-simple = { git = "https://github.com/polkadot-evm/frontier", branch = "master", default-features = false } +pallet-evm-test-vector-support = { git = "https://github.com/polkadot-evm/frontier", branch = "master" } +pallet-hotfix-sufficients = { git = "https://github.com/polkadot-evm/frontier", branch = "master", default-features = false } +# Frontier Utility +precompile-utils = { git = "https://github.com/polkadot-evm/frontier", branch = "master", default-features = false } +# Frontier Template +aya-runtime = { path = "runtime", default-features = false } + +[profile.release] +# Substrate runtime requires unwinding. +panic = "unwind" + +[profile.production] +inherits = "release" +# Sacrifice compile speed for execution speed by using optimization flags: +# https://doc.rust-lang.org/rustc/linker-plugin-lto.html +lto = true +# https://doc.rust-lang.org/rustc/codegen-options/index.html#codegen-units +codegen-units = 1 diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..a09d265 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,36 @@ +# Note: This is currently designed to simplify development +# To get a smaller docker image, there should be 2 images generated, in 2 stages. + +FROM rustlang/rust:nightly + + +ARG PROFILE=release +WORKDIR /aya + +# Upcd dates core parts +RUN apt-get update -y && \ + apt-get install -y cmake pkg-config libssl-dev git gcc build-essential clang libclang-dev protobuf-compiler + +# Install rust wasm. Needed for substrate wasm engine +RUN rustup target add wasm32-unknown-unknown + +# Download Frontier repo +RUN git clone https://github.com/worldmobilegroup/aya-node /aya +RUN cd /aya && git submodule init && git submodule update + +# Download rust dependencies and build the rust binary +RUN cargo build "--$PROFILE" + +# 30333 for p2p traffic +# 9933 for RPC call +# 9944 for Websocket +# 9615 for Prometheus (metrics) +EXPOSE 30333 9933 9944 9615 + + +ENV PROFILE ${PROFILE} + +# The execution will re-compile the project to run it +# This allows to modify the code and not have to re-compile the +# dependencies. +CMD cargo run --bin aya-node "--$PROFILE" -- --dev diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..261eeb9 --- /dev/null +++ b/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/README.md b/README.md new file mode 100644 index 0000000..ef8ba04 --- /dev/null +++ b/README.md @@ -0,0 +1,211 @@ +# Substrate AyA Node Template + +A [FRAME](https://docs.substrate.io/v3/runtime/frame)-based [Substrate](https://substrate.io) node with the Ethereum RPC +support, ready for hacking +:rocket: + +## Generation + +This template was originally forked from the +[Frontier Node Template](https://github.com/polkadot-evm/frontier/tree/master/template). You +can find more information on features on this template there, and more detailed usage on the +[Substrate Developer Hub Tutorials](https://docs.substrate.io/tutorials/v3/) that use this heavily. + +## Build & Run + +To build the chain, execute the following commands from the project root: + +``` +$ cargo build --release +``` + +To execute the chain, run: + +``` +$ ./target/release/aya-node --dev +``` + +The node also supports to use manual seal (to produce block manually through RPC). +This is also used by the ts-tests: + +``` +$ ./target/release/aya-node --dev --sealing=manual +# Or +$ ./target/release/aya-node --dev --sealing=instant +``` + +### Docker Based Development + +Optionally, you can build and run the AyA node within Docker directly. +The Dockerfile is optimized for development speed. +(Running the `docker run...` command will recompile the binaries but not the dependencies) + +Building (takes 5-10 min): + +```bash +docker build -t aya-node . +``` + +Running (takes 1 min to rebuild binaries): + +```bash +docker run -t aya-node-dev +``` + +## Genesis Configuration + +The development [chain spec](node/src/chain_spec.rs) included with this project defines a genesis +block that has been pre-configured with an EVM account for +[Alice](https://docs.substrate.io/v3/tools/subkey#well-known-keys). When +[a development chain is started](https://github.com/substrate-developer-hub/substrate-node-template#run), +Alice's EVM account will be funded with a large amount of Ether. The +[Polkadot UI](https://polkadot.js.org/apps/#?rpc=ws://127.0.0.1:9944) can be used to see the details +of Alice's EVM account. In order to view an EVM account, use the `Developer` tab of the Polkadot UI +`Settings` app to define the EVM `Account` type as below. It is also necessary to define the +`Address` and `LookupSource` to send transaction, and `Transaction` and `Signature` to be able to +inspect blocks: + +```json +{ + "Address": "MultiAddress", + "LookupSource": "MultiAddress", + "Account": { + "nonce": "U256", + "balance": "U256" + }, + "Transaction": { + "nonce": "U256", + "action": "String", + "gas_price": "u64", + "gas_limit": "u64", + "value": "U256", + "input": "Vec", + "signature": "Signature" + }, + "Signature": { + "v": "u64", + "r": "H256", + "s": "H256" + } +} +``` + +Use the `Developer` app's `RPC calls` tab to query `eth > getBalance(address, number)` with Alice's +EVM account ID (`0xd43593c715fdd31c61141abd04a99fd6822c8558`); the value that is returned should be: + +```text +x: eth.getBalance +340,282,366,920,938,463,463,374,607,431,768,211,455 +``` + +> Further reading: +> [EVM accounts](https://github.com/danforbes/danforbes/blob/master/writings/eth-dev.md#Accounts) + +Alice's EVM account ID was calculated using +[an included utility script](utils/README.md#--evm-address-address). + +## Example 1: ERC20 Contract Deployment using EVM dispatchable + +The following steps are also available as a [Typescript script](examples/contract-erc20) using +Polkadot JS SDK + +### Step 1: Contract creation + +The [`truffle`](examples/contract-erc20/truffle) directory contains a +[Truffle](https://www.trufflesuite.com/truffle) project that defines +[an ERC-20 token](examples/contract-erc20/truffle/contracts/MyToken.sol). For convenience, this +repository also contains +[the compiled bytecode of this token contract](examples/contract-erc20/truffle/contracts/MyToken.json#L259), +which can be used to deploy it to the Substrate blockchain. + +> Further reading: +> [the ERC-20 token standard](https://github.com/danforbes/danforbes/blob/master/writings/eth-dev.md#EIP-20-ERC-20-Token-Standard) + +Use the Polkadot UI `Extrinsics` app to deploy the contract from Alice's account (submit the +extrinsic as a signed transaction) using `evm > create` with the following parameters: + +``` +source: 0xd43593c715fdd31c61141abd04a99fd6822c8558 +init: +value: 0 +gas_limit: 4294967295 +gas_price: 1 +nonce: {None} +``` + +The values for `gas_limit` and `gas_price` were chosen for convenience and have little inherent or +special meaning. Note that `None` for the nonce will increment the known nonce for the source +account, starting from `0x0`, you may manually set this but will get an "evm.InvalidNonce" error if +not set correctly. + +Once the extrinsic is in a block, navigate to the `Network` -> `Explorer` tab in the UI, or open up +the browser console to see that the EVM pallet has fired a `Created` event with an `address` field +that provides the address of the newly-created contract: + +```bash +# console: +... {"phase":{"applyExtrinsic":2},"event":{"index":"0x0901","data":["0x8a50db1e0f9452cfd91be8dc004ceb11cb08832f"]} ... + +# UI: +evm.Created +A contract has been created at given [address] + H160: 0x8a50db1e0f9452cfd91be8dc004ceb11cb08832f +``` + +In this case, however, it is trivial to +[calculate this value](https://ethereum.stackexchange.com/a/46960): +`0x8a50db1e0f9452cfd91be8dc004ceb11cb08832f`. That is because EVM contract account IDs are +determined solely by the ID and nonce of the contract creator's account and, in this case, both of +those values are well-known (`0xd43593c715fdd31c61141abd04a99fd6822c8558` and `0x0`, respectively). + +### Step 2: Check Contract Storage + +Use the `Chain State` UI tab to query`evm > accountCodes` for both Alice's and the contract's +account IDs; notice that Alice's account code is empty and the contract's is equal to the bytecode +of the Solidity contract. + +The ERC-20 contract that was deployed inherits from +[the OpenZeppelin ERC-20 implementation](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/ERC20.sol) +and extends its capabilities by adding +[a constructor that mints a maximum amount of tokens to the contract creator](examples/contract-erc20/truffle/contracts/MyToken.sol#L8). +Use the `Chain State` app to query `evm > accountStorage` and view the value associated with Alice's +account in the `_balances` map of the ERC-20 contract; use the ERC-20 contract address +(`0x8a50db1e0f9452cfd91be8dc004ceb11cb08832f`) as the first parameter and the storage slot to read +as the second parameter (`0x045c0350b9cf0df39c4b40400c965118df2dca5ce0fbcf0de4aafc099aea4a14`). The +value that is returned should be +`0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`. + +The storage slot was calculated using +[a provided utility](utils/README.md#--erc20-slot-slot-address). (Slot 0 and alice address: +`0xd43593c715fdd31c61141abd04a99fd6822c8558`) + +> Further reading: +> [EVM layout of state variables in storage](https://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage) + +### Step 3: Contract Usage + +Use the `Developer` -> `Extrinsics` tab to invoke the `transfer(address, uint256)` function on the +ERC-20 contract with `evm > call` and transfer some of the ERC-20 tokens from Alice to Bob. + +```text +target: 0x8a50db1e0f9452cfd91be8dc004ceb11cb08832f +source: 0xd43593c715fdd31c61141abd04a99fd6822c8558 +input: 0xa9059cbb0000000000000000000000008eaf04151687736326c9fea17e25fc528761369300000000000000000000000000000000000000000000000000000000000000dd +value: 0 +gas_limit: 4294967295 +gas_price: 1 +``` + +The value of the `input` parameter is an EVM ABI-encoded function call that was calculated using +[the Remix web IDE](http://remix.ethereum.org); it consists of a function selector (`0xa9059cbb`) +and the arguments to be used for the function invocation. In this case, the arguments correspond to +Bob's EVM account ID (`0x8eaf04151687736326c9fea17e25fc5287613693`) and the number of tokens to be +transferred (`0xdd`, or 221 in hex). + +> Further reading: +> [the EVM ABI specification](https://solidity.readthedocs.io/en/latest/abi-spec.html) + +### Step 4: Check Bob Contract Storage + +After the extrinsic has finalized, use the `Chain State` app to query `evm > accountStorage` to see +the ERC-20 balances for both Alice and Bob. diff --git a/docs/assets/account_type.png b/docs/assets/account_type.png new file mode 100644 index 0000000000000000000000000000000000000000..de26589beae6c150bb8371cff9abf88b561b4d69 GIT binary patch literal 52508 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%0AW8Zm*RYGQ_o>%8=%AhZ$ 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�=0Ogo4u=m;Z8yi9aZ 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 literal 0 HcmV?d00001 diff --git a/docs/assets/aya_local_testnet.png b/docs/assets/aya_local_testnet.png new file mode 100644 index 0000000000000000000000000000000000000000..844530c6fb3446a182f97d0c0454eafb082aa6ad GIT binary patch literal 60378 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

u|uq{YvyBu^rWEI6?0w#fLej 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 literal 0 HcmV?d00001 diff --git a/docs/assets/network_selector.png b/docs/assets/network_selector.png new file mode 100644 index 0000000000000000000000000000000000000000..922ef7f8a60cdd0bcc4fbf3bdd8a3ca5a63801d2 GIT binary patch literal 9294 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 J)cu7O4UFO3 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 literal 0 HcmV?d00001 diff --git a/docs/assets/polkadotjs_explorer.png b/docs/assets/polkadotjs_explorer.png new file mode 100644 index 0000000000000000000000000000000000000000..c155c311d0777275a9d11ca42a6540905ca05982 GIT binary patch literal 338362 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

sSbz0015HlXah(YgkE@q*lt(4~cL@ek+=c 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

j%YwuCl4`S~>ahEE$3Yi*k7M2E&R{VSfzXmi zZ#o;Bt}egu#>S3htE;PvIvaYS6MpJ=#YXm_$m7;8S(hynBV3f47Oh!(gA9T@fLjUOM$Xlu=UYFe3R4)`w#)ijHy*taV&*;UrCXi0W|+~)T%$*$q?fF|XD*vMm&xzd zL|Lrel=h5M$m30NmGOROUMEhnm&s22Knd7PIzmJ1QBOy0f1Lf*hp)Y}1snr9J1O3F z(tDA$mta(mBM{_D?&ei~>D~73@+}WufuSKnG3SlA{Y?q8jn-2}EcxA82`Bs~&Fc;= zwDqk97B_cCxShm*Id;ZbowQA2EhHw}=FQJ!6hnIsqr;np(OAL)R$_bq7;0m><<&m*>%)r)#c5rKv z;zRTgOuG1}*Gpl?nH6eJr>Z)%N}s5$vVtbOpdJ=Wny^y00|2WT+a7Z}l)oMfr`JYT zkLrI?IK6bhJ(nQM{$*O}BjG`XI>U5QTPM+=wac0L@dwgLKXE-s(ptQ^RoKtwfovhD z2vT~~4ewSzzT2W>om{8{e4>tlf^kQ8t_X-t+;$+SQ+WVSst0v+Hkle|%;+ zqtt=F7p-NY)mr1P)%J<~j(xI;YJi20DIn@vIbqa2bdqrj{gRN$u5H)+qb*OCG`jl} zPc#!{tDkT9{w1*ao}r#}w68GUuP$KJ+S$3VC(ikWENfQg)egaqpxEd@Pg>n7*_%vm zV9yhjR?_DZhAzZ4zpdRet5KVHXEmW)6&7`$LB2#?On?DlRbm(N!RxVGy{=2;uE9Yg zHONX~JNE#gr5QU@ed&t+*KOk<5A@S=IgHq8_yI69J&_G>;sYiPP^B&ObinQ$L&iWD zuexz$RGGb_iZ)f>WbGSx%`j2L&qXqxDD0WU3f{OJ983s=OLRwPyRKBtOWHk{a1<>q zegHm?6JAotTgT=n+)neq`+Gz6#l^9^(Xr_^P7#pJ(DL#2q zm6}OwFEu%|xAK^x3R)`W(_-<%m2g*Tp#LeK#pn?qX`zR$`7{7$)|f|oz^&44HNPTv_Z(mSfSckRF&w}*o$#ol=b0@cepXQUGj06Ykh6@*|s=22WRoolr@)A>Mi`(Tki2$PiZ$ z9w9hPMx}-@FV_tQDw2-2PSm>MI1*YUMx(TpoSf@3O}J-wt{77?&{Z9r!YxyY zzCB(>z|DDr$KLq8G}5Qk%?K3v2X2$BY`E&zw#{wLWa z*Ex9dKdB4rH&y=4di8se?K|pfofn*?0F;5L zpG|De_ky!8WKiqCn5yZY06+g=<9Z!HqrqJhlf-*9allWYTUg``N$DqFjsNO+cl_|} zwJU=_Sw4Iyyp_rr;}jA=Vx$7xwhCW-b@M9&WK`sD=}ZDMR81g)wJv7rXC*Tmo78(? z*#cCFH1^Xkxsg71H}C{dNl9U$@TvXx3pQ7PDm9^Fue2_I1Wv`ia29f9SwFCb=lVF$ z%f^^UkqdwlTx~DzgPV%VY9T{p&MfvVMsEXrYx2DgWu{LN?RY1ngwu>&Zv@&{K3yv- z$uBP{iW}k-_tV_?H4HYNUOf-o0I*34%DVCQPgTKM*Wb>lzKB&_C>i;L{z`-1@dVfc!=qy8`B_YWxM z7wc^Ns{kPDJHEb%|MGv4i~pk@|1aP8Pqj8&ul|d&+tI&F)Iad#jhfBhlkHy!#n0D& zsmwoc_517pX>RvoO8L3ef1Ps>U8YD8$8VqdPmzWT|Ese9TfzSadKdn9*MBIu1#GPP dFNvX!xNlp8>-xttd;H3wuA;46c+dLT{{gHlwdDW+ literal 0 HcmV?d00001 diff --git a/docs/assets/polkajs_talis_con.png b/docs/assets/polkajs_talis_con.png new file mode 100644 index 0000000000000000000000000000000000000000..3cd2ea4e701afc1f6d63224df07b2d1fbff742ce GIT binary patch literal 62300 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

  • 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
  • M2Rd^8%}5xRvLH)*e88le5onMrm`So{ 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 YF*iW7{A6&eD@?#+W_;7A%D^T1KOn@LQ~&?~ literal 0 HcmV?d00001 diff --git a/docs/assets/talisman_net.png b/docs/assets/talisman_net.png new file mode 100644 index 0000000000000000000000000000000000000000..c8abdfd926966dddc019075e50fdc4eefdfe9d57 GIT binary patch literal 83607 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 literal 0 HcmV?d00001 diff --git a/docs/guide_custom_account.md b/docs/guide_custom_account.md new file mode 100644 index 0000000..a74d4e3 --- /dev/null +++ b/docs/guide_custom_account.md @@ -0,0 +1,103 @@ +# Custom Accounts + +This guide shows how to create and configure a wallet to interact with a local AyA Blockchain. For that purpose you should have a local network running already. You can do this by starting a `--dev` instance of the node or by following the [Local Chain Setup Guide](/guide_local_chain_setup.md). + +It is possible to use MetaMask for transfering funds but it is not possible to interact with polkadotjs and the more complex chain functions using MetaMask. For that purpose we use the Talisman wallet. + +## MetaMask + +AyA works with usual Ethereum accounts and there is nothing special needed beside configuring a network on MetaMask. +We recommend you to create a new account in metamask for testing Aya. + +### Install MetaMask + +To install the MetaMask browser extension please follow the instructions on metamask.io: +[MetaMask Download](`https://metamask.io/download/`) + +We assume you are familiar with crypto wallets, please create yourself a new account for testing with AyA and note down the recovery phrase, so you can reuse this account. + +#### Configure RPC Endpoints + +Interacting with AyA from a wallet requires to configure the network in MetaMask. + +Open MetaMask and go to `Settings`: + +Go to `Networks` in the menu on the left and then click on the blue Button `Add a network` on the right side: + +![Network Settings](assets/settings.png) + +This will show you a list of available networks but we need to `Add a network manually`: + +![Add Network](assets/add_network.png) + +Enter the values below and click save: + +![AyA Local Testnet](assets/aya_local_testnet.png) + +Select the network via the selector in the top left corner: +![Network Selector](assets/network_selector.png) + +Congratulations you successfully connected your MetaMask wallet to AyA. Copy your address go to the [polkadotjs web interface](https://polkadot.js.org/apps/?rpc=ws%3A%2F%2F127.0.0.1%3A9944#/accounts) and send some funds from one of the development accounts. + + +## Talisman + +To be able to interact with AyA's advanced functionallty, a wallet able to connect to polkadotjs is needed. MetaMask is not able to do this out of the box, we recommend to use the Talisman wallet for now. + +For this tutorial we will restore the same wallet you created in MetaMask so we assume you have your recovery keys from the first part available. + +**We will use the well known mnemonic from Alice for this tutorial, this mnemonic is publicly known and should only be used for demonstration purposes:** + +``` +bottom drive obey lake curtain smoke basket hold race lonely fit walk +``` + +### Install the Talisman Browser Extension + +Go to the [Talisman Website](https://www.talisman.xyz/) and follow the instructions to install the talisman wallet extension. + +#### Restore MetaMask Wallet in Talisman + +As mentioned above we want to restore the same account we used in MetaMask. Open the browser extension and click on the three dots `...` in the bottom right corner, click `Add Account`. + +Select `Import` and choose `Import via Recovery Phrase`: + +![Talisman Import](assets/talisman_import.png) + +In the following dialog we need to select the account type, choose `Ethereum`, give your wallet a name and enter your mnemonic: + +![Account Type](assets/account_type.png) + +Click `Import`. + +We successfully added the account to the Talisman Wallet but we also need to configure the network to be able to connect with the AyA blockchain. + +Go to `Settings` -> `Network & Tokens` -> `Manage Networks`: + +![Talisman Manage Networks](assets/talis_mng_networks.png) + +In the following dialog first select `Polkadot` and then click `+ Add network`: + +![Talisman Add Network](assets/talis_add_network.png) + +Make sure the node you connect to is started with the flag `--unsafe-rpc-external` as RPC websockets are disabled for validator nodes by default. In a production environment, the RPC endpoints of a validator should never be exposed! +You can also configure a full node conected to the network with TLS termination on the RPC socket (the proper way to connect to a blockchain node, but we assume here a local devnet). + +Enter the following information for the network and save: + +![Talisman Network Data](assets/talisman_net.png) + +#### Connect to polkadotjs + +Go to [polkadotjs web interface](https://polkadot.js.org/apps/?rpc=ws%3A%2F%2F127.0.0.1%3A9944#/accounts) + +When entering the web interface, the Talisman wallet should pop up and ask you to connect to the website: + +![Talisman Connect](assets/polkajs_talis_con.png) + +Choose the AyA Test Account you restored before and click `Connect 1` + +Congratulations, you are now able to interact with the AyA chain using your own wallet. Your connected accounts are displayed under `extension`. + +![Final Polkadotjs View](assets/polkajs_fin.png) + diff --git a/docs/guide_local_chain_setup.md b/docs/guide_local_chain_setup.md new file mode 100644 index 0000000..f011351 --- /dev/null +++ b/docs/guide_local_chain_setup.md @@ -0,0 +1,70 @@ +# Local Chain Setup +This guide shows how to setup a blockchain network locally using the well-known accounts. + + +## Build + +To build the chain, execute the following commands from the project root: + +``` +$ cargo build --release +``` + +## Purge existing chains +If you created a network before and you want to start over again you need to delete existing chain data. + +Purge Alice: +``` +$ ./target/release/aya-node purge-chain --base-path /tmp/alice --chain local +``` + +Purge Bob: +``` +$ ./target/release/aya-node purge-chain --base-path /tmp/bob --chain local +``` + +## Run the first Node + +To execute the first node (Alith/Alice), open a new terminal and run: + +``` +$ ./target/release/aya-node \ +--base-path /tmp/alice \ +--chain local \ +--alice \ +--port 30333 \ +--rpc-port 9944 \ +--unsafe-rpc-external +--node-key 0000000000000000000000000000000000000000000000000000000000000001 \ +--validator +``` + +In the terminal window you will find the following line: +![alt text](assets/node_identity_alice.png) + +Copy the node key and paste it into the startup command for the second node at`--bootnodes /ip4/127.0.0.1/tcp/30333/p2p/` + +## Run the second + +To execute the second node (Baltathar/Bob), open a new terminal and run: + +``` +$ ./target/release/aya-node \ +--base-path /tmp/bob \ +--chain local \ +--bob \ +--port 30334 \ +--rpc-port 9946 \ +--validator \ +--bootnodes /ip4/127.0.0.1/tcp/30333/p2p/ +``` + +## Connect to the local network using polkadot-js + +Open your browser and go to: `https://polkadot.js.org/apps/?rpc=ws%3A%2F%2F127.0.0.1%3A9944#/explorer` + +Your should see something similar to: + +![polkadotjs image](assets/polkadotjs_explorer.png) + +Congratulations you setup a local aya blockchain for development and testing. \ No newline at end of file diff --git a/examples/contract-erc20/.gitignore b/examples/contract-erc20/.gitignore new file mode 100644 index 0000000..34b23da --- /dev/null +++ b/examples/contract-erc20/.gitignore @@ -0,0 +1,2 @@ +/build/ +/node_modules/ diff --git a/examples/contract-erc20/README.md b/examples/contract-erc20/README.md new file mode 100644 index 0000000..d3a3ca5 --- /dev/null +++ b/examples/contract-erc20/README.md @@ -0,0 +1,76 @@ +# ERC20 contract creation + +This directory contains typescript script describing the different +topics presented by the frontier node template. + +## Basic + +### Installation and Usage + +Use `npm i` to install dependencies. To create an ERC20 contract, +execute `node_modules/.bin/ts-node create-erc20.ts` while your +template node is running in `--dev` mode. + +### Expected output + +The ouput of the command should look similar to this: + +``` +└────╼ ts-node create-erc20.ts +Initiating the API (ignore message "Unable to resolve type B..." and "Unknown types found...") +Unable to resolve type B, it will fail on construction +Unknown types found, no types for B, Receipt, Transaction +Initialiation done +Genesis at block: 0x8455be17576e759feb9f027d79185d4e51fe91113185ef9a315614a35f0f86d8 +Alice Substrate Account: 5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY +Alice Substrate Account (nonce: 0) balance, free: 0x00000000000000001000000000000000 +Alice EVM Account: 0x57d213d0927ccc7596044c6ba013dd05522aacba +Alice EVM Account (nonce: 0) balance: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + +Step 1: Creating Smart Contract +Contract creation is Ready +Contract creation is {"InBlock":"0xb7f31941812cfddede61918a219d472d3b953e05b619a6baa2bd6847a6140bad"} +Contract included at blockHash 0xb7f31941812cfddede61918a219d472d3b953e05b619a6baa2bd6847a6140bad +Waiting for finalization... (can take a minute) +Contract creation is {"Finalized":"0xb7f31941812cfddede61918a219d472d3b953e05b619a6baa2bd6847a6140bad"} +Contract finalized at blockHash 0xb7f31941812cfddede61918a219d472d3b953e05b619a6baa2bd6847a6140bad +Contract address: 0x11650d764feb44f78810ef08700c2284f7e81dcb + +Step 2: Retrieving Contract from evm address: 0x11650d764feb44f78810ef08700c2284f7e81dcb +Alice Substrate Account (nonce: 1) balance, free: 1152921500186875190 +Contract account code: 0x60806040523480...6c63430005100032 +Alice Contract storage key: 0xa7473b24b6fd8e15602cfb2f15c6a2e2770a692290d0c5097b77dd334132b7ce +Alice Contract account storage: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + +Step 3: Transfering Tokens to Bob EVM Account: 0x8bc395119f39603402d0c85bc9eda5dfc5ae2160 +Preparing transfer of 0xdd +Sending call input: 0xa9059cbb0000000000000000000000008bc395119f39603402d0c85bc9eda5dfc5ae216000000000000000000000000000000000000000000000000000000000000000dd +Transfer is Ready +Transfer is {"InBlock":"0x22dcfc5b497bd1ea42ef38a33ebaee959a9fbd4337389c8a6a0961fc0af4910b"} +Transfer included at blockHash 0x22dcfc5b497bd1ea42ef38a33ebaee959a9fbd4337389c8a6a0961fc0af4910b +Waiting for finalization... (can take a minute) +Transfer is {"Finalized":"0x22dcfc5b497bd1ea42ef38a33ebaee959a9fbd4337389c8a6a0961fc0af4910b"} +Transfer finalized at blockHash 0x22dcfc5b497bd1ea42ef38a33ebaee959a9fbd4337389c8a6a0961fc0af4910b + +Step 4: Retrieving Bob tokens +Bob Substrate Account (nonce: 0) balance, free: 1152921504606846976 +Bob EVM Account: 0x8bc395119f39603402d0c85bc9eda5dfc5ae2160 +Bob EVM Account (nonce: 0) balance: 0x0000000000000000000000000000000000000000000000000000000000000000 +Bob Contract storage key: 0x0e4b5229940f8e2bf475520e854b789139893f70ee7b5ec9006de746028449fe +Bob Contract account storage: 0x00000000000000000000000000000000000000000000000000000000000000dd +``` + +## RPC + +This section describes how to use the web3.js SDK to interact with +Frontier. + +## Installation and Usage + +Use `npm i` to install dependencies. To create an ERC20 contract, +execute `node_modules/.bin/ts-node create-erc20.ts` while your +template node is running in `--dev` mode. + +## Expected output + +WIP diff --git a/examples/contract-erc20/create-erc20-rpc.ts b/examples/contract-erc20/create-erc20-rpc.ts new file mode 100755 index 0000000..8a383a5 --- /dev/null +++ b/examples/contract-erc20/create-erc20-rpc.ts @@ -0,0 +1,83 @@ +import Web3 from "web3"; +import * as web3Utils from 'web3-utils'; + +const web3 = new Web3("http://127.0.0.1:9933"); +const ERC20_BYTECODE = require("./truffle/contracts/MyToken.json").bytecode; +const STORAGE_SLOT = "0"; + +const createAccount = () => { + const account = web3.eth.accounts.create(); + const mapStorageSlot = STORAGE_SLOT.padStart(64, '0'); + const mapKey = account.address.toString().substring(2).padStart(64, '0'); + const storageKey = web3Utils.sha3('0x'.concat(mapKey.concat(mapStorageSlot))); + return {...account, storageKey}; +} + +const main = async () => { + + console.log("Generating accounts..."); + const alice = createAccount(); + const bob = createAccount(); + + // Step 1: Creating the contract. + console.log(`Alice account: ${alice.address}\n storageKey [slot ${STORAGE_SLOT}]: ${alice.storageKey}`); + console.log(`Bob account: ${bob.address}\n storageKey [slot ${STORAGE_SLOT}]: ${bob.storageKey}`); + + console.log(`\nCreating contract using Eth RPC "sendTransaction" from alice`); + const createTransaction = await alice.signTransaction( + { + data: ERC20_BYTECODE, + value: "0x00", + gasPrice: "0x00", + gas: "0x100000", + }); + console.log("Transaction", { + ...createTransaction, + rawTransaction: `${createTransaction.rawTransaction.substring( + 0, + 32 + )}... (${createTransaction.rawTransaction.length} length)`, + }); + + const createReceipt = await web3.eth.sendSignedTransaction( + createTransaction.rawTransaction + ); + console.log( + `Contract deployed at address ${createReceipt.contractAddress}` + ); + + // Step 2: Sending contract tokens to bob + console.log(`\nSending 221 Contract tokens from alice to bob`); + const transferFnCode = `a9059cbb000000000000000000000000`; + const tokensToTransfer = `00000000000000000000000000000000000000000000000000000000000000dd`; + const inputCode = `0x${transferFnCode}${bob.address.substring( + 2 + )}${tokensToTransfer}`; + + const transferTransaction = await alice.signTransaction( + { + to: createReceipt.contractAddress, + data: inputCode, + value: "0x00", + gasPrice: "0x00", + gas: "0x100000", + }); + console.log("Transaction", { + ...transferTransaction, + rawTransaction: `${transferTransaction.rawTransaction.substring( + 0, + 32 + )}... (${transferTransaction.rawTransaction.length} length)`, + }); + + const transferReceipt = await web3.eth.sendSignedTransaction( + transferTransaction.rawTransaction + ); + console.log( + `Transfer executed to ${transferReceipt.to} (H: ${transferReceipt.transactionHash})` + ); +}; + +main().catch((err) => { + console.log("Error", err); +}); diff --git a/examples/contract-erc20/create-erc20.ts b/examples/contract-erc20/create-erc20.ts new file mode 100644 index 0000000..1f79e3d --- /dev/null +++ b/examples/contract-erc20/create-erc20.ts @@ -0,0 +1,203 @@ +import { ApiPromise, WsProvider, Keyring } from "@polkadot/api"; +import { KeyringPair } from '@polkadot/keyring/types'; +import { U8aFixed } from '@polkadot/types/codec'; +import * as web3Utils from 'web3-utils'; +import * as crypto from '@polkadot/util-crypto'; + +// Provider is set to 127.0.0.1 for development +const wsProvider = new WsProvider("ws://127.0.0.1:9944"); + +// Keyring needed to sign using Alice account +const keyring = new Keyring({ type: 'sr25519' }); + +// ByteCode of our ERC20 exemple: copied from ./truffle/contracts/MyToken.json +const ERC20_BYTECODES = require("./truffle/contracts/MyToken.json").bytecode; + +// Setup the API and Alice Account +async function init() { + console.log(`Initiating the API (ignore message "Unable to resolve type B..." and "Unknown types found...")`); + + // Initiate the polkadot API. + const api = await ApiPromise.create({ + provider: wsProvider, + types: { + // mapping the actual specified address format + Address: "AccountId", + // mapping the lookup + LookupSource: "AccountId", + Account: { + nonce: "U256", + balance: "U256" + }, + Transaction: { + nonce: "U256", + action: "String", + gas_price: "u64", + gas_limit: "u64", + value: "U256", + input: "Vec", + signature: "Signature" + }, + Signature: { + v: "u64", + r: "H256", + s: "H256" + } + } + }); + console.log(`Initialiation done`); + console.log(`Genesis at block: ${api.genesisHash.toHex()}`); + + const alice = keyring.addFromUri('//Alice', { name: 'Alice default' }); + const bob = keyring.addFromUri('//Bob', { name: 'Bob default' }); + + const { nonce, data: balance } = await api.query.system.account(alice.address); + console.log(`Alice Substrate Account: ${alice.address}`); + console.log(`Alice Substrate Account (nonce: ${nonce}) balance, free: ${balance.free.toHex()}`); + + const aliceEvmAccount = `0x${crypto.blake2AsHex(crypto.decodeAddress(alice.address), 256).substring(26)}`; + + console.log(`Alice EVM Account: ${aliceEvmAccount}`); + const evmData = (await api.query.evm.accounts(aliceEvmAccount)) as any; + console.log(`Alice EVM Account (nonce: ${evmData.nonce}) balance: ${evmData.balance.toHex()}`); + + return { api, alice, bob }; +} + +// Create the ERC20 contract from ALICE +async function step1(api: ApiPromise, alice: KeyringPair) { + + console.log(`\nStep 1: Creating Smart Contract`); + + // params: [bytecode, initialBalance, gasLimit, gasPrice], + // tx: api.tx.evm.create + + const transaction = await api.tx.evm.create(ERC20_BYTECODES, 0, 4294967295, 1, null); + + const contract = new Promise<{ block: string, address: string }>(async (resolve, reject) => { + const unsub = await transaction.signAndSend(alice, (result) => { + console.log(`Contract creation is ${result.status}`); + if (result.status.isInBlock) { + console.log(`Contract included at blockHash ${result.status.asInBlock}`); + console.log(`Waiting for finalization... (can take a minute)`); + } else if (result.status.isFinalized) { + const contractAddress = ( + result.events?.find( + event => event?.event?.index.toHex() == "0x0500" + )?.event.data[0] as any + ).address as string; + console.log(`Contract finalized at blockHash ${result.status.asFinalized}`); + console.log(`Contract address: ${contractAddress}`); + unsub(); + resolve({ + block: result.status.asFinalized.toString(), + address: contractAddress + }); + } + }); + }); + return contract; +} + +// Retrieve Alice & Contract Storage +async function step2(api: ApiPromise, alice: KeyringPair, contractAddress: string) { + + console.log(`\nStep 2: Retrieving Contract from evm address: ${contractAddress}`); + + // Retrieve Alice account with new nonce value + const { nonce, data: balance } = await api.query.system.account(alice.address); + console.log(`Alice Substrate Account (nonce: ${nonce}) balance, free: ${balance.free}`); + + const accountCode = (await api.query.evm.accountCodes(contractAddress)).toString(); + console.log(`Contract account code: ${accountCode.substring(0, 16)}...${accountCode.substring(accountCode.length - 16)}`); + + // Computing Contract Storage Slot, using slot 0 and alice EVM account + const aliceEvmAccount = `0x${crypto.blake2AsHex(crypto.decodeAddress(alice.address), 256).substring(26)}`; + const slot = "0"; + const mapStorageSlot = slot.padStart(64, '0'); + const mapKey = aliceEvmAccount.toString().substring(2).padStart(64, '0'); + + const storageKey = web3Utils.sha3('0x'.concat(mapKey.concat(mapStorageSlot))); + console.log(`Alice Contract storage key: ${storageKey}`); + + const accountStorage = (await api.query.evm.accountStorages(contractAddress, storageKey)).toString(); + console.log(`Alice Contract account storage: ${accountStorage}`); + return; +} + + +// Transfer tokens to Bob +async function step3(api: ApiPromise, alice: KeyringPair, bob: KeyringPair, contractAddress: string) { + + const bobEvmAccount = `0x${crypto.blake2AsHex(crypto.decodeAddress(bob.address), 256).substring(26)}`; + console.log(`\nStep 3: Transfering Tokens to Bob EVM Account: ${bobEvmAccount}`); + + console.log(`Preparing transfer of 0xdd`); + // params: [contractAddress, inputCode, value,m gasLimit, gasPrice], + // tx: api.tx.evm.create + const transferFnCode = `a9059cbb000000000000000000000000`; + const tokensToTransfer = `00000000000000000000000000000000000000000000000000000000000000dd`; + const inputCode = `0x${transferFnCode}${bobEvmAccount.substring(2)}${tokensToTransfer}`; + console.log(`Sending call input: ${inputCode}`); + const transaction = await api.tx.evm.call(contractAddress, inputCode, 0, 4294967295, 1, null); + + const data = new Promise<{ block: string, address: string }>(async (resolve, reject) => { + const unsub = await transaction.signAndSend(alice, (result) => { + console.log(`Transfer is ${result.status}`); + if (result.status.isInBlock) { + console.log(`Transfer included at blockHash ${result.status.asInBlock}`); + console.log(`Waiting for finalization... (can take a minute)`); + } else if (result.status.isFinalized) { + console.log(`Transfer finalized at blockHash ${result.status.asFinalized}`); + unsub(); + resolve(); + } + }); + }); + return data; +} + +// Retrieve Bob +async function step4(api: ApiPromise, bob: KeyringPair, contractAddress: string) { + + console.log(`\nStep 4: Retrieving Bob tokens`); + + // Retrieve Bob account with new nonce value + const { nonce, data: balance } = await api.query.system.account(bob.address); + console.log(`Bob Substrate Account (nonce: ${nonce}) balance, free: ${balance.free}`); + const bobEvmAccount = `0x${crypto.blake2AsHex(crypto.decodeAddress(bob.address), 256).substring(26)}`; + + console.log(`Bob EVM Account: ${bobEvmAccount}`); + const evmData = (await api.query.evm.accounts(bobEvmAccount)) as any; + console.log(`Bob EVM Account (nonce: ${evmData.nonce}) balance: ${evmData.balance.toHex()}`); + + const slot = "0"; + const mapStorageSlot = slot.padStart(64, '0'); + const mapKey = bobEvmAccount.toString().substring(2).padStart(64, '0'); + + const storageKey = web3Utils.sha3('0x'.concat(mapKey.concat(mapStorageSlot))); + console.log(`Bob Contract storage key: ${storageKey}`); + + const accountStorage = (await api.query.evm.accountStorages(contractAddress, storageKey)).toString(); + console.log(`Bob Contract account storage: ${accountStorage}`); + + return; +} + +async function main() { + const { api, alice, bob } = await init(); + + // step 1: Creating the contract from ALICE + const contractAccount = await step1(api, alice) + + // step 2: Retrieving Alice and Contract information + await step2(api, alice, contractAccount.address); + + // step 3: Transfering Smart Contract tokens from Alice to Bob + await step3(api, alice, bob, contractAccount.address); + + // step 3: Retrieving Bob information + await step4(api, bob, contractAccount.address); +} + +main().catch(console.error).then(() => process.exit(0)); diff --git a/examples/contract-erc20/package-lock.json b/examples/contract-erc20/package-lock.json new file mode 100644 index 0000000..397190e --- /dev/null +++ b/examples/contract-erc20/package-lock.json @@ -0,0 +1,2483 @@ +{ + "name": "frontier-tutorials", + "version": "0.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@babel/runtime": { + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.9.6.tgz", + "integrity": "sha512-64AF1xY3OAkFHqOb9s4jpgk1Mm5vDZ4L3acHvAml+53nO1XbXLuDodsVpO4OIUsmemlUHMxNdYMNJmsvOwLrvQ==", + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, + "@polkadot/api": { + "version": "1.16.0-beta.2", + "resolved": "https://registry.npmjs.org/@polkadot/api/-/api-1.16.0-beta.2.tgz", + "integrity": "sha512-2+5DxhnN94qVjUxTiF50gamgQe4ss59ZP9SYPcheZGgPwGA69Ly9NsHKdgNB1IVA9o3UljwwUy53gRjuE6uTpQ==", + "requires": { + "@babel/runtime": "^7.9.6", + "@polkadot/api-derive": "1.16.0-beta.2", + "@polkadot/keyring": "^2.10.1", + "@polkadot/metadata": "1.16.0-beta.2", + "@polkadot/rpc-core": "1.16.0-beta.2", + "@polkadot/rpc-provider": "1.16.0-beta.2", + "@polkadot/types": "1.16.0-beta.2", + "@polkadot/types-known": "1.16.0-beta.2", + "@polkadot/util": "^2.10.1", + "@polkadot/util-crypto": "^2.10.1", + "bn.js": "^5.1.2", + "eventemitter3": "^4.0.4", + "rxjs": "^6.5.5" + } + }, + "@polkadot/api-derive": { + "version": "1.16.0-beta.2", + "resolved": "https://registry.npmjs.org/@polkadot/api-derive/-/api-derive-1.16.0-beta.2.tgz", + "integrity": "sha512-jaXeAKMiFhC1/fHnTb37xqTk0dIs2WRfoaNPeT4f3EGJuXkdeeQKeTTEsR+8sG8xBd9naBJ8vWfPpKKjapWa0g==", + "requires": { + "@babel/runtime": "^7.9.6", + "@polkadot/api": "1.16.0-beta.2", + "@polkadot/rpc-core": "1.16.0-beta.2", + "@polkadot/rpc-provider": "1.16.0-beta.2", + "@polkadot/types": "1.16.0-beta.2", + "@polkadot/util": "^2.10.1", + "@polkadot/util-crypto": "^2.10.1", + "bn.js": "^5.1.2", + "memoizee": "^0.4.14", + "rxjs": "^6.5.5" + } + }, + "@polkadot/keyring": { + "version": "2.10.1", + "resolved": "https://registry.npmjs.org/@polkadot/keyring/-/keyring-2.10.1.tgz", + "integrity": "sha512-6Wbft7MtxbnWaHZpvg3yT8l4oQNp5xTwbqVkdaRfXmPsmhJ1YJcprFWLuKsWZE4x59cYyK7eKhnKcAvFny4HTQ==", + "requires": { + "@babel/runtime": "^7.9.6", + "@polkadot/util": "2.10.1", + "@polkadot/util-crypto": "2.10.1" + } + }, + "@polkadot/metadata": { + "version": "1.16.0-beta.2", + "resolved": "https://registry.npmjs.org/@polkadot/metadata/-/metadata-1.16.0-beta.2.tgz", + "integrity": "sha512-PliHr0JSWKPmXL4VRlL4MldPW0CuMcur9XrkFmIEV+cvXxMu2J3cvZC+LASFLCbtyrpQesKeOaGk3kIm2YL4kA==", + "requires": { + "@babel/runtime": "^7.9.6", + "@polkadot/types": "1.16.0-beta.2", + "@polkadot/types-known": "1.16.0-beta.2", + "@polkadot/util": "^2.10.1", + "@polkadot/util-crypto": "^2.10.1", + "bn.js": "^5.1.2" + } + }, + "@polkadot/rpc-core": { + "version": "1.16.0-beta.2", + "resolved": "https://registry.npmjs.org/@polkadot/rpc-core/-/rpc-core-1.16.0-beta.2.tgz", + "integrity": "sha512-GLObXxHqnoyqVBgUUgsq1ag8iJI1AlTgH3vqEEzQy8YkIQVB5XaBSH7Q+NJiauLpEVnS7eXSEKk9vITAdUwx0A==", + "requires": { + "@babel/runtime": "^7.9.6", + "@polkadot/metadata": "1.16.0-beta.2", + "@polkadot/rpc-provider": "1.16.0-beta.2", + "@polkadot/types": "1.16.0-beta.2", + "@polkadot/util": "^2.10.1", + "memoizee": "^0.4.14", + "rxjs": "^6.5.5" + } + }, + "@polkadot/rpc-provider": { + "version": "1.16.0-beta.2", + "resolved": "https://registry.npmjs.org/@polkadot/rpc-provider/-/rpc-provider-1.16.0-beta.2.tgz", + "integrity": "sha512-V+hC/lx5zfQcOoB6ZM+Zc/mn6PxgIqh3Mmm7zQD8F0pE6Co+TFMP+hGUgKW/xGeNKQWUCSaRwrBvDC2cyB6Mjw==", + "requires": { + "@babel/runtime": "^7.9.6", + "@polkadot/metadata": "1.16.0-beta.2", + "@polkadot/types": "1.16.0-beta.2", + "@polkadot/util": "^2.10.1", + "@polkadot/util-crypto": "^2.10.1", + "bn.js": "^5.1.2", + "eventemitter3": "^4.0.4", + "isomorphic-fetch": "^2.2.1", + "websocket": "^1.0.31" + } + }, + "@polkadot/types": { + "version": "1.16.0-beta.2", + "resolved": "https://registry.npmjs.org/@polkadot/types/-/types-1.16.0-beta.2.tgz", + "integrity": "sha512-6FU9S0m4oCFuKqVXZ+Il5Xw78DCZxBFCNTwQweRNfmNjTaKT6VxEYREk58DSajLQhn6IjjCMtZ49NdzUv2o7Jw==", + "requires": { + "@babel/runtime": "^7.9.6", + "@polkadot/metadata": "1.16.0-beta.2", + "@polkadot/util": "^2.10.1", + "@polkadot/util-crypto": "^2.10.1", + "@types/bn.js": "^4.11.6", + "bn.js": "^5.1.2", + "memoizee": "^0.4.14", + "rxjs": "^6.5.5" + } + }, + "@polkadot/types-known": { + "version": "1.16.0-beta.2", + "resolved": "https://registry.npmjs.org/@polkadot/types-known/-/types-known-1.16.0-beta.2.tgz", + "integrity": "sha512-dEIntLkX0k2Qo+lVCu14TiC9oZVHQtHfvog6jhYY7Sn0dfpFYdN9q/1XfmR+j24noJtazh1iOtE44Ro1KeKtzQ==", + "requires": { + "@babel/runtime": "^7.9.6", + "@polkadot/types": "1.16.0-beta.2", + "@polkadot/util": "^2.10.1", + "bn.js": "^5.1.2" + } + }, + "@polkadot/util": { + "version": "2.10.1", + "resolved": "https://registry.npmjs.org/@polkadot/util/-/util-2.10.1.tgz", + "integrity": "sha512-DaIvvx3zphDlf3ZywLnlrRTngcjGIl7Dn3lbwsgHlMSyENz07TG6YG+ztr0ztUrb9BqFKAeH6XGNtGPBp0LxwA==", + "requires": { + "@babel/runtime": "^7.9.6", + "@types/bn.js": "^4.11.6", + "bn.js": "^5.1.1", + "camelcase": "^5.3.1", + "chalk": "^4.0.0", + "ip-regex": "^4.1.0" + } + }, + "@polkadot/util-crypto": { + "version": "2.10.1", + "resolved": "https://registry.npmjs.org/@polkadot/util-crypto/-/util-crypto-2.10.1.tgz", + "integrity": "sha512-sxJZwi5CWfOrytVGtvMT5gn7+rrdgCECtmiG94AouyzdCIWqr9DC+BbX95q7Rja8+kLwkm08FWAsI5pwN9oizQ==", + "requires": { + "@babel/runtime": "^7.9.6", + "@polkadot/util": "2.10.1", + "@polkadot/wasm-crypto": "^1.2.1", + "base-x": "^3.0.8", + "bip39": "^3.0.2", + "blakejs": "^1.1.0", + "bn.js": "^5.1.1", + "bs58": "^4.0.1", + "elliptic": "^6.5.2", + "js-sha3": "^0.8.0", + "pbkdf2": "^3.0.17", + "tweetnacl": "^1.0.3", + "xxhashjs": "^0.2.2" + } + }, + "@polkadot/wasm-crypto": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@polkadot/wasm-crypto/-/wasm-crypto-1.2.1.tgz", + "integrity": "sha512-nckIoZBV4nBZdeKwFwH5t7skS7L7GO5EFUl5B1F6uCjUfdNpDz3DtqbYQHcLdCZNmG4TDLg6w/1J+rkl2SiUZw==" + }, + "@sindresorhus/is": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", + "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==" + }, + "@szmarczak/http-timer": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", + "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", + "requires": { + "defer-to-connect": "^2.0.0" + } + }, + "@types/bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", + "requires": { + "@types/node": "*" + } + }, + "@types/cacheable-request": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.2.tgz", + "integrity": "sha512-B3xVo+dlKM6nnKTcmm5ZtY/OL8bOAOd2Olee9M1zft65ox50OzjEHW91sDiU9j6cvW8Ejg1/Qkf4xd2kugApUA==", + "requires": { + "@types/http-cache-semantics": "*", + "@types/keyv": "*", + "@types/node": "*", + "@types/responselike": "*" + } + }, + "@types/color-name": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", + "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==" + }, + "@types/http-cache-semantics": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", + "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==" + }, + "@types/keyv": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-4.2.0.tgz", + "integrity": "sha512-xoBtGl5R9jeKUhc8ZqeYaRDx04qqJ10yhhXYGmJ4Jr8qKpvMsDQQrNUvF/wUJ4klOtmJeJM+p2Xo3zp9uaC3tw==", + "requires": { + "keyv": "*" + } + }, + "@types/node": { + "version": "14.0.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.0.5.tgz", + "integrity": "sha512-90hiq6/VqtQgX8Sp0EzeIsv3r+ellbGj4URKj5j30tLlZvRUpnAe9YbYnjl3pJM93GyXU0tghHhvXHq+5rnCKA==" + }, + "@types/responselike": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz", + "integrity": "sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==", + "requires": { + "@types/node": "*" + } + }, + "@types/ws": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-6.0.4.tgz", + "integrity": "sha512-PpPrX7SZW9re6+Ha8ojZG4Se8AZXgf0GK6zmfqEuCsY49LFDNXO3SByp44X3dFEqtB73lkCDAdUazhAjVPiNwg==", + "requires": { + "@types/node": "*" + } + }, + "accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "requires": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "dependencies": { + "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" + } + } + } + }, + "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-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==" + }, + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" + }, + "asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + }, + "async-limiter": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", + "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==" + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" + }, + "aws4": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.10.0.tgz", + "integrity": "sha512-3YDiu347mtVtjpyV3u5kVqQLP242c06zwDOgpeRnybmXlYYsLbtTrUBUm8i8srONt+FWobl5aibnU1030PeeuA==" + }, + "base-x": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.8.tgz", + "integrity": "sha512-Rl/1AWP4J/zRrk54hhlxH4drNxPJXYUaKffODVI53/dAsV4t9fBxyxYKAVPU1XBHxYwOWP9h9H0hM2MVw4YfJA==", + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "base64-js": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", + "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==" + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "requires": { + "tweetnacl": "^0.14.3" + }, + "dependencies": { + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" + } + } + }, + "bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "requires": { + "file-uri-to-path": "1.0.0" + } + }, + "bip39": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/bip39/-/bip39-3.0.2.tgz", + "integrity": "sha512-J4E1r2N0tUylTKt07ibXvhpT2c5pyAFgvuA5q1H9uDy6dEGpjV8jmymh3MTYJDLCNbIVClSB9FbND49I6N24MQ==", + "requires": { + "@types/node": "11.11.6", + "create-hash": "^1.1.0", + "pbkdf2": "^3.0.9", + "randombytes": "^2.0.1" + }, + "dependencies": { + "@types/node": { + "version": "11.11.6", + "resolved": "https://registry.npmjs.org/@types/node/-/node-11.11.6.tgz", + "integrity": "sha512-Exw4yUWMBXM3X+8oqzJNRqZSwUAaS4+7NdvHqQuFi/d+synz++xmX3QIf+BFqneW8N31R8Ky+sikfZUXq07ggQ==" + } + } + }, + "bip66": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/bip66/-/bip66-1.1.5.tgz", + "integrity": "sha1-AfqHSHhcpwlV1QESF9GzE5lpyiI=", + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "blakejs": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.1.0.tgz", + "integrity": "sha1-ad+S75U6qIylGjLfarHFShVfx6U=" + }, + "bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" + }, + "bn.js": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.1.2.tgz", + "integrity": "sha512-40rZaf3bUNKTVYu9sIeeEGOg7g14Yvnj9kH7b50EiwX0Q7A6umbvfI5tvHaOERH0XigqKkfLkFQxzb4e6CIXnA==" + }, + "body-parser": { + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", + "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", + "requires": { + "bytes": "3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.2", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "dependencies": { + "bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" + }, + "content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==" + }, + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" + }, + "http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "requires": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + } + }, + "on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "requires": { + "ee-first": "1.1.1" + } + }, + "qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "requires": { + "side-channel": "^1.0.4" + } + }, + "raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "requires": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + } + }, + "setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" + }, + "toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" + } + } + }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" + }, + "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": "sha1-vhYedsNU9veIrkBx9j806MTwpCo=", + "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": "5.6.0", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz", + "integrity": "sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==", + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4" + } + }, + "buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" + }, + "buffer-to-arraybuffer": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz", + "integrity": "sha1-YGSkD6dutDxyOrqe+PbhIW0QURo=" + }, + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" + }, + "cacheable-lookup": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", + "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==" + }, + "cacheable-request": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz", + "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==", + "requires": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^4.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^6.0.1", + "responselike": "^2.0.0" + }, + "dependencies": { + "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" + } + }, + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" + } + } + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" + }, + "chalk": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", + "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" + }, + "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" + } + }, + "clone-response": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", + "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", + "requires": { + "mimic-response": "^1.0.0" + } + }, + "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==" + }, + "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" + } + }, + "content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "requires": { + "safe-buffer": "5.2.1" + } + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" + }, + "cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==" + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "requires": { + "object-assign": "^4", + "vary": "^1" + } + }, + "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" + } + }, + "cuint": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/cuint/-/cuint-0.2.2.tgz", + "integrity": "sha1-QICG1AlVDCYxFVYZ6fp7ytw7mRs=" + }, + "d": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", + "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", + "requires": { + "es5-ext": "^0.10.50", + "type": "^1.0.1" + } + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "requires": { + "assert-plus": "^1.0.0" + } + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "decode-uri-component": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", + "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==" + }, + "decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "requires": { + "mimic-response": "^1.0.0" + } + }, + "defer-to-connect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==" + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + }, + "destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==" + }, + "destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==" + }, + "diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==" + }, + "dom-walk": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", + "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==" + }, + "drbg.js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/drbg.js/-/drbg.js-1.0.1.tgz", + "integrity": "sha1-Pja2xCs3BDgjzbwzLVjzHiRFSAs=", + "requires": { + "browserify-aes": "^1.0.6", + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4" + } + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" + }, + "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==" + } + } + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" + }, + "encoding": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", + "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", + "requires": { + "iconv-lite": "~0.4.13" + } + }, + "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" + } + }, + "es5-ext": { + "version": "0.10.63", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.63.tgz", + "integrity": "sha512-hUCZd2Byj/mNKjfP9jXrdVZ62B8KuA/VoK7X8nUh5qT+AxDmcbvZz041oDVZdbIN1qW6XY9VDNwzkvKnZvK2TQ==", + "requires": { + "es6-iterator": "^2.0.3", + "es6-symbol": "^3.1.3", + "esniff": "^2.0.1", + "next-tick": "^1.1.0" + } + }, + "es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", + "requires": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "es6-symbol": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", + "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", + "requires": { + "d": "^1.0.1", + "ext": "^1.1.2" + } + }, + "es6-weak-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", + "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", + "requires": { + "d": "1", + "es5-ext": "^0.10.46", + "es6-iterator": "^2.0.3", + "es6-symbol": "^3.1.1" + } + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + }, + "esniff": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/esniff/-/esniff-2.0.1.tgz", + "integrity": "sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==", + "requires": { + "d": "^1.0.1", + "es5-ext": "^0.10.62", + "event-emitter": "^0.3.5", + "type": "^2.7.2" + }, + "dependencies": { + "type": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz", + "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==" + } + } + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" + }, + "eth-lib": { + "version": "0.1.29", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.1.29.tgz", + "integrity": "sha512-bfttrr3/7gG4E02HoWTDUcDDslN003OlOoBxk9virpAZQ1ja/jDgwkWB8QfJF7ojuEowrqy+lzp9VcJG7/k5bQ==", + "requires": { + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "nano-json-stream-parser": "^0.1.2", + "servify": "^0.1.12", + "ws": "^3.0.0", + "xhr-request-promise": "^0.1.2" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" + }, + "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==" + }, + "ws": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", + "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", + "requires": { + "async-limiter": "~1.0.0", + "safe-buffer": "~5.1.0", + "ultron": "~1.1.0" + } + } + } + }, + "event-emitter": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", + "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", + "requires": { + "d": "1", + "es5-ext": "~0.10.14" + } + }, + "eventemitter3": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz", + "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==" + }, + "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" + } + }, + "express": { + "version": "4.19.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz", + "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==", + "requires": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.2", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.6.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "dependencies": { + "body-parser": { + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", + "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", + "requires": { + "bytes": "3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.2", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "dependencies": { + "content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==" + } + } + }, + "bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" + }, + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" + }, + "http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "requires": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + } + }, + "on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "requires": { + "ee-first": "1.1.1" + } + }, + "qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "requires": { + "side-channel": "^1.0.4" + } + }, + "raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "requires": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + } + }, + "setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" + }, + "toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" + } + } + }, + "ext": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz", + "integrity": "sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==", + "requires": { + "type": "^2.0.0" + }, + "dependencies": { + "type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/type/-/type-2.0.0.tgz", + "integrity": "sha512-KBt58xCHry4Cejnc2ISQAF7QY+ORngsWfxezO68+12hKV6lQY8P/psIkcbjeHWn7MqcgciWJyCCevFMJdIXpow==" + } + } + }, + "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": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" + }, + "fast-deep-equal": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz", + "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==" + }, + "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==" + }, + "file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" + }, + "finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "dependencies": { + "on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "requires": { + "ee-first": "1.1.1" + } + }, + "statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" + } + } + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" + }, + "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" + } + }, + "forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" + }, + "fs-extra": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", + "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==", + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "fs-minipass": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", + "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", + "requires": { + "minipass": "^2.6.0" + } + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "get-intrinsic": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", + "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + } + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "requires": { + "assert-plus": "^1.0.0" + } + }, + "global": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/global/-/global-4.3.2.tgz", + "integrity": "sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8=", + "requires": { + "min-document": "^2.19.0", + "process": "~0.5.1" + } + }, + "graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==" + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" + }, + "har-validator": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", + "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", + "requires": { + "ajv": "^6.5.5", + "har-schema": "^2.0.0" + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" + }, + "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" + } + }, + "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" + } + }, + "hdkey": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/hdkey/-/hdkey-1.1.2.tgz", + "integrity": "sha512-PTQ4VKu0oRnCrYfLp04iQZ7T2Cxz0UsEXYauk2j8eh6PJXCpbXuCFhOmtIFtbET0i3PMWmHN9J11gU8LEgUljQ==", + "requires": { + "bs58check": "^2.1.2", + "safe-buffer": "^5.1.1", + "secp256k1": "^3.0.1" + } + }, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "requires": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==" + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "http2-wrapper": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", + "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", + "requires": { + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.0.0" + } + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "idna-uts46-hx": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/idna-uts46-hx/-/idna-uts46-hx-2.3.1.tgz", + "integrity": "sha512-PWoF9Keq6laYdIRwwCdhTPl60xRqAloYNMQLiyUnG42VjT53oW07BXIRM+NK7eQjzXjAk2gUvX9caRxlnF9TAA==", + "requires": { + "punycode": "2.1.0" + } + }, + "ieee754": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", + "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==" + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "ip-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-4.1.0.tgz", + "integrity": "sha512-pKnZpbgCTfH/1NLIlOduP/V+WRXzC2MOz3Qo8xmxk8C5GudJLgK5QyLVXOSWy3ParAH7Eemurl3xjv/WXYFvMA==" + }, + "ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" + }, + "is-function": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz", + "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==" + }, + "is-promise": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", + "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==" + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + }, + "isomorphic-fetch": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", + "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=", + "requires": { + "node-fetch": "^1.0.1", + "whatwg-fetch": ">=0.10.0" + } + }, + "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==" + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" + }, + "js-sha3": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", + "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==" + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" + }, + "json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" + }, + "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": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "keyv": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.0.tgz", + "integrity": "sha512-2YvuMsA+jnFGtBareKqgANOEKe1mk3HKiXu2fRmAfyxG0MJAywNhi5ttWA3PMjl4NmpyjZNbFifR2vNjW1znfA==", + "requires": { + "json-buffer": "3.0.1" + } + }, + "lru-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz", + "integrity": "sha1-Jzi9nw089PhEkMVzbEhpmsYyzaM=", + "requires": { + "es5-ext": "~0.10.2" + } + }, + "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" + } + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" + }, + "memoizee": { + "version": "0.4.14", + "resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.14.tgz", + "integrity": "sha512-/SWFvWegAIYAO4NQMpcX+gcra0yEZu4OntmUdrBaWrJncxOqAziGFlHxc7yjKVK2uu3lpPW27P27wkR82wA8mg==", + "requires": { + "d": "1", + "es5-ext": "^0.10.45", + "es6-weak-map": "^2.0.2", + "event-emitter": "^0.3.5", + "is-promise": "^2.1", + "lru-queue": "0.1", + "next-tick": "1", + "timers-ext": "^0.1.5" + } + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + }, + "mime-db": { + "version": "1.44.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", + "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==" + }, + "mime-types": { + "version": "2.1.27", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", + "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", + "requires": { + "mime-db": "1.44.0" + } + }, + "mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" + }, + "min-document": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", + "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=", + "requires": { + "dom-walk": "^0.1.0" + } + }, + "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": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" + }, + "minimist": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" + }, + "minipass": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", + "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", + "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", + "requires": { + "minipass": "^2.9.0" + } + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" + }, + "mkdirp-promise": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz", + "integrity": "sha1-6bj2jlUsaKnBcTuEiD96HdA5uKE=", + "requires": { + "mkdirp": "*" + } + }, + "mock-fs": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/mock-fs/-/mock-fs-4.12.0.tgz", + "integrity": "sha512-/P/HtrlvBxY4o/PzXY9cCNBrdylDNxg7gnrv2sMNxj+UJ2m8jSpl0/A6fuJeNAWr99ZvGWH8XCbE0vmnM5KupQ==" + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "nan": { + "version": "2.14.1", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.1.tgz", + "integrity": "sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw==" + }, + "nano-json-stream-parser": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/nano-json-stream-parser/-/nano-json-stream-parser-0.1.2.tgz", + "integrity": "sha1-DMj20OK2IrR5xA1JnEbWS3Vcb18=" + }, + "negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" + }, + "next-tick": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", + "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==" + }, + "node-fetch": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", + "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", + "requires": { + "encoding": "^0.1.11", + "is-stream": "^1.0.1" + } + }, + "normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==" + }, + "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": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, + "object-inspect": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==" + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1" + } + }, + "parse-headers": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.3.tgz", + "integrity": "sha512-QhhZ+DCCit2Coi2vmAKbq5RGTRcQUOE2+REgv8vdyu7MnYx2eZztegqtTx99TZ86GTIwqiy3+4nQTWZ2tgmdCA==" + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" + }, + "pbkdf2": { + "version": "3.0.17", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz", + "integrity": "sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==", + "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": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + }, + "process": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/process/-/process-0.5.2.tgz", + "integrity": "sha1-FjjYqONML0QKkduVq5rrZ3/Bhc8=" + }, + "proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "requires": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + } + }, + "psl": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" + }, + "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": "2.1.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz", + "integrity": "sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0=" + }, + "query-string": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", + "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", + "requires": { + "decode-uri-component": "^0.2.0", + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" + } + }, + "quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==" + }, + "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" + } + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" + }, + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "regenerator-runtime": { + "version": "0.13.5", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz", + "integrity": "sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==" + }, + "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": { + "qs": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", + "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==" + } + } + }, + "resolve-alpn": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", + "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==" + }, + "responselike": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz", + "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==", + "requires": { + "lowercase-keys": "^2.0.0" + }, + "dependencies": { + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" + } + } + }, + "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.4", + "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.4.tgz", + "integrity": "sha512-fdq2yYCWpAQBhwkZv+Z8o/Z4sPmYm1CUq6P7n6lVTOdb949CnqA0sndXal5C1NleSVSZm6q5F3iEbauyVln/iw==", + "requires": { + "bn.js": "^4.11.1" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" + } + } + }, + "rxjs": { + "version": "6.5.5", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.5.tgz", + "integrity": "sha512-WfQI+1gohdf0Dai/Bbmk5L5ItH5tYqm3ki2c5GdWhKjalzjg93N3avFjVStyZZz+A2Em+ZxKH5bNghw9UeylGQ==", + "requires": { + "tslib": "^1.9.0" + } + }, + "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==" + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "secp256k1": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-3.8.0.tgz", + "integrity": "sha512-k5ke5avRZbtl9Tqx/SA7CbY3NF6Ro+Sj9cZxezFzuBlLDmyqPiL8hJJ+EmzD8Ig4LUDByHJ3/iPOVoRixs/hmw==", + "requires": { + "bindings": "^1.5.0", + "bip66": "^1.1.5", + "bn.js": "^4.11.8", + "create-hash": "^1.2.0", + "drbg.js": "^1.0.1", + "elliptic": "^6.5.2", + "nan": "^2.14.0", + "safe-buffer": "^5.1.2" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" + } + } + }, + "send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "requires": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "dependencies": { + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" + }, + "http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "requires": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "requires": { + "ee-first": "1.1.1" + } + }, + "setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" + }, + "toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" + } + } + }, + "serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + } + }, + "servify": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/servify/-/servify-0.1.12.tgz", + "integrity": "sha512-/xE6GvsKKqyo1BAY+KxOWXcLpPsUUyji7Qg3bVD7hh1eRze5bR1uYiuDA/k3Gof1s9BTzQZEJK8sNcNGFIzeWw==", + "requires": { + "body-parser": "^1.16.0", + "cors": "^2.8.1", + "express": "^4.14.0", + "request": "^2.79.0", + "xhr": "^2.3.3" + } + }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" + }, + "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" + } + }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "simple-concat": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.0.tgz", + "integrity": "sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY=" + }, + "simple-get": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-2.8.2.tgz", + "integrity": "sha512-Ijd/rV5o+mSBBs4F/x9oDPtTx9Zb6X9brmnXvMW4J7IR15ngi9q5xxqWBKU744jTZiaXtxaPL7uHG6vtN8kUkw==", + "requires": { + "decompress-response": "^3.3.0", + "once": "^1.3.1", + "simple-concat": "^1.0.0" + } + }, + "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.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "sshpk": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "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" + }, + "dependencies": { + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" + } + } + }, + "strict-uri-encode": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", + "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=" + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "requires": { + "safe-buffer": "~5.2.0" + } + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "requires": { + "has-flag": "^4.0.0" + } + }, + "swarm-js": { + "version": "0.1.42", + "resolved": "https://registry.npmjs.org/swarm-js/-/swarm-js-0.1.42.tgz", + "integrity": "sha512-BV7c/dVlA3R6ya1lMlSSNPLYrntt0LUq4YMgy3iwpCIc6rZnS5W2wUoctarZ5pXlpKtxDDf9hNziEkcfrxdhqQ==", + "requires": { + "bluebird": "^3.5.0", + "buffer": "^5.0.5", + "eth-lib": "^0.1.26", + "fs-extra": "^4.0.2", + "got": "^11.8.5", + "mime-types": "^2.1.16", + "mkdirp-promise": "^5.0.1", + "mock-fs": "^4.1.0", + "setimmediate": "^1.0.5", + "tar": "^4.0.2", + "xhr-request": "^1.0.1" + }, + "dependencies": { + "decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "requires": { + "mimic-response": "^3.1.0" + } + }, + "got": { + "version": "11.8.5", + "resolved": "https://registry.npmjs.org/got/-/got-11.8.5.tgz", + "integrity": "sha512-o0Je4NvQObAuZPHLFoRSkdG2lTgtcynqymzg2Vupdx6PorhaT5MCbIyXG6d4D94kk8ZG57QeosgdiqfJWhEhlQ==", + "requires": { + "@sindresorhus/is": "^4.0.0", + "@szmarczak/http-timer": "^4.0.5", + "@types/cacheable-request": "^6.0.1", + "@types/responselike": "^1.0.0", + "cacheable-lookup": "^5.0.3", + "cacheable-request": "^7.0.2", + "decompress-response": "^6.0.0", + "http2-wrapper": "^1.0.0-beta.5.2", + "lowercase-keys": "^2.0.0", + "p-cancelable": "^2.0.0", + "responselike": "^2.0.0" + } + }, + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" + }, + "mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==" + }, + "p-cancelable": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", + "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==" + } + } + }, + "tar": { + "version": "4.4.19", + "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.19.tgz", + "integrity": "sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==", + "requires": { + "chownr": "^1.1.4", + "fs-minipass": "^1.2.7", + "minipass": "^2.9.0", + "minizlib": "^1.3.3", + "mkdirp": "^0.5.5", + "safe-buffer": "^5.2.1", + "yallist": "^3.1.1" + }, + "dependencies": { + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "requires": { + "minimist": "^1.2.5" + } + } + } + }, + "timed-out": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", + "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=" + }, + "timers-ext": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.7.tgz", + "integrity": "sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ==", + "requires": { + "es5-ext": "~0.10.46", + "next-tick": "1" + } + }, + "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.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + } + } + }, + "ts-node": { + "version": "8.10.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.10.1.tgz", + "integrity": "sha512-bdNz1L4ekHiJul6SHtZWs1ujEKERJnHs4HxN7rjTyyVOFf3HaJ6sLqe6aPG62XTzAB/63pKRh5jTSWL0D7bsvw==", + "requires": { + "arg": "^4.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "source-map-support": "^0.5.17", + "yn": "3.1.1" + } + }, + "tslib": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", + "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==" + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" + }, + "type": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", + "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" + }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + } + }, + "typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "requires": { + "is-typedarray": "^1.0.0" + } + }, + "typescript": { + "version": "3.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.3.tgz", + "integrity": "sha512-D/wqnB2xzNFIcoBG9FG8cXRDjiqSTbG2wd8DMZeQyJlP1vfTkIxH4GKveWaEBYySKIg+USu+E+EDIR47SqnaMQ==" + }, + "ultron": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", + "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==" + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" + }, + "unorm": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/unorm/-/unorm-1.6.0.tgz", + "integrity": "sha512-b2/KCUlYZUeA7JFUuRJZPUtr4gZvBh7tavtv4fvk4+KV9pfGiR6CQAQAWl49ZpR3ts2dk4FYkP7EIgDJoiOLDA==" + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" + }, + "uri-js": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", + "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", + "requires": { + "punycode": "^2.1.0" + } + }, + "url-set-query": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/url-set-query/-/url-set-query-1.0.0.tgz", + "integrity": "sha1-AW6M/Xwg7gXK/neV6JK9BwL6ozk=" + }, + "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": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "web3x": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/web3x/-/web3x-4.0.6.tgz", + "integrity": "sha512-rYc60WO6WjQ0O2b29LVM0Ov0Ca5DSfeKPfkUBpcT1JaB8JHnHRVedB/eBktIEytjUDMxotxIfsYRFsO4cbE95w==", + "requires": { + "@types/bn.js": "^4.11.2", + "@types/node": "^10.12.18", + "@types/ws": "^6.0.1", + "bip39": "^2.5.0", + "bn.js": "^4.11.8", + "browserify-aes": "^1.2.0", + "elliptic": "^6.4.0", + "hdkey": "^1.1.0", + "idna-uts46-hx": "^2.3.1", + "isomorphic-fetch": "^2.2.1", + "isomorphic-ws": "^4.0.1", + "pbkdf2": "^3.0.17", + "randombytes": "^2.0.6", + "rlp": "^2.2.3", + "swarm-js": "^0.1.39", + "tslib": "^1.9.3", + "utf8": "^3.0.0", + "ws": "^6.1.0" + }, + "dependencies": { + "@types/node": { + "version": "10.17.24", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.24.tgz", + "integrity": "sha512-5SCfvCxV74kzR3uWgTYiGxrd69TbT1I6+cMx1A5kEly/IVveJBimtAMlXiEyVFn5DvUFewQWxOOiJhlxeQwxgA==" + }, + "bip39": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/bip39/-/bip39-2.6.0.tgz", + "integrity": "sha512-RrnQRG2EgEoqO24ea+Q/fftuPUZLmrEM3qNhhGsA3PbaXaCW791LTzPuVyx/VprXQcTbPJ3K3UeTna8ZnVl2sg==", + "requires": { + "create-hash": "^1.1.0", + "pbkdf2": "^3.0.9", + "randombytes": "^2.0.1", + "safe-buffer": "^5.0.1", + "unorm": "^1.3.3" + } + }, + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" + } + } + }, + "websocket": { + "version": "1.0.31", + "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.31.tgz", + "integrity": "sha512-VAouplvGKPiKFDTeCCO65vYHsyay8DqoBSlzIO3fayrfOgU94lQN5a1uWVnFrMLceTJw/+fQXR5PGbUVRaHshQ==", + "requires": { + "debug": "^2.2.0", + "es5-ext": "^0.10.50", + "nan": "^2.14.0", + "typedarray-to-buffer": "^3.1.5", + "yaeti": "^0.0.6" + } + }, + "whatwg-fetch": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.0.0.tgz", + "integrity": "sha512-9GSJUgz1D4MfyKU7KRqwOjXCXTqWdFNvEr7eUBYchQiVc744mqK/MzXPNR2WsPkmkOa4ywfg8C2n8h+13Bey1Q==" + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "ws": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz", + "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==", + "requires": { + "async-limiter": "~1.0.0" + } + }, + "xhr": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.5.0.tgz", + "integrity": "sha512-4nlO/14t3BNUZRXIXfXe+3N6w3s1KoxcJUUURctd64BLRe67E4gRwp4PjywtDY72fXpZ1y6Ch0VZQRY/gMPzzQ==", + "requires": { + "global": "~4.3.0", + "is-function": "^1.0.1", + "parse-headers": "^2.0.0", + "xtend": "^4.0.0" + } + }, + "xhr-request": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/xhr-request/-/xhr-request-1.1.0.tgz", + "integrity": "sha512-Y7qzEaR3FDtL3fP30k9wO/e+FBnBByZeybKOhASsGP30NIkRAAkKD/sCnLvgEfAIEC1rcmK7YG8f4oEnIrrWzA==", + "requires": { + "buffer-to-arraybuffer": "^0.0.5", + "object-assign": "^4.1.1", + "query-string": "^5.0.1", + "simple-get": "^2.7.0", + "timed-out": "^4.0.1", + "url-set-query": "^1.0.0", + "xhr": "^2.0.4" + } + }, + "xhr-request-promise": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/xhr-request-promise/-/xhr-request-promise-0.1.3.tgz", + "integrity": "sha512-YUBytBsuwgitWtdRzXDDkWAXzhdGB8bYm0sSzMPZT7Z2MBjMSTHFsyCT1yCRATY+XC69DUrQraRAEgcoCRaIPg==", + "requires": { + "xhr-request": "^1.1.0" + } + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" + }, + "xxhashjs": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/xxhashjs/-/xxhashjs-0.2.2.tgz", + "integrity": "sha512-AkTuIuVTET12tpsVIQo+ZU6f/qDmKuRUcjaqR+OIvm+aCBsZ95i7UVY5WJ9TMsSaZ0DA2WxoZ4acu0sPH+OKAw==", + "requires": { + "cuint": "^0.2.2" + } + }, + "yaeti": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz", + "integrity": "sha1-8m9ITXJoTPQr7ft2lwqhYI+/lXc=" + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + }, + "yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==" + } + } +} diff --git a/examples/contract-erc20/package.json b/examples/contract-erc20/package.json new file mode 100644 index 0000000..1a142af --- /dev/null +++ b/examples/contract-erc20/package.json @@ -0,0 +1,11 @@ +{ + "name": "frontier-template-contract-erc20", + "version": "0.0.0", + "dependencies": { + "@polkadot/api": "^1.16.0-beta.2", + "@polkadot/util-crypto": "^2.10.1", + "ts-node": "^8.10.1", + "typescript": "^3.9.3", + "web3x": "^4.0.6" + } +} diff --git a/examples/contract-erc20/truffle/.gitignore b/examples/contract-erc20/truffle/.gitignore new file mode 100644 index 0000000..34b23da --- /dev/null +++ b/examples/contract-erc20/truffle/.gitignore @@ -0,0 +1,2 @@ +/build/ +/node_modules/ diff --git a/examples/contract-erc20/truffle/contracts/MyToken.json b/examples/contract-erc20/truffle/contracts/MyToken.json new file mode 100644 index 0000000..d443d3d --- /dev/null +++ b/examples/contract-erc20/truffle/contracts/MyToken.json @@ -0,0 +1,857 @@ +{ + "contractName": "MyToken", + "abi": [ + { + "inputs": [], + "payable": false, + "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" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "subtractedValue", + "type": "uint256" + } + ], + "name": "decreaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "addedValue", + "type": "uint256" + } + ], + "name": "increaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"payable\":false,\"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\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. * Requirements: * - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"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.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. * Requirements: * - `recipient` 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}; * Requirements: - `sender` and `recipient` cannot be the zero address. - `sender` must have a balance of at least `amount`. - the caller must have allowance for `sender`'s tokens of at least `amount`.\"}}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/home/dan/Code/Substrate/substrate-evm/contracts/contracts/MyToken.sol\":\"MyToken\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/dan/Code/Substrate/substrate-evm/contracts/contracts/MyToken.sol\":{\"keccak256\":\"0xe8a813e1dd98694d07ee458be5ffe924b8e1f41d2cf16ee682127755af1ddde1\",\"urls\":[\"bzz-raw://c8222b05c871d5b48ed808fd1a85e6c3b1cdf97e6632216d12c960d550fb8452\",\"dweb:/ipfs/QmRcQ2id9Ydg1VdZdea5Mo7mvYMihjH4y7paERBFVdxGBv\"]},\"@openzeppelin/contracts/GSN/Context.sol\":{\"keccak256\":\"0x90a3995645af7562d84b9d69363ffa5ae7217714ab61e951bf7bc450f40e4061\",\"urls\":[\"bzz-raw://216ef9d6b614db4eb46970b4e84903f2534a45572dd30a79f0041f1a5830f436\",\"dweb:/ipfs/QmNPrJ4MWKUAWzKXpUqeyKRUfosaoANZAqXgvepdrCwZAG\"]},\"@openzeppelin/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x640b6dee7a4b830bdfd52b5031a07fc2b12209f5b2e29e5d364a7d37f69d8076\",\"urls\":[\"bzz-raw://31113152e1ddb78fe7a4197f247591ca894e93f916867beb708d8e747b6cc74f\",\"dweb:/ipfs/QmbZaJyXdpsYGykVhHH9qpVGQg9DGCxE2QufbCUy3daTgq\"]},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xb15af804e2bc97db51e4e103f13de9fe13f87e6b835d7a88c897966c0e58506e\",\"urls\":[\"bzz-raw://1e8cff8437557fc915a3bed968fcd8f2df9809599e665ef69c2c9ce628548055\",\"dweb:/ipfs/QmP5spYP8vs2jvLF8zNrXUbqB79hMsoEvMHiLcBxerWKcm\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe5bb0f57cff3e299f360052ba50f1ea0fff046df2be070b6943e0e3c3fdad8a9\",\"urls\":[\"bzz-raw://59fd025151435da35faa8093a5c7a17de02de9d08ad27275c5cdf05050820d91\",\"dweb:/ipfs/QmQMvwEcPhoRXzbXyrdoeRtvLoifUW9Qh7Luho7bmUPRkc\"]}},\"version\":1}", + "bytecode": "0x608060405234801561001057600080fd5b50610041337fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61004660201b60201c565b610291565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156100e9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b6101028160025461020960201b610c7c1790919060201c565b60028190555061015d816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461020960201b610c7c1790919060201c565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600080828401905083811015610287576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b610e3a806102a06000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c806370a082311161005b57806370a08231146101fd578063a457c2d714610255578063a9059cbb146102bb578063dd62ed3e1461032157610088565b8063095ea7b31461008d57806318160ddd146100f357806323b872dd146101115780633950935114610197575b600080fd5b6100d9600480360360408110156100a357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610399565b604051808215151515815260200191505060405180910390f35b6100fb6103b7565b6040518082815260200191505060405180910390f35b61017d6004803603606081101561012757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506103c1565b604051808215151515815260200191505060405180910390f35b6101e3600480360360408110156101ad57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061049a565b604051808215151515815260200191505060405180910390f35b61023f6004803603602081101561021357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061054d565b6040518082815260200191505060405180910390f35b6102a16004803603604081101561026b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610595565b604051808215151515815260200191505060405180910390f35b610307600480360360408110156102d157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610662565b604051808215151515815260200191505060405180910390f35b6103836004803603604081101561033757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610680565b6040518082815260200191505060405180910390f35b60006103ad6103a6610707565b848461070f565b6001905092915050565b6000600254905090565b60006103ce848484610906565b61048f846103da610707565b61048a85604051806060016040528060288152602001610d7060289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610440610707565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610bbc9092919063ffffffff16565b61070f565b600190509392505050565b60006105436104a7610707565b8461053e85600160006104b8610707565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610c7c90919063ffffffff16565b61070f565b6001905092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60006106586105a2610707565b8461065385604051806060016040528060258152602001610de160259139600160006105cc610707565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610bbc9092919063ffffffff16565b61070f565b6001905092915050565b600061067661066f610707565b8484610906565b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610795576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180610dbd6024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561081b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180610d286022913960400191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561098c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180610d986025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610a12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180610d056023913960400191505060405180910390fd5b610a7d81604051806060016040528060268152602001610d4a602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610bbc9092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610b10816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610c7c90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000838311158290610c69576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610c2e578082015181840152602081019050610c13565b50505050905090810190601f168015610c5b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b600080828401905083811015610cfa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b809150509291505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa265627a7a72315820c7a5ffabf642bda14700b2de42f8c57b36621af020441df825de45fd2b3e1c5c64736f6c63430005100032", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100885760003560e01c806370a082311161005b57806370a08231146101fd578063a457c2d714610255578063a9059cbb146102bb578063dd62ed3e1461032157610088565b8063095ea7b31461008d57806318160ddd146100f357806323b872dd146101115780633950935114610197575b600080fd5b6100d9600480360360408110156100a357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610399565b604051808215151515815260200191505060405180910390f35b6100fb6103b7565b6040518082815260200191505060405180910390f35b61017d6004803603606081101561012757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506103c1565b604051808215151515815260200191505060405180910390f35b6101e3600480360360408110156101ad57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061049a565b604051808215151515815260200191505060405180910390f35b61023f6004803603602081101561021357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061054d565b6040518082815260200191505060405180910390f35b6102a16004803603604081101561026b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610595565b604051808215151515815260200191505060405180910390f35b610307600480360360408110156102d157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610662565b604051808215151515815260200191505060405180910390f35b6103836004803603604081101561033757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610680565b6040518082815260200191505060405180910390f35b60006103ad6103a6610707565b848461070f565b6001905092915050565b6000600254905090565b60006103ce848484610906565b61048f846103da610707565b61048a85604051806060016040528060288152602001610d7060289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610440610707565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610bbc9092919063ffffffff16565b61070f565b600190509392505050565b60006105436104a7610707565b8461053e85600160006104b8610707565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610c7c90919063ffffffff16565b61070f565b6001905092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60006106586105a2610707565b8461065385604051806060016040528060258152602001610de160259139600160006105cc610707565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610bbc9092919063ffffffff16565b61070f565b6001905092915050565b600061067661066f610707565b8484610906565b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610795576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180610dbd6024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561081b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180610d286022913960400191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561098c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180610d986025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610a12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180610d056023913960400191505060405180910390fd5b610a7d81604051806060016040528060268152602001610d4a602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610bbc9092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610b10816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610c7c90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000838311158290610c69576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610c2e578082015181840152602081019050610c13565b50505050905090810190601f168015610c5b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b600080828401905083811015610cfa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b809150509291505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa265627a7a72315820c7a5ffabf642bda14700b2de42f8c57b36621af020441df825de45fd2b3e1c5c64736f6c63430005100032", + "sourceMap": "166:93:0:-;;;196:61;8:9:-1;5:2;;;30:1;27;20:12;5:2;196:61:0;223:29;229:10;241;223:5;;;:29;;:::i;:::-;166:93;;5962:302:3;6056:1;6037:21;;:7;:21;;;;6029:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6120:24;6137:6;6120:12;;:16;;;;;;:24;;;;:::i;:::-;6105:12;:39;;;;6175:30;6198:6;6175:9;:18;6185:7;6175:18;;;;;;;;;;;;;;;;:22;;;;;;:30;;;;:::i;:::-;6154:9;:18;6164:7;6154:18;;;;;;;;;;;;;;;:51;;;;6241:7;6220:37;;6237:1;6220:37;;;6250:6;6220:37;;;;;;;;;;;;;;;;;;5962:302;;:::o;834:176:2:-;892:7;911:9;927:1;923;:5;911:17;;951:1;946;:6;;938:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1002:1;995:8;;;834:176;;;;:::o;166:93:0:-;;;;;;;", + "deployedSourceMap": "166:93:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;166:93:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2500:149:3;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2500:149:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1559:89;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3107:300;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3107:300:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3802:207;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3802:207:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1706:108;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1706:108:3;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4496:258;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4496:258:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2017:155;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2017:155:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2230:132;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2230:132:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2500:149;2566:4;2582:39;2591:12;:10;:12::i;:::-;2605:7;2614:6;2582:8;:39::i;:::-;2638:4;2631:11;;2500:149;;;;:::o;1559:89::-;1603:7;1629:12;;1622:19;;1559:89;:::o;3107:300::-;3196:4;3212:36;3222:6;3230:9;3241:6;3212:9;:36::i;:::-;3258:121;3267:6;3275:12;:10;:12::i;:::-;3289:89;3327:6;3289:89;;;;;;;;;;;;;;;;;:11;:19;3301:6;3289:19;;;;;;;;;;;;;;;:33;3309:12;:10;:12::i;:::-;3289:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;3258:8;:121::i;:::-;3396:4;3389:11;;3107:300;;;;;:::o;3802:207::-;3882:4;3898:83;3907:12;:10;:12::i;:::-;3921:7;3930:50;3969:10;3930:11;:25;3942:12;:10;:12::i;:::-;3930:25;;;;;;;;;;;;;;;:34;3956:7;3930:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;3898:8;:83::i;:::-;3998:4;3991:11;;3802:207;;;;:::o;1706:108::-;1763:7;1789:9;:18;1799:7;1789:18;;;;;;;;;;;;;;;;1782:25;;1706:108;;;:::o;4496:258::-;4581:4;4597:129;4606:12;:10;:12::i;:::-;4620:7;4629:96;4668:15;4629:96;;;;;;;;;;;;;;;;;:11;:25;4641:12;:10;:12::i;:::-;4629:25;;;;;;;;;;;;;;;:34;4655:7;4629:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;4597:8;:129::i;:::-;4743:4;4736:11;;4496:258;;;;:::o;2017:155::-;2086:4;2102:42;2112:12;:10;:12::i;:::-;2126:9;2137:6;2102:9;:42::i;:::-;2161:4;2154:11;;2017:155;;;;:::o;2230:132::-;2302:7;2328:11;:18;2340:5;2328:18;;;;;;;;;;;;;;;:27;2347:7;2328:27;;;;;;;;;;;;;;;;2321:34;;2230:132;;;;:::o;788:96:1:-;833:15;867:10;860:17;;788:96;:::o;7350:332:3:-;7460:1;7443:19;;:5;:19;;;;7435:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7540:1;7521:21;;:7;:21;;;;7513:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7622:6;7592:11;:18;7604:5;7592:18;;;;;;;;;;;;;;;:27;7611:7;7592:27;;;;;;;;;;;;;;;:36;;;;7659:7;7643:32;;7652:5;7643:32;;;7668:6;7643:32;;;;;;;;;;;;;;;;;;7350:332;;;:::o;5228:464::-;5343:1;5325:20;;:6;:20;;;;5317:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5426:1;5405:23;;:9;:23;;;;5397:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5499;5521:6;5499:71;;;;;;;;;;;;;;;;;:9;:17;5509:6;5499:17;;;;;;;;;;;;;;;;:21;;:71;;;;;:::i;:::-;5479:9;:17;5489:6;5479:17;;;;;;;;;;;;;;;:91;;;;5603:32;5628:6;5603:9;:20;5613:9;5603:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;5580:9;:20;5590:9;5580:20;;;;;;;;;;;;;;;:55;;;;5667:9;5650:35;;5659:6;5650:35;;;5678:6;5650:35;;;;;;;;;;;;;;;;;;5228:464;;;:::o;1732:187:2:-;1818:7;1850:1;1845;:6;;1853:12;1837:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1837:29:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1876:9;1892:1;1888;:5;1876:17;;1911:1;1904:8;;;1732:187;;;;;:::o;834:176::-;892:7;911:9;927:1;923;:5;911:17;;951:1;946;:6;;938:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1002:1;995:8;;;834:176;;;;:::o", + "source": "pragma solidity ^0.5.0;\n\nimport '@openzeppelin/contracts/token/ERC20/ERC20.sol';\n\n// This ERC-20 contract mints the maximum amount of tokens to the contract creator.\ncontract MyToken is ERC20 {\n constructor() public {\n _mint(msg.sender, 2**256 - 1);\n }\n}\n", + "sourcePath": "/home/dan/Code/Substrate/substrate-evm/contracts/contracts/MyToken.sol", + "ast": { + "absolutePath": "/home/dan/Code/Substrate/substrate-evm/contracts/contracts/MyToken.sol", + "exportedSymbols": { + "MyToken": [ + 19 + ] + }, + "id": 20, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + "^", + "0.5", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:23:0" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC20/ERC20.sol", + "file": "@openzeppelin/contracts/token/ERC20/ERC20.sol", + "id": 2, + "nodeType": "ImportDirective", + "scope": 20, + "sourceUnit": 639, + "src": "25:55:0", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 3, + "name": "ERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 638, + "src": "186:5:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$638", + "typeString": "contract ERC20" + } + }, + "id": 4, + "nodeType": "InheritanceSpecifier", + "src": "186:5:0" + } + ], + "contractDependencies": [ + 46, + 638, + 707 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 19, + "linearizedBaseContracts": [ + 19, + 638, + 707, + 46 + ], + "name": "MyToken", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 17, + "nodeType": "Block", + "src": "217:40:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 722, + "src": "229:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 9, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "229:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_115792089237316195423570985008687907853269984665640564039457584007913129639935_by_1", + "typeString": "int_const 1157...(70 digits omitted)...9935" + }, + "id": 14, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_115792089237316195423570985008687907853269984665640564039457584007913129639936_by_1", + "typeString": "int_const 1157...(70 digits omitted)...9936" + }, + "id": 12, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 10, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "241:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "hexValue": "323536", + "id": 11, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "244:3:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_256_by_1", + "typeString": "int_const 256" + }, + "value": "256" + }, + "src": "241:6:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_115792089237316195423570985008687907853269984665640564039457584007913129639936_by_1", + "typeString": "int_const 1157...(70 digits omitted)...9936" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 13, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "250:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "241:10:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_115792089237316195423570985008687907853269984665640564039457584007913129639935_by_1", + "typeString": "int_const 1157...(70 digits omitted)...9935" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_rational_115792089237316195423570985008687907853269984665640564039457584007913129639935_by_1", + "typeString": "int_const 1157...(70 digits omitted)...9935" + } + ], + "id": 7, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 522, + "src": "223:5:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 15, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "223:29:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 16, + "nodeType": "ExpressionStatement", + "src": "223:29:0" + } + ] + }, + "documentation": null, + "id": 18, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5, + "nodeType": "ParameterList", + "parameters": [], + "src": "207:2:0" + }, + "returnParameters": { + "id": 6, + "nodeType": "ParameterList", + "parameters": [], + "src": "217:0:0" + }, + "scope": 19, + "src": "196:61:0", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 20, + "src": "166:93:0" + } + ], + "src": "0:260:0" + }, + "legacyAST": { + "absolutePath": "/home/dan/Code/Substrate/substrate-evm/contracts/contracts/MyToken.sol", + "exportedSymbols": { + "MyToken": [ + 19 + ] + }, + "id": 20, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + "^", + "0.5", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:23:0" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC20/ERC20.sol", + "file": "@openzeppelin/contracts/token/ERC20/ERC20.sol", + "id": 2, + "nodeType": "ImportDirective", + "scope": 20, + "sourceUnit": 639, + "src": "25:55:0", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 3, + "name": "ERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 638, + "src": "186:5:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$638", + "typeString": "contract ERC20" + } + }, + "id": 4, + "nodeType": "InheritanceSpecifier", + "src": "186:5:0" + } + ], + "contractDependencies": [ + 46, + 638, + 707 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 19, + "linearizedBaseContracts": [ + 19, + 638, + 707, + 46 + ], + "name": "MyToken", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 17, + "nodeType": "Block", + "src": "217:40:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 722, + "src": "229:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 9, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "229:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_115792089237316195423570985008687907853269984665640564039457584007913129639935_by_1", + "typeString": "int_const 1157...(70 digits omitted)...9935" + }, + "id": 14, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_115792089237316195423570985008687907853269984665640564039457584007913129639936_by_1", + "typeString": "int_const 1157...(70 digits omitted)...9936" + }, + "id": 12, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 10, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "241:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "hexValue": "323536", + "id": 11, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "244:3:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_256_by_1", + "typeString": "int_const 256" + }, + "value": "256" + }, + "src": "241:6:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_115792089237316195423570985008687907853269984665640564039457584007913129639936_by_1", + "typeString": "int_const 1157...(70 digits omitted)...9936" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 13, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "250:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "241:10:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_115792089237316195423570985008687907853269984665640564039457584007913129639935_by_1", + "typeString": "int_const 1157...(70 digits omitted)...9935" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_rational_115792089237316195423570985008687907853269984665640564039457584007913129639935_by_1", + "typeString": "int_const 1157...(70 digits omitted)...9935" + } + ], + "id": 7, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 522, + "src": "223:5:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 15, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "223:29:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 16, + "nodeType": "ExpressionStatement", + "src": "223:29:0" + } + ] + }, + "documentation": null, + "id": 18, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5, + "nodeType": "ParameterList", + "parameters": [], + "src": "207:2:0" + }, + "returnParameters": { + "id": 6, + "nodeType": "ParameterList", + "parameters": [], + "src": "217:0:0" + }, + "scope": 19, + "src": "196:61:0", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 20, + "src": "166:93:0" + } + ], + "src": "0:260:0" + }, + "compiler": { + "name": "solc", + "version": "0.5.16+commit.9c3226ce.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.0.23", + "updatedAt": "2020-02-14T16:09:00.260Z", + "devdoc": { + "methods": { + "allowance(address,address)": { + "details": "See {IERC20-allowance}." + }, + "approve(address,uint256)": { + "details": "See {IERC20-approve}. * Requirements: * - `spender` cannot be the zero address." + }, + "balanceOf(address)": { + "details": "See {IERC20-balanceOf}." + }, + "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." + }, + "totalSupply()": { + "details": "See {IERC20-totalSupply}." + }, + "transfer(address,uint256)": { + "details": "See {IERC20-transfer}. * Requirements: * - `recipient` 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}; * Requirements: - `sender` and `recipient` cannot be the zero address. - `sender` must have a balance of at least `amount`. - the caller must have allowance for `sender`'s tokens of at least `amount`." + } + } + }, + "userdoc": { + "methods": {} + } +} \ No newline at end of file diff --git a/examples/contract-erc20/truffle/contracts/MyToken.sol b/examples/contract-erc20/truffle/contracts/MyToken.sol new file mode 100644 index 0000000..d8c3004 --- /dev/null +++ b/examples/contract-erc20/truffle/contracts/MyToken.sol @@ -0,0 +1,10 @@ +pragma solidity ^0.5.0; + +import '@openzeppelin/contracts/token/ERC20/ERC20.sol'; + +// This ERC-20 contract mints the maximum amount of tokens to the contract creator. +contract MyToken is ERC20 { + constructor() public { + _mint(msg.sender, 2**256 - 1); + } +} diff --git a/examples/contract-erc20/truffle/package-lock.json b/examples/contract-erc20/truffle/package-lock.json new file mode 100644 index 0000000..19a4321 --- /dev/null +++ b/examples/contract-erc20/truffle/package-lock.json @@ -0,0 +1,7107 @@ +{ + "name": "substrate-evm-contracts", + "version": "0.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@apollo/protobufjs": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@apollo/protobufjs/-/protobufjs-1.2.7.tgz", + "integrity": "sha512-Lahx5zntHPZia35myYDBRuF58tlwPskwHc5CWBZC/4bMKB6siTBWwtMrkqXcsNwQiFSzSx5hKdRPUmemrEp3Gg==", + "optional": true, + "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.0", + "long": "^4.0.0" + } + }, + "@apollo/usage-reporting-protobuf": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/@apollo/usage-reporting-protobuf/-/usage-reporting-protobuf-4.1.1.tgz", + "integrity": "sha512-u40dIUePHaSKVshcedO7Wp+mPiZsaU6xjv9J+VyxpoU/zL6Jle+9zWeG98tr/+SZ0nZ4OXhrbb8SNr0rAPpIDA==", + "optional": true, + "requires": { + "@apollo/protobufjs": "1.2.7" + } + }, + "@apollo/utils.dropunuseddefinitions": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@apollo/utils.dropunuseddefinitions/-/utils.dropunuseddefinitions-1.1.0.tgz", + "integrity": "sha512-jU1XjMr6ec9pPoL+BFWzEPW7VHHulVdGKMkPAMiCigpVIT11VmCbnij0bWob8uS3ODJ65tZLYKAh/55vLw2rbg==", + "optional": true + }, + "@apollo/utils.keyvaluecache": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@apollo/utils.keyvaluecache/-/utils.keyvaluecache-1.0.2.tgz", + "integrity": "sha512-p7PVdLPMnPzmXSQVEsy27cYEjVON+SH/Wb7COyW3rQN8+wJgT1nv9jZouYtztWW8ZgTkii5T6tC9qfoDREd4mg==", + "optional": true, + "requires": { + "@apollo/utils.logger": "^1.0.0", + "lru-cache": "7.10.1 - 7.13.1" + }, + "dependencies": { + "lru-cache": { + "version": "7.13.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.13.1.tgz", + "integrity": "sha512-CHqbAq7NFlW3RSnoWXLJBxCWaZVBrfa9UEHId2M3AW8iEBurbqduNexEUCGc3SHc6iCYXNJCDi903LajSVAEPQ==", + "optional": true + } + } + }, + "@apollo/utils.logger": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@apollo/utils.logger/-/utils.logger-1.0.1.tgz", + "integrity": "sha512-XdlzoY7fYNK4OIcvMD2G94RoFZbzTQaNP0jozmqqMudmaGo2I/2Jx71xlDJ801mWA/mbYRihyaw6KJii7k5RVA==", + "optional": true + }, + "@apollo/utils.printwithreducedwhitespace": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@apollo/utils.printwithreducedwhitespace/-/utils.printwithreducedwhitespace-1.1.0.tgz", + "integrity": "sha512-GfFSkAv3n1toDZ4V6u2d7L4xMwLA+lv+6hqXicMN9KELSJ9yy9RzuEXaX73c/Ry+GzRsBy/fdSUGayGqdHfT2Q==", + "optional": true + }, + "@apollo/utils.removealiases": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@apollo/utils.removealiases/-/utils.removealiases-1.0.0.tgz", + "integrity": "sha512-6cM8sEOJW2LaGjL/0vHV0GtRaSekrPQR4DiywaApQlL9EdROASZU5PsQibe2MWeZCOhNrPRuHh4wDMwPsWTn8A==", + "optional": true + }, + "@apollo/utils.sortast": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@apollo/utils.sortast/-/utils.sortast-1.1.0.tgz", + "integrity": "sha512-VPlTsmUnOwzPK5yGZENN069y6uUHgeiSlpEhRnLFYwYNoJHsuJq2vXVwIaSmts015WTPa2fpz1inkLYByeuRQA==", + "optional": true, + "requires": { + "lodash.sortby": "^4.7.0" + } + }, + "@apollo/utils.stripsensitiveliterals": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@apollo/utils.stripsensitiveliterals/-/utils.stripsensitiveliterals-1.2.0.tgz", + "integrity": "sha512-E41rDUzkz/cdikM5147d8nfCFVKovXxKBcjvLEQ7bjZm/cg9zEcXvS6vFY8ugTubI3fn6zoqo0CyU8zT+BGP9w==", + "optional": true + }, + "@apollo/utils.usagereporting": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@apollo/utils.usagereporting/-/utils.usagereporting-1.0.1.tgz", + "integrity": "sha512-6dk+0hZlnDbahDBB2mP/PZ5ybrtCJdLMbeNJD+TJpKyZmSY6bA3SjI8Cr2EM9QA+AdziywuWg+SgbWUF3/zQqQ==", + "optional": true, + "requires": { + "@apollo/usage-reporting-protobuf": "^4.0.0", + "@apollo/utils.dropunuseddefinitions": "^1.1.0", + "@apollo/utils.printwithreducedwhitespace": "^1.1.0", + "@apollo/utils.removealiases": "1.0.0", + "@apollo/utils.sortast": "^1.1.0", + "@apollo/utils.stripsensitiveliterals": "^1.2.0" + } + }, + "@apollographql/apollo-tools": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/@apollographql/apollo-tools/-/apollo-tools-0.5.4.tgz", + "integrity": "sha512-shM3q7rUbNyXVVRkQJQseXv6bnYM3BUma/eZhwXR4xsuM+bqWnJKvW7SAfRjP7LuSCocrexa5AXhjjawNHrIlw==", + "optional": true + }, + "@apollographql/graphql-playground-html": { + "version": "1.6.29", + "resolved": "https://registry.npmjs.org/@apollographql/graphql-playground-html/-/graphql-playground-html-1.6.29.tgz", + "integrity": "sha512-xCcXpoz52rI4ksJSdOCxeOCn2DLocxwHf9dVT/Q90Pte1LX+LY+91SFtJF3KXVHH8kEin+g1KKCQPKBjZJfWNA==", + "optional": true, + "requires": { + "xss": "^1.0.8" + } + }, + "@babel/runtime": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.6.tgz", + "integrity": "sha512-wDb5pWm4WDdF6LFUde3Jl8WzPA+3ZbxYqkC6xAXuD3irdEHN1k0NfTRrJD8ZD378SJ61miMLCqIOXYhd8x+AJQ==", + "requires": { + "regenerator-runtime": "^0.13.11" + } + }, + "@ensdomains/address-encoder": { + "version": "0.1.9", + "resolved": "https://registry.npmjs.org/@ensdomains/address-encoder/-/address-encoder-0.1.9.tgz", + "integrity": "sha512-E2d2gP4uxJQnDu2Kfg1tHNspefzbLT8Tyjrm5sEuim32UkU2sm5xL4VXtgc2X33fmPEw9+jUMpGs4veMbf+PYg==", + "requires": { + "bech32": "^1.1.3", + "blakejs": "^1.1.0", + "bn.js": "^4.11.8", + "bs58": "^4.0.1", + "crypto-addr-codec": "^0.1.7", + "nano-base32": "^1.0.1", + "ripemd160": "^2.0.2" + }, + "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==" + } + } + }, + "@ensdomains/ens": { + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/@ensdomains/ens/-/ens-0.4.5.tgz", + "integrity": "sha512-JSvpj1iNMFjK6K+uVl4unqMoa9rf5jopb8cya5UGBWz23Nw8hSNT7efgUx4BTlAPAgpNlEioUfeTyQ6J9ZvTVw==", + "requires": { + "bluebird": "^3.5.2", + "eth-ens-namehash": "^2.0.8", + "solc": "^0.4.20", + "testrpc": "0.0.1", + "web3-utils": "^1.0.0-beta.31" + } + }, + "@ensdomains/ensjs": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@ensdomains/ensjs/-/ensjs-2.1.0.tgz", + "integrity": "sha512-GRbGPT8Z/OJMDuxs75U/jUNEC0tbL0aj7/L/QQznGYKm/tiasp+ndLOaoULy9kKJFC0TBByqfFliEHDgoLhyog==", + "requires": { + "@babel/runtime": "^7.4.4", + "@ensdomains/address-encoder": "^0.1.7", + "@ensdomains/ens": "0.4.5", + "@ensdomains/resolver": "0.2.4", + "content-hash": "^2.5.2", + "eth-ens-namehash": "^2.0.8", + "ethers": "^5.0.13", + "js-sha3": "^0.8.0" + }, + "dependencies": { + "ethers": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz", + "integrity": "sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==", + "requires": { + "@ethersproject/abi": "5.7.0", + "@ethersproject/abstract-provider": "5.7.0", + "@ethersproject/abstract-signer": "5.7.0", + "@ethersproject/address": "5.7.0", + "@ethersproject/base64": "5.7.0", + "@ethersproject/basex": "5.7.0", + "@ethersproject/bignumber": "5.7.0", + "@ethersproject/bytes": "5.7.0", + "@ethersproject/constants": "5.7.0", + "@ethersproject/contracts": "5.7.0", + "@ethersproject/hash": "5.7.0", + "@ethersproject/hdnode": "5.7.0", + "@ethersproject/json-wallets": "5.7.0", + "@ethersproject/keccak256": "5.7.0", + "@ethersproject/logger": "5.7.0", + "@ethersproject/networks": "5.7.1", + "@ethersproject/pbkdf2": "5.7.0", + "@ethersproject/properties": "5.7.0", + "@ethersproject/providers": "5.7.2", + "@ethersproject/random": "5.7.0", + "@ethersproject/rlp": "5.7.0", + "@ethersproject/sha2": "5.7.0", + "@ethersproject/signing-key": "5.7.0", + "@ethersproject/solidity": "5.7.0", + "@ethersproject/strings": "5.7.0", + "@ethersproject/transactions": "5.7.0", + "@ethersproject/units": "5.7.0", + "@ethersproject/wallet": "5.7.0", + "@ethersproject/web": "5.7.1", + "@ethersproject/wordlists": "5.7.0" + } + } + } + }, + "@ensdomains/resolver": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/@ensdomains/resolver/-/resolver-0.2.4.tgz", + "integrity": "sha512-bvaTH34PMCbv6anRa9I/0zjLJgY4EuznbEMgbV77JBCQ9KNC46rzi0avuxpOfu+xDjPEtSFGqVEOr5GlUSGudA==" + }, + "@ethereumjs/common": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.5.0.tgz", + "integrity": "sha512-DEHjW6e38o+JmB/NO3GZBpW4lpaiBpkFgXF6jLcJ6gETBYpEyaA5nTimsWBUJR3Vmtm/didUEbNjajskugZORg==", + "requires": { + "crc-32": "^1.2.0", + "ethereumjs-util": "^7.1.1" + } + }, + "@ethereumjs/tx": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.3.2.tgz", + "integrity": "sha512-6AaJhwg4ucmwTvw/1qLaZUX5miWrwZ4nLOUsKyb/HtzS3BMw/CasKhdi1ims9mBKeK9sOJCH4qGKOBGyJCeeog==", + "requires": { + "@ethereumjs/common": "^2.5.0", + "ethereumjs-util": "^7.1.2" + } + }, + "@ethersproject/abi": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.7.0.tgz", + "integrity": "sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA==", + "requires": { + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "@ethersproject/abstract-provider": { + "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/basex": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.7.0.tgz", + "integrity": "sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw==", + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/properties": "^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/contracts": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.7.0.tgz", + "integrity": "sha512-5GJbzEU3X+d33CdfPhcyS+z8MzsTrBGk/sc+G+59+tPa9yFkl6HQ9D6L0QMgNTA9q8dT0XKxxkyp883XsQvbbg==", + "requires": { + "@ethersproject/abi": "^5.7.0", + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/transactions": "^5.7.0" + } + }, + "@ethersproject/hash": { + "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/hdnode": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.7.0.tgz", + "integrity": "sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg==", + "requires": { + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/basex": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/pbkdf2": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/wordlists": "^5.7.0" + } + }, + "@ethersproject/json-wallets": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.7.0.tgz", + "integrity": "sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g==", + "requires": { + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hdnode": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/pbkdf2": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "aes-js": "3.0.0", + "scrypt-js": "3.0.1" + } + }, + "@ethersproject/keccak256": { + "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/pbkdf2": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.7.0.tgz", + "integrity": "sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw==", + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/sha2": "^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/providers": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.7.2.tgz", + "integrity": "sha512-g34EWZ1WWAVgr4aptGlVBF8mhl3VWjv+8hoAnzStu8Ah22VHBsuGzP17eb6xDVRzw895G4W7vvx60lFFur/1Rg==", + "requires": { + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/base64": "^5.7.0", + "@ethersproject/basex": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/networks": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/rlp": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/web": "^5.7.0", + "bech32": "1.1.4", + "ws": "7.4.6" + }, + "dependencies": { + "ws": { + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", + "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==" + } + } + }, + "@ethersproject/random": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.7.0.tgz", + "integrity": "sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ==", + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@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/sha2": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.7.0.tgz", + "integrity": "sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw==", + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "hash.js": "1.1.7" + } + }, + "@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/solidity": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.7.0.tgz", + "integrity": "sha512-HmabMd2Dt/raavyaGukF4XxizWKhKQ24DoLtdNbBmNKUOPqwjsKQSdV9GQtj9CBEea9DlzETlVER1gYeXXBGaA==", + "requires": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "@ethersproject/strings": { + "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/units": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/units/-/units-5.7.0.tgz", + "integrity": "sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg==", + "requires": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "@ethersproject/wallet": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.7.0.tgz", + "integrity": "sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA==", + "requires": { + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/hdnode": "^5.7.0", + "@ethersproject/json-wallets": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/wordlists": "^5.7.0" + } + }, + "@ethersproject/web": { + "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" + } + }, + "@ethersproject/wordlists": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.7.0.tgz", + "integrity": "sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA==", + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "@graphql-tools/batch-execute": { + "version": "8.5.1", + "resolved": "https://registry.npmjs.org/@graphql-tools/batch-execute/-/batch-execute-8.5.1.tgz", + "integrity": "sha512-hRVDduX0UDEneVyEWtc2nu5H2PxpfSfM/riUlgZvo/a/nG475uyehxR5cFGvTEPEQUKY3vGIlqvtRigzqTfCew==", + "optional": true, + "requires": { + "@graphql-tools/utils": "8.9.0", + "dataloader": "2.1.0", + "tslib": "^2.4.0", + "value-or-promise": "1.0.11" + } + }, + "@graphql-tools/delegate": { + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/@graphql-tools/delegate/-/delegate-8.8.1.tgz", + "integrity": "sha512-NDcg3GEQmdEHlnF7QS8b4lM1PSF+DKeFcIlLEfZFBvVq84791UtJcDj8734sIHLukmyuAxXMfA1qLd2l4lZqzA==", + "optional": true, + "requires": { + "@graphql-tools/batch-execute": "8.5.1", + "@graphql-tools/schema": "8.5.1", + "@graphql-tools/utils": "8.9.0", + "dataloader": "2.1.0", + "tslib": "~2.4.0", + "value-or-promise": "1.0.11" + } + }, + "@graphql-tools/merge": { + "version": "8.3.1", + "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.3.1.tgz", + "integrity": "sha512-BMm99mqdNZbEYeTPK3it9r9S6rsZsQKtlqJsSBknAclXq2pGEfOxjcIZi+kBSkHZKPKCRrYDd5vY0+rUmIHVLg==", + "optional": true, + "requires": { + "@graphql-tools/utils": "8.9.0", + "tslib": "^2.4.0" + } + }, + "@graphql-tools/mock": { + "version": "8.7.20", + "resolved": "https://registry.npmjs.org/@graphql-tools/mock/-/mock-8.7.20.tgz", + "integrity": "sha512-ljcHSJWjC/ZyzpXd5cfNhPI7YljRVvabKHPzKjEs5ElxWu2cdlLGvyNYepApXDsM/OJG/2xuhGM+9GWu5gEAPQ==", + "optional": true, + "requires": { + "@graphql-tools/schema": "^9.0.18", + "@graphql-tools/utils": "^9.2.1", + "fast-json-stable-stringify": "^2.1.0", + "tslib": "^2.4.0" + }, + "dependencies": { + "@graphql-tools/merge": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.4.2.tgz", + "integrity": "sha512-XbrHAaj8yDuINph+sAfuq3QCZ/tKblrTLOpirK0+CAgNlZUCHs0Fa+xtMUURgwCVThLle1AF7svJCxFizygLsw==", + "optional": true, + "requires": { + "@graphql-tools/utils": "^9.2.1", + "tslib": "^2.4.0" + } + }, + "@graphql-tools/schema": { + "version": "9.0.19", + "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-9.0.19.tgz", + "integrity": "sha512-oBRPoNBtCkk0zbUsyP4GaIzCt8C0aCI4ycIRUL67KK5pOHljKLBBtGT+Jr6hkzA74C8Gco8bpZPe7aWFjiaK2w==", + "optional": true, + "requires": { + "@graphql-tools/merge": "^8.4.1", + "@graphql-tools/utils": "^9.2.1", + "tslib": "^2.4.0", + "value-or-promise": "^1.0.12" + } + }, + "@graphql-tools/utils": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.2.1.tgz", + "integrity": "sha512-WUw506Ql6xzmOORlriNrD6Ugx+HjVgYxt9KCXD9mHAak+eaXSwuGGPyE60hy9xaDEoXKBsG7SkG69ybitaVl6A==", + "optional": true, + "requires": { + "@graphql-typed-document-node/core": "^3.1.1", + "tslib": "^2.4.0" + } + }, + "value-or-promise": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.12.tgz", + "integrity": "sha512-Z6Uz+TYwEqE7ZN50gwn+1LCVo9ZVrpxRPOhOLnncYkY1ZzOYtrX8Fwf/rFktZ8R5mJms6EZf5TqNOMeZmnPq9Q==", + "optional": true + } + } + }, + "@graphql-tools/schema": { + "version": "8.5.1", + "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-8.5.1.tgz", + "integrity": "sha512-0Esilsh0P/qYcB5DKQpiKeQs/jevzIadNTaT0jeWklPMwNbT7yMX4EqZany7mbeRRlSRwMzNzL5olyFdffHBZg==", + "optional": true, + "requires": { + "@graphql-tools/merge": "8.3.1", + "@graphql-tools/utils": "8.9.0", + "tslib": "^2.4.0", + "value-or-promise": "1.0.11" + } + }, + "@graphql-tools/utils": { + "version": "8.9.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.9.0.tgz", + "integrity": "sha512-pjJIWH0XOVnYGXCqej8g/u/tsfV4LvLlj0eATKQu5zwnxd/TiTHq7Cg313qUPTFFHZ3PP5wJ15chYVtLDwaymg==", + "optional": true, + "requires": { + "tslib": "^2.4.0" + } + }, + "@graphql-typed-document-node/core": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.2.0.tgz", + "integrity": "sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==", + "optional": true + }, + "@josephg/resolvable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@josephg/resolvable/-/resolvable-1.0.1.tgz", + "integrity": "sha512-CtzORUwWTTOTqfVtHaKRJ0I1kNQd1bpn3sUh8I3nJDVY+5/M/Oe1DnEWzPQvqq/xPIIkzzzIP7mfCoAjFRvDhg==", + "optional": true + }, + "@openzeppelin/contracts": { + "version": "4.9.6", + "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-4.9.6.tgz", + "integrity": "sha512-xSmezSupL+y9VkHZJGDoCBpmnB2ogM13ccaYDWqJTfS3dbuHkgjuwDFUmaFauBCboQMGB/S5UqUl2y54X99BmA==" + }, + "@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==", + "optional": true + }, + "@protobufjs/base64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==", + "optional": true + }, + "@protobufjs/codegen": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", + "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==", + "optional": true + }, + "@protobufjs/eventemitter": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", + "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==", + "optional": true + }, + "@protobufjs/fetch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", + "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", + "optional": true, + "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==", + "optional": true + }, + "@protobufjs/inquire": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", + "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==", + "optional": true + }, + "@protobufjs/path": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", + "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==", + "optional": true + }, + "@protobufjs/pool": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", + "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==", + "optional": true + }, + "@protobufjs/utf8": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", + "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==", + "optional": true + }, + "@redux-saga/core": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@redux-saga/core/-/core-1.2.3.tgz", + "integrity": "sha512-U1JO6ncFBAklFTwoQ3mjAeQZ6QGutsJzwNBjgVLSWDpZTRhobUzuVDS1qH3SKGJD8fvqoaYOjp6XJ3gCmeZWgA==", + "requires": { + "@babel/runtime": "^7.6.3", + "@redux-saga/deferred": "^1.2.1", + "@redux-saga/delay-p": "^1.2.1", + "@redux-saga/is": "^1.1.3", + "@redux-saga/symbols": "^1.1.3", + "@redux-saga/types": "^1.2.1", + "redux": "^4.0.4", + "typescript-tuple": "^2.2.1" + }, + "dependencies": { + "redux": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/redux/-/redux-4.2.1.tgz", + "integrity": "sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w==", + "requires": { + "@babel/runtime": "^7.9.2" + } + } + } + }, + "@redux-saga/deferred": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@redux-saga/deferred/-/deferred-1.2.1.tgz", + "integrity": "sha512-cmin3IuuzMdfQjA0lG4B+jX+9HdTgHZZ+6u3jRAOwGUxy77GSlTi4Qp2d6PM1PUoTmQUR5aijlA39scWWPF31g==" + }, + "@redux-saga/delay-p": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@redux-saga/delay-p/-/delay-p-1.2.1.tgz", + "integrity": "sha512-MdiDxZdvb1m+Y0s4/hgdcAXntpUytr9g0hpcOO1XFVyyzkrDu3SKPgBFOtHn7lhu7n24ZKIAT1qtKyQjHqRd+w==", + "requires": { + "@redux-saga/symbols": "^1.1.3" + } + }, + "@redux-saga/is": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@redux-saga/is/-/is-1.1.3.tgz", + "integrity": "sha512-naXrkETG1jLRfVfhOx/ZdLj0EyAzHYbgJWkXbB3qFliPcHKiWbv/ULQryOAEKyjrhiclmr6AMdgsXFyx7/yE6Q==", + "requires": { + "@redux-saga/symbols": "^1.1.3", + "@redux-saga/types": "^1.2.1" + } + }, + "@redux-saga/symbols": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@redux-saga/symbols/-/symbols-1.1.3.tgz", + "integrity": "sha512-hCx6ZvU4QAEUojETnX8EVg4ubNLBFl1Lps4j2tX7o45x/2qg37m3c6v+kSp8xjDJY+2tJw4QB3j8o8dsl1FDXg==" + }, + "@redux-saga/types": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@redux-saga/types/-/types-1.2.1.tgz", + "integrity": "sha512-1dgmkh+3so0+LlBWRhGA33ua4MYr7tUOj+a9Si28vUi0IUFNbff1T3sgpeDJI/LaC75bBYnQ0A3wXjn0OrRNBA==" + }, + "@sindresorhus/is": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", + "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==" + }, + "@szmarczak/http-timer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", + "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", + "requires": { + "defer-to-connect": "^2.0.1" + } + }, + "@truffle/abi-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@truffle/abi-utils/-/abi-utils-1.0.1.tgz", + "integrity": "sha512-ZQUY3XUxEPdqxNaoXsOqF0spTtb6f5RNlnN4MUrVsJ64sOh0FJsY7rxZiUI3khfePmNh4i2qcJrQlKT36YcWUA==", + "requires": { + "change-case": "3.0.2", + "fast-check": "3.1.1", + "web3-utils": "1.10.0" + } + }, + "@truffle/code-utils": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@truffle/code-utils/-/code-utils-3.0.3.tgz", + "integrity": "sha512-VMQMXvt/nXxWvHo5K1t697se1NU7VNh3zmiFw41qaSE1DjFZ2FMsZuW1ZoLhO4NKc14uB8k8pX3NN7XoF3uP4w==", + "requires": { + "cbor": "^5.2.0" + } + }, + "@truffle/codec": { + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/@truffle/codec/-/codec-0.17.0.tgz", + "integrity": "sha512-0Z7DQNCnvW++JuvNj35v/CuJoaFSAp7/+lXWwe+Zoe++E27V+hzRI88ZYxRJa0/q1HE81epd1r0ipqc7WBotig==", + "requires": { + "@truffle/abi-utils": "^1.0.1", + "@truffle/compile-common": "^0.9.6", + "big.js": "^6.0.3", + "bn.js": "^5.1.3", + "cbor": "^5.2.0", + "debug": "^4.3.1", + "lodash": "^4.17.21", + "semver": "7.5.2", + "utf8": "^3.0.0", + "web3-utils": "1.10.0" + }, + "dependencies": { + "semver": { + "version": "7.5.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.2.tgz", + "integrity": "sha512-SoftuTROv/cRjCze/scjGyiDtcUyxw1rgYQSZY7XTmtR5hX+dm76iDbTH8TkLPHCQmlbQVSSbNZCPM2hb0knnQ==", + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "@truffle/compile-common": { + "version": "0.9.6", + "resolved": "https://registry.npmjs.org/@truffle/compile-common/-/compile-common-0.9.6.tgz", + "integrity": "sha512-TCcmr1E0GqMZJ2tOaCRNEllxTBJ/g7TuD6jDJpw5Gt9Bw0YO3Cmp6yPQRynRSO4xMJbHUgiEsSfRgIhswut5UA==", + "requires": { + "@truffle/error": "^0.2.1", + "colors": "1.4.0" + } + }, + "@truffle/config": { + "version": "1.3.58", + "resolved": "https://registry.npmjs.org/@truffle/config/-/config-1.3.58.tgz", + "integrity": "sha512-M6e7dAx6QMMskhwpqpOE4dAj72HapcMPtw/7c6bssCZd/E1quyAs/CpiYGDIxp2EuZHxW/9X16VzIac8sIOW7w==", + "optional": true, + "requires": { + "@truffle/error": "^0.2.1", + "@truffle/events": "^0.1.24", + "@truffle/provider": "^0.3.10", + "conf": "^10.1.2", + "debug": "^4.3.1", + "find-up": "^2.1.0", + "lodash": "^4.17.21", + "original-require": "^1.0.1" + } + }, + "@truffle/dashboard-message-bus-client": { + "version": "0.1.11", + "resolved": "https://registry.npmjs.org/@truffle/dashboard-message-bus-client/-/dashboard-message-bus-client-0.1.11.tgz", + "integrity": "sha512-ABoKtaogh5KjOw0UM5/6wYuhg4T5cMPVSSNF1rv4j3s2XGzExx3vUObvXqNO6I8gZ8xuvzClw4RmcEk8JkM8yA==", + "optional": true, + "requires": { + "@truffle/dashboard-message-bus-common": "^0.1.6", + "@truffle/promise-tracker": "^0.1.6", + "axios": "1.2.4", + "debug": "^4.3.1", + "delay": "^5.0.0", + "isomorphic-ws": "^4.0.1", + "node-abort-controller": "^3.0.1", + "tiny-typed-emitter": "^2.1.0", + "ws": "^7.2.0" + } + }, + "@truffle/dashboard-message-bus-common": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/@truffle/dashboard-message-bus-common/-/dashboard-message-bus-common-0.1.6.tgz", + "integrity": "sha512-93HNXILKeKgmW1YaWPdsQ55MJ0MaLzOA8kRXPnM5jF2H3KRlRxOeEg77R4YWtGH+cVZP4VYGXdpvUap/lOAnvw==", + "optional": true + }, + "@truffle/db": { + "version": "2.0.31", + "resolved": "https://registry.npmjs.org/@truffle/db/-/db-2.0.31.tgz", + "integrity": "sha512-GqY27owdCRXMMy22PvMMXdeQhvZMlui+hoPsbpTCMwIndyIJkyRYEtbAh5SiWX/vb8K73QhjeUmGACSmur7QiQ==", + "optional": true, + "requires": { + "@graphql-tools/delegate": "^8.4.3", + "@graphql-tools/schema": "^8.3.1", + "@truffle/abi-utils": "^1.0.1", + "@truffle/code-utils": "^3.0.3", + "@truffle/config": "^1.3.58", + "abstract-leveldown": "^7.2.0", + "apollo-server": "^3.11.0", + "debug": "^4.3.1", + "fs-extra": "^9.1.0", + "graphql": "^15.3.0", + "graphql-tag": "^2.12.6", + "json-stable-stringify": "^1.0.1", + "pascal-case": "^2.0.1", + "pluralize": "^8.0.0", + "pouchdb": "7.3.0", + "pouchdb-adapter-memory": "^7.1.1", + "pouchdb-debug": "^7.1.1", + "pouchdb-find": "^7.0.0", + "web3-utils": "1.10.0" + } + }, + "@truffle/db-loader": { + "version": "0.2.31", + "resolved": "https://registry.npmjs.org/@truffle/db-loader/-/db-loader-0.2.31.tgz", + "integrity": "sha512-svvtZIvObQIk/f6uDX4qJ2ZUHwiLSAY8r7B0u2AIaRhcPEE1Mm8oEzhTPBl94YeOKi5wQm8VLiNaJle8aO6oGA==", + "requires": { + "@truffle/db": "^2.0.31" + } + }, + "@truffle/debugger": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/@truffle/debugger/-/debugger-12.1.0.tgz", + "integrity": "sha512-s2SMamE4/TgpHVdbH1bEkCmeh2p/lipA5FjEB54AkfZ6rYUCQBjcS0patknb+qzBPDpQDGgH3xnGhMt7Nqbk+g==", + "requires": { + "@ensdomains/ensjs": "^2.1.0", + "@truffle/abi-utils": "^1.0.1", + "@truffle/codec": "^0.17.0", + "@truffle/source-map-utils": "^1.3.116", + "bn.js": "^5.1.3", + "debug": "^4.3.1", + "json-pointer": "^0.6.1", + "json-stable-stringify": "^1.0.1", + "lodash": "^4.17.21", + "redux": "^3.7.2", + "redux-saga": "1.0.0", + "reselect-tree": "^1.3.7", + "semver": "7.5.2", + "web3": "1.10.0", + "web3-eth-abi": "1.10.0" + }, + "dependencies": { + "semver": { + "version": "7.5.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.2.tgz", + "integrity": "sha512-SoftuTROv/cRjCze/scjGyiDtcUyxw1rgYQSZY7XTmtR5hX+dm76iDbTH8TkLPHCQmlbQVSSbNZCPM2hb0knnQ==", + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "@truffle/error": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@truffle/error/-/error-0.2.1.tgz", + "integrity": "sha512-5Qy+z9dg9hP37WNdLnXH4b9MzemWrjTufRq7/DTKqimjyxCP/1zlL8gQEMdiSx1BBtAZz0xypkID/jb7AF/Osg==" + }, + "@truffle/events": { + "version": "0.1.24", + "resolved": "https://registry.npmjs.org/@truffle/events/-/events-0.1.24.tgz", + "integrity": "sha512-rS+jKDjmdM0g+14H/H8MzhohaTKsSS6plNNzO95MIcUs0Ytinu1DXfSkUovDpgv5h2NcRoU0BMTKCR21Y3JiNw==", + "optional": true, + "requires": { + "@truffle/dashboard-message-bus-client": "^0.1.11", + "@truffle/spinners": "^0.2.4", + "debug": "^4.3.1", + "emittery": "^0.4.1", + "web3-utils": "1.10.0" + } + }, + "@truffle/interface-adapter": { + "version": "0.5.34", + "resolved": "https://registry.npmjs.org/@truffle/interface-adapter/-/interface-adapter-0.5.34.tgz", + "integrity": "sha512-gPxabfMi2TueE4VxnNuyeudOfvGJQ1ofVC02PFw14cnRQhzH327JikjjQbZ1bT6S7kWl9H6P3hQPFeYFMHdm1g==", + "optional": true, + "requires": { + "bn.js": "^5.1.3", + "ethers": "^4.0.32", + "web3": "1.10.0" + } + }, + "@truffle/promise-tracker": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/@truffle/promise-tracker/-/promise-tracker-0.1.6.tgz", + "integrity": "sha512-oUZ4Mc6Yt/qTvFZ/yD4nnUIN8pXhrBN0h4/SZ4e8W1TcHNvQkV6gUkkYkn8fZRvFwTMYjvWot+eAHHNRsSl/eA==", + "optional": true + }, + "@truffle/provider": { + "version": "0.3.10", + "resolved": "https://registry.npmjs.org/@truffle/provider/-/provider-0.3.10.tgz", + "integrity": "sha512-oT7WKlxj1BrZBnCh9Dd4ex623yPG5ASAW5wK9kscS81MSkPYpSjld2B3tEZH9F6Lyz6lluQO1TcssuzZUek5Qg==", + "optional": true, + "requires": { + "@truffle/error": "^0.2.1", + "@truffle/interface-adapter": "^0.5.34", + "debug": "^4.3.1", + "web3": "1.10.0" + } + }, + "@truffle/source-map-utils": { + "version": "1.3.116", + "resolved": "https://registry.npmjs.org/@truffle/source-map-utils/-/source-map-utils-1.3.116.tgz", + "integrity": "sha512-53+DWPKbwPZ43p1o2Qy8C7jfcItHmRB0bT30jWkRK9ciOoM4EwbLOBk12oVzD8hRF9amQ0HElMQuKeoka+n+PA==", + "requires": { + "@truffle/code-utils": "^3.0.3", + "@truffle/codec": "^0.17.0", + "debug": "^4.3.1", + "json-pointer": "^0.6.1", + "node-interval-tree": "^1.3.3", + "web3-utils": "1.10.0" + } + }, + "@truffle/spinners": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/@truffle/spinners/-/spinners-0.2.4.tgz", + "integrity": "sha512-8GsIX9GzO6wBDGoNF4yAmQEe95TiIuAJq9p+2szCKGArYbAD3kbn+mG3TMS3Gr/zAS5p7fTJxnCm60E2HghsUQ==", + "optional": true, + "requires": { + "@trufflesuite/spinnies": "^0.1.1" + } + }, + "@trufflesuite/spinnies": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@trufflesuite/spinnies/-/spinnies-0.1.1.tgz", + "integrity": "sha512-jltEtmFJj6xmQqr85gP8OqBHCEiId+zw+uAsb3DyLLRD17O6sySW6Afa2Z/jpzSafj+32ssDfLJ+c0of1NLqcA==", + "optional": true, + "requires": { + "chalk": "^4.1.2", + "cli-cursor": "^3.1.0", + "strip-ansi": "^6.0.0" + } + }, + "@types/accepts": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/accepts/-/accepts-1.3.5.tgz", + "integrity": "sha512-jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ==", + "optional": true, + "requires": { + "@types/node": "*" + } + }, + "@types/bn.js": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.1.tgz", + "integrity": "sha512-qNrYbZqMx0uJAfKnKclPh+dTwK33KfLHYqtyODwd5HnXOjnkhc4qgn3BrK6RWyGZm5+sIFE7Q7Vz6QQtJB7w7g==", + "requires": { + "@types/node": "*" + } + }, + "@types/body-parser": { + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", + "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", + "optional": true, + "requires": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "@types/cacheable-request": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz", + "integrity": "sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==", + "requires": { + "@types/http-cache-semantics": "*", + "@types/keyv": "^3.1.4", + "@types/node": "*", + "@types/responselike": "^1.0.0" + } + }, + "@types/connect": { + "version": "3.4.35", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", + "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", + "optional": true, + "requires": { + "@types/node": "*" + } + }, + "@types/cors": { + "version": "2.8.12", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.12.tgz", + "integrity": "sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw==", + "optional": true + }, + "@types/express": { + "version": "4.17.14", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.14.tgz", + "integrity": "sha512-TEbt+vaPFQ+xpxFLFssxUDXj5cWCxZJjIcB7Yg0k0GMHGtgtQgpvx/MUQUeAkNbA9AAGrwkAsoeItdTgS7FMyg==", + "optional": true, + "requires": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.18", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "@types/express-serve-static-core": { + "version": "4.17.35", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.35.tgz", + "integrity": "sha512-wALWQwrgiB2AWTT91CB62b6Yt0sNHpznUXeZEcnPU3DRdlDIz74x8Qg1UUYKSVFi+va5vKOLYRBI1bRKiLLKIg==", + "optional": true, + "requires": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, + "@types/http-cache-semantics": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", + "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==" + }, + "@types/http-errors": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.1.tgz", + "integrity": "sha512-/K3ds8TRAfBvi5vfjuz8y6+GiAYBZ0x4tXv1Av6CWBWn0IlADc+ZX9pMq7oU0fNQPnBwIZl3rmeLp6SBApbxSQ==", + "optional": true + }, + "@types/keyv": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz", + "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==", + "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==", + "optional": true + }, + "@types/mime": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", + "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==", + "optional": true + }, + "@types/node": { + "version": "20.4.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.4.2.tgz", + "integrity": "sha512-Dd0BYtWgnWJKwO1jkmTrzofjK2QXXcai0dmtzvIBhcA+RsG5h8R3xlyta0kGOZRNfL9GuRtb1knmPEhQrePCEw==" + }, + "@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.7", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", + "optional": true + }, + "@types/range-parser": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", + "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==", + "optional": true + }, + "@types/responselike": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz", + "integrity": "sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==", + "requires": { + "@types/node": "*" + } + }, + "@types/secp256k1": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.3.tgz", + "integrity": "sha512-Da66lEIFeIz9ltsdMZcpQvmrmmoqrfju8pm1BH8WbYjZSwUgCwXLb9C+9XYogwBITnbsSaMdVPb2ekf7TV+03w==", + "requires": { + "@types/node": "*" + } + }, + "@types/send": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.1.tgz", + "integrity": "sha512-Cwo8LE/0rnvX7kIIa3QHCkcuF21c05Ayb0ZfxPiv0W8VRiZiNW/WuRupHKpqqGVGf7SUA44QSOUKaEd9lIrd/Q==", + "optional": true, + "requires": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "@types/serve-static": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.2.tgz", + "integrity": "sha512-J2LqtvFYCzaj8pVYKw8klQXrLLk7TBZmQ4ShlcdkELFKGwGMfevMLneMMRkMgZxotOD9wg497LpC7O8PcvAmfw==", + "optional": true, + "requires": { + "@types/http-errors": "*", + "@types/mime": "*", + "@types/node": "*" + } + }, + "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==", + "optional": true, + "requires": { + "event-target-shim": "^5.0.0" + } + }, + "abortcontroller-polyfill": { + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.5.tgz", + "integrity": "sha512-JMJ5soJWP18htbbxJjG7bG6yuI6pRhgJ0scHHTfkUjf6wjP912xZWvM+A4sJK3gqd9E8fcPbDnOefbA9Th/FIQ==" + }, + "abstract-leveldown": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-7.2.0.tgz", + "integrity": "sha512-DnhQwcFEaYsvYDnACLZhMmCWd3rkOeEvglpa4q5i/5Jlm3UIsWaxVzuXvDLFCSCWRO3yy2/+V/G7FusFgejnfQ==", + "optional": true, + "requires": { + "buffer": "^6.0.3", + "catering": "^2.0.0", + "is-buffer": "^2.0.5", + "level-concat-iterator": "^3.0.0", + "level-supports": "^2.0.1", + "queue-microtask": "^1.2.3" + }, + "dependencies": { + "buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "optional": true, + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + } + } + }, + "accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "requires": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + } + }, + "aes-js": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz", + "integrity": "sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw==" + }, + "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" + } + }, + "ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "optional": true, + "requires": { + "ajv": "^8.0.0" + }, + "dependencies": { + "ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "optional": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "optional": true + } + } + }, + "ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==" + }, + "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" + } + }, + "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" + } + }, + "apollo-datasource": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/apollo-datasource/-/apollo-datasource-3.3.2.tgz", + "integrity": "sha512-L5TiS8E2Hn/Yz7SSnWIVbZw0ZfEIXZCa5VUiVxD9P53JvSrf4aStvsFDlGWPvpIdCR+aly2CfoB79B9/JjKFqg==", + "optional": true, + "requires": { + "@apollo/utils.keyvaluecache": "^1.0.1", + "apollo-server-env": "^4.2.1" + } + }, + "apollo-reporting-protobuf": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/apollo-reporting-protobuf/-/apollo-reporting-protobuf-3.4.0.tgz", + "integrity": "sha512-h0u3EbC/9RpihWOmcSsvTW2O6RXVaD/mPEjfrPkxRPTEPWqncsgOoRJw+wih4OqfH3PvTJvoEIf4LwKrUaqWog==", + "optional": true, + "requires": { + "@apollo/protobufjs": "1.2.6" + }, + "dependencies": { + "@apollo/protobufjs": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@apollo/protobufjs/-/protobufjs-1.2.6.tgz", + "integrity": "sha512-Wqo1oSHNUj/jxmsVp4iR3I480p6qdqHikn38lKrFhfzcDJ7lwd7Ck7cHRl4JE81tWNArl77xhnG/OkZhxKBYOw==", + "optional": true, + "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.0", + "@types/node": "^10.1.0", + "long": "^4.0.0" + } + }, + "@types/node": { + "version": "10.17.60", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz", + "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==", + "optional": true + } + } + }, + "apollo-server": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/apollo-server/-/apollo-server-3.12.0.tgz", + "integrity": "sha512-wZHLgBoIdGxr/YpPTG5RwNnS+B2y70T/nCegCnU6Yl+H3PXB92OIguLMhdJIZVjukIOhiQT12dNIehqLQ+1hMQ==", + "optional": true, + "requires": { + "@types/express": "4.17.14", + "apollo-server-core": "^3.12.0", + "apollo-server-express": "^3.12.0", + "express": "^4.17.1" + } + }, + "apollo-server-core": { + "version": "3.12.1", + "resolved": "https://registry.npmjs.org/apollo-server-core/-/apollo-server-core-3.12.1.tgz", + "integrity": "sha512-9SF5WAkkV0FZQ2HVUWI9Jada1U0jg7e8NCN9EklbtvaCeUlOLyXyM+KCWuZ7+dqHxjshbtcwylPHutt3uzoNkw==", + "optional": true, + "requires": { + "@apollo/utils.keyvaluecache": "^1.0.1", + "@apollo/utils.logger": "^1.0.0", + "@apollo/utils.usagereporting": "^1.0.0", + "@apollographql/apollo-tools": "^0.5.3", + "@apollographql/graphql-playground-html": "1.6.29", + "@graphql-tools/mock": "^8.1.2", + "@graphql-tools/schema": "^8.0.0", + "@josephg/resolvable": "^1.0.0", + "apollo-datasource": "^3.3.2", + "apollo-reporting-protobuf": "^3.4.0", + "apollo-server-env": "^4.2.1", + "apollo-server-errors": "^3.3.1", + "apollo-server-plugin-base": "^3.7.2", + "apollo-server-types": "^3.8.0", + "async-retry": "^1.2.1", + "fast-json-stable-stringify": "^2.1.0", + "graphql-tag": "^2.11.0", + "loglevel": "^1.6.8", + "lru-cache": "^6.0.0", + "node-abort-controller": "^3.0.1", + "sha.js": "^2.4.11", + "uuid": "^9.0.0", + "whatwg-mimetype": "^3.0.0" + }, + "dependencies": { + "uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "optional": true + } + } + }, + "apollo-server-env": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/apollo-server-env/-/apollo-server-env-4.2.1.tgz", + "integrity": "sha512-vm/7c7ld+zFMxibzqZ7SSa5tBENc4B0uye9LTfjJwGoQFY5xsUPH5FpO5j0bMUDZ8YYNbrF9SNtzc5Cngcr90g==", + "optional": true, + "requires": { + "node-fetch": "^2.6.7" + } + }, + "apollo-server-errors": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/apollo-server-errors/-/apollo-server-errors-3.3.1.tgz", + "integrity": "sha512-xnZJ5QWs6FixHICXHxUfm+ZWqqxrNuPlQ+kj5m6RtEgIpekOPssH/SD9gf2B4HuWV0QozorrygwZnux8POvyPA==", + "optional": true + }, + "apollo-server-express": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/apollo-server-express/-/apollo-server-express-3.12.0.tgz", + "integrity": "sha512-m8FaGPUfDOEGSm7QRWRmUUGjG/vqvpQoorkId9/FXkC57fz/A59kEdrzkMt9538Xgsa5AV+X4MEWLJhTvlW3LQ==", + "optional": true, + "requires": { + "@types/accepts": "^1.3.5", + "@types/body-parser": "1.19.2", + "@types/cors": "2.8.12", + "@types/express": "4.17.14", + "@types/express-serve-static-core": "4.17.31", + "accepts": "^1.3.5", + "apollo-server-core": "^3.12.0", + "apollo-server-types": "^3.8.0", + "body-parser": "^1.19.0", + "cors": "^2.8.5", + "parseurl": "^1.3.3" + }, + "dependencies": { + "@types/express-serve-static-core": { + "version": "4.17.31", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.31.tgz", + "integrity": "sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q==", + "optional": true, + "requires": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*" + } + } + } + }, + "apollo-server-plugin-base": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/apollo-server-plugin-base/-/apollo-server-plugin-base-3.7.2.tgz", + "integrity": "sha512-wE8dwGDvBOGehSsPTRZ8P/33Jan6/PmL0y0aN/1Z5a5GcbFhDaaJCjK5cav6npbbGL2DPKK0r6MPXi3k3N45aw==", + "optional": true, + "requires": { + "apollo-server-types": "^3.8.0" + } + }, + "apollo-server-types": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/apollo-server-types/-/apollo-server-types-3.8.0.tgz", + "integrity": "sha512-ZI/8rTE4ww8BHktsVpb91Sdq7Cb71rdSkXELSwdSR0eXu600/sY+1UXhTWdiJvk+Eq5ljqoHLwLbY2+Clq2b9A==", + "optional": true, + "requires": { + "@apollo/utils.keyvaluecache": "^1.0.1", + "@apollo/utils.logger": "^1.0.0", + "apollo-reporting-protobuf": "^3.4.0", + "apollo-server-env": "^4.2.1" + } + }, + "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==" + }, + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "argsarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/argsarray/-/argsarray-0.0.1.tgz", + "integrity": "sha512-u96dg2GcAKtpTrBdDoFIM7PjcBA+6rSP0OR94MOReNRyUECL6MtQt5XXmRr4qrftYaef9+l5hcpO5te7sML1Cg==", + "optional": true + }, + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + }, + "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" + } + }, + "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-limiter": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", + "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==" + }, + "async-retry": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/async-retry/-/async-retry-1.3.3.tgz", + "integrity": "sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw==", + "optional": true, + "requires": { + "retry": "0.13.1" + } + }, + "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==", + "optional": true + }, + "atomically": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/atomically/-/atomically-1.7.0.tgz", + "integrity": "sha512-Xcz9l0z7y9yQ9rdDaxlmaI4uJHf/T8g9hOEzJcsEqX2SjCj4J20uK7+ldkDHMbpJDK76wF7xEIgxc/vSlsfw5w==", + "optional": true + }, + "available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==" + }, + "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": "1.2.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.2.4.tgz", + "integrity": "sha512-lIQuCfBJvZB/Bv7+RWUqEJqNShGOVpk9v7P0ZWx5Ip0qY6u7JBAU6dzQPMLasU9vHL2uD8av/1FDJXj7n6c39w==", + "optional": true, + "requires": { + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.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" + } + }, + "bech32": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", + "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==" + }, + "big-integer": { + "version": "1.6.36", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.36.tgz", + "integrity": "sha512-t70bfa7HYEA1D9idDbmuv7YbsbVkQ+Hp+8KFSul4aE5e/i1bjCNIRYJZlA8Q8p0r9T8cF/RVvwUgRA//FydEyg==" + }, + "big.js": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-6.2.1.tgz", + "integrity": "sha512-bCtHMwL9LeDIozFn+oNhhFoq+yQ3BNdnsLSASUxLciOb1vgvpHsIO1dsENiGMgbb4SkP5TrzWzRiLddn8ahVOQ==" + }, + "bignumber.js": { + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.1.tgz", + "integrity": "sha512-pHm4LsMJ6lzgNGVfZHjMoO8sdoRhOzOH4MLmY65Jg70bpxCKu5iOHNJyfF6OyvYw7t8Fpf35RuzUyqnQsj8Vig==" + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==" + }, + "blakejs": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.2.1.tgz", + "integrity": "sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ==" + }, + "bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" + }, + "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==" + }, + "body-parser": { + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", + "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", + "requires": { + "bytes": "3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.2", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + } + } + }, + "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" + } + }, + "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-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==" + }, + "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": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "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==", + "optional": true + }, + "buffer-to-arraybuffer": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz", + "integrity": "sha512-3dthu5CYiVB1DEJp61FtApNnNndTckcqe4pFcLdvHtrpG+kcyekCJKg4MRiDcFW7A6AODnXB9U4dwQiCW5kzJQ==" + }, + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==" + }, + "bufferutil": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.7.tgz", + "integrity": "sha512-kukuqc39WOHtdxtw4UScxF/WVnMFVSQVKhtx3AjZJzhd0RGZZldcrfSEbVsWWe6KNH253574cq5F+wpv0G9pJw==", + "requires": { + "node-gyp-build": "^4.3.0" + } + }, + "bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" + }, + "cacheable-lookup": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-6.1.0.tgz", + "integrity": "sha512-KJ/Dmo1lDDhmW2XDPMo+9oiy/CeqosPguPCrgcVzKyZrL6pM1gU2GmPY/xo6OQPTUaA/c0kwHuywB4E6nmT9ww==" + }, + "cacheable-request": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.4.tgz", + "integrity": "sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==", + "requires": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^4.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^6.0.1", + "responselike": "^2.0.0" + }, + "dependencies": { + "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" + } + }, + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" + } + } + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "camel-case": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", + "integrity": "sha512-+MbKztAYHXPr1jNTSKQF52VpcFjwY5RkR7fxksV8Doo4KAYc5Fl4UJRgthBbTmEx8C54DqahhbLJkDwjI3PI/w==", + "requires": { + "no-case": "^2.2.0", + "upper-case": "^1.1.1" + } + }, + "camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha512-4nhGqUkc4BqbBBB4Q6zLuD7lzzrHYrjKGeYaEji/3tFR5VdJu9v+LilhGIVe8wxEJPPOeWo7eg8dwY13TZ1BNg==" + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==" + }, + "catering": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/catering/-/catering-2.1.1.tgz", + "integrity": "sha512-K7Qy8O9p76sL3/3m7/zLKbRkyOlSZAgzEaLhyj2mXS8PsCud2Eo4hAb8aLtZqHh0QGqLcb9dlJSu6lHRVENm1w==", + "optional": true + }, + "cbor": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/cbor/-/cbor-5.2.0.tgz", + "integrity": "sha512-5IMhi9e1QU76ppa5/ajP1BmMWZ2FHkhAhjeVKQ/EFCgYSEaeVaoGtL7cxJskf9oCCk+XjzaIdc3IuU/dbA/o2A==", + "requires": { + "bignumber.js": "^9.0.1", + "nofilter": "^1.0.4" + } + }, + "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" + } + }, + "change-case": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/change-case/-/change-case-3.0.2.tgz", + "integrity": "sha512-Mww+SLF6MZ0U6kdg11algyKd5BARbyM4TbFBepwowYSR5ClfQGCGtxNXgykpN0uF/bstWeaGDT4JWaDh8zWAHA==", + "requires": { + "camel-case": "^3.0.0", + "constant-case": "^2.0.0", + "dot-case": "^2.1.0", + "header-case": "^1.0.0", + "is-lower-case": "^1.1.0", + "is-upper-case": "^1.1.0", + "lower-case": "^1.1.1", + "lower-case-first": "^1.0.0", + "no-case": "^2.3.2", + "param-case": "^2.1.0", + "pascal-case": "^2.0.0", + "path-case": "^2.1.0", + "sentence-case": "^2.1.0", + "snake-case": "^2.1.0", + "swap-case": "^1.1.0", + "title-case": "^2.1.0", + "upper-case": "^1.1.1", + "upper-case-first": "^1.1.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": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" + }, + "cids": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/cids/-/cids-0.7.5.tgz", + "integrity": "sha512-zT7mPeghoWAu+ppn8+BS1tQ5qGmbMfB4AregnQjA/qHY3GC1m1ptI9GkWNlgeu38r7CuRdXB47uY2XgAYt6QVA==", + "requires": { + "buffer": "^5.5.0", + "class-is": "^1.1.0", + "multibase": "~0.6.0", + "multicodec": "^1.0.0", + "multihashes": "~0.4.15" + }, + "dependencies": { + "multicodec": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-1.0.4.tgz", + "integrity": "sha512-NDd7FeS3QamVtbgfvu5h7fd1IlbaC4EQ0/pgU4zqE2vdHCmBGsUa0TiM8/TdSeG6BMPC92OOCf8F1ocE/Wkrrg==", + "requires": { + "buffer": "^5.6.0", + "varint": "^5.0.0" + } + } + } + }, + "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" + } + }, + "class-is": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/class-is/-/class-is-1.1.0.tgz", + "integrity": "sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw==" + }, + "cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "optional": true, + "requires": { + "restore-cursor": "^3.1.0" + } + }, + "cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha512-0yayqDxWQbqk3ojkYqUKqaAQ6AfNKeKWRNA8kR0WXzAsdHpP4BIaOmMAG87JGuO6qcobyW4GjxHd9PmhEd+T9w==", + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==" + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "requires": { + "ansi-regex": "^2.0.0" + } + } + } + }, + "clone-buffer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", + "integrity": "sha512-KLLTJWrvwIP+OPfMn0x2PheDEP20RPUcGXj/ERegTgdmPEZylALQldygiqrPPu8P45uNuPs7ckmReLY6v/iA5g==", + "optional": true + }, + "clone-response": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", + "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", + "requires": { + "mimic-response": "^1.0.0" + } + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==" + }, + "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.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==" + }, + "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==", + "optional": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "conf": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/conf/-/conf-10.2.0.tgz", + "integrity": "sha512-8fLl9F04EJqjSqH+QjITQfJF8BrOVaYr1jewVgSRAEWePfxT0sku4w2hrGQ60BC/TNLGQ2pgxNlTbWQmMPFvXg==", + "optional": true, + "requires": { + "ajv": "^8.6.3", + "ajv-formats": "^2.1.1", + "atomically": "^1.7.0", + "debounce-fn": "^4.0.0", + "dot-prop": "^6.0.1", + "env-paths": "^2.2.1", + "json-schema-typed": "^7.0.3", + "onetime": "^5.1.2", + "pkg-up": "^3.1.0", + "semver": "^7.3.5" + }, + "dependencies": { + "ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "optional": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "optional": true + } + } + }, + "constant-case": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-2.0.0.tgz", + "integrity": "sha512-eS0N9WwmjTqrOmR3o83F5vW8Z+9R1HnVz3xmzT2PMFug9ly+Au/fxRWlEBSb6LcZwspSsEn9Xs1uw9YgzAg1EQ==", + "requires": { + "snake-case": "^2.1.0", + "upper-case": "^1.1.1" + } + }, + "content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "requires": { + "safe-buffer": "5.2.1" + } + }, + "content-hash": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/content-hash/-/content-hash-2.5.2.tgz", + "integrity": "sha512-FvIQKy0S1JaWV10sMsA7TRx8bpU+pqPkhbsfvOJAdjRXvYxEckAwQWGwtRjiaJfh+E0DvcWUGqcdjwMGFjsSdw==", + "requires": { + "cids": "^0.7.1", + "multicodec": "^0.5.5", + "multihashes": "^0.4.15" + } + }, + "content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==" + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + }, + "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==" + }, + "cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "requires": { + "object-assign": "^4", + "vary": "^1" + } + }, + "crc-32": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", + "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==" + }, + "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" + } + }, + "cross-fetch": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.8.tgz", + "integrity": "sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==", + "requires": { + "node-fetch": "^2.6.12" + } + }, + "crypto-addr-codec": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/crypto-addr-codec/-/crypto-addr-codec-0.1.7.tgz", + "integrity": "sha512-X4hzfBzNhy4mAc3UpiXEC/L0jo5E8wAa9unsnA8nNXYzXjCcGk83hfC5avJWCSGT8V91xMnAS9AKMHmjw5+XCg==", + "requires": { + "base-x": "^3.0.8", + "big-integer": "1.6.36", + "blakejs": "^1.1.0", + "bs58": "^4.0.1", + "ripemd160-min": "0.0.6", + "safe-buffer": "^5.2.0", + "sha3": "^2.1.1" + } + }, + "cssfilter": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/cssfilter/-/cssfilter-0.0.10.tgz", + "integrity": "sha512-FAaLDaplstoRsDR8XGYH51znUN0UY7nMc6Z9/fvE8EXGwvJE9hu7W2vHwx1+bd6gCYnln9nLbzxFTrcO9YQDZw==", + "optional": true + }, + "d": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", + "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", + "requires": { + "es5-ext": "^0.10.50", + "type": "^1.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" + } + }, + "dataloader": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/dataloader/-/dataloader-2.1.0.tgz", + "integrity": "sha512-qTcEYLen3r7ojZNgVUaRggOI+KM7jrKxXeSHhogh/TWxYMeONEMqY+hmkobiYQozsGIyg9OYVzO4ZIfoB4I0pQ==", + "optional": true + }, + "debounce-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/debounce-fn/-/debounce-fn-4.0.0.tgz", + "integrity": "sha512-8pYCQiL9Xdcg0UPSD3d+0KMlOjp+KGU5EPwYddgzQ7DATsg4fuUDjQtsYLmWjnk2obnNHgV3vE2Y4jejSOJVBQ==", + "optional": true, + "requires": { + "mimic-fn": "^3.0.0" + }, + "dependencies": { + "mimic-fn": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-3.1.0.tgz", + "integrity": "sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==", + "optional": true + } + } + }, + "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==" + }, + "decode-uri-component": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", + "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==" + }, + "decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "requires": { + "mimic-response": "^3.1.0" + }, + "dependencies": { + "mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==" + } + } + }, + "defer-to-connect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==" + }, + "deferred-leveldown": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-5.3.0.tgz", + "integrity": "sha512-a59VOT+oDy7vtAbLRCZwWgxu2BaCfd5Hk7wxJd48ei7I+nsg8Orlb9CLG0PMZienk9BSUKgeAqkO2+Lw+1+Ukw==", + "optional": true, + "requires": { + "abstract-leveldown": "~6.2.1", + "inherits": "^2.0.3" + }, + "dependencies": { + "abstract-leveldown": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.2.3.tgz", + "integrity": "sha512-BsLm5vFMRUrrLeCcRc+G0t2qOaTzpoJQLOubq2XM72eNpjF5UdU5o/5NvlNhx95XHcAvcl8OMXr4mlg/fRgUXQ==", + "optional": true, + "requires": { + "buffer": "^5.5.0", + "immediate": "^3.2.3", + "level-concat-iterator": "~2.0.0", + "level-supports": "~1.0.0", + "xtend": "~4.0.0" + } + }, + "level-concat-iterator": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/level-concat-iterator/-/level-concat-iterator-2.0.1.tgz", + "integrity": "sha512-OTKKOqeav2QWcERMJR7IS9CUo1sHnke2C0gkSmcR7QuEtFNLLzHQAvnMw8ykvEcv0Qtkg0p7FOwP1v9e5Smdcw==", + "optional": true + }, + "level-supports": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-1.0.1.tgz", + "integrity": "sha512-rXM7GYnW8gsl1vedTJIbzOrRv85c/2uCMpiiCzO2fndd06U/kUXEEU9evYn4zFggBOg36IsBW8LzqIpETwwQzg==", + "optional": true, + "requires": { + "xtend": "^4.0.2" + } + } + } + }, + "delay": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/delay/-/delay-5.0.0.tgz", + "integrity": "sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==", + "optional": true + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" + }, + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" + }, + "destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==" + }, + "diff": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", + "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==" + }, + "dom-walk": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", + "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==" + }, + "dot-case": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-2.1.1.tgz", + "integrity": "sha512-HnM6ZlFqcajLsyudHq7LeeLDr2rFAVYtDv/hV5qchQEidSck8j9OPUsXY9KwJv/lHMtYlX4DjRQqwFYa+0r8Ug==", + "requires": { + "no-case": "^2.2.0" + } + }, + "dot-prop": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz", + "integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==", + "optional": true, + "requires": { + "is-obj": "^2.0.0" + } + }, + "double-ended-queue": { + "version": "2.1.0-0", + "resolved": "https://registry.npmjs.org/double-ended-queue/-/double-ended-queue-2.1.0-0.tgz", + "integrity": "sha512-+BNfZ+deCo8hMNpDqDnvT+c0XpJ5cUa6mqYq89bho2Ifze4URTqRkcwR399hWoTrTkbZ/XJYDgP6rc7pRgffEQ==", + "optional": true + }, + "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" + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + }, + "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==" + } + } + }, + "emittery": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.4.1.tgz", + "integrity": "sha512-r4eRSeStEGf6M5SKdrQhhLK5bOwOBxQhIE3YSTnZE3GpKiLfnnhE+tPtrJE79+eDJgm39BM6LSoI8SCx4HbwlQ==", + "optional": true + }, + "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==" + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==" + }, + "encoding-down": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/encoding-down/-/encoding-down-6.3.0.tgz", + "integrity": "sha512-QKrV0iKR6MZVJV08QY0wp1e7vF6QbhnbQhb07bwpEyuz4uZiZgPlEGdkCROuFkUwdxlFaiPIhjyarH1ee/3vhw==", + "optional": true, + "requires": { + "abstract-leveldown": "^6.2.1", + "inherits": "^2.0.3", + "level-codec": "^9.0.0", + "level-errors": "^2.0.0" + }, + "dependencies": { + "abstract-leveldown": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.3.0.tgz", + "integrity": "sha512-TU5nlYgta8YrBMNpc9FwQzRbiXsj49gsALsXadbGHt9CROPzX5fB0rWDR5mtdpOOKa5XqRFpbj1QroPAoPzVjQ==", + "optional": true, + "requires": { + "buffer": "^5.5.0", + "immediate": "^3.2.3", + "level-concat-iterator": "~2.0.0", + "level-supports": "~1.0.0", + "xtend": "~4.0.0" + } + }, + "level-concat-iterator": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/level-concat-iterator/-/level-concat-iterator-2.0.1.tgz", + "integrity": "sha512-OTKKOqeav2QWcERMJR7IS9CUo1sHnke2C0gkSmcR7QuEtFNLLzHQAvnMw8ykvEcv0Qtkg0p7FOwP1v9e5Smdcw==", + "optional": true + }, + "level-supports": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-1.0.1.tgz", + "integrity": "sha512-rXM7GYnW8gsl1vedTJIbzOrRv85c/2uCMpiiCzO2fndd06U/kUXEEU9evYn4zFggBOg36IsBW8LzqIpETwwQzg==", + "optional": true, + "requires": { + "xtend": "^4.0.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" + } + }, + "end-stream": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/end-stream/-/end-stream-0.1.0.tgz", + "integrity": "sha512-Brl10T8kYnc75IepKizW6Y9liyW8ikz1B7n/xoHrJxoVSSjoqPn30sb7XVFfQERK4QfUMYRGs9dhWwtt2eu6uA==", + "optional": true, + "requires": { + "write-stream": "~0.4.3" + } + }, + "env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "optional": true + }, + "errno": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "optional": true, + "requires": { + "prr": "~1.0.1" + } + }, + "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" + } + }, + "es5-ext": { + "version": "0.10.64", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.64.tgz", + "integrity": "sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==", + "requires": { + "es6-iterator": "^2.0.3", + "es6-symbol": "^3.1.3", + "esniff": "^2.0.1", + "next-tick": "^1.1.0" + } + }, + "es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", + "requires": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.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-symbol": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", + "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", + "requires": { + "d": "^1.0.1", + "ext": "^1.1.2" + } + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "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==" + }, + "esniff": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/esniff/-/esniff-2.0.1.tgz", + "integrity": "sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==", + "requires": { + "d": "^1.0.1", + "es5-ext": "^0.10.62", + "event-emitter": "^0.3.5", + "type": "^2.7.2" + }, + "dependencies": { + "type": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz", + "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==" + } + } + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==" + }, + "eth-ens-namehash": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/eth-ens-namehash/-/eth-ens-namehash-2.0.8.tgz", + "integrity": "sha512-VWEI1+KJfz4Km//dadyvBBoBeSQ0MHTXPvr8UIXiLW6IanxvAV+DmlZAijZwAyggqGUfwQBeHf7tc9wzc1piSw==", + "requires": { + "idna-uts46-hx": "^2.3.1", + "js-sha3": "^0.5.7" + }, + "dependencies": { + "js-sha3": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz", + "integrity": "sha512-GII20kjaPX0zJ8wzkTbNDYMY7msuZcTWk8S5UOh6806Jq/wz1J8/bnr8uGU0DAUmYDjj2Mr4X1cW8v/GLYnR+g==" + } + } + }, + "eth-lib": { + "version": "0.1.29", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.1.29.tgz", + "integrity": "sha512-bfttrr3/7gG4E02HoWTDUcDDslN003OlOoBxk9virpAZQ1ja/jDgwkWB8QfJF7ojuEowrqy+lzp9VcJG7/k5bQ==", + "requires": { + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "nano-json-stream-parser": "^0.1.2", + "servify": "^0.1.12", + "ws": "^3.0.0", + "xhr-request-promise": "^0.1.2" + }, + "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==" + }, + "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==" + }, + "ws": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", + "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", + "requires": { + "async-limiter": "~1.0.0", + "safe-buffer": "~5.1.0", + "ultron": "~1.1.0" + } + } + } + }, + "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" + } + }, + "ethers": { + "version": "4.0.49", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.49.tgz", + "integrity": "sha512-kPltTvWiyu+OktYy1IStSO16i2e7cS9D9OxZ81q2UUaiNPVrm/RTcbxamCXF9VUSKzJIdJV68EAIhTEVBalRWg==", + "optional": true, + "requires": { + "aes-js": "3.0.0", + "bn.js": "^4.11.9", + "elliptic": "6.5.4", + "hash.js": "1.1.3", + "js-sha3": "0.5.7", + "scrypt-js": "2.0.4", + "setimmediate": "1.0.4", + "uuid": "2.0.1", + "xmlhttprequest": "1.8.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==", + "optional": true + }, + "hash.js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", + "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", + "optional": true, + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.0" + } + }, + "js-sha3": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz", + "integrity": "sha512-GII20kjaPX0zJ8wzkTbNDYMY7msuZcTWk8S5UOh6806Jq/wz1J8/bnr8uGU0DAUmYDjj2Mr4X1cW8v/GLYnR+g==", + "optional": true + }, + "scrypt-js": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.4.tgz", + "integrity": "sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw==", + "optional": true + }, + "setimmediate": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.4.tgz", + "integrity": "sha512-/TjEmXQVEzdod/FFskf3o7oOAsGhHf2j1dZqRFbDzq4F3mvvxflIIi4Hd3bLQE9y/CpwqfSQam5JakI/mi3Pog==", + "optional": true + } + } + }, + "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-emitter": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", + "integrity": "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==", + "requires": { + "d": "1", + "es5-ext": "~0.10.14" + } + }, + "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==", + "optional": true + }, + "eventemitter3": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz", + "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==" + }, + "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" + } + }, + "express": { + "version": "4.19.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz", + "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==", + "requires": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.2", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.6.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "dependencies": { + "cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==" + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + } + } + }, + "ext": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz", + "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==", + "requires": { + "type": "^2.7.2" + }, + "dependencies": { + "type": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz", + "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==" + } + } + }, + "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==" + }, + "fast-check": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/fast-check/-/fast-check-3.1.1.tgz", + "integrity": "sha512-3vtXinVyuUKCKFKYcwXhGE6NtGWkqF8Yh3rvMZNzmwz8EPrgoc/v4pDdLHyLnCyCI5MZpZZkDEwFyXyEONOxpA==", + "requires": { + "pure-rand": "^5.0.1" + } + }, + "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-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==" + }, + "fetch-cookie": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/fetch-cookie/-/fetch-cookie-0.11.0.tgz", + "integrity": "sha512-BQm7iZLFhMWFy5CZ/162sAGjBfdNWb7a8LEqqnzsHFhxT/X/SVj/z2t2nu3aJvjlbQkrAlTUApplPRjWyH4mhA==", + "optional": true, + "requires": { + "tough-cookie": "^2.3.3 || ^3.0.1 || ^4.0.0" + } + }, + "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" + } + }, + "finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + } + } + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", + "optional": true, + "requires": { + "locate-path": "^2.0.0" + }, + "dependencies": { + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", + "optional": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "optional": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", + "optional": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==", + "optional": true + } + } + }, + "flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==" + }, + "follow-redirects": { + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", + "optional": true + }, + "for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "requires": { + "is-callable": "^1.1.3" + } + }, + "foreach": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.6.tgz", + "integrity": "sha512-k6GAGDyqLe9JaebCsFCoudPPWfihKu8pylYXRlqP1J7ms39iPoTtk2fviNglIeQEwdh0bQeKJ01ZPyuyQvKzwg==" + }, + "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": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "optional": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, + "form-data-encoder": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-1.7.1.tgz", + "integrity": "sha512-EFRDrsMm/kyqbTQocNvRXMLjc7Es2Vk+IQFx/YW7hkUH1eBl4J1fqiP34l74Yt0pFLCNpc06fkbVk00008mzjg==" + }, + "forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==" + }, + "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==", + "optional": true, + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "dependencies": { + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "optional": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "optional": true + } + } + }, + "fs-minipass": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", + "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", + "requires": { + "minipass": "^2.6.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.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", + "optional": true + }, + "ganache": { + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/ganache/-/ganache-7.8.0.tgz", + "integrity": "sha512-IrUYvsaE/m2/NaVIZ7D/gCnsmyU/buechnH6MhUipzG1qJcZIwIp/DoP/LZUcHyhy0Bv0NKZD2pGOjpRhn7l7A==", + "requires": { + "@trufflesuite/bigint-buffer": "1.1.10", + "@trufflesuite/uws-js-unofficial": "20.10.0-unofficial.2", + "@types/bn.js": "^5.1.0", + "@types/lru-cache": "5.1.1", + "@types/seedrandom": "3.0.1", + "abstract-level": "1.0.3", + "abstract-leveldown": "7.2.0", + "async-eventemitter": "0.2.4", + "bufferutil": "4.0.5", + "emittery": "0.10.0", + "keccak": "3.0.2", + "leveldown": "6.1.0", + "secp256k1": "4.0.3", + "utf-8-validate": "5.0.7" + }, + "dependencies": { + "@trufflesuite/bigint-buffer": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/@trufflesuite/bigint-buffer/-/bigint-buffer-1.1.10.tgz", + "integrity": "sha512-pYIQC5EcMmID74t26GCC67946mgTJFiLXOT/BYozgrd4UEY2JHEGLhWi9cMiQCt5BSqFEvKkCHNnoj82SRjiEw==", + "requires": { + "node-gyp-build": "4.4.0" + }, + "dependencies": { + "node-gyp-build": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.4.0.tgz", + "integrity": "sha512-amJnQCcgtRVw9SvoebO3BKGESClrfXGCUTX9hSn1OuGQTQBOZmVd0Z0OlecpuRksKvbsUqALE8jls/ErClAPuQ==" + } + } + }, + "@trufflesuite/uws-js-unofficial": { + "version": "20.10.0-unofficial.2", + "resolved": "https://registry.npmjs.org/@trufflesuite/uws-js-unofficial/-/uws-js-unofficial-20.10.0-unofficial.2.tgz", + "integrity": "sha512-oQQlnS3oNeGsgS4K3KCSSavJgSb0W9D5ktZs4FacX9VbM7b+NlhjH96d6/G4fMrz+bc5MXRyco419on0X0dvRA==", + "requires": { + "bufferutil": "4.0.5", + "utf-8-validate": "5.0.7", + "ws": "8.2.3" + } + }, + "@types/bn.js": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.0.tgz", + "integrity": "sha512-QSSVYj7pYFN49kW77o2s9xTCwZ8F2xLbjLLSEVh8D2F4JUhZtPAGOFLTD+ffqksBx/u4cE/KImFjyhqCjn/LIA==", + "requires": { + "@types/node": "*" + } + }, + "@types/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@types/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw==" + }, + "@types/node": { + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.0.tgz", + "integrity": "sha512-eMhwJXc931Ihh4tkU+Y7GiLzT/y/DBNpNtr4yU9O2w3SYBsr9NaOPhQlLKRmoWtI54uNwuo0IOUFQjVOTZYRvw==" + }, + "@types/seedrandom": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/seedrandom/-/seedrandom-3.0.1.tgz", + "integrity": "sha512-giB9gzDeiCeloIXDgzFBCgjj1k4WxcDrZtGl6h1IqmUPlxF+Nx8Ve+96QCyDZ/HseB/uvDsKbpib9hU5cU53pw==" + }, + "abstract-level": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/abstract-level/-/abstract-level-1.0.3.tgz", + "integrity": "sha512-t6jv+xHy+VYwc4xqZMn2Pa9DjcdzvzZmQGRjTFc8spIbRGHgBrEKbPq+rYXc7CCo0lxgYvSgKVg9qZAhpVQSjA==", + "requires": { + "buffer": "^6.0.3", + "catering": "^2.1.0", + "is-buffer": "^2.0.5", + "level-supports": "^4.0.0", + "level-transcoder": "^1.0.1", + "module-error": "^1.0.1", + "queue-microtask": "^1.2.3" + }, + "dependencies": { + "level-supports": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-4.0.1.tgz", + "integrity": "sha512-PbXpve8rKeNcZ9C1mUicC9auIYFyGpkV9/i6g76tLgANwWhtG2v7I4xNBUlkn3lE2/dZF3Pi0ygYGtLc4RXXdA==" + } + } + }, + "abstract-leveldown": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-7.2.0.tgz", + "integrity": "sha512-DnhQwcFEaYsvYDnACLZhMmCWd3rkOeEvglpa4q5i/5Jlm3UIsWaxVzuXvDLFCSCWRO3yy2/+V/G7FusFgejnfQ==", + "requires": { + "buffer": "^6.0.3", + "catering": "^2.0.0", + "is-buffer": "^2.0.5", + "level-concat-iterator": "^3.0.0", + "level-supports": "^2.0.1", + "queue-microtask": "^1.2.3" + } + }, + "async": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", + "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", + "requires": { + "lodash": "^4.17.14" + } + }, + "async-eventemitter": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/async-eventemitter/-/async-eventemitter-0.2.4.tgz", + "integrity": "sha512-pd20BwL7Yt1zwDFy+8MX8F1+WCT8aQeKj0kQnTrH9WaeRETlRamVhD0JtRPmrV4GfOJ2F9CvdQkZeZhnh2TuHw==", + "requires": { + "async": "^2.4.0" + } + }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" + }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" + }, + "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" + } + }, + "bufferutil": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.5.tgz", + "integrity": "sha512-HTm14iMQKK2FjFLRTM5lAVcyaUzOnqbPtesFIvREgXpJHdQm8bWS+GkQgIkfaBYRHuCnea7w8UVNfwiAQhlr9A==", + "optional": true, + "requires": { + "node-gyp-build": "^4.3.0" + } + }, + "catering": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/catering/-/catering-2.1.0.tgz", + "integrity": "sha512-M5imwzQn6y+ODBfgi+cfgZv2hIUI6oYU/0f35Mdb1ujGeqeoI5tOnl9Q13DTH7LW+7er+NYq8stNOKZD/Z3U/A==", + "requires": { + "queue-tick": "^1.0.0" + } + }, + "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==" + } + } + }, + "emittery": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.10.0.tgz", + "integrity": "sha512-AGvFfs+d0JKCJQ4o01ASQLGPmSCxgfU9RFXvzPvZdjKK8oscynksuJhWrSTSw7j7Ep/sZct5b5ZhYCi8S/t0HQ==" + }, + "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": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "requires": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "is-buffer": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", + "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==" + }, + "keccak": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.2.tgz", + "integrity": "sha512-PyKKjkH53wDMLGrvmRGSNWgmSxZOUqbnXwKL9tmgbFYA1iAYqW21kfR7mZXV0MlESiefxQQE9X9fTa3X+2MPDQ==", + "requires": { + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0", + "readable-stream": "^3.6.0" + } + }, + "level-concat-iterator": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/level-concat-iterator/-/level-concat-iterator-3.1.0.tgz", + "integrity": "sha512-BWRCMHBxbIqPxJ8vHOvKUsaO0v1sLYZtjN3K2iZJsRBYtp+ONsY6Jfi6hy9K3+zolgQRryhIn2NRZjZnWJ9NmQ==", + "requires": { + "catering": "^2.1.0" + } + }, + "level-supports": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-2.1.0.tgz", + "integrity": "sha512-E486g1NCjW5cF78KGPrMDRBYzPuueMZ6VBXHT6gC7A8UYWGiM14fGgp+s/L1oFfDWSPV/+SFkYCmZ0SiESkRKA==" + }, + "level-transcoder": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/level-transcoder/-/level-transcoder-1.0.1.tgz", + "integrity": "sha512-t7bFwFtsQeD8cl8NIoQ2iwxA0CL/9IFw7/9gAjOonH0PWTTiRfY7Hq+Ejbsxh86tXobDQ6IOiddjNYIfOBs06w==", + "requires": { + "buffer": "^6.0.3", + "module-error": "^1.0.1" + } + }, + "leveldown": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/leveldown/-/leveldown-6.1.0.tgz", + "integrity": "sha512-8C7oJDT44JXxh04aSSsfcMI8YiaGRhOFI9/pMEL7nWJLVsWajDPTRxsSHTM2WcTVY5nXM+SuRHzPPi0GbnDX+w==", + "requires": { + "abstract-leveldown": "^7.2.0", + "napi-macros": "~2.0.0", + "node-gyp-build": "^4.3.0" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "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": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" + }, + "module-error": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/module-error/-/module-error-1.0.2.tgz", + "integrity": "sha512-0yuvsqSCv8LbaOKhnsQ/T5JhyFlCYLPXK3U2sgV10zoKQwzs/MyfuQUOZQ1V/6OCOJsK/TRgNVrPuPDqtdMFtA==" + }, + "napi-macros": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/napi-macros/-/napi-macros-2.0.0.tgz", + "integrity": "sha512-A0xLykHtARfueITVDernsAWdtIMbOJgKgcluwENp3AlsKN/PloyO10HtmoqnFAQAcxPkgZN7wdfPfEd0zNGxbg==" + }, + "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-gyp-build": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.3.0.tgz", + "integrity": "sha512-iWjXZvmboq0ja1pUGULQBexmxq8CV4xBhX7VDOTbL7ZR4FOowwY/VOtRxBN/yKxmdGoIp4j5ysNT4u3S2pDQ3Q==" + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" + }, + "queue-tick": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.0.tgz", + "integrity": "sha512-ULWhjjE8BmiICGn3G8+1L9wFpERNxkf8ysxkAer4+TFdRefDaXOCV5m92aMB9FtBVmn/8sETXLXY6BfW7hyaWQ==" + }, + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "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==" + }, + "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" + } + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "requires": { + "safe-buffer": "~5.2.0" + } + }, + "utf-8-validate": { + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.7.tgz", + "integrity": "sha512-vLt1O5Pp+flcArHGIyKEQq883nBt8nN8tVBcoL0qUXj2XT1n7p70yGIq2VK98I5FdZ1YHc0wk/koOnHjnXWk1Q==", + "optional": true, + "requires": { + "node-gyp-build": "^4.3.0" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "ws": { + "version": "8.2.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz", + "integrity": "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==" + } + } + }, + "get-caller-file": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", + "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==" + }, + "get-intrinsic": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", + "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3" + } + }, + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" + }, + "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": "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" + } + }, + "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" + } + }, + "global": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", + "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", + "requires": { + "min-document": "^2.19.0", + "process": "^0.11.10" + } + }, + "gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "requires": { + "get-intrinsic": "^1.1.3" + } + }, + "got": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/got/-/got-12.1.0.tgz", + "integrity": "sha512-hBv2ty9QN2RdbJJMK3hesmSkFTjVIHyIDDbssCKnSmq62edGgImJWD10Eb1k77TiV1bxloxqcFAVK8+9pkhOig==", + "requires": { + "@sindresorhus/is": "^4.6.0", + "@szmarczak/http-timer": "^5.0.1", + "@types/cacheable-request": "^6.0.2", + "@types/responselike": "^1.0.0", + "cacheable-lookup": "^6.0.4", + "cacheable-request": "^7.0.2", + "decompress-response": "^6.0.0", + "form-data-encoder": "1.7.1", + "get-stream": "^6.0.1", + "http2-wrapper": "^2.1.10", + "lowercase-keys": "^3.0.0", + "p-cancelable": "^3.0.0", + "responselike": "^2.0.0" + } + }, + "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.8.0", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.8.0.tgz", + "integrity": "sha512-5gghUc24tP9HRznNpV2+FIoq3xKkj5dTQqf4v0CpdPbFVwFkWoxOM+o+2OC9ZSvjEMTjfmG9QT+gcvggTwW1zw==", + "optional": true + }, + "graphql-tag": { + "version": "2.12.6", + "resolved": "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.12.6.tgz", + "integrity": "sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg==", + "optional": true, + "requires": { + "tslib": "^2.1.0" + } + }, + "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": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==" + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" + }, + "has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "requires": { + "has-symbols": "^1.0.2" + } + }, + "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" + } + }, + "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" + } + }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==" + }, + "header-case": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/header-case/-/header-case-1.0.1.tgz", + "integrity": "sha512-i0q9mkOeSuhXw6bGgiQCCBgY/jlZuV/7dZXyZ9c6LcBrqwvT8eT719E9uxE5LiZftdl+z81Ugbg/VvXV4OJOeQ==", + "requires": { + "no-case": "^2.2.0", + "upper-case": "^1.1.3" + } + }, + "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" + } + }, + "hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==" + }, + "http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==" + }, + "http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "requires": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + } + }, + "http-https": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/http-https/-/http-https-1.0.0.tgz", + "integrity": "sha512-o0PWwVCSp3O0wS6FvNr6xfBCHgt0m1tvPLFOCc2iFDKTRAXhB7m8klDf7ErowFH8POa6dVdGatKU5I1YYwzUyg==" + }, + "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" + } + }, + "http2-wrapper": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.0.tgz", + "integrity": "sha512-kZB0wxMo0sh1PehyjJUWRFEd99KC5TLjZ2cULC4f9iqJBAmKQQXEICjxl5iPJRwP40dpeHFqqhm7tYCvODpqpQ==", + "requires": { + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.2.0" + } + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "idna-uts46-hx": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/idna-uts46-hx/-/idna-uts46-hx-2.3.1.tgz", + "integrity": "sha512-PWoF9Keq6laYdIRwwCdhTPl60xRqAloYNMQLiyUnG42VjT53oW07BXIRM+NK7eQjzXjAk2gUvX9caRxlnF9TAA==", + "requires": { + "punycode": "2.1.0" + }, + "dependencies": { + "punycode": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz", + "integrity": "sha512-Yxz2kRwT90aPiWEMHVYnEf4+rhwF1tBmmZ4KepCP+Wkium9JxtWnUm1nqGwpiAHr/tnTSeHqr3wb++jgSkXjhA==" + } + } + }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" + }, + "immediate": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.3.0.tgz", + "integrity": "sha512-HR7EVodfFUdQCTIeySw+WDRFJlPcLOJbXfwwZ7Oom6tjsvZ3bOkCDJHehQC3nxJrv7+f9XecwazynjU8e4Vw3Q==", + "optional": true + }, + "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==" + }, + "invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha512-xgs2NH9AE66ucSq4cNG1nhSFghr5l6tdL15Pk+jl46bmmBapgoaY/AacXyaDznAqmGL99TiLSQgO/XazFSKYeQ==" + }, + "ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" + }, + "is-arguments": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "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-buffer": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", + "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", + "optional": true + }, + "is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==" + }, + "is-core-module": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz", + "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==", + "requires": { + "has": "^1.0.3" + } + }, + "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": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "is-function": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz", + "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==" + }, + "is-generator-function": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "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-lower-case": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/is-lower-case/-/is-lower-case-1.1.3.tgz", + "integrity": "sha512-+5A1e/WJpLLXZEDlgz4G//WYSHyQBD32qa4Jd3Lw06qQlv3fJHnp3YIHjTQSGzHMgzmVKz2ZP3rBxTHkPw/lxA==", + "requires": { + "lower-case": "^1.1.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-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "optional": true + }, + "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-typed-array": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", + "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + } + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" + }, + "is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==" + }, + "is-upper-case": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-upper-case/-/is-upper-case-1.1.2.tgz", + "integrity": "sha512-GQYSJMgfeAmVwh9ixyk888l7OIhNAGKtY6QA+IrWlu9MDTCaXmeozOZ2S9Knj7bQwBO/H6J2kb+pbyTUiMNbsw==", + "requires": { + "upper-case": "^1.1.0" + } + }, + "is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==" + }, + "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==", + "optional": true + }, + "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==", + "optional": true + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==" + }, + "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": "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" + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==" + }, + "json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" + }, + "json-pointer": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/json-pointer/-/json-pointer-0.6.2.tgz", + "integrity": "sha512-vLWcKbOaXlO+jvRy4qNd+TI1QUPZzfJj1tpJ3vAXDych5XJf93ftpUKe5pKCrzyIIwgBJcOcCVRUfqQP25afBw==", + "requires": { + "foreach": "^2.0.4" + } + }, + "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-schema-typed": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/json-schema-typed/-/json-schema-typed-7.0.3.tgz", + "integrity": "sha512-7DE8mpG+/fVw+dTpjbxnx47TaMnDfOI1jwft9g1VybltZCduyRQPJPvc+zzKY9WPHxhPWczyFuYa6I8Mw4iU5A==", + "optional": true + }, + "json-stable-stringify": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.2.tgz", + "integrity": "sha512-eunSSaEnxV12z+Z73y/j5N37/In40GK4GmsSy+tEHJMxknvqnA7/djeYtAgW0GsWHUfg+847WJjKaEylk2y09g==", + "requires": { + "jsonify": "^0.0.1" + } + }, + "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": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "jsonify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.1.tgz", + "integrity": "sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg==" + }, + "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.3", + "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.3.tgz", + "integrity": "sha512-JZrLIAJWuZxKbCilMpNz5Vj7Vtb4scDG3dMXLOsbzBmQGyjwE61BbW7bJkfKKCShXiQZt3T6sBgALRtmd+nZaQ==", + "requires": { + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0", + "readable-stream": "^3.6.0" + } + }, + "keyv": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.2.tgz", + "integrity": "sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g==", + "requires": { + "json-buffer": "3.0.1" + } + }, + "klaw": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", + "integrity": "sha512-TED5xi9gGQjGpNnvRWknrwAB1eL5GciPfVFOt3Vk1OJCVDQbzuSfrF3hkUQKlsgKrG1F+0t5W0m+Fje1jIt8rw==", + "requires": { + "graceful-fs": "^4.1.9" + } + }, + "lcid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha512-YiGkH6EnGrDGqLMITnGjXtGmNtjoXw9SVUzcaos8RBi7Ps0VBylkq+vOcY9QE5poLasPCR849ucFUkl0UzUyOw==", + "requires": { + "invert-kv": "^1.0.0" + } + }, + "level": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/level/-/level-6.0.1.tgz", + "integrity": "sha512-psRSqJZCsC/irNhfHzrVZbmPYXDcEYhA5TVNwr+V92jF44rbf86hqGp8fiT702FyiArScYIlPSBTDUASCVNSpw==", + "optional": true, + "requires": { + "level-js": "^5.0.0", + "level-packager": "^5.1.0", + "leveldown": "^5.4.0" + } + }, + "level-codec": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-9.0.2.tgz", + "integrity": "sha512-UyIwNb1lJBChJnGfjmO0OR+ezh2iVu1Kas3nvBS/BzGnx79dv6g7unpKIDNPMhfdTEGoc7mC8uAu51XEtX+FHQ==", + "optional": true, + "requires": { + "buffer": "^5.6.0" + } + }, + "level-concat-iterator": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/level-concat-iterator/-/level-concat-iterator-3.1.0.tgz", + "integrity": "sha512-BWRCMHBxbIqPxJ8vHOvKUsaO0v1sLYZtjN3K2iZJsRBYtp+ONsY6Jfi6hy9K3+zolgQRryhIn2NRZjZnWJ9NmQ==", + "optional": true, + "requires": { + "catering": "^2.1.0" + } + }, + "level-errors": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-2.0.1.tgz", + "integrity": "sha512-UVprBJXite4gPS+3VznfgDSU8PTRuVX0NXwoWW50KLxd2yw4Y1t2JUR5In1itQnudZqRMT9DlAM3Q//9NCjCFw==", + "optional": true, + "requires": { + "errno": "~0.1.1" + } + }, + "level-iterator-stream": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-4.0.2.tgz", + "integrity": "sha512-ZSthfEqzGSOMWoUGhTXdX9jv26d32XJuHz/5YnuHZzH6wldfWMOVwI9TBtKcya4BKTyTt3XVA0A3cF3q5CY30Q==", + "optional": true, + "requires": { + "inherits": "^2.0.4", + "readable-stream": "^3.4.0", + "xtend": "^4.0.2" + } + }, + "level-js": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/level-js/-/level-js-5.0.2.tgz", + "integrity": "sha512-SnBIDo2pdO5VXh02ZmtAyPP6/+6YTJg2ibLtl9C34pWvmtMEmRTWpra+qO/hifkUtBTOtfx6S9vLDjBsBK4gRg==", + "optional": true, + "requires": { + "abstract-leveldown": "~6.2.3", + "buffer": "^5.5.0", + "inherits": "^2.0.3", + "ltgt": "^2.1.2" + }, + "dependencies": { + "abstract-leveldown": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.2.3.tgz", + "integrity": "sha512-BsLm5vFMRUrrLeCcRc+G0t2qOaTzpoJQLOubq2XM72eNpjF5UdU5o/5NvlNhx95XHcAvcl8OMXr4mlg/fRgUXQ==", + "optional": true, + "requires": { + "buffer": "^5.5.0", + "immediate": "^3.2.3", + "level-concat-iterator": "~2.0.0", + "level-supports": "~1.0.0", + "xtend": "~4.0.0" + } + }, + "level-concat-iterator": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/level-concat-iterator/-/level-concat-iterator-2.0.1.tgz", + "integrity": "sha512-OTKKOqeav2QWcERMJR7IS9CUo1sHnke2C0gkSmcR7QuEtFNLLzHQAvnMw8ykvEcv0Qtkg0p7FOwP1v9e5Smdcw==", + "optional": true + }, + "level-supports": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-1.0.1.tgz", + "integrity": "sha512-rXM7GYnW8gsl1vedTJIbzOrRv85c/2uCMpiiCzO2fndd06U/kUXEEU9evYn4zFggBOg36IsBW8LzqIpETwwQzg==", + "optional": true, + "requires": { + "xtend": "^4.0.2" + } + } + } + }, + "level-packager": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/level-packager/-/level-packager-5.1.1.tgz", + "integrity": "sha512-HMwMaQPlTC1IlcwT3+swhqf/NUO+ZhXVz6TY1zZIIZlIR0YSn8GtAAWmIvKjNY16ZkEg/JcpAuQskxsXqC0yOQ==", + "optional": true, + "requires": { + "encoding-down": "^6.3.0", + "levelup": "^4.3.2" + } + }, + "level-supports": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-2.1.0.tgz", + "integrity": "sha512-E486g1NCjW5cF78KGPrMDRBYzPuueMZ6VBXHT6gC7A8UYWGiM14fGgp+s/L1oFfDWSPV/+SFkYCmZ0SiESkRKA==", + "optional": true + }, + "level-write-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/level-write-stream/-/level-write-stream-1.0.0.tgz", + "integrity": "sha512-bBNKOEOMl8msO+uIM9YX/gUO6ckokZ/4pCwTm/lwvs46x6Xs8Zy0sn3Vh37eDqse4mhy4fOMIb/JsSM2nyQFtw==", + "optional": true, + "requires": { + "end-stream": "~0.1.0" + } + }, + "leveldown": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/leveldown/-/leveldown-5.6.0.tgz", + "integrity": "sha512-iB8O/7Db9lPaITU1aA2txU/cBEXAt4vWwKQRrrWuS6XDgbP4QZGj9BL2aNbwb002atoQ/lIotJkfyzz+ygQnUQ==", + "optional": true, + "requires": { + "abstract-leveldown": "~6.2.1", + "napi-macros": "~2.0.0", + "node-gyp-build": "~4.1.0" + }, + "dependencies": { + "abstract-leveldown": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.2.3.tgz", + "integrity": "sha512-BsLm5vFMRUrrLeCcRc+G0t2qOaTzpoJQLOubq2XM72eNpjF5UdU5o/5NvlNhx95XHcAvcl8OMXr4mlg/fRgUXQ==", + "optional": true, + "requires": { + "buffer": "^5.5.0", + "immediate": "^3.2.3", + "level-concat-iterator": "~2.0.0", + "level-supports": "~1.0.0", + "xtend": "~4.0.0" + } + }, + "level-concat-iterator": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/level-concat-iterator/-/level-concat-iterator-2.0.1.tgz", + "integrity": "sha512-OTKKOqeav2QWcERMJR7IS9CUo1sHnke2C0gkSmcR7QuEtFNLLzHQAvnMw8ykvEcv0Qtkg0p7FOwP1v9e5Smdcw==", + "optional": true + }, + "level-supports": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-1.0.1.tgz", + "integrity": "sha512-rXM7GYnW8gsl1vedTJIbzOrRv85c/2uCMpiiCzO2fndd06U/kUXEEU9evYn4zFggBOg36IsBW8LzqIpETwwQzg==", + "optional": true, + "requires": { + "xtend": "^4.0.2" + } + }, + "node-gyp-build": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.1.1.tgz", + "integrity": "sha512-dSq1xmcPDKPZ2EED2S6zw/b9NKsqzXRE6dVr8TVQnI3FJOTteUMuqF3Qqs6LZg+mLGYJWqQzMbIjMtJqTv87nQ==", + "optional": true + } + } + }, + "levelup": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/levelup/-/levelup-4.4.0.tgz", + "integrity": "sha512-94++VFO3qN95cM/d6eBXvd894oJE0w3cInq9USsyQzzoJxmiYzPAocNcuGCPGGjoXqDVJcr3C1jzt1TSjyaiLQ==", + "optional": true, + "requires": { + "deferred-leveldown": "~5.3.0", + "level-errors": "~2.0.0", + "level-iterator-stream": "~4.0.0", + "level-supports": "~1.0.0", + "xtend": "~4.0.0" + }, + "dependencies": { + "level-supports": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-1.0.1.tgz", + "integrity": "sha512-rXM7GYnW8gsl1vedTJIbzOrRv85c/2uCMpiiCzO2fndd06U/kUXEEU9evYn4zFggBOg36IsBW8LzqIpETwwQzg==", + "optional": true, + "requires": { + "xtend": "^4.0.2" + } + } + } + }, + "load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A==", + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "optional": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "lodash-es": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==" + }, + "lodash.assign": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz", + "integrity": "sha512-hFuH8TY+Yji7Eja3mGiuAxBqLagejScbG8GbG0j6o9vzn0YL14My+ktnqtZgFTosKymC9/44wP6s7xyuLfnClw==" + }, + "lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==", + "optional": true + }, + "log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "requires": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + } + }, + "loglevel": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.8.1.tgz", + "integrity": "sha512-tCRIJM51SHjAayKwC+QAg8hT8vg6z7GSgLJKGvzuPb1Wc+hLzqtuVLxp6/HzSPOozuK+8ErAhy7U/sVzw8Dgfg==", + "optional": true + }, + "long": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", + "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==", + "optional": true + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "lower-case": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", + "integrity": "sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA==" + }, + "lower-case-first": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/lower-case-first/-/lower-case-first-1.0.2.tgz", + "integrity": "sha512-UuxaYakO7XeONbKrZf5FEgkantPf5DUqDayzP5VXZrtRPdH86s4kN47I8B3TW10S4QKiE3ziHNf3kRN//okHjA==", + "requires": { + "lower-case": "^1.1.2" + } + }, + "lowercase-keys": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", + "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==" + }, + "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" + }, + "dependencies": { + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + } + } + }, + "ltgt": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ltgt/-/ltgt-2.2.1.tgz", + "integrity": "sha512-AI2r85+4MquTw9ZYqabu4nMwy9Oftlfa/e/52t9IjtfG+mGBbTNdAoZ3RQKLHR6r0wQnwZnPIEh/Ya6XTWAKNA==", + "optional": true + }, + "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" + } + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==" + }, + "memdown": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/memdown/-/memdown-1.4.1.tgz", + "integrity": "sha512-iVrGHZB8i4OQfM155xx8akvG9FIj+ht14DX5CQkCTG4EHzZ3d3sgckIf/Lm9ivZalEsFuEVnWv2B2WZvbrro2w==", + "optional": true, + "requires": { + "abstract-leveldown": "~2.7.1", + "functional-red-black-tree": "^1.0.1", + "immediate": "^3.2.3", + "inherits": "~2.0.1", + "ltgt": "~2.2.0", + "safe-buffer": "~5.1.1" + }, + "dependencies": { + "abstract-leveldown": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.7.2.tgz", + "integrity": "sha512-+OVvxH2rHVEhWLdbudP6p0+dNMXu8JA1CbhP19T8paTYAcX7oJ4OVjT+ZUVpv7mITxXHqDMej+GdqXBmXkw09w==", + "optional": true, + "requires": { + "xtend": "~4.0.0" + } + }, + "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==", + "optional": true + } + } + }, + "memorystream": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", + "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==" + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==" + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + }, + "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==", + "optional": true + }, + "mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" + }, + "min-document": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", + "integrity": "sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==", + "requires": { + "dom-walk": "^0.1.0" + } + }, + "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": "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" + } + }, + "minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==" + }, + "minipass": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", + "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", + "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", + "requires": { + "minipass": "^2.9.0" + } + }, + "mkdirp": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.1.tgz", + "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==" + }, + "mkdirp-promise": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz", + "integrity": "sha512-Hepn5kb1lJPtVW84RFT40YG1OddBNTOVUZR2bzQUHc+Z03en8/3uX0+060JDhcEzyO08HmipsN9DcnFMxhIL9w==", + "requires": { + "mkdirp": "*" + } + }, + "mocha": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.1.0.tgz", + "integrity": "sha512-vUF7IYxEoN7XhQpFLxQAEMtE4W91acW4B6En9l97MwE9stL1A9gusXfoHZCLVHDUJ/7V5+lbCM6yMqzo5vNymg==", + "requires": { + "ansi-colors": "4.1.1", + "browser-stdout": "1.3.1", + "chokidar": "3.5.3", + "debug": "4.3.4", + "diff": "5.0.0", + "escape-string-regexp": "4.0.0", + "find-up": "5.0.0", + "glob": "7.2.0", + "he": "1.2.0", + "js-yaml": "4.1.0", + "log-symbols": "4.1.0", + "minimatch": "5.0.1", + "ms": "2.1.3", + "nanoid": "3.3.3", + "serialize-javascript": "6.0.0", + "strip-json-comments": "3.1.1", + "supports-color": "8.1.1", + "workerpool": "6.2.1", + "yargs": "16.2.0", + "yargs-parser": "20.2.4", + "yargs-unparser": "2.0.0" + }, + "dependencies": { + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + } + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" + }, + "glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "dependencies": { + "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" + } + } + } + }, + "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==" + }, + "locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "requires": { + "p-locate": "^5.0.0" + } + }, + "minimatch": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", + "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", + "requires": { + "brace-expansion": "^2.0.1" + }, + "dependencies": { + "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" + } + } + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "requires": { + "p-limit": "^3.0.2" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" + }, + "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" + } + }, + "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" + } + }, + "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" + } + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" + }, + "yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + } + }, + "yargs-parser": { + "version": "20.2.4", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==" + } + } + }, + "mock-fs": { + "version": "4.14.0", + "resolved": "https://registry.npmjs.org/mock-fs/-/mock-fs-4.14.0.tgz", + "integrity": "sha512-qYvlv/exQ4+svI3UOvPUpLDF0OMX5euvUH0Ny4N5QyRyhNdgAgUrVH3iUINSzEPLvx0kbo/Bp28GJKIqvE7URw==" + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "multibase": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.6.1.tgz", + "integrity": "sha512-pFfAwyTjbbQgNc3G7D48JkJxWtoJoBMaR4xQUOuB8RnCgRqaYmWNFeJTTvrJ2w51bjLq2zTby6Rqj9TQ9elSUw==", + "requires": { + "base-x": "^3.0.8", + "buffer": "^5.5.0" + } + }, + "multicodec": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-0.5.7.tgz", + "integrity": "sha512-PscoRxm3f+88fAtELwUnZxGDkduE2HD9Q6GHUOywQLjOGT/HAdhjLDYNZ1e7VR0s0TP0EwZ16LNUTFpoBGivOA==", + "requires": { + "varint": "^5.0.0" + } + }, + "multihashes": { + "version": "0.4.21", + "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-0.4.21.tgz", + "integrity": "sha512-uVSvmeCWf36pU2nB4/1kzYZjsXD9vofZKpgudqkceYY5g2aZZXJ5r9lxuzoRLl1OAp28XljXsEJ/X/85ZsKmKw==", + "requires": { + "buffer": "^5.5.0", + "multibase": "^0.7.0", + "varint": "^5.0.0" + }, + "dependencies": { + "multibase": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.7.0.tgz", + "integrity": "sha512-TW8q03O0f6PNFTQDvh3xxH03c8CjGaaYrjkl9UQPG6rz53TQzzxJVCIWVjzcbN/Q5Y53Zd0IBQBMVktVgNx4Fg==", + "requires": { + "base-x": "^3.0.8", + "buffer": "^5.5.0" + } + } + } + }, + "nano-base32": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/nano-base32/-/nano-base32-1.0.1.tgz", + "integrity": "sha512-sxEtoTqAPdjWVGv71Q17koMFGsOMSiHsIFEvzOM7cNp8BXB4AnEwmDabm5dorusJf/v1z7QxaZYxUorU9RKaAw==" + }, + "nano-json-stream-parser": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/nano-json-stream-parser/-/nano-json-stream-parser-0.1.2.tgz", + "integrity": "sha512-9MqxMH/BSJC7dnLsEMPyfN5Dvoo49IsPFYMcHw3Bcfc2kN0lpHRBSzlMSVx4HGyJ7s9B31CyBTVehWJoQ8Ctew==" + }, + "nanoid": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz", + "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==" + }, + "napi-macros": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/napi-macros/-/napi-macros-2.0.0.tgz", + "integrity": "sha512-A0xLykHtARfueITVDernsAWdtIMbOJgKgcluwENp3AlsKN/PloyO10HtmoqnFAQAcxPkgZN7wdfPfEd0zNGxbg==", + "optional": true + }, + "negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" + }, + "next-tick": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", + "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==" + }, + "no-case": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", + "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", + "requires": { + "lower-case": "^1.1.1" + } + }, + "node-abort-controller": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/node-abort-controller/-/node-abort-controller-3.1.1.tgz", + "integrity": "sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==", + "optional": true + }, + "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.6.12", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.12.tgz", + "integrity": "sha512-C/fGU2E8ToujUivIO0H+tpQ6HWo4eEmchoPIoXtxCrVghxdKq+QOHqEZW7tuP3KlV3bC8FRMO5nMCC7Zm1VP6g==", + "requires": { + "whatwg-url": "^5.0.0" + } + }, + "node-gyp-build": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.0.tgz", + "integrity": "sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ==" + }, + "node-interval-tree": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/node-interval-tree/-/node-interval-tree-1.3.3.tgz", + "integrity": "sha512-K9vk96HdTK5fEipJwxSvIIqwTqr4e3HRJeJrNxBSeVMNSC/JWARRaX7etOLOuTmrRMeOI/K5TCJu3aWIwZiNTw==", + "requires": { + "shallowequal": "^1.0.2" + } + }, + "nofilter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/nofilter/-/nofilter-1.0.4.tgz", + "integrity": "sha512-N8lidFp+fCz+TD51+haYdbDGrcBWwuHX40F5+z0qkUjMJ5Tp+rdSuAkMJ9N9eoolDlEVTf6u5icM+cNKkKW2mA==" + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + }, + "dependencies": { + "semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==" + } + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + }, + "normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==" + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==" + }, + "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-inspect": { + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==" + }, + "oboe": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/oboe/-/oboe-2.1.5.tgz", + "integrity": "sha512-zRFWiF+FoicxEs3jNI/WYUrVEgA7DeET/InK0XQuudGHRg8iIob3cNPrJTKaz4004uaA9Pbe+Dwa8iluhjLZWA==", + "requires": { + "http-https": "^1.0.0" + } + }, + "on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "requires": { + "ee-first": "1.1.1" + } + }, + "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==", + "optional": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "original-require": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/original-require/-/original-require-1.0.1.tgz", + "integrity": "sha512-5vdKMbE58WaE61uVD+PKyh8xdM398UnjPBLotW2sjG5MzHARwta/+NtMBCBA0t2WQblGYBvq5vsiZpWokwno+A==" + }, + "os-locale": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", + "integrity": "sha512-PRT7ZORmwu2MEFt4/fv3Q+mEfN4zetKxufQrkShY2oGvUms9r8otu5HfdyIFHkYXjO7laNsoVGmM2MANfuTA8g==", + "requires": { + "lcid": "^1.0.0" + } + }, + "p-cancelable": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", + "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==" + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "optional": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "optional": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "optional": true + }, + "param-case": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", + "integrity": "sha512-eQE845L6ot89sk2N8liD8HAuH4ca6Vvr7VWAWwt7+kvvG5aBcPmmphQ68JsEG2qa9n1TykS2DLeMt363AAH8/w==", + "requires": { + "no-case": "^2.2.0" + } + }, + "parse-headers": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.5.tgz", + "integrity": "sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA==" + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==", + "requires": { + "error-ex": "^1.2.0" + } + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" + }, + "pascal-case": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-2.0.1.tgz", + "integrity": "sha512-qjS4s8rBOJa2Xm0jmxXiyh1+OFf6ekCWOvUaRgAQSktzlTbMotS0nmG9gyYAybCWBcuP4fsBeRCKNwGBnMe2OQ==", + "requires": { + "camel-case": "^3.0.0", + "upper-case-first": "^1.1.0" + } + }, + "path-case": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/path-case/-/path-case-2.1.1.tgz", + "integrity": "sha512-Ou0N05MioItesaLr9q8TtHVWmJ6fxWdqKB2RohFmNWVyJ+2zeKIeDNWAN6B/Pe7wpzWChhZX6nONYmOnMeJQ/Q==", + "requires": { + "no-case": "^2.2.0" + } + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "optional": true + }, + "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-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" + }, + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg==", + "requires": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "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==" + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==" + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==" + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", + "requires": { + "pinkie": "^2.0.0" + } + }, + "pkg-up": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", + "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", + "optional": true, + "requires": { + "find-up": "^3.0.0" + }, + "dependencies": { + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "optional": true, + "requires": { + "locate-path": "^3.0.0" + } + } + } + }, + "pluralize": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", + "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", + "optional": true + }, + "pouchdb": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/pouchdb/-/pouchdb-7.3.0.tgz", + "integrity": "sha512-OwsIQGXsfx3TrU1pLruj6PGSwFH+h5k4hGNxFkZ76Um7/ZI8F5TzUHFrpldVVIhfXYi2vP31q0q7ot1FSLFYOw==", + "optional": true, + "requires": { + "abort-controller": "3.0.0", + "argsarray": "0.0.1", + "buffer-from": "1.1.2", + "clone-buffer": "1.0.0", + "double-ended-queue": "2.1.0-0", + "fetch-cookie": "0.11.0", + "immediate": "3.3.0", + "inherits": "2.0.4", + "level": "6.0.1", + "level-codec": "9.0.2", + "level-write-stream": "1.0.0", + "leveldown": "5.6.0", + "levelup": "4.4.0", + "ltgt": "2.2.1", + "node-fetch": "2.6.7", + "readable-stream": "1.1.14", + "spark-md5": "3.0.2", + "through2": "3.0.2", + "uuid": "8.3.2", + "vuvuzela": "1.0.3" + }, + "dependencies": { + "node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "optional": true, + "requires": { + "whatwg-url": "^5.0.0" + } + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==", + "optional": true, + "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==", + "optional": true + }, + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "optional": true + } + } + }, + "pouchdb-abstract-mapreduce": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/pouchdb-abstract-mapreduce/-/pouchdb-abstract-mapreduce-7.3.1.tgz", + "integrity": "sha512-0zKXVFBvrfc1KnN0ggrB762JDmZnUpePHywo9Bq3Jy+L1FnoG7fXM5luFfvv5/T0gEw+ZTIwoocZECMnESBI9w==", + "optional": true, + "requires": { + "pouchdb-binary-utils": "7.3.1", + "pouchdb-collate": "7.3.1", + "pouchdb-collections": "7.3.1", + "pouchdb-errors": "7.3.1", + "pouchdb-fetch": "7.3.1", + "pouchdb-mapreduce-utils": "7.3.1", + "pouchdb-md5": "7.3.1", + "pouchdb-utils": "7.3.1" + } + }, + "pouchdb-adapter-leveldb-core": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/pouchdb-adapter-leveldb-core/-/pouchdb-adapter-leveldb-core-7.3.1.tgz", + "integrity": "sha512-mxShHlqLMPz2gChrgtA9okV1ogFmQrRAoM/O4EN0CrQWPLXqYtpL1f7sI2asIvFe7SmpnvbLx7kkZyFmLTfwjA==", + "optional": true, + "requires": { + "argsarray": "0.0.1", + "buffer-from": "1.1.2", + "double-ended-queue": "2.1.0-0", + "levelup": "4.4.0", + "pouchdb-adapter-utils": "7.3.1", + "pouchdb-binary-utils": "7.3.1", + "pouchdb-collections": "7.3.1", + "pouchdb-errors": "7.3.1", + "pouchdb-json": "7.3.1", + "pouchdb-md5": "7.3.1", + "pouchdb-merge": "7.3.1", + "pouchdb-utils": "7.3.1", + "sublevel-pouchdb": "7.3.1", + "through2": "3.0.2" + } + }, + "pouchdb-adapter-memory": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/pouchdb-adapter-memory/-/pouchdb-adapter-memory-7.3.1.tgz", + "integrity": "sha512-iHdWGJAHONqQv0we3Oi1MYen69ZS8McLW9wUyaAYcWTJnAIIAr2ZM0/TeTDVSHfMUwYqEYk7X8jRtJZEMwLnwg==", + "optional": true, + "requires": { + "memdown": "1.4.1", + "pouchdb-adapter-leveldb-core": "7.3.1", + "pouchdb-utils": "7.3.1" + } + }, + "pouchdb-adapter-utils": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/pouchdb-adapter-utils/-/pouchdb-adapter-utils-7.3.1.tgz", + "integrity": "sha512-uKLG6dClwTs/sLIJ4WkLAi9wlnDBpOnfyhpeAgOjlOGN/XLz5nKHrA4UJRnURDyc+uv79S9r/Unc4hVpmbSPUw==", + "optional": true, + "requires": { + "pouchdb-binary-utils": "7.3.1", + "pouchdb-collections": "7.3.1", + "pouchdb-errors": "7.3.1", + "pouchdb-md5": "7.3.1", + "pouchdb-merge": "7.3.1", + "pouchdb-utils": "7.3.1" + } + }, + "pouchdb-binary-utils": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/pouchdb-binary-utils/-/pouchdb-binary-utils-7.3.1.tgz", + "integrity": "sha512-crZJNfAEOnUoRk977Qtmk4cxEv6sNKllQ6vDDKgQrQLFjMUXma35EHzNyIJr1s76J77Q4sqKQAmxz9Y40yHGtw==", + "optional": true, + "requires": { + "buffer-from": "1.1.2" + } + }, + "pouchdb-collate": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/pouchdb-collate/-/pouchdb-collate-7.3.1.tgz", + "integrity": "sha512-o4gyGqDMLMSNzf6EDTr3eHaH/JRMoqRhdc+eV+oA8u00nTBtr9wD+jypVe2LbgKLJ4NWqx2qVkXiTiQdUFtsLQ==", + "optional": true + }, + "pouchdb-collections": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/pouchdb-collections/-/pouchdb-collections-7.3.1.tgz", + "integrity": "sha512-yUyDqR+OJmtwgExOSJegpBJXDLAEC84TWnbAYycyh+DZoA51Yw0+XVQF5Vh8Ii90/Ut2xo88fmrmp0t6kqom8w==", + "optional": true + }, + "pouchdb-debug": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/pouchdb-debug/-/pouchdb-debug-7.2.1.tgz", + "integrity": "sha512-eP3ht/AKavLF2RjTzBM6S9gaI2/apcW6xvaKRQhEdOfiANqerFuksFqHCal3aikVQuDO+cB/cw+a4RyJn/glBw==", + "optional": true, + "requires": { + "debug": "3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "optional": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "optional": true + } + } + }, + "pouchdb-errors": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/pouchdb-errors/-/pouchdb-errors-7.3.1.tgz", + "integrity": "sha512-Zktz4gnXEUcZcty8FmyvtYUYsHskoST05m6H5/E2gg/0mCfEXq/XeyyLkZHaZmqD0ZPS9yNmASB1VaFWEKEaDw==", + "optional": true, + "requires": { + "inherits": "2.0.4" + } + }, + "pouchdb-fetch": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/pouchdb-fetch/-/pouchdb-fetch-7.3.1.tgz", + "integrity": "sha512-205xAtvdHRPQ4fp1h9+RmT9oQabo9gafuPmWsS9aEl3ER54WbY8Vaj1JHZGbU4KtMTYvW7H5088zLS7Nrusuag==", + "optional": true, + "requires": { + "abort-controller": "3.0.0", + "fetch-cookie": "0.11.0", + "node-fetch": "2.6.7" + }, + "dependencies": { + "node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "optional": true, + "requires": { + "whatwg-url": "^5.0.0" + } + } + } + }, + "pouchdb-find": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/pouchdb-find/-/pouchdb-find-7.3.1.tgz", + "integrity": "sha512-AeqUfAVY1c7IFaY36BRT0vIz9r4VTKq/YOWTmiqndOZUQ/pDGxyO2fNFal6NN3PyYww0JijlD377cPvhnrhJVA==", + "optional": true, + "requires": { + "pouchdb-abstract-mapreduce": "7.3.1", + "pouchdb-collate": "7.3.1", + "pouchdb-errors": "7.3.1", + "pouchdb-fetch": "7.3.1", + "pouchdb-md5": "7.3.1", + "pouchdb-selector-core": "7.3.1", + "pouchdb-utils": "7.3.1" + } + }, + "pouchdb-json": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/pouchdb-json/-/pouchdb-json-7.3.1.tgz", + "integrity": "sha512-AyOKsmc85/GtHjMZyEacqzja8qLVfycS1hh1oskR+Bm5PIITX52Fb8zyi0hEetV6VC0yuGbn0RqiLjJxQePeqQ==", + "optional": true, + "requires": { + "vuvuzela": "1.0.3" + } + }, + "pouchdb-mapreduce-utils": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/pouchdb-mapreduce-utils/-/pouchdb-mapreduce-utils-7.3.1.tgz", + "integrity": "sha512-oUMcq82+4pTGQ6dtrhgORHOVHZSr6w/5tFIUGlv7RABIDvJarL4snMawADjlpiEwPdiQ/ESG8Fqt8cxqvqsIgg==", + "optional": true, + "requires": { + "argsarray": "0.0.1", + "inherits": "2.0.4", + "pouchdb-collections": "7.3.1", + "pouchdb-utils": "7.3.1" + } + }, + "pouchdb-md5": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/pouchdb-md5/-/pouchdb-md5-7.3.1.tgz", + "integrity": "sha512-aDV8ui/mprnL3xmt0gT/81DFtTtJiKyn+OxIAbwKPMfz/rDFdPYvF0BmDC9QxMMzGfkV+JJUjU6at0PPs2mRLg==", + "optional": true, + "requires": { + "pouchdb-binary-utils": "7.3.1", + "spark-md5": "3.0.2" + } + }, + "pouchdb-merge": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/pouchdb-merge/-/pouchdb-merge-7.3.1.tgz", + "integrity": "sha512-FeK3r35mKimokf2PQ2tUI523QWyZ4lYZ0Yd75FfSch/SPY6wIokz5XBZZ6PHdu5aOJsEKzoLUxr8CpSg9DhcAw==", + "optional": true + }, + "pouchdb-selector-core": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/pouchdb-selector-core/-/pouchdb-selector-core-7.3.1.tgz", + "integrity": "sha512-HBX+nNGXcaL9z0uNpwSMRq2GNZd3EZXW+fe9rJHS0hvJohjZL7aRJLoaXfEdHPRTNW+CpjM3Rny60eGekQdI/w==", + "optional": true, + "requires": { + "pouchdb-collate": "7.3.1", + "pouchdb-utils": "7.3.1" + } + }, + "pouchdb-utils": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/pouchdb-utils/-/pouchdb-utils-7.3.1.tgz", + "integrity": "sha512-R3hHBo1zTdTu/NFs3iqkcaQAPwhIH0gMIdfVKd5lbDYlmP26rCG5pdS+v7NuoSSFLJ4xxnaGV+Gjf4duYsJ8wQ==", + "optional": true, + "requires": { + "argsarray": "0.0.1", + "clone-buffer": "1.0.0", + "immediate": "3.3.0", + "inherits": "2.0.4", + "pouchdb-collections": "7.3.1", + "pouchdb-errors": "7.3.1", + "pouchdb-md5": "7.3.1", + "uuid": "8.3.2" + }, + "dependencies": { + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "optional": true + } + } + }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==" + }, + "proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "requires": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + } + }, + "proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "optional": true + }, + "prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", + "optional": true + }, + "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": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==" + }, + "pure-rand": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-5.0.5.tgz", + "integrity": "sha512-BwQpbqxSCBJVpamI6ydzcKqyFmnd5msMWUGvzXLm1aXvusbbgkbOto/EUPM00hjveJEaJtdbhUjKSzWRhQVkaw==" + }, + "qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "requires": { + "side-channel": "^1.0.4" + } + }, + "query-string": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", + "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", + "requires": { + "decode-uri-component": "^0.2.0", + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" + } + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "optional": true + }, + "quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==" + }, + "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" + } + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" + }, + "raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "requires": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + } + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha512-7BGwRHqt4s/uVbuyoeejRn4YmFnYZiFl4AuaeXHlgZf3sONF0SOGlxs2Pw8g6hCKupo08RafIO5YXFNOKTfwsQ==", + "requires": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + } + }, + "read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha512-WD9MTlNtI55IwYUS27iHh9tK3YoIVhxis8yKhLpTqWtml739uXc9NWTpxoHkfZf3+DkCCsXox94/VWZniuZm6A==", + "requires": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + }, + "dependencies": { + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA==", + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ==", + "requires": { + "pinkie-promise": "^2.0.0" + } + } + } + }, + "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" + } + }, + "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" + } + }, + "redux": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/redux/-/redux-3.7.2.tgz", + "integrity": "sha512-pNqnf9q1hI5HHZRBkj3bAngGZW/JMCmexDlOxw4XagXY2o1327nHH54LoTjiPJ0gizoqPDRqWyX/00g0hD6w+A==", + "requires": { + "lodash": "^4.2.1", + "lodash-es": "^4.2.1", + "loose-envify": "^1.1.0", + "symbol-observable": "^1.0.3" + } + }, + "redux-saga": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/redux-saga/-/redux-saga-1.0.0.tgz", + "integrity": "sha512-GvJWs/SzMvEQgeaw6sRMXnS2FghlvEGsHiEtTLpJqc/FHF3I5EE/B+Hq5lyHZ8LSoT2r/X/46uWvkdCnK9WgHA==", + "requires": { + "@redux-saga/core": "^1.0.0" + } + }, + "regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" + }, + "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": { + "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" + } + }, + "qs": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", + "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==" + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" + } + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==" + }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "optional": true + }, + "require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha512-IqSUtOVP4ksd1C/ej5zeEh/BIP2ajqpn8c5x+q99gvcIG/Qf0cud5raVnE/Dwd0ua9TXYDoDc0RE5hBSdz22Ug==" + }, + "reselect": { + "version": "4.1.8", + "resolved": "https://registry.npmjs.org/reselect/-/reselect-4.1.8.tgz", + "integrity": "sha512-ab9EmR80F/zQTMNeneUr4cv+jSwPJgIlvEmVwLerwrWVbpLlBuls9XHzIeTFy4cegU2NHBp3va0LKOzU5qFEYQ==" + }, + "reselect-tree": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/reselect-tree/-/reselect-tree-1.3.7.tgz", + "integrity": "sha512-kZN+C1cVJ6fFN2smSb0l4UvYZlRzttgnu183svH4NrU22cBY++ikgr2QT75Uuk4MYpv5gXSVijw4c5U6cx6GKg==", + "requires": { + "debug": "^3.1.0", + "json-pointer": "^0.6.1", + "reselect": "^4.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" + } + } + } + }, + "resolve": { + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", + "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", + "requires": { + "is-core-module": "^2.11.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "resolve-alpn": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", + "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==" + }, + "responselike": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz", + "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==", + "requires": { + "lowercase-keys": "^2.0.0" + }, + "dependencies": { + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" + } + } + }, + "restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "optional": true, + "requires": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + } + }, + "retry": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "optional": true + }, + "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" + } + }, + "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" + } + }, + "ripemd160-min": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/ripemd160-min/-/ripemd160-min-0.0.6.tgz", + "integrity": "sha512-+GcJgQivhs6S9qvLogusiTcS9kQUfgR75whKuy5jIhuiOfQuJ8fjqxV6EGD5duH1Y/FawFUMtMhyeq3Fbnib8A==" + }, + "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" + } + }, + "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==" + }, + "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.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "optional": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "requires": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + } + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + } + } + }, + "sentence-case": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-2.1.1.tgz", + "integrity": "sha512-ENl7cYHaK/Ktwk5OTD+aDbQ3uC8IByu/6Bkg+HDv8Mm+XnBnppVNalcfJTNsp1ibstKh030/JKQQWglDvtKwEQ==", + "requires": { + "no-case": "^2.2.0", + "upper-case-first": "^1.1.2" + } + }, + "serialize-javascript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "requires": { + "randombytes": "^2.1.0" + } + }, + "serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + } + }, + "servify": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/servify/-/servify-0.1.12.tgz", + "integrity": "sha512-/xE6GvsKKqyo1BAY+KxOWXcLpPsUUyji7Qg3bVD7hh1eRze5bR1uYiuDA/k3Gof1s9BTzQZEJK8sNcNGFIzeWw==", + "requires": { + "body-parser": "^1.16.0", + "cors": "^2.8.1", + "express": "^4.14.0", + "request": "^2.79.0", + "xhr": "^2.3.3" + } + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==" + }, + "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==" + }, + "setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "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" + } + }, + "sha3": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/sha3/-/sha3-2.1.4.tgz", + "integrity": "sha512-S8cNxbyb0UGUM2VhRD4Poe5N58gJnJsLJ5vC7FYWGUmGhcsj4++WaIOBFVDxlG0W3To6xBuiRh+i0Qp2oNCOtg==", + "requires": { + "buffer": "6.0.3" + }, + "dependencies": { + "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" + } + } + } + }, + "shallowequal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", + "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==" + }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "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==", + "optional": true + }, + "simple-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", + "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==" + }, + "simple-get": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-2.8.2.tgz", + "integrity": "sha512-Ijd/rV5o+mSBBs4F/x9oDPtTx9Zb6X9brmnXvMW4J7IR15ngi9q5xxqWBKU744jTZiaXtxaPL7uHG6vtN8kUkw==", + "requires": { + "decompress-response": "^3.3.0", + "once": "^1.3.1", + "simple-concat": "^1.0.0" + }, + "dependencies": { + "decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==", + "requires": { + "mimic-response": "^1.0.0" + } + } + } + }, + "snake-case": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-2.1.0.tgz", + "integrity": "sha512-FMR5YoPFwOLuh4rRz92dywJjyKYZNLpMn1R5ujVpIYkbA9p01fq8RMg0FkO4M+Yobt4MjHeLTJVm5xFFBHSV2Q==", + "requires": { + "no-case": "^2.2.0" + } + }, + "solc": { + "version": "0.4.26", + "resolved": "https://registry.npmjs.org/solc/-/solc-0.4.26.tgz", + "integrity": "sha512-o+c6FpkiHd+HPjmjEVpQgH7fqZ14tJpXhho+/bQXlXbliLIS/xjXb42Vxh+qQY1WCSTMQ0+a5vR9vi0MfhU6mA==", + "requires": { + "fs-extra": "^0.30.0", + "memorystream": "^0.3.1", + "require-from-string": "^1.1.0", + "semver": "^5.3.0", + "yargs": "^4.7.1" + }, + "dependencies": { + "fs-extra": { + "version": "0.30.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz", + "integrity": "sha512-UvSPKyhMn6LEd/WpUaV9C9t3zATuqoqfWc3QdPhPLb58prN9tqYPlPWi8Krxi44loBoUzlobqZ3+8tGpxxSzwA==", + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^2.1.0", + "klaw": "^1.0.0", + "path-is-absolute": "^1.0.0", + "rimraf": "^2.2.8" + } + }, + "jsonfile": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", + "integrity": "sha512-PKllAqbgLgxHaj8TElYymKCAgrASebJrWpTnEkOaTowt23VKXXN0sUeriJ+eh7y6ufb/CC5ap11pz71/cM0hUw==", + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "require-from-string": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-1.2.1.tgz", + "integrity": "sha512-H7AkJWMobeskkttHyhTVtS0fxpFLjxhbfMa6Bk3wimP7sdPRGL3EyCg3sAQenFfAe+xQ+oAc85Nmtvq0ROM83Q==" + }, + "semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==" + } + } + }, + "spark-md5": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/spark-md5/-/spark-md5-3.0.2.tgz", + "integrity": "sha512-wcFzz9cDfbuqe0FZzfi2or1sgyIrsDwmPwfZC4hiNidPdPINjeUwNfv5kldczoEAcjl9Y1L3SM7Uz2PUEQzxQw==", + "optional": true + }, + "spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==" + }, + "spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.13", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz", + "integrity": "sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==" + }, + "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" + } + }, + "statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" + }, + "strict-uri-encode": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", + "integrity": "sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==" + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==", + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==" + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "requires": { + "ansi-regex": "^2.0.0" + } + } + } + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "requires": { + "safe-buffer": "~5.2.0" + } + }, + "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-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==", + "requires": { + "is-utf8": "^0.2.0" + } + }, + "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" + } + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==" + }, + "sublevel-pouchdb": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/sublevel-pouchdb/-/sublevel-pouchdb-7.3.1.tgz", + "integrity": "sha512-n+4fK72F/ORdqPwoGgMGYeOrW2HaPpW9o9k80bT1B3Cim5BSvkKkr9WbWOWynni/GHkbCEdvLVFJL1ktosAdhQ==", + "optional": true, + "requires": { + "inherits": "2.0.4", + "level-codec": "9.0.2", + "ltgt": "2.2.1", + "readable-stream": "1.1.14" + }, + "dependencies": { + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==", + "optional": true, + "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==", + "optional": true + } + } + }, + "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" + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" + }, + "swap-case": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/swap-case/-/swap-case-1.1.2.tgz", + "integrity": "sha512-BAmWG6/bx8syfc6qXPprof3Mn5vQgf5dwdUNJhsNqU9WdPt5P+ES/wQ5bxfijy8zwZgZZHslC3iAsxsuQMCzJQ==", + "requires": { + "lower-case": "^1.1.1", + "upper-case": "^1.1.1" + } + }, + "swarm-js": { + "version": "0.1.42", + "resolved": "https://registry.npmjs.org/swarm-js/-/swarm-js-0.1.42.tgz", + "integrity": "sha512-BV7c/dVlA3R6ya1lMlSSNPLYrntt0LUq4YMgy3iwpCIc6rZnS5W2wUoctarZ5pXlpKtxDDf9hNziEkcfrxdhqQ==", + "requires": { + "bluebird": "^3.5.0", + "buffer": "^5.0.5", + "eth-lib": "^0.1.26", + "fs-extra": "^4.0.2", + "got": "^11.8.5", + "mime-types": "^2.1.16", + "mkdirp-promise": "^5.0.1", + "mock-fs": "^4.1.0", + "setimmediate": "^1.0.5", + "tar": "^4.0.2", + "xhr-request": "^1.0.1" + }, + "dependencies": { + "@szmarczak/http-timer": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", + "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", + "requires": { + "defer-to-connect": "^2.0.0" + } + }, + "cacheable-lookup": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", + "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==" + }, + "fs-extra": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", + "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==", + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "got": { + "version": "11.8.6", + "resolved": "https://registry.npmjs.org/got/-/got-11.8.6.tgz", + "integrity": "sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==", + "requires": { + "@sindresorhus/is": "^4.0.0", + "@szmarczak/http-timer": "^4.0.5", + "@types/cacheable-request": "^6.0.1", + "@types/responselike": "^1.0.0", + "cacheable-lookup": "^5.0.3", + "cacheable-request": "^7.0.2", + "decompress-response": "^6.0.0", + "http2-wrapper": "^1.0.0-beta.5.2", + "lowercase-keys": "^2.0.0", + "p-cancelable": "^2.0.0", + "responselike": "^2.0.0" + } + }, + "http2-wrapper": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", + "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", + "requires": { + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.0.0" + } + }, + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" + }, + "p-cancelable": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", + "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==" + } + } + }, + "symbol-observable": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", + "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==" + }, + "tar": { + "version": "4.4.19", + "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.19.tgz", + "integrity": "sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==", + "requires": { + "chownr": "^1.1.4", + "fs-minipass": "^1.2.7", + "minipass": "^2.9.0", + "minizlib": "^1.3.3", + "mkdirp": "^0.5.5", + "safe-buffer": "^5.2.1", + "yallist": "^3.1.1" + }, + "dependencies": { + "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" + } + } + } + }, + "testrpc": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/testrpc/-/testrpc-0.0.1.tgz", + "integrity": "sha512-afH1hO+SQ/VPlmaLUFj2636QMeDvPCeQMc/9RBMW0IfjNe9gFD9Ra3ShqYkB7py0do1ZcCna/9acHyzTJ+GcNA==" + }, + "through2": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.2.tgz", + "integrity": "sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==", + "optional": true, + "requires": { + "inherits": "^2.0.4", + "readable-stream": "2 || 3" + } + }, + "timed-out": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", + "integrity": "sha512-G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA==" + }, + "tiny-typed-emitter": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tiny-typed-emitter/-/tiny-typed-emitter-2.1.0.tgz", + "integrity": "sha512-qVtvMxeXbVej0cQWKqVSSAHmKZEHAvxdF8HEUBFWts8h+xEo5m/lEiPakuyZ3BnCBjOD8i24kzNOiOLLgsSxhA==", + "optional": true + }, + "title-case": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/title-case/-/title-case-2.1.1.tgz", + "integrity": "sha512-EkJoZ2O3zdCz3zJsYCsxyq2OC5hrxR9mfdd5I+w8h/tmFfeOxJ+vvkxsKxdmN0WtS9zLdHEgfgVOiMVgv+Po4Q==", + "requires": { + "no-case": "^2.2.0", + "upper-case": "^1.0.3" + } + }, + "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" + } + }, + "toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" + }, + "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" + } + }, + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + "truffle": { + "version": "5.10.2", + "resolved": "https://registry.npmjs.org/truffle/-/truffle-5.10.2.tgz", + "integrity": "sha512-NwcQ49MHv/qegi6YVEH3PSPcaRjf4zDmYw5G7o4IBRjBzkhX9uE0LX0R1FU+aCGhhnLQCmPrUiZnQHsAD9dJUg==", + "requires": { + "@truffle/db": "^2.0.31", + "@truffle/db-loader": "^0.2.31", + "@truffle/debugger": "^12.1.0", + "app-module-path": "^2.2.0", + "ganache": "7.8.0", + "mocha": "10.1.0", + "original-require": "^1.0.1" + } + }, + "tslib": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", + "optional": true + }, + "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": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", + "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" + }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + } + }, + "typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "requires": { + "is-typedarray": "^1.0.0" + } + }, + "typescript-compare": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/typescript-compare/-/typescript-compare-0.0.2.tgz", + "integrity": "sha512-8ja4j7pMHkfLJQO2/8tut7ub+J3Lw2S3061eJLFQcvs3tsmJKp8KG5NtpLn7KcY2w08edF74BSVN7qJS0U6oHA==", + "requires": { + "typescript-logic": "^0.0.0" + } + }, + "typescript-logic": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/typescript-logic/-/typescript-logic-0.0.0.tgz", + "integrity": "sha512-zXFars5LUkI3zP492ls0VskH3TtdeHCqu0i7/duGt60i5IGPIpAHE/DWo5FqJ6EjQ15YKXrt+AETjv60Dat34Q==" + }, + "typescript-tuple": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/typescript-tuple/-/typescript-tuple-2.2.1.tgz", + "integrity": "sha512-Zcr0lbt8z5ZdEzERHAMAniTiIKerFCMgd7yjq1fPnDJ43et/k9twIFQMUYff9k5oXcsQ0WpvFcgzK2ZKASoW6Q==", + "requires": { + "typescript-compare": "^0.0.2" + } + }, + "ultron": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", + "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==" + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==" + }, + "upper-case": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", + "integrity": "sha512-WRbjgmYzgXkCV7zNVpy5YgrHgbBv126rMALQQMrmzOVC4GM2waQ9x7xtm8VU+1yF2kWyPzI9zbZ48n4vSxwfSA==" + }, + "upper-case-first": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-1.1.2.tgz", + "integrity": "sha512-wINKYvI3Db8dtjikdAqoBbZoP6Q+PZUyfMR7pmwHzjC2quzSkUq5DmPrTtPEqHaz8AGtmsB4TqwapMTM1QAQOQ==", + "requires": { + "upper-case": "^1.1.1" + } + }, + "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" + } + }, + "url-set-query": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/url-set-query/-/url-set-query-1.0.0.tgz", + "integrity": "sha512-3AChu4NiXquPfeckE5R5cGdiHCMWJx1dwCWOmWIL4KHAziJNOFIYJlpGFeKDvwLPHovZRCxK3cYlwzqI9Vp+Gg==" + }, + "utf-8-validate": { + "version": "5.0.10", + "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.10.tgz", + "integrity": "sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==", + "requires": { + "node-gyp-build": "^4.3.0" + } + }, + "utf8": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/utf8/-/utf8-3.0.0.tgz", + "integrity": "sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ==" + }, + "util": { + "version": "0.12.5", + "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", + "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", + "requires": { + "inherits": "^2.0.3", + "is-arguments": "^1.0.4", + "is-generator-function": "^1.0.7", + "is-typed-array": "^1.1.3", + "which-typed-array": "^1.1.2" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==" + }, + "uuid": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz", + "integrity": "sha512-nWg9+Oa3qD2CQzHIP4qKUqwNfzKn8P0LtFhotaCTFchsV7ZfDhAybeip/HZVeMIpZi9JgY1E3nUlwaCmZT1sEg==", + "optional": true + }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "value-or-promise": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.11.tgz", + "integrity": "sha512-41BrgH+dIbCFXClcSapVs5M6GkENd3gQOJpEfPDNa71LsUGMXDL0jMWpI/Rh7WhX+Aalfz2TTS3Zt5pUsbnhLg==", + "optional": true + }, + "varint": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", + "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==" + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==" + }, + "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" + } + }, + "vuvuzela": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/vuvuzela/-/vuvuzela-1.0.3.tgz", + "integrity": "sha512-Tm7jR1xTzBbPW+6y1tknKiEhz04Wf/1iZkcTJjSFcpNko43+dFW6+OOeQe9taJIug3NdfUAjFKgUSyQrIKaDvQ==", + "optional": true + }, + "web3": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3/-/web3-1.10.0.tgz", + "integrity": "sha512-YfKY9wSkGcM8seO+daR89oVTcbu18NsVfvOngzqMYGUU0pPSQmE57qQDvQzUeoIOHAnXEBNzrhjQJmm8ER0rng==", + "requires": { + "web3-bzz": "1.10.0", + "web3-core": "1.10.0", + "web3-eth": "1.10.0", + "web3-eth-personal": "1.10.0", + "web3-net": "1.10.0", + "web3-shh": "1.10.0", + "web3-utils": "1.10.0" + } + }, + "web3-bzz": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.10.0.tgz", + "integrity": "sha512-o9IR59io3pDUsXTsps5pO5hW1D5zBmg46iNc2t4j2DkaYHNdDLwk2IP9ukoM2wg47QILfPEJYzhTfkS/CcX0KA==", + "requires": { + "@types/node": "^12.12.6", + "got": "12.1.0", + "swarm-js": "^0.1.40" + }, + "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==" + } + } + }, + "web3-core": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.10.0.tgz", + "integrity": "sha512-fWySwqy2hn3TL89w5TM8wXF1Z2Q6frQTKHWmP0ppRQorEK8NcHJRfeMiv/mQlSKoTS1F6n/nv2uyZsixFycjYQ==", + "requires": { + "@types/bn.js": "^5.1.1", + "@types/node": "^12.12.6", + "bignumber.js": "^9.0.0", + "web3-core-helpers": "1.10.0", + "web3-core-method": "1.10.0", + "web3-core-requestmanager": "1.10.0", + "web3-utils": "1.10.0" + }, + "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==" + } + } + }, + "web3-core-helpers": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.10.0.tgz", + "integrity": "sha512-pIxAzFDS5vnbXvfvLSpaA1tfRykAe9adw43YCKsEYQwH0gCLL0kMLkaCX3q+Q8EVmAh+e1jWL/nl9U0de1+++g==", + "requires": { + "web3-eth-iban": "1.10.0", + "web3-utils": "1.10.0" + } + }, + "web3-core-method": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.10.0.tgz", + "integrity": "sha512-4R700jTLAMKDMhQ+nsVfIXvH6IGJlJzGisIfMKWAIswH31h5AZz7uDUW2YctI+HrYd+5uOAlS4OJeeT9bIpvkA==", + "requires": { + "@ethersproject/transactions": "^5.6.2", + "web3-core-helpers": "1.10.0", + "web3-core-promievent": "1.10.0", + "web3-core-subscriptions": "1.10.0", + "web3-utils": "1.10.0" + } + }, + "web3-core-promievent": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.10.0.tgz", + "integrity": "sha512-68N7k5LWL5R38xRaKFrTFT2pm2jBNFaM4GioS00YjAKXRQ3KjmhijOMG3TICz6Aa5+6GDWYelDNx21YAeZ4YTg==", + "requires": { + "eventemitter3": "4.0.4" + } + }, + "web3-core-requestmanager": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.10.0.tgz", + "integrity": "sha512-3z/JKE++Os62APml4dvBM+GAuId4h3L9ckUrj7ebEtS2AR0ixyQPbrBodgL91Sv7j7cQ3Y+hllaluqjguxvSaQ==", + "requires": { + "util": "^0.12.5", + "web3-core-helpers": "1.10.0", + "web3-providers-http": "1.10.0", + "web3-providers-ipc": "1.10.0", + "web3-providers-ws": "1.10.0" + } + }, + "web3-core-subscriptions": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.10.0.tgz", + "integrity": "sha512-HGm1PbDqsxejI075gxBc5OSkwymilRWZufIy9zEpnWKNmfbuv5FfHgW1/chtJP6aP3Uq2vHkvTDl3smQBb8l+g==", + "requires": { + "eventemitter3": "4.0.4", + "web3-core-helpers": "1.10.0" + } + }, + "web3-eth": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.10.0.tgz", + "integrity": "sha512-Z5vT6slNMLPKuwRyKGbqeGYC87OAy8bOblaqRTgg94CXcn/mmqU7iPIlG4506YdcdK3x6cfEDG7B6w+jRxypKA==", + "requires": { + "web3-core": "1.10.0", + "web3-core-helpers": "1.10.0", + "web3-core-method": "1.10.0", + "web3-core-subscriptions": "1.10.0", + "web3-eth-abi": "1.10.0", + "web3-eth-accounts": "1.10.0", + "web3-eth-contract": "1.10.0", + "web3-eth-ens": "1.10.0", + "web3-eth-iban": "1.10.0", + "web3-eth-personal": "1.10.0", + "web3-net": "1.10.0", + "web3-utils": "1.10.0" + } + }, + "web3-eth-abi": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.10.0.tgz", + "integrity": "sha512-cwS+qRBWpJ43aI9L3JS88QYPfFcSJJ3XapxOQ4j40v6mk7ATpA8CVK1vGTzpihNlOfMVRBkR95oAj7oL6aiDOg==", + "requires": { + "@ethersproject/abi": "^5.6.3", + "web3-utils": "1.10.0" + } + }, + "web3-eth-accounts": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.10.0.tgz", + "integrity": "sha512-wiq39Uc3mOI8rw24wE2n15hboLE0E9BsQLdlmsL4Zua9diDS6B5abXG0XhFcoNsXIGMWXVZz4TOq3u4EdpXF/Q==", + "requires": { + "@ethereumjs/common": "2.5.0", + "@ethereumjs/tx": "3.3.2", + "eth-lib": "0.2.8", + "ethereumjs-util": "^7.1.5", + "scrypt-js": "^3.0.1", + "uuid": "^9.0.0", + "web3-core": "1.10.0", + "web3-core-helpers": "1.10.0", + "web3-core-method": "1.10.0", + "web3-utils": "1.10.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==" + }, + "eth-lib": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", + "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", + "requires": { + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "xhr-request-promise": "^0.1.2" + } + }, + "uuid": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", + "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==" + } + } + }, + "web3-eth-contract": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.10.0.tgz", + "integrity": "sha512-MIC5FOzP/+2evDksQQ/dpcXhSqa/2hFNytdl/x61IeWxhh6vlFeSjq0YVTAyIzdjwnL7nEmZpjfI6y6/Ufhy7w==", + "requires": { + "@types/bn.js": "^5.1.1", + "web3-core": "1.10.0", + "web3-core-helpers": "1.10.0", + "web3-core-method": "1.10.0", + "web3-core-promievent": "1.10.0", + "web3-core-subscriptions": "1.10.0", + "web3-eth-abi": "1.10.0", + "web3-utils": "1.10.0" + } + }, + "web3-eth-ens": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.10.0.tgz", + "integrity": "sha512-3hpGgzX3qjgxNAmqdrC2YUQMTfnZbs4GeLEmy8aCWziVwogbuqQZ+Gzdfrym45eOZodk+lmXyLuAdqkNlvkc1g==", + "requires": { + "content-hash": "^2.5.2", + "eth-ens-namehash": "2.0.8", + "web3-core": "1.10.0", + "web3-core-helpers": "1.10.0", + "web3-core-promievent": "1.10.0", + "web3-eth-abi": "1.10.0", + "web3-eth-contract": "1.10.0", + "web3-utils": "1.10.0" + } + }, + "web3-eth-iban": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.10.0.tgz", + "integrity": "sha512-0l+SP3IGhInw7Q20LY3IVafYEuufo4Dn75jAHT7c2aDJsIolvf2Lc6ugHkBajlwUneGfbRQs/ccYPQ9JeMUbrg==", + "requires": { + "bn.js": "^5.2.1", + "web3-utils": "1.10.0" + } + }, + "web3-eth-personal": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.10.0.tgz", + "integrity": "sha512-anseKn98w/d703eWq52uNuZi7GhQeVjTC5/svrBWEKob0WZ5kPdo+EZoFN0sp5a5ubbrk/E0xSl1/M5yORMtpg==", + "requires": { + "@types/node": "^12.12.6", + "web3-core": "1.10.0", + "web3-core-helpers": "1.10.0", + "web3-core-method": "1.10.0", + "web3-net": "1.10.0", + "web3-utils": "1.10.0" + }, + "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==" + } + } + }, + "web3-net": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.10.0.tgz", + "integrity": "sha512-NLH/N3IshYWASpxk4/18Ge6n60GEvWBVeM8inx2dmZJVmRI6SJIlUxbL8jySgiTn3MMZlhbdvrGo8fpUW7a1GA==", + "requires": { + "web3-core": "1.10.0", + "web3-core-method": "1.10.0", + "web3-utils": "1.10.0" + } + }, + "web3-providers-http": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.10.0.tgz", + "integrity": "sha512-eNr965YB8a9mLiNrkjAWNAPXgmQWfpBfkkn7tpEFlghfww0u3I0tktMZiaToJVcL2+Xq+81cxbkpeWJ5XQDwOA==", + "requires": { + "abortcontroller-polyfill": "^1.7.3", + "cross-fetch": "^3.1.4", + "es6-promise": "^4.2.8", + "web3-core-helpers": "1.10.0" + } + }, + "web3-providers-ipc": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.10.0.tgz", + "integrity": "sha512-OfXG1aWN8L1OUqppshzq8YISkWrYHaATW9H8eh0p89TlWMc1KZOL9vttBuaBEi96D/n0eYDn2trzt22bqHWfXA==", + "requires": { + "oboe": "2.1.5", + "web3-core-helpers": "1.10.0" + } + }, + "web3-providers-ws": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.10.0.tgz", + "integrity": "sha512-sK0fNcglW36yD5xjnjtSGBnEtf59cbw4vZzJ+CmOWIKGIR96mP5l684g0WD0Eo+f4NQc2anWWXG74lRc9OVMCQ==", + "requires": { + "eventemitter3": "4.0.4", + "web3-core-helpers": "1.10.0", + "websocket": "^1.0.32" + } + }, + "web3-shh": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.10.0.tgz", + "integrity": "sha512-uNUUuNsO2AjX41GJARV9zJibs11eq6HtOe6Wr0FtRUcj8SN6nHeYIzwstAvJ4fXA53gRqFMTxdntHEt9aXVjpg==", + "requires": { + "web3-core": "1.10.0", + "web3-core-method": "1.10.0", + "web3-core-subscriptions": "1.10.0", + "web3-net": "1.10.0" + } + }, + "web3-utils": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.10.0.tgz", + "integrity": "sha512-kSaCM0uMcZTNUSmn5vMEhlo02RObGNRRCkdX0V9UTAU0+lrvn0HSaudyCo6CQzuXUsnuY2ERJGCGPfeWmv19Rg==", + "requires": { + "bn.js": "^5.2.1", + "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" + } + }, + "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==" + }, + "websocket": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.34.tgz", + "integrity": "sha512-PRDso2sGwF6kM75QykIesBijKSVceR6jL2G8NGYyq2XrItNC2P5/qL5XeR056GhA+Ly7JMFvJb9I312mJfmqnQ==", + "requires": { + "bufferutil": "^4.0.1", + "debug": "^2.2.0", + "es5-ext": "^0.10.50", + "typedarray-to-buffer": "^3.1.5", + "utf-8-validate": "^5.0.2", + "yaeti": "^0.0.6" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + } + } + }, + "whatwg-mimetype": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", + "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==", + "optional": true + }, + "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-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", + "integrity": "sha512-F6+WgncZi/mJDrammbTuHe1q0R5hOXv/mBaiNA2TCNT/LTHusX0V+CJnj9XT8ki5ln2UZyyddDgHfCzyrOH7MQ==" + }, + "which-typed-array": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.10.tgz", + "integrity": "sha512-uxoA5vLUfRPdjCuJ1h5LlYdmTLbYfums398v3WLkM+i/Wltl2/XyZpQWKbN++ck5L64SR/grOHqtXCUKmlZPNA==", + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0", + "is-typed-array": "^1.1.10" + } + }, + "window-size": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.2.0.tgz", + "integrity": "sha512-UD7d8HFA2+PZsbKyaOCEy8gMh1oDtHgJh1LfgjQ4zVXmYjAT/kvz3PueITKuqDiIXQe7yzpPnxX3lNc+AhQMyw==" + }, + "workerpool": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", + "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==" + }, + "wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha512-vAaEaDM946gbNpH5pLVNR+vX2ht6n0Bt3GXwVB1AuAqZosOvHNF3P7wDnh8KLkSqgUh0uh77le7Owgoz+Z9XBw==", + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==" + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "requires": { + "ansi-regex": "^2.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==" + }, + "write-stream": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/write-stream/-/write-stream-0.4.3.tgz", + "integrity": "sha512-IJrvkhbAnj89W/GAVdVgbnPiVw5Ntg/B4tc/MUCIEwj/g6JIww1DWJyB/yBMT3yw2/TkT6IUZ0+IYef3flEw8A==", + "optional": true, + "requires": { + "readable-stream": "~0.0.2" + }, + "dependencies": { + "readable-stream": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-0.0.4.tgz", + "integrity": "sha512-azrivNydKRYt7zwLV5wWUK7YzKTWs3q87xSmY6DlHapPrCvaT6ZrukvM5erV+yCSSPmZT8zkSdttOHQpWWm9zw==", + "optional": true + } + } + }, + "ws": { + "version": "7.5.9", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", + "optional": true + }, + "xhr": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.6.0.tgz", + "integrity": "sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==", + "requires": { + "global": "~4.4.0", + "is-function": "^1.0.1", + "parse-headers": "^2.0.0", + "xtend": "^4.0.0" + } + }, + "xhr-request": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/xhr-request/-/xhr-request-1.1.0.tgz", + "integrity": "sha512-Y7qzEaR3FDtL3fP30k9wO/e+FBnBByZeybKOhASsGP30NIkRAAkKD/sCnLvgEfAIEC1rcmK7YG8f4oEnIrrWzA==", + "requires": { + "buffer-to-arraybuffer": "^0.0.5", + "object-assign": "^4.1.1", + "query-string": "^5.0.1", + "simple-get": "^2.7.0", + "timed-out": "^4.0.1", + "url-set-query": "^1.0.0", + "xhr": "^2.0.4" + } + }, + "xhr-request-promise": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/xhr-request-promise/-/xhr-request-promise-0.1.3.tgz", + "integrity": "sha512-YUBytBsuwgitWtdRzXDDkWAXzhdGB8bYm0sSzMPZT7Z2MBjMSTHFsyCT1yCRATY+XC69DUrQraRAEgcoCRaIPg==", + "requires": { + "xhr-request": "^1.1.0" + } + }, + "xmlhttprequest": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz", + "integrity": "sha512-58Im/U0mlVBLM38NdZjHyhuMtCqa61469k2YP/AaPbvCoV9aQGUpbJBj1QRm2ytRiVQBD/fsw7L2bJGDVQswBA==", + "optional": true + }, + "xss": { + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/xss/-/xss-1.0.14.tgz", + "integrity": "sha512-og7TEJhXvn1a7kzZGQ7ETjdQVS2UfZyTlsEdDOqvQF7GoxNfY+0YLCzBy1kPdsDDx4QuNAonQPddpsn6Xl/7sw==", + "optional": true, + "requires": { + "commander": "^2.20.3", + "cssfilter": "0.0.10" + } + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" + }, + "y18n": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz", + "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==" + }, + "yaeti": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz", + "integrity": "sha512-MvQa//+KcZCUkBTIC9blM+CU9J2GzuTytsOUwf2lidtvkx/6gnEp1QvJv34t9vdjhFmha/mUiNDbN0D0mJWdug==" + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + }, + "yargs": { + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-4.8.1.tgz", + "integrity": "sha512-LqodLrnIDM3IFT+Hf/5sxBnEGECrfdC1uIbgZeJmESCSo4HoCAaKEus8MylXHAkdacGc0ye+Qa+dpkuom8uVYA==", + "requires": { + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "lodash.assign": "^4.0.3", + "os-locale": "^1.4.0", + "read-pkg-up": "^1.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^1.0.1", + "which-module": "^1.0.0", + "window-size": "^0.2.0", + "y18n": "^3.2.1", + "yargs-parser": "^2.4.1" + } + }, + "yargs-parser": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-2.4.1.tgz", + "integrity": "sha512-9pIKIJhnI5tonzG6OnCFlz/yln8xHYcGl+pn3xR0Vzff0vzN1PbNRaelgfgRUwZ3s4i3jvxT9WhmUGL4whnasA==", + "requires": { + "camelcase": "^3.0.0", + "lodash.assign": "^4.0.6" + } + }, + "yargs-unparser": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", + "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", + "requires": { + "camelcase": "^6.0.0", + "decamelize": "^4.0.0", + "flat": "^5.0.2", + "is-plain-obj": "^2.1.0" + }, + "dependencies": { + "camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==" + }, + "decamelize": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", + "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==" + } + } + }, + "yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==" + } + } +} diff --git a/examples/contract-erc20/truffle/package.json b/examples/contract-erc20/truffle/package.json new file mode 100644 index 0000000..e3288a3 --- /dev/null +++ b/examples/contract-erc20/truffle/package.json @@ -0,0 +1,8 @@ +{ + "name": "substrate-evm-contracts", + "version": "0.0.0", + "dependencies": { + "@openzeppelin/contracts": "^4.9.6", + "truffle": "^5.10.2" + } +} diff --git a/examples/contract-erc20/truffle/truffle-config.js b/examples/contract-erc20/truffle/truffle-config.js new file mode 100644 index 0000000..3865690 --- /dev/null +++ b/examples/contract-erc20/truffle/truffle-config.js @@ -0,0 +1,99 @@ +/** + * Use this file to configure your truffle project. It's seeded with some + * common settings for different networks and features like migrations, + * compilation and testing. Uncomment the ones you need or modify + * them to suit your project as necessary. + * + * More information about configuration can be found at: + * + * truffleframework.com/docs/advanced/configuration + * + * To deploy via Infura you'll need a wallet provider (like truffle-hdwallet-provider) + * to sign your transactions before they're sent to a remote public node. Infura accounts + * are available for free at: infura.io/register. + * + * You'll also need a mnemonic - the twelve word phrase the wallet uses to generate + * public/private key pairs. If you're publishing your code to GitHub make sure you load this + * phrase from a file you've .gitignored so it doesn't accidentally become public. + * + */ + +// const HDWalletProvider = require('truffle-hdwallet-provider'); +// const infuraKey = "fj4jll3k....."; +// +// const fs = require('fs'); +// const mnemonic = fs.readFileSync(".secret").toString().trim(); + +module.exports = { + /** + * Networks define how you connect to your ethereum client and let you set the + * defaults web3 uses to send transactions. If you don't specify one truffle + * will spin up a development blockchain for you on port 9545 when you + * run `develop` or `test`. You can ask a truffle command to use a specific + * network from the command line, e.g + * + * $ truffle test --network + */ + + networks: { + // Useful for testing. The `development` name is special - truffle uses it by default + // if it's defined here and no other network is specified at the command line. + // You should run a client (like ganache-cli, geth or parity) in a separate terminal + // tab if you use this network and you must also set the `host`, `port` and `network_id` + // options below to some value. + // + // development: { + // host: "127.0.0.1", // Localhost (default: none) + // port: 8545, // Standard Ethereum port (default: none) + // network_id: "*", // Any network (default: none) + // }, + + // Another network with more advanced options... + // advanced: { + // port: 8777, // Custom port + // network_id: 1342, // Custom network + // gas: 8500000, // Gas sent with each transaction (default: ~6700000) + // gasPrice: 20000000000, // 20 gwei (in wei) (default: 100 gwei) + // from:
    , // Account to send txs from (default: accounts[0]) + // websockets: true // Enable EventEmitter interface for web3 (default: false) + // }, + + // Useful for deploying to a public network. + // NB: It's important to wrap the provider as a function. + // ropsten: { + // provider: () => new HDWalletProvider(mnemonic, `https://ropsten.infura.io/v3/YOUR-PROJECT-ID`), + // network_id: 3, // Ropsten's id + // gas: 5500000, // Ropsten has a lower block limit than mainnet + // confirmations: 2, // # of confs to wait between deployments. (default: 0) + // timeoutBlocks: 200, // # of blocks before a deployment times out (minimum/default: 50) + // skipDryRun: true // Skip dry run before migrations? (default: false for public nets ) + // }, + + // Useful for private networks + // private: { + // provider: () => new HDWalletProvider(mnemonic, `https://network.io`), + // network_id: 2111, // This network is yours, in the cloud. + // production: true // Treats this network as if it was a public net. (default: false) + // } + }, + + // Set default mocha options here, use special reporters etc. + mocha: { + // timeout: 100000 + }, + + // Configure your compilers + compilers: { + solc: { + // version: "0.5.1", // Fetch exact version from solc-bin (default: truffle's version) + // docker: true, // Use "0.5.1" you've installed locally with docker (default: false) + // settings: { // See the solidity docs for advice about optimization and evmVersion + // optimizer: { + // enabled: false, + // runs: 200 + // }, + // evmVersion: "byzantium" + // } + } + } +} diff --git a/examples/contract-erc20/tsconfig.json b/examples/contract-erc20/tsconfig.json new file mode 100644 index 0000000..c546112 --- /dev/null +++ b/examples/contract-erc20/tsconfig.json @@ -0,0 +1,5 @@ +{ + "compilerOptions": { + "esModuleInterop": true + } +} diff --git a/examples/contract-hello/.gitignore b/examples/contract-hello/.gitignore new file mode 100644 index 0000000..c2658d7 --- /dev/null +++ b/examples/contract-hello/.gitignore @@ -0,0 +1 @@ +node_modules/ diff --git a/examples/contract-hello/Hello.sol b/examples/contract-hello/Hello.sol new file mode 100644 index 0000000..0c43439 --- /dev/null +++ b/examples/contract-hello/Hello.sol @@ -0,0 +1,11 @@ +pragma solidity =0.5.15; + +contract Hello { + event Said(string message); + address public owner; + + constructor() public { + owner = msg.sender; + emit Said("Hello, world!"); + } +} diff --git a/examples/contract-hello/index.js b/examples/contract-hello/index.js new file mode 100644 index 0000000..4983f7d --- /dev/null +++ b/examples/contract-hello/index.js @@ -0,0 +1,23 @@ +const Web3 = require('web3'); +const web3 = new Web3('http://127.0.0.1:8545'); + +const ABI = [{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"message","type":"string"}],"name":"Said","type":"event"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}]; +const BYTECODE = "0x608060405234801561001057600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fc68045c3c562488255b55aa2c4c7849de001859ff0d8a36a75c2d5ed80100fb660405180806020018281038252600d8152602001807f48656c6c6f2c20776f726c64210000000000000000000000000000000000000081525060200191505060405180910390a160cf806100c76000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c80638da5cb5b14602d575b600080fd5b60336075565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff168156fea265627a7a72315820fae816ad954005c42bea7bc7cb5b19f7fd5d3a250715ca2023275c9ca7ce644064736f6c634300050f0032"; + +const main = async () => { + const devAccount = web3.eth.accounts.create(); + + const createTransaction = await web3.eth.accounts.signTransaction({ + from: devAccount.address, + data: BYTECODE, + value: "0x00", + gasPrice: "0x00", + gas: "0x100000", + }, devAccount.privateKey); + console.log(createTransaction); + + const createReceipt = await web3.eth.sendSignedTransaction(createTransaction.rawTransaction); + console.log("Contract deployed at address", createReceipt.contractAddress); +}; + +main(); diff --git a/examples/contract-hello/package-lock.json b/examples/contract-hello/package-lock.json new file mode 100644 index 0000000..5cdc1a3 --- /dev/null +++ b/examples/contract-hello/package-lock.json @@ -0,0 +1,805 @@ +{ + "name": "frontier-example-contract-hello", + "version": "0.1.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@adraffy/ens-normalize": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/@adraffy/ens-normalize/-/ens-normalize-1.9.2.tgz", + "integrity": "sha512-0h+FrQDqe2Wn+IIGFkTCd4aAwTJ+7834Ek1COohCyV26AXhwQ7WQaz+4F/nLOeVl/3BtWHOHLPsq46V8YB46Eg==" + }, + "@ethereumjs/rlp": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@ethereumjs/rlp/-/rlp-4.0.1.tgz", + "integrity": "sha512-tqsQiBQDQdmPWE1xkkBq4rlSW5QZpLOUJ5RJh2/9fug+q9tnUhuZoVLk7s0scUIKTOzEtR72DFBXI4WiZcMpvw==" + }, + "@ethersproject/abi": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.7.0.tgz", + "integrity": "sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA==", + "requires": { + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "@ethersproject/abstract-provider": { + "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" + } + }, + "@noble/curves": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.0.0.tgz", + "integrity": "sha512-2upgEu0iLiDVDZkNLeFV2+ht0BAVgQnEmCk6JsOch9Rp8xfkMCbvbAZlA2pBHQc73dbl+vFOXfqkf4uemdn0bw==", + "requires": { + "@noble/hashes": "1.3.0" + } + }, + "@noble/hashes": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.0.tgz", + "integrity": "sha512-ilHEACi9DwqJB0pw7kv+Apvh50jiiSyR/cQ3y4W7lOR5mhvn/50FLUfsnfJz0BDZtl/RR16kXvptiv6q1msYZg==" + }, + "@scure/base": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.1.tgz", + "integrity": "sha512-ZxOhsSyxYwLJj3pLZCefNitxsj093tb2vq90mp2txoYeBqbcjDjqFhyM8eUjq/uFm6zJ+mUuqxlS2FkuSY1MTA==" + }, + "@scure/bip32": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.3.0.tgz", + "integrity": "sha512-bcKpo1oj54hGholplGLpqPHRbIsnbixFtc06nwuNM5/dwSXOq/AAYoIBRsBmnZJSdfeNW5rnff7NTAz3ZCqR9Q==", + "requires": { + "@noble/curves": "~1.0.0", + "@noble/hashes": "~1.3.0", + "@scure/base": "~1.1.0" + } + }, + "@scure/bip39": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.2.0.tgz", + "integrity": "sha512-SX/uKq52cuxm4YFXWFaVByaSHJh2w3BnokVSeUJVCv6K7WulT9u2BuNRBhuFl8vAuYnzx9bEu9WgpcNYTrYieg==", + "requires": { + "@noble/hashes": "~1.3.0", + "@scure/base": "~1.1.0" + } + }, + "@types/node": { + "version": "20.4.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.4.1.tgz", + "integrity": "sha512-JIzsAvJeA/5iY6Y/OxZbv1lUcc8dNSE77lb2gnBH+/PJ3lFR1Ccvgwl5JWnHAkNHcRsT0TbpVOsiMKZ1F/yyJg==" + }, + "@types/ws": { + "version": "8.5.5", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.5.tgz", + "integrity": "sha512-lwhs8hktwxSjf9UaZ9tG5M03PGogvFaH8gUgLNbN9HKIg0dvv6q+gkSuJ8HN4/VbyxkuLzCjlN7GquQ0gUJfIg==", + "requires": { + "@types/node": "*" + } + }, + "available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==" + }, + "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==" + }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==" + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "crc-32": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", + "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==" + }, + "cross-fetch": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.8.tgz", + "integrity": "sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==", + "requires": { + "node-fetch": "^2.6.12" + } + }, + "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==" + } + } + }, + "ethereum-cryptography": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-2.0.0.tgz", + "integrity": "sha512-g25m4EtfQGjstWgVE1aIz7XYYjf3kH5kG17ULWVB5dH6uLahsoltOhACzSxyDV+fhn4gbR4xRrOXGe6r2uh4Bg==", + "requires": { + "@noble/curves": "1.0.0", + "@noble/hashes": "1.3.0", + "@scure/bip32": "1.3.0", + "@scure/bip39": "1.2.0" + } + }, + "for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "requires": { + "is-callable": "^1.1.3" + } + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "generate-function": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.3.1.tgz", + "integrity": "sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==", + "requires": { + "is-property": "^1.0.2" + } + }, + "generate-object-property": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", + "integrity": "sha512-TuOwZWgJ2VAMEGJvAyPWvpqxSANF0LDpmyHauMjFYzaACvn+QTT/AZomvPCzVBV7yDN3OmwHQ5OvHaeLKre3JQ==", + "requires": { + "is-property": "^1.0.0" + } + }, + "get-intrinsic": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", + "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3" + } + }, + "gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "requires": { + "get-intrinsic": "^1.1.3" + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==" + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" + }, + "has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "requires": { + "has-symbols": "^1.0.2" + } + }, + "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" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "is-arguments": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==" + }, + "is-generator-function": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-my-ip-valid": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-my-ip-valid/-/is-my-ip-valid-1.0.1.tgz", + "integrity": "sha512-jxc8cBcOWbNK2i2aTkCZP6i7wkHF1bqKFrwEHuN5Jtg5BSaZHUZQ/JTOJwoV41YvHnOaRyWWh72T/KvfNz9DJg==" + }, + "is-my-json-valid": { + "version": "2.20.6", + "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.20.6.tgz", + "integrity": "sha512-1JQwulVNjx8UqkPE/bqDaxtH4PXCe/2VRh/y3p99heOV87HG4Id5/VfDswd+YiAfHcRTfDlWgISycnHuhZq1aw==", + "requires": { + "generate-function": "^2.0.0", + "generate-object-property": "^1.1.0", + "is-my-ip-valid": "^1.0.0", + "jsonpointer": "^5.0.0", + "xtend": "^4.0.0" + } + }, + "is-property": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", + "integrity": "sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g==" + }, + "is-typed-array": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", + "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + } + }, + "isomorphic-ws": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-5.0.0.tgz", + "integrity": "sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw==" + }, + "js-sha3": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", + "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==" + }, + "jsonpointer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz", + "integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==" + }, + "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==" + }, + "node-fetch": { + "version": "2.6.12", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.12.tgz", + "integrity": "sha512-C/fGU2E8ToujUivIO0H+tpQ6HWo4eEmchoPIoXtxCrVghxdKq+QOHqEZW7tuP3KlV3bC8FRMO5nMCC7Zm1VP6g==", + "requires": { + "whatwg-url": "^5.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==" + }, + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + "util": { + "version": "0.12.5", + "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", + "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", + "requires": { + "inherits": "^2.0.3", + "is-arguments": "^1.0.4", + "is-generator-function": "^1.0.7", + "is-typed-array": "^1.1.3", + "which-typed-array": "^1.1.2" + } + }, + "web3": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/web3/-/web3-4.0.2.tgz", + "integrity": "sha512-3csKaFoC2BiHC/f72ynkjl4Thug7O7ojhkg2edgOFs7waBz7gGYqOgxrxV9EgERPlDRlmrppbJmGpdLPV+V8tA==", + "requires": { + "web3-core": "^4.0.2", + "web3-errors": "^1.0.1", + "web3-eth": "^4.0.2", + "web3-eth-abi": "^4.0.2", + "web3-eth-accounts": "^4.0.2", + "web3-eth-contract": "^4.0.2", + "web3-eth-ens": "^4.0.2", + "web3-eth-iban": "^4.0.2", + "web3-eth-personal": "^4.0.2", + "web3-net": "^4.0.2", + "web3-providers-http": "^4.0.2", + "web3-providers-ws": "^4.0.2", + "web3-rpc-methods": "^1.0.1", + "web3-types": "^1.0.1", + "web3-utils": "^4.0.2", + "web3-validator": "^1.0.1" + } + }, + "web3-core": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-4.0.2.tgz", + "integrity": "sha512-z6RhfTzlIc/Cc6J61cclwCAdQDRlWBe30pEHxl4pc4drP6UqIF0IJE7dwq7iMPxFOqhlnvMC6dXcg4EPijG3Ag==", + "requires": { + "web3-errors": "^1.0.1", + "web3-eth-iban": "^4.0.2", + "web3-providers-http": "^4.0.2", + "web3-providers-ipc": "^4.0.2", + "web3-providers-ws": "^4.0.2", + "web3-types": "^1.0.1", + "web3-utils": "^4.0.2", + "web3-validator": "^1.0.1" + } + }, + "web3-errors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/web3-errors/-/web3-errors-1.0.1.tgz", + "integrity": "sha512-ohSr2aZALaTLgdTY2E3//1a1xSvXpe+GsFRJpPgDFv2Ch5Hnva6/bJtieitPIstND0DHHVBwtR/qHGxX2rMY4A==", + "requires": { + "web3-types": "^1.0.1" + } + }, + "web3-eth": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-4.0.2.tgz", + "integrity": "sha512-Y4/pzxUbO5H05ebOnV3qaNqUhBbCx0AHFPIAKFlwHT1ru6E3/yH1yPRYG8bKw2AEYWRZT4C9t4Rl5x8BGUV8Mg==", + "requires": { + "setimmediate": "^1.0.5", + "web3-core": "^4.0.2", + "web3-errors": "^1.0.1", + "web3-eth-abi": "^4.0.2", + "web3-eth-accounts": "^4.0.2", + "web3-net": "^4.0.2", + "web3-providers-ws": "^4.0.2", + "web3-rpc-methods": "^1.0.1", + "web3-types": "^1.0.1", + "web3-utils": "^4.0.2", + "web3-validator": "^1.0.1" + } + }, + "web3-eth-abi": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-4.0.2.tgz", + "integrity": "sha512-XQUiX9JkwpvV5fyASyfLIDQwdhzB7QOfGaL6FKzAcqB3wqR/gVkj9tTeIcvsSXA7oqkS2rNtpBGmoA9dpjhxUQ==", + "requires": { + "@ethersproject/abi": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "web3-errors": "^1.0.1", + "web3-types": "^1.0.1", + "web3-utils": "^4.0.2" + } + }, + "web3-eth-accounts": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-4.0.2.tgz", + "integrity": "sha512-lKNTnDsYK8umrLyJok2jKtmRlGtoxTaK5sbCbB+fH+wnSy84mtySopTPlF5mu9TqhR/CJzakHvWUE0D8chtLUQ==", + "requires": { + "@ethereumjs/rlp": "^4.0.1", + "crc-32": "^1.2.2", + "ethereum-cryptography": "^2.0.0", + "web3-errors": "^1.0.1", + "web3-types": "^1.0.1", + "web3-utils": "^4.0.2", + "web3-validator": "^1.0.1" + } + }, + "web3-eth-contract": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-4.0.2.tgz", + "integrity": "sha512-8H29vMQ00TujIh7DJJHchUYp9lftMfk3faB2+1c/an9UeI8kOYZ79uihhe7ajn8vmM/l6zu0uvtOUqXWzqeRJw==", + "requires": { + "web3-core": "^4.0.2", + "web3-errors": "^1.0.1", + "web3-eth": "^4.0.2", + "web3-eth-abi": "^4.0.2", + "web3-types": "^1.0.1", + "web3-utils": "^4.0.2", + "web3-validator": "^1.0.1" + } + }, + "web3-eth-ens": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-4.0.2.tgz", + "integrity": "sha512-5yzu2nBJFtGVAFfduPmwpMBeKm0Lm0JIe8NUfGq83c4Gwy6bps1T8eg4EU2nIESjuQLo/G0EcgAXVfXpfxoIEA==", + "requires": { + "@adraffy/ens-normalize": "^1.8.8", + "web3-core": "^4.0.2", + "web3-errors": "^1.0.1", + "web3-eth": "^4.0.2", + "web3-eth-contract": "^4.0.2", + "web3-net": "^4.0.2", + "web3-types": "^1.0.1", + "web3-utils": "^4.0.2", + "web3-validator": "^1.0.1" + } + }, + "web3-eth-iban": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-4.0.2.tgz", + "integrity": "sha512-t8cx41CBDdZipxqx0fchQEuIknOzWBXxc5F8bqx6/hzfJ/j/L3brYKFh0tRlXLf03NjOWHqD7orqaOX4Z6gGVA==", + "requires": { + "web3-errors": "^1.0.1", + "web3-types": "^1.0.1", + "web3-utils": "^4.0.2", + "web3-validator": "^1.0.1" + } + }, + "web3-eth-personal": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-4.0.2.tgz", + "integrity": "sha512-61H6oqQ7R/J+MZuijwutOFRZQFg+2aE0gNVL/QypstfbEMDhZGoEnebKX1Nf4uFMzJ/C1taArYwoyzUOrCOjCQ==", + "requires": { + "web3-core": "^4.0.2", + "web3-eth": "^4.0.2", + "web3-rpc-methods": "^1.0.1", + "web3-types": "^1.0.1", + "web3-utils": "^4.0.2", + "web3-validator": "^1.0.1" + } + }, + "web3-net": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-4.0.2.tgz", + "integrity": "sha512-rA2UW2zYaMDOwf/psRBsF8sY3Lye5oY2Gt7HMXMyrU00I7FGml0F4Gf3ieNvVZRkJ1TrsCh+S7plJ94nJtA/Bw==", + "requires": { + "web3-core": "^4.0.2", + "web3-rpc-methods": "^1.0.1", + "web3-types": "^1.0.1", + "web3-utils": "^4.0.2" + } + }, + "web3-providers-http": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-4.0.2.tgz", + "integrity": "sha512-OP025gFlo2j26f0bOmjKufpTv2eLlnyl2IjoaP2NZ87O7f1h9QEpBV+idPy1onqo46Ie+ellvbKon1YCLW5CsA==", + "requires": { + "cross-fetch": "^3.1.5", + "web3-errors": "^1.0.1", + "web3-types": "^1.0.1", + "web3-utils": "^4.0.2" + } + }, + "web3-providers-ipc": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-4.0.2.tgz", + "integrity": "sha512-rALRkeNYCB4/Un5sVgYeuC3Yox0sDYaRd/m/CigXC3yf3jl73zvvjTV5FdWPNOVQjxj8ikdvcBeCAcEVCkX/kg==", + "optional": true, + "requires": { + "web3-errors": "^1.0.1", + "web3-types": "^1.0.1", + "web3-utils": "^4.0.2" + } + }, + "web3-providers-ws": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-4.0.2.tgz", + "integrity": "sha512-3yxluPnDfT9A8V6frLRgd3fIAhbw42LQa7p7lmZCYVxwt2E5ZmXZsQl1YcqvBlKhqazSqMI4caAE5VEdvlJK0w==", + "requires": { + "@types/ws": "^8.5.3", + "isomorphic-ws": "^5.0.0", + "web3-errors": "^1.0.1", + "web3-types": "^1.0.1", + "web3-utils": "^4.0.2", + "ws": "^8.8.1" + } + }, + "web3-rpc-methods": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/web3-rpc-methods/-/web3-rpc-methods-1.0.1.tgz", + "integrity": "sha512-uuSoW/KToegkpQ4UgYyDaX2ITeNZL/OyrLStRVAa6Y1GbRt26QADvr6cDHWMAA92DoY7MaJ0ZgIUoGDBq5wdgw==", + "requires": { + "web3-core": "^4.0.2", + "web3-types": "^1.0.1", + "web3-validator": "^1.0.1" + } + }, + "web3-types": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/web3-types/-/web3-types-1.0.1.tgz", + "integrity": "sha512-sFq4OPrpt9TBbxxQQuDiFBHjoMa5SADauB16IxoRl1FVLU41gCcNp+QYi8oo2AtYh32suKH+snm2feIDwgo8cw==" + }, + "web3-utils": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-4.0.2.tgz", + "integrity": "sha512-AQjSDMUbetPzMAPQQO74Smt8LY2uDMUqJxywFUYUm6OJvUO+W8Ak/PTSeRhosIHOakS/Xc3fMZIsCQJmfJgNqw==", + "requires": { + "ethereum-cryptography": "^2.0.0", + "web3-errors": "^1.0.1", + "web3-types": "^1.0.1", + "web3-validator": "^1.0.1" + } + }, + "web3-validator": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/web3-validator/-/web3-validator-1.0.1.tgz", + "integrity": "sha512-hsT8hFhYia5tlTIf08TDjBYjJ2sgUoh9WehpNrYB8UIaFA0QB7mv06fASXU3ukjiKF9V8MeDZnJPit6JRmQj6A==", + "requires": { + "ethereum-cryptography": "^2.0.0", + "is-my-json-valid": "^2.20.6", + "util": "^0.12.5", + "web3-errors": "^1.0.1", + "web3-types": "^1.0.1" + } + }, + "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-typed-array": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", + "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0", + "is-typed-array": "^1.1.10" + } + }, + "ws": { + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", + "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==" + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" + } + } +} diff --git a/examples/contract-hello/package.json b/examples/contract-hello/package.json new file mode 100644 index 0000000..07ef240 --- /dev/null +++ b/examples/contract-hello/package.json @@ -0,0 +1,23 @@ +{ + "name": "frontier-example-contract-hello", + "version": "0.1.0", + "description": "Hello contract example for Frontier project", + "main": "index.js", + "repository": { + "type": "git", + "url": "git+https://github.com/paritytech/frontier.git" + }, + "keywords": [ + "ethereum", + "substrate" + ], + "author": "Parity Technologies ", + "license": "GPL-3.0", + "bugs": { + "url": "https://github.com/paritytech/frontier/issues" + }, + "homepage": "https://github.com/paritytech/frontier", + "dependencies": { + "web3": "^4.0.2" + } +} diff --git a/node/Cargo.toml b/node/Cargo.toml new file mode 100644 index 0000000..c73e57c --- /dev/null +++ b/node/Cargo.toml @@ -0,0 +1,117 @@ +[package] +name = "aya-node" +version = "0.1.0" +license = "Unlicense" +build = "build.rs" +description = "A fresh FRAME-based Substrate node." +publish = false +authors = { workspace = true } +edition = { workspace = true } +repository = { workspace = true } + +[package.metadata.docs.rs] +targets = ["x86_64-unknown-linux-gnu"] + +[dependencies] +async-trait = { workspace = true } +clap = { workspace = true } +futures = { workspace = true } +hex-literal = { workspace = true } +jsonrpsee = { workspace = true, features = ["server", "macros"] } +log = { workspace = true } +scale-codec = { workspace = true } +serde_json = { workspace = true, features = ["arbitrary_precision"] } + +# Substrate +prometheus-endpoint = { workspace = true } +sc-basic-authorship = { workspace = true } +sc-chain-spec = { workspace = true } +sc-cli = { workspace = true } +sc-client-api = { workspace = true } +sc-consensus = { workspace = true } +sc-consensus-aura = { workspace = true } +sc-consensus-grandpa = { workspace = true } +sc-consensus-manual-seal = { workspace = true } +sc-executor = { workspace = true } +sc-network = { workspace = true } +sc-network-sync = { workspace = true } +sc-offchain = { workspace = true } +sc-rpc = { workspace = true } +sc-rpc-api = { workspace = true } +sc-service = { workspace = true } +sc-telemetry = { workspace = true } +sc-transaction-pool = { workspace = true } +sc-transaction-pool-api = { workspace = true } +sp-api = { workspace = true, features = ["default"] } +sp-block-builder = { workspace = true } +sp-blockchain = { workspace = true } +sp-consensus-aura = { workspace = true, features = ["default"] } +sp-consensus-grandpa = { workspace = true, features = ["default"] } +sp-core = { workspace = true, features = ["default"] } +sp-inherents = { workspace = true, features = ["default"] } +sp-offchain = { workspace = true, features = ["default"] } +sp-runtime = { workspace = true, features = ["default"] } +sp-session = { workspace = true, features = ["default"] } +sp-timestamp = { workspace = true, features = ["default"] } +sp-transaction-pool = { workspace = true, features = ["default"] } +# These dependencies are used for RPC +frame-system-rpc-runtime-api = { workspace = true } +pallet-transaction-payment-rpc = { workspace = true } +pallet-transaction-payment-rpc-runtime-api = { workspace = true } +substrate-frame-rpc-system = { workspace = true } +# These dependencies are used for runtime benchmarking +frame-benchmarking = { workspace = true, optional = true } +frame-benchmarking-cli = { workspace = true, optional = true } +frame-system = { workspace = true } +pallet-transaction-payment = { workspace = true } +pallet-im-online = { workspace = true } + +# Frontier +fc-api = { workspace = true } +fc-cli = { workspace = true } +fc-consensus = { workspace = true } +fc-db = { workspace = true } +fc-mapping-sync = { workspace = true } +fc-rpc = { workspace = true } +fc-rpc-core = { workspace = true } +fc-storage = { workspace = true } +fp-account = { workspace = true } +fp-dynamic-fee = { workspace = true, features = ["default"] } +fp-evm = { workspace = true, features = ["default"] } +fp-rpc = { workspace = true, features = ["default"] } +aya-runtime = { workspace = true, features = ["std"] } + +[build-dependencies] +substrate-build-script-utils = { workspace = true } + +[features] +default = [ + "rocksdb", + "sql", + "txpool", + "rpc-binary-search-estimate", +] +rocksdb = [ + "sc-cli/rocksdb", + "sc-service/rocksdb", + "fc-cli/rocksdb", + "fc-db/rocksdb", + "fc-mapping-sync/rocksdb", + "fc-rpc/rocksdb", + "aya-runtime/with-rocksdb-weights", +] +paritydb = [ + "aya-runtime/with-paritydb-weights", +] +sql = [ + "fc-db/sql", + "fc-mapping-sync/sql", +] +txpool = ["fc-rpc/txpool"] +rpc-binary-search-estimate = ["fc-rpc/rpc-binary-search-estimate"] +runtime-benchmarks = [ + "frame-benchmarking/runtime-benchmarks", + "frame-benchmarking-cli/runtime-benchmarks", + "sc-service/runtime-benchmarks", + "aya-runtime/runtime-benchmarks", +] diff --git a/node/build.rs b/node/build.rs new file mode 100644 index 0000000..e3bfe31 --- /dev/null +++ b/node/build.rs @@ -0,0 +1,7 @@ +use substrate_build_script_utils::{generate_cargo_keys, rerun_if_git_head_changed}; + +fn main() { + generate_cargo_keys(); + + rerun_if_git_head_changed(); +} diff --git a/node/src/benchmarking.rs b/node/src/benchmarking.rs new file mode 100644 index 0000000..6b273e6 --- /dev/null +++ b/node/src/benchmarking.rs @@ -0,0 +1,191 @@ +// This file is part of Substrate. + +// Copyright (C) 2022 Parity Technologies (UK) Ltd. +// SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0 + +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +//! Contains code to setup the command invocations in [`super::command`] which would +//! otherwise bloat that module. + +use std::{sync::Arc, time::Duration}; + +use scale_codec::Encode; +// Substrate +use sc_cli::Result; +use sc_client_api::BlockBackend; +use sp_core::{ecdsa, Pair}; +use sp_inherents::{InherentData, InherentDataProvider}; +use sp_runtime::{generic::Era, OpaqueExtrinsic, SaturatedConversion}; +// Frontier +use fp_account::AccountId20; +use aya_runtime::{self as runtime, AccountId, Balance, BalancesCall, SystemCall}; + +use crate::client::Client; + +/// Generates extrinsics for the `benchmark overhead` command. +/// +/// Note: Should only be used for benchmarking. +pub struct RemarkBuilder { + client: Arc, +} + +impl RemarkBuilder { + /// Creates a new [`Self`] from the given client. + pub fn new(client: Arc) -> Self { + Self { client } + } +} + +impl frame_benchmarking_cli::ExtrinsicBuilder for RemarkBuilder { + fn pallet(&self) -> &str { + "system" + } + + fn extrinsic(&self) -> &str { + "remark" + } + + fn build(&self, nonce: u32) -> std::result::Result { + let acc = ecdsa::Pair::from_string("//Bob", None).expect("static values are valid; qed"); + let extrinsic: OpaqueExtrinsic = create_benchmark_extrinsic( + self.client.as_ref(), + acc, + SystemCall::remark { remark: vec![] }.into(), + nonce, + ) + .into(); + + Ok(extrinsic) + } +} + +/// Generates `Balances::TransferKeepAlive` extrinsics for the benchmarks. +/// +/// Note: Should only be used for benchmarking. +pub struct TransferKeepAliveBuilder { + client: Arc, + dest: AccountId, + value: Balance, +} + +impl TransferKeepAliveBuilder { + /// Creates a new [`Self`] from the given client. + pub fn new(client: Arc, dest: AccountId, value: Balance) -> Self { + Self { + client, + dest, + value, + } + } +} + +impl frame_benchmarking_cli::ExtrinsicBuilder for TransferKeepAliveBuilder { + fn pallet(&self) -> &str { + "balances" + } + + fn extrinsic(&self) -> &str { + "transfer_keep_alive" + } + + fn build(&self, nonce: u32) -> std::result::Result { + let acc = ecdsa::Pair::from_string("//Bob", None).expect("static values are valid; qed"); + let extrinsic: OpaqueExtrinsic = create_benchmark_extrinsic( + self.client.as_ref(), + acc, + BalancesCall::transfer_keep_alive { + dest: self.dest, + value: self.value, + } + .into(), + nonce, + ) + .into(); + + Ok(extrinsic) + } +} + +/// Create a transaction using the given `call`. +/// +/// Note: Should only be used for benchmarking. +pub fn create_benchmark_extrinsic( + client: &Client, + sender: ecdsa::Pair, + call: runtime::RuntimeCall, + nonce: u32, +) -> runtime::UncheckedExtrinsic { + let genesis_hash = client + .block_hash(0) + .ok() + .flatten() + .expect("Genesis block exists; qed"); + let best_hash = client.chain_info().best_hash; + let best_block = client.chain_info().best_number; + + let period = runtime::BlockHashCount::get() + .checked_next_power_of_two() + .map(|c| c / 2) + .unwrap_or(2) as u64; + let extra: runtime::SignedExtra = ( + frame_system::CheckNonZeroSender::::new(), + frame_system::CheckSpecVersion::::new(), + frame_system::CheckTxVersion::::new(), + frame_system::CheckGenesis::::new(), + frame_system::CheckMortality::::from(Era::mortal( + period, + best_block.saturated_into(), + )), + frame_system::CheckNonce::::from(nonce), + frame_system::CheckWeight::::new(), + pallet_transaction_payment::ChargeTransactionPayment::::from(0), + ); + + let raw_payload = runtime::SignedPayload::from_raw( + call.clone(), + extra.clone(), + ( + (), + runtime::VERSION.spec_version, + runtime::VERSION.transaction_version, + genesis_hash, + best_hash, + (), + (), + (), + ), + ); + let signature = raw_payload.using_encoded(|e| sender.sign(e)); + + runtime::UncheckedExtrinsic::new_signed( + call, + AccountId20::from(sender.public()), + runtime::Signature::new(signature), + extra, + ) +} + +/// Generates inherent data for the `benchmark overhead` command. +/// +/// Note: Should only be used for benchmarking. +pub fn inherent_benchmark_data() -> Result { + let mut inherent_data = InherentData::new(); + let d = Duration::from_millis(0); + let timestamp = sp_timestamp::InherentDataProvider::new(d.into()); + + futures::executor::block_on(timestamp.provide_inherent_data(&mut inherent_data)) + .map_err(|e| format!("creating inherent data: {:?}", e))?; + Ok(inherent_data) +} diff --git a/node/src/chain_spec.rs b/node/src/chain_spec.rs new file mode 100644 index 0000000..48aceba --- /dev/null +++ b/node/src/chain_spec.rs @@ -0,0 +1,215 @@ +use std::{collections::BTreeMap, str::FromStr}; + +use hex_literal::hex; +use pallet_im_online::sr25519::AuthorityId as ImOnlineId; +// Substrate +use sc_chain_spec::{ChainType, Properties}; +use sp_consensus_aura::sr25519::AuthorityId as AuraId; +use sp_consensus_grandpa::AuthorityId as GrandpaId; +use sp_core::{H160, Pair, Public, U256}; +#[allow(unused_imports)] +use sp_core::ecdsa; +use sp_runtime::traits::{IdentifyAccount, Verify}; + +// Frontier +use aya_runtime::{ + AccountId, Balance, opaque::SessionKeys, RuntimeGenesisConfig, Signature, SS58Prefix, + WASM_BINARY, +}; + +// The URL for the telemetry server. +// const STAGING_TELEMETRY_URL: &str = "wss://telemetry.polkadot.io/submit/"; + +/// Specialized `ChainSpec`. This is a specialization of the general Substrate ChainSpec type. +pub type ChainSpec = sc_service::GenericChainSpec; + +const PROTOCOL_ID: &str = "aya"; +const TOKEN_SYMBOL: &str = "FERN"; + +/// Generate a crypto pair from seed. +pub fn get_from_seed(seed: &str) -> ::Public { + TPublic::Pair::from_string(&format!("//{}", seed), None) + .expect("static values are valid; qed") + .public() +} + +#[allow(dead_code)] +type AccountPublic = ::Signer; + +/// Generate an account ID from seed. +/// For use with `AccountId32`, `dead_code` if `AccountId20`. +#[allow(dead_code)] +pub fn get_account_id_from_seed(seed: &str) -> AccountId +where + AccountPublic: From<::Public>, +{ + AccountPublic::from(get_from_seed::(seed)).into_account() +} + +fn session_keys(aura: AuraId, grandpa: GrandpaId, im_online: ImOnlineId) -> SessionKeys { + SessionKeys { + aura, + grandpa, + im_online, + } +} + +pub fn authority_keys_from_seed(s: &str, a: AccountId) -> (AccountId, AuraId, GrandpaId, ImOnlineId) { + ( + a, + get_from_seed::(s), + get_from_seed::(s), + get_from_seed::(s), + ) +} + +fn properties() -> Properties { + let mut properties = Properties::new(); + properties.insert("isEthereum".into(), true.into()); + properties.insert("tokenDecimals".into(), 18.into()); + properties.insert("ss58Format".into(), SS58Prefix::get().into()); + properties.insert("tokenSymbol".to_string(), TOKEN_SYMBOL.into()); + properties +} + +const UNITS: Balance = 1_000_000_000_000_000_000; + +pub fn development_config(enable_manual_seal: bool) -> ChainSpec { + ChainSpec::builder(WASM_BINARY.expect("WASM not available"), Default::default()) + .with_name("Development") + .with_id("dev") + .with_chain_type(ChainType::Development) + .with_properties(properties()) + .with_genesis_config_patch(testnet_genesis( + // Sudo account (Alith) + AccountId::from(hex!("f24FF3a9CF04c71Dbc94D0b566f7A27B94566cac")), + // Pre-funded accounts + vec![ + AccountId::from(hex!("f24FF3a9CF04c71Dbc94D0b566f7A27B94566cac")), // Alith + AccountId::from(hex!("3Cd0A705a2DC65e5b1E1205896BaA2be8A07c6e0")), // Baltathar + AccountId::from(hex!("798d4Ba9baf0064Ec19eB4F0a1a45785ae9D6DFc")), // Charleth + AccountId::from(hex!("773539d4Ac0e786233D90A233654ccEE26a613D9")), // Dorothy + AccountId::from(hex!("Ff64d3F6efE2317EE2807d223a0Bdc4c0c49dfDB")), // Ethan + AccountId::from(hex!("C0F0f4ab324C46e55D02D0033343B4Be8A55532d")), // Faith + ], + // Initial PoA authorities + vec![authority_keys_from_seed( + "Alice", + AccountId::from(hex!("f24FF3a9CF04c71Dbc94D0b566f7A27B94566cac")), + )], + // Ethereum chain ID + SS58Prefix::get() as u64, + enable_manual_seal, + )) + .with_protocol_id(PROTOCOL_ID) + .build() +} + +pub fn local_testnet_config() -> ChainSpec { + ChainSpec::builder(WASM_BINARY.expect("WASM not available"), Default::default()) + .with_name("Local Testnet") + .with_id("local_testnet") + .with_chain_type(ChainType::Local) + .with_properties(properties()) + .with_genesis_config_patch(testnet_genesis( + // Sudo account (Alith) + AccountId::from(hex!("f24FF3a9CF04c71Dbc94D0b566f7A27B94566cac")), + // Pre-funded accounts + vec![ + AccountId::from(hex!("f24FF3a9CF04c71Dbc94D0b566f7A27B94566cac")), // Alith + AccountId::from(hex!("3Cd0A705a2DC65e5b1E1205896BaA2be8A07c6e0")), // Baltathar + AccountId::from(hex!("798d4Ba9baf0064Ec19eB4F0a1a45785ae9D6DFc")), // Charleth + AccountId::from(hex!("773539d4Ac0e786233D90A233654ccEE26a613D9")), // Dorothy + AccountId::from(hex!("Ff64d3F6efE2317EE2807d223a0Bdc4c0c49dfDB")), // Ethan + AccountId::from(hex!("C0F0f4ab324C46e55D02D0033343B4Be8A55532d")), // Faith + ], + vec![ + authority_keys_from_seed( + "Alice", + AccountId::from(hex!("f24FF3a9CF04c71Dbc94D0b566f7A27B94566cac")), + ), + authority_keys_from_seed( + "Bob", + AccountId::from(hex!("3Cd0A705a2DC65e5b1E1205896BaA2be8A07c6e0")), + ), + ], + 1357, + false, + )) + .with_protocol_id(PROTOCOL_ID) + .build() +} + +/// Configure initial storage state for FRAME modules. +fn testnet_genesis( + sudo_key: AccountId, + endowed_accounts: Vec, + initial_authorities: Vec<(AccountId, AuraId, GrandpaId, ImOnlineId)>, + chain_id: u64, + enable_manual_seal: bool, +) -> serde_json::Value { + let evm_accounts = { + let mut map = BTreeMap::new(); + map.insert( + // H160 address of Alice dev account + // Derived from SS58 (42 prefix) address + // SS58: 5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY + // hex: 0xd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d + // Using the full hex key, truncating to the first 20 bytes (the first 40 hex chars) + H160::from_str("d43593c715fdd31c61141abd04a99fd6822c8558") + .expect("internal H160 is valid; qed"), + fp_evm::GenesisAccount { + balance: U256::from_str("0xffffffffffffffffffffffffffffffff") + .expect("internal U256 is valid; qed"), + code: Default::default(), + nonce: Default::default(), + storage: Default::default(), + }, + ); + map.insert( + // H160 address of CI test runner account + H160::from_str("6be02d1d3665660d22ff9624b7be0551ee1ac91b") + .expect("internal H160 is valid; qed"), + fp_evm::GenesisAccount { + balance: U256::from_str("0xffffffffffffffffffffffffffffffff") + .expect("internal U256 is valid; qed"), + code: Default::default(), + nonce: Default::default(), + storage: Default::default(), + }, + ); + map.insert( + // H160 address for benchmark usage + H160::from_str("1000000000000000000000000000000000000001") + .expect("internal H160 is valid; qed"), + fp_evm::GenesisAccount { + nonce: U256::from(1), + balance: U256::from(1_000_000_000_000_000_000_000_000u128), + storage: Default::default(), + code: vec![0x00], + }, + ); + map + }; + + serde_json::json!({ + "sudo": { "key": Some(sudo_key) }, + "balances": { + "balances": endowed_accounts + .iter() + .cloned() + .map(|k| (k, 1_000_000 * UNITS)) + .collect::>() + }, + "validatorSet" : { "initialValidators" : initial_authorities.iter().map(|x| x.0.clone()).collect::>(), }, + "session" : { "keys": initial_authorities.iter().map(|x| { + (x.0.clone(), x.0.clone(), session_keys(x.1.clone(), x.2.clone(), x.3.clone())) + }).collect::>(),}, + "aura": { "authorities": [] }, + "grandpa": { "authorities": [] }, + "imOnline": { "keys": [] }, + "evmChainId": { "chainId": chain_id }, + "evm": { "accounts": evm_accounts }, + "manualSeal": { "enable": enable_manual_seal } + }) +} diff --git a/node/src/cli.rs b/node/src/cli.rs new file mode 100644 index 0000000..fcae8cf --- /dev/null +++ b/node/src/cli.rs @@ -0,0 +1,68 @@ +use crate::service::EthConfiguration; + +/// Available Sealing methods. +#[derive(Copy, Clone, Debug, Default, clap::ValueEnum)] +pub enum Sealing { + /// Seal using rpc method. + #[default] + Manual, + /// Seal when transaction is executed. + Instant, +} + +#[derive(Debug, clap::Parser)] +pub struct Cli { + #[command(subcommand)] + pub subcommand: Option, + + #[allow(missing_docs)] + #[command(flatten)] + pub run: sc_cli::RunCmd, + + /// Choose sealing method. + #[arg(long, value_enum, ignore_case = true)] + pub sealing: Option, + + #[command(flatten)] + pub eth: EthConfiguration, +} + +#[derive(Debug, clap::Subcommand)] +pub enum Subcommand { + /// Key management cli utilities + #[command(subcommand)] + Key(sc_cli::KeySubcommand), + + /// Build a chain specification. + BuildSpec(sc_cli::BuildSpecCmd), + + /// Validate blocks. + CheckBlock(sc_cli::CheckBlockCmd), + + /// Export blocks. + ExportBlocks(sc_cli::ExportBlocksCmd), + + /// Export the state of a given block into a chain spec. + ExportState(sc_cli::ExportStateCmd), + + /// Import blocks. + ImportBlocks(sc_cli::ImportBlocksCmd), + + /// Remove the whole chain. + PurgeChain(sc_cli::PurgeChainCmd), + + /// Revert the chain to a previous state. + Revert(sc_cli::RevertCmd), + + /// Sub-commands concerned with benchmarking. + #[cfg(feature = "runtime-benchmarks")] + #[command(subcommand)] + Benchmark(frame_benchmarking_cli::BenchmarkCmd), + + /// Sub-commands concerned with benchmarking. + #[cfg(not(feature = "runtime-benchmarks"))] + Benchmark, + + /// Db meta columns information. + FrontierDb(fc_cli::FrontierDbCmd), +} diff --git a/node/src/client.rs b/node/src/client.rs new file mode 100644 index 0000000..b57b173 --- /dev/null +++ b/node/src/client.rs @@ -0,0 +1,77 @@ +// Substrate +use sc_executor::{NativeElseWasmExecutor, NativeExecutionDispatch, NativeVersion}; +use sp_consensus_aura::sr25519::AuthorityId as AuraId; +// Local +use aya_runtime::{opaque::Block, AccountId, Balance, Nonce}; + +use crate::eth::EthCompatRuntimeApiCollection; + +/// Full backend. +pub type FullBackend = sc_service::TFullBackend; +/// Full client. +pub type FullClient = + sc_service::TFullClient>; + +pub type Client = FullClient; + +/// Only enable the benchmarking host functions when we actually want to benchmark. +#[cfg(feature = "runtime-benchmarks")] +pub type HostFunctions = frame_benchmarking::benchmarking::HostFunctions; +/// Otherwise we use empty host functions for ext host functions. +#[cfg(not(feature = "runtime-benchmarks"))] +pub type HostFunctions = (); + +pub struct TemplateRuntimeExecutor; +impl NativeExecutionDispatch for TemplateRuntimeExecutor { + type ExtendHostFunctions = HostFunctions; + + fn dispatch(method: &str, data: &[u8]) -> Option> { + aya_runtime::api::dispatch(method, data) + } + + fn native_version() -> NativeVersion { + aya_runtime::native_version() + } +} + +/// A set of APIs that every runtimes must implement. +pub trait BaseRuntimeApiCollection: + sp_api::ApiExt + + sp_api::Metadata + + sp_block_builder::BlockBuilder + + sp_offchain::OffchainWorkerApi + + sp_session::SessionKeys + + sp_transaction_pool::runtime_api::TaggedTransactionQueue +{ +} + +impl BaseRuntimeApiCollection for Api where + Api: sp_api::ApiExt + + sp_api::Metadata + + sp_block_builder::BlockBuilder + + sp_offchain::OffchainWorkerApi + + sp_session::SessionKeys + + sp_transaction_pool::runtime_api::TaggedTransactionQueue +{ +} + +/// A set of APIs that template runtime must implement. +pub trait RuntimeApiCollection: + BaseRuntimeApiCollection + + EthCompatRuntimeApiCollection + + sp_consensus_aura::AuraApi + + sp_consensus_grandpa::GrandpaApi + + frame_system_rpc_runtime_api::AccountNonceApi + + pallet_transaction_payment_rpc_runtime_api::TransactionPaymentApi +{ +} + +impl RuntimeApiCollection for Api where + Api: BaseRuntimeApiCollection + + EthCompatRuntimeApiCollection + + sp_consensus_aura::AuraApi + + sp_consensus_grandpa::GrandpaApi + + frame_system_rpc_runtime_api::AccountNonceApi + + pallet_transaction_payment_rpc_runtime_api::TransactionPaymentApi +{ +} diff --git a/node/src/command.rs b/node/src/command.rs new file mode 100644 index 0000000..b60277b --- /dev/null +++ b/node/src/command.rs @@ -0,0 +1,254 @@ +// This file is part of Substrate. + +// Copyright (C) 2017-2021 Parity Technologies (UK) Ltd. +// SPDX-License-Identifier: Apache-2.0 + +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +use futures::TryFutureExt; +// Substrate +use sc_cli::{ChainSpec, SubstrateCli}; +use sc_service::DatabaseSource; +// Frontier +use fc_db::kv::frontier_database_dir; + +use crate::{ + chain_spec, + cli::{Cli, Subcommand}, + service::{self, db_config_dir}, +}; + +#[cfg(feature = "runtime-benchmarks")] +use crate::chain_spec::get_account_id_from_seed; + +impl SubstrateCli for Cli { + fn impl_name() -> String { + "AyA Node".into() + } + + fn impl_version() -> String { + env!("SUBSTRATE_CLI_IMPL_VERSION").into() + } + + fn description() -> String { + env!("CARGO_PKG_DESCRIPTION").into() + } + + fn author() -> String { + env!("CARGO_PKG_AUTHORS").into() + } + + fn support_url() -> String { + "support.anonymous.an".into() + } + + fn copyright_start_year() -> i32 { + 2021 + } + + fn load_spec(&self, id: &str) -> Result, String> { + Ok(match id { + "dev" => { + let enable_manual_seal = self.sealing.map(|_| true).unwrap_or_default(); + Box::new(chain_spec::development_config(enable_manual_seal)) + } + "" | "local" => Box::new(chain_spec::local_testnet_config()), + path => Box::new(chain_spec::ChainSpec::from_json_file( + std::path::PathBuf::from(path), + )?), + }) + } +} + +/// Parse and run command line arguments +pub fn run() -> sc_cli::Result<()> { + let cli = Cli::from_args(); + + match &cli.subcommand { + Some(Subcommand::Key(cmd)) => cmd.run(&cli), + Some(Subcommand::BuildSpec(cmd)) => { + let runner = cli.create_runner(cmd)?; + runner.sync_run(|config| cmd.run(config.chain_spec, config.network)) + } + Some(Subcommand::CheckBlock(cmd)) => { + let runner = cli.create_runner(cmd)?; + runner.async_run(|mut config| { + let (client, _, import_queue, task_manager, _) = + service::new_chain_ops(&mut config, &cli.eth)?; + Ok((cmd.run(client, import_queue), task_manager)) + }) + } + Some(Subcommand::ExportBlocks(cmd)) => { + let runner = cli.create_runner(cmd)?; + runner.async_run(|mut config| { + let (client, _, _, task_manager, _) = + service::new_chain_ops(&mut config, &cli.eth)?; + Ok((cmd.run(client, config.database), task_manager)) + }) + } + Some(Subcommand::ExportState(cmd)) => { + let runner = cli.create_runner(cmd)?; + runner.async_run(|mut config| { + let (client, _, _, task_manager, _) = + service::new_chain_ops(&mut config, &cli.eth)?; + Ok((cmd.run(client, config.chain_spec), task_manager)) + }) + } + Some(Subcommand::ImportBlocks(cmd)) => { + let runner = cli.create_runner(cmd)?; + runner.async_run(|mut config| { + let (client, _, import_queue, task_manager, _) = + service::new_chain_ops(&mut config, &cli.eth)?; + Ok((cmd.run(client, import_queue), task_manager)) + }) + } + Some(Subcommand::PurgeChain(cmd)) => { + let runner = cli.create_runner(cmd)?; + runner.sync_run(|config| { + // Remove Frontier offchain db + let db_config_dir = db_config_dir(&config); + match cli.eth.frontier_backend_type { + crate::eth::BackendType::KeyValue => { + let frontier_database_config = match config.database { + DatabaseSource::RocksDb { .. } => DatabaseSource::RocksDb { + path: frontier_database_dir(&db_config_dir, "db"), + cache_size: 0, + }, + DatabaseSource::ParityDb { .. } => DatabaseSource::ParityDb { + path: frontier_database_dir(&db_config_dir, "paritydb"), + }, + _ => { + return Err(format!( + "Cannot purge `{:?}` database", + config.database + ) + .into()) + } + }; + cmd.run(frontier_database_config)?; + } + crate::eth::BackendType::Sql => { + let db_path = db_config_dir.join("sql"); + match std::fs::remove_dir_all(&db_path) { + Ok(_) => { + println!("{:?} removed.", &db_path); + } + Err(ref err) if err.kind() == std::io::ErrorKind::NotFound => { + eprintln!("{:?} did not exist.", &db_path); + } + Err(err) => { + return Err(format!( + "Cannot purge `{:?}` database: {:?}", + db_path, err, + ) + .into()) + } + }; + } + }; + cmd.run(config.database) + }) + } + Some(Subcommand::Revert(cmd)) => { + let runner = cli.create_runner(cmd)?; + runner.async_run(|mut config| { + let (client, backend, _, task_manager, _) = + service::new_chain_ops(&mut config, &cli.eth)?; + let aux_revert = Box::new(move |client, _, blocks| { + sc_consensus_grandpa::revert(client, blocks)?; + Ok(()) + }); + Ok((cmd.run(client, backend, Some(aux_revert)), task_manager)) + }) + } + #[cfg(feature = "runtime-benchmarks")] + Some(Subcommand::Benchmark(cmd)) => { + use crate::benchmarking::{ + inherent_benchmark_data, RemarkBuilder, TransferKeepAliveBuilder, + }; + use frame_benchmarking_cli::{ + BenchmarkCmd, ExtrinsicFactory, SUBSTRATE_REFERENCE_HARDWARE, + }; + use aya_runtime::{ExistentialDeposit, Hashing}; + + let runner = cli.create_runner(cmd)?; + match cmd { + BenchmarkCmd::Pallet(cmd) => { + runner.sync_run(|config| cmd.run::(config)) + } + BenchmarkCmd::Block(cmd) => runner.sync_run(|mut config| { + let (client, _, _, _, _) = service::new_chain_ops(&mut config, &cli.eth)?; + cmd.run(client) + }), + BenchmarkCmd::Storage(cmd) => runner.sync_run(|mut config| { + let (client, backend, _, _, _) = service::new_chain_ops(&mut config, &cli.eth)?; + let db = backend.expose_db(); + let storage = backend.expose_storage(); + cmd.run(config, client, db, storage) + }), + BenchmarkCmd::Overhead(cmd) => runner.sync_run(|mut config| { + let (client, _, _, _, _) = service::new_chain_ops(&mut config, &cli.eth)?; + let ext_builder = RemarkBuilder::new(client.clone()); + cmd.run( + config, + client, + inherent_benchmark_data()?, + Vec::new(), + &ext_builder, + ) + }), + BenchmarkCmd::Extrinsic(cmd) => runner.sync_run(|mut config| { + let (client, _, _, _, _) = service::new_chain_ops(&mut config, &cli.eth)?; + // Register the *Remark* and *TKA* builders. + let ext_factory = ExtrinsicFactory(vec![ + Box::new(RemarkBuilder::new(client.clone())), + Box::new(TransferKeepAliveBuilder::new( + client.clone(), + get_account_id_from_seed::("Alice"), + ExistentialDeposit::get(), + )), + ]); + + cmd.run(client, inherent_benchmark_data()?, Vec::new(), &ext_factory) + }), + BenchmarkCmd::Machine(cmd) => { + runner.sync_run(|config| cmd.run(&config, SUBSTRATE_REFERENCE_HARDWARE.clone())) + } + } + } + #[cfg(not(feature = "runtime-benchmarks"))] + Some(Subcommand::Benchmark) => Err("Benchmarking wasn't enabled when building the node. \ + You can enable it with `--features runtime-benchmarks`." + .into()), + Some(Subcommand::FrontierDb(cmd)) => { + let runner = cli.create_runner(cmd)?; + runner.sync_run(|mut config| { + let (client, _, _, _, frontier_backend) = + service::new_chain_ops(&mut config, &cli.eth)?; + let frontier_backend = match frontier_backend { + fc_db::Backend::KeyValue(kv) => std::sync::Arc::new(kv), + _ => panic!("Only fc_db::Backend::KeyValue supported"), + }; + cmd.run(client, frontier_backend) + }) + } + None => { + let runner = cli.create_runner(&cli.run)?; + runner.run_node_until_exit(|config| async move { + service::build_full(config, cli.eth, cli.sealing) + .map_err(Into::into) + .await + }) + } + } +} diff --git a/node/src/eth.rs b/node/src/eth.rs new file mode 100644 index 0000000..e4998d2 --- /dev/null +++ b/node/src/eth.rs @@ -0,0 +1,211 @@ +use std::{ + collections::BTreeMap, + path::PathBuf, + sync::{Arc, Mutex}, + time::Duration, +}; + +use futures::{future, prelude::*}; +// Substrate +use sc_client_api::BlockchainEvents; +use sc_executor::NativeExecutionDispatch; +use sc_network_sync::SyncingService; +use sc_service::{error::Error as ServiceError, Configuration, TaskManager}; +use sp_api::ConstructRuntimeApi; +// Frontier +pub use fc_consensus::FrontierBlockImport; +use fc_rpc::{EthTask, OverrideHandle}; +pub use fc_rpc_core::types::{FeeHistoryCache, FeeHistoryCacheLimit, FilterPool}; +// Local +use aya_runtime::opaque::Block; + +use crate::client::{FullBackend, FullClient}; + +/// Frontier DB backend type. +pub type FrontierBackend = fc_db::Backend; + +pub fn db_config_dir(config: &Configuration) -> PathBuf { + config.base_path.config_dir(config.chain_spec.id()) +} + +/// Avalailable frontier backend types. +#[derive(Debug, Copy, Clone, Default, clap::ValueEnum)] +pub enum BackendType { + /// Either RocksDb or ParityDb as per inherited from the global backend settings. + #[default] + KeyValue, + /// Sql database with custom log indexing. + Sql, +} + +/// The ethereum-compatibility configuration used to run a node. +#[derive(Clone, Debug, clap::Parser)] +pub struct EthConfiguration { + /// Maximum number of logs in a query. + #[arg(long, default_value = "10000")] + pub max_past_logs: u32, + + /// Maximum fee history cache size. + #[arg(long, default_value = "2048")] + pub fee_history_limit: u64, + + #[arg(long)] + pub enable_dev_signer: bool, + + /// The dynamic-fee pallet target gas price set by block author + #[arg(long, default_value = "1")] + pub target_gas_price: u64, + + /// Maximum allowed gas limit will be `block.gas_limit * execute_gas_limit_multiplier` + /// when using eth_call/eth_estimateGas. + #[arg(long, default_value = "10")] + pub execute_gas_limit_multiplier: u64, + + /// Size in bytes of the LRU cache for block data. + #[arg(long, default_value = "50")] + pub eth_log_block_cache: usize, + + /// Size in bytes of the LRU cache for transactions statuses data. + #[arg(long, default_value = "50")] + pub eth_statuses_cache: usize, + + /// Sets the frontier backend type (KeyValue or Sql) + #[arg(long, value_enum, ignore_case = true, default_value_t = BackendType::default())] + pub frontier_backend_type: BackendType, + + // Sets the SQL backend's pool size. + #[arg(long, default_value = "100")] + pub frontier_sql_backend_pool_size: u32, + + /// Sets the SQL backend's query timeout in number of VM ops. + #[arg(long, default_value = "10000000")] + pub frontier_sql_backend_num_ops_timeout: u32, + + /// Sets the SQL backend's auxiliary thread limit. + #[arg(long, default_value = "4")] + pub frontier_sql_backend_thread_count: u32, + + /// Sets the SQL backend's query timeout in number of VM ops. + /// Default value is 200MB. + #[arg(long, default_value = "209715200")] + pub frontier_sql_backend_cache_size: u64, +} + +pub struct FrontierPartialComponents { + pub filter_pool: Option, + pub fee_history_cache: FeeHistoryCache, + pub fee_history_cache_limit: FeeHistoryCacheLimit, +} + +pub fn new_frontier_partial( + config: &EthConfiguration, +) -> Result { + Ok(FrontierPartialComponents { + filter_pool: Some(Arc::new(Mutex::new(BTreeMap::new()))), + fee_history_cache: Arc::new(Mutex::new(BTreeMap::new())), + fee_history_cache_limit: config.fee_history_limit, + }) +} + +/// A set of APIs that ethereum-compatible runtimes must implement. +pub trait EthCompatRuntimeApiCollection: + sp_api::ApiExt + + fp_rpc::ConvertTransactionRuntimeApi + + fp_rpc::EthereumRuntimeRPCApi +{ +} + +impl EthCompatRuntimeApiCollection for Api where + Api: sp_api::ApiExt + + fp_rpc::ConvertTransactionRuntimeApi + + fp_rpc::EthereumRuntimeRPCApi +{ +} + +pub async fn spawn_frontier_tasks( + task_manager: &TaskManager, + client: Arc>, + backend: Arc, + frontier_backend: FrontierBackend, + filter_pool: Option, + overrides: Arc>, + fee_history_cache: FeeHistoryCache, + fee_history_cache_limit: FeeHistoryCacheLimit, + sync: Arc>, + pubsub_notification_sinks: Arc< + fc_mapping_sync::EthereumBlockNotificationSinks< + fc_mapping_sync::EthereumBlockNotification, + >, + >, +) where + RuntimeApi: ConstructRuntimeApi>, + RuntimeApi: Send + Sync + 'static, + RuntimeApi::RuntimeApi: EthCompatRuntimeApiCollection, + Executor: NativeExecutionDispatch + 'static, +{ + // Spawn main mapping sync worker background task. + match frontier_backend { + fc_db::Backend::KeyValue(b) => { + task_manager.spawn_essential_handle().spawn( + "frontier-mapping-sync-worker", + Some("frontier"), + fc_mapping_sync::kv::MappingSyncWorker::new( + client.import_notification_stream(), + Duration::new(6, 0), + client.clone(), + backend, + overrides.clone(), + Arc::new(b), + 3, + 0, + fc_mapping_sync::SyncStrategy::Normal, + sync, + pubsub_notification_sinks, + ) + .for_each(|()| future::ready(())), + ); + } + fc_db::Backend::Sql(b) => { + task_manager.spawn_essential_handle().spawn_blocking( + "frontier-mapping-sync-worker", + Some("frontier"), + fc_mapping_sync::sql::SyncWorker::run( + client.clone(), + backend, + Arc::new(b), + client.import_notification_stream(), + fc_mapping_sync::sql::SyncWorkerConfig { + read_notification_timeout: Duration::from_secs(10), + check_indexed_blocks_interval: Duration::from_secs(60), + }, + fc_mapping_sync::SyncStrategy::Parachain, + sync, + pubsub_notification_sinks, + ), + ); + } + } + + // Spawn Frontier EthFilterApi maintenance task. + if let Some(filter_pool) = filter_pool { + // Each filter is allowed to stay in the pool for 100 blocks. + const FILTER_RETAIN_THRESHOLD: u64 = 100; + task_manager.spawn_essential_handle().spawn( + "frontier-filter-pool", + Some("frontier"), + EthTask::filter_pool_task(client.clone(), filter_pool, FILTER_RETAIN_THRESHOLD), + ); + } + + // Spawn Frontier FeeHistory cache maintenance task. + task_manager.spawn_essential_handle().spawn( + "frontier-fee-history", + Some("frontier"), + EthTask::fee_history_task( + client, + overrides, + fee_history_cache, + fee_history_cache_limit, + ), + ); +} diff --git a/node/src/main.rs b/node/src/main.rs new file mode 100644 index 0000000..0bb5dad --- /dev/null +++ b/node/src/main.rs @@ -0,0 +1,23 @@ +//! Substrate Node Template CLI library. + +#![warn(missing_docs)] +#![allow( + clippy::type_complexity, + clippy::too_many_arguments, + clippy::large_enum_variant +)] +#![cfg_attr(feature = "runtime-benchmarks", warn(unused_crate_dependencies))] + +#[cfg(feature = "runtime-benchmarks")] +mod benchmarking; +mod chain_spec; +mod cli; +mod client; +mod command; +mod eth; +mod rpc; +mod service; + +fn main() -> sc_cli::Result<()> { + command::run() +} diff --git a/node/src/rpc/eth.rs b/node/src/rpc/eth.rs new file mode 100644 index 0000000..29e15a2 --- /dev/null +++ b/node/src/rpc/eth.rs @@ -0,0 +1,206 @@ +use std::{collections::BTreeMap, sync::Arc}; + +use jsonrpsee::RpcModule; +// Substrate +use sc_client_api::{ + backend::{Backend, StorageProvider}, + client::BlockchainEvents, + AuxStore, UsageProvider, +}; +use sc_network::NetworkService; +use sc_network_sync::SyncingService; +use sc_rpc::SubscriptionTaskExecutor; +use sc_transaction_pool::{ChainApi, Pool}; +use sc_transaction_pool_api::TransactionPool; +use sp_api::{CallApiAt, ProvideRuntimeApi}; +use sp_block_builder::BlockBuilder as BlockBuilderApi; +use sp_blockchain::{Error as BlockChainError, HeaderBackend, HeaderMetadata}; +use sp_consensus_aura::{sr25519::AuthorityId as AuraId, AuraApi}; +use sp_core::H256; +use sp_inherents::CreateInherentDataProviders; +use sp_runtime::traits::Block as BlockT; +// Frontier +pub use fc_rpc::{EthBlockDataCacheTask, EthConfig, OverrideHandle}; +pub use fc_rpc_core::types::{FeeHistoryCache, FeeHistoryCacheLimit, FilterPool}; +pub use fc_storage::overrides_handle; +use fp_rpc::{ConvertTransaction, ConvertTransactionRuntimeApi, EthereumRuntimeRPCApi}; + +/// Extra dependencies for Ethereum compatibility. +pub struct EthDeps { + /// The client instance to use. + pub client: Arc, + /// Transaction pool instance. + pub pool: Arc

    , + /// Graph pool instance. + pub graph: Arc>, + /// Ethereum transaction converter. + pub converter: Option, + /// The Node authority flag + pub is_authority: bool, + /// Whether to enable dev signer + pub enable_dev_signer: bool, + /// Network service + pub network: Arc>, + /// Chain syncing service + pub sync: Arc>, + /// Frontier Backend. + pub frontier_backend: Arc>, + /// Ethereum data access overrides. + pub overrides: Arc>, + /// Cache for Ethereum block data. + pub block_data_cache: Arc>, + /// EthFilterApi pool. + pub filter_pool: Option, + /// Maximum number of logs in a query. + pub max_past_logs: u32, + /// Fee history cache. + pub fee_history_cache: FeeHistoryCache, + /// Maximum fee history cache size. + pub fee_history_cache_limit: FeeHistoryCacheLimit, + /// Maximum allowed gas limit will be ` block.gas_limit * execute_gas_limit_multiplier` when + /// using eth_call/eth_estimateGas. + pub execute_gas_limit_multiplier: u64, + /// Mandated parent hashes for a given block hash. + pub forced_parent_hashes: Option>, + /// Something that can create the inherent data providers for pending state + pub pending_create_inherent_data_providers: CIDP, +} + +/// Instantiate Ethereum-compatible RPC extensions. +pub fn create_eth( + mut io: RpcModule<()>, + deps: EthDeps, + subscription_task_executor: SubscriptionTaskExecutor, + pubsub_notification_sinks: Arc< + fc_mapping_sync::EthereumBlockNotificationSinks< + fc_mapping_sync::EthereumBlockNotification, + >, + >, +) -> Result, Box> +where + B: BlockT, + C: CallApiAt + ProvideRuntimeApi, + C::Api: AuraApi + + BlockBuilderApi + + ConvertTransactionRuntimeApi + + EthereumRuntimeRPCApi, + C: HeaderBackend + HeaderMetadata, + C: BlockchainEvents + AuxStore + UsageProvider + StorageProvider + 'static, + BE: Backend + 'static, + P: TransactionPool + 'static, + A: ChainApi + 'static, + CT: ConvertTransaction<::Extrinsic> + Send + Sync + 'static, + CIDP: CreateInherentDataProviders + Send + 'static, + EC: EthConfig, +{ + use fc_rpc::{ + pending::AuraConsensusDataProvider, Debug, DebugApiServer, Eth, EthApiServer, EthDevSigner, + EthFilter, EthFilterApiServer, EthPubSub, EthPubSubApiServer, EthSigner, Net, NetApiServer, + Web3, Web3ApiServer, + }; + #[cfg(feature = "txpool")] + use fc_rpc::{TxPool, TxPoolApiServer}; + + let EthDeps { + client, + pool, + graph, + converter, + is_authority, + enable_dev_signer, + network, + sync, + frontier_backend, + overrides, + block_data_cache, + filter_pool, + max_past_logs, + fee_history_cache, + fee_history_cache_limit, + execute_gas_limit_multiplier, + forced_parent_hashes, + pending_create_inherent_data_providers, + } = deps; + + let mut signers = Vec::new(); + if enable_dev_signer { + signers.push(Box::new(EthDevSigner::new()) as Box); + } + + io.merge( + Eth::::new( + client.clone(), + pool.clone(), + graph.clone(), + converter, + sync.clone(), + signers, + overrides.clone(), + frontier_backend.clone(), + is_authority, + block_data_cache.clone(), + fee_history_cache, + fee_history_cache_limit, + execute_gas_limit_multiplier, + forced_parent_hashes, + pending_create_inherent_data_providers, + Some(Box::new(AuraConsensusDataProvider::new(client.clone()))), + ) + .replace_config::() + .into_rpc(), + )?; + + if let Some(filter_pool) = filter_pool { + io.merge( + EthFilter::new( + client.clone(), + frontier_backend.clone(), + graph.clone(), + filter_pool, + 500_usize, // max stored filters + max_past_logs, + block_data_cache.clone(), + ) + .into_rpc(), + )?; + } + + io.merge( + EthPubSub::new( + pool, + client.clone(), + sync, + subscription_task_executor, + overrides.clone(), + pubsub_notification_sinks, + ) + .into_rpc(), + )?; + + io.merge( + Net::new( + client.clone(), + network, + // Whether to format the `peer_count` response as Hex (default) or not. + true, + ) + .into_rpc(), + )?; + + io.merge(Web3::new(client.clone()).into_rpc())?; + + io.merge( + Debug::new( + client.clone(), + frontier_backend, + overrides, + block_data_cache, + ) + .into_rpc(), + )?; + + #[cfg(feature = "txpool")] + io.merge(TxPool::new(client, graph).into_rpc())?; + + Ok(io) +} diff --git a/node/src/rpc/mod.rs b/node/src/rpc/mod.rs new file mode 100644 index 0000000..1a4a2b7 --- /dev/null +++ b/node/src/rpc/mod.rs @@ -0,0 +1,114 @@ +//! A collection of node-specific RPC methods. + +use std::sync::Arc; + +use futures::channel::mpsc; +use jsonrpsee::RpcModule; +// Substrate +use sc_client_api::{ + backend::{Backend, StorageProvider}, + client::BlockchainEvents, + AuxStore, UsageProvider, +}; +use sc_consensus_manual_seal::rpc::EngineCommand; +use sc_rpc::SubscriptionTaskExecutor; +use sc_rpc_api::DenyUnsafe; +use sc_service::TransactionPool; +use sc_transaction_pool::ChainApi; +use sp_api::{CallApiAt, ProvideRuntimeApi}; +use sp_blockchain::{Error as BlockChainError, HeaderBackend, HeaderMetadata}; +use sp_consensus_aura::sr25519::AuthorityId as AuraId; +use sp_inherents::CreateInherentDataProviders; +use sp_runtime::traits::Block as BlockT; +// Runtime +use aya_runtime::{opaque::Block, AccountId, Balance, Hash, Nonce}; + +mod eth; +pub use self::eth::{create_eth, overrides_handle, EthDeps}; + +/// Full client dependencies. +pub struct FullDeps { + /// The client instance to use. + pub client: Arc, + /// Transaction pool instance. + pub pool: Arc

    , + /// Whether to deny unsafe calls + pub deny_unsafe: DenyUnsafe, + /// Manual seal command sink + pub command_sink: Option>>, + /// Ethereum-compatibility specific dependencies. + pub eth: EthDeps, +} + +pub struct DefaultEthConfig(std::marker::PhantomData<(C, BE)>); + +impl fc_rpc::EthConfig for DefaultEthConfig +where + C: StorageProvider + Sync + Send + 'static, + BE: Backend + 'static, +{ + type EstimateGasAdapter = (); + type RuntimeStorageOverride = + fc_rpc::frontier_backend_client::SystemAccountId20StorageOverride; +} + +/// Instantiate all Full RPC extensions. +pub fn create_full( + deps: FullDeps, + subscription_task_executor: SubscriptionTaskExecutor, + pubsub_notification_sinks: Arc< + fc_mapping_sync::EthereumBlockNotificationSinks< + fc_mapping_sync::EthereumBlockNotification, + >, + >, +) -> Result, Box> +where + C: CallApiAt + ProvideRuntimeApi, + C::Api: sp_block_builder::BlockBuilder, + C::Api: sp_consensus_aura::AuraApi, + C::Api: substrate_frame_rpc_system::AccountNonceApi, + C::Api: pallet_transaction_payment_rpc::TransactionPaymentRuntimeApi, + C::Api: fp_rpc::ConvertTransactionRuntimeApi, + C::Api: fp_rpc::EthereumRuntimeRPCApi, + C: HeaderBackend + HeaderMetadata + 'static, + C: BlockchainEvents + AuxStore + UsageProvider + StorageProvider, + BE: Backend + 'static, + P: TransactionPool + 'static, + A: ChainApi + 'static, + CIDP: CreateInherentDataProviders + Send + 'static, + CT: fp_rpc::ConvertTransaction<::Extrinsic> + Send + Sync + 'static, +{ + use pallet_transaction_payment_rpc::{TransactionPayment, TransactionPaymentApiServer}; + use sc_consensus_manual_seal::rpc::{ManualSeal, ManualSealApiServer}; + use substrate_frame_rpc_system::{System, SystemApiServer}; + + let mut io = RpcModule::new(()); + let FullDeps { + client, + pool, + deny_unsafe, + command_sink, + eth, + } = deps; + + io.merge(System::new(client.clone(), pool, deny_unsafe).into_rpc())?; + io.merge(TransactionPayment::new(client).into_rpc())?; + + if let Some(command_sink) = command_sink { + io.merge( + // We provide the rpc handler with the sending end of the channel to allow the rpc + // send EngineCommands to the background block authorship task. + ManualSeal::new(command_sink).into_rpc(), + )?; + } + + // Ethereum compatibility RPCs + let io = create_eth::<_, _, _, _, _, _, _, DefaultEthConfig>( + io, + eth, + subscription_task_executor, + pubsub_notification_sinks, + )?; + + Ok(io) +} diff --git a/node/src/service.rs b/node/src/service.rs new file mode 100644 index 0000000..d3e1969 --- /dev/null +++ b/node/src/service.rs @@ -0,0 +1,728 @@ +//! Service and ServiceFactory implementation. Specialized wrapper over substrate service. + +use std::{cell::RefCell, path::Path, sync::Arc, time::Duration}; + +use futures::{channel::mpsc, prelude::*}; +// Substrate +use prometheus_endpoint::Registry; +use sc_client_api::{Backend, BlockBackend}; +use sc_consensus::BasicQueue; +use sc_executor::NativeExecutionDispatch; +use sc_network_sync::strategy::warp::{WarpSyncParams, WarpSyncProvider}; +use sc_service::{error::Error as ServiceError, Configuration, PartialComponents, TaskManager}; +use sc_telemetry::{Telemetry, TelemetryHandle, TelemetryWorker}; +use sc_transaction_pool_api::OffchainTransactionPoolFactory; +use sp_api::ConstructRuntimeApi; +use sp_consensus_aura::sr25519::AuthorityPair as AuraPair; +use sp_core::U256; +// Runtime +use aya_runtime::{opaque::Block, Hash, TransactionConverter}; + +use crate::{ + cli::Sealing, + client::{BaseRuntimeApiCollection, FullBackend, FullClient, RuntimeApiCollection}, + eth::{ + new_frontier_partial, spawn_frontier_tasks, BackendType, EthCompatRuntimeApiCollection, + FrontierBackend, FrontierBlockImport, FrontierPartialComponents, + }, +}; +pub use crate::{ + client::{Client, TemplateRuntimeExecutor}, + eth::{db_config_dir, EthConfiguration}, +}; + +type BasicImportQueue = sc_consensus::DefaultImportQueue; +type FullPool = sc_transaction_pool::FullPool; +type FullSelectChain = sc_consensus::LongestChain; + +type GrandpaBlockImport = + sc_consensus_grandpa::GrandpaBlockImport; +type GrandpaLinkHalf = sc_consensus_grandpa::LinkHalf; +type BoxBlockImport = sc_consensus::BoxBlockImport; + +/// The minimum period of blocks on which justifications will be +/// imported and generated. +const GRANDPA_JUSTIFICATION_PERIOD: u32 = 512; + +pub fn new_partial( + config: &Configuration, + eth_config: &EthConfiguration, + build_import_queue: BIQ, +) -> Result< + PartialComponents< + FullClient, + FullBackend, + FullSelectChain, + BasicImportQueue, + FullPool>, + ( + Option, + BoxBlockImport, + GrandpaLinkHalf>, + FrontierBackend, + Arc>, + ), + >, + ServiceError, +> +where + RuntimeApi: ConstructRuntimeApi>, + RuntimeApi: Send + Sync + 'static, + RuntimeApi::RuntimeApi: BaseRuntimeApiCollection + EthCompatRuntimeApiCollection, + Executor: NativeExecutionDispatch + 'static, + BIQ: FnOnce( + Arc>, + &Configuration, + &EthConfiguration, + &TaskManager, + Option, + GrandpaBlockImport>, + ) -> Result<(BasicImportQueue, BoxBlockImport), ServiceError>, +{ + let telemetry = config + .telemetry_endpoints + .clone() + .filter(|x| !x.is_empty()) + .map(|endpoints| -> Result<_, sc_telemetry::Error> { + let worker = TelemetryWorker::new(16)?; + let telemetry = worker.handle().new_telemetry(endpoints); + Ok((worker, telemetry)) + }) + .transpose()?; + + let executor = sc_service::new_native_or_wasm_executor(config); + + let (client, backend, keystore_container, task_manager) = + sc_service::new_full_parts::( + config, + telemetry.as_ref().map(|(_, telemetry)| telemetry.handle()), + executor, + )?; + let client = Arc::new(client); + + let telemetry = telemetry.map(|(worker, telemetry)| { + task_manager + .spawn_handle() + .spawn("telemetry", None, worker.run()); + telemetry + }); + + let select_chain = sc_consensus::LongestChain::new(backend.clone()); + let (grandpa_block_import, grandpa_link) = sc_consensus_grandpa::block_import( + client.clone(), + GRANDPA_JUSTIFICATION_PERIOD, + &client, + select_chain.clone(), + telemetry.as_ref().map(|x| x.handle()), + )?; + + let overrides = crate::rpc::overrides_handle(client.clone()); + let frontier_backend = match eth_config.frontier_backend_type { + BackendType::KeyValue => FrontierBackend::KeyValue(fc_db::kv::Backend::open( + Arc::clone(&client), + &config.database, + &db_config_dir(config), + )?), + BackendType::Sql => { + let db_path = db_config_dir(config).join("sql"); + std::fs::create_dir_all(&db_path).expect("failed creating sql db directory"); + let backend = futures::executor::block_on(fc_db::sql::Backend::new( + fc_db::sql::BackendConfig::Sqlite(fc_db::sql::SqliteBackendConfig { + path: Path::new("sqlite:///") + .join(db_path) + .join("frontier.db3") + .to_str() + .unwrap(), + create_if_missing: true, + thread_count: eth_config.frontier_sql_backend_thread_count, + cache_size: eth_config.frontier_sql_backend_cache_size, + }), + eth_config.frontier_sql_backend_pool_size, + std::num::NonZeroU32::new(eth_config.frontier_sql_backend_num_ops_timeout), + overrides.clone(), + )) + .unwrap_or_else(|err| panic!("failed creating sql backend: {:?}", err)); + FrontierBackend::Sql(backend) + } + }; + + let (import_queue, block_import) = build_import_queue( + client.clone(), + config, + eth_config, + &task_manager, + telemetry.as_ref().map(|x| x.handle()), + grandpa_block_import, + )?; + + let transaction_pool = sc_transaction_pool::BasicPool::new_full( + config.transaction_pool.clone(), + config.role.is_authority().into(), + config.prometheus_registry(), + task_manager.spawn_essential_handle(), + client.clone(), + ); + + Ok(PartialComponents { + client, + backend, + keystore_container, + task_manager, + select_chain, + import_queue, + transaction_pool, + other: ( + telemetry, + block_import, + grandpa_link, + frontier_backend, + overrides, + ), + }) +} + +/// Build the import queue for the template runtime (aura + grandpa). +pub fn build_aura_grandpa_import_queue( + client: Arc>, + config: &Configuration, + eth_config: &EthConfiguration, + task_manager: &TaskManager, + telemetry: Option, + grandpa_block_import: GrandpaBlockImport>, +) -> Result<(BasicImportQueue, BoxBlockImport), ServiceError> +where + RuntimeApi: ConstructRuntimeApi>, + RuntimeApi: Send + Sync + 'static, + RuntimeApi::RuntimeApi: RuntimeApiCollection, + Executor: NativeExecutionDispatch + 'static, +{ + let frontier_block_import = + FrontierBlockImport::new(grandpa_block_import.clone(), client.clone()); + + let slot_duration = sc_consensus_aura::slot_duration(&*client)?; + let target_gas_price = eth_config.target_gas_price; + let create_inherent_data_providers = move |_, ()| async move { + let timestamp = sp_timestamp::InherentDataProvider::from_system_time(); + let slot = + sp_consensus_aura::inherents::InherentDataProvider::from_timestamp_and_slot_duration( + *timestamp, + slot_duration, + ); + let dynamic_fee = fp_dynamic_fee::InherentDataProvider(U256::from(target_gas_price)); + Ok((slot, timestamp, dynamic_fee)) + }; + + let import_queue = sc_consensus_aura::import_queue::( + sc_consensus_aura::ImportQueueParams { + block_import: frontier_block_import.clone(), + justification_import: Some(Box::new(grandpa_block_import)), + client, + create_inherent_data_providers, + spawner: &task_manager.spawn_essential_handle(), + registry: config.prometheus_registry(), + check_for_equivocation: Default::default(), + telemetry, + compatibility_mode: sc_consensus_aura::CompatibilityMode::None, + }, + ) + .map_err::(Into::into)?; + + Ok((import_queue, Box::new(frontier_block_import))) +} + +/// Build the import queue for the template runtime (manual seal). +pub fn build_manual_seal_import_queue( + client: Arc>, + config: &Configuration, + _eth_config: &EthConfiguration, + task_manager: &TaskManager, + _telemetry: Option, + _grandpa_block_import: GrandpaBlockImport>, +) -> Result<(BasicImportQueue, BoxBlockImport), ServiceError> +where + RuntimeApi: ConstructRuntimeApi>, + RuntimeApi: Send + Sync + 'static, + RuntimeApi::RuntimeApi: RuntimeApiCollection, + Executor: NativeExecutionDispatch + 'static, +{ + let frontier_block_import = FrontierBlockImport::new(client.clone(), client); + Ok(( + sc_consensus_manual_seal::import_queue( + Box::new(frontier_block_import.clone()), + &task_manager.spawn_essential_handle(), + config.prometheus_registry(), + ), + Box::new(frontier_block_import), + )) +} + +/// Builds a new service for a full client. +pub async fn new_full( + mut config: Configuration, + eth_config: EthConfiguration, + sealing: Option, +) -> Result +where + RuntimeApi: ConstructRuntimeApi>, + RuntimeApi: Send + Sync + 'static, + RuntimeApi::RuntimeApi: RuntimeApiCollection, + Executor: NativeExecutionDispatch + 'static, +{ + let build_import_queue = if sealing.is_some() { + build_manual_seal_import_queue:: + } else { + build_aura_grandpa_import_queue:: + }; + + let PartialComponents { + client, + backend, + mut task_manager, + import_queue, + keystore_container, + select_chain, + transaction_pool, + other: (mut telemetry, block_import, grandpa_link, frontier_backend, overrides), + } = new_partial(&config, ð_config, build_import_queue)?; + + let FrontierPartialComponents { + filter_pool, + fee_history_cache, + fee_history_cache_limit, + } = new_frontier_partial(ð_config)?; + + let mut net_config = sc_network::config::FullNetworkConfiguration::new(&config.network); + let grandpa_protocol_name = sc_consensus_grandpa::protocol_standard_name( + &client.block_hash(0)?.expect("Genesis block exists; qed"), + &config.chain_spec, + ); + let (grandpa_protocol_config, grandpa_notification_service) = + sc_consensus_grandpa::grandpa_peers_set_config(grandpa_protocol_name.clone()); + + let warp_sync_params = if sealing.is_some() { + None + } else { + net_config.add_notification_protocol(grandpa_protocol_config); + let warp_sync: Arc> = + Arc::new(sc_consensus_grandpa::warp_proof::NetworkProvider::new( + backend.clone(), + grandpa_link.shared_authority_set().clone(), + Vec::default(), + )); + Some(WarpSyncParams::WithProvider(warp_sync)) + }; + + let (network, system_rpc_tx, tx_handler_controller, network_starter, sync_service) = + sc_service::build_network(sc_service::BuildNetworkParams { + config: &config, + net_config, + client: client.clone(), + transaction_pool: transaction_pool.clone(), + spawn_handle: task_manager.spawn_handle(), + import_queue, + block_announce_validator_builder: None, + warp_sync_params, + block_relay: None, + })?; + + if config.offchain_worker.enabled { + task_manager.spawn_handle().spawn( + "offchain-workers-runner", + "offchain-worker", + sc_offchain::OffchainWorkers::new(sc_offchain::OffchainWorkerOptions { + runtime_api_provider: client.clone(), + is_validator: config.role.is_authority(), + keystore: Some(keystore_container.keystore()), + offchain_db: backend.offchain_storage(), + transaction_pool: Some(OffchainTransactionPoolFactory::new( + transaction_pool.clone(), + )), + network_provider: network.clone(), + enable_http_requests: true, + custom_extensions: |_| vec![], + }) + .run(client.clone(), task_manager.spawn_handle()) + .boxed(), + ); + } + + let role = config.role.clone(); + let force_authoring = config.force_authoring; + let name = config.network.node_name.clone(); + let enable_grandpa = !config.disable_grandpa && sealing.is_none(); + let prometheus_registry = config.prometheus_registry().cloned(); + + // Channel for the rpc handler to communicate with the authorship task. + let (command_sink, commands_stream) = mpsc::channel(1000); + + // Sinks for pubsub notifications. + // Everytime a new subscription is created, a new mpsc channel is added to the sink pool. + // The MappingSyncWorker sends through the channel on block import and the subscription emits a notification to the subscriber on receiving a message through this channel. + // This way we avoid race conditions when using native substrate block import notification stream. + let pubsub_notification_sinks: fc_mapping_sync::EthereumBlockNotificationSinks< + fc_mapping_sync::EthereumBlockNotification, + > = Default::default(); + let pubsub_notification_sinks = Arc::new(pubsub_notification_sinks); + + // for ethereum-compatibility rpc. + config.rpc_id_provider = Some(Box::new(fc_rpc::EthereumSubIdProvider)); + + let rpc_builder = { + let client = client.clone(); + let pool = transaction_pool.clone(); + let network = network.clone(); + let sync_service = sync_service.clone(); + + let is_authority = role.is_authority(); + let enable_dev_signer = eth_config.enable_dev_signer; + let max_past_logs = eth_config.max_past_logs; + let execute_gas_limit_multiplier = eth_config.execute_gas_limit_multiplier; + let filter_pool = filter_pool.clone(); + let frontier_backend = frontier_backend.clone(); + let pubsub_notification_sinks = pubsub_notification_sinks.clone(); + let overrides = overrides.clone(); + let fee_history_cache = fee_history_cache.clone(); + let block_data_cache = Arc::new(fc_rpc::EthBlockDataCacheTask::new( + task_manager.spawn_handle(), + overrides.clone(), + eth_config.eth_log_block_cache, + eth_config.eth_statuses_cache, + prometheus_registry.clone(), + )); + + let slot_duration = sc_consensus_aura::slot_duration(&*client)?; + let target_gas_price = eth_config.target_gas_price; + let pending_create_inherent_data_providers = move |_, ()| async move { + let current = sp_timestamp::InherentDataProvider::from_system_time(); + let next_slot = current.timestamp().as_millis() + slot_duration.as_millis(); + let timestamp = sp_timestamp::InherentDataProvider::new(next_slot.into()); + let slot = sp_consensus_aura::inherents::InherentDataProvider::from_timestamp_and_slot_duration( + *timestamp, + slot_duration, + ); + let dynamic_fee = fp_dynamic_fee::InherentDataProvider(U256::from(target_gas_price)); + Ok((slot, timestamp, dynamic_fee)) + }; + + Box::new(move |deny_unsafe, subscription_task_executor| { + let eth_deps = crate::rpc::EthDeps { + client: client.clone(), + pool: pool.clone(), + graph: pool.pool().clone(), + converter: Some(TransactionConverter), + is_authority, + enable_dev_signer, + network: network.clone(), + sync: sync_service.clone(), + frontier_backend: match frontier_backend.clone() { + fc_db::Backend::KeyValue(b) => Arc::new(b), + fc_db::Backend::Sql(b) => Arc::new(b), + }, + overrides: overrides.clone(), + block_data_cache: block_data_cache.clone(), + filter_pool: filter_pool.clone(), + max_past_logs, + fee_history_cache: fee_history_cache.clone(), + fee_history_cache_limit, + execute_gas_limit_multiplier, + forced_parent_hashes: None, + pending_create_inherent_data_providers, + }; + let deps = crate::rpc::FullDeps { + client: client.clone(), + pool: pool.clone(), + deny_unsafe, + command_sink: if sealing.is_some() { + Some(command_sink.clone()) + } else { + None + }, + eth: eth_deps, + }; + crate::rpc::create_full( + deps, + subscription_task_executor, + pubsub_notification_sinks.clone(), + ) + .map_err(Into::into) + }) + }; + + let _rpc_handlers = sc_service::spawn_tasks(sc_service::SpawnTasksParams { + config, + client: client.clone(), + backend: backend.clone(), + task_manager: &mut task_manager, + keystore: keystore_container.keystore(), + transaction_pool: transaction_pool.clone(), + rpc_builder, + network: network.clone(), + system_rpc_tx, + tx_handler_controller, + sync_service: sync_service.clone(), + telemetry: telemetry.as_mut(), + })?; + + spawn_frontier_tasks( + &task_manager, + client.clone(), + backend, + frontier_backend, + filter_pool, + overrides, + fee_history_cache, + fee_history_cache_limit, + sync_service.clone(), + pubsub_notification_sinks, + ) + .await; + + if role.is_authority() { + // manual-seal authorship + if let Some(sealing) = sealing { + run_manual_seal_authorship( + ð_config, + sealing, + client, + transaction_pool, + select_chain, + block_import, + &task_manager, + prometheus_registry.as_ref(), + telemetry.as_ref(), + commands_stream, + )?; + + network_starter.start_network(); + log::info!("Manual Seal Ready"); + return Ok(task_manager); + } + + let proposer_factory = sc_basic_authorship::ProposerFactory::new( + task_manager.spawn_handle(), + client.clone(), + transaction_pool.clone(), + prometheus_registry.as_ref(), + telemetry.as_ref().map(|x| x.handle()), + ); + + let slot_duration = sc_consensus_aura::slot_duration(&*client)?; + let target_gas_price = eth_config.target_gas_price; + let create_inherent_data_providers = move |_, ()| async move { + let timestamp = sp_timestamp::InherentDataProvider::from_system_time(); + let slot = sp_consensus_aura::inherents::InherentDataProvider::from_timestamp_and_slot_duration( + *timestamp, + slot_duration, + ); + let dynamic_fee = fp_dynamic_fee::InherentDataProvider(U256::from(target_gas_price)); + Ok((slot, timestamp, dynamic_fee)) + }; + + let aura = sc_consensus_aura::start_aura::( + sc_consensus_aura::StartAuraParams { + slot_duration, + client, + select_chain, + block_import, + proposer_factory, + sync_oracle: sync_service.clone(), + justification_sync_link: sync_service.clone(), + create_inherent_data_providers, + force_authoring, + backoff_authoring_blocks: Option::<()>::None, + keystore: keystore_container.keystore(), + block_proposal_slot_portion: sc_consensus_aura::SlotProportion::new(2f32 / 3f32), + max_block_proposal_slot_portion: None, + telemetry: telemetry.as_ref().map(|x| x.handle()), + compatibility_mode: sc_consensus_aura::CompatibilityMode::None, + }, + )?; + // the AURA authoring task is considered essential, i.e. if it + // fails we take down the service with it. + task_manager + .spawn_essential_handle() + .spawn_blocking("aura", Some("block-authoring"), aura); + } + + if enable_grandpa { + // if the node isn't actively participating in consensus then it doesn't + // need a keystore, regardless of which protocol we use below. + let keystore = if role.is_authority() { + Some(keystore_container.keystore()) + } else { + None + }; + + let grandpa_config = sc_consensus_grandpa::Config { + // FIXME #1578 make this available through chainspec + gossip_duration: Duration::from_millis(333), + justification_generation_period: GRANDPA_JUSTIFICATION_PERIOD, + name: Some(name), + observer_enabled: false, + keystore, + local_role: role, + telemetry: telemetry.as_ref().map(|x| x.handle()), + protocol_name: grandpa_protocol_name, + }; + + // start the full GRANDPA voter + // NOTE: non-authorities could run the GRANDPA observer protocol, but at + // this point the full voter should provide better guarantees of block + // and vote data availability than the observer. The observer has not + // been tested extensively yet and having most nodes in a network run it + // could lead to finality stalls. + let grandpa_voter = + sc_consensus_grandpa::run_grandpa_voter(sc_consensus_grandpa::GrandpaParams { + config: grandpa_config, + link: grandpa_link, + network, + sync: sync_service, + notification_service: grandpa_notification_service, + voting_rule: sc_consensus_grandpa::VotingRulesBuilder::default().build(), + prometheus_registry, + shared_voter_state: sc_consensus_grandpa::SharedVoterState::empty(), + telemetry: telemetry.as_ref().map(|x| x.handle()), + offchain_tx_pool_factory: OffchainTransactionPoolFactory::new(transaction_pool), + })?; + + // the GRANDPA voter task is considered infallible, i.e. + // if it fails we take down the service with it. + task_manager + .spawn_essential_handle() + .spawn_blocking("grandpa-voter", None, grandpa_voter); + } + + network_starter.start_network(); + Ok(task_manager) +} + +fn run_manual_seal_authorship( + eth_config: &EthConfiguration, + sealing: Sealing, + client: Arc>, + transaction_pool: Arc>>, + select_chain: FullSelectChain, + block_import: BoxBlockImport, + task_manager: &TaskManager, + prometheus_registry: Option<&Registry>, + telemetry: Option<&Telemetry>, + commands_stream: mpsc::Receiver>, +) -> Result<(), ServiceError> +where + RuntimeApi: ConstructRuntimeApi>, + RuntimeApi: Send + Sync + 'static, + RuntimeApi::RuntimeApi: RuntimeApiCollection, + Executor: NativeExecutionDispatch + 'static, +{ + let proposer_factory = sc_basic_authorship::ProposerFactory::new( + task_manager.spawn_handle(), + client.clone(), + transaction_pool.clone(), + prometheus_registry, + telemetry.as_ref().map(|x| x.handle()), + ); + + thread_local!(static TIMESTAMP: RefCell = const { RefCell::new(0) }); + + /// Provide a mock duration starting at 0 in millisecond for timestamp inherent. + /// Each call will increment timestamp by slot_duration making Aura think time has passed. + struct MockTimestampInherentDataProvider; + + #[async_trait::async_trait] + impl sp_inherents::InherentDataProvider for MockTimestampInherentDataProvider { + async fn provide_inherent_data( + &self, + inherent_data: &mut sp_inherents::InherentData, + ) -> Result<(), sp_inherents::Error> { + TIMESTAMP.with(|x| { + *x.borrow_mut() += aya_runtime::SLOT_DURATION; + inherent_data.put_data(sp_timestamp::INHERENT_IDENTIFIER, &*x.borrow()) + }) + } + + async fn try_handle_error( + &self, + _identifier: &sp_inherents::InherentIdentifier, + _error: &[u8], + ) -> Option> { + // The pallet never reports error. + None + } + } + + let target_gas_price = eth_config.target_gas_price; + let create_inherent_data_providers = move |_, ()| async move { + let timestamp = MockTimestampInherentDataProvider; + let dynamic_fee = fp_dynamic_fee::InherentDataProvider(U256::from(target_gas_price)); + Ok((timestamp, dynamic_fee)) + }; + + let manual_seal = match sealing { + Sealing::Manual => future::Either::Left(sc_consensus_manual_seal::run_manual_seal( + sc_consensus_manual_seal::ManualSealParams { + block_import, + env: proposer_factory, + client, + pool: transaction_pool, + commands_stream, + select_chain, + consensus_data_provider: None, + create_inherent_data_providers, + }, + )), + Sealing::Instant => future::Either::Right(sc_consensus_manual_seal::run_instant_seal( + sc_consensus_manual_seal::InstantSealParams { + block_import, + env: proposer_factory, + client, + pool: transaction_pool, + select_chain, + consensus_data_provider: None, + create_inherent_data_providers, + }, + )), + }; + + // we spawn the future on a background thread managed by service. + task_manager + .spawn_essential_handle() + .spawn_blocking("manual-seal", None, manual_seal); + Ok(()) +} + +pub async fn build_full( + config: Configuration, + eth_config: EthConfiguration, + sealing: Option, +) -> Result { + new_full::(config, eth_config, sealing).await +} + +pub fn new_chain_ops( + config: &mut Configuration, + eth_config: &EthConfiguration, +) -> Result< + ( + Arc, + Arc, + BasicQueue, + TaskManager, + FrontierBackend, + ), + ServiceError, +> { + config.keystore = sc_service::config::KeystoreConfig::InMemory; + let PartialComponents { + client, + backend, + import_queue, + task_manager, + other, + .. + } = new_partial::( + config, + eth_config, + build_aura_grandpa_import_queue, + )?; + Ok((client, backend, import_queue, task_manager, other.3)) +} diff --git a/pallets/substrate-validator-set/Cargo.toml b/pallets/substrate-validator-set/Cargo.toml new file mode 100644 index 0000000..28968bd --- /dev/null +++ b/pallets/substrate-validator-set/Cargo.toml @@ -0,0 +1,45 @@ +[package] +name = 'substrate-validator-set' +version = '1.1.0' +authors = ['Gautam Dhameja '] +edition = '2021' +license = 'Apache-2.0' +repository = 'https://github.com/gautamdhameja/substrate-validator-set' + +[dependencies] +sp-core = { workspace = true } +sp-io = { workspace = true } +sp-runtime = { workspace = true } +sp-std = { workspace = true } +sp-staking = { workspace = true } +frame-benchmarking = { workspace = true } +frame-support = { workspace = true } +frame-system = { workspace = true } +pallet-session = { workspace = true } +sp-weights = { workspace = true } +scale-info = { workspace = true } +log = { workspace = true } +scale-codec = { workspace = true } + + +[dev-dependencies] +sp-state-machine = { workspace = true } +serde = { workspace = true } + + +[features] +default = ['std'] +runtime-benchmarks = ['frame-benchmarking/runtime-benchmarks'] +std = [ + 'scale-codec/std', + 'frame-benchmarking/std', + 'frame-support/std', + 'frame-system/std', + 'scale-info/std', + 'sp-core/std', + 'sp-io/std', + 'sp-std/std', + 'sp-runtime/std', + 'pallet-session/std', +] +try-runtime = ['frame-support/try-runtime'] diff --git a/pallets/substrate-validator-set/LICENSE b/pallets/substrate-validator-set/LICENSE new file mode 100644 index 0000000..261eeb9 --- /dev/null +++ b/pallets/substrate-validator-set/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/pallets/substrate-validator-set/rustfmt.toml b/pallets/substrate-validator-set/rustfmt.toml new file mode 100644 index 0000000..caa0a74 --- /dev/null +++ b/pallets/substrate-validator-set/rustfmt.toml @@ -0,0 +1,25 @@ +# Copied from https://github.com/paritytech/substrate/blob/master/rustfmt.toml to follow the Substrate code style. + +# Basic +hard_tabs = true +max_width = 100 +use_small_heuristics = "Max" +# Imports +imports_granularity = "Crate" +reorder_imports = true +# Consistency +newline_style = "Unix" +# Format comments +comment_width = 100 +wrap_comments = true +# Misc +chain_width = 80 +spaces_around_ranges = false +binop_separator = "Back" +reorder_impl_items = false +match_arm_leading_pipes = "Preserve" +match_arm_blocks = false +match_block_trailing_comma = true +trailing_comma = "Vertical" +trailing_semicolon = false +use_field_init_shorthand = true \ No newline at end of file diff --git a/pallets/substrate-validator-set/src/benchmarking.rs b/pallets/substrate-validator-set/src/benchmarking.rs new file mode 100644 index 0000000..5d33d09 --- /dev/null +++ b/pallets/substrate-validator-set/src/benchmarking.rs @@ -0,0 +1,27 @@ +#![cfg(feature = "runtime-benchmarks")] + +use super::*; +use frame_benchmarking::v1::{account, benchmarks, BenchmarkError}; +use frame_support::traits::EnsureOrigin; + +const SEED: u32 = 0; + +benchmarks! { + add_validator { + let origin = + T::AddRemoveOrigin::try_successful_origin().map_err(|_| BenchmarkError::Weightless)?; + let validator: T::ValidatorId = account("validator", 0, SEED); + }: _(origin, validator) + + remove_validator { + let origin = + T::AddRemoveOrigin::try_successful_origin().map_err(|_| BenchmarkError::Weightless)?; + let validator: T::ValidatorId = account("validator", 0, SEED); + }: _(origin, validator) + + impl_benchmark_test_suite!( + ValidatorSet, + crate::mock::new_test_ext(), + crate::mock::Test, + ); +} diff --git a/pallets/substrate-validator-set/src/lib.rs b/pallets/substrate-validator-set/src/lib.rs new file mode 100644 index 0000000..e18ed5a --- /dev/null +++ b/pallets/substrate-validator-set/src/lib.rs @@ -0,0 +1,290 @@ +//! # Validator Set Pallet +//! +//! The Validator Set Pallet allows addition and removal of +//! authorities/validators via extrinsics (transaction calls), in +//! Substrate-based PoA networks. It also integrates with the im-online pallet +//! to automatically remove offline validators. +//! +//! The pallet depends on the Session pallet and implements related traits for session +//! management. Currently it uses periodic session rotation provided by the +//! session pallet to automatically rotate sessions. For this reason, the +//! validator addition and removal becomes effective only after 2 sessions +//! (queuing + applying). + +#![cfg_attr(not(feature = "std"), no_std)] + +mod benchmarking; +mod mock; +mod tests; +pub mod weights; + +use frame_support::{ + ensure, + pallet_prelude::*, + traits::{EstimateNextSessionRotation, Get, ValidatorSet, ValidatorSetWithIdentification}, + DefaultNoBound, +}; +use frame_system::pallet_prelude::*; +use log; +pub use pallet::*; +use sp_runtime::traits::{Convert, Zero}; +use sp_staking::offence::{Offence, OffenceError, ReportOffence}; +use sp_std::prelude::*; +pub use weights::*; + +pub const LOG_TARGET: &'static str = "runtime::validator-set"; + +#[frame_support::pallet()] +pub mod pallet { + use super::*; + + /// Configure the pallet by specifying the parameters and types on which it + /// depends. + #[pallet::config] + pub trait Config: frame_system::Config + pallet_session::Config { + /// The Event type. + type RuntimeEvent: From> + IsType<::RuntimeEvent>; + + /// Origin for adding or removing a validator. + type AddRemoveOrigin: EnsureOrigin; + + /// Minimum number of validators to leave in the validator set during + /// auto removal. + /// Initial validator count could be less than this. + type MinAuthorities: Get; + + /// Information on runtime weights. + type WeightInfo: WeightInfo; + } + + #[pallet::pallet] + #[pallet::without_storage_info] + pub struct Pallet(_); + + #[pallet::storage] + #[pallet::getter(fn validators)] + pub type Validators = StorageValue<_, Vec, ValueQuery>; + + #[pallet::storage] + #[pallet::getter(fn offline_validators)] + pub type OfflineValidators = StorageValue<_, Vec, ValueQuery>; + + #[pallet::event] + #[pallet::generate_deposit(pub(super) fn deposit_event)] + pub enum Event { + /// New validator addition initiated. Effective in ~2 sessions. + ValidatorAdditionInitiated(T::ValidatorId), + + /// Validator removal initiated. Effective in ~2 sessions. + ValidatorRemovalInitiated(T::ValidatorId), + } + + // Errors inform users that something went wrong. + #[pallet::error] + pub enum Error { + /// Target (post-removal) validator count is below the minimum. + TooLowValidatorCount, + /// Validator is already in the validator set. + Duplicate, + } + + #[pallet::hooks] + impl Hooks> for Pallet {} + + #[pallet::genesis_config] + #[derive(DefaultNoBound)] + pub struct GenesisConfig { + pub initial_validators: Vec, + } + + #[pallet::genesis_build] + impl BuildGenesisConfig for GenesisConfig { + fn build(&self) { + assert!(>::get().is_empty(), "Validators are already initialized!"); + >::put(&self.initial_validators); + } + } + + #[pallet::call] + impl Pallet { + /// Add a new validator. + /// + /// New validator's session keys should be set in Session pallet before + /// calling this. + /// + /// The origin can be configured using the `AddRemoveOrigin` type in the + /// host runtime. Can also be set to sudo/root. + #[pallet::call_index(0)] + #[pallet::weight(::WeightInfo::add_validator())] + pub fn add_validator(origin: OriginFor, validator_id: T::ValidatorId) -> DispatchResult { + T::AddRemoveOrigin::ensure_origin(origin)?; + + Self::do_add_validator(validator_id.clone())?; + + Ok(()) + } + + /// Remove a validator. + /// + /// The origin can be configured using the `AddRemoveOrigin` type in the + /// host runtime. Can also be set to sudo/root. + #[pallet::call_index(1)] + #[pallet::weight(::WeightInfo::remove_validator())] + pub fn remove_validator( + origin: OriginFor, + validator_id: T::ValidatorId, + ) -> DispatchResult { + T::AddRemoveOrigin::ensure_origin(origin)?; + + Self::do_remove_validator(validator_id.clone())?; + + Ok(()) + } + } +} + +impl Pallet { + fn do_add_validator(validator_id: T::ValidatorId) -> DispatchResult { + ensure!(!>::get().contains(&validator_id), Error::::Duplicate); + >::mutate(|v| v.push(validator_id.clone())); + + Self::deposit_event(Event::ValidatorAdditionInitiated(validator_id.clone())); + log::debug!(target: LOG_TARGET, "Validator addition initiated."); + + Ok(()) + } + + fn do_remove_validator(validator_id: T::ValidatorId) -> DispatchResult { + let mut validators = >::get(); + + // Ensuring that the post removal, target validator count doesn't go + // below the minimum. + ensure!( + validators.len().saturating_sub(1) as u32 >= T::MinAuthorities::get(), + Error::::TooLowValidatorCount + ); + + validators.retain(|v| *v != validator_id); + + >::put(validators); + + Self::deposit_event(Event::ValidatorRemovalInitiated(validator_id.clone())); + log::debug!(target: LOG_TARGET, "Validator removal initiated."); + + Ok(()) + } + + // Adds offline validators to a local cache for removal on new session. + fn mark_for_removal(validator_id: T::ValidatorId) { + >::mutate(|v| v.push(validator_id)); + log::debug!(target: LOG_TARGET, "Offline validator marked for auto removal."); + } + + // Removes offline validators from the validator set and clears the offline + // cache. It is called in the session change hook and removes the validators + // who were reported offline during the session that is ending. We do not + // check for `MinAuthorities` here, because the offline validators will not + // produce blocks and will have the same overall effect on the runtime. + fn remove_offline_validators() { + let validators_to_remove = >::get(); + + // Delete from active validator set. + >::mutate(|vs| vs.retain(|v| !validators_to_remove.contains(v))); + log::debug!( + target: LOG_TARGET, + "Initiated removal of {:?} offline validators.", + validators_to_remove.len() + ); + + // Clear the offline validator list to avoid repeated deletion. + >::put(Vec::::new()); + } +} + +// Provides the new set of validators to the session module when session is +// being rotated. +impl pallet_session::SessionManager for Pallet { + // Plan a new session and provide new validator set. + fn new_session(_new_index: u32) -> Option> { + // Remove any offline validators. This will only work when the runtime + // also has the im-online pallet. + Self::remove_offline_validators(); + + log::debug!(target: LOG_TARGET, "New session called; updated validator set provided."); + + Some(Self::validators()) + } + + fn end_session(_end_index: u32) {} + + fn start_session(_start_index: u32) {} +} + +impl EstimateNextSessionRotation> for Pallet { + fn average_session_length() -> BlockNumberFor { + Zero::zero() + } + + fn estimate_current_session_progress( + _now: BlockNumberFor, + ) -> (Option, sp_weights::Weight) { + (None, Zero::zero()) + } + + fn estimate_next_session_rotation( + _now: BlockNumberFor, + ) -> (Option>, sp_weights::Weight) { + (None, Zero::zero()) + } +} + +// Implementation of Convert trait to satisfy trait bounds in session pallet. +// Here it just returns the same ValidatorId. +pub struct ValidatorOf(sp_std::marker::PhantomData); + +impl Convert> for ValidatorOf { + fn convert(account: T::ValidatorId) -> Option { + Some(account) + } +} + +impl ValidatorSet for Pallet { + type ValidatorId = T::ValidatorId; + type ValidatorIdOf = ValidatorOf; + + fn session_index() -> sp_staking::SessionIndex { + pallet_session::Pallet::::current_index() + } + + fn validators() -> Vec { + pallet_session::Pallet::::validators() + } +} + +impl ValidatorSetWithIdentification for Pallet { + type Identification = T::ValidatorId; + type IdentificationOf = ValidatorOf; +} + +// Offence reporting and unresponsiveness management. +// This is for the ImOnline pallet integration. +impl> + ReportOffence for Pallet +{ + fn report_offence(_reporters: Vec, offence: O) -> Result<(), OffenceError> { + let offenders = offence.offenders(); + + for (v, _) in offenders.into_iter() { + Self::mark_for_removal(v); + } + + Ok(()) + } + + fn is_known_offence( + _offenders: &[(T::ValidatorId, T::ValidatorId)], + _time_slot: &O::TimeSlot, + ) -> bool { + false + } +} diff --git a/pallets/substrate-validator-set/src/mock.rs b/pallets/substrate-validator-set/src/mock.rs new file mode 100644 index 0000000..8fc2282 --- /dev/null +++ b/pallets/substrate-validator-set/src/mock.rs @@ -0,0 +1,177 @@ +//! Mock helpers for Validator Set pallet. + +#![cfg(test)] + +use super::*; +use crate as validator_set; +use frame_support::{derive_impl, parameter_types}; +use frame_system::EnsureRoot; +use pallet_session::*; +use sp_core::crypto::key_types::DUMMY; +use sp_runtime::{ + impl_opaque_keys, testing::UintAuthorityId, traits::OpaqueKeys, BuildStorage, KeyTypeId, + RuntimeAppPublic, +}; +use sp_state_machine::BasicExternalities; +use std::collections::BTreeMap; + +impl_opaque_keys! { + pub struct MockSessionKeys { + pub dummy: UintAuthorityId, + } +} + +impl From for MockSessionKeys { + fn from(dummy: UintAuthorityId) -> Self { + Self { dummy } + } +} + +pub const KEY_ID_A: KeyTypeId = KeyTypeId([4; 4]); +pub const KEY_ID_B: KeyTypeId = KeyTypeId([9; 4]); + +#[derive(Debug, Clone, scale_codec::Encode, scale_codec::Decode, PartialEq, Eq)] +pub struct PreUpgradeMockSessionKeys { + pub a: [u8; 32], + pub b: [u8; 64], +} + +impl OpaqueKeys for PreUpgradeMockSessionKeys { + type KeyTypeIdProviders = (); + + fn key_ids() -> &'static [KeyTypeId] { + &[KEY_ID_A, KEY_ID_B] + } + + fn get_raw(&self, i: KeyTypeId) -> &[u8] { + match i { + i if i == KEY_ID_A => &self.a[..], + i if i == KEY_ID_B => &self.b[..], + _ => &[], + } + } +} + +type Block = frame_system::mocking::MockBlock; + +frame_support::construct_runtime!( + pub enum Test + { + System: frame_system, + ValidatorSet: validator_set, + Session: pallet_session, + } +); + +parameter_types! { + pub static Validators: Vec = vec![1, 2, 3]; + pub static NextValidators: Vec = vec![1, 2, 3]; + pub static Authorities: Vec = + vec![UintAuthorityId(1), UintAuthorityId(2), UintAuthorityId(3)]; + pub static ForceSessionEnd: bool = false; + pub static SessionLength: u64 = 2; + pub static SessionChanged: bool = false; + pub static TestSessionChanged: bool = false; + pub static Disabled: bool = false; + pub static BeforeSessionEndCalled: bool = false; + pub static ValidatorAccounts: BTreeMap = BTreeMap::new(); +} + +pub struct TestShouldEndSession; +impl ShouldEndSession for TestShouldEndSession { + fn should_end_session(now: u64) -> bool { + let l = SessionLength::get(); + now % l == 0 + || ForceSessionEnd::mutate(|l| { + let r = *l; + *l = false; + r + }) + } +} + +pub struct TestSessionHandler; +impl SessionHandler for TestSessionHandler { + const KEY_TYPE_IDS: &'static [sp_runtime::KeyTypeId] = &[UintAuthorityId::ID]; + fn on_genesis_session(_validators: &[(u64, T)]) {} + fn on_new_session( + changed: bool, + validators: &[(u64, T)], + _queued_validators: &[(u64, T)], + ) { + SessionChanged::mutate(|l| *l = changed); + Authorities::mutate(|l| { + *l = validators + .iter() + .map(|(_, id)| id.get::(DUMMY).unwrap_or_default()) + .collect() + }); + } + fn on_disabled(_validator_index: u32) { + Disabled::mutate(|l| *l = true) + } + fn on_before_session_ending() { + BeforeSessionEndCalled::mutate(|b| *b = true); + } +} + +pub fn authorities() -> Vec { + Authorities::get().to_vec() +} + +pub fn new_test_ext() -> sp_io::TestExternalities { + let mut t = frame_system::GenesisConfig::::default().build_storage().unwrap(); + let keys: Vec<_> = NextValidators::get() + .iter() + .cloned() + .map(|i| (i, i, UintAuthorityId(i).into())) + .collect(); + BasicExternalities::execute_with_storage(&mut t, || { + for (ref k, ..) in &keys { + frame_system::Pallet::::inc_providers(k); + } + frame_system::Pallet::::inc_providers(&4); + // An additional identity that we use. + frame_system::Pallet::::inc_providers(&69); + }); + validator_set::GenesisConfig:: { + initial_validators: keys.iter().map(|x| x.0).collect::>(), + } + .assimilate_storage(&mut t) + .unwrap(); + pallet_session::GenesisConfig:: { keys } + .assimilate_storage(&mut t) + .unwrap(); + + let v = NextValidators::get().iter().map(|&i| (i, i)).collect(); + ValidatorAccounts::mutate(|m| *m = v); + sp_io::TestExternalities::new(t) +} + +#[derive_impl(frame_system::config_preludes::TestDefaultConfig)] +impl frame_system::Config for Test { + type Block = Block; +} + +parameter_types! { + pub const MinAuthorities: u32 = 2; +} + +impl validator_set::Config for Test { + type AddRemoveOrigin = EnsureRoot; + type RuntimeEvent = RuntimeEvent; + type MinAuthorities = MinAuthorities; + type WeightInfo = (); +} + +impl pallet_session::Config for Test { + type ValidatorId = u64; + type ValidatorIdOf = validator_set::ValidatorOf; + type ShouldEndSession = TestShouldEndSession; + type NextSessionRotation = (); + type SessionManager = ValidatorSet; + type SessionHandler = TestSessionHandler; + type Keys = MockSessionKeys; + type WeightInfo = (); + type RuntimeEvent = RuntimeEvent; +} diff --git a/pallets/substrate-validator-set/src/tests.rs b/pallets/substrate-validator-set/src/tests.rs new file mode 100644 index 0000000..7c0c7e4 --- /dev/null +++ b/pallets/substrate-validator-set/src/tests.rs @@ -0,0 +1,68 @@ +//! Tests for the Validator Set pallet. + +#![cfg(test)] + +use super::*; +use crate::mock::{authorities, new_test_ext, RuntimeOrigin, Session, Test, ValidatorSet}; +use frame_support::{assert_noop, assert_ok, pallet_prelude::*}; +use sp_runtime::testing::UintAuthorityId; + +#[test] +fn simple_setup_should_work() { + new_test_ext().execute_with(|| { + assert_eq!(authorities(), vec![UintAuthorityId(1), UintAuthorityId(2), UintAuthorityId(3)]); + assert_eq!(ValidatorSet::validators(), vec![1u64, 2u64, 3u64]); + assert_eq!(Session::validators(), vec![1, 2, 3]); + }); +} + +#[test] +fn add_validator_updates_validators_list() { + new_test_ext().execute_with(|| { + assert_ok!(ValidatorSet::add_validator(RuntimeOrigin::root(), 4)); + assert_eq!(ValidatorSet::validators(), vec![1u64, 2u64, 3u64, 4u64]) + }); +} + +#[test] +fn remove_validator_updates_validators_list() { + new_test_ext().execute_with(|| { + assert_ok!(ValidatorSet::remove_validator(RuntimeOrigin::root(), 2)); + assert_eq!(ValidatorSet::validators(), &[1, 3]); + // Add validator again + assert_ok!(ValidatorSet::add_validator(RuntimeOrigin::root(), 2)); + assert_eq!(ValidatorSet::validators(), &[1, 3, 2]); + }); +} + +#[test] +fn add_validator_fails_with_invalid_origin() { + new_test_ext().execute_with(|| { + assert_noop!( + ValidatorSet::add_validator(RuntimeOrigin::signed(1), 4), + DispatchError::BadOrigin + ); + }); +} + +#[test] +fn remove_validator_fails_with_invalid_origin() { + new_test_ext().execute_with(|| { + assert_noop!( + ValidatorSet::remove_validator(RuntimeOrigin::signed(1), 4), + DispatchError::BadOrigin + ); + }); +} + +#[test] +fn duplicate_check() { + new_test_ext().execute_with(|| { + assert_ok!(ValidatorSet::add_validator(RuntimeOrigin::root(), 4)); + assert_eq!(ValidatorSet::validators(), vec![1u64, 2u64, 3u64, 4u64]); + assert_noop!( + ValidatorSet::add_validator(RuntimeOrigin::root(), 4), + Error::::Duplicate + ); + }); +} diff --git a/pallets/substrate-validator-set/src/weights.rs b/pallets/substrate-validator-set/src/weights.rs new file mode 100644 index 0000000..645c8a5 --- /dev/null +++ b/pallets/substrate-validator-set/src/weights.rs @@ -0,0 +1,93 @@ + +//! Autogenerated weights for Validator Set +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-05-29, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("local"), DB CACHE: 1024 + +// Executed Command: +// ./target/release/node-template +// benchmark +// pallet +// --chain +// local +// --pallet +// validator_set +// --extrinsic +// * +// --steps +// 50 +// --repeat +// 20 +// --execution=wasm +// --wasm-execution=compiled +// --heap-pages=4096 + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] +#![allow(missing_docs)] + +use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}}; +use core::marker::PhantomData; + +/// Weight functions needed for validator_set. +pub trait WeightInfo { + fn add_validator() -> Weight; + fn remove_validator() -> Weight; +} + +/// Weights for validator_set using the Substrate node and recommended hardware. +pub struct SubstrateWeight(PhantomData); +impl WeightInfo for SubstrateWeight { + /// Storage: ValidatorSet Validators (r:1 w:1) + /// Proof Skipped: ValidatorSet Validators (max_values: Some(1), max_size: None, mode: Measured) + fn add_validator() -> Weight { + // Proof Size summary in bytes: + // Measured: `117` + // Estimated: `1602` + // Minimum execution time: 20_810_000 picoseconds. + Weight::from_parts(21_330_000, 1602) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: ValidatorSet Validators (r:1 w:1) + /// Proof Skipped: ValidatorSet Validators (max_values: Some(1), max_size: None, mode: Measured) + fn remove_validator() -> Weight { + // Proof Size summary in bytes: + // Measured: `117` + // Estimated: `1602` + // Minimum execution time: 18_700_000 picoseconds. + Weight::from_parts(19_840_000, 1602) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } +} + +// For backwards compatibility and tests +impl WeightInfo for () { + /// Storage: ValidatorSet Validators (r:1 w:1) + /// Proof Skipped: ValidatorSet Validators (max_values: Some(1), max_size: None, mode: Measured) + fn add_validator() -> Weight { + // Proof Size summary in bytes: + // Measured: `117` + // Estimated: `1602` + // Minimum execution time: 20_810_000 picoseconds. + Weight::from_parts(21_330_000, 1602) + .saturating_add(RocksDbWeight::get().reads(1_u64)) + .saturating_add(RocksDbWeight::get().writes(1_u64)) + } + /// Storage: ValidatorSet Validators (r:1 w:1) + /// Proof Skipped: ValidatorSet Validators (max_values: Some(1), max_size: None, mode: Measured) + fn remove_validator() -> Weight { + // Proof Size summary in bytes: + // Measured: `117` + // Estimated: `1602` + // Minimum execution time: 18_700_000 picoseconds. + Weight::from_parts(19_840_000, 1602) + .saturating_add(RocksDbWeight::get().reads(1_u64)) + .saturating_add(RocksDbWeight::get().writes(1_u64)) + } +} + diff --git a/runtime/Cargo.toml b/runtime/Cargo.toml new file mode 100644 index 0000000..8f53beb --- /dev/null +++ b/runtime/Cargo.toml @@ -0,0 +1,153 @@ +[package] +name = "aya-runtime" +version = "0.1.0" +license = "Unlicense" +description = "A fresh FRAME-based Substrate runtime." +publish = false +authors = { workspace = true } +edition = { workspace = true } +repository = { workspace = true } + +[package.metadata.docs.rs] +targets = ["x86_64-unknown-linux-gnu"] + +[dependencies] +scale-codec = { workspace = true } +scale-info = { workspace = true } +static_assertions = "1.1.0" +log = { workspace = true } +# Substrate +sp-api = { workspace = true } +sp-block-builder = { workspace = true } +sp-consensus-aura = { workspace = true } +sp-consensus-grandpa = { workspace = true } +sp-core = { workspace = true } +sp-genesis-builder = { workspace = true } +sp-inherents = { workspace = true } +sp-offchain = { workspace = true } +sp-runtime = { workspace = true } +sp-session = { workspace = true } +sp-std = { workspace = true } +sp-transaction-pool = { workspace = true } +sp-version = { workspace = true } +# Substrate FRAME +frame-benchmarking = { workspace = true, optional = true } +frame-executive = { workspace = true } +frame-support = { workspace = true } +frame-system = { workspace = true } +frame-system-benchmarking = { workspace = true, optional = true } +frame-system-rpc-runtime-api = { workspace = true } +pallet-aura = { workspace = true } +pallet-balances = { workspace = true, features = ["insecure_zero_ed"] } +pallet-grandpa = { workspace = true } +pallet-sudo = { workspace = true } +pallet-timestamp = { workspace = true } +pallet-transaction-payment = { workspace = true } +pallet-transaction-payment-rpc-runtime-api = { workspace = true } +pallet-contracts = { workspace = true } +pallet-parameters = { workspace = true } +pallet-insecure-randomness-collective-flip = { workspace = true } +pallet-assets = { workspace = true } +pallet-indices = { workspace = true } +pallet-multisig = { workspace = true } +pallet-recovery = { workspace = true } +pallet-session = { workspace = true } +pallet-authorship = { workspace = true } +pallet-uniques = { workspace = true } +pallet-im-online = { workspace = true } +substrate-validator-set = { workspace = true } + +# Frontier +fp-account = { workspace = true, features = ["serde"] } +fp-evm = { workspace = true, features = ["serde"] } +fp-rpc = { workspace = true } +fp-self-contained = { workspace = true, features = ["serde"] } +# Frontier FRAME +pallet-base-fee = { workspace = true } +pallet-dynamic-fee = { workspace = true } +pallet-ethereum = { workspace = true } +pallet-evm = { workspace = true } +pallet-evm-chain-id = { workspace = true } +pallet-evm-precompile-modexp = { workspace = true } +pallet-evm-precompile-sha3fips = { workspace = true } +pallet-evm-precompile-simple = { workspace = true } +pallet-hotfix-sufficients = { workspace = true } + +[build-dependencies] +substrate-wasm-builder = { workspace = true, optional = true } + +[features] +default = ["std", "with-rocksdb-weights"] +with-rocksdb-weights = [] +with-paritydb-weights = [] +std = [ + "scale-codec/std", + "scale-info/std", + # Substrate + "sp-api/std", + "sp-block-builder/std", + "sp-consensus-aura/std", + "sp-consensus-grandpa/std", + "sp-core/std", + "sp-genesis-builder/std", + "sp-inherents/std", + "sp-offchain/std", + "sp-runtime/std", + "sp-session/std", + "sp-std/std", + "sp-transaction-pool/std", + "sp-version/std", + "substrate-wasm-builder", + # Substrate FRAME + "frame-benchmarking/std", + "frame-executive/std", + "frame-support/std", + "frame-system/std", + "frame-system-rpc-runtime-api/std", + "frame-system-benchmarking?/std", + "pallet-aura/std", + "pallet-authorship/std", + "pallet-session/std", + "pallet-balances/std", + "pallet-grandpa/std", + "pallet-sudo/std", + "pallet-timestamp/std", + "pallet-transaction-payment/std", + "pallet-transaction-payment-rpc-runtime-api/std", + "pallet-contracts/std", + "pallet-parameters/std", + "pallet-assets/std", + "pallet-indices/std", + "pallet-multisig/std", + "pallet-recovery/std", + "pallet-uniques/std", + "substrate-validator-set/std", + "pallet-im-online/std", + # Frontier + "fp-account/std", + "fp-evm/std", + "fp-rpc/std", + "fp-self-contained/std", + # Frontier FRAME + "pallet-base-fee/std", + "pallet-dynamic-fee/std", + "pallet-ethereum/std", + "pallet-evm/std", + "pallet-evm-chain-id/std", + "pallet-evm-precompile-modexp/std", + "pallet-evm-precompile-sha3fips/std", + "pallet-evm-precompile-simple/std", + "pallet-hotfix-sufficients/std", +] +runtime-benchmarks = [ + "frame-benchmarking/runtime-benchmarks", + "frame-system-benchmarking/runtime-benchmarks", + "frame-system/runtime-benchmarks", + "pallet-balances/runtime-benchmarks", + "pallet-grandpa/runtime-benchmarks", + "pallet-timestamp/runtime-benchmarks", + "pallet-sudo/runtime-benchmarks", + "pallet-ethereum/runtime-benchmarks", + "pallet-evm/runtime-benchmarks", + "pallet-hotfix-sufficients/runtime-benchmarks", +] diff --git a/runtime/build.rs b/runtime/build.rs new file mode 100644 index 0000000..9029164 --- /dev/null +++ b/runtime/build.rs @@ -0,0 +1,8 @@ +fn main() { + #[cfg(feature = "std")] + substrate_wasm_builder::WasmBuilder::new() + .with_current_project() + .export_heap_base() + .import_memory() + .build() +} diff --git a/runtime/src/assets_api.rs b/runtime/src/assets_api.rs new file mode 100644 index 0000000..31927fb --- /dev/null +++ b/runtime/src/assets_api.rs @@ -0,0 +1,34 @@ +// This file is part of Substrate. + +// Copyright (C) Parity Technologies (UK) Ltd. +// SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0 + +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +//! Runtime API definition for assets. + +use scale_codec::Codec; +use sp_std::vec::Vec; + +sp_api::decl_runtime_apis! { + pub trait AssetsApi + where + AccountId: Codec, + AssetBalance: Codec, + AssetId: Codec, + { + /// Returns the list of `AssetId`s and corresponding balance that an `AccountId` has. + fn account_balances(account: AccountId) -> Vec<(AssetId, AssetBalance)>; + } +} diff --git a/runtime/src/lib.rs b/runtime/src/lib.rs new file mode 100644 index 0000000..c800c40 --- /dev/null +++ b/runtime/src/lib.rs @@ -0,0 +1,1475 @@ +//! The Substrate Node Template runtime. This can be compiled with `#[no_std]`, ready for Wasm. + +#![cfg_attr(not(feature = "std"), no_std)] +// `construct_runtime!` does a lot of recursion and requires us to increase the limit to 256. +#![recursion_limit = "256"] +#![allow(clippy::new_without_default, clippy::or_fun_call)] +#![cfg_attr(feature = "runtime-benchmarks", warn(unused_crate_dependencies))] + +// Make the WASM binary available. +#[cfg(feature = "std")] +include!(concat!(env!("OUT_DIR"), "/wasm_binary.rs")); +use scale_codec::{Decode, Encode}; +use sp_api::impl_runtime_apis; +use sp_consensus_aura::sr25519::AuthorityId as AuraId; +use sp_consensus_grandpa::{AuthorityId as GrandpaId, AuthorityList as GrandpaAuthorityList}; +use sp_core::{ + crypto::{ByteArray, KeyTypeId}, + OpaqueMetadata, H160, H256, U256, +}; +use sp_runtime::{ + create_runtime_str, generic, + generic::Era, + impl_opaque_keys, + traits::{ + BlakeTwo256, Block as BlockT, DispatchInfoOf, Dispatchable, Get, IdentifyAccount, + IdentityLookup, NumberFor, One, OpaqueKeys, PostDispatchInfoOf, UniqueSaturatedInto, + Verify, + }, + transaction_validity::{ + TransactionPriority, TransactionSource, TransactionValidity, TransactionValidityError, + }, + ApplyExtrinsicResult, ConsensusEngineId, ExtrinsicInclusionMode, Perbill, Permill, + SaturatedConversion, +}; +use sp_std::{marker::PhantomData, prelude::*}; +use sp_version::RuntimeVersion; +use static_assertions::const_assert; +// Substrate FRAME +#[cfg(feature = "with-paritydb-weights")] +use frame_support::weights::constants::ParityDbWeight as RuntimeDbWeight; +#[cfg(feature = "with-rocksdb-weights")] +use frame_support::weights::constants::RocksDbWeight as RuntimeDbWeight; +use frame_support::{ + derive_impl, + dynamic_params::dynamic_pallet_params, + dynamic_params::dynamic_params, + genesis_builder_helper::{build_config, create_default_config}, + pallet_prelude::DispatchClass, + parameter_types, + traits::{ + AsEnsureOriginWithArg, ConstBool, ConstU128, ConstU32, ConstU8, EnsureOriginWithArg, + FindAuthor, Nothing, OnFinalize, OnTimestampSet, + }, + weights::{ + constants::{BlockExecutionWeight, ExtrinsicBaseWeight, WEIGHT_REF_TIME_PER_MILLIS}, + IdentityFee, Weight, + }, +}; +use frame_system::{EnsureRoot, EnsureSigned}; +use pallet_transaction_payment::{ConstFeeMultiplier, CurrencyAdapter}; +// Frontier +use fp_account::EthereumSignature; +use fp_evm::weight_per_gas; +use fp_rpc::TransactionStatus; +use pallet_ethereum::{ + Call::transact, PostLogContent, Transaction as EthereumTransaction, TransactionAction, + TransactionData, +}; +use pallet_evm::{ + Account as EVMAccount, EnsureAccountId20, FeeCalculator, IdentityAddressMapping, Runner, +}; +use pallet_im_online::sr25519::AuthorityId as ImOnlineId; + +// A few exports that help ease life for downstream crates. +pub use frame_system::Call as SystemCall; +pub use pallet_balances::Call as BalancesCall; +pub use pallet_timestamp::Call as TimestampCall; +use pallet_transaction_payment::Multiplier; + +mod precompiles; + +/// Runtime API definition for assets. +pub mod assets_api; + +use precompiles::FrontierPrecompiles; + +/// Type of block number. +pub type BlockNumber = u32; + +/// Alias to 512-bit hash when used in the context of a transaction signature on the chain. +pub type Signature = EthereumSignature; + +/// Some way of identifying an account on the chain. We intentionally make it equivalent +/// to the public key of our transaction signing scheme. +pub type AccountId = <::Signer as IdentifyAccount>::AccountId; + +/// The type for looking up accounts. We don't expect more than 4 billion of them, but you +/// never know... +pub type AccountIndex = u32; + +/// Balance of an account. +pub type Balance = u128; + +/// Index of a transaction in the chain. +pub type Nonce = u32; + +/// A hash of some data used by the chain. +pub type Hash = H256; + +/// The hashing algorithm used by the chain. +pub type Hashing = BlakeTwo256; + +/// Digest item type. +pub type DigestItem = generic::DigestItem; + +/// Opaque types. These are used by the CLI to instantiate machinery that don't need to know +/// the specifics of the runtime. They can then be made to be agnostic over specific formats +/// of data like extrinsics, allowing for them to continue syncing the network through upgrades +/// to even the core data structures. +pub mod opaque { + use super::*; + + pub use sp_runtime::OpaqueExtrinsic as UncheckedExtrinsic; + + /// Opaque block header type. + pub type Header = generic::Header; + /// Opaque block type. + pub type Block = generic::Block; + /// Opaque block identifier type. + pub type BlockId = generic::BlockId; + + impl_opaque_keys! { + pub struct SessionKeys { + pub aura: Aura, + pub grandpa: Grandpa, + pub im_online: ImOnline, + } + } +} + +#[sp_version::runtime_version] +pub const VERSION: RuntimeVersion = RuntimeVersion { + spec_name: create_runtime_str!("aya-node"), + impl_name: create_runtime_str!("aya-node"), + authoring_version: 1, + spec_version: 1, + impl_version: 1, + apis: RUNTIME_API_VERSIONS, + transaction_version: 1, + state_version: 1, +}; + +pub const MILLISECS_PER_BLOCK: u64 = 6000; + +pub const SLOT_DURATION: u64 = MILLISECS_PER_BLOCK; + +// Time is measured by number of blocks. +pub const MINUTES: BlockNumber = 60_000 / (MILLISECS_PER_BLOCK as BlockNumber); +pub const HOURS: BlockNumber = MINUTES * 60; +pub const DAYS: BlockNumber = HOURS * 24; + +pub const MILLICENTS: Balance = 1_000_000_000; +pub const CENTS: Balance = 1_000 * MILLICENTS; // assume this is worth about a cent. +pub const DOLLARS: Balance = 100 * CENTS; + +pub const fn deposit(items: u32, bytes: u32) -> Balance { + items as Balance * 15 * CENTS + (bytes as Balance) * 6 * CENTS +} + +/// The version information used to identify this runtime when compiled natively. +#[cfg(feature = "std")] +pub fn native_version() -> sp_version::NativeVersion { + sp_version::NativeVersion { + runtime_version: VERSION, + can_author_with: Default::default(), + } +} + +/// We assume that ~10% of the block weight is consumed by `on_initialize` handlers. +/// This is used to limit the maximal weight of a single extrinsic. +const AVERAGE_ON_INITIALIZE_RATIO: Perbill = Perbill::from_percent(10); +const NORMAL_DISPATCH_RATIO: Perbill = Perbill::from_percent(75); +/// We allow for 2000ms of compute with a 6 second average block time. +pub const WEIGHT_MILLISECS_PER_BLOCK: u64 = 2000; +pub const MAXIMUM_BLOCK_WEIGHT: Weight = Weight::from_parts( + WEIGHT_MILLISECS_PER_BLOCK * WEIGHT_REF_TIME_PER_MILLIS, + u64::MAX, +); +pub const MAXIMUM_BLOCK_LENGTH: u32 = 5 * 1024 * 1024; + +parameter_types! { + pub const Version: RuntimeVersion = VERSION; + pub const BlockHashCount: BlockNumber = 256; + pub BlockWeights: frame_system::limits::BlockWeights = frame_system::limits::BlockWeights + ::with_sensible_defaults(MAXIMUM_BLOCK_WEIGHT, NORMAL_DISPATCH_RATIO); + pub BlockLength: frame_system::limits::BlockLength = frame_system::limits::BlockLength + ::max_with_normal_ratio(MAXIMUM_BLOCK_LENGTH, NORMAL_DISPATCH_RATIO); + pub const SS58Prefix: u16 = 1357; + pub RuntimeBlockLength: frame_system::limits::BlockLength = frame_system::limits::BlockLength::max_with_normal_ratio(5 * 1024 * 1024, NORMAL_DISPATCH_RATIO); + pub RuntimeBlockWeights: frame_system::limits::BlockWeights = frame_system::limits::BlockWeights::builder() + .base_block(BlockExecutionWeight::get()) + .for_class(DispatchClass::all(), |weights| { + weights.base_extrinsic = ExtrinsicBaseWeight::get(); + }) + .for_class(DispatchClass::Normal, |weights| { + weights.max_total = Some(NORMAL_DISPATCH_RATIO * MAXIMUM_BLOCK_WEIGHT); + }) + .for_class(DispatchClass::Operational, |weights| { + weights.max_total = Some(MAXIMUM_BLOCK_WEIGHT); + // Operational transactions have some extra reserved space, so that they + // are included even if block reached `MAXIMUM_BLOCK_WEIGHT`. + weights.reserved = Some( + MAXIMUM_BLOCK_WEIGHT - NORMAL_DISPATCH_RATIO * MAXIMUM_BLOCK_WEIGHT + ); + }) + .avg_block_initialization(AVERAGE_ON_INITIALIZE_RATIO) + .build_or_panic(); +} + +const_assert!(NORMAL_DISPATCH_RATIO.deconstruct() >= AVERAGE_ON_INITIALIZE_RATIO.deconstruct()); + +// Configure FRAME pallets to include in runtime. +#[derive_impl(frame_system::config_preludes::SolochainDefaultConfig as frame_system::DefaultConfig)] +impl frame_system::Config for Runtime { + /// The ubiquitous event type. + type RuntimeEvent = RuntimeEvent; + /// The basic call filter to use in dispatchable. + type BaseCallFilter = frame_support::traits::Everything; + /// Block & extrinsics weights: base values and limits. + type BlockWeights = BlockWeights; + /// The maximum length of a block (in bytes). + type BlockLength = BlockLength; + /// The ubiquitous origin type. + type RuntimeOrigin = RuntimeOrigin; + /// The aggregated dispatch type that is available for extrinsics. + type RuntimeCall = RuntimeCall; + /// The aggregated RuntimeTask type. + type RuntimeTask = RuntimeTask; + /// The index type for storing how many extrinsics an account has signed. + type Nonce = Nonce; + /// The type for hashing blocks and tries. + type Hash = Hash; + /// The hashing algorithm used. + type Hashing = Hashing; + /// The identifier used to distinguish between accounts. + type AccountId = AccountId; + /// The lookup mechanism to get account ID from whatever is passed in dispatchers. + type Lookup = IdentityLookup; + /// The block type. + type Block = Block; + /// Maximum number of block number to block hash mappings to keep (oldest pruned first). + type BlockHashCount = BlockHashCount; + /// The weight of database operations that the runtime can invoke. + type DbWeight = RuntimeDbWeight; + /// Version of the runtime. + type Version = Version; + /// Converts a module to the index of the module in `construct_runtime!`. + /// + /// This type is being generated by `construct_runtime!`. + type PalletInfo = PalletInfo; + /// The data to be stored in an account. + type AccountData = pallet_balances::AccountData; + /// What to do if a new account is created. + type OnNewAccount = (); + /// What to do if an account is fully reaped from the system. + type OnKilledAccount = (); + /// Weight information for the extrinsics of this pallet. + type SystemWeightInfo = (); + /// This is used as an identifier of the chain. 42 is the generic substrate prefix. + type SS58Prefix = SS58Prefix; + /// The set code logic, just the default since we're not a parachain. + type OnSetCode = (); + type MaxConsumers = ConstU32<16>; +} + +parameter_types! { + pub const MaxAuthorities: u32 = 1000; +} + +impl pallet_aura::Config for Runtime { + type AuthorityId = AuraId; + type MaxAuthorities = MaxAuthorities; + type DisabledValidators = (); + type AllowMultipleBlocksPerSlot = ConstBool; +} + +impl pallet_grandpa::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type WeightInfo = (); + type MaxAuthorities = MaxAuthorities; + type MaxNominators = ConstU32<0>; + type MaxSetIdSessionEntries = (); + type KeyOwnerProof = sp_core::Void; + type EquivocationReportSystem = (); +} + +parameter_types! { + pub const MinimumPeriod: u64 = SLOT_DURATION / 2; + pub storage EnableManualSeal: bool = false; +} + +pub struct ConsensusOnTimestampSet(PhantomData); +impl OnTimestampSet for ConsensusOnTimestampSet { + fn on_timestamp_set(moment: T::Moment) { + if EnableManualSeal::get() { + return; + } + as OnTimestampSet>::on_timestamp_set(moment) + } +} + +impl pallet_timestamp::Config for Runtime { + /// A timestamp: milliseconds since the unix epoch. + type Moment = u64; + type OnTimestampSet = ConsensusOnTimestampSet; + type MinimumPeriod = MinimumPeriod; + type WeightInfo = (); +} + +parameter_types! { + pub const MinAuthorities: u32 = 2; +} + +impl substrate_validator_set::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type AddRemoveOrigin = EnsureRoot; + type MinAuthorities = MinAuthorities; + type WeightInfo = (); +} + +parameter_types! { + pub const Period: u32 = 2 * MINUTES; + pub const Offset: u32 = 0; +} + +impl pallet_session::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type ValidatorId = AccountId; + type ValidatorIdOf = substrate_validator_set::ValidatorOf; + type ShouldEndSession = pallet_session::PeriodicSessions; + type NextSessionRotation = pallet_session::PeriodicSessions; + type SessionManager = ValidatorSet; + type SessionHandler = ::KeyTypeIdProviders; + type Keys = opaque::SessionKeys; + type WeightInfo = pallet_session::weights::SubstrateWeight; +} + +parameter_types! { + pub const ImOnlineUnsignedPriority: TransactionPriority = TransactionPriority::max_value(); + pub const MaxKeys: u32 = 10_000; + pub const MaxPeerInHeartbeats: u32 = 10_000; + pub const MaxPeerDataEncodingSize: u32 = 1_000; +} + +impl frame_system::offchain::CreateSignedTransaction for Runtime +where + RuntimeCall: From, +{ + fn create_transaction>( + call: RuntimeCall, + public: ::Signer, + account: AccountId, + nonce: Nonce, + ) -> Option<( + RuntimeCall, + ::SignaturePayload, + )> { + let tip = 0; + let period = BlockHashCount::get() + .checked_next_power_of_two() + .map(|c| c / 2) + .unwrap_or(2) as u64; + let current_block = System::block_number() + .saturated_into::() + .saturating_sub(1); + let era = Era::mortal(period, current_block); + let extra = ( + frame_system::CheckNonZeroSender::::new(), + frame_system::CheckSpecVersion::::new(), + frame_system::CheckTxVersion::::new(), + frame_system::CheckGenesis::::new(), + frame_system::CheckEra::::from(era), + frame_system::CheckNonce::::from(nonce), + frame_system::CheckWeight::::new(), + pallet_transaction_payment::ChargeTransactionPayment::::from(tip), + ); + let raw_payload = SignedPayload::new(call, extra) + .map_err(|e| { + log::warn!("Unable to create signed payload: {:?}", e); + }) + .ok()?; + let signature = raw_payload.using_encoded(|payload| C::sign(payload, public))?; + let address = account; + let (call, extra, _) = raw_payload.deconstruct(); + Some((call, (address, signature.into(), extra))) + } +} + +impl frame_system::offchain::SigningTypes for Runtime { + type Public = ::Signer; + type Signature = Signature; +} + +impl frame_system::offchain::SendTransactionTypes for Runtime +where + RuntimeCall: From, +{ + type Extrinsic = UncheckedExtrinsic; + type OverarchingCall = RuntimeCall; +} + +impl pallet_im_online::Config for Runtime { + type AuthorityId = ImOnlineId; + type RuntimeEvent = RuntimeEvent; + type NextSessionRotation = pallet_session::PeriodicSessions; + type ValidatorSet = ValidatorSet; + type ReportUnresponsiveness = ValidatorSet; + type UnsignedPriority = ImOnlineUnsignedPriority; + type WeightInfo = pallet_im_online::weights::SubstrateWeight; + type MaxKeys = MaxKeys; + type MaxPeerInHeartbeats = MaxPeerInHeartbeats; +} + +parameter_types! { + pub const ExistentialDeposit: u128 = 0; + // For weight estimation, we assume that the most locks on an individual account will be 50. + // This number may need to be adjusted in the future if this assumption no longer holds true. + pub const MaxLocks: u32 = 50; + pub const MaxReserves: u32 = 50; +} + +impl pallet_balances::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type RuntimeHoldReason = RuntimeHoldReason; + type RuntimeFreezeReason = RuntimeFreezeReason; + type WeightInfo = pallet_balances::weights::SubstrateWeight; + type Balance = Balance; + type DustRemoval = (); + type ExistentialDeposit = ExistentialDeposit; + type AccountStore = System; + type ReserveIdentifier = [u8; 8]; + type FreezeIdentifier = RuntimeFreezeReason; + type MaxLocks = MaxLocks; + type MaxReserves = MaxReserves; + type MaxFreezes = ConstU32<1>; +} + +parameter_types! { + pub FeeMultiplier: Multiplier = Multiplier::one(); +} + +impl pallet_transaction_payment::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type OnChargeTransaction = CurrencyAdapter; + type WeightToFee = IdentityFee; + type LengthToFee = IdentityFee; + type FeeMultiplierUpdate = ConstFeeMultiplier; + type OperationalFeeMultiplier = ConstU8<5>; +} + +impl pallet_sudo::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type RuntimeCall = RuntimeCall; + type WeightInfo = pallet_sudo::weights::SubstrateWeight; +} + +parameter_types! { + pub Schedule: pallet_contracts::Schedule = Default::default(); + pub CodeHashLockupDepositPercent: Perbill = Perbill::from_percent(30); +} + +impl pallet_contracts::Config for Runtime { + type Time = Timestamp; + type Randomness = RandomnessCollectiveFlip; + type Currency = Balances; + type RuntimeEvent = RuntimeEvent; + type RuntimeCall = RuntimeCall; + /// The safest default is to allow no calls at all. + /// + /// Runtimes should whitelist dispatchables that are allowed to be called from contracts + /// and make sure they are stable. Dispatchables exposed to contracts are not allowed to + /// change because that would break already deployed contracts. The `Call` structure itself + /// is not allowed to change the indices of existing pallets, too. + type CallFilter = Nothing; + type DepositPerItem = dynamic_params::contracts::DepositPerItem; + type DepositPerByte = dynamic_params::contracts::DepositPerByte; + type DefaultDepositLimit = dynamic_params::contracts::DefaultDepositLimit; + type CallStack = [pallet_contracts::Frame; 5]; + type WeightPrice = pallet_transaction_payment::Pallet; + type WeightInfo = pallet_contracts::weights::SubstrateWeight; + type ChainExtension = (); + type Schedule = Schedule; + type AddressGenerator = pallet_contracts::DefaultAddressGenerator; + type MaxCodeLen = ConstU32<{ 123 * 1024 }>; + type MaxStorageKeyLen = ConstU32<128>; + type UnsafeUnstableInterface = ConstBool; + type UploadOrigin = EnsureSigned; + type InstantiateOrigin = EnsureSigned; + type MaxDebugBufferLen = ConstU32<{ 2 * 1024 * 1024 }>; + type RuntimeHoldReason = RuntimeHoldReason; + #[cfg(not(feature = "runtime-benchmarks"))] + type Migrations = (); + #[cfg(feature = "runtime-benchmarks")] + type Migrations = pallet_contracts::migration::codegen::BenchMigrations; + type MaxDelegateDependencies = ConstU32<32>; + type CodeHashLockupDepositPercent = CodeHashLockupDepositPercent; + type Debug = (); + type Environment = (); + type ApiVersion = (); + type Xcm = (); +} + +parameter_types! { + pub const IndexDeposit: Balance = 1 * DOLLARS; +} + +impl pallet_indices::Config for Runtime { + type AccountIndex = AccountIndex; + type Currency = Balances; + type Deposit = IndexDeposit; + type RuntimeEvent = RuntimeEvent; + type WeightInfo = pallet_indices::weights::SubstrateWeight; +} + +parameter_types! { + pub const AssetDeposit: Balance = 100 * DOLLARS; + pub const ApprovalDeposit: Balance = 1 * DOLLARS; + pub const StringLimit: u32 = 50; + pub const MetadataDepositBase: Balance = 10 * DOLLARS; + pub const MetadataDepositPerByte: Balance = 1 * DOLLARS; +} +impl pallet_assets::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type Balance = u128; + type AssetId = u32; + type AssetIdParameter = scale_codec::Compact; + type Currency = Balances; + type CreateOrigin = AsEnsureOriginWithArg>; + type ForceOrigin = EnsureRoot; + type AssetDeposit = crate::AssetDeposit; + type AssetAccountDeposit = ConstU128; + type MetadataDepositBase = crate::MetadataDepositBase; + type MetadataDepositPerByte = crate::MetadataDepositPerByte; + type ApprovalDeposit = crate::ApprovalDeposit; + type StringLimit = crate::StringLimit; + type Freezer = (); + type Extra = (); + type CallbackHandle = (); + type WeightInfo = pallet_assets::weights::SubstrateWeight; + type RemoveItemsLimit = ConstU32<1000>; +} + +parameter_types! { + pub const CollectionDeposit: Balance = 100 * DOLLARS; + pub const ItemDeposit: Balance = 1 * DOLLARS; + pub const ApprovalsLimit: u32 = 20; + pub const ItemAttributesApprovalsLimit: u32 = 20; + pub const MaxTips: u32 = 10; + pub const MaxDeadlineDuration: BlockNumber = 12 * 30 * DAYS; +} + +impl pallet_uniques::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type CollectionId = u32; + type ItemId = u32; + type Currency = Balances; + type ForceOrigin = frame_system::EnsureRoot; + type CollectionDeposit = CollectionDeposit; + type ItemDeposit = ItemDeposit; + type MetadataDepositBase = MetadataDepositBase; + type AttributeDepositBase = MetadataDepositBase; + type DepositPerByte = MetadataDepositPerByte; + type StringLimit = ConstU32<128>; + type KeyLimit = ConstU32<32>; + type ValueLimit = ConstU32<64>; + type WeightInfo = pallet_uniques::weights::SubstrateWeight; + type CreateOrigin = AsEnsureOriginWithArg>; + type Locker = (); +} + +impl pallet_evm_chain_id::Config for Runtime {} + +parameter_types! { + pub const ConfigDepositBase: Balance = 5 * DOLLARS; + pub const FriendDepositFactor: Balance = 50 * CENTS; + pub const MaxFriends: u16 = 9; + pub const RecoveryDeposit: Balance = 5 * DOLLARS; +} + +impl pallet_recovery::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type WeightInfo = pallet_recovery::weights::SubstrateWeight; + type RuntimeCall = RuntimeCall; + type Currency = Balances; + type ConfigDepositBase = ConfigDepositBase; + type FriendDepositFactor = FriendDepositFactor; + type MaxFriends = MaxFriends; + type RecoveryDeposit = RecoveryDeposit; +} + +pub struct FindAuthorTruncated(PhantomData); +impl> FindAuthor for FindAuthorTruncated { + fn find_author<'a, I>(digests: I) -> Option + where + I: 'a + IntoIterator, + { + if let Some(author_index) = F::find_author(digests) { + let authority_id = Aura::authorities()[author_index as usize].clone(); + return Some(H160::from_slice(&authority_id.to_raw_vec()[4..24])); + } + None + } +} + +const BLOCK_GAS_LIMIT: u64 = 75_000_000; +const MAX_POV_SIZE: u64 = 5 * 1024 * 1024; + +parameter_types! { + pub BlockGasLimit: U256 = U256::from(BLOCK_GAS_LIMIT); + pub const GasLimitPovSizeRatio: u64 = BLOCK_GAS_LIMIT.saturating_div(MAX_POV_SIZE); + pub PrecompilesValue: FrontierPrecompiles = FrontierPrecompiles::<_>::new(); + pub WeightPerGas: Weight = Weight::from_parts(weight_per_gas(BLOCK_GAS_LIMIT, NORMAL_DISPATCH_RATIO, WEIGHT_MILLISECS_PER_BLOCK), 0); + pub SuicideQuickClearLimit: u32 = 0; +} + +impl pallet_evm::Config for Runtime { + type FeeCalculator = BaseFee; + type GasWeightMapping = pallet_evm::FixedGasWeightMapping; + type WeightPerGas = WeightPerGas; + type BlockHashMapping = pallet_ethereum::EthereumBlockHashMapping; + type CallOrigin = EnsureAccountId20; + type WithdrawOrigin = EnsureAccountId20; + type AddressMapping = IdentityAddressMapping; + type Currency = Balances; + type RuntimeEvent = RuntimeEvent; + type PrecompilesType = FrontierPrecompiles; + type PrecompilesValue = PrecompilesValue; + type ChainId = EVMChainId; + type BlockGasLimit = BlockGasLimit; + type Runner = pallet_evm::runner::stack::Runner; + type OnChargeTransaction = (); + type OnCreate = (); + type FindAuthor = FindAuthorTruncated; + type GasLimitPovSizeRatio = GasLimitPovSizeRatio; + type SuicideQuickClearLimit = SuicideQuickClearLimit; + type Timestamp = Timestamp; + type WeightInfo = pallet_evm::weights::SubstrateWeight; +} + +parameter_types! { + pub const PostBlockAndTxnHashes: PostLogContent = PostLogContent::BlockAndTxnHashes; +} + +impl pallet_ethereum::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type StateRoot = pallet_ethereum::IntermediateStateRoot; + type PostLogContent = PostBlockAndTxnHashes; + type ExtraDataLength = ConstU32<30>; +} + +parameter_types! { + pub BoundDivision: U256 = U256::from(1024); +} + +impl pallet_dynamic_fee::Config for Runtime { + type MinGasPriceBoundDivisor = BoundDivision; +} + +parameter_types! { + pub DefaultBaseFeePerGas: U256 = U256::from(1_000_000_000); + pub DefaultElasticity: Permill = Permill::from_parts(125_000); +} + +pub struct BaseFeeThreshold; +impl pallet_base_fee::BaseFeeThreshold for BaseFeeThreshold { + fn lower() -> Permill { + Permill::zero() + } + fn ideal() -> Permill { + Permill::from_parts(500_000) + } + fn upper() -> Permill { + Permill::from_parts(1_000_000) + } +} + +impl pallet_base_fee::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type Threshold = BaseFeeThreshold; + type DefaultBaseFeePerGas = DefaultBaseFeePerGas; + type DefaultElasticity = DefaultElasticity; +} + +impl pallet_hotfix_sufficients::Config for Runtime { + type AddressMapping = IdentityAddressMapping; + type WeightInfo = pallet_hotfix_sufficients::weights::SubstrateWeight; +} + +pub struct DynamicParametersManagerOrigin; +impl EnsureOriginWithArg for DynamicParametersManagerOrigin { + type Success = (); + + fn try_origin( + origin: RuntimeOrigin, + key: &RuntimeParametersKey, + ) -> Result { + match key { + RuntimeParametersKey::Storage(_) => { + frame_system::ensure_root(origin.clone()).map_err(|_| origin)?; + return Ok(()); + } + RuntimeParametersKey::Contract(_) => { + frame_system::ensure_root(origin.clone()).map_err(|_| origin)?; + return Ok(()); + } + } + } + + #[cfg(feature = "runtime-benchmarks")] + fn try_successful_origin(_key: &RuntimeParametersKey) -> Result { + Ok(RuntimeOrigin::root()) + } +} + +impl pallet_parameters::Config for Runtime { + type RuntimeParameters = RuntimeParameters; + type RuntimeEvent = RuntimeEvent; + type AdminOrigin = DynamicParametersManagerOrigin; + type WeightInfo = (); +} + +#[frame_support::pallet] +pub mod pallet_manual_seal { + use super::*; + use frame_support::pallet_prelude::*; + + #[pallet::pallet] + pub struct Pallet(PhantomData); + + #[pallet::config] + pub trait Config: frame_system::Config {} + + #[pallet::genesis_config] + #[derive(frame_support::DefaultNoBound)] + pub struct GenesisConfig { + pub enable: bool, + #[serde(skip)] + pub _config: PhantomData, + } + + #[pallet::genesis_build] + impl BuildGenesisConfig for GenesisConfig { + fn build(&self) { + EnableManualSeal::set(&self.enable); + } + } +} + +impl pallet_manual_seal::Config for Runtime {} + +impl pallet_insecure_randomness_collective_flip::Config for Runtime {} + +// Create the runtime by composing the FRAME pallets that were previously configured. +frame_support::construct_runtime!( + pub enum Runtime { + System: frame_system, + Timestamp: pallet_timestamp, + Balances: pallet_balances, + ValidatorSet: substrate_validator_set, + Session: pallet_session, + ImOnline: pallet_im_online, + Aura: pallet_aura, + Grandpa: pallet_grandpa, + TransactionPayment: pallet_transaction_payment, + Sudo: pallet_sudo, + Ethereum: pallet_ethereum, + EVM: pallet_evm, + EVMChainId: pallet_evm_chain_id, + DynamicFee: pallet_dynamic_fee, + BaseFee: pallet_base_fee, + HotfixSufficients: pallet_hotfix_sufficients, + ManualSeal: pallet_manual_seal, + Contracts : pallet_contracts, + Parameters: pallet_parameters, + RandomnessCollectiveFlip: pallet_insecure_randomness_collective_flip, + Assets: pallet_assets, + Indices: pallet_indices, + Multisig: pallet_multisig, + Recovery: pallet_recovery, + Uniques: pallet_uniques, + } +); + +parameter_types! { + // One storage item; key size is 32; value is size 4+4+16+32 bytes = 56 bytes. + pub const DepositBase: Balance = deposit(1, 88); + // Additional storage item size of 32 bytes. + pub const DepositFactor: Balance = deposit(0, 32); +} + +impl pallet_multisig::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type RuntimeCall = RuntimeCall; + type Currency = Balances; + type DepositBase = DepositBase; + type DepositFactor = DepositFactor; + type MaxSignatories = ConstU32<100>; + type WeightInfo = pallet_multisig::weights::SubstrateWeight; +} + +#[derive(Clone)] +pub struct TransactionConverter; + +impl fp_rpc::ConvertTransaction for TransactionConverter { + fn convert_transaction(&self, transaction: pallet_ethereum::Transaction) -> UncheckedExtrinsic { + UncheckedExtrinsic::new_unsigned( + pallet_ethereum::Call::::transact { transaction }.into(), + ) + } +} + +impl fp_rpc::ConvertTransaction for TransactionConverter { + fn convert_transaction( + &self, + transaction: pallet_ethereum::Transaction, + ) -> opaque::UncheckedExtrinsic { + let extrinsic = UncheckedExtrinsic::new_unsigned( + pallet_ethereum::Call::::transact { transaction }.into(), + ); + let encoded = extrinsic.encode(); + opaque::UncheckedExtrinsic::decode(&mut &encoded[..]) + .expect("Encoded extrinsic is always valid") + } +} + +/// The address format for describing accounts. +pub type Address = AccountId; +/// Block header type as expected by this runtime. +pub type Header = generic::Header; +/// Block type as expected by this runtime. +pub type Block = generic::Block; +/// A Block signed with a Justification +pub type SignedBlock = generic::SignedBlock; +/// BlockId type as expected by this runtime. +pub type BlockId = generic::BlockId; +/// The SignedExtension to the basic transaction logic. +pub type SignedExtra = ( + frame_system::CheckNonZeroSender, + frame_system::CheckSpecVersion, + frame_system::CheckTxVersion, + frame_system::CheckGenesis, + frame_system::CheckEra, + frame_system::CheckNonce, + frame_system::CheckWeight, + pallet_transaction_payment::ChargeTransactionPayment, +); +/// Unchecked extrinsic type as expected by this runtime. +pub type UncheckedExtrinsic = + fp_self_contained::UncheckedExtrinsic; +/// Extrinsic type that has already been checked. +pub type CheckedExtrinsic = + fp_self_contained::CheckedExtrinsic; +/// The payload being signed in transactions. +pub type SignedPayload = generic::SignedPayload; +/// Executive: handles dispatch to the various modules. +pub type Executive = frame_executive::Executive< + Runtime, + Block, + frame_system::ChainContext, + Runtime, + AllPalletsWithSystem, +>; + +type EventRecord = frame_system::EventRecord< + ::RuntimeEvent, + ::Hash, +>; + +impl fp_self_contained::SelfContainedCall for RuntimeCall { + type SignedInfo = H160; + + fn is_self_contained(&self) -> bool { + match self { + RuntimeCall::Ethereum(call) => call.is_self_contained(), + _ => false, + } + } + + fn check_self_contained(&self) -> Option> { + match self { + RuntimeCall::Ethereum(call) => call.check_self_contained(), + _ => None, + } + } + + fn validate_self_contained( + &self, + info: &Self::SignedInfo, + dispatch_info: &DispatchInfoOf, + len: usize, + ) -> Option { + match self { + RuntimeCall::Ethereum(call) => call.validate_self_contained(info, dispatch_info, len), + _ => None, + } + } + + fn pre_dispatch_self_contained( + &self, + info: &Self::SignedInfo, + dispatch_info: &DispatchInfoOf, + len: usize, + ) -> Option> { + match self { + RuntimeCall::Ethereum(call) => { + call.pre_dispatch_self_contained(info, dispatch_info, len) + } + _ => None, + } + } + + fn apply_self_contained( + self, + info: Self::SignedInfo, + ) -> Option>> { + match self { + call @ RuntimeCall::Ethereum(pallet_ethereum::Call::transact { .. }) => { + Some(call.dispatch(RuntimeOrigin::from( + pallet_ethereum::RawOrigin::EthereumTransaction(info), + ))) + } + _ => None, + } + } +} + +#[cfg(feature = "runtime-benchmarks")] +#[macro_use] +extern crate frame_benchmarking; + +#[cfg(feature = "runtime-benchmarks")] +mod benches { + define_benchmarks!( + [frame_benchmarking, BaselineBench::] + [frame_system, SystemBench::] + [pallet_balances, Balances] + [pallet_timestamp, Timestamp] + [pallet_sudo, Sudo] + [pallet_contracts, Contracts] + [pallet_parameters, Parameters] + [pallet_evm, EVM] + ); +} + +impl_runtime_apis! { + impl sp_api::Core for Runtime { + fn version() -> RuntimeVersion { + VERSION + } + + fn execute_block(block: Block) { + Executive::execute_block(block) + } + + fn initialize_block(header: &::Header) -> ExtrinsicInclusionMode { + Executive::initialize_block(header) + } + } + + impl sp_api::Metadata for Runtime { + fn metadata() -> OpaqueMetadata { + OpaqueMetadata::new(Runtime::metadata().into()) + } + + fn metadata_at_version(version: u32) -> Option { + Runtime::metadata_at_version(version) + } + + fn metadata_versions() -> Vec { + Runtime::metadata_versions() + } + } + + impl sp_block_builder::BlockBuilder for Runtime { + fn apply_extrinsic(extrinsic: ::Extrinsic) -> ApplyExtrinsicResult { + Executive::apply_extrinsic(extrinsic) + } + + fn finalize_block() -> ::Header { + Executive::finalize_block() + } + + fn inherent_extrinsics(data: sp_inherents::InherentData) -> Vec<::Extrinsic> { + data.create_extrinsics() + } + + fn check_inherents( + block: Block, + data: sp_inherents::InherentData, + ) -> sp_inherents::CheckInherentsResult { + data.check_extrinsics(&block) + } + } + + impl sp_transaction_pool::runtime_api::TaggedTransactionQueue for Runtime { + fn validate_transaction( + source: TransactionSource, + tx: ::Extrinsic, + block_hash: ::Hash, + ) -> TransactionValidity { + Executive::validate_transaction(source, tx, block_hash) + } + } + + impl sp_offchain::OffchainWorkerApi for Runtime { + fn offchain_worker(header: &::Header) { + Executive::offchain_worker(header) + } + } + + impl sp_genesis_builder::GenesisBuilder for Runtime { + fn create_default_config() -> Vec { + create_default_config::() + } + + fn build_config(config: Vec) -> sp_genesis_builder::Result { + build_config::(config) + } + } + + impl sp_session::SessionKeys for Runtime { + fn generate_session_keys(seed: Option>) -> Vec { + opaque::SessionKeys::generate(seed) + } + + fn decode_session_keys( + encoded: Vec, + ) -> Option, KeyTypeId)>> { + opaque::SessionKeys::decode_into_raw_public_keys(&encoded) + } + } + + impl sp_consensus_aura::AuraApi for Runtime { + fn slot_duration() -> sp_consensus_aura::SlotDuration { + sp_consensus_aura::SlotDuration::from_millis(Aura::slot_duration()) + } + + fn authorities() -> Vec { + Aura::authorities().to_vec() + } + } + + impl sp_consensus_grandpa::GrandpaApi for Runtime { + fn grandpa_authorities() -> GrandpaAuthorityList { + Grandpa::grandpa_authorities() + } + + fn current_set_id() -> sp_consensus_grandpa::SetId { + Grandpa::current_set_id() + } + + fn submit_report_equivocation_unsigned_extrinsic( + _equivocation_proof: sp_consensus_grandpa::EquivocationProof< + ::Hash, + NumberFor, + >, + _key_owner_proof: sp_consensus_grandpa::OpaqueKeyOwnershipProof, + ) -> Option<()> { + None + } + + fn generate_key_ownership_proof( + _set_id: sp_consensus_grandpa::SetId, + _authority_id: GrandpaId, + ) -> Option { + // NOTE: this is the only implementation possible since we've + // defined our key owner proof type as a bottom type (i.e. a type + // with no values). + None + } + } + + impl frame_system_rpc_runtime_api::AccountNonceApi for Runtime { + fn account_nonce(account: AccountId) -> Nonce { + System::account_nonce(account) + } + } + + impl pallet_transaction_payment_rpc_runtime_api::TransactionPaymentApi< + Block, + Balance, + > for Runtime { + fn query_info( + uxt: ::Extrinsic, + len: u32 + ) -> pallet_transaction_payment_rpc_runtime_api::RuntimeDispatchInfo { + TransactionPayment::query_info(uxt, len) + } + + fn query_fee_details( + uxt: ::Extrinsic, + len: u32, + ) -> pallet_transaction_payment::FeeDetails { + TransactionPayment::query_fee_details(uxt, len) + } + + fn query_weight_to_fee(weight: Weight) -> Balance { + TransactionPayment::weight_to_fee(weight) + } + + fn query_length_to_fee(length: u32) -> Balance { + TransactionPayment::length_to_fee(length) + } + } + + impl fp_rpc::EthereumRuntimeRPCApi for Runtime { + fn chain_id() -> u64 { + ::ChainId::get() + } + + fn account_basic(address: H160) -> EVMAccount { + let (account, _) = pallet_evm::Pallet::::account_basic(&address); + account + } + + fn gas_price() -> U256 { + let (gas_price, _) = ::FeeCalculator::min_gas_price(); + gas_price + } + + fn account_code_at(address: H160) -> Vec { + pallet_evm::AccountCodes::::get(address) + } + + fn author() -> H160 { + >::find_author() + } + + fn storage_at(address: H160, index: U256) -> H256 { + let mut tmp = [0u8; 32]; + index.to_big_endian(&mut tmp); + pallet_evm::AccountStorages::::get(address, H256::from_slice(&tmp[..])) + } + + fn call( + from: H160, + to: H160, + data: Vec, + value: U256, + gas_limit: U256, + max_fee_per_gas: Option, + max_priority_fee_per_gas: Option, + nonce: Option, + estimate: bool, + access_list: Option)>>, + ) -> Result { + let config = if estimate { + let mut config = ::config().clone(); + config.estimate = true; + Some(config) + } else { + None + }; + + let gas_limit = gas_limit.min(u64::MAX.into()); + let transaction_data = TransactionData::new( + TransactionAction::Call(to), + data.clone(), + nonce.unwrap_or_default(), + gas_limit, + None, + max_fee_per_gas, + max_priority_fee_per_gas, + value, + Some(::ChainId::get()), + access_list.clone().unwrap_or_default(), + ); + let (weight_limit, proof_size_base_cost) = pallet_ethereum::Pallet::::transaction_weight(&transaction_data); + + ::Runner::call( + from, + to, + data, + value, + gas_limit.unique_saturated_into(), + max_fee_per_gas, + max_priority_fee_per_gas, + nonce, + access_list.unwrap_or_default(), + false, + true, + weight_limit, + proof_size_base_cost, + config.as_ref().unwrap_or(::config()), + ).map_err(|err| err.error.into()) + } + + fn create( + from: H160, + data: Vec, + value: U256, + gas_limit: U256, + max_fee_per_gas: Option, + max_priority_fee_per_gas: Option, + nonce: Option, + estimate: bool, + access_list: Option)>>, + ) -> Result { + let config = if estimate { + let mut config = ::config().clone(); + config.estimate = true; + Some(config) + } else { + None + }; + + let transaction_data = TransactionData::new( + TransactionAction::Create, + data.clone(), + nonce.unwrap_or_default(), + gas_limit, + None, + max_fee_per_gas, + max_priority_fee_per_gas, + value, + Some(::ChainId::get()), + access_list.clone().unwrap_or_default(), + ); + let (weight_limit, proof_size_base_cost) = pallet_ethereum::Pallet::::transaction_weight(&transaction_data); + + ::Runner::create( + from, + data, + value, + gas_limit.unique_saturated_into(), + max_fee_per_gas, + max_priority_fee_per_gas, + nonce, + access_list.unwrap_or_default(), + false, + true, + weight_limit, + proof_size_base_cost, + config.as_ref().unwrap_or(::config()), + ).map_err(|err| err.error.into()) + } + + fn current_transaction_statuses() -> Option> { + pallet_ethereum::CurrentTransactionStatuses::::get() + } + + fn current_block() -> Option { + pallet_ethereum::CurrentBlock::::get() + } + + fn current_receipts() -> Option> { + pallet_ethereum::CurrentReceipts::::get() + } + + fn current_all() -> ( + Option, + Option>, + Option> + ) { + ( + pallet_ethereum::CurrentBlock::::get(), + pallet_ethereum::CurrentReceipts::::get(), + pallet_ethereum::CurrentTransactionStatuses::::get() + ) + } + + fn extrinsic_filter( + xts: Vec<::Extrinsic>, + ) -> Vec { + xts.into_iter().filter_map(|xt| match xt.0.function { + RuntimeCall::Ethereum(transact { transaction }) => Some(transaction), + _ => None + }).collect::>() + } + + fn elasticity() -> Option { + Some(pallet_base_fee::Elasticity::::get()) + } + + fn gas_limit_multiplier_support() {} + + fn pending_block( + xts: Vec<::Extrinsic>, + ) -> (Option, Option>) { + for ext in xts.into_iter() { + let _ = Executive::apply_extrinsic(ext); + } + + Ethereum::on_finalize(System::block_number() + 1); + + ( + pallet_ethereum::CurrentBlock::::get(), + pallet_ethereum::CurrentTransactionStatuses::::get() + ) + } + } + + impl fp_rpc::ConvertTransactionRuntimeApi for Runtime { + fn convert_transaction(transaction: EthereumTransaction) -> ::Extrinsic { + UncheckedExtrinsic::new_unsigned( + pallet_ethereum::Call::::transact { transaction }.into(), + ) + } + } + + #[cfg(feature = "runtime-benchmarks")] + impl frame_benchmarking::Benchmark for Runtime { + fn benchmark_metadata(extra: bool) -> ( + Vec, + Vec, + ) { + use frame_benchmarking::{baseline, Benchmarking, BenchmarkList}; + use frame_support::traits::StorageInfoTrait; + + use baseline::Pallet as BaselineBench; + use frame_system_benchmarking::Pallet as SystemBench; + use pallet_hotfix_sufficients::Pallet as PalletHotfixSufficients; + + let mut list = Vec::::new(); + list_benchmarks!(list, extra); + list_benchmark!(list, extra, pallet_hotfix_sufficients, PalletHotfixSufficients::); + + let storage_info = AllPalletsWithSystem::storage_info(); + (list, storage_info) + } + + fn dispatch_benchmark( + config: frame_benchmarking::BenchmarkConfig + ) -> Result, sp_runtime::RuntimeString> { + use frame_benchmarking::{baseline, Benchmarking, BenchmarkBatch, add_benchmark}; + use frame_support::traits::TrackedStorageKey; + + use pallet_evm::Pallet as PalletEvmBench; + use pallet_hotfix_sufficients::Pallet as PalletHotfixSufficientsBench; + + impl baseline::Config for Runtime {} + impl frame_system_benchmarking::Config for Runtime {} + + let whitelist: Vec = vec![]; + + let mut batches = Vec::::new(); + let params = (&config, &whitelist); + + add_benchmark!(params, batches, pallet_evm, PalletEvmBench::); + add_benchmark!(params, batches, pallet_hotfix_sufficients, PalletHotfixSufficientsBench::); + + if batches.is_empty() { return Err("Benchmark not found for this pallet.".into()) } + Ok(batches) + } + } + + impl pallet_contracts::ContractsApi for Runtime + { + fn call( + origin: AccountId, + dest: AccountId, + value: Balance, + gas_limit: Option, + storage_deposit_limit: Option, + input_data: Vec, + ) -> pallet_contracts::ContractExecResult { + let gas_limit = gas_limit.unwrap_or(RuntimeBlockWeights::get().max_block); + Contracts::bare_call( + origin, + dest, + value, + gas_limit, + storage_deposit_limit, + input_data, + pallet_contracts::DebugInfo::UnsafeDebug, + pallet_contracts::CollectEvents::UnsafeCollect, + pallet_contracts::Determinism::Enforced, + ) + } + + fn instantiate( + origin: AccountId, + value: Balance, + gas_limit: Option, + storage_deposit_limit: Option, + code: pallet_contracts::Code, + data: Vec, + salt: Vec, + ) -> pallet_contracts::ContractInstantiateResult + { + let gas_limit = gas_limit.unwrap_or(RuntimeBlockWeights::get().max_block); + Contracts::bare_instantiate( + origin, + value, + gas_limit, + storage_deposit_limit, + code, + data, + salt, + pallet_contracts::DebugInfo::UnsafeDebug, + pallet_contracts::CollectEvents::UnsafeCollect, + ) + } + + fn upload_code( + origin: AccountId, + code: Vec, + storage_deposit_limit: Option, + determinism: pallet_contracts::Determinism, + ) -> pallet_contracts::CodeUploadResult + { + Contracts::bare_upload_code( + origin, + code, + storage_deposit_limit, + determinism, + ) + } + + fn get_storage( + address: AccountId, + key: Vec, + ) -> pallet_contracts::GetStorageResult { + Contracts::get_storage( + address, + key + ) + } + } +} + +/// Dynamic parameters that can be changed at runtime through the +/// `pallet_parameters::set_parameter`. +#[dynamic_params(RuntimeParameters, pallet_parameters::Parameters::)] +pub mod dynamic_params { + use super::*; + + #[dynamic_pallet_params] + #[codec(index = 0)] + pub mod storage { + /// Configures the base deposit of storing some data. + #[codec(index = 0)] + pub static BaseDeposit: Balance = 1 * DOLLARS; + + /// Configures the per-byte deposit of storing some data. + #[codec(index = 1)] + pub static ByteDeposit: Balance = 1 * CENTS; + } + + #[dynamic_pallet_params] + #[codec(index = 1)] + pub mod contracts { + #[codec(index = 0)] + pub static DepositPerItem: Balance = deposit(1, 0); + + #[codec(index = 1)] + pub static DepositPerByte: Balance = deposit(0, 1); + + #[codec(index = 2)] + pub static DefaultDepositLimit: Balance = deposit(1024, 1024 * 1024); + } +} + +#[cfg(test)] +mod tests { + use super::{Runtime, WeightPerGas}; + #[test] + fn configured_base_extrinsic_weight_is_evm_compatible() { + let min_ethereum_transaction_weight = WeightPerGas::get() * 21_000; + let base_extrinsic = ::BlockWeights::get() + .get(frame_support::dispatch::DispatchClass::Normal) + .base_extrinsic; + assert!(base_extrinsic.ref_time() <= min_ethereum_transaction_weight.ref_time()); + } +} diff --git a/runtime/src/precompiles.rs b/runtime/src/precompiles.rs new file mode 100644 index 0000000..c563f8e --- /dev/null +++ b/runtime/src/precompiles.rs @@ -0,0 +1,61 @@ +use pallet_evm::{ + IsPrecompileResult, Precompile, PrecompileHandle, PrecompileResult, PrecompileSet, +}; +use sp_core::H160; +use sp_std::marker::PhantomData; + +use pallet_evm_precompile_modexp::Modexp; +use pallet_evm_precompile_sha3fips::Sha3FIPS256; +use pallet_evm_precompile_simple::{ECRecover, ECRecoverPublicKey, Identity, Ripemd160, Sha256}; + +pub struct FrontierPrecompiles(PhantomData); + +impl FrontierPrecompiles +where + R: pallet_evm::Config, +{ + pub fn new() -> Self { + Self(Default::default()) + } + pub fn used_addresses() -> [H160; 7] { + [ + hash(1), + hash(2), + hash(3), + hash(4), + hash(5), + hash(1024), + hash(1025), + ] + } +} +impl PrecompileSet for FrontierPrecompiles +where + R: pallet_evm::Config, +{ + fn execute(&self, handle: &mut impl PrecompileHandle) -> Option { + match handle.code_address() { + // Ethereum precompiles : + a if a == hash(1) => Some(ECRecover::execute(handle)), + a if a == hash(2) => Some(Sha256::execute(handle)), + a if a == hash(3) => Some(Ripemd160::execute(handle)), + a if a == hash(4) => Some(Identity::execute(handle)), + a if a == hash(5) => Some(Modexp::execute(handle)), + // Non-Frontier specific nor Ethereum precompiles : + a if a == hash(1024) => Some(Sha3FIPS256::execute(handle)), + a if a == hash(1025) => Some(ECRecoverPublicKey::execute(handle)), + _ => None, + } + } + + fn is_precompile(&self, address: H160, _gas: u64) -> IsPrecompileResult { + IsPrecompileResult::Answer { + is_precompile: Self::used_addresses().contains(&address), + extra_cost: 0, + } + } +} + +fn hash(a: u64) -> H160 { + H160::from_low_u64_be(a) +}