From 8e582e1c956550423cd03194383b6f0cc664d254 Mon Sep 17 00:00:00 2001 From: nghuyenthevinh2000 Date: Tue, 20 Jun 2023 23:28:44 +0700 Subject: [PATCH] add simulated test --- Cargo.lock | 2367 +++++++++++++++++++-- contracts/test/Cargo.toml | 25 + contracts/test/src/bin/schema.rs | 11 + contracts/test/src/contract.rs | 132 ++ contracts/test/src/error.rs | 8 + contracts/test/src/lib.rs | 3 + contracts/test/src/msg.rs | 24 + contracts/test/testdata/test-aarch64.wasm | Bin 0 -> 182670 bytes packages/eris/Cargo.toml | 2 +- 9 files changed, 2370 insertions(+), 202 deletions(-) create mode 100644 contracts/test/Cargo.toml create mode 100644 contracts/test/src/bin/schema.rs create mode 100644 contracts/test/src/contract.rs create mode 100644 contracts/test/src/error.rs create mode 100644 contracts/test/src/lib.rs create mode 100644 contracts/test/src/msg.rs create mode 100644 contracts/test/testdata/test-aarch64.wasm diff --git a/Cargo.lock b/Cargo.lock index 09d09d6..6cbc8c6 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -13,6 +13,116 @@ dependencies = [ "version_check", ] +[[package]] +name = "aho-corasick" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43f6cb1bf222025340178f382c426f13757b2960e89779dfcb319c32542a5a41" +dependencies = [ + "memchr", +] + +[[package]] +name = "anyhow" +version = "1.0.71" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c7d0618f0e0b7e8ff11427422b64564d5fb0be1940354bfe2e0529b18a9d9b8" + +[[package]] +name = "async-stream" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd56dd203fef61ac097dd65721a419ddccb106b2d2b70ba60a6b529f03961a51" +dependencies = [ + "async-stream-impl", + "futures-core", + "pin-project-lite", +] + +[[package]] +name = "async-stream-impl" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.18", +] + +[[package]] +name = "async-trait" +version = "0.1.68" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9ccdd8f2a161be9bd5c023df56f1b2a0bd1d83872ae53b71a84a12c9bf6e842" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.18", +] + +[[package]] +name = "atty" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" +dependencies = [ + "hermit-abi 0.1.19", + "libc", + "winapi", +] + +[[package]] +name = "autocfg" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" + +[[package]] +name = "axum" +version = "0.6.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8175979259124331c1d7bf6586ee7e0da434155e4b2d48ec2c8386281d8df39" +dependencies = [ + "async-trait", + "axum-core", + "bitflags", + "bytes", + "futures-util", + "http", + "http-body", + "hyper", + "itoa", + "matchit", + "memchr", + "mime", + "percent-encoding", + "pin-project-lite", + "rustversion", + "serde", + "sync_wrapper", + "tower", + "tower-layer", + "tower-service", +] + +[[package]] +name = "axum-core" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "759fa577a247914fd3f7f76d62972792636412fbfd634cd452f6a385a74d2d2c" +dependencies = [ + "async-trait", + "bytes", + "futures-util", + "http", + "http-body", + "mime", + "rustversion", + "tower-layer", + "tower-service", +] + [[package]] name = "base16ct" version = "0.1.1" @@ -25,12 +135,65 @@ version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd" +[[package]] +name = "base64" +version = "0.21.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "604178f6c5c21f02dc555784810edfb88d34ac2c73b2eae109655649ee73ce3d" + [[package]] name = "base64ct" version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" +[[package]] +name = "bindgen" +version = "0.60.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "062dddbc1ba4aca46de6338e2bf87771414c335f7b2f2036e8f3e9befebf88e6" +dependencies = [ + "bitflags", + "cexpr", + "clang-sys", + "clap", + "env_logger", + "lazy_static", + "lazycell", + "log", + "peeking_take_while", + "proc-macro2", + "quote", + "regex", + "rustc-hash", + "shlex", + "which", +] + +[[package]] +name = "bip32" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b30ed1d6f8437a487a266c8293aeb95b61a23261273e3e02912cdb8b68bf798b" +dependencies = [ + "bs58", + "hmac", + "k256", + "once_cell", + "pbkdf2", + "rand_core 0.6.3", + "ripemd", + "sha2 0.10.6", + "subtle", + "zeroize", +] + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + [[package]] name = "block-buffer" version = "0.9.0" @@ -49,18 +212,92 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bs58" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3" +dependencies = [ + "sha2 0.9.9", +] + +[[package]] +name = "bumpalo" +version = "3.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3e2c3daef883ecc1b5d58c15adae93470a91d425f3532ba1695849656af3fc1" + [[package]] name = "byteorder" version = "1.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" +[[package]] +name = "bytes" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be" +dependencies = [ + "serde", +] + +[[package]] +name = "cc" +version = "1.0.79" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f" + +[[package]] +name = "cexpr" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766" +dependencies = [ + "nom", +] + [[package]] name = "cfg-if" version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +[[package]] +name = "clang-sys" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c688fc74432808e3eb684cae8830a86be1d66a2bd58e1f248ed0960a590baf6f" +dependencies = [ + "glob", + "libc", + "libloading", +] + +[[package]] +name = "clap" +version = "3.2.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ea181bf566f71cb9a5d17a59e1871af638180a18fb0035c92ae62b705207123" +dependencies = [ + "atty", + "bitflags", + "clap_lex", + "indexmap", + "strsim", + "termcolor", + "textwrap", +] + +[[package]] +name = "clap_lex" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5" +dependencies = [ + "os_str_bytes", +] + [[package]] name = "classic-bindings" version = "0.1.1" @@ -73,12 +310,91 @@ dependencies = [ "serde", ] +[[package]] +name = "classic-proto" +version = "0.1.0" +source = "git+https://github.com/classic-terra/classic-rust.git?rev=4b035dd53ef7010c12fc74728f3b1671066f67bd#4b035dd53ef7010c12fc74728f3b1671066f67bd" +dependencies = [ + "cosmos-sdk-proto", + "getrandom", + "prost", + "prost-types", + "tendermint-proto 0.32.0", + "tonic 0.9.2", +] + +[[package]] +name = "classic-test-tube" +version = "0.1.0" +source = "git+https://github.com/classic-terra/classic-rust.git?rev=4b035dd53ef7010c12fc74728f3b1671066f67bd#4b035dd53ef7010c12fc74728f3b1671066f67bd" +dependencies = [ + "base64 0.13.0", + "bindgen", + "classic-proto", + "cosmrs", + "cosmwasm-std", + "prost", + "serde", + "serde_json", + "test-tube", + "thiserror", +] + [[package]] name = "const-oid" version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "520fbf3c07483f94e3e3ca9d0cfd913d7718ef2483d2cfd91c0d9e91474ab913" +[[package]] +name = "core-foundation" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa" + +[[package]] +name = "cosmos-sdk-proto" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20b42021d8488665b1a0d9748f1f81df7235362d194f44481e2e61bf376b77b4" +dependencies = [ + "prost", + "prost-types", + "tendermint-proto 0.23.9", + "tonic 0.8.3", +] + +[[package]] +name = "cosmrs" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3903590099dcf1ea580d9353034c9ba1dbf55d1389a5bd2ade98535c3445d1f9" +dependencies = [ + "bip32", + "cosmos-sdk-proto", + "ecdsa", + "eyre", + "getrandom", + "k256", + "rand_core 0.6.3", + "serde", + "serde_json", + "subtle-encoding", + "tendermint", + "tendermint-rpc", + "thiserror", +] + [[package]] name = "cosmwasm-crypto" version = "1.2.6" @@ -131,7 +447,7 @@ version = "1.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "92d5fdfd112b070055f068fad079d490117c8e905a588b92a5a7c9276d029930" dependencies = [ - "base64", + "base64 0.13.0", "cosmwasm-crypto", "cosmwasm-derive", "derivative", @@ -182,6 +498,15 @@ dependencies = [ "typenum", ] +[[package]] +name = "ct-logs" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1a816186fa68d9e426e3cb4ae4dff1fcd8e4a2c34b781bf7a822574a0d0aac8" +dependencies = [ + "sct", +] + [[package]] name = "curve25519-dalek" version = "3.2.0" @@ -317,6 +642,27 @@ dependencies = [ "signature", ] +[[package]] +name = "ed25519" +version = "1.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91cff35c70bba8a626e3185d8cd48cc11b5437e1a5bcd15b9b5fa3c64b6dfee7" +dependencies = [ + "signature", +] + +[[package]] +name = "ed25519-dalek" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c762bae6dcaf24c4c84667b8579785430908723d5c889f469d76a41d59cc7a9d" +dependencies = [ + "curve25519-dalek", + "ed25519", + "sha2 0.9.9", + "zeroize", +] + [[package]] name = "ed25519-zebra" version = "3.1.0" @@ -332,6 +678,12 @@ dependencies = [ "zeroize", ] +[[package]] +name = "either" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91" + [[package]] name = "elliptic-curve" version = "0.12.3" @@ -352,6 +704,19 @@ dependencies = [ "zeroize", ] +[[package]] +name = "env_logger" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a12e6657c4c97ebab115a42dcee77225f7f482cdd841cf7088c657a42e9e00e7" +dependencies = [ + "atty", + "humantime", + "log", + "regex", + "termcolor", +] + [[package]] name = "eris" version = "1.3.0" @@ -386,6 +751,16 @@ dependencies = [ "serde", ] +[[package]] +name = "eyre" +version = "0.6.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c2b6b5a29c02cdc822728b7d7b8ae1bab3e3b05d44522770ddd49722eeac7eb" +dependencies = [ + "indenter", + "once_cell", +] + [[package]] name = "ff" version = "0.12.1" @@ -397,394 +772,1984 @@ dependencies = [ ] [[package]] -name = "forward_ref" -version = "1.0.0" +name = "flex-error" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8cbd1169bd7b4a0a20d92b9af7a7e0422888bd38a6f5ec29c1fd8c1558a272e" +checksum = "c606d892c9de11507fa0dcffc116434f94e105d0bbdc4e405b61519464c49d7b" +dependencies = [ + "eyre", + "paste", +] [[package]] -name = "generic-array" -version = "0.14.5" +name = "fnv" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd48d33ec7f05fbfa152300fdad764757cbded343c1aa1cff2fbaf4134851803" -dependencies = [ - "typenum", - "version_check", -] +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] -name = "getrandom" -version = "0.2.6" +name = "form_urlencoded" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9be70c98951c83b8d2f8f60d7065fa6d5146873094452a1008da8c2f1e4205ad" +checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652" dependencies = [ - "cfg-if", - "libc", - "wasi", + "percent-encoding", ] [[package]] -name = "group" -version = "0.12.1" +name = "forward_ref" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dfbfb3a6cfbd390d5c9564ab283a0349b9b9fcd46a706c1eb10e0db70bfbac7" +checksum = "c8cbd1169bd7b4a0a20d92b9af7a7e0422888bd38a6f5ec29c1fd8c1558a272e" + +[[package]] +name = "futures" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23342abe12aba583913b2e62f22225ff9c950774065e4bfb61a19cd9770fec40" dependencies = [ - "ff", - "rand_core 0.6.3", - "subtle", + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", ] [[package]] -name = "hashbrown" -version = "0.12.3" +name = "futures-channel" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" +checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2" dependencies = [ - "ahash", + "futures-core", + "futures-sink", ] [[package]] -name = "hex" -version = "0.4.3" +name = "futures-core" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" +checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c" [[package]] -name = "hmac" -version = "0.12.1" +name = "futures-executor" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" +checksum = "ccecee823288125bd88b4d7f565c9e58e41858e47ab72e8ea2d64e93624386e0" dependencies = [ - "digest 0.10.7", + "futures-core", + "futures-task", + "futures-util", ] [[package]] -name = "itoa" -version = "1.0.1" +name = "futures-io" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1aab8fc367588b89dcee83ab0fd66b72b50b72fa1904d7095045ace2b0c81c35" +checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964" [[package]] -name = "k256" -version = "0.11.6" +name = "futures-macro" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72c1e0b51e7ec0a97369623508396067a486bd0cbed95a2659a4b863d28cfc8b" +checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72" dependencies = [ - "cfg-if", - "ecdsa", - "elliptic-curve", - "sha2 0.10.6", + "proc-macro2", + "quote", + "syn 2.0.18", ] [[package]] -name = "libc" -version = "0.2.124" +name = "futures-sink" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21a41fed9d98f27ab1c6d161da622a4fa35e8a54a8adc24bbf3ddd0ef70b0e50" +checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e" [[package]] -name = "once_cell" -version = "1.18.0" +name = "futures-task" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" +checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65" [[package]] -name = "opaque-debug" -version = "0.3.0" +name = "futures-util" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" +checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "pin-utils", + "slab", +] [[package]] -name = "pkcs8" +name = "generic-array" +version = "0.14.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd48d33ec7f05fbfa152300fdad764757cbded343c1aa1cff2fbaf4134851803" +dependencies = [ + "typenum", + "version_check", +] + +[[package]] +name = "getrandom" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9be70c98951c83b8d2f8f60d7065fa6d5146873094452a1008da8c2f1e4205ad" +dependencies = [ + "cfg-if", + "js-sys", + "libc", + "wasi 0.10.2+wasi-snapshot-preview1", + "wasm-bindgen", +] + +[[package]] +name = "glob" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" + +[[package]] +name = "group" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5dfbfb3a6cfbd390d5c9564ab283a0349b9b9fcd46a706c1eb10e0db70bfbac7" +dependencies = [ + "ff", + "rand_core 0.6.3", + "subtle", +] + +[[package]] +name = "h2" +version = "0.3.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d357c7ae988e7d2182f7d7871d0b963962420b0678b0997ce7de72001aeab782" +dependencies = [ + "bytes", + "fnv", + "futures-core", + "futures-sink", + "futures-util", + "http", + "indexmap", + "slab", + "tokio", + "tokio-util", + "tracing", +] + +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" +dependencies = [ + "ahash", +] + +[[package]] +name = "headers" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3e372db8e5c0d213e0cd0b9be18be2aca3d44cf2fe30a9d46a65581cd454584" +dependencies = [ + "base64 0.13.0", + "bitflags", + "bytes", + "headers-core", + "http", + "httpdate", + "mime", + "sha1", +] + +[[package]] +name = "headers-core" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7f66481bfee273957b1f20485a4ff3362987f85b2c236580d81b4eb7a326429" +dependencies = [ + "http", +] + +[[package]] +name = "hermit-abi" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" +dependencies = [ + "libc", +] + +[[package]] +name = "hermit-abi" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7" +dependencies = [ + "libc", +] + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" + +[[package]] +name = "hmac" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" +dependencies = [ + "digest 0.10.7", +] + +[[package]] +name = "http" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + +[[package]] +name = "http-body" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" +dependencies = [ + "bytes", + "http", + "pin-project-lite", +] + +[[package]] +name = "httparse" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" + +[[package]] +name = "httpdate" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421" + +[[package]] +name = "humantime" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" + +[[package]] +name = "hyper" +version = "0.14.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab302d72a6f11a3b910431ff93aae7e773078c769f0a3ef15fb9ec692ed147d4" +dependencies = [ + "bytes", + "futures-channel", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "httparse", + "httpdate", + "itoa", + "pin-project-lite", + "socket2", + "tokio", + "tower-service", + "tracing", + "want", +] + +[[package]] +name = "hyper-proxy" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca815a891b24fdfb243fa3239c86154392b0953ee584aa1a2a1f66d20cbe75cc" +dependencies = [ + "bytes", + "futures", + "headers", + "http", + "hyper", + "hyper-rustls", + "rustls-native-certs", + "tokio", + "tokio-rustls", + "tower-service", + "webpki", +] + +[[package]] +name = "hyper-rustls" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f9f7a97316d44c0af9b0301e65010573a853a9fc97046d7331d7f6bc0fd5a64" +dependencies = [ + "ct-logs", + "futures-util", + "hyper", + "log", + "rustls", + "rustls-native-certs", + "tokio", + "tokio-rustls", + "webpki", + "webpki-roots", +] + +[[package]] +name = "hyper-timeout" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1" +dependencies = [ + "hyper", + "pin-project-lite", + "tokio", + "tokio-io-timeout", +] + +[[package]] +name = "idna" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c" +dependencies = [ + "unicode-bidi", + "unicode-normalization", +] + +[[package]] +name = "indenter" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683" + +[[package]] +name = "indexmap" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" +dependencies = [ + "autocfg", + "hashbrown", +] + +[[package]] +name = "itertools" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6" + +[[package]] +name = "js-sys" +version = "0.3.64" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a" +dependencies = [ + "wasm-bindgen", +] + +[[package]] +name = "k256" +version = "0.11.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72c1e0b51e7ec0a97369623508396067a486bd0cbed95a2659a4b863d28cfc8b" +dependencies = [ + "cfg-if", + "ecdsa", + "elliptic-curve", + "sha2 0.10.6", + "sha3", +] + +[[package]] +name = "keccak" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f6d5ed8676d904364de097082f4e7d240b571b67989ced0240f08b7f966f940" +dependencies = [ + "cpufeatures", +] + +[[package]] +name = "lazy_static" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" + +[[package]] +name = "lazycell" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" + +[[package]] +name = "libc" +version = "0.2.146" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f92be4933c13fd498862a9e02a3055f8a8d9c039ce33db97306fd5a6caa7f29b" + +[[package]] +name = "libloading" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f" +dependencies = [ + "cfg-if", + "winapi", +] + +[[package]] +name = "log" +version = "0.4.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b06a4cde4c0f271a446782e3eff8de789548ce57dbc8eca9292c27f4a42004b4" + +[[package]] +name = "matchit" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b87248edafb776e59e6ee64a79086f65890d3510f2c656c000bf2a7e8a0aea40" + +[[package]] +name = "memchr" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" + +[[package]] +name = "mime" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" + +[[package]] +name = "minimal-lexical" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" + +[[package]] +name = "mio" +version = "0.8.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2" +dependencies = [ + "libc", + "wasi 0.11.0+wasi-snapshot-preview1", + "windows-sys 0.48.0", +] + +[[package]] +name = "nom" +version = "7.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" +dependencies = [ + "memchr", + "minimal-lexical", +] + +[[package]] +name = "num-derive" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "876a53fff98e03a936a674b29568b0e605f06b29372c2489ff4de23f1949743d" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.91", +] + +[[package]] +name = "num-traits" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" +dependencies = [ + "autocfg", +] + +[[package]] +name = "num_cpus" +version = "1.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b" +dependencies = [ + "hermit-abi 0.2.6", + "libc", +] + +[[package]] +name = "num_threads" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2819ce041d2ee131036f4fc9d6ae7ae125a3a40e97ba64d04fe799ad9dabbb44" +dependencies = [ + "libc", +] + +[[package]] +name = "once_cell" +version = "1.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" + +[[package]] +name = "opaque-debug" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" + +[[package]] +name = "openssl-probe" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" + +[[package]] +name = "os_str_bytes" +version = "6.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d5d9eb14b174ee9aa2ef96dc2b94637a2d4b6e7cb873c7e171f0c20c6cf3eac" + +[[package]] +name = "paste" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f746c4065a8fa3fe23974dd82f15431cc8d40779821001404d10d2e79ca7d79" + +[[package]] +name = "pbkdf2" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917" +dependencies = [ + "digest 0.10.7", +] + +[[package]] +name = "peeking_take_while" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099" + +[[package]] +name = "peg" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07c0b841ea54f523f7aa556956fbd293bcbe06f2e67d2eb732b7278aaf1d166a" +dependencies = [ + "peg-macros", + "peg-runtime", +] + +[[package]] +name = "peg-macros" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5aa52829b8decbef693af90202711348ab001456803ba2a98eb4ec8fb70844c" +dependencies = [ + "peg-runtime", + "proc-macro2", + "quote", +] + +[[package]] +name = "peg-runtime" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c719dcf55f09a3a7e764c6649ab594c18a177e3599c467983cdf644bfc0a4088" + +[[package]] +name = "percent-encoding" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94" + +[[package]] +name = "pin-project" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c95a7476719eab1e366eaf73d0260af3021184f18177925b07f54b30089ceead" +dependencies = [ + "pin-project-internal", +] + +[[package]] +name = "pin-project-internal" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39407670928234ebc5e6e580247dd567ad73a3578460c5990f9503df207e8f07" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.18", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "pkcs8" version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9eca2c590a5f85da82668fa685c09ce2888b9430e83299debf1f34b65fd4a4ba" +checksum = "9eca2c590a5f85da82668fa685c09ce2888b9430e83299debf1f34b65fd4a4ba" +dependencies = [ + "der", + "spki", +] + +[[package]] +name = "ppv-lite86" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" + +[[package]] +name = "proc-macro2" +version = "1.0.60" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dec2b086b7a862cf4de201096214fa870344cf922b2b30c167badb3af3195406" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "prost" +version = "0.11.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b82eaa1d779e9a4bc1c3217db8ffbeabaae1dca241bf70183242128d48681cd" +dependencies = [ + "bytes", + "prost-derive", +] + +[[package]] +name = "prost-derive" +version = "0.11.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5d2d8d10f3c6ded6da8b05b5fb3b8a5082514344d56c9f871412d29b4e075b4" +dependencies = [ + "anyhow", + "itertools", + "proc-macro2", + "quote", + "syn 1.0.91", +] + +[[package]] +name = "prost-types" +version = "0.11.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "213622a1460818959ac1181aaeb2dc9c7f63df720db7d788b3e24eacd1983e13" +dependencies = [ + "prost", +] + +[[package]] +name = "quote" +version = "1.0.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b9ab9c7eadfd8df19006f1cf1a4aed13540ed5cbc047010ece5826e10825488" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha", + "rand_core 0.6.3", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core 0.6.3", +] + +[[package]] +name = "rand_core" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" + +[[package]] +name = "rand_core" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7" +dependencies = [ + "getrandom", +] + +[[package]] +name = "regex" +version = "1.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0ab3ca65655bb1e41f2a8c8cd662eb4fb035e67c3f78da1d61dffe89d07300f" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "436b050e76ed2903236f032a59761c1eb99e1b0aead2c257922771dab1fc8c78" + +[[package]] +name = "rfc6979" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7743f17af12fa0b03b803ba12cd6a8d9483a587e89c69445e3909655c0b9fabb" +dependencies = [ + "crypto-bigint", + "hmac", + "zeroize", +] + +[[package]] +name = "ring" +version = "0.16.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" +dependencies = [ + "cc", + "libc", + "once_cell", + "spin", + "untrusted", + "web-sys", + "winapi", +] + +[[package]] +name = "ripemd" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd124222d17ad93a644ed9d011a40f4fb64aa54275c08cc216524a9ea82fb09f" +dependencies = [ + "digest 0.10.7", +] + +[[package]] +name = "ripemd160" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2eca4ecc81b7f313189bf73ce724400a07da2a6dac19588b03c8bd76a2dcc251" +dependencies = [ + "block-buffer 0.9.0", + "digest 0.9.0", + "opaque-debug", +] + +[[package]] +name = "rustc-hash" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" + +[[package]] +name = "rustls" +version = "0.19.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35edb675feee39aec9c99fa5ff985081995a06d594114ae14cbe797ad7b7a6d7" +dependencies = [ + "base64 0.13.0", + "log", + "ring", + "sct", + "webpki", +] + +[[package]] +name = "rustls-native-certs" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a07b7c1885bd8ed3831c289b7870b13ef46fe0e856d288c30d9cc17d75a2092" +dependencies = [ + "openssl-probe", + "rustls", + "schannel", + "security-framework", +] + +[[package]] +name = "rustversion" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f3208ce4d8448b3f3e7d168a73f5e0c43a61e32930de3bceeccedb388b6bf06" + +[[package]] +name = "ryu" +version = "1.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73b4b750c782965c211b42f022f59af1fbceabdd026623714f104152f1ec149f" + +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "schannel" +version = "0.1.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "713cfb06c7059f3588fb8044c0fad1d09e3c01d225e25b9220dbfdcf16dbb1b3" +dependencies = [ + "windows-sys 0.42.0", +] + +[[package]] +name = "schemars" +version = "0.8.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02c613288622e5f0c3fdc5dbd4db1c5fbe752746b1d1a56a0630b78fd00de44f" +dependencies = [ + "dyn-clone", + "schemars_derive", + "serde", + "serde_json", +] + +[[package]] +name = "schemars_derive" +version = "0.8.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "109da1e6b197438deb6db99952990c7f959572794b80ff93707d55a232545e7c" +dependencies = [ + "proc-macro2", + "quote", + "serde_derive_internals", + "syn 1.0.91", +] + +[[package]] +name = "sct" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b362b83898e0e69f38515b82ee15aa80636befe47c3b6d3d89a911e78fc228ce" +dependencies = [ + "ring", + "untrusted", +] + +[[package]] +name = "sec1" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3be24c1842290c45df0a7bf069e0c268a747ad05a192f2fd7dcfdbc1cba40928" +dependencies = [ + "base16ct", + "der", + "generic-array", + "pkcs8", + "subtle", + "zeroize", +] + +[[package]] +name = "security-framework" +version = "2.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fc758eb7bffce5b308734e9b0c1468893cae9ff70ebf13e7090be8dcbcc83a8" +dependencies = [ + "bitflags", + "core-foundation", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "2.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f51d0c0d83bec45f16480d0ce0058397a69e48fcdc52d1dc8855fb68acbd31a7" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "serde" +version = "1.0.164" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e8c8cf938e98f769bc164923b06dce91cea1751522f46f8466461af04c9027d" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde-json-wasm" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16a62a1fad1e1828b24acac8f2b468971dade7b8c3c2e672bcadefefb1f8c137" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_bytes" +version = "0.11.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "416bda436f9aab92e02c8e10d49a15ddd339cea90b6e340fe51ed97abb548294" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_derive" +version = "1.0.164" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9735b638ccc51c28bf6914d90a2e9725b377144fc612c49a611fddd1b631d68" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.18", +] + +[[package]] +name = "serde_derive_internals" +version = "0.26.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85bf8229e7920a9f636479437026331ce11aa132b4dde37d121944a44d6e5f3c" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.91", +] + +[[package]] +name = "serde_json" +version = "1.0.97" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bdf3bf93142acad5821c99197022e170842cdbc1c30482b98750c688c640842a" +dependencies = [ + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "serde_repr" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bcec881020c684085e55a25f7fd888954d56609ef363479dc5a1305eb0d40cab" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.18", +] + +[[package]] +name = "sha1" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f04293dc80c3993519f2d7f6f511707ee7094fe0c6d3406feb330cdb3540eba3" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest 0.10.7", +] + +[[package]] +name = "sha2" +version = "0.9.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" +dependencies = [ + "block-buffer 0.9.0", + "cfg-if", + "cpufeatures", + "digest 0.9.0", + "opaque-debug", +] + +[[package]] +name = "sha2" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest 0.10.7", +] + +[[package]] +name = "sha3" +version = "0.10.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" +dependencies = [ + "digest 0.10.7", + "keccak", +] + +[[package]] +name = "shlex" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43b2853a4d09f215c24cc5489c992ce46052d359b5109343cbafbf26bc62f8a3" + +[[package]] +name = "signature" +version = "1.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74233d3b3b2f6d4b006dc19dee745e73e2a6bfb6f93607cd3b02bd5b00797d7c" +dependencies = [ + "digest 0.10.7", + "rand_core 0.6.3", +] + +[[package]] +name = "slab" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d" +dependencies = [ + "autocfg", +] + +[[package]] +name = "socket2" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "spin" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" + +[[package]] +name = "spki" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67cf02bbac7a337dc36e4f5a693db6c21e7863f45070f7064577eb4367a3212b" +dependencies = [ + "base64ct", + "der", +] + +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + +[[package]] +name = "strsim" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" + +[[package]] +name = "subtle" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" + +[[package]] +name = "subtle-encoding" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7dcb1ed7b8330c5eed5441052651dd7a12c75e2ed88f2ec024ae1fa3a5e59945" +dependencies = [ + "zeroize", +] + +[[package]] +name = "syn" +version = "1.0.91" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b683b2b825c8eef438b77c36a06dc262294da3d5a5813fac20da149241dcd44d" +dependencies = [ + "proc-macro2", + "quote", + "unicode-xid", +] + +[[package]] +name = "syn" +version = "2.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32d41677bcbe24c20c52e7c70b0d8db04134c5d1066bf98662e2871ad200ea3e" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "sync_wrapper" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" + +[[package]] +name = "tendermint" +version = "0.23.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "467f82178deeebcd357e1273a0c0b77b9a8a0313ef7c07074baebe99d87851f4" +dependencies = [ + "async-trait", + "bytes", + "ed25519", + "ed25519-dalek", + "flex-error", + "futures", + "k256", + "num-traits", + "once_cell", + "prost", + "prost-types", + "ripemd160", + "serde", + "serde_bytes", + "serde_json", + "serde_repr", + "sha2 0.9.9", + "signature", + "subtle", + "subtle-encoding", + "tendermint-proto 0.23.9", + "time", + "zeroize", +] + +[[package]] +name = "tendermint-config" +version = "0.23.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d42ee0abc27ef5fc34080cce8d43c189950d331631546e7dfb983b6274fa327" +dependencies = [ + "flex-error", + "serde", + "serde_json", + "tendermint", + "toml", + "url", +] + +[[package]] +name = "tendermint-proto" +version = "0.23.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68ce80bf536476db81ecc9ebab834dc329c9c1509a694f211a73858814bfe023" +dependencies = [ + "bytes", + "flex-error", + "num-derive", + "num-traits", + "prost", + "prost-types", + "serde", + "serde_bytes", + "subtle-encoding", + "time", +] + +[[package]] +name = "tendermint-proto" +version = "0.32.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ce23c8ff0e6634eb4c3c4aeed45076dc97dac91aac5501a905a67fa222e165b" +dependencies = [ + "bytes", + "flex-error", + "num-derive", + "num-traits", + "prost", + "prost-types", + "serde", + "serde_bytes", + "subtle-encoding", + "time", +] + +[[package]] +name = "tendermint-rpc" +version = "0.23.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f14aafe3528a0f75e9f3f410b525617b2de16c4b7830a21f717eee62882ec60" +dependencies = [ + "async-trait", + "bytes", + "flex-error", + "futures", + "getrandom", + "http", + "hyper", + "hyper-proxy", + "hyper-rustls", + "peg", + "pin-project", + "serde", + "serde_bytes", + "serde_json", + "subtle-encoding", + "tendermint", + "tendermint-config", + "tendermint-proto 0.23.9", + "thiserror", + "time", + "tokio", + "tracing", + "url", + "uuid", + "walkdir", +] + +[[package]] +name = "termcolor" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "test" +version = "0.1.0" +dependencies = [ + "classic-bindings", + "classic-test-tube", + "cosmwasm-schema", + "cosmwasm-std", + "eris", + "serde", + "thiserror", +] + +[[package]] +name = "test-tube" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ec7aed5905c502fb6be7684a2a9b0d7005ece58f79d4bd66a99c355ee24012c" +dependencies = [ + "base64 0.13.0", + "cosmrs", + "cosmwasm-std", + "prost", + "serde", + "serde_json", + "thiserror", +] + +[[package]] +name = "textwrap" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d" + +[[package]] +name = "thiserror" +version = "1.0.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "978c9a314bd8dc99be594bc3c175faaa9794be04a5a5e153caba6915336cebac" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.18", +] + +[[package]] +name = "time" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72c91f41dcb2f096c05f0873d667dceec1087ce5bcf984ec8ffb19acddbb3217" +dependencies = [ + "libc", + "num_threads", + "time-macros", +] + +[[package]] +name = "time-macros" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42657b1a6f4d817cda8e7a0ace261fe0cc946cf3a80314390b22cc61ae080792" + +[[package]] +name = "tinyvec" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" + +[[package]] +name = "tokio" +version = "1.28.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94d7b1cfd2aa4011f2de74c2c4c63665e27a71006b0a192dcd2710272e73dfa2" +dependencies = [ + "autocfg", + "bytes", + "libc", + "mio", + "num_cpus", + "pin-project-lite", + "socket2", + "tokio-macros", + "windows-sys 0.48.0", +] + +[[package]] +name = "tokio-io-timeout" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30b74022ada614a1b4834de765f9bb43877f910cc8ce4be40e89042c9223a8bf" +dependencies = [ + "pin-project-lite", + "tokio", +] + +[[package]] +name = "tokio-macros" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.18", +] + +[[package]] +name = "tokio-rustls" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc6844de72e57df1980054b38be3a9f4702aba4858be64dd700181a8a6d0e1b6" +dependencies = [ + "rustls", + "tokio", + "webpki", +] + +[[package]] +name = "tokio-stream" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842" +dependencies = [ + "futures-core", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "tokio-util" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "806fe8c2c87eccc8b3267cbae29ed3ab2d0bd37fca70ab622e46aaa9375ddb7d" +dependencies = [ + "bytes", + "futures-core", + "futures-sink", + "pin-project-lite", + "tokio", + "tracing", +] + +[[package]] +name = "toml" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" +dependencies = [ + "serde", +] + +[[package]] +name = "tonic" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f219fad3b929bef19b1f86fbc0358d35daed8f2cac972037ac0dc10bbb8d5fb" +dependencies = [ + "async-stream", + "async-trait", + "axum", + "base64 0.13.0", + "bytes", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "hyper", + "hyper-timeout", + "percent-encoding", + "pin-project", + "prost", + "prost-derive", + "tokio", + "tokio-stream", + "tokio-util", + "tower", + "tower-layer", + "tower-service", + "tracing", + "tracing-futures", +] + +[[package]] +name = "tonic" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3082666a3a6433f7f511c7192923fa1fe07c69332d3c6a2e6bb040b569199d5a" dependencies = [ - "der", - "spki", + "async-trait", + "axum", + "base64 0.21.2", + "bytes", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "hyper", + "hyper-timeout", + "percent-encoding", + "pin-project", + "prost", + "tokio", + "tokio-stream", + "tower", + "tower-layer", + "tower-service", + "tracing", ] [[package]] -name = "proc-macro2" -version = "1.0.60" +name = "tower" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dec2b086b7a862cf4de201096214fa870344cf922b2b30c167badb3af3195406" +checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" dependencies = [ - "unicode-ident", + "futures-core", + "futures-util", + "indexmap", + "pin-project", + "pin-project-lite", + "rand", + "slab", + "tokio", + "tokio-util", + "tower-layer", + "tower-service", + "tracing", ] [[package]] -name = "quote" -version = "1.0.28" +name = "tower-layer" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b9ab9c7eadfd8df19006f1cf1a4aed13540ed5cbc047010ece5826e10825488" +checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0" + +[[package]] +name = "tower-service" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" + +[[package]] +name = "tracing" +version = "0.1.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" +dependencies = [ + "cfg-if", + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8803eee176538f94ae9a14b55b2804eb7e1441f8210b1c31290b3bccdccff73b" dependencies = [ "proc-macro2", + "quote", + "syn 2.0.18", ] [[package]] -name = "rand_core" -version = "0.5.1" +name = "tracing-core" +version = "0.1.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" +checksum = "0955b8137a1df6f1a2e9a37d8a6656291ff0297c1a97c24e0d8425fe2312f79a" +dependencies = [ + "once_cell", +] [[package]] -name = "rand_core" -version = "0.6.3" +name = "tracing-futures" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7" +checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" dependencies = [ - "getrandom", + "pin-project", + "tracing", ] [[package]] -name = "rfc6979" -version = "0.3.1" +name = "try-lock" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7743f17af12fa0b03b803ba12cd6a8d9483a587e89c69445e3909655c0b9fabb" +checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed" + +[[package]] +name = "typenum" +version = "1.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987" + +[[package]] +name = "uint" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12f03af7ccf01dd611cc450a0d10dbc9b745770d096473e2faf0ca6e2d66d1e0" dependencies = [ - "crypto-bigint", - "hmac", - "zeroize", + "byteorder", + "crunchy", + "hex", + "static_assertions", ] [[package]] -name = "ryu" +name = "unicode-bidi" +version = "0.3.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" + +[[package]] +name = "unicode-ident" version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73b4b750c782965c211b42f022f59af1fbceabdd026623714f104152f1ec149f" +checksum = "b15811caf2415fb889178633e7724bad2509101cde276048e013b9def5e51fa0" [[package]] -name = "schemars" -version = "0.8.8" +name = "unicode-normalization" +version = "0.1.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6b5a3c80cea1ab61f4260238409510e814e38b4b563c06044edf91e7dc070e3" +checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" dependencies = [ - "dyn-clone", - "schemars_derive", - "serde", - "serde_json", + "tinyvec", ] [[package]] -name = "schemars_derive" -version = "0.8.8" +name = "unicode-xid" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3" + +[[package]] +name = "untrusted" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" + +[[package]] +name = "url" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41ae4dce13e8614c46ac3c38ef1c0d668b101df6ac39817aebdaa26642ddae9b" +checksum = "50bff7831e19200a85b17131d085c25d7811bc4e186efdaf54bbd132994a88cb" dependencies = [ - "proc-macro2", - "quote", - "serde_derive_internals", - "syn 1.0.91", + "form_urlencoded", + "idna", + "percent-encoding", ] [[package]] -name = "sec1" -version = "0.3.0" +name = "uuid" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3be24c1842290c45df0a7bf069e0c268a747ad05a192f2fd7dcfdbc1cba40928" +checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7" + +[[package]] +name = "version_check" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" + +[[package]] +name = "walkdir" +version = "2.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "36df944cda56c7d8d8b7496af378e6b16de9284591917d307c9b4d313c44e698" dependencies = [ - "base16ct", - "der", - "generic-array", - "pkcs8", - "subtle", - "zeroize", + "same-file", + "winapi-util", ] [[package]] -name = "serde" -version = "1.0.136" +name = "want" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce31e24b01e1e524df96f1c2fdd054405f8d7376249a5110886fb4b658484789" +checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" dependencies = [ - "serde_derive", + "try-lock", ] [[package]] -name = "serde-json-wasm" -version = "0.5.1" +name = "wasi" +version = "0.10.2+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16a62a1fad1e1828b24acac8f2b468971dade7b8c3c2e672bcadefefb1f8c137" +checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6" + +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "wasm-bindgen" +version = "0.2.87" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342" dependencies = [ - "serde", + "cfg-if", + "wasm-bindgen-macro", ] [[package]] -name = "serde_derive" -version = "1.0.136" +name = "wasm-bindgen-backend" +version = "0.2.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08597e7152fcd306f41838ed3e37be9eaeed2b61c42e2117266a554fab4662f9" +checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd" dependencies = [ + "bumpalo", + "log", + "once_cell", "proc-macro2", "quote", - "syn 1.0.91", + "syn 2.0.18", + "wasm-bindgen-shared", ] [[package]] -name = "serde_derive_internals" -version = "0.25.0" +name = "wasm-bindgen-macro" +version = "0.2.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1dbab34ca63057a1f15280bdf3c39f2b1eb1b54c17e98360e511637aef7418c6" +checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d" dependencies = [ - "proc-macro2", "quote", - "syn 1.0.91", + "wasm-bindgen-macro-support", ] [[package]] -name = "serde_json" -version = "1.0.79" +name = "wasm-bindgen-macro-support" +version = "0.2.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e8d9fa5c3b304765ce1fd9c4c8a3de2c8db365a5b91be52f186efc675681d95" +checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b" dependencies = [ - "itoa", - "ryu", - "serde", + "proc-macro2", + "quote", + "syn 2.0.18", + "wasm-bindgen-backend", + "wasm-bindgen-shared", ] [[package]] -name = "sha2" -version = "0.9.9" +name = "wasm-bindgen-shared" +version = "0.2.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" +checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1" + +[[package]] +name = "web-sys" +version = "0.3.64" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b85cbef8c220a6abc02aefd892dfc0fc23afb1c6a426316ec33253a3877249b" dependencies = [ - "block-buffer 0.9.0", - "cfg-if", - "cpufeatures", - "digest 0.9.0", - "opaque-debug", + "js-sys", + "wasm-bindgen", ] [[package]] -name = "sha2" -version = "0.10.6" +name = "webpki" +version = "0.21.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0" +checksum = "b8e38c0608262c46d4a56202ebabdeb094cef7e560ca7a226c6bf055188aa4ea" dependencies = [ - "cfg-if", - "cpufeatures", - "digest 0.10.7", + "ring", + "untrusted", ] [[package]] -name = "signature" -version = "1.6.4" +name = "webpki-roots" +version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74233d3b3b2f6d4b006dc19dee745e73e2a6bfb6f93607cd3b02bd5b00797d7c" +checksum = "aabe153544e473b775453675851ecc86863d2a81d786d741f6b76778f2a48940" dependencies = [ - "digest 0.10.7", - "rand_core 0.6.3", + "webpki", ] [[package]] -name = "spki" -version = "0.6.0" +name = "which" +version = "4.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67cf02bbac7a337dc36e4f5a693db6c21e7863f45070f7064577eb4367a3212b" +checksum = "2441c784c52b289a054b7201fc93253e288f094e2f4be9058343127c4226a269" dependencies = [ - "base64ct", - "der", + "either", + "libc", + "once_cell", ] [[package]] -name = "static_assertions" -version = "1.1.0" +name = "winapi" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] [[package]] -name = "subtle" -version = "2.4.1" +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] -name = "syn" -version = "1.0.91" +name = "winapi-util" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b683b2b825c8eef438b77c36a06dc262294da3d5a5813fac20da149241dcd44d" +checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" dependencies = [ - "proc-macro2", - "quote", - "unicode-xid", + "winapi", ] [[package]] -name = "syn" -version = "2.0.18" +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32d41677bcbe24c20c52e7c70b0d8db04134c5d1066bf98662e2871ad200ea3e" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows-sys" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", + "windows_aarch64_gnullvm 0.42.2", + "windows_aarch64_msvc 0.42.2", + "windows_i686_gnu 0.42.2", + "windows_i686_msvc 0.42.2", + "windows_x86_64_gnu 0.42.2", + "windows_x86_64_gnullvm 0.42.2", + "windows_x86_64_msvc 0.42.2", ] [[package]] -name = "thiserror" -version = "1.0.40" +name = "windows-sys" +version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "978c9a314bd8dc99be594bc3c175faaa9794be04a5a5e153caba6915336cebac" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" dependencies = [ - "thiserror-impl", + "windows-targets", ] [[package]] -name = "thiserror-impl" -version = "1.0.40" +name = "windows-targets" +version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f" +checksum = "7b1eb6f0cd7c80c79759c929114ef071b87354ce476d9d94271031c0497adfd5" dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.18", + "windows_aarch64_gnullvm 0.48.0", + "windows_aarch64_msvc 0.48.0", + "windows_i686_gnu 0.48.0", + "windows_i686_msvc 0.48.0", + "windows_x86_64_gnu 0.48.0", + "windows_x86_64_gnullvm 0.48.0", + "windows_x86_64_msvc 0.48.0", ] [[package]] -name = "typenum" -version = "1.15.0" +name = "windows_aarch64_gnullvm" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987" +checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" [[package]] -name = "uint" -version = "0.9.3" +name = "windows_aarch64_gnullvm" +version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12f03af7ccf01dd611cc450a0d10dbc9b745770d096473e2faf0ca6e2d66d1e0" -dependencies = [ - "byteorder", - "crunchy", - "hex", - "static_assertions", -] +checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc" [[package]] -name = "unicode-ident" -version = "1.0.9" +name = "windows_aarch64_msvc" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b15811caf2415fb889178633e7724bad2509101cde276048e013b9def5e51fa0" +checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" [[package]] -name = "unicode-xid" -version = "0.2.2" +name = "windows_aarch64_msvc" +version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3" +checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3" [[package]] -name = "version_check" -version = "0.9.4" +name = "windows_i686_gnu" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" +checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" [[package]] -name = "wasi" -version = "0.10.2+wasi-snapshot-preview1" +name = "windows_i686_gnu" +version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6" +checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241" + +[[package]] +name = "windows_i686_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" + +[[package]] +name = "windows_i686_msvc" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" [[package]] name = "zeroize" version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2a0956f1ba7c7909bfb66c2e9e4124ab6f6482560f6628b5aaeba39207c9aad9" +dependencies = [ + "zeroize_derive", +] + +[[package]] +name = "zeroize_derive" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.18", +] diff --git a/contracts/test/Cargo.toml b/contracts/test/Cargo.toml new file mode 100644 index 0000000..e9e0cd4 --- /dev/null +++ b/contracts/test/Cargo.toml @@ -0,0 +1,25 @@ +[package] +name = "test" +version = "0.1.0" +authors = ["nghuyenthevinh2000 "] +description = "Simulated chain test on Rust! No need for node! Feel the speed and convenience" +edition = "2018" +license = "GPL-3.0-or-later" +repository = "https://github.com/erisprotocol/contracts-terra-classic" + +[lib] +crate-type = ["cdylib", "rlib"] + +[features] +backtraces = ["cosmwasm-std/backtraces"] + +[dependencies] +cosmwasm-std = { version = "1.1", features = ["stargate"] } +cosmwasm-schema = "1.0.4" +eris = { path = "../../packages/eris" } +thiserror = "1" +classic-bindings = "0.1.1" + +[dev-dependencies] +serde = { version = "1.0.103", default-features = false, features = ["derive"] } +classic-test-tube = { version = "0.1.0", git = "https://github.com/classic-terra/classic-rust.git", package = "classic-test-tube", rev="4b035dd53ef7010c12fc74728f3b1671066f67bd"} \ No newline at end of file diff --git a/contracts/test/src/bin/schema.rs b/contracts/test/src/bin/schema.rs new file mode 100644 index 0000000..5b28f8d --- /dev/null +++ b/contracts/test/src/bin/schema.rs @@ -0,0 +1,11 @@ +use cosmwasm_schema::write_api; + +use tax::msg::{ExecuteMsg, InstantiateMsg, QueryMsg}; + +fn main() { + write_api! { + instantiate: InstantiateMsg, + execute: ExecuteMsg, + query: QueryMsg, + } +} diff --git a/contracts/test/src/contract.rs b/contracts/test/src/contract.rs new file mode 100644 index 0000000..0cc0834 --- /dev/null +++ b/contracts/test/src/contract.rs @@ -0,0 +1,132 @@ +#[cfg(not(feature = "library"))] +use cosmwasm_std::entry_point; +use cosmwasm_std::{Binary, Deps, DepsMut, Env, MessageInfo, Response, StdResult, to_binary, Uint128}; + +use crate::error::ContractError; +use crate::msg::{ExecuteMsg, InstantiateMsg, QueryMsg, TaxResponse}; +use classic_bindings::TerraQuery; +use eris::asset::{Asset, AssetInfo}; + +#[cfg_attr(not(feature = "library"), entry_point)] +pub fn instantiate( + _deps: DepsMut, + _env: Env, + _info: MessageInfo, + _msg: InstantiateMsg, +) -> Result { + Ok(Response::default()) +} + +#[cfg_attr(not(feature = "library"), entry_point)] +pub fn execute( + _deps: DepsMut, + _env: Env, + _info: MessageInfo, + _msg: ExecuteMsg, +) -> Result { + unimplemented!() +} + +#[cfg_attr(not(feature = "library"), entry_point)] +pub fn query(deps: Deps, _env: Env, msg: QueryMsg) -> StdResult { + match msg { + QueryMsg::Tax { denom, amount } => to_binary(&tax(deps, denom, amount)?), + } +} + +fn tax( + deps: Deps, + denom: String, + amount: Uint128 +) -> StdResult { + let asset = Asset { + info: AssetInfo::NativeToken { + denom + }, + amount + }; + + let tax = asset.compute_tax(&deps.querier).unwrap(); + Ok(TaxResponse { tax }) +} + +#[cfg(test)] +mod tests { + use classic_test_tube::{Module, Account, Treasury, classic_proto::classic::treasury::{QueryTaxCapRequest, QueryTaxRateRequest}}; + use cosmwasm_std::{Uint128, Decimal}; + + #[test] + fn test_wasm_query_tax() { + use classic_test_tube::TerraTestApp; + use classic_test_tube::Wasm; + use cosmwasm_std::Coin; + use crate::msg::{InstantiateMsg, QueryMsg, TaxResponse}; + static DECIMAL_FRACTION: Uint128 = Uint128::new(1_000_000_000_000_000_000u128); + + let app = TerraTestApp::default(); + let wasm = Wasm::new(&app); + let treasury = Treasury::new(&app); + + let accs = app + .init_accounts( + &[ + Coin::new(1_000_000_000_000, "uluna"), + Coin::new(1_000_000_000_000, "uusd"), + ], + 2, + ) + .unwrap(); + + let admin = &accs[0]; + + // store wasm code + let wasm_byte_code = std::fs::read("./testdata/test-aarch64.wasm").unwrap(); + let code_id = wasm + .store_code(&wasm_byte_code, None, admin) + .unwrap() + .data + .code_id; + assert_eq!(code_id, 1); + + // initialize admins and check if the state is correct + let contract_addr = wasm + .instantiate( + code_id, + &InstantiateMsg {}, + Some(&admin.address()), + None, + &[], + admin, + ) + .unwrap() + .data + .address; + + // calculate tax from querying to chain + let tax_cap = treasury.query_tax_cap(&QueryTaxCapRequest{ + denom: "uluna".to_string() + }).unwrap(); + + let tax_rate = treasury.query_tax_rate(&QueryTaxRateRequest{}).unwrap(); + let dec_tax_rate = Decimal::from_ratio(Uint128::new(tax_rate.tax_rate.parse::().unwrap()), DECIMAL_FRACTION); + + let amount = Uint128::new(1000000000); + + let tax = std::cmp::min( + (amount.checked_sub(amount.multiply_ratio( + DECIMAL_FRACTION, + DECIMAL_FRACTION * dec_tax_rate + DECIMAL_FRACTION, + ))).unwrap(), + Uint128::new(tax_cap.tax_cap.parse::().unwrap()), + ); + + // query tax from contract + let query = QueryMsg::Tax { + denom: "uluna".to_string(), + amount, + }; + + let res = wasm.query::(contract_addr.as_str(), &query).unwrap(); + assert_eq!(tax, res.tax) + } +} \ No newline at end of file diff --git a/contracts/test/src/error.rs b/contracts/test/src/error.rs new file mode 100644 index 0000000..fde2812 --- /dev/null +++ b/contracts/test/src/error.rs @@ -0,0 +1,8 @@ +use cosmwasm_std::StdError; +use thiserror::Error; + +#[derive(Error, Debug, PartialEq)] +pub enum ContractError { + #[error("{0}")] + StdError(#[from] StdError), +} diff --git a/contracts/test/src/lib.rs b/contracts/test/src/lib.rs new file mode 100644 index 0000000..6204083 --- /dev/null +++ b/contracts/test/src/lib.rs @@ -0,0 +1,3 @@ +pub mod contract; +pub mod msg; +pub mod error; diff --git a/contracts/test/src/msg.rs b/contracts/test/src/msg.rs new file mode 100644 index 0000000..9a2fa68 --- /dev/null +++ b/contracts/test/src/msg.rs @@ -0,0 +1,24 @@ +use cosmwasm_schema::{cw_serde, QueryResponses}; +use cosmwasm_std::Uint128; + +#[cw_serde] +pub struct InstantiateMsg {} + +#[cw_serde] +pub enum ExecuteMsg {} + +#[cw_serde] +#[derive(QueryResponses)] +pub enum QueryMsg { + + #[returns(TaxResponse)] + Tax { + denom: String, + amount: Uint128, + } +} + +#[cw_serde] +pub struct TaxResponse { + pub tax: Uint128 +} \ No newline at end of file diff --git a/contracts/test/testdata/test-aarch64.wasm b/contracts/test/testdata/test-aarch64.wasm new file mode 100644 index 0000000000000000000000000000000000000000..5844f783e6d01e6375990ca2334e6626a6ed3146 GIT binary patch literal 182670 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 w4ZOoU}YM%CB35A%sqO_wk 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

1gd(*3s6nyraFNqocE9MQ3wo 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 JymxKg{{^01I;#Kx literal 0 HcmV?d00001 diff --git a/packages/eris/Cargo.toml b/packages/eris/Cargo.toml index f0435e9..26ffd8b 100644 --- a/packages/eris/Cargo.toml +++ b/packages/eris/Cargo.toml @@ -10,6 +10,6 @@ repository = "https://github.com/erisprotocol/contracts-terra-classic" [dependencies] cosmwasm-std = { version = "1.1", features = ["stargate"] } cw20 = "0.13.2" -schemars = "0.8.1" +schemars = "0.8.12" serde = { version = "1.0.103", default-features = false, features = ["derive"] } classic-bindings = "0.1.1" \ No newline at end of file