From d2f9961bac681d2bc098aa62e4121c06e1186186 Mon Sep 17 00:00:00 2001 From: Godmode Galactus Date: Tue, 22 Nov 2022 23:09:46 +0100 Subject: [PATCH] #6 solving merge conflicts --- .gitmodules | 2 +- Cargo.lock | 294 ++++++++++++++++++++++++++-------------------------- deps/solana | 2 +- src/main.rs | 205 ++++++++++++++++++------------------ 4 files changed, 256 insertions(+), 247 deletions(-) diff --git a/.gitmodules b/.gitmodules index 9240a3a..51875cb 100644 --- a/.gitmodules +++ b/.gitmodules @@ -4,4 +4,4 @@ [submodule "deps/solana"] path = deps/solana url = https://github.com/solana-labs/solana - branch = v1.11.10 + branch = v1.14.7 diff --git a/Cargo.lock b/Cargo.lock index 49f13c1..b1b916f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4496,7 +4496,7 @@ dependencies = [ [[package]] name = "solana-account-decoder" -version = "1.14.3" +version = "1.14.7" dependencies = [ "Inflector", "base64 0.13.0", @@ -4507,8 +4507,9 @@ dependencies = [ "serde", "serde_derive", "serde_json", + "solana-address-lookup-table-program", "solana-config-program", - "solana-sdk 1.14.3", + "solana-sdk 1.14.7", "solana-vote-program", "spl-token", "spl-token-2022", @@ -4518,7 +4519,7 @@ dependencies = [ [[package]] name = "solana-address-lookup-table-program" -version = "1.14.3" +version = "1.14.7" dependencies = [ "bincode", "bytemuck", @@ -4527,23 +4528,23 @@ dependencies = [ "num-traits", "rustc_version 0.4.0", "serde", - "solana-frozen-abi 1.14.3", - "solana-frozen-abi-macro 1.14.3", - "solana-program 1.14.3", + "solana-frozen-abi 1.14.7", + "solana-frozen-abi-macro 1.14.7", + "solana-program 1.14.7", "solana-program-runtime", - "solana-sdk 1.14.3", + "solana-sdk 1.14.7", "thiserror", ] [[package]] name = "solana-banks-client" -version = "1.14.3" +version = "1.14.7" dependencies = [ "borsh", "futures 0.3.24", "solana-banks-interface", - "solana-program 1.14.3", - "solana-sdk 1.14.3", + "solana-program 1.14.7", + "solana-sdk 1.14.7", "tarpc", "thiserror", "tokio", @@ -4552,16 +4553,16 @@ dependencies = [ [[package]] name = "solana-banks-interface" -version = "1.14.3" +version = "1.14.7" dependencies = [ "serde", - "solana-sdk 1.14.3", + "solana-sdk 1.14.7", "tarpc", ] [[package]] name = "solana-banks-server" -version = "1.14.3" +version = "1.14.7" dependencies = [ "bincode", "crossbeam-channel", @@ -4569,7 +4570,7 @@ dependencies = [ "solana-banks-interface", "solana-client", "solana-runtime", - "solana-sdk 1.14.3", + "solana-sdk 1.14.7", "solana-send-transaction-service", "tarpc", "tokio", @@ -4608,14 +4609,14 @@ dependencies = [ "solana-genesis", "solana-gossip", "solana-local-cluster", - "solana-logger 1.14.3", + "solana-logger 1.14.7", "solana-measure", "solana-metrics", "solana-net-utils", "solana-program 1.10.38", "solana-rpc", "solana-runtime", - "solana-sdk 1.14.3", + "solana-sdk 1.14.7", "solana-streamer", "solana-test-validator", "solana-transaction-status", @@ -4625,7 +4626,7 @@ dependencies = [ [[package]] name = "solana-bench-tps" -version = "1.14.3" +version = "1.14.7" dependencies = [ "clap 2.34.0", "crossbeam-channel", @@ -4640,13 +4641,13 @@ dependencies = [ "solana-faucet", "solana-genesis", "solana-gossip", - "solana-logger 1.14.3", + "solana-logger 1.14.7", "solana-measure", "solana-metrics", "solana-net-utils", "solana-rpc", "solana-runtime", - "solana-sdk 1.14.3", + "solana-sdk 1.14.7", "solana-streamer", "solana-version", "thiserror", @@ -4654,7 +4655,7 @@ dependencies = [ [[package]] name = "solana-bloom" -version = "1.14.3" +version = "1.14.7" dependencies = [ "bv", "fnv", @@ -4664,14 +4665,14 @@ dependencies = [ "rustc_version 0.4.0", "serde", "serde_derive", - "solana-frozen-abi 1.14.3", - "solana-frozen-abi-macro 1.14.3", - "solana-sdk 1.14.3", + "solana-frozen-abi 1.14.7", + "solana-frozen-abi-macro 1.14.7", + "solana-sdk 1.14.7", ] [[package]] name = "solana-bpf-loader-program" -version = "1.14.3" +version = "1.14.7" dependencies = [ "bincode", "byteorder", @@ -4680,35 +4681,35 @@ dependencies = [ "solana-measure", "solana-metrics", "solana-program-runtime", - "solana-sdk 1.14.3", - "solana-zk-token-sdk 1.14.3", + "solana-sdk 1.14.7", + "solana-zk-token-sdk 1.14.7", "solana_rbpf", "thiserror", ] [[package]] name = "solana-bucket-map" -version = "1.14.3" +version = "1.14.7" dependencies = [ "log", "memmap2", "modular-bitfield", "rand 0.7.3", "solana-measure", - "solana-sdk 1.14.3", + "solana-sdk 1.14.7", "tempfile", ] [[package]] name = "solana-clap-utils" -version = "1.14.3" +version = "1.14.7" dependencies = [ "chrono", "clap 2.34.0", "rpassword", "solana-perf", "solana-remote-wallet", - "solana-sdk 1.14.3", + "solana-sdk 1.14.7", "thiserror", "tiny-bip39", "uriparse", @@ -4717,7 +4718,7 @@ dependencies = [ [[package]] name = "solana-cli-config" -version = "1.14.3" +version = "1.14.7" dependencies = [ "dirs-next", "lazy_static", @@ -4725,13 +4726,13 @@ dependencies = [ "serde_derive", "serde_yaml", "solana-clap-utils", - "solana-sdk 1.14.3", + "solana-sdk 1.14.7", "url 2.2.2", ] [[package]] name = "solana-cli-output" -version = "1.14.3" +version = "1.14.7" dependencies = [ "Inflector", "base64 0.13.0", @@ -4748,7 +4749,7 @@ dependencies = [ "solana-clap-utils", "solana-cli-config", "solana-client", - "solana-sdk 1.14.3", + "solana-sdk 1.14.7", "solana-transaction-status", "solana-vote-program", "spl-memo", @@ -4756,7 +4757,7 @@ dependencies = [ [[package]] name = "solana-client" -version = "1.14.3" +version = "1.14.7" dependencies = [ "async-mutex", "async-trait", @@ -4792,7 +4793,7 @@ dependencies = [ "solana-measure", "solana-metrics", "solana-net-utils", - "solana-sdk 1.14.3", + "solana-sdk 1.14.7", "solana-streamer", "solana-transaction-status", "solana-version", @@ -4808,27 +4809,27 @@ dependencies = [ [[package]] name = "solana-compute-budget-program" -version = "1.14.3" +version = "1.14.7" dependencies = [ "solana-program-runtime", - "solana-sdk 1.14.3", + "solana-sdk 1.14.7", ] [[package]] name = "solana-config-program" -version = "1.14.3" +version = "1.14.7" dependencies = [ "bincode", "chrono", "serde", "serde_derive", "solana-program-runtime", - "solana-sdk 1.14.3", + "solana-sdk 1.14.7", ] [[package]] name = "solana-core" -version = "1.14.3" +version = "1.14.7" dependencies = [ "ahash", "base64 0.13.0", @@ -4846,6 +4847,7 @@ dependencies = [ "log", "lru", "min-max-heap", + "num_enum", "rand 0.7.3", "rand_chacha 0.2.2", "rayon", @@ -4856,8 +4858,8 @@ dependencies = [ "solana-bloom", "solana-client", "solana-entry", - "solana-frozen-abi 1.14.3", - "solana-frozen-abi-macro 1.14.3", + "solana-frozen-abi 1.14.7", + "solana-frozen-abi-macro 1.14.7", "solana-geyser-plugin-manager", "solana-gossip", "solana-ledger", @@ -4870,7 +4872,7 @@ dependencies = [ "solana-rayon-threadlimit", "solana-rpc", "solana-runtime", - "solana-sdk 1.14.3", + "solana-sdk 1.14.7", "solana-send-transaction-service", "solana-streamer", "solana-transaction-status", @@ -4886,7 +4888,7 @@ dependencies = [ [[package]] name = "solana-entry" -version = "1.14.3" +version = "1.14.7" dependencies = [ "bincode", "crossbeam-channel", @@ -4902,12 +4904,12 @@ dependencies = [ "solana-metrics", "solana-perf", "solana-rayon-threadlimit", - "solana-sdk 1.14.3", + "solana-sdk 1.14.7", ] [[package]] name = "solana-faucet" -version = "1.14.3" +version = "1.14.7" dependencies = [ "bincode", "byteorder", @@ -4918,9 +4920,9 @@ dependencies = [ "serde_derive", "solana-clap-utils", "solana-cli-config", - "solana-logger 1.14.3", + "solana-logger 1.14.7", "solana-metrics", - "solana-sdk 1.14.3", + "solana-sdk 1.14.7", "solana-version", "spl-memo", "thiserror", @@ -4951,7 +4953,7 @@ dependencies = [ [[package]] name = "solana-frozen-abi" -version = "1.14.3" +version = "1.14.7" dependencies = [ "ahash", "blake3", @@ -4976,7 +4978,7 @@ dependencies = [ "serde_derive", "serde_json", "sha2 0.10.3", - "solana-frozen-abi-macro 1.14.3", + "solana-frozen-abi-macro 1.14.7", "subtle", "thiserror", ] @@ -4995,7 +4997,7 @@ dependencies = [ [[package]] name = "solana-frozen-abi-macro" -version = "1.14.3" +version = "1.14.7" dependencies = [ "proc-macro2 1.0.43", "quote 1.0.21", @@ -5005,7 +5007,7 @@ dependencies = [ [[package]] name = "solana-genesis" -version = "1.14.3" +version = "1.14.7" dependencies = [ "base64 0.13.0", "clap 2.34.0", @@ -5016,9 +5018,9 @@ dependencies = [ "solana-cli-config", "solana-entry", "solana-ledger", - "solana-logger 1.14.3", + "solana-logger 1.14.7", "solana-runtime", - "solana-sdk 1.14.3", + "solana-sdk 1.14.7", "solana-stake-program", "solana-version", "solana-vote-program", @@ -5027,17 +5029,17 @@ dependencies = [ [[package]] name = "solana-geyser-plugin-interface" -version = "1.14.3" +version = "1.14.7" dependencies = [ "log", - "solana-sdk 1.14.3", + "solana-sdk 1.14.7", "solana-transaction-status", "thiserror", ] [[package]] name = "solana-geyser-plugin-manager" -version = "1.14.3" +version = "1.14.7" dependencies = [ "bs58 0.4.0", "crossbeam-channel", @@ -5050,14 +5052,14 @@ dependencies = [ "solana-metrics", "solana-rpc", "solana-runtime", - "solana-sdk 1.14.3", + "solana-sdk 1.14.7", "solana-transaction-status", "thiserror", ] [[package]] name = "solana-gossip" -version = "1.14.3" +version = "1.14.7" dependencies = [ "bincode", "bv", @@ -5081,17 +5083,17 @@ dependencies = [ "solana-clap-utils", "solana-client", "solana-entry", - "solana-frozen-abi 1.14.3", - "solana-frozen-abi-macro 1.14.3", + "solana-frozen-abi 1.14.7", + "solana-frozen-abi-macro 1.14.7", "solana-ledger", - "solana-logger 1.14.3", + "solana-logger 1.14.7", "solana-measure", "solana-metrics", "solana-net-utils", "solana-perf", "solana-rayon-threadlimit", "solana-runtime", - "solana-sdk 1.14.3", + "solana-sdk 1.14.7", "solana-streamer", "solana-version", "solana-vote-program", @@ -5100,7 +5102,7 @@ dependencies = [ [[package]] name = "solana-ledger" -version = "1.14.3" +version = "1.14.7" dependencies = [ "assert_matches", "bincode", @@ -5132,15 +5134,15 @@ dependencies = [ "solana-account-decoder", "solana-bpf-loader-program", "solana-entry", - "solana-frozen-abi 1.14.3", - "solana-frozen-abi-macro 1.14.3", + "solana-frozen-abi 1.14.7", + "solana-frozen-abi-macro 1.14.7", "solana-measure", "solana-metrics", "solana-perf", "solana-program-runtime", "solana-rayon-threadlimit", "solana-runtime", - "solana-sdk 1.14.3", + "solana-sdk 1.14.7", "solana-stake-program", "solana-storage-bigtable", "solana-storage-proto", @@ -5158,7 +5160,7 @@ dependencies = [ [[package]] name = "solana-local-cluster" -version = "1.14.3" +version = "1.14.7" dependencies = [ "crossbeam-channel", "fs_extra", @@ -5173,7 +5175,7 @@ dependencies = [ "solana-gossip", "solana-ledger", "solana-runtime", - "solana-sdk 1.14.3", + "solana-sdk 1.14.7", "solana-stake-program", "solana-streamer", "solana-vote-program", @@ -5193,7 +5195,7 @@ dependencies = [ [[package]] name = "solana-logger" -version = "1.14.3" +version = "1.14.7" dependencies = [ "env_logger", "lazy_static", @@ -5202,36 +5204,36 @@ dependencies = [ [[package]] name = "solana-measure" -version = "1.14.3" +version = "1.14.7" dependencies = [ "log", - "solana-sdk 1.14.3", + "solana-sdk 1.14.7", ] [[package]] name = "solana-merkle-tree" -version = "1.14.3" +version = "1.14.7" dependencies = [ "fast-math", "matches", - "solana-program 1.14.3", + "solana-program 1.14.7", ] [[package]] name = "solana-metrics" -version = "1.14.3" +version = "1.14.7" dependencies = [ "crossbeam-channel", "gethostname", "lazy_static", "log", "reqwest", - "solana-sdk 1.14.3", + "solana-sdk 1.14.7", ] [[package]] name = "solana-net-utils" -version = "1.14.3" +version = "1.14.7" dependencies = [ "bincode", "clap 3.2.22", @@ -5242,8 +5244,8 @@ dependencies = [ "serde", "serde_derive", "socket2", - "solana-logger 1.14.3", - "solana-sdk 1.14.3", + "solana-logger 1.14.7", + "solana-sdk 1.14.7", "solana-version", "tokio", "url 2.2.2", @@ -5251,7 +5253,7 @@ dependencies = [ [[package]] name = "solana-perf" -version = "1.14.3" +version = "1.14.7" dependencies = [ "ahash", "bincode", @@ -5270,13 +5272,13 @@ dependencies = [ "serde", "solana-metrics", "solana-rayon-threadlimit", - "solana-sdk 1.14.3", + "solana-sdk 1.14.7", "solana-vote-program", ] [[package]] name = "solana-poh" -version = "1.14.3" +version = "1.14.7" dependencies = [ "core_affinity", "crossbeam-channel", @@ -5286,7 +5288,7 @@ dependencies = [ "solana-measure", "solana-metrics", "solana-runtime", - "solana-sdk 1.14.3", + "solana-sdk 1.14.7", "solana-sys-tuner", "thiserror", ] @@ -5335,7 +5337,7 @@ dependencies = [ [[package]] name = "solana-program" -version = "1.14.3" +version = "1.14.7" dependencies = [ "base64 0.13.0", "bincode", @@ -5371,9 +5373,9 @@ dependencies = [ "serde_json", "sha2 0.10.3", "sha3 0.10.2", - "solana-frozen-abi 1.14.3", - "solana-frozen-abi-macro 1.14.3", - "solana-sdk-macro 1.14.3", + "solana-frozen-abi 1.14.7", + "solana-frozen-abi-macro 1.14.7", + "solana-sdk-macro 1.14.7", "thiserror", "tiny-bip39", "wasm-bindgen", @@ -5382,7 +5384,7 @@ dependencies = [ [[package]] name = "solana-program-runtime" -version = "1.14.3" +version = "1.14.7" dependencies = [ "base64 0.13.0", "bincode", @@ -5394,19 +5396,20 @@ dependencies = [ "log", "num-derive", "num-traits", + "rand 0.7.3", "rustc_version 0.4.0", "serde", - "solana-frozen-abi 1.14.3", - "solana-frozen-abi-macro 1.14.3", + "solana-frozen-abi 1.14.7", + "solana-frozen-abi-macro 1.14.7", "solana-measure", "solana-metrics", - "solana-sdk 1.14.3", + "solana-sdk 1.14.7", "thiserror", ] [[package]] name = "solana-program-test" -version = "1.14.3" +version = "1.14.7" dependencies = [ "assert_matches", "async-trait", @@ -5418,10 +5421,10 @@ dependencies = [ "solana-banks-client", "solana-banks-server", "solana-bpf-loader-program", - "solana-logger 1.14.3", + "solana-logger 1.14.7", "solana-program-runtime", "solana-runtime", - "solana-sdk 1.14.3", + "solana-sdk 1.14.7", "solana-vote-program", "thiserror", "tokio", @@ -5429,7 +5432,7 @@ dependencies = [ [[package]] name = "solana-rayon-threadlimit" -version = "1.14.3" +version = "1.14.7" dependencies = [ "lazy_static", "num_cpus", @@ -5437,7 +5440,7 @@ dependencies = [ [[package]] name = "solana-remote-wallet" -version = "1.14.3" +version = "1.14.7" dependencies = [ "console", "dialoguer", @@ -5447,14 +5450,14 @@ dependencies = [ "parking_lot 0.12.1", "qstring", "semver 1.0.13", - "solana-sdk 1.14.3", + "solana-sdk 1.14.7", "thiserror", "uriparse", ] [[package]] name = "solana-rpc" -version = "1.14.3" +version = "1.14.7" dependencies = [ "base64 0.13.0", "bincode", @@ -5487,7 +5490,7 @@ dependencies = [ "solana-poh", "solana-rayon-threadlimit", "solana-runtime", - "solana-sdk 1.14.3", + "solana-sdk 1.14.7", "solana-send-transaction-service", "solana-stake-program", "solana-storage-bigtable", @@ -5505,7 +5508,7 @@ dependencies = [ [[package]] name = "solana-runtime" -version = "1.14.3" +version = "1.14.7" dependencies = [ "arrayref", "bincode", @@ -5541,17 +5544,17 @@ dependencies = [ "solana-bucket-map", "solana-compute-budget-program", "solana-config-program", - "solana-frozen-abi 1.14.3", - "solana-frozen-abi-macro 1.14.3", + "solana-frozen-abi 1.14.7", + "solana-frozen-abi-macro 1.14.7", "solana-measure", "solana-metrics", "solana-program-runtime", "solana-rayon-threadlimit", - "solana-sdk 1.14.3", + "solana-sdk 1.14.7", "solana-stake-program", "solana-vote-program", "solana-zk-token-proof-program", - "solana-zk-token-sdk 1.14.3", + "solana-zk-token-sdk 1.14.7", "strum", "strum_macros", "symlink", @@ -5614,7 +5617,7 @@ dependencies = [ [[package]] name = "solana-sdk" -version = "1.14.3" +version = "1.14.7" dependencies = [ "assert_matches", "base64 0.13.0", @@ -5651,11 +5654,11 @@ dependencies = [ "serde_json", "sha2 0.10.3", "sha3 0.10.2", - "solana-frozen-abi 1.14.3", - "solana-frozen-abi-macro 1.14.3", - "solana-logger 1.14.3", - "solana-program 1.14.3", - "solana-sdk-macro 1.14.3", + "solana-frozen-abi 1.14.7", + "solana-frozen-abi-macro 1.14.7", + "solana-logger 1.14.7", + "solana-program 1.14.7", + "solana-sdk-macro 1.14.7", "thiserror", "uriparse", "wasm-bindgen", @@ -5676,7 +5679,7 @@ dependencies = [ [[package]] name = "solana-sdk-macro" -version = "1.14.3" +version = "1.14.7" dependencies = [ "bs58 0.4.0", "proc-macro2 1.0.43", @@ -5687,7 +5690,7 @@ dependencies = [ [[package]] name = "solana-send-transaction-service" -version = "1.14.3" +version = "1.14.7" dependencies = [ "crossbeam-channel", "log", @@ -5695,12 +5698,12 @@ dependencies = [ "solana-measure", "solana-metrics", "solana-runtime", - "solana-sdk 1.14.3", + "solana-sdk 1.14.7", ] [[package]] name = "solana-stake-program" -version = "1.14.3" +version = "1.14.7" dependencies = [ "bincode", "log", @@ -5710,18 +5713,18 @@ dependencies = [ "serde", "serde_derive", "solana-config-program", - "solana-frozen-abi 1.14.3", - "solana-frozen-abi-macro 1.14.3", + "solana-frozen-abi 1.14.7", + "solana-frozen-abi-macro 1.14.7", "solana-metrics", "solana-program-runtime", - "solana-sdk 1.14.3", + "solana-sdk 1.14.7", "solana-vote-program", "thiserror", ] [[package]] name = "solana-storage-bigtable" -version = "1.14.3" +version = "1.14.7" dependencies = [ "backoff", "bincode", @@ -5742,7 +5745,7 @@ dependencies = [ "serde_derive", "smpl_jwt", "solana-metrics", - "solana-sdk 1.14.3", + "solana-sdk 1.14.7", "solana-storage-proto", "solana-transaction-status", "thiserror", @@ -5753,7 +5756,7 @@ dependencies = [ [[package]] name = "solana-storage-proto" -version = "1.14.3" +version = "1.14.7" dependencies = [ "bincode", "bs58 0.4.0", @@ -5761,14 +5764,14 @@ dependencies = [ "protobuf-src", "serde", "solana-account-decoder", - "solana-sdk 1.14.3", + "solana-sdk 1.14.7", "solana-transaction-status", "tonic-build 0.8.2", ] [[package]] name = "solana-streamer" -version = "1.14.3" +version = "1.14.7" dependencies = [ "crossbeam-channel", "futures-util", @@ -5787,7 +5790,7 @@ dependencies = [ "rustls 0.20.6", "solana-metrics", "solana-perf", - "solana-sdk 1.14.3", + "solana-sdk 1.14.7", "thiserror", "tokio", "x509-parser", @@ -5795,13 +5798,13 @@ dependencies = [ [[package]] name = "solana-sys-tuner" -version = "1.14.3" +version = "1.14.7" dependencies = [ "clap 2.34.0", "libc", "log", "nix", - "solana-logger 1.14.3", + "solana-logger 1.14.7", "solana-version", "sysctl", "unix_socket2", @@ -5810,7 +5813,7 @@ dependencies = [ [[package]] name = "solana-test-validator" -version = "1.14.3" +version = "1.14.7" dependencies = [ "base64 0.13.0", "log", @@ -5821,20 +5824,20 @@ dependencies = [ "solana-core", "solana-gossip", "solana-ledger", - "solana-logger 1.14.3", + "solana-logger 1.14.7", "solana-net-utils", "solana-program-runtime", "solana-program-test", "solana-rpc", "solana-runtime", - "solana-sdk 1.14.3", + "solana-sdk 1.14.7", "solana-streamer", "tokio", ] [[package]] name = "solana-transaction-status" -version = "1.14.3" +version = "1.14.7" dependencies = [ "Inflector", "base64 0.13.0", @@ -5847,9 +5850,10 @@ dependencies = [ "serde_derive", "serde_json", "solana-account-decoder", + "solana-address-lookup-table-program", "solana-measure", "solana-metrics", - "solana-sdk 1.14.3", + "solana-sdk 1.14.7", "solana-vote-program", "spl-associated-token-account", "spl-memo", @@ -5860,21 +5864,21 @@ dependencies = [ [[package]] name = "solana-version" -version = "1.14.3" +version = "1.14.7" dependencies = [ "log", "rustc_version 0.4.0", "semver 1.0.13", "serde", "serde_derive", - "solana-frozen-abi 1.14.3", - "solana-frozen-abi-macro 1.14.3", - "solana-sdk 1.14.3", + "solana-frozen-abi 1.14.7", + "solana-frozen-abi-macro 1.14.7", + "solana-sdk 1.14.7", ] [[package]] name = "solana-vote-program" -version = "1.14.3" +version = "1.14.7" dependencies = [ "bincode", "log", @@ -5883,25 +5887,25 @@ dependencies = [ "rustc_version 0.4.0", "serde", "serde_derive", - "solana-frozen-abi 1.14.3", - "solana-frozen-abi-macro 1.14.3", + "solana-frozen-abi 1.14.7", + "solana-frozen-abi-macro 1.14.7", "solana-metrics", "solana-program-runtime", - "solana-sdk 1.14.3", + "solana-sdk 1.14.7", "thiserror", ] [[package]] name = "solana-zk-token-proof-program" -version = "1.14.3" +version = "1.14.7" dependencies = [ "bytemuck", "getrandom 0.1.16", "num-derive", "num-traits", "solana-program-runtime", - "solana-sdk 1.14.3", - "solana-zk-token-sdk 1.14.3", + "solana-sdk 1.14.7", + "solana-zk-token-sdk 1.14.7", ] [[package]] @@ -5936,7 +5940,7 @@ dependencies = [ [[package]] name = "solana-zk-token-sdk" -version = "1.14.3" +version = "1.14.7" dependencies = [ "aes-gcm-siv", "arrayref", @@ -5956,8 +5960,8 @@ dependencies = [ "serde", "serde_json", "sha3 0.9.1", - "solana-program 1.14.3", - "solana-sdk 1.14.3", + "solana-program 1.14.7", + "solana-sdk 1.14.7", "subtle", "thiserror", "zeroize", diff --git a/deps/solana b/deps/solana index 242c9cb..030eb5f 160000 --- a/deps/solana +++ b/deps/solana @@ -1 +1 @@ -Subproject commit 242c9cb442ec195267c37d30c95273bd8e102daf +Subproject commit 030eb5f2caadebeb5d656c1a0b2d2058ea4bd242 diff --git a/src/main.rs b/src/main.rs index d6ac6fe..ef7b604 100644 --- a/src/main.rs +++ b/src/main.rs @@ -7,7 +7,6 @@ use mango::{ state::{MangoCache, MangoGroup, PerpMarket}, }; use mango_common::Loadable; -use rayon::ThreadBuilder; use serde::Serialize; use serde_json; mod rotating_queue; @@ -29,20 +28,16 @@ use solana_sdk::{ hash::Hash, instruction::Instruction, message::Message, - pubkey::Pubkey, signature::{Keypair, Signature, Signer}, - stake::instruction, transaction::Transaction, }; -use solana_transaction_status::{EncodedConfirmedBlock, TransactionDetails, UiTransactionEncoding}; -use core::time; +use solana_program::pubkey::Pubkey; + use std::{ - cell::Ref, collections::HashMap, - collections::{HashSet, VecDeque}, fs, - ops::{Add, Div, Mul}, + ops::{Div, Mul}, str::FromStr, sync::{ atomic::{AtomicBool, AtomicU64, Ordering}, @@ -55,8 +50,41 @@ use std::{ use csv; +// as there are similar modules solana_sdk and solana_program +// solana internals use solana_sdk but external dependancies like mango use solana program +// that is why we have some helper methods +fn to_sdk_pk(pubkey: &Pubkey) -> solana_sdk::pubkey::Pubkey { + solana_sdk::pubkey::Pubkey::from(pubkey.to_bytes()) +} + +fn to_sp_pk(pubkey: &solana_sdk::pubkey::Pubkey) -> Pubkey { + Pubkey::new_from_array(pubkey.to_bytes()) +} + +fn to_sdk_accountmetas( + vec: Vec, +) -> Vec { + vec.iter() + .map(|x| solana_sdk::instruction::AccountMeta { + pubkey: to_sdk_pk(&x.pubkey), + is_signer: x.is_signer, + is_writable: x.is_writable, + }) + .collect::>() +} + +fn to_sdk_instruction( + instruction: solana_program::instruction::Instruction, +) -> solana_sdk::instruction::Instruction { + solana_sdk::instruction::Instruction { + program_id: to_sdk_pk(&instruction.program_id), + accounts: to_sdk_accountmetas(instruction.accounts), + data: instruction.data, + } +} + fn load_from_rpc(rpc_client: &RpcClient, pk: &Pubkey) -> T { - let acc = rpc_client.get_account(pk).unwrap(); + let acc = rpc_client.get_account(&to_sdk_pk(pk)).unwrap(); return T::load_from_bytes(acc.data.as_slice()).unwrap().clone(); } @@ -127,14 +155,14 @@ struct PerpMarketCache { pub perp_market: PerpMarket, } -struct TransactionInfo { +struct _TransactionInfo { pub signature: Signature, - pub transactionSendTime: DateTime, + pub transaction_send_time: DateTime, pub send_slot: Slot, - pub confirmationRetries: u32, + pub confirmation_retries: u32, pub error: String, - pub confirmationBlockHash: Pubkey, - pub leaderConfirmingTransaction: Pubkey, + pub confirmation_blockhash: Pubkey, + pub leader_confirming_transaction: Pubkey, pub timeout: bool, pub market_maker: Pubkey, pub market: Pubkey, @@ -145,7 +173,6 @@ fn poll_blockhash_and_slot( blockhash: Arc>, slot: &AtomicU64, client: &Arc, - _id: &Pubkey, ) { let mut blockhash_last_updated = Instant::now(); //let mut last_error_log = Instant::now(); @@ -175,14 +202,6 @@ fn poll_blockhash_and_slot( } } -fn pk_from_str(str: &str) -> solana_program::pubkey::Pubkey { - return solana_program::pubkey::Pubkey::from_str(str).unwrap(); -} - -fn pk_from_str_like(str_like: T) -> solana_program::pubkey::Pubkey { - return pk_from_str(&str_like.to_string()); -} - fn seconds_since(dt: DateTime) -> i64 { Utc::now().signed_duration_since(dt).num_seconds() } @@ -198,85 +217,74 @@ fn create_ask_bid_transaction( "price:{:?} price_quote_lots:{:?} order_base_lots:{:?} offset:{:?} spread:{:?}", c.price, c.price_quote_lots, c.order_base_lots, offset, spread ); - let cancel_ix: Instruction = serde_json::from_str( - &serde_json::to_string( - &cancel_all_perp_orders( - &pk_from_str_like(&c.mango_program_pk), - &pk_from_str_like(&c.mango_group_pk), - &pk_from_str_like(&mango_account_pk), - &(pk_from_str_like(&mango_account_signer_pk)), - &(pk_from_str_like(&c.perp_market_pk)), - &c.perp_market.bids, - &c.perp_market.asks, - 10, - ) - .unwrap(), + let cancel_ix: Instruction = to_sdk_instruction( + cancel_all_perp_orders( + &c.mango_program_pk, + &c.mango_group_pk, + &mango_account_pk, + &mango_account_signer_pk, + &c.perp_market_pk, + &c.perp_market.bids, + &c.perp_market.asks, + 10, ) .unwrap(), - ) - .unwrap(); + ); - let place_bid_ix: Instruction = serde_json::from_str( - &serde_json::to_string( - &place_perp_order2( - &pk_from_str_like(&c.mango_program_pk), - &pk_from_str_like(&c.mango_group_pk), - &pk_from_str_like(&mango_account_pk), - &(pk_from_str_like(&mango_account_signer_pk)), - &pk_from_str_like(&c.mango_cache_pk), - &(pk_from_str_like(&c.perp_market_pk)), - &c.perp_market.bids, - &c.perp_market.asks, - &c.perp_market.event_queue, - None, - &[], - Side::Bid, - c.price_quote_lots + offset - spread, - c.order_base_lots, - i64::MAX, - 1, - mango::matching::OrderType::Limit, - false, - None, - 64, - mango::matching::ExpiryType::Absolute, - ) - .unwrap(), + let place_bid_ix: Instruction = to_sdk_instruction( + place_perp_order2( + &c.mango_program_pk, + &c.mango_group_pk, + &mango_account_pk, + &mango_account_signer_pk, + &c.mango_cache_pk, + &c.perp_market_pk, + &c.perp_market.bids, + &c.perp_market.asks, + &c.perp_market.event_queue, + None, + &[], + Side::Bid, + c.price_quote_lots + offset - spread, + c.order_base_lots, + i64::MAX, + 1, + mango::matching::OrderType::Limit, + false, + None, + 64, + mango::matching::ExpiryType::Absolute, ) .unwrap(), - ) - .unwrap(); + ); - let place_ask_ix: Instruction = serde_json::from_str( - &serde_json::to_string( - &place_perp_order2( - &pk_from_str_like(&c.mango_program_pk), - &pk_from_str_like(&c.mango_group_pk), - &pk_from_str_like(&mango_account_pk), - &(pk_from_str_like(&mango_account_signer_pk)), - &pk_from_str_like(&c.mango_cache_pk), - &(pk_from_str_like(&c.perp_market_pk)), - &c.perp_market.bids, - &c.perp_market.asks, - &c.perp_market.event_queue, - None, - &[], - Side::Ask, - c.price_quote_lots + offset + spread, - c.order_base_lots, - i64::MAX, - 2, - mango::matching::OrderType::Limit, - false, - None, - 64, - mango::matching::ExpiryType::Absolute, - ) - .unwrap(), + let place_ask_ix: Instruction = to_sdk_instruction( + place_perp_order2( + &c.mango_program_pk, + &c.mango_group_pk, + &mango_account_pk, + &mango_account_signer_pk, + &c.mango_cache_pk, + &c.perp_market_pk, + &c.perp_market.bids, + &c.perp_market.asks, + &c.perp_market.event_queue, + None, + &[], + Side::Ask, + c.price_quote_lots + offset + spread, + c.order_base_lots, + i64::MAX, + 2, + mango::matching::OrderType::Limit, + false, + None, + 64, + mango::matching::ExpiryType::Absolute, ) .unwrap(), - ) - .unwrap(); + ); + Transaction::new_unsigned(Message::new( &[cancel_ix, place_bid_ix, place_ask_ix], Some(&mango_account_signer_pk), @@ -293,6 +301,7 @@ fn send_mm_transactions( blockhash: Arc>, slot: &AtomicU64, ) { + let mango_account_signer_pk = to_sp_pk(&mango_account_signer.pubkey()); // update quotes 2x per second for _ in 0..quotes_per_second { for c in perp_market_caches.iter() { @@ -308,7 +317,7 @@ fn send_mm_transactions( signature: tx.signatures[0], sent_at: Utc::now(), sent_slot: slot.load(Ordering::Acquire), - market_maker: mango_account_signer.pubkey(), + market_maker: mango_account_signer_pk, market: c.perp_market_pk, }); if sent.is_err() { @@ -455,7 +464,6 @@ fn confirmation_by_querying_rpc( tx_timeout_records: Arc>>, ) { const TIMEOUT: u64 = 30; - let mut error: bool = false; let mut recv_until_confirm = recv_limit; let not_confirmed: Arc>> = Arc::new(RwLock::new(Vec::new())); loop { @@ -543,7 +551,6 @@ fn confirmation_by_querying_rpc( info!("channel disconnected {}", recv_until_confirm); } debug!("channel disconnected"); - error = true; break; // still confirm remaining transctions } } @@ -636,7 +643,7 @@ fn confirmations_by_blocks( for slot in slot_batch { // retry search for block 10 times let mut block = None; - for i in 0..=10 { + for _i in 0..=10 { let block_res = client .get_block_with_config( slot, @@ -931,7 +938,6 @@ fn main() { let exit_signal = exit_signal.clone(); let blockhash = blockhash.clone(); let client = rpc_client.clone(); - let id = id.pubkey(); let current_slot = current_slot.clone(); Builder::new() .name("solana-blockhash-poller".to_string()) @@ -941,7 +947,6 @@ fn main() { blockhash.clone(), current_slot.as_ref(), &client, - &id, ); }) .unwrap()