├── .gitignore ├── Cargo.lock ├── Cargo.toml ├── README.md ├── keys ├── rpcs ├── rust-toolchain.toml ├── src ├── balance.rs ├── busses.rs ├── claim.rs ├── initialize.rs ├── main.rs ├── mine.rs ├── register.rs ├── rewards.rs ├── send_and_confirm.rs ├── treasury.rs ├── update_admin.rs ├── update_difficulty.rs └── utils.rs └── supervision.sh /.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | output.log 3 | /scripts -------------------------------------------------------------------------------- /Cargo.lock: -------------------------------------------------------------------------------- 1 | # This file is automatically @generated by Cargo. 2 | # It is not intended for manual editing. 3 | version = 3 4 | 5 | [[package]] 6 | name = "Inflector" 7 | version = "0.11.4" 8 | source = "registry+https://github.com/rust-lang/crates.io-index" 9 | checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3" 10 | dependencies = [ 11 | "lazy_static", 12 | "regex", 13 | ] 14 | 15 | [[package]] 16 | name = "addr2line" 17 | version = "0.21.0" 18 | source = "registry+https://github.com/rust-lang/crates.io-index" 19 | checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" 20 | dependencies = [ 21 | "gimli", 22 | ] 23 | 24 | [[package]] 25 | name = "adler" 26 | version = "1.0.2" 27 | source = "registry+https://github.com/rust-lang/crates.io-index" 28 | checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" 29 | 30 | [[package]] 31 | name = "aead" 32 | version = "0.4.3" 33 | source = "registry+https://github.com/rust-lang/crates.io-index" 34 | checksum = "0b613b8e1e3cf911a086f53f03bf286f52fd7a7258e4fa606f0ef220d39d8877" 35 | dependencies = [ 36 | "generic-array", 37 | ] 38 | 39 | [[package]] 40 | name = "aes" 41 | version = "0.7.5" 42 | source = "registry+https://github.com/rust-lang/crates.io-index" 43 | checksum = "9e8b47f52ea9bae42228d07ec09eb676433d7c4ed1ebdf0f1d1c29ed446f1ab8" 44 | dependencies = [ 45 | "cfg-if", 46 | "cipher", 47 | "cpufeatures", 48 | "opaque-debug", 49 | ] 50 | 51 | [[package]] 52 | name = "aes-gcm-siv" 53 | version = "0.10.3" 54 | source = "registry+https://github.com/rust-lang/crates.io-index" 55 | checksum = "589c637f0e68c877bbd59a4599bbe849cac8e5f3e4b5a3ebae8f528cd218dcdc" 56 | dependencies = [ 57 | "aead", 58 | "aes", 59 | "cipher", 60 | "ctr", 61 | "polyval", 62 | "subtle", 63 | "zeroize", 64 | ] 65 | 66 | [[package]] 67 | name = "ahash" 68 | version = "0.7.7" 69 | source = "registry+https://github.com/rust-lang/crates.io-index" 70 | checksum = "5a824f2aa7e75a0c98c5a504fceb80649e9c35265d44525b5f94de4771a395cd" 71 | dependencies = [ 72 | "getrandom 0.2.11", 73 | "once_cell", 74 | "version_check", 75 | ] 76 | 77 | [[package]] 78 | name = "ahash" 79 | version = "0.8.7" 80 | source = "registry+https://github.com/rust-lang/crates.io-index" 81 | checksum = "77c3a9648d43b9cd48db467b3f87fdd6e146bcc88ab0180006cef2179fe11d01" 82 | dependencies = [ 83 | "cfg-if", 84 | "getrandom 0.2.11", 85 | "once_cell", 86 | "version_check", 87 | "zerocopy", 88 | ] 89 | 90 | [[package]] 91 | name = "aho-corasick" 92 | version = "1.1.2" 93 | source = "registry+https://github.com/rust-lang/crates.io-index" 94 | checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0" 95 | dependencies = [ 96 | "memchr", 97 | ] 98 | 99 | [[package]] 100 | name = "alloc-no-stdlib" 101 | version = "2.0.4" 102 | source = "registry+https://github.com/rust-lang/crates.io-index" 103 | checksum = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3" 104 | 105 | [[package]] 106 | name = "alloc-stdlib" 107 | version = "0.2.2" 108 | source = "registry+https://github.com/rust-lang/crates.io-index" 109 | checksum = "94fb8275041c72129eb51b7d0322c29b8387a0386127718b096429201a5d6ece" 110 | dependencies = [ 111 | "alloc-no-stdlib", 112 | ] 113 | 114 | [[package]] 115 | name = "allocator-api2" 116 | version = "0.2.16" 117 | source = "registry+https://github.com/rust-lang/crates.io-index" 118 | checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5" 119 | 120 | [[package]] 121 | name = "android-tzdata" 122 | version = "0.1.1" 123 | source = "registry+https://github.com/rust-lang/crates.io-index" 124 | checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" 125 | 126 | [[package]] 127 | name = "android_system_properties" 128 | version = "0.1.5" 129 | source = "registry+https://github.com/rust-lang/crates.io-index" 130 | checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" 131 | dependencies = [ 132 | "libc", 133 | ] 134 | 135 | [[package]] 136 | name = "ansi_term" 137 | version = "0.12.1" 138 | source = "registry+https://github.com/rust-lang/crates.io-index" 139 | checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" 140 | dependencies = [ 141 | "winapi", 142 | ] 143 | 144 | [[package]] 145 | name = "anstream" 146 | version = "0.6.5" 147 | source = "registry+https://github.com/rust-lang/crates.io-index" 148 | checksum = "d664a92ecae85fd0a7392615844904654d1d5f5514837f471ddef4a057aba1b6" 149 | dependencies = [ 150 | "anstyle", 151 | "anstyle-parse", 152 | "anstyle-query", 153 | "anstyle-wincon", 154 | "colorchoice", 155 | "utf8parse", 156 | ] 157 | 158 | [[package]] 159 | name = "anstyle" 160 | version = "1.0.4" 161 | source = "registry+https://github.com/rust-lang/crates.io-index" 162 | checksum = "7079075b41f533b8c61d2a4d073c4676e1f8b249ff94a393b0595db304e0dd87" 163 | 164 | [[package]] 165 | name = "anstyle-parse" 166 | version = "0.2.3" 167 | source = "registry+https://github.com/rust-lang/crates.io-index" 168 | checksum = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c" 169 | dependencies = [ 170 | "utf8parse", 171 | ] 172 | 173 | [[package]] 174 | name = "anstyle-query" 175 | version = "1.0.2" 176 | source = "registry+https://github.com/rust-lang/crates.io-index" 177 | checksum = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648" 178 | dependencies = [ 179 | "windows-sys 0.52.0", 180 | ] 181 | 182 | [[package]] 183 | name = "anstyle-wincon" 184 | version = "3.0.2" 185 | source = "registry+https://github.com/rust-lang/crates.io-index" 186 | checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7" 187 | dependencies = [ 188 | "anstyle", 189 | "windows-sys 0.52.0", 190 | ] 191 | 192 | [[package]] 193 | name = "anyhow" 194 | version = "1.0.78" 195 | source = "registry+https://github.com/rust-lang/crates.io-index" 196 | checksum = "ca87830a3e3fb156dc96cfbd31cb620265dd053be734723f22b760d6cc3c3051" 197 | 198 | [[package]] 199 | name = "ark-bn254" 200 | version = "0.4.0" 201 | source = "registry+https://github.com/rust-lang/crates.io-index" 202 | checksum = "a22f4561524cd949590d78d7d4c5df8f592430d221f7f3c9497bbafd8972120f" 203 | dependencies = [ 204 | "ark-ec", 205 | "ark-ff", 206 | "ark-std", 207 | ] 208 | 209 | [[package]] 210 | name = "ark-ec" 211 | version = "0.4.2" 212 | source = "registry+https://github.com/rust-lang/crates.io-index" 213 | checksum = "defd9a439d56ac24968cca0571f598a61bc8c55f71d50a89cda591cb750670ba" 214 | dependencies = [ 215 | "ark-ff", 216 | "ark-poly", 217 | "ark-serialize", 218 | "ark-std", 219 | "derivative", 220 | "hashbrown 0.13.2", 221 | "itertools", 222 | "num-traits", 223 | "zeroize", 224 | ] 225 | 226 | [[package]] 227 | name = "ark-ff" 228 | version = "0.4.2" 229 | source = "registry+https://github.com/rust-lang/crates.io-index" 230 | checksum = "ec847af850f44ad29048935519032c33da8aa03340876d351dfab5660d2966ba" 231 | dependencies = [ 232 | "ark-ff-asm", 233 | "ark-ff-macros", 234 | "ark-serialize", 235 | "ark-std", 236 | "derivative", 237 | "digest 0.10.7", 238 | "itertools", 239 | "num-bigint 0.4.4", 240 | "num-traits", 241 | "paste", 242 | "rustc_version", 243 | "zeroize", 244 | ] 245 | 246 | [[package]] 247 | name = "ark-ff-asm" 248 | version = "0.4.2" 249 | source = "registry+https://github.com/rust-lang/crates.io-index" 250 | checksum = "3ed4aa4fe255d0bc6d79373f7e31d2ea147bcf486cba1be5ba7ea85abdb92348" 251 | dependencies = [ 252 | "quote", 253 | "syn 1.0.109", 254 | ] 255 | 256 | [[package]] 257 | name = "ark-ff-macros" 258 | version = "0.4.2" 259 | source = "registry+https://github.com/rust-lang/crates.io-index" 260 | checksum = "7abe79b0e4288889c4574159ab790824d0033b9fdcb2a112a3182fac2e514565" 261 | dependencies = [ 262 | "num-bigint 0.4.4", 263 | "num-traits", 264 | "proc-macro2", 265 | "quote", 266 | "syn 1.0.109", 267 | ] 268 | 269 | [[package]] 270 | name = "ark-poly" 271 | version = "0.4.2" 272 | source = "registry+https://github.com/rust-lang/crates.io-index" 273 | checksum = "d320bfc44ee185d899ccbadfa8bc31aab923ce1558716e1997a1e74057fe86bf" 274 | dependencies = [ 275 | "ark-ff", 276 | "ark-serialize", 277 | "ark-std", 278 | "derivative", 279 | "hashbrown 0.13.2", 280 | ] 281 | 282 | [[package]] 283 | name = "ark-serialize" 284 | version = "0.4.2" 285 | source = "registry+https://github.com/rust-lang/crates.io-index" 286 | checksum = "adb7b85a02b83d2f22f89bd5cac66c9c89474240cb6207cb1efc16d098e822a5" 287 | dependencies = [ 288 | "ark-serialize-derive", 289 | "ark-std", 290 | "digest 0.10.7", 291 | "num-bigint 0.4.4", 292 | ] 293 | 294 | [[package]] 295 | name = "ark-serialize-derive" 296 | version = "0.4.2" 297 | source = "registry+https://github.com/rust-lang/crates.io-index" 298 | checksum = "ae3281bc6d0fd7e549af32b52511e1302185bd688fd3359fa36423346ff682ea" 299 | dependencies = [ 300 | "proc-macro2", 301 | "quote", 302 | "syn 1.0.109", 303 | ] 304 | 305 | [[package]] 306 | name = "ark-std" 307 | version = "0.4.0" 308 | source = "registry+https://github.com/rust-lang/crates.io-index" 309 | checksum = "94893f1e0c6eeab764ade8dc4c0db24caf4fe7cbbaafc0eba0a9030f447b5185" 310 | dependencies = [ 311 | "num-traits", 312 | "rand 0.8.5", 313 | ] 314 | 315 | [[package]] 316 | name = "arrayref" 317 | version = "0.3.7" 318 | source = "registry+https://github.com/rust-lang/crates.io-index" 319 | checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545" 320 | 321 | [[package]] 322 | name = "arrayvec" 323 | version = "0.7.4" 324 | source = "registry+https://github.com/rust-lang/crates.io-index" 325 | checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" 326 | 327 | [[package]] 328 | name = "ascii" 329 | version = "0.9.3" 330 | source = "registry+https://github.com/rust-lang/crates.io-index" 331 | checksum = "eab1c04a571841102f5345a8fc0f6bb3d31c315dec879b5c6e42e40ce7ffa34e" 332 | 333 | [[package]] 334 | name = "asn1-rs" 335 | version = "0.5.2" 336 | source = "registry+https://github.com/rust-lang/crates.io-index" 337 | checksum = "7f6fd5ddaf0351dff5b8da21b2fb4ff8e08ddd02857f0bf69c47639106c0fff0" 338 | dependencies = [ 339 | "asn1-rs-derive", 340 | "asn1-rs-impl", 341 | "displaydoc", 342 | "nom", 343 | "num-traits", 344 | "rusticata-macros", 345 | "thiserror", 346 | "time", 347 | ] 348 | 349 | [[package]] 350 | name = "asn1-rs-derive" 351 | version = "0.4.0" 352 | source = "registry+https://github.com/rust-lang/crates.io-index" 353 | checksum = "726535892e8eae7e70657b4c8ea93d26b8553afb1ce617caee529ef96d7dee6c" 354 | dependencies = [ 355 | "proc-macro2", 356 | "quote", 357 | "syn 1.0.109", 358 | "synstructure", 359 | ] 360 | 361 | [[package]] 362 | name = "asn1-rs-impl" 363 | version = "0.1.0" 364 | source = "registry+https://github.com/rust-lang/crates.io-index" 365 | checksum = "2777730b2039ac0f95f093556e61b6d26cebed5393ca6f152717777cec3a42ed" 366 | dependencies = [ 367 | "proc-macro2", 368 | "quote", 369 | "syn 1.0.109", 370 | ] 371 | 372 | [[package]] 373 | name = "assert_matches" 374 | version = "1.5.0" 375 | source = "registry+https://github.com/rust-lang/crates.io-index" 376 | checksum = "9b34d609dfbaf33d6889b2b7106d3ca345eacad44200913df5ba02bfd31d2ba9" 377 | 378 | [[package]] 379 | name = "async-channel" 380 | version = "1.9.0" 381 | source = "registry+https://github.com/rust-lang/crates.io-index" 382 | checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35" 383 | dependencies = [ 384 | "concurrent-queue", 385 | "event-listener", 386 | "futures-core", 387 | ] 388 | 389 | [[package]] 390 | name = "async-compression" 391 | version = "0.4.5" 392 | source = "registry+https://github.com/rust-lang/crates.io-index" 393 | checksum = "bc2d0cfb2a7388d34f590e76686704c494ed7aaceed62ee1ba35cbf363abc2a5" 394 | dependencies = [ 395 | "brotli", 396 | "flate2", 397 | "futures-core", 398 | "memchr", 399 | "pin-project-lite", 400 | "tokio", 401 | ] 402 | 403 | [[package]] 404 | name = "async-mutex" 405 | version = "1.4.0" 406 | source = "registry+https://github.com/rust-lang/crates.io-index" 407 | checksum = "479db852db25d9dbf6204e6cb6253698f175c15726470f78af0d918e99d6156e" 408 | dependencies = [ 409 | "event-listener", 410 | ] 411 | 412 | [[package]] 413 | name = "async-trait" 414 | version = "0.1.77" 415 | source = "registry+https://github.com/rust-lang/crates.io-index" 416 | checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9" 417 | dependencies = [ 418 | "proc-macro2", 419 | "quote", 420 | "syn 2.0.48", 421 | ] 422 | 423 | [[package]] 424 | name = "atty" 425 | version = "0.2.14" 426 | source = "registry+https://github.com/rust-lang/crates.io-index" 427 | checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" 428 | dependencies = [ 429 | "hermit-abi 0.1.19", 430 | "libc", 431 | "winapi", 432 | ] 433 | 434 | [[package]] 435 | name = "autocfg" 436 | version = "1.1.0" 437 | source = "registry+https://github.com/rust-lang/crates.io-index" 438 | checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" 439 | 440 | [[package]] 441 | name = "backtrace" 442 | version = "0.3.69" 443 | source = "registry+https://github.com/rust-lang/crates.io-index" 444 | checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837" 445 | dependencies = [ 446 | "addr2line", 447 | "cc", 448 | "cfg-if", 449 | "libc", 450 | "miniz_oxide", 451 | "object", 452 | "rustc-demangle", 453 | ] 454 | 455 | [[package]] 456 | name = "base64" 457 | version = "0.12.3" 458 | source = "registry+https://github.com/rust-lang/crates.io-index" 459 | checksum = "3441f0f7b02788e948e47f457ca01f1d7e6d92c693bc132c22b087d3141c03ff" 460 | 461 | [[package]] 462 | name = "base64" 463 | version = "0.13.1" 464 | source = "registry+https://github.com/rust-lang/crates.io-index" 465 | checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" 466 | 467 | [[package]] 468 | name = "base64" 469 | version = "0.21.7" 470 | source = "registry+https://github.com/rust-lang/crates.io-index" 471 | checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" 472 | 473 | [[package]] 474 | name = "base64ct" 475 | version = "1.6.0" 476 | source = "registry+https://github.com/rust-lang/crates.io-index" 477 | checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" 478 | 479 | [[package]] 480 | name = "bincode" 481 | version = "1.3.3" 482 | source = "registry+https://github.com/rust-lang/crates.io-index" 483 | checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" 484 | dependencies = [ 485 | "serde", 486 | ] 487 | 488 | [[package]] 489 | name = "bitflags" 490 | version = "1.3.2" 491 | source = "registry+https://github.com/rust-lang/crates.io-index" 492 | checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" 493 | 494 | [[package]] 495 | name = "bitflags" 496 | version = "2.4.2" 497 | source = "registry+https://github.com/rust-lang/crates.io-index" 498 | checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" 499 | dependencies = [ 500 | "serde", 501 | ] 502 | 503 | [[package]] 504 | name = "bitmaps" 505 | version = "2.1.0" 506 | source = "registry+https://github.com/rust-lang/crates.io-index" 507 | checksum = "031043d04099746d8db04daf1fa424b2bc8bd69d92b25962dcde24da39ab64a2" 508 | dependencies = [ 509 | "typenum", 510 | ] 511 | 512 | [[package]] 513 | name = "blake3" 514 | version = "1.5.0" 515 | source = "registry+https://github.com/rust-lang/crates.io-index" 516 | checksum = "0231f06152bf547e9c2b5194f247cd97aacf6dcd8b15d8e5ec0663f64580da87" 517 | dependencies = [ 518 | "arrayref", 519 | "arrayvec", 520 | "cc", 521 | "cfg-if", 522 | "constant_time_eq", 523 | "digest 0.10.7", 524 | ] 525 | 526 | [[package]] 527 | name = "block-buffer" 528 | version = "0.9.0" 529 | source = "registry+https://github.com/rust-lang/crates.io-index" 530 | checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" 531 | dependencies = [ 532 | "block-padding", 533 | "generic-array", 534 | ] 535 | 536 | [[package]] 537 | name = "block-buffer" 538 | version = "0.10.4" 539 | source = "registry+https://github.com/rust-lang/crates.io-index" 540 | checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" 541 | dependencies = [ 542 | "generic-array", 543 | ] 544 | 545 | [[package]] 546 | name = "block-padding" 547 | version = "0.2.1" 548 | source = "registry+https://github.com/rust-lang/crates.io-index" 549 | checksum = "8d696c370c750c948ada61c69a0ee2cbbb9c50b1019ddb86d9317157a99c2cae" 550 | 551 | [[package]] 552 | name = "borsh" 553 | version = "0.9.3" 554 | source = "registry+https://github.com/rust-lang/crates.io-index" 555 | checksum = "15bf3650200d8bffa99015595e10f1fbd17de07abbc25bb067da79e769939bfa" 556 | dependencies = [ 557 | "borsh-derive 0.9.3", 558 | "hashbrown 0.11.2", 559 | ] 560 | 561 | [[package]] 562 | name = "borsh" 563 | version = "0.10.3" 564 | source = "registry+https://github.com/rust-lang/crates.io-index" 565 | checksum = "4114279215a005bc675e386011e594e1d9b800918cea18fcadadcce864a2046b" 566 | dependencies = [ 567 | "borsh-derive 0.10.3", 568 | "hashbrown 0.13.2", 569 | ] 570 | 571 | [[package]] 572 | name = "borsh" 573 | version = "1.3.1" 574 | source = "registry+https://github.com/rust-lang/crates.io-index" 575 | checksum = "f58b559fd6448c6e2fd0adb5720cd98a2506594cafa4737ff98c396f3e82f667" 576 | dependencies = [ 577 | "borsh-derive 1.3.1", 578 | "cfg_aliases", 579 | ] 580 | 581 | [[package]] 582 | name = "borsh-derive" 583 | version = "0.9.3" 584 | source = "registry+https://github.com/rust-lang/crates.io-index" 585 | checksum = "6441c552f230375d18e3cc377677914d2ca2b0d36e52129fe15450a2dce46775" 586 | dependencies = [ 587 | "borsh-derive-internal 0.9.3", 588 | "borsh-schema-derive-internal 0.9.3", 589 | "proc-macro-crate 0.1.5", 590 | "proc-macro2", 591 | "syn 1.0.109", 592 | ] 593 | 594 | [[package]] 595 | name = "borsh-derive" 596 | version = "0.10.3" 597 | source = "registry+https://github.com/rust-lang/crates.io-index" 598 | checksum = "0754613691538d51f329cce9af41d7b7ca150bc973056f1156611489475f54f7" 599 | dependencies = [ 600 | "borsh-derive-internal 0.10.3", 601 | "borsh-schema-derive-internal 0.10.3", 602 | "proc-macro-crate 0.1.5", 603 | "proc-macro2", 604 | "syn 1.0.109", 605 | ] 606 | 607 | [[package]] 608 | name = "borsh-derive" 609 | version = "1.3.1" 610 | source = "registry+https://github.com/rust-lang/crates.io-index" 611 | checksum = "7aadb5b6ccbd078890f6d7003694e33816e6b784358f18e15e7e6d9f065a57cd" 612 | dependencies = [ 613 | "once_cell", 614 | "proc-macro-crate 3.1.0", 615 | "proc-macro2", 616 | "quote", 617 | "syn 2.0.48", 618 | "syn_derive", 619 | ] 620 | 621 | [[package]] 622 | name = "borsh-derive-internal" 623 | version = "0.9.3" 624 | source = "registry+https://github.com/rust-lang/crates.io-index" 625 | checksum = "5449c28a7b352f2d1e592a8a28bf139bc71afb0764a14f3c02500935d8c44065" 626 | dependencies = [ 627 | "proc-macro2", 628 | "quote", 629 | "syn 1.0.109", 630 | ] 631 | 632 | [[package]] 633 | name = "borsh-derive-internal" 634 | version = "0.10.3" 635 | source = "registry+https://github.com/rust-lang/crates.io-index" 636 | checksum = "afb438156919598d2c7bad7e1c0adf3d26ed3840dbc010db1a882a65583ca2fb" 637 | dependencies = [ 638 | "proc-macro2", 639 | "quote", 640 | "syn 1.0.109", 641 | ] 642 | 643 | [[package]] 644 | name = "borsh-schema-derive-internal" 645 | version = "0.9.3" 646 | source = "registry+https://github.com/rust-lang/crates.io-index" 647 | checksum = "cdbd5696d8bfa21d53d9fe39a714a18538bad11492a42d066dbbc395fb1951c0" 648 | dependencies = [ 649 | "proc-macro2", 650 | "quote", 651 | "syn 1.0.109", 652 | ] 653 | 654 | [[package]] 655 | name = "borsh-schema-derive-internal" 656 | version = "0.10.3" 657 | source = "registry+https://github.com/rust-lang/crates.io-index" 658 | checksum = "634205cc43f74a1b9046ef87c4540ebda95696ec0f315024860cad7c5b0f5ccd" 659 | dependencies = [ 660 | "proc-macro2", 661 | "quote", 662 | "syn 1.0.109", 663 | ] 664 | 665 | [[package]] 666 | name = "brotli" 667 | version = "3.4.0" 668 | source = "registry+https://github.com/rust-lang/crates.io-index" 669 | checksum = "516074a47ef4bce09577a3b379392300159ce5b1ba2e501ff1c819950066100f" 670 | dependencies = [ 671 | "alloc-no-stdlib", 672 | "alloc-stdlib", 673 | "brotli-decompressor", 674 | ] 675 | 676 | [[package]] 677 | name = "brotli-decompressor" 678 | version = "2.5.1" 679 | source = "registry+https://github.com/rust-lang/crates.io-index" 680 | checksum = "4e2e4afe60d7dd600fdd3de8d0f08c2b7ec039712e3b6137ff98b7004e82de4f" 681 | dependencies = [ 682 | "alloc-no-stdlib", 683 | "alloc-stdlib", 684 | ] 685 | 686 | [[package]] 687 | name = "bs58" 688 | version = "0.4.0" 689 | source = "registry+https://github.com/rust-lang/crates.io-index" 690 | checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3" 691 | 692 | [[package]] 693 | name = "bs58" 694 | version = "0.5.1" 695 | source = "registry+https://github.com/rust-lang/crates.io-index" 696 | checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" 697 | dependencies = [ 698 | "tinyvec", 699 | ] 700 | 701 | [[package]] 702 | name = "bumpalo" 703 | version = "3.14.0" 704 | source = "registry+https://github.com/rust-lang/crates.io-index" 705 | checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" 706 | 707 | [[package]] 708 | name = "bv" 709 | version = "0.11.1" 710 | source = "registry+https://github.com/rust-lang/crates.io-index" 711 | checksum = "8834bb1d8ee5dc048ee3124f2c7c1afcc6bc9aed03f11e9dfd8c69470a5db340" 712 | dependencies = [ 713 | "feature-probe", 714 | "serde", 715 | ] 716 | 717 | [[package]] 718 | name = "bytemuck" 719 | version = "1.14.3" 720 | source = "registry+https://github.com/rust-lang/crates.io-index" 721 | checksum = "a2ef034f05691a48569bd920a96c81b9d91bbad1ab5ac7c4616c1f6ef36cb79f" 722 | dependencies = [ 723 | "bytemuck_derive", 724 | ] 725 | 726 | [[package]] 727 | name = "bytemuck_derive" 728 | version = "1.5.0" 729 | source = "registry+https://github.com/rust-lang/crates.io-index" 730 | checksum = "965ab7eb5f8f97d2a083c799f3a1b994fc397b2fe2da5d1da1626ce15a39f2b1" 731 | dependencies = [ 732 | "proc-macro2", 733 | "quote", 734 | "syn 2.0.48", 735 | ] 736 | 737 | [[package]] 738 | name = "byteorder" 739 | version = "1.5.0" 740 | source = "registry+https://github.com/rust-lang/crates.io-index" 741 | checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" 742 | 743 | [[package]] 744 | name = "bytes" 745 | version = "1.5.0" 746 | source = "registry+https://github.com/rust-lang/crates.io-index" 747 | checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" 748 | 749 | [[package]] 750 | name = "cached" 751 | version = "0.46.1" 752 | source = "registry+https://github.com/rust-lang/crates.io-index" 753 | checksum = "c7c8c50262271cdf5abc979a5f76515c234e764fa025d1ba4862c0f0bcda0e95" 754 | dependencies = [ 755 | "ahash 0.8.7", 756 | "cached_proc_macro", 757 | "cached_proc_macro_types", 758 | "hashbrown 0.14.3", 759 | "instant", 760 | "once_cell", 761 | "thiserror", 762 | ] 763 | 764 | [[package]] 765 | name = "cached_proc_macro" 766 | version = "0.18.1" 767 | source = "registry+https://github.com/rust-lang/crates.io-index" 768 | checksum = "c878c71c2821aa2058722038a59a67583a4240524687c6028571c9b395ded61f" 769 | dependencies = [ 770 | "darling 0.14.4", 771 | "proc-macro2", 772 | "quote", 773 | "syn 1.0.109", 774 | ] 775 | 776 | [[package]] 777 | name = "cached_proc_macro_types" 778 | version = "0.1.0" 779 | source = "registry+https://github.com/rust-lang/crates.io-index" 780 | checksum = "3a4f925191b4367301851c6d99b09890311d74b0d43f274c0b34c86d308a3663" 781 | 782 | [[package]] 783 | name = "caps" 784 | version = "0.5.5" 785 | source = "registry+https://github.com/rust-lang/crates.io-index" 786 | checksum = "190baaad529bcfbde9e1a19022c42781bdb6ff9de25721abdb8fd98c0807730b" 787 | dependencies = [ 788 | "libc", 789 | "thiserror", 790 | ] 791 | 792 | [[package]] 793 | name = "cc" 794 | version = "1.0.83" 795 | source = "registry+https://github.com/rust-lang/crates.io-index" 796 | checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" 797 | dependencies = [ 798 | "jobserver", 799 | "libc", 800 | ] 801 | 802 | [[package]] 803 | name = "cfg-if" 804 | version = "1.0.0" 805 | source = "registry+https://github.com/rust-lang/crates.io-index" 806 | checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" 807 | 808 | [[package]] 809 | name = "cfg_aliases" 810 | version = "0.1.1" 811 | source = "registry+https://github.com/rust-lang/crates.io-index" 812 | checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" 813 | 814 | [[package]] 815 | name = "chrono" 816 | version = "0.4.37" 817 | source = "registry+https://github.com/rust-lang/crates.io-index" 818 | checksum = "8a0d04d43504c61aa6c7531f1871dd0d418d91130162063b789da00fd7057a5e" 819 | dependencies = [ 820 | "android-tzdata", 821 | "iana-time-zone", 822 | "js-sys", 823 | "num-traits", 824 | "serde", 825 | "wasm-bindgen", 826 | "windows-targets 0.52.0", 827 | ] 828 | 829 | [[package]] 830 | name = "cipher" 831 | version = "0.3.0" 832 | source = "registry+https://github.com/rust-lang/crates.io-index" 833 | checksum = "7ee52072ec15386f770805afd189a01c8841be8696bed250fa2f13c4c0d6dfb7" 834 | dependencies = [ 835 | "generic-array", 836 | ] 837 | 838 | [[package]] 839 | name = "clap" 840 | version = "2.34.0" 841 | source = "registry+https://github.com/rust-lang/crates.io-index" 842 | checksum = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c" 843 | dependencies = [ 844 | "ansi_term", 845 | "atty", 846 | "bitflags 1.3.2", 847 | "strsim 0.8.0", 848 | "textwrap 0.11.0", 849 | "unicode-width", 850 | "vec_map", 851 | ] 852 | 853 | [[package]] 854 | name = "clap" 855 | version = "3.2.25" 856 | source = "registry+https://github.com/rust-lang/crates.io-index" 857 | checksum = "4ea181bf566f71cb9a5d17a59e1871af638180a18fb0035c92ae62b705207123" 858 | dependencies = [ 859 | "atty", 860 | "bitflags 1.3.2", 861 | "clap_lex 0.2.4", 862 | "indexmap 1.9.3", 863 | "once_cell", 864 | "strsim 0.10.0", 865 | "termcolor", 866 | "textwrap 0.16.0", 867 | ] 868 | 869 | [[package]] 870 | name = "clap" 871 | version = "4.4.12" 872 | source = "registry+https://github.com/rust-lang/crates.io-index" 873 | checksum = "dcfab8ba68f3668e89f6ff60f5b205cea56aa7b769451a59f34b8682f51c056d" 874 | dependencies = [ 875 | "clap_builder", 876 | "clap_derive", 877 | ] 878 | 879 | [[package]] 880 | name = "clap_builder" 881 | version = "4.4.12" 882 | source = "registry+https://github.com/rust-lang/crates.io-index" 883 | checksum = "fb7fb5e4e979aec3be7791562fcba452f94ad85e954da024396433e0e25a79e9" 884 | dependencies = [ 885 | "anstream", 886 | "anstyle", 887 | "clap_lex 0.6.0", 888 | "strsim 0.10.0", 889 | ] 890 | 891 | [[package]] 892 | name = "clap_derive" 893 | version = "4.4.7" 894 | source = "registry+https://github.com/rust-lang/crates.io-index" 895 | checksum = "cf9804afaaf59a91e75b022a30fb7229a7901f60c755489cc61c9b423b836442" 896 | dependencies = [ 897 | "heck", 898 | "proc-macro2", 899 | "quote", 900 | "syn 2.0.48", 901 | ] 902 | 903 | [[package]] 904 | name = "clap_lex" 905 | version = "0.2.4" 906 | source = "registry+https://github.com/rust-lang/crates.io-index" 907 | checksum = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5" 908 | dependencies = [ 909 | "os_str_bytes", 910 | ] 911 | 912 | [[package]] 913 | name = "clap_lex" 914 | version = "0.6.0" 915 | source = "registry+https://github.com/rust-lang/crates.io-index" 916 | checksum = "702fc72eb24e5a1e48ce58027a675bc24edd52096d5397d4aea7c6dd9eca0bd1" 917 | 918 | [[package]] 919 | name = "colorchoice" 920 | version = "1.0.0" 921 | source = "registry+https://github.com/rust-lang/crates.io-index" 922 | checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" 923 | 924 | [[package]] 925 | name = "combine" 926 | version = "3.8.1" 927 | source = "registry+https://github.com/rust-lang/crates.io-index" 928 | checksum = "da3da6baa321ec19e1cc41d31bf599f00c783d0517095cdaf0332e3fe8d20680" 929 | dependencies = [ 930 | "ascii", 931 | "byteorder", 932 | "either", 933 | "memchr", 934 | "unreachable", 935 | ] 936 | 937 | [[package]] 938 | name = "concurrent-queue" 939 | version = "2.4.0" 940 | source = "registry+https://github.com/rust-lang/crates.io-index" 941 | checksum = "d16048cd947b08fa32c24458a22f5dc5e835264f689f4f5653210c69fd107363" 942 | dependencies = [ 943 | "crossbeam-utils", 944 | ] 945 | 946 | [[package]] 947 | name = "console" 948 | version = "0.15.8" 949 | source = "registry+https://github.com/rust-lang/crates.io-index" 950 | checksum = "0e1f83fc076bd6dd27517eacdf25fef6c4dfe5f1d7448bafaaf3a26f13b5e4eb" 951 | dependencies = [ 952 | "encode_unicode", 953 | "lazy_static", 954 | "libc", 955 | "unicode-width", 956 | "windows-sys 0.52.0", 957 | ] 958 | 959 | [[package]] 960 | name = "console_error_panic_hook" 961 | version = "0.1.7" 962 | source = "registry+https://github.com/rust-lang/crates.io-index" 963 | checksum = "a06aeb73f470f66dcdbf7223caeebb85984942f22f1adb2a088cf9668146bbbc" 964 | dependencies = [ 965 | "cfg-if", 966 | "wasm-bindgen", 967 | ] 968 | 969 | [[package]] 970 | name = "console_log" 971 | version = "0.2.2" 972 | source = "registry+https://github.com/rust-lang/crates.io-index" 973 | checksum = "e89f72f65e8501878b8a004d5a1afb780987e2ce2b4532c562e367a72c57499f" 974 | dependencies = [ 975 | "log", 976 | "web-sys", 977 | ] 978 | 979 | [[package]] 980 | name = "const-oid" 981 | version = "0.7.1" 982 | source = "registry+https://github.com/rust-lang/crates.io-index" 983 | checksum = "e4c78c047431fee22c1a7bb92e00ad095a02a983affe4d8a72e2a2c62c1b94f3" 984 | 985 | [[package]] 986 | name = "constant_time_eq" 987 | version = "0.3.0" 988 | source = "registry+https://github.com/rust-lang/crates.io-index" 989 | checksum = "f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2" 990 | 991 | [[package]] 992 | name = "core-foundation" 993 | version = "0.9.4" 994 | source = "registry+https://github.com/rust-lang/crates.io-index" 995 | checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" 996 | dependencies = [ 997 | "core-foundation-sys", 998 | "libc", 999 | ] 1000 | 1001 | [[package]] 1002 | name = "core-foundation-sys" 1003 | version = "0.8.6" 1004 | source = "registry+https://github.com/rust-lang/crates.io-index" 1005 | checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" 1006 | 1007 | [[package]] 1008 | name = "cpufeatures" 1009 | version = "0.2.11" 1010 | source = "registry+https://github.com/rust-lang/crates.io-index" 1011 | checksum = "ce420fe07aecd3e67c5f910618fe65e94158f6dcc0adf44e00d69ce2bdfe0fd0" 1012 | dependencies = [ 1013 | "libc", 1014 | ] 1015 | 1016 | [[package]] 1017 | name = "crc32fast" 1018 | version = "1.3.2" 1019 | source = "registry+https://github.com/rust-lang/crates.io-index" 1020 | checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" 1021 | dependencies = [ 1022 | "cfg-if", 1023 | ] 1024 | 1025 | [[package]] 1026 | name = "crossbeam-channel" 1027 | version = "0.5.12" 1028 | source = "registry+https://github.com/rust-lang/crates.io-index" 1029 | checksum = "ab3db02a9c5b5121e1e42fbdb1aeb65f5e02624cc58c43f2884c6ccac0b82f95" 1030 | dependencies = [ 1031 | "crossbeam-utils", 1032 | ] 1033 | 1034 | [[package]] 1035 | name = "crossbeam-deque" 1036 | version = "0.8.4" 1037 | source = "registry+https://github.com/rust-lang/crates.io-index" 1038 | checksum = "fca89a0e215bab21874660c67903c5f143333cab1da83d041c7ded6053774751" 1039 | dependencies = [ 1040 | "cfg-if", 1041 | "crossbeam-epoch", 1042 | "crossbeam-utils", 1043 | ] 1044 | 1045 | [[package]] 1046 | name = "crossbeam-epoch" 1047 | version = "0.9.17" 1048 | source = "registry+https://github.com/rust-lang/crates.io-index" 1049 | checksum = "0e3681d554572a651dda4186cd47240627c3d0114d45a95f6ad27f2f22e7548d" 1050 | dependencies = [ 1051 | "autocfg", 1052 | "cfg-if", 1053 | "crossbeam-utils", 1054 | ] 1055 | 1056 | [[package]] 1057 | name = "crossbeam-utils" 1058 | version = "0.8.18" 1059 | source = "registry+https://github.com/rust-lang/crates.io-index" 1060 | checksum = "c3a430a770ebd84726f584a90ee7f020d28db52c6d02138900f22341f866d39c" 1061 | dependencies = [ 1062 | "cfg-if", 1063 | ] 1064 | 1065 | [[package]] 1066 | name = "crunchy" 1067 | version = "0.2.2" 1068 | source = "registry+https://github.com/rust-lang/crates.io-index" 1069 | checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" 1070 | 1071 | [[package]] 1072 | name = "crypto-common" 1073 | version = "0.1.6" 1074 | source = "registry+https://github.com/rust-lang/crates.io-index" 1075 | checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" 1076 | dependencies = [ 1077 | "generic-array", 1078 | "typenum", 1079 | ] 1080 | 1081 | [[package]] 1082 | name = "crypto-mac" 1083 | version = "0.8.0" 1084 | source = "registry+https://github.com/rust-lang/crates.io-index" 1085 | checksum = "b584a330336237c1eecd3e94266efb216c56ed91225d634cb2991c5f3fd1aeab" 1086 | dependencies = [ 1087 | "generic-array", 1088 | "subtle", 1089 | ] 1090 | 1091 | [[package]] 1092 | name = "ctr" 1093 | version = "0.8.0" 1094 | source = "registry+https://github.com/rust-lang/crates.io-index" 1095 | checksum = "049bb91fb4aaf0e3c7efa6cd5ef877dbbbd15b39dad06d9948de4ec8a75761ea" 1096 | dependencies = [ 1097 | "cipher", 1098 | ] 1099 | 1100 | [[package]] 1101 | name = "curve25519-dalek" 1102 | version = "3.2.1" 1103 | source = "registry+https://github.com/rust-lang/crates.io-index" 1104 | checksum = "90f9d052967f590a76e62eb387bd0bbb1b000182c3cefe5364db6b7211651bc0" 1105 | dependencies = [ 1106 | "byteorder", 1107 | "digest 0.9.0", 1108 | "rand_core 0.5.1", 1109 | "serde", 1110 | "subtle", 1111 | "zeroize", 1112 | ] 1113 | 1114 | [[package]] 1115 | name = "darling" 1116 | version = "0.14.4" 1117 | source = "registry+https://github.com/rust-lang/crates.io-index" 1118 | checksum = "7b750cb3417fd1b327431a470f388520309479ab0bf5e323505daf0290cd3850" 1119 | dependencies = [ 1120 | "darling_core 0.14.4", 1121 | "darling_macro 0.14.4", 1122 | ] 1123 | 1124 | [[package]] 1125 | name = "darling" 1126 | version = "0.20.3" 1127 | source = "registry+https://github.com/rust-lang/crates.io-index" 1128 | checksum = "0209d94da627ab5605dcccf08bb18afa5009cfbef48d8a8b7d7bdbc79be25c5e" 1129 | dependencies = [ 1130 | "darling_core 0.20.3", 1131 | "darling_macro 0.20.3", 1132 | ] 1133 | 1134 | [[package]] 1135 | name = "darling_core" 1136 | version = "0.14.4" 1137 | source = "registry+https://github.com/rust-lang/crates.io-index" 1138 | checksum = "109c1ca6e6b7f82cc233a97004ea8ed7ca123a9af07a8230878fcfda9b158bf0" 1139 | dependencies = [ 1140 | "fnv", 1141 | "ident_case", 1142 | "proc-macro2", 1143 | "quote", 1144 | "strsim 0.10.0", 1145 | "syn 1.0.109", 1146 | ] 1147 | 1148 | [[package]] 1149 | name = "darling_core" 1150 | version = "0.20.3" 1151 | source = "registry+https://github.com/rust-lang/crates.io-index" 1152 | checksum = "177e3443818124b357d8e76f53be906d60937f0d3a90773a664fa63fa253e621" 1153 | dependencies = [ 1154 | "fnv", 1155 | "ident_case", 1156 | "proc-macro2", 1157 | "quote", 1158 | "strsim 0.10.0", 1159 | "syn 2.0.48", 1160 | ] 1161 | 1162 | [[package]] 1163 | name = "darling_macro" 1164 | version = "0.14.4" 1165 | source = "registry+https://github.com/rust-lang/crates.io-index" 1166 | checksum = "a4aab4dbc9f7611d8b55048a3a16d2d010c2c8334e46304b40ac1cc14bf3b48e" 1167 | dependencies = [ 1168 | "darling_core 0.14.4", 1169 | "quote", 1170 | "syn 1.0.109", 1171 | ] 1172 | 1173 | [[package]] 1174 | name = "darling_macro" 1175 | version = "0.20.3" 1176 | source = "registry+https://github.com/rust-lang/crates.io-index" 1177 | checksum = "836a9bbc7ad63342d6d6e7b815ccab164bc77a2d95d84bc3117a8c0d5c98e2d5" 1178 | dependencies = [ 1179 | "darling_core 0.20.3", 1180 | "quote", 1181 | "syn 2.0.48", 1182 | ] 1183 | 1184 | [[package]] 1185 | name = "dashmap" 1186 | version = "5.5.3" 1187 | source = "registry+https://github.com/rust-lang/crates.io-index" 1188 | checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856" 1189 | dependencies = [ 1190 | "cfg-if", 1191 | "hashbrown 0.14.3", 1192 | "lock_api", 1193 | "once_cell", 1194 | "parking_lot_core", 1195 | ] 1196 | 1197 | [[package]] 1198 | name = "data-encoding" 1199 | version = "2.5.0" 1200 | source = "registry+https://github.com/rust-lang/crates.io-index" 1201 | checksum = "7e962a19be5cfc3f3bf6dd8f61eb50107f356ad6270fbb3ed41476571db78be5" 1202 | 1203 | [[package]] 1204 | name = "der" 1205 | version = "0.5.1" 1206 | source = "registry+https://github.com/rust-lang/crates.io-index" 1207 | checksum = "6919815d73839e7ad218de758883aae3a257ba6759ce7a9992501efbb53d705c" 1208 | dependencies = [ 1209 | "const-oid", 1210 | ] 1211 | 1212 | [[package]] 1213 | name = "der-parser" 1214 | version = "8.2.0" 1215 | source = "registry+https://github.com/rust-lang/crates.io-index" 1216 | checksum = "dbd676fbbab537128ef0278adb5576cf363cff6aa22a7b24effe97347cfab61e" 1217 | dependencies = [ 1218 | "asn1-rs", 1219 | "displaydoc", 1220 | "nom", 1221 | "num-bigint 0.4.4", 1222 | "num-traits", 1223 | "rusticata-macros", 1224 | ] 1225 | 1226 | [[package]] 1227 | name = "deranged" 1228 | version = "0.3.11" 1229 | source = "registry+https://github.com/rust-lang/crates.io-index" 1230 | checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" 1231 | dependencies = [ 1232 | "powerfmt", 1233 | ] 1234 | 1235 | [[package]] 1236 | name = "derivation-path" 1237 | version = "0.2.0" 1238 | source = "registry+https://github.com/rust-lang/crates.io-index" 1239 | checksum = "6e5c37193a1db1d8ed868c03ec7b152175f26160a5b740e5e484143877e0adf0" 1240 | 1241 | [[package]] 1242 | name = "derivative" 1243 | version = "2.2.0" 1244 | source = "registry+https://github.com/rust-lang/crates.io-index" 1245 | checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" 1246 | dependencies = [ 1247 | "proc-macro2", 1248 | "quote", 1249 | "syn 1.0.109", 1250 | ] 1251 | 1252 | [[package]] 1253 | name = "dialoguer" 1254 | version = "0.10.4" 1255 | source = "registry+https://github.com/rust-lang/crates.io-index" 1256 | checksum = "59c6f2989294b9a498d3ad5491a79c6deb604617378e1cdc4bfc1c1361fe2f87" 1257 | dependencies = [ 1258 | "console", 1259 | "shell-words", 1260 | "tempfile", 1261 | "zeroize", 1262 | ] 1263 | 1264 | [[package]] 1265 | name = "digest" 1266 | version = "0.9.0" 1267 | source = "registry+https://github.com/rust-lang/crates.io-index" 1268 | checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" 1269 | dependencies = [ 1270 | "generic-array", 1271 | ] 1272 | 1273 | [[package]] 1274 | name = "digest" 1275 | version = "0.10.7" 1276 | source = "registry+https://github.com/rust-lang/crates.io-index" 1277 | checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" 1278 | dependencies = [ 1279 | "block-buffer 0.10.4", 1280 | "crypto-common", 1281 | "subtle", 1282 | ] 1283 | 1284 | [[package]] 1285 | name = "dirs-next" 1286 | version = "2.0.0" 1287 | source = "registry+https://github.com/rust-lang/crates.io-index" 1288 | checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1" 1289 | dependencies = [ 1290 | "cfg-if", 1291 | "dirs-sys-next", 1292 | ] 1293 | 1294 | [[package]] 1295 | name = "dirs-sys-next" 1296 | version = "0.1.2" 1297 | source = "registry+https://github.com/rust-lang/crates.io-index" 1298 | checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" 1299 | dependencies = [ 1300 | "libc", 1301 | "redox_users", 1302 | "winapi", 1303 | ] 1304 | 1305 | [[package]] 1306 | name = "displaydoc" 1307 | version = "0.2.4" 1308 | source = "registry+https://github.com/rust-lang/crates.io-index" 1309 | checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d" 1310 | dependencies = [ 1311 | "proc-macro2", 1312 | "quote", 1313 | "syn 2.0.48", 1314 | ] 1315 | 1316 | [[package]] 1317 | name = "dlopen2" 1318 | version = "0.5.0" 1319 | source = "registry+https://github.com/rust-lang/crates.io-index" 1320 | checksum = "09b4f5f101177ff01b8ec4ecc81eead416a8aa42819a2869311b3420fa114ffa" 1321 | dependencies = [ 1322 | "dlopen2_derive", 1323 | "libc", 1324 | "once_cell", 1325 | "winapi", 1326 | ] 1327 | 1328 | [[package]] 1329 | name = "dlopen2_derive" 1330 | version = "0.3.0" 1331 | source = "registry+https://github.com/rust-lang/crates.io-index" 1332 | checksum = "a6cbae11b3de8fce2a456e8ea3dada226b35fe791f0dc1d360c0941f0bb681f3" 1333 | dependencies = [ 1334 | "proc-macro2", 1335 | "quote", 1336 | "syn 2.0.48", 1337 | ] 1338 | 1339 | [[package]] 1340 | name = "eager" 1341 | version = "0.1.0" 1342 | source = "registry+https://github.com/rust-lang/crates.io-index" 1343 | checksum = "abe71d579d1812060163dff96056261deb5bf6729b100fa2e36a68b9649ba3d3" 1344 | 1345 | [[package]] 1346 | name = "ed25519" 1347 | version = "1.5.3" 1348 | source = "registry+https://github.com/rust-lang/crates.io-index" 1349 | checksum = "91cff35c70bba8a626e3185d8cd48cc11b5437e1a5bcd15b9b5fa3c64b6dfee7" 1350 | dependencies = [ 1351 | "signature", 1352 | ] 1353 | 1354 | [[package]] 1355 | name = "ed25519-dalek" 1356 | version = "1.0.1" 1357 | source = "registry+https://github.com/rust-lang/crates.io-index" 1358 | checksum = "c762bae6dcaf24c4c84667b8579785430908723d5c889f469d76a41d59cc7a9d" 1359 | dependencies = [ 1360 | "curve25519-dalek", 1361 | "ed25519", 1362 | "rand 0.7.3", 1363 | "serde", 1364 | "sha2 0.9.9", 1365 | "zeroize", 1366 | ] 1367 | 1368 | [[package]] 1369 | name = "ed25519-dalek-bip32" 1370 | version = "0.2.0" 1371 | source = "registry+https://github.com/rust-lang/crates.io-index" 1372 | checksum = "9d2be62a4061b872c8c0873ee4fc6f101ce7b889d039f019c5fa2af471a59908" 1373 | dependencies = [ 1374 | "derivation-path", 1375 | "ed25519-dalek", 1376 | "hmac 0.12.1", 1377 | "sha2 0.10.8", 1378 | ] 1379 | 1380 | [[package]] 1381 | name = "either" 1382 | version = "1.9.0" 1383 | source = "registry+https://github.com/rust-lang/crates.io-index" 1384 | checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" 1385 | 1386 | [[package]] 1387 | name = "encode_unicode" 1388 | version = "0.3.6" 1389 | source = "registry+https://github.com/rust-lang/crates.io-index" 1390 | checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f" 1391 | 1392 | [[package]] 1393 | name = "encoding_rs" 1394 | version = "0.8.33" 1395 | source = "registry+https://github.com/rust-lang/crates.io-index" 1396 | checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1" 1397 | dependencies = [ 1398 | "cfg-if", 1399 | ] 1400 | 1401 | [[package]] 1402 | name = "enum-iterator" 1403 | version = "1.5.0" 1404 | source = "registry+https://github.com/rust-lang/crates.io-index" 1405 | checksum = "9fd242f399be1da0a5354aa462d57b4ab2b4ee0683cc552f7c007d2d12d36e94" 1406 | dependencies = [ 1407 | "enum-iterator-derive", 1408 | ] 1409 | 1410 | [[package]] 1411 | name = "enum-iterator-derive" 1412 | version = "1.3.0" 1413 | source = "registry+https://github.com/rust-lang/crates.io-index" 1414 | checksum = "03cdc46ec28bd728e67540c528013c6a10eb69a02eb31078a1bda695438cbfb8" 1415 | dependencies = [ 1416 | "proc-macro2", 1417 | "quote", 1418 | "syn 2.0.48", 1419 | ] 1420 | 1421 | [[package]] 1422 | name = "env_logger" 1423 | version = "0.9.3" 1424 | source = "registry+https://github.com/rust-lang/crates.io-index" 1425 | checksum = "a12e6657c4c97ebab115a42dcee77225f7f482cdd841cf7088c657a42e9e00e7" 1426 | dependencies = [ 1427 | "atty", 1428 | "humantime", 1429 | "log", 1430 | "regex", 1431 | "termcolor", 1432 | ] 1433 | 1434 | [[package]] 1435 | name = "equivalent" 1436 | version = "1.0.1" 1437 | source = "registry+https://github.com/rust-lang/crates.io-index" 1438 | checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" 1439 | 1440 | [[package]] 1441 | name = "errno" 1442 | version = "0.3.8" 1443 | source = "registry+https://github.com/rust-lang/crates.io-index" 1444 | checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245" 1445 | dependencies = [ 1446 | "libc", 1447 | "windows-sys 0.52.0", 1448 | ] 1449 | 1450 | [[package]] 1451 | name = "event-listener" 1452 | version = "2.5.3" 1453 | source = "registry+https://github.com/rust-lang/crates.io-index" 1454 | checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" 1455 | 1456 | [[package]] 1457 | name = "fastrand" 1458 | version = "2.0.1" 1459 | source = "registry+https://github.com/rust-lang/crates.io-index" 1460 | checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" 1461 | 1462 | [[package]] 1463 | name = "feature-probe" 1464 | version = "0.1.1" 1465 | source = "registry+https://github.com/rust-lang/crates.io-index" 1466 | checksum = "835a3dc7d1ec9e75e2b5fb4ba75396837112d2060b03f7d43bc1897c7f7211da" 1467 | 1468 | [[package]] 1469 | name = "flate2" 1470 | version = "1.0.28" 1471 | source = "registry+https://github.com/rust-lang/crates.io-index" 1472 | checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e" 1473 | dependencies = [ 1474 | "crc32fast", 1475 | "miniz_oxide", 1476 | ] 1477 | 1478 | [[package]] 1479 | name = "fnv" 1480 | version = "1.0.7" 1481 | source = "registry+https://github.com/rust-lang/crates.io-index" 1482 | checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" 1483 | 1484 | [[package]] 1485 | name = "form_urlencoded" 1486 | version = "1.2.1" 1487 | source = "registry+https://github.com/rust-lang/crates.io-index" 1488 | checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" 1489 | dependencies = [ 1490 | "percent-encoding", 1491 | ] 1492 | 1493 | [[package]] 1494 | name = "futures" 1495 | version = "0.3.30" 1496 | source = "registry+https://github.com/rust-lang/crates.io-index" 1497 | checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0" 1498 | dependencies = [ 1499 | "futures-channel", 1500 | "futures-core", 1501 | "futures-executor", 1502 | "futures-io", 1503 | "futures-sink", 1504 | "futures-task", 1505 | "futures-util", 1506 | ] 1507 | 1508 | [[package]] 1509 | name = "futures-channel" 1510 | version = "0.3.30" 1511 | source = "registry+https://github.com/rust-lang/crates.io-index" 1512 | checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" 1513 | dependencies = [ 1514 | "futures-core", 1515 | "futures-sink", 1516 | ] 1517 | 1518 | [[package]] 1519 | name = "futures-core" 1520 | version = "0.3.30" 1521 | source = "registry+https://github.com/rust-lang/crates.io-index" 1522 | checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" 1523 | 1524 | [[package]] 1525 | name = "futures-executor" 1526 | version = "0.3.30" 1527 | source = "registry+https://github.com/rust-lang/crates.io-index" 1528 | checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d" 1529 | dependencies = [ 1530 | "futures-core", 1531 | "futures-task", 1532 | "futures-util", 1533 | ] 1534 | 1535 | [[package]] 1536 | name = "futures-io" 1537 | version = "0.3.30" 1538 | source = "registry+https://github.com/rust-lang/crates.io-index" 1539 | checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" 1540 | 1541 | [[package]] 1542 | name = "futures-macro" 1543 | version = "0.3.30" 1544 | source = "registry+https://github.com/rust-lang/crates.io-index" 1545 | checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" 1546 | dependencies = [ 1547 | "proc-macro2", 1548 | "quote", 1549 | "syn 2.0.48", 1550 | ] 1551 | 1552 | [[package]] 1553 | name = "futures-sink" 1554 | version = "0.3.30" 1555 | source = "registry+https://github.com/rust-lang/crates.io-index" 1556 | checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" 1557 | 1558 | [[package]] 1559 | name = "futures-task" 1560 | version = "0.3.30" 1561 | source = "registry+https://github.com/rust-lang/crates.io-index" 1562 | checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" 1563 | 1564 | [[package]] 1565 | name = "futures-util" 1566 | version = "0.3.30" 1567 | source = "registry+https://github.com/rust-lang/crates.io-index" 1568 | checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" 1569 | dependencies = [ 1570 | "futures-channel", 1571 | "futures-core", 1572 | "futures-io", 1573 | "futures-macro", 1574 | "futures-sink", 1575 | "futures-task", 1576 | "memchr", 1577 | "pin-project-lite", 1578 | "pin-utils", 1579 | "slab", 1580 | ] 1581 | 1582 | [[package]] 1583 | name = "generic-array" 1584 | version = "0.14.7" 1585 | source = "registry+https://github.com/rust-lang/crates.io-index" 1586 | checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" 1587 | dependencies = [ 1588 | "serde", 1589 | "typenum", 1590 | "version_check", 1591 | ] 1592 | 1593 | [[package]] 1594 | name = "gethostname" 1595 | version = "0.2.3" 1596 | source = "registry+https://github.com/rust-lang/crates.io-index" 1597 | checksum = "c1ebd34e35c46e00bb73e81363248d627782724609fe1b6396f553f68fe3862e" 1598 | dependencies = [ 1599 | "libc", 1600 | "winapi", 1601 | ] 1602 | 1603 | [[package]] 1604 | name = "getrandom" 1605 | version = "0.1.16" 1606 | source = "registry+https://github.com/rust-lang/crates.io-index" 1607 | checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" 1608 | dependencies = [ 1609 | "cfg-if", 1610 | "js-sys", 1611 | "libc", 1612 | "wasi 0.9.0+wasi-snapshot-preview1", 1613 | "wasm-bindgen", 1614 | ] 1615 | 1616 | [[package]] 1617 | name = "getrandom" 1618 | version = "0.2.11" 1619 | source = "registry+https://github.com/rust-lang/crates.io-index" 1620 | checksum = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f" 1621 | dependencies = [ 1622 | "cfg-if", 1623 | "js-sys", 1624 | "libc", 1625 | "wasi 0.11.0+wasi-snapshot-preview1", 1626 | "wasm-bindgen", 1627 | ] 1628 | 1629 | [[package]] 1630 | name = "gimli" 1631 | version = "0.28.1" 1632 | source = "registry+https://github.com/rust-lang/crates.io-index" 1633 | checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" 1634 | 1635 | [[package]] 1636 | name = "goblin" 1637 | version = "0.5.4" 1638 | source = "registry+https://github.com/rust-lang/crates.io-index" 1639 | checksum = "a7666983ed0dd8d21a6f6576ee00053ca0926fb281a5522577a4dbd0f1b54143" 1640 | dependencies = [ 1641 | "log", 1642 | "plain", 1643 | "scroll", 1644 | ] 1645 | 1646 | [[package]] 1647 | name = "h2" 1648 | version = "0.3.22" 1649 | source = "registry+https://github.com/rust-lang/crates.io-index" 1650 | checksum = "4d6250322ef6e60f93f9a2162799302cd6f68f79f6e5d85c8c16f14d1d958178" 1651 | dependencies = [ 1652 | "bytes", 1653 | "fnv", 1654 | "futures-core", 1655 | "futures-sink", 1656 | "futures-util", 1657 | "http", 1658 | "indexmap 2.2.5", 1659 | "slab", 1660 | "tokio", 1661 | "tokio-util", 1662 | "tracing", 1663 | ] 1664 | 1665 | [[package]] 1666 | name = "hash32" 1667 | version = "0.2.1" 1668 | source = "registry+https://github.com/rust-lang/crates.io-index" 1669 | checksum = "b0c35f58762feb77d74ebe43bdbc3210f09be9fe6742234d573bacc26ed92b67" 1670 | dependencies = [ 1671 | "byteorder", 1672 | ] 1673 | 1674 | [[package]] 1675 | name = "hashbrown" 1676 | version = "0.11.2" 1677 | source = "registry+https://github.com/rust-lang/crates.io-index" 1678 | checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" 1679 | dependencies = [ 1680 | "ahash 0.7.7", 1681 | ] 1682 | 1683 | [[package]] 1684 | name = "hashbrown" 1685 | version = "0.12.3" 1686 | source = "registry+https://github.com/rust-lang/crates.io-index" 1687 | checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" 1688 | 1689 | [[package]] 1690 | name = "hashbrown" 1691 | version = "0.13.2" 1692 | source = "registry+https://github.com/rust-lang/crates.io-index" 1693 | checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" 1694 | dependencies = [ 1695 | "ahash 0.8.7", 1696 | ] 1697 | 1698 | [[package]] 1699 | name = "hashbrown" 1700 | version = "0.14.3" 1701 | source = "registry+https://github.com/rust-lang/crates.io-index" 1702 | checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" 1703 | dependencies = [ 1704 | "ahash 0.8.7", 1705 | "allocator-api2", 1706 | ] 1707 | 1708 | [[package]] 1709 | name = "heck" 1710 | version = "0.4.1" 1711 | source = "registry+https://github.com/rust-lang/crates.io-index" 1712 | checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" 1713 | 1714 | [[package]] 1715 | name = "hermit-abi" 1716 | version = "0.1.19" 1717 | source = "registry+https://github.com/rust-lang/crates.io-index" 1718 | checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" 1719 | dependencies = [ 1720 | "libc", 1721 | ] 1722 | 1723 | [[package]] 1724 | name = "hermit-abi" 1725 | version = "0.3.3" 1726 | source = "registry+https://github.com/rust-lang/crates.io-index" 1727 | checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7" 1728 | 1729 | [[package]] 1730 | name = "histogram" 1731 | version = "0.6.9" 1732 | source = "registry+https://github.com/rust-lang/crates.io-index" 1733 | checksum = "12cb882ccb290b8646e554b157ab0b71e64e8d5bef775cd66b6531e52d302669" 1734 | 1735 | [[package]] 1736 | name = "hmac" 1737 | version = "0.8.1" 1738 | source = "registry+https://github.com/rust-lang/crates.io-index" 1739 | checksum = "126888268dcc288495a26bf004b38c5fdbb31682f992c84ceb046a1f0fe38840" 1740 | dependencies = [ 1741 | "crypto-mac", 1742 | "digest 0.9.0", 1743 | ] 1744 | 1745 | [[package]] 1746 | name = "hmac" 1747 | version = "0.12.1" 1748 | source = "registry+https://github.com/rust-lang/crates.io-index" 1749 | checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" 1750 | dependencies = [ 1751 | "digest 0.10.7", 1752 | ] 1753 | 1754 | [[package]] 1755 | name = "hmac-drbg" 1756 | version = "0.3.0" 1757 | source = "registry+https://github.com/rust-lang/crates.io-index" 1758 | checksum = "17ea0a1394df5b6574da6e0c1ade9e78868c9fb0a4e5ef4428e32da4676b85b1" 1759 | dependencies = [ 1760 | "digest 0.9.0", 1761 | "generic-array", 1762 | "hmac 0.8.1", 1763 | ] 1764 | 1765 | [[package]] 1766 | name = "http" 1767 | version = "0.2.11" 1768 | source = "registry+https://github.com/rust-lang/crates.io-index" 1769 | checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb" 1770 | dependencies = [ 1771 | "bytes", 1772 | "fnv", 1773 | "itoa", 1774 | ] 1775 | 1776 | [[package]] 1777 | name = "http-body" 1778 | version = "0.4.6" 1779 | source = "registry+https://github.com/rust-lang/crates.io-index" 1780 | checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" 1781 | dependencies = [ 1782 | "bytes", 1783 | "http", 1784 | "pin-project-lite", 1785 | ] 1786 | 1787 | [[package]] 1788 | name = "httparse" 1789 | version = "1.8.0" 1790 | source = "registry+https://github.com/rust-lang/crates.io-index" 1791 | checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" 1792 | 1793 | [[package]] 1794 | name = "httpdate" 1795 | version = "1.0.3" 1796 | source = "registry+https://github.com/rust-lang/crates.io-index" 1797 | checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" 1798 | 1799 | [[package]] 1800 | name = "humantime" 1801 | version = "2.1.0" 1802 | source = "registry+https://github.com/rust-lang/crates.io-index" 1803 | checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" 1804 | 1805 | [[package]] 1806 | name = "hyper" 1807 | version = "0.14.28" 1808 | source = "registry+https://github.com/rust-lang/crates.io-index" 1809 | checksum = "bf96e135eb83a2a8ddf766e426a841d8ddd7449d5f00d34ea02b41d2f19eef80" 1810 | dependencies = [ 1811 | "bytes", 1812 | "futures-channel", 1813 | "futures-core", 1814 | "futures-util", 1815 | "h2", 1816 | "http", 1817 | "http-body", 1818 | "httparse", 1819 | "httpdate", 1820 | "itoa", 1821 | "pin-project-lite", 1822 | "socket2", 1823 | "tokio", 1824 | "tower-service", 1825 | "tracing", 1826 | "want", 1827 | ] 1828 | 1829 | [[package]] 1830 | name = "hyper-rustls" 1831 | version = "0.24.2" 1832 | source = "registry+https://github.com/rust-lang/crates.io-index" 1833 | checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590" 1834 | dependencies = [ 1835 | "futures-util", 1836 | "http", 1837 | "hyper", 1838 | "rustls", 1839 | "tokio", 1840 | "tokio-rustls", 1841 | ] 1842 | 1843 | [[package]] 1844 | name = "iana-time-zone" 1845 | version = "0.1.59" 1846 | source = "registry+https://github.com/rust-lang/crates.io-index" 1847 | checksum = "b6a67363e2aa4443928ce15e57ebae94fd8949958fd1223c4cfc0cd473ad7539" 1848 | dependencies = [ 1849 | "android_system_properties", 1850 | "core-foundation-sys", 1851 | "iana-time-zone-haiku", 1852 | "js-sys", 1853 | "wasm-bindgen", 1854 | "windows-core", 1855 | ] 1856 | 1857 | [[package]] 1858 | name = "iana-time-zone-haiku" 1859 | version = "0.1.2" 1860 | source = "registry+https://github.com/rust-lang/crates.io-index" 1861 | checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" 1862 | dependencies = [ 1863 | "cc", 1864 | ] 1865 | 1866 | [[package]] 1867 | name = "ident_case" 1868 | version = "1.0.1" 1869 | source = "registry+https://github.com/rust-lang/crates.io-index" 1870 | checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" 1871 | 1872 | [[package]] 1873 | name = "idna" 1874 | version = "0.5.0" 1875 | source = "registry+https://github.com/rust-lang/crates.io-index" 1876 | checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" 1877 | dependencies = [ 1878 | "unicode-bidi", 1879 | "unicode-normalization", 1880 | ] 1881 | 1882 | [[package]] 1883 | name = "im" 1884 | version = "15.1.0" 1885 | source = "registry+https://github.com/rust-lang/crates.io-index" 1886 | checksum = "d0acd33ff0285af998aaf9b57342af478078f53492322fafc47450e09397e0e9" 1887 | dependencies = [ 1888 | "bitmaps", 1889 | "rand_core 0.6.4", 1890 | "rand_xoshiro", 1891 | "rayon", 1892 | "serde", 1893 | "sized-chunks", 1894 | "typenum", 1895 | "version_check", 1896 | ] 1897 | 1898 | [[package]] 1899 | name = "indexmap" 1900 | version = "1.9.3" 1901 | source = "registry+https://github.com/rust-lang/crates.io-index" 1902 | checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" 1903 | dependencies = [ 1904 | "autocfg", 1905 | "hashbrown 0.12.3", 1906 | ] 1907 | 1908 | [[package]] 1909 | name = "indexmap" 1910 | version = "2.2.5" 1911 | source = "registry+https://github.com/rust-lang/crates.io-index" 1912 | checksum = "7b0b929d511467233429c45a44ac1dcaa21ba0f5ba11e4879e6ed28ddb4f9df4" 1913 | dependencies = [ 1914 | "equivalent", 1915 | "hashbrown 0.14.3", 1916 | ] 1917 | 1918 | [[package]] 1919 | name = "indicatif" 1920 | version = "0.17.7" 1921 | source = "registry+https://github.com/rust-lang/crates.io-index" 1922 | checksum = "fb28741c9db9a713d93deb3bb9515c20788cef5815265bee4980e87bde7e0f25" 1923 | dependencies = [ 1924 | "console", 1925 | "instant", 1926 | "number_prefix", 1927 | "portable-atomic", 1928 | "unicode-width", 1929 | ] 1930 | 1931 | [[package]] 1932 | name = "instant" 1933 | version = "0.1.12" 1934 | source = "registry+https://github.com/rust-lang/crates.io-index" 1935 | checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" 1936 | dependencies = [ 1937 | "cfg-if", 1938 | ] 1939 | 1940 | [[package]] 1941 | name = "ipnet" 1942 | version = "2.9.0" 1943 | source = "registry+https://github.com/rust-lang/crates.io-index" 1944 | checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" 1945 | 1946 | [[package]] 1947 | name = "itertools" 1948 | version = "0.10.5" 1949 | source = "registry+https://github.com/rust-lang/crates.io-index" 1950 | checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" 1951 | dependencies = [ 1952 | "either", 1953 | ] 1954 | 1955 | [[package]] 1956 | name = "itoa" 1957 | version = "1.0.10" 1958 | source = "registry+https://github.com/rust-lang/crates.io-index" 1959 | checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c" 1960 | 1961 | [[package]] 1962 | name = "jobserver" 1963 | version = "0.1.27" 1964 | source = "registry+https://github.com/rust-lang/crates.io-index" 1965 | checksum = "8c37f63953c4c63420ed5fd3d6d398c719489b9f872b9fa683262f8edd363c7d" 1966 | dependencies = [ 1967 | "libc", 1968 | ] 1969 | 1970 | [[package]] 1971 | name = "js-sys" 1972 | version = "0.3.69" 1973 | source = "registry+https://github.com/rust-lang/crates.io-index" 1974 | checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d" 1975 | dependencies = [ 1976 | "wasm-bindgen", 1977 | ] 1978 | 1979 | [[package]] 1980 | name = "jsonrpc-core" 1981 | version = "18.0.0" 1982 | source = "registry+https://github.com/rust-lang/crates.io-index" 1983 | checksum = "14f7f76aef2d054868398427f6c54943cf3d1caa9a7ec7d0c38d69df97a965eb" 1984 | dependencies = [ 1985 | "futures", 1986 | "futures-executor", 1987 | "futures-util", 1988 | "log", 1989 | "serde", 1990 | "serde_derive", 1991 | "serde_json", 1992 | ] 1993 | 1994 | [[package]] 1995 | name = "keccak" 1996 | version = "0.1.4" 1997 | source = "registry+https://github.com/rust-lang/crates.io-index" 1998 | checksum = "8f6d5ed8676d904364de097082f4e7d240b571b67989ced0240f08b7f966f940" 1999 | dependencies = [ 2000 | "cpufeatures", 2001 | ] 2002 | 2003 | [[package]] 2004 | name = "lazy_static" 2005 | version = "1.4.0" 2006 | source = "registry+https://github.com/rust-lang/crates.io-index" 2007 | checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" 2008 | 2009 | [[package]] 2010 | name = "libc" 2011 | version = "0.2.153" 2012 | source = "registry+https://github.com/rust-lang/crates.io-index" 2013 | checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" 2014 | 2015 | [[package]] 2016 | name = "libredox" 2017 | version = "0.0.1" 2018 | source = "registry+https://github.com/rust-lang/crates.io-index" 2019 | checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8" 2020 | dependencies = [ 2021 | "bitflags 2.4.2", 2022 | "libc", 2023 | "redox_syscall", 2024 | ] 2025 | 2026 | [[package]] 2027 | name = "libsecp256k1" 2028 | version = "0.6.0" 2029 | source = "registry+https://github.com/rust-lang/crates.io-index" 2030 | checksum = "c9d220bc1feda2ac231cb78c3d26f27676b8cf82c96971f7aeef3d0cf2797c73" 2031 | dependencies = [ 2032 | "arrayref", 2033 | "base64 0.12.3", 2034 | "digest 0.9.0", 2035 | "hmac-drbg", 2036 | "libsecp256k1-core", 2037 | "libsecp256k1-gen-ecmult", 2038 | "libsecp256k1-gen-genmult", 2039 | "rand 0.7.3", 2040 | "serde", 2041 | "sha2 0.9.9", 2042 | "typenum", 2043 | ] 2044 | 2045 | [[package]] 2046 | name = "libsecp256k1-core" 2047 | version = "0.2.2" 2048 | source = "registry+https://github.com/rust-lang/crates.io-index" 2049 | checksum = "d0f6ab710cec28cef759c5f18671a27dae2a5f952cdaaee1d8e2908cb2478a80" 2050 | dependencies = [ 2051 | "crunchy", 2052 | "digest 0.9.0", 2053 | "subtle", 2054 | ] 2055 | 2056 | [[package]] 2057 | name = "libsecp256k1-gen-ecmult" 2058 | version = "0.2.1" 2059 | source = "registry+https://github.com/rust-lang/crates.io-index" 2060 | checksum = "ccab96b584d38fac86a83f07e659f0deafd0253dc096dab5a36d53efe653c5c3" 2061 | dependencies = [ 2062 | "libsecp256k1-core", 2063 | ] 2064 | 2065 | [[package]] 2066 | name = "libsecp256k1-gen-genmult" 2067 | version = "0.2.1" 2068 | source = "registry+https://github.com/rust-lang/crates.io-index" 2069 | checksum = "67abfe149395e3aa1c48a2beb32b068e2334402df8181f818d3aee2b304c4f5d" 2070 | dependencies = [ 2071 | "libsecp256k1-core", 2072 | ] 2073 | 2074 | [[package]] 2075 | name = "light-poseidon" 2076 | version = "0.2.0" 2077 | source = "registry+https://github.com/rust-lang/crates.io-index" 2078 | checksum = "3c9a85a9752c549ceb7578064b4ed891179d20acd85f27318573b64d2d7ee7ee" 2079 | dependencies = [ 2080 | "ark-bn254", 2081 | "ark-ff", 2082 | "num-bigint 0.4.4", 2083 | "thiserror", 2084 | ] 2085 | 2086 | [[package]] 2087 | name = "linux-raw-sys" 2088 | version = "0.4.12" 2089 | source = "registry+https://github.com/rust-lang/crates.io-index" 2090 | checksum = "c4cd1a83af159aa67994778be9070f0ae1bd732942279cabb14f86f986a21456" 2091 | 2092 | [[package]] 2093 | name = "lock_api" 2094 | version = "0.4.11" 2095 | source = "registry+https://github.com/rust-lang/crates.io-index" 2096 | checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45" 2097 | dependencies = [ 2098 | "autocfg", 2099 | "scopeguard", 2100 | ] 2101 | 2102 | [[package]] 2103 | name = "log" 2104 | version = "0.4.20" 2105 | source = "registry+https://github.com/rust-lang/crates.io-index" 2106 | checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" 2107 | 2108 | [[package]] 2109 | name = "memchr" 2110 | version = "2.7.1" 2111 | source = "registry+https://github.com/rust-lang/crates.io-index" 2112 | checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149" 2113 | 2114 | [[package]] 2115 | name = "memmap2" 2116 | version = "0.5.10" 2117 | source = "registry+https://github.com/rust-lang/crates.io-index" 2118 | checksum = "83faa42c0a078c393f6b29d5db232d8be22776a891f8f56e5284faee4a20b327" 2119 | dependencies = [ 2120 | "libc", 2121 | ] 2122 | 2123 | [[package]] 2124 | name = "memoffset" 2125 | version = "0.7.1" 2126 | source = "registry+https://github.com/rust-lang/crates.io-index" 2127 | checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4" 2128 | dependencies = [ 2129 | "autocfg", 2130 | ] 2131 | 2132 | [[package]] 2133 | name = "memoffset" 2134 | version = "0.9.0" 2135 | source = "registry+https://github.com/rust-lang/crates.io-index" 2136 | checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" 2137 | dependencies = [ 2138 | "autocfg", 2139 | ] 2140 | 2141 | [[package]] 2142 | name = "merlin" 2143 | version = "3.0.0" 2144 | source = "registry+https://github.com/rust-lang/crates.io-index" 2145 | checksum = "58c38e2799fc0978b65dfff8023ec7843e2330bb462f19198840b34b6582397d" 2146 | dependencies = [ 2147 | "byteorder", 2148 | "keccak", 2149 | "rand_core 0.6.4", 2150 | "zeroize", 2151 | ] 2152 | 2153 | [[package]] 2154 | name = "mime" 2155 | version = "0.3.17" 2156 | source = "registry+https://github.com/rust-lang/crates.io-index" 2157 | checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" 2158 | 2159 | [[package]] 2160 | name = "minimal-lexical" 2161 | version = "0.2.1" 2162 | source = "registry+https://github.com/rust-lang/crates.io-index" 2163 | checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" 2164 | 2165 | [[package]] 2166 | name = "miniz_oxide" 2167 | version = "0.7.1" 2168 | source = "registry+https://github.com/rust-lang/crates.io-index" 2169 | checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" 2170 | dependencies = [ 2171 | "adler", 2172 | ] 2173 | 2174 | [[package]] 2175 | name = "mio" 2176 | version = "0.8.10" 2177 | source = "registry+https://github.com/rust-lang/crates.io-index" 2178 | checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09" 2179 | dependencies = [ 2180 | "libc", 2181 | "wasi 0.11.0+wasi-snapshot-preview1", 2182 | "windows-sys 0.48.0", 2183 | ] 2184 | 2185 | [[package]] 2186 | name = "mpl-token-metadata" 2187 | version = "4.1.2" 2188 | source = "registry+https://github.com/rust-lang/crates.io-index" 2189 | checksum = "caf0f61b553e424a6234af1268456972ee66c2222e1da89079242251fa7479e5" 2190 | dependencies = [ 2191 | "borsh 0.10.3", 2192 | "num-derive 0.3.3", 2193 | "num-traits", 2194 | "solana-program", 2195 | "thiserror", 2196 | ] 2197 | 2198 | [[package]] 2199 | name = "nix" 2200 | version = "0.26.4" 2201 | source = "registry+https://github.com/rust-lang/crates.io-index" 2202 | checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b" 2203 | dependencies = [ 2204 | "bitflags 1.3.2", 2205 | "cfg-if", 2206 | "libc", 2207 | "memoffset 0.7.1", 2208 | "pin-utils", 2209 | ] 2210 | 2211 | [[package]] 2212 | name = "nom" 2213 | version = "7.1.3" 2214 | source = "registry+https://github.com/rust-lang/crates.io-index" 2215 | checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" 2216 | dependencies = [ 2217 | "memchr", 2218 | "minimal-lexical", 2219 | ] 2220 | 2221 | [[package]] 2222 | name = "num" 2223 | version = "0.2.1" 2224 | source = "registry+https://github.com/rust-lang/crates.io-index" 2225 | checksum = "b8536030f9fea7127f841b45bb6243b27255787fb4eb83958aa1ef9d2fdc0c36" 2226 | dependencies = [ 2227 | "num-bigint 0.2.6", 2228 | "num-complex", 2229 | "num-integer", 2230 | "num-iter", 2231 | "num-rational", 2232 | "num-traits", 2233 | ] 2234 | 2235 | [[package]] 2236 | name = "num-bigint" 2237 | version = "0.2.6" 2238 | source = "registry+https://github.com/rust-lang/crates.io-index" 2239 | checksum = "090c7f9998ee0ff65aa5b723e4009f7b217707f1fb5ea551329cc4d6231fb304" 2240 | dependencies = [ 2241 | "autocfg", 2242 | "num-integer", 2243 | "num-traits", 2244 | ] 2245 | 2246 | [[package]] 2247 | name = "num-bigint" 2248 | version = "0.4.4" 2249 | source = "registry+https://github.com/rust-lang/crates.io-index" 2250 | checksum = "608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0" 2251 | dependencies = [ 2252 | "autocfg", 2253 | "num-integer", 2254 | "num-traits", 2255 | ] 2256 | 2257 | [[package]] 2258 | name = "num-complex" 2259 | version = "0.2.4" 2260 | source = "registry+https://github.com/rust-lang/crates.io-index" 2261 | checksum = "b6b19411a9719e753aff12e5187b74d60d3dc449ec3f4dc21e3989c3f554bc95" 2262 | dependencies = [ 2263 | "autocfg", 2264 | "num-traits", 2265 | ] 2266 | 2267 | [[package]] 2268 | name = "num-derive" 2269 | version = "0.3.3" 2270 | source = "registry+https://github.com/rust-lang/crates.io-index" 2271 | checksum = "876a53fff98e03a936a674b29568b0e605f06b29372c2489ff4de23f1949743d" 2272 | dependencies = [ 2273 | "proc-macro2", 2274 | "quote", 2275 | "syn 1.0.109", 2276 | ] 2277 | 2278 | [[package]] 2279 | name = "num-derive" 2280 | version = "0.4.1" 2281 | source = "registry+https://github.com/rust-lang/crates.io-index" 2282 | checksum = "cfb77679af88f8b125209d354a202862602672222e7f2313fdd6dc349bad4712" 2283 | dependencies = [ 2284 | "proc-macro2", 2285 | "quote", 2286 | "syn 2.0.48", 2287 | ] 2288 | 2289 | [[package]] 2290 | name = "num-integer" 2291 | version = "0.1.45" 2292 | source = "registry+https://github.com/rust-lang/crates.io-index" 2293 | checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" 2294 | dependencies = [ 2295 | "autocfg", 2296 | "num-traits", 2297 | ] 2298 | 2299 | [[package]] 2300 | name = "num-iter" 2301 | version = "0.1.43" 2302 | source = "registry+https://github.com/rust-lang/crates.io-index" 2303 | checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252" 2304 | dependencies = [ 2305 | "autocfg", 2306 | "num-integer", 2307 | "num-traits", 2308 | ] 2309 | 2310 | [[package]] 2311 | name = "num-rational" 2312 | version = "0.2.4" 2313 | source = "registry+https://github.com/rust-lang/crates.io-index" 2314 | checksum = "5c000134b5dbf44adc5cb772486d335293351644b801551abe8f75c84cfa4aef" 2315 | dependencies = [ 2316 | "autocfg", 2317 | "num-bigint 0.2.6", 2318 | "num-integer", 2319 | "num-traits", 2320 | ] 2321 | 2322 | [[package]] 2323 | name = "num-traits" 2324 | version = "0.2.17" 2325 | source = "registry+https://github.com/rust-lang/crates.io-index" 2326 | checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" 2327 | dependencies = [ 2328 | "autocfg", 2329 | ] 2330 | 2331 | [[package]] 2332 | name = "num_cpus" 2333 | version = "1.16.0" 2334 | source = "registry+https://github.com/rust-lang/crates.io-index" 2335 | checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" 2336 | dependencies = [ 2337 | "hermit-abi 0.3.3", 2338 | "libc", 2339 | ] 2340 | 2341 | [[package]] 2342 | name = "num_enum" 2343 | version = "0.6.1" 2344 | source = "registry+https://github.com/rust-lang/crates.io-index" 2345 | checksum = "7a015b430d3c108a207fd776d2e2196aaf8b1cf8cf93253e3a097ff3085076a1" 2346 | dependencies = [ 2347 | "num_enum_derive 0.6.1", 2348 | ] 2349 | 2350 | [[package]] 2351 | name = "num_enum" 2352 | version = "0.7.2" 2353 | source = "registry+https://github.com/rust-lang/crates.io-index" 2354 | checksum = "02339744ee7253741199f897151b38e72257d13802d4ee837285cc2990a90845" 2355 | dependencies = [ 2356 | "num_enum_derive 0.7.2", 2357 | ] 2358 | 2359 | [[package]] 2360 | name = "num_enum_derive" 2361 | version = "0.6.1" 2362 | source = "registry+https://github.com/rust-lang/crates.io-index" 2363 | checksum = "96667db765a921f7b295ffee8b60472b686a51d4f21c2ee4ffdb94c7013b65a6" 2364 | dependencies = [ 2365 | "proc-macro-crate 1.3.1", 2366 | "proc-macro2", 2367 | "quote", 2368 | "syn 2.0.48", 2369 | ] 2370 | 2371 | [[package]] 2372 | name = "num_enum_derive" 2373 | version = "0.7.2" 2374 | source = "registry+https://github.com/rust-lang/crates.io-index" 2375 | checksum = "681030a937600a36906c185595136d26abfebb4aa9c65701cefcaf8578bb982b" 2376 | dependencies = [ 2377 | "proc-macro-crate 3.1.0", 2378 | "proc-macro2", 2379 | "quote", 2380 | "syn 2.0.48", 2381 | ] 2382 | 2383 | [[package]] 2384 | name = "number_prefix" 2385 | version = "0.4.0" 2386 | source = "registry+https://github.com/rust-lang/crates.io-index" 2387 | checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3" 2388 | 2389 | [[package]] 2390 | name = "object" 2391 | version = "0.32.2" 2392 | source = "registry+https://github.com/rust-lang/crates.io-index" 2393 | checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441" 2394 | dependencies = [ 2395 | "memchr", 2396 | ] 2397 | 2398 | [[package]] 2399 | name = "oid-registry" 2400 | version = "0.6.1" 2401 | source = "registry+https://github.com/rust-lang/crates.io-index" 2402 | checksum = "9bedf36ffb6ba96c2eb7144ef6270557b52e54b20c0a8e1eb2ff99a6c6959bff" 2403 | dependencies = [ 2404 | "asn1-rs", 2405 | ] 2406 | 2407 | [[package]] 2408 | name = "once_cell" 2409 | version = "1.19.0" 2410 | source = "registry+https://github.com/rust-lang/crates.io-index" 2411 | checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" 2412 | 2413 | [[package]] 2414 | name = "opaque-debug" 2415 | version = "0.3.0" 2416 | source = "registry+https://github.com/rust-lang/crates.io-index" 2417 | checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" 2418 | 2419 | [[package]] 2420 | name = "openssl-probe" 2421 | version = "0.1.5" 2422 | source = "registry+https://github.com/rust-lang/crates.io-index" 2423 | checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" 2424 | 2425 | [[package]] 2426 | name = "ore-cli" 2427 | version = "0.4.0" 2428 | dependencies = [ 2429 | "bincode", 2430 | "bs58 0.5.1", 2431 | "cached", 2432 | "chrono", 2433 | "clap 4.4.12", 2434 | "futures", 2435 | "log", 2436 | "ore-program", 2437 | "rand 0.8.5", 2438 | "solana-cli-config", 2439 | "solana-client", 2440 | "solana-program", 2441 | "solana-sdk", 2442 | "solana-transaction-status", 2443 | "spl-associated-token-account", 2444 | "spl-token", 2445 | "tokio", 2446 | ] 2447 | 2448 | [[package]] 2449 | name = "ore-program" 2450 | version = "1.2.0" 2451 | source = "registry+https://github.com/rust-lang/crates.io-index" 2452 | checksum = "d1438154357d3952bd1d8f683d7ded7977a317b86495031313a6a8799afe2ec8" 2453 | dependencies = [ 2454 | "bs58 0.5.1", 2455 | "bytemuck", 2456 | "mpl-token-metadata", 2457 | "num_enum 0.7.2", 2458 | "shank", 2459 | "solana-program", 2460 | "spl-associated-token-account", 2461 | "spl-token", 2462 | "static_assertions", 2463 | "thiserror", 2464 | ] 2465 | 2466 | [[package]] 2467 | name = "os_str_bytes" 2468 | version = "6.6.1" 2469 | source = "registry+https://github.com/rust-lang/crates.io-index" 2470 | checksum = "e2355d85b9a3786f481747ced0e0ff2ba35213a1f9bd406ed906554d7af805a1" 2471 | 2472 | [[package]] 2473 | name = "parking_lot" 2474 | version = "0.12.1" 2475 | source = "registry+https://github.com/rust-lang/crates.io-index" 2476 | checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" 2477 | dependencies = [ 2478 | "lock_api", 2479 | "parking_lot_core", 2480 | ] 2481 | 2482 | [[package]] 2483 | name = "parking_lot_core" 2484 | version = "0.9.9" 2485 | source = "registry+https://github.com/rust-lang/crates.io-index" 2486 | checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e" 2487 | dependencies = [ 2488 | "cfg-if", 2489 | "libc", 2490 | "redox_syscall", 2491 | "smallvec", 2492 | "windows-targets 0.48.5", 2493 | ] 2494 | 2495 | [[package]] 2496 | name = "paste" 2497 | version = "1.0.14" 2498 | source = "registry+https://github.com/rust-lang/crates.io-index" 2499 | checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" 2500 | 2501 | [[package]] 2502 | name = "pbkdf2" 2503 | version = "0.4.0" 2504 | source = "registry+https://github.com/rust-lang/crates.io-index" 2505 | checksum = "216eaa586a190f0a738f2f918511eecfa90f13295abec0e457cdebcceda80cbd" 2506 | dependencies = [ 2507 | "crypto-mac", 2508 | ] 2509 | 2510 | [[package]] 2511 | name = "pbkdf2" 2512 | version = "0.11.0" 2513 | source = "registry+https://github.com/rust-lang/crates.io-index" 2514 | checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917" 2515 | dependencies = [ 2516 | "digest 0.10.7", 2517 | ] 2518 | 2519 | [[package]] 2520 | name = "pem" 2521 | version = "1.1.1" 2522 | source = "registry+https://github.com/rust-lang/crates.io-index" 2523 | checksum = "a8835c273a76a90455d7344889b0964598e3316e2a79ede8e36f16bdcf2228b8" 2524 | dependencies = [ 2525 | "base64 0.13.1", 2526 | ] 2527 | 2528 | [[package]] 2529 | name = "percent-encoding" 2530 | version = "2.3.1" 2531 | source = "registry+https://github.com/rust-lang/crates.io-index" 2532 | checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" 2533 | 2534 | [[package]] 2535 | name = "percentage" 2536 | version = "0.1.0" 2537 | source = "registry+https://github.com/rust-lang/crates.io-index" 2538 | checksum = "2fd23b938276f14057220b707937bcb42fa76dda7560e57a2da30cb52d557937" 2539 | dependencies = [ 2540 | "num", 2541 | ] 2542 | 2543 | [[package]] 2544 | name = "pin-project-lite" 2545 | version = "0.2.13" 2546 | source = "registry+https://github.com/rust-lang/crates.io-index" 2547 | checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" 2548 | 2549 | [[package]] 2550 | name = "pin-utils" 2551 | version = "0.1.0" 2552 | source = "registry+https://github.com/rust-lang/crates.io-index" 2553 | checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" 2554 | 2555 | [[package]] 2556 | name = "pkcs8" 2557 | version = "0.8.0" 2558 | source = "registry+https://github.com/rust-lang/crates.io-index" 2559 | checksum = "7cabda3fb821068a9a4fab19a683eac3af12edf0f34b94a8be53c4972b8149d0" 2560 | dependencies = [ 2561 | "der", 2562 | "spki", 2563 | "zeroize", 2564 | ] 2565 | 2566 | [[package]] 2567 | name = "pkg-config" 2568 | version = "0.3.28" 2569 | source = "registry+https://github.com/rust-lang/crates.io-index" 2570 | checksum = "69d3587f8a9e599cc7ec2c00e331f71c4e69a5f9a4b8a6efd5b07466b9736f9a" 2571 | 2572 | [[package]] 2573 | name = "plain" 2574 | version = "0.2.3" 2575 | source = "registry+https://github.com/rust-lang/crates.io-index" 2576 | checksum = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6" 2577 | 2578 | [[package]] 2579 | name = "polyval" 2580 | version = "0.5.3" 2581 | source = "registry+https://github.com/rust-lang/crates.io-index" 2582 | checksum = "8419d2b623c7c0896ff2d5d96e2cb4ede590fed28fcc34934f4c33c036e620a1" 2583 | dependencies = [ 2584 | "cfg-if", 2585 | "cpufeatures", 2586 | "opaque-debug", 2587 | "universal-hash", 2588 | ] 2589 | 2590 | [[package]] 2591 | name = "portable-atomic" 2592 | version = "1.6.0" 2593 | source = "registry+https://github.com/rust-lang/crates.io-index" 2594 | checksum = "7170ef9988bc169ba16dd36a7fa041e5c4cbeb6a35b76d4c03daded371eae7c0" 2595 | 2596 | [[package]] 2597 | name = "powerfmt" 2598 | version = "0.2.0" 2599 | source = "registry+https://github.com/rust-lang/crates.io-index" 2600 | checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" 2601 | 2602 | [[package]] 2603 | name = "ppv-lite86" 2604 | version = "0.2.17" 2605 | source = "registry+https://github.com/rust-lang/crates.io-index" 2606 | checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" 2607 | 2608 | [[package]] 2609 | name = "proc-macro-crate" 2610 | version = "0.1.5" 2611 | source = "registry+https://github.com/rust-lang/crates.io-index" 2612 | checksum = "1d6ea3c4595b96363c13943497db34af4460fb474a95c43f4446ad341b8c9785" 2613 | dependencies = [ 2614 | "toml", 2615 | ] 2616 | 2617 | [[package]] 2618 | name = "proc-macro-crate" 2619 | version = "1.3.1" 2620 | source = "registry+https://github.com/rust-lang/crates.io-index" 2621 | checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" 2622 | dependencies = [ 2623 | "once_cell", 2624 | "toml_edit 0.19.15", 2625 | ] 2626 | 2627 | [[package]] 2628 | name = "proc-macro-crate" 2629 | version = "3.1.0" 2630 | source = "registry+https://github.com/rust-lang/crates.io-index" 2631 | checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284" 2632 | dependencies = [ 2633 | "toml_edit 0.21.1", 2634 | ] 2635 | 2636 | [[package]] 2637 | name = "proc-macro-error" 2638 | version = "1.0.4" 2639 | source = "registry+https://github.com/rust-lang/crates.io-index" 2640 | checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" 2641 | dependencies = [ 2642 | "proc-macro-error-attr", 2643 | "proc-macro2", 2644 | "quote", 2645 | "version_check", 2646 | ] 2647 | 2648 | [[package]] 2649 | name = "proc-macro-error-attr" 2650 | version = "1.0.4" 2651 | source = "registry+https://github.com/rust-lang/crates.io-index" 2652 | checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" 2653 | dependencies = [ 2654 | "proc-macro2", 2655 | "quote", 2656 | "version_check", 2657 | ] 2658 | 2659 | [[package]] 2660 | name = "proc-macro2" 2661 | version = "1.0.78" 2662 | source = "registry+https://github.com/rust-lang/crates.io-index" 2663 | checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" 2664 | dependencies = [ 2665 | "unicode-ident", 2666 | ] 2667 | 2668 | [[package]] 2669 | name = "qstring" 2670 | version = "0.7.2" 2671 | source = "registry+https://github.com/rust-lang/crates.io-index" 2672 | checksum = "d464fae65fff2680baf48019211ce37aaec0c78e9264c84a3e484717f965104e" 2673 | dependencies = [ 2674 | "percent-encoding", 2675 | ] 2676 | 2677 | [[package]] 2678 | name = "qualifier_attr" 2679 | version = "0.2.2" 2680 | source = "registry+https://github.com/rust-lang/crates.io-index" 2681 | checksum = "9e2e25ee72f5b24d773cae88422baddefff7714f97aab68d96fe2b6fc4a28fb2" 2682 | dependencies = [ 2683 | "proc-macro2", 2684 | "quote", 2685 | "syn 2.0.48", 2686 | ] 2687 | 2688 | [[package]] 2689 | name = "quinn" 2690 | version = "0.10.2" 2691 | source = "registry+https://github.com/rust-lang/crates.io-index" 2692 | checksum = "8cc2c5017e4b43d5995dcea317bc46c1e09404c0a9664d2908f7f02dfe943d75" 2693 | dependencies = [ 2694 | "bytes", 2695 | "pin-project-lite", 2696 | "quinn-proto", 2697 | "quinn-udp", 2698 | "rustc-hash", 2699 | "rustls", 2700 | "thiserror", 2701 | "tokio", 2702 | "tracing", 2703 | ] 2704 | 2705 | [[package]] 2706 | name = "quinn-proto" 2707 | version = "0.10.6" 2708 | source = "registry+https://github.com/rust-lang/crates.io-index" 2709 | checksum = "141bf7dfde2fbc246bfd3fe12f2455aa24b0fbd9af535d8c86c7bd1381ff2b1a" 2710 | dependencies = [ 2711 | "bytes", 2712 | "rand 0.8.5", 2713 | "ring 0.16.20", 2714 | "rustc-hash", 2715 | "rustls", 2716 | "rustls-native-certs", 2717 | "slab", 2718 | "thiserror", 2719 | "tinyvec", 2720 | "tracing", 2721 | ] 2722 | 2723 | [[package]] 2724 | name = "quinn-udp" 2725 | version = "0.4.1" 2726 | source = "registry+https://github.com/rust-lang/crates.io-index" 2727 | checksum = "055b4e778e8feb9f93c4e439f71dc2156ef13360b432b799e179a8c4cdf0b1d7" 2728 | dependencies = [ 2729 | "bytes", 2730 | "libc", 2731 | "socket2", 2732 | "tracing", 2733 | "windows-sys 0.48.0", 2734 | ] 2735 | 2736 | [[package]] 2737 | name = "quote" 2738 | version = "1.0.35" 2739 | source = "registry+https://github.com/rust-lang/crates.io-index" 2740 | checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" 2741 | dependencies = [ 2742 | "proc-macro2", 2743 | ] 2744 | 2745 | [[package]] 2746 | name = "rand" 2747 | version = "0.7.3" 2748 | source = "registry+https://github.com/rust-lang/crates.io-index" 2749 | checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" 2750 | dependencies = [ 2751 | "getrandom 0.1.16", 2752 | "libc", 2753 | "rand_chacha 0.2.2", 2754 | "rand_core 0.5.1", 2755 | "rand_hc", 2756 | ] 2757 | 2758 | [[package]] 2759 | name = "rand" 2760 | version = "0.8.5" 2761 | source = "registry+https://github.com/rust-lang/crates.io-index" 2762 | checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" 2763 | dependencies = [ 2764 | "libc", 2765 | "rand_chacha 0.3.1", 2766 | "rand_core 0.6.4", 2767 | ] 2768 | 2769 | [[package]] 2770 | name = "rand_chacha" 2771 | version = "0.2.2" 2772 | source = "registry+https://github.com/rust-lang/crates.io-index" 2773 | checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" 2774 | dependencies = [ 2775 | "ppv-lite86", 2776 | "rand_core 0.5.1", 2777 | ] 2778 | 2779 | [[package]] 2780 | name = "rand_chacha" 2781 | version = "0.3.1" 2782 | source = "registry+https://github.com/rust-lang/crates.io-index" 2783 | checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" 2784 | dependencies = [ 2785 | "ppv-lite86", 2786 | "rand_core 0.6.4", 2787 | ] 2788 | 2789 | [[package]] 2790 | name = "rand_core" 2791 | version = "0.5.1" 2792 | source = "registry+https://github.com/rust-lang/crates.io-index" 2793 | checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" 2794 | dependencies = [ 2795 | "getrandom 0.1.16", 2796 | ] 2797 | 2798 | [[package]] 2799 | name = "rand_core" 2800 | version = "0.6.4" 2801 | source = "registry+https://github.com/rust-lang/crates.io-index" 2802 | checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" 2803 | dependencies = [ 2804 | "getrandom 0.2.11", 2805 | ] 2806 | 2807 | [[package]] 2808 | name = "rand_hc" 2809 | version = "0.2.0" 2810 | source = "registry+https://github.com/rust-lang/crates.io-index" 2811 | checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" 2812 | dependencies = [ 2813 | "rand_core 0.5.1", 2814 | ] 2815 | 2816 | [[package]] 2817 | name = "rand_xoshiro" 2818 | version = "0.6.0" 2819 | source = "registry+https://github.com/rust-lang/crates.io-index" 2820 | checksum = "6f97cdb2a36ed4183de61b2f824cc45c9f1037f28afe0a322e9fff4c108b5aaa" 2821 | dependencies = [ 2822 | "rand_core 0.6.4", 2823 | ] 2824 | 2825 | [[package]] 2826 | name = "rayon" 2827 | version = "1.9.0" 2828 | source = "registry+https://github.com/rust-lang/crates.io-index" 2829 | checksum = "e4963ed1bc86e4f3ee217022bd855b297cef07fb9eac5dfa1f788b220b49b3bd" 2830 | dependencies = [ 2831 | "either", 2832 | "rayon-core", 2833 | ] 2834 | 2835 | [[package]] 2836 | name = "rayon-core" 2837 | version = "1.12.1" 2838 | source = "registry+https://github.com/rust-lang/crates.io-index" 2839 | checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" 2840 | dependencies = [ 2841 | "crossbeam-deque", 2842 | "crossbeam-utils", 2843 | ] 2844 | 2845 | [[package]] 2846 | name = "rcgen" 2847 | version = "0.10.0" 2848 | source = "registry+https://github.com/rust-lang/crates.io-index" 2849 | checksum = "ffbe84efe2f38dea12e9bfc1f65377fdf03e53a18cb3b995faedf7934c7e785b" 2850 | dependencies = [ 2851 | "pem", 2852 | "ring 0.16.20", 2853 | "time", 2854 | "yasna", 2855 | ] 2856 | 2857 | [[package]] 2858 | name = "redox_syscall" 2859 | version = "0.4.1" 2860 | source = "registry+https://github.com/rust-lang/crates.io-index" 2861 | checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" 2862 | dependencies = [ 2863 | "bitflags 1.3.2", 2864 | ] 2865 | 2866 | [[package]] 2867 | name = "redox_users" 2868 | version = "0.4.4" 2869 | source = "registry+https://github.com/rust-lang/crates.io-index" 2870 | checksum = "a18479200779601e498ada4e8c1e1f50e3ee19deb0259c25825a98b5603b2cb4" 2871 | dependencies = [ 2872 | "getrandom 0.2.11", 2873 | "libredox", 2874 | "thiserror", 2875 | ] 2876 | 2877 | [[package]] 2878 | name = "regex" 2879 | version = "1.10.2" 2880 | source = "registry+https://github.com/rust-lang/crates.io-index" 2881 | checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343" 2882 | dependencies = [ 2883 | "aho-corasick", 2884 | "memchr", 2885 | "regex-automata", 2886 | "regex-syntax", 2887 | ] 2888 | 2889 | [[package]] 2890 | name = "regex-automata" 2891 | version = "0.4.3" 2892 | source = "registry+https://github.com/rust-lang/crates.io-index" 2893 | checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f" 2894 | dependencies = [ 2895 | "aho-corasick", 2896 | "memchr", 2897 | "regex-syntax", 2898 | ] 2899 | 2900 | [[package]] 2901 | name = "regex-syntax" 2902 | version = "0.8.2" 2903 | source = "registry+https://github.com/rust-lang/crates.io-index" 2904 | checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" 2905 | 2906 | [[package]] 2907 | name = "reqwest" 2908 | version = "0.11.23" 2909 | source = "registry+https://github.com/rust-lang/crates.io-index" 2910 | checksum = "37b1ae8d9ac08420c66222fb9096fc5de435c3c48542bc5336c51892cffafb41" 2911 | dependencies = [ 2912 | "async-compression", 2913 | "base64 0.21.7", 2914 | "bytes", 2915 | "encoding_rs", 2916 | "futures-core", 2917 | "futures-util", 2918 | "h2", 2919 | "http", 2920 | "http-body", 2921 | "hyper", 2922 | "hyper-rustls", 2923 | "ipnet", 2924 | "js-sys", 2925 | "log", 2926 | "mime", 2927 | "once_cell", 2928 | "percent-encoding", 2929 | "pin-project-lite", 2930 | "rustls", 2931 | "rustls-pemfile", 2932 | "serde", 2933 | "serde_json", 2934 | "serde_urlencoded", 2935 | "system-configuration", 2936 | "tokio", 2937 | "tokio-rustls", 2938 | "tokio-util", 2939 | "tower-service", 2940 | "url", 2941 | "wasm-bindgen", 2942 | "wasm-bindgen-futures", 2943 | "web-sys", 2944 | "webpki-roots 0.25.3", 2945 | "winreg", 2946 | ] 2947 | 2948 | [[package]] 2949 | name = "ring" 2950 | version = "0.16.20" 2951 | source = "registry+https://github.com/rust-lang/crates.io-index" 2952 | checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" 2953 | dependencies = [ 2954 | "cc", 2955 | "libc", 2956 | "once_cell", 2957 | "spin 0.5.2", 2958 | "untrusted 0.7.1", 2959 | "web-sys", 2960 | "winapi", 2961 | ] 2962 | 2963 | [[package]] 2964 | name = "ring" 2965 | version = "0.17.7" 2966 | source = "registry+https://github.com/rust-lang/crates.io-index" 2967 | checksum = "688c63d65483050968b2a8937f7995f443e27041a0f7700aa59b0822aedebb74" 2968 | dependencies = [ 2969 | "cc", 2970 | "getrandom 0.2.11", 2971 | "libc", 2972 | "spin 0.9.8", 2973 | "untrusted 0.9.0", 2974 | "windows-sys 0.48.0", 2975 | ] 2976 | 2977 | [[package]] 2978 | name = "rpassword" 2979 | version = "7.3.1" 2980 | source = "registry+https://github.com/rust-lang/crates.io-index" 2981 | checksum = "80472be3c897911d0137b2d2b9055faf6eeac5b14e324073d83bc17b191d7e3f" 2982 | dependencies = [ 2983 | "libc", 2984 | "rtoolbox", 2985 | "windows-sys 0.48.0", 2986 | ] 2987 | 2988 | [[package]] 2989 | name = "rtoolbox" 2990 | version = "0.0.2" 2991 | source = "registry+https://github.com/rust-lang/crates.io-index" 2992 | checksum = "c247d24e63230cdb56463ae328478bd5eac8b8faa8c69461a77e8e323afac90e" 2993 | dependencies = [ 2994 | "libc", 2995 | "windows-sys 0.48.0", 2996 | ] 2997 | 2998 | [[package]] 2999 | name = "rustc-demangle" 3000 | version = "0.1.23" 3001 | source = "registry+https://github.com/rust-lang/crates.io-index" 3002 | checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" 3003 | 3004 | [[package]] 3005 | name = "rustc-hash" 3006 | version = "1.1.0" 3007 | source = "registry+https://github.com/rust-lang/crates.io-index" 3008 | checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" 3009 | 3010 | [[package]] 3011 | name = "rustc_version" 3012 | version = "0.4.0" 3013 | source = "registry+https://github.com/rust-lang/crates.io-index" 3014 | checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" 3015 | dependencies = [ 3016 | "semver", 3017 | ] 3018 | 3019 | [[package]] 3020 | name = "rusticata-macros" 3021 | version = "4.1.0" 3022 | source = "registry+https://github.com/rust-lang/crates.io-index" 3023 | checksum = "faf0c4a6ece9950b9abdb62b1cfcf2a68b3b67a10ba445b3bb85be2a293d0632" 3024 | dependencies = [ 3025 | "nom", 3026 | ] 3027 | 3028 | [[package]] 3029 | name = "rustix" 3030 | version = "0.38.28" 3031 | source = "registry+https://github.com/rust-lang/crates.io-index" 3032 | checksum = "72e572a5e8ca657d7366229cdde4bd14c4eb5499a9573d4d366fe1b599daa316" 3033 | dependencies = [ 3034 | "bitflags 2.4.2", 3035 | "errno", 3036 | "libc", 3037 | "linux-raw-sys", 3038 | "windows-sys 0.52.0", 3039 | ] 3040 | 3041 | [[package]] 3042 | name = "rustls" 3043 | version = "0.21.10" 3044 | source = "registry+https://github.com/rust-lang/crates.io-index" 3045 | checksum = "f9d5a6813c0759e4609cd494e8e725babae6a2ca7b62a5536a13daaec6fcb7ba" 3046 | dependencies = [ 3047 | "log", 3048 | "ring 0.17.7", 3049 | "rustls-webpki", 3050 | "sct", 3051 | ] 3052 | 3053 | [[package]] 3054 | name = "rustls-native-certs" 3055 | version = "0.6.3" 3056 | source = "registry+https://github.com/rust-lang/crates.io-index" 3057 | checksum = "a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00" 3058 | dependencies = [ 3059 | "openssl-probe", 3060 | "rustls-pemfile", 3061 | "schannel", 3062 | "security-framework", 3063 | ] 3064 | 3065 | [[package]] 3066 | name = "rustls-pemfile" 3067 | version = "1.0.4" 3068 | source = "registry+https://github.com/rust-lang/crates.io-index" 3069 | checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" 3070 | dependencies = [ 3071 | "base64 0.21.7", 3072 | ] 3073 | 3074 | [[package]] 3075 | name = "rustls-webpki" 3076 | version = "0.101.7" 3077 | source = "registry+https://github.com/rust-lang/crates.io-index" 3078 | checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" 3079 | dependencies = [ 3080 | "ring 0.17.7", 3081 | "untrusted 0.9.0", 3082 | ] 3083 | 3084 | [[package]] 3085 | name = "rustversion" 3086 | version = "1.0.14" 3087 | source = "registry+https://github.com/rust-lang/crates.io-index" 3088 | checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4" 3089 | 3090 | [[package]] 3091 | name = "ryu" 3092 | version = "1.0.16" 3093 | source = "registry+https://github.com/rust-lang/crates.io-index" 3094 | checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c" 3095 | 3096 | [[package]] 3097 | name = "schannel" 3098 | version = "0.1.23" 3099 | source = "registry+https://github.com/rust-lang/crates.io-index" 3100 | checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534" 3101 | dependencies = [ 3102 | "windows-sys 0.52.0", 3103 | ] 3104 | 3105 | [[package]] 3106 | name = "scopeguard" 3107 | version = "1.2.0" 3108 | source = "registry+https://github.com/rust-lang/crates.io-index" 3109 | checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" 3110 | 3111 | [[package]] 3112 | name = "scroll" 3113 | version = "0.11.0" 3114 | source = "registry+https://github.com/rust-lang/crates.io-index" 3115 | checksum = "04c565b551bafbef4157586fa379538366e4385d42082f255bfd96e4fe8519da" 3116 | dependencies = [ 3117 | "scroll_derive", 3118 | ] 3119 | 3120 | [[package]] 3121 | name = "scroll_derive" 3122 | version = "0.11.1" 3123 | source = "registry+https://github.com/rust-lang/crates.io-index" 3124 | checksum = "1db149f81d46d2deba7cd3c50772474707729550221e69588478ebf9ada425ae" 3125 | dependencies = [ 3126 | "proc-macro2", 3127 | "quote", 3128 | "syn 2.0.48", 3129 | ] 3130 | 3131 | [[package]] 3132 | name = "sct" 3133 | version = "0.7.1" 3134 | source = "registry+https://github.com/rust-lang/crates.io-index" 3135 | checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" 3136 | dependencies = [ 3137 | "ring 0.17.7", 3138 | "untrusted 0.9.0", 3139 | ] 3140 | 3141 | [[package]] 3142 | name = "security-framework" 3143 | version = "2.9.2" 3144 | source = "registry+https://github.com/rust-lang/crates.io-index" 3145 | checksum = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de" 3146 | dependencies = [ 3147 | "bitflags 1.3.2", 3148 | "core-foundation", 3149 | "core-foundation-sys", 3150 | "libc", 3151 | "security-framework-sys", 3152 | ] 3153 | 3154 | [[package]] 3155 | name = "security-framework-sys" 3156 | version = "2.9.1" 3157 | source = "registry+https://github.com/rust-lang/crates.io-index" 3158 | checksum = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a" 3159 | dependencies = [ 3160 | "core-foundation-sys", 3161 | "libc", 3162 | ] 3163 | 3164 | [[package]] 3165 | name = "semver" 3166 | version = "1.0.22" 3167 | source = "registry+https://github.com/rust-lang/crates.io-index" 3168 | checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca" 3169 | 3170 | [[package]] 3171 | name = "serde" 3172 | version = "1.0.197" 3173 | source = "registry+https://github.com/rust-lang/crates.io-index" 3174 | checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2" 3175 | dependencies = [ 3176 | "serde_derive", 3177 | ] 3178 | 3179 | [[package]] 3180 | name = "serde_bytes" 3181 | version = "0.11.14" 3182 | source = "registry+https://github.com/rust-lang/crates.io-index" 3183 | checksum = "8b8497c313fd43ab992087548117643f6fcd935cbf36f176ffda0aacf9591734" 3184 | dependencies = [ 3185 | "serde", 3186 | ] 3187 | 3188 | [[package]] 3189 | name = "serde_derive" 3190 | version = "1.0.197" 3191 | source = "registry+https://github.com/rust-lang/crates.io-index" 3192 | checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" 3193 | dependencies = [ 3194 | "proc-macro2", 3195 | "quote", 3196 | "syn 2.0.48", 3197 | ] 3198 | 3199 | [[package]] 3200 | name = "serde_json" 3201 | version = "1.0.114" 3202 | source = "registry+https://github.com/rust-lang/crates.io-index" 3203 | checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0" 3204 | dependencies = [ 3205 | "itoa", 3206 | "ryu", 3207 | "serde", 3208 | ] 3209 | 3210 | [[package]] 3211 | name = "serde_urlencoded" 3212 | version = "0.7.1" 3213 | source = "registry+https://github.com/rust-lang/crates.io-index" 3214 | checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" 3215 | dependencies = [ 3216 | "form_urlencoded", 3217 | "itoa", 3218 | "ryu", 3219 | "serde", 3220 | ] 3221 | 3222 | [[package]] 3223 | name = "serde_with" 3224 | version = "2.3.3" 3225 | source = "registry+https://github.com/rust-lang/crates.io-index" 3226 | checksum = "07ff71d2c147a7b57362cead5e22f772cd52f6ab31cfcd9edcd7f6aeb2a0afbe" 3227 | dependencies = [ 3228 | "serde", 3229 | "serde_with_macros", 3230 | ] 3231 | 3232 | [[package]] 3233 | name = "serde_with_macros" 3234 | version = "2.3.3" 3235 | source = "registry+https://github.com/rust-lang/crates.io-index" 3236 | checksum = "881b6f881b17d13214e5d494c939ebab463d01264ce1811e9d4ac3a882e7695f" 3237 | dependencies = [ 3238 | "darling 0.20.3", 3239 | "proc-macro2", 3240 | "quote", 3241 | "syn 2.0.48", 3242 | ] 3243 | 3244 | [[package]] 3245 | name = "serde_yaml" 3246 | version = "0.9.32" 3247 | source = "registry+https://github.com/rust-lang/crates.io-index" 3248 | checksum = "8fd075d994154d4a774f95b51fb96bdc2832b0ea48425c92546073816cda1f2f" 3249 | dependencies = [ 3250 | "indexmap 2.2.5", 3251 | "itoa", 3252 | "ryu", 3253 | "serde", 3254 | "unsafe-libyaml", 3255 | ] 3256 | 3257 | [[package]] 3258 | name = "sha1" 3259 | version = "0.10.6" 3260 | source = "registry+https://github.com/rust-lang/crates.io-index" 3261 | checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" 3262 | dependencies = [ 3263 | "cfg-if", 3264 | "cpufeatures", 3265 | "digest 0.10.7", 3266 | ] 3267 | 3268 | [[package]] 3269 | name = "sha2" 3270 | version = "0.9.9" 3271 | source = "registry+https://github.com/rust-lang/crates.io-index" 3272 | checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" 3273 | dependencies = [ 3274 | "block-buffer 0.9.0", 3275 | "cfg-if", 3276 | "cpufeatures", 3277 | "digest 0.9.0", 3278 | "opaque-debug", 3279 | ] 3280 | 3281 | [[package]] 3282 | name = "sha2" 3283 | version = "0.10.8" 3284 | source = "registry+https://github.com/rust-lang/crates.io-index" 3285 | checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" 3286 | dependencies = [ 3287 | "cfg-if", 3288 | "cpufeatures", 3289 | "digest 0.10.7", 3290 | ] 3291 | 3292 | [[package]] 3293 | name = "sha3" 3294 | version = "0.9.1" 3295 | source = "registry+https://github.com/rust-lang/crates.io-index" 3296 | checksum = "f81199417d4e5de3f04b1e871023acea7389672c4135918f05aa9cbf2f2fa809" 3297 | dependencies = [ 3298 | "block-buffer 0.9.0", 3299 | "digest 0.9.0", 3300 | "keccak", 3301 | "opaque-debug", 3302 | ] 3303 | 3304 | [[package]] 3305 | name = "sha3" 3306 | version = "0.10.8" 3307 | source = "registry+https://github.com/rust-lang/crates.io-index" 3308 | checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" 3309 | dependencies = [ 3310 | "digest 0.10.7", 3311 | "keccak", 3312 | ] 3313 | 3314 | [[package]] 3315 | name = "shank" 3316 | version = "0.3.0" 3317 | source = "registry+https://github.com/rust-lang/crates.io-index" 3318 | checksum = "57c9395612d493b69a522725eef78a095f199d43eeb847f4a4b77ec0cacab535" 3319 | dependencies = [ 3320 | "shank_macro", 3321 | ] 3322 | 3323 | [[package]] 3324 | name = "shank_macro" 3325 | version = "0.3.0" 3326 | source = "registry+https://github.com/rust-lang/crates.io-index" 3327 | checksum = "8abef069c02e15f62233679b1e71f3152fac10f90b3ff89ebbad6a25b7497754" 3328 | dependencies = [ 3329 | "proc-macro2", 3330 | "quote", 3331 | "shank_macro_impl", 3332 | "shank_render", 3333 | "syn 1.0.109", 3334 | ] 3335 | 3336 | [[package]] 3337 | name = "shank_macro_impl" 3338 | version = "0.3.0" 3339 | source = "registry+https://github.com/rust-lang/crates.io-index" 3340 | checksum = "64d3d92bfcc6e08f882f2264d774d1a2f46dc36122adc1b76416ba6405a29a9c" 3341 | dependencies = [ 3342 | "anyhow", 3343 | "proc-macro2", 3344 | "quote", 3345 | "serde", 3346 | "syn 1.0.109", 3347 | ] 3348 | 3349 | [[package]] 3350 | name = "shank_render" 3351 | version = "0.3.0" 3352 | source = "registry+https://github.com/rust-lang/crates.io-index" 3353 | checksum = "5a2ea9c6dd95ea311b3b81e63cf4e9c808ed04b098819e6d2c4b1a467d587203" 3354 | dependencies = [ 3355 | "proc-macro2", 3356 | "quote", 3357 | "shank_macro_impl", 3358 | ] 3359 | 3360 | [[package]] 3361 | name = "shell-words" 3362 | version = "1.1.0" 3363 | source = "registry+https://github.com/rust-lang/crates.io-index" 3364 | checksum = "24188a676b6ae68c3b2cb3a01be17fbf7240ce009799bb56d5b1409051e78fde" 3365 | 3366 | [[package]] 3367 | name = "signal-hook-registry" 3368 | version = "1.4.1" 3369 | source = "registry+https://github.com/rust-lang/crates.io-index" 3370 | checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1" 3371 | dependencies = [ 3372 | "libc", 3373 | ] 3374 | 3375 | [[package]] 3376 | name = "signature" 3377 | version = "1.6.4" 3378 | source = "registry+https://github.com/rust-lang/crates.io-index" 3379 | checksum = "74233d3b3b2f6d4b006dc19dee745e73e2a6bfb6f93607cd3b02bd5b00797d7c" 3380 | 3381 | [[package]] 3382 | name = "siphasher" 3383 | version = "0.3.11" 3384 | source = "registry+https://github.com/rust-lang/crates.io-index" 3385 | checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" 3386 | 3387 | [[package]] 3388 | name = "sized-chunks" 3389 | version = "0.6.5" 3390 | source = "registry+https://github.com/rust-lang/crates.io-index" 3391 | checksum = "16d69225bde7a69b235da73377861095455d298f2b970996eec25ddbb42b3d1e" 3392 | dependencies = [ 3393 | "bitmaps", 3394 | "typenum", 3395 | ] 3396 | 3397 | [[package]] 3398 | name = "slab" 3399 | version = "0.4.9" 3400 | source = "registry+https://github.com/rust-lang/crates.io-index" 3401 | checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" 3402 | dependencies = [ 3403 | "autocfg", 3404 | ] 3405 | 3406 | [[package]] 3407 | name = "smallvec" 3408 | version = "1.11.2" 3409 | source = "registry+https://github.com/rust-lang/crates.io-index" 3410 | checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970" 3411 | 3412 | [[package]] 3413 | name = "socket2" 3414 | version = "0.5.5" 3415 | source = "registry+https://github.com/rust-lang/crates.io-index" 3416 | checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9" 3417 | dependencies = [ 3418 | "libc", 3419 | "windows-sys 0.48.0", 3420 | ] 3421 | 3422 | [[package]] 3423 | name = "solana-account-decoder" 3424 | version = "1.18.5" 3425 | source = "registry+https://github.com/rust-lang/crates.io-index" 3426 | checksum = "63a81a5c45b8e9d679db86176f6691509fc1538b4a902bb60300cf22841f03ef" 3427 | dependencies = [ 3428 | "Inflector", 3429 | "base64 0.21.7", 3430 | "bincode", 3431 | "bs58 0.4.0", 3432 | "bv", 3433 | "lazy_static", 3434 | "serde", 3435 | "serde_derive", 3436 | "serde_json", 3437 | "solana-config-program", 3438 | "solana-sdk", 3439 | "spl-token", 3440 | "spl-token-2022", 3441 | "spl-token-group-interface", 3442 | "spl-token-metadata-interface", 3443 | "thiserror", 3444 | "zstd", 3445 | ] 3446 | 3447 | [[package]] 3448 | name = "solana-clap-utils" 3449 | version = "1.18.5" 3450 | source = "registry+https://github.com/rust-lang/crates.io-index" 3451 | checksum = "72dbee3d2d6deed9bce2db7551a77afe5b7db612ce43f45b914096a2fde57a88" 3452 | dependencies = [ 3453 | "chrono", 3454 | "clap 2.34.0", 3455 | "rpassword", 3456 | "solana-remote-wallet", 3457 | "solana-sdk", 3458 | "thiserror", 3459 | "tiny-bip39", 3460 | "uriparse", 3461 | "url", 3462 | ] 3463 | 3464 | [[package]] 3465 | name = "solana-cli-config" 3466 | version = "1.18.5" 3467 | source = "registry+https://github.com/rust-lang/crates.io-index" 3468 | checksum = "ef324c95ee3836dfa5c90a33e3ab06bbaed836d7ffc4841f6540f85933d18518" 3469 | dependencies = [ 3470 | "dirs-next", 3471 | "lazy_static", 3472 | "serde", 3473 | "serde_derive", 3474 | "serde_yaml", 3475 | "solana-clap-utils", 3476 | "solana-sdk", 3477 | "url", 3478 | ] 3479 | 3480 | [[package]] 3481 | name = "solana-client" 3482 | version = "1.18.5" 3483 | source = "registry+https://github.com/rust-lang/crates.io-index" 3484 | checksum = "254f7bba9bbfad96644e34a1da39e713668123a40c51381005dbabd7dbbc6d72" 3485 | dependencies = [ 3486 | "async-trait", 3487 | "bincode", 3488 | "dashmap", 3489 | "futures", 3490 | "futures-util", 3491 | "indexmap 2.2.5", 3492 | "indicatif", 3493 | "log", 3494 | "quinn", 3495 | "rayon", 3496 | "solana-connection-cache", 3497 | "solana-measure", 3498 | "solana-metrics", 3499 | "solana-pubsub-client", 3500 | "solana-quic-client", 3501 | "solana-rpc-client", 3502 | "solana-rpc-client-api", 3503 | "solana-rpc-client-nonce-utils", 3504 | "solana-sdk", 3505 | "solana-streamer", 3506 | "solana-thin-client", 3507 | "solana-tpu-client", 3508 | "solana-udp-client", 3509 | "thiserror", 3510 | "tokio", 3511 | ] 3512 | 3513 | [[package]] 3514 | name = "solana-config-program" 3515 | version = "1.18.5" 3516 | source = "registry+https://github.com/rust-lang/crates.io-index" 3517 | checksum = "9a90146921bd00ffc3b4e8af7b168d25d9db12129b5b4846b2b47093374c4191" 3518 | dependencies = [ 3519 | "bincode", 3520 | "chrono", 3521 | "serde", 3522 | "serde_derive", 3523 | "solana-program-runtime", 3524 | "solana-sdk", 3525 | ] 3526 | 3527 | [[package]] 3528 | name = "solana-connection-cache" 3529 | version = "1.18.5" 3530 | source = "registry+https://github.com/rust-lang/crates.io-index" 3531 | checksum = "75612236045a366cd6bc37579ad62eaa6eedace2d593ebcc794d3d6f49645862" 3532 | dependencies = [ 3533 | "async-trait", 3534 | "bincode", 3535 | "crossbeam-channel", 3536 | "futures-util", 3537 | "indexmap 2.2.5", 3538 | "log", 3539 | "rand 0.8.5", 3540 | "rayon", 3541 | "rcgen", 3542 | "solana-measure", 3543 | "solana-metrics", 3544 | "solana-sdk", 3545 | "thiserror", 3546 | "tokio", 3547 | ] 3548 | 3549 | [[package]] 3550 | name = "solana-frozen-abi" 3551 | version = "1.18.5" 3552 | source = "registry+https://github.com/rust-lang/crates.io-index" 3553 | checksum = "d50a7a9565c0050e1c3cda3811870ba54c57dbf3e71e50d145a9b1c43e50dda6" 3554 | dependencies = [ 3555 | "block-buffer 0.10.4", 3556 | "bs58 0.4.0", 3557 | "bv", 3558 | "either", 3559 | "generic-array", 3560 | "im", 3561 | "lazy_static", 3562 | "log", 3563 | "memmap2", 3564 | "rustc_version", 3565 | "serde", 3566 | "serde_bytes", 3567 | "serde_derive", 3568 | "sha2 0.10.8", 3569 | "solana-frozen-abi-macro", 3570 | "subtle", 3571 | "thiserror", 3572 | ] 3573 | 3574 | [[package]] 3575 | name = "solana-frozen-abi-macro" 3576 | version = "1.18.5" 3577 | source = "registry+https://github.com/rust-lang/crates.io-index" 3578 | checksum = "a5ba5861cb68c48e5403e4ec030bcc25191af3c42919d377c5f43ed3d343e441" 3579 | dependencies = [ 3580 | "proc-macro2", 3581 | "quote", 3582 | "rustc_version", 3583 | "syn 2.0.48", 3584 | ] 3585 | 3586 | [[package]] 3587 | name = "solana-logger" 3588 | version = "1.18.5" 3589 | source = "registry+https://github.com/rust-lang/crates.io-index" 3590 | checksum = "a443ba37555d5c8f00b591b1c6be9a2e118720177ebabb9a13d4fa32053d47e4" 3591 | dependencies = [ 3592 | "env_logger", 3593 | "lazy_static", 3594 | "log", 3595 | ] 3596 | 3597 | [[package]] 3598 | name = "solana-measure" 3599 | version = "1.18.5" 3600 | source = "registry+https://github.com/rust-lang/crates.io-index" 3601 | checksum = "5533d5fe217e6bec2a58ae3018e0a590e175b9fbb722b47e2bacafebe2ed97b8" 3602 | dependencies = [ 3603 | "log", 3604 | "solana-sdk", 3605 | ] 3606 | 3607 | [[package]] 3608 | name = "solana-metrics" 3609 | version = "1.18.5" 3610 | source = "registry+https://github.com/rust-lang/crates.io-index" 3611 | checksum = "6a86d8f78807ecd8cc578fa36dc152ccde4934f03fca999d5c701326eb09d378" 3612 | dependencies = [ 3613 | "crossbeam-channel", 3614 | "gethostname", 3615 | "lazy_static", 3616 | "log", 3617 | "reqwest", 3618 | "solana-sdk", 3619 | "thiserror", 3620 | ] 3621 | 3622 | [[package]] 3623 | name = "solana-net-utils" 3624 | version = "1.18.5" 3625 | source = "registry+https://github.com/rust-lang/crates.io-index" 3626 | checksum = "bd2a1a6f4ff60751367f66eb91a340507a606e7fa512ac26ad4236fe0a1f9db6" 3627 | dependencies = [ 3628 | "bincode", 3629 | "clap 3.2.25", 3630 | "crossbeam-channel", 3631 | "log", 3632 | "nix", 3633 | "rand 0.8.5", 3634 | "serde", 3635 | "serde_derive", 3636 | "socket2", 3637 | "solana-logger", 3638 | "solana-sdk", 3639 | "solana-version", 3640 | "tokio", 3641 | "url", 3642 | ] 3643 | 3644 | [[package]] 3645 | name = "solana-perf" 3646 | version = "1.18.5" 3647 | source = "registry+https://github.com/rust-lang/crates.io-index" 3648 | checksum = "6e8be004d7167b86f3cc5f1dc5f30c7cde1f9f09f156075ca6ced083b6be9b65" 3649 | dependencies = [ 3650 | "ahash 0.8.7", 3651 | "bincode", 3652 | "bv", 3653 | "caps", 3654 | "curve25519-dalek", 3655 | "dlopen2", 3656 | "fnv", 3657 | "lazy_static", 3658 | "libc", 3659 | "log", 3660 | "nix", 3661 | "rand 0.8.5", 3662 | "rayon", 3663 | "rustc_version", 3664 | "serde", 3665 | "solana-frozen-abi", 3666 | "solana-frozen-abi-macro", 3667 | "solana-metrics", 3668 | "solana-rayon-threadlimit", 3669 | "solana-sdk", 3670 | "solana-vote-program", 3671 | ] 3672 | 3673 | [[package]] 3674 | name = "solana-program" 3675 | version = "1.18.5" 3676 | source = "registry+https://github.com/rust-lang/crates.io-index" 3677 | checksum = "72868a6513315be93b7b6fd38f3ac91aaca9401e8ff89720755363eede3ed87e" 3678 | dependencies = [ 3679 | "ark-bn254", 3680 | "ark-ec", 3681 | "ark-ff", 3682 | "ark-serialize", 3683 | "base64 0.21.7", 3684 | "bincode", 3685 | "bitflags 2.4.2", 3686 | "blake3", 3687 | "borsh 0.10.3", 3688 | "borsh 0.9.3", 3689 | "borsh 1.3.1", 3690 | "bs58 0.4.0", 3691 | "bv", 3692 | "bytemuck", 3693 | "cc", 3694 | "console_error_panic_hook", 3695 | "console_log", 3696 | "curve25519-dalek", 3697 | "getrandom 0.2.11", 3698 | "itertools", 3699 | "js-sys", 3700 | "lazy_static", 3701 | "libc", 3702 | "libsecp256k1", 3703 | "light-poseidon", 3704 | "log", 3705 | "memoffset 0.9.0", 3706 | "num-bigint 0.4.4", 3707 | "num-derive 0.4.1", 3708 | "num-traits", 3709 | "parking_lot", 3710 | "rand 0.8.5", 3711 | "rustc_version", 3712 | "rustversion", 3713 | "serde", 3714 | "serde_bytes", 3715 | "serde_derive", 3716 | "serde_json", 3717 | "sha2 0.10.8", 3718 | "sha3 0.10.8", 3719 | "solana-frozen-abi", 3720 | "solana-frozen-abi-macro", 3721 | "solana-sdk-macro", 3722 | "thiserror", 3723 | "tiny-bip39", 3724 | "wasm-bindgen", 3725 | "zeroize", 3726 | ] 3727 | 3728 | [[package]] 3729 | name = "solana-program-runtime" 3730 | version = "1.18.5" 3731 | source = "registry+https://github.com/rust-lang/crates.io-index" 3732 | checksum = "8b294e968a38051c10216ee6a89f4e7817aa4b3f644603318e369ab74703ea9e" 3733 | dependencies = [ 3734 | "base64 0.21.7", 3735 | "bincode", 3736 | "eager", 3737 | "enum-iterator", 3738 | "itertools", 3739 | "libc", 3740 | "log", 3741 | "num-derive 0.4.1", 3742 | "num-traits", 3743 | "percentage", 3744 | "rand 0.8.5", 3745 | "rustc_version", 3746 | "serde", 3747 | "solana-frozen-abi", 3748 | "solana-frozen-abi-macro", 3749 | "solana-measure", 3750 | "solana-metrics", 3751 | "solana-sdk", 3752 | "solana_rbpf", 3753 | "thiserror", 3754 | ] 3755 | 3756 | [[package]] 3757 | name = "solana-pubsub-client" 3758 | version = "1.18.5" 3759 | source = "registry+https://github.com/rust-lang/crates.io-index" 3760 | checksum = "3eef196b1d4096283f9da7e2e1d4d89451384fff4158ea512d30a4bc72e28188" 3761 | dependencies = [ 3762 | "crossbeam-channel", 3763 | "futures-util", 3764 | "log", 3765 | "reqwest", 3766 | "semver", 3767 | "serde", 3768 | "serde_derive", 3769 | "serde_json", 3770 | "solana-account-decoder", 3771 | "solana-rpc-client-api", 3772 | "solana-sdk", 3773 | "thiserror", 3774 | "tokio", 3775 | "tokio-stream", 3776 | "tokio-tungstenite", 3777 | "tungstenite", 3778 | "url", 3779 | ] 3780 | 3781 | [[package]] 3782 | name = "solana-quic-client" 3783 | version = "1.18.5" 3784 | source = "registry+https://github.com/rust-lang/crates.io-index" 3785 | checksum = "c953eed2331b5289236fd7e0e4138c48b70e0ff2737d591031d160561014d32c" 3786 | dependencies = [ 3787 | "async-mutex", 3788 | "async-trait", 3789 | "futures", 3790 | "itertools", 3791 | "lazy_static", 3792 | "log", 3793 | "quinn", 3794 | "quinn-proto", 3795 | "rcgen", 3796 | "rustls", 3797 | "solana-connection-cache", 3798 | "solana-measure", 3799 | "solana-metrics", 3800 | "solana-net-utils", 3801 | "solana-rpc-client-api", 3802 | "solana-sdk", 3803 | "solana-streamer", 3804 | "thiserror", 3805 | "tokio", 3806 | ] 3807 | 3808 | [[package]] 3809 | name = "solana-rayon-threadlimit" 3810 | version = "1.18.5" 3811 | source = "registry+https://github.com/rust-lang/crates.io-index" 3812 | checksum = "9c0e76c44fb2f63e6fb074b429c88a6b8d717ac5e1cfca5fe3f8ce0ca3325543" 3813 | dependencies = [ 3814 | "lazy_static", 3815 | "num_cpus", 3816 | ] 3817 | 3818 | [[package]] 3819 | name = "solana-remote-wallet" 3820 | version = "1.18.5" 3821 | source = "registry+https://github.com/rust-lang/crates.io-index" 3822 | checksum = "4a9922b481ce6b8bb53483fede2ac96c50b365aa863066c7e5f2b53952a089c5" 3823 | dependencies = [ 3824 | "console", 3825 | "dialoguer", 3826 | "log", 3827 | "num-derive 0.4.1", 3828 | "num-traits", 3829 | "parking_lot", 3830 | "qstring", 3831 | "semver", 3832 | "solana-sdk", 3833 | "thiserror", 3834 | "uriparse", 3835 | ] 3836 | 3837 | [[package]] 3838 | name = "solana-rpc-client" 3839 | version = "1.18.5" 3840 | source = "registry+https://github.com/rust-lang/crates.io-index" 3841 | checksum = "602b1d5e1a074291cf4412ee72e576a885e1fb8be78889a91f7d0406956810a5" 3842 | dependencies = [ 3843 | "async-trait", 3844 | "base64 0.21.7", 3845 | "bincode", 3846 | "bs58 0.4.0", 3847 | "indicatif", 3848 | "log", 3849 | "reqwest", 3850 | "semver", 3851 | "serde", 3852 | "serde_derive", 3853 | "serde_json", 3854 | "solana-account-decoder", 3855 | "solana-rpc-client-api", 3856 | "solana-sdk", 3857 | "solana-transaction-status", 3858 | "solana-version", 3859 | "solana-vote-program", 3860 | "tokio", 3861 | ] 3862 | 3863 | [[package]] 3864 | name = "solana-rpc-client-api" 3865 | version = "1.18.5" 3866 | source = "registry+https://github.com/rust-lang/crates.io-index" 3867 | checksum = "d87113c37c9d60d17727e983de7aa6c296b3ec699af20752a326778cf4272738" 3868 | dependencies = [ 3869 | "base64 0.21.7", 3870 | "bs58 0.4.0", 3871 | "jsonrpc-core", 3872 | "reqwest", 3873 | "semver", 3874 | "serde", 3875 | "serde_derive", 3876 | "serde_json", 3877 | "solana-account-decoder", 3878 | "solana-sdk", 3879 | "solana-transaction-status", 3880 | "solana-version", 3881 | "spl-token-2022", 3882 | "thiserror", 3883 | ] 3884 | 3885 | [[package]] 3886 | name = "solana-rpc-client-nonce-utils" 3887 | version = "1.18.5" 3888 | source = "registry+https://github.com/rust-lang/crates.io-index" 3889 | checksum = "bdc5e2a63cbb48e0757fbf32e3697f613fbf646ff90377716f482499d072530c" 3890 | dependencies = [ 3891 | "clap 2.34.0", 3892 | "solana-clap-utils", 3893 | "solana-rpc-client", 3894 | "solana-sdk", 3895 | "thiserror", 3896 | ] 3897 | 3898 | [[package]] 3899 | name = "solana-sdk" 3900 | version = "1.18.5" 3901 | source = "registry+https://github.com/rust-lang/crates.io-index" 3902 | checksum = "db637d6bc58a3db4b6c1567e3eeba5ae530e3e29975892a7604bfbb3366338a7" 3903 | dependencies = [ 3904 | "assert_matches", 3905 | "base64 0.21.7", 3906 | "bincode", 3907 | "bitflags 2.4.2", 3908 | "borsh 1.3.1", 3909 | "bs58 0.4.0", 3910 | "bytemuck", 3911 | "byteorder", 3912 | "chrono", 3913 | "derivation-path", 3914 | "digest 0.10.7", 3915 | "ed25519-dalek", 3916 | "ed25519-dalek-bip32", 3917 | "generic-array", 3918 | "hmac 0.12.1", 3919 | "itertools", 3920 | "js-sys", 3921 | "lazy_static", 3922 | "libsecp256k1", 3923 | "log", 3924 | "memmap2", 3925 | "num-derive 0.4.1", 3926 | "num-traits", 3927 | "num_enum 0.7.2", 3928 | "pbkdf2 0.11.0", 3929 | "qstring", 3930 | "qualifier_attr", 3931 | "rand 0.7.3", 3932 | "rand 0.8.5", 3933 | "rustc_version", 3934 | "rustversion", 3935 | "serde", 3936 | "serde_bytes", 3937 | "serde_derive", 3938 | "serde_json", 3939 | "serde_with", 3940 | "sha2 0.10.8", 3941 | "sha3 0.10.8", 3942 | "siphasher", 3943 | "solana-frozen-abi", 3944 | "solana-frozen-abi-macro", 3945 | "solana-logger", 3946 | "solana-program", 3947 | "solana-sdk-macro", 3948 | "thiserror", 3949 | "uriparse", 3950 | "wasm-bindgen", 3951 | ] 3952 | 3953 | [[package]] 3954 | name = "solana-sdk-macro" 3955 | version = "1.18.5" 3956 | source = "registry+https://github.com/rust-lang/crates.io-index" 3957 | checksum = "e1c1760e8335a094197c956bd4fe86e88cb34c1063860c77905e90e22632b46f" 3958 | dependencies = [ 3959 | "bs58 0.4.0", 3960 | "proc-macro2", 3961 | "quote", 3962 | "rustversion", 3963 | "syn 2.0.48", 3964 | ] 3965 | 3966 | [[package]] 3967 | name = "solana-security-txt" 3968 | version = "1.1.1" 3969 | source = "registry+https://github.com/rust-lang/crates.io-index" 3970 | checksum = "468aa43b7edb1f9b7b7b686d5c3aeb6630dc1708e86e31343499dd5c4d775183" 3971 | 3972 | [[package]] 3973 | name = "solana-streamer" 3974 | version = "1.18.5" 3975 | source = "registry+https://github.com/rust-lang/crates.io-index" 3976 | checksum = "2fe6b2d28ed248f85633c14381be0127bab58921bd711a351cca25f72dbe97e3" 3977 | dependencies = [ 3978 | "async-channel", 3979 | "bytes", 3980 | "crossbeam-channel", 3981 | "futures-util", 3982 | "histogram", 3983 | "indexmap 2.2.5", 3984 | "itertools", 3985 | "libc", 3986 | "log", 3987 | "nix", 3988 | "pem", 3989 | "percentage", 3990 | "pkcs8", 3991 | "quinn", 3992 | "quinn-proto", 3993 | "rand 0.8.5", 3994 | "rcgen", 3995 | "rustls", 3996 | "solana-metrics", 3997 | "solana-perf", 3998 | "solana-sdk", 3999 | "thiserror", 4000 | "tokio", 4001 | "x509-parser", 4002 | ] 4003 | 4004 | [[package]] 4005 | name = "solana-thin-client" 4006 | version = "1.18.5" 4007 | source = "registry+https://github.com/rust-lang/crates.io-index" 4008 | checksum = "0b0f2883028c2270c3aa1856335d60189762d8105f3b4b06eb8f86aca43f2543" 4009 | dependencies = [ 4010 | "bincode", 4011 | "log", 4012 | "rayon", 4013 | "solana-connection-cache", 4014 | "solana-rpc-client", 4015 | "solana-rpc-client-api", 4016 | "solana-sdk", 4017 | ] 4018 | 4019 | [[package]] 4020 | name = "solana-tpu-client" 4021 | version = "1.18.5" 4022 | source = "registry+https://github.com/rust-lang/crates.io-index" 4023 | checksum = "e32fc657b4cd114c12abd14c317b3fd2271bd680309e0cfeff6c3db82cceaa77" 4024 | dependencies = [ 4025 | "async-trait", 4026 | "bincode", 4027 | "futures-util", 4028 | "indexmap 2.2.5", 4029 | "indicatif", 4030 | "log", 4031 | "rayon", 4032 | "solana-connection-cache", 4033 | "solana-measure", 4034 | "solana-metrics", 4035 | "solana-pubsub-client", 4036 | "solana-rpc-client", 4037 | "solana-rpc-client-api", 4038 | "solana-sdk", 4039 | "thiserror", 4040 | "tokio", 4041 | ] 4042 | 4043 | [[package]] 4044 | name = "solana-transaction-status" 4045 | version = "1.18.5" 4046 | source = "registry+https://github.com/rust-lang/crates.io-index" 4047 | checksum = "6508cee98d85da02edd407ef86a26b7410f7f82bcf8e3ba889f1c577b7484365" 4048 | dependencies = [ 4049 | "Inflector", 4050 | "base64 0.21.7", 4051 | "bincode", 4052 | "borsh 0.10.3", 4053 | "bs58 0.4.0", 4054 | "lazy_static", 4055 | "log", 4056 | "serde", 4057 | "serde_derive", 4058 | "serde_json", 4059 | "solana-account-decoder", 4060 | "solana-sdk", 4061 | "spl-associated-token-account", 4062 | "spl-memo", 4063 | "spl-token", 4064 | "spl-token-2022", 4065 | "thiserror", 4066 | ] 4067 | 4068 | [[package]] 4069 | name = "solana-udp-client" 4070 | version = "1.18.5" 4071 | source = "registry+https://github.com/rust-lang/crates.io-index" 4072 | checksum = "2ddef45fa78ebdbe8138f0245bc7aad35ba60566ae80b6e3ce9892ed563cbb99" 4073 | dependencies = [ 4074 | "async-trait", 4075 | "solana-connection-cache", 4076 | "solana-net-utils", 4077 | "solana-sdk", 4078 | "solana-streamer", 4079 | "thiserror", 4080 | "tokio", 4081 | ] 4082 | 4083 | [[package]] 4084 | name = "solana-version" 4085 | version = "1.18.5" 4086 | source = "registry+https://github.com/rust-lang/crates.io-index" 4087 | checksum = "9ad3eddb75de2d3f949a4d2ba888110761c0c76efda76247bb66f161f0998902" 4088 | dependencies = [ 4089 | "log", 4090 | "rustc_version", 4091 | "semver", 4092 | "serde", 4093 | "serde_derive", 4094 | "solana-frozen-abi", 4095 | "solana-frozen-abi-macro", 4096 | "solana-sdk", 4097 | ] 4098 | 4099 | [[package]] 4100 | name = "solana-vote-program" 4101 | version = "1.18.5" 4102 | source = "registry+https://github.com/rust-lang/crates.io-index" 4103 | checksum = "f5ad9b930c86b8f41a880f75dfd138bd5a067bcc1eafa4f6f2903ca6d4df6554" 4104 | dependencies = [ 4105 | "bincode", 4106 | "log", 4107 | "num-derive 0.4.1", 4108 | "num-traits", 4109 | "rustc_version", 4110 | "serde", 4111 | "serde_derive", 4112 | "solana-frozen-abi", 4113 | "solana-frozen-abi-macro", 4114 | "solana-metrics", 4115 | "solana-program", 4116 | "solana-program-runtime", 4117 | "solana-sdk", 4118 | "thiserror", 4119 | ] 4120 | 4121 | [[package]] 4122 | name = "solana-zk-token-sdk" 4123 | version = "1.18.5" 4124 | source = "registry+https://github.com/rust-lang/crates.io-index" 4125 | checksum = "12fdb3b48caac09cfd178bf381a6c804f3ed317b86a276640d523772d8a3f6f4" 4126 | dependencies = [ 4127 | "aes-gcm-siv", 4128 | "base64 0.21.7", 4129 | "bincode", 4130 | "bytemuck", 4131 | "byteorder", 4132 | "curve25519-dalek", 4133 | "getrandom 0.1.16", 4134 | "itertools", 4135 | "lazy_static", 4136 | "merlin", 4137 | "num-derive 0.4.1", 4138 | "num-traits", 4139 | "rand 0.7.3", 4140 | "serde", 4141 | "serde_json", 4142 | "sha3 0.9.1", 4143 | "solana-program", 4144 | "solana-sdk", 4145 | "subtle", 4146 | "thiserror", 4147 | "zeroize", 4148 | ] 4149 | 4150 | [[package]] 4151 | name = "solana_rbpf" 4152 | version = "0.8.0" 4153 | source = "registry+https://github.com/rust-lang/crates.io-index" 4154 | checksum = "3d457cc2ba742c120492a64b7fa60e22c575e891f6b55039f4d736568fb112a3" 4155 | dependencies = [ 4156 | "byteorder", 4157 | "combine", 4158 | "goblin", 4159 | "hash32", 4160 | "libc", 4161 | "log", 4162 | "rand 0.8.5", 4163 | "rustc-demangle", 4164 | "scroll", 4165 | "thiserror", 4166 | "winapi", 4167 | ] 4168 | 4169 | [[package]] 4170 | name = "spin" 4171 | version = "0.5.2" 4172 | source = "registry+https://github.com/rust-lang/crates.io-index" 4173 | checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" 4174 | 4175 | [[package]] 4176 | name = "spin" 4177 | version = "0.9.8" 4178 | source = "registry+https://github.com/rust-lang/crates.io-index" 4179 | checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" 4180 | 4181 | [[package]] 4182 | name = "spki" 4183 | version = "0.5.4" 4184 | source = "registry+https://github.com/rust-lang/crates.io-index" 4185 | checksum = "44d01ac02a6ccf3e07db148d2be087da624fea0221a16152ed01f0496a6b0a27" 4186 | dependencies = [ 4187 | "base64ct", 4188 | "der", 4189 | ] 4190 | 4191 | [[package]] 4192 | name = "spl-associated-token-account" 4193 | version = "2.3.0" 4194 | source = "registry+https://github.com/rust-lang/crates.io-index" 4195 | checksum = "992d9c64c2564cc8f63a4b508bf3ebcdf2254b0429b13cd1d31adb6162432a5f" 4196 | dependencies = [ 4197 | "assert_matches", 4198 | "borsh 0.10.3", 4199 | "num-derive 0.4.1", 4200 | "num-traits", 4201 | "solana-program", 4202 | "spl-token", 4203 | "spl-token-2022", 4204 | "thiserror", 4205 | ] 4206 | 4207 | [[package]] 4208 | name = "spl-discriminator" 4209 | version = "0.1.0" 4210 | source = "registry+https://github.com/rust-lang/crates.io-index" 4211 | checksum = "cce5d563b58ef1bb2cdbbfe0dfb9ffdc24903b10ae6a4df2d8f425ece375033f" 4212 | dependencies = [ 4213 | "bytemuck", 4214 | "solana-program", 4215 | "spl-discriminator-derive", 4216 | ] 4217 | 4218 | [[package]] 4219 | name = "spl-discriminator-derive" 4220 | version = "0.1.1" 4221 | source = "registry+https://github.com/rust-lang/crates.io-index" 4222 | checksum = "fadbefec4f3c678215ca72bd71862697bb06b41fd77c0088902dd3203354387b" 4223 | dependencies = [ 4224 | "quote", 4225 | "spl-discriminator-syn", 4226 | "syn 2.0.48", 4227 | ] 4228 | 4229 | [[package]] 4230 | name = "spl-discriminator-syn" 4231 | version = "0.1.1" 4232 | source = "registry+https://github.com/rust-lang/crates.io-index" 4233 | checksum = "0e5f2044ca42c8938d54d1255ce599c79a1ffd86b677dfab695caa20f9ffc3f2" 4234 | dependencies = [ 4235 | "proc-macro2", 4236 | "quote", 4237 | "sha2 0.10.8", 4238 | "syn 2.0.48", 4239 | "thiserror", 4240 | ] 4241 | 4242 | [[package]] 4243 | name = "spl-memo" 4244 | version = "4.0.0" 4245 | source = "registry+https://github.com/rust-lang/crates.io-index" 4246 | checksum = "f0f180b03318c3dbab3ef4e1e4d46d5211ae3c780940dd0a28695aba4b59a75a" 4247 | dependencies = [ 4248 | "solana-program", 4249 | ] 4250 | 4251 | [[package]] 4252 | name = "spl-pod" 4253 | version = "0.1.0" 4254 | source = "registry+https://github.com/rust-lang/crates.io-index" 4255 | checksum = "2881dddfca792737c0706fa0175345ab282b1b0879c7d877bad129645737c079" 4256 | dependencies = [ 4257 | "borsh 0.10.3", 4258 | "bytemuck", 4259 | "solana-program", 4260 | "solana-zk-token-sdk", 4261 | "spl-program-error", 4262 | ] 4263 | 4264 | [[package]] 4265 | name = "spl-program-error" 4266 | version = "0.3.0" 4267 | source = "registry+https://github.com/rust-lang/crates.io-index" 4268 | checksum = "249e0318493b6bcf27ae9902600566c689b7dfba9f1bdff5893e92253374e78c" 4269 | dependencies = [ 4270 | "num-derive 0.4.1", 4271 | "num-traits", 4272 | "solana-program", 4273 | "spl-program-error-derive", 4274 | "thiserror", 4275 | ] 4276 | 4277 | [[package]] 4278 | name = "spl-program-error-derive" 4279 | version = "0.3.1" 4280 | source = "registry+https://github.com/rust-lang/crates.io-index" 4281 | checksum = "ab5269c8e868da17b6552ef35a51355a017bd8e0eae269c201fef830d35fa52c" 4282 | dependencies = [ 4283 | "proc-macro2", 4284 | "quote", 4285 | "sha2 0.10.8", 4286 | "syn 2.0.48", 4287 | ] 4288 | 4289 | [[package]] 4290 | name = "spl-tlv-account-resolution" 4291 | version = "0.5.2" 4292 | source = "registry+https://github.com/rust-lang/crates.io-index" 4293 | checksum = "56f335787add7fa711819f9e7c573f8145a5358a709446fe2d24bf2a88117c90" 4294 | dependencies = [ 4295 | "bytemuck", 4296 | "solana-program", 4297 | "spl-discriminator", 4298 | "spl-pod", 4299 | "spl-program-error", 4300 | "spl-type-length-value", 4301 | ] 4302 | 4303 | [[package]] 4304 | name = "spl-token" 4305 | version = "4.0.0" 4306 | source = "registry+https://github.com/rust-lang/crates.io-index" 4307 | checksum = "08459ba1b8f7c1020b4582c4edf0f5c7511a5e099a7a97570c9698d4f2337060" 4308 | dependencies = [ 4309 | "arrayref", 4310 | "bytemuck", 4311 | "num-derive 0.3.3", 4312 | "num-traits", 4313 | "num_enum 0.6.1", 4314 | "solana-program", 4315 | "thiserror", 4316 | ] 4317 | 4318 | [[package]] 4319 | name = "spl-token-2022" 4320 | version = "1.0.0" 4321 | source = "registry+https://github.com/rust-lang/crates.io-index" 4322 | checksum = "d697fac19fd74ff472dfcc13f0b442dd71403178ce1de7b5d16f83a33561c059" 4323 | dependencies = [ 4324 | "arrayref", 4325 | "bytemuck", 4326 | "num-derive 0.4.1", 4327 | "num-traits", 4328 | "num_enum 0.7.2", 4329 | "solana-program", 4330 | "solana-security-txt", 4331 | "solana-zk-token-sdk", 4332 | "spl-memo", 4333 | "spl-pod", 4334 | "spl-token", 4335 | "spl-token-group-interface", 4336 | "spl-token-metadata-interface", 4337 | "spl-transfer-hook-interface", 4338 | "spl-type-length-value", 4339 | "thiserror", 4340 | ] 4341 | 4342 | [[package]] 4343 | name = "spl-token-group-interface" 4344 | version = "0.1.0" 4345 | source = "registry+https://github.com/rust-lang/crates.io-index" 4346 | checksum = "b889509d49fa74a4a033ca5dae6c2307e9e918122d97e58562f5c4ffa795c75d" 4347 | dependencies = [ 4348 | "bytemuck", 4349 | "solana-program", 4350 | "spl-discriminator", 4351 | "spl-pod", 4352 | "spl-program-error", 4353 | ] 4354 | 4355 | [[package]] 4356 | name = "spl-token-metadata-interface" 4357 | version = "0.2.0" 4358 | source = "registry+https://github.com/rust-lang/crates.io-index" 4359 | checksum = "4c16ce3ba6979645fb7627aa1e435576172dd63088dc7848cb09aa331fa1fe4f" 4360 | dependencies = [ 4361 | "borsh 0.10.3", 4362 | "solana-program", 4363 | "spl-discriminator", 4364 | "spl-pod", 4365 | "spl-program-error", 4366 | "spl-type-length-value", 4367 | ] 4368 | 4369 | [[package]] 4370 | name = "spl-transfer-hook-interface" 4371 | version = "0.4.1" 4372 | source = "registry+https://github.com/rust-lang/crates.io-index" 4373 | checksum = "7aabdb7c471566f6ddcee724beb8618449ea24b399e58d464d6b5bc7db550259" 4374 | dependencies = [ 4375 | "arrayref", 4376 | "bytemuck", 4377 | "solana-program", 4378 | "spl-discriminator", 4379 | "spl-pod", 4380 | "spl-program-error", 4381 | "spl-tlv-account-resolution", 4382 | "spl-type-length-value", 4383 | ] 4384 | 4385 | [[package]] 4386 | name = "spl-type-length-value" 4387 | version = "0.3.0" 4388 | source = "registry+https://github.com/rust-lang/crates.io-index" 4389 | checksum = "a468e6f6371f9c69aae760186ea9f1a01c2908351b06a5e0026d21cfc4d7ecac" 4390 | dependencies = [ 4391 | "bytemuck", 4392 | "solana-program", 4393 | "spl-discriminator", 4394 | "spl-pod", 4395 | "spl-program-error", 4396 | ] 4397 | 4398 | [[package]] 4399 | name = "static_assertions" 4400 | version = "1.1.0" 4401 | source = "registry+https://github.com/rust-lang/crates.io-index" 4402 | checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" 4403 | 4404 | [[package]] 4405 | name = "strsim" 4406 | version = "0.8.0" 4407 | source = "registry+https://github.com/rust-lang/crates.io-index" 4408 | checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" 4409 | 4410 | [[package]] 4411 | name = "strsim" 4412 | version = "0.10.0" 4413 | source = "registry+https://github.com/rust-lang/crates.io-index" 4414 | checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" 4415 | 4416 | [[package]] 4417 | name = "subtle" 4418 | version = "2.4.1" 4419 | source = "registry+https://github.com/rust-lang/crates.io-index" 4420 | checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" 4421 | 4422 | [[package]] 4423 | name = "syn" 4424 | version = "1.0.109" 4425 | source = "registry+https://github.com/rust-lang/crates.io-index" 4426 | checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" 4427 | dependencies = [ 4428 | "proc-macro2", 4429 | "quote", 4430 | "unicode-ident", 4431 | ] 4432 | 4433 | [[package]] 4434 | name = "syn" 4435 | version = "2.0.48" 4436 | source = "registry+https://github.com/rust-lang/crates.io-index" 4437 | checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" 4438 | dependencies = [ 4439 | "proc-macro2", 4440 | "quote", 4441 | "unicode-ident", 4442 | ] 4443 | 4444 | [[package]] 4445 | name = "syn_derive" 4446 | version = "0.1.8" 4447 | source = "registry+https://github.com/rust-lang/crates.io-index" 4448 | checksum = "1329189c02ff984e9736652b1631330da25eaa6bc639089ed4915d25446cbe7b" 4449 | dependencies = [ 4450 | "proc-macro-error", 4451 | "proc-macro2", 4452 | "quote", 4453 | "syn 2.0.48", 4454 | ] 4455 | 4456 | [[package]] 4457 | name = "synstructure" 4458 | version = "0.12.6" 4459 | source = "registry+https://github.com/rust-lang/crates.io-index" 4460 | checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" 4461 | dependencies = [ 4462 | "proc-macro2", 4463 | "quote", 4464 | "syn 1.0.109", 4465 | "unicode-xid", 4466 | ] 4467 | 4468 | [[package]] 4469 | name = "system-configuration" 4470 | version = "0.5.1" 4471 | source = "registry+https://github.com/rust-lang/crates.io-index" 4472 | checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" 4473 | dependencies = [ 4474 | "bitflags 1.3.2", 4475 | "core-foundation", 4476 | "system-configuration-sys", 4477 | ] 4478 | 4479 | [[package]] 4480 | name = "system-configuration-sys" 4481 | version = "0.5.0" 4482 | source = "registry+https://github.com/rust-lang/crates.io-index" 4483 | checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" 4484 | dependencies = [ 4485 | "core-foundation-sys", 4486 | "libc", 4487 | ] 4488 | 4489 | [[package]] 4490 | name = "tempfile" 4491 | version = "3.9.0" 4492 | source = "registry+https://github.com/rust-lang/crates.io-index" 4493 | checksum = "01ce4141aa927a6d1bd34a041795abd0db1cccba5d5f24b009f694bdf3a1f3fa" 4494 | dependencies = [ 4495 | "cfg-if", 4496 | "fastrand", 4497 | "redox_syscall", 4498 | "rustix", 4499 | "windows-sys 0.52.0", 4500 | ] 4501 | 4502 | [[package]] 4503 | name = "termcolor" 4504 | version = "1.4.0" 4505 | source = "registry+https://github.com/rust-lang/crates.io-index" 4506 | checksum = "ff1bc3d3f05aff0403e8ac0d92ced918ec05b666a43f83297ccef5bea8a3d449" 4507 | dependencies = [ 4508 | "winapi-util", 4509 | ] 4510 | 4511 | [[package]] 4512 | name = "textwrap" 4513 | version = "0.11.0" 4514 | source = "registry+https://github.com/rust-lang/crates.io-index" 4515 | checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060" 4516 | dependencies = [ 4517 | "unicode-width", 4518 | ] 4519 | 4520 | [[package]] 4521 | name = "textwrap" 4522 | version = "0.16.0" 4523 | source = "registry+https://github.com/rust-lang/crates.io-index" 4524 | checksum = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d" 4525 | 4526 | [[package]] 4527 | name = "thiserror" 4528 | version = "1.0.57" 4529 | source = "registry+https://github.com/rust-lang/crates.io-index" 4530 | checksum = "1e45bcbe8ed29775f228095caf2cd67af7a4ccf756ebff23a306bf3e8b47b24b" 4531 | dependencies = [ 4532 | "thiserror-impl", 4533 | ] 4534 | 4535 | [[package]] 4536 | name = "thiserror-impl" 4537 | version = "1.0.57" 4538 | source = "registry+https://github.com/rust-lang/crates.io-index" 4539 | checksum = "a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81" 4540 | dependencies = [ 4541 | "proc-macro2", 4542 | "quote", 4543 | "syn 2.0.48", 4544 | ] 4545 | 4546 | [[package]] 4547 | name = "time" 4548 | version = "0.3.31" 4549 | source = "registry+https://github.com/rust-lang/crates.io-index" 4550 | checksum = "f657ba42c3f86e7680e53c8cd3af8abbe56b5491790b46e22e19c0d57463583e" 4551 | dependencies = [ 4552 | "deranged", 4553 | "itoa", 4554 | "powerfmt", 4555 | "serde", 4556 | "time-core", 4557 | "time-macros", 4558 | ] 4559 | 4560 | [[package]] 4561 | name = "time-core" 4562 | version = "0.1.2" 4563 | source = "registry+https://github.com/rust-lang/crates.io-index" 4564 | checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" 4565 | 4566 | [[package]] 4567 | name = "time-macros" 4568 | version = "0.2.16" 4569 | source = "registry+https://github.com/rust-lang/crates.io-index" 4570 | checksum = "26197e33420244aeb70c3e8c78376ca46571bc4e701e4791c2cd9f57dcb3a43f" 4571 | dependencies = [ 4572 | "time-core", 4573 | ] 4574 | 4575 | [[package]] 4576 | name = "tiny-bip39" 4577 | version = "0.8.2" 4578 | source = "registry+https://github.com/rust-lang/crates.io-index" 4579 | checksum = "ffc59cb9dfc85bb312c3a78fd6aa8a8582e310b0fa885d5bb877f6dcc601839d" 4580 | dependencies = [ 4581 | "anyhow", 4582 | "hmac 0.8.1", 4583 | "once_cell", 4584 | "pbkdf2 0.4.0", 4585 | "rand 0.7.3", 4586 | "rustc-hash", 4587 | "sha2 0.9.9", 4588 | "thiserror", 4589 | "unicode-normalization", 4590 | "wasm-bindgen", 4591 | "zeroize", 4592 | ] 4593 | 4594 | [[package]] 4595 | name = "tinyvec" 4596 | version = "1.6.0" 4597 | source = "registry+https://github.com/rust-lang/crates.io-index" 4598 | checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" 4599 | dependencies = [ 4600 | "tinyvec_macros", 4601 | ] 4602 | 4603 | [[package]] 4604 | name = "tinyvec_macros" 4605 | version = "0.1.1" 4606 | source = "registry+https://github.com/rust-lang/crates.io-index" 4607 | checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" 4608 | 4609 | [[package]] 4610 | name = "tokio" 4611 | version = "1.35.1" 4612 | source = "registry+https://github.com/rust-lang/crates.io-index" 4613 | checksum = "c89b4efa943be685f629b149f53829423f8f5531ea21249408e8e2f8671ec104" 4614 | dependencies = [ 4615 | "backtrace", 4616 | "bytes", 4617 | "libc", 4618 | "mio", 4619 | "num_cpus", 4620 | "parking_lot", 4621 | "pin-project-lite", 4622 | "signal-hook-registry", 4623 | "socket2", 4624 | "tokio-macros", 4625 | "windows-sys 0.48.0", 4626 | ] 4627 | 4628 | [[package]] 4629 | name = "tokio-macros" 4630 | version = "2.2.0" 4631 | source = "registry+https://github.com/rust-lang/crates.io-index" 4632 | checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" 4633 | dependencies = [ 4634 | "proc-macro2", 4635 | "quote", 4636 | "syn 2.0.48", 4637 | ] 4638 | 4639 | [[package]] 4640 | name = "tokio-rustls" 4641 | version = "0.24.1" 4642 | source = "registry+https://github.com/rust-lang/crates.io-index" 4643 | checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" 4644 | dependencies = [ 4645 | "rustls", 4646 | "tokio", 4647 | ] 4648 | 4649 | [[package]] 4650 | name = "tokio-stream" 4651 | version = "0.1.14" 4652 | source = "registry+https://github.com/rust-lang/crates.io-index" 4653 | checksum = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842" 4654 | dependencies = [ 4655 | "futures-core", 4656 | "pin-project-lite", 4657 | "tokio", 4658 | ] 4659 | 4660 | [[package]] 4661 | name = "tokio-tungstenite" 4662 | version = "0.20.1" 4663 | source = "registry+https://github.com/rust-lang/crates.io-index" 4664 | checksum = "212d5dcb2a1ce06d81107c3d0ffa3121fe974b73f068c8282cb1c32328113b6c" 4665 | dependencies = [ 4666 | "futures-util", 4667 | "log", 4668 | "rustls", 4669 | "tokio", 4670 | "tokio-rustls", 4671 | "tungstenite", 4672 | "webpki-roots 0.25.3", 4673 | ] 4674 | 4675 | [[package]] 4676 | name = "tokio-util" 4677 | version = "0.7.10" 4678 | source = "registry+https://github.com/rust-lang/crates.io-index" 4679 | checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15" 4680 | dependencies = [ 4681 | "bytes", 4682 | "futures-core", 4683 | "futures-sink", 4684 | "pin-project-lite", 4685 | "tokio", 4686 | "tracing", 4687 | ] 4688 | 4689 | [[package]] 4690 | name = "toml" 4691 | version = "0.5.11" 4692 | source = "registry+https://github.com/rust-lang/crates.io-index" 4693 | checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" 4694 | dependencies = [ 4695 | "serde", 4696 | ] 4697 | 4698 | [[package]] 4699 | name = "toml_datetime" 4700 | version = "0.6.5" 4701 | source = "registry+https://github.com/rust-lang/crates.io-index" 4702 | checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1" 4703 | 4704 | [[package]] 4705 | name = "toml_edit" 4706 | version = "0.19.15" 4707 | source = "registry+https://github.com/rust-lang/crates.io-index" 4708 | checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" 4709 | dependencies = [ 4710 | "indexmap 2.2.5", 4711 | "toml_datetime", 4712 | "winnow", 4713 | ] 4714 | 4715 | [[package]] 4716 | name = "toml_edit" 4717 | version = "0.21.1" 4718 | source = "registry+https://github.com/rust-lang/crates.io-index" 4719 | checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" 4720 | dependencies = [ 4721 | "indexmap 2.2.5", 4722 | "toml_datetime", 4723 | "winnow", 4724 | ] 4725 | 4726 | [[package]] 4727 | name = "tower-service" 4728 | version = "0.3.2" 4729 | source = "registry+https://github.com/rust-lang/crates.io-index" 4730 | checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" 4731 | 4732 | [[package]] 4733 | name = "tracing" 4734 | version = "0.1.40" 4735 | source = "registry+https://github.com/rust-lang/crates.io-index" 4736 | checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" 4737 | dependencies = [ 4738 | "log", 4739 | "pin-project-lite", 4740 | "tracing-attributes", 4741 | "tracing-core", 4742 | ] 4743 | 4744 | [[package]] 4745 | name = "tracing-attributes" 4746 | version = "0.1.27" 4747 | source = "registry+https://github.com/rust-lang/crates.io-index" 4748 | checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" 4749 | dependencies = [ 4750 | "proc-macro2", 4751 | "quote", 4752 | "syn 2.0.48", 4753 | ] 4754 | 4755 | [[package]] 4756 | name = "tracing-core" 4757 | version = "0.1.32" 4758 | source = "registry+https://github.com/rust-lang/crates.io-index" 4759 | checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" 4760 | dependencies = [ 4761 | "once_cell", 4762 | ] 4763 | 4764 | [[package]] 4765 | name = "try-lock" 4766 | version = "0.2.5" 4767 | source = "registry+https://github.com/rust-lang/crates.io-index" 4768 | checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" 4769 | 4770 | [[package]] 4771 | name = "tungstenite" 4772 | version = "0.20.1" 4773 | source = "registry+https://github.com/rust-lang/crates.io-index" 4774 | checksum = "9e3dac10fd62eaf6617d3a904ae222845979aec67c615d1c842b4002c7666fb9" 4775 | dependencies = [ 4776 | "byteorder", 4777 | "bytes", 4778 | "data-encoding", 4779 | "http", 4780 | "httparse", 4781 | "log", 4782 | "rand 0.8.5", 4783 | "rustls", 4784 | "sha1", 4785 | "thiserror", 4786 | "url", 4787 | "utf-8", 4788 | "webpki-roots 0.24.0", 4789 | ] 4790 | 4791 | [[package]] 4792 | name = "typenum" 4793 | version = "1.17.0" 4794 | source = "registry+https://github.com/rust-lang/crates.io-index" 4795 | checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" 4796 | 4797 | [[package]] 4798 | name = "unicode-bidi" 4799 | version = "0.3.14" 4800 | source = "registry+https://github.com/rust-lang/crates.io-index" 4801 | checksum = "6f2528f27a9eb2b21e69c95319b30bd0efd85d09c379741b0f78ea1d86be2416" 4802 | 4803 | [[package]] 4804 | name = "unicode-ident" 4805 | version = "1.0.12" 4806 | source = "registry+https://github.com/rust-lang/crates.io-index" 4807 | checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" 4808 | 4809 | [[package]] 4810 | name = "unicode-normalization" 4811 | version = "0.1.22" 4812 | source = "registry+https://github.com/rust-lang/crates.io-index" 4813 | checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" 4814 | dependencies = [ 4815 | "tinyvec", 4816 | ] 4817 | 4818 | [[package]] 4819 | name = "unicode-width" 4820 | version = "0.1.11" 4821 | source = "registry+https://github.com/rust-lang/crates.io-index" 4822 | checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85" 4823 | 4824 | [[package]] 4825 | name = "unicode-xid" 4826 | version = "0.2.4" 4827 | source = "registry+https://github.com/rust-lang/crates.io-index" 4828 | checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" 4829 | 4830 | [[package]] 4831 | name = "universal-hash" 4832 | version = "0.4.1" 4833 | source = "registry+https://github.com/rust-lang/crates.io-index" 4834 | checksum = "9f214e8f697e925001e66ec2c6e37a4ef93f0f78c2eed7814394e10c62025b05" 4835 | dependencies = [ 4836 | "generic-array", 4837 | "subtle", 4838 | ] 4839 | 4840 | [[package]] 4841 | name = "unreachable" 4842 | version = "1.0.0" 4843 | source = "registry+https://github.com/rust-lang/crates.io-index" 4844 | checksum = "382810877fe448991dfc7f0dd6e3ae5d58088fd0ea5e35189655f84e6814fa56" 4845 | dependencies = [ 4846 | "void", 4847 | ] 4848 | 4849 | [[package]] 4850 | name = "unsafe-libyaml" 4851 | version = "0.2.10" 4852 | source = "registry+https://github.com/rust-lang/crates.io-index" 4853 | checksum = "ab4c90930b95a82d00dc9e9ac071b4991924390d46cbd0dfe566148667605e4b" 4854 | 4855 | [[package]] 4856 | name = "untrusted" 4857 | version = "0.7.1" 4858 | source = "registry+https://github.com/rust-lang/crates.io-index" 4859 | checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" 4860 | 4861 | [[package]] 4862 | name = "untrusted" 4863 | version = "0.9.0" 4864 | source = "registry+https://github.com/rust-lang/crates.io-index" 4865 | checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" 4866 | 4867 | [[package]] 4868 | name = "uriparse" 4869 | version = "0.6.4" 4870 | source = "registry+https://github.com/rust-lang/crates.io-index" 4871 | checksum = "0200d0fc04d809396c2ad43f3c95da3582a2556eba8d453c1087f4120ee352ff" 4872 | dependencies = [ 4873 | "fnv", 4874 | "lazy_static", 4875 | ] 4876 | 4877 | [[package]] 4878 | name = "url" 4879 | version = "2.5.0" 4880 | source = "registry+https://github.com/rust-lang/crates.io-index" 4881 | checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633" 4882 | dependencies = [ 4883 | "form_urlencoded", 4884 | "idna", 4885 | "percent-encoding", 4886 | ] 4887 | 4888 | [[package]] 4889 | name = "utf-8" 4890 | version = "0.7.6" 4891 | source = "registry+https://github.com/rust-lang/crates.io-index" 4892 | checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" 4893 | 4894 | [[package]] 4895 | name = "utf8parse" 4896 | version = "0.2.1" 4897 | source = "registry+https://github.com/rust-lang/crates.io-index" 4898 | checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" 4899 | 4900 | [[package]] 4901 | name = "vec_map" 4902 | version = "0.8.2" 4903 | source = "registry+https://github.com/rust-lang/crates.io-index" 4904 | checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191" 4905 | 4906 | [[package]] 4907 | name = "version_check" 4908 | version = "0.9.4" 4909 | source = "registry+https://github.com/rust-lang/crates.io-index" 4910 | checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" 4911 | 4912 | [[package]] 4913 | name = "void" 4914 | version = "1.0.2" 4915 | source = "registry+https://github.com/rust-lang/crates.io-index" 4916 | checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" 4917 | 4918 | [[package]] 4919 | name = "want" 4920 | version = "0.3.1" 4921 | source = "registry+https://github.com/rust-lang/crates.io-index" 4922 | checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" 4923 | dependencies = [ 4924 | "try-lock", 4925 | ] 4926 | 4927 | [[package]] 4928 | name = "wasi" 4929 | version = "0.9.0+wasi-snapshot-preview1" 4930 | source = "registry+https://github.com/rust-lang/crates.io-index" 4931 | checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" 4932 | 4933 | [[package]] 4934 | name = "wasi" 4935 | version = "0.11.0+wasi-snapshot-preview1" 4936 | source = "registry+https://github.com/rust-lang/crates.io-index" 4937 | checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" 4938 | 4939 | [[package]] 4940 | name = "wasm-bindgen" 4941 | version = "0.2.92" 4942 | source = "registry+https://github.com/rust-lang/crates.io-index" 4943 | checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8" 4944 | dependencies = [ 4945 | "cfg-if", 4946 | "wasm-bindgen-macro", 4947 | ] 4948 | 4949 | [[package]] 4950 | name = "wasm-bindgen-backend" 4951 | version = "0.2.92" 4952 | source = "registry+https://github.com/rust-lang/crates.io-index" 4953 | checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da" 4954 | dependencies = [ 4955 | "bumpalo", 4956 | "log", 4957 | "once_cell", 4958 | "proc-macro2", 4959 | "quote", 4960 | "syn 2.0.48", 4961 | "wasm-bindgen-shared", 4962 | ] 4963 | 4964 | [[package]] 4965 | name = "wasm-bindgen-futures" 4966 | version = "0.4.39" 4967 | source = "registry+https://github.com/rust-lang/crates.io-index" 4968 | checksum = "ac36a15a220124ac510204aec1c3e5db8a22ab06fd6706d881dc6149f8ed9a12" 4969 | dependencies = [ 4970 | "cfg-if", 4971 | "js-sys", 4972 | "wasm-bindgen", 4973 | "web-sys", 4974 | ] 4975 | 4976 | [[package]] 4977 | name = "wasm-bindgen-macro" 4978 | version = "0.2.92" 4979 | source = "registry+https://github.com/rust-lang/crates.io-index" 4980 | checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726" 4981 | dependencies = [ 4982 | "quote", 4983 | "wasm-bindgen-macro-support", 4984 | ] 4985 | 4986 | [[package]] 4987 | name = "wasm-bindgen-macro-support" 4988 | version = "0.2.92" 4989 | source = "registry+https://github.com/rust-lang/crates.io-index" 4990 | checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" 4991 | dependencies = [ 4992 | "proc-macro2", 4993 | "quote", 4994 | "syn 2.0.48", 4995 | "wasm-bindgen-backend", 4996 | "wasm-bindgen-shared", 4997 | ] 4998 | 4999 | [[package]] 5000 | name = "wasm-bindgen-shared" 5001 | version = "0.2.92" 5002 | source = "registry+https://github.com/rust-lang/crates.io-index" 5003 | checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" 5004 | 5005 | [[package]] 5006 | name = "web-sys" 5007 | version = "0.3.66" 5008 | source = "registry+https://github.com/rust-lang/crates.io-index" 5009 | checksum = "50c24a44ec86bb68fbecd1b3efed7e85ea5621b39b35ef2766b66cd984f8010f" 5010 | dependencies = [ 5011 | "js-sys", 5012 | "wasm-bindgen", 5013 | ] 5014 | 5015 | [[package]] 5016 | name = "webpki-roots" 5017 | version = "0.24.0" 5018 | source = "registry+https://github.com/rust-lang/crates.io-index" 5019 | checksum = "b291546d5d9d1eab74f069c77749f2cb8504a12caa20f0f2de93ddbf6f411888" 5020 | dependencies = [ 5021 | "rustls-webpki", 5022 | ] 5023 | 5024 | [[package]] 5025 | name = "webpki-roots" 5026 | version = "0.25.3" 5027 | source = "registry+https://github.com/rust-lang/crates.io-index" 5028 | checksum = "1778a42e8b3b90bff8d0f5032bf22250792889a5cdc752aa0020c84abe3aaf10" 5029 | 5030 | [[package]] 5031 | name = "winapi" 5032 | version = "0.3.9" 5033 | source = "registry+https://github.com/rust-lang/crates.io-index" 5034 | checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" 5035 | dependencies = [ 5036 | "winapi-i686-pc-windows-gnu", 5037 | "winapi-x86_64-pc-windows-gnu", 5038 | ] 5039 | 5040 | [[package]] 5041 | name = "winapi-i686-pc-windows-gnu" 5042 | version = "0.4.0" 5043 | source = "registry+https://github.com/rust-lang/crates.io-index" 5044 | checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" 5045 | 5046 | [[package]] 5047 | name = "winapi-util" 5048 | version = "0.1.6" 5049 | source = "registry+https://github.com/rust-lang/crates.io-index" 5050 | checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596" 5051 | dependencies = [ 5052 | "winapi", 5053 | ] 5054 | 5055 | [[package]] 5056 | name = "winapi-x86_64-pc-windows-gnu" 5057 | version = "0.4.0" 5058 | source = "registry+https://github.com/rust-lang/crates.io-index" 5059 | checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" 5060 | 5061 | [[package]] 5062 | name = "windows-core" 5063 | version = "0.52.0" 5064 | source = "registry+https://github.com/rust-lang/crates.io-index" 5065 | checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" 5066 | dependencies = [ 5067 | "windows-targets 0.52.0", 5068 | ] 5069 | 5070 | [[package]] 5071 | name = "windows-sys" 5072 | version = "0.48.0" 5073 | source = "registry+https://github.com/rust-lang/crates.io-index" 5074 | checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" 5075 | dependencies = [ 5076 | "windows-targets 0.48.5", 5077 | ] 5078 | 5079 | [[package]] 5080 | name = "windows-sys" 5081 | version = "0.52.0" 5082 | source = "registry+https://github.com/rust-lang/crates.io-index" 5083 | checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" 5084 | dependencies = [ 5085 | "windows-targets 0.52.0", 5086 | ] 5087 | 5088 | [[package]] 5089 | name = "windows-targets" 5090 | version = "0.48.5" 5091 | source = "registry+https://github.com/rust-lang/crates.io-index" 5092 | checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" 5093 | dependencies = [ 5094 | "windows_aarch64_gnullvm 0.48.5", 5095 | "windows_aarch64_msvc 0.48.5", 5096 | "windows_i686_gnu 0.48.5", 5097 | "windows_i686_msvc 0.48.5", 5098 | "windows_x86_64_gnu 0.48.5", 5099 | "windows_x86_64_gnullvm 0.48.5", 5100 | "windows_x86_64_msvc 0.48.5", 5101 | ] 5102 | 5103 | [[package]] 5104 | name = "windows-targets" 5105 | version = "0.52.0" 5106 | source = "registry+https://github.com/rust-lang/crates.io-index" 5107 | checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd" 5108 | dependencies = [ 5109 | "windows_aarch64_gnullvm 0.52.0", 5110 | "windows_aarch64_msvc 0.52.0", 5111 | "windows_i686_gnu 0.52.0", 5112 | "windows_i686_msvc 0.52.0", 5113 | "windows_x86_64_gnu 0.52.0", 5114 | "windows_x86_64_gnullvm 0.52.0", 5115 | "windows_x86_64_msvc 0.52.0", 5116 | ] 5117 | 5118 | [[package]] 5119 | name = "windows_aarch64_gnullvm" 5120 | version = "0.48.5" 5121 | source = "registry+https://github.com/rust-lang/crates.io-index" 5122 | checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" 5123 | 5124 | [[package]] 5125 | name = "windows_aarch64_gnullvm" 5126 | version = "0.52.0" 5127 | source = "registry+https://github.com/rust-lang/crates.io-index" 5128 | checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" 5129 | 5130 | [[package]] 5131 | name = "windows_aarch64_msvc" 5132 | version = "0.48.5" 5133 | source = "registry+https://github.com/rust-lang/crates.io-index" 5134 | checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" 5135 | 5136 | [[package]] 5137 | name = "windows_aarch64_msvc" 5138 | version = "0.52.0" 5139 | source = "registry+https://github.com/rust-lang/crates.io-index" 5140 | checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" 5141 | 5142 | [[package]] 5143 | name = "windows_i686_gnu" 5144 | version = "0.48.5" 5145 | source = "registry+https://github.com/rust-lang/crates.io-index" 5146 | checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" 5147 | 5148 | [[package]] 5149 | name = "windows_i686_gnu" 5150 | version = "0.52.0" 5151 | source = "registry+https://github.com/rust-lang/crates.io-index" 5152 | checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" 5153 | 5154 | [[package]] 5155 | name = "windows_i686_msvc" 5156 | version = "0.48.5" 5157 | source = "registry+https://github.com/rust-lang/crates.io-index" 5158 | checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" 5159 | 5160 | [[package]] 5161 | name = "windows_i686_msvc" 5162 | version = "0.52.0" 5163 | source = "registry+https://github.com/rust-lang/crates.io-index" 5164 | checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" 5165 | 5166 | [[package]] 5167 | name = "windows_x86_64_gnu" 5168 | version = "0.48.5" 5169 | source = "registry+https://github.com/rust-lang/crates.io-index" 5170 | checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" 5171 | 5172 | [[package]] 5173 | name = "windows_x86_64_gnu" 5174 | version = "0.52.0" 5175 | source = "registry+https://github.com/rust-lang/crates.io-index" 5176 | checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" 5177 | 5178 | [[package]] 5179 | name = "windows_x86_64_gnullvm" 5180 | version = "0.48.5" 5181 | source = "registry+https://github.com/rust-lang/crates.io-index" 5182 | checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" 5183 | 5184 | [[package]] 5185 | name = "windows_x86_64_gnullvm" 5186 | version = "0.52.0" 5187 | source = "registry+https://github.com/rust-lang/crates.io-index" 5188 | checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" 5189 | 5190 | [[package]] 5191 | name = "windows_x86_64_msvc" 5192 | version = "0.48.5" 5193 | source = "registry+https://github.com/rust-lang/crates.io-index" 5194 | checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" 5195 | 5196 | [[package]] 5197 | name = "windows_x86_64_msvc" 5198 | version = "0.52.0" 5199 | source = "registry+https://github.com/rust-lang/crates.io-index" 5200 | checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" 5201 | 5202 | [[package]] 5203 | name = "winnow" 5204 | version = "0.5.31" 5205 | source = "registry+https://github.com/rust-lang/crates.io-index" 5206 | checksum = "97a4882e6b134d6c28953a387571f1acdd3496830d5e36c5e3a1075580ea641c" 5207 | dependencies = [ 5208 | "memchr", 5209 | ] 5210 | 5211 | [[package]] 5212 | name = "winreg" 5213 | version = "0.50.0" 5214 | source = "registry+https://github.com/rust-lang/crates.io-index" 5215 | checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" 5216 | dependencies = [ 5217 | "cfg-if", 5218 | "windows-sys 0.48.0", 5219 | ] 5220 | 5221 | [[package]] 5222 | name = "x509-parser" 5223 | version = "0.14.0" 5224 | source = "registry+https://github.com/rust-lang/crates.io-index" 5225 | checksum = "e0ecbeb7b67ce215e40e3cc7f2ff902f94a223acf44995934763467e7b1febc8" 5226 | dependencies = [ 5227 | "asn1-rs", 5228 | "base64 0.13.1", 5229 | "data-encoding", 5230 | "der-parser", 5231 | "lazy_static", 5232 | "nom", 5233 | "oid-registry", 5234 | "rusticata-macros", 5235 | "thiserror", 5236 | "time", 5237 | ] 5238 | 5239 | [[package]] 5240 | name = "yasna" 5241 | version = "0.5.2" 5242 | source = "registry+https://github.com/rust-lang/crates.io-index" 5243 | checksum = "e17bb3549cc1321ae1296b9cdc2698e2b6cb1992adfa19a8c72e5b7a738f44cd" 5244 | dependencies = [ 5245 | "time", 5246 | ] 5247 | 5248 | [[package]] 5249 | name = "zerocopy" 5250 | version = "0.7.32" 5251 | source = "registry+https://github.com/rust-lang/crates.io-index" 5252 | checksum = "74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be" 5253 | dependencies = [ 5254 | "zerocopy-derive", 5255 | ] 5256 | 5257 | [[package]] 5258 | name = "zerocopy-derive" 5259 | version = "0.7.32" 5260 | source = "registry+https://github.com/rust-lang/crates.io-index" 5261 | checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6" 5262 | dependencies = [ 5263 | "proc-macro2", 5264 | "quote", 5265 | "syn 2.0.48", 5266 | ] 5267 | 5268 | [[package]] 5269 | name = "zeroize" 5270 | version = "1.3.0" 5271 | source = "registry+https://github.com/rust-lang/crates.io-index" 5272 | checksum = "4756f7db3f7b5574938c3eb1c117038b8e07f95ee6718c0efad4ac21508f1efd" 5273 | dependencies = [ 5274 | "zeroize_derive", 5275 | ] 5276 | 5277 | [[package]] 5278 | name = "zeroize_derive" 5279 | version = "1.4.2" 5280 | source = "registry+https://github.com/rust-lang/crates.io-index" 5281 | checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" 5282 | dependencies = [ 5283 | "proc-macro2", 5284 | "quote", 5285 | "syn 2.0.48", 5286 | ] 5287 | 5288 | [[package]] 5289 | name = "zstd" 5290 | version = "0.11.2+zstd.1.5.2" 5291 | source = "registry+https://github.com/rust-lang/crates.io-index" 5292 | checksum = "20cc960326ece64f010d2d2107537f26dc589a6573a316bd5b1dba685fa5fde4" 5293 | dependencies = [ 5294 | "zstd-safe", 5295 | ] 5296 | 5297 | [[package]] 5298 | name = "zstd-safe" 5299 | version = "5.0.2+zstd.1.5.2" 5300 | source = "registry+https://github.com/rust-lang/crates.io-index" 5301 | checksum = "1d2a5585e04f9eea4b2a3d1eca508c4dee9592a89ef6f450c11719da0726f4db" 5302 | dependencies = [ 5303 | "libc", 5304 | "zstd-sys", 5305 | ] 5306 | 5307 | [[package]] 5308 | name = "zstd-sys" 5309 | version = "2.0.9+zstd.1.5.5" 5310 | source = "registry+https://github.com/rust-lang/crates.io-index" 5311 | checksum = "9e16efa8a874a0481a574084d34cc26fdb3b99627480f785888deb6386506656" 5312 | dependencies = [ 5313 | "cc", 5314 | "pkg-config", 5315 | ] 5316 | -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "ore-cli" 3 | version = "0.4.0" 4 | description = "A command line interface for the Ore program." 5 | license = "Apache-2.0" 6 | edition = "2021" 7 | 8 | [[bin]] 9 | name = "ore" 10 | path = "src/main.rs" 11 | 12 | [features] 13 | default = ["admin"] 14 | admin = [] 15 | 16 | [dependencies] 17 | bincode = "1.3.3" 18 | bs58 = "0.5.1" 19 | cached = "0.46.1" 20 | chrono = "0.4.34" 21 | clap = { version = "4.4.12", features = ["derive"] } 22 | futures = "0.3.30" 23 | log = "0.4" 24 | ore = { version = "1.2.0", package = "ore-program" } 25 | rand = "0.8.4" 26 | solana-cli-config = "1.18.5" 27 | solana-client = "^1.16" 28 | solana-program = "^1.16" 29 | solana-sdk = "^1.16" 30 | solana-transaction-status = "^1.16" 31 | spl-token = { version = "^4", features = ["no-entrypoint"] } 32 | spl-associated-token-account = { version = "^2.2", features = [ "no-entrypoint" ] } 33 | tokio = "1.35.1" 34 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Ore CLI 2 | 3 | Ore CLI is a command-line tool for interacting with the Ore program on Solana. 4 | 5 | ## Setup 6 | 7 | **Prerequisites:** 8 | - Install Rust: [https://www.rust-lang.org/tools/install](https://www.rust-lang.org/tools/install). 9 | - Install gcc 10 | ```sh 11 | sudo apt-get update 12 | sudo apt-get install build-essential 13 | ``` 14 | 15 | **Build:** 16 | ```sh 17 | cargo build --release 18 | ``` 19 | 20 | **Configuration:** 21 | - Write private keys to `keys`, one per line. 22 | - Write RPC urls to `rpcs`, one per line. 23 | 24 | **Run:** 25 | ```sh 26 | ./supervision.sh 27 | ``` 28 | 29 | This will start Ore CLI using the specified configuration. 30 | --- 31 | ### Welcome to the Nyaverse! 💖✨ 32 | 33 | - 🐾 [Twitter: Follow @nyahunters](https://twitter.com/nyahunters) 34 | - 🐱 [Telegram: Join nyas_lodge](https://t.me/nyas_lodge) 35 | 36 | Let's create meowgical moments together! 🎉🐈‍⬛ 37 | 38 | -------------------------------------------------------------------------------- /keys: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Klinola/ore-cli/f35707199eaef46cd096e9e889a5fcce6ce7cf86/keys -------------------------------------------------------------------------------- /rpcs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Klinola/ore-cli/f35707199eaef46cd096e9e889a5fcce6ce7cf86/rpcs -------------------------------------------------------------------------------- /rust-toolchain.toml: -------------------------------------------------------------------------------- 1 | [toolchain] 2 | channel = "1.74.0" 3 | components = [ "rustfmt", "rust-analyzer" ] 4 | profile = "minimal" 5 | 6 | -------------------------------------------------------------------------------- /src/balance.rs: -------------------------------------------------------------------------------- 1 | use std::str::FromStr; 2 | 3 | use solana_client::nonblocking::rpc_client::RpcClient; 4 | use solana_program::pubkey::Pubkey; 5 | use solana_sdk::{commitment_config::CommitmentConfig, signature::Signer}; 6 | 7 | use crate::Miner; 8 | 9 | impl Miner { 10 | pub async fn balance(&self, address: Option) { 11 | let signer = self.signer(); 12 | let address = if let Some(address) = address { 13 | if let Ok(address) = Pubkey::from_str(&address) { 14 | address 15 | } else { 16 | println!("Invalid address: {:?}", address); 17 | return; 18 | } 19 | } else { 20 | signer.pubkey() 21 | }; 22 | let client = 23 | RpcClient::new_with_commitment(self.cluster.clone(), CommitmentConfig::confirmed()); 24 | let token_account_address = spl_associated_token_account::get_associated_token_address( 25 | &address, 26 | &ore::MINT_ADDRESS, 27 | ); 28 | match client.get_token_account(&token_account_address).await { 29 | Ok(token_account) => { 30 | if let Some(token_account) = token_account { 31 | println!("{:} ORE", token_account.token_amount.ui_amount_string); 32 | } else { 33 | println!("Account not found"); 34 | } 35 | } 36 | Err(err) => { 37 | println!("{:?}", err); 38 | } 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /src/busses.rs: -------------------------------------------------------------------------------- 1 | use ore::{state::Bus, utils::AccountDeserialize, BUS_ADDRESSES}; 2 | use solana_client::nonblocking::rpc_client::RpcClient; 3 | use solana_sdk::commitment_config::CommitmentConfig; 4 | 5 | use crate::Miner; 6 | 7 | impl Miner { 8 | pub async fn busses(&self) { 9 | let client = 10 | RpcClient::new_with_commitment(self.cluster.clone(), CommitmentConfig::confirmed()); 11 | for address in BUS_ADDRESSES.iter() { 12 | let data = client.get_account_data(address).await.unwrap(); 13 | match Bus::try_from_bytes(&data) { 14 | Ok(bus) => { 15 | println!("Bus {}: {:} ORE", bus.id, bus.rewards); 16 | } 17 | Err(_) => {} 18 | } 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/claim.rs: -------------------------------------------------------------------------------- 1 | use std::str::FromStr; 2 | 3 | use ore::{self, state::Proof, utils::AccountDeserialize}; 4 | use solana_client::nonblocking::rpc_client::RpcClient; 5 | use solana_program::pubkey::Pubkey; 6 | use solana_sdk::{commitment_config::CommitmentConfig, signature::Signer}; 7 | 8 | use crate::{utils::proof_pubkey, Miner}; 9 | 10 | impl Miner { 11 | pub async fn claim(&self, cluster: String, beneficiary: Option, amount: Option) { 12 | let signer = self.signer(); 13 | let pubkey = signer.pubkey(); 14 | let client = RpcClient::new_with_commitment(cluster, CommitmentConfig::confirmed()); 15 | let beneficiary = match beneficiary { 16 | Some(beneficiary) => { 17 | Pubkey::from_str(&beneficiary).expect("Failed to parse beneficiary address") 18 | } 19 | None => self.initialize_ata().await, 20 | }; 21 | let amount = if let Some(amount) = amount { 22 | (amount * 10f64.powf(ore::TOKEN_DECIMALS as f64)) as u64 23 | } else { 24 | match client.get_account(&proof_pubkey(pubkey)).await { 25 | Ok(proof_account) => { 26 | let proof = Proof::try_from_bytes(&proof_account.data).unwrap(); 27 | proof.claimable_rewards 28 | } 29 | Err(err) => { 30 | println!("Error looking up claimable rewards: {:?}", err); 31 | return; 32 | } 33 | } 34 | }; 35 | let amountf = (amount as f64) / (10f64.powf(ore::TOKEN_DECIMALS as f64)); 36 | let ix = ore::instruction::claim(pubkey, beneficiary, amount); 37 | match self.send_and_confirm(&[ix]).await { 38 | Ok(sig) => { 39 | println!("Claimed {:} ORE to account {:}", amountf, beneficiary); 40 | println!("{:?}", sig); 41 | } 42 | Err(err) => { 43 | println!("Error: {:?}", err); 44 | } 45 | } 46 | } 47 | 48 | async fn initialize_ata(&self) -> Pubkey { 49 | // Initialize client. 50 | let signer = self.signer(); 51 | let client = 52 | RpcClient::new_with_commitment(self.cluster.clone(), CommitmentConfig::confirmed()); 53 | 54 | // Build instructions. 55 | let token_account_pubkey = spl_associated_token_account::get_associated_token_address( 56 | &signer.pubkey(), 57 | &ore::MINT_ADDRESS, 58 | ); 59 | 60 | // Check if ata already exists 61 | if let Ok(Some(_ata)) = client.get_token_account(&token_account_pubkey).await { 62 | return token_account_pubkey; 63 | } 64 | 65 | // Sign and send transaction. 66 | let ix = spl_associated_token_account::instruction::create_associated_token_account( 67 | &signer.pubkey(), 68 | &signer.pubkey(), 69 | &ore::MINT_ADDRESS, 70 | &spl_token::id(), 71 | ); 72 | match self.send_and_confirm(&[ix]).await { 73 | Ok(_sig) => println!("Created token account {:?}", token_account_pubkey), 74 | Err(e) => println!("Transaction failed: {:?}", e), 75 | } 76 | 77 | // Return token account address 78 | token_account_pubkey 79 | } 80 | } 81 | -------------------------------------------------------------------------------- /src/initialize.rs: -------------------------------------------------------------------------------- 1 | use ore::TREASURY_ADDRESS; 2 | use solana_client::nonblocking::rpc_client::RpcClient; 3 | use solana_sdk::{commitment_config::CommitmentConfig, signature::Signer}; 4 | 5 | use crate::Miner; 6 | 7 | impl Miner { 8 | pub async fn initialize(&self) { 9 | // Return early if program is initialized 10 | let signer = self.signer(); 11 | let client = 12 | RpcClient::new_with_commitment(self.cluster.clone(), CommitmentConfig::confirmed()); 13 | if client.get_account(&TREASURY_ADDRESS).await.is_ok() { 14 | return; 15 | } 16 | 17 | // Sign and send transaction. 18 | let ix = ore::instruction::initialize(signer.pubkey()); 19 | self.send_and_confirm(&[ix]) 20 | .await 21 | .expect("Transaction failed"); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/main.rs: -------------------------------------------------------------------------------- 1 | mod balance; 2 | mod busses; 3 | mod claim; 4 | #[cfg(feature = "admin")] 5 | mod initialize; 6 | mod mine; 7 | mod register; 8 | mod rewards; 9 | mod send_and_confirm; 10 | mod treasury; 11 | #[cfg(feature = "admin")] 12 | mod update_admin; 13 | #[cfg(feature = "admin")] 14 | mod update_difficulty; 15 | mod utils; 16 | 17 | use std::sync::Arc; 18 | 19 | use clap::{command, Parser, Subcommand}; 20 | use solana_sdk::signature::Keypair; 21 | struct Miner { 22 | pub keypair_private_key: Option, 23 | pub priority_fee: u64, 24 | pub cluster: String, 25 | } 26 | 27 | #[derive(Parser, Debug)] 28 | #[command(about, version)] 29 | struct Args { 30 | #[arg( 31 | long, 32 | value_name = "NETWORK_URL", 33 | help = "Network address of your RPC provider", 34 | default_value = "https://api.mainnet-beta.solana.com" 35 | )] 36 | rpc: String, 37 | 38 | #[arg( 39 | long, 40 | value_name = "keypair_private_key", 41 | help = "Filepath to keypair to use" 42 | )] 43 | keypair: Option, 44 | 45 | #[arg( 46 | long, 47 | value_name = "MICROLAMPORTS", 48 | help = "Number of microlamports to pay as priority fee per transaction", 49 | default_value = "0" 50 | )] 51 | priority_fee: u64, 52 | 53 | #[command(subcommand)] 54 | command: Commands, 55 | } 56 | 57 | #[derive(Subcommand, Debug)] 58 | enum Commands { 59 | #[command(about = "Fetch the Ore balance of an account")] 60 | Balance(BalanceArgs), 61 | 62 | #[command(about = "Fetch the distributable rewards of the busses")] 63 | Busses(BussesArgs), 64 | 65 | #[command(about = "Mine Ore using local compute")] 66 | Mine(MineArgs), 67 | 68 | #[command(about = "Claim available mining rewards")] 69 | Claim(ClaimArgs), 70 | 71 | #[command(about = "Fetch your balance of unclaimed mining rewards")] 72 | Rewards(RewardsArgs), 73 | 74 | #[command(about = "Fetch the treasury account and balance")] 75 | Treasury(TreasuryArgs), 76 | 77 | #[cfg(feature = "admin")] 78 | #[command(about = "Initialize the program")] 79 | Initialize(InitializeArgs), 80 | 81 | #[cfg(feature = "admin")] 82 | #[command(about = "Update the program admin authority")] 83 | UpdateAdmin(UpdateAdminArgs), 84 | 85 | #[cfg(feature = "admin")] 86 | #[command(about = "Update the mining difficulty")] 87 | UpdateDifficulty(UpdateDifficultyArgs), 88 | } 89 | 90 | #[derive(Parser, Debug)] 91 | struct BalanceArgs { 92 | #[arg( 93 | // long, 94 | value_name = "ADDRESS", 95 | help = "The address of the account to fetch the balance of" 96 | )] 97 | pub address: Option, 98 | } 99 | 100 | #[derive(Parser, Debug)] 101 | struct BussesArgs {} 102 | 103 | #[derive(Parser, Debug)] 104 | struct RewardsArgs { 105 | #[arg( 106 | // long, 107 | value_name = "ADDRESS", 108 | help = "The address of the account to fetch the rewards balance of" 109 | )] 110 | pub address: Option, 111 | } 112 | 113 | #[derive(Parser, Debug)] 114 | struct MineArgs { 115 | #[arg( 116 | long, 117 | short, 118 | value_name = "THREAD_COUNT", 119 | help = "The number of threads to dedicate to mining", 120 | default_value = "1" 121 | )] 122 | threads: u64, 123 | } 124 | 125 | #[derive(Parser, Debug)] 126 | struct TreasuryArgs {} 127 | 128 | #[derive(Parser, Debug)] 129 | struct ClaimArgs { 130 | #[arg( 131 | // long, 132 | value_name = "AMOUNT", 133 | help = "The amount of rewards to claim. Defaults to max." 134 | )] 135 | amount: Option, 136 | 137 | #[arg( 138 | // long, 139 | value_name = "TOKEN_ACCOUNT_ADDRESS", 140 | help = "Token account to receive mining rewards." 141 | )] 142 | beneficiary: Option, 143 | } 144 | 145 | #[cfg(feature = "admin")] 146 | #[derive(Parser, Debug)] 147 | struct InitializeArgs {} 148 | 149 | #[cfg(feature = "admin")] 150 | #[derive(Parser, Debug)] 151 | struct UpdateAdminArgs { 152 | new_admin: String, 153 | } 154 | 155 | #[cfg(feature = "admin")] 156 | #[derive(Parser, Debug)] 157 | struct UpdateDifficultyArgs {} 158 | 159 | #[tokio::main] 160 | async fn main() { 161 | // Initialize miner. 162 | let args = Args::parse(); 163 | let cluster = args.rpc; 164 | let miner = Arc::new(Miner::new(cluster.clone(), args.priority_fee, args.keypair)); 165 | 166 | // Execute user command. 167 | match args.command { 168 | Commands::Balance(args) => { 169 | miner.balance(args.address).await; 170 | } 171 | Commands::Busses(_) => { 172 | miner.busses().await; 173 | } 174 | Commands::Rewards(args) => { 175 | miner.rewards(args.address).await; 176 | } 177 | Commands::Treasury(_) => { 178 | miner.treasury().await; 179 | } 180 | Commands::Mine(args) => { 181 | miner.mine(args.threads).await; 182 | } 183 | Commands::Claim(args) => { 184 | miner.claim(cluster, args.beneficiary, args.amount).await; 185 | } 186 | #[cfg(feature = "admin")] 187 | Commands::Initialize(_) => { 188 | miner.initialize().await; 189 | } 190 | #[cfg(feature = "admin")] 191 | Commands::UpdateAdmin(args) => { 192 | miner.update_admin(args.new_admin).await; 193 | } 194 | #[cfg(feature = "admin")] 195 | Commands::UpdateDifficulty(_) => { 196 | miner.update_difficulty().await; 197 | } 198 | } 199 | } 200 | 201 | impl Miner { 202 | pub fn new(cluster: String, priority_fee: u64, keypair_private_key: Option) -> Self { 203 | Self { 204 | keypair_private_key, 205 | priority_fee, 206 | cluster, 207 | } 208 | } 209 | 210 | pub fn signer(&self) -> Keypair { 211 | match self.keypair_private_key.clone() { 212 | Some(key) => Keypair::from_base58_string(&key), 213 | None => panic!("No keypair provided"), 214 | } 215 | } 216 | } 217 | -------------------------------------------------------------------------------- /src/mine.rs: -------------------------------------------------------------------------------- 1 | use std::{ 2 | io::{stdout, Write}, 3 | sync::{atomic::AtomicBool, Arc, Mutex}, 4 | time::Duration, 5 | }; 6 | 7 | use ore::{self, BUS_ADDRESSES, BUS_COUNT, EPOCH_DURATION}; 8 | use solana_client::client_error::ClientErrorKind; 9 | use solana_sdk::{ 10 | keccak::{hashv, Hash as KeccakHash}, 11 | signature::Signer, 12 | }; 13 | use tokio::time::sleep; 14 | use rand::seq::SliceRandom; 15 | use crate::{ 16 | utils::{get_clock_account, get_proof, get_treasury}, 17 | Miner, 18 | }; 19 | 20 | impl Miner { 21 | pub async fn mine(&self, threads: u64) { 22 | // Register, if needed. 23 | let signer = self.signer(); 24 | self.register().await; 25 | 26 | let mut stdout = stdout(); 27 | 28 | 29 | 30 | // Start mining loop 31 | loop { 32 | // Find a valid hash. 33 | let treasury = get_treasury(self.cluster.clone()).await; 34 | let proof = get_proof(self.cluster.clone(), signer.pubkey()).await; 35 | 36 | // Escape sequence that clears the screen and the scrollback buffer 37 | stdout.write_all(b"\x1b[2J\x1b[3J\x1b[H").ok(); 38 | stdout 39 | .write_all(format!("Searching for valid hash...\n").as_bytes()) 40 | .ok(); 41 | let (next_hash, nonce) = 42 | self.find_next_hash_par(proof.hash.into(), treasury.difficulty.into(), threads); 43 | stdout 44 | .write_all(format!("\nSubmitting hash for validation... \n").as_bytes()) 45 | .ok(); 46 | stdout.flush().ok(); 47 | 48 | // Use busses randomly so on each epoch, transactions don't pile on the same busses 49 | let mut bus_ids: Vec = (0..BUS_COUNT).collect(); 50 | bus_ids.shuffle(&mut rand::thread_rng()); 51 | 52 | let mut bus_ix = 0; 53 | let mut bus_id = bus_ids[bus_ix] as u8; 54 | 55 | let mut invalid_busses: Vec = vec![]; 56 | let mut needs_reset = false; 57 | 'submit: loop { 58 | // Find a valid bus. 59 | if invalid_busses.len().eq(&(BUS_COUNT as usize)) { 60 | // All busses are drained. Wait until next epoch. 61 | std::thread::sleep(std::time::Duration::from_millis(1000)); 62 | // All busses are empty, let;s start anew next time with fresh invalid_busses and bus_id 63 | break 'submit; 64 | } 65 | if invalid_busses.contains(&bus_id) { 66 | println!("Bus {} is empty... ", bus_id); 67 | bus_ix += 1; 68 | if bus_ix == BUS_COUNT { 69 | std::thread::sleep(Duration::from_secs(1)); 70 | bus_ix = 0; 71 | } 72 | bus_id = bus_ids[bus_ix] as u8; 73 | } 74 | 75 | // Reset if epoch has ended 76 | let treasury = get_treasury(self.cluster.clone()).await; 77 | let clock = get_clock_account(self.cluster.clone()).await; 78 | let threshold = treasury.last_reset_at.saturating_add(EPOCH_DURATION); 79 | let mut attempts = 0; 80 | const MAX_ATTEMPTS: u8 = 10; // Maximum number of attempts before giving up 81 | if clock.unix_timestamp.ge(&threshold) || needs_reset { 82 | let reset_ix = ore::instruction::reset(signer.pubkey()); 83 | loop { 84 | let cloned_ix = reset_ix.clone(); 85 | match self.send_and_confirm(&[cloned_ix]).await { 86 | Ok(_) => { 87 | println!("Transaction confirmed"); 88 | break; 89 | } 90 | Err(e) => { 91 | attempts += 1; 92 | println!("Attempt {} failed: {:?}", attempts, e); 93 | if attempts >= MAX_ATTEMPTS { 94 | panic!("Transaction failed after {} attempts: {:?}", MAX_ATTEMPTS, e); 95 | } 96 | // Exponential backoff or fixed delay could be considered here 97 | sleep(Duration::from_secs(5)).await; 98 | } 99 | } 100 | } 101 | needs_reset = false; 102 | } 103 | 104 | // Submit request. 105 | let ix_mine = ore::instruction::mine( 106 | signer.pubkey(), 107 | BUS_ADDRESSES[bus_id as usize], 108 | next_hash.into(), 109 | nonce, 110 | ); 111 | match self.send_and_confirm(&[ix_mine]).await { 112 | Ok(sig) => { 113 | stdout.write(format!("Success: {}", sig).as_bytes()).ok(); 114 | break; 115 | } 116 | Err(err) => match err.kind { 117 | ClientErrorKind::Custom(msg) => { 118 | if msg.contains("Bus insufficient") { 119 | invalid_busses.push(bus_id); 120 | } else if msg.contains("Needs reset") { 121 | needs_reset = true; 122 | } else if msg.contains("Hash invalid") { 123 | break 'submit; 124 | } else { 125 | stdout 126 | .write_all(format!("\n{:?} \n", msg.to_string()).as_bytes()) 127 | .ok(); 128 | } 129 | } 130 | _ => { 131 | stdout 132 | .write_all(format!("\nUnhandled error {:?} \n", err).as_bytes()) 133 | .ok(); 134 | } 135 | }, 136 | } 137 | } 138 | } 139 | } 140 | 141 | fn _find_next_hash(&self, hash: KeccakHash, difficulty: KeccakHash) -> (KeccakHash, u64) { 142 | let signer = self.signer(); 143 | let mut next_hash: KeccakHash; 144 | let mut nonce = 0u64; 145 | loop { 146 | next_hash = hashv(&[ 147 | hash.to_bytes().as_slice(), 148 | signer.pubkey().to_bytes().as_slice(), 149 | nonce.to_le_bytes().as_slice(), 150 | ]); 151 | if next_hash.le(&difficulty) { 152 | break; 153 | } else { 154 | println!("Invalid hash: {} Nonce: {:?}", next_hash.to_string(), nonce); 155 | } 156 | nonce += 1; 157 | } 158 | (next_hash, nonce) 159 | } 160 | 161 | fn find_next_hash_par( 162 | &self, 163 | hash: KeccakHash, 164 | difficulty: KeccakHash, 165 | threads: u64, 166 | ) -> (KeccakHash, u64) { 167 | let found_solution = Arc::new(AtomicBool::new(false)); 168 | let solution = Arc::new(Mutex::<(KeccakHash, u64)>::new(( 169 | KeccakHash::new_from_array([0; 32]), 170 | 0, 171 | ))); 172 | let signer = self.signer(); 173 | let pubkey = signer.pubkey(); 174 | let thread_handles: Vec<_> = (0..threads) 175 | .map(|i| { 176 | std::thread::spawn({ 177 | let found_solution = found_solution.clone(); 178 | let solution = solution.clone(); 179 | let mut stdout = stdout(); 180 | move || { 181 | let n = u64::MAX.saturating_div(threads).saturating_mul(i); 182 | let mut next_hash: KeccakHash; 183 | let mut nonce: u64 = n; 184 | loop { 185 | next_hash = hashv(&[ 186 | hash.to_bytes().as_slice(), 187 | pubkey.to_bytes().as_slice(), 188 | nonce.to_le_bytes().as_slice(), 189 | ]); 190 | if nonce % 10_000 == 0 { 191 | if found_solution.load(std::sync::atomic::Ordering::Relaxed) { 192 | return; 193 | } 194 | if n == 0 { 195 | stdout 196 | .write_all( 197 | format!("\r{}", next_hash.to_string()).as_bytes(), 198 | ) 199 | .ok(); 200 | } 201 | } 202 | if next_hash.le(&difficulty) { 203 | stdout 204 | .write_all(format!("\r{}", next_hash.to_string()).as_bytes()) 205 | .ok(); 206 | found_solution.store(true, std::sync::atomic::Ordering::Relaxed); 207 | let mut w_solution = solution.lock().expect("failed to lock mutex"); 208 | *w_solution = (next_hash, nonce); 209 | return; 210 | } 211 | nonce += 1; 212 | } 213 | } 214 | }) 215 | }) 216 | .collect(); 217 | 218 | for thread_handle in thread_handles { 219 | thread_handle.join().unwrap(); 220 | } 221 | 222 | let r_solution = solution.lock().expect("Failed to get lock"); 223 | *r_solution 224 | } 225 | } 226 | -------------------------------------------------------------------------------- /src/register.rs: -------------------------------------------------------------------------------- 1 | use solana_client::nonblocking::rpc_client::RpcClient; 2 | use solana_sdk::{commitment_config::CommitmentConfig, signature::Signer}; 3 | use tokio::time::{sleep, Duration}; 4 | 5 | use crate::{utils::proof_pubkey, Miner}; 6 | 7 | impl Miner { 8 | pub async fn register(&self) { 9 | // Return early if miner is already registered 10 | let signer = self.signer(); 11 | let proof_address = proof_pubkey(signer.pubkey()); 12 | let client = 13 | RpcClient::new_with_commitment(self.cluster.clone(), CommitmentConfig::confirmed()); 14 | if client.get_account(&proof_address).await.is_ok() { 15 | return; 16 | } 17 | 18 | // Sign and send transaction with retry mechanism. 19 | println!("Generating challenge..."); 20 | let ix = ore::instruction::register(signer.pubkey()); 21 | let mut attempts = 0; 22 | const MAX_ATTEMPTS: u8 = 10; // Maximum number of attempts before giving up 23 | 24 | loop { 25 | let cloned_ix = ix.clone(); 26 | match self.send_and_confirm(&[cloned_ix]).await { 27 | Ok(_) => { 28 | println!("Transaction confirmed"); 29 | break; 30 | } 31 | Err(e) => { 32 | attempts += 1; 33 | println!("Attempt {} failed: {:?}", attempts, e); 34 | if attempts >= MAX_ATTEMPTS { 35 | panic!("Transaction failed after {} attempts: {:?}", MAX_ATTEMPTS, e); 36 | } 37 | // Exponential backoff or fixed delay could be considered here 38 | sleep(Duration::from_secs(5)).await; 39 | } 40 | } 41 | } 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /src/rewards.rs: -------------------------------------------------------------------------------- 1 | use std::str::FromStr; 2 | 3 | use solana_program::pubkey::Pubkey; 4 | use solana_sdk::signature::Signer; 5 | 6 | use crate::{utils::get_proof, Miner}; 7 | 8 | impl Miner { 9 | pub async fn rewards(&self, address: Option) { 10 | let address = if let Some(address) = address { 11 | if let Ok(address) = Pubkey::from_str(&address) { 12 | address 13 | } else { 14 | println!("Invalid address: {:?}", address); 15 | return; 16 | } 17 | } else { 18 | self.signer().pubkey() 19 | }; 20 | let proof = get_proof(self.cluster.clone(), address).await; 21 | let amount = (proof.claimable_rewards as f64) / 10f64.powf(ore::TOKEN_DECIMALS as f64); 22 | println!("{:} ORE", amount); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/send_and_confirm.rs: -------------------------------------------------------------------------------- 1 | use std::{ 2 | io::{stdout, Write}, 3 | time::Duration, 4 | }; 5 | 6 | use solana_client::{ 7 | client_error::{ClientError, ClientErrorKind, Result as ClientResult}, 8 | nonblocking::rpc_client::RpcClient, 9 | rpc_config::{RpcSendTransactionConfig, RpcSimulateTransactionConfig}, 10 | }; 11 | use solana_program::instruction::{Instruction, InstructionError}; 12 | use solana_sdk::{ 13 | commitment_config::{CommitmentConfig, CommitmentLevel}, 14 | compute_budget::ComputeBudgetInstruction, 15 | signature::{Signature, Signer}, 16 | transaction::{Transaction, TransactionError}, 17 | }; 18 | use solana_transaction_status::UiTransactionEncoding; 19 | use tokio::time::sleep; 20 | 21 | use crate::Miner; 22 | 23 | const RPC_RETRIES: usize = 1; 24 | const GATEWAY_RETRIES: usize = 10; 25 | const CONFIRM_RETRIES: usize = 10; 26 | 27 | impl Miner { 28 | pub async fn send_and_confirm(&self, ixs: &[Instruction]) -> ClientResult { 29 | let mut stdout = stdout(); 30 | let signer = self.signer(); 31 | let client = 32 | RpcClient::new_with_commitment(self.cluster.clone(), CommitmentConfig::confirmed()); 33 | 34 | // Build tx 35 | let mut attempts = 0; 36 | const MAX_ATTEMPTS: u8 = 3; // Maximum number of attempts before giving up 37 | let retry_delay = Duration::from_secs(5); // Delay between retries 38 | 39 | let (mut hash, mut slot) = loop { 40 | match client.get_latest_blockhash_with_commitment(CommitmentConfig::confirmed()).await { 41 | Ok(result) => break result, 42 | Err(e) => { 43 | attempts += 1; 44 | if attempts >= MAX_ATTEMPTS { 45 | panic!("Failed to get latest blockhash after {} attempts: {:?}", MAX_ATTEMPTS, e); 46 | } 47 | eprintln!("Attempt {} failed, retrying in {:?}: {:?}", attempts, retry_delay, e); 48 | sleep(retry_delay).await; 49 | } 50 | } 51 | }; 52 | 53 | let mut send_cfg = RpcSendTransactionConfig { 54 | skip_preflight: true, 55 | preflight_commitment: Some(CommitmentLevel::Confirmed), 56 | encoding: Some(UiTransactionEncoding::Base64), 57 | max_retries: Some(RPC_RETRIES), 58 | min_context_slot: Some(slot), 59 | }; 60 | 61 | let mut tx = Transaction::new_with_payer(ixs, Some(&signer.pubkey())); 62 | tx.sign(&[&signer], hash); 63 | 64 | // Sim and prepend cu ixs 65 | let sim_res = client 66 | .simulate_transaction_with_config( 67 | &tx, 68 | RpcSimulateTransactionConfig { 69 | sig_verify: false, 70 | replace_recent_blockhash: false, 71 | commitment: Some(CommitmentConfig::confirmed()), 72 | encoding: Some(UiTransactionEncoding::Base64), 73 | accounts: None, 74 | min_context_slot: Some(slot), 75 | inner_instructions: false, 76 | }, 77 | ) 78 | .await; 79 | if let Ok(sim_res) = sim_res { 80 | match sim_res.value.err { 81 | Some(err) => match err { 82 | TransactionError::InstructionError(_, InstructionError::Custom(e)) => { 83 | if e == 1 { 84 | log::info!("Needs reset!"); 85 | return Err(ClientError { 86 | request: None, 87 | kind: ClientErrorKind::Custom("Needs reset".into()), 88 | }); 89 | } else if e == 3 { 90 | log::info!("Hash invalid!"); 91 | return Err(ClientError { 92 | request: None, 93 | kind: ClientErrorKind::Custom("Hash invalid".into()), 94 | }); 95 | } else if e == 5 { 96 | return Err(ClientError { 97 | request: None, 98 | kind: ClientErrorKind::Custom("Bus insufficient".into()), 99 | }); 100 | } else { 101 | return Err(ClientError { 102 | request: None, 103 | kind: ClientErrorKind::Custom("Sim failed".into()), 104 | }); 105 | } 106 | } 107 | _ => { 108 | return Err(ClientError { 109 | request: None, 110 | kind: ClientErrorKind::Custom("Sim failed".into()), 111 | }) 112 | } 113 | }, 114 | None => { 115 | let cu_budget_ix = ComputeBudgetInstruction::set_compute_unit_limit( 116 | sim_res.value.units_consumed.unwrap() as u32 + 1000, 117 | ); 118 | let cu_price_ix = 119 | ComputeBudgetInstruction::set_compute_unit_price(self.priority_fee); 120 | let mut final_ixs = vec![]; 121 | final_ixs.extend_from_slice(&[cu_budget_ix, cu_price_ix]); 122 | final_ixs.extend_from_slice(ixs); 123 | tx = Transaction::new_with_payer(&final_ixs, Some(&signer.pubkey())); 124 | tx.sign(&[&signer], hash); 125 | } 126 | } 127 | } else { 128 | return Err(ClientError { 129 | request: None, 130 | kind: ClientErrorKind::Custom("Failed simulation".into()), 131 | }); 132 | }; 133 | 134 | // Loop 135 | let mut attempts = 0; 136 | loop { 137 | println!("Attempt: {:?}", attempts); 138 | match client.send_transaction_with_config(&tx, send_cfg).await { 139 | Ok(sig) => { 140 | log::info!("{:?}", sig); 141 | let mut confirm_check = 0; 142 | 'confirm: loop { 143 | match client 144 | .confirm_transaction_with_commitment( 145 | &sig, 146 | CommitmentConfig::confirmed(), 147 | ) 148 | .await 149 | { 150 | Ok(confirmed) => { 151 | log::info!( 152 | "Confirm check {:?}: {:?}", 153 | confirm_check, 154 | confirmed.value 155 | ); 156 | if confirmed.value { 157 | return Ok(sig); 158 | } 159 | } 160 | Err(err) => { 161 | log::error!("Err: {:?}", err); 162 | } 163 | } 164 | 165 | // Retry confirm 166 | std::thread::sleep(Duration::from_millis(500)); 167 | confirm_check += 1; 168 | if confirm_check.gt(&CONFIRM_RETRIES) { 169 | break 'confirm; 170 | } 171 | } 172 | } 173 | Err(err) => { 174 | println!("Error {:?}", err); 175 | } 176 | } 177 | stdout.flush().ok(); 178 | 179 | // Retry with new hash 180 | std::thread::sleep(Duration::from_millis(1000)); 181 | (hash, slot) = client 182 | .get_latest_blockhash_with_commitment(CommitmentConfig::confirmed()) 183 | .await 184 | .unwrap(); 185 | send_cfg = RpcSendTransactionConfig { 186 | skip_preflight: true, 187 | preflight_commitment: Some(CommitmentLevel::Confirmed), 188 | encoding: Some(UiTransactionEncoding::Base64), 189 | max_retries: Some(RPC_RETRIES), 190 | min_context_slot: Some(slot), 191 | }; 192 | tx.sign(&[&signer], hash); 193 | attempts += 1; 194 | if attempts > GATEWAY_RETRIES { 195 | return Err(ClientError { 196 | request: None, 197 | kind: ClientErrorKind::Custom("Max retries".into()), 198 | }); 199 | } 200 | } 201 | } 202 | } 203 | -------------------------------------------------------------------------------- /src/treasury.rs: -------------------------------------------------------------------------------- 1 | use solana_client::nonblocking::rpc_client::RpcClient; 2 | use solana_sdk::commitment_config::CommitmentConfig; 3 | 4 | use crate::{ 5 | utils::{get_treasury, treasury_tokens_pubkey}, 6 | Miner, 7 | }; 8 | 9 | impl Miner { 10 | pub async fn treasury(&self) { 11 | let client = 12 | RpcClient::new_with_commitment(self.cluster.clone(), CommitmentConfig::confirmed()); 13 | if let Ok(Some(treasury_tokens)) = client.get_token_account(&treasury_tokens_pubkey()).await 14 | { 15 | let treasury = get_treasury(self.cluster.clone()).await; 16 | let balance = treasury_tokens.token_amount.ui_amount_string; 17 | println!("{:} ORE", balance); 18 | println!("Admin: {}", treasury.admin); 19 | println!("Difficulty: {}", treasury.difficulty.to_string()); 20 | println!("Last reset at: {}", treasury.last_reset_at); 21 | println!( 22 | "Reward rate: {} ORE", 23 | (treasury.reward_rate as f64) / 10f64.powf(ore::TOKEN_DECIMALS as f64) 24 | ); 25 | println!( 26 | "Total claimed rewards: {} ORE", 27 | (treasury.total_claimed_rewards as f64) / 10f64.powf(ore::TOKEN_DECIMALS as f64) 28 | ); 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /src/update_admin.rs: -------------------------------------------------------------------------------- 1 | use std::str::FromStr; 2 | 3 | use solana_program::pubkey::Pubkey; 4 | use solana_sdk::signature::Signer; 5 | 6 | use crate::Miner; 7 | 8 | impl Miner { 9 | pub async fn update_admin(&self, new_admin: String) { 10 | let signer = self.signer(); 11 | let new_admin = Pubkey::from_str(new_admin.as_str()).unwrap(); 12 | let ix = ore::instruction::update_admin(signer.pubkey(), new_admin); 13 | self.send_and_confirm(&[ix]) 14 | .await 15 | .expect("Transaction failed"); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/update_difficulty.rs: -------------------------------------------------------------------------------- 1 | use solana_program::keccak::Hash as KeccakHash; 2 | use solana_sdk::signature::Signer; 3 | 4 | use crate::Miner; 5 | 6 | impl Miner { 7 | pub async fn update_difficulty(&self) { 8 | let signer = self.signer(); 9 | // let new_difficulty = KeccakHash::new_from_array([ 10 | // 0, 0, 0, 64, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 11 | // 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 12 | // ]); 13 | let new_difficulty = KeccakHash::new_from_array([ 14 | 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 15 | 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 16 | ]); 17 | let ix = ore::instruction::update_difficulty(signer.pubkey(), new_difficulty.into()); 18 | // let bs58data = bs58::encode(ix.data).into_string(); 19 | // println!("Data: {:?}", bs58data); 20 | self.send_and_confirm(&[ix]) 21 | .await 22 | .expect("Transaction failed"); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/utils.rs: -------------------------------------------------------------------------------- 1 | use std::time::Duration; 2 | 3 | use cached::proc_macro::cached; 4 | use ore::{ 5 | self, 6 | state::{Proof, Treasury}, 7 | utils::AccountDeserialize, 8 | MINT_ADDRESS, PROOF, TREASURY_ADDRESS, 9 | }; 10 | use solana_client::nonblocking::rpc_client::RpcClient; 11 | use solana_program::{pubkey::Pubkey, sysvar}; 12 | use solana_sdk::{clock::Clock, commitment_config::CommitmentConfig}; 13 | use spl_associated_token_account::get_associated_token_address; 14 | use tokio::time::sleep; 15 | 16 | pub async fn get_treasury(cluster: String) -> Treasury { 17 | let client = RpcClient::new_with_commitment(cluster, CommitmentConfig::confirmed()); 18 | let mut attempts = 0; 19 | const MAX_ATTEMPTS: u8 = 10; 20 | 21 | while attempts < MAX_ATTEMPTS { 22 | let data_result = client.get_account_data(&TREASURY_ADDRESS).await; 23 | match data_result { 24 | Ok(data) => match Treasury::try_from_bytes(&data) { 25 | Ok(treasury) => return *treasury, 26 | Err(_) => { 27 | eprintln!("Failed to parse treasury account data."); 28 | attempts += 1; 29 | } 30 | }, 31 | Err(e) => { 32 | eprintln!("Attempt {} failed: {:?}", attempts + 1, e); 33 | attempts += 1; 34 | } 35 | } 36 | 37 | if attempts < MAX_ATTEMPTS { 38 | sleep(Duration::from_secs(5)).await; // Wait before retrying 39 | } else { 40 | panic!("Failed to retrieve and parse treasury data after {} attempts.", MAX_ATTEMPTS); 41 | } 42 | } 43 | 44 | panic!("This point should not be reachable; indicates a logical error in the retry loop."); 45 | } 46 | 47 | pub async fn get_proof(cluster: String, authority: Pubkey) -> Proof { 48 | let client = RpcClient::new_with_commitment(cluster, CommitmentConfig::confirmed()); 49 | let proof_address = proof_pubkey(authority); 50 | let data = client 51 | .get_account_data(&proof_address) 52 | .await 53 | .expect("Failed to get miner account"); 54 | *Proof::try_from_bytes(&data).expect("Failed to parse miner account") 55 | } 56 | 57 | pub async fn get_clock_account(cluster: String) -> Clock { 58 | let client = RpcClient::new_with_commitment(cluster, CommitmentConfig::confirmed()); 59 | let data = client 60 | .get_account_data(&sysvar::clock::ID) 61 | .await 62 | .expect("Failed to get miner account"); 63 | bincode::deserialize::(&data).expect("Failed to deserialize clock") 64 | } 65 | 66 | #[cached] 67 | pub fn proof_pubkey(authority: Pubkey) -> Pubkey { 68 | Pubkey::find_program_address(&[PROOF, authority.as_ref()], &ore::ID).0 69 | } 70 | 71 | #[cached] 72 | pub fn treasury_tokens_pubkey() -> Pubkey { 73 | get_associated_token_address(&TREASURY_ADDRESS, &MINT_ADDRESS) 74 | } 75 | -------------------------------------------------------------------------------- /supervision.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Set default values 4 | # Multiple RPC supported 5 | 6 | RPCS_FILE="./rpcs" 7 | KEYS_FILE="./keys" 8 | DEFAULT_FEE=100000 9 | DEFAULT_THREADS=20 10 | mapfile -t RPC_URLS < "$RPCS_FILE" 11 | # Assign arguments with defaults 12 | FEE=${2:-$DEFAULT_FEE} 13 | THREADS=${3:-$DEFAULT_THREADS} 14 | 15 | while IFS= read -r KEY; do 16 | # Loop indefinitely for each key 17 | ( 18 | while true; do 19 | echo "Starting the process for key: ${KEY:0:8}..." 20 | RPC_URL=${RPC_URLS[$RANDOM % ${#RPC_URLS[@]}]} 21 | echo "Using RPC URL: ${RPC_URL}" 22 | SLEEP_TIME=$((RANDOM % 11)) 23 | echo "Sleeping for ${SLEEP_TIME} seconds before starting...❤️" 24 | sleep $SLEEP_TIME 25 | # Execute the command in background 26 | "./target/release/ore" --rpc ${RPC_URL} --keypair "${KEY}" --priority-fee ${FEE} mine --threads ${THREADS} & 27 | 28 | PID=$! 29 | wait $PID 30 | [ $? -eq 0 ] && break 31 | 32 | echo "Process for key: ${KEY:0:8} exited with an error. Restarting in 5 seconds..." 33 | sleep 5 34 | done 35 | ) & 36 | done < "$KEYS_FILE" 37 | 38 | # Wait for all background processes to finish 39 | wait 40 | --------------------------------------------------------------------------------