Remove frozen ABI modules from solana-sdk
This commit is contained in:
parent
81d0c8ae7f
commit
6858950f76
|
@ -3753,6 +3753,8 @@ dependencies = [
|
|||
"solana-clap-utils",
|
||||
"solana-client",
|
||||
"solana-faucet",
|
||||
"solana-frozen-abi",
|
||||
"solana-frozen-abi-macro",
|
||||
"solana-ledger",
|
||||
"solana-logger 1.5.0",
|
||||
"solana-measure",
|
||||
|
@ -3763,7 +3765,6 @@ dependencies = [
|
|||
"solana-rayon-threadlimit",
|
||||
"solana-runtime",
|
||||
"solana-sdk 1.5.0",
|
||||
"solana-sdk-macro-frozen-abi 1.5.0",
|
||||
"solana-stake-program",
|
||||
"solana-storage-bigtable",
|
||||
"solana-streamer",
|
||||
|
@ -3908,6 +3909,35 @@ dependencies = [
|
|||
"tokio-codec",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "solana-frozen-abi"
|
||||
version = "1.5.0"
|
||||
dependencies = [
|
||||
"bs58",
|
||||
"bv",
|
||||
"generic-array 0.14.3",
|
||||
"log 0.4.8",
|
||||
"memmap",
|
||||
"rustc_version",
|
||||
"serde",
|
||||
"serde_derive",
|
||||
"sha2",
|
||||
"solana-frozen-abi-macro",
|
||||
"solana-logger 1.5.0",
|
||||
"thiserror",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "solana-frozen-abi-macro"
|
||||
version = "1.5.0"
|
||||
dependencies = [
|
||||
"lazy_static",
|
||||
"proc-macro2 1.0.19",
|
||||
"quote 1.0.6",
|
||||
"rustc_version",
|
||||
"syn 1.0.27",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "solana-genesis"
|
||||
version = "1.5.0"
|
||||
|
@ -4356,13 +4386,14 @@ dependencies = [
|
|||
"serde",
|
||||
"serde_derive",
|
||||
"solana-config-program",
|
||||
"solana-frozen-abi",
|
||||
"solana-frozen-abi-macro",
|
||||
"solana-logger 1.5.0",
|
||||
"solana-measure",
|
||||
"solana-metrics",
|
||||
"solana-noop-program",
|
||||
"solana-rayon-threadlimit",
|
||||
"solana-sdk 1.5.0",
|
||||
"solana-sdk-macro-frozen-abi 1.5.0",
|
||||
"solana-secp256k1-program",
|
||||
"solana-stake-program",
|
||||
"solana-vote-program",
|
||||
|
@ -4419,7 +4450,7 @@ dependencies = [
|
|||
"solana-crate-features 1.4.0",
|
||||
"solana-logger 1.4.0",
|
||||
"solana-sdk-macro 1.4.0",
|
||||
"solana-sdk-macro-frozen-abi 1.4.0",
|
||||
"solana-sdk-macro-frozen-abi",
|
||||
"thiserror",
|
||||
]
|
||||
|
||||
|
@ -4458,9 +4489,10 @@ dependencies = [
|
|||
"sha2",
|
||||
"sha3",
|
||||
"solana-crate-features 1.5.0",
|
||||
"solana-frozen-abi",
|
||||
"solana-frozen-abi-macro",
|
||||
"solana-logger 1.5.0",
|
||||
"solana-sdk-macro 1.5.0",
|
||||
"solana-sdk-macro-frozen-abi 1.5.0",
|
||||
"thiserror",
|
||||
"tiny-bip39",
|
||||
]
|
||||
|
@ -4502,17 +4534,6 @@ dependencies = [
|
|||
"syn 1.0.27",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "solana-sdk-macro-frozen-abi"
|
||||
version = "1.5.0"
|
||||
dependencies = [
|
||||
"lazy_static",
|
||||
"proc-macro2 1.0.19",
|
||||
"quote 1.0.6",
|
||||
"rustc_version",
|
||||
"syn 1.0.27",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "solana-secp256k1-program"
|
||||
version = "1.5.0"
|
||||
|
@ -4596,10 +4617,11 @@ dependencies = [
|
|||
"serde",
|
||||
"serde_derive",
|
||||
"solana-config-program",
|
||||
"solana-frozen-abi",
|
||||
"solana-frozen-abi-macro",
|
||||
"solana-logger 1.5.0",
|
||||
"solana-metrics",
|
||||
"solana-sdk 1.5.0",
|
||||
"solana-sdk-macro-frozen-abi 1.5.0",
|
||||
"solana-vote-program",
|
||||
"thiserror",
|
||||
]
|
||||
|
@ -4769,10 +4791,11 @@ dependencies = [
|
|||
"rustc_version",
|
||||
"serde",
|
||||
"serde_derive",
|
||||
"solana-frozen-abi",
|
||||
"solana-frozen-abi-macro",
|
||||
"solana-logger 1.5.0",
|
||||
"solana-runtime",
|
||||
"solana-sdk 1.5.0",
|
||||
"solana-sdk-macro-frozen-abi 1.5.0",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -4802,10 +4825,11 @@ dependencies = [
|
|||
"rustc_version",
|
||||
"serde",
|
||||
"serde_derive",
|
||||
"solana-frozen-abi",
|
||||
"solana-frozen-abi-macro",
|
||||
"solana-logger 1.5.0",
|
||||
"solana-metrics",
|
||||
"solana-sdk 1.5.0",
|
||||
"solana-sdk-macro-frozen-abi 1.5.0",
|
||||
"thiserror",
|
||||
]
|
||||
|
||||
|
|
|
@ -16,6 +16,7 @@ members = [
|
|||
"dos",
|
||||
"download-utils",
|
||||
"faucet",
|
||||
"frozen-abi",
|
||||
"perf",
|
||||
"validator",
|
||||
"genesis",
|
||||
|
|
|
@ -58,7 +58,8 @@ solana-net-utils = { path = "../net-utils", version = "1.5.0" }
|
|||
solana-perf = { path = "../perf", version = "1.5.0" }
|
||||
solana-runtime = { path = "../runtime", version = "1.5.0" }
|
||||
solana-sdk = { path = "../sdk", version = "1.5.0" }
|
||||
solana-sdk-macro-frozen-abi = { path = "../sdk/macro-frozen-abi", version = "1.5.0" }
|
||||
solana-frozen-abi = { path = "../frozen-abi", version = "1.5.0" }
|
||||
solana-frozen-abi-macro = { path = "../frozen-abi/macro", version = "1.5.0" }
|
||||
solana-stake-program = { path = "../programs/stake", version = "1.5.0" }
|
||||
solana-storage-bigtable = { path = "../storage-bigtable", version = "1.5.0" }
|
||||
solana-streamer = { path = "../streamer", version = "1.5.0" }
|
||||
|
|
|
@ -1 +1 @@
|
|||
../sdk/build.rs
|
||||
../frozen-abi/build.rs
|
|
@ -93,7 +93,7 @@ extern crate serde_json;
|
|||
extern crate solana_metrics;
|
||||
|
||||
#[macro_use]
|
||||
extern crate solana_sdk_macro_frozen_abi;
|
||||
extern crate solana_frozen_abi_macro;
|
||||
|
||||
#[cfg(test)]
|
||||
#[macro_use]
|
||||
|
|
|
@ -0,0 +1,27 @@
|
|||
[package]
|
||||
name = "solana-frozen-abi"
|
||||
version = "1.5.0"
|
||||
description = "Solana Frozen ABI"
|
||||
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
homepage = "https://solana.com/"
|
||||
license = "Apache-2.0"
|
||||
edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
bs58 = "0.3.1"
|
||||
bv = { version = "0.11.1", features = ["serde"] }
|
||||
log = "0.4.8"
|
||||
serde = "1.0.112"
|
||||
serde_derive = "1.0.103"
|
||||
sha2 = "0.8.2"
|
||||
solana-frozen-abi-macro = { path = "macro", version = "1.5.0" }
|
||||
thiserror = "1.0"
|
||||
|
||||
[target.'cfg(not(target_arch = "bpf"))'.dependencies]
|
||||
solana-logger = { path = "../logger", version = "1.5.0" }
|
||||
generic-array = { version = "0.14.3", default-features = false, features = ["serde", "more_lengths"]}
|
||||
memmap = "0.7.0"
|
||||
|
||||
[build-dependencies]
|
||||
rustc_version = "0.2"
|
|
@ -0,0 +1,27 @@
|
|||
extern crate rustc_version;
|
||||
use rustc_version::{version_meta, Channel};
|
||||
|
||||
fn main() {
|
||||
// Copied and adapted from
|
||||
// https://github.com/Kimundi/rustc-version-rs/blob/1d692a965f4e48a8cb72e82cda953107c0d22f47/README.md#example
|
||||
// Licensed under Apache-2.0 + MIT
|
||||
match version_meta().unwrap().channel {
|
||||
Channel::Stable => {
|
||||
println!("cargo:rustc-cfg=RUSTC_WITHOUT_SPECIALIZATION");
|
||||
}
|
||||
Channel::Beta => {
|
||||
println!("cargo:rustc-cfg=RUSTC_WITHOUT_SPECIALIZATION");
|
||||
}
|
||||
Channel::Nightly => {
|
||||
println!("cargo:rustc-cfg=RUSTC_WITH_SPECIALIZATION");
|
||||
}
|
||||
Channel::Dev => {
|
||||
println!("cargo:rustc-cfg=RUSTC_WITH_SPECIALIZATION");
|
||||
// See https://github.com/solana-labs/solana/issues/11055
|
||||
// We may be running the custom `rust-bpf-builder` toolchain,
|
||||
// which currently needs `#![feature(proc_macro_hygiene)]` to
|
||||
// be applied.
|
||||
println!("cargo:rustc-cfg=RUSTC_NEEDS_PROC_MACRO_HYGIENE");
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,7 +1,7 @@
|
|||
[package]
|
||||
name = "solana-sdk-macro-frozen-abi"
|
||||
name = "solana-frozen-abi-macro"
|
||||
version = "1.5.0"
|
||||
description = "Solana SDK Macro frozen abi"
|
||||
description = "Solana Frozen ABI Macro"
|
||||
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
homepage = "https://solana.com/"
|
|
@ -167,7 +167,7 @@ fn derive_abi_sample_enum_type(input: ItemEnum) -> TokenStream {
|
|||
#injection
|
||||
#[automatically_derived]
|
||||
#( #attrs )*
|
||||
impl #impl_generics ::solana_sdk::abi_example::AbiExample for #type_name #ty_generics #where_clause {
|
||||
impl #impl_generics ::solana_frozen_abi::abi_example::AbiExample for #type_name #ty_generics #where_clause {
|
||||
fn example() -> Self {
|
||||
::log::info!(
|
||||
"AbiExample for enum: {}",
|
||||
|
@ -221,13 +221,13 @@ fn derive_abi_sample_struct_type(input: ItemStruct) -> TokenStream {
|
|||
#injection
|
||||
#[automatically_derived]
|
||||
#( #attrs )*
|
||||
impl #impl_generics ::solana_sdk::abi_example::AbiExample for #type_name #ty_generics #where_clause {
|
||||
impl #impl_generics ::solana_frozen_abi::abi_example::AbiExample for #type_name #ty_generics #where_clause {
|
||||
fn example() -> Self {
|
||||
::log::info!(
|
||||
"AbiExample for struct: {}",
|
||||
std::any::type_name::<#type_name #ty_generics>()
|
||||
);
|
||||
use ::solana_sdk::abi_example::AbiExample;
|
||||
use ::solana_frozen_abi::abi_example::AbiExample;
|
||||
|
||||
#type_name #turbofish #sample_fields
|
||||
}
|
||||
|
@ -272,11 +272,11 @@ fn do_derive_abi_enum_visitor(input: ItemEnum) -> TokenStream {
|
|||
|
||||
let type_str = format!("{}", type_name);
|
||||
(quote! {
|
||||
impl #impl_generics ::solana_sdk::abi_example::AbiEnumVisitor for #type_name #ty_generics #where_clause {
|
||||
fn visit_for_abi(&self, digester: &mut ::solana_sdk::abi_digester::AbiDigester) -> ::solana_sdk::abi_digester::DigestResult {
|
||||
impl #impl_generics ::solana_frozen_abi::abi_example::AbiEnumVisitor for #type_name #ty_generics #where_clause {
|
||||
fn visit_for_abi(&self, digester: &mut ::solana_frozen_abi::abi_digester::AbiDigester) -> ::solana_frozen_abi::abi_digester::DigestResult {
|
||||
let enum_name = #type_str;
|
||||
use ::serde::ser::Serialize;
|
||||
use ::solana_sdk::abi_example::AbiExample;
|
||||
use ::solana_frozen_abi::abi_example::AbiExample;
|
||||
digester.update_with_string(format!("enum {} (variants = {})", enum_name, #variant_count));
|
||||
#serialized_variants
|
||||
Ok(digester.create_child())
|
||||
|
@ -310,12 +310,12 @@ fn quote_for_test(
|
|||
#[cfg(test)]
|
||||
mod #test_mod_ident {
|
||||
use super::*;
|
||||
use ::solana_sdk::abi_example::{AbiExample, AbiEnumVisitor};
|
||||
use ::solana_frozen_abi::abi_example::{AbiExample, AbiEnumVisitor};
|
||||
|
||||
#[test]
|
||||
fn test_abi_digest() {
|
||||
::solana_logger::setup();
|
||||
let mut digester = ::solana_sdk::abi_digester::AbiDigester::create();
|
||||
let mut digester = ::solana_frozen_abi::abi_digester::AbiDigester::create();
|
||||
let example = <#type_name>::example();
|
||||
let result = <_>::visit_for_abi(&&example, &mut digester);
|
||||
let mut hash = digester.finalize();
|
|
@ -550,7 +550,7 @@ mod tests {
|
|||
test_field2: i8,
|
||||
}
|
||||
|
||||
#[frozen_abi(digest = "Hv597t4PieHYvgiXnwRSpKBRTWqteUS4nHZHY6ZxX69v")]
|
||||
#[frozen_abi(digest = "GMeECsxg37a5qznstWXeeX3d6HXs6j12oB4SKaZZuNJk")]
|
||||
#[derive(Serialize, AbiExample)]
|
||||
struct TestNest {
|
||||
nested_field: [TestStruct; 5],
|
||||
|
@ -573,7 +573,7 @@ mod tests {
|
|||
VARIANT2(u8, u16),
|
||||
}
|
||||
|
||||
#[frozen_abi(digest = "CKxzv7VjyUrNR9fGJpTpKyMBWJM4gepKshCS8oV14T1Q")]
|
||||
#[frozen_abi(digest = "DywMfwKq8HZCbUfTwnemHWMN8LvMZCvipQuLddQ2ywwG")]
|
||||
#[derive(Serialize, AbiExample)]
|
||||
struct TestVecEnum {
|
||||
enums: Vec<TestTupleVariant>,
|
|
@ -213,9 +213,9 @@ atomic_example_impls! { AtomicI64 }
|
|||
atomic_example_impls! { AtomicIsize }
|
||||
atomic_example_impls! { AtomicBool }
|
||||
|
||||
#[cfg(feature = "everything")]
|
||||
#[cfg(not(target_arch = "bpf"))]
|
||||
use generic_array::{ArrayLength, GenericArray};
|
||||
#[cfg(feature = "everything")]
|
||||
#[cfg(not(target_arch = "bpf"))]
|
||||
impl<T: Default, U: ArrayLength<T>> AbiExample for GenericArray<T, U> {
|
||||
fn example() -> Self {
|
||||
Self::default()
|
||||
|
@ -413,14 +413,14 @@ impl<T: std::cmp::Ord + AbiExample> AbiExample for BTreeSet<T> {
|
|||
}
|
||||
}
|
||||
|
||||
#[cfg(feature = "everything")]
|
||||
#[cfg(not(target_arch = "bpf"))]
|
||||
impl AbiExample for memmap::MmapMut {
|
||||
fn example() -> Self {
|
||||
memmap::MmapMut::map_anon(1).expect("failed to map the data file")
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(feature = "everything")]
|
||||
#[cfg(not(target_arch = "bpf"))]
|
||||
impl AbiExample for std::path::PathBuf {
|
||||
fn example() -> Self {
|
||||
std::path::PathBuf::from(String::example())
|
|
@ -0,0 +1,28 @@
|
|||
use sha2::{Digest, Sha256};
|
||||
use std::{convert::TryFrom, fmt};
|
||||
|
||||
const HASH_BYTES: usize = 32;
|
||||
#[derive(AbiExample)]
|
||||
pub struct Hash(pub [u8; HASH_BYTES]);
|
||||
|
||||
#[derive(Default)]
|
||||
pub struct Hasher {
|
||||
hasher: Sha256,
|
||||
}
|
||||
|
||||
impl Hasher {
|
||||
pub fn hash(&mut self, val: &[u8]) {
|
||||
self.hasher.input(val);
|
||||
}
|
||||
pub fn result(self) -> Hash {
|
||||
// At the time of this writing, the sha2 library is stuck on an old version
|
||||
// of generic_array (0.9.0). Decouple ourselves with a clone to our version.
|
||||
Hash(<[u8; HASH_BYTES]>::try_from(self.hasher.result().as_slice()).unwrap())
|
||||
}
|
||||
}
|
||||
|
||||
impl fmt::Display for Hash {
|
||||
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
|
||||
write!(f, "{}", bs58::encode(self.0).into_string())
|
||||
}
|
||||
}
|
|
@ -0,0 +1,22 @@
|
|||
#![cfg_attr(RUSTC_WITH_SPECIALIZATION, feature(specialization))]
|
||||
#![cfg_attr(RUSTC_NEEDS_PROC_MACRO_HYGIENE, feature(proc_macro_hygiene))]
|
||||
|
||||
// Allows macro expansion of `use ::solana_frozen_abi::*` to work within this crate
|
||||
extern crate self as solana_frozen_abi;
|
||||
|
||||
#[cfg(RUSTC_WITH_SPECIALIZATION)]
|
||||
pub mod abi_digester;
|
||||
#[cfg(RUSTC_WITH_SPECIALIZATION)]
|
||||
pub mod abi_example;
|
||||
|
||||
#[cfg(RUSTC_WITH_SPECIALIZATION)]
|
||||
mod hash;
|
||||
|
||||
#[cfg(RUSTC_WITH_SPECIALIZATION)]
|
||||
#[macro_use]
|
||||
extern crate solana_frozen_abi_macro;
|
||||
|
||||
#[cfg(RUSTC_WITH_SPECIALIZATION)]
|
||||
#[cfg(test)]
|
||||
#[macro_use]
|
||||
extern crate serde_derive;
|
|
@ -2017,6 +2017,35 @@ dependencies = [
|
|||
"winapi 0.3.8",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "solana-frozen-abi"
|
||||
version = "1.5.0"
|
||||
dependencies = [
|
||||
"bs58",
|
||||
"bv",
|
||||
"generic-array 0.14.3",
|
||||
"log",
|
||||
"memmap",
|
||||
"rustc_version",
|
||||
"serde",
|
||||
"serde_derive",
|
||||
"sha2",
|
||||
"solana-frozen-abi-macro",
|
||||
"solana-logger",
|
||||
"thiserror",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "solana-frozen-abi-macro"
|
||||
version = "1.5.0"
|
||||
dependencies = [
|
||||
"lazy_static",
|
||||
"proc-macro2 1.0.19",
|
||||
"quote 1.0.6",
|
||||
"rustc_version",
|
||||
"syn 1.0.27",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "solana-logger"
|
||||
version = "1.5.0"
|
||||
|
@ -2088,12 +2117,13 @@ dependencies = [
|
|||
"serde",
|
||||
"serde_derive",
|
||||
"solana-config-program",
|
||||
"solana-frozen-abi",
|
||||
"solana-frozen-abi-macro",
|
||||
"solana-logger",
|
||||
"solana-measure",
|
||||
"solana-metrics",
|
||||
"solana-rayon-threadlimit",
|
||||
"solana-sdk",
|
||||
"solana-sdk-macro-frozen-abi",
|
||||
"solana-secp256k1-program",
|
||||
"solana-stake-program",
|
||||
"solana-vote-program",
|
||||
|
@ -2139,9 +2169,10 @@ dependencies = [
|
|||
"sha2",
|
||||
"sha3",
|
||||
"solana-crate-features",
|
||||
"solana-frozen-abi",
|
||||
"solana-frozen-abi-macro",
|
||||
"solana-logger",
|
||||
"solana-sdk-macro",
|
||||
"solana-sdk-macro-frozen-abi",
|
||||
"thiserror",
|
||||
]
|
||||
|
||||
|
@ -2156,17 +2187,6 @@ dependencies = [
|
|||
"syn 1.0.27",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "solana-sdk-macro-frozen-abi"
|
||||
version = "1.5.0"
|
||||
dependencies = [
|
||||
"lazy_static",
|
||||
"proc-macro2 1.0.19",
|
||||
"quote 1.0.6",
|
||||
"rustc_version",
|
||||
"syn 1.0.27",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "solana-secp256k1-program"
|
||||
version = "1.5.0"
|
||||
|
@ -2192,9 +2212,10 @@ dependencies = [
|
|||
"serde",
|
||||
"serde_derive",
|
||||
"solana-config-program",
|
||||
"solana-frozen-abi",
|
||||
"solana-frozen-abi-macro",
|
||||
"solana-metrics",
|
||||
"solana-sdk",
|
||||
"solana-sdk-macro-frozen-abi",
|
||||
"solana-vote-program",
|
||||
"thiserror",
|
||||
]
|
||||
|
@ -2210,10 +2231,11 @@ dependencies = [
|
|||
"rustc_version",
|
||||
"serde",
|
||||
"serde_derive",
|
||||
"solana-frozen-abi",
|
||||
"solana-frozen-abi-macro",
|
||||
"solana-logger",
|
||||
"solana-metrics",
|
||||
"solana-sdk",
|
||||
"solana-sdk-macro-frozen-abi",
|
||||
"thiserror",
|
||||
]
|
||||
|
||||
|
|
|
@ -15,11 +15,12 @@ num-derive = "0.3"
|
|||
num-traits = "0.2"
|
||||
serde = "1.0.112"
|
||||
serde_derive = "1.0.103"
|
||||
solana-frozen-abi = { path = "../../frozen-abi", version = "1.5.0" }
|
||||
solana-frozen-abi-macro = { path = "../../frozen-abi/macro", version = "1.5.0" }
|
||||
solana-metrics = { path = "../../metrics", version = "1.5.0" }
|
||||
solana-sdk = { path = "../../sdk", version = "1.5.0" }
|
||||
solana-vote-program = { path = "../vote", version = "1.5.0" }
|
||||
solana-config-program = { path = "../config", version = "1.5.0" }
|
||||
solana-sdk-macro-frozen-abi = { path = "../../sdk/macro-frozen-abi", version = "1.5.0" }
|
||||
thiserror = "1.0"
|
||||
|
||||
[dev-dependencies]
|
||||
|
|
|
@ -1 +1 @@
|
|||
../../sdk/build.rs
|
||||
../../frozen-abi/build.rs
|
|
@ -12,4 +12,4 @@ pub fn add_genesis_accounts(genesis_config: &mut GenesisConfig) -> u64 {
|
|||
}
|
||||
|
||||
#[macro_use]
|
||||
extern crate solana_sdk_macro_frozen_abi;
|
||||
extern crate solana_frozen_abi_macro;
|
||||
|
|
|
@ -15,10 +15,11 @@ num-derive = "0.3"
|
|||
num-traits = "0.2"
|
||||
serde = "1.0.112"
|
||||
serde_derive = "1.0.103"
|
||||
solana-frozen-abi = { path = "../../frozen-abi", version = "1.5.0" }
|
||||
solana-frozen-abi-macro = { path = "../../frozen-abi/macro", version = "1.5.0" }
|
||||
solana-logger = { path = "../../logger", version = "1.5.0" }
|
||||
solana-metrics = { path = "../../metrics", version = "1.5.0" }
|
||||
solana-sdk = { path = "../../sdk", version = "1.5.0" }
|
||||
solana-sdk-macro-frozen-abi = { path = "../../sdk/macro-frozen-abi", version = "1.5.0" }
|
||||
thiserror = "1.0"
|
||||
|
||||
[build-dependencies]
|
||||
|
|
|
@ -1 +1 @@
|
|||
../../sdk/build.rs
|
||||
../../frozen-abi/build.rs
|
|
@ -9,6 +9,6 @@ pub mod vote_transaction;
|
|||
extern crate solana_metrics;
|
||||
|
||||
#[macro_use]
|
||||
extern crate solana_sdk_macro_frozen_abi;
|
||||
extern crate solana_frozen_abi_macro;
|
||||
|
||||
solana_sdk::declare_id!("Vote111111111111111111111111111111111111111");
|
||||
|
|
|
@ -35,12 +35,13 @@ regex = "1.3.9"
|
|||
serde = { version = "1.0.112", features = ["rc"] }
|
||||
serde_derive = "1.0.103"
|
||||
solana-config-program = { path = "../programs/config", version = "1.5.0" }
|
||||
solana-frozen-abi = { path = "../frozen-abi", version = "1.5.0" }
|
||||
solana-frozen-abi-macro = { path = "../frozen-abi/macro", version = "1.5.0" }
|
||||
solana-logger = { path = "../logger", version = "1.5.0" }
|
||||
solana-measure = { path = "../measure", version = "1.5.0" }
|
||||
solana-metrics = { path = "../metrics", version = "1.5.0" }
|
||||
solana-rayon-threadlimit = { path = "../rayon-threadlimit", version = "1.5.0" }
|
||||
solana-sdk = { path = "../sdk", version = "1.5.0" }
|
||||
solana-sdk-macro-frozen-abi = { path = "../sdk/macro-frozen-abi", version = "1.5.0" }
|
||||
solana-stake-program = { path = "../programs/stake", version = "1.5.0" }
|
||||
solana-vote-program = { path = "../programs/vote", version = "1.5.0" }
|
||||
solana-secp256k1-program = { path = "../programs/secp256k1", version = "1.5.0" }
|
||||
|
|
|
@ -1 +1 @@
|
|||
../sdk/build.rs
|
||||
../frozen-abi/build.rs
|
|
@ -469,7 +469,7 @@ fn make_min_priority_thread_pool() -> ThreadPool {
|
|||
}
|
||||
|
||||
#[cfg(all(test, RUSTC_WITH_SPECIALIZATION))]
|
||||
impl solana_sdk::abi_example::AbiExample for AccountsDB {
|
||||
impl solana_frozen_abi::abi_example::AbiExample for AccountsDB {
|
||||
fn example() -> Self {
|
||||
let accounts_db = AccountsDB::new_single();
|
||||
let key = Pubkey::default();
|
||||
|
|
|
@ -330,7 +330,7 @@ pub struct BankRc {
|
|||
}
|
||||
|
||||
#[cfg(RUSTC_WITH_SPECIALIZATION)]
|
||||
use solana_sdk::abi_example::AbiExample;
|
||||
use solana_frozen_abi::abi_example::AbiExample;
|
||||
#[cfg(RUSTC_WITH_SPECIALIZATION)]
|
||||
impl AbiExample for BankRc {
|
||||
fn example() -> Self {
|
||||
|
|
|
@ -44,7 +44,7 @@ extern crate solana_metrics;
|
|||
extern crate serde_derive;
|
||||
|
||||
#[macro_use]
|
||||
extern crate solana_sdk_macro_frozen_abi;
|
||||
extern crate solana_frozen_abi_macro;
|
||||
|
||||
extern crate fs_extra;
|
||||
extern crate tempfile;
|
||||
|
|
|
@ -387,7 +387,7 @@ impl Clone for MessageProcessor {
|
|||
}
|
||||
|
||||
#[cfg(RUSTC_WITH_SPECIALIZATION)]
|
||||
impl ::solana_sdk::abi_example::AbiExample for MessageProcessor {
|
||||
impl ::solana_frozen_abi::abi_example::AbiExample for MessageProcessor {
|
||||
fn example() -> Self {
|
||||
// MessageProcessor's fields are #[serde(skip)]-ed and not Serialize
|
||||
// so, just rely on Default anyway.
|
||||
|
|
|
@ -39,7 +39,7 @@ use {
|
|||
};
|
||||
|
||||
#[cfg(RUSTC_WITH_SPECIALIZATION)]
|
||||
use solana_sdk::abi_example::IgnoreAsHelper;
|
||||
use solana_frozen_abi::abi_example::IgnoreAsHelper;
|
||||
|
||||
mod common;
|
||||
mod future;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
use super::common::UnusedAccounts;
|
||||
#[cfg(all(test, RUSTC_WITH_SPECIALIZATION))]
|
||||
use solana_sdk::abi_example::IgnoreAsHelper;
|
||||
use solana_frozen_abi::abi_example::IgnoreAsHelper;
|
||||
use {super::*, solana_measure::measure::Measure, std::cell::RefCell};
|
||||
|
||||
type AccountsDbFields = super::AccountsDbFields<SerializableAccountStorageEntry>;
|
||||
|
@ -13,7 +13,7 @@ pub(super) struct SerializableAccountStorageEntry {
|
|||
}
|
||||
|
||||
#[cfg(all(test, RUSTC_WITH_SPECIALIZATION))]
|
||||
impl solana_sdk::abi_example::IgnoreAsHelper for SerializableAccountStorageEntry {}
|
||||
impl solana_frozen_abi::abi_example::IgnoreAsHelper for SerializableAccountStorageEntry {}
|
||||
|
||||
impl From<&AccountStorageEntry> for SerializableAccountStorageEntry {
|
||||
fn from(rhs: &AccountStorageEntry) -> Self {
|
||||
|
|
|
@ -262,7 +262,7 @@ mod test_bank_serialize {
|
|||
|
||||
// These some what long test harness is required to freeze the ABI of
|
||||
// Bank's serialization due to versioned nature
|
||||
#[frozen_abi(digest = "5rd8RyVSLH3hm12xJDVCJWgc1gyqb4Ukt2hJLJNfsB5v")]
|
||||
#[frozen_abi(digest = "ULV2jDndxR3JB677ayyjaamtAcZ24q75tCkHS2bKVoy")]
|
||||
#[derive(Serialize, AbiExample)]
|
||||
pub struct BankAbiTestWrapperFuture {
|
||||
#[serde(serialize_with = "wrapper_future")]
|
||||
|
|
|
@ -3,7 +3,7 @@ use serde::{
|
|||
Serialize, Serializer,
|
||||
};
|
||||
#[cfg(all(test, RUSTC_WITH_SPECIALIZATION))]
|
||||
use solana_sdk::abi_example::IgnoreAsHelper;
|
||||
use solana_frozen_abi::abi_example::IgnoreAsHelper;
|
||||
|
||||
// consumes an iterator and returns an object that will serialize as a serde seq
|
||||
#[allow(dead_code)]
|
||||
|
|
|
@ -61,8 +61,9 @@ thiserror = "1.0"
|
|||
ed25519-dalek = { version = "=1.0.0-pre.4", optional = true }
|
||||
solana-crate-features = { path = "../crate-features", version = "1.5.0", optional = true }
|
||||
solana-logger = { path = "../logger", version = "1.5.0", optional = true }
|
||||
solana-frozen-abi = { path = "../frozen-abi", version = "1.5.0" }
|
||||
solana-frozen-abi-macro = { path = "../frozen-abi/macro", version = "1.5.0" }
|
||||
solana-sdk-macro = { path = "macro", version = "1.5.0" }
|
||||
solana-sdk-macro-frozen-abi = { path = "macro-frozen-abi", version = "1.5.0" }
|
||||
rustversion = "1.0.3"
|
||||
libsecp256k1 = { version = "0.3.5", optional = true }
|
||||
sha3 = { version = "0.9.1", optional = true }
|
||||
|
|
27
sdk/build.rs
27
sdk/build.rs
|
@ -1,27 +0,0 @@
|
|||
extern crate rustc_version;
|
||||
use rustc_version::{version_meta, Channel};
|
||||
|
||||
fn main() {
|
||||
// Copied and adapted from
|
||||
// https://github.com/Kimundi/rustc-version-rs/blob/1d692a965f4e48a8cb72e82cda953107c0d22f47/README.md#example
|
||||
// Licensed under Apache-2.0 + MIT
|
||||
match version_meta().unwrap().channel {
|
||||
Channel::Stable => {
|
||||
println!("cargo:rustc-cfg=RUSTC_WITHOUT_SPECIALIZATION");
|
||||
}
|
||||
Channel::Beta => {
|
||||
println!("cargo:rustc-cfg=RUSTC_WITHOUT_SPECIALIZATION");
|
||||
}
|
||||
Channel::Nightly => {
|
||||
println!("cargo:rustc-cfg=RUSTC_WITH_SPECIALIZATION");
|
||||
}
|
||||
Channel::Dev => {
|
||||
println!("cargo:rustc-cfg=RUSTC_WITH_SPECIALIZATION");
|
||||
// See https://github.com/solana-labs/solana/issues/11055
|
||||
// We may be running the custom `rust-bpf-builder` toolchain,
|
||||
// which currently needs `#![feature(proc_macro_hygiene)]` to
|
||||
// be applied.
|
||||
println!("cargo:rustc-cfg=RUSTC_NEEDS_PROC_MACRO_HYGIENE");
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1 @@
|
|||
../frozen-abi/build.rs
|
|
@ -4,11 +4,6 @@
|
|||
// Allows macro expansion of `use ::solana_sdk::*` to work within this crate
|
||||
extern crate self as solana_sdk;
|
||||
|
||||
#[cfg(RUSTC_WITH_SPECIALIZATION)]
|
||||
pub mod abi_digester;
|
||||
#[cfg(RUSTC_WITH_SPECIALIZATION)]
|
||||
pub mod abi_example;
|
||||
|
||||
pub mod account;
|
||||
pub mod account_utils;
|
||||
pub mod bpf_loader;
|
||||
|
@ -131,4 +126,4 @@ pub extern crate bs58;
|
|||
extern crate log as logger;
|
||||
|
||||
#[macro_use]
|
||||
extern crate solana_sdk_macro_frozen_abi;
|
||||
extern crate solana_frozen_abi_macro;
|
||||
|
|
|
@ -0,0 +1,8 @@
|
|||
#!/usr/bin/env bash
|
||||
#
|
||||
# Easily run the ABI tests for the entire repo or a subset
|
||||
#
|
||||
|
||||
here=$(dirname "$0")
|
||||
set -x
|
||||
exec ${here}/cargo nightly test --lib -- test_abi_
|
|
@ -12,10 +12,11 @@ edition = "2018"
|
|||
log = "0.4.8"
|
||||
serde = "1.0.112"
|
||||
serde_derive = "1.0.103"
|
||||
solana-frozen-abi = { path = "../frozen-abi", version = "1.5.0" }
|
||||
solana-frozen-abi-macro = { path = "../frozen-abi/macro", version = "1.5.0" }
|
||||
solana-logger = { path = "../logger", version = "1.5.0" }
|
||||
solana-sdk = { path = "../sdk", version = "1.5.0" }
|
||||
solana-runtime = { path = "../runtime", version = "1.5.0" }
|
||||
solana-sdk-macro-frozen-abi = { path = "../sdk/macro-frozen-abi", version = "1.5.0" }
|
||||
|
||||
[lib]
|
||||
name = "solana_version"
|
||||
|
|
|
@ -1 +1 @@
|
|||
../sdk/build.rs
|
||||
../frozen-abi/build.rs
|
|
@ -5,7 +5,7 @@ use serde_derive::{Deserialize, Serialize};
|
|||
use solana_sdk::sanitize::Sanitize;
|
||||
use std::{convert::TryInto, fmt};
|
||||
#[macro_use]
|
||||
extern crate solana_sdk_macro_frozen_abi;
|
||||
extern crate solana_frozen_abi_macro;
|
||||
|
||||
// Older version structure used earlier 1.3.x releases
|
||||
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, AbiExample)]
|
||||
|
|
Loading…
Reference in New Issue