From 0ed879136db12a0022a84667170e922636257388 Mon Sep 17 00:00:00 2001 From: gabrielhicks Date: Tue, 5 Jul 2022 22:54:35 -0400 Subject: [PATCH 1/4] Add on chain collection size --- Anchor.toml | 4 +- Cargo.lock | 2522 ++++++++--- programs/nft-voter/Cargo.toml | 10 +- .../src/instructions/configure_collection.rs | 24 +- programs/nft-voter/src/lib.rs | 2 +- .../nft-voter/src/state/collection_config.rs | 2 +- .../tests/program_test/nft_voter_test.rs | 2 +- yarn.lock | 3948 ++++++++--------- 8 files changed, 3937 insertions(+), 2577 deletions(-) diff --git a/Anchor.toml b/Anchor.toml index f6aaca5f..bea3229e 100644 --- a/Anchor.toml +++ b/Anchor.toml @@ -1,5 +1,5 @@ -anchor_version = "0.24.2" -solana_version = "1.9.13" +anchor_version = "0.25.0" +solana_version = "1.10.19" [features] seeds = false diff --git a/Cargo.lock b/Cargo.lock index e28bcf39..f1e968cf 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -7,14 +7,9 @@ name = "Inflector" version = "0.11.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3" - -[[package]] -name = "addr2line" -version = "0.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9ecd88a8c8378ca913a680cd98f0f13ac67383d35993f86c90a70e3f137816b" dependencies = [ - "gimli", + "lazy_static", + "regex", ] [[package]] @@ -23,13 +18,49 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" +[[package]] +name = "aead" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b613b8e1e3cf911a086f53f03bf286f52fd7a7258e4fa606f0ef220d39d8877" +dependencies = [ + "generic-array", +] + +[[package]] +name = "aes" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e8b47f52ea9bae42228d07ec09eb676433d7c4ed1ebdf0f1d1c29ed446f1ab8" +dependencies = [ + "cfg-if", + "cipher 0.3.0", + "cpufeatures", + "opaque-debug", +] + +[[package]] +name = "aes-gcm-siv" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "589c637f0e68c877bbd59a4599bbe849cac8e5f3e4b5a3ebae8f528cd218dcdc" +dependencies = [ + "aead", + "aes", + "cipher 0.3.0", + "ctr", + "polyval", + "subtle", + "zeroize", +] + [[package]] name = "ahash" version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47" dependencies = [ - "getrandom 0.2.5", + "getrandom 0.2.7", "once_cell", "version_check", ] @@ -49,129 +80,144 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "250f629c0161ad8107cf89319e990051fae62832fd343083bea452d93e2205fd" +[[package]] +name = "alloc-no-stdlib" +version = "2.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35ef4730490ad1c4eae5c4325b2a95f521d023e5c885853ff7aca0a6a1631db3" + +[[package]] +name = "alloc-stdlib" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "697ed7edc0f1711de49ce108c541623a0af97c6c60b2f6e2b65229847ac843c2" +dependencies = [ + "alloc-no-stdlib", +] + [[package]] name = "anchor-attribute-access-control" -version = "0.24.2" +version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9b75d05b6b4ac9d95bb6e3b786b27d3a708c4c5a87c92ffaa25bbe9ae4c5d91" +checksum = "70f6ee9518f50ff4d434471ccf569186022bdd5ef65a21d14da3ea5231af944f" dependencies = [ "anchor-syn", "anyhow", - "proc-macro2", - "quote", + "proc-macro2 1.0.40", + "quote 1.0.20", "regex", - "syn", + "syn 1.0.98", ] [[package]] name = "anchor-attribute-account" -version = "0.24.2" +version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "485351a6d8157750d10d88c8e256f1bf8339262b2220ae9125aed3471309b5de" +checksum = "32c92bcf5388b52676d990f85bbfd838a8f5672393135063a50dc79b2b837c79" dependencies = [ "anchor-syn", "anyhow", "bs58 0.4.0", - "proc-macro2", - "quote", + "proc-macro2 1.0.40", + "quote 1.0.20", "rustversion", - "syn", + "syn 1.0.98", ] [[package]] name = "anchor-attribute-constant" -version = "0.24.2" +version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc632c540913dd051a78b00587cc47f57013d303163ddfaf4fa18717f7ccc1e0" +checksum = "0844974ac35e8ced62056b0d63777ebcdc5807438b8b189c881e2b647450b70a" dependencies = [ "anchor-syn", - "proc-macro2", - "syn", + "proc-macro2 1.0.40", + "syn 1.0.98", ] [[package]] name = "anchor-attribute-error" -version = "0.24.2" +version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b5bd1dcfa7f3bc22dacef233d70a9e0bee269c4ac484510662f257cba2353a1" +checksum = "0f7467345e67a6f1d4b862b9763a4160ad89d18c247b8c902807768f7b6e23df" dependencies = [ "anchor-syn", - "proc-macro2", - "quote", - "syn", + "proc-macro2 1.0.40", + "quote 1.0.20", + "syn 1.0.98", ] [[package]] name = "anchor-attribute-event" -version = "0.24.2" +version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c6f9e6ce551ac9a177a45c99a65699a860c9e95fac68675138af1246e2591b0" +checksum = "8774e4c1ac71f71a5aea7e4932fb69c30e3b8155c4fa59fd69401195434528a9" dependencies = [ "anchor-syn", "anyhow", - "proc-macro2", - "quote", - "syn", + "proc-macro2 1.0.40", + "quote 1.0.20", + "syn 1.0.98", ] [[package]] name = "anchor-attribute-interface" -version = "0.24.2" +version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d104aa17418cb329ed7418b227e083d5f326a27f26ce98f5d92e33da62a5f459" +checksum = "90eeb6e1c80f9f94fcef93a52813f6472186200e275e83cb3fac92b801de92f7" dependencies = [ "anchor-syn", "anyhow", - "heck", - "proc-macro2", - "quote", - "syn", + "heck 0.3.3", + "proc-macro2 1.0.40", + "quote 1.0.20", + "syn 1.0.98", ] [[package]] name = "anchor-attribute-program" -version = "0.24.2" +version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6831b920b173c004ddf7ae1167d1d25e9f002ffcb1773bbc5c7ce532a4441e1" +checksum = "ac515a7a5a4fea7fc768b1cec40ddb948e148ea657637c75f94f283212326cb9" dependencies = [ "anchor-syn", "anyhow", - "proc-macro2", - "quote", - "syn", + "proc-macro2 1.0.40", + "quote 1.0.20", + "syn 1.0.98", ] [[package]] name = "anchor-attribute-state" -version = "0.24.2" +version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cde147b10c71d95dc679785db0b5f3abac0091f789167aa62ac0135e2f54e8b9" +checksum = "43dc667b62ff71450f19dcfcc37b0c408fd4ddd89e8650368c2b0984b110603f" dependencies = [ "anchor-syn", "anyhow", - "proc-macro2", - "quote", - "syn", + "proc-macro2 1.0.40", + "quote 1.0.20", + "syn 1.0.98", ] [[package]] name = "anchor-derive-accounts" -version = "0.24.2" +version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cde98a0e1a56046b040ff591dfda391f88917af2b6487d02b45093c05be3514" +checksum = "7354d583a06701d24800a8ec4c2b0491f62581a331af349205e23421e0b56643" dependencies = [ "anchor-syn", "anyhow", - "proc-macro2", - "quote", - "syn", + "proc-macro2 1.0.40", + "quote 1.0.20", + "syn 1.0.98", ] [[package]] name = "anchor-lang" -version = "0.24.2" +version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a85dd2c5e29e20c7f4701a43724d6cd5406d0ee5694705522e43da0f26542a84" +checksum = "ff5f57ec5e12fa6874b27f3d5c1f6f44302d3ad86c1266197ff7611bf6f5d251" dependencies = [ "anchor-attribute-access-control", "anchor-attribute-account", @@ -193,9 +239,9 @@ dependencies = [ [[package]] name = "anchor-spl" -version = "0.24.2" +version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0188c33b4a3c124c4e593f2b440415aaea70a7650fac6ba0772395385d71c003" +checksum = "d65904c3106851f6d1bb87d504044764819d69c51d2b4346d59d399d8afa7d18" dependencies = [ "anchor-lang", "solana-program", @@ -205,28 +251,37 @@ dependencies = [ [[package]] name = "anchor-syn" -version = "0.24.2" +version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03549dc2eae0b20beba6333b14520e511822a6321cdb1760f841064a69347316" +checksum = "55aa1e680d9471342122ed5b6bc13bf5da473b0f7e4677d41a6954e5cc8ad155" dependencies = [ "anyhow", "bs58 0.3.1", - "heck", - "proc-macro2", + "heck 0.3.3", + "proc-macro2 1.0.40", "proc-macro2-diagnostics", - "quote", + "quote 1.0.20", "serde", "serde_json", - "sha2", - "syn", + "sha2 0.9.9", + "syn 1.0.98", "thiserror", ] +[[package]] +name = "ansi_term" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" +dependencies = [ + "winapi", +] + [[package]] name = "anyhow" -version = "1.0.56" +version = "1.0.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4361135be9122e0870de935d7c439aef945b9f9ddd4199a553b5270b49c82a27" +checksum = "bb07d2053ccdbe10e2af2995a2f116c1330396493dc1269f6a91d0ae82e19704" [[package]] name = "arrayref" @@ -252,15 +307,38 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b34d609dfbaf33d6889b2b7106d3ca345eacad44200913df5ba02bfd31d2ba9" +[[package]] +name = "async-compression" +version = "0.3.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "345fd392ab01f746c717b1357165b76f0b67a60192007b234058c9045fdcf695" +dependencies = [ + "brotli", + "flate2", + "futures-core", + "memchr", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "async-mutex" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "479db852db25d9dbf6204e6cb6253698f175c15726470f78af0d918e99d6156e" +dependencies = [ + "event-listener", +] + [[package]] name = "async-trait" -version = "0.1.52" +version = "0.1.56" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "061a7acccaa286c011ddc30970520b98fa40e00c9d644633fb26b5fc63a265e3" +checksum = "96cf8829f67d2eab0b2dfa42c5d0ef737e0724e4a82b01b3e292456202b19716" dependencies = [ - "proc-macro2", - "quote", - "syn", + "proc-macro2 1.0.40", + "quote 1.0.20", + "syn 1.0.98", ] [[package]] @@ -280,21 +358,6 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" -[[package]] -name = "backtrace" -version = "0.3.65" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11a17d453482a265fd5f8479f2a3f405566e6ca627837aaddb85af8b1ab8ef61" -dependencies = [ - "addr2line", - "cc", - "cfg-if", - "libc", - "miniz_oxide 0.5.1", - "object", - "rustc-demangle", -] - [[package]] name = "base64" version = "0.12.3" @@ -307,6 +370,12 @@ version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd" +[[package]] +name = "base64ct" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3bdca834647821e0b13d9539a8634eb62d3501b6b6c2cec1722786ee6671b851" + [[package]] name = "bincode" version = "1.3.3" @@ -322,6 +391,15 @@ version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" +[[package]] +name = "bitmaps" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "031043d04099746d8db04daf1fa424b2bc8bd69d92b25962dcde24da39ab64a2" +dependencies = [ + "typenum", +] + [[package]] name = "blake3" version = "1.3.1" @@ -368,7 +446,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "15bf3650200d8bffa99015595e10f1fbd17de07abbc25bb067da79e769939bfa" dependencies = [ "borsh-derive", - "hashbrown", + "hashbrown 0.11.2", ] [[package]] @@ -380,8 +458,8 @@ dependencies = [ "borsh-derive-internal", "borsh-schema-derive-internal", "proc-macro-crate 0.1.5", - "proc-macro2", - "syn", + "proc-macro2 1.0.40", + "syn 1.0.98", ] [[package]] @@ -390,9 +468,9 @@ version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5449c28a7b352f2d1e592a8a28bf139bc71afb0764a14f3c02500935d8c44065" dependencies = [ - "proc-macro2", - "quote", - "syn", + "proc-macro2 1.0.40", + "quote 1.0.20", + "syn 1.0.98", ] [[package]] @@ -401,9 +479,30 @@ version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cdbd5696d8bfa21d53d9fe39a714a18538bad11492a42d066dbbc395fb1951c0" dependencies = [ - "proc-macro2", - "quote", - "syn", + "proc-macro2 1.0.40", + "quote 1.0.20", + "syn 1.0.98", +] + +[[package]] +name = "brotli" +version = "3.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1a0b1dbcc8ae29329621f8d4f0d835787c1c38bb1401979b49d13b0b305ff68" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", + "brotli-decompressor", +] + +[[package]] +name = "brotli-decompressor" +version = "2.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59ad2d4653bf5ca36ae797b1f4bb4dbddb60ce49ca4aed8a2ce4829f60425b80" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", ] [[package]] @@ -420,9 +519,9 @@ checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3" [[package]] name = "bumpalo" -version = "3.9.1" +version = "3.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4a45a46ab1f2412e53d3a0ade76ffad2025804294569aae387231a0cd6e0899" +checksum = "37ccbd214614c6783386c1af30caf03192f17891059cecc394b4fb119e363de3" [[package]] name = "bv" @@ -436,22 +535,22 @@ dependencies = [ [[package]] name = "bytemuck" -version = "1.8.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e851ca7c24871e7336801608a4797d7376545b6928a10d32d75685687141ead" +checksum = "c53dfa917ec274df8ed3c572698f381a24eef2efba9492d797301b72b6db408a" dependencies = [ "bytemuck_derive", ] [[package]] name = "bytemuck_derive" -version = "1.0.1" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e215f8c2f9f79cb53c8335e687ffd07d5bfcb6fe5fc80723762d0be46e7cc54" +checksum = "562e382481975bc61d11275ac5e62a19abd00b0547d99516a415336f183dcd0e" dependencies = [ - "proc-macro2", - "quote", - "syn", + "proc-macro2 1.0.40", + "quote 1.0.20", + "syn 1.0.98", ] [[package]] @@ -487,6 +586,17 @@ dependencies = [ "pkg-config", ] +[[package]] +name = "caps" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61bf7211aad104ce2769ec05efcdfabf85ee84ac92461d142f22cf8badd0e54c" +dependencies = [ + "errno", + "libc", + "thiserror", +] + [[package]] name = "cc" version = "1.0.73" @@ -512,7 +622,7 @@ dependencies = [ "num-integer", "num-traits", "serde", - "time", + "time 0.1.44", "winapi", ] @@ -525,6 +635,40 @@ dependencies = [ "chrono", ] +[[package]] +name = "cipher" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ee52072ec15386f770805afd189a01c8841be8696bed250fa2f13c4c0d6dfb7" +dependencies = [ + "generic-array", +] + +[[package]] +name = "cipher" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1873270f8f7942c191139cb8a40fd228da6c3fd2fc376d7e92d47aa14aeb59e" +dependencies = [ + "crypto-common", + "inout", +] + +[[package]] +name = "clap" +version = "2.34.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c" +dependencies = [ + "ansi_term", + "atty", + "bitflags", + "strsim", + "textwrap", + "unicode-width", + "vec_map", +] + [[package]] name = "combine" version = "3.8.1" @@ -538,6 +682,21 @@ dependencies = [ "unreachable", ] +[[package]] +name = "console" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a28b32d32ca44b70c3e4acd7db1babf555fa026e385fb95f18028f88848b3c31" +dependencies = [ + "encode_unicode", + "libc", + "once_cell", + "regex", + "terminal_size", + "unicode-width", + "winapi", +] + [[package]] name = "console_error_panic_hook" version = "0.1.7" @@ -558,17 +717,39 @@ dependencies = [ "web-sys", ] +[[package]] +name = "const-oid" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4c78c047431fee22c1a7bb92e00ad095a02a983affe4d8a72e2a2c62c1b94f3" + [[package]] name = "constant_time_eq" version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" +[[package]] +name = "core-foundation" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc" + [[package]] name = "cpufeatures" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95059428f66df56b63431fdb4e1947ed2190586af5c5a8a8b71122bdf5a7f469" +checksum = "59a6001667ab124aebae2a495118e11d30984c3a653e99d86d58971708cf5e4b" dependencies = [ "libc", ] @@ -584,9 +765,9 @@ dependencies = [ [[package]] name = "crossbeam-channel" -version = "0.5.2" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e54ea8bc3fb1ee042f5aace6e3c6e025d3874866da222930f70ce62aceba0bfa" +checksum = "4c02a4d71819009c192cf4872265391563fd6a84c81ff2c0f2a7026ca4c1d85c" dependencies = [ "cfg-if", "crossbeam-utils", @@ -605,25 +786,26 @@ dependencies = [ [[package]] name = "crossbeam-epoch" -version = "0.9.7" +version = "0.9.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c00d6d2ea26e8b151d99093005cb442fb9a37aeaca582a03ec70946f49ab5ed9" +checksum = "07db9d94cbd326813772c968ccd25999e5f8ae22f4f8d1b11effa37ef6ce281d" dependencies = [ + "autocfg", "cfg-if", "crossbeam-utils", - "lazy_static", "memoffset", + "once_cell", "scopeguard", ] [[package]] name = "crossbeam-utils" -version = "0.8.7" +version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5e5bed1f1c269533fa816a0a5492b3545209a205ca1a54842be180eb63a16a6" +checksum = "7d82ee10ce34d7bc12c2122495e7593a9c41347ecdd64185af4ecf72cb1a7f83" dependencies = [ "cfg-if", - "lazy_static", + "once_cell", ] [[package]] @@ -634,9 +816,9 @@ checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" [[package]] name = "crypto-common" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57952ca27b5e3606ff4dd79b0020231aaf9d6aa76dc05fd30137538c50bd3ce8" +checksum = "5999502d32b9c48d492abe66392408144895020ec4709e549e840799f3bb74c0" dependencies = [ "generic-array", "typenum", @@ -653,23 +835,12 @@ dependencies = [ ] [[package]] -name = "crypto-mac" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58bcd97a54c7ca5ce2f6eb16f6bede5b0ab5f0055fedc17d2f0b4466e21671ca" -dependencies = [ - "generic-array", - "subtle", -] - -[[package]] -name = "crypto-mac" -version = "0.11.1" +name = "ctr" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1d1a86f49236c215f271d40892d5fc950490551400b02ef360692c29815c714" +checksum = "049bb91fb4aaf0e3c7efa6cd5ef877dbbbd15b39dad06d9948de4ec8a75761ea" dependencies = [ - "generic-array", - "subtle", + "cipher 0.3.0", ] [[package]] @@ -681,6 +852,7 @@ dependencies = [ "byteorder", "digest 0.9.0", "rand_core 0.5.1", + "serde", "subtle", "zeroize", ] @@ -696,13 +868,30 @@ dependencies = [ "rayon", ] +[[package]] +name = "der" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6919815d73839e7ad218de758883aae3a257ba6759ce7a9992501efbb53d705c" +dependencies = [ + "const-oid", +] + [[package]] name = "derivation-path" -version = "0.1.3" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e5c37193a1db1d8ed868c03ec7b152175f26160a5b740e5e484143877e0adf0" + +[[package]] +name = "dialoguer" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "193388a8c8c75a490b604ff61775e236541b8975e98e5ca1f6ea97d122b7e2db" +checksum = "d8c8ae48e400addc32a8710c8d62d55cb84249a7d58ac4cd959daecfbaddc545" dependencies = [ - "failure", + "console", + "tempfile", + "zeroize", ] [[package]] @@ -734,11 +923,55 @@ dependencies = [ "walkdir", ] +[[package]] +name = "dirs-next" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1" +dependencies = [ + "cfg-if", + "dirs-sys-next", +] + +[[package]] +name = "dirs-sys-next" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" +dependencies = [ + "libc", + "redox_users", + "winapi", +] + +[[package]] +name = "dlopen" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "71e80ad39f814a9abe68583cd50a2d45c8a67561c3361ab8da240587dda80937" +dependencies = [ + "dlopen_derive", + "lazy_static", + "libc", + "winapi", +] + +[[package]] +name = "dlopen_derive" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f236d9e1b1fbd81cea0f9cbdc8dcc7e8ebcd80e6659cd7cb2ad5f6c05946c581" +dependencies = [ + "libc", + "quote 0.6.13", + "syn 0.15.44", +] + [[package]] name = "ed25519" -version = "1.4.0" +version = "1.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eed12bbf7b5312f8da1c2722bc06d8c6b12c2d86a7fb35a194c7f3e6fc2bbe39" +checksum = "1e9c280362032ea4203659fc489832d0204ef09f247a0506f170dafcac08c369" dependencies = [ "signature", ] @@ -753,21 +986,20 @@ dependencies = [ "ed25519", "rand 0.7.3", "serde", - "sha2", + "sha2 0.9.9", "zeroize", ] [[package]] name = "ed25519-dalek-bip32" -version = "0.1.1" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "057f328f31294b5ab432e6c39642f54afd1531677d6d4ba2905932844cc242f3" +checksum = "9d2be62a4061b872c8c0873ee4fc6f101ce7b889d039f019c5fa2af471a59908" dependencies = [ "derivation-path", "ed25519-dalek", - "failure", - "hmac 0.9.0", - "sha2", + "hmac 0.12.1", + "sha2 0.10.2", ] [[package]] @@ -777,38 +1009,76 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c07b7cc9cd8c08d10db74fca3b20949b9b6199725c04a0cce6d543496098fcac" dependencies = [ "enum-ordinalize", - "proc-macro2", - "quote", - "syn", + "proc-macro2 1.0.40", + "quote 1.0.20", + "syn 1.0.98", ] [[package]] name = "either" -version = "1.6.1" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457" +checksum = "3f107b87b6afc2a64fd13cac55fe06d6c8859f12d4b14cbcdd2c67d0976781be" + +[[package]] +name = "encode_unicode" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f" [[package]] name = "encoding_rs" -version = "0.8.30" +version = "0.8.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7896dc8abb250ffdda33912550faa54c88ec8b998dec0b2c55ab224921ce11df" +checksum = "9852635589dc9f9ea1b6fe9f05b50ef208c85c834a562f0c6abb1c475736ec2b" dependencies = [ "cfg-if", ] +[[package]] +name = "enum-iterator" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4eeac5c5edb79e4e39fe8439ef35207780a11f69c52cbe424ce3dfad4cb78de6" +dependencies = [ + "enum-iterator-derive", +] + +[[package]] +name = "enum-iterator-derive" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c134c37760b27a871ba422106eedbb8247da973a09e82558bf26d619c882b159" +dependencies = [ + "proc-macro2 1.0.40", + "quote 1.0.20", + "syn 1.0.98", +] + [[package]] name = "enum-ordinalize" version = "3.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2170fc0efee383079a8bdd05d6ea2a184d2a0f07a1c1dcabdb2fd5e9f24bc36c" dependencies = [ - "num-bigint", + "num-bigint 0.4.3", "num-traits", - "proc-macro2", - "quote", + "proc-macro2 1.0.40", + "quote 1.0.20", "rustc_version", - "syn", + "syn 1.0.98", +] + +[[package]] +name = "enum_dispatch" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0eb359f1476bf611266ac1f5355bc14aeca37b299d0ebccc038ee7058891c9cb" +dependencies = [ + "once_cell", + "proc-macro2 1.0.40", + "quote 1.0.20", + "syn 1.0.98", ] [[package]] @@ -825,27 +1095,32 @@ dependencies = [ ] [[package]] -name = "failure" -version = "0.1.8" +name = "errno" +version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d32e9bd16cc02eae7db7ef620b392808b89f6a5e16bb3497d159c6b92a0f4f86" +checksum = "f639046355ee4f37944e44f60642c6f3a7efa3cf6b78c78a0d989a8ce6c396a1" dependencies = [ - "backtrace", - "failure_derive", + "errno-dragonfly", + "libc", + "winapi", ] [[package]] -name = "failure_derive" -version = "0.1.8" +name = "errno-dragonfly" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa4da3c766cd7a0db8242e326e9e4e081edd567072893ed320008189715366a4" +checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf" dependencies = [ - "proc-macro2", - "quote", - "syn", - "synstructure", + "cc", + "libc", ] +[[package]] +name = "event-listener" +version = "2.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77f3309417938f28bf8228fcff79a4a37103981e3e186d2ccd19c74b38f4eb71" + [[package]] name = "fastrand" version = "1.7.0" @@ -863,26 +1138,24 @@ checksum = "835a3dc7d1ec9e75e2b5fb4ba75396837112d2060b03f7d43bc1897c7f7211da" [[package]] name = "filetime" -version = "0.2.15" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "975ccf83d8d9d0d84682850a38c8169027be83368805971cc4f238c2b245bc98" +checksum = "e94a7bbaa59354bc20dd75b67f23e2797b4490e9d6928203fb105c79e448c86c" dependencies = [ "cfg-if", "libc", "redox_syscall", - "winapi", + "windows-sys", ] [[package]] name = "flate2" -version = "1.0.22" +version = "1.0.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e6988e897c1c9c485f43b47a529cef42fde0547f9d8d41a7062518f1d8fc53f" +checksum = "f82b0f4c27ad9f8bfd1f3208d882da2b09c301bc1c828fd3a00d0216d2fbbff6" dependencies = [ - "cfg-if", "crc32fast", - "libc", - "miniz_oxide 0.4.4", + "miniz_oxide", ] [[package]] @@ -901,12 +1174,6 @@ dependencies = [ "percent-encoding", ] -[[package]] -name = "fs_extra" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2022715d62ab30faffd124d40b76f4134a550a87792276512b18d63272333394" - [[package]] name = "futures" version = "0.3.21" @@ -961,9 +1228,9 @@ version = "0.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "33c1e13800337f4d4d7a316bf45a567dbcb6ffe087f16424852d97e97a91f512" dependencies = [ - "proc-macro2", - "quote", - "syn", + "proc-macro2 1.0.40", + "quote 1.0.20", + "syn 1.0.98", ] [[package]] @@ -996,6 +1263,15 @@ dependencies = [ "slab", ] +[[package]] +name = "fxhash" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" +dependencies = [ + "byteorder", +] + [[package]] name = "generic-array" version = "0.14.5" @@ -1009,9 +1285,9 @@ dependencies = [ [[package]] name = "gethostname" -version = "0.2.2" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4addc164932852d066774c405dbbdb7914742d2b39e39e1a7ca949c856d054d1" +checksum = "c1ebd34e35c46e00bb73e81363248d627782724609fe1b6396f553f68fe3862e" dependencies = [ "libc", "winapi", @@ -1032,21 +1308,15 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.5" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d39cd93900197114fa1fcb7ae84ca742095eed9442088988ae74fa744e930e77" +checksum = "4eb1a864a501629691edf6c15a593b7a51eebaa1e8468e9ddc623de7c9b58ec6" dependencies = [ "cfg-if", "libc", - "wasi 0.10.2+wasi-snapshot-preview1", + "wasi 0.11.0+wasi-snapshot-preview1", ] -[[package]] -name = "gimli" -version = "0.26.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78cc372d058dcf6d5ecd98510e7fbc9e5aec4d21de70f65fea8fecebcd881bd4" - [[package]] name = "goblin" version = "0.4.3" @@ -1078,9 +1348,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.3.12" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62eeb471aa3e3c9197aa4bfeabfe02982f6dc96f750486c0bb0009ac58b26d2b" +checksum = "37a82c6d637fc9515a4694bbf1cb2457b79d81ce52b3108bdeea58b07dd34a57" dependencies = [ "bytes", "fnv", @@ -1091,7 +1361,7 @@ dependencies = [ "indexmap", "slab", "tokio", - "tokio-util", + "tokio-util 0.7.2", "tracing", ] @@ -1113,6 +1383,12 @@ dependencies = [ "ahash", ] +[[package]] +name = "hashbrown" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db0d4cf898abf0081f964436dc980e96670a0f36863e4b83aaacdb65c9d7ccc3" + [[package]] name = "heck" version = "0.3.3" @@ -1122,6 +1398,12 @@ dependencies = [ "unicode-segmentation", ] +[[package]] +name = "heck" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9" + [[package]] name = "hermit-abi" version = "0.1.19" @@ -1132,33 +1414,28 @@ dependencies = [ ] [[package]] -name = "hmac" -version = "0.8.1" +name = "histogram" +version = "0.6.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "126888268dcc288495a26bf004b38c5fdbb31682f992c84ceb046a1f0fe38840" -dependencies = [ - "crypto-mac 0.8.0", - "digest 0.9.0", -] +checksum = "12cb882ccb290b8646e554b157ab0b71e64e8d5bef775cd66b6531e52d302669" [[package]] name = "hmac" -version = "0.9.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "deae6d9dbb35ec2c502d62b8f7b1c000a0822c3b0794ba36b3149c0a1c840dff" +checksum = "126888268dcc288495a26bf004b38c5fdbb31682f992c84ceb046a1f0fe38840" dependencies = [ - "crypto-mac 0.9.1", + "crypto-mac", "digest 0.9.0", ] [[package]] name = "hmac" -version = "0.11.0" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a2a2320eb7ec0ebe8da8f744d7812d9fc4cb4d09344ac01898dbcb6a20ae69b" +checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" dependencies = [ - "crypto-mac 0.11.1", - "digest 0.9.0", + "digest 0.10.3", ] [[package]] @@ -1174,9 +1451,9 @@ dependencies = [ [[package]] name = "http" -version = "0.2.6" +version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31f4c6746584866f0feabcc69893c5b51beef3831656a968ed7ae254cdc4fd03" +checksum = "75f43d41e26995c17e71ee126451dd3941010b0514a81a9d11f3b341debc2399" dependencies = [ "bytes", "fnv", @@ -1185,9 +1462,9 @@ dependencies = [ [[package]] name = "http-body" -version = "0.4.4" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ff4f84919677303da5f147645dbea6b1881f368d03ac84e1dc09031ebd7b2c6" +checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" dependencies = [ "bytes", "http", @@ -1196,9 +1473,9 @@ dependencies = [ [[package]] name = "httparse" -version = "1.6.0" +version = "1.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9100414882e15fb7feccb4897e5f0ff0ff1ca7d1a86a23208ada4d7a18e6c6c4" +checksum = "496ce29bb5a52785b44e0f7ca2847ae0bb839c9bd28f69acac9b99d461c0c04c" [[package]] name = "httpdate" @@ -1214,9 +1491,9 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] name = "hyper" -version = "0.14.17" +version = "0.14.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "043f0e083e9901b6cc658a77d1eb86f4fc650bbb977a4337dd63192826aa85dd" +checksum = "42dc3c131584288d375f2d07f822b0cb012d8c6fb899a5b9fdb3cb7eb9b6004f" dependencies = [ "bytes", "futures-channel", @@ -1260,6 +1537,22 @@ dependencies = [ "unicode-normalization", ] +[[package]] +name = "im" +version = "15.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0acd33ff0285af998aaf9b57342af478078f53492322fafc47450e09397e0e9" +dependencies = [ + "bitmaps", + "rand_core 0.6.3", + "rand_xoshiro", + "rayon", + "serde", + "sized-chunks", + "typenum", + "version_check", +] + [[package]] name = "index_list" version = "0.2.7" @@ -1268,12 +1561,33 @@ checksum = "5a9d968042a4902e08810946fc7cd5851eb75e80301342305af755ca06cb82ce" [[package]] name = "indexmap" -version = "1.8.0" +version = "1.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "282a6247722caba404c065016bbfa522806e51714c34f5dfc3e4a3a46fcb4223" +checksum = "10a35a97730320ffe8e2d410b5d3b69279b98d2c14bdb8b70ea89ecf7888d41e" dependencies = [ "autocfg", - "hashbrown", + "hashbrown 0.12.1", +] + +[[package]] +name = "indicatif" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d207dc617c7a380ab07ff572a6e52fa202a2a8f355860ac9c38e23f8196be1b" +dependencies = [ + "console", + "lazy_static", + "number_prefix", + "regex", +] + +[[package]] +name = "inout" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" +dependencies = [ + "generic-array", ] [[package]] @@ -1287,9 +1601,9 @@ dependencies = [ [[package]] name = "ipnet" -version = "2.4.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35e70ee094dc02fd9c13fdad4940090f22dbd6ac7c9e7094a46cf0232a50bc7c" +checksum = "879d54834c8c76457ef4293a689b2a8c59b076067ad77b15efafbb05f92a592b" [[package]] name = "itertools" @@ -1302,9 +1616,9 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1aab8fc367588b89dcee83ab0fd66b72b50b72fa1904d7095045ace2b0c81c35" +checksum = "112c678d4050afce233f4f2852bb2eb519230b3cf12f33585275537d7e41578d" [[package]] name = "jobserver" @@ -1317,18 +1631,33 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.56" +version = "0.3.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a38fc24e30fd564ce974c02bf1d337caddff65be6cc4735a1f7eab22a7440f04" +checksum = "c3fac17f7123a73ca62df411b1bf727ccc805daa070338fda671c86dac1bdc27" dependencies = [ "wasm-bindgen", ] +[[package]] +name = "jsonrpc-core" +version = "18.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14f7f76aef2d054868398427f6c54943cf3d1caa9a7ec7d0c38d69df97a965eb" +dependencies = [ + "futures", + "futures-executor", + "futures-util", + "log", + "serde", + "serde_derive", + "serde_json", +] + [[package]] name = "keccak" -version = "0.1.0" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67c21572b4949434e4fc1e1978b99c5f77064153c59d998bf13ecd96fb5ecba7" +checksum = "f9b7d56ba4a8344d6be9729995e6b06f928af29998cdf79fe390cbf6b1fee838" [[package]] name = "lazy_static" @@ -1338,9 +1667,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "libc" -version = "0.2.119" +version = "0.2.126" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bf2e165bb3457c8e098ea76f3e3bc9db55f87aa90d52d0e6be741470916aaa4" +checksum = "349d5a591cd28b49e1d1037471617a32ddcda5731b99419008085f72d5a53836" [[package]] name = "libloading" @@ -1367,7 +1696,7 @@ dependencies = [ "libsecp256k1-gen-genmult", "rand 0.7.3", "serde", - "sha2", + "sha2 0.9.9", "typenum", ] @@ -1400,24 +1729,60 @@ dependencies = [ "libsecp256k1-core", ] +[[package]] +name = "linked-hash-map" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" + [[package]] name = "lock_api" -version = "0.4.6" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88943dd7ef4a2e5a4bfa2753aaab3013e34ce2533d1996fb18ef591e315e2b3b" +checksum = "327fa5b6a6940e4699ec49a9beae1ea4845c6bab9314e4f84ac68742139d8c53" dependencies = [ + "autocfg", "scopeguard", ] [[package]] name = "log" -version = "0.4.14" +version = "0.4.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710" +checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" dependencies = [ "cfg-if", ] +[[package]] +name = "lru" +version = "0.7.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c84e6fe5655adc6ce00787cf7dcaf8dc4f998a0565d23eafc207a8b08ca3349a" +dependencies = [ + "hashbrown 0.11.2", +] + +[[package]] +name = "lz4" +version = "1.23.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4edcb94251b1c375c459e5abe9fb0168c1c826c3370172684844f8f3f8d1a885" +dependencies = [ + "libc", + "lz4-sys", +] + +[[package]] +name = "lz4-sys" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7be8908e2ed6f31c02db8a9fa962f03e36c53fbfde437363eae3306b85d7e17" +dependencies = [ + "cc", + "libc", +] + [[package]] name = "matches" version = "0.1.9" @@ -1426,15 +1791,15 @@ checksum = "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f" [[package]] name = "memchr" -version = "2.4.1" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86a" +checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" [[package]] name = "memmap2" -version = "0.5.3" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "057a3db23999c867821a7a59feb06a578fcb03685e983dff90daf9e7d24ac08f" +checksum = "d5172b50c23043ff43dd53e51392f36519d9b35a8f3a410d30ece5d1aedd58ae" dependencies = [ "libc", ] @@ -1449,35 +1814,37 @@ dependencies = [ ] [[package]] -name = "mime" -version = "0.3.16" +name = "merlin" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d" +checksum = "58c38e2799fc0978b65dfff8023ec7843e2330bb462f19198840b34b6582397d" +dependencies = [ + "byteorder", + "keccak", + "rand_core 0.6.3", + "zeroize", +] [[package]] -name = "miniz_oxide" -version = "0.4.4" +name = "mime" +version = "0.3.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a92518e98c078586bc6c934028adcca4c92a53d6a958196de835170a01d84e4b" -dependencies = [ - "adler", - "autocfg", -] +checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d" [[package]] name = "miniz_oxide" -version = "0.5.1" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2b29bd4bc3f33391105ebee3589c19197c4271e3e5a9ec9bfe8127eeff8f082" +checksum = "6f5c75688da582b8ffc1f1799e9db273f32133c49e048f614d22ec3256773ccc" dependencies = [ "adler", ] [[package]] name = "mio" -version = "0.8.0" +version = "0.7.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba272f85fa0b41fc91872be579b3bbe0f56b792aa361a380eb669469f68dafb2" +checksum = "8067b404fe97c70829f082dec8bcf4f71225d7eaea1d8645349cb76fa06205cc" dependencies = [ "libc", "log", @@ -1495,17 +1862,39 @@ dependencies = [ "winapi", ] +[[package]] +name = "modular-bitfield" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a53d79ba8304ac1c4f9eb3b9d281f21f7be9d4626f72ce7df4ad8fbde4f38a74" +dependencies = [ + "modular-bitfield-impl", + "static_assertions", +] + +[[package]] +name = "modular-bitfield-impl" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a7d5f7076603ebc68de2dc6a650ec331a062a13abaa346975be747bbfa4b789" +dependencies = [ + "proc-macro2 1.0.40", + "quote 1.0.20", + "syn 1.0.98", +] + [[package]] name = "mpl-token-metadata" -version = "1.2.5" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8f072b3bd212fb020389e6d6244e4b35b99708193d063cf3844bac8c182ae8f" +checksum = "f8b06b6275bd3f6444e22b03de7bdf6145ee6d6fa3e14415ddd317473b9ef807" dependencies = [ "arrayref", "borsh", "mpl-token-vault", "num-derive", "num-traits", + "shank", "solana-program", "spl-associated-token-account", "spl-token", @@ -1526,6 +1915,19 @@ dependencies = [ "thiserror", ] +[[package]] +name = "nix" +version = "0.23.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f866317acbd3a240710c63f065ffb1e4fd466259045ccb504130b7f668f35c6" +dependencies = [ + "bitflags", + "cc", + "cfg-if", + "libc", + "memoffset", +] + [[package]] name = "ntapi" version = "0.3.7" @@ -1535,6 +1937,31 @@ dependencies = [ "winapi", ] +[[package]] +name = "num" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8536030f9fea7127f841b45bb6243b27255787fb4eb83958aa1ef9d2fdc0c36" +dependencies = [ + "num-bigint 0.2.6", + "num-complex", + "num-integer", + "num-iter", + "num-rational", + "num-traits", +] + +[[package]] +name = "num-bigint" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "090c7f9998ee0ff65aa5b723e4009f7b217707f1fb5ea551329cc4d6231fb304" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + [[package]] name = "num-bigint" version = "0.4.3" @@ -1546,32 +1973,65 @@ dependencies = [ "num-traits", ] +[[package]] +name = "num-complex" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6b19411a9719e753aff12e5187b74d60d3dc449ec3f4dc21e3989c3f554bc95" +dependencies = [ + "autocfg", + "num-traits", +] + [[package]] name = "num-derive" version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "876a53fff98e03a936a674b29568b0e605f06b29372c2489ff4de23f1949743d" dependencies = [ - "proc-macro2", - "quote", - "syn", + "proc-macro2 1.0.40", + "quote 1.0.20", + "syn 1.0.98", ] [[package]] name = "num-integer" -version = "0.1.44" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" +dependencies = [ + "autocfg", + "num-traits", +] + +[[package]] +name = "num-iter" +version = "0.1.43" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-rational" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2cc698a63b549a70bc047073d2949cce27cd1c7b0a4a862d08a8031bc2801db" +checksum = "5c000134b5dbf44adc5cb772486d335293351644b801551abe8f75c84cfa4aef" dependencies = [ "autocfg", + "num-bigint 0.2.6", + "num-integer", "num-traits", ] [[package]] name = "num-traits" -version = "0.2.14" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290" +checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" dependencies = [ "autocfg", ] @@ -1602,25 +2062,31 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3b0498641e53dd6ac1a4f22547548caa6864cc4933784319cd1775271c5a46ce" dependencies = [ "proc-macro-crate 1.1.3", - "proc-macro2", - "quote", - "syn", + "proc-macro2 1.0.40", + "quote 1.0.20", + "syn 1.0.98", ] [[package]] -name = "object" -version = "0.28.3" +name = "num_threads" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40bec70ba014595f99f7aa110b84331ffe1ee9aece7fe6f387cc7e3ecda4d456" +checksum = "2819ce041d2ee131036f4fc9d6ae7ae125a3a40e97ba64d04fe799ad9dabbb44" dependencies = [ - "memchr", + "libc", ] +[[package]] +name = "number_prefix" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3" + [[package]] name = "once_cell" -version = "1.10.0" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87f3e037eac156d1775da914196f0f37741a274155e34a0b7e427c35d2a2ecb9" +checksum = "18a6dbe30758c9f83eb00cbea4ac95966305f5a7772f3f42ebfc7fc7eddbd8e1" [[package]] name = "opaque-debug" @@ -1628,6 +2094,12 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" +[[package]] +name = "openssl-probe" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" + [[package]] name = "opentelemetry" version = "0.16.0" @@ -1647,9 +2119,9 @@ dependencies = [ [[package]] name = "ouroboros" -version = "0.13.0" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f357ef82d1b4db66fbed0b8d542cbd3c22d0bf5b393b3c257b9ba4568e70c9c3" +checksum = "71643f290d126e18ac2598876d01e1d57aed164afc78fdb6e2a0c6589a1f6662" dependencies = [ "aliasable", "ouroboros_macro", @@ -1658,15 +2130,15 @@ dependencies = [ [[package]] name = "ouroboros_macro" -version = "0.13.0" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44a0b52c2cbaef7dffa5fec1a43274afe8bd2a644fa9fc50a9ef4ff0269b1257" +checksum = "ed9a247206016d424fe8497bc611e510887af5c261fbbf977877c4bb55ca4d82" dependencies = [ "Inflector", "proc-macro-error", - "proc-macro2", - "quote", - "syn", + "proc-macro2 1.0.40", + "quote 1.0.20", + "syn 1.0.98", ] [[package]] @@ -1682,12 +2154,12 @@ dependencies = [ [[package]] name = "parking_lot" -version = "0.12.0" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87f5ec2493a61ac0506c0f4199f99070cbe83857b0337006a30f3e6719b8ef58" +checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" dependencies = [ "lock_api", - "parking_lot_core 0.9.1", + "parking_lot_core 0.9.3", ] [[package]] @@ -1706,9 +2178,9 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.9.1" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28141e0cc4143da2443301914478dc976a61ffdb3f043058310c70df2fed8954" +checksum = "09a279cbf25cb0757810394fbc1e359949b59e348145c643a939a525692e6929" dependencies = [ "cfg-if", "libc", @@ -1719,11 +2191,29 @@ dependencies = [ [[package]] name = "pbkdf2" -version = "0.9.0" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "216eaa586a190f0a738f2f918511eecfa90f13295abec0e457cdebcceda80cbd" +dependencies = [ + "crypto-mac", +] + +[[package]] +name = "pbkdf2" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f05894bce6a1ba4be299d0c5f29563e08af2bc18bb7d48313113bed71e904739" +checksum = "271779f35b581956db91a3e55737327a03aa051e90b1c47aeb189508533adfd7" dependencies = [ - "crypto-mac 0.11.1", + "digest 0.10.3", +] + +[[package]] +name = "pem" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9a3b09a20e374558580a4914d3b7d89bd61b954a5a5e1dcbea98753addb1947" +dependencies = [ + "base64 0.13.0", ] [[package]] @@ -1732,31 +2222,40 @@ version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e" +[[package]] +name = "percentage" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2fd23b938276f14057220b707937bcb42fa76dda7560e57a2da30cb52d557937" +dependencies = [ + "num", +] + [[package]] name = "pin-project" -version = "1.0.10" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58ad3879ad3baf4e44784bc6a718a8698867bb991f8ce24d1bcbe2cfb4c3a75e" +checksum = "78203e83c48cffbe01e4a2d35d566ca4de445d79a85372fc64e378bfc812a260" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.0.10" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "744b6f092ba29c3650faf274db506afd39944f48420f6c86b17cfe0ee1cb36bb" +checksum = "710faf75e1b33345361201d36d04e98ac1ed8909151a017ed384700836104c74" dependencies = [ - "proc-macro2", - "quote", - "syn", + "proc-macro2 1.0.40", + "quote 1.0.20", + "syn 1.0.98", ] [[package]] name = "pin-project-lite" -version = "0.2.8" +version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e280fbe77cc62c91527259e9442153f4688736748d24660126286329742b4c6c" +checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" [[package]] name = "pin-utils" @@ -1764,11 +2263,22 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" +[[package]] +name = "pkcs8" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7cabda3fb821068a9a4fab19a683eac3af12edf0f34b94a8be53c4972b8149d0" +dependencies = [ + "der", + "spki", + "zeroize", +] + [[package]] name = "pkg-config" -version = "0.3.24" +version = "0.3.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58893f751c9b0412871a09abd62ecd2a00298c6c83befa223ef98c52aef40cbe" +checksum = "1df8c4ec4b0627e53bdf214615ad287367e482558cf84b109250b37464dc03ae" [[package]] name = "plain" @@ -1776,6 +2286,18 @@ version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6" +[[package]] +name = "polyval" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8419d2b623c7c0896ff2d5d96e2cb4ede590fed28fcc34934f4c33c036e620a1" +dependencies = [ + "cfg-if", + "cpufeatures", + "opaque-debug", + "universal-hash", +] + [[package]] name = "ppv-lite86" version = "0.2.16" @@ -1808,9 +2330,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" dependencies = [ "proc-macro-error-attr", - "proc-macro2", - "quote", - "syn", + "proc-macro2 1.0.40", + "quote 1.0.20", + "syn 1.0.98", "version_check", ] @@ -1820,18 +2342,27 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" dependencies = [ - "proc-macro2", - "quote", + "proc-macro2 1.0.40", + "quote 1.0.20", "version_check", ] [[package]] name = "proc-macro2" -version = "1.0.36" +version = "0.4.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759" +dependencies = [ + "unicode-xid 0.1.0", +] + +[[package]] +name = "proc-macro2" +version = "1.0.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7342d5883fbccae1cc37a2353b09c87c9b0f3afd73f5fb9bba687a1f733b029" +checksum = "dd96a1e8ed2596c337f8eae5f24924ec83f5ad5ab21ea8e455d3566c69fbcaf7" dependencies = [ - "unicode-xid", + "unicode-ident", ] [[package]] @@ -1840,9 +2371,9 @@ version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4bf29726d67464d49fa6224a1d07936a8c08bb3fba727c7493f6cf1616fdaada" dependencies = [ - "proc-macro2", - "quote", - "syn", + "proc-macro2 1.0.40", + "quote 1.0.20", + "syn 1.0.98", "version_check", "yansi", ] @@ -1856,13 +2387,75 @@ dependencies = [ "percent-encoding", ] +[[package]] +name = "quinn" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7542006acd6e057ff632307d219954c44048f818898da03113d6c0086bfddd9" +dependencies = [ + "bytes", + "futures-channel", + "futures-util", + "fxhash", + "quinn-proto", + "quinn-udp", + "rustls", + "thiserror", + "tokio", + "tracing", + "webpki", +] + +[[package]] +name = "quinn-proto" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a13a5c0a674c1ce7150c9df7bc4a1e46c2fbbe7c710f56c0dc78b1a810e779e" +dependencies = [ + "bytes", + "fxhash", + "rand 0.8.5", + "ring", + "rustls", + "rustls-native-certs", + "rustls-pemfile 0.2.1", + "slab", + "thiserror", + "tinyvec", + "tracing", + "webpki", +] + +[[package]] +name = "quinn-udp" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3149f7237331015f1a6adf065c397d1be71e032fcf110ba41da52e7926b882f" +dependencies = [ + "futures-util", + "libc", + "quinn-proto", + "socket2", + "tokio", + "tracing", +] + [[package]] name = "quote" -version = "1.0.15" +version = "0.6.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "864d3e96a899863136fc6e99f3d7cae289dafe43bf2c5ac19b70df7210c0a145" +checksum = "6ce23b6b870e8f94f81fb0a363d65d86675884b34a09043c81e5562f11c1f8e1" dependencies = [ - "proc-macro2", + "proc-macro2 0.4.30", +] + +[[package]] +name = "quote" +version = "1.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3bcdf212e9776fbcb2d23ab029360416bb1706b1aea2d1a5ba002727cbcab804" +dependencies = [ + "proc-macro2 1.0.40", ] [[package]] @@ -1925,7 +2518,7 @@ version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7" dependencies = [ - "getrandom 0.2.5", + "getrandom 0.2.7", ] [[package]] @@ -1946,11 +2539,20 @@ dependencies = [ "rand_core 0.5.1", ] +[[package]] +name = "rand_xoshiro" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f97cdb2a36ed4183de61b2f824cc45c9f1037f28afe0a322e9fff4c108b5aaa" +dependencies = [ + "rand_core 0.6.3", +] + [[package]] name = "rayon" -version = "1.5.1" +version = "1.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c06aca804d41dbc8ba42dfd964f0d01334eceb64314b9ecf7c5fad5188a06d90" +checksum = "bd99e5772ead8baa5215278c9b15bf92087709e9c1b2d1f97cdb5a183c933a7d" dependencies = [ "autocfg", "crossbeam-deque", @@ -1960,31 +2562,53 @@ dependencies = [ [[package]] name = "rayon-core" -version = "1.9.1" +version = "1.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d78120e2c850279833f1dd3582f730c4ab53ed95aeaaaa862a2a5c71b1656d8e" +checksum = "258bcdb5ac6dad48491bb2992db6b7cf74878b0384908af124823d118c99683f" dependencies = [ "crossbeam-channel", "crossbeam-deque", "crossbeam-utils", - "lazy_static", "num_cpus", ] +[[package]] +name = "rcgen" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7fa2d386df8533b02184941c76ae2e0d0c1d053f5d43339169d80f21275fc5e" +dependencies = [ + "pem", + "ring", + "time 0.3.11", + "yasna", +] + [[package]] name = "redox_syscall" -version = "0.2.11" +version = "0.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8380fe0152551244f0747b1bf41737e0f8a74f97a14ccefd1148187271634f3c" +checksum = "62f25bc4c7e55e0b0b7a1d43fb893f4fa1361d0abe38b9ce4f323c2adfe6ef42" dependencies = [ "bitflags", ] +[[package]] +name = "redox_users" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b" +dependencies = [ + "getrandom 0.2.7", + "redox_syscall", + "thiserror", +] + [[package]] name = "regex" -version = "1.5.5" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a11647b6b25ff05a515cb92c365cec08801e83423a235b51e231e1808747286" +checksum = "4c4eb3267174b8c6c2f654116623910a0fef09c4753f8dd83db29c48a0df988b" dependencies = [ "aho-corasick", "memchr", @@ -1993,9 +2617,9 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.6.25" +version = "0.6.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b" +checksum = "a3f87b73ce11b1619a3c6332f45341e0047173771e8b8b73f87bfeefb7b56244" [[package]] name = "remove_dir_all" @@ -2008,10 +2632,11 @@ dependencies = [ [[package]] name = "reqwest" -version = "0.11.9" +version = "0.11.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87f242f1488a539a79bac6dbe7c8609ae43b7914b7736210f239a37cccb32525" +checksum = "b75aa69a3f06bbcc66ede33af2af253c6f7a86b1ca0033f60c580a27074fbf92" dependencies = [ + "async-compression", "base64 0.13.0", "bytes", "encoding_rs", @@ -2030,12 +2655,14 @@ dependencies = [ "percent-encoding", "pin-project-lite", "rustls", - "rustls-pemfile", + "rustls-pemfile 1.0.0", "serde", "serde_json", "serde_urlencoded", "tokio", "tokio-rustls", + "tokio-util 0.7.2", + "tower-service", "url", "wasm-bindgen", "wasm-bindgen-futures", @@ -2059,12 +2686,30 @@ dependencies = [ "winapi", ] +[[package]] +name = "rpassword" +version = "6.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2bf099a1888612545b683d2661a1940089f6c2e5a8e38979b2159da876bfd956" +dependencies = [ + "libc", + "serde", + "serde_json", + "winapi", +] + [[package]] name = "rustc-demangle" version = "0.1.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ef03e0a2b150c7a90d01faf6254c9c48a41e95fb2a8c2ac1c6f0d2b9aefc342" +[[package]] +name = "rustc-hash" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" + [[package]] name = "rustc_version" version = "0.4.0" @@ -2076,9 +2721,9 @@ dependencies = [ [[package]] name = "rustls" -version = "0.20.4" +version = "0.20.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fbfeb8d0ddb84706bc597a5574ab8912817c52a397f819e5b614e2265206921" +checksum = "5aab8ee6c7097ed6057f43c187a62418d0c05a4bd5f18b3571db50ee0f9ce033" dependencies = [ "log", "ring", @@ -2086,6 +2731,18 @@ dependencies = [ "webpki", ] +[[package]] +name = "rustls-native-certs" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0167bac7a9f490495f3c33013e7722b53cb087ecbe082fb0c6387c96f634ea50" +dependencies = [ + "openssl-probe", + "rustls-pemfile 1.0.0", + "schannel", + "security-framework", +] + [[package]] name = "rustls-pemfile" version = "0.2.1" @@ -2095,17 +2752,26 @@ dependencies = [ "base64 0.13.0", ] +[[package]] +name = "rustls-pemfile" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7522c9de787ff061458fe9a829dc790a3f5b22dc571694fc5883f448b94d9a9" +dependencies = [ + "base64 0.13.0", +] + [[package]] name = "rustversion" -version = "1.0.6" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2cc38e8fa666e2de3c4aba7edeb5ffc5246c1c2ed0e3d17e560aeeba736b23f" +checksum = "a0a5f7c728f5d284929a1cccb5bc19884422bfe6ef4d6c409da2c41838983fcf" [[package]] name = "ryu" -version = "1.0.9" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73b4b750c782965c211b42f022f59af1fbceabdd026623714f104152f1ec149f" +checksum = "f3f6f92acf49d1b98f7a81226834412ada05458b7364277387724a237f062695" [[package]] name = "same-file" @@ -2116,6 +2782,16 @@ dependencies = [ "winapi-util", ] +[[package]] +name = "schannel" +version = "0.1.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88d6731146462ea25d9244b2ed5fd1d716d25c52e4d54aa4fb0f3c4e9854dbe2" +dependencies = [ + "lazy_static", + "windows-sys", +] + [[package]] name = "scopeguard" version = "1.1.0" @@ -2137,9 +2813,9 @@ version = "0.10.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aaaae8f38bb311444cfb7f1979af0bc9240d95795f75f9ceddf6a59b79ceffa0" dependencies = [ - "proc-macro2", - "quote", - "syn", + "proc-macro2 1.0.40", + "quote 1.0.20", + "syn 1.0.98", ] [[package]] @@ -2152,46 +2828,69 @@ dependencies = [ "untrusted", ] +[[package]] +name = "security-framework" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2dc14f172faf8a0194a3aded622712b0de276821addc574fa54fc0a1167e10dc" +dependencies = [ + "bitflags", + "core-foundation", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0160a13a177a45bfb43ce71c01580998474f556ad854dcbca936dd2841a5c556" +dependencies = [ + "core-foundation-sys", + "libc", +] + [[package]] name = "semver" -version = "1.0.6" +version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4a3381e03edd24287172047536f20cabde766e2cd3e65e6b00fb3af51c4f38d" +checksum = "a2333e6df6d6598f2b1974829f853c2b4c5f4a6e503c10af918081aa6f8564e1" [[package]] name = "serde" -version = "1.0.136" +version = "1.0.138" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce31e24b01e1e524df96f1c2fdd054405f8d7376249a5110886fb4b658484789" +checksum = "1578c6245786b9d168c5447eeacfb96856573ca56c9d68fdcf394be134882a47" dependencies = [ "serde_derive", ] [[package]] name = "serde_bytes" -version = "0.11.5" +version = "0.11.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16ae07dd2f88a366f15bd0632ba725227018c69a1c8550a927324f8eb8368bb9" +checksum = "212e73464ebcde48d723aa02eb270ba62eff38a9b732df31f33f1b4e145f3a54" dependencies = [ "serde", ] [[package]] name = "serde_derive" -version = "1.0.136" +version = "1.0.138" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08597e7152fcd306f41838ed3e37be9eaeed2b61c42e2117266a554fab4662f9" +checksum = "023e9b1467aef8a10fb88f25611870ada9800ef7e22afce356bb0d2387b6f27c" dependencies = [ - "proc-macro2", - "quote", - "syn", + "proc-macro2 1.0.40", + "quote 1.0.20", + "syn 1.0.98", ] [[package]] name = "serde_json" -version = "1.0.79" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e8d9fa5c3b304765ce1fd9c4c8a3de2c8db365a5b91be52f186efc675681d95" +checksum = "82c2c1fdcd807d1098552c5b9a36e425e42e9fbd7c6a37a8425f390f781f7fa7" dependencies = [ "itoa", "ryu", @@ -2210,6 +2909,29 @@ dependencies = [ "serde", ] +[[package]] +name = "serde_yaml" +version = "0.8.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "707d15895415db6628332b737c838b88c598522e4dc70647e59b72312924aebc" +dependencies = [ + "indexmap", + "ryu", + "serde", + "yaml-rust", +] + +[[package]] +name = "sha-1" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "028f48d513f9678cda28f6e4064755b3fbb2af6acd672f2c209b62323f7aea0f" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest 0.10.3", +] + [[package]] name = "sha2" version = "0.9.9" @@ -2223,6 +2945,17 @@ dependencies = [ "opaque-debug", ] +[[package]] +name = "sha2" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55deaec60f81eefe3cce0dc50bda92d6d8e88f2a27df7c5033b42afeb1ed2676" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest 0.10.3", +] + [[package]] name = "sha3" version = "0.9.1" @@ -2235,6 +2968,50 @@ dependencies = [ "opaque-debug", ] +[[package]] +name = "sha3" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "881bf8156c87b6301fc5ca6b27f11eeb2761224c7081e69b409d5a1951a70c86" +dependencies = [ + "digest 0.10.3", + "keccak", +] + +[[package]] +name = "shank" +version = "0.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62c7f8aac4c67081e718ff2a7754a6264774a0eaa6ed64a6e94b1ec1c17af200" +dependencies = [ + "shank_macro", +] + +[[package]] +name = "shank_macro" +version = "0.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9a7538be7f2a6530a37d4e03de34569a1f27a2287b3efe06732d7e5648a9105" +dependencies = [ + "proc-macro2 1.0.40", + "quote 1.0.20", + "shank_macro_impl", + "syn 1.0.98", +] + +[[package]] +name = "shank_macro_impl" +version = "0.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4679c7294e45b98031bade3d50f5b01a562962176d76058af69e21e195919190" +dependencies = [ + "anyhow", + "proc-macro2 1.0.40", + "quote 1.0.20", + "serde", + "syn 1.0.98", +] + [[package]] name = "sharded-slab" version = "0.1.4" @@ -2259,17 +3036,27 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f054c6c1a6e95179d6f23ed974060dcefb2d9388bb7256900badad682c499de4" +[[package]] +name = "sized-chunks" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16d69225bde7a69b235da73377861095455d298f2b970996eec25ddbb42b3d1e" +dependencies = [ + "bitmaps", + "typenum", +] + [[package]] name = "slab" -version = "0.4.5" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9def91fd1e018fe007022791f865d0ccc9b3a0d5001e01aabb8b40e46000afb5" +checksum = "eb703cfe953bccee95685111adeedb76fabe4e97549a58d16f03ea7b9367bb32" [[package]] name = "smallvec" -version = "1.8.0" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2dd574626839106c320a323308629dcb1acfc96e32a8cba364ddc61ac23ee83" +checksum = "2fd0db749597d91ff862fd1d55ea87f7855a744a8425a64695b6fca237d1dad1" [[package]] name = "socket2" @@ -2281,11 +3068,35 @@ dependencies = [ "winapi", ] +[[package]] +name = "solana-account-decoder" +version = "1.10.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e4d449c99aa412aa0ad73df67d5cb2e61f91a2127231e57e81b79cb5e6e6718" +dependencies = [ + "Inflector", + "base64 0.13.0", + "bincode", + "bs58 0.4.0", + "bv", + "lazy_static", + "serde", + "serde_derive", + "serde_json", + "solana-config-program", + "solana-sdk", + "solana-vote-program", + "spl-token", + "spl-token-2022", + "thiserror", + "zstd", +] + [[package]] name = "solana-address-lookup-table-program" -version = "1.9.17" +version = "1.10.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1c55b7304ab892d207c68f6049b292d23c2b4533e09c65e0f909bf9b8475faa" +checksum = "0f7d39516d390dbf22a7d6aa42bdac07fecc9c0b9c1501cd845c7230fa98aa2e" dependencies = [ "bincode", "bytemuck", @@ -2296,6 +3107,7 @@ dependencies = [ "serde", "solana-frozen-abi", "solana-frozen-abi-macro", + "solana-program", "solana-program-runtime", "solana-sdk", "thiserror", @@ -2303,9 +3115,9 @@ dependencies = [ [[package]] name = "solana-banks-client" -version = "1.9.17" +version = "1.10.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f16e829fa2a389d63f3d19b73aa41919c9be20d3997ac32eeed978d5de3c0d2b" +checksum = "cf7d9526af69a8ce4eb101f5f625fbe398383f22646cfa824f380c09170ad2fe" dependencies = [ "borsh", "futures", @@ -2320,9 +3132,9 @@ dependencies = [ [[package]] name = "solana-banks-interface" -version = "1.9.17" +version = "1.10.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96b7ea0bf3313b8773a23e81a235c399065ac80c1ca409a548cd6846f1de00ab" +checksum = "8879af69003030647d5983de21a7a4fa47420965eb2bf52153de4d07ed1fcff0" dependencies = [ "serde", "solana-sdk", @@ -2331,13 +3143,15 @@ dependencies = [ [[package]] name = "solana-banks-server" -version = "1.9.17" +version = "1.10.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22098f89ab47ec97c67a69609724009db8321c17ace35178b2356e92db9738b8" +checksum = "b2648ea0bc1bf3fc0edc7e9db8bbfcb417ae36e6ef0d0c0ffbcf13b751b5307f" dependencies = [ "bincode", + "crossbeam-channel", "futures", "solana-banks-interface", + "solana-client", "solana-runtime", "solana-sdk", "solana-send-transaction-service", @@ -2347,30 +3161,11 @@ dependencies = [ "tokio-stream", ] -[[package]] -name = "solana-bloom" -version = "1.9.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07f309d576f01df9f91125dcf961655e61545ab3707cbddd38aea8cdc9573058" -dependencies = [ - "bv", - "fnv", - "log", - "rand 0.7.3", - "rayon", - "rustc_version", - "serde", - "serde_derive", - "solana-frozen-abi", - "solana-frozen-abi-macro", - "solana-sdk", -] - [[package]] name = "solana-bpf-loader-program" -version = "1.9.17" +version = "1.10.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9317274a9b3275aa5c900f06fcf5cdebd707e27530e1253dca1e5ebe32a28f6" +checksum = "508a3867ddd1218a9091505c2378ee99b76f20233d930d7e9eca60867674a7f0" dependencies = [ "bincode", "byteorder", @@ -2380,32 +3175,120 @@ dependencies = [ "solana-metrics", "solana-program-runtime", "solana-sdk", + "solana-zk-token-sdk 1.10.29", "solana_rbpf", "thiserror", ] [[package]] name = "solana-bucket-map" -version = "1.9.17" +version = "1.10.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06adcde94393e385cb80ef046b1bc58c1f4edcd6ddf2466cf6a6ab09523aa451" +checksum = "eef123b23f8c59d3bef0b8d1eb9dc936b98a3a846b0d3b516e6f5a202c6b42a5" dependencies = [ - "fs_extra", "log", "memmap2", + "modular-bitfield", "rand 0.7.3", - "rayon", - "solana-logger", "solana-measure", "solana-sdk", "tempfile", ] +[[package]] +name = "solana-clap-utils" +version = "1.10.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6645eb1fb086062c3d1c0b63865a04ab91106e49d3b55e58c88282335324311c" +dependencies = [ + "chrono", + "clap", + "rpassword", + "solana-perf", + "solana-remote-wallet", + "solana-sdk", + "thiserror", + "tiny-bip39", + "uriparse", + "url", +] + +[[package]] +name = "solana-cli-config" +version = "1.10.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "055a08171cf7c30fde53d1b5c44623c1453ebb54145bf7a193fedc24503035bb" +dependencies = [ + "dirs-next", + "lazy_static", + "serde", + "serde_derive", + "serde_yaml", + "solana-clap-utils", + "solana-sdk", + "url", +] + +[[package]] +name = "solana-client" +version = "1.10.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad2a11b9182a7e95c1fcd686a2adbff4c19ee7da2fdf5e8f4807ce00814401f9" +dependencies = [ + "async-mutex", + "async-trait", + "base64 0.13.0", + "bincode", + "bs58 0.4.0", + "bytes", + "clap", + "crossbeam-channel", + "enum_dispatch", + "futures", + "futures-util", + "indexmap", + "indicatif", + "itertools", + "jsonrpc-core", + "lazy_static", + "log", + "lru", + "quinn", + "quinn-proto", + "rand 0.7.3", + "rand_chacha 0.2.2", + "rayon", + "reqwest", + "rustls", + "semver", + "serde", + "serde_derive", + "serde_json", + "solana-account-decoder", + "solana-clap-utils", + "solana-faucet", + "solana-measure", + "solana-metrics", + "solana-net-utils", + "solana-sdk", + "solana-streamer", + "solana-transaction-status", + "solana-version", + "solana-vote-program", + "spl-token-2022", + "thiserror", + "tokio", + "tokio-stream", + "tokio-tungstenite", + "tungstenite", + "url", +] + [[package]] name = "solana-compute-budget-program" -version = "1.9.17" +version = "1.10.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0c927ec4babd1e0f7521e4c28cee3256cd70337bfa74612df398ebfd4ec7604" +checksum = "355efb42d58bbc3b1af7f5dd244c9c370c318e35876cea31a4354521d38383d9" dependencies = [ "solana-program-runtime", "solana-sdk", @@ -2413,9 +3296,9 @@ dependencies = [ [[package]] name = "solana-config-program" -version = "1.9.17" +version = "1.10.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ae8513de0d713037466a27887c8e5b608ef3b15c2138be8628334fc6010be4d" +checksum = "1e456899b60ccc04cba02a1b2a0bb00cc92a1e60b04ed7d16cbfb2cb1169533c" dependencies = [ "bincode", "chrono", @@ -2425,43 +3308,69 @@ dependencies = [ "solana-sdk", ] +[[package]] +name = "solana-faucet" +version = "1.10.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50a72947370668638d3193227d020e8204b291f72dfd72caf276eecb2f7a9591" +dependencies = [ + "bincode", + "byteorder", + "clap", + "crossbeam-channel", + "log", + "serde", + "serde_derive", + "solana-clap-utils", + "solana-cli-config", + "solana-logger", + "solana-metrics", + "solana-sdk", + "solana-version", + "spl-memo", + "thiserror", + "tokio", +] + [[package]] name = "solana-frozen-abi" -version = "1.9.17" +version = "1.10.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a42d57a501d4e6b7f9867ba1d43e30fd2c01293018aee1bbdbe361fcb38ca8f" +checksum = "4b4575674b138156108ea7ee855633b28b72d8cd3890245e0847bfdade3797dc" dependencies = [ "bs58 0.4.0", "bv", "generic-array", + "im", + "lazy_static", "log", "memmap2", "rustc_version", "serde", + "serde_bytes", "serde_derive", - "sha2", + "sha2 0.10.2", "solana-frozen-abi-macro", - "solana-logger", "thiserror", ] [[package]] name = "solana-frozen-abi-macro" -version = "1.9.17" +version = "1.10.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8e74b463a20856db7c34e623fb9e617f4487b6a9646db70e99fff2244a8d0dd" +checksum = "5ec433ed9f8e7dd62edb6ebe13be01a5e0ec04734305836906709339428c7eaf" dependencies = [ - "proc-macro2", - "quote", + "proc-macro2 1.0.40", + "quote 1.0.20", "rustc_version", - "syn", + "syn 1.0.98", ] [[package]] name = "solana-logger" -version = "1.9.17" +version = "1.10.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0bbd0c9b975384bb5e775532cadf101e053858c52f58b970b2e2ad4f0ec3ad5" +checksum = "248781d011bdad67c36e4dcd5f83d095b8fd865dbccb5c31a0c01b2a8710269f" dependencies = [ "env_logger", "lazy_static", @@ -2470,9 +3379,9 @@ dependencies = [ [[package]] name = "solana-measure" -version = "1.9.17" +version = "1.10.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4f8d52d73bbfa5cf9bb800c08cc8e4261f8cf4642940dc153db7826fdb1282c" +checksum = "cc22eb95a690580f3a4af2ec170191365d0f8776e9c75fe731be9e5c76b7047e" dependencies = [ "log", "solana-sdk", @@ -2480,11 +3389,11 @@ dependencies = [ [[package]] name = "solana-metrics" -version = "1.9.17" +version = "1.10.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f1c7084a52d604634c850762b01b85e46108751c310227f840a2e1c6e3826a6" +checksum = "e95f40388091b7abb5cfe7f25910443cf1ce4e60603a29c7e8539036af6b3f9c" dependencies = [ - "env_logger", + "crossbeam-channel", "gethostname", "lazy_static", "log", @@ -2492,11 +3401,60 @@ dependencies = [ "solana-sdk", ] +[[package]] +name = "solana-net-utils" +version = "1.10.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d94eaf325096b4b8b14b206b510759e65426f9b6b602f62c3cacc41bceaa823" +dependencies = [ + "bincode", + "clap", + "crossbeam-channel", + "log", + "nix", + "rand 0.7.3", + "serde", + "serde_derive", + "socket2", + "solana-logger", + "solana-sdk", + "solana-version", + "tokio", + "url", +] + +[[package]] +name = "solana-perf" +version = "1.10.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "562e0219210de30e3b08e0d93ea8b77c875683aac1ecddc31c7bc17608bfff42" +dependencies = [ + "ahash", + "bincode", + "bv", + "caps", + "curve25519-dalek", + "dlopen", + "dlopen_derive", + "fnv", + "lazy_static", + "libc", + "log", + "nix", + "rand 0.7.3", + "rayon", + "serde", + "solana-metrics", + "solana-rayon-threadlimit", + "solana-sdk", + "solana-vote-program", +] + [[package]] name = "solana-program" -version = "1.9.17" +version = "1.10.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b955659c41053e2e7d58d4716c15519dd67a418ac5a57c09499691322170911" +checksum = "d326eeba5a7ddce915ae3aec9eed8ff017f68baf6149f5b075b25e6834c16eae" dependencies = [ "base64 0.13.0", "bincode", @@ -2518,18 +3476,17 @@ dependencies = [ "log", "num-derive", "num-traits", - "parking_lot 0.11.2", + "parking_lot 0.12.1", "rand 0.7.3", "rustc_version", "rustversion", "serde", "serde_bytes", "serde_derive", - "sha2", - "sha3", + "sha2 0.10.2", + "sha3 0.10.1", "solana-frozen-abi", "solana-frozen-abi-macro", - "solana-logger", "solana-sdk-macro", "thiserror", "wasm-bindgen", @@ -2537,12 +3494,13 @@ dependencies = [ [[package]] name = "solana-program-runtime" -version = "1.9.17" +version = "1.10.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4be23f8b37543a44b8fc5172b3f76d928c966e49105a95312ffc7f4c35741963" +checksum = "1886fa2f172b4812e235e72751bbb83bd661b686cadd3321c1d04c156d8fe392" dependencies = [ "base64 0.13.0", "bincode", + "enum-iterator", "itertools", "libc", "libloading", @@ -2553,7 +3511,6 @@ dependencies = [ "serde", "solana-frozen-abi", "solana-frozen-abi-macro", - "solana-logger", "solana-measure", "solana-sdk", "thiserror", @@ -2561,12 +3518,12 @@ dependencies = [ [[package]] name = "solana-program-test" -version = "1.9.17" +version = "1.10.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd0625240876358ec4a29a2b8450917e32e44ef375b2eaa383302d40c2289ea1" +checksum = "4de0c1b7663390824dccc2f996bb6075413d91c9ab8709ceb16691b70c7f82d2" dependencies = [ "async-trait", - "base64 0.12.3", + "base64 0.13.0", "bincode", "chrono-humanize", "log", @@ -2585,19 +3542,38 @@ dependencies = [ [[package]] name = "solana-rayon-threadlimit" -version = "1.9.17" +version = "1.10.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6b577874682b894ba5c2dfd5fd7e3bbcb4ff09a74bd347346bf79a7d801078a" +checksum = "be2f2a1b6b18d9311064cbf92fea851fc0c9475ec7ff43b13993cb6afc38e1db" dependencies = [ "lazy_static", "num_cpus", ] +[[package]] +name = "solana-remote-wallet" +version = "1.10.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9192ad1466c72777d14b779b2361c89576384964eaa9897fde5d817fca5ca07f" +dependencies = [ + "console", + "dialoguer", + "log", + "num-derive", + "num-traits", + "parking_lot 0.12.1", + "qstring", + "semver", + "solana-sdk", + "thiserror", + "uriparse", +] + [[package]] name = "solana-runtime" -version = "1.9.17" +version = "1.10.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6154bbb33773d9a087450a5caa0ab613aa6dc7777074532e388d28ff75a655b" +checksum = "c117e3d4bf099e9f2e38862a9dc29f5e8f7192fe8d4cc7c314ccc1e1514ed7b3" dependencies = [ "arrayref", "bincode", @@ -2611,10 +3587,12 @@ dependencies = [ "dir-diff", "flate2", "fnv", + "im", "index_list", "itertools", "lazy_static", "log", + "lz4", "memmap2", "num-derive", "num-traits", @@ -2627,13 +3605,11 @@ dependencies = [ "serde", "serde_derive", "solana-address-lookup-table-program", - "solana-bloom", "solana-bucket-map", "solana-compute-budget-program", "solana-config-program", "solana-frozen-abi", "solana-frozen-abi-macro", - "solana-logger", "solana-measure", "solana-metrics", "solana-program-runtime", @@ -2641,6 +3617,10 @@ dependencies = [ "solana-sdk", "solana-stake-program", "solana-vote-program", + "solana-zk-token-proof-program", + "solana-zk-token-sdk 1.10.29", + "strum", + "strum_macros", "symlink", "tar", "tempfile", @@ -2650,9 +3630,9 @@ dependencies = [ [[package]] name = "solana-sdk" -version = "1.9.17" +version = "1.10.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34ea9fcedb32801da35d83ece7bdd0a42018e0263ef40adb2215c5f5b6e04119" +checksum = "815e81b6aac0cbd511e4ac9e425dc19dfd5705fcf7eaaa619f99a56feac81c71" dependencies = [ "assert_matches", "base64 0.13.0", @@ -2664,11 +3644,11 @@ dependencies = [ "byteorder", "chrono", "derivation-path", - "digest 0.9.0", + "digest 0.10.3", "ed25519-dalek", "ed25519-dalek-bip32", "generic-array", - "hmac 0.11.0", + "hmac 0.12.1", "itertools", "js-sys", "lazy_static", @@ -2677,7 +3657,7 @@ dependencies = [ "memmap2", "num-derive", "num-traits", - "pbkdf2", + "pbkdf2 0.10.1", "qstring", "rand 0.7.3", "rand_chacha 0.2.2", @@ -2687,8 +3667,8 @@ dependencies = [ "serde_bytes", "serde_derive", "serde_json", - "sha2", - "sha3", + "sha2 0.10.2", + "sha3 0.10.1", "solana-frozen-abi", "solana-frozen-abi-macro", "solana-logger", @@ -2701,35 +3681,132 @@ dependencies = [ [[package]] name = "solana-sdk-macro" -version = "1.9.17" +version = "1.10.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28b9e0d05a4a15d4d5f1c146437fc97319beceff21064f36d8f5280d03a82cd9" +checksum = "d8d94af92e7bca7d55a2e21b55a882545bd9709e4056de4a97b1e1fdc8687ccd" dependencies = [ "bs58 0.4.0", - "proc-macro2", - "quote", + "proc-macro2 1.0.40", + "quote 1.0.20", "rustversion", - "syn", + "syn 1.0.98", ] [[package]] name = "solana-send-transaction-service" -version = "1.9.17" +version = "1.10.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31af72e5089666cb96553452d24ac2c8345ad9b3b6b0d5603e097a8c3ea27b18" +checksum = "96778753a6fc50e7bf5857bc0d57cc469f337da1318966e8d936f07dd573281b" dependencies = [ + "crossbeam-channel", "log", - "solana-logger", + "solana-client", + "solana-measure", "solana-metrics", "solana-runtime", "solana-sdk", ] [[package]] -name = "solana-stake-program" -version = "1.9.17" +name = "solana-stake-program" +version = "1.10.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aeebdde9e1d1fcddbe302ee36e48505d766b979df27c05181553a7022adc412a" +dependencies = [ + "bincode", + "log", + "num-derive", + "num-traits", + "rustc_version", + "serde", + "serde_derive", + "solana-config-program", + "solana-frozen-abi", + "solana-frozen-abi-macro", + "solana-metrics", + "solana-program-runtime", + "solana-sdk", + "solana-vote-program", + "thiserror", +] + +[[package]] +name = "solana-streamer" +version = "1.10.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3fc65fde637d4db546f16c15e3efa0d9fb06d0b8ddd2861371e5352b2249306" +dependencies = [ + "crossbeam-channel", + "futures-util", + "histogram", + "itertools", + "libc", + "log", + "nix", + "pem", + "percentage", + "pkcs8", + "quinn", + "rand 0.7.3", + "rcgen", + "rustls", + "solana-metrics", + "solana-perf", + "solana-sdk", + "thiserror", + "tokio", +] + +[[package]] +name = "solana-transaction-status" +version = "1.10.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3157353232170f2b0b557ed5738a5b0f60324d55c2220630c17f44926c66b3a" +dependencies = [ + "Inflector", + "base64 0.13.0", + "bincode", + "borsh", + "bs58 0.4.0", + "lazy_static", + "log", + "serde", + "serde_derive", + "serde_json", + "solana-account-decoder", + "solana-measure", + "solana-metrics", + "solana-runtime", + "solana-sdk", + "solana-vote-program", + "spl-associated-token-account", + "spl-memo", + "spl-token", + "spl-token-2022", + "thiserror", +] + +[[package]] +name = "solana-version" +version = "1.10.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d3340187183a6c4b0c4c0897e62a8e424bea263b72368adf4a0fc49b02dc199" +dependencies = [ + "log", + "rustc_version", + "semver", + "serde", + "serde_derive", + "solana-frozen-abi", + "solana-frozen-abi-macro", + "solana-sdk", +] + +[[package]] +name = "solana-vote-program" +version = "1.10.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9566af3477bafa9d7ec2b927579d896026724f646ebd393aa7ecd0646c473166" +checksum = "7bc5ae03749431a80f754d5950249296b27915912fbc76f29be489d50a235e62" dependencies = [ "bincode", "log", @@ -2738,36 +3815,87 @@ dependencies = [ "rustc_version", "serde", "serde_derive", - "solana-config-program", "solana-frozen-abi", "solana-frozen-abi-macro", "solana-metrics", "solana-program-runtime", "solana-sdk", - "solana-vote-program", "thiserror", ] [[package]] -name = "solana-vote-program" -version = "1.9.17" +name = "solana-zk-token-proof-program" +version = "1.10.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10936892fbed52cac2885c2294483296a7010452f178159f49bee89b94f9cc73" +dependencies = [ + "bytemuck", + "getrandom 0.1.16", + "num-derive", + "num-traits", + "solana-program-runtime", + "solana-sdk", + "solana-zk-token-sdk 1.10.29", +] + +[[package]] +name = "solana-zk-token-sdk" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "514eefafc9d1d6fb9bf88ef36fcf649eb2debafbbb57dc64fea03b44cbfed7d1" +checksum = "74b149253f9ed1afb68b3161b53b62b637d0dd7a3b328dffdc8bb5878d48358e" dependencies = [ + "aes-gcm-siv", + "arrayref", + "base64 0.13.0", "bincode", - "log", + "bytemuck", + "byteorder", + "cipher 0.3.0", + "curve25519-dalek", + "getrandom 0.1.16", + "lazy_static", + "merlin", "num-derive", "num-traits", - "rustc_version", + "rand 0.7.3", "serde", - "serde_derive", - "solana-frozen-abi", - "solana-frozen-abi-macro", - "solana-logger", - "solana-metrics", - "solana-program-runtime", + "serde_json", + "sha3 0.9.1", + "solana-program", + "solana-sdk", + "subtle", + "thiserror", + "zeroize", +] + +[[package]] +name = "solana-zk-token-sdk" +version = "1.10.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a096f1eadbab6d9406763ad672a763fcaad81ab4c7185605976a39710d4b34e" +dependencies = [ + "aes-gcm-siv", + "arrayref", + "base64 0.13.0", + "bincode", + "bytemuck", + "byteorder", + "cipher 0.4.3", + "curve25519-dalek", + "getrandom 0.1.16", + "lazy_static", + "merlin", + "num-derive", + "num-traits", + "rand 0.7.3", + "serde", + "serde_json", + "sha3 0.9.1", + "solana-program", "solana-sdk", + "subtle", "thiserror", + "zeroize", ] [[package]] @@ -2786,7 +3914,7 @@ dependencies = [ "rustc-demangle", "scroll", "thiserror", - "time", + "time 0.1.44", ] [[package]] @@ -2795,21 +3923,32 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" +[[package]] +name = "spki" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44d01ac02a6ccf3e07db148d2be087da624fea0221a16152ed01f0496a6b0a27" +dependencies = [ + "base64ct", + "der", +] + [[package]] name = "spl-associated-token-account" -version = "1.0.3" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "393e2240d521c3dd770806bff25c2c00d761ac962be106e14e22dd912007f428" +checksum = "2b013067447a1396303ddfc294f36e3d260a32f8a16c501c295bcdc7de39b490" dependencies = [ + "borsh", "solana-program", "spl-token", ] [[package]] name = "spl-governance" -version = "2.2.2" +version = "2.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9fd6f796ab18524eee7eb410cee28ecacbf5d7bc7221b0d1b126c0f766bb3aa" +checksum = "6ab3e781972cd03348c14217739ddf946ab5324c32a85392237cf3ab9492df7a" dependencies = [ "arrayref", "bincode", @@ -2827,9 +3966,9 @@ dependencies = [ [[package]] name = "spl-governance-addin-api" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9451f56e707e635a40a285965e1927733c956a0049a08f4b6c80215445aba7f1" +checksum = "5df620226aed88689457ef18a80dfed709721365bee0bf8c843dcef30279d5fc" dependencies = [ "borsh", "solana-program", @@ -2854,6 +3993,15 @@ dependencies = [ "thiserror", ] +[[package]] +name = "spl-memo" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd0dc6f70db6bacea7ff25870b016a65ba1d1b6013536f08e4fd79a8f9005325" +dependencies = [ + "solana-program", +] + [[package]] name = "spl-token" version = "3.3.0" @@ -2868,6 +4016,24 @@ dependencies = [ "thiserror", ] +[[package]] +name = "spl-token-2022" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fce48c69350134e8678de5c0956a531b7de586b28eebdddc03211ceec0660983" +dependencies = [ + "arrayref", + "bytemuck", + "num-derive", + "num-traits", + "num_enum", + "solana-program", + "solana-zk-token-sdk 0.8.1", + "spl-memo", + "spl-token", + "thiserror", +] + [[package]] name = "stable_deref_trait" version = "1.2.0" @@ -2880,6 +4046,34 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" +[[package]] +name = "strsim" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" + +[[package]] +name = "strum" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "063e6045c0e62079840579a7e47a355ae92f60eb74daaf156fb1e84ba164e63f" +dependencies = [ + "strum_macros", +] + +[[package]] +name = "strum_macros" +version = "0.24.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4faebde00e8ff94316c01800f9054fd2ba77d30d9e922541913051d1d978918b" +dependencies = [ + "heck 0.4.0", + "proc-macro2 1.0.40", + "quote 1.0.20", + "rustversion", + "syn 1.0.98", +] + [[package]] name = "subtle" version = "2.4.1" @@ -2894,13 +4088,24 @@ checksum = "a7973cce6668464ea31f176d85b13c7ab3bba2cb3b77a2ed26abd7801688010a" [[package]] name = "syn" -version = "1.0.86" +version = "0.15.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ca4b3b69a77cbe1ffc9e198781b7acb0c7365a883670e8f1c1bc66fba79a5c5" +dependencies = [ + "proc-macro2 0.4.30", + "quote 0.6.13", + "unicode-xid 0.1.0", +] + +[[package]] +name = "syn" +version = "1.0.98" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a65b3f4ffa0092e9887669db0eae07941f023991ab58ea44da8fe8e2d511c6b" +checksum = "c50aef8a904de4c23c788f104b7dddc7d6f79c647c7c8ce4cc8f73eb0ca773dd" dependencies = [ - "proc-macro2", - "quote", - "unicode-xid", + "proc-macro2 1.0.40", + "quote 1.0.20", + "unicode-ident", ] [[package]] @@ -2909,10 +4114,10 @@ version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" dependencies = [ - "proc-macro2", - "quote", - "syn", - "unicode-xid", + "proc-macro2 1.0.40", + "quote 1.0.20", + "syn 1.0.98", + "unicode-xid 0.2.3", ] [[package]] @@ -2945,7 +4150,7 @@ dependencies = [ "thiserror", "tokio", "tokio-serde", - "tokio-util", + "tokio-util 0.6.10", "tracing", "tracing-opentelemetry", ] @@ -2956,9 +4161,9 @@ version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ee42b4e559f17bce0385ebf511a7beb67d5cc33c12c96b7f4e9789919d9c10f" dependencies = [ - "proc-macro2", - "quote", - "syn", + "proc-macro2 1.0.40", + "quote 1.0.20", + "syn 1.0.98", ] [[package]] @@ -2984,24 +4189,43 @@ dependencies = [ "winapi-util", ] +[[package]] +name = "terminal_size" +version = "0.1.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "633c1a546cee861a1a6d0dc69ebeca693bf4296661ba7852b9d21d159e0506df" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "textwrap" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060" +dependencies = [ + "unicode-width", +] + [[package]] name = "thiserror" -version = "1.0.30" +version = "1.0.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "854babe52e4df1653706b98fcfc05843010039b406875930a70e4d9644e5c417" +checksum = "bd829fe32373d27f76265620b5309d0340cb8550f523c1dda251d6298069069a" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.30" +version = "1.0.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa32fd3f627f367fe16f893e2597ae3c05020f8bba2666a4e6ea73d377e5714b" +checksum = "0396bc89e626244658bef819e22d0cc459e795a5ebe878e6ec336d1674a8d79a" dependencies = [ - "proc-macro2", - "quote", - "syn", + "proc-macro2 1.0.40", + "quote 1.0.20", + "syn 1.0.98", ] [[package]] @@ -3015,19 +4239,49 @@ dependencies = [ [[package]] name = "time" -version = "0.1.43" +version = "0.1.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca8a50ef2360fbd1eeb0ecd46795a87a19024eb4b53c5dc916ca1fd95fe62438" +checksum = "6db9e6914ab8b1ae1c260a4ae7a49b6c5611b40328a735b21862567685e73255" dependencies = [ "libc", + "wasi 0.10.0+wasi-snapshot-preview1", "winapi", ] +[[package]] +name = "time" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72c91f41dcb2f096c05f0873d667dceec1087ce5bcf984ec8ffb19acddbb3217" +dependencies = [ + "libc", + "num_threads", +] + +[[package]] +name = "tiny-bip39" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffc59cb9dfc85bb312c3a78fd6aa8a8582e310b0fa885d5bb877f6dcc601839d" +dependencies = [ + "anyhow", + "hmac 0.8.1", + "once_cell", + "pbkdf2 0.4.0", + "rand 0.7.3", + "rustc-hash", + "sha2 0.9.9", + "thiserror", + "unicode-normalization", + "wasm-bindgen", + "zeroize", +] + [[package]] name = "tinyvec" -version = "1.5.1" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c1c1d5a42b6245520c249549ec267180beaffcc0615401ac8e31853d4b6d8d2" +checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" dependencies = [ "tinyvec_macros", ] @@ -3040,40 +4294,40 @@ checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" [[package]] name = "tokio" -version = "1.17.0" +version = "1.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2af73ac49756f3f7c01172e34a23e5d0216f6c32333757c2c61feb2bbff5a5ee" +checksum = "b9d0183f6f6001549ab68f8c7585093bb732beefbcf6d23a10b9b95c73a1dd49" dependencies = [ + "autocfg", "bytes", "libc", "memchr", "mio", "num_cpus", "once_cell", - "parking_lot 0.12.0", + "parking_lot 0.11.2", "pin-project-lite", "signal-hook-registry", - "socket2", "tokio-macros", "winapi", ] [[package]] name = "tokio-macros" -version = "1.7.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b557f72f448c511a979e2564e55d74e6c4432fc96ff4f6241bc6bded342643b7" +checksum = "9724f9a975fb987ef7a3cd9be0350edcbe130698af5b8f7a631e23d42d052484" dependencies = [ - "proc-macro2", - "quote", - "syn", + "proc-macro2 1.0.40", + "quote 1.0.20", + "syn 1.0.98", ] [[package]] name = "tokio-rustls" -version = "0.23.2" +version = "0.23.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a27d5f2b839802bd8267fa19b0530f5a08b9c08cd417976be2a65d130fe1c11b" +checksum = "c43ee83903113e03984cb9e5cebe6c04a5116269e900e3ddba8f068a62adda59" dependencies = [ "rustls", "tokio", @@ -3098,20 +4352,36 @@ dependencies = [ [[package]] name = "tokio-stream" -version = "0.1.8" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50145484efff8818b5ccd256697f36863f587da82cf8b409c53adf1e840798e3" +checksum = "df54d54117d6fdc4e4fea40fe1e4e566b3505700e148a6827e59b34b0d2600d9" dependencies = [ "futures-core", "pin-project-lite", "tokio", ] +[[package]] +name = "tokio-tungstenite" +version = "0.17.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06cda1232a49558c46f8a504d5b93101d42c0bf7f911f12a105ba48168f821ae" +dependencies = [ + "futures-util", + "log", + "rustls", + "tokio", + "tokio-rustls", + "tungstenite", + "webpki", + "webpki-roots", +] + [[package]] name = "tokio-util" -version = "0.6.9" +version = "0.6.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e99e1983e5d376cd8eb4b66604d2e99e79f5bd988c3055891dcd8c9e2604cc0" +checksum = "36943ee01a6d67977dd3f84a5a1d2efeb4ada3a1ae771cadfaa535d9d9fc6507" dependencies = [ "bytes", "futures-core", @@ -3122,26 +4392,40 @@ dependencies = [ "tokio", ] +[[package]] +name = "tokio-util" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f988a1a1adc2fb21f9c12aa96441da33a1728193ae0b95d2be22dbd17fcb4e5c" +dependencies = [ + "bytes", + "futures-core", + "futures-sink", + "pin-project-lite", + "tokio", + "tracing", +] + [[package]] name = "toml" -version = "0.5.8" +version = "0.5.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a31142970826733df8241ef35dc040ef98c679ab14d7c3e54d827099b3acecaa" +checksum = "8d82e1a7758622a465f8cee077614c73484dac5b836c02ff6a40d5d1010324d7" dependencies = [ "serde", ] [[package]] name = "tower-service" -version = "0.3.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "360dfd1d6d30e05fda32ace2c8c70e9c0a9da713275777f5a4dbb8a1893930c6" +checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" [[package]] name = "tracing" -version = "0.1.32" +version = "0.1.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a1bdf54a7c28a2bbf701e1d2233f6c77f473486b94bee4f9678da5a148dca7f" +checksum = "a400e31aa60b9d44a52a8ee0343b5b18566b03a8321e0d321f695cf56e940160" dependencies = [ "cfg-if", "log", @@ -3152,22 +4436,22 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.20" +version = "0.1.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e65ce065b4b5c53e73bb28912318cb8c9e9ad3921f1d669eb0e68b4c8143a2b" +checksum = "11c75893af559bc8e10716548bdef5cb2b983f8e637db9d0e15126b61b484ee2" dependencies = [ - "proc-macro2", - "quote", - "syn", + "proc-macro2 1.0.40", + "quote 1.0.20", + "syn 1.0.98", ] [[package]] name = "tracing-core" -version = "0.1.23" +version = "0.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa31669fa42c09c34d94d8165dd2012e8ff3c66aca50f3bb226b68f216f2706c" +checksum = "7b7358be39f2f274f322d2aaed611acc57f382e8eb1e5b48cb9ae30933495ce7" dependencies = [ - "lazy_static", + "once_cell", "valuable", ] @@ -3200,6 +4484,28 @@ version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" +[[package]] +name = "tungstenite" +version = "0.17.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d96a2dea40e7570482f28eb57afbe42d97551905da6a9400acc5c328d24004f5" +dependencies = [ + "base64 0.13.0", + "byteorder", + "bytes", + "http", + "httparse", + "log", + "rand 0.8.5", + "rustls", + "sha-1", + "thiserror", + "url", + "utf-8", + "webpki", + "webpki-roots", +] + [[package]] name = "typenum" version = "1.15.0" @@ -3208,15 +4514,21 @@ checksum = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987" [[package]] name = "unicode-bidi" -version = "0.3.7" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992" + +[[package]] +name = "unicode-ident" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a01404663e3db436ed2746d9fefef640d868edae3cceb81c3b8d5732fda678f" +checksum = "5bd2fe26506023ed7b5e1e315add59d6f584c621d037f9368fea9cfb988f368c" [[package]] name = "unicode-normalization" -version = "0.1.19" +version = "0.1.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d54590932941a9e9266f0832deed84ebe1bf2e4c9e4a3554d393d18f5e854bf9" +checksum = "854cbdc4f7bc6ae19c820d44abdc3277ac3e1b2b93db20a636825d9322fb60e6" dependencies = [ "tinyvec", ] @@ -3227,11 +4539,33 @@ version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7e8820f5d777f6224dc4be3632222971ac30164d4a258d595640799554ebfd99" +[[package]] +name = "unicode-width" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ed742d4ea2bd1176e236172c8429aaf54486e7ac098db29ffe6529e0ce50973" + [[package]] name = "unicode-xid" -version = "0.2.2" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" + +[[package]] +name = "unicode-xid" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "957e51f3646910546462e67d5f7599b9e4fb8acdd304b087a6494730f9eebf04" + +[[package]] +name = "universal-hash" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3" +checksum = "9f214e8f697e925001e66ec2c6e37a4ef93f0f78c2eed7814394e10c62025b05" +dependencies = [ + "generic-array", + "subtle", +] [[package]] name = "unreachable" @@ -3250,9 +4584,9 @@ checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" [[package]] name = "uriparse" -version = "0.6.3" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e515b1ada404168e145ac55afba3c42f04cf972201a8552d42e2abb17c1b7221" +checksum = "0200d0fc04d809396c2ad43f3c95da3582a2556eba8d453c1087f4120ee352ff" dependencies = [ "fnv", "lazy_static", @@ -3270,12 +4604,24 @@ dependencies = [ "percent-encoding", ] +[[package]] +name = "utf-8" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" + [[package]] name = "valuable" version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" +[[package]] +name = "vec_map" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191" + [[package]] name = "version_check" version = "0.9.4" @@ -3317,15 +4663,21 @@ checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" [[package]] name = "wasi" -version = "0.10.2+wasi-snapshot-preview1" +version = "0.10.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" + +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.79" +version = "0.2.81" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25f1af7423d8588a3d840681122e72e6a24ddbcb3f0ec385cac0d12d24256c06" +checksum = "7c53b543413a17a202f4be280a7e5c62a1c69345f5de525ee64f8cfdbc954994" dependencies = [ "cfg-if", "wasm-bindgen-macro", @@ -3333,24 +4685,24 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.79" +version = "0.2.81" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b21c0df030f5a177f3cba22e9bc4322695ec43e7257d865302900290bcdedca" +checksum = "5491a68ab4500fa6b4d726bd67408630c3dbe9c4fe7bda16d5c82a1fd8c7340a" dependencies = [ "bumpalo", "lazy_static", "log", - "proc-macro2", - "quote", - "syn", + "proc-macro2 1.0.40", + "quote 1.0.20", + "syn 1.0.98", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.29" +version = "0.4.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2eb6ec270a31b1d3c7e266b999739109abce8b6c87e4b31fcfcd788b65267395" +checksum = "de9a9cec1733468a8c657e57fa2413d2ae2c0129b95e87c5b72b8ace4d13f31f" dependencies = [ "cfg-if", "js-sys", @@ -3360,38 +4712,38 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.79" +version = "0.2.81" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f4203d69e40a52ee523b2529a773d5ffc1dc0071801c87b3d270b471b80ed01" +checksum = "c441e177922bc58f1e12c022624b6216378e5febc2f0533e41ba443d505b80aa" dependencies = [ - "quote", + "quote 1.0.20", "wasm-bindgen-macro-support", ] [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.79" +version = "0.2.81" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa8a30d46208db204854cadbb5d4baf5fcf8071ba5bf48190c3e59937962ebc" +checksum = "7d94ac45fcf608c1f45ef53e748d35660f168490c10b23704c7779ab8f5c3048" dependencies = [ - "proc-macro2", - "quote", - "syn", + "proc-macro2 1.0.40", + "quote 1.0.20", + "syn 1.0.98", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.79" +version = "0.2.81" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d958d035c4438e28c70e4321a2911302f10135ce78a9c7834c0cab4123d06a2" +checksum = "6a89911bd99e5f3659ec4acf9c4d93b0a90fe4a2a11f15328472058edc5261be" [[package]] name = "web-sys" -version = "0.3.56" +version = "0.3.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c060b319f29dd25724f09a2ba1418f142f539b2be99fbf4d2d5a8f7330afb8eb" +checksum = "2fed94beee57daf8dd7d51f2b15dc2bcde92d7a72304cdf662a4371008b71b90" dependencies = [ "js-sys", "wasm-bindgen", @@ -3409,9 +4761,9 @@ dependencies = [ [[package]] name = "webpki-roots" -version = "0.22.2" +version = "0.22.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "552ceb903e957524388c4d3475725ff2c8b7960922063af6ce53c9a43da07449" +checksum = "44d8de8415c823c8abd270ad483c6feeac771fad964890779f9a8cb24fbbc1bf" dependencies = [ "webpki", ] @@ -3449,9 +4801,9 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "windows-sys" -version = "0.32.0" +version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3df6e476185f92a12c072be4a189a0210dcdcf512a1891d6dff9edb874deadc6" +checksum = "ea04155a16a59f9eab786fe12a4a450e75cdb175f9e0d80da1e17db09f55b8d2" dependencies = [ "windows_aarch64_msvc", "windows_i686_gnu", @@ -3462,57 +4814,75 @@ dependencies = [ [[package]] name = "windows_aarch64_msvc" -version = "0.32.0" +version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8e92753b1c443191654ec532f14c199742964a061be25d77d7a96f09db20bf5" +checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47" [[package]] name = "windows_i686_gnu" -version = "0.32.0" +version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a711c68811799e017b6038e0922cb27a5e2f43a2ddb609fe0b6f3eeda9de615" +checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6" [[package]] name = "windows_i686_msvc" -version = "0.32.0" +version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "146c11bb1a02615db74680b32a68e2d61f553cc24c4eb5b4ca10311740e44172" +checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024" [[package]] name = "windows_x86_64_gnu" -version = "0.32.0" +version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c912b12f7454c6620635bbff3450962753834be2a594819bd5e945af18ec64bc" +checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1" [[package]] name = "windows_x86_64_msvc" -version = "0.32.0" +version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "504a2476202769977a040c6364301a3f65d0cc9e3fb08600b2bda150a0488316" +checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680" [[package]] name = "winreg" -version = "0.7.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0120db82e8a1e0b9fb3345a539c478767c0048d842860994d96113d5b667bd69" +checksum = "80d0f4e272c85def139476380b12f9ac60926689dd2e01d4923222f40580869d" dependencies = [ "winapi", ] [[package]] name = "xattr" -version = "0.2.2" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "244c3741f4240ef46274860397c7c74e50eb23624996930e484c16679633a54c" +checksum = "6d1526bbe5aaeb5eb06885f4d987bcdfa5e23187055de9b83fe00156a821fabc" dependencies = [ "libc", ] +[[package]] +name = "yaml-rust" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56c1936c4cc7a1c9ab21a1ebb602eb942ba868cbd44a99cb7cdc5892335e1c85" +dependencies = [ + "linked-hash-map", +] + [[package]] name = "yansi" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec" + +[[package]] +name = "yasna" version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fc79f4a1e39857fc00c3f662cbf2651c771f00e9c15fe2abc341806bd46bd71" +checksum = "346d34a236c9d3e5f3b9b74563f238f955bbd05fa0b8b4efa53c130c43982f4c" +dependencies = [ + "time 0.3.11", +] [[package]] name = "zeroize" @@ -3529,26 +4899,26 @@ version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f8f187641dad4f680d25c4bfc4225b418165984179f26ca76ec4fb6441d3a17" dependencies = [ - "proc-macro2", - "quote", - "syn", + "proc-macro2 1.0.40", + "quote 1.0.20", + "syn 1.0.98", "synstructure", ] [[package]] name = "zstd" -version = "0.9.2+zstd.1.5.1" +version = "0.11.2+zstd.1.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2390ea1bf6c038c39674f22d95f0564725fc06034a47129179810b2fc58caa54" +checksum = "20cc960326ece64f010d2d2107537f26dc589a6573a316bd5b1dba685fa5fde4" dependencies = [ "zstd-safe", ] [[package]] name = "zstd-safe" -version = "4.1.3+zstd.1.5.1" +version = "5.0.2+zstd.1.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e99d81b99fb3c2c2c794e3fe56c305c63d5173a16a46b5850b07c935ffc7db79" +checksum = "1d2a5585e04f9eea4b2a3d1eca508c4dee9592a89ef6f450c11719da0726f4db" dependencies = [ "libc", "zstd-sys", @@ -3556,9 +4926,9 @@ dependencies = [ [[package]] name = "zstd-sys" -version = "1.6.2+zstd.1.5.1" +version = "2.0.1+zstd.1.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2daf2f248d9ea44454bfcb2516534e8b8ad2fc91bf818a1885495fc42bc8ac9f" +checksum = "9fd07cbbc53846d9145dbffdf6dd09a7a0aa52be46741825f5c97bdd4f73f12b" dependencies = [ "cc", "libc", diff --git a/programs/nft-voter/Cargo.toml b/programs/nft-voter/Cargo.toml index 56831590..ae684f94 100644 --- a/programs/nft-voter/Cargo.toml +++ b/programs/nft-voter/Cargo.toml @@ -18,11 +18,11 @@ default = [] [dependencies] arrayref = "0.3.6" -anchor-lang = { version = "0.24.2", features = ["init-if-needed"] } -anchor-spl = "0.24.2" +anchor-lang = { version = "0.25.0", features = ["init-if-needed"] } +anchor-spl = {version = "0.25.0"} itertools = "0.10.2" -mpl-token-metadata = { version = "1.1.0", features = ["no-entrypoint"] } -solana-program = "1.9.13" +mpl-token-metadata = { version = "1.3.1", features = ["no-entrypoint"] } +solana-program = "1.10.19" spl-governance = { version = "2.2.2", features = ["no-entrypoint"] } spl-governance-tools= "0.1.2" spl-token = { version = "3.3", features = [ "no-entrypoint" ] } @@ -30,4 +30,4 @@ spl-token = { version = "3.3", features = [ "no-entrypoint" ] } [dev-dependencies] borsh = "0.9.1" solana-sdk = "1.9.5" -solana-program-test = "1.9.13" \ No newline at end of file +solana-program-test = "1.10.19" \ No newline at end of file diff --git a/programs/nft-voter/src/instructions/configure_collection.rs b/programs/nft-voter/src/instructions/configure_collection.rs index 1d62fe30..b4a43b85 100644 --- a/programs/nft-voter/src/instructions/configure_collection.rs +++ b/programs/nft-voter/src/instructions/configure_collection.rs @@ -3,13 +3,15 @@ use anchor_lang::{ prelude::{Context, Signer}, Accounts, }; - use anchor_lang::prelude::*; use anchor_spl::token::Mint; use spl_governance::state::realm; +use mpl_token_metadata::state::{CollectionDetails}; + use crate::error::NftVoterError; use crate::state::{max_voter_weight_record::MaxVoterWeightRecord, CollectionConfig, Registrar}; +use crate::tools::token_metadata::get_token_metadata_for_mint; /// Configures NFT voting collection which defines what NFTs can be used for governances /// and what weight they have @@ -48,10 +50,25 @@ pub struct ConfigureCollection<'info> { pub fn configure_collection( ctx: Context, weight: u64, - size: u32, + mut size: u64, ) -> Result<()> { - require!(size > 0, NftVoterError::InvalidCollectionSize); + let collection = &ctx.accounts.collection; + let collection_metadata = get_token_metadata_for_mint(&collection.to_account_info(), &collection.key()); + + // Set size to the collection details config if available + let retrieved_size = if let Some(details) = collection_metadata.unwrap().collection_details { + match details { + CollectionDetails::V1 { size } => size, + } + } else { + size + }; + + size = retrieved_size; + + require!(size > 0, NftVoterError::InvalidCollectionSize); + let registrar = &mut ctx.accounts.registrar; let realm = realm::get_realm_data_for_governing_token_mint( @@ -70,7 +87,6 @@ pub fn configure_collection( return err!(NftVoterError::CannotConfigureCollectionWithVotingProposals); } - let collection = &ctx.accounts.collection; let collection_config = CollectionConfig { collection: collection.key(), diff --git a/programs/nft-voter/src/lib.rs b/programs/nft-voter/src/lib.rs index fcd118fe..d0f939dc 100644 --- a/programs/nft-voter/src/lib.rs +++ b/programs/nft-voter/src/lib.rs @@ -48,7 +48,7 @@ pub mod nft_voter { pub fn configure_collection( ctx: Context, weight: u64, - size: u32, + size: u64, ) -> Result<()> { log_version(); instructions::configure_collection(ctx, weight, size) diff --git a/programs/nft-voter/src/state/collection_config.rs b/programs/nft-voter/src/state/collection_config.rs index 56cd7e4e..72a97ff9 100644 --- a/programs/nft-voter/src/state/collection_config.rs +++ b/programs/nft-voter/src/state/collection_config.rs @@ -9,7 +9,7 @@ pub struct CollectionConfig { /// The size of the NFT collection used to calculate max voter weight /// Note: At the moment the size is not captured on Metaplex accounts /// and it has to be manually updated on the Registrar - pub size: u32, + pub size: u64, /// Governance power weight of the collection /// Each NFT in the collection has governance power = 1 * weight diff --git a/programs/nft-voter/tests/program_test/nft_voter_test.rs b/programs/nft-voter/tests/program_test/nft_voter_test.rs index 75c9e11e..54af423e 100644 --- a/programs/nft-voter/tests/program_test/nft_voter_test.rs +++ b/programs/nft-voter/tests/program_test/nft_voter_test.rs @@ -52,7 +52,7 @@ pub struct CollectionConfigCookie { pub struct ConfigureCollectionArgs { pub weight: u64, - pub size: u32, + pub size: u64, } impl Default for ConfigureCollectionArgs { diff --git a/yarn.lock b/yarn.lock index 32063b3a..85d1254c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3,2169 +3,2143 @@ "@babel/code-frame@7.12.11": - "integrity" "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==" - "resolved" "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz" - "version" "7.12.11" + version "7.12.11" + resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz" + integrity sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw== dependencies: "@babel/highlight" "^7.10.4" "@babel/helper-validator-identifier@^7.16.7": - "integrity" "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==" - "resolved" "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz" - "version" "7.16.7" + version "7.16.7" + resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz" + integrity sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw== "@babel/highlight@^7.10.4": - "integrity" "sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==" - "resolved" "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz" - "version" "7.16.10" + version "7.16.10" + resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz" + integrity sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw== dependencies: "@babel/helper-validator-identifier" "^7.16.7" - "chalk" "^2.0.0" - "js-tokens" "^4.0.0" + chalk "^2.0.0" + js-tokens "^4.0.0" "@babel/runtime@^7.10.5", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.5": - "integrity" "sha512-hzeyJyMA1YGdJTuWU0e/j4wKXrU4OMFvY2MSlaI9B7VQb0r5cxTE3EAIS2Q7Tn2RIcDkRvTA/v2JsAEhxe99uw==" - "resolved" "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.2.tgz" - "version" "7.17.2" + version "7.17.2" + resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.2.tgz" + integrity sha512-hzeyJyMA1YGdJTuWU0e/j4wKXrU4OMFvY2MSlaI9B7VQb0r5cxTE3EAIS2Q7Tn2RIcDkRvTA/v2JsAEhxe99uw== dependencies: - "regenerator-runtime" "^0.13.4" + regenerator-runtime "^0.13.4" "@eslint/eslintrc@^0.4.3": - "integrity" "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==" - "resolved" "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz" - "version" "0.4.3" - dependencies: - "ajv" "^6.12.4" - "debug" "^4.1.1" - "espree" "^7.3.0" - "globals" "^13.9.0" - "ignore" "^4.0.6" - "import-fresh" "^3.2.1" - "js-yaml" "^3.13.1" - "minimatch" "^3.0.4" - "strip-json-comments" "^3.1.1" + version "0.4.3" + resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz" + integrity sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw== + dependencies: + ajv "^6.12.4" + debug "^4.1.1" + espree "^7.3.0" + globals "^13.9.0" + ignore "^4.0.6" + import-fresh "^3.2.1" + js-yaml "^3.13.1" + minimatch "^3.0.4" + strip-json-comments "^3.1.1" "@ethersproject/bytes@^5.5.0": - "integrity" "sha512-ABvc7BHWhZU9PNM/tANm/Qx4ostPGadAuQzWTr3doklZOhDlmcBqclrQe/ZXUIj3K8wC28oYeuRa+A37tX9kog==" - "resolved" "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.5.0.tgz" - "version" "5.5.0" + version "5.5.0" + resolved "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.5.0.tgz" + integrity sha512-ABvc7BHWhZU9PNM/tANm/Qx4ostPGadAuQzWTr3doklZOhDlmcBqclrQe/ZXUIj3K8wC28oYeuRa+A37tX9kog== dependencies: "@ethersproject/logger" "^5.5.0" "@ethersproject/logger@^5.5.0": - "integrity" "sha512-rIY/6WPm7T8n3qS2vuHTUBPdXHl+rGxWxW5okDfo9J4Z0+gRRZT0msvUdIJkE4/HS29GUMziwGaaKO2bWONBrg==" - "resolved" "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.5.0.tgz" - "version" "5.5.0" + version "5.5.0" + resolved "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.5.0.tgz" + integrity sha512-rIY/6WPm7T8n3qS2vuHTUBPdXHl+rGxWxW5okDfo9J4Z0+gRRZT0msvUdIJkE4/HS29GUMziwGaaKO2bWONBrg== "@ethersproject/sha2@^5.5.0": - "integrity" "sha512-B5UBoglbCiHamRVPLA110J+2uqsifpZaTmid2/7W5rbtYVz6gus6/hSDieIU/6gaKIDcOj12WnOdiymEUHIAOA==" - "resolved" "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.5.0.tgz" - "version" "5.5.0" + version "5.5.0" + resolved "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.5.0.tgz" + integrity sha512-B5UBoglbCiHamRVPLA110J+2uqsifpZaTmid2/7W5rbtYVz6gus6/hSDieIU/6gaKIDcOj12WnOdiymEUHIAOA== dependencies: "@ethersproject/bytes" "^5.5.0" "@ethersproject/logger" "^5.5.0" - "hash.js" "1.1.7" + hash.js "1.1.7" "@humanwhocodes/config-array@^0.5.0": - "integrity" "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==" - "resolved" "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz" - "version" "0.5.0" + version "0.5.0" + resolved "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz" + integrity sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg== dependencies: "@humanwhocodes/object-schema" "^1.2.0" - "debug" "^4.1.1" - "minimatch" "^3.0.4" + debug "^4.1.1" + minimatch "^3.0.4" "@humanwhocodes/object-schema@^1.2.0": - "integrity" "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==" - "resolved" "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz" - "version" "1.2.1" + version "1.2.1" + resolved "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz" + integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== "@nodelib/fs.scandir@2.1.5": - "integrity" "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==" - "resolved" "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz" - "version" "2.1.5" + version "2.1.5" + resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz" + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== dependencies: "@nodelib/fs.stat" "2.0.5" - "run-parallel" "^1.1.9" + run-parallel "^1.1.9" -"@nodelib/fs.stat@^2.0.2", "@nodelib/fs.stat@2.0.5": - "integrity" "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==" - "resolved" "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz" - "version" "2.0.5" +"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": + version "2.0.5" + resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== "@nodelib/fs.walk@^1.2.3": - "integrity" "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==" - "resolved" "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz" - "version" "1.2.8" + version "1.2.8" + resolved "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== dependencies: "@nodelib/fs.scandir" "2.1.5" - "fastq" "^1.6.0" + fastq "^1.6.0" "@project-serum/anchor@^0.11.1": - "integrity" "sha512-oIdm4vTJkUy6GmE6JgqDAuQPKI7XM4TPJkjtoIzp69RZe0iAD9JP2XHx7lV1jLdYXeYHqDXfBt3zcq7W91K6PA==" - "resolved" "https://registry.npmjs.org/@project-serum/anchor/-/anchor-0.11.1.tgz" - "version" "0.11.1" + version "0.11.1" + resolved "https://registry.npmjs.org/@project-serum/anchor/-/anchor-0.11.1.tgz" + integrity sha512-oIdm4vTJkUy6GmE6JgqDAuQPKI7XM4TPJkjtoIzp69RZe0iAD9JP2XHx7lV1jLdYXeYHqDXfBt3zcq7W91K6PA== dependencies: "@project-serum/borsh" "^0.2.2" "@solana/web3.js" "^1.17.0" - "base64-js" "^1.5.1" - "bn.js" "^5.1.2" - "bs58" "^4.0.1" - "buffer-layout" "^1.2.0" - "camelcase" "^5.3.1" - "crypto-hash" "^1.3.0" - "eventemitter3" "^4.0.7" - "find" "^0.3.0" - "js-sha256" "^0.9.0" - "pako" "^2.0.3" - "snake-case" "^3.0.4" - "toml" "^3.0.0" + base64-js "^1.5.1" + bn.js "^5.1.2" + bs58 "^4.0.1" + buffer-layout "^1.2.0" + camelcase "^5.3.1" + crypto-hash "^1.3.0" + eventemitter3 "^4.0.7" + find "^0.3.0" + js-sha256 "^0.9.0" + pako "^2.0.3" + snake-case "^3.0.4" + toml "^3.0.0" "@project-serum/anchor@^0.24.2": - "integrity" "sha512-0/718g8/DnEuwAidUwh5wLYphUYXhUbiClkuRNhvNoa+1Y8a4g2tJyxoae+emV+PG/Gikd/QUBNMkIcimiIRTA==" - "resolved" "https://registry.npmjs.org/@project-serum/anchor/-/anchor-0.24.2.tgz" - "version" "0.24.2" + version "0.24.2" + resolved "https://registry.npmjs.org/@project-serum/anchor/-/anchor-0.24.2.tgz" + integrity sha512-0/718g8/DnEuwAidUwh5wLYphUYXhUbiClkuRNhvNoa+1Y8a4g2tJyxoae+emV+PG/Gikd/QUBNMkIcimiIRTA== dependencies: "@project-serum/borsh" "^0.2.5" "@solana/web3.js" "^1.36.0" - "base64-js" "^1.5.1" - "bn.js" "^5.1.2" - "bs58" "^4.0.1" - "buffer-layout" "^1.2.2" - "camelcase" "^5.3.1" - "cross-fetch" "^3.1.5" - "crypto-hash" "^1.3.0" - "eventemitter3" "^4.0.7" - "js-sha256" "^0.9.0" - "pako" "^2.0.3" - "snake-case" "^3.0.4" - "toml" "^3.0.0" - -"@project-serum/borsh@^0.2.2": - "integrity" "sha512-UmeUkUoKdQ7rhx6Leve1SssMR/Ghv8qrEiyywyxSWg7ooV7StdpPBhciiy5eB3T0qU1BXvdRNC8TdrkxK7WC5Q==" - "resolved" "https://registry.npmjs.org/@project-serum/borsh/-/borsh-0.2.5.tgz" - "version" "0.2.5" - dependencies: - "bn.js" "^5.1.2" - "buffer-layout" "^1.2.0" - -"@project-serum/borsh@^0.2.5": - "integrity" "sha512-UmeUkUoKdQ7rhx6Leve1SssMR/Ghv8qrEiyywyxSWg7ooV7StdpPBhciiy5eB3T0qU1BXvdRNC8TdrkxK7WC5Q==" - "resolved" "https://registry.npmjs.org/@project-serum/borsh/-/borsh-0.2.5.tgz" - "version" "0.2.5" - dependencies: - "bn.js" "^5.1.2" - "buffer-layout" "^1.2.0" + base64-js "^1.5.1" + bn.js "^5.1.2" + bs58 "^4.0.1" + buffer-layout "^1.2.2" + camelcase "^5.3.1" + cross-fetch "^3.1.5" + crypto-hash "^1.3.0" + eventemitter3 "^4.0.7" + js-sha256 "^0.9.0" + pako "^2.0.3" + snake-case "^3.0.4" + toml "^3.0.0" + +"@project-serum/borsh@^0.2.2", "@project-serum/borsh@^0.2.5": + version "0.2.5" + resolved "https://registry.npmjs.org/@project-serum/borsh/-/borsh-0.2.5.tgz" + integrity sha512-UmeUkUoKdQ7rhx6Leve1SssMR/Ghv8qrEiyywyxSWg7ooV7StdpPBhciiy5eB3T0qU1BXvdRNC8TdrkxK7WC5Q== + dependencies: + bn.js "^5.1.2" + buffer-layout "^1.2.0" "@project-serum/serum@^0.13.61": - "integrity" "sha512-aebaRGQ0/K7a5kJ9UXO59BAQFJILVu5jbGobU8GD2CTSy6SPceprB6/pgZmZLQIabhXWUHaZRF/wXIClgWataA==" - "resolved" "https://registry.npmjs.org/@project-serum/serum/-/serum-0.13.61.tgz" - "version" "0.13.61" + version "0.13.61" + resolved "https://registry.npmjs.org/@project-serum/serum/-/serum-0.13.61.tgz" + integrity sha512-aebaRGQ0/K7a5kJ9UXO59BAQFJILVu5jbGobU8GD2CTSy6SPceprB6/pgZmZLQIabhXWUHaZRF/wXIClgWataA== dependencies: "@project-serum/anchor" "^0.11.1" "@solana/spl-token" "^0.1.6" "@solana/web3.js" "^1.21.0" - "bn.js" "^5.1.2" - "buffer-layout" "^1.2.0" + bn.js "^5.1.2" + buffer-layout "^1.2.0" "@solana/buffer-layout@^3.0.0": - "integrity" "sha512-MVdgAKKL39tEs0l8je0hKaXLQFb7Rdfb0Xg2LjFZd8Lfdazkg6xiS98uAZrEKvaoF3i4M95ei9RydkGIDMeo3w==" - "resolved" "https://registry.npmjs.org/@solana/buffer-layout/-/buffer-layout-3.0.0.tgz" - "version" "3.0.0" + version "3.0.0" + resolved "https://registry.npmjs.org/@solana/buffer-layout/-/buffer-layout-3.0.0.tgz" + integrity sha512-MVdgAKKL39tEs0l8je0hKaXLQFb7Rdfb0Xg2LjFZd8Lfdazkg6xiS98uAZrEKvaoF3i4M95ei9RydkGIDMeo3w== dependencies: - "buffer" "~6.0.3" + buffer "~6.0.3" "@solana/buffer-layout@^4.0.0": - "integrity" "sha512-lR0EMP2HC3+Mxwd4YcnZb0smnaDw7Bl2IQWZiTevRH5ZZBZn6VRWn3/92E3qdU4SSImJkA6IDHawOHAnx/qUvQ==" - "resolved" "https://registry.npmjs.org/@solana/buffer-layout/-/buffer-layout-4.0.0.tgz" - "version" "4.0.0" + version "4.0.0" + resolved "https://registry.npmjs.org/@solana/buffer-layout/-/buffer-layout-4.0.0.tgz" + integrity sha512-lR0EMP2HC3+Mxwd4YcnZb0smnaDw7Bl2IQWZiTevRH5ZZBZn6VRWn3/92E3qdU4SSImJkA6IDHawOHAnx/qUvQ== dependencies: - "buffer" "~6.0.3" + buffer "~6.0.3" "@solana/spl-token@^0.1.6": - "integrity" "sha512-LZmYCKcPQDtJgecvWOgT/cnoIQPWjdH+QVyzPcFvyDUiT0DiRjZaam4aqNUyvchLFhzgunv3d9xOoyE34ofdoQ==" - "resolved" "https://registry.npmjs.org/@solana/spl-token/-/spl-token-0.1.8.tgz" - "version" "0.1.8" + version "0.1.8" + resolved "https://registry.npmjs.org/@solana/spl-token/-/spl-token-0.1.8.tgz" + integrity sha512-LZmYCKcPQDtJgecvWOgT/cnoIQPWjdH+QVyzPcFvyDUiT0DiRjZaam4aqNUyvchLFhzgunv3d9xOoyE34ofdoQ== dependencies: "@babel/runtime" "^7.10.5" "@solana/web3.js" "^1.21.0" - "bn.js" "^5.1.0" - "buffer" "6.0.3" - "buffer-layout" "^1.2.0" - "dotenv" "10.0.0" + bn.js "^5.1.0" + buffer "6.0.3" + buffer-layout "^1.2.0" + dotenv "10.0.0" "@solana/web3.js@^1.17.0": - "integrity" "sha512-3bDawFFI0KcvgI8Ae4N4hdQ8+Bg9gu6q+IkhPrYxOF6RYnB3U+9A4u+DhHZWLvTvgoTyesi/m5HzlleKtFEqRQ==" - "resolved" "https://registry.npmjs.org/@solana/web3.js/-/web3.js-1.35.1.tgz" - "version" "1.35.1" + version "1.35.1" + resolved "https://registry.npmjs.org/@solana/web3.js/-/web3.js-1.35.1.tgz" + integrity sha512-3bDawFFI0KcvgI8Ae4N4hdQ8+Bg9gu6q+IkhPrYxOF6RYnB3U+9A4u+DhHZWLvTvgoTyesi/m5HzlleKtFEqRQ== dependencies: "@babel/runtime" "^7.12.5" "@ethersproject/sha2" "^5.5.0" "@solana/buffer-layout" "^3.0.0" - "bn.js" "^5.0.0" - "borsh" "^0.4.0" - "bs58" "^4.0.1" - "buffer" "6.0.1" - "cross-fetch" "^3.1.4" - "jayson" "^3.4.4" - "js-sha3" "^0.8.0" - "rpc-websockets" "^7.4.2" - "secp256k1" "^4.0.2" - "superstruct" "^0.14.2" - "tweetnacl" "^1.0.0" - -"@solana/web3.js@^1.2.0", "@solana/web3.js@^1.36.0": - "integrity" "sha512-H+zRDh7zpzma8fvA6S16DJY2sDemw4HHU/3WR9kXQG+3jsRtIJxhOD2NAwu1M2JrXoblyE2QYHWneLKDV2Bu6g==" - "resolved" "https://registry.npmjs.org/@solana/web3.js/-/web3.js-1.41.3.tgz" - "version" "1.41.3" - dependencies: - "@babel/runtime" "^7.12.5" - "@ethersproject/sha2" "^5.5.0" - "@solana/buffer-layout" "^4.0.0" - "bn.js" "^5.0.0" - "borsh" "^0.7.0" - "bs58" "^4.0.1" - "buffer" "6.0.1" - "cross-fetch" "^3.1.4" - "fast-stable-stringify" "^1.0.0" - "jayson" "^3.4.4" - "js-sha3" "^0.8.0" - "rpc-websockets" "^7.4.2" - "secp256k1" "^4.0.2" - "sinon-chai" "^3.7.0" - "superstruct" "^0.14.2" - "tweetnacl" "^1.0.0" + bn.js "^5.0.0" + borsh "^0.4.0" + bs58 "^4.0.1" + buffer "6.0.1" + cross-fetch "^3.1.4" + jayson "^3.4.4" + js-sha3 "^0.8.0" + rpc-websockets "^7.4.2" + secp256k1 "^4.0.2" + superstruct "^0.14.2" + tweetnacl "^1.0.0" "@solana/web3.js@^1.21.0": - "integrity" "sha512-RNT1451iRR7TyW7EJKMCrH/0OXawIe4zVm0DWQASwXlR/u1jmW6FrmH0lujIh7cGTlfOVbH+2ZU9AVUPLBFzwA==" - "resolved" "https://registry.npmjs.org/@solana/web3.js/-/web3.js-1.36.0.tgz" - "version" "1.36.0" + version "1.36.0" + resolved "https://registry.npmjs.org/@solana/web3.js/-/web3.js-1.36.0.tgz" + integrity sha512-RNT1451iRR7TyW7EJKMCrH/0OXawIe4zVm0DWQASwXlR/u1jmW6FrmH0lujIh7cGTlfOVbH+2ZU9AVUPLBFzwA== dependencies: "@babel/runtime" "^7.12.5" "@ethersproject/sha2" "^5.5.0" "@solana/buffer-layout" "^3.0.0" - "bn.js" "^5.0.0" - "borsh" "^0.4.0" - "bs58" "^4.0.1" - "buffer" "6.0.1" - "cross-fetch" "^3.1.4" - "jayson" "^3.4.4" - "js-sha3" "^0.8.0" - "rpc-websockets" "^7.4.2" - "secp256k1" "^4.0.2" - "superstruct" "^0.14.2" - "tweetnacl" "^1.0.0" + bn.js "^5.0.0" + borsh "^0.4.0" + bs58 "^4.0.1" + buffer "6.0.1" + cross-fetch "^3.1.4" + jayson "^3.4.4" + js-sha3 "^0.8.0" + rpc-websockets "^7.4.2" + secp256k1 "^4.0.2" + superstruct "^0.14.2" + tweetnacl "^1.0.0" + +"@solana/web3.js@^1.36.0": + version "1.41.3" + resolved "https://registry.npmjs.org/@solana/web3.js/-/web3.js-1.41.3.tgz" + integrity sha512-H+zRDh7zpzma8fvA6S16DJY2sDemw4HHU/3WR9kXQG+3jsRtIJxhOD2NAwu1M2JrXoblyE2QYHWneLKDV2Bu6g== + dependencies: + "@babel/runtime" "^7.12.5" + "@ethersproject/sha2" "^5.5.0" + "@solana/buffer-layout" "^4.0.0" + bn.js "^5.0.0" + borsh "^0.7.0" + bs58 "^4.0.1" + buffer "6.0.1" + cross-fetch "^3.1.4" + fast-stable-stringify "^1.0.0" + jayson "^3.4.4" + js-sha3 "^0.8.0" + rpc-websockets "^7.4.2" + secp256k1 "^4.0.2" + sinon-chai "^3.7.0" + superstruct "^0.14.2" + tweetnacl "^1.0.0" "@tsconfig/recommended@^1.0.1": - "integrity" "sha512-2xN+iGTbPBEzGSnVp/Hd64vKJCJWxsi9gfs88x4PPMyEjHJoA3o5BY9r5OLPHIZU2pAQxkSAsJFqn6itClP8mQ==" - "resolved" "https://registry.npmjs.org/@tsconfig/recommended/-/recommended-1.0.1.tgz" - "version" "1.0.1" + version "1.0.1" + resolved "https://registry.npmjs.org/@tsconfig/recommended/-/recommended-1.0.1.tgz" + integrity sha512-2xN+iGTbPBEzGSnVp/Hd64vKJCJWxsi9gfs88x4PPMyEjHJoA3o5BY9r5OLPHIZU2pAQxkSAsJFqn6itClP8mQ== "@types/bn.js@^4.11.5": - "integrity" "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==" - "resolved" "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz" - "version" "4.11.6" + 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== dependencies: "@types/node" "*" "@types/connect@^3.4.33": - "integrity" "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==" - "resolved" "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz" - "version" "3.4.35" + version "3.4.35" + resolved "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz" + integrity sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ== dependencies: "@types/node" "*" "@types/express-serve-static-core@^4.17.9": - "integrity" "sha512-P1BJAEAW3E2DJUlkgq4tOL3RyMunoWXqbSCygWo5ZIWTjUgN1YnaXWW4VWl/oc8vs/XoYibEGBKP0uZyF4AHig==" - "resolved" "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz" - "version" "4.17.28" + version "4.17.28" + resolved "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz" + integrity sha512-P1BJAEAW3E2DJUlkgq4tOL3RyMunoWXqbSCygWo5ZIWTjUgN1YnaXWW4VWl/oc8vs/XoYibEGBKP0uZyF4AHig== dependencies: "@types/node" "*" "@types/qs" "*" "@types/range-parser" "*" "@types/json-schema@^7.0.7": - "integrity" "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==" - "resolved" "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz" - "version" "7.0.9" + version "7.0.9" + resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz" + integrity sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ== "@types/json5@^0.0.29": - "integrity" "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=" - "resolved" "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz" - "version" "0.0.29" + version "0.0.29" + resolved "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz" + integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= "@types/lodash@^4.14.159": - "integrity" "sha512-uwc1x90yCKqGcIOAT6DwOSuxnrAbpkdPsUOZtwrXb4D/6wZs+6qG7QnIawDuZWg0sWpxl+ltIKCaLoMlna678w==" - "resolved" "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.179.tgz" - "version" "4.14.179" + version "4.14.179" + resolved "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.179.tgz" + integrity sha512-uwc1x90yCKqGcIOAT6DwOSuxnrAbpkdPsUOZtwrXb4D/6wZs+6qG7QnIawDuZWg0sWpxl+ltIKCaLoMlna678w== "@types/node@*": - "integrity" "sha512-DBZCJbhII3r90XbQxI8Y9IjjiiOGlZ0Hr32omXIZvwwZ7p4DMMXGrKXVyPfuoBOri9XNtL0UK69jYIBIsRX3QQ==" - "resolved" "https://registry.npmjs.org/@types/node/-/node-17.0.21.tgz" - "version" "17.0.21" + version "17.0.21" + resolved "https://registry.npmjs.org/@types/node/-/node-17.0.21.tgz" + integrity sha512-DBZCJbhII3r90XbQxI8Y9IjjiiOGlZ0Hr32omXIZvwwZ7p4DMMXGrKXVyPfuoBOri9XNtL0UK69jYIBIsRX3QQ== "@types/node@^12.12.54": - "integrity" "sha512-cPjLXj8d6anFPzFvOPxS3fvly3Shm5nTfl6g8X5smexixbuGUf7hfr21J5tX9JW+UPStp/5P5R8qrKL5IyVJ+A==" - "resolved" "https://registry.npmjs.org/@types/node/-/node-12.20.46.tgz" - "version" "12.20.46" + version "12.20.46" + resolved "https://registry.npmjs.org/@types/node/-/node-12.20.46.tgz" + integrity sha512-cPjLXj8d6anFPzFvOPxS3fvly3Shm5nTfl6g8X5smexixbuGUf7hfr21J5tX9JW+UPStp/5P5R8qrKL5IyVJ+A== "@types/qs@*": - "integrity" "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==" - "resolved" "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz" - "version" "6.9.7" + version "6.9.7" + resolved "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz" + integrity sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw== "@types/range-parser@*": - "integrity" "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==" - "resolved" "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz" - "version" "1.2.4" + version "1.2.4" + resolved "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz" + integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw== "@types/ws@^7.4.4": - "integrity" "sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==" - "resolved" "https://registry.npmjs.org/@types/ws/-/ws-7.4.7.tgz" - "version" "7.4.7" + version "7.4.7" + resolved "https://registry.npmjs.org/@types/ws/-/ws-7.4.7.tgz" + integrity sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww== dependencies: "@types/node" "*" "@typescript-eslint/eslint-plugin@^4.14.2": - "integrity" "sha512-aINiAxGVdOl1eJyVjaWn/YcVAq4Gi/Yo35qHGCnqbWVz61g39D0h23veY/MA0rFFGfxK7TySg2uwDeNv+JgVpg==" - "resolved" "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.33.0.tgz" - "version" "4.33.0" + version "4.33.0" + resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.33.0.tgz" + integrity sha512-aINiAxGVdOl1eJyVjaWn/YcVAq4Gi/Yo35qHGCnqbWVz61g39D0h23veY/MA0rFFGfxK7TySg2uwDeNv+JgVpg== dependencies: "@typescript-eslint/experimental-utils" "4.33.0" "@typescript-eslint/scope-manager" "4.33.0" - "debug" "^4.3.1" - "functional-red-black-tree" "^1.0.1" - "ignore" "^5.1.8" - "regexpp" "^3.1.0" - "semver" "^7.3.5" - "tsutils" "^3.21.0" + debug "^4.3.1" + functional-red-black-tree "^1.0.1" + ignore "^5.1.8" + regexpp "^3.1.0" + semver "^7.3.5" + tsutils "^3.21.0" "@typescript-eslint/experimental-utils@4.33.0": - "integrity" "sha512-zeQjOoES5JFjTnAhI5QY7ZviczMzDptls15GFsI6jyUOq0kOf9+WonkhtlIhh0RgHRnqj5gdNxW5j1EvAyYg6Q==" - "resolved" "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.33.0.tgz" - "version" "4.33.0" + version "4.33.0" + resolved "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.33.0.tgz" + integrity sha512-zeQjOoES5JFjTnAhI5QY7ZviczMzDptls15GFsI6jyUOq0kOf9+WonkhtlIhh0RgHRnqj5gdNxW5j1EvAyYg6Q== dependencies: "@types/json-schema" "^7.0.7" "@typescript-eslint/scope-manager" "4.33.0" "@typescript-eslint/types" "4.33.0" "@typescript-eslint/typescript-estree" "4.33.0" - "eslint-scope" "^5.1.1" - "eslint-utils" "^3.0.0" + eslint-scope "^5.1.1" + eslint-utils "^3.0.0" -"@typescript-eslint/parser@^4.0.0", "@typescript-eslint/parser@^4.14.2": - "integrity" "sha512-ZohdsbXadjGBSK0/r+d87X0SBmKzOq4/S5nzK6SBgJspFo9/CUDJ7hjayuze+JK7CZQLDMroqytp7pOcFKTxZA==" - "resolved" "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.33.0.tgz" - "version" "4.33.0" +"@typescript-eslint/parser@^4.14.2": + version "4.33.0" + resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.33.0.tgz" + integrity sha512-ZohdsbXadjGBSK0/r+d87X0SBmKzOq4/S5nzK6SBgJspFo9/CUDJ7hjayuze+JK7CZQLDMroqytp7pOcFKTxZA== dependencies: "@typescript-eslint/scope-manager" "4.33.0" "@typescript-eslint/types" "4.33.0" "@typescript-eslint/typescript-estree" "4.33.0" - "debug" "^4.3.1" + debug "^4.3.1" "@typescript-eslint/scope-manager@4.33.0": - "integrity" "sha512-5IfJHpgTsTZuONKbODctL4kKuQje/bzBRkwHE8UOZ4f89Zeddg+EGZs8PD8NcN4LdM3ygHWYB3ukPAYjvl/qbQ==" - "resolved" "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.33.0.tgz" - "version" "4.33.0" + version "4.33.0" + resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.33.0.tgz" + integrity sha512-5IfJHpgTsTZuONKbODctL4kKuQje/bzBRkwHE8UOZ4f89Zeddg+EGZs8PD8NcN4LdM3ygHWYB3ukPAYjvl/qbQ== dependencies: "@typescript-eslint/types" "4.33.0" "@typescript-eslint/visitor-keys" "4.33.0" "@typescript-eslint/types@4.33.0": - "integrity" "sha512-zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ==" - "resolved" "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.33.0.tgz" - "version" "4.33.0" + version "4.33.0" + resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.33.0.tgz" + integrity sha512-zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ== "@typescript-eslint/typescript-estree@4.33.0": - "integrity" "sha512-rkWRY1MPFzjwnEVHsxGemDzqqddw2QbTJlICPD9p9I9LfsO8fdmfQPOX3uKfUaGRDFJbfrtm/sXhVXN4E+bzCA==" - "resolved" "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.33.0.tgz" - "version" "4.33.0" + version "4.33.0" + resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.33.0.tgz" + integrity sha512-rkWRY1MPFzjwnEVHsxGemDzqqddw2QbTJlICPD9p9I9LfsO8fdmfQPOX3uKfUaGRDFJbfrtm/sXhVXN4E+bzCA== dependencies: "@typescript-eslint/types" "4.33.0" "@typescript-eslint/visitor-keys" "4.33.0" - "debug" "^4.3.1" - "globby" "^11.0.3" - "is-glob" "^4.0.1" - "semver" "^7.3.5" - "tsutils" "^3.21.0" + debug "^4.3.1" + globby "^11.0.3" + is-glob "^4.0.1" + semver "^7.3.5" + tsutils "^3.21.0" "@typescript-eslint/visitor-keys@4.33.0": - "integrity" "sha512-uqi/2aSz9g2ftcHWf8uLPJA70rUv6yuMW5Bohw+bwcuzaxQIHaKFZCKGoGXIrc9vkTJ3+0txM73K0Hq3d5wgIg==" - "resolved" "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.33.0.tgz" - "version" "4.33.0" + version "4.33.0" + resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.33.0.tgz" + integrity sha512-uqi/2aSz9g2ftcHWf8uLPJA70rUv6yuMW5Bohw+bwcuzaxQIHaKFZCKGoGXIrc9vkTJ3+0txM73K0Hq3d5wgIg== dependencies: "@typescript-eslint/types" "4.33.0" - "eslint-visitor-keys" "^2.0.0" + eslint-visitor-keys "^2.0.0" "@ungap/promise-all-settled@1.1.2": - "integrity" "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==" - "resolved" "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz" - "version" "1.1.2" - -"acorn-jsx@^5.3.1": - "integrity" "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==" - "resolved" "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz" - "version" "5.3.2" - -"acorn@^6.0.0 || ^7.0.0 || ^8.0.0", "acorn@^7.4.0": - "integrity" "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==" - "resolved" "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz" - "version" "7.4.1" - -"ajv@^6.10.0", "ajv@^6.12.4": - "integrity" "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==" - "resolved" "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" - "version" "6.12.6" - dependencies: - "fast-deep-equal" "^3.1.1" - "fast-json-stable-stringify" "^2.0.0" - "json-schema-traverse" "^0.4.1" - "uri-js" "^4.2.2" - -"ajv@^8.0.1": - "integrity" "sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw==" - "resolved" "https://registry.npmjs.org/ajv/-/ajv-8.10.0.tgz" - "version" "8.10.0" - dependencies: - "fast-deep-equal" "^3.1.1" - "json-schema-traverse" "^1.0.0" - "require-from-string" "^2.0.2" - "uri-js" "^4.2.2" - -"ansi-colors@^4.1.1", "ansi-colors@4.1.1": - "integrity" "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==" - "resolved" "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz" - "version" "4.1.1" - -"ansi-regex@^5.0.1": - "integrity" "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - "resolved" "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" - "version" "5.0.1" - -"ansi-styles@^3.2.1": - "integrity" "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==" - "resolved" "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" - "version" "3.2.1" - dependencies: - "color-convert" "^1.9.0" - -"ansi-styles@^4.0.0", "ansi-styles@^4.1.0": - "integrity" "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==" - "resolved" "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" - "version" "4.3.0" - dependencies: - "color-convert" "^2.0.1" - -"anymatch@~3.1.2": - "integrity" "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==" - "resolved" "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz" - "version" "3.1.2" - dependencies: - "normalize-path" "^3.0.0" - "picomatch" "^2.0.4" - -"arg@^4.1.0": - "integrity" "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==" - "resolved" "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz" - "version" "4.1.3" - -"argparse@^1.0.7": - "integrity" "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==" - "resolved" "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz" - "version" "1.0.10" - dependencies: - "sprintf-js" "~1.0.2" - -"argparse@^2.0.1": - "integrity" "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - "resolved" "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" - "version" "2.0.1" - -"array-union@^2.1.0": - "integrity" "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==" - "resolved" "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz" - "version" "2.1.0" - -"arrify@^1.0.0": - "integrity" "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" - "resolved" "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz" - "version" "1.0.1" - -"astral-regex@^2.0.0": - "integrity" "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==" - "resolved" "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz" - "version" "2.0.0" - -"balanced-match@^1.0.0": - "integrity" "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - "resolved" "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" - "version" "1.0.2" - -"base-x@^3.0.2": - "integrity" "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==" - "resolved" "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz" - "version" "3.0.9" - dependencies: - "safe-buffer" "^5.0.1" - -"base64-js@^1.3.1", "base64-js@^1.5.1": - "integrity" "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" - "resolved" "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz" - "version" "1.5.1" - -"binary-extensions@^2.0.0": - "integrity" "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==" - "resolved" "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz" - "version" "2.2.0" - -"bn.js@^4.11.9": - "integrity" "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - "resolved" "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz" - "version" "4.12.0" - -"bn.js@^5.0.0", "bn.js@^5.1.0", "bn.js@^5.1.2", "bn.js@^5.2.0": - "integrity" "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==" - "resolved" "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz" - "version" "5.2.0" - -"borsh@^0.4.0": - "integrity" "sha512-aX6qtLya3K0AkT66CmYWCCDr77qsE9arV05OmdFpmat9qu8Pg9J5tBUPDztAW5fNh/d/MyVG/OYziP52Ndzx1g==" - "resolved" "https://registry.npmjs.org/borsh/-/borsh-0.4.0.tgz" - "version" "0.4.0" + version "1.1.2" + resolved "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz" + integrity sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q== + +JSONStream@^1.3.5: + version "1.3.5" + resolved "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz" + integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ== + dependencies: + jsonparse "^1.2.0" + through ">=2.2.7 <3" + +acorn-jsx@^5.3.1: + version "5.3.2" + resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz" + integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== + +acorn@^7.4.0: + version "7.4.1" + resolved "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz" + integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== + +ajv@^6.10.0, ajv@^6.12.4: + version "6.12.6" + resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ajv@^8.0.1: + version "8.10.0" + resolved "https://registry.npmjs.org/ajv/-/ajv-8.10.0.tgz" + integrity sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw== + dependencies: + fast-deep-equal "^3.1.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + uri-js "^4.2.2" + +ansi-colors@4.1.1, ansi-colors@^4.1.1: + 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@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +anymatch@~3.1.2: + version "3.1.2" + resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz" + integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +arg@^4.1.0: + version "4.1.3" + resolved "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz" + integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== + +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + +array-union@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz" + integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== + +arrify@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz" + integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0= + +astral-regex@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz" + integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +base-x@^3.0.2: + version "3.0.9" + resolved "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz" + integrity sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ== + dependencies: + safe-buffer "^5.0.1" + +base64-js@^1.3.1, base64-js@^1.5.1: + version "1.5.1" + resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + +binary-extensions@^2.0.0: + version "2.2.0" + resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz" + integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== + +bn.js@^4.11.9: + version "4.12.0" + resolved "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz" + integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== + +bn.js@^5.0.0, bn.js@^5.1.0, bn.js@^5.1.2, bn.js@^5.2.0: + version "5.2.0" + resolved "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz" + integrity sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw== + +borsh@^0.4.0: + version "0.4.0" + resolved "https://registry.npmjs.org/borsh/-/borsh-0.4.0.tgz" + integrity sha512-aX6qtLya3K0AkT66CmYWCCDr77qsE9arV05OmdFpmat9qu8Pg9J5tBUPDztAW5fNh/d/MyVG/OYziP52Ndzx1g== dependencies: "@types/bn.js" "^4.11.5" - "bn.js" "^5.0.0" - "bs58" "^4.0.0" - "text-encoding-utf-8" "^1.0.2" - -"borsh@^0.7.0": - "integrity" "sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA==" - "resolved" "https://registry.npmjs.org/borsh/-/borsh-0.7.0.tgz" - "version" "0.7.0" - dependencies: - "bn.js" "^5.2.0" - "bs58" "^4.0.0" - "text-encoding-utf-8" "^1.0.2" - -"brace-expansion@^1.1.7": - "integrity" "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==" - "resolved" "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" - "version" "1.1.11" - dependencies: - "balanced-match" "^1.0.0" - "concat-map" "0.0.1" - -"brace-expansion@^2.0.1": - "integrity" "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==" - "resolved" "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz" - "version" "2.0.1" - dependencies: - "balanced-match" "^1.0.0" - -"braces@^3.0.1", "braces@~3.0.2": - "integrity" "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==" - "resolved" "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz" - "version" "3.0.2" - dependencies: - "fill-range" "^7.0.1" - -"brorand@^1.1.0": - "integrity" "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" - "resolved" "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz" - "version" "1.1.0" - -"browser-stdout@1.3.1": - "integrity" "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==" - "resolved" "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz" - "version" "1.3.1" - -"bs58@^4.0.0", "bs58@^4.0.1": - "integrity" "sha1-vhYedsNU9veIrkBx9j806MTwpCo=" - "resolved" "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz" - "version" "4.0.1" - dependencies: - "base-x" "^3.0.2" - -"buffer-from@^1.0.0", "buffer-from@^1.1.0": - "integrity" "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" - "resolved" "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz" - "version" "1.1.2" - -"buffer-layout@^1.2.0", "buffer-layout@^1.2.2": - "integrity" "sha512-kWSuLN694+KTk8SrYvCqwP2WcgQjoRCiF5b4QDvkkz8EmgD+aWAIceGFKMIAdmF/pH+vpgNV3d3kAKorcdAmWA==" - "resolved" "https://registry.npmjs.org/buffer-layout/-/buffer-layout-1.2.2.tgz" - "version" "1.2.2" - -"buffer@~6.0.3": - "integrity" "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==" - "resolved" "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz" - "version" "6.0.3" - dependencies: - "base64-js" "^1.3.1" - "ieee754" "^1.2.1" - -"buffer@6.0.1": - "integrity" "sha512-rVAXBwEcEoYtxnHSO5iWyhzV/O1WMtkUYWlfdLS7FjU4PnSJJHEfHXi/uHPI5EwltmOA794gN3bm3/pzuctWjQ==" - "resolved" "https://registry.npmjs.org/buffer/-/buffer-6.0.1.tgz" - "version" "6.0.1" - dependencies: - "base64-js" "^1.3.1" - "ieee754" "^1.2.1" - -"buffer@6.0.3": - "integrity" "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==" - "resolved" "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz" - "version" "6.0.3" - dependencies: - "base64-js" "^1.3.1" - "ieee754" "^1.2.1" - -"bufferutil@^4.0.1": - "integrity" "sha512-jduaYOYtnio4aIAyc6UbvPCVcgq7nYpVnucyxr6eCYg/Woad9Hf/oxxBRDnGGjPfjUm6j5O/uBWhIu4iLebFaw==" - "resolved" "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.6.tgz" - "version" "4.0.6" - dependencies: - "node-gyp-build" "^4.3.0" - -"callsites@^3.0.0": - "integrity" "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" - "resolved" "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz" - "version" "3.1.0" - -"camelcase@^5.3.1": - "integrity" "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" - "resolved" "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz" - "version" "5.3.1" - -"camelcase@^6.0.0": - "integrity" "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==" - "resolved" "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz" - "version" "6.3.0" - -"chalk@^2.0.0": - "integrity" "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==" - "resolved" "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" - "version" "2.4.2" - dependencies: - "ansi-styles" "^3.2.1" - "escape-string-regexp" "^1.0.5" - "supports-color" "^5.3.0" - -"chalk@^4.0.0", "chalk@^4.1.0": - "integrity" "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==" - "resolved" "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" - "version" "4.1.2" - dependencies: - "ansi-styles" "^4.1.0" - "supports-color" "^7.1.0" - -"chokidar@3.5.3": - "integrity" "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==" - "resolved" "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz" - "version" "3.5.3" - dependencies: - "anymatch" "~3.1.2" - "braces" "~3.0.2" - "glob-parent" "~5.1.2" - "is-binary-path" "~2.1.0" - "is-glob" "~4.0.1" - "normalize-path" "~3.0.0" - "readdirp" "~3.6.0" + bn.js "^5.0.0" + bs58 "^4.0.0" + text-encoding-utf-8 "^1.0.2" + +borsh@^0.7.0: + version "0.7.0" + resolved "https://registry.npmjs.org/borsh/-/borsh-0.7.0.tgz" + integrity sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA== + dependencies: + bn.js "^5.2.0" + bs58 "^4.0.0" + text-encoding-utf-8 "^1.0.2" + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +brace-expansion@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz" + integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== + dependencies: + balanced-match "^1.0.0" + +braces@^3.0.1, braces@~3.0.2: + version "3.0.2" + resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + +brorand@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz" + integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= + +browser-stdout@1.3.1: + version "1.3.1" + resolved "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz" + integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== + +bs58@^4.0.0, bs58@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz" + integrity sha1-vhYedsNU9veIrkBx9j806MTwpCo= + dependencies: + base-x "^3.0.2" + +buffer-from@^1.0.0, buffer-from@^1.1.0: + version "1.1.2" + resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz" + integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== + +buffer-layout@^1.2.0, buffer-layout@^1.2.2: + version "1.2.2" + resolved "https://registry.npmjs.org/buffer-layout/-/buffer-layout-1.2.2.tgz" + integrity sha512-kWSuLN694+KTk8SrYvCqwP2WcgQjoRCiF5b4QDvkkz8EmgD+aWAIceGFKMIAdmF/pH+vpgNV3d3kAKorcdAmWA== + +buffer@6.0.1: + version "6.0.1" + resolved "https://registry.npmjs.org/buffer/-/buffer-6.0.1.tgz" + integrity sha512-rVAXBwEcEoYtxnHSO5iWyhzV/O1WMtkUYWlfdLS7FjU4PnSJJHEfHXi/uHPI5EwltmOA794gN3bm3/pzuctWjQ== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.2.1" + +buffer@6.0.3, buffer@~6.0.3: + version "6.0.3" + resolved "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz" + integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.2.1" + +bufferutil@^4.0.1: + version "4.0.6" + resolved "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.6.tgz" + integrity sha512-jduaYOYtnio4aIAyc6UbvPCVcgq7nYpVnucyxr6eCYg/Woad9Hf/oxxBRDnGGjPfjUm6j5O/uBWhIu4iLebFaw== + dependencies: + node-gyp-build "^4.3.0" + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +camelcase@^5.3.1: + version "5.3.1" + resolved "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz" + integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== + +camelcase@^6.0.0: + version "6.3.0" + resolved "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz" + integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== + +chalk@^2.0.0: + version "2.4.2" + resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^4.0.0, chalk@^4.1.0: + version "4.1.2" + resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chokidar@3.5.3: + version "3.5.3" + resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz" + integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== + dependencies: + anymatch "~3.1.2" + braces "~3.0.2" + glob-parent "~5.1.2" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.6.0" optionalDependencies: - "fsevents" "~2.3.2" - -"circular-json@^0.5.9": - "integrity" "sha512-4ivwqHpIFJZBuhN3g/pEcdbnGUywkBblloGbkglyloVjjR3uT6tieI89MVOfbP2tHX5sgb01FuLgAOzebNlJNQ==" - "resolved" "https://registry.npmjs.org/circular-json/-/circular-json-0.5.9.tgz" - "version" "0.5.9" - -"cliui@^7.0.2": - "integrity" "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==" - "resolved" "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz" - "version" "7.0.4" - dependencies: - "string-width" "^4.2.0" - "strip-ansi" "^6.0.0" - "wrap-ansi" "^7.0.0" - -"color-convert@^1.9.0": - "integrity" "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==" - "resolved" "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" - "version" "1.9.3" - dependencies: - "color-name" "1.1.3" - -"color-convert@^2.0.1": - "integrity" "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==" - "resolved" "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" - "version" "2.0.1" - dependencies: - "color-name" "~1.1.4" - -"color-name@~1.1.4": - "integrity" "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - "resolved" "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" - "version" "1.1.4" - -"color-name@1.1.3": - "integrity" "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - "resolved" "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" - "version" "1.1.3" - -"commander@^2.20.3": - "integrity" "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" - "resolved" "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz" - "version" "2.20.3" - -"concat-map@0.0.1": - "integrity" "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - "resolved" "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" - "version" "0.0.1" - -"create-require@^1.1.0": - "integrity" "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==" - "resolved" "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz" - "version" "1.1.1" - -"cross-fetch@^3.1.4", "cross-fetch@^3.1.5": - "integrity" "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==" - "resolved" "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz" - "version" "3.1.5" - dependencies: - "node-fetch" "2.6.7" - -"cross-spawn@^7.0.2": - "integrity" "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==" - "resolved" "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz" - "version" "7.0.3" - dependencies: - "path-key" "^3.1.0" - "shebang-command" "^2.0.0" - "which" "^2.0.1" - -"crypto-hash@^1.3.0": - "integrity" "sha512-lyAZ0EMyjDkVvz8WOeVnuCPvKVBXcMv1l5SVqO1yC7PzTwrD/pPje/BIRbWhMoPe436U+Y2nD7f5bFx0kt+Sbg==" - "resolved" "https://registry.npmjs.org/crypto-hash/-/crypto-hash-1.3.0.tgz" - "version" "1.3.0" - -"debug@^4.0.1", "debug@^4.1.1", "debug@^4.3.1", "debug@4.3.3": - "integrity" "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==" - "resolved" "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz" - "version" "4.3.3" - dependencies: - "ms" "2.1.2" - -"decamelize@^4.0.0": - "integrity" "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==" - "resolved" "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz" - "version" "4.0.0" - -"deep-is@^0.1.3": - "integrity" "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" - "resolved" "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz" - "version" "0.1.4" - -"delay@^5.0.0": - "integrity" "sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==" - "resolved" "https://registry.npmjs.org/delay/-/delay-5.0.0.tgz" - "version" "5.0.0" - -"diff@^3.1.0": - "integrity" "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==" - "resolved" "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz" - "version" "3.5.0" - -"diff@^4.0.1": - "integrity" "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==" - "resolved" "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz" - "version" "4.0.2" - -"diff@5.0.0": - "integrity" "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==" - "resolved" "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz" - "version" "5.0.0" - -"dir-glob@^3.0.1": - "integrity" "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==" - "resolved" "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz" - "version" "3.0.1" - dependencies: - "path-type" "^4.0.0" - -"doctrine@^3.0.0": - "integrity" "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==" - "resolved" "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz" - "version" "3.0.0" - dependencies: - "esutils" "^2.0.2" - -"dot-case@^3.0.4": - "integrity" "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==" - "resolved" "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz" - "version" "3.0.4" - dependencies: - "no-case" "^3.0.4" - "tslib" "^2.0.3" - -"dotenv@10.0.0": - "integrity" "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==" - "resolved" "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz" - "version" "10.0.0" - -"elliptic@^6.5.4": - "integrity" "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==" - "resolved" "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz" - "version" "6.5.4" - dependencies: - "bn.js" "^4.11.9" - "brorand" "^1.1.0" - "hash.js" "^1.0.0" - "hmac-drbg" "^1.0.1" - "inherits" "^2.0.4" - "minimalistic-assert" "^1.0.1" - "minimalistic-crypto-utils" "^1.0.1" - -"emoji-regex@^8.0.0": - "integrity" "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - "resolved" "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" - "version" "8.0.0" - -"enquirer@^2.3.5": - "integrity" "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==" - "resolved" "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz" - "version" "2.3.6" - dependencies: - "ansi-colors" "^4.1.1" - -"es6-promise@^4.0.3": - "integrity" "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==" - "resolved" "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz" - "version" "4.2.8" - -"es6-promisify@^5.0.0": - "integrity" "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=" - "resolved" "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz" - "version" "5.0.0" - dependencies: - "es6-promise" "^4.0.3" - -"escalade@^3.1.1": - "integrity" "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" - "resolved" "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz" - "version" "3.1.1" - -"escape-string-regexp@^1.0.5": - "integrity" "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" - "resolved" "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" - "version" "1.0.5" - -"escape-string-regexp@^4.0.0", "escape-string-regexp@4.0.0": - "integrity" "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==" - "resolved" "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" - "version" "4.0.0" - -"eslint-config-prettier@^7.2.0": - "integrity" "sha512-rV4Qu0C3nfJKPOAhFujFxB7RMP+URFyQqqOZW9DMRD7ZDTFyjaIlETU3xzHELt++4ugC0+Jm084HQYkkJe+Ivg==" - "resolved" "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-7.2.0.tgz" - "version" "7.2.0" - -"eslint-scope@^5.1.1": - "integrity" "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==" - "resolved" "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz" - "version" "5.1.1" - dependencies: - "esrecurse" "^4.3.0" - "estraverse" "^4.1.1" - -"eslint-utils@^2.1.0": - "integrity" "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==" - "resolved" "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz" - "version" "2.1.0" - dependencies: - "eslint-visitor-keys" "^1.1.0" - -"eslint-utils@^3.0.0": - "integrity" "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==" - "resolved" "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz" - "version" "3.0.0" - dependencies: - "eslint-visitor-keys" "^2.0.0" - -"eslint-visitor-keys@^1.1.0": - "integrity" "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==" - "resolved" "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz" - "version" "1.3.0" - -"eslint-visitor-keys@^1.3.0": - "integrity" "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==" - "resolved" "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz" - "version" "1.3.0" - -"eslint-visitor-keys@^2.0.0": - "integrity" "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==" - "resolved" "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz" - "version" "2.1.0" - -"eslint@*", "eslint@^5.0.0 || ^6.0.0 || ^7.0.0", "eslint@^7.28.0", "eslint@>=5", "eslint@>=7.0.0": - "integrity" "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==" - "resolved" "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz" - "version" "7.32.0" + fsevents "~2.3.2" + +circular-json@^0.5.9: + version "0.5.9" + resolved "https://registry.npmjs.org/circular-json/-/circular-json-0.5.9.tgz" + integrity sha512-4ivwqHpIFJZBuhN3g/pEcdbnGUywkBblloGbkglyloVjjR3uT6tieI89MVOfbP2tHX5sgb01FuLgAOzebNlJNQ== + +cliui@^7.0.2: + version "7.0.4" + resolved "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz" + integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^7.0.0" + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" + integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +commander@^2.20.3: + version "2.20.3" + resolved "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" + integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + +create-require@^1.1.0: + version "1.1.1" + resolved "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz" + integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== + +cross-fetch@^3.1.4, cross-fetch@^3.1.5: + version "3.1.5" + resolved "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz" + integrity sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw== + dependencies: + node-fetch "2.6.7" + +cross-spawn@^7.0.2: + version "7.0.3" + resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +crypto-hash@^1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/crypto-hash/-/crypto-hash-1.3.0.tgz" + integrity sha512-lyAZ0EMyjDkVvz8WOeVnuCPvKVBXcMv1l5SVqO1yC7PzTwrD/pPje/BIRbWhMoPe436U+Y2nD7f5bFx0kt+Sbg== + +debug@4.3.3, debug@^4.0.1, debug@^4.1.1, debug@^4.3.1: + version "4.3.3" + resolved "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz" + integrity sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q== + dependencies: + ms "2.1.2" + +decamelize@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz" + integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ== + +deep-is@^0.1.3: + version "0.1.4" + resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz" + integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== + +delay@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/delay/-/delay-5.0.0.tgz" + integrity sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw== + +diff@5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz" + integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w== + +diff@^3.1.0: + version "3.5.0" + resolved "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz" + integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA== + +diff@^4.0.1: + version "4.0.2" + resolved "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz" + integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== + +dir-glob@^3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz" + integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== + dependencies: + path-type "^4.0.0" + +doctrine@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz" + integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== + dependencies: + esutils "^2.0.2" + +dot-case@^3.0.4: + version "3.0.4" + resolved "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz" + integrity sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + +dotenv@10.0.0: + version "10.0.0" + resolved "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz" + integrity sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q== + +elliptic@^6.5.4: + version "6.5.4" + resolved "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz" + integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== + dependencies: + bn.js "^4.11.9" + brorand "^1.1.0" + hash.js "^1.0.0" + hmac-drbg "^1.0.1" + inherits "^2.0.4" + minimalistic-assert "^1.0.1" + minimalistic-crypto-utils "^1.0.1" + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +enquirer@^2.3.5: + version "2.3.6" + resolved "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz" + integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== + dependencies: + ansi-colors "^4.1.1" + +es6-promise@^4.0.3: + version "4.2.8" + resolved "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz" + integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w== + +es6-promisify@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz" + integrity sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM= + dependencies: + es6-promise "^4.0.3" + +escalade@^3.1.1: + version "3.1.1" + resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz" + integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + +escape-string-regexp@4.0.0, escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" + integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + +eslint-config-prettier@^7.2.0: + version "7.2.0" + resolved "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-7.2.0.tgz" + integrity sha512-rV4Qu0C3nfJKPOAhFujFxB7RMP+URFyQqqOZW9DMRD7ZDTFyjaIlETU3xzHELt++4ugC0+Jm084HQYkkJe+Ivg== + +eslint-scope@^5.1.1: + version "5.1.1" + resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz" + integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== + dependencies: + esrecurse "^4.3.0" + estraverse "^4.1.1" + +eslint-utils@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz" + integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== + dependencies: + eslint-visitor-keys "^1.1.0" + +eslint-utils@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz" + integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA== + dependencies: + eslint-visitor-keys "^2.0.0" + +eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz" + integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== + +eslint-visitor-keys@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz" + integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== + +eslint@^7.28.0: + version "7.32.0" + resolved "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz" + integrity sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA== dependencies: "@babel/code-frame" "7.12.11" "@eslint/eslintrc" "^0.4.3" "@humanwhocodes/config-array" "^0.5.0" - "ajv" "^6.10.0" - "chalk" "^4.0.0" - "cross-spawn" "^7.0.2" - "debug" "^4.0.1" - "doctrine" "^3.0.0" - "enquirer" "^2.3.5" - "escape-string-regexp" "^4.0.0" - "eslint-scope" "^5.1.1" - "eslint-utils" "^2.1.0" - "eslint-visitor-keys" "^2.0.0" - "espree" "^7.3.1" - "esquery" "^1.4.0" - "esutils" "^2.0.2" - "fast-deep-equal" "^3.1.3" - "file-entry-cache" "^6.0.1" - "functional-red-black-tree" "^1.0.1" - "glob-parent" "^5.1.2" - "globals" "^13.6.0" - "ignore" "^4.0.6" - "import-fresh" "^3.0.0" - "imurmurhash" "^0.1.4" - "is-glob" "^4.0.0" - "js-yaml" "^3.13.1" - "json-stable-stringify-without-jsonify" "^1.0.1" - "levn" "^0.4.1" - "lodash.merge" "^4.6.2" - "minimatch" "^3.0.4" - "natural-compare" "^1.4.0" - "optionator" "^0.9.1" - "progress" "^2.0.0" - "regexpp" "^3.1.0" - "semver" "^7.2.1" - "strip-ansi" "^6.0.0" - "strip-json-comments" "^3.1.0" - "table" "^6.0.9" - "text-table" "^0.2.0" - "v8-compile-cache" "^2.0.3" - -"espree@^7.3.0", "espree@^7.3.1": - "integrity" "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==" - "resolved" "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz" - "version" "7.3.1" - dependencies: - "acorn" "^7.4.0" - "acorn-jsx" "^5.3.1" - "eslint-visitor-keys" "^1.3.0" - -"esprima@^4.0.0": - "integrity" "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" - "resolved" "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz" - "version" "4.0.1" - -"esquery@^1.4.0": - "integrity" "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==" - "resolved" "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz" - "version" "1.4.0" - dependencies: - "estraverse" "^5.1.0" - -"esrecurse@^4.3.0": - "integrity" "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==" - "resolved" "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz" - "version" "4.3.0" - dependencies: - "estraverse" "^5.2.0" - -"estraverse@^4.1.1": - "integrity" "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" - "resolved" "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz" - "version" "4.3.0" - -"estraverse@^5.1.0", "estraverse@^5.2.0": - "integrity" "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==" - "resolved" "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz" - "version" "5.3.0" - -"esutils@^2.0.2": - "integrity" "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" - "resolved" "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz" - "version" "2.0.3" - -"eventemitter3@^4.0.7": - "integrity" "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" - "resolved" "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz" - "version" "4.0.7" - -"eyes@^0.1.8": - "integrity" "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=" - "resolved" "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz" - "version" "0.1.8" - -"fast-deep-equal@^3.1.1", "fast-deep-equal@^3.1.3": - "integrity" "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" - "resolved" "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" - "version" "3.1.3" - -"fast-glob@^3.2.9": - "integrity" "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==" - "resolved" "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz" - "version" "3.2.11" + ajv "^6.10.0" + chalk "^4.0.0" + cross-spawn "^7.0.2" + debug "^4.0.1" + doctrine "^3.0.0" + enquirer "^2.3.5" + escape-string-regexp "^4.0.0" + eslint-scope "^5.1.1" + eslint-utils "^2.1.0" + eslint-visitor-keys "^2.0.0" + espree "^7.3.1" + esquery "^1.4.0" + esutils "^2.0.2" + fast-deep-equal "^3.1.3" + file-entry-cache "^6.0.1" + functional-red-black-tree "^1.0.1" + glob-parent "^5.1.2" + globals "^13.6.0" + ignore "^4.0.6" + import-fresh "^3.0.0" + imurmurhash "^0.1.4" + is-glob "^4.0.0" + js-yaml "^3.13.1" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.4.1" + lodash.merge "^4.6.2" + minimatch "^3.0.4" + natural-compare "^1.4.0" + optionator "^0.9.1" + progress "^2.0.0" + regexpp "^3.1.0" + semver "^7.2.1" + strip-ansi "^6.0.0" + strip-json-comments "^3.1.0" + table "^6.0.9" + text-table "^0.2.0" + v8-compile-cache "^2.0.3" + +espree@^7.3.0, espree@^7.3.1: + version "7.3.1" + resolved "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz" + integrity sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g== + dependencies: + acorn "^7.4.0" + acorn-jsx "^5.3.1" + eslint-visitor-keys "^1.3.0" + +esprima@^4.0.0: + version "4.0.1" + resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +esquery@^1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz" + integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== + dependencies: + estraverse "^5.1.0" + +esrecurse@^4.3.0: + version "4.3.0" + resolved "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== + dependencies: + estraverse "^5.2.0" + +estraverse@^4.1.1: + version "4.3.0" + resolved "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + +estraverse@^5.1.0, estraverse@^5.2.0: + version "5.3.0" + resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz" + integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +eventemitter3@^4.0.7: + version "4.0.7" + resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz" + integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== + +eyes@^0.1.8: + version "0.1.8" + resolved "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz" + integrity sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A= + +fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: + 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-glob@^3.2.9: + version "3.2.11" + resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz" + integrity sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew== dependencies: "@nodelib/fs.stat" "^2.0.2" "@nodelib/fs.walk" "^1.2.3" - "glob-parent" "^5.1.2" - "merge2" "^1.3.0" - "micromatch" "^4.0.4" - -"fast-json-stable-stringify@^2.0.0": - "integrity" "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" - "resolved" "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz" - "version" "2.1.0" - -"fast-levenshtein@^2.0.6": - "integrity" "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" - "resolved" "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz" - "version" "2.0.6" - -"fast-stable-stringify@^1.0.0": - "integrity" "sha1-XFVDRisiru79NtBbNOUceMuG0xM=" - "resolved" "https://registry.npmjs.org/fast-stable-stringify/-/fast-stable-stringify-1.0.0.tgz" - "version" "1.0.0" - -"fastq@^1.6.0": - "integrity" "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==" - "resolved" "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz" - "version" "1.13.0" - dependencies: - "reusify" "^1.0.4" - -"file-entry-cache@^6.0.1": - "integrity" "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==" - "resolved" "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz" - "version" "6.0.1" - dependencies: - "flat-cache" "^3.0.4" - -"fill-range@^7.0.1": - "integrity" "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==" - "resolved" "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz" - "version" "7.0.1" - dependencies: - "to-regex-range" "^5.0.1" - -"find-up@5.0.0": - "integrity" "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==" - "resolved" "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz" - "version" "5.0.0" - dependencies: - "locate-path" "^6.0.0" - "path-exists" "^4.0.0" - -"find@^0.3.0": - "integrity" "sha512-iSd+O4OEYV/I36Zl8MdYJO0xD82wH528SaCieTVHhclgiYNe9y+yPKSwK+A7/WsmHL1EZ+pYUJBXWTL5qofksw==" - "resolved" "https://registry.npmjs.org/find/-/find-0.3.0.tgz" - "version" "0.3.0" - dependencies: - "traverse-chain" "~0.1.0" - -"flat-cache@^3.0.4": - "integrity" "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==" - "resolved" "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz" - "version" "3.0.4" - dependencies: - "flatted" "^3.1.0" - "rimraf" "^3.0.2" - -"flat@^5.0.2": - "integrity" "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==" - "resolved" "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz" - "version" "5.0.2" - -"flatted@^3.1.0": - "integrity" "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==" - "resolved" "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz" - "version" "3.2.5" - -"fs.realpath@^1.0.0": - "integrity" "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - "resolved" "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" - "version" "1.0.0" - -"fsevents@~2.3.2": - "integrity" "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==" - "resolved" "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz" - "version" "2.3.2" - -"functional-red-black-tree@^1.0.1": - "integrity" "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=" - "resolved" "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz" - "version" "1.0.1" - -"get-caller-file@^2.0.5": - "integrity" "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" - "resolved" "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz" - "version" "2.0.5" - -"glob-parent@^5.1.2", "glob-parent@~5.1.2": - "integrity" "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==" - "resolved" "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" - "version" "5.1.2" - dependencies: - "is-glob" "^4.0.1" - -"glob@^7.1.3", "glob@^7.2.0", "glob@7.2.0": - "integrity" "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==" - "resolved" "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz" - "version" "7.2.0" - dependencies: - "fs.realpath" "^1.0.0" - "inflight" "^1.0.4" - "inherits" "2" - "minimatch" "^3.0.4" - "once" "^1.3.0" - "path-is-absolute" "^1.0.0" - -"globals@^13.6.0", "globals@^13.9.0": - "integrity" "sha512-317dFlgY2pdJZ9rspXDks7073GpDmXdfbM3vYYp0HAMKGDh1FfWPleI2ljVNLQX5M5lXcAslTcPTrOrMEFOjyw==" - "resolved" "https://registry.npmjs.org/globals/-/globals-13.12.1.tgz" - "version" "13.12.1" - dependencies: - "type-fest" "^0.20.2" - -"globby@^11.0.3": - "integrity" "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==" - "resolved" "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz" - "version" "11.1.0" - dependencies: - "array-union" "^2.1.0" - "dir-glob" "^3.0.1" - "fast-glob" "^3.2.9" - "ignore" "^5.2.0" - "merge2" "^1.4.1" - "slash" "^3.0.0" - -"growl@1.10.5": - "integrity" "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==" - "resolved" "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz" - "version" "1.10.5" - -"has-flag@^3.0.0": - "integrity" "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - "resolved" "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz" - "version" "3.0.0" - -"has-flag@^4.0.0": - "integrity" "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - "resolved" "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" - "version" "4.0.0" - -"hash.js@^1.0.0", "hash.js@^1.0.3", "hash.js@1.1.7": - "integrity" "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==" - "resolved" "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz" - "version" "1.1.7" - dependencies: - "inherits" "^2.0.3" - "minimalistic-assert" "^1.0.1" - -"he@1.2.0": - "integrity" "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==" - "resolved" "https://registry.npmjs.org/he/-/he-1.2.0.tgz" - "version" "1.2.0" - -"hmac-drbg@^1.0.1": - "integrity" "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=" - "resolved" "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz" - "version" "1.0.1" - dependencies: - "hash.js" "^1.0.3" - "minimalistic-assert" "^1.0.0" - "minimalistic-crypto-utils" "^1.0.1" - -"ieee754@^1.2.1": - "integrity" "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" - "resolved" "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz" - "version" "1.2.1" - -"ignore@^4.0.6": - "integrity" "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==" - "resolved" "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz" - "version" "4.0.6" - -"ignore@^5.1.8": - "integrity" "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==" - "resolved" "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz" - "version" "5.2.0" - -"ignore@^5.2.0": - "integrity" "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==" - "resolved" "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz" - "version" "5.2.0" - -"import-fresh@^3.0.0", "import-fresh@^3.2.1": - "integrity" "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==" - "resolved" "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz" - "version" "3.3.0" - dependencies: - "parent-module" "^1.0.0" - "resolve-from" "^4.0.0" - -"imurmurhash@^0.1.4": - "integrity" "sha1-khi5srkoojixPcT7a21XbyMUU+o=" - "resolved" "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz" - "version" "0.1.4" - -"inflight@^1.0.4": - "integrity" "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=" - "resolved" "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" - "version" "1.0.6" - dependencies: - "once" "^1.3.0" - "wrappy" "1" - -"inherits@^2.0.3", "inherits@^2.0.4", "inherits@2": - "integrity" "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - "resolved" "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" - "version" "2.0.4" - -"is-binary-path@~2.1.0": - "integrity" "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==" - "resolved" "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz" - "version" "2.1.0" - dependencies: - "binary-extensions" "^2.0.0" - -"is-extglob@^2.1.1": - "integrity" "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" - "resolved" "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" - "version" "2.1.1" - -"is-fullwidth-code-point@^3.0.0": - "integrity" "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" - "resolved" "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" - "version" "3.0.0" - -"is-glob@^4.0.0", "is-glob@^4.0.1", "is-glob@~4.0.1": - "integrity" "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==" - "resolved" "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz" - "version" "4.0.3" - dependencies: - "is-extglob" "^2.1.1" - -"is-number@^7.0.0": - "integrity" "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" - "resolved" "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" - "version" "7.0.0" - -"is-plain-obj@^2.1.0": - "integrity" "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==" - "resolved" "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz" - "version" "2.1.0" - -"is-unicode-supported@^0.1.0": - "integrity" "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==" - "resolved" "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz" - "version" "0.1.0" - -"isexe@^2.0.0": - "integrity" "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" - "resolved" "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" - "version" "2.0.0" - -"isomorphic-ws@^4.0.1": - "integrity" "sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==" - "resolved" "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz" - "version" "4.0.1" - -"jayson@^3.4.4": - "integrity" "sha512-f71uvrAWTtrwoww6MKcl9phQTC+56AopLyEenWvKVAIMz+q0oVGj6tenLZ7Z6UiPBkJtKLj4kt0tACllFQruGQ==" - "resolved" "https://registry.npmjs.org/jayson/-/jayson-3.6.6.tgz" - "version" "3.6.6" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" + +fast-json-stable-stringify@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +fast-levenshtein@^2.0.6: + version "2.0.6" + resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz" + integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= + +fast-stable-stringify@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/fast-stable-stringify/-/fast-stable-stringify-1.0.0.tgz" + integrity sha1-XFVDRisiru79NtBbNOUceMuG0xM= + +fastq@^1.6.0: + version "1.13.0" + resolved "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz" + integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw== + dependencies: + reusify "^1.0.4" + +file-entry-cache@^6.0.1: + version "6.0.1" + resolved "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz" + integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== + dependencies: + flat-cache "^3.0.4" + +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + +find-up@5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== + dependencies: + locate-path "^6.0.0" + path-exists "^4.0.0" + +find@^0.3.0: + version "0.3.0" + resolved "https://registry.npmjs.org/find/-/find-0.3.0.tgz" + integrity sha512-iSd+O4OEYV/I36Zl8MdYJO0xD82wH528SaCieTVHhclgiYNe9y+yPKSwK+A7/WsmHL1EZ+pYUJBXWTL5qofksw== + dependencies: + traverse-chain "~0.1.0" + +flat-cache@^3.0.4: + version "3.0.4" + resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz" + integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== + dependencies: + flatted "^3.1.0" + rimraf "^3.0.2" + +flat@^5.0.2: + version "5.0.2" + resolved "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz" + integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== + +flatted@^3.1.0: + version "3.2.5" + resolved "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz" + integrity sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg== + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" + integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + +fsevents@~2.3.2: + version "2.3.2" + resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz" + integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== + +functional-red-black-tree@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz" + integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= + +get-caller-file@^2.0.5: + 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-parent@^5.1.2, glob-parent@~5.1.2: + version "5.1.2" + resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +glob@7.2.0, glob@^7.1.3, glob@^7.2.0: + version "7.2.0" + resolved "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz" + integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +globals@^13.6.0, globals@^13.9.0: + version "13.12.1" + resolved "https://registry.npmjs.org/globals/-/globals-13.12.1.tgz" + integrity sha512-317dFlgY2pdJZ9rspXDks7073GpDmXdfbM3vYYp0HAMKGDh1FfWPleI2ljVNLQX5M5lXcAslTcPTrOrMEFOjyw== + dependencies: + type-fest "^0.20.2" + +globby@^11.0.3: + version "11.1.0" + resolved "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz" + integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== + dependencies: + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.2.9" + ignore "^5.2.0" + merge2 "^1.4.1" + slash "^3.0.0" + +growl@1.10.5: + version "1.10.5" + resolved "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz" + integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA== + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz" + integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +hash.js@1.1.7, hash.js@^1.0.0, hash.js@^1.0.3: + version "1.1.7" + resolved "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz" + integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== + dependencies: + inherits "^2.0.3" + minimalistic-assert "^1.0.1" + +he@1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/he/-/he-1.2.0.tgz" + integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== + +hmac-drbg@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz" + integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= + dependencies: + hash.js "^1.0.3" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.1" + +ieee754@^1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + +ignore@^4.0.6: + version "4.0.6" + resolved "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz" + integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== + +ignore@^5.1.8, ignore@^5.2.0: + version "5.2.0" + resolved "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz" + integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ== + +import-fresh@^3.0.0, import-fresh@^3.2.1: + version "3.3.0" + resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz" + integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz" + integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" + integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@^2.0.3, inherits@^2.0.4: + version "2.0.4" + resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" + integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: + version "4.0.3" + resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-plain-obj@^2.1.0: + 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-unicode-supported@^0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz" + integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" + integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= + +isomorphic-ws@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz" + integrity sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w== + +jayson@^3.4.4: + version "3.6.6" + resolved "https://registry.npmjs.org/jayson/-/jayson-3.6.6.tgz" + integrity sha512-f71uvrAWTtrwoww6MKcl9phQTC+56AopLyEenWvKVAIMz+q0oVGj6tenLZ7Z6UiPBkJtKLj4kt0tACllFQruGQ== dependencies: "@types/connect" "^3.4.33" "@types/express-serve-static-core" "^4.17.9" "@types/lodash" "^4.14.159" "@types/node" "^12.12.54" "@types/ws" "^7.4.4" - "commander" "^2.20.3" - "delay" "^5.0.0" - "es6-promisify" "^5.0.0" - "eyes" "^0.1.8" - "isomorphic-ws" "^4.0.1" - "json-stringify-safe" "^5.0.1" - "JSONStream" "^1.3.5" - "lodash" "^4.17.20" - "uuid" "^8.3.2" - "ws" "^7.4.5" - -"js-sha256@^0.9.0": - "integrity" "sha512-sga3MHh9sgQN2+pJ9VYZ+1LPwXOxuBJBA5nrR5/ofPfuiJBE2hnjsaN8se8JznOmGLN2p49Pe5U/ttafcs/apA==" - "resolved" "https://registry.npmjs.org/js-sha256/-/js-sha256-0.9.0.tgz" - "version" "0.9.0" - -"js-sha3@^0.8.0": - "integrity" "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==" - "resolved" "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz" - "version" "0.8.0" - -"js-tokens@^4.0.0": - "integrity" "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - "resolved" "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" - "version" "4.0.0" - -"js-yaml@^3.13.1": - "integrity" "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==" - "resolved" "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz" - "version" "3.14.1" - dependencies: - "argparse" "^1.0.7" - "esprima" "^4.0.0" - -"js-yaml@4.1.0": - "integrity" "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==" - "resolved" "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz" - "version" "4.1.0" - dependencies: - "argparse" "^2.0.1" - -"json-schema-traverse@^0.4.1": - "integrity" "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" - "resolved" "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz" - "version" "0.4.1" - -"json-schema-traverse@^1.0.0": - "integrity" "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" - "resolved" "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz" - "version" "1.0.0" - -"json-stable-stringify-without-jsonify@^1.0.1": - "integrity" "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=" - "resolved" "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz" - "version" "1.0.1" - -"json-stringify-safe@^5.0.1": - "integrity" "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" - "resolved" "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" - "version" "5.0.1" - -"json5@^1.0.1": - "integrity" "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==" - "resolved" "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz" - "version" "1.0.1" - dependencies: - "minimist" "^1.2.0" - -"jsonc-parser@^3.0.0": - "integrity" "sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA==" - "resolved" "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.0.0.tgz" - "version" "3.0.0" - -"jsonparse@^1.2.0": - "integrity" "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=" - "resolved" "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz" - "version" "1.3.1" - -"JSONStream@^1.3.5": - "integrity" "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==" - "resolved" "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz" - "version" "1.3.5" - dependencies: - "jsonparse" "^1.2.0" - "through" ">=2.2.7 <3" - -"levn@^0.4.1": - "integrity" "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==" - "resolved" "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz" - "version" "0.4.1" - dependencies: - "prelude-ls" "^1.2.1" - "type-check" "~0.4.0" - -"locate-path@^6.0.0": - "integrity" "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==" - "resolved" "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz" - "version" "6.0.0" - dependencies: - "p-locate" "^5.0.0" - -"lodash.merge@^4.6.2": - "integrity" "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" - "resolved" "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz" - "version" "4.6.2" - -"lodash.truncate@^4.4.2": - "integrity" "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=" - "resolved" "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz" - "version" "4.4.2" - -"lodash@^4.17.20": - "integrity" "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - "resolved" "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" - "version" "4.17.21" - -"log-symbols@4.1.0": - "integrity" "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==" - "resolved" "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz" - "version" "4.1.0" - dependencies: - "chalk" "^4.1.0" - "is-unicode-supported" "^0.1.0" - -"lower-case@^2.0.2": - "integrity" "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==" - "resolved" "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz" - "version" "2.0.2" - dependencies: - "tslib" "^2.0.3" - -"lru-cache@^6.0.0": - "integrity" "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==" - "resolved" "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz" - "version" "6.0.0" - dependencies: - "yallist" "^4.0.0" - -"lunr@^2.3.9": - "integrity" "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==" - "resolved" "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz" - "version" "2.3.9" - -"make-error@^1.1.1": - "integrity" "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" - "resolved" "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz" - "version" "1.3.6" - -"marked@^4.0.12": - "integrity" "sha512-hgibXWrEDNBWgGiK18j/4lkS6ihTe9sxtV4Q1OQppb/0zzyPSzoFANBa5MfsG/zgsWklmNnhm0XACZOH/0HBiQ==" - "resolved" "https://registry.npmjs.org/marked/-/marked-4.0.12.tgz" - "version" "4.0.12" - -"merge2@^1.3.0", "merge2@^1.4.1": - "integrity" "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" - "resolved" "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz" - "version" "1.4.1" - -"micromatch@^4.0.4": - "integrity" "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==" - "resolved" "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz" - "version" "4.0.4" - dependencies: - "braces" "^3.0.1" - "picomatch" "^2.2.3" + JSONStream "^1.3.5" + commander "^2.20.3" + delay "^5.0.0" + es6-promisify "^5.0.0" + eyes "^0.1.8" + isomorphic-ws "^4.0.1" + json-stringify-safe "^5.0.1" + lodash "^4.17.20" + uuid "^8.3.2" + ws "^7.4.5" + +js-sha256@^0.9.0: + version "0.9.0" + resolved "https://registry.npmjs.org/js-sha256/-/js-sha256-0.9.0.tgz" + integrity sha512-sga3MHh9sgQN2+pJ9VYZ+1LPwXOxuBJBA5nrR5/ofPfuiJBE2hnjsaN8se8JznOmGLN2p49Pe5U/ttafcs/apA== + +js-sha3@^0.8.0: + version "0.8.0" + resolved "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz" + integrity sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q== + +js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + +js-yaml@^3.13.1: + version "3.14.1" + resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz" + integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +json-schema-traverse@^0.4.1: + 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-traverse@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz" + integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== + +json-stable-stringify-without-jsonify@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz" + integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= + +json-stringify-safe@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" + integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= + +json5@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz" + integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== + dependencies: + minimist "^1.2.0" + +jsonc-parser@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.0.0.tgz" + integrity sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA== + +jsonparse@^1.2.0: + version "1.3.1" + resolved "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz" + integrity sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA= + +levn@^0.4.1: + version "0.4.1" + resolved "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz" + integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== + dependencies: + prelude-ls "^1.2.1" + type-check "~0.4.0" + +locate-path@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz" + integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== + dependencies: + p-locate "^5.0.0" + +lodash.merge@^4.6.2: + version "4.6.2" + resolved "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz" + integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== + +lodash.truncate@^4.4.2: + version "4.4.2" + resolved "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz" + integrity sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM= + +lodash@^4.17.20: + version "4.17.21" + resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +log-symbols@4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz" + integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== + dependencies: + chalk "^4.1.0" + is-unicode-supported "^0.1.0" + +lower-case@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz" + integrity sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg== + dependencies: + tslib "^2.0.3" + +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + +lunr@^2.3.9: + version "2.3.9" + resolved "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz" + integrity sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow== + +make-error@^1.1.1: + version "1.3.6" + resolved "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz" + integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== + +marked@^4.0.12: + version "4.0.12" + resolved "https://registry.npmjs.org/marked/-/marked-4.0.12.tgz" + integrity sha512-hgibXWrEDNBWgGiK18j/4lkS6ihTe9sxtV4Q1OQppb/0zzyPSzoFANBa5MfsG/zgsWklmNnhm0XACZOH/0HBiQ== + +merge2@^1.3.0, merge2@^1.4.1: + version "1.4.1" + resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + +micromatch@^4.0.4: + version "4.0.4" + resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz" + integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg== + dependencies: + braces "^3.0.1" + picomatch "^2.2.3" + +minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: + 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@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz" + integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= -"minimalistic-assert@^1.0.0", "minimalistic-assert@^1.0.1": - "integrity" "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" - "resolved" "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz" - "version" "1.0.1" - -"minimalistic-crypto-utils@^1.0.1": - "integrity" "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" - "resolved" "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz" - "version" "1.0.1" - -"minimatch@^3.0.4": - "integrity" "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==" - "resolved" "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" - "version" "3.1.2" +minimatch@4.2.1: + version "4.2.1" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-4.2.1.tgz" + integrity sha512-9Uq1ChtSZO+Mxa/CL1eGizn2vRn3MlLgzhT0Iz8zaY8NdvxvB0d5QdPFmCKf7JKA9Lerx5vRrnwO03jsSfGG9g== dependencies: - "brace-expansion" "^1.1.7" - -"minimatch@^5.0.1": - "integrity" "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==" - "resolved" "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz" - "version" "5.0.1" + brace-expansion "^1.1.7" + +minimatch@^3.0.4: + version "3.1.2" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== dependencies: - "brace-expansion" "^2.0.1" + brace-expansion "^1.1.7" -"minimatch@4.2.1": - "integrity" "sha512-9Uq1ChtSZO+Mxa/CL1eGizn2vRn3MlLgzhT0Iz8zaY8NdvxvB0d5QdPFmCKf7JKA9Lerx5vRrnwO03jsSfGG9g==" - "resolved" "https://registry.npmjs.org/minimatch/-/minimatch-4.2.1.tgz" - "version" "4.2.1" - dependencies: - "brace-expansion" "^1.1.7" +minimatch@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz" + integrity sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g== + dependencies: + brace-expansion "^2.0.1" -"minimist@^1.2.0", "minimist@^1.2.5": - "integrity" "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" - "resolved" "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz" - "version" "1.2.5" - -"mkdirp@^0.5.1": - "integrity" "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==" - "resolved" "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz" - "version" "0.5.5" - dependencies: - "minimist" "^1.2.5" +minimist@^1.2.0, minimist@^1.2.5: + version "1.2.5" + resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz" + integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== + +mkdirp@^0.5.1: + version "0.5.5" + resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz" + integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== + dependencies: + minimist "^1.2.5" -"mocha@^3.X.X || ^4.X.X || ^5.X.X || ^6.X.X || ^7.X.X || ^8.X.X || ^9.X.X", "mocha@^9.2.2": - "integrity" "sha512-L6XC3EdwT6YrIk0yXpavvLkn8h+EU+Y5UcCHKECyMbdUIxyMuZj4bX4U9e1nvnvUUvQVsV2VHQr5zLdcUkhW/g==" - "resolved" "https://registry.npmjs.org/mocha/-/mocha-9.2.2.tgz" - "version" "9.2.2" +mocha@^9.2.2: + version "9.2.2" + resolved "https://registry.npmjs.org/mocha/-/mocha-9.2.2.tgz" + integrity sha512-L6XC3EdwT6YrIk0yXpavvLkn8h+EU+Y5UcCHKECyMbdUIxyMuZj4bX4U9e1nvnvUUvQVsV2VHQr5zLdcUkhW/g== dependencies: "@ungap/promise-all-settled" "1.1.2" - "ansi-colors" "4.1.1" - "browser-stdout" "1.3.1" - "chokidar" "3.5.3" - "debug" "4.3.3" - "diff" "5.0.0" - "escape-string-regexp" "4.0.0" - "find-up" "5.0.0" - "glob" "7.2.0" - "growl" "1.10.5" - "he" "1.2.0" - "js-yaml" "4.1.0" - "log-symbols" "4.1.0" - "minimatch" "4.2.1" - "ms" "2.1.3" - "nanoid" "3.3.1" - "serialize-javascript" "6.0.0" - "strip-json-comments" "3.1.1" - "supports-color" "8.1.1" - "which" "2.0.2" - "workerpool" "6.2.0" - "yargs" "16.2.0" - "yargs-parser" "20.2.4" - "yargs-unparser" "2.0.0" - -"ms@2.1.2": - "integrity" "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - "resolved" "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" - "version" "2.1.2" - -"ms@2.1.3": - "integrity" "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - "resolved" "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" - "version" "2.1.3" - -"nanoid@3.3.1": - "integrity" "sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==" - "resolved" "https://registry.npmjs.org/nanoid/-/nanoid-3.3.1.tgz" - "version" "3.3.1" - -"natural-compare@^1.4.0": - "integrity" "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=" - "resolved" "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz" - "version" "1.4.0" - -"no-case@^3.0.4": - "integrity" "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==" - "resolved" "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz" - "version" "3.0.4" - dependencies: - "lower-case" "^2.0.2" - "tslib" "^2.0.3" - -"node-addon-api@^2.0.0": - "integrity" "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==" - "resolved" "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz" - "version" "2.0.2" - -"node-fetch@2.6.7": - "integrity" "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==" - "resolved" "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz" - "version" "2.6.7" - dependencies: - "whatwg-url" "^5.0.0" - -"node-gyp-build@^4.2.0", "node-gyp-build@^4.3.0": - "integrity" "sha512-iWjXZvmboq0ja1pUGULQBexmxq8CV4xBhX7VDOTbL7ZR4FOowwY/VOtRxBN/yKxmdGoIp4j5ysNT4u3S2pDQ3Q==" - "resolved" "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.3.0.tgz" - "version" "4.3.0" - -"normalize-path@^3.0.0", "normalize-path@~3.0.0": - "integrity" "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" - "resolved" "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" - "version" "3.0.0" - -"once@^1.3.0": - "integrity" "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=" - "resolved" "https://registry.npmjs.org/once/-/once-1.4.0.tgz" - "version" "1.4.0" - dependencies: - "wrappy" "1" - -"optionator@^0.9.1": - "integrity" "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==" - "resolved" "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz" - "version" "0.9.1" - dependencies: - "deep-is" "^0.1.3" - "fast-levenshtein" "^2.0.6" - "levn" "^0.4.1" - "prelude-ls" "^1.2.1" - "type-check" "^0.4.0" - "word-wrap" "^1.2.3" - -"p-limit@^3.0.2": - "integrity" "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==" - "resolved" "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz" - "version" "3.1.0" - dependencies: - "yocto-queue" "^0.1.0" - -"p-locate@^5.0.0": - "integrity" "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==" - "resolved" "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz" - "version" "5.0.0" - dependencies: - "p-limit" "^3.0.2" - -"pako@^2.0.3": - "integrity" "sha512-v8tweI900AUkZN6heMU/4Uy4cXRc2AYNRggVmTR+dEncawDJgCdLMximOVA2p4qO57WMynangsfGRb5WD6L1Bg==" - "resolved" "https://registry.npmjs.org/pako/-/pako-2.0.4.tgz" - "version" "2.0.4" - -"parent-module@^1.0.0": - "integrity" "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==" - "resolved" "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz" - "version" "1.0.1" - dependencies: - "callsites" "^3.0.0" - -"path-exists@^4.0.0": - "integrity" "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" - "resolved" "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" - "version" "4.0.0" - -"path-is-absolute@^1.0.0": - "integrity" "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" - "resolved" "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" - "version" "1.0.1" - -"path-key@^3.1.0": - "integrity" "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" - "resolved" "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" - "version" "3.1.1" - -"path-type@^4.0.0": - "integrity" "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" - "resolved" "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz" - "version" "4.0.0" - -"picomatch@^2.0.4", "picomatch@^2.2.1", "picomatch@^2.2.3": - "integrity" "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" - "resolved" "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" - "version" "2.3.1" - -"prelude-ls@^1.2.1": - "integrity" "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==" - "resolved" "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz" - "version" "1.2.1" - -"prettier@^2.0.5": - "integrity" "sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg==" - "resolved" "https://registry.npmjs.org/prettier/-/prettier-2.5.1.tgz" - "version" "2.5.1" - -"progress@^2.0.0": - "integrity" "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==" - "resolved" "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz" - "version" "2.0.3" - -"punycode@^2.1.0": - "integrity" "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" - "resolved" "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz" - "version" "2.1.1" - -"queue-microtask@^1.2.2": - "integrity" "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" - "resolved" "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz" - "version" "1.2.3" - -"randombytes@^2.1.0": - "integrity" "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==" - "resolved" "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz" - "version" "2.1.0" - dependencies: - "safe-buffer" "^5.1.0" - -"readdirp@~3.6.0": - "integrity" "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==" - "resolved" "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz" - "version" "3.6.0" - dependencies: - "picomatch" "^2.2.1" - -"regenerator-runtime@^0.13.4": - "integrity" "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" - "resolved" "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz" - "version" "0.13.9" - -"regexpp@^3.1.0": - "integrity" "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==" - "resolved" "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz" - "version" "3.2.0" - -"require-directory@^2.1.1": - "integrity" "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" - "resolved" "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz" - "version" "2.1.1" - -"require-from-string@^2.0.2": - "integrity" "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==" - "resolved" "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz" - "version" "2.0.2" - -"resolve-from@^4.0.0": - "integrity" "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==" - "resolved" "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz" - "version" "4.0.0" - -"reusify@^1.0.4": - "integrity" "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" - "resolved" "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz" - "version" "1.0.4" - -"rimraf@^3.0.2": - "integrity" "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==" - "resolved" "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz" - "version" "3.0.2" - dependencies: - "glob" "^7.1.3" - -"rpc-websockets@^7.4.2": - "integrity" "sha512-eolVi/qlXS13viIUH9aqrde902wzSLAai0IjmOZSRefp5I3CSG/vCnD0c0fDSYCWuEyUoRL1BHQA8K1baEUyow==" - "resolved" "https://registry.npmjs.org/rpc-websockets/-/rpc-websockets-7.4.17.tgz" - "version" "7.4.17" + ansi-colors "4.1.1" + browser-stdout "1.3.1" + chokidar "3.5.3" + debug "4.3.3" + diff "5.0.0" + escape-string-regexp "4.0.0" + find-up "5.0.0" + glob "7.2.0" + growl "1.10.5" + he "1.2.0" + js-yaml "4.1.0" + log-symbols "4.1.0" + minimatch "4.2.1" + ms "2.1.3" + nanoid "3.3.1" + serialize-javascript "6.0.0" + strip-json-comments "3.1.1" + supports-color "8.1.1" + which "2.0.2" + workerpool "6.2.0" + yargs "16.2.0" + yargs-parser "20.2.4" + yargs-unparser "2.0.0" + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +ms@2.1.3: + version "2.1.3" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +nanoid@3.3.1: + version "3.3.1" + resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.3.1.tgz" + integrity sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw== + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz" + integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= + +no-case@^3.0.4: + version "3.0.4" + resolved "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz" + integrity sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg== + dependencies: + lower-case "^2.0.2" + tslib "^2.0.3" + +node-addon-api@^2.0.0: + 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@2.6.7: + version "2.6.7" + resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz" + integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== + dependencies: + whatwg-url "^5.0.0" + +node-gyp-build@^4.2.0, node-gyp-build@^4.3.0: + version "4.3.0" + resolved "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.3.0.tgz" + integrity sha512-iWjXZvmboq0ja1pUGULQBexmxq8CV4xBhX7VDOTbL7ZR4FOowwY/VOtRxBN/yKxmdGoIp4j5ysNT4u3S2pDQ3Q== + +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +once@^1.3.0: + version "1.4.0" + resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" + integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + dependencies: + wrappy "1" + +optionator@^0.9.1: + version "0.9.1" + resolved "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz" + integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== + dependencies: + deep-is "^0.1.3" + fast-levenshtein "^2.0.6" + levn "^0.4.1" + prelude-ls "^1.2.1" + type-check "^0.4.0" + word-wrap "^1.2.3" + +p-limit@^3.0.2: + version "3.1.0" + resolved "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== + dependencies: + yocto-queue "^0.1.0" + +p-locate@^5.0.0: + 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== + dependencies: + p-limit "^3.0.2" + +pako@^2.0.3: + version "2.0.4" + resolved "https://registry.npmjs.org/pako/-/pako-2.0.4.tgz" + integrity sha512-v8tweI900AUkZN6heMU/4Uy4cXRc2AYNRggVmTR+dEncawDJgCdLMximOVA2p4qO57WMynangsfGRb5WD6L1Bg== + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" + integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + +path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3: + version "2.3.1" + resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +prelude-ls@^1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz" + integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== + +prettier@^2.0.5: + version "2.5.1" + resolved "https://registry.npmjs.org/prettier/-/prettier-2.5.1.tgz" + integrity sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg== + +progress@^2.0.0: + version "2.0.3" + resolved "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz" + integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== + +punycode@^2.1.0: + version "2.1.1" + resolved "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz" + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + +queue-microtask@^1.2.2: + version "1.2.3" + resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== + +randombytes@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz" + integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== + dependencies: + safe-buffer "^5.1.0" + +readdirp@~3.6.0: + version "3.6.0" + resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== + dependencies: + picomatch "^2.2.1" + +regenerator-runtime@^0.13.4: + version "0.13.9" + resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz" + integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA== + +regexpp@^3.1.0: + version "3.2.0" + resolved "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz" + integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz" + integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= + +require-from-string@^2.0.2: + 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== + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + +rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + +rpc-websockets@^7.4.2: + version "7.4.17" + resolved "https://registry.npmjs.org/rpc-websockets/-/rpc-websockets-7.4.17.tgz" + integrity sha512-eolVi/qlXS13viIUH9aqrde902wzSLAai0IjmOZSRefp5I3CSG/vCnD0c0fDSYCWuEyUoRL1BHQA8K1baEUyow== dependencies: "@babel/runtime" "^7.11.2" - "circular-json" "^0.5.9" - "eventemitter3" "^4.0.7" - "uuid" "^8.3.0" - "ws" "^7.4.5" + circular-json "^0.5.9" + eventemitter3 "^4.0.7" + uuid "^8.3.0" + ws "^7.4.5" optionalDependencies: - "bufferutil" "^4.0.1" - "utf-8-validate" "^5.0.2" - -"run-parallel@^1.1.9": - "integrity" "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==" - "resolved" "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz" - "version" "1.2.0" - dependencies: - "queue-microtask" "^1.2.2" - -"safe-buffer@^5.0.1", "safe-buffer@^5.1.0": - "integrity" "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" - "resolved" "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" - "version" "5.2.1" - -"secp256k1@^4.0.2": - "integrity" "sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==" - "resolved" "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz" - "version" "4.0.3" - dependencies: - "elliptic" "^6.5.4" - "node-addon-api" "^2.0.0" - "node-gyp-build" "^4.2.0" - -"semver@^7.2.1", "semver@^7.3.5": - "integrity" "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==" - "resolved" "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz" - "version" "7.3.5" - dependencies: - "lru-cache" "^6.0.0" - -"serialize-javascript@6.0.0": - "integrity" "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==" - "resolved" "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz" - "version" "6.0.0" - dependencies: - "randombytes" "^2.1.0" - -"shebang-command@^2.0.0": - "integrity" "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==" - "resolved" "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" - "version" "2.0.0" - dependencies: - "shebang-regex" "^3.0.0" - -"shebang-regex@^3.0.0": - "integrity" "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" - "resolved" "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" - "version" "3.0.0" - -"shiki@^0.10.1": - "integrity" "sha512-VsY7QJVzU51j5o1+DguUd+6vmCmZ5v/6gYu4vyYAhzjuNQU6P/vmSy4uQaOhvje031qQMiW0d2BwgMH52vqMng==" - "resolved" "https://registry.npmjs.org/shiki/-/shiki-0.10.1.tgz" - "version" "0.10.1" - dependencies: - "jsonc-parser" "^3.0.0" - "vscode-oniguruma" "^1.6.1" - "vscode-textmate" "5.2.0" - -"sinon-chai@^3.7.0": - "integrity" "sha512-mf5NURdUaSdnatJx3uhoBOrY9dtL19fiOtAdT1Azxg3+lNJFiuN0uzaU3xX1LeAfL17kHQhTAJgpsfhbMJMY2g==" - "resolved" "https://registry.npmjs.org/sinon-chai/-/sinon-chai-3.7.0.tgz" - "version" "3.7.0" - -"slash@^3.0.0": - "integrity" "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" - "resolved" "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz" - "version" "3.0.0" - -"slice-ansi@^4.0.0": - "integrity" "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==" - "resolved" "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz" - "version" "4.0.0" - dependencies: - "ansi-styles" "^4.0.0" - "astral-regex" "^2.0.0" - "is-fullwidth-code-point" "^3.0.0" - -"snake-case@^3.0.4": - "integrity" "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==" - "resolved" "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz" - "version" "3.0.4" - dependencies: - "dot-case" "^3.0.4" - "tslib" "^2.0.3" - -"source-map-support@^0.5.17", "source-map-support@^0.5.6": - "integrity" "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==" - "resolved" "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz" - "version" "0.5.21" - dependencies: - "buffer-from" "^1.0.0" - "source-map" "^0.6.0" - -"source-map@^0.6.0": - "integrity" "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - "resolved" "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" - "version" "0.6.1" - -"sprintf-js@~1.0.2": - "integrity" "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" - "resolved" "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz" - "version" "1.0.3" - -"string-width@^4.1.0", "string-width@^4.2.0", "string-width@^4.2.3": - "integrity" "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==" - "resolved" "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" - "version" "4.2.3" - dependencies: - "emoji-regex" "^8.0.0" - "is-fullwidth-code-point" "^3.0.0" - "strip-ansi" "^6.0.1" - -"strip-ansi@^6.0.0", "strip-ansi@^6.0.1": - "integrity" "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==" - "resolved" "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" - "version" "6.0.1" - dependencies: - "ansi-regex" "^5.0.1" - -"strip-bom@^3.0.0": - "integrity" "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" - "resolved" "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz" - "version" "3.0.0" - -"strip-json-comments@^3.1.0", "strip-json-comments@^3.1.1", "strip-json-comments@3.1.1": - "integrity" "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==" - "resolved" "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz" - "version" "3.1.1" - -"superstruct@^0.14.2": - "integrity" "sha512-nPewA6m9mR3d6k7WkZ8N8zpTWfenFH3q9pA2PkuiZxINr9DKB2+40wEQf0ixn8VaGuJ78AB6iWOtStI+/4FKZQ==" - "resolved" "https://registry.npmjs.org/superstruct/-/superstruct-0.14.2.tgz" - "version" "0.14.2" - -"supports-color@^5.3.0": - "integrity" "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==" - "resolved" "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" - "version" "5.5.0" - dependencies: - "has-flag" "^3.0.0" - -"supports-color@^7.1.0": - "integrity" "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==" - "resolved" "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" - "version" "7.2.0" - dependencies: - "has-flag" "^4.0.0" - -"supports-color@8.1.1": - "integrity" "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==" - "resolved" "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz" - "version" "8.1.1" - dependencies: - "has-flag" "^4.0.0" - -"table@^6.0.9": - "integrity" "sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA==" - "resolved" "https://registry.npmjs.org/table/-/table-6.8.0.tgz" - "version" "6.8.0" - dependencies: - "ajv" "^8.0.1" - "lodash.truncate" "^4.4.2" - "slice-ansi" "^4.0.0" - "string-width" "^4.2.3" - "strip-ansi" "^6.0.1" - -"text-encoding-utf-8@^1.0.2": - "integrity" "sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg==" - "resolved" "https://registry.npmjs.org/text-encoding-utf-8/-/text-encoding-utf-8-1.0.2.tgz" - "version" "1.0.2" - -"text-table@^0.2.0": - "integrity" "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" - "resolved" "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz" - "version" "0.2.0" + bufferutil "^4.0.1" + utf-8-validate "^5.0.2" + +run-parallel@^1.1.9: + version "1.2.0" + resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz" + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== + dependencies: + queue-microtask "^1.2.2" + +safe-buffer@^5.0.1, safe-buffer@^5.1.0: + version "5.2.1" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +secp256k1@^4.0.2: + version "4.0.3" + resolved "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz" + integrity sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA== + dependencies: + elliptic "^6.5.4" + node-addon-api "^2.0.0" + node-gyp-build "^4.2.0" + +semver@^7.2.1, semver@^7.3.5: + version "7.3.5" + resolved "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz" + integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== + dependencies: + lru-cache "^6.0.0" + +serialize-javascript@6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz" + integrity sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag== + dependencies: + randombytes "^2.1.0" + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +shiki@^0.10.1: + version "0.10.1" + resolved "https://registry.npmjs.org/shiki/-/shiki-0.10.1.tgz" + integrity sha512-VsY7QJVzU51j5o1+DguUd+6vmCmZ5v/6gYu4vyYAhzjuNQU6P/vmSy4uQaOhvje031qQMiW0d2BwgMH52vqMng== + dependencies: + jsonc-parser "^3.0.0" + vscode-oniguruma "^1.6.1" + vscode-textmate "5.2.0" + +sinon-chai@^3.7.0: + version "3.7.0" + resolved "https://registry.npmjs.org/sinon-chai/-/sinon-chai-3.7.0.tgz" + integrity sha512-mf5NURdUaSdnatJx3uhoBOrY9dtL19fiOtAdT1Azxg3+lNJFiuN0uzaU3xX1LeAfL17kHQhTAJgpsfhbMJMY2g== + +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + +slice-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz" + integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== + dependencies: + ansi-styles "^4.0.0" + astral-regex "^2.0.0" + is-fullwidth-code-point "^3.0.0" + +snake-case@^3.0.4: + version "3.0.4" + resolved "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz" + integrity sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg== + dependencies: + dot-case "^3.0.4" + tslib "^2.0.3" + +source-map-support@^0.5.17, source-map-support@^0.5.6: + version "0.5.21" + resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz" + integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map@^0.6.0: + version "0.6.1" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz" + integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= + +string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: + version "4.2.3" + resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz" + integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= + +strip-json-comments@3.1.1, strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: + 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== + +superstruct@^0.14.2: + version "0.14.2" + resolved "https://registry.npmjs.org/superstruct/-/superstruct-0.14.2.tgz" + integrity sha512-nPewA6m9mR3d6k7WkZ8N8zpTWfenFH3q9pA2PkuiZxINr9DKB2+40wEQf0ixn8VaGuJ78AB6iWOtStI+/4FKZQ== + +supports-color@8.1.1: + version "8.1.1" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +table@^6.0.9: + version "6.8.0" + resolved "https://registry.npmjs.org/table/-/table-6.8.0.tgz" + integrity sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA== + dependencies: + ajv "^8.0.1" + lodash.truncate "^4.4.2" + slice-ansi "^4.0.0" + string-width "^4.2.3" + strip-ansi "^6.0.1" + +text-encoding-utf-8@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/text-encoding-utf-8/-/text-encoding-utf-8-1.0.2.tgz" + integrity sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg== + +text-table@^0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz" + integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= "through@>=2.2.7 <3": - "integrity" "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" - "resolved" "https://registry.npmjs.org/through/-/through-2.3.8.tgz" - "version" "2.3.8" - -"to-regex-range@^5.0.1": - "integrity" "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==" - "resolved" "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" - "version" "5.0.1" - dependencies: - "is-number" "^7.0.0" - -"toml@^3.0.0": - "integrity" "sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==" - "resolved" "https://registry.npmjs.org/toml/-/toml-3.0.0.tgz" - "version" "3.0.0" - -"tr46@~0.0.3": - "integrity" "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" - "resolved" "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz" - "version" "0.0.3" - -"traverse-chain@~0.1.0": - "integrity" "sha1-YdvC1Ttp/2CRoSoWj9fUMxB+QPE=" - "resolved" "https://registry.npmjs.org/traverse-chain/-/traverse-chain-0.1.0.tgz" - "version" "0.1.0" - -"ts-mocha@^9.0.2": - "integrity" "sha512-WyQjvnzwrrubl0JT7EC1yWmNpcsU3fOuBFfdps30zbmFBgKniSaSOyZMZx+Wq7kytUs5CY+pEbSYEbGfIKnXTw==" - "resolved" "https://registry.npmjs.org/ts-mocha/-/ts-mocha-9.0.2.tgz" - "version" "9.0.2" - dependencies: - "ts-node" "7.0.1" + version "2.3.8" + resolved "https://registry.npmjs.org/through/-/through-2.3.8.tgz" + integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +toml@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/toml/-/toml-3.0.0.tgz" + integrity sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w== + +tr46@~0.0.3: + version "0.0.3" + resolved "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz" + integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o= + +traverse-chain@~0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/traverse-chain/-/traverse-chain-0.1.0.tgz" + integrity sha1-YdvC1Ttp/2CRoSoWj9fUMxB+QPE= + +ts-mocha@^9.0.2: + version "9.0.2" + resolved "https://registry.npmjs.org/ts-mocha/-/ts-mocha-9.0.2.tgz" + integrity sha512-WyQjvnzwrrubl0JT7EC1yWmNpcsU3fOuBFfdps30zbmFBgKniSaSOyZMZx+Wq7kytUs5CY+pEbSYEbGfIKnXTw== + dependencies: + ts-node "7.0.1" optionalDependencies: - "tsconfig-paths" "^3.5.0" - -"ts-node@^9.1.1": - "integrity" "sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg==" - "resolved" "https://registry.npmjs.org/ts-node/-/ts-node-9.1.1.tgz" - "version" "9.1.1" - dependencies: - "arg" "^4.1.0" - "create-require" "^1.1.0" - "diff" "^4.0.1" - "make-error" "^1.1.1" - "source-map-support" "^0.5.17" - "yn" "3.1.1" - -"ts-node@7.0.1": - "integrity" "sha512-BVwVbPJRspzNh2yfslyT1PSbl5uIk03EZlb493RKHN4qej/D06n1cEhjlOJG69oFsE7OT8XjpTUcYf6pKTLMhw==" - "resolved" "https://registry.npmjs.org/ts-node/-/ts-node-7.0.1.tgz" - "version" "7.0.1" - dependencies: - "arrify" "^1.0.0" - "buffer-from" "^1.1.0" - "diff" "^3.1.0" - "make-error" "^1.1.1" - "minimist" "^1.2.0" - "mkdirp" "^0.5.1" - "source-map-support" "^0.5.6" - "yn" "^2.0.0" - -"tsconfig-paths@^3.5.0": - "integrity" "sha512-cg/1jAZoL57R39+wiw4u/SCC6Ic9Q5NqjBOb+9xISedOYurfog9ZNmKJSxAnb2m/5Bq4lE9lhUcau33Ml8DM0g==" - "resolved" "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.0.tgz" - "version" "3.14.0" + tsconfig-paths "^3.5.0" + +ts-node@7.0.1: + version "7.0.1" + resolved "https://registry.npmjs.org/ts-node/-/ts-node-7.0.1.tgz" + integrity sha512-BVwVbPJRspzNh2yfslyT1PSbl5uIk03EZlb493RKHN4qej/D06n1cEhjlOJG69oFsE7OT8XjpTUcYf6pKTLMhw== + dependencies: + arrify "^1.0.0" + buffer-from "^1.1.0" + diff "^3.1.0" + make-error "^1.1.1" + minimist "^1.2.0" + mkdirp "^0.5.1" + source-map-support "^0.5.6" + yn "^2.0.0" + +ts-node@^9.1.1: + version "9.1.1" + resolved "https://registry.npmjs.org/ts-node/-/ts-node-9.1.1.tgz" + integrity sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg== + dependencies: + arg "^4.1.0" + create-require "^1.1.0" + diff "^4.0.1" + make-error "^1.1.1" + source-map-support "^0.5.17" + yn "3.1.1" + +tsconfig-paths@^3.5.0: + version "3.14.0" + resolved "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.0.tgz" + integrity sha512-cg/1jAZoL57R39+wiw4u/SCC6Ic9Q5NqjBOb+9xISedOYurfog9ZNmKJSxAnb2m/5Bq4lE9lhUcau33Ml8DM0g== dependencies: "@types/json5" "^0.0.29" - "json5" "^1.0.1" - "minimist" "^1.2.0" - "strip-bom" "^3.0.0" - -"tslib@^1.8.1": - "integrity" "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - "resolved" "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz" - "version" "1.14.1" - -"tslib@^2.0.3": - "integrity" "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - "resolved" "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz" - "version" "2.3.1" - -"tsutils@^3.21.0": - "integrity" "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==" - "resolved" "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz" - "version" "3.21.0" - dependencies: - "tslib" "^1.8.1" - -"tweetnacl@^1.0.0": - "integrity" "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" - "resolved" "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz" - "version" "1.0.3" - -"type-check@^0.4.0", "type-check@~0.4.0": - "integrity" "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==" - "resolved" "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz" - "version" "0.4.0" - dependencies: - "prelude-ls" "^1.2.1" - -"type-fest@^0.20.2": - "integrity" "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==" - "resolved" "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz" - "version" "0.20.2" - -"typedoc@^0.22.5": - "integrity" "sha512-NHNI7Dr6JHa/I3+c62gdRNXBIyX7P33O9TafGLd07ur3MqzcKgwTvpg18EtvCLHJyfeSthAtCLpM7WkStUmDuQ==" - "resolved" "https://registry.npmjs.org/typedoc/-/typedoc-0.22.13.tgz" - "version" "0.22.13" - dependencies: - "glob" "^7.2.0" - "lunr" "^2.3.9" - "marked" "^4.0.12" - "minimatch" "^5.0.1" - "shiki" "^0.10.1" - -"typescript@^4.1.3", "typescript@>=2.7", "typescript@>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta", "typescript@4.0.x || 4.1.x || 4.2.x || 4.3.x || 4.4.x || 4.5.x || 4.6.x": - "integrity" "sha512-HM/hFigTBHZhLXshn9sN37H085+hQGeJHJ/X7LpBWLID/fbc2acUMfU+lGD98X81sKP+pFa9f0DZmCwB9GnbAg==" - "resolved" "https://registry.npmjs.org/typescript/-/typescript-4.6.2.tgz" - "version" "4.6.2" - -"uri-js@^4.2.2": - "integrity" "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==" - "resolved" "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz" - "version" "4.4.1" - dependencies: - "punycode" "^2.1.0" - -"utf-8-validate@^5.0.2": - "integrity" "sha512-k4dW/Qja1BYDl2qD4tOMB9PFVha/UJtxTc1cXYOe3WwA/2m0Yn4qB7wLMpJyLJ/7DR0XnTut3HsCSzDT4ZvKgA==" - "resolved" "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.8.tgz" - "version" "5.0.8" - dependencies: - "node-gyp-build" "^4.3.0" - -"uuid@^8.3.0", "uuid@^8.3.2": - "integrity" "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" - "resolved" "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz" - "version" "8.3.2" - -"v8-compile-cache@^2.0.3": - "integrity" "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==" - "resolved" "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz" - "version" "2.3.0" - -"vscode-oniguruma@^1.6.1": - "integrity" "sha512-KH8+KKov5eS/9WhofZR8M8dMHWN2gTxjMsG4jd04YhpbPR91fUj7rYQ2/XjeHCJWbg7X++ApRIU9NUwM2vTvLA==" - "resolved" "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.6.2.tgz" - "version" "1.6.2" - -"vscode-textmate@5.2.0": - "integrity" "sha512-Uw5ooOQxRASHgu6C7GVvUxisKXfSgW4oFlO+aa+PAkgmH89O3CXxEEzNRNtHSqtXFTl0nAC1uYj0GMSH27uwtQ==" - "resolved" "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-5.2.0.tgz" - "version" "5.2.0" - -"webidl-conversions@^3.0.0": - "integrity" "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" - "resolved" "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz" - "version" "3.0.1" - -"whatwg-url@^5.0.0": - "integrity" "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=" - "resolved" "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz" - "version" "5.0.0" - dependencies: - "tr46" "~0.0.3" - "webidl-conversions" "^3.0.0" - -"which@^2.0.1", "which@2.0.2": - "integrity" "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==" - "resolved" "https://registry.npmjs.org/which/-/which-2.0.2.tgz" - "version" "2.0.2" - dependencies: - "isexe" "^2.0.0" - -"word-wrap@^1.2.3": - "integrity" "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==" - "resolved" "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz" - "version" "1.2.3" - -"workerpool@6.2.0": - "integrity" "sha512-Rsk5qQHJ9eowMH28Jwhe8HEbmdYDX4lwoMWshiCXugjtHqMD9ZbiqSDLxcsfdqsETPzVUtX5s1Z5kStiIM6l4A==" - "resolved" "https://registry.npmjs.org/workerpool/-/workerpool-6.2.0.tgz" - "version" "6.2.0" - -"wrap-ansi@^7.0.0": - "integrity" "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==" - "resolved" "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" - "version" "7.0.0" - dependencies: - "ansi-styles" "^4.0.0" - "string-width" "^4.1.0" - "strip-ansi" "^6.0.0" - -"wrappy@1": - "integrity" "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - "resolved" "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" - "version" "1.0.2" - -"ws@*", "ws@^7.4.5": - "integrity" "sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A==" - "resolved" "https://registry.npmjs.org/ws/-/ws-7.5.7.tgz" - "version" "7.5.7" - -"y18n@^5.0.5": - "integrity" "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" - "resolved" "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz" - "version" "5.0.8" - -"yallist@^4.0.0": - "integrity" "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - "resolved" "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" - "version" "4.0.0" - -"yargs-parser@^20.2.2", "yargs-parser@20.2.4": - "integrity" "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==" - "resolved" "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz" - "version" "20.2.4" - -"yargs-unparser@2.0.0": - "integrity" "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==" - "resolved" "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz" - "version" "2.0.0" - dependencies: - "camelcase" "^6.0.0" - "decamelize" "^4.0.0" - "flat" "^5.0.2" - "is-plain-obj" "^2.1.0" - -"yargs@16.2.0": - "integrity" "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==" - "resolved" "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz" - "version" "16.2.0" - dependencies: - "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" - -"yn@^2.0.0": - "integrity" "sha1-5a2ryKz0CPY4X8dklWhMiOavaJo=" - "resolved" "https://registry.npmjs.org/yn/-/yn-2.0.0.tgz" - "version" "2.0.0" - -"yn@3.1.1": - "integrity" "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==" - "resolved" "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz" - "version" "3.1.1" - -"yocto-queue@^0.1.0": - "integrity" "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==" - "resolved" "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz" - "version" "0.1.0" + json5 "^1.0.1" + minimist "^1.2.0" + strip-bom "^3.0.0" + +tslib@^1.8.1: + version "1.14.1" + resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== + +tslib@^2.0.3: + version "2.3.1" + resolved "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz" + integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw== + +tsutils@^3.21.0: + version "3.21.0" + resolved "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz" + integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== + dependencies: + tslib "^1.8.1" + +tweetnacl@^1.0.0: + version "1.0.3" + resolved "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz" + integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw== + +type-check@^0.4.0, type-check@~0.4.0: + version "0.4.0" + resolved "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz" + integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== + dependencies: + prelude-ls "^1.2.1" + +type-fest@^0.20.2: + version "0.20.2" + resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz" + integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== + +typedoc@^0.22.5: + version "0.22.13" + resolved "https://registry.npmjs.org/typedoc/-/typedoc-0.22.13.tgz" + integrity sha512-NHNI7Dr6JHa/I3+c62gdRNXBIyX7P33O9TafGLd07ur3MqzcKgwTvpg18EtvCLHJyfeSthAtCLpM7WkStUmDuQ== + dependencies: + glob "^7.2.0" + lunr "^2.3.9" + marked "^4.0.12" + minimatch "^5.0.1" + shiki "^0.10.1" + +typescript@^4.1.3: + version "4.6.2" + resolved "https://registry.npmjs.org/typescript/-/typescript-4.6.2.tgz" + integrity sha512-HM/hFigTBHZhLXshn9sN37H085+hQGeJHJ/X7LpBWLID/fbc2acUMfU+lGD98X81sKP+pFa9f0DZmCwB9GnbAg== + +uri-js@^4.2.2: + version "4.4.1" + resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + dependencies: + punycode "^2.1.0" + +utf-8-validate@^5.0.2: + version "5.0.8" + resolved "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.8.tgz" + integrity sha512-k4dW/Qja1BYDl2qD4tOMB9PFVha/UJtxTc1cXYOe3WwA/2m0Yn4qB7wLMpJyLJ/7DR0XnTut3HsCSzDT4ZvKgA== + dependencies: + node-gyp-build "^4.3.0" + +uuid@^8.3.0, uuid@^8.3.2: + version "8.3.2" + resolved "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + +v8-compile-cache@^2.0.3: + version "2.3.0" + resolved "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz" + integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== + +vscode-oniguruma@^1.6.1: + version "1.6.2" + resolved "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.6.2.tgz" + integrity sha512-KH8+KKov5eS/9WhofZR8M8dMHWN2gTxjMsG4jd04YhpbPR91fUj7rYQ2/XjeHCJWbg7X++ApRIU9NUwM2vTvLA== + +vscode-textmate@5.2.0: + version "5.2.0" + resolved "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-5.2.0.tgz" + integrity sha512-Uw5ooOQxRASHgu6C7GVvUxisKXfSgW4oFlO+aa+PAkgmH89O3CXxEEzNRNtHSqtXFTl0nAC1uYj0GMSH27uwtQ== + +webidl-conversions@^3.0.0: + version "3.0.1" + resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz" + integrity sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE= + +whatwg-url@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz" + integrity sha1-lmRU6HZUYuN2RNNib2dCzotwll0= + dependencies: + tr46 "~0.0.3" + webidl-conversions "^3.0.0" + +which@2.0.2, which@^2.0.1: + version "2.0.2" + resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +word-wrap@^1.2.3: + version "1.2.3" + resolved "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz" + integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== + +workerpool@6.2.0: + version "6.2.0" + resolved "https://registry.npmjs.org/workerpool/-/workerpool-6.2.0.tgz" + integrity sha512-Rsk5qQHJ9eowMH28Jwhe8HEbmdYDX4lwoMWshiCXugjtHqMD9ZbiqSDLxcsfdqsETPzVUtX5s1Z5kStiIM6l4A== + +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + +ws@^7.4.5: + version "7.5.7" + resolved "https://registry.npmjs.org/ws/-/ws-7.5.7.tgz" + integrity sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A== + +y18n@^5.0.5: + version "5.0.8" + resolved "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz" + integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== + +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + +yargs-parser@20.2.4, yargs-parser@^20.2.2: + version "20.2.4" + resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz" + integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== + +yargs-unparser@2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz" + integrity sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA== + dependencies: + camelcase "^6.0.0" + decamelize "^4.0.0" + flat "^5.0.2" + is-plain-obj "^2.1.0" + +yargs@16.2.0: + version "16.2.0" + resolved "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz" + integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== + dependencies: + 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" + +yn@3.1.1: + version "3.1.1" + resolved "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz" + integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== + +yn@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/yn/-/yn-2.0.0.tgz" + integrity sha1-5a2ryKz0CPY4X8dklWhMiOavaJo= + +yocto-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== From 1e80d6de25d2c8a384e5522d52bd654e4ddba209 Mon Sep 17 00:00:00 2001 From: gabrielhicks Date: Wed, 6 Jul 2022 01:00:50 -0400 Subject: [PATCH 2/4] Begin adding tests --- programs/gateway/tests/create_registrar.rs | 14 +- .../tests/create_voter_weight_record.rs | 10 +- .../tests/program_test/gateway_voter_test.rs | 24 +-- .../tests/program_test/governance_test.rs | 12 +- .../tests/program_test/program_test_bench.rs | 17 +- programs/gateway/tests/program_test/tools.rs | 11 +- .../tests/update_voter_weight_record.rs | 8 +- programs/nft-voter/tests/cast_nft_vote.rs | 30 +-- .../nft-voter/tests/configure_collection.rs | 108 +++++++++-- .../tests/create_max_voter_weight_record.rs | 10 +- programs/nft-voter/tests/create_registrar.rs | 14 +- .../tests/create_voter_weight_record.rs | 10 +- .../tests/fixtures/mpl_token_metadata.so | Bin 460888 -> 693904 bytes .../tests/program_test/governance_test.rs | 12 +- .../tests/program_test/nft_voter_test.rs | 26 +-- .../tests/program_test/program_test_bench.rs | 17 +- .../tests/program_test/token_metadata_test.rs | 179 +++++++++++++++++- .../nft-voter/tests/program_test/tools.rs | 11 +- .../nft-voter/tests/relinquish_nft_vote.rs | 12 +- .../tests/update_voter_weight_record.rs | 20 +- 20 files changed, 397 insertions(+), 148 deletions(-) mode change 100755 => 100644 programs/nft-voter/tests/fixtures/mpl_token_metadata.so diff --git a/programs/gateway/tests/create_registrar.rs b/programs/gateway/tests/create_registrar.rs index e2b70fe6..ab2db4f7 100644 --- a/programs/gateway/tests/create_registrar.rs +++ b/programs/gateway/tests/create_registrar.rs @@ -6,12 +6,12 @@ use program_test::gateway_voter_test::GatewayVoterTest; use gpl_civic_gateway::error::GatewayError; use solana_program::instruction::InstructionError; use solana_program_test::*; -use solana_sdk::{signature::Keypair, transport::TransportError}; +use solana_sdk::{signature::Keypair}; use program_test::tools::{assert_anchor_err, assert_gateway_err, assert_ix_err}; #[tokio::test] -async fn test_create_registrar() -> Result<(), TransportError> { +async fn test_create_registrar() -> Result<(), BanksClientError> { // Arrange let mut gateway_voter_test = GatewayVoterTest::start_new().await; @@ -34,7 +34,7 @@ async fn test_create_registrar() -> Result<(), TransportError> { } #[tokio::test] -async fn test_create_registrar_with_invalid_realm_authority_error() -> Result<(), TransportError> { +async fn test_create_registrar_with_invalid_realm_authority_error() -> Result<(), BanksClientError> { // Arrange let mut gateway_voter_test = GatewayVoterTest::start_new().await; @@ -55,7 +55,7 @@ async fn test_create_registrar_with_invalid_realm_authority_error() -> Result<() } #[tokio::test] -async fn test_create_registrar_with_realm_authority_must_sign_error() -> Result<(), TransportError> +async fn test_create_registrar_with_realm_authority_must_sign_error() -> Result<(), BanksClientError> { // Arrange let mut gateway_voter_test = GatewayVoterTest::start_new().await; @@ -82,7 +82,7 @@ async fn test_create_registrar_with_realm_authority_must_sign_error() -> Result< } #[tokio::test] -async fn test_create_registrar_with_invalid_spl_gov_program_id_error() -> Result<(), TransportError> +async fn test_create_registrar_with_invalid_spl_gov_program_id_error() -> Result<(), BanksClientError> { // Arrange let mut gateway_voter_test = GatewayVoterTest::start_new().await; @@ -113,7 +113,7 @@ async fn test_create_registrar_with_invalid_spl_gov_program_id_error() -> Result } #[tokio::test] -async fn test_create_registrar_with_invalid_realm_error() -> Result<(), TransportError> { +async fn test_create_registrar_with_invalid_realm_error() -> Result<(), BanksClientError> { // Arrange let mut gateway_voter_test = GatewayVoterTest::start_new().await; @@ -142,7 +142,7 @@ async fn test_create_registrar_with_invalid_realm_error() -> Result<(), Transpor #[tokio::test] async fn test_create_registrar_with_invalid_governing_token_mint_error( -) -> Result<(), TransportError> { +) -> Result<(), BanksClientError> { // Arrange let mut gateway_voter_test = GatewayVoterTest::start_new().await; diff --git a/programs/gateway/tests/create_voter_weight_record.rs b/programs/gateway/tests/create_voter_weight_record.rs index 964bd173..93ec228b 100644 --- a/programs/gateway/tests/create_voter_weight_record.rs +++ b/programs/gateway/tests/create_voter_weight_record.rs @@ -2,12 +2,12 @@ use program_test::gateway_voter_test::GatewayVoterTest; use program_test::tools::assert_ix_err; use solana_program::instruction::InstructionError; use solana_program_test::*; -use solana_sdk::transport::TransportError; + mod program_test; #[tokio::test] -async fn test_create_voter_weight_record() -> Result<(), TransportError> { +async fn test_create_voter_weight_record() -> Result<(), BanksClientError> { // Arrange let mut gateway_voter_test = GatewayVoterTest::start_new().await; @@ -37,7 +37,7 @@ async fn test_create_voter_weight_record() -> Result<(), TransportError> { } #[tokio::test] -async fn test_create_voter_weight_record_with_invalid_realm_error() -> Result<(), TransportError> { +async fn test_create_voter_weight_record_with_invalid_realm_error() -> Result<(), BanksClientError> { // Arrange let mut gateway_voter_test = GatewayVoterTest::start_new().await; @@ -70,7 +70,7 @@ async fn test_create_voter_weight_record_with_invalid_realm_error() -> Result<() } #[tokio::test] -async fn test_create_voter_weight_record_with_invalid_mint_error() -> Result<(), TransportError> { +async fn test_create_voter_weight_record_with_invalid_mint_error() -> Result<(), BanksClientError> { // Arrange let mut gateway_voter_test = GatewayVoterTest::start_new().await; @@ -103,7 +103,7 @@ async fn test_create_voter_weight_record_with_invalid_mint_error() -> Result<(), } #[tokio::test] -async fn test_create_voter_weight_record_with_already_exists_error() -> Result<(), TransportError> { +async fn test_create_voter_weight_record_with_already_exists_error() -> Result<(), BanksClientError> { // Arrange let mut gateway_voter_test = GatewayVoterTest::start_new().await; diff --git a/programs/gateway/tests/program_test/gateway_voter_test.rs b/programs/gateway/tests/program_test/gateway_voter_test.rs index 6d30bb1d..f13664d6 100644 --- a/programs/gateway/tests/program_test/gateway_voter_test.rs +++ b/programs/gateway/tests/program_test/gateway_voter_test.rs @@ -8,13 +8,13 @@ use solana_gateway::state::{ }; use gpl_civic_gateway::state::*; -use solana_sdk::transport::TransportError; + use spl_governance::instruction::cast_vote; use spl_governance::state::vote_record::{Vote, VoteChoice}; use gpl_civic_gateway::state::{get_registrar_address, Registrar}; -use solana_program_test::ProgramTest; +use solana_program_test::{ProgramTest, BanksClientError}; use solana_sdk::instruction::Instruction; use solana_sdk::signature::Keypair; use solana_sdk::signer::Signer; @@ -125,7 +125,7 @@ impl GatewayVoterTest { &mut self, realm_cookie: &RealmCookie, gateway_cookie: &GatewayCookie, - ) -> Result { + ) -> Result { self.with_registrar_using_ix(realm_cookie, gateway_cookie, NopOverride, None) .await } @@ -137,7 +137,7 @@ impl GatewayVoterTest { gateway_cookie: &GatewayCookie, instruction_override: F, signers_override: Option<&[&Keypair]>, - ) -> Result { + ) -> Result { let registrar_key = get_registrar_address(&realm_cookie.address, &realm_cookie.account.community_mint); @@ -188,7 +188,7 @@ impl GatewayVoterTest { }) } - pub async fn with_gateway(&mut self) -> Result { + pub async fn with_gateway(&mut self) -> Result { self.with_gateway_using_ix(NopOverride, None).await } @@ -196,7 +196,7 @@ impl GatewayVoterTest { &mut self, instruction_override: F, signers_override: Option<&[&Keypair]>, - ) -> Result { + ) -> Result { let gatekeeper_network = Keypair::new(); let gatekeeper = Keypair::new(); @@ -226,7 +226,7 @@ impl GatewayVoterTest { &mut self, gateway_cookie: &GatewayCookie, wallet_cookie: &WalletCookie, - ) -> Result { + ) -> Result { self.with_gateway_token_using_ix(gateway_cookie, wallet_cookie, NopOverride, None) .await } @@ -238,7 +238,7 @@ impl GatewayVoterTest { wallet_cookie: &WalletCookie, instruction_override: F, signers_override: Option<&[&Keypair]>, - ) -> Result { + ) -> Result { let gatekeeper_account = gateway_cookie.get_gatekeeper_account(); let gateway_token_cookie = GatewayTokenCookie::new(&wallet_cookie.address, gateway_cookie); @@ -269,7 +269,7 @@ impl GatewayVoterTest { &self, registrar_cookie: &RegistrarCookie, voter_cookie: &WalletCookie, - ) -> Result { + ) -> Result { self.with_voter_weight_record_using_ix(registrar_cookie, voter_cookie, NopOverride) .await } @@ -280,7 +280,7 @@ impl GatewayVoterTest { registrar_cookie: &RegistrarCookie, voter_cookie: &WalletCookie, instruction_override: F, - ) -> Result { + ) -> Result { let governing_token_owner = voter_cookie.address; let (voter_weight_record_key, _) = Pubkey::find_program_address( @@ -344,7 +344,7 @@ impl GatewayVoterTest { voter_weight_record_cookie: &mut VoterWeightRecordCookie, gateway_token_cookie: &GatewayTokenCookie, voter_weight_action: VoterWeightAction, - ) -> Result<(), TransportError> { + ) -> Result<(), BanksClientError> { let data = anchor_lang::InstructionData::data( &gpl_civic_gateway::instruction::UpdateVoterWeightRecord { voter_weight_action, @@ -380,7 +380,7 @@ impl GatewayVoterTest { gateway_token_cookie: &GatewayTokenCookie, voter_token_owner_record_cookie: &TokenOwnerRecordCookie, args: Option, - ) -> Result<(), TransportError> { + ) -> Result<(), BanksClientError> { let args = args.unwrap_or_default(); let data = anchor_lang::InstructionData::data( diff --git a/programs/gateway/tests/program_test/governance_test.rs b/programs/gateway/tests/program_test/governance_test.rs index 04084475..a8015321 100644 --- a/programs/gateway/tests/program_test/governance_test.rs +++ b/programs/gateway/tests/program_test/governance_test.rs @@ -1,8 +1,8 @@ use std::{str::FromStr, sync::Arc}; use anchor_lang::prelude::Pubkey; -use solana_program_test::ProgramTest; -use solana_sdk::{signature::Keypair, signer::Signer, transport::TransportError}; +use solana_program_test::{ProgramTest, BanksClientError}; +use solana_sdk::{signature::Keypair, signer::Signer}; use spl_governance::{ instruction::{ create_governance, create_proposal, create_realm, create_token_owner_record, @@ -83,7 +83,7 @@ impl GovernanceTest { } #[allow(dead_code)] - pub async fn with_realm(&mut self) -> Result { + pub async fn with_realm(&mut self) -> Result { let realm_authority = Keypair::new(); let community_mint_cookie = self.bench.with_mint().await?; @@ -146,7 +146,7 @@ impl GovernanceTest { pub async fn with_proposal( &mut self, realm_cookie: &RealmCookie, - ) -> Result { + ) -> Result { let token_account_cookie = self .bench .with_token_account(&realm_cookie.account.community_mint) @@ -306,7 +306,7 @@ impl GovernanceTest { &mut self, realm_cookie: &RealmCookie, token_owner_cookie: &WalletCookie, - ) -> Result { + ) -> Result { let token_owner_record_key = get_token_owner_record_address( &self.program_id, &realm_cookie.address, @@ -352,7 +352,7 @@ impl GovernanceTest { proposal_cookie: &ProposalCookie, token_owner_cookie: &WalletCookie, token_owner_record_cookie: &TokenOwnerRecordCookie, - ) -> Result<(), TransportError> { + ) -> Result<(), BanksClientError> { let relinquish_vote_ix = relinquish_vote( &self.program_id, &proposal_cookie.account.governance, diff --git a/programs/gateway/tests/program_test/program_test_bench.rs b/programs/gateway/tests/program_test/program_test_bench.rs index 150a6009..1754c792 100644 --- a/programs/gateway/tests/program_test/program_test_bench.rs +++ b/programs/gateway/tests/program_test/program_test_bench.rs @@ -6,7 +6,7 @@ use anchor_lang::{ }; use solana_program::{borsh::try_from_slice_unchecked, system_program}; -use solana_program_test::{ProgramTest, ProgramTestContext}; +use solana_program_test::{ProgramTest, ProgramTestContext, BanksClientError}; use solana_sdk::{ account::{Account, ReadableAccount}, instruction::Instruction, @@ -15,7 +15,6 @@ use solana_sdk::{ signer::Signer, system_instruction, transaction::Transaction, - transport::TransportError, }; use borsh::BorshDeserialize; @@ -67,7 +66,7 @@ impl ProgramTestBench { &self, instructions: &[Instruction], signers: Option<&[&Keypair]>, - ) -> Result<(), TransportError> { + ) -> Result<(), BanksClientError> { let mut context = self.context.borrow_mut(); let mut transaction = @@ -108,7 +107,7 @@ impl ProgramTestBench { .unwrap(); } - pub async fn with_mint(&self) -> Result { + pub async fn with_mint(&self) -> Result { let mint_keypair = Keypair::new(); let mint_authority = Keypair::new(); let freeze_authority = Keypair::new(); @@ -129,7 +128,7 @@ impl ProgramTestBench { mint_keypair: &Keypair, mint_authority: &Pubkey, freeze_authority: Option<&Pubkey>, - ) -> Result<(), TransportError> { + ) -> Result<(), BanksClientError> { let mint_rent = self.rent.minimum_balance(spl_token::state::Mint::LEN); let instructions = [ @@ -158,7 +157,7 @@ impl ProgramTestBench { pub async fn with_token_account( &self, token_mint: &Pubkey, - ) -> Result { + ) -> Result { let token_account_keypair = Keypair::new(); self.create_token_account(&token_account_keypair, token_mint, &self.payer.pubkey()) .await?; @@ -174,7 +173,7 @@ impl ProgramTestBench { mint_cookie: &MintCookie, owner: &Pubkey, amount: u64, - ) -> Result { + ) -> Result { let token_account_keypair = Keypair::new(); self.create_token_account(&token_account_keypair, &mint_cookie.address, owner) @@ -199,7 +198,7 @@ impl ProgramTestBench { token_mint_authority: &Keypair, token_account: &Pubkey, amount: u64, - ) -> Result<(), TransportError> { + ) -> Result<(), BanksClientError> { let mint_instruction = spl_token::instruction::mint_to( &spl_token::id(), token_mint, @@ -220,7 +219,7 @@ impl ProgramTestBench { token_account_keypair: &Keypair, token_mint: &Pubkey, owner: &Pubkey, - ) -> Result<(), TransportError> { + ) -> Result<(), BanksClientError> { let rent = self .context .borrow_mut() diff --git a/programs/gateway/tests/program_test/tools.rs b/programs/gateway/tests/program_test/tools.rs index 3f202dda..f0bd8768 100644 --- a/programs/gateway/tests/program_test/tools.rs +++ b/programs/gateway/tests/program_test/tools.rs @@ -1,7 +1,8 @@ use anchor_lang::prelude::ERROR_CODE_OFFSET; use gpl_civic_gateway::error::GatewayError; use solana_program::instruction::InstructionError; -use solana_sdk::{signature::Keypair, transaction::TransactionError, transport::TransportError}; +use solana_program_test::{BanksClientError}; +use solana_sdk::{signature::Keypair, transaction::TransactionError}; use spl_governance_tools::error::GovernanceToolsError; pub fn clone_keypair(source: &Keypair) -> Keypair { @@ -13,7 +14,7 @@ pub fn clone_keypair(source: &Keypair) -> Keypair { pub fn NopOverride(_: &mut T) {} #[allow(dead_code)] -pub fn assert_gateway_err(banks_client_error: TransportError, gateway_error: GatewayError) { +pub fn assert_gateway_err(banks_client_error: BanksClientError, gateway_error: GatewayError) { let tx_error = banks_client_error.unwrap(); match tx_error { @@ -29,7 +30,7 @@ pub fn assert_gateway_err(banks_client_error: TransportError, gateway_error: Gat #[allow(dead_code)] pub fn assert_gov_tools_err( - banks_client_error: TransportError, + banks_client_error: BanksClientError, gov_tools_error: GovernanceToolsError, ) { let tx_error = banks_client_error.unwrap(); @@ -47,7 +48,7 @@ pub fn assert_gov_tools_err( #[allow(dead_code)] pub fn assert_anchor_err( - banks_client_error: TransportError, + banks_client_error: BanksClientError, anchor_error: anchor_lang::error::ErrorCode, ) { let tx_error = banks_client_error.unwrap(); @@ -64,7 +65,7 @@ pub fn assert_anchor_err( } #[allow(dead_code)] -pub fn assert_ix_err(banks_client_error: TransportError, ix_error: InstructionError) { +pub fn assert_ix_err(banks_client_error: BanksClientError, ix_error: InstructionError) { let tx_error = banks_client_error.unwrap(); match tx_error { diff --git a/programs/gateway/tests/update_voter_weight_record.rs b/programs/gateway/tests/update_voter_weight_record.rs index 0cdae37e..1c023b6b 100644 --- a/programs/gateway/tests/update_voter_weight_record.rs +++ b/programs/gateway/tests/update_voter_weight_record.rs @@ -3,12 +3,12 @@ use gpl_civic_gateway::state::*; use program_test::gateway_voter_test::GatewayVoterTest; use program_test::tools::*; use solana_program_test::*; -use solana_sdk::transport::TransportError; + mod program_test; #[tokio::test] -async fn test_update_voter_weight_record() -> Result<(), TransportError> { +async fn test_update_voter_weight_record() -> Result<(), BanksClientError> { // Arrange let mut gateway_voter_test = GatewayVoterTest::start_new().await; @@ -59,7 +59,7 @@ async fn test_update_voter_weight_record() -> Result<(), TransportError> { #[tokio::test] async fn test_update_voter_weight_record_with_invalid_gateway_token_error( -) -> Result<(), TransportError> { +) -> Result<(), BanksClientError> { // Arrange let mut gateway_voter_test = GatewayVoterTest::start_new().await; @@ -100,7 +100,7 @@ async fn test_update_voter_weight_record_with_invalid_gateway_token_error( } #[tokio::test] -async fn test_cast_vote_with_update_voter_weight_record() -> Result<(), TransportError> { +async fn test_cast_vote_with_update_voter_weight_record() -> Result<(), BanksClientError> { // Arrange let mut gateway_voter_test = GatewayVoterTest::start_new().await; diff --git a/programs/nft-voter/tests/cast_nft_vote.rs b/programs/nft-voter/tests/cast_nft_vote.rs index 9b4b6b19..5e34eb47 100644 --- a/programs/nft-voter/tests/cast_nft_vote.rs +++ b/programs/nft-voter/tests/cast_nft_vote.rs @@ -5,12 +5,12 @@ use program_test::token_metadata_test::CreateNftArgs; use program_test::{nft_voter_test::*, tools::assert_nft_voter_err}; use solana_program_test::*; -use solana_sdk::transport::TransportError; + mod program_test; #[tokio::test] -async fn test_cast_nft_vote() -> Result<(), TransportError> { +async fn test_cast_nft_vote() -> Result<(), BanksClientError> { // Arrange let mut nft_voter_test = NftVoterTest::start_new().await; @@ -100,7 +100,7 @@ async fn test_cast_nft_vote() -> Result<(), TransportError> { } #[tokio::test] -async fn test_cast_nft_vote_with_multiple_nfts() -> Result<(), TransportError> { +async fn test_cast_nft_vote_with_multiple_nfts() -> Result<(), BanksClientError> { // Arrange let mut nft_voter_test = NftVoterTest::start_new().await; @@ -201,7 +201,7 @@ async fn test_cast_nft_vote_with_multiple_nfts() -> Result<(), TransportError> { } #[tokio::test] -async fn test_cast_nft_vote_with_nft_already_voted_error() -> Result<(), TransportError> { +async fn test_cast_nft_vote_with_nft_already_voted_error() -> Result<(), BanksClientError> { // Arrange let mut nft_voter_test = NftVoterTest::start_new().await; @@ -284,7 +284,7 @@ async fn test_cast_nft_vote_with_nft_already_voted_error() -> Result<(), Transpo } #[tokio::test] -async fn test_cast_nft_vote_invalid_voter_error() -> Result<(), TransportError> { +async fn test_cast_nft_vote_invalid_voter_error() -> Result<(), BanksClientError> { // Arrange let mut nft_voter_test = NftVoterTest::start_new().await; @@ -354,7 +354,7 @@ async fn test_cast_nft_vote_invalid_voter_error() -> Result<(), TransportError> } #[tokio::test] -async fn test_cast_nft_vote_with_unverified_collection_error() -> Result<(), TransportError> { +async fn test_cast_nft_vote_with_unverified_collection_error() -> Result<(), BanksClientError> { // Arrange let mut nft_voter_test = NftVoterTest::start_new().await; @@ -432,7 +432,7 @@ async fn test_cast_nft_vote_with_unverified_collection_error() -> Result<(), Tra } #[tokio::test] -async fn test_cast_nft_vote_with_invalid_owner_error() -> Result<(), TransportError> { +async fn test_cast_nft_vote_with_invalid_owner_error() -> Result<(), BanksClientError> { // Arrange let mut nft_voter_test = NftVoterTest::start_new().await; @@ -504,7 +504,7 @@ async fn test_cast_nft_vote_with_invalid_owner_error() -> Result<(), TransportEr } #[tokio::test] -async fn test_cast_nft_vote_with_invalid_collection_error() -> Result<(), TransportError> { +async fn test_cast_nft_vote_with_invalid_collection_error() -> Result<(), BanksClientError> { // Arrange let mut nft_voter_test = NftVoterTest::start_new().await; @@ -576,7 +576,7 @@ async fn test_cast_nft_vote_with_invalid_collection_error() -> Result<(), Transp } #[tokio::test] -async fn test_cast_nft_vote_with_invalid_metadata_error() -> Result<(), TransportError> { +async fn test_cast_nft_vote_with_invalid_metadata_error() -> Result<(), BanksClientError> { // Arrange let mut nft_voter_test = NftVoterTest::start_new().await; @@ -661,7 +661,7 @@ async fn test_cast_nft_vote_with_invalid_metadata_error() -> Result<(), Transpor } #[tokio::test] -async fn test_cast_nft_vote_with_same_nft_error() -> Result<(), TransportError> { +async fn test_cast_nft_vote_with_same_nft_error() -> Result<(), BanksClientError> { // Arrange let mut nft_voter_test = NftVoterTest::start_new().await; @@ -729,7 +729,7 @@ async fn test_cast_nft_vote_with_same_nft_error() -> Result<(), TransportError> } #[tokio::test] -async fn test_cast_nft_vote_with_no_nft_error() -> Result<(), TransportError> { +async fn test_cast_nft_vote_with_no_nft_error() -> Result<(), BanksClientError> { // Arrange let mut nft_voter_test = NftVoterTest::start_new().await; @@ -806,7 +806,7 @@ async fn test_cast_nft_vote_with_no_nft_error() -> Result<(), TransportError> { } #[tokio::test] -async fn test_cast_nft_vote_with_max_5_nfts() -> Result<(), TransportError> { +async fn test_cast_nft_vote_with_max_5_nfts() -> Result<(), BanksClientError> { // Arrange let mut nft_voter_test = NftVoterTest::start_new().await; @@ -909,7 +909,7 @@ async fn test_cast_nft_vote_with_max_5_nfts() -> Result<(), TransportError> { } #[tokio::test] -async fn test_cast_nft_vote_using_multiple_instructions() -> Result<(), TransportError> { +async fn test_cast_nft_vote_using_multiple_instructions() -> Result<(), BanksClientError> { // Arrange let mut nft_voter_test = NftVoterTest::start_new().await; @@ -1018,7 +1018,7 @@ async fn test_cast_nft_vote_using_multiple_instructions() -> Result<(), Transpor #[tokio::test] async fn test_cast_nft_vote_using_multiple_instructions_with_nft_already_voted_error( -) -> Result<(), TransportError> { +) -> Result<(), BanksClientError> { // Arrange let mut nft_voter_test = NftVoterTest::start_new().await; @@ -1107,7 +1107,7 @@ async fn test_cast_nft_vote_using_multiple_instructions_with_nft_already_voted_e #[tokio::test] async fn test_cast_nft_vote_using_multiple_instructions_with_attempted_sandwiched_relinquish( -) -> Result<(), TransportError> { +) -> Result<(), BanksClientError> { // Arrange let mut nft_voter_test = NftVoterTest::start_new().await; diff --git a/programs/nft-voter/tests/configure_collection.rs b/programs/nft-voter/tests/configure_collection.rs index 6ff5afbf..fb5d5ea9 100644 --- a/programs/nft-voter/tests/configure_collection.rs +++ b/programs/nft-voter/tests/configure_collection.rs @@ -2,17 +2,18 @@ use gpl_nft_voter::error::NftVoterError; use program_test::{ nft_voter_test::NftVoterTest, tools::{assert_anchor_err, assert_nft_voter_err}, + token_metadata_test::CreateNftArgs, }; use solana_program_test::*; -use solana_sdk::{signature::Keypair, signer::Signer, transport::TransportError}; +use solana_sdk::{signature::Keypair, signer::Signer}; use crate::program_test::nft_voter_test::ConfigureCollectionArgs; mod program_test; #[tokio::test] -async fn test_configure_collection() -> Result<(), TransportError> { +async fn test_configure_collection() -> Result<(), BanksClientError> { // Arrange let mut nft_voter_test = NftVoterTest::start_new().await; @@ -55,15 +56,96 @@ async fn test_configure_collection() -> Result<(), TransportError> { assert_eq!(max_voter_weight_record.max_voter_weight_expiry, None); assert_eq!( max_voter_weight_record.max_voter_weight, - (registrar.collection_configs[0].weight as u32 * registrar.collection_configs[0].size) - as u64 + (registrar.collection_configs[0].weight * registrar.collection_configs[0].size) ); Ok(()) } #[tokio::test] -async fn test_configure_multiple_collections() -> Result<(), TransportError> { +async fn test_configure_collection_sized_with_two_nft_mints() -> Result<(), BanksClientError> { + // Arrange + let mut nft_voter_test = NftVoterTest::start_new().await; + + let realm_cookie = nft_voter_test.governance.with_realm().await?; + + let registrar_cookie = nft_voter_test.with_registrar(&realm_cookie).await?; + + let nft_collection_cookie = nft_voter_test.token_metadata.with_nft_collection_v3().await?; + + let minter_cookie = nft_voter_test.bench.with_wallet().await; + + let nft_cookie = nft_voter_test + .token_metadata + .with_nft_v3( + &nft_collection_cookie, + &minter_cookie, + Some(CreateNftArgs { + verify_collection: true, + ..Default::default() + }), + ) + .await?; + + + let nft_cookie_2 = nft_voter_test + .token_metadata + .with_nft_v3( + &nft_collection_cookie, + &minter_cookie, + Some(CreateNftArgs { + verify_collection: true, + ..Default::default() + }), + ) + .await?; + + let max_voter_weight_record_cookie = nft_voter_test + .with_max_voter_weight_record(®istrar_cookie) + .await?; + + // Act + let collection_config_cookie = nft_voter_test + .with_collection( + ®istrar_cookie, + &nft_collection_cookie, + &max_voter_weight_record_cookie, + Some(ConfigureCollectionArgs { + weight: 10, + size: 20, + }),, + ) + .await?; + + // Assert + let registrar = nft_voter_test + .get_registrar_account(®istrar_cookie.address) + .await; + + // assert_eq!(registrar.collection_configs.len(), 1); + + assert_eq!(registrar.collection_configs[0].size, 2); + + // assert_eq!( + // registrar.collection_configs[0], + // collection_config_cookie.collection_config + // ); + + let max_voter_weight_record = nft_voter_test + .get_max_voter_weight_record(&max_voter_weight_record_cookie.address) + .await; + + // assert_eq!(max_voter_weight_record.max_voter_weight_expiry, None); + // assert_eq!( + // max_voter_weight_record.max_voter_weight, + // (registrar.collection_configs[0].weight * registrar.collection_configs[0].size) + // ); + + Ok(()) +} + +#[tokio::test] +async fn test_configure_multiple_collections() -> Result<(), BanksClientError> { // Arrange let mut nft_voter_test = NftVoterTest::start_new().await; @@ -118,7 +200,7 @@ async fn test_configure_multiple_collections() -> Result<(), TransportError> { } #[tokio::test] -async fn test_configure_max_collections() -> Result<(), TransportError> { +async fn test_configure_max_collections() -> Result<(), BanksClientError> { // Arrange let mut nft_voter_test = NftVoterTest::start_new().await; @@ -166,7 +248,7 @@ async fn test_configure_max_collections() -> Result<(), TransportError> { } #[tokio::test] -async fn test_configure_existing_collection() -> Result<(), TransportError> { +async fn test_configure_existing_collection() -> Result<(), BanksClientError> { // Arrange let mut nft_voter_test = NftVoterTest::start_new().await; @@ -223,7 +305,7 @@ async fn test_configure_existing_collection() -> Result<(), TransportError> { // TODO: Remove collection test #[tokio::test] -async fn test_configure_collection_with_invalid_realm_error() -> Result<(), TransportError> { +async fn test_configure_collection_with_invalid_realm_error() -> Result<(), BanksClientError> { // Arrange let mut nft_voter_test = NftVoterTest::start_new().await; @@ -263,7 +345,7 @@ async fn test_configure_collection_with_invalid_realm_error() -> Result<(), Tran #[tokio::test] async fn test_configure_collection_with_realm_authority_must_sign_error( -) -> Result<(), TransportError> { +) -> Result<(), BanksClientError> { // Arrange let mut nft_voter_test = NftVoterTest::start_new().await; @@ -299,7 +381,7 @@ async fn test_configure_collection_with_realm_authority_must_sign_error( } #[tokio::test] -async fn test_configure_collection_with_invalid_realm_authority_error() -> Result<(), TransportError> +async fn test_configure_collection_with_invalid_realm_authority_error() -> Result<(), BanksClientError> { // Arrange let mut nft_voter_test = NftVoterTest::start_new().await; @@ -339,7 +421,7 @@ async fn test_configure_collection_with_invalid_realm_authority_error() -> Resul #[tokio::test] async fn test_configure_collection_with_invalid_max_voter_weight_realm_error( -) -> Result<(), TransportError> { +) -> Result<(), BanksClientError> { // Arrange let mut nft_voter_test = NftVoterTest::start_new().await; @@ -376,7 +458,7 @@ async fn test_configure_collection_with_invalid_max_voter_weight_realm_error( #[tokio::test] async fn test_configure_collection_with_invalid_max_voter_weight_mint_error( -) -> Result<(), TransportError> { +) -> Result<(), BanksClientError> { // Arrange let mut nft_voter_test = NftVoterTest::start_new().await; @@ -413,7 +495,7 @@ async fn test_configure_collection_with_invalid_max_voter_weight_mint_error( } #[tokio::test] -async fn test_configure_collection_with_voting_proposal_error() -> Result<(), TransportError> { +async fn test_configure_collection_with_voting_proposal_error() -> Result<(), BanksClientError> { // Arrange let mut nft_voter_test = NftVoterTest::start_new().await; diff --git a/programs/nft-voter/tests/create_max_voter_weight_record.rs b/programs/nft-voter/tests/create_max_voter_weight_record.rs index 2e5c7b35..e4f6fa7f 100644 --- a/programs/nft-voter/tests/create_max_voter_weight_record.rs +++ b/programs/nft-voter/tests/create_max_voter_weight_record.rs @@ -1,12 +1,12 @@ use program_test::{nft_voter_test::NftVoterTest, tools::assert_ix_err}; use solana_program::instruction::InstructionError; use solana_program_test::*; -use solana_sdk::transport::TransportError; + mod program_test; #[tokio::test] -async fn test_create_max_voter_weight_record() -> Result<(), TransportError> { +async fn test_create_max_voter_weight_record() -> Result<(), BanksClientError> { // Arrange let mut nft_voter_test = NftVoterTest::start_new().await; @@ -34,7 +34,7 @@ async fn test_create_max_voter_weight_record() -> Result<(), TransportError> { } #[tokio::test] -async fn test_create_max_voter_weight_record_with_invalid_realm_error() -> Result<(), TransportError> +async fn test_create_max_voter_weight_record_with_invalid_realm_error() -> Result<(), BanksClientError> { // Arrange let mut nft_voter_test = NftVoterTest::start_new().await; @@ -63,7 +63,7 @@ async fn test_create_max_voter_weight_record_with_invalid_realm_error() -> Resul } #[tokio::test] -async fn test_create_max_voter_weight_record_with_invalid_mint_error() -> Result<(), TransportError> +async fn test_create_max_voter_weight_record_with_invalid_mint_error() -> Result<(), BanksClientError> { // Arrange let mut nft_voter_test = NftVoterTest::start_new().await; @@ -93,7 +93,7 @@ async fn test_create_max_voter_weight_record_with_invalid_mint_error() -> Result #[tokio::test] async fn test_create_max_voter_weight_record_with_already_exists_error( -) -> Result<(), TransportError> { +) -> Result<(), BanksClientError> { // Arrange let mut nft_voter_test = NftVoterTest::start_new().await; diff --git a/programs/nft-voter/tests/create_registrar.rs b/programs/nft-voter/tests/create_registrar.rs index 29a9cc30..de7fdbff 100644 --- a/programs/nft-voter/tests/create_registrar.rs +++ b/programs/nft-voter/tests/create_registrar.rs @@ -6,12 +6,12 @@ use program_test::nft_voter_test::NftVoterTest; use solana_program::instruction::InstructionError; use solana_program_test::*; -use solana_sdk::{signature::Keypair, transport::TransportError}; +use solana_sdk::{signature::Keypair}; use program_test::tools::{assert_anchor_err, assert_ix_err, assert_nft_voter_err}; #[tokio::test] -async fn test_create_registrar() -> Result<(), TransportError> { +async fn test_create_registrar() -> Result<(), BanksClientError> { // Arrange let mut nft_voter_test = NftVoterTest::start_new().await; @@ -31,7 +31,7 @@ async fn test_create_registrar() -> Result<(), TransportError> { } #[tokio::test] -async fn test_create_registrar_with_invalid_realm_authority_error() -> Result<(), TransportError> { +async fn test_create_registrar_with_invalid_realm_authority_error() -> Result<(), BanksClientError> { // Arrange let mut nft_voter_test = NftVoterTest::start_new().await; @@ -51,7 +51,7 @@ async fn test_create_registrar_with_invalid_realm_authority_error() -> Result<() } #[tokio::test] -async fn test_create_registrar_with_realm_authority_must_sign_error() -> Result<(), TransportError> +async fn test_create_registrar_with_realm_authority_must_sign_error() -> Result<(), BanksClientError> { // Arrange let mut nft_voter_test = NftVoterTest::start_new().await; @@ -76,7 +76,7 @@ async fn test_create_registrar_with_realm_authority_must_sign_error() -> Result< } #[tokio::test] -async fn test_create_registrar_with_invalid_spl_gov_program_id_error() -> Result<(), TransportError> +async fn test_create_registrar_with_invalid_spl_gov_program_id_error() -> Result<(), BanksClientError> { // Arrange let mut nft_voter_test = NftVoterTest::start_new().await; @@ -104,7 +104,7 @@ async fn test_create_registrar_with_invalid_spl_gov_program_id_error() -> Result } #[tokio::test] -async fn test_create_registrar_with_invalid_realm_error() -> Result<(), TransportError> { +async fn test_create_registrar_with_invalid_realm_error() -> Result<(), BanksClientError> { // Arrange let mut nft_voter_test = NftVoterTest::start_new().await; @@ -130,7 +130,7 @@ async fn test_create_registrar_with_invalid_realm_error() -> Result<(), Transpor #[tokio::test] async fn test_create_registrar_with_invalid_governing_token_mint_error( -) -> Result<(), TransportError> { +) -> Result<(), BanksClientError> { // Arrange let mut nft_voter_test = NftVoterTest::start_new().await; diff --git a/programs/nft-voter/tests/create_voter_weight_record.rs b/programs/nft-voter/tests/create_voter_weight_record.rs index c23d7858..0b52f08d 100644 --- a/programs/nft-voter/tests/create_voter_weight_record.rs +++ b/programs/nft-voter/tests/create_voter_weight_record.rs @@ -2,12 +2,12 @@ use program_test::nft_voter_test::NftVoterTest; use program_test::tools::assert_ix_err; use solana_program::instruction::InstructionError; use solana_program_test::*; -use solana_sdk::transport::TransportError; + mod program_test; #[tokio::test] -async fn test_create_voter_weight_record() -> Result<(), TransportError> { +async fn test_create_voter_weight_record() -> Result<(), BanksClientError> { // Arrange let mut nft_voter_test = NftVoterTest::start_new().await; @@ -34,7 +34,7 @@ async fn test_create_voter_weight_record() -> Result<(), TransportError> { } #[tokio::test] -async fn test_create_voter_weight_record_with_invalid_realm_error() -> Result<(), TransportError> { +async fn test_create_voter_weight_record_with_invalid_realm_error() -> Result<(), BanksClientError> { // Arrange let mut nft_voter_test = NftVoterTest::start_new().await; @@ -64,7 +64,7 @@ async fn test_create_voter_weight_record_with_invalid_realm_error() -> Result<() } #[tokio::test] -async fn test_create_voter_weight_record_with_invalid_mint_error() -> Result<(), TransportError> { +async fn test_create_voter_weight_record_with_invalid_mint_error() -> Result<(), BanksClientError> { // Arrange let mut nft_voter_test = NftVoterTest::start_new().await; @@ -94,7 +94,7 @@ async fn test_create_voter_weight_record_with_invalid_mint_error() -> Result<(), } #[tokio::test] -async fn test_create_voter_weight_record_with_already_exists_error() -> Result<(), TransportError> { +async fn test_create_voter_weight_record_with_already_exists_error() -> Result<(), BanksClientError> { // Arrange let mut nft_voter_test = NftVoterTest::start_new().await; diff --git a/programs/nft-voter/tests/fixtures/mpl_token_metadata.so b/programs/nft-voter/tests/fixtures/mpl_token_metadata.so old mode 100755 new mode 100644 index 7c8ae98f6868ca62844ffc214e3190d1c68b6f2d..c4478c9fd5146e63d9ea92200e00c9c0a7d5c924 GIT binary patch literal 693904 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%0DK)=&l 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 z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 HVBk0qVs@I( delta 116506 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%0A4)zqw##Y&tHnzIC_X|>hn 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 Result { + pub async fn with_realm(&mut self) -> Result { let realm_authority = Keypair::new(); let community_mint_cookie = self.bench.with_mint().await?; @@ -146,7 +146,7 @@ impl GovernanceTest { pub async fn with_proposal( &mut self, realm_cookie: &RealmCookie, - ) -> Result { + ) -> Result { let token_account_cookie = self .bench .with_token_account(&realm_cookie.account.community_mint) @@ -306,7 +306,7 @@ impl GovernanceTest { &mut self, realm_cookie: &RealmCookie, token_owner_cookie: &WalletCookie, - ) -> Result { + ) -> Result { let token_owner_record_key = get_token_owner_record_address( &self.program_id, &realm_cookie.address, @@ -352,7 +352,7 @@ impl GovernanceTest { proposal_cookie: &ProposalCookie, token_owner_cookie: &WalletCookie, token_owner_record_cookie: &TokenOwnerRecordCookie, - ) -> Result<(), TransportError> { + ) -> Result<(), BanksClientError> { let relinquish_vote_ix = relinquish_vote( &self.program_id, &proposal_cookie.account.governance, diff --git a/programs/nft-voter/tests/program_test/nft_voter_test.rs b/programs/nft-voter/tests/program_test/nft_voter_test.rs index 54af423e..17c92258 100644 --- a/programs/nft-voter/tests/program_test/nft_voter_test.rs +++ b/programs/nft-voter/tests/program_test/nft_voter_test.rs @@ -6,7 +6,7 @@ use gpl_nft_voter::state::max_voter_weight_record::{ get_max_voter_weight_record_address, MaxVoterWeightRecord, }; use gpl_nft_voter::state::*; -use solana_sdk::transport::TransportError; + use spl_governance::instruction::cast_vote; use spl_governance::state::vote_record::{self, Vote, VoteChoice}; @@ -14,7 +14,7 @@ use gpl_nft_voter::state::{ get_nft_vote_record_address, get_registrar_address, CollectionConfig, NftVoteRecord, Registrar, }; -use solana_program_test::ProgramTest; +use solana_program_test::{ProgramTest, BanksClientError}; use solana_sdk::instruction::Instruction; use solana_sdk::signature::Keypair; use solana_sdk::signer::Signer; @@ -121,7 +121,7 @@ impl NftVoterTest { pub async fn with_registrar( &mut self, realm_cookie: &RealmCookie, - ) -> Result { + ) -> Result { self.with_registrar_using_ix(realm_cookie, NopOverride, None) .await } @@ -132,7 +132,7 @@ impl NftVoterTest { realm_cookie: &RealmCookie, instruction_override: F, signers_override: Option<&[&Keypair]>, - ) -> Result { + ) -> Result { let registrar_key = get_registrar_address(&realm_cookie.address, &realm_cookie.account.community_mint); @@ -192,7 +192,7 @@ impl NftVoterTest { &self, registrar_cookie: &RegistrarCookie, voter_cookie: &WalletCookie, - ) -> Result { + ) -> Result { self.with_voter_weight_record_using_ix(registrar_cookie, voter_cookie, NopOverride) .await } @@ -203,7 +203,7 @@ impl NftVoterTest { registrar_cookie: &RegistrarCookie, voter_cookie: &WalletCookie, instruction_override: F, - ) -> Result { + ) -> Result { let governing_token_owner = voter_cookie.address; let (voter_weight_record_key, _) = Pubkey::find_program_address( @@ -264,7 +264,7 @@ impl NftVoterTest { pub async fn with_max_voter_weight_record( &mut self, registrar_cookie: &RegistrarCookie, - ) -> Result { + ) -> Result { self.with_max_voter_weight_record_using_ix(registrar_cookie, NopOverride) .await } @@ -274,7 +274,7 @@ impl NftVoterTest { &mut self, registrar_cookie: &RegistrarCookie, instruction_override: F, - ) -> Result { + ) -> Result { let max_voter_weight_record_key = get_max_voter_weight_record_address( ®istrar_cookie.account.realm, ®istrar_cookie.account.governing_token_mint, @@ -326,7 +326,7 @@ impl NftVoterTest { voter_weight_record_cookie: &mut VoterWeightRecordCookie, voter_weight_action: VoterWeightAction, nft_cookies: &[&NftCookie], - ) -> Result<(), TransportError> { + ) -> Result<(), BanksClientError> { let data = anchor_lang::InstructionData::data( &gpl_nft_voter::instruction::UpdateVoterWeightRecord { voter_weight_action, @@ -363,7 +363,7 @@ impl NftVoterTest { voter_cookie: &WalletCookie, voter_token_owner_record_cookie: &TokenOwnerRecordCookie, nft_vote_record_cookies: &Vec, - ) -> Result<(), TransportError> { + ) -> Result<(), BanksClientError> { let data = anchor_lang::InstructionData::data(&gpl_nft_voter::instruction::RelinquishNftVote {}); @@ -409,7 +409,7 @@ impl NftVoterTest { nft_collection_cookie: &NftCollectionCookie, max_voter_weight_record_cookie: &MaxVoterWeightRecordCookie, args: Option, - ) -> Result { + ) -> Result { self.with_collection_using_ix( registrar_cookie, nft_collection_cookie, @@ -430,7 +430,7 @@ impl NftVoterTest { args: Option, instruction_override: F, signers_override: Option<&[&Keypair]>, - ) -> Result { + ) -> Result { let args = args.unwrap_or_default(); let data = @@ -484,7 +484,7 @@ impl NftVoterTest { voter_token_owner_record_cookie: &TokenOwnerRecordCookie, nft_cookies: &[&NftCookie], args: Option, - ) -> Result, TransportError> { + ) -> Result, BanksClientError> { let args = args.unwrap_or_default(); let data = anchor_lang::InstructionData::data(&gpl_nft_voter::instruction::CastNftVote { diff --git a/programs/nft-voter/tests/program_test/program_test_bench.rs b/programs/nft-voter/tests/program_test/program_test_bench.rs index 150a6009..1754c792 100644 --- a/programs/nft-voter/tests/program_test/program_test_bench.rs +++ b/programs/nft-voter/tests/program_test/program_test_bench.rs @@ -6,7 +6,7 @@ use anchor_lang::{ }; use solana_program::{borsh::try_from_slice_unchecked, system_program}; -use solana_program_test::{ProgramTest, ProgramTestContext}; +use solana_program_test::{ProgramTest, ProgramTestContext, BanksClientError}; use solana_sdk::{ account::{Account, ReadableAccount}, instruction::Instruction, @@ -15,7 +15,6 @@ use solana_sdk::{ signer::Signer, system_instruction, transaction::Transaction, - transport::TransportError, }; use borsh::BorshDeserialize; @@ -67,7 +66,7 @@ impl ProgramTestBench { &self, instructions: &[Instruction], signers: Option<&[&Keypair]>, - ) -> Result<(), TransportError> { + ) -> Result<(), BanksClientError> { let mut context = self.context.borrow_mut(); let mut transaction = @@ -108,7 +107,7 @@ impl ProgramTestBench { .unwrap(); } - pub async fn with_mint(&self) -> Result { + pub async fn with_mint(&self) -> Result { let mint_keypair = Keypair::new(); let mint_authority = Keypair::new(); let freeze_authority = Keypair::new(); @@ -129,7 +128,7 @@ impl ProgramTestBench { mint_keypair: &Keypair, mint_authority: &Pubkey, freeze_authority: Option<&Pubkey>, - ) -> Result<(), TransportError> { + ) -> Result<(), BanksClientError> { let mint_rent = self.rent.minimum_balance(spl_token::state::Mint::LEN); let instructions = [ @@ -158,7 +157,7 @@ impl ProgramTestBench { pub async fn with_token_account( &self, token_mint: &Pubkey, - ) -> Result { + ) -> Result { let token_account_keypair = Keypair::new(); self.create_token_account(&token_account_keypair, token_mint, &self.payer.pubkey()) .await?; @@ -174,7 +173,7 @@ impl ProgramTestBench { mint_cookie: &MintCookie, owner: &Pubkey, amount: u64, - ) -> Result { + ) -> Result { let token_account_keypair = Keypair::new(); self.create_token_account(&token_account_keypair, &mint_cookie.address, owner) @@ -199,7 +198,7 @@ impl ProgramTestBench { token_mint_authority: &Keypair, token_account: &Pubkey, amount: u64, - ) -> Result<(), TransportError> { + ) -> Result<(), BanksClientError> { let mint_instruction = spl_token::instruction::mint_to( &spl_token::id(), token_mint, @@ -220,7 +219,7 @@ impl ProgramTestBench { token_account_keypair: &Keypair, token_mint: &Pubkey, owner: &Pubkey, - ) -> Result<(), TransportError> { + ) -> Result<(), BanksClientError> { let rent = self .context .borrow_mut() diff --git a/programs/nft-voter/tests/program_test/token_metadata_test.rs b/programs/nft-voter/tests/program_test/token_metadata_test.rs index 3ac0f97f..7060c050 100644 --- a/programs/nft-voter/tests/program_test/token_metadata_test.rs +++ b/programs/nft-voter/tests/program_test/token_metadata_test.rs @@ -1,9 +1,9 @@ use std::{str::FromStr, sync::Arc}; use anchor_lang::prelude::Pubkey; -use mpl_token_metadata::state::Collection; -use solana_program_test::ProgramTest; -use solana_sdk::{signer::Signer, transport::TransportError}; +use mpl_token_metadata::state::{Collection,CollectionDetails}; +use solana_program_test::{ProgramTest, BanksClientError}; +use solana_sdk::{signer::Signer}; use crate::program_test::program_test_bench::{MintCookie, ProgramTestBench, WalletCookie}; @@ -57,7 +57,7 @@ impl TokenMetadataTest { } #[allow(dead_code)] - pub async fn with_nft_collection(&self) -> Result { + pub async fn with_nft_collection(&self) -> Result { let update_authority = self.bench.context.borrow().payer.pubkey(); let payer = self.bench.context.borrow().payer.pubkey(); @@ -138,19 +138,104 @@ impl TokenMetadataTest { }) } + pub async fn with_nft_collection_v3(&self) -> Result { + let update_authority = self.bench.context.borrow().payer.pubkey(); + let payer = self.bench.context.borrow().payer.pubkey(); + + // Create collection + let coll_mint_cookie = self.bench.with_mint().await?; + self.bench + .with_tokens(&coll_mint_cookie, &update_authority, 1) + .await?; + + let coll_metadata_seeds = &[ + b"metadata".as_ref(), + self.program_id.as_ref(), + &coll_mint_cookie.address.as_ref(), + ]; + let (coll_metadata_key, _) = + Pubkey::find_program_address(coll_metadata_seeds, &self.program_id); + + let coll_name = "NFT_C".to_string(); + let coll_symbol = "NFT_C".to_string(); + let coll_uri = "URI".to_string(); + let coll_details = Some(CollectionDetails::V1 {size: 0}); + + let create_coll_metadata_ix = mpl_token_metadata::instruction::create_metadata_accounts_v3( + self.program_id, + coll_metadata_key, + coll_mint_cookie.address, + coll_mint_cookie.mint_authority.pubkey(), + payer.clone(), + update_authority.clone(), + coll_name, + coll_symbol, + coll_uri, + None, + 10, + false, + false, + None, + None, + coll_details, + ); + + self.bench + .process_transaction( + &[create_coll_metadata_ix], + Some(&[&coll_mint_cookie.mint_authority]), + ) + .await?; + + let master_edition_seeds = &[ + b"metadata".as_ref(), + self.program_id.as_ref(), + coll_mint_cookie.address.as_ref(), + b"edition".as_ref(), + ]; + let (master_edition_key, _) = + Pubkey::find_program_address(master_edition_seeds, &self.program_id); + + + + let create_master_edition_ix = mpl_token_metadata::instruction::create_master_edition_v3( + self.program_id, + master_edition_key, + coll_mint_cookie.address, + update_authority, + coll_mint_cookie.mint_authority.pubkey(), + coll_metadata_key, + payer, + Some(0), + ); + + self.bench + .process_transaction( + &[create_master_edition_ix], + Some(&[&coll_mint_cookie.mint_authority]), + ) + .await?; + + Ok(NftCollectionCookie { + mint: coll_mint_cookie.address, + metadata: coll_metadata_key, + master_edition: master_edition_key, + }) + } + #[allow(dead_code)] pub async fn with_nft_v2( &self, nft_collection_cookie: &NftCollectionCookie, nft_owner_cookie: &WalletCookie, args: Option, - ) -> Result { + ) -> Result { let CreateNftArgs { verify_collection, amount, } = args.unwrap_or_default(); - // Crate NFT + // Create NFT let mint_cookie = self.bench.with_mint().await?; let nft_account_cookie = self .bench @@ -218,4 +303,86 @@ impl TokenMetadataTest { mint_cookie, }) } + + #[allow(dead_code)] + pub async fn with_nft_v3( + &self, + nft_collection_cookie: &NftCollectionCookie, + nft_owner_cookie: &WalletCookie, + args: Option, + ) -> Result { + let CreateNftArgs { + verify_collection, + amount, + } = args.unwrap_or_default(); + + // Create NFT + let mint_cookie = self.bench.with_mint().await?; + let nft_account_cookie = self + .bench + .with_tokens(&mint_cookie, &nft_owner_cookie.address, amount) + .await?; + + let metadata_seeds = &[ + b"metadata".as_ref(), + self.program_id.as_ref(), + &mint_cookie.address.as_ref(), + ]; + let (metadata_key, _) = Pubkey::find_program_address(metadata_seeds, &self.program_id); + + let name = "TestNFT".to_string(); + let symbol = "NFT".to_string(); + let uri = "URI".to_string(); + + let collection = Collection { + verified: false, + key: nft_collection_cookie.mint, + }; + + let create_metadata_ix = mpl_token_metadata::instruction::create_metadata_accounts_v3( + self.program_id, + metadata_key, + mint_cookie.address, + mint_cookie.mint_authority.pubkey(), + self.bench.payer.pubkey(), + self.bench.payer.pubkey(), + name, + symbol, + uri, + None, + 10, + false, + false, + Some(collection), + None, + None, + ); + + self.bench + .process_transaction(&[create_metadata_ix], Some(&[&mint_cookie.mint_authority])) + .await?; + + if verify_collection { + let verify_collection = mpl_token_metadata::instruction::verify_sized_collection_item( + self.program_id, + metadata_key, + self.bench.payer.pubkey(), + self.bench.payer.pubkey(), + nft_collection_cookie.mint, + nft_collection_cookie.metadata, + nft_collection_cookie.master_edition, + None, + ); + + self.bench + .process_transaction(&[verify_collection], None) + .await?; + } + + Ok(NftCookie { + address: nft_account_cookie.address, + metadata: metadata_key, + mint_cookie, + }) + } } diff --git a/programs/nft-voter/tests/program_test/tools.rs b/programs/nft-voter/tests/program_test/tools.rs index 51f615d8..1b833b38 100644 --- a/programs/nft-voter/tests/program_test/tools.rs +++ b/programs/nft-voter/tests/program_test/tools.rs @@ -1,7 +1,8 @@ use anchor_lang::prelude::ERROR_CODE_OFFSET; use gpl_nft_voter::error::NftVoterError; use solana_program::instruction::InstructionError; -use solana_sdk::{signature::Keypair, transaction::TransactionError, transport::TransportError}; +use solana_program_test::{BanksClientError}; +use solana_sdk::{signature::Keypair, transaction::TransactionError}; use spl_governance_tools::error::GovernanceToolsError; pub fn clone_keypair(source: &Keypair) -> Keypair { @@ -13,7 +14,7 @@ pub fn clone_keypair(source: &Keypair) -> Keypair { pub fn NopOverride(_: &mut T) {} #[allow(dead_code)] -pub fn assert_nft_voter_err(banks_client_error: TransportError, nft_locker_error: NftVoterError) { +pub fn assert_nft_voter_err(banks_client_error: BanksClientError, nft_locker_error: NftVoterError) { let tx_error = banks_client_error.unwrap(); match tx_error { @@ -29,7 +30,7 @@ pub fn assert_nft_voter_err(banks_client_error: TransportError, nft_locker_error #[allow(dead_code)] pub fn assert_gov_tools_err( - banks_client_error: TransportError, + banks_client_error: BanksClientError, gov_tools_error: GovernanceToolsError, ) { let tx_error = banks_client_error.unwrap(); @@ -47,7 +48,7 @@ pub fn assert_gov_tools_err( #[allow(dead_code)] pub fn assert_anchor_err( - banks_client_error: TransportError, + banks_client_error: BanksClientError, anchor_error: anchor_lang::error::ErrorCode, ) { let tx_error = banks_client_error.unwrap(); @@ -64,7 +65,7 @@ pub fn assert_anchor_err( } #[allow(dead_code)] -pub fn assert_ix_err(banks_client_error: TransportError, ix_error: InstructionError) { +pub fn assert_ix_err(banks_client_error: BanksClientError, ix_error: InstructionError) { let tx_error = banks_client_error.unwrap(); match tx_error { diff --git a/programs/nft-voter/tests/relinquish_nft_vote.rs b/programs/nft-voter/tests/relinquish_nft_vote.rs index a942bb80..26db63af 100644 --- a/programs/nft-voter/tests/relinquish_nft_vote.rs +++ b/programs/nft-voter/tests/relinquish_nft_vote.rs @@ -3,12 +3,12 @@ use gpl_nft_voter::error::NftVoterError; use program_test::nft_voter_test::{CastNftVoteArgs, NftVoterTest}; use program_test::tools::assert_nft_voter_err; use solana_program_test::*; -use solana_sdk::transport::TransportError; + mod program_test; #[tokio::test] -async fn test_relinquish_nft_vote() -> Result<(), TransportError> { +async fn test_relinquish_nft_vote() -> Result<(), BanksClientError> { // Arrange let mut nft_voter_test = NftVoterTest::start_new().await; @@ -101,7 +101,7 @@ async fn test_relinquish_nft_vote() -> Result<(), TransportError> { } #[tokio::test] -async fn test_relinquish_nft_vote_for_proposal_in_voting_state() -> Result<(), TransportError> { +async fn test_relinquish_nft_vote_for_proposal_in_voting_state() -> Result<(), BanksClientError> { // Arrange let mut nft_voter_test = NftVoterTest::start_new().await; @@ -205,7 +205,7 @@ async fn test_relinquish_nft_vote_for_proposal_in_voting_state() -> Result<(), T #[tokio::test] async fn test_relinquish_nft_vote_for_proposal_in_voting_state_and_vote_record_exists_error( -) -> Result<(), TransportError> { +) -> Result<(), BanksClientError> { // Arrange let mut nft_voter_test = NftVoterTest::start_new().await; @@ -284,7 +284,7 @@ async fn test_relinquish_nft_vote_for_proposal_in_voting_state_and_vote_record_e } #[tokio::test] -async fn test_relinquish_nft_vote_with_invalid_voter_error() -> Result<(), TransportError> { +async fn test_relinquish_nft_vote_with_invalid_voter_error() -> Result<(), BanksClientError> { // Arrange let mut nft_voter_test = NftVoterTest::start_new().await; @@ -367,7 +367,7 @@ async fn test_relinquish_nft_vote_with_invalid_voter_error() -> Result<(), Trans } #[tokio::test] -async fn test_relinquish_nft_vote_with_unexpired_vote_weight_record() -> Result<(), TransportError> +async fn test_relinquish_nft_vote_with_unexpired_vote_weight_record() -> Result<(), BanksClientError> { // Arrange let mut nft_voter_test = NftVoterTest::start_new().await; diff --git a/programs/nft-voter/tests/update_voter_weight_record.rs b/programs/nft-voter/tests/update_voter_weight_record.rs index d29809a2..aae05db0 100644 --- a/programs/nft-voter/tests/update_voter_weight_record.rs +++ b/programs/nft-voter/tests/update_voter_weight_record.rs @@ -5,12 +5,12 @@ use program_test::nft_voter_test::NftVoterTest; use program_test::token_metadata_test::CreateNftArgs; use program_test::tools::*; use solana_program_test::*; -use solana_sdk::transport::TransportError; + mod program_test; #[tokio::test] -async fn test_update_voter_weight_record() -> Result<(), TransportError> { +async fn test_update_voter_weight_record() -> Result<(), BanksClientError> { // Arrange let mut nft_voter_test = NftVoterTest::start_new().await; @@ -78,7 +78,7 @@ async fn test_update_voter_weight_record() -> Result<(), TransportError> { } #[tokio::test] -async fn test_update_voter_weight_with_multiple_nfts() -> Result<(), TransportError> { +async fn test_update_voter_weight_with_multiple_nfts() -> Result<(), BanksClientError> { // Arrange let mut nft_voter_test = NftVoterTest::start_new().await; @@ -151,7 +151,7 @@ async fn test_update_voter_weight_with_multiple_nfts() -> Result<(), TransportEr } #[tokio::test] -async fn test_update_voter_weight_with_cast_vote_not_allowed_error() -> Result<(), TransportError> { +async fn test_update_voter_weight_with_cast_vote_not_allowed_error() -> Result<(), BanksClientError> { // Arrange let mut nft_voter_test = NftVoterTest::start_new().await; @@ -207,7 +207,7 @@ async fn test_update_voter_weight_with_cast_vote_not_allowed_error() -> Result<( } #[tokio::test] -async fn test_update_voter_weight_with_unverified_collection_error() -> Result<(), TransportError> { +async fn test_update_voter_weight_with_unverified_collection_error() -> Result<(), BanksClientError> { // Arrange let mut nft_voter_test = NftVoterTest::start_new().await; @@ -271,7 +271,7 @@ async fn test_update_voter_weight_with_unverified_collection_error() -> Result<( } #[tokio::test] -async fn test_update_voter_weight_with_invalid_owner_error() -> Result<(), TransportError> { +async fn test_update_voter_weight_with_invalid_owner_error() -> Result<(), BanksClientError> { // Arrange let mut nft_voter_test = NftVoterTest::start_new().await; @@ -329,7 +329,7 @@ async fn test_update_voter_weight_with_invalid_owner_error() -> Result<(), Trans } #[tokio::test] -async fn test_update_voter_weight_with_invalid_collection_error() -> Result<(), TransportError> { +async fn test_update_voter_weight_with_invalid_collection_error() -> Result<(), BanksClientError> { // Arrange let mut nft_voter_test = NftVoterTest::start_new().await; @@ -387,7 +387,7 @@ async fn test_update_voter_weight_with_invalid_collection_error() -> Result<(), } #[tokio::test] -async fn test_update_voter_weight_with_invalid_metadata_error() -> Result<(), TransportError> { +async fn test_update_voter_weight_with_invalid_metadata_error() -> Result<(), BanksClientError> { // Arrange let mut nft_voter_test = NftVoterTest::start_new().await; @@ -458,7 +458,7 @@ async fn test_update_voter_weight_with_invalid_metadata_error() -> Result<(), Tr } #[tokio::test] -async fn test_update_voter_weight_with_same_nft_error() -> Result<(), TransportError> { +async fn test_update_voter_weight_with_same_nft_error() -> Result<(), BanksClientError> { // Arrange let mut nft_voter_test = NftVoterTest::start_new().await; @@ -512,7 +512,7 @@ async fn test_update_voter_weight_with_same_nft_error() -> Result<(), TransportE } #[tokio::test] -async fn test_update_voter_weight_record_with_no_nft_error() -> Result<(), TransportError> { +async fn test_update_voter_weight_record_with_no_nft_error() -> Result<(), BanksClientError> { // Arrange let mut nft_voter_test = NftVoterTest::start_new().await; From d9ce9fd79d12799a187fb42e8baaaa1af54bcfb6 Mon Sep 17 00:00:00 2001 From: gabrielhicks Date: Wed, 6 Jul 2022 08:38:54 -0400 Subject: [PATCH 3/4] Still breaking, need to look into metadata_v3 more --- programs/nft-voter/src/state/registrar.rs | 2 +- .../nft-voter/tests/configure_collection.rs | 42 +++++++------------ 2 files changed, 15 insertions(+), 29 deletions(-) diff --git a/programs/nft-voter/src/state/registrar.rs b/programs/nft-voter/src/state/registrar.rs index 990b64ff..79674c62 100644 --- a/programs/nft-voter/src/state/registrar.rs +++ b/programs/nft-voter/src/state/registrar.rs @@ -39,7 +39,7 @@ impl Registrar { DISCRIMINATOR_SIZE + PUBKEY_SIZE * 3 + 4 - + max_collections as usize * (PUBKEY_SIZE + 4 + 8 + 8) + + max_collections as usize * (PUBKEY_SIZE + 8 + 8 + 8) + 128 } } diff --git a/programs/nft-voter/tests/configure_collection.rs b/programs/nft-voter/tests/configure_collection.rs index fb5d5ea9..7c19901d 100644 --- a/programs/nft-voter/tests/configure_collection.rs +++ b/programs/nft-voter/tests/configure_collection.rs @@ -75,6 +75,8 @@ async fn test_configure_collection_sized_with_two_nft_mints() -> Result<(), Bank let minter_cookie = nft_voter_test.bench.with_wallet().await; +// Program metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s failed: Failed to serialize or deserialize account data: Unknown +// Error: TransactionError(InstructionError(0, BorshIoError("Unknown"))) let nft_cookie = nft_voter_test .token_metadata .with_nft_v3( @@ -87,19 +89,6 @@ async fn test_configure_collection_sized_with_two_nft_mints() -> Result<(), Bank ) .await?; - - let nft_cookie_2 = nft_voter_test - .token_metadata - .with_nft_v3( - &nft_collection_cookie, - &minter_cookie, - Some(CreateNftArgs { - verify_collection: true, - ..Default::default() - }), - ) - .await?; - let max_voter_weight_record_cookie = nft_voter_test .with_max_voter_weight_record(®istrar_cookie) .await?; @@ -110,10 +99,7 @@ async fn test_configure_collection_sized_with_two_nft_mints() -> Result<(), Bank ®istrar_cookie, &nft_collection_cookie, &max_voter_weight_record_cookie, - Some(ConfigureCollectionArgs { - weight: 10, - size: 20, - }),, + None, ) .await?; @@ -122,24 +108,24 @@ async fn test_configure_collection_sized_with_two_nft_mints() -> Result<(), Bank .get_registrar_account(®istrar_cookie.address) .await; - // assert_eq!(registrar.collection_configs.len(), 1); + assert_eq!(registrar.collection_configs.len(), 1); - assert_eq!(registrar.collection_configs[0].size, 2); + assert_eq!(registrar.collection_configs[0].size, 1); - // assert_eq!( - // registrar.collection_configs[0], - // collection_config_cookie.collection_config - // ); + assert_eq!( + registrar.collection_configs[0], + collection_config_cookie.collection_config + ); let max_voter_weight_record = nft_voter_test .get_max_voter_weight_record(&max_voter_weight_record_cookie.address) .await; - // assert_eq!(max_voter_weight_record.max_voter_weight_expiry, None); - // assert_eq!( - // max_voter_weight_record.max_voter_weight, - // (registrar.collection_configs[0].weight * registrar.collection_configs[0].size) - // ); + assert_eq!(max_voter_weight_record.max_voter_weight_expiry, None); + assert_eq!( + max_voter_weight_record.max_voter_weight, + (registrar.collection_configs[0].weight * registrar.collection_configs[0].size) + ); Ok(()) } From 6abf2ee76ce7f9c0f859579a3ed8c366a8f0cea2 Mon Sep 17 00:00:00 2001 From: gabrielhicks Date: Thu, 7 Jul 2022 21:14:02 -0400 Subject: [PATCH 4/4] Tests added and passing, updated mpl_token_metadata.so to 1.3.1 --- Anchor.toml | 2 +- Cargo.lock | 163 +++++++++--------- programs/nft-voter/Cargo.toml | 8 +- .../src/instructions/configure_collection.rs | 8 +- .../nft-voter/tests/configure_collection.rs | 63 +++++-- .../tests/fixtures/mpl_token_metadata.so | Bin 693904 -> 516624 bytes .../tests/program_test/nft_voter_test.rs | 3 +- .../tests/program_test/token_metadata_test.rs | 3 +- 8 files changed, 149 insertions(+), 101 deletions(-) mode change 100644 => 100755 programs/nft-voter/tests/fixtures/mpl_token_metadata.so diff --git a/Anchor.toml b/Anchor.toml index 75a05ab6..3b670d29 100644 --- a/Anchor.toml +++ b/Anchor.toml @@ -1,5 +1,5 @@ anchor_version = "0.25.0" -solana_version = "1.10.19" +solana_version = "1.10.30" [features] seeds = false diff --git a/Cargo.lock b/Cargo.lock index cf435efb..0297312a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2998,18 +2998,18 @@ dependencies = [ [[package]] name = "shank" -version = "0.0.3" +version = "0.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62c7f8aac4c67081e718ff2a7754a6264774a0eaa6ed64a6e94b1ec1c17af200" +checksum = "85a6c6cad96abd1fd950d1df186ec02e786566161f03adadbb7cf157ae9a82d8" dependencies = [ "shank_macro", ] [[package]] name = "shank_macro" -version = "0.0.3" +version = "0.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9a7538be7f2a6530a37d4e03de34569a1f27a2287b3efe06732d7e5648a9105" +checksum = "c0b3bf722b43cea02627c7fd89925f5861f7aa27604c1852720f8eee1a73523d" dependencies = [ "proc-macro2 1.0.40", "quote 1.0.20", @@ -3019,9 +3019,9 @@ dependencies = [ [[package]] name = "shank_macro_impl" -version = "0.0.3" +version = "0.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4679c7294e45b98031bade3d50f5b01a562962176d76058af69e21e195919190" +checksum = "90a37f762b0529d64a9e3401ac3829e132f58fa9bc50b1fd6ad7b5a1a414a228" dependencies = [ "anyhow", "proc-macro2 1.0.40", @@ -3101,9 +3101,9 @@ dependencies = [ [[package]] name = "solana-account-decoder" -version = "1.10.29" +version = "1.10.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e4d449c99aa412aa0ad73df67d5cb2e61f91a2127231e57e81b79cb5e6e6718" +checksum = "cf09444f64bf82dca6d489076176fa2158a3738a45098b3ddd807c258d342e40" dependencies = [ "Inflector", "base64 0.13.0", @@ -3125,9 +3125,9 @@ dependencies = [ [[package]] name = "solana-address-lookup-table-program" -version = "1.10.29" +version = "1.10.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f7d39516d390dbf22a7d6aa42bdac07fecc9c0b9c1501cd845c7230fa98aa2e" +checksum = "a82b0b50006f53f626710bf45afbcab87a5f9f85b03c359ebe24551c5be19fa2" dependencies = [ "bincode", "bytemuck", @@ -3146,9 +3146,9 @@ dependencies = [ [[package]] name = "solana-banks-client" -version = "1.10.29" +version = "1.10.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf7d9526af69a8ce4eb101f5f625fbe398383f22646cfa824f380c09170ad2fe" +checksum = "ed6074e160861a88de786a3eafac8e42151f6afc4fad8b9705f1b71a9487c585" dependencies = [ "borsh", "futures", @@ -3163,9 +3163,9 @@ dependencies = [ [[package]] name = "solana-banks-interface" -version = "1.10.29" +version = "1.10.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8879af69003030647d5983de21a7a4fa47420965eb2bf52153de4d07ed1fcff0" +checksum = "6e49a34731c47457f4c3973b8cad33f86696a2bbced6cd2db467143cf45c4744" dependencies = [ "serde", "solana-sdk", @@ -3174,9 +3174,9 @@ dependencies = [ [[package]] name = "solana-banks-server" -version = "1.10.29" +version = "1.10.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2648ea0bc1bf3fc0edc7e9db8bbfcb417ae36e6ef0d0c0ffbcf13b751b5307f" +checksum = "0f64931dee13bf8661e49036245d73e427f2ce93bf213335ef9e40f54f8c64e2" dependencies = [ "bincode", "crossbeam-channel", @@ -3194,9 +3194,9 @@ dependencies = [ [[package]] name = "solana-bpf-loader-program" -version = "1.10.29" +version = "1.10.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "508a3867ddd1218a9091505c2378ee99b76f20233d930d7e9eca60867674a7f0" +checksum = "766c51ed887bcce5ddd5ba49b32283e9bdf0feeeca2b6cd34504ff50e789762d" dependencies = [ "bincode", "byteorder", @@ -3206,16 +3206,16 @@ dependencies = [ "solana-metrics", "solana-program-runtime", "solana-sdk", - "solana-zk-token-sdk 1.10.29", + "solana-zk-token-sdk 1.10.30", "solana_rbpf", "thiserror", ] [[package]] name = "solana-bucket-map" -version = "1.10.29" +version = "1.10.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eef123b23f8c59d3bef0b8d1eb9dc936b98a3a846b0d3b516e6f5a202c6b42a5" +checksum = "5f3559fd1fc324429bfbc9529ee017defb47cb7c9b890bcd37eef21167ac42d3" dependencies = [ "log", "memmap2", @@ -3228,9 +3228,9 @@ dependencies = [ [[package]] name = "solana-clap-utils" -version = "1.10.29" +version = "1.10.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6645eb1fb086062c3d1c0b63865a04ab91106e49d3b55e58c88282335324311c" +checksum = "258f7c8a0d0d6dee550495d67ca0975b7f405f699d8ae1a3ff4d8ee16e3a5b3f" dependencies = [ "chrono", "clap", @@ -3246,9 +3246,9 @@ dependencies = [ [[package]] name = "solana-cli-config" -version = "1.10.29" +version = "1.10.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "055a08171cf7c30fde53d1b5c44623c1453ebb54145bf7a193fedc24503035bb" +checksum = "21beaa46cbd7bfd509ce8df217f760a5f31fcf25dc990e9ed3449138df9fcc50" dependencies = [ "dirs-next", "lazy_static", @@ -3262,9 +3262,9 @@ dependencies = [ [[package]] name = "solana-client" -version = "1.10.29" +version = "1.10.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad2a11b9182a7e95c1fcd686a2adbff4c19ee7da2fdf5e8f4807ce00814401f9" +checksum = "b5ea9e434c552efe49d5fa9de2838b434f74beff87c663da1e62058066318759" dependencies = [ "async-mutex", "async-trait", @@ -3317,9 +3317,9 @@ dependencies = [ [[package]] name = "solana-compute-budget-program" -version = "1.10.29" +version = "1.10.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "355efb42d58bbc3b1af7f5dd244c9c370c318e35876cea31a4354521d38383d9" +checksum = "517bff9a561537085c515fee8bc7937f41eb6747599a87d8d6a48ca6317b2ba6" dependencies = [ "solana-program-runtime", "solana-sdk", @@ -3327,9 +3327,9 @@ dependencies = [ [[package]] name = "solana-config-program" -version = "1.10.29" +version = "1.10.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e456899b60ccc04cba02a1b2a0bb00cc92a1e60b04ed7d16cbfb2cb1169533c" +checksum = "dc92dec60bae25beedec778ada92c24c963f214db08fa0f31ed251ae99811248" dependencies = [ "bincode", "chrono", @@ -3341,9 +3341,9 @@ dependencies = [ [[package]] name = "solana-faucet" -version = "1.10.29" +version = "1.10.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50a72947370668638d3193227d020e8204b291f72dfd72caf276eecb2f7a9591" +checksum = "bdbc807dea598731f97f7dd1d0eda58b4064569b4b1efd0885ecf29d6ed15274" dependencies = [ "bincode", "byteorder", @@ -3365,9 +3365,9 @@ dependencies = [ [[package]] name = "solana-frozen-abi" -version = "1.10.29" +version = "1.10.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b4575674b138156108ea7ee855633b28b72d8cd3890245e0847bfdade3797dc" +checksum = "d633edac96c0d19c81a0ea4c6dd04312dbaf0d2979dedb7232bab73c1bb853a7" dependencies = [ "bs58 0.4.0", "bv", @@ -3387,9 +3387,9 @@ dependencies = [ [[package]] name = "solana-frozen-abi-macro" -version = "1.10.29" +version = "1.10.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ec433ed9f8e7dd62edb6ebe13be01a5e0ec04734305836906709339428c7eaf" +checksum = "b4812efee366c0ef684c3fe613e30f5bd2e9445cd6e5a4322a6222a182ca0544" dependencies = [ "proc-macro2 1.0.40", "quote 1.0.20", @@ -3414,9 +3414,9 @@ dependencies = [ [[package]] name = "solana-logger" -version = "1.10.29" +version = "1.10.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "248781d011bdad67c36e4dcd5f83d095b8fd865dbccb5c31a0c01b2a8710269f" +checksum = "a1a40198997c3370fc88fbcbe68b964b90fe76037fe6781702593d4573a70911" dependencies = [ "env_logger", "lazy_static", @@ -3425,9 +3425,9 @@ dependencies = [ [[package]] name = "solana-measure" -version = "1.10.29" +version = "1.10.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc22eb95a690580f3a4af2ec170191365d0f8776e9c75fe731be9e5c76b7047e" +checksum = "2922637ebc456b1826b36e887ef736ec1841ed643c77765cf097f2da3c6f29a1" dependencies = [ "log", "solana-sdk", @@ -3435,9 +3435,9 @@ dependencies = [ [[package]] name = "solana-metrics" -version = "1.10.29" +version = "1.10.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e95f40388091b7abb5cfe7f25910443cf1ce4e60603a29c7e8539036af6b3f9c" +checksum = "f05c54e2e7c68660acfd269f109b626e68bd70078c209191c21d0c98d1f38801" dependencies = [ "crossbeam-channel", "gethostname", @@ -3449,9 +3449,9 @@ dependencies = [ [[package]] name = "solana-net-utils" -version = "1.10.29" +version = "1.10.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d94eaf325096b4b8b14b206b510759e65426f9b6b602f62c3cacc41bceaa823" +checksum = "c0ed1ff792f4b0fe503b055ab6782047334ba990d30eca3bd57ae996d8f86c55" dependencies = [ "bincode", "clap", @@ -3471,9 +3471,9 @@ dependencies = [ [[package]] name = "solana-perf" -version = "1.10.29" +version = "1.10.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "562e0219210de30e3b08e0d93ea8b77c875683aac1ecddc31c7bc17608bfff42" +checksum = "a35d721ede29e33cad41d74499dca2426661a3f6f0f1bf82ea5545b0d20c326d" dependencies = [ "ahash", "bincode", @@ -3498,9 +3498,9 @@ dependencies = [ [[package]] name = "solana-program" -version = "1.10.29" +version = "1.10.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d326eeba5a7ddce915ae3aec9eed8ff017f68baf6149f5b075b25e6834c16eae" +checksum = "ec172845766252c7bdb7e32139c392f76741a269babccaec18f7ba68948c2c91" dependencies = [ "base64 0.13.0", "bincode", @@ -3540,9 +3540,9 @@ dependencies = [ [[package]] name = "solana-program-runtime" -version = "1.10.29" +version = "1.10.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1886fa2f172b4812e235e72751bbb83bd661b686cadd3321c1d04c156d8fe392" +checksum = "d70c195af00a09f5be1ab12ef1b31e0368d63b50ad3cb8e88cbb34aed7e3747c" dependencies = [ "base64 0.13.0", "bincode", @@ -3564,9 +3564,9 @@ dependencies = [ [[package]] name = "solana-program-test" -version = "1.10.29" +version = "1.10.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4de0c1b7663390824dccc2f996bb6075413d91c9ab8709ceb16691b70c7f82d2" +checksum = "7b744535a988eb77bc15dc8950b8869b82decc4c803b3082dc1a214a3e06efa8" dependencies = [ "async-trait", "base64 0.13.0", @@ -3588,9 +3588,9 @@ dependencies = [ [[package]] name = "solana-rayon-threadlimit" -version = "1.10.29" +version = "1.10.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be2f2a1b6b18d9311064cbf92fea851fc0c9475ec7ff43b13993cb6afc38e1db" +checksum = "9c55c4c3018f05c05de178db9c5df91b3f9fa1da3e77302c41e56fed84f0a750" dependencies = [ "lazy_static", "num_cpus", @@ -3598,9 +3598,9 @@ dependencies = [ [[package]] name = "solana-remote-wallet" -version = "1.10.29" +version = "1.10.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9192ad1466c72777d14b779b2361c89576384964eaa9897fde5d817fca5ca07f" +checksum = "f3cf9934056388271fe041ec86a55965ba3ee82d05a9629c1798d0d712785662" dependencies = [ "console", "dialoguer", @@ -3617,9 +3617,9 @@ dependencies = [ [[package]] name = "solana-runtime" -version = "1.10.29" +version = "1.10.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c117e3d4bf099e9f2e38862a9dc29f5e8f7192fe8d4cc7c314ccc1e1514ed7b3" +checksum = "39e1dd1949112b30e1a49ec89dd7d45f7ec7b631b88bc013131e5ed99050f6c7" dependencies = [ "arrayref", "bincode", @@ -3664,7 +3664,7 @@ dependencies = [ "solana-stake-program", "solana-vote-program", "solana-zk-token-proof-program", - "solana-zk-token-sdk 1.10.29", + "solana-zk-token-sdk 1.10.30", "strum", "strum_macros", "symlink", @@ -3676,9 +3676,9 @@ dependencies = [ [[package]] name = "solana-sdk" -version = "1.10.29" +version = "1.10.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "815e81b6aac0cbd511e4ac9e425dc19dfd5705fcf7eaaa619f99a56feac81c71" +checksum = "7e09e5bfb07e2123b4189ba42af02424679880e5e883907e6dc1f531f4ccc06a" dependencies = [ "assert_matches", "base64 0.13.0", @@ -3727,9 +3727,9 @@ dependencies = [ [[package]] name = "solana-sdk-macro" -version = "1.10.29" +version = "1.10.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8d94af92e7bca7d55a2e21b55a882545bd9709e4056de4a97b1e1fdc8687ccd" +checksum = "0a88616834b55ac05375e9b6859288e182281ce7b358f9d5138ec6a35497afbf" dependencies = [ "bs58 0.4.0", "proc-macro2 1.0.40", @@ -3740,9 +3740,9 @@ dependencies = [ [[package]] name = "solana-send-transaction-service" -version = "1.10.29" +version = "1.10.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96778753a6fc50e7bf5857bc0d57cc469f337da1318966e8d936f07dd573281b" +checksum = "c06e53cdf16d74f35c7ed22a1e2ef5510f724d2a0d8f41dce19f391c985a661f" dependencies = [ "crossbeam-channel", "log", @@ -3755,9 +3755,9 @@ dependencies = [ [[package]] name = "solana-stake-program" -version = "1.10.29" +version = "1.10.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aeebdde9e1d1fcddbe302ee36e48505d766b979df27c05181553a7022adc412a" +checksum = "9a07ee848b7a13f0e1ef8b66c5616de28279366c6c8178151d114b7b7aa671ff" dependencies = [ "bincode", "log", @@ -3778,13 +3778,14 @@ dependencies = [ [[package]] name = "solana-streamer" -version = "1.10.29" +version = "1.10.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3fc65fde637d4db546f16c15e3efa0d9fb06d0b8ddd2861371e5352b2249306" +checksum = "e9e71321a1dc376b206b76c38a14cbc69e1953ee79aa2f2561b8c9c01bb2d41a" dependencies = [ "crossbeam-channel", "futures-util", "histogram", + "indexmap", "itertools", "libc", "log", @@ -3805,9 +3806,9 @@ dependencies = [ [[package]] name = "solana-transaction-status" -version = "1.10.29" +version = "1.10.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3157353232170f2b0b557ed5738a5b0f60324d55c2220630c17f44926c66b3a" +checksum = "592638b7302c185bcde1d5c49423589508a6de37daeb4dfa0f1104e9bf53e7de" dependencies = [ "Inflector", "base64 0.13.0", @@ -3834,9 +3835,9 @@ dependencies = [ [[package]] name = "solana-version" -version = "1.10.29" +version = "1.10.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d3340187183a6c4b0c4c0897e62a8e424bea263b72368adf4a0fc49b02dc199" +checksum = "237bc1c13fc6ccfbb0744f1da4ccaeb343ab798b434b2f9b5df7dd78b5f4919c" dependencies = [ "log", "rustc_version", @@ -3850,9 +3851,9 @@ dependencies = [ [[package]] name = "solana-vote-program" -version = "1.10.29" +version = "1.10.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7bc5ae03749431a80f754d5950249296b27915912fbc76f29be489d50a235e62" +checksum = "eba4dc6eb338060ab246a8700e67a4b8ded28fe72556e2b588359ca5c32541f5" dependencies = [ "bincode", "log", @@ -3871,9 +3872,9 @@ dependencies = [ [[package]] name = "solana-zk-token-proof-program" -version = "1.10.29" +version = "1.10.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10936892fbed52cac2885c2294483296a7010452f178159f49bee89b94f9cc73" +checksum = "89d63bbeb1fc30882f9038efdb5dd114f0520a15b1f4cc7c6997b2720363a5d5" dependencies = [ "bytemuck", "getrandom 0.1.16", @@ -3881,7 +3882,7 @@ dependencies = [ "num-traits", "solana-program-runtime", "solana-sdk", - "solana-zk-token-sdk 1.10.29", + "solana-zk-token-sdk 1.10.30", ] [[package]] @@ -3916,9 +3917,9 @@ dependencies = [ [[package]] name = "solana-zk-token-sdk" -version = "1.10.29" +version = "1.10.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a096f1eadbab6d9406763ad672a763fcaad81ab4c7185605976a39710d4b34e" +checksum = "96c577bd8030f1dd36cdad9706b05f026254acbdbaebf21b3b2f795df71006ae" dependencies = [ "aes-gcm-siv", "arrayref", diff --git a/programs/nft-voter/Cargo.toml b/programs/nft-voter/Cargo.toml index ae684f94..8b47f9b9 100644 --- a/programs/nft-voter/Cargo.toml +++ b/programs/nft-voter/Cargo.toml @@ -22,12 +22,12 @@ anchor-lang = { version = "0.25.0", features = ["init-if-needed"] } anchor-spl = {version = "0.25.0"} itertools = "0.10.2" mpl-token-metadata = { version = "1.3.1", features = ["no-entrypoint"] } -solana-program = "1.10.19" +solana-program = "1.10.30" spl-governance = { version = "2.2.2", features = ["no-entrypoint"] } spl-governance-tools= "0.1.2" spl-token = { version = "3.3", features = [ "no-entrypoint" ] } [dev-dependencies] -borsh = "0.9.1" -solana-sdk = "1.9.5" -solana-program-test = "1.10.19" \ No newline at end of file +borsh = "0.9.3" +solana-sdk = "1.10.30" +solana-program-test = "1.10.30" \ No newline at end of file diff --git a/programs/nft-voter/src/instructions/configure_collection.rs b/programs/nft-voter/src/instructions/configure_collection.rs index b4a43b85..d193e8a3 100644 --- a/programs/nft-voter/src/instructions/configure_collection.rs +++ b/programs/nft-voter/src/instructions/configure_collection.rs @@ -6,12 +6,11 @@ use anchor_lang::{ use anchor_lang::prelude::*; use anchor_spl::token::Mint; use spl_governance::state::realm; -use mpl_token_metadata::state::{CollectionDetails}; +use mpl_token_metadata::state::{CollectionDetails,Metadata}; use crate::error::NftVoterError; use crate::state::{max_voter_weight_record::MaxVoterWeightRecord, CollectionConfig, Registrar}; -use crate::tools::token_metadata::get_token_metadata_for_mint; /// Configures NFT voting collection which defines what NFTs can be used for governances /// and what weight they have @@ -36,6 +35,9 @@ pub struct ConfigureCollection<'info> { // Collection which is going to be used for voting pub collection: Account<'info, Mint>, + #[account(seeds = [b"metadata".as_ref(), mpl_token_metadata::ID.as_ref(), collection.key().as_ref()], bump, seeds::program = mpl_token_metadata::ID, owner = mpl_token_metadata::ID)] + pub metadata: AccountInfo<'info>, + #[account( mut, constraint = max_voter_weight_record.realm == registrar.realm @@ -54,7 +56,7 @@ pub fn configure_collection( ) -> Result<()> { let collection = &ctx.accounts.collection; - let collection_metadata = get_token_metadata_for_mint(&collection.to_account_info(), &collection.key()); + let collection_metadata = Metadata::from_account_info(&ctx.accounts.metadata); // Set size to the collection details config if available let retrieved_size = if let Some(details) = collection_metadata.unwrap().collection_details { diff --git a/programs/nft-voter/tests/configure_collection.rs b/programs/nft-voter/tests/configure_collection.rs index 7c19901d..e11a5025 100644 --- a/programs/nft-voter/tests/configure_collection.rs +++ b/programs/nft-voter/tests/configure_collection.rs @@ -63,7 +63,7 @@ async fn test_configure_collection() -> Result<(), BanksClientError> { } #[tokio::test] -async fn test_configure_collection_sized_with_two_nft_mints() -> Result<(), BanksClientError> { +async fn test_configure_collection_sized_with_five_nft_mints() -> Result<(), BanksClientError> { // Arrange let mut nft_voter_test = NftVoterTest::start_new().await; @@ -75,9 +75,55 @@ async fn test_configure_collection_sized_with_two_nft_mints() -> Result<(), Bank let minter_cookie = nft_voter_test.bench.with_wallet().await; -// Program metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s failed: Failed to serialize or deserialize account data: Unknown -// Error: TransactionError(InstructionError(0, BorshIoError("Unknown"))) - let nft_cookie = nft_voter_test + let _nft_cookie = nft_voter_test + .token_metadata + .with_nft_v3( + &nft_collection_cookie, + &minter_cookie, + Some(CreateNftArgs { + verify_collection: true, + ..Default::default() + }), + ) + .await?; + + let _nft_cookie2 = nft_voter_test + .token_metadata + .with_nft_v3( + &nft_collection_cookie, + &minter_cookie, + Some(CreateNftArgs { + verify_collection: true, + ..Default::default() + }), + ) + .await?; + + let _nft_cookie3 = nft_voter_test + .token_metadata + .with_nft_v3( + &nft_collection_cookie, + &minter_cookie, + Some(CreateNftArgs { + verify_collection: true, + ..Default::default() + }), + ) + .await?; + + let _nft_cookie4 = nft_voter_test + .token_metadata + .with_nft_v3( + &nft_collection_cookie, + &minter_cookie, + Some(CreateNftArgs { + verify_collection: true, + ..Default::default() + }), + ) + .await?; + + let _nft_cookie5 = nft_voter_test .token_metadata .with_nft_v3( &nft_collection_cookie, @@ -94,7 +140,7 @@ async fn test_configure_collection_sized_with_two_nft_mints() -> Result<(), Bank .await?; // Act - let collection_config_cookie = nft_voter_test + let _collection_config_cookie = nft_voter_test .with_collection( ®istrar_cookie, &nft_collection_cookie, @@ -110,12 +156,9 @@ async fn test_configure_collection_sized_with_two_nft_mints() -> Result<(), Bank assert_eq!(registrar.collection_configs.len(), 1); - assert_eq!(registrar.collection_configs[0].size, 1); + assert_eq!(registrar.collection_configs[0].size, 5); - assert_eq!( - registrar.collection_configs[0], - collection_config_cookie.collection_config - ); + assert!(registrar.collection_configs[0].size != ConfigureCollectionArgs::default().size); let max_voter_weight_record = nft_voter_test .get_max_voter_weight_record(&max_voter_weight_record_cookie.address) diff --git a/programs/nft-voter/tests/fixtures/mpl_token_metadata.so b/programs/nft-voter/tests/fixtures/mpl_token_metadata.so old mode 100644 new mode 100755 index c4478c9fd5146e63d9ea92200e00c9c0a7d5c924..91d0f9e4e0749e498e74873a01f8a93414475a5b GIT binary patch literal 516624 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�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

VR-SfCa{nF6D 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%0A9m@Eqq+ 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 B!3}8-=Xv#BG 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%0DK)=&l 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 z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 HVBk0qVs@I( diff --git a/programs/nft-voter/tests/program_test/nft_voter_test.rs b/programs/nft-voter/tests/program_test/nft_voter_test.rs index 17c92258..429c05b0 100644 --- a/programs/nft-voter/tests/program_test/nft_voter_test.rs +++ b/programs/nft-voter/tests/program_test/nft_voter_test.rs @@ -440,10 +440,11 @@ impl NftVoterTest { }); let accounts = gpl_nft_voter::accounts::ConfigureCollection { + metadata: nft_collection_cookie.metadata, registrar: registrar_cookie.address, realm: registrar_cookie.account.realm, realm_authority: registrar_cookie.realm_authority.pubkey(), - collection: nft_collection_cookie.mint, + collection: nft_collection_cookie.mint, max_voter_weight_record: max_voter_weight_record_cookie.address, }; diff --git a/programs/nft-voter/tests/program_test/token_metadata_test.rs b/programs/nft-voter/tests/program_test/token_metadata_test.rs index 7060c050..37f599f9 100644 --- a/programs/nft-voter/tests/program_test/token_metadata_test.rs +++ b/programs/nft-voter/tests/program_test/token_metadata_test.rs @@ -137,7 +137,8 @@ impl TokenMetadataTest { master_edition: master_edition_key, }) } - + + #[allow(dead_code)] pub async fn with_nft_collection_v3(&self) -> Result { let update_authority = self.bench.context.borrow().payer.pubkey(); let payer = self.bench.context.borrow().payer.pubkey();