diff --git a/crank/Cargo.lock b/crank/Cargo.lock index 2b0b467..43daa5b 100644 --- a/crank/Cargo.lock +++ b/crank/Cargo.lock @@ -7,7 +7,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3" dependencies = [ "lazy_static", - "regex 1.3.9", + "regex", ] [[package]] @@ -31,15 +31,6 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234" -[[package]] -name = "aho-corasick" -version = "0.6.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81ce3d38065e618af2d7b77e10c5ad9a069859b4be3c2250f674af3840d9c8a5" -dependencies = [ - "memchr", -] - [[package]] name = "aho-corasick" version = "0.7.13" @@ -105,6 +96,12 @@ dependencies = [ "winapi 0.3.9", ] +[[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" @@ -132,15 +129,6 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "23ce669cd6c8588f79e15cf450314f9638f967fc5770ff1c7c1deb0925ea7cfa" -[[package]] -name = "base64" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "979d348dc50dfcd050a87df408ec61f01a0a27ee9b4ebdc6085baba8275b2c7f" -dependencies = [ - "byteorder", -] - [[package]] name = "base64" version = "0.11.0" @@ -192,6 +180,15 @@ dependencies = [ "generic-array 0.12.3", ] +[[package]] +name = "block-buffer" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" +dependencies = [ + "generic-array 0.14.4", +] + [[package]] name = "block-padding" version = "0.1.5" @@ -207,6 +204,16 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "476e9cd489f9e121e02ffa6014a8ef220ecb15c05ed23fc34cca13925dc283fb" +[[package]] +name = "buf_redux" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b953a6887648bb07a535631f2bc00fbdb2a2216f135552cb3f534ed136b9c07f" +dependencies = [ + "memchr", + "safemem", +] + [[package]] name = "bumpalo" version = "3.4.0" @@ -266,7 +273,7 @@ checksum = "104ca409bbff8293739438c71820a2606111b5f8f81835536dc673dfd807369e" dependencies = [ "clap 2.33.2", "heck", - "log 0.4.11", + "log", "proc-macro2 1.0.19", "quote 1.0.7", "serde", @@ -369,7 +376,7 @@ dependencies = [ "encode_unicode", "lazy_static", "libc", - "regex 1.3.9", + "regex", "terminal_size", "termios", "unicode-width", @@ -386,7 +393,7 @@ dependencies = [ "encode_unicode", "lazy_static", "libc", - "regex 1.3.9", + "regex", "terminal_size", "termios", "unicode-width", @@ -416,6 +423,12 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b3a71ab494c0b5b860bdc8407ae08978052417070c2ced38573a9157ad75b8ac" +[[package]] +name = "cpuid-bool" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8aebca1129a03dc6dc2b127edd729435bbc4a37e1d5f4d7513165089ceb02634" + [[package]] name = "crank" version = "0.1.0" @@ -423,7 +436,7 @@ dependencies = [ "anyhow", "clap 3.0.0-beta.1", "debug_print", - "log 0.4.11", + "log", "rand 0.7.3", "safe-transmute", "serum_dex", @@ -434,7 +447,8 @@ dependencies = [ "solana-sdk", "spl-token 2.0.3", "threadpool", - "tungstenite 0.1.1", + "tokio 0.2.22", + "warp", ] [[package]] @@ -487,7 +501,7 @@ version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "058ed274caafc1f60c4997b5fc07bf7dc7cca454af7c6e81edffe5f33f70dace" dependencies = [ - "autocfg", + "autocfg 1.0.0", "cfg-if", "crossbeam-utils", "lazy_static", @@ -513,7 +527,7 @@ version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8" dependencies = [ - "autocfg", + "autocfg 1.0.0", "cfg-if", "lazy_static", ] @@ -535,7 +549,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5d85653f070353a16313d0046f173f70d1aadd5b42600a14de626f0dfb3473a5" dependencies = [ "byteorder", - "digest", + "digest 0.8.1", "rand_core 0.5.1", "subtle 2.2.3", "zeroize", @@ -578,6 +592,15 @@ dependencies = [ "generic-array 0.12.3", ] +[[package]] +name = "digest" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" +dependencies = [ + "generic-array 0.14.4", +] + [[package]] name = "dirs" version = "2.0.2" @@ -670,16 +693,6 @@ dependencies = [ "syn 1.0.38", ] -[[package]] -name = "env_logger" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ddf21e73e016298f5cb37d6ef8e8da8e39f91f9ec8b0df44b7deb16a9f8cd5b" -dependencies = [ - "log 0.3.9", - "regex 0.2.11", -] - [[package]] name = "env_logger" version = "0.7.1" @@ -688,8 +701,8 @@ checksum = "44533bbbb3bb3c1fa17d9f2e4e38bbbaf8396ba82193c4cb1b6445d711445d36" dependencies = [ "atty", "humantime", - "log 0.4.11", - "regex 1.3.9", + "log", + "regex", "termcolor", ] @@ -786,6 +799,20 @@ version = "0.1.29" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b980f2816d6ee8673b6517b52cb0e808a180efc92e5c19d02cdda79066703ef" +[[package]] +name = "futures" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e05b85ec287aac0dc34db7d4a569323df697f9c55b99b15d6b4ef8cde49f613" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + [[package]] name = "futures-channel" version = "0.3.5" @@ -793,6 +820,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f366ad74c28cca6ba456d95e6422883cfb4b252a83bed929c83abfdbbf2967d5" dependencies = [ "futures-core", + "futures-sink", ] [[package]] @@ -843,6 +871,7 @@ dependencies = [ "futures-core", "futures-io", "futures-macro", + "futures-sink", "futures-task", "memchr", "pin-project", @@ -924,7 +953,32 @@ version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e91b62f79061a0bc2e046024cb7ba44b08419ed238ecbd9adbd787434b9e8c25" dependencies = [ - "autocfg", + "autocfg 1.0.0", +] + +[[package]] +name = "headers" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed18eb2459bf1a09ad2d6b1547840c3e5e62882fa09b9a6a20b1de8e3228848f" +dependencies = [ + "base64 0.12.3", + "bitflags", + "bytes 0.5.6", + "headers-core", + "http", + "mime", + "sha-1 0.8.2", + "time", +] + +[[package]] +name = "headers-core" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7f66481bfee273957b1f20485a4ff3362987f85b2c236580d81b4eb7a326429" +dependencies = [ + "http", ] [[package]] @@ -969,7 +1023,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5dcb5e64cda4c23119ab41ba960d1e170a774c8e4b9d9e6a9bc18aabf5e59695" dependencies = [ "crypto-mac", - "digest", + "digest 0.8.1", ] [[package]] @@ -1041,24 +1095,13 @@ dependencies = [ "bytes 0.5.6", "futures-util", "hyper", - "log 0.4.11", + "log", "rustls", "tokio 0.2.22", "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" @@ -1076,7 +1119,7 @@ version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "86b45e59b16c76b11bf9738fd5d38879d3bd28ad292d7b313608becb17ae2df9" dependencies = [ - "autocfg", + "autocfg 1.0.0", "hashbrown", ] @@ -1089,7 +1132,7 @@ dependencies = [ "console 0.12.0", "lazy_static", "number_prefix", - "regex 1.3.9", + "regex", ] [[package]] @@ -1155,8 +1198,8 @@ version = "14.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a0747307121ffb9703afd93afbd0fb4f854c38fb873f2c8b90e0e902f27c7b62" dependencies = [ - "futures", - "log 0.4.11", + "futures 0.1.29", + "log", "serde", "serde_derive", "serde_json", @@ -1214,15 +1257,6 @@ dependencies = [ "scopeguard", ] -[[package]] -name = "log" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e19e8d5c34a3e0e2223db8e060f9e8264aeeb5c5fc64a4ee9965c062211c024b" -dependencies = [ - "log 0.4.11", -] - [[package]] name = "log" version = "0.4.11" @@ -1266,7 +1300,7 @@ version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c198b026e1bbf08a937e94c6c60f9ec4a2267f5b0d2eec9c1b21b061ce2be55f" dependencies = [ - "autocfg", + "autocfg 1.0.0", ] [[package]] @@ -1306,13 +1340,25 @@ dependencies = [ "iovec", "kernel32-sys", "libc", - "log 0.4.11", - "miow", + "log", + "miow 0.2.1", "net2", "slab", "winapi 0.2.8", ] +[[package]] +name = "mio-named-pipes" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0840c1c50fd55e521b247f949c241c9997709f23bd7f023b9762cd561e935656" +dependencies = [ + "log", + "mio", + "miow 0.3.5", + "winapi 0.3.9", +] + [[package]] name = "mio-uds" version = "0.6.8" @@ -1336,6 +1382,34 @@ dependencies = [ "ws2_32-sys", ] +[[package]] +name = "miow" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07b88fb9795d4d36d62a012dfbf49a8f5cf12751f36d31a9dbe66d528e58979e" +dependencies = [ + "socket2", + "winapi 0.3.9", +] + +[[package]] +name = "multipart" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8209c33c951f07387a8497841122fc6f712165e3f9bda3e6be4645b58188f676" +dependencies = [ + "buf_redux", + "httparse", + "log", + "mime", + "mime_guess", + "quick-error", + "rand 0.6.5", + "safemem", + "tempfile", + "twoway", +] + [[package]] name = "native-tls" version = "0.2.4" @@ -1344,7 +1418,7 @@ checksum = "2b0d88c06fe90d5ee94048ba40409ef1d9315d86f6f38c2efdaad4fb50c58b2d" dependencies = [ "lazy_static", "libc", - "log 0.4.11", + "log", "openssl", "openssl-probe", "openssl-sys", @@ -1395,7 +1469,7 @@ version = "0.1.43" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8d59457e662d541ba17869cf51cf177c0b5f0cbf476c66bdc90bf1edac4f875b" dependencies = [ - "autocfg", + "autocfg 1.0.0", "num-traits", ] @@ -1405,7 +1479,7 @@ version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ac267bcc07f48ee5f8935ab0d24f316fb722d7a1292e2913f0cc196b29ffd611" dependencies = [ - "autocfg", + "autocfg 1.0.0", ] [[package]] @@ -1467,6 +1541,12 @@ version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529c" +[[package]] +name = "opaque-debug" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" + [[package]] name = "openssl" version = "0.10.30" @@ -1493,7 +1573,7 @@ version = "0.9.58" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a842db4709b604f0fe5d1170ae3565899be2ad3d9cbc72dedc789ac0511f78de" dependencies = [ - "autocfg", + "autocfg 1.0.0", "cc", "libc", "pkg-config", @@ -1566,12 +1646,6 @@ dependencies = [ "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" @@ -1713,24 +1787,20 @@ dependencies = [ [[package]] name = "rand" -version = "0.3.23" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64ac302d8f83c0c1974bf758f6b041c6c8ada916fbb44a609158ca8b064cc76c" +checksum = "6d71dacdc3c88c1fde3885a3be3fbab9f35724e6ce99467f7d9c5026132184ca" dependencies = [ + "autocfg 0.1.7", "libc", - "rand 0.4.6", -] - -[[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", + "rand_chacha 0.1.1", + "rand_core 0.4.2", + "rand_hc 0.1.0", + "rand_isaac", + "rand_jitter", + "rand_os", + "rand_pcg", + "rand_xorshift", "winapi 0.3.9", ] @@ -1742,9 +1812,19 @@ checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" dependencies = [ "getrandom", "libc", - "rand_chacha", + "rand_chacha 0.2.2", "rand_core 0.5.1", - "rand_hc", + "rand_hc 0.2.0", +] + +[[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]] @@ -1781,6 +1861,15 @@ 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" @@ -1790,13 +1879,66 @@ 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.9", +] + +[[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.9", +] + +[[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_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", + "autocfg 1.0.0", "crossbeam-deque", "either", "rayon-core", @@ -1841,38 +1983,16 @@ dependencies = [ "rust-argon2", ] -[[package]] -name = "regex" -version = "0.2.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9329abc99e39129fcceabd24cf5d85b4671ef7c29c50e972bc5afe32438ec384" -dependencies = [ - "aho-corasick 0.6.10", - "memchr", - "regex-syntax 0.5.6", - "thread_local 0.3.6", - "utf8-ranges", -] - [[package]] name = "regex" version = "1.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c3780fcf44b193bc4d09f36d2a3c87b251da4a046c87795a0d35f4f927ad8e6" dependencies = [ - "aho-corasick 0.7.13", + "aho-corasick", "memchr", - "regex-syntax 0.6.18", - "thread_local 1.0.1", -] - -[[package]] -name = "regex-syntax" -version = "0.5.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d707a4fa2637f2dca2ef9fd02225ec7661fe01a53623c1e6515b6916511f7a7" -dependencies = [ - "ucd-util", + "regex-syntax", + "thread_local", ] [[package]] @@ -1908,10 +2028,10 @@ dependencies = [ "ipnet", "js-sys", "lazy_static", - "log 0.4.11", + "log", "mime", "mime_guess", - "percent-encoding 2.1.0", + "percent-encoding", "pin-project-lite", "rustls", "serde", @@ -1919,7 +2039,7 @@ dependencies = [ "serde_urlencoded", "tokio 0.2.22", "tokio-rustls", - "url 2.1.1", + "url", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", @@ -1998,7 +2118,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cac94b333ee2aac3284c5b8a1b7fb4dd11cba88c244e3fe33cdbd047af0eb693" dependencies = [ "base64 0.12.3", - "log 0.4.11", + "log", "ring", "sct", "webpki", @@ -2027,6 +2147,12 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "50b8b2cd387f744f69469aaed197954ba4c0ecdb31e02edf99b023e0df11178a" +[[package]] +name = "safemem" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072" + [[package]] name = "schannel" version = "0.1.19" @@ -2037,6 +2163,12 @@ dependencies = [ "winapi 0.3.9", ] +[[package]] +name = "scoped-tls" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea6a9290e3c9cf0f18145ef7ffa62d68ee0bf5fcd651017e586dc7fd5da448c2" + [[package]] name = "scopeguard" version = "1.1.0" @@ -2140,7 +2272,7 @@ dependencies = [ "dtoa", "itoa", "serde", - "url 2.1.1", + "url", ] [[package]] @@ -2170,17 +2302,24 @@ version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f7d94d0bede923b3cea61f3f1ff57ff8cdfd77b400fb8f9998949e0cf04163df" dependencies = [ - "block-buffer", - "digest", + "block-buffer 0.7.3", + "digest 0.8.1", "fake-simd", - "opaque-debug", + "opaque-debug 0.2.3", ] [[package]] -name = "sha1" -version = "0.2.0" +name = "sha-1" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc30b1e1e8c40c121ca33b86c23308a090d19974ef001b4bf6e61fd1a0fb095c" +checksum = "170a36ea86c864a3f16dd2687712dd6646f7019f301e57537c7f4dc9f5916770" +dependencies = [ + "block-buffer 0.9.0", + "cfg-if", + "cpuid-bool", + "digest 0.9.0", + "opaque-debug 0.3.0", +] [[package]] name = "sha2" @@ -2188,10 +2327,20 @@ version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a256f46ea78a0c0d9ff00077504903ac881a1dafdc20da66545699e7776b3e69" dependencies = [ - "block-buffer", - "digest", + "block-buffer 0.7.3", + "digest 0.8.1", "fake-simd", - "opaque-debug", + "opaque-debug 0.2.3", +] + +[[package]] +name = "signal-hook-registry" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3e12110bc539e657a646068aaf5eb5b63af9d0c1f7b29c97113fad80e15f035" +dependencies = [ + "arc-swap", + "libc", ] [[package]] @@ -2221,7 +2370,7 @@ dependencies = [ "crossbeam-channel", "slog", "take_mut", - "thread_local 1.0.1", + "thread_local", ] [[package]] @@ -2230,7 +2379,7 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ae939ed7d169eed9699f4f5cd440f046f5dc5dfc27c19e3cd311619594c175e0" dependencies = [ - "regex 1.3.9", + "regex", "slog", ] @@ -2252,7 +2401,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "be4d87903baf655da2d82bc3ac3f7ef43868c58bf712b3a661fda72009304c23" dependencies = [ "crossbeam", - "log 0.4.11", + "log", "slog", "slog-scope", ] @@ -2267,7 +2416,7 @@ dependencies = [ "chrono", "slog", "term", - "thread_local 1.0.1", + "thread_local", ] [[package]] @@ -2278,7 +2427,7 @@ checksum = "f01d37507aa6f37490cfa08d71e2639b16906e84c285ae4b9f7ec7ca35756d69" dependencies = [ "chrono", "libflate", - "regex 1.3.9", + "regex", "serde", "slog", "slog-async", @@ -2352,7 +2501,7 @@ dependencies = [ "solana-sdk", "thiserror", "tiny-bip39", - "url 2.1.1", + "url", ] [[package]] @@ -2365,7 +2514,7 @@ dependencies = [ "bs58", "indicatif", "jsonrpc-core", - "log 0.4.11", + "log", "rayon", "reqwest", "serde", @@ -2378,7 +2527,7 @@ dependencies = [ "solana-vote-program", "thiserror", "tungstenite 0.10.1", - "url 2.1.1", + "url", ] [[package]] @@ -2389,7 +2538,7 @@ checksum = "78589ac38a3d00031d058081b595ab51f95f8e95d5d2e19532de224b2e6e19a3" dependencies = [ "bincode", "chrono", - "log 0.4.11", + "log", "serde", "serde_derive", "solana-sdk", @@ -2410,8 +2559,8 @@ dependencies = [ "failure", "lazy_static", "libc", - "rand_chacha", - "regex-syntax 0.6.18", + "rand_chacha 0.2.2", + "regex-syntax", "reqwest", "serde", "syn 0.15.44", @@ -2426,9 +2575,9 @@ version = "1.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "68bc38abc95cbf0bb65f5f73a6ef15dd945a379792bca8704b2cdbb5b675c5ad" dependencies = [ - "env_logger 0.7.1", + "env_logger", "lazy_static", - "log 0.4.11", + "log", ] [[package]] @@ -2437,10 +2586,10 @@ version = "1.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a75005efba52d81dc6c7734e207484fcf2cf1f9f0d851508eccadf4b9b136b44" dependencies = [ - "env_logger 0.7.1", + "env_logger", "gethostname", "lazy_static", - "log 0.4.11", + "log", "reqwest", "solana-sdk", ] @@ -2454,7 +2603,7 @@ dependencies = [ "bincode", "bytes 0.4.12", "clap 2.33.2", - "log 0.4.11", + "log", "nix", "rand 0.7.3", "serde", @@ -2465,7 +2614,7 @@ dependencies = [ "solana-version", "tokio 0.1.22", "tokio-codec", - "url 2.1.1", + "url", ] [[package]] @@ -2478,14 +2627,14 @@ dependencies = [ "console 0.11.3", "dialoguer", "hidapi", - "log 0.4.11", + "log", "num-derive", "num-traits", "parking_lot 0.10.2", "semver", "solana-sdk", "thiserror", - "url 2.1.1", + "url", ] [[package]] @@ -2506,13 +2655,13 @@ dependencies = [ "hex", "hmac", "itertools", - "log 0.4.11", + "log", "memmap", "num-derive", "num-traits", "pbkdf2", "rand 0.7.3", - "rand_chacha", + "rand_chacha 0.2.2", "rustc_version", "rustversion", "serde", @@ -2560,7 +2709,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9fe3a177dda11096de14d9ce4cd3f5758c95c6af5a48ce8fa348deaabb9ceba5" dependencies = [ "bincode", - "log 0.4.11", + "log", "num-derive", "num-traits", "rustc_version", @@ -2603,7 +2752,7 @@ version = "1.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "897baf8ab74f16e2c0ee31ef40fb91e84da3a0a20a5c49ced3b2b8bfce2699d0" dependencies = [ - "log 0.4.11", + "log", "rustc_version", "serde", "serde_derive", @@ -2619,7 +2768,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "91f27ec845e69fbf14d261fc5c8a13d5e4b0cf9f1627cd3f2617fa67614f7db3" dependencies = [ "bincode", - "log 0.4.11", + "log", "num-derive", "num-traits", "rustc_version", @@ -2838,15 +2987,6 @@ dependencies = [ "syn 1.0.38", ] -[[package]] -name = "thread_local" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6b53e329000edc2b34dbe8545fd20e55a333362d0a321909685a19bd28c3f1b" -dependencies = [ - "lazy_static", -] - [[package]] name = "thread_local" version = "1.0.1" @@ -2904,7 +3044,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a09c0b5bb588872ab2f09afa13ee6e9dac11e10a0ec9e8e3ba39a5a5d530af6" dependencies = [ "bytes 0.4.12", - "futures", + "futures 0.1.29", "mio", "num_cpus", "tokio-codec", @@ -2932,11 +3072,17 @@ dependencies = [ "futures-core", "iovec", "lazy_static", + "libc", "memchr", "mio", + "mio-named-pipes", + "mio-uds", "num_cpus", "pin-project-lite", + "signal-hook-registry", "slab", + "tokio-macros", + "winapi 0.3.9", ] [[package]] @@ -2946,7 +3092,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "25b2998660ba0e70d18684de5d06b70b70a3a747469af9dea7618cc59e75976b" dependencies = [ "bytes 0.4.12", - "futures", + "futures 0.1.29", "tokio-io", ] @@ -2956,7 +3102,7 @@ version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b1de0e32a83f131e002238d7ccde18211c0a5397f60cbfffcb112868c2e0e20e" dependencies = [ - "futures", + "futures 0.1.29", "tokio-executor", ] @@ -2967,7 +3113,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fb2d1b8f4548dbf5e1f7818512e9c406860678f29c300cdf0ebac72d1a3a1671" dependencies = [ "crossbeam-utils", - "futures", + "futures 0.1.29", ] [[package]] @@ -2976,7 +3122,7 @@ version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "297a1206e0ca6302a0eed35b700d292b275256f596e2f3fea7729d5e629b6ff4" dependencies = [ - "futures", + "futures 0.1.29", "tokio-io", "tokio-threadpool", ] @@ -2988,8 +3134,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "57fc868aae093479e3131e3d165c93b1c7474109d13c90ec0dda2a1bbfff0674" dependencies = [ "bytes 0.4.12", - "futures", - "log 0.4.11", + "futures 0.1.29", + "log", +] + +[[package]] +name = "tokio-macros" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0c3acc6aa564495a0f2e1d59fab677cd7f81a19994cfc7f3ad0e64301560389" +dependencies = [ + "proc-macro2 1.0.19", + "quote 1.0.7", + "syn 1.0.38", ] [[package]] @@ -2999,9 +3156,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09bc590ec4ba8ba87652da2068d150dcada2cfa2e07faae270a5e0409aa51351" dependencies = [ "crossbeam-utils", - "futures", + "futures 0.1.29", "lazy_static", - "log 0.4.11", + "log", "mio", "num_cpus", "parking_lot 0.9.0", @@ -3030,7 +3187,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "edfe50152bc8164fcc456dab7891fa9bf8beaf01c5ee7e1dd43a397c3cf87dee" dependencies = [ "fnv", - "futures", + "futures 0.1.29", ] [[package]] @@ -3040,7 +3197,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "98df18ed66e3b72e742f185882a9e201892407957e45fbff8da17ae7a7c51f72" dependencies = [ "bytes 0.4.12", - "futures", + "futures 0.1.29", "iovec", "mio", "tokio-io", @@ -3056,9 +3213,9 @@ dependencies = [ "crossbeam-deque", "crossbeam-queue", "crossbeam-utils", - "futures", + "futures 0.1.29", "lazy_static", - "log 0.4.11", + "log", "num_cpus", "slab", "tokio-executor", @@ -3071,11 +3228,24 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "93044f2d313c95ff1cb7809ce9a7a05735b012288a888b62d4434fd58c94f296" dependencies = [ "crossbeam-utils", - "futures", + "futures 0.1.29", "slab", "tokio-executor", ] +[[package]] +name = "tokio-tungstenite" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d9e878ad426ca286e4dcae09cbd4e1973a7f8987d97570e2469703dd7f5720c" +dependencies = [ + "futures-util", + "log", + "pin-project", + "tokio 0.2.22", + "tungstenite 0.11.1", +] + [[package]] name = "tokio-udp" version = "0.1.6" @@ -3083,8 +3253,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2a0b10e610b39c38b031a2fcab08e4b82f16ece36504988dcbd81dbba650d82" dependencies = [ "bytes 0.4.12", - "futures", - "log 0.4.11", + "futures 0.1.29", + "log", "mio", "tokio-codec", "tokio-io", @@ -3098,10 +3268,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ab57a4ac4111c8c9dbcf70779f6fc8bc35ae4b2454809febac840ad19bd7e4e0" dependencies = [ "bytes 0.4.12", - "futures", + "futures 0.1.29", "iovec", "libc", - "log 0.4.11", + "log", "mio", "mio-uds", "tokio-codec", @@ -3118,7 +3288,7 @@ dependencies = [ "bytes 0.5.6", "futures-core", "futures-sink", - "log 0.4.11", + "log", "pin-project-lite", "tokio 0.2.22", ] @@ -3145,7 +3315,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6d79ca061b032d6ce30c660fded31189ca0b9922bf483cd70759f13a2d86786c" dependencies = [ "cfg-if", - "log 0.4.11", + "log", "tracing-core", ] @@ -3158,6 +3328,16 @@ dependencies = [ "lazy_static", ] +[[package]] +name = "tracing-futures" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab7bb6f14721aa00656086e9335d363c5c8747bae02ebe32ea2c7dece5689b4c" +dependencies = [ + "pin-project", + "tracing", +] + [[package]] name = "trackable" version = "1.0.0" @@ -3183,24 +3363,6 @@ version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" -[[package]] -name = "tungstenite" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e98bf689c6fccc64f7d5aa7be5df2dfb43a14d0e8c6e94916a4d10c9b615fda6" -dependencies = [ - "base64 0.4.2", - "byteorder", - "bytes 0.4.12", - "env_logger 0.4.3", - "httparse", - "log 0.3.9", - "rand 0.3.23", - "sha1", - "url 1.7.2", - "utf-8", -] - [[package]] name = "tungstenite" version = "0.10.1" @@ -3213,26 +3375,48 @@ dependencies = [ "http", "httparse", "input_buffer", - "log 0.4.11", + "log", "native-tls", "rand 0.7.3", - "sha-1", - "url 2.1.1", + "sha-1 0.8.2", + "url", "utf-8", ] +[[package]] +name = "tungstenite" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0308d80d86700c5878b9ef6321f020f29b1bb9d5ff3cab25e75e23f3a492a23" +dependencies = [ + "base64 0.12.3", + "byteorder", + "bytes 0.5.6", + "http", + "httparse", + "input_buffer", + "log", + "rand 0.7.3", + "sha-1 0.9.1", + "url", + "utf-8", +] + +[[package]] +name = "twoway" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59b11b2b5241ba34be09c3cc85a36e56e48f9888862e19cedf23336d35316ed1" +dependencies = [ + "memchr", +] + [[package]] name = "typenum" version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "373c8a200f9e67a0c95e62a4f52fbf80c23b4381c05a17845531982fa99e6b33" -[[package]] -name = "ucd-util" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c85f514e095d348c279b1e5cd76795082cf15bd59b93207832abe0b1d8fed236" - [[package]] name = "unicase" version = "2.6.0" @@ -3290,40 +3474,29 @@ 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", + "idna", "matches", - "percent-encoding 2.1.0", + "percent-encoding", ] +[[package]] +name = "urlencoding" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9232eb53352b4442e40d7900465dfc534e8cb2dc8f18656fcb2ac16112b5593" + [[package]] name = "utf-8" version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "05e42f7c18b8f902290b009cde6d651262f956c98bc51bca4cd1d511c9cd85c7" -[[package]] -name = "utf8-ranges" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4ae116fef2b7fea257ed6440d3cfcff7f190865f170cdad00bb6465bf18ecba" - [[package]] name = "vcpkg" version = "0.2.10" @@ -3354,10 +3527,38 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0" dependencies = [ - "log 0.4.11", + "log", "try-lock", ] +[[package]] +name = "warp" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f41be6df54c97904af01aa23e613d4521eed7ab23537cede692d4058f6449407" +dependencies = [ + "bytes 0.5.6", + "futures 0.3.5", + "headers", + "http", + "hyper", + "log", + "mime", + "mime_guess", + "multipart", + "pin-project", + "scoped-tls", + "serde", + "serde_json", + "serde_urlencoded", + "tokio 0.2.22", + "tokio-tungstenite", + "tower-service", + "tracing", + "tracing-futures", + "urlencoding", +] + [[package]] name = "wasi" version = "0.9.0+wasi-snapshot-preview1" @@ -3384,7 +3585,7 @@ checksum = "bc71e4c5efa60fb9e74160e89b93353bc24059999c0ae0fb03affc39770310b0" dependencies = [ "bumpalo", "lazy_static", - "log 0.4.11", + "log", "proc-macro2 1.0.19", "quote 1.0.7", "syn 1.0.38", diff --git a/crank/Cargo.toml b/crank/Cargo.toml index 614fa5f..7f206cb 100644 --- a/crank/Cargo.toml +++ b/crank/Cargo.toml @@ -19,5 +19,6 @@ sloggers = "1.0" slog-scope = "4.3" slog-stdlog = "4" log = "0.4" -tungstenite = {version="0.1", default-features=false} debug_print = "1.0.0" +tokio = {version = "0.2", features = ["full"]} +warp = "0.2" diff --git a/crank/src/main.rs b/crank/src/main.rs index 8a9ebb1..340f76b 100644 --- a/crank/src/main.rs +++ b/crank/src/main.rs @@ -36,6 +36,7 @@ use std::mem::size_of; use std::num::NonZeroU64; use std::str::FromStr; use std::{thread, time}; +use warp::Filter; use std::sync::mpsc::{Sender, Receiver}; use sloggers::file::FileLoggerBuilder; @@ -325,17 +326,12 @@ fn main() -> Result<()> { market, port, } => { - let (send, recv) = std::sync::mpsc::channel(); - let queue_send = send.clone(); let client = opts.client(); - let _ = std::thread::spawn(move || accept_loop(port, send)); - let websockets = std::thread::spawn(move || websockets_loop(recv)); - let _ = std::thread::spawn(move || read_queue_length_loop(client, - dex_program_id, - market, - queue_send)); - // Failures in the others will propagate to this loop via timeout - websockets.join(); + let mut runtime = tokio::runtime::Runtime::new().unwrap(); + runtime.block_on(read_queue_length_loop(client, + dex_program_id, + market, + port)); } Command::PrintEventQueue { ref dex_program_id, @@ -1398,59 +1394,29 @@ enum MonitorEvent { NewConn(std::net::TcpStream), } -fn accept_loop(port: u16, mut send: Sender) { - let address = format!("127.0.0.1:{}", port); - let listener = std::net::TcpListener::bind(&address).unwrap(); - for stream in listener.incoming() { - send.send(MonitorEvent::NewConn(stream.unwrap())).unwrap(); - } -} - -fn websockets_loop(mut recv: Receiver) { - let mut websockets: Vec> = Vec::new(); - let recv_every = time::Duration::from_millis(10000); - while let Ok(value) = recv.recv_timeout(recv_every) { - match value { - MonitorEvent::NumEvents(events) => { - let message = format!("{{ \"events_in_queue\": {} }}", events); - let message = tungstenite::Message::Text(message); - for socket in &mut websockets { - socket.write_message(message.clone()).unwrap(); - } - }, - MonitorEvent::NewConn(conn) => { - // Tungstenite errors don't implement debug so we can't unwrap? - // Generally we just die here anyways - if let Ok(conn) = tungstenite::accept(conn) { - websockets.push(conn); - } else { - panic!("Couldn't accept websocket stream for unknown reason"); - } - } - } - } -} - -fn read_queue_length_loop( +async fn read_queue_length_loop( client: RpcClient, program_id: Pubkey, market: Pubkey, - sender: std::sync::mpsc::Sender + port: u16, ) -> Result<()> { - let market_keys = get_keys_for_market(&client, &program_id, &market)?; - loop { - let event_q_data = client - .get_account_with_commitment(&market_keys.event_q, CommitmentConfig::recent())? - .value - .expect("Failed to retrieve account") - .data; - let inner: Cow<[u64]> = remove_dex_account_padding(&event_q_data)?; - let (header, seg0, seg1) = parse_event_queue(&inner)?; - let event_q_len = seg0.len() + seg1.len(); + let client = std::sync::Arc::new(client); + let get_data = warp::path("length") + .map(move || { + let client = client.clone(); + let market_keys = get_keys_for_market(&client, &program_id, &market).unwrap(); + let event_q_data = client + .get_account_with_commitment(&market_keys.event_q, CommitmentConfig::recent()).unwrap() + .value + .expect("Failed to retrieve account") + .data; + let inner: Cow<[u64]> = remove_dex_account_padding(&event_q_data).unwrap(); + let (header, seg0, seg1) = parse_event_queue(&inner).unwrap(); + let len = seg0.len() + seg1.len(); + format!("{{ \"length\": {} }}", len) + }); - sender.send(MonitorEvent::NumEvents(event_q_len)).unwrap(); - - let send_every = time::Duration::from_millis(3000); - thread::sleep(send_every); - } + Ok(warp::serve(get_data) + .run(([127, 0, 0, 1], port)) + .await) }