diff --git a/Cargo.lock b/Cargo.lock index e2c648cf8..18beb91b3 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -67,15 +67,6 @@ version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3ae7d751998c189c1d4468cf0a39bb2eae052a9c58d50ebb3b9591ee3813ad50" -[[package]] -name = "ascii-canvas" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff8eb72df928aafb99fe5d37b383f2fe25bd2a765e3e5f7c365916b6f2463a29" -dependencies = [ - "term 0.5.2", -] - [[package]] name = "assert_cmd" version = "1.0.1" @@ -169,12 +160,6 @@ version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3441f0f7b02788e948e47f457ca01f1d7e6d92c693bc132c22b087d3141c03ff" -[[package]] -name = "bech32" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58946044516aa9dc922182e0d6e9d124a31aafe6b421614654eb27cf90cec09c" - [[package]] name = "bincode" version = "1.3.1" @@ -206,42 +191,15 @@ dependencies = [ "regex", "rustc-hash", "shlex", - "which 3.1.1", + "which", ] -[[package]] -name = "bit-set" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e11e16035ea35e4e5997b393eacbf6f63983188f7a2ad25bfb13465f5ad59de" -dependencies = [ - "bit-vec", -] - -[[package]] -name = "bit-vec" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f0dc55f2d8a1a85650ac47858bb001b4c0dd73d79e3c455a842925e68d29cd3" - [[package]] name = "bitflags" version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693" -[[package]] -name = "blake2" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94cb07b0da6a73955f8fb85d24c466778e70cda767a568229b104f0264089330" -dependencies = [ - "byte-tools", - "crypto-mac", - "digest", - "opaque-debug", -] - [[package]] name = "blake2b_simd" version = "0.5.10" @@ -274,12 +232,6 @@ dependencies = [ "byte-tools", ] -[[package]] -name = "bs58" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c95ee6bba9d950218b6cc910cf62bc9e0a171d0f4537e3627b0f54d08549b188" - [[package]] name = "bs58" version = "0.3.1" @@ -303,7 +255,7 @@ name = "btc_spv_bin" version = "1.3.0" dependencies = [ "clap", - "hex 0.4.2", + "hex", "reqwest", "serde", "serde_derive", @@ -396,12 +348,6 @@ dependencies = [ "pkg-config", ] -[[package]] -name = "c_linked_list" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4964518bd3b4a8190e832886cdc0da9794f12e8e6c1613a9e90ff331c4c8724b" - [[package]] name = "cast" version = "0.2.3" @@ -436,16 +382,6 @@ version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" -[[package]] -name = "chashmap" -version = "2.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff41a3c2c1e39921b9003de14bf0439c7b63a9039637c291e1a64925d8ddfa45" -dependencies = [ - "owning_ref", - "parking_lot 0.4.8", -] - [[package]] name = "chrono" version = "0.4.11" @@ -478,7 +414,7 @@ dependencies = [ "ansi_term", "atty", "bitflags", - "strsim 0.8.0", + "strsim", "textwrap", "unicode-width", "vec_map", @@ -502,26 +438,6 @@ dependencies = [ "bitflags", ] -[[package]] -name = "codespan" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "004def512a9848b23a68ed110927d102b0e6d9f3dc732e28570879afde051f8c" -dependencies = [ - "failure", - "itertools 0.8.2", -] - -[[package]] -name = "codespan-reporting" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab081a14ab8f9598ce826890fe896d0addee68c7a58ab49008369ccbb51510a8" -dependencies = [ - "codespan", - "termcolor", -] - [[package]] name = "combine" version = "2.5.2" @@ -605,20 +521,6 @@ dependencies = [ "thread-scoped", ] -[[package]] -name = "crossbeam" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69323bff1fb41c635347b8ead484a5ca6c3f11914d784170b158d8449ab07f8e" -dependencies = [ - "cfg-if", - "crossbeam-channel", - "crossbeam-deque", - "crossbeam-epoch", - "crossbeam-queue", - "crossbeam-utils", -] - [[package]] name = "crossbeam-channel" version = "0.4.2" @@ -676,12 +578,6 @@ dependencies = [ "lazy_static", ] -[[package]] -name = "crunchy" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" - [[package]] name = "crypto-mac" version = "0.7.0" @@ -724,19 +620,6 @@ dependencies = [ "winapi 0.3.8", ] -[[package]] -name = "curve25519-dalek" -version = "1.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b7dcd30ba50cdf88b55b033456138b7c0ac4afdc436d82e1b79f370f24cc66d" -dependencies = [ - "byteorder", - "clear_on_drop", - "digest", - "rand_core 0.3.1", - "subtle 2.2.2", -] - [[package]] name = "curve25519-dalek" version = "2.1.0" @@ -750,23 +633,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "data-encoding" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72aa14c04dfae8dd7d8a2b1cb7ca2152618cd01336dbfe704b8dcbf8d41dbd69" - -[[package]] -name = "derivative" -version = "2.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb582b60359da160a9477ee80f15c8d784c477e69c217ef2cdd4169c24ea380f" -dependencies = [ - "proc-macro2 1.0.17", - "quote 1.0.6", - "syn 1.0.27", -] - [[package]] name = "dialoguer" version = "0.6.2" @@ -778,12 +644,6 @@ dependencies = [ "tempfile", ] -[[package]] -name = "diff" -version = "0.1.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e25ea47919b1560c4e3b7fe0aaab9becf5b84a10325ddf7db0f0ba5e1026499" - [[package]] name = "difference" version = "2.0.0" @@ -808,17 +668,6 @@ dependencies = [ "walkdir", ] -[[package]] -name = "dirs" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fd78930633bd1c6e35c4b42b1df7b0cbc6bc191146e512bb3bedf243fcc3901" -dependencies = [ - "libc", - "redox_users", - "winapi 0.3.8", -] - [[package]] name = "dirs" version = "2.0.2" @@ -870,18 +719,6 @@ version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10" -[[package]] -name = "docopt" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f525a586d310c87df72ebcd98009e57f1cc030c8c268305287a476beb653969" -dependencies = [ - "lazy_static", - "regex", - "serde", - "strsim 0.9.3", -] - [[package]] name = "dtoa" version = "0.4.5" @@ -895,7 +732,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "978710b352437433c97b2bff193f2fb1dfd58a093f863dd95e225a19baa599a2" dependencies = [ "clear_on_drop", - "curve25519-dalek 2.1.0", + "curve25519-dalek", "rand 0.7.3", "serde", "sha2", @@ -907,15 +744,6 @@ version = "1.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bb1f6b1ce1c140482ea30ddd3335fc0024ac7ee112895426e0a629a6c20adfe3" -[[package]] -name = "ena" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8944dc8fa28ce4a38f778bd46bf7d923fe73eed5a439398507246c8e017e6f36" -dependencies = [ - "log 0.4.8", -] - [[package]] name = "encode_unicode" version = "0.3.6" @@ -931,12 +759,6 @@ dependencies = [ "cfg-if", ] -[[package]] -name = "endian-type" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c34f04666d835ff5d62e058c3995147c06f42fe86ff053337632bca83e42702d" - [[package]] name = "env_logger" version = "0.7.1" @@ -950,27 +772,6 @@ dependencies = [ "termcolor", ] -[[package]] -name = "errno" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b480f641ccf0faf324e20c1d3e53d81b7484c698b42ea677f6907ae4db195371" -dependencies = [ - "errno-dragonfly", - "libc", - "winapi 0.3.8", -] - -[[package]] -name = "errno-dragonfly" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14ca354e36190500e1e1fb267c647932382b54053c50b14970856c0b00a35067" -dependencies = [ - "gcc", - "libc", -] - [[package]] name = "failure" version = "0.1.8" @@ -1026,12 +827,6 @@ dependencies = [ "winapi 0.3.8", ] -[[package]] -name = "fixedbitset" -version = "0.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86d4de0081402f5e88cdac65c8dcdcc73118c1a7a465e2a05f0da05843a8ea33" - [[package]] name = "flate2" version = "1.0.14" @@ -1175,12 +970,6 @@ dependencies = [ "slab", ] -[[package]] -name = "gcc" -version = "0.3.55" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f5f3913fa0bfe7ee1fd8248b6b9f42a5af4b9d65ec2dd2c3c26132b950ecfc2" - [[package]] name = "generic-array" version = "0.12.3" @@ -1201,28 +990,6 @@ dependencies = [ "version_check 0.9.2", ] -[[package]] -name = "get_if_addrs" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abddb55a898d32925f3148bd281174a68eeb68bbfd9a5938a57b18f506ee4ef7" -dependencies = [ - "c_linked_list", - "get_if_addrs-sys", - "libc", - "winapi 0.2.8", -] - -[[package]] -name = "get_if_addrs-sys" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d04f9fb746cf36b191c00f3ede8bde9c8e64f9f4b05ae2694a9ccf5e3f5ab48" -dependencies = [ - "gcc", - "libc", -] - [[package]] name = "gethostname" version = "0.2.1" @@ -1332,15 +1099,6 @@ dependencies = [ "byteorder", ] -[[package]] -name = "heck" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20564e78d53d2bb135c343b3f47714a56af2061f1c928fdb541dc7b9fdd94205" -dependencies = [ - "unicode-segmentation", -] - [[package]] name = "hermit-abi" version = "0.1.13" @@ -1350,24 +1108,12 @@ dependencies = [ "libc", ] -[[package]] -name = "hex" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "805026a5d0141ffc30abb3be3173848ad46a1b1664fe632428479619a3644d77" - [[package]] name = "hex" version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "644f9158b2f133fd50f5fb3242878846d9eb792e445c893805ff0e3824006e35" -[[package]] -name = "hex_fmt" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b07f60793ff0a4d9cef0f18e63b5357e06209987153a64648c972c1e5aff336f" - [[package]] name = "hidapi" version = "1.2.3" @@ -1622,15 +1368,6 @@ dependencies = [ "libc", ] -[[package]] -name = "itertools" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f56a2d0bc861f9165be4eb3442afd3c236d8a98afd426f65d92324ae1091a484" -dependencies = [ - "either", -] - [[package]] name = "itertools" version = "0.9.0" @@ -1806,12 +1543,6 @@ dependencies = [ "ws", ] -[[package]] -name = "keccak" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67c21572b4949434e4fc1e1978b99c5f77064153c59d998bf13ecd96fb5ecba7" - [[package]] name = "kernel32-sys" version = "0.2.2" @@ -1822,37 +1553,6 @@ dependencies = [ "winapi-build", ] -[[package]] -name = "lalrpop" -version = "0.17.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64dc3698e75d452867d9bd86f4a723f452ce9d01fe1d55990b79f0c790aa67db" -dependencies = [ - "ascii-canvas", - "atty", - "bit-set", - "diff", - "docopt", - "ena", - "itertools 0.8.2", - "lalrpop-util", - "petgraph", - "regex", - "regex-syntax", - "serde", - "serde_derive", - "sha2", - "string_cache", - "term 0.5.2", - "unicode-xid 0.1.0", -] - -[[package]] -name = "lalrpop-util" -version = "0.17.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c277d18683b36349ab5cd030158b54856fca6bb2d5dc5263b06288f486958b7c" - [[package]] name = "language-tags" version = "0.2.2" @@ -1944,12 +1644,6 @@ dependencies = [ "cfg-if", ] -[[package]] -name = "mach_o_sys" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e854583a83f20cf329bb9283366335387f7db59d640d1412167e05fedb98826" - [[package]] name = "matches" version = "0.1.8" @@ -1996,18 +1690,6 @@ dependencies = [ "autocfg 1.0.0", ] -[[package]] -name = "memsec" -version = "0.5.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0cb9280f8c37546661083aa45eb0318d8469253d31e87649faed25522428398e" -dependencies = [ - "getrandom", - "libc", - "mach_o_sys", - "winapi 0.3.8", -] - [[package]] name = "mime" version = "0.2.6" @@ -2096,18 +1778,6 @@ dependencies = [ "ws2_32-sys", ] -[[package]] -name = "mirai-annotations" -version = "1.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "258c143ddb5105becc4834f66d0b0ad3d3205d07cb3efc3236f33f623dd07b16" - -[[package]] -name = "multimap" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2eb04b9f127583ed176e163fb9ec6f3e793b87e21deedd5734a69386a18a0151" - [[package]] name = "native-tls" version = "0.2.4" @@ -2137,18 +1807,6 @@ dependencies = [ "winapi 0.3.8", ] -[[package]] -name = "new_debug_unreachable" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4a24736216ec316047a1fc4252e27dabb04218aa4a3f37c6e7ddbf1f9782b54" - -[[package]] -name = "nibble_vec" -version = "0.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8d77f3db4bce033f4d04db08079b2ef1c3d02b44e86f25d08886fafa7756ffa" - [[package]] name = "nix" version = "0.17.0" @@ -2232,28 +1890,6 @@ dependencies = [ "libc", ] -[[package]] -name = "num_enum" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca565a7df06f3d4b485494f25ba05da1435950f4dc263440eda7a6fa9b8e36e4" -dependencies = [ - "derivative", - "num_enum_derive", -] - -[[package]] -name = "num_enum_derive" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffa5a33ddddfee04c0283a7653987d634e880347e96b5b2ed64de07efb59db9d" -dependencies = [ - "proc-macro-crate", - "proc-macro2 1.0.17", - "quote 1.0.6", - "syn 1.0.27", -] - [[package]] name = "number_prefix" version = "0.3.0" @@ -2314,74 +1950,6 @@ dependencies = [ "vcpkg", ] -[[package]] -name = "ordermap" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a86ed3f5f244b372d6b1a00b72ef7f8876d0bc6a78a4c9985c53614041512063" - -[[package]] -name = "owning_ref" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdf84f41639e037b484f93433aa3897863b561ed65c6e59c7073d7c561710f37" -dependencies = [ - "stable_deref_trait", -] - -[[package]] -name = "pairing" -version = "0.14.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ceda21136251c6d5a422d3d798d8ac22515a6e8d3521bb60c59a8349d36d0d57" -dependencies = [ - "byteorder", - "rand 0.4.6", -] - -[[package]] -name = "parity-multiaddr" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "045b3c7af871285146300da35b1932bb6e4639b66c7c98e85d06a32cbc4e8fa7" -dependencies = [ - "arrayref", - "bs58 0.2.5", - "byteorder", - "bytes 0.4.12", - "data-encoding", - "parity-multihash", - "percent-encoding 1.0.1", - "serde", - "unsigned-varint", - "url 1.7.2", -] - -[[package]] -name = "parity-multihash" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df3a17dc27848fd99e4f87eb0f8c9baba6ede0a6d555400c850ca45254ef4ce3" -dependencies = [ - "blake2", - "bytes 0.4.12", - "rand 0.6.5", - "sha-1", - "sha2", - "sha3", - "unsigned-varint", -] - -[[package]] -name = "parking_lot" -version = "0.4.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "149d8f5b97f3c1133e3cfcd8886449959e856b557ff281e292b733d7c69e005e" -dependencies = [ - "owning_ref", - "parking_lot_core 0.2.14", -] - [[package]] name = "parking_lot" version = "0.9.0" @@ -2403,18 +1971,6 @@ dependencies = [ "parking_lot_core 0.7.2", ] -[[package]] -name = "parking_lot_core" -version = "0.2.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4db1a8ccf734a7bce794cc19b3df06ed87ab2f3907036b693c68f56b4d4537fa" -dependencies = [ - "libc", - "rand 0.4.6", - "smallvec 0.6.13", - "winapi 0.3.8", -] - [[package]] name = "parking_lot_core" version = "0.6.2" @@ -2494,35 +2050,6 @@ version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e" -[[package]] -name = "petgraph" -version = "0.4.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c3659d1ee90221741f65dd128d9998311b0e40c5d3c23a62445938214abce4f" -dependencies = [ - "fixedbitset", - "ordermap", -] - -[[package]] -name = "phf_generator" -version = "0.7.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09364cc93c159b8b06b1f4dd8a4398984503483891b0c26b867cf431fb132662" -dependencies = [ - "phf_shared", - "rand 0.6.5", -] - -[[package]] -name = "phf_shared" -version = "0.7.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "234f71a15de2288bcb7e3b6515828d22af7ec8598ee6d24c3b526fa0a80b67a0" -dependencies = [ - "siphasher", -] - [[package]] name = "pickledb" version = "0.4.1" @@ -2586,12 +2113,6 @@ version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "237a5ed80e274dbc66f86bd59c1e25edc039660be53194b5fe0a482e0f2612ea" -[[package]] -name = "precomputed-hash" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" - [[package]] name = "predicates" version = "1.0.4" @@ -2633,32 +2154,6 @@ dependencies = [ "toml", ] -[[package]] -name = "proc-macro-error" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98e9e4b82e0ef281812565ea4751049f1bdcdfccda7d3f459f2e138a40c08678" -dependencies = [ - "proc-macro-error-attr", - "proc-macro2 1.0.17", - "quote 1.0.6", - "syn 1.0.27", - "version_check 0.9.2", -] - -[[package]] -name = "proc-macro-error-attr" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f5444ead4e9935abd7f27dc51f7e852a0569ac888096d5ec2499470794e2e53" -dependencies = [ - "proc-macro2 1.0.17", - "quote 1.0.6", - "syn 1.0.27", - "syn-mid", - "version_check 0.9.2", -] - [[package]] name = "proc-macro-hack" version = "0.5.16" @@ -2689,102 +2184,6 @@ dependencies = [ "unicode-xid 0.2.0", ] -[[package]] -name = "prometheus" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5567486d5778e2c6455b1b90ff1c558f29e751fc018130fa182e15828e728af1" -dependencies = [ - "cfg-if", - "fnv", - "lazy_static", - "quick-error", - "spin", -] - -[[package]] -name = "proptest" -version = "0.9.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01c477819b845fe023d33583ebf10c9f62518c8d79a0960ba5c36d6ac8a55a5b" -dependencies = [ - "bit-set", - "bitflags", - "byteorder", - "lazy_static", - "num-traits", - "quick-error", - "rand 0.6.5", - "rand_chacha 0.1.1", - "rand_xorshift", - "regex-syntax", - "rusty-fork", - "tempfile", -] - -[[package]] -name = "proptest-derive" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d31edb17edac73aeacc947bd61462dda15220584268896a58e12f053d767f15b" -dependencies = [ - "proc-macro2 0.4.30", - "quote 0.6.13", - "syn 0.15.44", -] - -[[package]] -name = "prost" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96d14b1c185652833d24aaad41c5832b0be5616a590227c1fbff57c616754b23" -dependencies = [ - "byteorder", - "bytes 0.4.12", - "prost-derive", -] - -[[package]] -name = "prost-build" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb788126ea840817128183f8f603dce02cb7aea25c2a0b764359d8e20010702e" -dependencies = [ - "bytes 0.4.12", - "heck", - "itertools 0.8.2", - "log 0.4.8", - "multimap", - "petgraph", - "prost", - "prost-types", - "tempfile", - "which 2.0.1", -] - -[[package]] -name = "prost-derive" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e7dc378b94ac374644181a2247cebf59a6ec1c88b49ac77f3a94b86b79d0e11" -dependencies = [ - "failure", - "itertools 0.8.2", - "proc-macro2 0.4.30", - "quote 0.6.13", - "syn 0.15.44", -] - -[[package]] -name = "prost-types" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1de482a366941c8d56d19b650fac09ca08508f2a696119ee7513ad590c8bac6f" -dependencies = [ - "bytes 0.4.12", - "prost", -] - [[package]] name = "quick-error" version = "1.2.3" @@ -2809,16 +2208,6 @@ dependencies = [ "proc-macro2 1.0.17", ] -[[package]] -name = "radix_trie" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d3681b28cd95acfb0560ea9441f82d6a4504fa3b15b97bd7b6e952131820e95" -dependencies = [ - "endian-type", - "nibble_vec", -] - [[package]] name = "rand" version = "0.4.6" @@ -2846,7 +2235,7 @@ dependencies = [ "rand_isaac", "rand_jitter", "rand_os", - "rand_pcg 0.1.2", + "rand_pcg", "rand_xorshift", "winapi 0.3.8", ] @@ -2862,26 +2251,6 @@ dependencies = [ "rand_chacha 0.2.2", "rand_core 0.5.1", "rand_hc 0.2.0", - "rand_pcg 0.2.1", -] - -[[package]] -name = "rand04" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58595cc8bb12add45412667f9b422d5a9842d61d36e8607bc7c84ff738bf9263" -dependencies = [ - "rand 0.4.6", -] - -[[package]] -name = "rand04_compat" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e4cc0eb4bbb0cbc6c2a8081aa11303b9520369eea474cf865f7b7e3f11b284b" -dependencies = [ - "rand 0.6.5", - "rand04", ] [[package]] @@ -2990,15 +2359,6 @@ dependencies = [ "rand_core 0.4.2", ] -[[package]] -name = "rand_pcg" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16abd0c1b639e9eb4d7c50c0b8100b0d0f849be2349829c740fe8e6eb4816429" -dependencies = [ - "rand_core 0.5.1", -] - [[package]] name = "rand_xorshift" version = "0.1.1" @@ -3115,27 +2475,6 @@ dependencies = [ "winapi 0.3.8", ] -[[package]] -name = "rental" -version = "0.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8545debe98b2b139fb04cad8618b530e9b07c152d99a5de83c860b877d67847f" -dependencies = [ - "rental-impl", - "stable_deref_trait", -] - -[[package]] -name = "rental-impl" -version = "0.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "475e68978dc5b743f2f40d8e0a8fdc83f1c5e78cbf4b8fa5e74e73beebc340de" -dependencies = [ - "proc-macro2 1.0.17", - "quote 1.0.6", - "syn 1.0.27", -] - [[package]] name = "reqwest" version = "0.10.6" @@ -3264,18 +2603,6 @@ dependencies = [ "syn 1.0.27", ] -[[package]] -name = "rusty-fork" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3dd93264e10c577503e926bd1430193eeb5d21b059148910082245309b424fae" -dependencies = [ - "fnv", - "quick-error", - "tempfile", - "wait-timeout", -] - [[package]] name = "ryu" version = "1.0.4" @@ -3507,19 +2834,6 @@ dependencies = [ "opaque-debug", ] -[[package]] -name = "sha3" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd26bc0e7a2e3a7c959bc494caf58b72ee0c71d67704e9520f736ca7e4853ecf" -dependencies = [ - "block-buffer", - "byte-tools", - "digest", - "keccak", - "opaque-debug", -] - [[package]] name = "shlex" version = "0.1.1" @@ -3546,87 +2860,12 @@ dependencies = [ "libc", ] -[[package]] -name = "siphasher" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b8de496cf83d4ed58b6be86c3a275b8602f6ffe98d3024a869e124147a9a3ac" - [[package]] name = "slab" version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8" -[[package]] -name = "slog" -version = "2.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cc9c640a4adbfbcc11ffb95efe5aa7af7309e002adab54b185507dbf2377b99" - -[[package]] -name = "slog-async" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51b3336ce47ce2f96673499fc07eb85e3472727b9a7a2959964b002c2ce8fbbb" -dependencies = [ - "crossbeam-channel", - "slog", - "take_mut", - "thread_local", -] - -[[package]] -name = "slog-envlogger" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "906a1a0bc43fed692df4b82a5e2fbfc3733db8dad8bb514ab27a4f23ad04f5c0" -dependencies = [ - "log 0.4.8", - "regex", - "slog", - "slog-async", - "slog-scope", - "slog-stdlog", - "slog-term", -] - -[[package]] -name = "slog-scope" -version = "4.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c44c89dd8b0ae4537d1ae318353eaf7840b4869c536e31c41e963d1ea523ee6" -dependencies = [ - "arc-swap", - "lazy_static", - "slog", -] - -[[package]] -name = "slog-stdlog" -version = "4.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be4d87903baf655da2d82bc3ac3f7ef43868c58bf712b3a661fda72009304c23" -dependencies = [ - "crossbeam", - "log 0.4.8", - "slog", - "slog-scope", -] - -[[package]] -name = "slog-term" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "124501187c410b6a46fe8a47a48435ae462fae4e02d03c558d358f40b17308cb" -dependencies = [ - "atty", - "chrono", - "slog", - "term 0.6.1", - "thread_local", -] - [[package]] name = "smallvec" version = "0.6.13" @@ -3660,7 +2899,7 @@ version = "1.3.0" dependencies = [ "Inflector", "bincode", - "bs58 0.3.1", + "bs58", "lazy_static", "serde", "serde_derive", @@ -3712,7 +2951,7 @@ name = "solana-bench-exchange" version = "1.3.0" dependencies = [ "clap", - "itertools 0.9.0", + "itertools", "log 0.4.8", "num-derive 0.3.0", "num-traits", @@ -3764,12 +3003,10 @@ dependencies = [ "solana-core", "solana-faucet", "solana-genesis", - "solana-librapay", "solana-local-cluster", "solana-logger", "solana-measure", "solana-metrics", - "solana-move-loader-program", "solana-net-utils", "solana-runtime", "solana-sdk 1.3.0", @@ -3798,7 +3035,7 @@ name = "solana-btc-spv-program" version = "1.3.0" dependencies = [ "bincode", - "hex 0.4.2", + "hex", "log 0.4.8", "num-derive 0.3.0", "num-traits", @@ -3843,13 +3080,13 @@ version = "1.3.0" dependencies = [ "Inflector", "bincode", - "bs58 0.3.1", + "bs58", "chrono", "clap", "console", "criterion-stats", "ctrlc", - "dirs 2.0.2", + "dirs", "humantime 2.0.1", "indicatif", "log 0.4.8", @@ -3886,7 +3123,7 @@ dependencies = [ name = "solana-cli-config" version = "1.3.0" dependencies = [ - "dirs 2.0.2", + "dirs", "lazy_static", "serde", "serde_derive", @@ -3900,7 +3137,7 @@ version = "1.3.0" dependencies = [ "assert_matches", "bincode", - "bs58 0.3.1", + "bs58", "indicatif", "jsonrpc-core", "jsonrpc-http-server", @@ -3939,7 +3176,7 @@ name = "solana-core" version = "1.3.0" dependencies = [ "bincode", - "bs58 0.3.1", + "bs58", "bv", "byteorder", "chrono", @@ -3949,7 +3186,7 @@ dependencies = [ "flate2", "fs_extra", "indexmap", - "itertools 0.9.0", + "itertools", "jsonrpc-core", "jsonrpc-core-client", "jsonrpc-derive", @@ -4014,7 +3251,7 @@ dependencies = [ "backtrace", "bytes 0.4.12", "cc", - "curve25519-dalek 2.1.0", + "curve25519-dalek", "ed25519-dalek", "either", "failure", @@ -4168,7 +3405,7 @@ dependencies = [ "clap", "console", "ctrlc", - "dirs 2.0.2", + "dirs", "indicatif", "lazy_static", "nix", @@ -4194,9 +3431,9 @@ dependencies = [ name = "solana-keygen" version = "1.3.0" dependencies = [ - "bs58 0.3.1", + "bs58", "clap", - "dirs 2.0.2", + "dirs", "num_cpus", "solana-clap-utils", "solana-cli-config", @@ -4219,7 +3456,7 @@ dependencies = [ "dlopen_derive", "ed25519-dalek", "fs_extra", - "itertools 0.9.0", + "itertools", "lazy_static", "libc", "log 0.4.8", @@ -4256,7 +3493,7 @@ name = "solana-ledger-tool" version = "1.3.0" dependencies = [ "assert_cmd", - "bs58 0.3.1", + "bs58", "bytecount", "clap", "histogram", @@ -4278,25 +3515,12 @@ dependencies = [ "tempfile", ] -[[package]] -name = "solana-librapay" -version = "1.3.0" -dependencies = [ - "bincode", - "log 0.4.8", - "solana-logger", - "solana-move-loader-program", - "solana-runtime", - "solana-sdk 1.3.0", - "solana_libra_types", -] - [[package]] name = "solana-local-cluster" version = "1.3.0" dependencies = [ "assert_matches", - "itertools 0.9.0", + "itertools", "log 0.4.8", "rand 0.7.3", "serial_test", @@ -4357,7 +3581,7 @@ name = "solana-merkle-tree" version = "1.3.0" dependencies = [ "fast-math", - "hex 0.4.2", + "hex", "solana-sdk 1.3.0", ] @@ -4376,35 +3600,6 @@ dependencies = [ "solana-sdk 1.3.0", ] -[[package]] -name = "solana-move-loader-program" -version = "1.3.0" -dependencies = [ - "bincode", - "indexmap", - "log 0.4.8", - "num-derive 0.3.0", - "num-traits", - "serde", - "serde_bytes", - "serde_derive", - "serde_json", - "solana-logger", - "solana-sdk 1.3.0", - "solana_libra_bytecode_verifier", - "solana_libra_canonical_serialization", - "solana_libra_compiler", - "solana_libra_failure_ext", - "solana_libra_state_view", - "solana_libra_stdlib", - "solana_libra_types", - "solana_libra_vm", - "solana_libra_vm_cache_map", - "solana_libra_vm_runtime", - "solana_libra_vm_runtime_types", - "thiserror", -] - [[package]] name = "solana-net-shaper" version = "1.3.0" @@ -4473,7 +3668,7 @@ name = "solana-perf" version = "1.3.0" dependencies = [ "bincode", - "curve25519-dalek 2.1.0", + "curve25519-dalek", "dlopen", "dlopen_derive", "lazy_static", @@ -4567,7 +3762,7 @@ dependencies = [ "flate2", "fnv", "fs_extra", - "itertools 0.9.0", + "itertools", "lazy_static", "libc", "libloading 0.6.2", @@ -4614,11 +3809,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3869d4a4784d10fc0db91fc666a7ccb916fd47e74636e37c328df5a3b7f8157f" dependencies = [ "bincode", - "bs58 0.3.1", + "bs58", "bv", - "hex 0.4.2", + "hex", "hmac", - "itertools 0.9.0", + "itertools", "log 0.4.8", "num-derive 0.3.0", "num-traits", @@ -4637,15 +3832,15 @@ version = "1.3.0" dependencies = [ "assert_matches", "bincode", - "bs58 0.3.1", + "bs58", "bv", "byteorder", "chrono", "ed25519-dalek", "generic-array 0.14.3", - "hex 0.4.2", + "hex", "hmac", - "itertools 0.9.0", + "itertools", "log 0.4.8", "memmap", "num-derive 0.3.0", @@ -4674,7 +3869,7 @@ version = "1.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3fba494b48ee7d1b1c9cfd2df292d9dad69ccfd1f2b107eb030e29601cc4103" dependencies = [ - "bs58 0.3.1", + "bs58", "proc-macro2 1.0.17", "quote 1.0.6", "syn 1.0.27", @@ -4684,7 +3879,7 @@ dependencies = [ name = "solana-sdk-macro" version = "1.3.0" dependencies = [ - "bs58 0.3.1", + "bs58", "proc-macro2 1.0.17", "quote 1.0.6", "rustversion", @@ -4819,7 +4014,7 @@ dependencies = [ "clap", "console", "csv", - "dirs 2.0.2", + "dirs", "indexmap", "indicatif", "pickledb", @@ -4843,7 +4038,7 @@ version = "1.3.0" dependencies = [ "Inflector", "bincode", - "bs58 0.3.1", + "bs58", "lazy_static", "serde", "serde_derive", @@ -4974,349 +4169,6 @@ dependencies = [ "solana-vote-program", ] -[[package]] -name = "solana_libra_bytecode_verifier" -version = "0.0.1-sol5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd72dfd0637c9f15ec52ef5739d92594ba38ad0e644720e882b28f85afef1132" -dependencies = [ - "mirai-annotations", - "petgraph", - "solana_libra_failure_ext", - "solana_libra_types", - "solana_libra_vm", - "solana_libra_vm_runtime_types", -] - -[[package]] -name = "solana_libra_canonical_serialization" -version = "0.0.1-sol5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4fe30d99c623682886f986147887f7b5b14f6ac290da5801163beb22f42ad1f" -dependencies = [ - "byteorder", - "solana_libra_failure_ext", -] - -[[package]] -name = "solana_libra_compiler" -version = "0.0.1-sol5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72384762bc7e859c7ac8a45dbf3e29b2913467a45d3e015982ec676e72181c22" -dependencies = [ - "serde_json", - "solana_libra_bytecode_verifier", - "solana_libra_failure_ext", - "solana_libra_ir_to_bytecode", - "solana_libra_stdlib", - "solana_libra_types", - "solana_libra_vm", - "structopt", -] - -[[package]] -name = "solana_libra_config" -version = "0.0.1-sol5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0f419b7ea9bc1689c774c695ede05b4c285030a948b09fad0fadb7b0631600e" -dependencies = [ - "get_if_addrs", - "hex 0.3.2", - "mirai-annotations", - "parity-multiaddr", - "prost", - "rand 0.7.3", - "serde", - "solana_libra_crypto", - "solana_libra_failure_ext", - "solana_libra_logger", - "solana_libra_tools", - "solana_libra_types", - "toml", -] - -[[package]] -name = "solana_libra_crypto" -version = "0.0.1-sol5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bf6484e75e14d60d018408fe1f6b7a7b3b46814638935b145f1a3cb16eb3ec9" -dependencies = [ - "bincode", - "byteorder", - "bytes 0.4.12", - "curve25519-dalek 1.2.3", - "digest", - "ed25519-dalek", - "hex 0.3.2", - "hmac", - "lazy_static", - "pairing", - "proptest", - "proptest-derive", - "rand 0.7.3", - "serde", - "sha2", - "sha3", - "solana_libra_canonical_serialization", - "solana_libra_crypto-derive", - "solana_libra_failure_ext", - "solana_libra_nibble", - "threshold_crypto", - "tiny-keccak", - "x25519-dalek", -] - -[[package]] -name = "solana_libra_crypto-derive" -version = "0.0.1-sol5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67801085b6adee0d30caa77d126bbceafa4b9bb8f4c7871e29638faa20dcd8b1" -dependencies = [ - "proc-macro2 1.0.17", - "quote 1.0.6", - "syn 1.0.27", -] - -[[package]] -name = "solana_libra_failure_ext" -version = "0.0.1-sol5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "855b1630e51456c58cb73ff6182b61a40c500dcaf5512ccf359a461225b58511" -dependencies = [ - "failure", - "solana_libra_failure_macros", -] - -[[package]] -name = "solana_libra_failure_macros" -version = "0.0.1-sol5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bf1d38966c68be541232f166205f352f16defd665f50d6db1f1736872d716af" - -[[package]] -name = "solana_libra_ir_to_bytecode" -version = "0.0.1-sol5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8b20477a89c89fc10b18b5f6d01f2c8d58c363e49a6b8db208152825622c051" -dependencies = [ - "codespan", - "codespan-reporting", - "lalrpop-util", - "log 0.4.8", - "solana_libra_failure_ext", - "solana_libra_ir_to_bytecode_syntax", - "solana_libra_types", - "solana_libra_vm", -] - -[[package]] -name = "solana_libra_ir_to_bytecode_syntax" -version = "0.0.1-sol5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99492e984c4f283b561385d5bb15a63bdf55e8f741477e00f8e57b8934749bd0" -dependencies = [ - "codespan", - "hex 0.3.2", - "lalrpop", - "lalrpop-util", - "lazy_static", - "regex", - "solana_libra_failure_ext", - "solana_libra_types", -] - -[[package]] -name = "solana_libra_logger" -version = "0.0.1-sol5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62fb1d124421fda39a5d872c8b5add50ce7cf43a88505e0aea702a575127a3c8" -dependencies = [ - "backtrace", - "chrono", - "itertools 0.8.2", - "lazy_static", - "rand 0.7.3", - "rand_core 0.5.1", - "serde", - "serde_json", - "slog", - "slog-async", - "slog-envlogger", - "slog-scope", - "slog-term", - "thread-id", -] - -[[package]] -name = "solana_libra_metrics" -version = "0.0.1-sol5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94edebdee2305eabf8ccd7571eecaaa4328d4aba493c3a3e988db67230a8a8c4" -dependencies = [ - "futures", - "hyper 0.12.35", - "lazy_static", - "prometheus", - "serde_json", - "solana_libra_failure_ext", - "solana_libra_logger", -] - -[[package]] -name = "solana_libra_nibble" -version = "0.0.1-sol5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8f40b8a06a508a618a23be932d07c2dc0a87a152f98dafc451d1bedb3a9c0c8" -dependencies = [ - "proptest", - "serde", -] - -[[package]] -name = "solana_libra_proptest_helpers" -version = "0.0.1-sol5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e098b96303a5fc002a12f67692fd9271372d86fd0a82774153933324125567e2" -dependencies = [ - "crossbeam", - "proptest", - "proptest-derive", -] - -[[package]] -name = "solana_libra_state_view" -version = "0.0.1-sol5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cd9ace92273edf4f681d6a9dcb93ed8f444e0a4db45efc3ffd26ff35eea4051" -dependencies = [ - "solana_libra_failure_ext", - "solana_libra_types", -] - -[[package]] -name = "solana_libra_stdlib" -version = "0.0.1-sol5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c56b6211942fba07b187288fa22ff6bce829337c3982427431501edab017bfd4" -dependencies = [ - "lazy_static", - "solana_libra_bytecode_verifier", - "solana_libra_ir_to_bytecode", - "solana_libra_types", -] - -[[package]] -name = "solana_libra_tools" -version = "0.0.1-sol5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3415a2dd54cfe45a58639cac065c285a86bf31364e4a944d6ff9ff37b87a05e" -dependencies = [ - "hex 0.3.2", - "rand 0.7.3", -] - -[[package]] -name = "solana_libra_types" -version = "0.0.1-sol5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4524f25618443c6e1081bd141d9cf76fb76471c8da8dcd8c6e5057a0cd331b7" -dependencies = [ - "bech32", - "byteorder", - "bytes 0.4.12", - "chrono", - "hex 0.3.2", - "itertools 0.8.2", - "lazy_static", - "num_enum", - "proptest", - "proptest-derive", - "prost", - "prost-build", - "radix_trie", - "rand 0.7.3", - "serde", - "solana_libra_canonical_serialization", - "solana_libra_crypto", - "solana_libra_failure_ext", - "solana_libra_logger", - "solana_libra_proptest_helpers", - "tiny-keccak", -] - -[[package]] -name = "solana_libra_vm" -version = "0.0.1-sol5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f970fd967e20709b9fa131a0764a91128fe8583859bc23cdf82b7a3e98ef3cd" -dependencies = [ - "byteorder", - "hex 0.3.2", - "lazy_static", - "mirai-annotations", - "proptest", - "proptest-derive", - "serde", - "solana_libra_canonical_serialization", - "solana_libra_crypto", - "solana_libra_failure_ext", - "solana_libra_proptest_helpers", - "solana_libra_types", -] - -[[package]] -name = "solana_libra_vm_cache_map" -version = "0.0.1-sol5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "332cdd6a4c4c1d72aee9fb495d190c7338cdaf38179a2d624b51e0e25bdc852d" -dependencies = [ - "chashmap", - "typed-arena", -] - -[[package]] -name = "solana_libra_vm_runtime" -version = "0.0.1-sol5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "804a1a7ce9fa28f3281a5cbb1d2747917d1a4d80f954243592da77389539a9ef" -dependencies = [ - "hex 0.3.2", - "lazy_static", - "mirai-annotations", - "prometheus", - "proptest", - "rayon", - "rental", - "solana_libra_bytecode_verifier", - "solana_libra_canonical_serialization", - "solana_libra_config", - "solana_libra_crypto", - "solana_libra_logger", - "solana_libra_metrics", - "solana_libra_state_view", - "solana_libra_types", - "solana_libra_vm", - "solana_libra_vm_cache_map", - "solana_libra_vm_runtime_types", -] - -[[package]] -name = "solana_libra_vm_runtime_types" -version = "0.0.1-sol5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "790621a290a17a41cec0883decc861b2102b5d4d9f638492bbc55613ea142e85" -dependencies = [ - "bit-vec", - "lazy_static", - "proptest", - "sha2", - "solana_libra_canonical_serialization", - "solana_libra_crypto", - "solana_libra_failure_ext", - "solana_libra_types", - "solana_libra_vm", -] - [[package]] name = "solana_rbpf" version = "0.1.28" @@ -5350,12 +4202,6 @@ dependencies = [ "solana-sdk 1.2.10", ] -[[package]] -name = "stable_deref_trait" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dba1a27d3efae4351c8051072d619e3ade2820635c3958d826bfea39d59b54c8" - [[package]] name = "string" version = "0.2.1" @@ -5365,76 +4211,12 @@ dependencies = [ "bytes 0.4.12", ] -[[package]] -name = "string_cache" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89c058a82f9fd69b1becf8c274f412281038877c553182f1d02eb027045a2d67" -dependencies = [ - "lazy_static", - "new_debug_unreachable", - "phf_shared", - "precomputed-hash", - "serde", - "string_cache_codegen", - "string_cache_shared", -] - -[[package]] -name = "string_cache_codegen" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0f45ed1b65bf9a4bf2f7b7dc59212d1926e9eaf00fa998988e420fd124467c6" -dependencies = [ - "phf_generator", - "phf_shared", - "proc-macro2 1.0.17", - "quote 1.0.6", - "string_cache_shared", -] - -[[package]] -name = "string_cache_shared" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1884d1bc09741d466d9b14e6d37ac89d6909cbcac41dd9ae982d4d063bbedfc" - [[package]] name = "strsim" version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" -[[package]] -name = "strsim" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6446ced80d6c486436db5c078dde11a9f73d42b57fb273121e160b84f63d894c" - -[[package]] -name = "structopt" -version = "0.3.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "863246aaf5ddd0d6928dfeb1a9ca65f505599e4e1b399935ef7e75107516b4ef" -dependencies = [ - "clap", - "lazy_static", - "structopt-derive", -] - -[[package]] -name = "structopt-derive" -version = "0.4.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d239ca4b13aee7a2142e6795cbd69e457665ff8037aed33b3effdc430d2f927a" -dependencies = [ - "heck", - "proc-macro-error", - "proc-macro2 1.0.17", - "quote 1.0.6", - "syn 1.0.27", -] - [[package]] name = "subtle" version = "1.0.0" @@ -5475,17 +4257,6 @@ dependencies = [ "unicode-xid 0.2.0", ] -[[package]] -name = "syn-mid" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7be3539f6c128a931cf19dcee741c1af532c7fd387baa739c03dd2e96479338a" -dependencies = [ - "proc-macro2 1.0.17", - "quote 1.0.6", - "syn 1.0.27", -] - [[package]] name = "synstructure" version = "0.12.3" @@ -5526,12 +4297,6 @@ dependencies = [ "winapi 0.3.8", ] -[[package]] -name = "take_mut" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f764005d11ee5f36500a149ace24e00e3da98b0158b3e2d53a7495660d3f4d60" - [[package]] name = "tar" version = "0.4.28" @@ -5568,27 +4333,6 @@ dependencies = [ "winapi 0.3.8", ] -[[package]] -name = "term" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edd106a334b7657c10b7c540a0106114feadeb4dc314513e97df481d5d966f42" -dependencies = [ - "byteorder", - "dirs 1.0.5", - "winapi 0.3.8", -] - -[[package]] -name = "term" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0863a3345e70f61d613eab32ee046ccd1bcc5f9105fe402c61fcd0c13eeb8b5" -dependencies = [ - "dirs 2.0.2", - "winapi 0.3.8", -] - [[package]] name = "termcolor" version = "1.1.0" @@ -5646,17 +4390,6 @@ dependencies = [ "syn 1.0.27", ] -[[package]] -name = "thread-id" -version = "3.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7fbf4c9d56b320106cd64fd024dadfa0be7cb4706725fc44a7d7ce952d820c1" -dependencies = [ - "libc", - "redox_syscall", - "winapi 0.3.8", -] - [[package]] name = "thread-scoped" version = "1.0.2" @@ -5672,26 +4405,6 @@ dependencies = [ "lazy_static", ] -[[package]] -name = "threshold_crypto" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95be1032c63011f20b01c5edb64930e2b51512782b43b458b1e3449613d70f87" -dependencies = [ - "byteorder", - "errno", - "failure", - "hex_fmt", - "log 0.4.8", - "memsec", - "pairing", - "rand 0.6.5", - "rand04_compat", - "rand_chacha 0.1.1", - "serde", - "tiny-keccak", -] - [[package]] name = "time" version = "0.1.43" @@ -5718,15 +4431,6 @@ dependencies = [ "unicode-normalization", ] -[[package]] -name = "tiny-keccak" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d8a021c69bb74a44ccedb824a046447e2c84a01df9e5c20779750acb38e11b2" -dependencies = [ - "crunchy", -] - [[package]] name = "tokio" version = "0.1.22" @@ -6043,12 +4747,6 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1410f6f91f21d1612654e7cc69193b0334f909dcf2c790c4826254fbb86f8887" -[[package]] -name = "typed-arena" -version = "1.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9b2228007eba4120145f785df0f6c92ea538f5a3635a612ecf4e334c8c1446d" - [[package]] name = "typenum" version = "1.12.0" @@ -6091,12 +4789,6 @@ dependencies = [ "smallvec 1.4.0", ] -[[package]] -name = "unicode-segmentation" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e83e153d1053cbb5a118eeff7fd5be06ed99153f00dbcd8ae310c5fb2b22edc0" - [[package]] name = "unicode-width" version = "0.1.7" @@ -6124,12 +4816,6 @@ dependencies = [ "libc", ] -[[package]] -name = "unsigned-varint" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7f0023a96687fe169081e8adce3f65e3874426b7886e9234d490af2dc077959" - [[package]] name = "untrusted" version = "0.7.1" @@ -6395,16 +5081,6 @@ dependencies = [ "tokio-tls", ] -[[package]] -name = "which" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b57acb10231b9493c8472b20cb57317d0679a49e0bdbee44b3b803a6473af164" -dependencies = [ - "failure", - "libc", -] - [[package]] name = "which" version = "3.1.1" @@ -6494,17 +5170,6 @@ dependencies = [ "winapi-build", ] -[[package]] -name = "x25519-dalek" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "637ff90c9540fa3073bb577e65033069e4bae7c79d49d74aa3ffdf5342a53217" -dependencies = [ - "curve25519-dalek 2.1.0", - "rand_core 0.5.1", - "zeroize", -] - [[package]] name = "xattr" version = "0.2.2" @@ -6528,21 +5193,6 @@ name = "zeroize" version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3cbac2ed2ba24cc90f5e06485ac8c7c1e5449fe8911aef4d8877218af021a5b8" -dependencies = [ - "zeroize_derive", -] - -[[package]] -name = "zeroize_derive" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de251eec69fc7c1bc3923403d18ececb929380e016afe103da75f396704f8ca2" -dependencies = [ - "proc-macro2 1.0.17", - "quote 1.0.6", - "syn 1.0.27", - "synstructure", -] [[package]] name = "zstd" @@ -6571,6 +5221,6 @@ checksum = "b89249644df056b522696b1bb9e7c18c87e8ffa3e2f0dc3b0155875d6498f01b" dependencies = [ "cc", "glob", - "itertools 0.9.0", + "itertools", "libc", ] diff --git a/Cargo.toml b/Cargo.toml index b103370ce..ae7b44a13 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -66,6 +66,4 @@ members = [ exclude = [ "programs/bpf", - "programs/move_loader", - "programs/librapay", ] diff --git a/bench-tps/Cargo.toml b/bench-tps/Cargo.toml index ac3f388c0..fc3b205e8 100644 --- a/bench-tps/Cargo.toml +++ b/bench-tps/Cargo.toml @@ -19,14 +19,12 @@ solana-core = { path = "../core", version = "1.3.0" } solana-genesis = { path = "../genesis", version = "1.3.0" } solana-client = { path = "../client", version = "1.3.0" } solana-faucet = { path = "../faucet", version = "1.3.0" } -solana-librapay = { path = "../programs/librapay", version = "1.3.0", optional = true } solana-logger = { path = "../logger", version = "1.3.0" } solana-metrics = { path = "../metrics", version = "1.3.0" } solana-measure = { path = "../measure", version = "1.3.0" } solana-net-utils = { path = "../net-utils", version = "1.3.0" } solana-runtime = { path = "../runtime", version = "1.3.0" } solana-sdk = { path = "../sdk", version = "1.3.0" } -solana-move-loader-program = { path = "../programs/move_loader", version = "1.3.0", optional = true } solana-version = { path = "../version", version = "1.3.0" } [dev-dependencies] @@ -34,8 +32,5 @@ serial_test = "0.4.0" serial_test_derive = "0.4.0" solana-local-cluster = { path = "../local-cluster", version = "1.3.0" } -[features] -move = ["solana-librapay", "solana-move-loader-program"] - [package.metadata.docs.rs] targets = ["x86_64-unknown-linux-gnu"] diff --git a/bench-tps/src/bench.rs b/bench-tps/src/bench.rs index ec7b17676..dea4d9507 100644 --- a/bench-tps/src/bench.rs +++ b/bench-tps/src/bench.rs @@ -4,8 +4,6 @@ use rayon::prelude::*; use solana_client::perf_utils::{sample_txs, SampleStats}; use solana_core::gen_keys::GenKeys; use solana_faucet::faucet::request_airdrop_transaction; -#[cfg(feature = "move")] -use solana_librapay::{create_genesis, upload_mint_script, upload_payment_script}; use solana_measure::measure::Measure; use solana_metrics::{self, datapoint_info}; use solana_sdk::{ @@ -37,9 +35,6 @@ use std::{ const MAX_TX_QUEUE_AGE: u64 = MAX_PROCESSING_AGE as u64 * DEFAULT_TICKS_PER_SLOT / DEFAULT_TICKS_PER_SECOND; -#[cfg(feature = "move")] -use solana_librapay::librapay_transaction; - pub const MAX_SPENDS_PER_TX: u64 = 4; #[derive(Debug)] @@ -51,8 +46,6 @@ pub type Result = std::result::Result; pub type SharedTransactions = Arc>>>; -type LibraKeys = (Keypair, Pubkey, Pubkey, Vec); - fn get_recent_blockhash(client: &T) -> (Hash, FeeCalculator) { loop { match client.get_recent_blockhash_with_commitment(CommitmentConfig::recent()) { @@ -122,7 +115,6 @@ fn generate_chunked_transfers( threads: usize, duration: Duration, sustained: bool, - libra_args: Option, ) { // generate and send transactions for the specified duration let start = Instant::now(); @@ -137,7 +129,6 @@ fn generate_chunked_transfers( &dest_keypair_chunks[chunk_index], threads, reclaim_lamports_back_to_source_account, - &libra_args, ); // In sustained mode, overlap the transfers with generation. This has higher average @@ -205,12 +196,7 @@ where .collect() } -pub fn do_bench_tps( - client: Arc, - config: Config, - gen_keypairs: Vec, - libra_args: Option, -) -> u64 +pub fn do_bench_tps(client: Arc, config: Config, gen_keypairs: Vec) -> u64 where T: 'static + Client + Send + Sync, { @@ -294,7 +280,6 @@ where threads, duration, sustained, - libra_args, ); // Stop the sampling threads so it will collect the stats @@ -340,52 +325,6 @@ fn metrics_submit_lamport_balance(lamport_balance: u64) { ); } -#[cfg(feature = "move")] -fn generate_move_txs( - source: &[&Keypair], - dest: &VecDeque<&Keypair>, - reclaim: bool, - move_keypairs: &[Keypair], - libra_pay_program_id: &Pubkey, - libra_mint_id: &Pubkey, - blockhash: &Hash, -) -> Vec<(Transaction, u64)> { - let count = move_keypairs.len() / 2; - let source_move = &move_keypairs[..count]; - let dest_move = &move_keypairs[count..]; - let pairs: Vec<_> = if !reclaim { - source_move - .iter() - .zip(dest_move.iter()) - .zip(source.iter()) - .collect() - } else { - dest_move - .iter() - .zip(source_move.iter()) - .zip(dest.iter()) - .collect() - }; - - pairs - .par_iter() - .map(|((from, to), payer)| { - ( - librapay_transaction::transfer( - libra_pay_program_id, - libra_mint_id, - &payer, - &from, - &to.pubkey(), - 1, - *blockhash, - ), - timestamp(), - ) - }) - .collect() -} - fn generate_system_txs( source: &[&Keypair], dest: &VecDeque<&Keypair>, @@ -416,7 +355,6 @@ fn generate_txs( dest: &VecDeque<&Keypair>, threads: usize, reclaim: bool, - libra_args: &Option, ) { let blockhash = *blockhash.read().unwrap(); let tx_count = source.len(); @@ -426,33 +364,7 @@ fn generate_txs( ); let signing_start = Instant::now(); - let transactions = if let Some(( - _libra_genesis_keypair, - _libra_pay_program_id, - _libra_mint_program_id, - _libra_keys, - )) = libra_args - { - #[cfg(not(feature = "move"))] - { - return; - } - - #[cfg(feature = "move")] - { - generate_move_txs( - source, - dest, - reclaim, - &_libra_keys, - _libra_pay_program_id, - &_libra_genesis_keypair.pubkey(), - &blockhash, - ) - } - } else { - generate_system_txs(source, dest, reclaim, &blockhash) - }; + let transactions = generate_system_txs(source, dest, reclaim, &blockhash); let duration = signing_start.elapsed(); let ns = duration.as_secs() * 1_000_000_000 + u64::from(duration.subsec_nanos()); @@ -954,181 +866,13 @@ pub fn generate_keypairs(seed_keypair: &Keypair, count: u64) -> (Vec, u (rnd.gen_n_keypairs(total_keys), extra) } -#[cfg(feature = "move")] -fn fund_move_keys( - client: &T, - funding_key: &Keypair, - keypairs: &[Keypair], - total: u64, - libra_pay_program_id: &Pubkey, - libra_mint_program_id: &Pubkey, - libra_genesis_key: &Keypair, -) { - let (mut blockhash, _fee_calculator) = get_recent_blockhash(client); - - info!("creating the libra funding account.."); - let libra_funding_key = Keypair::new(); - let tx = librapay_transaction::create_account(funding_key, &libra_funding_key, 1, blockhash); - client - .send_and_confirm_message(&[funding_key, &libra_funding_key], tx.message) - .unwrap(); - - info!("minting to funding keypair"); - let tx = librapay_transaction::mint_tokens( - &libra_mint_program_id, - funding_key, - libra_genesis_key, - &libra_funding_key.pubkey(), - total, - blockhash, - ); - client - .send_and_confirm_message(&[funding_key, libra_genesis_key], tx.message) - .unwrap(); - - info!("creating {} move accounts...", keypairs.len()); - let total_len = keypairs.len(); - let create_len = 5; - let mut funding_time = Measure::start("funding_time"); - for (i, keys) in keypairs.chunks(create_len).enumerate() { - if client - .get_balance_with_commitment(&keys[0].pubkey(), CommitmentConfig::recent()) - .unwrap_or(0) - > 0 - { - // already created these accounts. - break; - } - - let keypairs: Vec<_> = keys.iter().map(|k| k).collect(); - let tx = librapay_transaction::create_accounts(funding_key, &keypairs, 1, blockhash); - let ser_size = bincode::serialized_size(&tx).unwrap(); - let mut keys = vec![funding_key]; - keys.extend(&keypairs); - client.send_and_confirm_message(&keys, tx.message).unwrap(); - - if i % 10 == 0 { - info!( - "created {} accounts of {} (size {})", - i, - total_len / create_len, - ser_size, - ); - } - } - - const NUM_FUNDING_KEYS: usize = 10; - let funding_keys: Vec<_> = (0..NUM_FUNDING_KEYS).map(|_| Keypair::new()).collect(); - let pubkey_amounts: Vec<_> = funding_keys - .iter() - .map(|key| (key.pubkey(), total / NUM_FUNDING_KEYS as u64)) - .collect(); - let instructions = system_instruction::transfer_many(&funding_key.pubkey(), &pubkey_amounts); - let message = Message::new(&instructions, Some(&funding_key.pubkey())); - let tx = Transaction::new(&[funding_key], message, blockhash); - client - .send_and_confirm_message(&[funding_key], tx.message) - .unwrap(); - let mut balance = 0; - for _ in 0..20 { - if let Ok(balance_) = client - .get_balance_with_commitment(&funding_keys[0].pubkey(), CommitmentConfig::recent()) - { - if balance_ > 0 { - balance = balance_; - break; - } - } - sleep(Duration::from_millis(100)); - } - assert!(balance > 0); - info!( - "funded multiple funding accounts with {:?} lanports", - balance - ); - - let libra_funding_keys: Vec<_> = (0..NUM_FUNDING_KEYS).map(|_| Keypair::new()).collect(); - for (i, key) in libra_funding_keys.iter().enumerate() { - let tx = librapay_transaction::create_account(&funding_keys[i], &key, 1, blockhash); - client - .send_and_confirm_message(&[&funding_keys[i], &key], tx.message) - .unwrap(); - - let tx = librapay_transaction::transfer( - libra_pay_program_id, - &libra_genesis_key.pubkey(), - &funding_keys[i], - &libra_funding_key, - &key.pubkey(), - total / NUM_FUNDING_KEYS as u64, - blockhash, - ); - client - .send_and_confirm_message(&[&funding_keys[i], &libra_funding_key], tx.message) - .unwrap(); - - info!("funded libra funding key {}", i); - } - - let keypair_count = keypairs.len(); - let amount = total / (keypair_count as u64); - for (i, keys) in keypairs[..keypair_count] - .chunks(NUM_FUNDING_KEYS) - .enumerate() - { - for (j, key) in keys.iter().enumerate() { - let tx = librapay_transaction::transfer( - libra_pay_program_id, - &libra_genesis_key.pubkey(), - &funding_keys[j], - &libra_funding_keys[j], - &key.pubkey(), - amount, - blockhash, - ); - - let _sig = client - .async_send_transaction(tx.clone()) - .expect("create_account in generate_and_fund_keypairs"); - } - - for (j, key) in keys.iter().enumerate() { - let mut times = 0; - loop { - let balance = - librapay_transaction::get_libra_balance(client, &key.pubkey()).unwrap(); - if balance >= amount { - break; - } else if times > 20 { - info!("timed out.. {} key: {} balance: {}", i, j, balance); - break; - } else { - times += 1; - sleep(Duration::from_millis(100)); - } - } - } - - info!( - "funded group {} of {}", - i + 1, - keypairs.len() / NUM_FUNDING_KEYS - ); - blockhash = get_recent_blockhash(client).0; - } - - funding_time.stop(); - info!("done funding keys, took {} ms", funding_time.as_ms()); -} - pub fn generate_and_fund_keypairs( client: Arc, faucet_addr: Option, funding_key: &Keypair, keypair_count: usize, lamports_per_account: u64, - use_move: bool, -) -> Result<(Vec, Option)> { +) -> Result> { info!("Creating {} keypairs...", keypair_count); let (mut keypairs, extra) = generate_keypairs(funding_key, keypair_count as u64); info!("Get lamports..."); @@ -1141,12 +885,6 @@ pub fn generate_and_fund_keypairs( let last_key = keypairs[keypair_count - 1].pubkey(); let last_keypair_balance = client.get_balance(&last_key).unwrap_or(0); - #[cfg(feature = "move")] - let mut move_keypairs_ret = None; - - #[cfg(not(feature = "move"))] - let move_keypairs_ret = None; - // Repeated runs will eat up keypair balances from transaction fees. In order to quickly // start another bench-tps run without re-funding all of the keypairs, check if the // keypairs still have at least 80% of the expected funds. That should be enough to @@ -1157,10 +895,7 @@ pub fn generate_and_fund_keypairs( let max_fee = fee_rate_governor.max_lamports_per_signature; let extra_fees = extra * max_fee; let total_keypairs = keypairs.len() as u64 + 1; // Add one for funding keypair - let mut total = lamports_per_account * total_keypairs + extra_fees; - if use_move { - total *= 3; - } + let total = lamports_per_account * total_keypairs + extra_fees; let funding_key_balance = client.get_balance(&funding_key.pubkey()).unwrap_or(0); info!( @@ -1172,40 +907,6 @@ pub fn generate_and_fund_keypairs( airdrop_lamports(client.as_ref(), &faucet_addr.unwrap(), funding_key, total)?; } - #[cfg(feature = "move")] - { - if use_move { - let libra_genesis_keypair = - create_genesis(&funding_key, client.as_ref(), 10_000_000); - let libra_mint_program_id = upload_mint_script(&funding_key, client.as_ref()); - let libra_pay_program_id = upload_payment_script(&funding_key, client.as_ref()); - - // Generate another set of keypairs for move accounts. - // Still fund the solana ones which will be used for fees. - let seed = [0u8; 32]; - let mut rnd = GenKeys::new(seed); - let move_keypairs = rnd.gen_n_keypairs(keypair_count as u64); - fund_move_keys( - client.as_ref(), - funding_key, - &move_keypairs, - total / 3, - &libra_pay_program_id, - &libra_mint_program_id, - &libra_genesis_keypair, - ); - move_keypairs_ret = Some(( - libra_genesis_keypair, - libra_pay_program_id, - libra_mint_program_id, - move_keypairs, - )); - - // Give solana keys 1/3 and move keys 1/3 the lamports. Keep 1/3 for fees. - total /= 3; - } - } - fund_keys( client, funding_key, @@ -1219,7 +920,7 @@ pub fn generate_and_fund_keypairs( // 'generate_keypairs' generates extra keys to be able to have size-aligned funding batches for fund_keys. keypairs.truncate(keypair_count); - Ok((keypairs, move_keypairs_ret)) + Ok(keypairs) } #[cfg(test)] @@ -1243,11 +944,11 @@ mod tests { config.duration = Duration::from_secs(5); let keypair_count = config.tx_count * config.keypair_multiplier; - let (keypairs, _move_keypairs) = - generate_and_fund_keypairs(client.clone(), None, &config.id, keypair_count, 20, false) + let keypairs = + generate_and_fund_keypairs(client.clone(), None, &config.id, keypair_count, 20) .unwrap(); - do_bench_tps(client, config, keypairs, None); + do_bench_tps(client, config, keypairs); } #[test] @@ -1258,9 +959,8 @@ mod tests { let keypair_count = 20; let lamports = 20; - let (keypairs, _move_keypairs) = - generate_and_fund_keypairs(client.clone(), None, &id, keypair_count, lamports, false) - .unwrap(); + let keypairs = + generate_and_fund_keypairs(client.clone(), None, &id, keypair_count, lamports).unwrap(); for kp in &keypairs { assert_eq!( @@ -1282,9 +982,8 @@ mod tests { let keypair_count = 20; let lamports = 20; - let (keypairs, _move_keypairs) = - generate_and_fund_keypairs(client.clone(), None, &id, keypair_count, lamports, false) - .unwrap(); + let keypairs = + generate_and_fund_keypairs(client.clone(), None, &id, keypair_count, lamports).unwrap(); for kp in &keypairs { assert_eq!(client.get_balance(&kp.pubkey()).unwrap(), lamports); diff --git a/bench-tps/src/cli.rs b/bench-tps/src/cli.rs index 81c1ebdd2..d2985bf96 100644 --- a/bench-tps/src/cli.rs +++ b/bench-tps/src/cli.rs @@ -26,7 +26,6 @@ pub struct Config { pub read_from_client_file: bool, pub target_lamports_per_signature: u64, pub multi_client: bool, - pub use_move: bool, pub num_lamports_per_account: u64, pub target_slots_per_epoch: u64, pub target_node: Option, @@ -50,7 +49,6 @@ impl Default for Config { read_from_client_file: false, target_lamports_per_signature: FeeRateGovernor::default().target_lamports_per_signature, multi_client: true, - use_move: false, num_lamports_per_account: NUM_LAMPORTS_PER_ACCOUNT_DEFAULT, target_slots_per_epoch: 0, target_node: None, @@ -114,11 +112,6 @@ pub fn build_args<'a, 'b>(version: &'b str) -> App<'a, 'b> { .long("sustained") .help("Use sustained performance mode vs. peak mode. This overlaps the tx generation with transfers."), ) - .arg( - Arg::with_name("use-move") - .long("use-move") - .help("Use Move language transactions to perform transfers."), - ) .arg( Arg::with_name("no-multi-client") .long("no-multi-client") @@ -276,7 +269,6 @@ pub fn extract_args<'a>(matches: &ArgMatches<'a>) -> Config { args.target_lamports_per_signature = v.to_string().parse().expect("can't parse lamports"); } - args.use_move = matches.is_present("use-move"); args.multi_client = !matches.is_present("no-multi-client"); args.target_node = matches .value_of("target_node") diff --git a/bench-tps/src/main.rs b/bench-tps/src/main.rs index 826b7ca18..20a80e7ff 100644 --- a/bench-tps/src/main.rs +++ b/bench-tps/src/main.rs @@ -29,7 +29,6 @@ fn main() { write_to_client_file, read_from_client_file, target_lamports_per_signature, - use_move, multi_client, num_lamports_per_account, target_node, @@ -100,7 +99,7 @@ fn main() { Arc::new(get_client(&nodes)) }; - let (keypairs, move_keypairs) = if *read_from_client_file && !use_move { + let keypairs = if *read_from_client_file { let path = Path::new(&client_ids_and_stake_file); let file = File::open(path).unwrap(); @@ -130,7 +129,7 @@ fn main() { // This prevents the amount of storage needed for bench-tps accounts from creeping up // across multiple runs. keypairs.sort_by_key(|x| x.pubkey().to_string()); - (keypairs, None) + keypairs } else { generate_and_fund_keypairs( client.clone(), @@ -138,7 +137,6 @@ fn main() { &id, keypair_count, *num_lamports_per_account, - *use_move, ) .unwrap_or_else(|e| { eprintln!("Error could not fund keys: {:?}", e); @@ -146,5 +144,5 @@ fn main() { }) }; - do_bench_tps(client, cli_config, keypairs, move_keypairs); + do_bench_tps(client, cli_config, keypairs); } diff --git a/bench-tps/tests/bench_tps.rs b/bench-tps/tests/bench_tps.rs index a7060e7fe..b90cf25ab 100644 --- a/bench-tps/tests/bench_tps.rs +++ b/bench-tps/tests/bench_tps.rs @@ -6,17 +6,11 @@ use solana_core::cluster_info::VALIDATOR_PORT_RANGE; use solana_core::validator::ValidatorConfig; use solana_faucet::faucet::run_local_faucet; use solana_local_cluster::local_cluster::{ClusterConfig, LocalCluster}; -#[cfg(feature = "move")] -use solana_sdk::move_loader::solana_move_loader_program; use solana_sdk::signature::{Keypair, Signer}; use std::sync::{mpsc::channel, Arc}; use std::time::Duration; fn test_bench_tps_local_cluster(config: Config) { - #[cfg(feature = "move")] - let native_instruction_processors = vec![solana_move_loader_program()]; - - #[cfg(not(feature = "move"))] let native_instruction_processors = vec![]; solana_logger::setup(); @@ -48,17 +42,16 @@ fn test_bench_tps_local_cluster(config: Config) { let lamports_per_account = 100; let keypair_count = config.tx_count * config.keypair_multiplier; - let (keypairs, move_keypairs) = generate_and_fund_keypairs( + let keypairs = generate_and_fund_keypairs( client.clone(), Some(faucet_addr), &config.id, keypair_count, lamports_per_account, - config.use_move, ) .unwrap(); - let _total = do_bench_tps(client, config, keypairs, move_keypairs); + let _total = do_bench_tps(client, config, keypairs); #[cfg(not(debug_assertions))] assert!(_total > 100); @@ -73,14 +66,3 @@ fn test_bench_tps_local_cluster_solana() { test_bench_tps_local_cluster(config); } - -#[test] -#[serial] -fn test_bench_tps_local_cluster_move() { - let mut config = Config::default(); - config.tx_count = 100; - config.duration = Duration::from_secs(10); - config.use_move = true; - - test_bench_tps_local_cluster(config); -} diff --git a/ci/buildkite-secondary.yml b/ci/buildkite-secondary.yml index 228f914e9..bf29057c4 100644 --- a/ci/buildkite-secondary.yml +++ b/ci/buildkite-secondary.yml @@ -16,6 +16,3 @@ steps: timeout_in_minutes: 240 name: "publish crate" branches: "!master" - # - command: ". ci/rust-version.sh; ci/docker-run.sh $$rust_stable_docker_image ci/test-move.sh" - # name: "move" - # timeout_in_minutes: 20 diff --git a/ci/test-move.sh b/ci/test-move.sh deleted file mode 120000 index 0c92a5c7b..000000000 --- a/ci/test-move.sh +++ /dev/null @@ -1 +0,0 @@ -test-stable.sh \ No newline at end of file diff --git a/ci/test-stable.sh b/ci/test-stable.sh index aa3f89814..8b7edfabf 100755 --- a/ci/test-stable.sh +++ b/ci/test-stable.sh @@ -38,7 +38,6 @@ echo "Executing $testName" case $testName in test-stable) _ cargo +"$rust_stable" test --jobs "$NPROC" --all --exclude solana-local-cluster ${V:+--verbose} -- --nocapture - _ cargo +"$rust_stable" test --manifest-path bench-tps/Cargo.toml --features=move ${V:+--verbose} test_bench_tps_local_cluster_move -- --nocapture ;; test-stable-perf) # BPF program tests @@ -67,27 +66,6 @@ test-stable-perf) _ cargo +"$rust_stable" test --package solana-perf --package solana-ledger --package solana-core --lib ${V:+--verbose} -- --nocapture _ cargo +"$rust_stable" run --manifest-path poh-bench/Cargo.toml ${V:+--verbose} -- --hashes-per-tick 10 ;; -test-move) - #ci/affects-files.sh \ - # Cargo.lock$ \ - # Cargo.toml$ \ - # ^ci/rust-version.sh \ - # ^ci/test-stable.sh \ - # ^ci/test-move.sh \ - # ^programs/move_loader \ - # ^programs/librapay \ - # ^logger/ \ - # ^runtime/ \ - # ^sdk/ \ - #|| { - # annotate --style info \ - # "Skipped $testName as no relevant files were modified" - # exit 0 - #} - _ cargo +"$rust_stable" test --manifest-path programs/move_loader/Cargo.toml ${V:+--verbose} -- --nocapture - _ cargo +"$rust_stable" test --manifest-path programs/librapay/Cargo.toml ${V:+--verbose} -- --nocapture - exit 0 - ;; test-local-cluster) _ cargo +"$rust_stable" build --release --bins ${V:+--verbose} _ cargo +"$rust_stable" test --release --package solana-local-cluster ${V:+--verbose} -- --nocapture --test-threads=1 diff --git a/docs/sidebars.js b/docs/sidebars.js index c49caae6d..e69dcc300 100644 --- a/docs/sidebars.js +++ b/docs/sidebars.js @@ -143,7 +143,6 @@ module.exports = { "implemented-proposals/repair-service", "implemented-proposals/testing-programs", "implemented-proposals/readonly-accounts", - "implemented-proposals/embedding-move", "implemented-proposals/staking-rewards", "implemented-proposals/rent", "implemented-proposals/durable-tx-nonces", @@ -170,6 +169,7 @@ module.exports = { "proposals/block-confirmation", "proposals/rust-clients", "proposals/optimistic_confirmation", + "proposals/embedding-move", ], }, }; diff --git a/docs/src/implemented-proposals/embedding-move.md b/docs/src/proposals/embedding-move.md similarity index 100% rename from docs/src/implemented-proposals/embedding-move.md rename to docs/src/proposals/embedding-move.md diff --git a/genesis-programs/src/lib.rs b/genesis-programs/src/lib.rs index b36583430..eb212ac10 100644 --- a/genesis-programs/src/lib.rs +++ b/genesis-programs/src/lib.rs @@ -1,6 +1,5 @@ use solana_sdk::{ - clock::Epoch, genesis_config::OperatingMode, inflation::Inflation, - move_loader::solana_move_loader_program, pubkey::Pubkey, + clock::Epoch, genesis_config::OperatingMode, inflation::Inflation, pubkey::Pubkey, }; #[macro_use] @@ -57,7 +56,6 @@ pub fn get_programs(operating_mode: OperatingMode, epoch: Epoch) -> Option"] -repository = "https://github.com/solana-labs/solana" -license = "Apache-2.0" -homepage = "https://solana.com/" -edition = "2018" - -[dependencies] -bincode = "1.2.0" -log = "0.4.8" -solana-logger = { path = "../../logger", version = "1.3.0" } -solana-move-loader-program = { path = "../move_loader", version = "1.3.0" } -solana-runtime = { path = "../../runtime", version = "1.3.0" } -solana-sdk = { path = "../../sdk", version = "1.3.0" } -types = { version = "0.0.1-sol5", package = "solana_libra_types" } - -[lib] -crate-type = ["lib", "cdylib"] -name = "solana_librapay" - -[package.metadata.docs.rs] -targets = ["x86_64-unknown-linux-gnu"] diff --git a/programs/librapay/src/lib.rs b/programs/librapay/src/lib.rs deleted file mode 100644 index 68efbfa6c..000000000 --- a/programs/librapay/src/lib.rs +++ /dev/null @@ -1,85 +0,0 @@ -solana_sdk::declare_id!("LibraPay11111111111111111111111111111111111"); - -pub mod librapay_instruction; -pub mod librapay_transaction; - -extern crate solana_move_loader_program; - -use solana_move_loader_program::account_state::LibraAccountState; -use solana_runtime::loader_utils::load_program; -use solana_sdk::{ - client::Client, - message::Message, - pubkey::Pubkey, - signature::{Keypair, Signer}, - system_instruction, -}; - -use types::account_config; - -pub fn create_genesis(from: &Keypair, client: &T, amount: u64) -> Keypair { - let genesis = Keypair::new(); - - let instruction = system_instruction::create_account( - &from.pubkey(), - &genesis.pubkey(), - 1, - bincode::serialized_size(&LibraAccountState::create_genesis(amount).unwrap()).unwrap() - as u64, - &solana_sdk::move_loader::id(), - ); - - client - .send_and_confirm_message( - &[&from, &genesis], - Message::new(&[instruction], Some(&from.pubkey())), - ) - .unwrap(); - - let instruction = librapay_instruction::genesis(&genesis.pubkey(), amount); - let message = Message::new(&[instruction], Some(&from.pubkey())); - client - .send_and_confirm_message(&[from, &genesis], message) - .unwrap(); - - genesis -} - -pub fn publish_module(from: &Keypair, client: &T, code: &str) -> Pubkey { - let address = account_config::association_address(); - let account_state = LibraAccountState::create_module(&address, code, vec![]); - let bytes = bincode::serialize(&account_state).unwrap(); - - load_program(client, &from, &solana_sdk::move_loader::id(), bytes) -} - -pub fn upload_script(from: &Keypair, client: &T, code: &str) -> Pubkey { - let address = account_config::association_address(); - let account_state = LibraAccountState::create_script(&address, code, vec![]); - let bytes = bincode::serialize(&account_state).unwrap(); - - load_program(client, &from, &solana_sdk::move_loader::id(), bytes) -} - -pub fn upload_mint_script(from: &Keypair, client: &T) -> Pubkey { - let code = " - import 0x0.LibraAccount; - import 0x0.LibraCoin; - main(payee: address, amount: u64) { - LibraAccount.mint_to_address(move(payee), move(amount)); - return; - }"; - upload_script(from, client, code) -} -pub fn upload_payment_script(from: &Keypair, client: &T) -> Pubkey { - let code = " - import 0x0.LibraAccount; - import 0x0.LibraCoin; - main(payee: address, amount: u64) { - LibraAccount.pay_from_sender(move(payee), move(amount)); - return; - } - "; - - upload_script(from, client, code) -} diff --git a/programs/librapay/src/librapay_instruction.rs b/programs/librapay/src/librapay_instruction.rs deleted file mode 100644 index 6664287f0..000000000 --- a/programs/librapay/src/librapay_instruction.rs +++ /dev/null @@ -1,92 +0,0 @@ -use solana_move_loader_program::{ - account_state::pubkey_to_address, - processor::{Executable, MoveLoaderInstruction}, -}; -use solana_sdk::{ - instruction::{AccountMeta, Instruction}, - pubkey::Pubkey, -}; -use types::{account_config, transaction::TransactionArgument}; - -pub fn genesis(genesis_pubkey: &Pubkey, microlibras: u64) -> Instruction { - let instruction_data = MoveLoaderInstruction::CreateGenesis(microlibras); - let accounts = vec![AccountMeta::new(*genesis_pubkey, true)]; - Instruction::new(solana_sdk::move_loader::id(), &instruction_data, accounts) -} - -pub fn mint( - script_pubkey: &Pubkey, - genesis_pubkey: &Pubkey, - to_pubkey: &Pubkey, - microlibras: u64, -) -> Instruction { - let args = vec![ - TransactionArgument::Address(pubkey_to_address(to_pubkey)), - TransactionArgument::U64(microlibras), - ]; - - let instruction_data = Executable::RunScript { - sender_address: account_config::association_address(), - function_name: "main".to_string(), - args, - }; - - let accounts = vec![ - AccountMeta::new_readonly(*script_pubkey, false), - AccountMeta::new(*genesis_pubkey, true), - AccountMeta::new(*to_pubkey, false), - ]; - - Instruction::new(solana_sdk::move_loader::id(), &instruction_data, accounts) -} - -pub fn transfer( - script_pubkey: &Pubkey, - genesis_pubkey: &Pubkey, - from_pubkey: &Pubkey, - to_pubkey: &Pubkey, - microlibras: u64, -) -> Instruction { - let args = vec![ - TransactionArgument::Address(pubkey_to_address(to_pubkey)), - TransactionArgument::U64(microlibras), - ]; - - let instruction_data = Executable::RunScript { - sender_address: pubkey_to_address(from_pubkey), - function_name: "main".to_string(), - args, - }; - - let accounts = vec![ - AccountMeta::new_readonly(*script_pubkey, false), - AccountMeta::new_readonly(*genesis_pubkey, false), - AccountMeta::new(*from_pubkey, true), - AccountMeta::new(*to_pubkey, false), - ]; - - Instruction::new(solana_sdk::move_loader::id(), &instruction_data, accounts) -} - -#[cfg(test)] -mod tests { - use super::*; - - #[test] - fn test_pay() { - let from_pubkey = Pubkey::new_rand(); - let to_pubkey = Pubkey::new_rand(); - let program_id = Pubkey::new_rand(); - let mint_id = Pubkey::new_rand(); - transfer(&program_id, &mint_id, &from_pubkey, &to_pubkey, 1); - } - - #[test] - fn test_mint() { - let program_id = Pubkey::new_rand(); - let from_pubkey = Pubkey::new_rand(); - let to_pubkey = Pubkey::new_rand(); - - mint(&program_id, &from_pubkey, &to_pubkey, 1); - } -} diff --git a/programs/librapay/src/librapay_transaction.rs b/programs/librapay/src/librapay_transaction.rs deleted file mode 100644 index 18de3914a..000000000 --- a/programs/librapay/src/librapay_transaction.rs +++ /dev/null @@ -1,233 +0,0 @@ -use crate::librapay_instruction; -use log::*; -use solana_move_loader_program::{ - account_state::{pubkey_to_address, LibraAccountState}, - data_store::DataStore, -}; -use solana_sdk::{ - client::Client, - commitment_config::CommitmentConfig, - hash::Hash, - message::Message, - pubkey::Pubkey, - signature::{Keypair, Signer}, - system_instruction, - transaction::Transaction, -}; -use std::{boxed::Box, error, fmt}; - -pub fn create_genesis(keypair: &Keypair, microlibras: u64, recent_blockhash: Hash) -> Transaction { - let ix = librapay_instruction::genesis(&keypair.pubkey(), microlibras); - Transaction::new_signed_with_payer(&[ix], Some(&keypair.pubkey()), &[keypair], recent_blockhash) -} - -pub fn mint_tokens( - script_pubkey: &Pubkey, - payer_keypair: &Keypair, - genesis_keypair: &Keypair, - to_pubkey: &Pubkey, - microlibras: u64, - recent_blockhash: Hash, -) -> Transaction { - let ix = librapay_instruction::mint( - script_pubkey, - &genesis_keypair.pubkey(), - to_pubkey, - microlibras, - ); - Transaction::new_signed_with_payer( - &[ix], - Some(&payer_keypair.pubkey()), - &[payer_keypair, genesis_keypair], - recent_blockhash, - ) -} - -pub fn transfer( - script_pubkey: &Pubkey, - genesis_pubkey: &Pubkey, - payer_keypair: &Keypair, - from_keypair: &Keypair, - to_pubkey: &Pubkey, - microlibras: u64, - recent_blockhash: Hash, -) -> Transaction { - let ix = librapay_instruction::transfer( - script_pubkey, - genesis_pubkey, - &from_keypair.pubkey(), - to_pubkey, - microlibras, - ); - Transaction::new_signed_with_payer( - &[ix], - Some(&payer_keypair.pubkey()), - &[payer_keypair, from_keypair], - recent_blockhash, - ) -} - -pub fn create_accounts( - from_keypair: &Keypair, - to_keypair: &[&Keypair], - lamports: u64, - recent_blockhash: Hash, -) -> Transaction { - let instructions: Vec<_> = to_keypair - .iter() - .map(|keypair| { - system_instruction::create_account( - &from_keypair.pubkey(), - &keypair.pubkey(), - lamports, - 400, - &solana_sdk::move_loader::id(), - ) - }) - .collect(); - - let mut from_signers = vec![from_keypair]; - from_signers.extend_from_slice(to_keypair); - let message = Message::new(&instructions, Some(&from_keypair.pubkey())); - Transaction::new(&from_signers, message, recent_blockhash) -} - -pub fn create_account( - from_keypair: &Keypair, - to_keypair: &Keypair, - lamports: u64, - recent_blockhash: Hash, -) -> Transaction { - create_accounts(from_keypair, &[to_keypair], lamports, recent_blockhash) -} - -#[derive(Debug)] -enum LibrapayError { - UnknownAccountState, -} - -impl fmt::Display for LibrapayError { - fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { - write!(f, "{:?}", self) - } -} - -impl error::Error for LibrapayError {} - -pub fn get_libra_balance( - client: &T, - pubkey: &Pubkey, -) -> Result> { - if let Some(account) = - client.get_account_with_commitment(&pubkey, CommitmentConfig::recent())? - { - let mut data_store = DataStore::default(); - match bincode::deserialize(&account.data)? { - LibraAccountState::User(_, write_set) => { - data_store.apply_write_set(&write_set); - } - LibraAccountState::Unallocated => { - return Ok(0); - } - state => { - info!("Unknown account state: {:?}", state); - return Err(LibrapayError::UnknownAccountState.into()); - } - } - let resource = data_store - .read_account_resource(&pubkey_to_address(pubkey)) - .unwrap(); - let res = resource.balance(); - Ok(res) - } else { - Ok(0) - } -} - -#[cfg(test)] -mod tests { - use super::*; - use crate::{create_genesis, upload_mint_script, upload_payment_script}; - use solana_runtime::bank::Bank; - use solana_runtime::bank_client::BankClient; - use solana_sdk::genesis_config::create_genesis_config; - use solana_sdk::signature::{Keypair, Signer}; - use std::sync::Arc; - - fn create_bank(lamports: u64) -> (Arc, Keypair, Keypair, Pubkey, Pubkey) { - let (mut genesis_config, mint) = create_genesis_config(lamports); - genesis_config.rent.lamports_per_byte_year = 0; - let bank = Bank::new(&genesis_config); - bank.add_native_program("solana_move_loader_program", &solana_sdk::move_loader::id()); - let shared_bank = Arc::new(bank); - let bank_client = BankClient::new_shared(&shared_bank); - let genesis_pubkey = create_genesis(&mint, &bank_client, 1_000_000); - let mint_script_pubkey = upload_mint_script(&mint, &bank_client); - let script_pubkey = upload_payment_script(&mint, &bank_client); - ( - shared_bank, - mint, - genesis_pubkey, - mint_script_pubkey, - script_pubkey, - ) - } - - #[test] - fn test_transfer() { - solana_logger::setup(); - - let (bank, mint, genesis_keypair, mint_script_pubkey, payment_script_pubkey) = - create_bank(10_000); - let from_keypair = Keypair::new(); - let to_keypair = Keypair::new(); - - let tx = create_accounts( - &mint, - &[&from_keypair, &to_keypair], - 1, - bank.last_blockhash(), - ); - bank.process_transaction(&tx).unwrap(); - - info!( - "created accounts: mint: {} genesis_pubkey: {}", - mint.pubkey(), - genesis_keypair.pubkey() - ); - info!( - " from: {} to: {}", - from_keypair.pubkey(), - to_keypair.pubkey() - ); - - let tx = mint_tokens( - &mint_script_pubkey, - &mint, - &genesis_keypair, - &from_keypair.pubkey(), - 1, - bank.last_blockhash(), - ); - bank.process_transaction(&tx).unwrap(); - let client = BankClient::new_shared(&bank); - assert_eq!( - 1, - get_libra_balance(&client, &from_keypair.pubkey()).unwrap() - ); - - info!("passed mint... doing another transfer.."); - - let tx = transfer( - &payment_script_pubkey, - &genesis_keypair.pubkey(), - &mint, - &from_keypair, - &to_keypair.pubkey(), - 1, - bank.last_blockhash(), - ); - bank.process_transaction(&tx).unwrap(); - assert_eq!(1, get_libra_balance(&client, &to_keypair.pubkey()).unwrap()); - } -} diff --git a/programs/move_loader/.gitignore b/programs/move_loader/.gitignore deleted file mode 100644 index b83d22266..000000000 --- a/programs/move_loader/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/target/ diff --git a/programs/move_loader/Cargo.lock b/programs/move_loader/Cargo.lock deleted file mode 100644 index c73421aef..000000000 --- a/programs/move_loader/Cargo.lock +++ /dev/null @@ -1,3812 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -[[package]] -name = "addr2line" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a49806b9dadc843c61e7c97e72490ad7f7220ae249012fbda9ad0609457c0543" -dependencies = [ - "gimli", -] - -[[package]] -name = "aho-corasick" -version = "0.7.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8716408b8bc624ed7f65d223ddb9ac2d044c0547b6fa4b0d554f3a9540496ada" -dependencies = [ - "memchr", -] - -[[package]] -name = "ansi_term" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b" -dependencies = [ - "winapi 0.3.8", -] - -[[package]] -name = "arc-swap" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b585a98a234c46fc563103e9278c9391fde1f4e6850334da895d27edb9580f62" - -[[package]] -name = "arrayref" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544" - -[[package]] -name = "arrayvec" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cff77d8686867eceff3105329d4698d96c2391c176d5d03adc90c7389162b5b8" - -[[package]] -name = "ascii-canvas" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff8eb72df928aafb99fe5d37b383f2fe25bd2a765e3e5f7c365916b6f2463a29" -dependencies = [ - "term 0.5.2", -] - -[[package]] -name = "assert_matches" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7deb0a829ca7bcfaf5da70b073a8d128619259a7be8216a355e23f00763059e5" - -[[package]] -name = "atty" -version = "0.2.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" -dependencies = [ - "hermit-abi", - "libc", - "winapi 0.3.8", -] - -[[package]] -name = "autocfg" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d49d90015b3c36167a20fe2810c5cd875ad504b39cff3d4eae7977e6b7c1cb2" - -[[package]] -name = "autocfg" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8aac770f1885fd7e387acedd76065302551364496e46b3dd00860b2f8359b9d" - -[[package]] -name = "backtrace" -version = "0.3.48" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0df2f85c8a2abbe3b7d7e748052fdd9b76a0458fdeb16ad4223f5eca78c7c130" -dependencies = [ - "addr2line", - "cfg-if", - "libc", - "object", - "rustc-demangle", - "serde", -] - -[[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" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3441f0f7b02788e948e47f457ca01f1d7e6d92c693bc132c22b087d3141c03ff" - -[[package]] -name = "bech32" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58946044516aa9dc922182e0d6e9d124a31aafe6b421614654eb27cf90cec09c" - -[[package]] -name = "bincode" -version = "1.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f30d3a39baa26f9651f17b375061f3233dde33424a8b72b0dbe93a68a0bc896d" -dependencies = [ - "byteorder", - "serde", -] - -[[package]] -name = "bit-set" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e11e16035ea35e4e5997b393eacbf6f63983188f7a2ad25bfb13465f5ad59de" -dependencies = [ - "bit-vec", -] - -[[package]] -name = "bit-vec" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f0dc55f2d8a1a85650ac47858bb001b4c0dd73d79e3c455a842925e68d29cd3" - -[[package]] -name = "bitflags" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693" - -[[package]] -name = "blake2" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94cb07b0da6a73955f8fb85d24c466778e70cda767a568229b104f0264089330" -dependencies = [ - "byte-tools", - "crypto-mac", - "digest", - "opaque-debug", -] - -[[package]] -name = "blake2b_simd" -version = "0.5.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8fb2d74254a3a0b5cac33ac9f8ed0e44aa50378d9dbb2e5d83bd21ed1dc2c8a" -dependencies = [ - "arrayref", - "arrayvec", - "constant_time_eq", -] - -[[package]] -name = "block-buffer" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688b" -dependencies = [ - "block-padding", - "byte-tools", - "byteorder", - "generic-array 0.12.3", -] - -[[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 = "bs58" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c95ee6bba9d950218b6cc910cf62bc9e0a171d0f4537e3627b0f54d08549b188" - -[[package]] -name = "bs58" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "476e9cd489f9e121e02ffa6014a8ef220ecb15c05ed23fc34cca13925dc283fb" - -[[package]] -name = "bumpalo" -version = "3.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5356f1d23ee24a1f785a56d1d1a5f0fd5b0f6a0c0fb2412ce11da71649ab78f6" - -[[package]] -name = "bv" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8834bb1d8ee5dc048ee3124f2c7c1afcc6bc9aed03f11e9dfd8c69470a5db340" -dependencies = [ - "feature-probe", - "serde", -] - -[[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" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08c48aae112d48ed9f069b33538ea9e3e90aa263cfa3d1c24309612b1f7472de" - -[[package]] -name = "bytes" -version = "0.4.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "206fdffcfa2df7cbe15601ef46c813fce0965eb3286db6b56c583b814b51c81c" -dependencies = [ - "byteorder", - "either", - "iovec", -] - -[[package]] -name = "bytes" -version = "0.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "130aac562c0dd69c56b3b1cc8ffd2e17be31d0b6c25b61c96b76231aa23e39e1" - -[[package]] -name = "c_linked_list" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4964518bd3b4a8190e832886cdc0da9794f12e8e6c1613a9e90ff331c4c8724b" - -[[package]] -name = "cc" -version = "1.0.49" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e450b8da92aa6f274e7c6437692f9f2ce6d701fb73bacfcf87897b3f89a4c20e" -dependencies = [ - "jobserver", - "num_cpus", -] - -[[package]] -name = "cfg-if" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" - -[[package]] -name = "chashmap" -version = "2.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff41a3c2c1e39921b9003de14bf0439c7b63a9039637c291e1a64925d8ddfa45" -dependencies = [ - "owning_ref", - "parking_lot 0.4.8", -] - -[[package]] -name = "chrono" -version = "0.4.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80094f509cf8b5ae86a4966a39b3ff66cd7e2a3e594accec3743ff3fabeab5b2" -dependencies = [ - "num-integer", - "num-traits", - "time", -] - -[[package]] -name = "clap" -version = "2.33.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bdfa80d47f954d53a35a64987ca1422f495b8d6483c0fe9f7117b36c2a792129" -dependencies = [ - "ansi_term", - "atty", - "bitflags", - "strsim 0.8.0", - "textwrap", - "unicode-width", - "vec_map", -] - -[[package]] -name = "clear_on_drop" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97276801e127ffb46b66ce23f35cc96bd454fa311294bced4bbace7baa8b1d17" -dependencies = [ - "cc", -] - -[[package]] -name = "cloudabi" -version = "0.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f" -dependencies = [ - "bitflags", -] - -[[package]] -name = "codespan" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "004def512a9848b23a68ed110927d102b0e6d9f3dc732e28570879afde051f8c" -dependencies = [ - "failure", - "itertools 0.8.2", -] - -[[package]] -name = "codespan-reporting" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab081a14ab8f9598ce826890fe896d0addee68c7a58ab49008369ccbb51510a8" -dependencies = [ - "codespan", - "termcolor", -] - -[[package]] -name = "constant_time_eq" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" - -[[package]] -name = "crossbeam" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69323bff1fb41c635347b8ead484a5ca6c3f11914d784170b158d8449ab07f8e" -dependencies = [ - "cfg-if", - "crossbeam-channel", - "crossbeam-deque", - "crossbeam-epoch", - "crossbeam-queue", - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-channel" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cced8691919c02aac3cb0a1bc2e9b73d89e832bf9a06fc579d4e71b68a2da061" -dependencies = [ - "crossbeam-utils", - "maybe-uninit", -] - -[[package]] -name = "crossbeam-deque" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f02af974daeee82218205558e51ec8768b48cf524bd01d550abe5573a608285" -dependencies = [ - "crossbeam-epoch", - "crossbeam-utils", - "maybe-uninit", -] - -[[package]] -name = "crossbeam-epoch" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "058ed274caafc1f60c4997b5fc07bf7dc7cca454af7c6e81edffe5f33f70dace" -dependencies = [ - "autocfg 1.0.0", - "cfg-if", - "crossbeam-utils", - "lazy_static", - "maybe-uninit", - "memoffset", - "scopeguard", -] - -[[package]] -name = "crossbeam-queue" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab6bffe714b6bb07e42f201352c34f51fefd355ace793f9e638ebd52d23f98d2" -dependencies = [ - "cfg-if", - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-utils" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8" -dependencies = [ - "autocfg 1.0.0", - "cfg-if", - "lazy_static", -] - -[[package]] -name = "crunchy" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" - -[[package]] -name = "crypto-mac" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4434400df11d95d556bac068ddfedd482915eb18fe8bea89bc80b6e4b1c179e5" -dependencies = [ - "generic-array 0.12.3", - "subtle 1.0.0", -] - -[[package]] -name = "curve25519-dalek" -version = "1.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b7dcd30ba50cdf88b55b033456138b7c0ac4afdc436d82e1b79f370f24cc66d" -dependencies = [ - "byteorder", - "clear_on_drop", - "digest", - "rand_core 0.3.1", - "subtle 2.2.2", -] - -[[package]] -name = "curve25519-dalek" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d85653f070353a16313d0046f173f70d1aadd5b42600a14de626f0dfb3473a5" -dependencies = [ - "byteorder", - "digest", - "rand_core 0.5.1", - "subtle 2.2.2", - "zeroize", -] - -[[package]] -name = "data-encoding" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72aa14c04dfae8dd7d8a2b1cb7ca2152618cd01336dbfe704b8dcbf8d41dbd69" - -[[package]] -name = "derivative" -version = "2.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb582b60359da160a9477ee80f15c8d784c477e69c217ef2cdd4169c24ea380f" -dependencies = [ - "proc-macro2 1.0.17", - "quote 1.0.6", - "syn 1.0.27", -] - -[[package]] -name = "diff" -version = "0.1.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e25ea47919b1560c4e3b7fe0aaab9becf5b84a10325ddf7db0f0ba5e1026499" - -[[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", -] - -[[package]] -name = "dirs" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fd78930633bd1c6e35c4b42b1df7b0cbc6bc191146e512bb3bedf243fcc3901" -dependencies = [ - "libc", - "redox_users", - "winapi 0.3.8", -] - -[[package]] -name = "dirs" -version = "2.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13aea89a5c93364a98e9b37b2fa237effbb694d5cfe01c5b70941f7eb087d5e3" -dependencies = [ - "cfg-if", - "dirs-sys", -] - -[[package]] -name = "dirs-sys" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afa0b23de8fd801745c471deffa6e12d248f962c9fd4b4c33787b055599bde7b" -dependencies = [ - "cfg-if", - "libc", - "redox_users", - "winapi 0.3.8", -] - -[[package]] -name = "docopt" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f525a586d310c87df72ebcd98009e57f1cc030c8c268305287a476beb653969" -dependencies = [ - "lazy_static", - "regex", - "serde", - "strsim 0.9.3", -] - -[[package]] -name = "dtoa" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4358a9e11b9a09cf52383b451b49a169e8d797b68aa02301ff586d70d9661ea3" - -[[package]] -name = "ed25519-dalek" -version = "1.0.0-pre.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "978710b352437433c97b2bff193f2fb1dfd58a093f863dd95e225a19baa599a2" -dependencies = [ - "clear_on_drop", - "curve25519-dalek 2.1.0", - "rand 0.7.3", - "serde", - "sha2", -] - -[[package]] -name = "either" -version = "1.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb1f6b1ce1c140482ea30ddd3335fc0024ac7ee112895426e0a629a6c20adfe3" - -[[package]] -name = "ena" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8944dc8fa28ce4a38f778bd46bf7d923fe73eed5a439398507246c8e017e6f36" -dependencies = [ - "log", -] - -[[package]] -name = "encoding_rs" -version = "0.8.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8ac63f94732332f44fe654443c46f6375d1939684c17b0afb6cb56b0456e171" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "endian-type" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c34f04666d835ff5d62e058c3995147c06f42fe86ff053337632bca83e42702d" - -[[package]] -name = "env_logger" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44533bbbb3bb3c1fa17d9f2e4e38bbbaf8396ba82193c4cb1b6445d711445d36" -dependencies = [ - "atty", - "humantime", - "log", - "regex", - "termcolor", -] - -[[package]] -name = "errno" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b480f641ccf0faf324e20c1d3e53d81b7484c698b42ea677f6907ae4db195371" -dependencies = [ - "errno-dragonfly", - "libc", - "winapi 0.3.8", -] - -[[package]] -name = "errno-dragonfly" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14ca354e36190500e1e1fb267c647932382b54053c50b14970856c0b00a35067" -dependencies = [ - "gcc", - "libc", -] - -[[package]] -name = "failure" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d32e9bd16cc02eae7db7ef620b392808b89f6a5e16bb3497d159c6b92a0f4f86" -dependencies = [ - "backtrace", - "failure_derive", -] - -[[package]] -name = "failure_derive" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa4da3c766cd7a0db8242e326e9e4e081edd567072893ed320008189715366a4" -dependencies = [ - "proc-macro2 1.0.17", - "quote 1.0.6", - "syn 1.0.27", - "synstructure", -] - -[[package]] -name = "fake-simd" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed" - -[[package]] -name = "feature-probe" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "835a3dc7d1ec9e75e2b5fb4ba75396837112d2060b03f7d43bc1897c7f7211da" - -[[package]] -name = "fixedbitset" -version = "0.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86d4de0081402f5e88cdac65c8dcdcc73118c1a7a465e2a05f0da05843a8ea33" - -[[package]] -name = "fnv" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" - -[[package]] -name = "fuchsia-cprng" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba" - -[[package]] -name = "fuchsia-zircon" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82" -dependencies = [ - "bitflags", - "fuchsia-zircon-sys", -] - -[[package]] -name = "fuchsia-zircon-sys" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" - -[[package]] -name = "futures" -version = "0.1.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b980f2816d6ee8673b6517b52cb0e808a180efc92e5c19d02cdda79066703ef" - -[[package]] -name = "futures-channel" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f366ad74c28cca6ba456d95e6422883cfb4b252a83bed929c83abfdbbf2967d5" -dependencies = [ - "futures-core", -] - -[[package]] -name = "futures-core" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59f5fff90fd5d971f936ad674802482ba441b6f09ba5e15fd8b39145582ca399" - -[[package]] -name = "futures-cpupool" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab90cde24b3319636588d0c35fe03b1333857621051837ed769faefb4c2162e4" -dependencies = [ - "futures", - "num_cpus", -] - -[[package]] -name = "futures-io" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de27142b013a8e869c14957e6d2edeef89e97c289e69d042ee3a49acd8b51789" - -[[package]] -name = "futures-macro" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0b5a30a4328ab5473878237c447333c093297bded83a4983d10f4deea240d39" -dependencies = [ - "proc-macro-hack", - "proc-macro2 1.0.17", - "quote 1.0.6", - "syn 1.0.27", -] - -[[package]] -name = "futures-sink" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f2032893cb734c7a05d85ce0cc8b8c4075278e93b24b66f9de99d6eb0fa8acc" - -[[package]] -name = "futures-task" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bdb66b5f09e22019b1ab0830f7785bcea8e7a42148683f99214f73f8ec21a626" -dependencies = [ - "once_cell", -] - -[[package]] -name = "futures-util" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8764574ff08b701a084482c3c7031349104b07ac897393010494beaa18ce32c6" -dependencies = [ - "futures-core", - "futures-io", - "futures-macro", - "futures-task", - "memchr", - "pin-project", - "pin-utils", - "proc-macro-hack", - "proc-macro-nested", - "slab", -] - -[[package]] -name = "gcc" -version = "0.3.55" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f5f3913fa0bfe7ee1fd8248b6b9f42a5af4b9d65ec2dd2c3c26132b950ecfc2" - -[[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.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60fb4bb6bba52f78a471264d9a3b7d026cc0af47b22cd2cffbc0b787ca003e63" -dependencies = [ - "serde", - "typenum", - "version_check", -] - -[[package]] -name = "get_if_addrs" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abddb55a898d32925f3148bd281174a68eeb68bbfd9a5938a57b18f506ee4ef7" -dependencies = [ - "c_linked_list", - "get_if_addrs-sys", - "libc", - "winapi 0.2.8", -] - -[[package]] -name = "get_if_addrs-sys" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d04f9fb746cf36b191c00f3ede8bde9c8e64f9f4b05ae2694a9ccf5e3f5ab48" -dependencies = [ - "gcc", - "libc", -] - -[[package]] -name = "getrandom" -version = "0.1.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7abc8dd8451921606d809ba32e95b6111925cd2906060d2dcc29c070220503eb" -dependencies = [ - "cfg-if", - "libc", - "wasi", -] - -[[package]] -name = "gimli" -version = "0.21.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcc8e0c9bce37868955864dbecd2b1ab2bdf967e6f28066d65aaac620444b65c" - -[[package]] -name = "h2" -version = "0.1.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5b34c246847f938a410a03c5458c7fee2274436675e76d8b903c08efc29c462" -dependencies = [ - "byteorder", - "bytes 0.4.12", - "fnv", - "futures", - "http 0.1.21", - "indexmap", - "log", - "slab", - "string", - "tokio-io", -] - -[[package]] -name = "h2" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79b7246d7e4b979c03fa093da39cfb3617a96bbeee6310af63991668d7e843ff" -dependencies = [ - "bytes 0.5.4", - "fnv", - "futures-core", - "futures-sink", - "futures-util", - "http 0.2.1", - "indexmap", - "log", - "slab", - "tokio 0.2.21", - "tokio-util", -] - -[[package]] -name = "heck" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20564e78d53d2bb135c343b3f47714a56af2061f1c928fdb541dc7b9fdd94205" -dependencies = [ - "unicode-segmentation", -] - -[[package]] -name = "hermit-abi" -version = "0.1.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91780f809e750b0a89f5544be56617ff6b1227ee485bcb06ebe10cdf89bd3b71" -dependencies = [ - "libc", -] - -[[package]] -name = "hex" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "805026a5d0141ffc30abb3be3173848ad46a1b1664fe632428479619a3644d77" - -[[package]] -name = "hex" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "644f9158b2f133fd50f5fb3242878846d9eb792e445c893805ff0e3824006e35" - -[[package]] -name = "hex_fmt" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b07f60793ff0a4d9cef0f18e63b5357e06209987153a64648c972c1e5aff336f" - -[[package]] -name = "hmac" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dcb5e64cda4c23119ab41ba960d1e170a774c8e4b9d9e6a9bc18aabf5e59695" -dependencies = [ - "crypto-mac", - "digest", -] - -[[package]] -name = "http" -version = "0.1.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6ccf5ede3a895d8856620237b2f02972c1bbc78d2965ad7fe8838d4a0ed41f0" -dependencies = [ - "bytes 0.4.12", - "fnv", - "itoa", -] - -[[package]] -name = "http" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28d569972648b2c512421b5f2a405ad6ac9666547189d0c5477a3f200f3e02f9" -dependencies = [ - "bytes 0.5.4", - "fnv", - "itoa", -] - -[[package]] -name = "http-body" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6741c859c1b2463a423a1dbce98d418e6c3c3fc720fb0d45528657320920292d" -dependencies = [ - "bytes 0.4.12", - "futures", - "http 0.1.21", - "tokio-buf", -] - -[[package]] -name = "http-body" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13d5ff830006f7646652e057693569bfe0d51760c0085a071769d142a205111b" -dependencies = [ - "bytes 0.5.4", - "http 0.2.1", -] - -[[package]] -name = "httparse" -version = "1.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd179ae861f0c2e53da70d892f5f3029f9594be0c41dc5269cd371691b1dc2f9" - -[[package]] -name = "humantime" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df004cfca50ef23c36850aaaa59ad52cc70d0e90243c3c7737a4dd32dc7a3c4f" -dependencies = [ - "quick-error", -] - -[[package]] -name = "hyper" -version = "0.12.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9dbe6ed1438e1f8ad955a4701e9a944938e9519f6888d12d8558b645e247d5f6" -dependencies = [ - "bytes 0.4.12", - "futures", - "futures-cpupool", - "h2 0.1.26", - "http 0.1.21", - "http-body 0.1.0", - "httparse", - "iovec", - "itoa", - "log", - "net2", - "rustc_version", - "time", - "tokio 0.1.22", - "tokio-buf", - "tokio-executor", - "tokio-io", - "tokio-reactor", - "tokio-tcp", - "tokio-threadpool", - "tokio-timer", - "want 0.2.0", -] - -[[package]] -name = "hyper" -version = "0.13.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96816e1d921eca64d208a85aab4f7798455a8e34229ee5a88c935bdee1b78b14" -dependencies = [ - "bytes 0.5.4", - "futures-channel", - "futures-core", - "futures-util", - "h2 0.2.5", - "http 0.2.1", - "http-body 0.3.1", - "httparse", - "itoa", - "log", - "net2", - "pin-project", - "time", - "tokio 0.2.21", - "tower-service", - "want 0.3.0", -] - -[[package]] -name = "hyper-rustls" -version = "0.20.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac965ea399ec3a25ac7d13b8affd4b8f39325cca00858ddf5eb29b79e6b14b08" -dependencies = [ - "bytes 0.5.4", - "futures-util", - "hyper 0.13.5", - "log", - "rustls", - "tokio 0.2.21", - "tokio-rustls", - "webpki", -] - -[[package]] -name = "idna" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38f09e0f0b1fb55fdee1f17470ad800da77af5186a1a76c026b679358b7e844e" -dependencies = [ - "matches", - "unicode-bidi", - "unicode-normalization", -] - -[[package]] -name = "idna" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02e2673c30ee86b5b96a9cb52ad15718aa1f966f5ab9ad54a8b95d5ca33120a9" -dependencies = [ - "matches", - "unicode-bidi", - "unicode-normalization", -] - -[[package]] -name = "indexmap" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c398b2b113b55809ceb9ee3e753fcbac793f1956663f3c36549c1346015c2afe" -dependencies = [ - "autocfg 1.0.0", -] - -[[package]] -name = "iovec" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e" -dependencies = [ - "libc", -] - -[[package]] -name = "itertools" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f56a2d0bc861f9165be4eb3442afd3c236d8a98afd426f65d92324ae1091a484" -dependencies = [ - "either", -] - -[[package]] -name = "itertools" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "284f18f85651fe11e8a991b2adb42cb078325c996ed026d994719efcfca1d54b" -dependencies = [ - "either", -] - -[[package]] -name = "itoa" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8b7a7c0c47db5545ed3fef7468ee7bb5b74691498139e4b3f6a20685dc6dd8e" - -[[package]] -name = "jobserver" -version = "0.1.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c71313ebb9439f74b00d9d2dcec36440beaf57a6aa0623068441dd7cd81a7f2" -dependencies = [ - "libc", -] - -[[package]] -name = "js-sys" -version = "0.3.40" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce10c23ad2ea25ceca0093bd3192229da4c5b3c0f2de499c1ecac0d98d452177" -dependencies = [ - "wasm-bindgen", -] - -[[package]] -name = "keccak" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67c21572b4949434e4fc1e1978b99c5f77064153c59d998bf13ecd96fb5ecba7" - -[[package]] -name = "kernel32-sys" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d" -dependencies = [ - "winapi 0.2.8", - "winapi-build", -] - -[[package]] -name = "lalrpop" -version = "0.17.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64dc3698e75d452867d9bd86f4a723f452ce9d01fe1d55990b79f0c790aa67db" -dependencies = [ - "ascii-canvas", - "atty", - "bit-set", - "diff", - "docopt", - "ena", - "itertools 0.8.2", - "lalrpop-util", - "petgraph", - "regex", - "regex-syntax", - "serde", - "serde_derive", - "sha2", - "string_cache", - "term 0.5.2", - "unicode-xid 0.1.0", -] - -[[package]] -name = "lalrpop-util" -version = "0.17.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c277d18683b36349ab5cd030158b54856fca6bb2d5dc5263b06288f486958b7c" - -[[package]] -name = "lazy_static" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" -dependencies = [ - "spin", -] - -[[package]] -name = "libc" -version = "0.2.72" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9f8082297d534141b30c8d39e9b1773713ab50fdbe4ff30f750d063b3bfd701" - -[[package]] -name = "lock_api" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4da24a77a3d8a6d4862d95f72e6fdb9c09a643ecdb402d754004a557f2bec75" -dependencies = [ - "scopeguard", -] - -[[package]] -name = "log" -version = "0.4.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14b6052be84e6b71ab17edffc2eeabf5c2c3ae1fdb464aae35ac50c67a44e1f7" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "mach_o_sys" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e854583a83f20cf329bb9283366335387f7db59d640d1412167e05fedb98826" - -[[package]] -name = "matches" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08" - -[[package]] -name = "maybe-uninit" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00" - -[[package]] -name = "memchr" -version = "2.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3728d817d99e5ac407411fa471ff9800a778d88a24685968b36824eaf4bee400" - -[[package]] -name = "memmap" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6585fd95e7bb50d6cc31e20d4cf9afb4e2ba16c5846fc76793f11218da9c475b" -dependencies = [ - "libc", - "winapi 0.3.8", -] - -[[package]] -name = "memoffset" -version = "0.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4fc2c02a7e374099d4ee95a193111f72d2110197fe200272371758f6c3643d8" -dependencies = [ - "autocfg 1.0.0", -] - -[[package]] -name = "memsec" -version = "0.5.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0cb9280f8c37546661083aa45eb0318d8469253d31e87649faed25522428398e" -dependencies = [ - "getrandom", - "libc", - "mach_o_sys", - "winapi 0.3.8", -] - -[[package]] -name = "mime" -version = "0.3.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d" - -[[package]] -name = "mime_guess" -version = "2.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2684d4c2e97d99848d30b324b00c8fcc7e5c897b7cbb5819b09e7c90e8baf212" -dependencies = [ - "mime", - "unicase", -] - -[[package]] -name = "mio" -version = "0.6.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fce347092656428bc8eaf6201042cb551b8d67855af7374542a92a0fbfcac430" -dependencies = [ - "cfg-if", - "fuchsia-zircon", - "fuchsia-zircon-sys", - "iovec", - "kernel32-sys", - "libc", - "log", - "miow", - "net2", - "slab", - "winapi 0.2.8", -] - -[[package]] -name = "mio-uds" -version = "0.6.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afcb699eb26d4332647cc848492bbc15eafb26f08d0304550d5aa1f612e066f0" -dependencies = [ - "iovec", - "libc", - "mio", -] - -[[package]] -name = "miow" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c1f2f3b1cf331de6896aabf6e9d55dca90356cc9960cca7eaaf408a355ae919" -dependencies = [ - "kernel32-sys", - "net2", - "winapi 0.2.8", - "ws2_32-sys", -] - -[[package]] -name = "mirai-annotations" -version = "1.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "258c143ddb5105becc4834f66d0b0ad3d3205d07cb3efc3236f33f623dd07b16" - -[[package]] -name = "multimap" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2eb04b9f127583ed176e163fb9ec6f3e793b87e21deedd5734a69386a18a0151" - -[[package]] -name = "net2" -version = "0.2.34" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ba7c918ac76704fb42afcbbb43891e72731f3dcca3bef2a19786297baf14af7" -dependencies = [ - "cfg-if", - "libc", - "winapi 0.3.8", -] - -[[package]] -name = "new_debug_unreachable" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4a24736216ec316047a1fc4252e27dabb04218aa4a3f37c6e7ddbf1f9782b54" - -[[package]] -name = "nibble_vec" -version = "0.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8d77f3db4bce033f4d04db08079b2ef1c3d02b44e86f25d08886fafa7756ffa" - -[[package]] -name = "num-derive" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c8b15b261814f992e33760b1fca9fe8b693d8a65299f20c9901688636cfb746" -dependencies = [ - "proc-macro2 1.0.17", - "quote 1.0.6", - "syn 1.0.27", -] - -[[package]] -name = "num-integer" -version = "0.1.42" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f6ea62e9d81a77cd3ee9a2a5b9b609447857f3d358704331e4ef39eb247fcba" -dependencies = [ - "autocfg 1.0.0", - "num-traits", -] - -[[package]] -name = "num-traits" -version = "0.2.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c62be47e61d1842b9170f0fdeec8eba98e60e90e5446449a0545e5152acd7096" -dependencies = [ - "autocfg 1.0.0", -] - -[[package]] -name = "num_cpus" -version = "1.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3" -dependencies = [ - "hermit-abi", - "libc", -] - -[[package]] -name = "num_enum" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca565a7df06f3d4b485494f25ba05da1435950f4dc263440eda7a6fa9b8e36e4" -dependencies = [ - "derivative", - "num_enum_derive", -] - -[[package]] -name = "num_enum_derive" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffa5a33ddddfee04c0283a7653987d634e880347e96b5b2ed64de07efb59db9d" -dependencies = [ - "proc-macro-crate", - "proc-macro2 1.0.17", - "quote 1.0.6", - "syn 1.0.27", -] - -[[package]] -name = "object" -version = "0.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cbca9424c482ee628fa549d9c812e2cd22f1180b9222c9200fdfa6eb31aecb2" - -[[package]] -name = "once_cell" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b631f7e854af39a1739f401cf34a8a013dfe09eac4fa4dba91e9768bd28168d" - -[[package]] -name = "opaque-debug" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529c" - -[[package]] -name = "ordermap" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a86ed3f5f244b372d6b1a00b72ef7f8876d0bc6a78a4c9985c53614041512063" - -[[package]] -name = "owning_ref" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdf84f41639e037b484f93433aa3897863b561ed65c6e59c7073d7c561710f37" -dependencies = [ - "stable_deref_trait", -] - -[[package]] -name = "pairing" -version = "0.14.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ceda21136251c6d5a422d3d798d8ac22515a6e8d3521bb60c59a8349d36d0d57" -dependencies = [ - "byteorder", - "rand 0.4.6", -] - -[[package]] -name = "parity-multiaddr" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "045b3c7af871285146300da35b1932bb6e4639b66c7c98e85d06a32cbc4e8fa7" -dependencies = [ - "arrayref", - "bs58 0.2.5", - "byteorder", - "bytes 0.4.12", - "data-encoding", - "parity-multihash", - "percent-encoding 1.0.1", - "serde", - "unsigned-varint", - "url 1.7.2", -] - -[[package]] -name = "parity-multihash" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df3a17dc27848fd99e4f87eb0f8c9baba6ede0a6d555400c850ca45254ef4ce3" -dependencies = [ - "blake2", - "bytes 0.4.12", - "rand 0.6.5", - "sha-1", - "sha2", - "sha3", - "unsigned-varint", -] - -[[package]] -name = "parking_lot" -version = "0.4.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "149d8f5b97f3c1133e3cfcd8886449959e856b557ff281e292b733d7c69e005e" -dependencies = [ - "owning_ref", - "parking_lot_core 0.2.14", -] - -[[package]] -name = "parking_lot" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f842b1982eb6c2fe34036a4fbfb06dd185a3f5c8edfaacdf7d1ea10b07de6252" -dependencies = [ - "lock_api", - "parking_lot_core 0.6.2", - "rustc_version", -] - -[[package]] -name = "parking_lot_core" -version = "0.2.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4db1a8ccf734a7bce794cc19b3df06ed87ab2f3907036b693c68f56b4d4537fa" -dependencies = [ - "libc", - "rand 0.4.6", - "smallvec 0.6.13", - "winapi 0.3.8", -] - -[[package]] -name = "parking_lot_core" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b876b1b9e7ac6e1a74a6da34d25c42e17e8862aa409cbbbdcfc8d86c6f3bc62b" -dependencies = [ - "cfg-if", - "cloudabi", - "libc", - "redox_syscall", - "rustc_version", - "smallvec 0.6.13", - "winapi 0.3.8", -] - -[[package]] -name = "pbkdf2" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "006c038a43a45995a9670da19e67600114740e8511d4333bf97a56e66a7542d9" -dependencies = [ - "byteorder", - "crypto-mac", -] - -[[package]] -name = "percent-encoding" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31010dd2e1ac33d5b46a5b413495239882813e0369f8ed8a5e266f173602f831" - -[[package]] -name = "percent-encoding" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e" - -[[package]] -name = "petgraph" -version = "0.4.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c3659d1ee90221741f65dd128d9998311b0e40c5d3c23a62445938214abce4f" -dependencies = [ - "fixedbitset", - "ordermap", -] - -[[package]] -name = "phf_generator" -version = "0.7.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09364cc93c159b8b06b1f4dd8a4398984503483891b0c26b867cf431fb132662" -dependencies = [ - "phf_shared", - "rand 0.6.5", -] - -[[package]] -name = "phf_shared" -version = "0.7.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "234f71a15de2288bcb7e3b6515828d22af7ec8598ee6d24c3b526fa0a80b67a0" -dependencies = [ - "siphasher", -] - -[[package]] -name = "pin-project" -version = "0.4.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edc93aeee735e60ecb40cf740eb319ff23eab1c5748abfdb5c180e4ce49f7791" -dependencies = [ - "pin-project-internal", -] - -[[package]] -name = "pin-project-internal" -version = "0.4.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e58db2081ba5b4c93bd6be09c40fd36cb9193a8336c384f3b40012e531aa7e40" -dependencies = [ - "proc-macro2 1.0.17", - "quote 1.0.6", - "syn 1.0.27", -] - -[[package]] -name = "pin-project-lite" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7505eeebd78492e0f6108f7171c4948dbb120ee8119d9d77d0afa5469bef67f" - -[[package]] -name = "pin-utils" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" - -[[package]] -name = "ppv-lite86" -version = "0.2.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "237a5ed80e274dbc66f86bd59c1e25edc039660be53194b5fe0a482e0f2612ea" - -[[package]] -name = "precomputed-hash" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" - -[[package]] -name = "proc-macro-crate" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e10d4b51f154c8a7fb96fd6dad097cb74b863943ec010ac94b9fd1be8861fe1e" -dependencies = [ - "toml", -] - -[[package]] -name = "proc-macro-error" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98e9e4b82e0ef281812565ea4751049f1bdcdfccda7d3f459f2e138a40c08678" -dependencies = [ - "proc-macro-error-attr", - "proc-macro2 1.0.17", - "quote 1.0.6", - "syn 1.0.27", - "version_check", -] - -[[package]] -name = "proc-macro-error-attr" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f5444ead4e9935abd7f27dc51f7e852a0569ac888096d5ec2499470794e2e53" -dependencies = [ - "proc-macro2 1.0.17", - "quote 1.0.6", - "syn 1.0.27", - "syn-mid", - "version_check", -] - -[[package]] -name = "proc-macro-hack" -version = "0.5.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e0456befd48169b9f13ef0f0ad46d492cf9d2dbb918bcf38e01eed4ce3ec5e4" - -[[package]] -name = "proc-macro-nested" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e946095f9d3ed29ec38de908c22f95d9ac008e424c7bcae54c75a79c527c694" - -[[package]] -name = "proc-macro2" -version = "0.4.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759" -dependencies = [ - "unicode-xid 0.1.0", -] - -[[package]] -name = "proc-macro2" -version = "1.0.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1502d12e458c49a4c9cbff560d0fe0060c252bc29799ed94ca2ed4bb665a0101" -dependencies = [ - "unicode-xid 0.2.0", -] - -[[package]] -name = "prometheus" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5567486d5778e2c6455b1b90ff1c558f29e751fc018130fa182e15828e728af1" -dependencies = [ - "cfg-if", - "fnv", - "lazy_static", - "quick-error", - "spin", -] - -[[package]] -name = "proptest" -version = "0.9.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01c477819b845fe023d33583ebf10c9f62518c8d79a0960ba5c36d6ac8a55a5b" -dependencies = [ - "bit-set", - "bitflags", - "byteorder", - "lazy_static", - "num-traits", - "quick-error", - "rand 0.6.5", - "rand_chacha 0.1.1", - "rand_xorshift", - "regex-syntax", - "rusty-fork", - "tempfile", -] - -[[package]] -name = "proptest-derive" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d31edb17edac73aeacc947bd61462dda15220584268896a58e12f053d767f15b" -dependencies = [ - "proc-macro2 0.4.30", - "quote 0.6.13", - "syn 0.15.44", -] - -[[package]] -name = "prost" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96d14b1c185652833d24aaad41c5832b0be5616a590227c1fbff57c616754b23" -dependencies = [ - "byteorder", - "bytes 0.4.12", - "prost-derive", -] - -[[package]] -name = "prost-build" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb788126ea840817128183f8f603dce02cb7aea25c2a0b764359d8e20010702e" -dependencies = [ - "bytes 0.4.12", - "heck", - "itertools 0.8.2", - "log", - "multimap", - "petgraph", - "prost", - "prost-types", - "tempfile", - "which", -] - -[[package]] -name = "prost-derive" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e7dc378b94ac374644181a2247cebf59a6ec1c88b49ac77f3a94b86b79d0e11" -dependencies = [ - "failure", - "itertools 0.8.2", - "proc-macro2 0.4.30", - "quote 0.6.13", - "syn 0.15.44", -] - -[[package]] -name = "prost-types" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1de482a366941c8d56d19b650fac09ca08508f2a696119ee7513ad590c8bac6f" -dependencies = [ - "bytes 0.4.12", - "prost", -] - -[[package]] -name = "quick-error" -version = "1.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" - -[[package]] -name = "quote" -version = "0.6.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ce23b6b870e8f94f81fb0a363d65d86675884b34a09043c81e5562f11c1f8e1" -dependencies = [ - "proc-macro2 0.4.30", -] - -[[package]] -name = "quote" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54a21852a652ad6f610c9510194f398ff6f8692e334fd1145fed931f7fbe44ea" -dependencies = [ - "proc-macro2 1.0.17", -] - -[[package]] -name = "radix_trie" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d3681b28cd95acfb0560ea9441f82d6a4504fa3b15b97bd7b6e952131820e95" -dependencies = [ - "endian-type", - "nibble_vec", -] - -[[package]] -name = "rand" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "552840b97013b1a26992c11eac34bdd778e464601a4c2054b5f0bff7c6761293" -dependencies = [ - "fuchsia-cprng", - "libc", - "rand_core 0.3.1", - "rdrand", - "winapi 0.3.8", -] - -[[package]] -name = "rand" -version = "0.6.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d71dacdc3c88c1fde3885a3be3fbab9f35724e6ce99467f7d9c5026132184ca" -dependencies = [ - "autocfg 0.1.7", - "libc", - "rand_chacha 0.1.1", - "rand_core 0.4.2", - "rand_hc 0.1.0", - "rand_isaac", - "rand_jitter", - "rand_os", - "rand_pcg 0.1.2", - "rand_xorshift", - "winapi 0.3.8", -] - -[[package]] -name = "rand" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" -dependencies = [ - "getrandom", - "libc", - "rand_chacha 0.2.2", - "rand_core 0.5.1", - "rand_hc 0.2.0", - "rand_pcg 0.2.1", -] - -[[package]] -name = "rand04" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58595cc8bb12add45412667f9b422d5a9842d61d36e8607bc7c84ff738bf9263" -dependencies = [ - "rand 0.4.6", -] - -[[package]] -name = "rand04_compat" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e4cc0eb4bbb0cbc6c2a8081aa11303b9520369eea474cf865f7b7e3f11b284b" -dependencies = [ - "rand 0.6.5", - "rand04", -] - -[[package]] -name = "rand_chacha" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "556d3a1ca6600bfcbab7c7c91ccb085ac7fbbcd70e008a98742e7847f4f7bcef" -dependencies = [ - "autocfg 0.1.7", - "rand_core 0.3.1", -] - -[[package]] -name = "rand_chacha" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" -dependencies = [ - "ppv-lite86", - "rand_core 0.5.1", -] - -[[package]] -name = "rand_core" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b" -dependencies = [ - "rand_core 0.4.2", -] - -[[package]] -name = "rand_core" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc" - -[[package]] -name = "rand_core" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" -dependencies = [ - "getrandom", -] - -[[package]] -name = "rand_hc" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b40677c7be09ae76218dc623efbf7b18e34bced3f38883af07bb75630a21bc4" -dependencies = [ - "rand_core 0.3.1", -] - -[[package]] -name = "rand_hc" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" -dependencies = [ - "rand_core 0.5.1", -] - -[[package]] -name = "rand_isaac" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ded997c9d5f13925be2a6fd7e66bf1872597f759fd9dd93513dd7e92e5a5ee08" -dependencies = [ - "rand_core 0.3.1", -] - -[[package]] -name = "rand_jitter" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1166d5c91dc97b88d1decc3285bb0a99ed84b05cfd0bc2341bdf2d43fc41e39b" -dependencies = [ - "libc", - "rand_core 0.4.2", - "winapi 0.3.8", -] - -[[package]] -name = "rand_os" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b75f676a1e053fc562eafbb47838d67c84801e38fc1ba459e8f180deabd5071" -dependencies = [ - "cloudabi", - "fuchsia-cprng", - "libc", - "rand_core 0.4.2", - "rdrand", - "winapi 0.3.8", -] - -[[package]] -name = "rand_pcg" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abf9b09b01790cfe0364f52bf32995ea3c39f4d2dd011eac241d2914146d0b44" -dependencies = [ - "autocfg 0.1.7", - "rand_core 0.4.2", -] - -[[package]] -name = "rand_pcg" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16abd0c1b639e9eb4d7c50c0b8100b0d0f849be2349829c740fe8e6eb4816429" -dependencies = [ - "rand_core 0.5.1", -] - -[[package]] -name = "rand_xorshift" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbf7e9e623549b0e21f6e97cf8ecf247c1a8fd2e8a992ae265314300b2455d5c" -dependencies = [ - "rand_core 0.3.1", -] - -[[package]] -name = "rayon" -version = "1.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62f02856753d04e03e26929f820d0a0a337ebe71f849801eea335d464b349080" -dependencies = [ - "autocfg 1.0.0", - "crossbeam-deque", - "either", - "rayon-core", -] - -[[package]] -name = "rayon-core" -version = "1.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e92e15d89083484e11353891f1af602cc661426deb9564c298b270c726973280" -dependencies = [ - "crossbeam-deque", - "crossbeam-queue", - "crossbeam-utils", - "lazy_static", - "num_cpus", -] - -[[package]] -name = "rdrand" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2" -dependencies = [ - "rand_core 0.3.1", -] - -[[package]] -name = "redox_syscall" -version = "0.1.56" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2439c63f3f6139d1b57529d16bc3b8bb855230c8efcc5d3a896c8bea7c3b1e84" - -[[package]] -name = "redox_users" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09b23093265f8d200fa7b4c2c76297f47e681c655f6f1285a8780d6a022f7431" -dependencies = [ - "getrandom", - "redox_syscall", - "rust-argon2", -] - -[[package]] -name = "regex" -version = "1.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c3780fcf44b193bc4d09f36d2a3c87b251da4a046c87795a0d35f4f927ad8e6" -dependencies = [ - "aho-corasick", - "memchr", - "regex-syntax", - "thread_local", -] - -[[package]] -name = "regex-syntax" -version = "0.6.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26412eb97c6b088a6997e05f69403a802a92d520de2f8e63c2b65f9e0f47c4e8" - -[[package]] -name = "remove_dir_all" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a83fa3702a688b9359eccba92d153ac33fd2e8462f9e0e3fdf155239ea7792e" -dependencies = [ - "winapi 0.3.8", -] - -[[package]] -name = "rental" -version = "0.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8545debe98b2b139fb04cad8618b530e9b07c152d99a5de83c860b877d67847f" -dependencies = [ - "rental-impl", - "stable_deref_trait", -] - -[[package]] -name = "rental-impl" -version = "0.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "475e68978dc5b743f2f40d8e0a8fdc83f1c5e78cbf4b8fa5e74e73beebc340de" -dependencies = [ - "proc-macro2 1.0.17", - "quote 1.0.6", - "syn 1.0.27", -] - -[[package]] -name = "reqwest" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b82c9238b305f26f53443e3a4bc8528d64b8d0bee408ec949eb7bf5635ec680" -dependencies = [ - "base64 0.12.3", - "bytes 0.5.4", - "encoding_rs", - "futures-core", - "futures-util", - "http 0.2.1", - "http-body 0.3.1", - "hyper 0.13.5", - "hyper-rustls", - "js-sys", - "lazy_static", - "log", - "mime", - "mime_guess", - "percent-encoding 2.1.0", - "pin-project-lite", - "rustls", - "serde", - "serde_json", - "serde_urlencoded", - "tokio 0.2.21", - "tokio-rustls", - "url 2.1.1", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "webpki-roots", - "winreg", -] - -[[package]] -name = "ring" -version = "0.16.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ba5a8ec64ee89a76c98c549af81ff14813df09c3e6dc4766c3856da48597a0c" -dependencies = [ - "cc", - "lazy_static", - "libc", - "spin", - "untrusted", - "web-sys", - "winapi 0.3.8", -] - -[[package]] -name = "rust-argon2" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bc8af4bda8e1ff4932523b94d3dd20ee30a87232323eda55903ffd71d2fb017" -dependencies = [ - "base64 0.11.0", - "blake2b_simd", - "constant_time_eq", - "crossbeam-utils", -] - -[[package]] -name = "rustc-demangle" -version = "0.1.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c691c0e608126e00913e33f0ccf3727d5fc84573623b8d65b2df340b5201783" - -[[package]] -name = "rustc_version" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" -dependencies = [ - "semver", -] - -[[package]] -name = "rustls" -version = "0.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0d4a31f5d68413404705d6982529b0e11a9aacd4839d1d6222ee3b8cb4015e1" -dependencies = [ - "base64 0.11.0", - "log", - "ring", - "sct", - "webpki", -] - -[[package]] -name = "rustversion" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9bdc5e856e51e685846fb6c13a1f5e5432946c2c90501bdc76a1319f19e29da" -dependencies = [ - "proc-macro2 1.0.17", - "quote 1.0.6", - "syn 1.0.27", -] - -[[package]] -name = "rusty-fork" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3dd93264e10c577503e926bd1430193eeb5d21b059148910082245309b424fae" -dependencies = [ - "fnv", - "quick-error", - "tempfile", - "wait-timeout", -] - -[[package]] -name = "ryu" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed3d612bc64430efeb3f7ee6ef26d590dce0c43249217bddc62112540c7941e1" - -[[package]] -name = "scopeguard" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" - -[[package]] -name = "sct" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3042af939fca8c3453b7af0f1c66e533a15a86169e39de2657310ade8f98d3c" -dependencies = [ - "ring", - "untrusted", -] - -[[package]] -name = "semver" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" -dependencies = [ - "semver-parser", -] - -[[package]] -name = "semver-parser" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" - -[[package]] -name = "serde" -version = "1.0.112" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "736aac72d1eafe8e5962d1d1c3d99b0df526015ba40915cb3c49d042e92ec243" -dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde_bytes" -version = "0.11.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3bf487fbf5c6239d7ea2ff8b10cb6b811cd4b5080d1c2aeed1dec18753c06e10" -dependencies = [ - "serde", -] - -[[package]] -name = "serde_derive" -version = "1.0.112" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf0343ce212ac0d3d6afd9391ac8e9c9efe06b533c8d33f660f6390cc4093f57" -dependencies = [ - "proc-macro2 1.0.17", - "quote 1.0.6", - "syn 1.0.27", -] - -[[package]] -name = "serde_json" -version = "1.0.56" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3433e879a558dde8b5e8feb2a04899cf34fdde1fafb894687e52105fc1162ac3" -dependencies = [ - "itoa", - "ryu", - "serde", -] - -[[package]] -name = "serde_urlencoded" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ec5d77e2d4c73717816afac02670d5c4f534ea95ed430442cad02e7a6e32c97" -dependencies = [ - "dtoa", - "itoa", - "serde", - "url 2.1.1", -] - -[[package]] -name = "sha-1" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7d94d0bede923b3cea61f3f1ff57ff8cdfd77b400fb8f9998949e0cf04163df" -dependencies = [ - "block-buffer", - "digest", - "fake-simd", - "opaque-debug", -] - -[[package]] -name = "sha2" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a256f46ea78a0c0d9ff00077504903ac881a1dafdc20da66545699e7776b3e69" -dependencies = [ - "block-buffer", - "digest", - "fake-simd", - "opaque-debug", -] - -[[package]] -name = "sha3" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd26bc0e7a2e3a7c959bc494caf58b72ee0c71d67704e9520f736ca7e4853ecf" -dependencies = [ - "block-buffer", - "byte-tools", - "digest", - "keccak", - "opaque-debug", -] - -[[package]] -name = "siphasher" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b8de496cf83d4ed58b6be86c3a275b8602f6ffe98d3024a869e124147a9a3ac" - -[[package]] -name = "slab" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8" - -[[package]] -name = "slog" -version = "2.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cc9c640a4adbfbcc11ffb95efe5aa7af7309e002adab54b185507dbf2377b99" - -[[package]] -name = "slog-async" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51b3336ce47ce2f96673499fc07eb85e3472727b9a7a2959964b002c2ce8fbbb" -dependencies = [ - "crossbeam-channel", - "slog", - "take_mut", - "thread_local", -] - -[[package]] -name = "slog-envlogger" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "906a1a0bc43fed692df4b82a5e2fbfc3733db8dad8bb514ab27a4f23ad04f5c0" -dependencies = [ - "log", - "regex", - "slog", - "slog-async", - "slog-scope", - "slog-stdlog", - "slog-term", -] - -[[package]] -name = "slog-scope" -version = "4.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c44c89dd8b0ae4537d1ae318353eaf7840b4869c536e31c41e963d1ea523ee6" -dependencies = [ - "arc-swap", - "lazy_static", - "slog", -] - -[[package]] -name = "slog-stdlog" -version = "4.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be4d87903baf655da2d82bc3ac3f7ef43868c58bf712b3a661fda72009304c23" -dependencies = [ - "crossbeam", - "log", - "slog", - "slog-scope", -] - -[[package]] -name = "slog-term" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "124501187c410b6a46fe8a47a48435ae462fae4e02d03c558d358f40b17308cb" -dependencies = [ - "atty", - "chrono", - "slog", - "term 0.6.1", - "thread_local", -] - -[[package]] -name = "smallvec" -version = "0.6.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7b0758c52e15a8b5e3691eae6cc559f08eee9406e548a4477ba4e67770a82b6" -dependencies = [ - "maybe-uninit", -] - -[[package]] -name = "smallvec" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7cb5678e1615754284ec264d9bb5b4c27d2018577fd90ac0ceb578591ed5ee4" - -[[package]] -name = "solana-crate-features" -version = "1.3.0" -dependencies = [ - "backtrace", - "bytes 0.4.12", - "cc", - "curve25519-dalek 2.1.0", - "ed25519-dalek", - "either", - "failure", - "lazy_static", - "libc", - "rand_chacha 0.2.2", - "regex-syntax", - "reqwest", - "serde", - "syn 0.15.44", - "syn 1.0.27", - "tokio 0.1.22", - "winapi 0.3.8", -] - -[[package]] -name = "solana-logger" -version = "1.3.0" -dependencies = [ - "env_logger", - "lazy_static", - "log", -] - -[[package]] -name = "solana-move-loader-program" -version = "1.3.0" -dependencies = [ - "bincode", - "indexmap", - "log", - "num-derive", - "num-traits", - "serde", - "serde_bytes", - "serde_derive", - "serde_json", - "solana-logger", - "solana-sdk", - "solana_libra_bytecode_verifier", - "solana_libra_canonical_serialization", - "solana_libra_compiler", - "solana_libra_failure_ext", - "solana_libra_state_view", - "solana_libra_stdlib", - "solana_libra_types", - "solana_libra_vm", - "solana_libra_vm_cache_map", - "solana_libra_vm_runtime", - "solana_libra_vm_runtime_types", - "thiserror", -] - -[[package]] -name = "solana-sdk" -version = "1.3.0" -dependencies = [ - "assert_matches", - "bincode", - "bs58 0.3.1", - "bv", - "byteorder", - "chrono", - "ed25519-dalek", - "generic-array 0.14.3", - "hex 0.4.2", - "hmac", - "itertools 0.9.0", - "log", - "memmap", - "num-derive", - "num-traits", - "pbkdf2", - "rand 0.7.3", - "rand_chacha 0.2.2", - "rustc_version", - "rustversion", - "serde", - "serde_bytes", - "serde_derive", - "serde_json", - "sha2", - "solana-crate-features", - "solana-logger", - "solana-sdk-macro", - "solana-sdk-macro-frozen-abi", - "thiserror", -] - -[[package]] -name = "solana-sdk-macro" -version = "1.3.0" -dependencies = [ - "bs58 0.3.1", - "proc-macro2 1.0.17", - "quote 1.0.6", - "rustversion", - "syn 1.0.27", -] - -[[package]] -name = "solana-sdk-macro-frozen-abi" -version = "1.3.0" -dependencies = [ - "lazy_static", - "proc-macro2 1.0.17", - "quote 1.0.6", - "rustc_version", - "syn 1.0.27", -] - -[[package]] -name = "solana_libra_bytecode_verifier" -version = "0.0.1-sol5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd72dfd0637c9f15ec52ef5739d92594ba38ad0e644720e882b28f85afef1132" -dependencies = [ - "mirai-annotations", - "petgraph", - "solana_libra_failure_ext", - "solana_libra_types", - "solana_libra_vm", - "solana_libra_vm_runtime_types", -] - -[[package]] -name = "solana_libra_canonical_serialization" -version = "0.0.1-sol5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4fe30d99c623682886f986147887f7b5b14f6ac290da5801163beb22f42ad1f" -dependencies = [ - "byteorder", - "solana_libra_failure_ext", -] - -[[package]] -name = "solana_libra_compiler" -version = "0.0.1-sol5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72384762bc7e859c7ac8a45dbf3e29b2913467a45d3e015982ec676e72181c22" -dependencies = [ - "serde_json", - "solana_libra_bytecode_verifier", - "solana_libra_failure_ext", - "solana_libra_ir_to_bytecode", - "solana_libra_stdlib", - "solana_libra_types", - "solana_libra_vm", - "structopt", -] - -[[package]] -name = "solana_libra_config" -version = "0.0.1-sol5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0f419b7ea9bc1689c774c695ede05b4c285030a948b09fad0fadb7b0631600e" -dependencies = [ - "get_if_addrs", - "hex 0.3.2", - "mirai-annotations", - "parity-multiaddr", - "prost", - "rand 0.7.3", - "serde", - "solana_libra_crypto", - "solana_libra_failure_ext", - "solana_libra_logger", - "solana_libra_tools", - "solana_libra_types", - "toml", -] - -[[package]] -name = "solana_libra_crypto" -version = "0.0.1-sol5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bf6484e75e14d60d018408fe1f6b7a7b3b46814638935b145f1a3cb16eb3ec9" -dependencies = [ - "bincode", - "byteorder", - "bytes 0.4.12", - "curve25519-dalek 1.2.3", - "digest", - "ed25519-dalek", - "hex 0.3.2", - "hmac", - "lazy_static", - "pairing", - "proptest", - "proptest-derive", - "rand 0.7.3", - "serde", - "sha2", - "sha3", - "solana_libra_canonical_serialization", - "solana_libra_crypto-derive", - "solana_libra_failure_ext", - "solana_libra_nibble", - "threshold_crypto", - "tiny-keccak", - "x25519-dalek", -] - -[[package]] -name = "solana_libra_crypto-derive" -version = "0.0.1-sol5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67801085b6adee0d30caa77d126bbceafa4b9bb8f4c7871e29638faa20dcd8b1" -dependencies = [ - "proc-macro2 1.0.17", - "quote 1.0.6", - "syn 1.0.27", -] - -[[package]] -name = "solana_libra_failure_ext" -version = "0.0.1-sol5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "855b1630e51456c58cb73ff6182b61a40c500dcaf5512ccf359a461225b58511" -dependencies = [ - "failure", - "solana_libra_failure_macros", -] - -[[package]] -name = "solana_libra_failure_macros" -version = "0.0.1-sol5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bf1d38966c68be541232f166205f352f16defd665f50d6db1f1736872d716af" - -[[package]] -name = "solana_libra_ir_to_bytecode" -version = "0.0.1-sol5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8b20477a89c89fc10b18b5f6d01f2c8d58c363e49a6b8db208152825622c051" -dependencies = [ - "codespan", - "codespan-reporting", - "lalrpop-util", - "log", - "solana_libra_failure_ext", - "solana_libra_ir_to_bytecode_syntax", - "solana_libra_types", - "solana_libra_vm", -] - -[[package]] -name = "solana_libra_ir_to_bytecode_syntax" -version = "0.0.1-sol5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99492e984c4f283b561385d5bb15a63bdf55e8f741477e00f8e57b8934749bd0" -dependencies = [ - "codespan", - "hex 0.3.2", - "lalrpop", - "lalrpop-util", - "lazy_static", - "regex", - "solana_libra_failure_ext", - "solana_libra_types", -] - -[[package]] -name = "solana_libra_logger" -version = "0.0.1-sol5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62fb1d124421fda39a5d872c8b5add50ce7cf43a88505e0aea702a575127a3c8" -dependencies = [ - "backtrace", - "chrono", - "itertools 0.8.2", - "lazy_static", - "rand 0.7.3", - "rand_core 0.5.1", - "serde", - "serde_json", - "slog", - "slog-async", - "slog-envlogger", - "slog-scope", - "slog-term", - "thread-id", -] - -[[package]] -name = "solana_libra_metrics" -version = "0.0.1-sol5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94edebdee2305eabf8ccd7571eecaaa4328d4aba493c3a3e988db67230a8a8c4" -dependencies = [ - "futures", - "hyper 0.12.35", - "lazy_static", - "prometheus", - "serde_json", - "solana_libra_failure_ext", - "solana_libra_logger", -] - -[[package]] -name = "solana_libra_nibble" -version = "0.0.1-sol5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8f40b8a06a508a618a23be932d07c2dc0a87a152f98dafc451d1bedb3a9c0c8" -dependencies = [ - "proptest", - "serde", -] - -[[package]] -name = "solana_libra_proptest_helpers" -version = "0.0.1-sol5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e098b96303a5fc002a12f67692fd9271372d86fd0a82774153933324125567e2" -dependencies = [ - "crossbeam", - "proptest", - "proptest-derive", -] - -[[package]] -name = "solana_libra_state_view" -version = "0.0.1-sol5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cd9ace92273edf4f681d6a9dcb93ed8f444e0a4db45efc3ffd26ff35eea4051" -dependencies = [ - "solana_libra_failure_ext", - "solana_libra_types", -] - -[[package]] -name = "solana_libra_stdlib" -version = "0.0.1-sol5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c56b6211942fba07b187288fa22ff6bce829337c3982427431501edab017bfd4" -dependencies = [ - "lazy_static", - "solana_libra_bytecode_verifier", - "solana_libra_ir_to_bytecode", - "solana_libra_types", -] - -[[package]] -name = "solana_libra_tools" -version = "0.0.1-sol5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3415a2dd54cfe45a58639cac065c285a86bf31364e4a944d6ff9ff37b87a05e" -dependencies = [ - "hex 0.3.2", - "rand 0.7.3", -] - -[[package]] -name = "solana_libra_types" -version = "0.0.1-sol5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4524f25618443c6e1081bd141d9cf76fb76471c8da8dcd8c6e5057a0cd331b7" -dependencies = [ - "bech32", - "byteorder", - "bytes 0.4.12", - "chrono", - "hex 0.3.2", - "itertools 0.8.2", - "lazy_static", - "num_enum", - "proptest", - "proptest-derive", - "prost", - "prost-build", - "radix_trie", - "rand 0.7.3", - "serde", - "solana_libra_canonical_serialization", - "solana_libra_crypto", - "solana_libra_failure_ext", - "solana_libra_logger", - "solana_libra_proptest_helpers", - "tiny-keccak", -] - -[[package]] -name = "solana_libra_vm" -version = "0.0.1-sol5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f970fd967e20709b9fa131a0764a91128fe8583859bc23cdf82b7a3e98ef3cd" -dependencies = [ - "byteorder", - "hex 0.3.2", - "lazy_static", - "mirai-annotations", - "proptest", - "proptest-derive", - "serde", - "solana_libra_canonical_serialization", - "solana_libra_crypto", - "solana_libra_failure_ext", - "solana_libra_proptest_helpers", - "solana_libra_types", -] - -[[package]] -name = "solana_libra_vm_cache_map" -version = "0.0.1-sol5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "332cdd6a4c4c1d72aee9fb495d190c7338cdaf38179a2d624b51e0e25bdc852d" -dependencies = [ - "chashmap", - "typed-arena", -] - -[[package]] -name = "solana_libra_vm_runtime" -version = "0.0.1-sol5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "804a1a7ce9fa28f3281a5cbb1d2747917d1a4d80f954243592da77389539a9ef" -dependencies = [ - "hex 0.3.2", - "lazy_static", - "mirai-annotations", - "prometheus", - "proptest", - "rayon", - "rental", - "solana_libra_bytecode_verifier", - "solana_libra_canonical_serialization", - "solana_libra_config", - "solana_libra_crypto", - "solana_libra_logger", - "solana_libra_metrics", - "solana_libra_state_view", - "solana_libra_types", - "solana_libra_vm", - "solana_libra_vm_cache_map", - "solana_libra_vm_runtime_types", -] - -[[package]] -name = "solana_libra_vm_runtime_types" -version = "0.0.1-sol5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "790621a290a17a41cec0883decc861b2102b5d4d9f638492bbc55613ea142e85" -dependencies = [ - "bit-vec", - "lazy_static", - "proptest", - "sha2", - "solana_libra_canonical_serialization", - "solana_libra_crypto", - "solana_libra_failure_ext", - "solana_libra_types", - "solana_libra_vm", -] - -[[package]] -name = "spin" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" - -[[package]] -name = "stable_deref_trait" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dba1a27d3efae4351c8051072d619e3ade2820635c3958d826bfea39d59b54c8" - -[[package]] -name = "string" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d24114bfcceb867ca7f71a0d3fe45d45619ec47a6fbfa98cb14e14250bfa5d6d" -dependencies = [ - "bytes 0.4.12", -] - -[[package]] -name = "string_cache" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89c058a82f9fd69b1becf8c274f412281038877c553182f1d02eb027045a2d67" -dependencies = [ - "lazy_static", - "new_debug_unreachable", - "phf_shared", - "precomputed-hash", - "serde", - "string_cache_codegen", - "string_cache_shared", -] - -[[package]] -name = "string_cache_codegen" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0f45ed1b65bf9a4bf2f7b7dc59212d1926e9eaf00fa998988e420fd124467c6" -dependencies = [ - "phf_generator", - "phf_shared", - "proc-macro2 1.0.17", - "quote 1.0.6", - "string_cache_shared", -] - -[[package]] -name = "string_cache_shared" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1884d1bc09741d466d9b14e6d37ac89d6909cbcac41dd9ae982d4d063bbedfc" - -[[package]] -name = "strsim" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" - -[[package]] -name = "strsim" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6446ced80d6c486436db5c078dde11a9f73d42b57fb273121e160b84f63d894c" - -[[package]] -name = "structopt" -version = "0.3.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "863246aaf5ddd0d6928dfeb1a9ca65f505599e4e1b399935ef7e75107516b4ef" -dependencies = [ - "clap", - "lazy_static", - "structopt-derive", -] - -[[package]] -name = "structopt-derive" -version = "0.4.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d239ca4b13aee7a2142e6795cbd69e457665ff8037aed33b3effdc430d2f927a" -dependencies = [ - "heck", - "proc-macro-error", - "proc-macro2 1.0.17", - "quote 1.0.6", - "syn 1.0.27", -] - -[[package]] -name = "subtle" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d67a5a62ba6e01cb2192ff309324cb4875d0c451d55fe2319433abe7a05a8ee" - -[[package]] -name = "subtle" -version = "2.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c65d530b10ccaeac294f349038a597e435b18fb456aadd0840a623f83b9e941" - -[[package]] -name = "syn" -version = "0.15.44" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ca4b3b69a77cbe1ffc9e198781b7acb0c7365a883670e8f1c1bc66fba79a5c5" -dependencies = [ - "proc-macro2 0.4.30", - "quote 0.6.13", - "unicode-xid 0.1.0", -] - -[[package]] -name = "syn" -version = "1.0.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef781e621ee763a2a40721a8861ec519cb76966aee03bb5d00adb6a31dc1c1de" -dependencies = [ - "proc-macro2 1.0.17", - "quote 1.0.6", - "unicode-xid 0.2.0", -] - -[[package]] -name = "syn-mid" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7be3539f6c128a931cf19dcee741c1af532c7fd387baa739c03dd2e96479338a" -dependencies = [ - "proc-macro2 1.0.17", - "quote 1.0.6", - "syn 1.0.27", -] - -[[package]] -name = "synstructure" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67656ea1dc1b41b1451851562ea232ec2e5a80242139f7e679ceccfb5d61f545" -dependencies = [ - "proc-macro2 1.0.17", - "quote 1.0.6", - "syn 1.0.27", - "unicode-xid 0.2.0", -] - -[[package]] -name = "take_mut" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f764005d11ee5f36500a149ace24e00e3da98b0158b3e2d53a7495660d3f4d60" - -[[package]] -name = "tempfile" -version = "3.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a6e24d9338a0a5be79593e2fa15a648add6138caa803e2d5bc782c371732ca9" -dependencies = [ - "cfg-if", - "libc", - "rand 0.7.3", - "redox_syscall", - "remove_dir_all", - "winapi 0.3.8", -] - -[[package]] -name = "term" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edd106a334b7657c10b7c540a0106114feadeb4dc314513e97df481d5d966f42" -dependencies = [ - "byteorder", - "dirs 1.0.5", - "winapi 0.3.8", -] - -[[package]] -name = "term" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0863a3345e70f61d613eab32ee046ccd1bcc5f9105fe402c61fcd0c13eeb8b5" -dependencies = [ - "dirs 2.0.2", - "winapi 0.3.8", -] - -[[package]] -name = "termcolor" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb6bfa289a4d7c5766392812c0a1f4c1ba45afa1ad47803c11e1f407d846d75f" -dependencies = [ - "winapi-util", -] - -[[package]] -name = "textwrap" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060" -dependencies = [ - "unicode-width", -] - -[[package]] -name = "thiserror" -version = "1.0.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b13f926965ad00595dd129fa12823b04bbf866e9085ab0a5f2b05b850fbfc344" -dependencies = [ - "thiserror-impl", -] - -[[package]] -name = "thiserror-impl" -version = "1.0.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "893582086c2f98cde18f906265a65b5030a074b1046c674ae898be6519a7f479" -dependencies = [ - "proc-macro2 1.0.17", - "quote 1.0.6", - "syn 1.0.27", -] - -[[package]] -name = "thread-id" -version = "3.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7fbf4c9d56b320106cd64fd024dadfa0be7cb4706725fc44a7d7ce952d820c1" -dependencies = [ - "libc", - "redox_syscall", - "winapi 0.3.8", -] - -[[package]] -name = "thread_local" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d40c6d1b69745a6ec6fb1ca717914848da4b44ae29d9b3080cbee91d72a69b14" -dependencies = [ - "lazy_static", -] - -[[package]] -name = "threshold_crypto" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95be1032c63011f20b01c5edb64930e2b51512782b43b458b1e3449613d70f87" -dependencies = [ - "byteorder", - "errno", - "failure", - "hex_fmt", - "log", - "memsec", - "pairing", - "rand 0.6.5", - "rand04_compat", - "rand_chacha 0.1.1", - "serde", - "tiny-keccak", -] - -[[package]] -name = "time" -version = "0.1.43" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca8a50ef2360fbd1eeb0ecd46795a87a19024eb4b53c5dc916ca1fd95fe62438" -dependencies = [ - "libc", - "winapi 0.3.8", -] - -[[package]] -name = "tiny-keccak" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d8a021c69bb74a44ccedb824a046447e2c84a01df9e5c20779750acb38e11b2" -dependencies = [ - "crunchy", -] - -[[package]] -name = "tokio" -version = "0.1.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a09c0b5bb588872ab2f09afa13ee6e9dac11e10a0ec9e8e3ba39a5a5d530af6" -dependencies = [ - "bytes 0.4.12", - "futures", - "mio", - "num_cpus", - "tokio-codec", - "tokio-current-thread", - "tokio-executor", - "tokio-fs", - "tokio-io", - "tokio-reactor", - "tokio-sync", - "tokio-tcp", - "tokio-threadpool", - "tokio-timer", - "tokio-udp", - "tokio-uds", -] - -[[package]] -name = "tokio" -version = "0.2.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d099fa27b9702bed751524694adbe393e18b36b204da91eb1cbbbbb4a5ee2d58" -dependencies = [ - "bytes 0.5.4", - "fnv", - "futures-core", - "iovec", - "lazy_static", - "memchr", - "mio", - "num_cpus", - "pin-project-lite", - "slab", -] - -[[package]] -name = "tokio-buf" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fb220f46c53859a4b7ec083e41dec9778ff0b1851c0942b211edb89e0ccdc46" -dependencies = [ - "bytes 0.4.12", - "either", - "futures", -] - -[[package]] -name = "tokio-codec" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25b2998660ba0e70d18684de5d06b70b70a3a747469af9dea7618cc59e75976b" -dependencies = [ - "bytes 0.4.12", - "futures", - "tokio-io", -] - -[[package]] -name = "tokio-current-thread" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1de0e32a83f131e002238d7ccde18211c0a5397f60cbfffcb112868c2e0e20e" -dependencies = [ - "futures", - "tokio-executor", -] - -[[package]] -name = "tokio-executor" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb2d1b8f4548dbf5e1f7818512e9c406860678f29c300cdf0ebac72d1a3a1671" -dependencies = [ - "crossbeam-utils", - "futures", -] - -[[package]] -name = "tokio-fs" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "297a1206e0ca6302a0eed35b700d292b275256f596e2f3fea7729d5e629b6ff4" -dependencies = [ - "futures", - "tokio-io", - "tokio-threadpool", -] - -[[package]] -name = "tokio-io" -version = "0.1.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57fc868aae093479e3131e3d165c93b1c7474109d13c90ec0dda2a1bbfff0674" -dependencies = [ - "bytes 0.4.12", - "futures", - "log", -] - -[[package]] -name = "tokio-reactor" -version = "0.1.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09bc590ec4ba8ba87652da2068d150dcada2cfa2e07faae270a5e0409aa51351" -dependencies = [ - "crossbeam-utils", - "futures", - "lazy_static", - "log", - "mio", - "num_cpus", - "parking_lot 0.9.0", - "slab", - "tokio-executor", - "tokio-io", - "tokio-sync", -] - -[[package]] -name = "tokio-rustls" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15cb62a0d2770787abc96e99c1cd98fcf17f94959f3af63ca85bdfb203f051b4" -dependencies = [ - "futures-core", - "rustls", - "tokio 0.2.21", - "webpki", -] - -[[package]] -name = "tokio-sync" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edfe50152bc8164fcc456dab7891fa9bf8beaf01c5ee7e1dd43a397c3cf87dee" -dependencies = [ - "fnv", - "futures", -] - -[[package]] -name = "tokio-tcp" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98df18ed66e3b72e742f185882a9e201892407957e45fbff8da17ae7a7c51f72" -dependencies = [ - "bytes 0.4.12", - "futures", - "iovec", - "mio", - "tokio-io", - "tokio-reactor", -] - -[[package]] -name = "tokio-threadpool" -version = "0.1.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df720b6581784c118f0eb4310796b12b1d242a7eb95f716a8367855325c25f89" -dependencies = [ - "crossbeam-deque", - "crossbeam-queue", - "crossbeam-utils", - "futures", - "lazy_static", - "log", - "num_cpus", - "slab", - "tokio-executor", -] - -[[package]] -name = "tokio-timer" -version = "0.2.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93044f2d313c95ff1cb7809ce9a7a05735b012288a888b62d4434fd58c94f296" -dependencies = [ - "crossbeam-utils", - "futures", - "slab", - "tokio-executor", -] - -[[package]] -name = "tokio-udp" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2a0b10e610b39c38b031a2fcab08e4b82f16ece36504988dcbd81dbba650d82" -dependencies = [ - "bytes 0.4.12", - "futures", - "log", - "mio", - "tokio-codec", - "tokio-io", - "tokio-reactor", -] - -[[package]] -name = "tokio-uds" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5076db410d6fdc6523df7595447629099a1fdc47b3d9f896220780fa48faf798" -dependencies = [ - "bytes 0.4.12", - "futures", - "iovec", - "libc", - "log", - "mio", - "mio-uds", - "tokio-codec", - "tokio-io", - "tokio-reactor", -] - -[[package]] -name = "tokio-util" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be8242891f2b6cbef26a2d7e8605133c2c554cd35b3e4948ea892d6d68436499" -dependencies = [ - "bytes 0.5.4", - "futures-core", - "futures-sink", - "log", - "pin-project-lite", - "tokio 0.2.21", -] - -[[package]] -name = "toml" -version = "0.5.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffc92d160b1eef40665be3a05630d003936a3bc7da7421277846c2613e92c71a" -dependencies = [ - "serde", -] - -[[package]] -name = "tower-service" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e987b6bf443f4b5b3b6f38704195592cca41c5bb7aedd3c3693c7081f8289860" - -[[package]] -name = "try-lock" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e604eb7b43c06650e854be16a2a03155743d3752dd1c943f6829e26b7a36e382" - -[[package]] -name = "typed-arena" -version = "1.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9b2228007eba4120145f785df0f6c92ea538f5a3635a612ecf4e334c8c1446d" - -[[package]] -name = "typenum" -version = "1.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "373c8a200f9e67a0c95e62a4f52fbf80c23b4381c05a17845531982fa99e6b33" - -[[package]] -name = "unicase" -version = "2.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6" -dependencies = [ - "version_check", -] - -[[package]] -name = "unicode-bidi" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49f2bd0c6468a8230e1db229cff8029217cf623c767ea5d60bfbd42729ea54d5" -dependencies = [ - "matches", -] - -[[package]] -name = "unicode-normalization" -version = "0.1.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5479532badd04e128284890390c1e876ef7a993d0570b3597ae43dfa1d59afa4" -dependencies = [ - "smallvec 1.4.0", -] - -[[package]] -name = "unicode-segmentation" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e83e153d1053cbb5a118eeff7fd5be06ed99153f00dbcd8ae310c5fb2b22edc0" - -[[package]] -name = "unicode-width" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "caaa9d531767d1ff2150b9332433f32a24622147e5ebb1f26409d5da67afd479" - -[[package]] -name = "unicode-xid" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" - -[[package]] -name = "unicode-xid" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "826e7639553986605ec5979c7dd957c7895e93eabed50ab2ffa7f6128a75097c" - -[[package]] -name = "unsigned-varint" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7f0023a96687fe169081e8adce3f65e3874426b7886e9234d490af2dc077959" - -[[package]] -name = "untrusted" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" - -[[package]] -name = "url" -version = "1.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd4e7c0d531266369519a4aa4f399d748bd37043b00bde1e4ff1f60a120b355a" -dependencies = [ - "idna 0.1.5", - "matches", - "percent-encoding 1.0.1", -] - -[[package]] -name = "url" -version = "2.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "829d4a8476c35c9bf0bbce5a3b23f4106f79728039b726d292bb93bc106787cb" -dependencies = [ - "idna 0.2.0", - "matches", - "percent-encoding 2.1.0", -] - -[[package]] -name = "vec_map" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191" - -[[package]] -name = "version_check" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5a972e5669d67ba988ce3dc826706fb0a8b01471c088cb0b6110b805cc36aed" - -[[package]] -name = "wait-timeout" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6" -dependencies = [ - "libc", -] - -[[package]] -name = "want" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6395efa4784b027708f7451087e647ec73cc74f5d9bc2e418404248d679a230" -dependencies = [ - "futures", - "log", - "try-lock", -] - -[[package]] -name = "want" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0" -dependencies = [ - "log", - "try-lock", -] - -[[package]] -name = "wasi" -version = "0.9.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" - -[[package]] -name = "wasm-bindgen" -version = "0.2.63" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c2dc4aa152834bc334f506c1a06b866416a8b6697d5c9f75b9a689c8486def0" -dependencies = [ - "cfg-if", - "serde", - "serde_json", - "wasm-bindgen-macro", -] - -[[package]] -name = "wasm-bindgen-backend" -version = "0.2.63" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ded84f06e0ed21499f6184df0e0cb3494727b0c5da89534e0fcc55c51d812101" -dependencies = [ - "bumpalo", - "lazy_static", - "log", - "proc-macro2 1.0.17", - "quote 1.0.6", - "syn 1.0.27", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-futures" -version = "0.4.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64487204d863f109eb77e8462189d111f27cb5712cc9fdb3461297a76963a2f6" -dependencies = [ - "cfg-if", - "js-sys", - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "wasm-bindgen-macro" -version = "0.2.63" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "838e423688dac18d73e31edce74ddfac468e37b1506ad163ffaf0a46f703ffe3" -dependencies = [ - "quote 1.0.6", - "wasm-bindgen-macro-support", -] - -[[package]] -name = "wasm-bindgen-macro-support" -version = "0.2.63" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3156052d8ec77142051a533cdd686cba889537b213f948cd1d20869926e68e92" -dependencies = [ - "proc-macro2 1.0.17", - "quote 1.0.6", - "syn 1.0.27", - "wasm-bindgen-backend", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-shared" -version = "0.2.63" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9ba19973a58daf4db6f352eda73dc0e289493cd29fb2632eb172085b6521acd" - -[[package]] -name = "web-sys" -version = "0.3.40" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b72fe77fd39e4bd3eaa4412fd299a0be6b3dfe9d2597e2f1c20beb968f41d17" -dependencies = [ - "js-sys", - "wasm-bindgen", -] - -[[package]] -name = "webpki" -version = "0.21.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1f50e1972865d6b1adb54167d1c8ed48606004c2c9d0ea5f1eeb34d95e863ef" -dependencies = [ - "ring", - "untrusted", -] - -[[package]] -name = "webpki-roots" -version = "0.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8eff4b7516a57307f9349c64bf34caa34b940b66fed4b2fb3136cb7386e5739" -dependencies = [ - "webpki", -] - -[[package]] -name = "which" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b57acb10231b9493c8472b20cb57317d0679a49e0bdbee44b3b803a6473af164" -dependencies = [ - "failure", - "libc", -] - -[[package]] -name = "winapi" -version = "0.2.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" - -[[package]] -name = "winapi" -version = "0.3.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8093091eeb260906a183e6ae1abdba2ef5ef2257a21801128899c3fc699229c6" -dependencies = [ - "winapi-i686-pc-windows-gnu", - "winapi-x86_64-pc-windows-gnu", -] - -[[package]] -name = "winapi-build" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc" - -[[package]] -name = "winapi-i686-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" - -[[package]] -name = "winapi-util" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" -dependencies = [ - "winapi 0.3.8", -] - -[[package]] -name = "winapi-x86_64-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" - -[[package]] -name = "winreg" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0120db82e8a1e0b9fb3345a539c478767c0048d842860994d96113d5b667bd69" -dependencies = [ - "winapi 0.3.8", -] - -[[package]] -name = "ws2_32-sys" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e" -dependencies = [ - "winapi 0.2.8", - "winapi-build", -] - -[[package]] -name = "x25519-dalek" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "637ff90c9540fa3073bb577e65033069e4bae7c79d49d74aa3ffdf5342a53217" -dependencies = [ - "curve25519-dalek 2.1.0", - "rand_core 0.5.1", - "zeroize", -] - -[[package]] -name = "zeroize" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3cbac2ed2ba24cc90f5e06485ac8c7c1e5449fe8911aef4d8877218af021a5b8" -dependencies = [ - "zeroize_derive", -] - -[[package]] -name = "zeroize_derive" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de251eec69fc7c1bc3923403d18ececb929380e016afe103da75f396704f8ca2" -dependencies = [ - "proc-macro2 1.0.17", - "quote 1.0.6", - "syn 1.0.27", - "synstructure", -] diff --git a/programs/move_loader/Cargo.toml b/programs/move_loader/Cargo.toml deleted file mode 100644 index 068363da9..000000000 --- a/programs/move_loader/Cargo.toml +++ /dev/null @@ -1,42 +0,0 @@ -[package] -name = "solana-move-loader-program" -version = "1.3.0" -description = "Solana Move loader" -authors = ["Solana Maintainers "] -repository = "https://github.com/solana-labs/solana" -license = "Apache-2.0" -homepage = "https://solana.com/" -edition = "2018" - -[dependencies] -bincode = "1.2.0" -indexmap = "1.1.0" -log = "0.4.8" -serde = "1.0.104" -serde_bytes = "0.11" -serde_derive = "1.0.103" -serde_json = "1.0.46" -solana-logger = { path = "../../logger", version = "1.3.0" } -solana-sdk = { path = "../../sdk", version = "1.3.0" } - -bytecode_verifier = { version = "0.0.1-sol5", package = "solana_libra_bytecode_verifier" } -canonical_serialization = { version = "0.0.1-sol5", package = "solana_libra_canonical_serialization" } -compiler = { version = "0.0.1-sol5", package = "solana_libra_compiler" } -failure = { version = "0.0.1-sol5", package = "solana_libra_failure_ext" } -num-derive = { version = "0.3" } -num-traits = { version = "0.2" } -state_view = { version = "0.0.1-sol5", package = "solana_libra_state_view" } -stdlib = { version = "0.0.1-sol5", package = "solana_libra_stdlib" } -thiserror = "1.0" -types = { version = "0.0.1-sol5", package = "solana_libra_types" } -vm = { version = "0.0.1-sol5", package = "solana_libra_vm" } -vm_cache_map = { version = "0.0.1-sol5", package = "solana_libra_vm_cache_map" } -vm_runtime = { version = "0.0.1-sol5", package = "solana_libra_vm_runtime" } -vm_runtime_types = { version = "0.0.1-sol5", package = "solana_libra_vm_runtime_types" } - -[lib] -crate-type = ["lib", "cdylib"] -name = "solana_move_loader_program" - -[package.metadata.docs.rs] -targets = ["x86_64-unknown-linux-gnu"] diff --git a/programs/move_loader/src/account_state.rs b/programs/move_loader/src/account_state.rs deleted file mode 100644 index 60a27549c..000000000 --- a/programs/move_loader/src/account_state.rs +++ /dev/null @@ -1,201 +0,0 @@ -use crate::data_store::DataStore; -use crate::error_mappers::*; -use bytecode_verifier::VerifiedModule; -use compiler::Compiler; -use serde_derive::{Deserialize, Serialize}; -use solana_sdk::{instruction::InstructionError, pubkey::Pubkey}; -use std::convert::TryInto; -use stdlib::stdlib_modules; -use types::{ - account_address::AccountAddress, - account_config, - identifier::Identifier, - transaction::{Module, Script}, - write_set::{WriteOp, WriteSet}, -}; -use vm::{ - access::ModuleAccess, file_format::CompiledModule, transaction_metadata::TransactionMetadata, -}; -use vm_cache_map::Arena; -use vm_runtime::{ - code_cache::{ - module_adapter::FakeFetcher, - module_cache::{BlockModuleCache, VMModuleCache}, - }, - data_cache::BlockDataCache, - txn_executor::{TransactionExecutor, ACCOUNT_MODULE, BLOCK_MODULE, COIN_MODULE}, -}; -use vm_runtime_types::value::Value; - -// Helper function that converts a Solana Pubkey to a Libra AccountAddress (WIP) -pub fn pubkey_to_address(key: &Pubkey) -> AccountAddress { - AccountAddress::new(*to_array_32(key.as_ref())) -} -fn to_array_32(array: &[u8]) -> &[u8; 32] { - array.try_into().expect("slice with incorrect length") -} - -#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)] -pub struct ModuleBytes { - #[serde(with = "serde_bytes")] - pub bytes: Vec, -} - -/// Type of Libra account held by a Solana account -#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)] -pub enum LibraAccountState { - /// No data for this account yet - Unallocated, - /// Json string representation of types::transaction::Module - CompiledScript(String), - /// Json string representation of types::transaction::Script - CompiledModule(String), - /// Serialized verified script bytes - VerifiedScript { - #[serde(with = "serde_bytes")] - script_bytes: Vec, - }, - // Write set containing the published module - PublishedModule(WriteSet), - /// Associated genesis account and the write set containing the Libra account data - User(Pubkey, WriteSet), - /// Write sets containing the mint and stdlib modules - Genesis(WriteSet), -} -impl LibraAccountState { - pub fn create_unallocated() -> Self { - Self::Unallocated - } - - fn create_compiler(sender_address: &AccountAddress, deps: Vec<&Vec>) -> Compiler { - // Compiler needs all the dependencies and the dependency module's account's - // data into `VerifiedModules` - let mut extra_deps: Vec = vec![]; - for dep in deps { - let state: Self = bincode::deserialize(&dep).unwrap(); - if let Self::PublishedModule(write_set) = state { - for (_, write_op) in write_set.iter() { - if let WriteOp::Value(raw_bytes) = write_op { - let v = - VerifiedModule::new(CompiledModule::deserialize(&raw_bytes).unwrap()) - .unwrap(); - extra_deps.push(v); - } - } - } - } - - Compiler { - address: *sender_address, - extra_deps, - ..Compiler::default() - } - } - - pub fn create_script(sender_address: &AccountAddress, code: &str, deps: Vec<&Vec>) -> Self { - let compiler = Self::create_compiler(sender_address, deps); - let compiled_script = compiler.into_script(code).expect("Failed to compile"); - - let mut script_bytes = vec![]; - compiled_script - .serialize(&mut script_bytes) - .expect("Unable to serialize script"); - - // TODO args? - Self::CompiledScript(serde_json::to_string(&Script::new(script_bytes, vec![])).unwrap()) - } - - pub fn create_module(sender_address: &AccountAddress, code: &str, deps: Vec<&Vec>) -> Self { - let compiler = Self::create_compiler(sender_address, deps); - let compiled_module = compiler - .into_compiled_module(code) - .expect("Failed to compile"); - - let mut module_bytes = vec![]; - compiled_module - .serialize(&mut module_bytes) - .expect("Unable to serialize script"); - - Self::CompiledModule(serde_json::to_string(&Module::new(module_bytes)).unwrap()) - } - - pub fn create_user(owner: &Pubkey, write_set: WriteSet) -> Self { - Self::User(*owner, write_set) - } - - pub fn create_genesis(mint_balance: u64) -> Result { - let modules = stdlib_modules(); - let arena = Arena::new(); - let state_view = DataStore::default(); - let vm_cache = VMModuleCache::new(&arena); - let genesis_addr = account_config::association_address(); - - let write_set = { - let fake_fetcher = - FakeFetcher::new(modules.iter().map(|m| m.as_inner().clone()).collect()); - let data_cache = BlockDataCache::new(&state_view); - let block_cache = BlockModuleCache::new(&vm_cache, fake_fetcher); - - let mut txn_data = TransactionMetadata::default(); - txn_data.sender = genesis_addr; - - let mut txn_executor = TransactionExecutor::new(&block_cache, &data_cache, txn_data); - txn_executor.create_account(genesis_addr).unwrap(); - txn_executor - .create_account(account_config::core_code_address()) - .map_err(map_err_vm_status)?; - txn_executor - .execute_function( - &BLOCK_MODULE, - &Identifier::new("initialize").unwrap(), - vec![], - ) - .map_err(map_err_vm_status)?; - txn_executor - .execute_function( - &COIN_MODULE, - &Identifier::new("initialize").unwrap(), - vec![], - ) - .map_err(map_err_vm_status)?; - - txn_executor - .execute_function( - &ACCOUNT_MODULE, - &Identifier::new("mint_to_address").unwrap(), - vec![Value::address(genesis_addr), Value::u64(mint_balance)], - ) - .map_err(map_err_vm_status)?; - - // Bump the sequence number for the Association account. If we don't do this and a - // subsequent transaction (e.g., minting) is sent from the Association account, a problem - // arises: both the genesis transaction and the subsequent transaction have sequence - // number 0 - txn_executor - .execute_function( - &ACCOUNT_MODULE, - &Identifier::new("epilogue").unwrap(), - vec![], - ) - .map_err(map_err_vm_status)?; - - let mut stdlib_modules = vec![]; - for module in modules.iter() { - let mut buf = vec![]; - module.serialize(&mut buf).map_err(map_failure_error)?; - stdlib_modules.push((module.self_id(), buf)); - } - - txn_executor - .make_write_set(stdlib_modules, Ok(())) - .map_err(map_err_vm_status)? - .write_set() - .clone() - .into_mut() - } - .freeze() - .map_err(map_failure_error)?; - - Ok(Self::Genesis(write_set)) - } -} diff --git a/programs/move_loader/src/data_store.rs b/programs/move_loader/src/data_store.rs deleted file mode 100644 index 8b07bdc33..000000000 --- a/programs/move_loader/src/data_store.rs +++ /dev/null @@ -1,177 +0,0 @@ -use bytecode_verifier::verifier::VerifiedModule; -use canonical_serialization::SimpleDeserializer; -use failure::prelude::*; -use indexmap::IndexMap; -use log::*; -use state_view::StateView; -use types::{ - access_path::AccessPath, - account_address::AccountAddress, - account_config::{self, AccountResource}, - write_set::{WriteOp, WriteSet, WriteSetMut}, -}; -use vm::access::ModuleAccess; -use vm::errors::VMResult; -use vm_runtime::{data_cache::RemoteCache, identifier::create_access_path}; - -/// An in-memory implementation of [`StateView`] and [`RemoteCache`] for the VM. -#[derive(Debug, Default)] -pub struct DataStore { - data: IndexMap>, -} - -impl DataStore { - /// Creates a new `DataStore` with the provided initial data. - pub fn new(data: IndexMap>) -> Self { - Self { data } - } - - /// Applies a [`WriteSet`] to this data store. - pub fn apply_write_set(&mut self, write_set: &WriteSet) { - for (access_path, write_op) in write_set { - match write_op { - WriteOp::Value(value) => { - self.set(access_path.clone(), value.clone()); - } - WriteOp::Deletion => { - self.remove(access_path); - } - } - } - } - - /// Returns a `WriteSet` for each account in the `DataStore` - pub fn into_write_sets(mut self) -> Result> { - let mut write_set_muts: IndexMap = IndexMap::new(); - for (access_path, value) in self.data.drain(..) { - match write_set_muts.get_mut(&access_path.address) { - Some(write_set_mut) => write_set_mut.push((access_path, WriteOp::Value(value))), - None => { - write_set_muts.insert( - access_path.address, - WriteSetMut::new(vec![(access_path, WriteOp::Value(value))]), - ); - } - } - } - // Freeze each WriteSet - let mut write_sets: IndexMap = IndexMap::new(); - for (address, write_set_mut) in write_set_muts.drain(..) { - write_sets.insert(address, write_set_mut.freeze()?); - } - Ok(write_sets) - } - - /// Read an account's resource - pub fn read_account_resource(&self, addr: &AccountAddress) -> Option { - let access_path = create_access_path(&addr, account_config::account_struct_tag()); - self.data - .get(&access_path) - .and_then(|blob| SimpleDeserializer::deserialize(blob).ok()) - } - - /// Sets a (key, value) pair within this data store. - /// - /// Returns the previous data if the key was occupied. - pub fn set(&mut self, access_path: AccessPath, data_blob: Vec) -> Option> { - self.data.insert(access_path, data_blob) - } - - /// Deletes a key from this data store. - /// - /// Returns the previous data if the key was occupied. - pub fn remove(&mut self, access_path: &AccessPath) -> Option> { - self.data.remove(access_path) - } - - /// Adds a [`VerifiedModule`] to this data store. - pub fn add_module(&mut self, module: &VerifiedModule) -> Result<()> { - let access_path = AccessPath::from(&module.self_id()); - - let mut bytes = vec![]; - module.serialize(&mut bytes)?; - self.set(access_path, bytes); - Ok(()) - } - - /// Dumps the data store to stdout - pub fn dump(&self) { - trace!("Data store:"); - for (access_path, value) in &self.data { - trace!("{:?}: {:?}", access_path, value.len()); - } - } -} - -impl StateView for DataStore { - fn get(&self, access_path: &AccessPath) -> Result>> { - // Since the data is in-memory, it can't fail. - match self.data.get(access_path) { - None => Ok(None), - Some(value) => Ok(Some(value.clone())), - } - } - - fn multi_get(&self, _access_paths: &[AccessPath]) -> Result>>> { - unimplemented!(); - } - - fn is_genesis(&self) -> bool { - false - } -} - -impl RemoteCache for DataStore { - fn get(&self, access_path: &AccessPath) -> VMResult>> { - Ok(StateView::get(self, access_path).expect("it should not error")) - } -} - -#[cfg(test)] -mod tests { - use super::*; - use types::account_address::ADDRESS_LENGTH; - - #[test] - fn test_write_set_order() { - solana_logger::setup(); - - let mut data_store = DataStore::default(); - let address1 = AccountAddress::new([0; ADDRESS_LENGTH]); - let address2 = AccountAddress::new([1; ADDRESS_LENGTH]); - let address3 = AccountAddress::new([2; ADDRESS_LENGTH]); - - let mut before1 = WriteSetMut::default(); - let mut before2 = WriteSetMut::default(); - let mut before3 = WriteSetMut::default(); - for i in 1..10 { - before1.push(( - AccessPath::new(address1, AccountAddress::random().to_vec()), - WriteOp::Value(vec![i]), - )); - before2.push(( - AccessPath::new(address2, AccountAddress::random().to_vec()), - WriteOp::Value(vec![i]), - )); - before3.push(( - AccessPath::new(address3, AccountAddress::random().to_vec()), - WriteOp::Value(vec![i]), - )); - } - let before1 = before1.freeze().unwrap(); - let before2 = before2.freeze().unwrap(); - let before3 = before3.freeze().unwrap(); - data_store.apply_write_set(&before1); - data_store.apply_write_set(&before2); - data_store.apply_write_set(&before3); - - let write_sets = data_store.into_write_sets().unwrap(); - let after1 = write_sets.get(&address1).unwrap(); - let after2 = write_sets.get(&address2).unwrap(); - let after3 = write_sets.get(&address3).unwrap(); - - assert_eq!(&before1, after1); - assert_eq!(&before2, after2); - assert_eq!(&before3, after3); - } -} diff --git a/programs/move_loader/src/error_mappers.rs b/programs/move_loader/src/error_mappers.rs deleted file mode 100644 index 839373692..000000000 --- a/programs/move_loader/src/error_mappers.rs +++ /dev/null @@ -1,47 +0,0 @@ -//! Mapping functions to Instruction errors - -use log::*; -use solana_sdk::instruction::InstructionError; -use std::convert::TryInto; -use types::vm_error::{StatusCode, VMStatus}; -use vm::file_format::CompiledModule; - -#[allow(clippy::needless_pass_by_value)] -pub fn map_data_error(err: std::boxed::Box) -> InstructionError { - debug!("Error: Account data: {:?}", err); - match err.as_ref() { - bincode::ErrorKind::SizeLimit => InstructionError::AccountDataTooSmall, - _ => InstructionError::InvalidAccountData, - } -} - -#[allow(clippy::needless_pass_by_value)] -pub fn map_json_error(err: serde_json::error::Error) -> InstructionError { - debug!("Error: serde_json: {:?}", err); - InstructionError::InvalidAccountData -} - -pub fn map_vm_verification_error(err: (CompiledModule, Vec)) -> InstructionError { - debug!("Error: Script verification failed: {:?}", err.1); - InstructionError::InvalidInstructionData -} - -#[allow(clippy::needless_pass_by_value)] -pub fn missing_account() -> InstructionError { - debug!("Error: Missing account"); - InstructionError::InvalidAccountData -} - -pub fn map_failure_error(err: failure::Error) -> InstructionError { - debug!("Error: Script verification failed: {:?}", err); - InstructionError::InvalidInstructionData -} - -pub fn map_err_vm_status(status: VMStatus) -> InstructionError { - // Attempt to map the StatusCode (repr(u64)) to a u32 for Custom. - // The only defined StatusCode that fails is StatusCode::UNKNOWN_ERROR - match >::into(status.major_status).try_into() { - Ok(u) => InstructionError::Custom(u), - Err(_) => InstructionError::InvalidError, - } -} diff --git a/programs/move_loader/src/lib.rs b/programs/move_loader/src/lib.rs deleted file mode 100644 index d01cd1251..000000000 --- a/programs/move_loader/src/lib.rs +++ /dev/null @@ -1,12 +0,0 @@ -pub mod account_state; -pub mod data_store; -pub mod error_mappers; -pub mod processor; - -use crate::processor::MoveProcessor; - -solana_sdk::declare_loader!( - solana_sdk::move_loader::ID, - solana_move_loader_program, - MoveProcessor::process_instruction -); diff --git a/programs/move_loader/src/processor.rs b/programs/move_loader/src/processor.rs deleted file mode 100644 index bc0a8fff6..000000000 --- a/programs/move_loader/src/processor.rs +++ /dev/null @@ -1,918 +0,0 @@ -use crate::{ - account_state::{pubkey_to_address, LibraAccountState}, - data_store::DataStore, - error_mappers::*, -}; -use bincode::config::Options; -use bytecode_verifier::verifier::{VerifiedModule, VerifiedScript}; -use log::*; -use num_derive::{FromPrimitive, ToPrimitive}; -use serde_derive::{Deserialize, Serialize}; -use solana_sdk::{ - account::{is_executable, next_keyed_account, KeyedAccount}, - account_utils::State, - decode_error::DecodeError, - entrypoint_native::InvokeContext, - instruction::InstructionError, - move_loader::id, - program_utils::limited_deserialize, - pubkey::Pubkey, -}; -use thiserror::Error; -use types::{ - account_address::AccountAddress, - account_config, - identifier::Identifier, - transaction::{Module, Script, TransactionArgument, TransactionOutput}, -}; -use vm::{ - access::ModuleAccess, - file_format::{CompiledModule, CompiledScript}, - gas_schedule::{MAXIMUM_NUMBER_OF_GAS_UNITS, MAX_PRICE_PER_GAS_UNIT}, - transaction_metadata::TransactionMetadata, - vm_string::VMString, -}; -use vm_cache_map::Arena; -use vm_runtime::{ - code_cache::{ - module_adapter::ModuleFetcherImpl, - module_cache::{BlockModuleCache, ModuleCache, VMModuleCache}, - }, - txn_executor::TransactionExecutor, -}; -use vm_runtime_types::value::Value; - -#[derive(Error, Debug, Serialize, Clone, PartialEq, FromPrimitive, ToPrimitive)] -pub enum MoveError { - #[error("Invalid Move data store")] - InvalidDataStore, - #[error("Invaid Move script")] - InvalidScript, -} - -impl DecodeError for MoveError { - fn type_of() -> &'static str { - "MoveError" - } -} - -/// Instruction data passed to perform a loader operation, must be based -/// on solana_sdk::loader_instruction::LoaderInstruction -#[derive(Serialize, Deserialize, Debug)] -pub enum MoveLoaderInstruction { - /// Write program data into an account - /// - /// * key[0] - the account to write into. - /// - /// The transaction must be signed by key[0] - Write { - offset: u32, - #[serde(with = "serde_bytes")] - bytes: Vec, - }, - - /// Finalize an account loaded with program data for execution. - /// The exact preparation steps is loader specific but on success the loader must set the executable - /// bit of the Account - /// - /// * key[0] - the account to prepare for execution - /// - /// The transaction must be signed by key[0] - Finalize, - - /// Create a new genesis account - /// - /// * key[0] - the account to write the genesis into - /// - /// The transaction must be signed by key[0] - CreateGenesis(u64), -} - -/// Instruction data passed when executing a Move script -#[derive(Serialize, Deserialize, Debug)] -pub enum Executable { - RunScript { - /// Sender of the "transaction", the "sender" who is running this script - sender_address: AccountAddress, - /// Name of the script's function to call - function_name: String, - /// Arguments to pass to the script being called - args: Vec, - }, -} - -pub struct MoveProcessor {} - -impl MoveProcessor { - #[allow(clippy::needless_pass_by_value)] - fn missing_account() -> InstructionError { - debug!("Error: Missing libra account"); - InstructionError::InvalidAccountData - } - - fn arguments_to_values(args: Vec) -> Vec { - let mut locals = vec![]; - for arg in args { - locals.push(match arg { - TransactionArgument::U64(i) => Value::u64(i), - TransactionArgument::Address(a) => Value::address(a), - TransactionArgument::ByteArray(b) => Value::byte_array(b), - TransactionArgument::String(s) => Value::string(VMString::new(s)), - }); - } - locals - } - - fn serialize_and_enforce_length( - state: &LibraAccountState, - data: &mut Vec, - ) -> Result<(), InstructionError> { - let original_len = data.len() as u64; - let mut writer = std::io::Cursor::new(data); - bincode::options() - .with_limit(original_len) - .with_fixint_encoding() - .allow_trailing_bytes() - .serialize_into(&mut writer, &state) - .map_err(map_data_error)?; - if writer.position() < original_len { - writer.set_position(original_len); - } - Ok(()) - } - - fn deserialize_verified_script(data: &[u8]) -> Result { - match limited_deserialize(data)? { - LibraAccountState::VerifiedScript { script_bytes } => { - let script = - VerifiedScript::deserialize(&script_bytes).map_err(map_err_vm_status)?; - Ok(script) - } - _ => { - debug!("Error: Script account does not contain a script"); - Err(InstructionError::InvalidArgument) - } - } - } - - fn execute( - sender_address: AccountAddress, - function_name: &str, - args: Vec, - script: VerifiedScript, - data_store: &DataStore, - ) -> Result { - let allocator = Arena::new(); - let code_cache = VMModuleCache::new(&allocator); - let module_cache = BlockModuleCache::new(&code_cache, ModuleFetcherImpl::new(data_store)); - let modules_to_publish = vec![]; - - let main_module = script.into_module(); - let module_id = main_module.self_id(); - module_cache.cache_module(main_module); - - let mut txn_metadata = TransactionMetadata::default(); - txn_metadata.sender = sender_address; - - // Caps execution to the Libra prescribed 10 milliseconds - txn_metadata.max_gas_amount = *MAXIMUM_NUMBER_OF_GAS_UNITS; - txn_metadata.gas_unit_price = *MAX_PRICE_PER_GAS_UNIT; - - let mut vm = TransactionExecutor::new(&module_cache, data_store, txn_metadata); - vm.execute_function( - &module_id, - &Identifier::new(function_name).unwrap(), - Self::arguments_to_values(args), - ) - .map_err(map_err_vm_status)?; - - Ok(vm - .make_write_set(modules_to_publish, Ok(())) - .map_err(map_err_vm_status)?) - } - - fn keyed_accounts_to_data_store( - keyed_accounts: &[KeyedAccount], - ) -> Result { - let mut data_store = DataStore::default(); - - let mut keyed_accounts_iter = keyed_accounts.iter(); - let genesis = next_keyed_account(&mut keyed_accounts_iter)?; - - match limited_deserialize(&genesis.try_account_ref()?.data)? { - LibraAccountState::Genesis(write_set) => data_store.apply_write_set(&write_set), - _ => { - debug!("Must include a genesis account"); - return Err(InstructionError::InvalidArgument); - } - } - - for keyed_account in keyed_accounts_iter { - match limited_deserialize(&keyed_account.try_account_ref()?.data)? { - LibraAccountState::User(owner, write_set) => { - if owner != *genesis.unsigned_key() { - debug!("User account must be owned by this genesis"); - return Err(InstructionError::InvalidArgument); - } - data_store.apply_write_set(&write_set) - } - LibraAccountState::PublishedModule(write_set) => { - data_store.apply_write_set(&write_set) - } - _ => (), - } - } - Ok(data_store) - } - - fn data_store_to_keyed_accounts( - data_store: DataStore, - keyed_accounts: &[KeyedAccount], - ) -> Result<(), InstructionError> { - let mut write_sets = data_store - .into_write_sets() - .map_err(|_| MoveError::InvalidDataStore)?; - - let mut keyed_accounts_iter = keyed_accounts.iter(); - - // Genesis account holds both mint and stdlib - let genesis = next_keyed_account(&mut keyed_accounts_iter)?; - let genesis_key = *genesis.unsigned_key(); - let mut write_set = write_sets - .remove(&account_config::association_address()) - .ok_or_else(Self::missing_account)? - .into_mut(); - for (access_path, write_op) in write_sets - .remove(&account_config::core_code_address()) - .ok_or_else(Self::missing_account)? - .into_iter() - { - write_set.push((access_path, write_op)); - } - let write_set = write_set.freeze().unwrap(); - Self::serialize_and_enforce_length( - &LibraAccountState::Genesis(write_set), - &mut genesis.try_account_ref_mut()?.data, - )?; - - // Now do the rest of the accounts - for keyed_account in keyed_accounts_iter { - let write_set = write_sets - .remove(&pubkey_to_address(keyed_account.unsigned_key())) - .ok_or_else(Self::missing_account)?; - if !keyed_account.executable()? { - // Only write back non-executable accounts - Self::serialize_and_enforce_length( - &LibraAccountState::User(genesis_key, write_set), - &mut keyed_account.try_account_ref_mut()?.data, - )?; - } - } - if !write_sets.is_empty() { - debug!("Error: Missing keyed accounts"); - return Err(InstructionError::NotEnoughAccountKeys); - } - Ok(()) - } - - pub fn do_write( - keyed_accounts: &[KeyedAccount], - offset: u32, - bytes: &[u8], - ) -> Result<(), InstructionError> { - let mut keyed_accounts_iter = keyed_accounts.iter(); - let keyed_account = next_keyed_account(&mut keyed_accounts_iter)?; - - if keyed_account.signer_key().is_none() { - debug!("Error: key[0] did not sign the transaction"); - return Err(InstructionError::MissingRequiredSignature); - } - let offset = offset as usize; - let len = bytes.len(); - trace!("Write: offset={} length={}", offset, len); - if keyed_account.data_len()? < offset + len { - debug!( - "Error: Write overflow: {} < {}", - keyed_account.data_len()?, - offset + len - ); - return Err(InstructionError::AccountDataTooSmall); - } - keyed_account.try_account_ref_mut()?.data[offset..offset + len].copy_from_slice(&bytes); - Ok(()) - } - - pub fn do_finalize(keyed_accounts: &[KeyedAccount]) -> Result<(), InstructionError> { - let mut keyed_accounts_iter = keyed_accounts.iter(); - let finalized = next_keyed_account(&mut keyed_accounts_iter)?; - - if finalized.signer_key().is_none() { - debug!("Error: account to finalize did not sign the transaction"); - return Err(InstructionError::MissingRequiredSignature); - } - - match finalized.state()? { - LibraAccountState::CompiledScript(string) => { - let script: Script = serde_json::from_str(&string).map_err(map_json_error)?; - let compiled_script = - CompiledScript::deserialize(&script.code()).map_err(map_err_vm_status)?; - let verified_script = match VerifiedScript::new(compiled_script) { - Ok(script) => script, - Err((_, errors)) => { - if errors.is_empty() { - return Err(MoveError::InvalidScript.into()); - } else { - return Err(map_err_vm_status(errors[0].clone())); - } - } - }; - let mut script_bytes = vec![]; - verified_script - .as_inner() - .serialize(&mut script_bytes) - .map_err(map_failure_error)?; - Self::serialize_and_enforce_length( - &LibraAccountState::VerifiedScript { script_bytes }, - &mut finalized.try_account_ref_mut()?.data, - )?; - info!("Finalize script: {:?}", finalized.unsigned_key()); - } - LibraAccountState::CompiledModule(string) => { - let module: Module = serde_json::from_str(&string).map_err(map_json_error)?; - let compiled_module = - CompiledModule::deserialize(&module.code()).map_err(map_err_vm_status)?; - let verified_module = - VerifiedModule::new(compiled_module).map_err(map_vm_verification_error)?; - - let mut data_store = DataStore::default(); - data_store - .add_module(&verified_module) - .map_err(map_failure_error)?; - - let mut write_sets = data_store - .into_write_sets() - .map_err(|_| MoveError::InvalidDataStore)?; - - let write_set = write_sets - .remove(&pubkey_to_address(finalized.unsigned_key())) - .ok_or_else(Self::missing_account)?; - Self::serialize_and_enforce_length( - &LibraAccountState::PublishedModule(write_set), - &mut finalized.try_account_ref_mut()?.data, - )?; - - if !write_sets.is_empty() { - debug!("Error: Missing keyed accounts"); - return Err(InstructionError::NotEnoughAccountKeys); - } - - info!("Finalize module: {:?}", finalized.unsigned_key()); - } - _ => { - debug!("Error: Account to finalize does not contain compiled data"); - return Err(InstructionError::InvalidArgument); - } - }; - - finalized.try_account_ref_mut()?.executable = true; - - Ok(()) - } - - pub fn do_create_genesis( - keyed_accounts: &[KeyedAccount], - amount: u64, - ) -> Result<(), InstructionError> { - let mut keyed_accounts_iter = keyed_accounts.iter(); - let genesis = next_keyed_account(&mut keyed_accounts_iter)?; - - if genesis.owner()? != id() { - debug!("Error: Move genesis account not owned by Move loader"); - return Err(InstructionError::InvalidArgument); - } - - match genesis.state()? { - LibraAccountState::Unallocated => Self::serialize_and_enforce_length( - &LibraAccountState::create_genesis(amount)?, - &mut genesis.try_account_ref_mut()?.data, - ), - _ => { - debug!("Error: Must provide an unallocated account"); - Err(InstructionError::InvalidArgument) - } - } - } - - pub fn do_invoke_main( - keyed_accounts: &[KeyedAccount], - sender_address: AccountAddress, - function_name: String, - args: Vec, - ) -> Result<(), InstructionError> { - let mut keyed_accounts_iter = keyed_accounts.iter(); - let script = next_keyed_account(&mut keyed_accounts_iter)?; - - trace!( - "Run script {:?} with entrypoint {:?}", - script.unsigned_key(), - function_name - ); - - if script.owner()? != id() { - debug!("Error: Move script account not owned by Move loader"); - return Err(InstructionError::InvalidArgument); - } - if !script.executable()? { - debug!("Error: Move script account not executable"); - return Err(InstructionError::AccountNotExecutable); - } - - let data_accounts = keyed_accounts_iter.as_slice(); - - let mut data_store = Self::keyed_accounts_to_data_store(&data_accounts)?; - let verified_script = Self::deserialize_verified_script(&script.try_account_ref()?.data)?; - - let output = Self::execute( - sender_address, - &function_name, - args, - verified_script, - &data_store, - )?; - for event in output.events() { - trace!("Event: {:?}", event); - } - - data_store.apply_write_set(&output.write_set()); - Self::data_store_to_keyed_accounts(data_store, data_accounts) - } - - pub fn process_instruction( - _program_id: &Pubkey, - keyed_accounts: &[KeyedAccount], - instruction_data: &[u8], - _invoke_context: &mut dyn InvokeContext, - ) -> Result<(), InstructionError> { - solana_logger::setup(); - - if is_executable(keyed_accounts)? { - match limited_deserialize(&instruction_data)? { - Executable::RunScript { - sender_address, - function_name, - args, - } => Self::do_invoke_main(keyed_accounts, sender_address, function_name, args), - } - } else { - match limited_deserialize(instruction_data)? { - MoveLoaderInstruction::Write { offset, bytes } => { - Self::do_write(keyed_accounts, offset, &bytes) - } - MoveLoaderInstruction::Finalize => Self::do_finalize(keyed_accounts), - MoveLoaderInstruction::CreateGenesis(amount) => { - Self::do_create_genesis(keyed_accounts, amount) - } - } - } - } -} - -#[cfg(test)] -mod tests { - use super::*; - use solana_sdk::account::Account; - use std::cell::RefCell; - - const BIG_ENOUGH: usize = 10_000; - - #[test] - fn test_account_size() { - let mut data = - vec![0_u8; bincode::serialized_size(&LibraAccountState::Unallocated).unwrap() as usize]; - let len = data.len(); - assert_eq!( - MoveProcessor::serialize_and_enforce_length(&LibraAccountState::Unallocated, &mut data), - Ok(()) - ); - assert_eq!(len, data.len()); - - data.resize(6000, 0); - let len = data.len(); - assert_eq!( - MoveProcessor::serialize_and_enforce_length(&LibraAccountState::Unallocated, &mut data), - Ok(()) - ); - assert_eq!(len, data.len()); - - data.resize(1, 0); - assert_eq!( - MoveProcessor::serialize_and_enforce_length(&LibraAccountState::Unallocated, &mut data), - Err(InstructionError::AccountDataTooSmall) - ); - } - - #[test] - fn test_finalize() { - solana_logger::setup(); - - let code = "main() { return; }"; - let sender_address = AccountAddress::default(); - let script = LibraAccount::create_script(&sender_address, code, vec![]); - let keyed_accounts = vec![KeyedAccount::new(&script.key, true, &script.account)]; - MoveProcessor::do_finalize(&keyed_accounts).unwrap(); - let _ = MoveProcessor::deserialize_verified_script(&script.account.borrow().data).unwrap(); - } - - #[test] - fn test_create_genesis_account() { - solana_logger::setup(); - - let amount = 10_000_000; - let unallocated = LibraAccount::create_unallocated(BIG_ENOUGH); - - let keyed_accounts = vec![KeyedAccount::new( - &unallocated.key, - false, - &unallocated.account, - )]; - MoveProcessor::do_create_genesis(&keyed_accounts, amount).unwrap(); - - assert_eq!( - bincode::deserialize::( - &LibraAccount::create_genesis(amount).account.borrow().data - ) - .unwrap(), - bincode::deserialize::(&keyed_accounts[0].account.borrow().data) - .unwrap() - ); - } - - #[test] - fn test_invoke_script() { - solana_logger::setup(); - - let code = "main() { return; }"; - let sender_address = AccountAddress::default(); - let script = LibraAccount::create_script(&sender_address, code, vec![]); - let genesis = LibraAccount::create_genesis(1_000_000_000); - - let keyed_accounts = vec![KeyedAccount::new(&script.key, true, &script.account)]; - - MoveProcessor::do_finalize(&keyed_accounts).unwrap(); - - let keyed_accounts = vec![ - KeyedAccount::new(&script.key, true, &script.account), - KeyedAccount::new(&genesis.key, false, &genesis.account), - ]; - - MoveProcessor::do_invoke_main(&keyed_accounts, sender_address, "main".to_string(), vec![]) - .unwrap(); - } - - #[test] - fn test_publish_module() { - solana_logger::setup(); - - let code = " - module M { - universal_truth(): u64 { - return 42; - } - } - "; - let module = LibraAccount::create_module(code, vec![]); - let keyed_accounts = vec![KeyedAccount::new(&module.key, true, &module.account)]; - keyed_accounts[0] - .account - .borrow_mut() - .data - .resize(BIG_ENOUGH, 0); - - MoveProcessor::do_finalize(&keyed_accounts).unwrap(); - } - - #[test] - fn test_invoke_endless_loop() { - solana_logger::setup(); - - let code = " - main() { - loop {} - return; - } - "; - let sender_address = AccountAddress::default(); - let script = LibraAccount::create_script(&sender_address, code, vec![]); - let genesis = LibraAccount::create_genesis(1_000_000_000); - - let keyed_accounts = vec![KeyedAccount::new(&script.key, true, &script.account)]; - - MoveProcessor::do_finalize(&keyed_accounts).unwrap(); - - let keyed_accounts = vec![ - KeyedAccount::new(&script.key, true, &script.account), - KeyedAccount::new(&genesis.key, false, &genesis.account), - ]; - - assert_eq!( - MoveProcessor::do_invoke_main( - &keyed_accounts, - sender_address, - "main".to_string(), - vec![], - ), - Err(InstructionError::Custom(4002)) - ); - } - - #[test] - fn test_invoke_mint_to_address() { - solana_logger::setup(); - - let mut data_store = DataStore::default(); - - let amount = 42; - let accounts = mint_coins(amount).unwrap(); - let mut accounts_iter = accounts.iter(); - - let _script = next_libra_account(&mut accounts_iter).unwrap(); - let genesis = next_libra_account(&mut accounts_iter).unwrap(); - let payee = next_libra_account(&mut accounts_iter).unwrap(); - match bincode::deserialize(&payee.account.borrow().data).unwrap() { - LibraAccountState::User(owner, write_set) => { - if owner != genesis.key { - panic!(); - } - data_store.apply_write_set(&write_set) - } - _ => panic!("Invalid account state"), - } - - let payee_resource = data_store.read_account_resource(&payee.address).unwrap(); - assert_eq!(amount, payee_resource.balance()); - assert_eq!(0, payee_resource.sequence_number()); - } - - #[test] - fn test_invoke_pay_from_sender() { - solana_logger::setup(); - let amount_to_mint = 42; - let accounts = mint_coins(amount_to_mint).unwrap(); - let mut accounts_iter = accounts.iter(); - - let _script = next_libra_account(&mut accounts_iter).unwrap(); - let genesis = next_libra_account(&mut accounts_iter).unwrap(); - let sender = next_libra_account(&mut accounts_iter).unwrap(); - - let code = " - import 0x0.LibraAccount; - import 0x0.LibraCoin; - main(payee: address, amount: u64) { - LibraAccount.pay_from_sender(move(payee), move(amount)); - return; - } - "; - let script = LibraAccount::create_script(&genesis.address, code, vec![]); - let payee = LibraAccount::create_unallocated(BIG_ENOUGH); - - let keyed_accounts = vec![KeyedAccount::new(&script.key, true, &script.account)]; - - MoveProcessor::do_finalize(&keyed_accounts).unwrap(); - - let keyed_accounts = vec![ - KeyedAccount::new(&script.key, true, &script.account), - KeyedAccount::new(&genesis.key, false, &genesis.account), - KeyedAccount::new(&sender.key, false, &sender.account), - KeyedAccount::new(&payee.key, false, &payee.account), - ]; - - let amount = 2; - MoveProcessor::do_invoke_main( - &keyed_accounts, - sender.address.clone(), - "main".to_string(), - vec![ - TransactionArgument::Address(payee.address.clone()), - TransactionArgument::U64(amount), - ], - ) - .unwrap(); - - let data_store = MoveProcessor::keyed_accounts_to_data_store(&keyed_accounts[1..]).unwrap(); - let sender_resource = data_store.read_account_resource(&sender.address).unwrap(); - let payee_resource = data_store.read_account_resource(&payee.address).unwrap(); - - assert_eq!(amount_to_mint - amount, sender_resource.balance()); - assert_eq!(0, sender_resource.sequence_number()); - assert_eq!(amount, payee_resource.balance()); - assert_eq!(0, payee_resource.sequence_number()); - } - - #[test] - fn test_invoke_published_module() { - solana_logger::setup(); - - let universal_truth = 42; - - // First publish the module - - let code = format!( - " - module M {{ - public universal_truth(): u64 {{ - return {}; - }} - }} - ", - universal_truth - ); - let module = LibraAccount::create_module(&code, vec![]); - - let keyed_accounts = vec![KeyedAccount::new(&module.key, true, &module.account)]; - keyed_accounts[0] - .account - .borrow_mut() - .data - .resize(BIG_ENOUGH, 0); - - MoveProcessor::do_finalize(&keyed_accounts).unwrap(); - - // Next invoke the published module - - let amount_to_mint = 84; - let accounts = mint_coins(amount_to_mint).unwrap(); - let mut accounts_iter = accounts.iter(); - - let _script = next_libra_account(&mut accounts_iter).unwrap(); - let genesis = next_libra_account(&mut accounts_iter).unwrap(); - let sender = next_libra_account(&mut accounts_iter).unwrap(); - - let code = format!( - " - import 0x0.LibraAccount; - import 0x0.LibraCoin; - import 0x{}.M; - - main(payee: address) {{ - let amount: u64; - amount = M.universal_truth(); - LibraAccount.pay_from_sender(move(payee), move(amount)); - return; - }} - ", - module.address - ); - let script = LibraAccount::create_script( - &genesis.address, - &code, - vec![&module.account.borrow().data], - ); - let payee = LibraAccount::create_unallocated(BIG_ENOUGH); - - let keyed_accounts = vec![KeyedAccount::new(&script.key, true, &script.account)]; - - MoveProcessor::do_finalize(&keyed_accounts).unwrap(); - - let keyed_accounts = vec![ - KeyedAccount::new(&script.key, true, &script.account), - KeyedAccount::new(&genesis.key, false, &genesis.account), - KeyedAccount::new(&sender.key, false, &sender.account), - KeyedAccount::new(&module.key, false, &module.account), - KeyedAccount::new(&payee.key, false, &payee.account), - ]; - - MoveProcessor::do_invoke_main( - &keyed_accounts, - sender.address.clone(), - "main".to_string(), - vec![TransactionArgument::Address(payee.address.clone())], - ) - .unwrap(); - - let data_store = MoveProcessor::keyed_accounts_to_data_store(&keyed_accounts[1..]).unwrap(); - let sender_resource = data_store.read_account_resource(&sender.address).unwrap(); - let payee_resource = data_store.read_account_resource(&payee.address).unwrap(); - - assert_eq!(amount_to_mint - universal_truth, sender_resource.balance()); - assert_eq!(0, sender_resource.sequence_number()); - assert_eq!(universal_truth, payee_resource.balance()); - assert_eq!(0, payee_resource.sequence_number()); - } - - // Helpers - - fn mint_coins(amount: u64) -> Result, InstructionError> { - let code = " - import 0x0.LibraAccount; - import 0x0.LibraCoin; - main(payee: address, amount: u64) { - LibraAccount.mint_to_address(move(payee), move(amount)); - return; - } - "; - let genesis = LibraAccount::create_genesis(1_000_000_000); - let script = LibraAccount::create_script(&genesis.address.clone(), code, vec![]); - let payee = LibraAccount::create_unallocated(BIG_ENOUGH); - - let keyed_accounts = vec![KeyedAccount::new(&script.key, true, &script.account)]; - - MoveProcessor::do_finalize(&keyed_accounts).unwrap(); - - let keyed_accounts = vec![ - KeyedAccount::new(&script.key, true, &script.account), - KeyedAccount::new(&genesis.key, false, &genesis.account), - KeyedAccount::new(&payee.key, false, &payee.account), - ]; - - MoveProcessor::do_invoke_main( - &keyed_accounts, - account_config::association_address(), - "main".to_string(), - vec![ - TransactionArgument::Address(pubkey_to_address(&payee.key)), - TransactionArgument::U64(amount), - ], - ) - .unwrap(); - - Ok(vec![ - LibraAccount::new(script.key, script.account.into_inner()), - LibraAccount::new(genesis.key, genesis.account.into_inner()), - LibraAccount::new(payee.key, payee.account.into_inner()), - ]) - } - - #[derive(Eq, PartialEq, Debug, Default)] - struct LibraAccount { - pub key: Pubkey, - pub address: AccountAddress, - pub account: RefCell, - } - - pub fn next_libra_account(iter: &mut I) -> Result { - iter.next().ok_or(InstructionError::NotEnoughAccountKeys) - } - - impl LibraAccount { - pub fn new(key: Pubkey, account: Account) -> Self { - let address = pubkey_to_address(&key); - Self { - key, - address, - account: RefCell::new(account), - } - } - - pub fn create_unallocated(size: usize) -> Self { - let key = Pubkey::new_rand(); - let mut account = Account { - lamports: 1, - data: bincode::serialize(&LibraAccountState::create_unallocated()).unwrap(), - owner: id(), - ..Account::default() - }; - if account.data.len() < size { - account.data.resize(size, 0); - } - - Self::new(key, account) - } - - pub fn create_genesis(amount: u64) -> Self { - let account = Account { - lamports: 1, - owner: id(), - ..Account::default() - }; - let genesis = Self::new(Pubkey::new_rand(), account); - let pre_data = LibraAccountState::create_genesis(amount).unwrap(); - let _hi = "hello"; - genesis.account.borrow_mut().data = bincode::serialize(&pre_data).unwrap(); - genesis - } - - pub fn create_script( - sender_address: &AccountAddress, - code: &str, - deps: Vec<&Vec>, - ) -> Self { - let script = Self::create_unallocated(0); - script.account.borrow_mut().data = bincode::serialize( - &LibraAccountState::create_script(sender_address, code, deps), - ) - .unwrap(); - - script - } - - pub fn create_module(code: &str, deps: Vec<&Vec>) -> Self { - let module = Self::create_unallocated(0); - module.account.borrow_mut().data = bincode::serialize( - &LibraAccountState::create_module(&module.address, code, deps), - ) - .unwrap(); - - module - } - } -} diff --git a/scripts/cargo-install-all.sh b/scripts/cargo-install-all.sh index d4c6f663f..309e4838e 100755 --- a/scripts/cargo-install-all.sh +++ b/scripts/cargo-install-all.sh @@ -11,23 +11,19 @@ usage() { echo "Error: $*" fi cat <] [--use-move] [--debug] +usage: $0 [+] [--debug] EOF exit $exitcode } maybeRustVersion= -useMove=false installDir= buildVariant=release maybeReleaseFlag=--release while [[ -n $1 ]]; do if [[ ${1:0:1} = - ]]; then - if [[ $1 = --use-move ]]; then - useMove=true - shift - elif [[ $1 = --debug ]]; then + if [[ $1 = --debug ]]; then maybeReleaseFlag= buildVariant=debug shift @@ -75,13 +71,6 @@ else set -x # shellcheck disable=SC2086 # Don't want to double quote $rust_version $cargo $maybeRustVersion build $maybeReleaseFlag - - if $useMove; then - moveLoaderDir=programs/move_loader - # shellcheck disable=SC2086 # Don't want to double quote $rust_version - $cargo $maybeRustVersion build $maybeReleaseFlag --manifest-path "$moveLoaderDir/Cargo.toml" - cp -fv $moveLoaderDir/target/$buildVariant/libsolana_move_loader_program.* "$installDir/bin/deps" - fi ) diff --git a/sdk/src/lib.rs b/sdk/src/lib.rs index 12fbe3909..0738ea7f9 100644 --- a/sdk/src/lib.rs +++ b/sdk/src/lib.rs @@ -25,7 +25,6 @@ pub mod inflation; pub mod instruction; pub mod loader_instruction; pub mod message; -pub mod move_loader; pub mod native_loader; pub mod native_token; pub mod nonce; diff --git a/sdk/src/move_loader.rs b/sdk/src/move_loader.rs deleted file mode 100644 index d89c077d6..000000000 --- a/sdk/src/move_loader.rs +++ /dev/null @@ -1,5 +0,0 @@ -crate::declare_id!("MoveLdr111111111111111111111111111111111111"); - -pub fn solana_move_loader_program() -> (String, crate::pubkey::Pubkey) { - ("solana_move_loader_program".to_string(), id()) -}