From 6122ebd6e413d26aa7904129f303188439710388 Mon Sep 17 00:00:00 2001 From: Tony Arcieri Date: Mon, 2 Nov 2020 11:50:48 -0800 Subject: [PATCH] [WIP] Bump tendermint-rs to v0.17.0-rc1 --- Cargo.lock | 351 ++++++++++-------------------------- Cargo.toml | 4 +- src/amino_types.rs | 7 + src/amino_types/block_id.rs | 82 ++++++--- src/amino_types/proposal.rs | 6 +- src/amino_types/vote.rs | 18 +- src/tx_signer.rs | 4 +- 7 files changed, 176 insertions(+), 296 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 1fa8cb1e..ee4911a1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -79,7 +79,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7fc95d1bdb8e6666b2b217308eeeb09f2d6728d104be3e31916cc74d15420331" dependencies = [ - "generic-array 0.14.4", + "generic-array", ] [[package]] @@ -100,7 +100,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4e8bdbc97ba3854ecf597a3b69d7bd30a719dee72d22ce6313c84dbf2c8f2694" dependencies = [ "cipher", - "opaque-debug 0.3.0", + "opaque-debug", ] [[package]] @@ -110,14 +110,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ea2e11f5e94c2f7d386164cc2aa1f97823fed6f259e486940a71c174dd01b0ce" dependencies = [ "cipher", - "opaque-debug 0.3.0", + "opaque-debug", ] [[package]] name = "aho-corasick" -version = "0.7.14" +version = "0.7.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b476ce7103678b0c6d3d395dbbae31d48ff910bd28be979ba5d48c6351131d0d" +checksum = "7404febffaa47dac81aa44dba71523c9d069b1bdc50a77db41195149e17f68e5" dependencies = [ "memchr", ] @@ -142,9 +142,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.33" +version = "1.0.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1fd36ffbb1fb7c834eac128ea8d0e310c5aeb635548f9d58861e1308d46e71c" +checksum = "bf8dcb5b4bbaa28653b647d8c77bd4ed40183b48882e130c1f1ffb73de069fd7" [[package]] name = "ascii" @@ -163,20 +163,6 @@ dependencies = [ "syn", ] -[[package]] -name = "async-tungstenite" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "182617e5bbfe7001b6f2317883506f239c77313171620a04cc11292704d3e171" -dependencies = [ - "futures-io", - "futures-util", - "log", - "pin-project 0.4.27", - "tokio", - "tungstenite", -] - [[package]] name = "atty" version = "0.2.14" @@ -208,12 +194,6 @@ dependencies = [ "rustc-demangle", ] -[[package]] -name = "base64" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b41b7ea54a0c9d92199de89e20e58d49f02f8e699814ef3fdf266f6f748d15c7" - [[package]] name = "base64" version = "0.12.3" @@ -237,26 +217,14 @@ dependencies = [ "wyz", ] -[[package]] -name = "block-buffer" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688b" -dependencies = [ - "block-padding 0.1.5", - "byte-tools", - "byteorder", - "generic-array 0.12.3", -] - [[package]] name = "block-buffer" version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" dependencies = [ - "block-padding 0.2.1", - "generic-array 0.14.4", + "block-padding", + "generic-array", ] [[package]] @@ -265,19 +233,10 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "57a0e8073e8baa88212fb5823574c02ebccb395136ba9a164ab89379ec6072f0" dependencies = [ - "block-padding 0.2.1", + "block-padding", "cipher", ] -[[package]] -name = "block-padding" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa79dedbb091f449f1f39e53edf88d5dbe95f895dae6135a8d7b881fb5af73f5" -dependencies = [ - "byte-tools", -] - [[package]] name = "block-padding" version = "0.2.1" @@ -290,12 +249,6 @@ version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2e8c087f005730276d1096a652e92a8bacee2e2472bcc9715a74d2bec38b5820" -[[package]] -name = "byte-tools" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7" - [[package]] name = "byteorder" version = "1.3.4" @@ -316,9 +269,9 @@ checksum = "e6e9e01327e6c86e92ec72b1c798d4a94810f147209bbe3ffab6a86954937a6f" [[package]] name = "cc" -version = "1.0.61" +version = "1.0.62" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed67cbde08356238e75fc4656be4749481eeffb09e19f320a25237d5221c985d" +checksum = "f1770ced377336a88a67c473594ccc14eca6f4559217c34f64aac8f83d641b40" [[package]] name = "ccm" @@ -392,7 +345,7 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "12f8e7987cbd042a63249497f41aed09f8e65add917ea6566effbc56578d6801" dependencies = [ - "generic-array 0.14.4", + "generic-array", ] [[package]] @@ -459,7 +412,7 @@ version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "58bcd97a54c7ca5ce2f6eb16f6bede5b0ab5f0055fedc17d2f0b4466e21671ca" dependencies = [ - "generic-array 0.14.4", + "generic-array", "subtle", ] @@ -470,7 +423,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4857fd85a0c34b3c3297875b747c1e02e06b6a0ea32dd892d8192b9ce0813ea6" dependencies = [ "cipher", - "generic-array 0.14.4", + "generic-array", "subtle", ] @@ -490,7 +443,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c8492de420e9e60bc9a1d66e2dbb91825390b738a388606600663fc529b4b307" dependencies = [ "byteorder", - "digest 0.9.0", + "digest", "rand_core", "subtle", "zeroize", @@ -537,16 +490,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2735145c3b9ba15f2d7a3ae8cdafcbc8c98a7bef7f62afe9d08bd99fbf7130de" dependencies = [ - "generic-array 0.14.4", -] - -[[package]] -name = "digest" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3d0c8c8752312f9713efd397ff63acb9f85585afbf179282e720e7704954dd5" -dependencies = [ - "generic-array 0.12.3", + "generic-array", ] [[package]] @@ -555,17 +499,7 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" dependencies = [ - "generic-array 0.14.4", -] - -[[package]] -name = "ecdsa" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83c7b18ecf0bb8dae3a2e41e7ec2b8fdb1988a6537c88d3c341e50feb8ee355a" -dependencies = [ - "elliptic-curve 0.5.0", - "signature", + "generic-array", ] [[package]] @@ -574,7 +508,7 @@ version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "87bf8bfb05ea8a6f74ddf48c7d1774851ba77bbe51ac984fdfa6c30310e1ff5f" dependencies = [ - "elliptic-curve 0.6.6", + "elliptic-curve", "hmac 0.9.0", "signature", ] @@ -610,19 +544,6 @@ version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457" -[[package]] -name = "elliptic-curve" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9abe4578ed343c7a2c9d617cd2b1895ba0a87a6a4dee97bde156d65f608c7b2d" -dependencies = [ - "const-oid", - "generic-array 0.14.4", - "rand_core", - "subtle", - "zeroize", -] - [[package]] name = "elliptic-curve" version = "0.6.6" @@ -631,9 +552,9 @@ checksum = "396db09c483e7fca5d4fdb9112685632b3e76c9a607a2649c1bf904404a01366" dependencies = [ "bitvec", "const-oid", - "digest 0.9.0", + "digest", "ff", - "generic-array 0.14.4", + "generic-array", "group", "rand_core", "subtle", @@ -662,12 +583,6 @@ dependencies = [ "synstructure", ] -[[package]] -name = "fake-simd" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed" - [[package]] name = "ff" version = "0.8.0" @@ -681,11 +596,11 @@ dependencies = [ [[package]] name = "filetime" -version = "0.2.12" +version = "0.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ed85775dcc68644b5c950ac06a2b23768d3bc9390464151aaf27136998dcf9e" +checksum = "0c122a393ea57648015bf06fbd3d372378992e86b9ff5a7a497b076a28c79efe" dependencies = [ - "cfg-if 0.1.10", + "cfg-if 1.0.0", "libc", "redox_syscall", "winapi 0.3.9", @@ -697,6 +612,16 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" +[[package]] +name = "form_urlencoded" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ece68d15c92e84fa4f19d3780f1294e5ca82a78a6d515f1efaabcc144688be00" +dependencies = [ + "matches", + "percent-encoding", +] + [[package]] name = "fuchsia-zircon" version = "0.3.3" @@ -721,9 +646,9 @@ checksum = "0ba62103ce691c2fd80fbae2213dfdda9ce60804973ac6b6e97de818ea7f52c8" [[package]] name = "futures" -version = "0.3.7" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95314d38584ffbfda215621d723e0a3906f032e03ae5551e650058dac83d4797" +checksum = "9b3b0c040a1fe6529d30b3c5944b280c7f0dcb2930d2c3062bca967b602583d0" dependencies = [ "futures-channel", "futures-core", @@ -736,9 +661,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.7" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0448174b01148032eed37ac4aed28963aaaa8cfa93569a08e5b479bbc6c2c151" +checksum = "4b7109687aa4e177ef6fe84553af6280ef2778bdb7783ba44c9dc3399110fe64" dependencies = [ "futures-core", "futures-sink", @@ -746,15 +671,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.7" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18eaa56102984bed2c88ea39026cff3ce3b4c7f508ca970cedf2450ea10d4e46" +checksum = "847ce131b72ffb13b6109a221da9ad97a64cbe48feb1028356b836b47b8f1748" [[package]] name = "futures-executor" -version = "0.3.7" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5f8e0c9258abaea85e78ebdda17ef9666d390e987f006be6080dfe354b708cb" +checksum = "4caa2b2b68b880003057c1dd49f1ed937e38f22fcf6c212188a121f08cf40a65" dependencies = [ "futures-core", "futures-task", @@ -763,15 +688,15 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.7" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e1798854a4727ff944a7b12aa999f58ce7aa81db80d2dfaaf2ba06f065ddd2b" +checksum = "611834ce18aaa1bd13c4b374f5d653e1027cf99b6b502584ff8c9a64413b30bb" [[package]] name = "futures-macro" -version = "0.3.7" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e36fccf3fc58563b4a14d265027c627c3b665d7fed489427e88e7cc929559efe" +checksum = "77408a692f1f97bcc61dc001d752e00643408fbc922e4d634c655df50d595556" dependencies = [ "proc-macro-hack", "proc-macro2", @@ -781,24 +706,24 @@ dependencies = [ [[package]] name = "futures-sink" -version = "0.3.7" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e3ca3f17d6e8804ae5d3df7a7d35b2b3a6fe89dac84b31872720fc3060a0b11" +checksum = "f878195a49cee50e006b02b93cf7e0a95a38ac7b776b4c4d9cc1207cd20fcb3d" [[package]] name = "futures-task" -version = "0.3.7" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96d502af37186c4fef99453df03e374683f8a1eec9dcc1e66b3b82dc8278ce3c" +checksum = "7c554eb5bf48b2426c4771ab68c6b14468b6e76cc90996f528c3338d761a4d0d" dependencies = [ "once_cell", ] [[package]] name = "futures-util" -version = "0.3.7" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abcb44342f62e6f3e8ac427b8aa815f724fd705dfad060b18ac7866c15bb8e34" +checksum = "d304cff4a7b99cfb7986f7d43fbe93d175e72e704a8860787cc95e9ffd85cbd2" dependencies = [ "futures-channel", "futures-core", @@ -823,15 +748,6 @@ dependencies = [ "cfg-if 0.1.10", ] -[[package]] -name = "generic-array" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c68f0274ae0e023facc3c97b2e00f076be70e254bc851d972503b328db79b2ec" -dependencies = [ - "typenum", -] - [[package]] name = "generic-array" version = "0.14.4" @@ -969,7 +885,7 @@ version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "51ab2f639c231793c5f6114bdb9bbe50a7dbbfcd7c7c6bd8475dec2d991e964f" dependencies = [ - "digest 0.9.0", + "digest", "hmac 0.10.1", ] @@ -980,7 +896,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "deae6d9dbb35ec2c502d62b8f7b1c000a0822c3b0794ba36b3149c0a1c840dff" dependencies = [ "crypto-mac 0.9.1", - "digest 0.9.0", + "digest", ] [[package]] @@ -990,7 +906,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c1441c6b1e930e2817404b5046f1f989899143a12bf92de603b69f4e0aee1e15" dependencies = [ "crypto-mac 0.10.0", - "digest 0.9.0", + "digest", ] [[package]] @@ -1095,15 +1011,6 @@ dependencies = [ "hashbrown", ] -[[package]] -name = "input_buffer" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19a8a95243d5a0398cae618ec29477c6e3cb631152be5c19481f80bc71559754" -dependencies = [ - "bytes", -] - [[package]] name = "iovec" version = "0.1.4" @@ -1146,18 +1053,6 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "k256" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb63e78a457abe6e0a36ffee8efffeb1c4887134e696be119854d8d03c0b7aab" -dependencies = [ - "cfg-if 0.1.10", - "ecdsa 0.7.2", - "elliptic-curve 0.5.0", - "sha2", -] - [[package]] name = "k256" version = "0.5.10" @@ -1165,8 +1060,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3934640b1efbc660af5889d041854b6985d403771dc4d5fee984e13e8f82f313" dependencies = [ "cfg-if 1.0.0", - "ecdsa 0.8.5", - "elliptic-curve 0.6.6", + "ecdsa", + "elliptic-curve", "sha2", "sha3", ] @@ -1391,12 +1286,6 @@ version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "260e51e7efe62b592207e9e13a68e43692a7a279171d6ba57abd208bf23645ad" -[[package]] -name = "opaque-debug" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529c" - [[package]] name = "opaque-debug" version = "0.3.0" @@ -1424,8 +1313,8 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "280ed58e7e5f3052b6e2f596fa40c7eff4c27c4b6b6deecb5d685ba5c2080980" dependencies = [ - "ecdsa 0.8.5", - "elliptic-curve 0.6.6", + "ecdsa", + "elliptic-curve", "sha2", ] @@ -1435,8 +1324,8 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "06de0548166c258c22bb6bdcff3074eac4b07125040aa74db3f61db87fe5f275" dependencies = [ - "ecdsa 0.8.5", - "elliptic-curve 0.6.6", + "ecdsa", + "elliptic-curve", ] [[package]] @@ -1523,9 +1412,9 @@ dependencies = [ [[package]] name = "ppv-lite86" -version = "0.2.9" +version = "0.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c36fa947111f5c62a733b652544dd0016a43ce89619538a8ef92724a6f501a20" +checksum = "ac74c624d6b2d21f425f752262f42188365d7b8ff1aff74c82e45136510a4857" [[package]] name = "proc-macro-hack" @@ -1731,9 +1620,9 @@ 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 0.3.0", + "block-buffer", + "digest", + "opaque-debug", ] [[package]] @@ -1784,7 +1673,7 @@ version = "0.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5d1126dcf58e93cee7d098dbda643b5f92ed724f1f6a63007c1116eed6700c81" dependencies = [ - "base64 0.12.3", + "base64", "log", "ring", "sct", @@ -1929,29 +1818,17 @@ dependencies = [ "syn", ] -[[package]] -name = "sha-1" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7d94d0bede923b3cea61f3f1ff57ff8cdfd77b400fb8f9998949e0cf04163df" -dependencies = [ - "block-buffer 0.7.3", - "digest 0.8.1", - "fake-simd", - "opaque-debug 0.2.3", -] - [[package]] name = "sha2" version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6e7aab86fe2149bad8c507606bdb3f4ef5e7b2380eb92350f56122cca72a42a8" dependencies = [ - "block-buffer 0.9.0", + "block-buffer", "cfg-if 1.0.0", "cpuid-bool", - "digest 0.9.0", - "opaque-debug 0.3.0", + "digest", + "opaque-debug", ] [[package]] @@ -1960,10 +1837,10 @@ version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f81199417d4e5de3f04b1e871023acea7389672c4135918f05aa9cbf2f2fa809" dependencies = [ - "block-buffer 0.9.0", - "digest 0.9.0", + "block-buffer", + "digest", "keccak", - "opaque-debug 0.3.0", + "opaque-debug", ] [[package]] @@ -1991,7 +1868,7 @@ version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "29f060a7d147e33490ec10da418795238fd7545bba241504d6b31a409f2e6210" dependencies = [ - "digest 0.9.0", + "digest", "rand_core", "signature_derive", ] @@ -2054,8 +1931,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "470756684957fd9ed5060c00641a610e6ab7fae4194f0582e8611c5f6a2cb45b" dependencies = [ "anomaly", - "ecdsa 0.8.5", - "k256 0.5.10", + "ecdsa", + "k256", "prost-amino", "prost-amino-derive", "rust_decimal", @@ -2111,15 +1988,6 @@ dependencies = [ "unicode-xid", ] -[[package]] -name = "tai64" -version = "3.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4014289c3d2b8168880ae86633247e73712fcc579969aff0ca7c5dcd17456b82" -dependencies = [ - "chrono", -] - [[package]] name = "tar" version = "0.4.30" @@ -2148,9 +2016,9 @@ dependencies = [ [[package]] name = "tendermint" -version = "0.16.0" +version = "0.17.0-rc1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b45e7fd7fa5d049de343112ad0d2f45e65e8c700bc395aaed0c806906295b27e" +checksum = "ec66e7558bfc9d1ee8385e4566d2097eb7124c905504fcc754db64203d8e4801" dependencies = [ "anomaly", "async-trait", @@ -2159,10 +2027,10 @@ dependencies = [ "ed25519", "ed25519-dalek", "futures", - "k256 0.4.2", + "k256", "once_cell", - "prost-amino", - "prost-amino-derive", + "prost", + "prost-types", "ripemd160", "serde", "serde_bytes", @@ -2172,7 +2040,7 @@ dependencies = [ "signature", "subtle", "subtle-encoding", - "tai64", + "tendermint-proto", "thiserror", "toml", "zeroize", @@ -2193,12 +2061,13 @@ dependencies = [ [[package]] name = "tendermint-rpc" -version = "0.16.0" +version = "0.17.0-rc1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b718face63ee456cb7305902db0bcdd3b233666cbcf25aa95c173c1252792b4c" +checksum = "7ef5b8292fea094c452f4e297d33d47e847cbea8ae3a421e352fbc9f7d4a3976" dependencies = [ - "async-tungstenite", + "async-trait", "bytes", + "chrono", "futures", "getrandom", "http", @@ -2223,18 +2092,18 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.21" +version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "318234ffa22e0920fe9a40d7b8369b5f649d490980cf7aadcf1eb91594869b42" +checksum = "0e9ae34b84616eedaaf1e9dd6026dbe00dcafa92aa0c8077cb69df1fcfe5e53e" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.21" +version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cae2447b6282786c3493999f40a9be2a6ad20cb8bd268b0a0dbf5a065535c0ab" +checksum = "9ba20f23e85b10754cd195504aebf6a27e2e6cbe28c17778a0c930724628dd56" dependencies = [ "proc-macro2", "quote", @@ -2297,7 +2166,7 @@ dependencies = [ "hkdf", "hyper", "hyper-rustls", - "k256 0.5.10", + "k256", "ledger", "merlin", "once_cell", @@ -2474,25 +2343,6 @@ version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" -[[package]] -name = "tungstenite" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfea31758bf674f990918962e8e5f07071a3161bd7c4138ed23e416e1ac4264e" -dependencies = [ - "base64 0.11.0", - "byteorder", - "bytes", - "http", - "httparse", - "input_buffer", - "log", - "rand", - "sha-1", - "url", - "utf-8", -] - [[package]] name = "typenum" version = "1.12.0" @@ -2529,7 +2379,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8326b2c654932e3e4f9196e69d08fdf7cfd718e1dc6f66b347e6024a0c961402" dependencies = [ - "generic-array 0.14.4", + "generic-array", "subtle", ] @@ -2541,21 +2391,16 @@ checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" [[package]] name = "url" -version = "2.1.1" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "829d4a8476c35c9bf0bbce5a3b23f4106f79728039b726d292bb93bc106787cb" +checksum = "5909f2b0817350449ed73e8bcd81c8c3c8d9a7a5d8acba4b27db277f1868976e" dependencies = [ + "form_urlencoded", "idna", "matches", "percent-encoding", ] -[[package]] -name = "utf-8" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05e42f7c18b8f902290b009cde6d651262f956c98bc51bca4cd1d511c9cd85c7" - [[package]] name = "uuid" version = "0.8.1" @@ -2780,13 +2625,13 @@ dependencies = [ "ccm", "chrono", "cmac", - "digest 0.9.0", - "ecdsa 0.8.5", + "digest", + "ecdsa", "ed25519", "ed25519-dalek", "harp", "hmac 0.10.1", - "k256 0.5.10", + "k256", "log", "p256", "p384", diff --git a/Cargo.toml b/Cargo.toml index f4635087..e5eac746 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -42,8 +42,8 @@ stdtx = { version = "0.3", optional = true } subtle = "2" subtle-encoding = { version = "0.5", features = ["bech32-preview"] } tempfile = "3" -tendermint = { version = "0.16.0", features = ["secp256k1"] } -tendermint-rpc = { version = "0.16.0", optional = true, features = ["client"] } +tendermint = { version = "0.17.0-rc1", features = ["secp256k1"] } +tendermint-rpc = { version = "0.17.0-rc1", optional = true, features = ["http-client"] } tendermint-proto = "0.17.0-rc1" thiserror = "1" wait-timeout = "0.2" diff --git a/src/amino_types.rs b/src/amino_types.rs index 12e97e04..27c50f3e 100644 --- a/src/amino_types.rs +++ b/src/amino_types.rs @@ -39,6 +39,13 @@ pub use self::{ use crate::rpc; use sha2::{Digest, Sha256}; +use tendermint::{chain, error::Error}; + +/// Parse `chain::Id` from a type +pub trait ParseChainId { + /// Parse `chain::Id`, or return an `Error` if parsing failed + fn parse_chain_id(&self) -> Result; +} /// Tendermint requests pub trait TendermintRequest: SignableMsg { diff --git a/src/amino_types/block_id.rs b/src/amino_types/block_id.rs index 6f90573b..5cbc8df8 100644 --- a/src/amino_types/block_id.rs +++ b/src/amino_types/block_id.rs @@ -1,9 +1,10 @@ use super::validate::{self, ConsensusMessage, Error::*}; +use crate::prelude::*; use prost_amino_derive::Message; +use std::convert::TryInto; use tendermint::{ block::{self, parts}, - error::Error, - hash, + error::{self, Error}, hash::{Hash, SHA256_HASH_SIZE}, }; use tendermint_proto as proto; @@ -22,24 +23,40 @@ impl BlockId { } } +/// Parse an Amino-encoded SHA-256 hash +fn parse_sha256_hash(bytes: &[u8]) -> Result { + bytes.try_into().map(Hash::Sha256).map_err(|_| { + format_err!( + error::Kind::Parse, + "malformed hash: {}-bytes (expected 32)", + bytes.len() + ) + .into() + }) +} + +/// Parse `block::Id` from a type +pub trait ParseId { + /// Parse `block::Id`, or return an `Error` if parsing failed + fn parse_block_id(&self) -> Result; +} + impl block::ParseId for BlockId { fn parse_block_id(&self) -> Result { - let hash = Hash::new(hash::Algorithm::Sha256, &self.hash)?; - let parts_header = self - .parts_header - .as_ref() - .and_then(PartsSetHeader::parse_parts_header); - Ok(block::Id::new(hash, parts_header)) + let hash = parse_sha256_hash(&self.hash)?; + let parts = match &self.parts_header { + Some(p) => p.parse_parts_header()?, + None => fail!(error::Kind::Parse, "missing block ID parts header"), + }; + Ok(block::Id { hash, parts }) } } impl From<&block::Id> for BlockId { fn from(bid: &block::Id) -> Self { let bid_hash = bid.hash.as_bytes(); - BlockId::new( - bid_hash.to_vec(), - bid.parts.as_ref().map(PartsSetHeader::from), - ) + + BlockId::new(bid_hash.to_vec(), Some(bid.parts.into())) } } @@ -89,14 +106,14 @@ pub struct CanonicalBlockId { pub parts_header: Option, } -impl block::ParseId for CanonicalBlockId { +impl ParseId for CanonicalBlockId { fn parse_block_id(&self) -> Result { - let hash = Hash::new(hash::Algorithm::Sha256, &self.hash)?; - let parts_header = self - .parts_header - .as_ref() - .and_then(CanonicalPartSetHeader::parse_parts_header); - Ok(block::Id::new(hash, parts_header)) + let hash = parse_sha256_hash(&self.hash)?; + let parts = match &self.parts_header { + Some(p) => p.parse_parts_header()?, + None => fail!(error::Kind::Parse, "missing block ID parts header"), + }; + Ok(block::Id { hash, parts }) } } @@ -121,10 +138,11 @@ impl From<&parts::Header> for PartsSetHeader { } impl PartsSetHeader { - fn parse_parts_header(&self) -> Option { - Hash::new(hash::Algorithm::Sha256, &self.hash) - .map(|hash| block::parts::Header::new(self.total as u64, hash)) - .ok() + fn parse_parts_header(&self) -> Result { + Ok(block::parts::Header::new( + self.total as u32, + parse_sha256_hash(&self.hash)?, + )) } } @@ -141,6 +159,15 @@ impl ConsensusMessage for PartsSetHeader { } } +impl From for PartsSetHeader { + fn from(header: block::parts::Header) -> PartsSetHeader { + PartsSetHeader { + total: header.total as i64, + hash: header.hash.into(), + } + } +} + #[derive(Clone, PartialEq, Message)] pub struct CanonicalPartSetHeader { #[prost_amino(bytes, tag = "1")] @@ -150,9 +177,10 @@ pub struct CanonicalPartSetHeader { } impl CanonicalPartSetHeader { - fn parse_parts_header(&self) -> Option { - Hash::new(hash::Algorithm::Sha256, &self.hash) - .map(|hash| block::parts::Header::new(self.total as u64, hash)) - .ok() + fn parse_parts_header(&self) -> Result { + Ok(block::parts::Header::new( + self.total as u32, + parse_sha256_hash(&self.hash)?, + )) } } diff --git a/src/amino_types/proposal.rs b/src/amino_types/proposal.rs index 19b546cf..5647d787 100644 --- a/src/amino_types/proposal.rs +++ b/src/amino_types/proposal.rs @@ -5,7 +5,7 @@ use super::{ signature::{SignableMsg, SignedMsgType}, time::TimeMsg, validate::{self, ConsensusMessage, Error::*}, - TendermintRequest, + ParseChainId, TendermintRequest, }; use crate::{config::validator::ProtocolVersion, rpc}; use bytes::BufMut; @@ -75,7 +75,7 @@ struct CanonicalProposal { pub chain_id: String, } -impl chain::ParseId for CanonicalProposal { +impl ParseChainId for CanonicalProposal { fn parse_chain_id(&self) -> Result { self.chain_id.parse() } @@ -184,7 +184,7 @@ impl SignableMsg for SignProposalRequest { Ok(h) => h, Err(_err) => return None, // TODO(tarcieri): return an error? }, - round: p.round, + round: block::Round::from(p.round as u16), step: 3, block_id: { match p.block_id { diff --git a/src/amino_types/vote.rs b/src/amino_types/vote.rs index 1a3b1c51..f50c67b9 100644 --- a/src/amino_types/vote.rs +++ b/src/amino_types/vote.rs @@ -5,7 +5,7 @@ use super::{ signature::SignableMsg, time::TimeMsg, validate::{self, ConsensusMessage, Error::*}, - PartsSetHeader, SignedMsgType, TendermintRequest, + ParseChainId, SignedMsgType, TendermintRequest, }; use crate::{config::validator::ProtocolVersion, rpc}; use bytes::BufMut; @@ -60,16 +60,16 @@ impl Vote { impl From<&vote::Vote> for Vote { fn from(vote: &vote::Vote) -> Self { Vote { - vote_type: vote.vote_type.to_u32(), - height: vote.height.value() as i64, // TODO potential overflow :-/ - round: vote.round as i64, + vote_type: i32::from(vote.vote_type) as u32, + height: vote.height.value() as i64, + round: vote.round.value() as i64, block_id: vote.block_id.as_ref().map(|block_id| BlockId { hash: block_id.hash.as_bytes().to_vec(), - parts_header: block_id.parts.as_ref().map(PartsSetHeader::from), + parts_header: Some(block_id.parts.into()), }), - timestamp: Some(TimeMsg::from(vote.timestamp)), + timestamp: vote.timestamp.map(Into::into), validator_address: vote.validator_address.as_bytes().to_vec(), - validator_index: vote.validator_index as i64, // TODO potential overflow :-/ + validator_index: vote.validator_index.value() as i64, signature: vote.signature.as_bytes().to_vec(), } } @@ -134,7 +134,7 @@ impl TendermintRequest for SignVoteRequest { } } -impl chain::ParseId for CanonicalVote { +impl ParseChainId for CanonicalVote { fn parse_chain_id(&self) -> Result { self.chain_id.parse() } @@ -244,7 +244,7 @@ impl SignableMsg for SignVoteRequest { Ok(h) => h, Err(_err) => return None, // TODO(tarcieri): return an error? }, - round: v.round, + round: block::Round::from(v.round as u16), step: 6, block_id: { match v.block_id { diff --git a/src/tx_signer.rs b/src/tx_signer.rs index 7ac2b85d..6df9c751 100644 --- a/src/tx_signer.rs +++ b/src/tx_signer.rs @@ -59,7 +59,7 @@ pub struct TxSigner { source: jsonrpc::Client, /// Tendermint RPC client - rpc_client: tendermint_rpc::Client, + rpc_client: tendermint_rpc::HttpClient, /// Sequence file seq_file: SequenceFile, @@ -87,7 +87,7 @@ impl TxSigner { TxSource::JsonRpc { uri } => jsonrpc::Client::new(uri.clone()), }; - let tendermint_rpc = tendermint_rpc::Client::new(config.rpc.addr.clone()); + let tendermint_rpc = tendermint_rpc::HttpClient::new(config.rpc.addr.clone()); let seq_file = SequenceFile::open(&config.seq_file)?;