Skip to content

Commit fe2000a

Browse files
committed
feat: add svm crate
1 parent fea9f0b commit fe2000a

30 files changed

Lines changed: 3894 additions & 21 deletions

‎Cargo.toml‎

Lines changed: 24 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,5 @@
11
[workspace]
2-
members = [
3-
"solana/account",
4-
"solana/program-runtime",
5-
"solana/transaction-context",
6-
]
2+
members = ["solana/account", "solana/program-runtime", "solana/svm", "solana/transaction-context"]
73
resolver = "3"
84

95
[workspace.package]
@@ -18,6 +14,7 @@ version = "0.1.0"
1814
[workspace.dependencies]
1915
solana-account = { path = "solana/account" }
2016
solana-program-runtime = { path = "solana/program-runtime" }
17+
solana-svm = { path = "solana/svm" }
2118
solana-transaction-context = { path = "solana/transaction-context" }
2219

2320
ahash = "0.8.12"
@@ -29,6 +26,7 @@ bitflags = "2.11.1"
2926
cfg-if = "1.0.4"
3027
criterion = "0.7.0"
3128
derive_more = "2.1.1"
29+
env_logger = "0.11.8"
3230
itertools = "0.14.0"
3331
log = "0.4.29"
3432
qualifier_attr = "0.2.2"
@@ -45,9 +43,11 @@ agave-feature-set = "4.0.0"
4543
agave-transaction-view = "4.0.0"
4644
solana-account-info = "3.1.1"
4745
solana-clock = "3.0.1"
46+
solana-ed25519-program = "3.0.0"
4847
solana-epoch-rewards = "3.0.1"
4948
solana-epoch-schedule = "~3.0.0"
5049
solana-feature-gate-interface = { version = "4.0", features = ["bincode"] }
50+
solana-fee-calculator = "3.2.0"
5151
solana-fee-structure = "3.0.0"
5252
solana-frozen-abi = "3.2.0"
5353
solana-frozen-abi-macro = "3.2.1"
@@ -58,6 +58,10 @@ solana-instructions-sysvar = "3.0.0"
5858
solana-keypair = "3.1.0"
5959
solana-last-restart-slot = "3.0.0"
6060
solana-loader-v3-interface = "6.1.0"
61+
solana-message = "3.1.0"
62+
solana-native-token = "3.0.0"
63+
solana-packet = "4.1.0"
64+
solana-precompile-error = "3.0.0"
6165
solana-program-entrypoint = "3.1.1"
6266
solana-pubkey = "~4.1.0"
6367
solana-rent = "3.0.0"
@@ -69,24 +73,27 @@ solana-signature = "3.3.0"
6973
solana-signer = "3.0.0"
7074
solana-slot-hashes = "3.0.1"
7175
solana-stable-layout = "3.0.0"
72-
solana-sysvar = "3.1.1"
73-
solana-sysvar-id = "3.1.0"
74-
solana-system-interface = ">=3.0.0, <3.2.0"
75-
solana-svm-callback = "4.0.0-rc.1"
76-
solana-svm-feature-set = "4.0.0-rc.1"
77-
solana-svm-log-collector = "4.0.0-rc.1"
78-
solana-svm-measure = "4.0.0-rc.1"
79-
solana-svm-timings = "4.0.0-rc.1"
80-
solana-svm-transaction = "4.0.0-rc.1"
81-
solana-svm-type-overrides = "4.0.0-rc.1"
82-
solana-system-interface = ">=3.0.0, <3.2.0"
83-
solana-system-program = "4.0.0-rc.0"
76+
solana-svm-callback = "4.0.0"
77+
solana-svm-feature-set = "4.0.0"
78+
solana-svm-log-collector = "4.0.0"
79+
solana-svm-measure = "4.0.0"
80+
solana-svm-timings = "4.0.0"
81+
solana-svm-transaction = "4.0.0"
82+
solana-svm-type-overrides = "4.0.0"
83+
solana-system-interface = "3.0.0"
84+
solana-system-program = "4.0.0"
8485
solana-system-transaction = "3.0.0"
8586
solana-sysvar = "3.1.1"
8687
solana-sysvar-id = "3.1.0"
8788
solana-transaction = "3.1.0"
8889
solana-transaction-error = "3.2"
8990

91+
[patch.crates-io]
92+
solana-account = { path = "solana/account" }
93+
solana-program-runtime = { path = "solana/program-runtime" }
94+
solana-svm = { path = "solana/svm" }
95+
solana-transaction-context = { path = "solana/transaction-context" }
96+
9097

9198
[workspace.lints.rust]
9299
missing_docs = "deny"

‎solana/program-runtime/Cargo.toml‎

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,7 @@ name = "solana-program-runtime"
44
authors = { workspace = true }
55
description = "Solana program runtime"
66
documentation = "https://docs.rs/solana-program-runtime"
7-
version = { workspace = true }
8-
authors = { workspace = true }
9-
repository = { workspace = true }
7+
edition = { workspace = true }
108
homepage = { workspace = true }
119
license = { workspace = true }
1210
repository = { workspace = true }

‎solana/svm/Cargo.toml‎

Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
1+
[package]
2+
name = "solana-svm"
3+
4+
authors = { workspace = true }
5+
description = "Solana SVM"
6+
documentation = "https://docs.rs/solana-svm"
7+
edition = { workspace = true }
8+
homepage = { workspace = true }
9+
license = { workspace = true }
10+
repository = { workspace = true }
11+
version = "4.0.0"
12+
13+
[package.metadata.docs.rs]
14+
targets = ["x86_64-unknown-linux-gnu"]
15+
16+
[lib]
17+
crate-type = ["lib"]
18+
name = "solana_svm"
19+
20+
[features]
21+
agave-unstable-api = [
22+
"solana-program-runtime/agave-unstable-api",
23+
"solana-svm-callback/agave-unstable-api",
24+
"solana-svm-feature-set/agave-unstable-api",
25+
"solana-svm-log-collector/agave-unstable-api",
26+
"solana-svm-measure/agave-unstable-api",
27+
"solana-svm-timings/agave-unstable-api",
28+
"solana-svm-transaction/agave-unstable-api",
29+
"solana-svm-type-overrides/agave-unstable-api",
30+
"solana-transaction-context/agave-unstable-api"
31+
]
32+
default = ["metrics"]
33+
dev-context-only-utils = ["dep:qualifier_attr", "solana-program-runtime/dev-context-only-utils"]
34+
dummy-for-ci-check = ["metrics"]
35+
frozen-abi = [
36+
"dep:solana-frozen-abi",
37+
"dep:solana-frozen-abi-macro",
38+
"solana-program-runtime/frozen-abi"
39+
]
40+
metrics = ["solana-program-runtime/metrics"]
41+
shuttle-test = ["solana-program-runtime/shuttle-test", "solana-svm-type-overrides/shuttle-test"]
42+
svm-internal = ["dep:qualifier_attr"]
43+
44+
[dependencies]
45+
ahash = { workspace = true }
46+
log = { workspace = true }
47+
qualifier_attr = { workspace = true, optional = true }
48+
scc = { workspace = true }
49+
serde = { workspace = true, features = ["rc"] }
50+
thiserror = { workspace = true }
51+
52+
solana-account = { workspace = true }
53+
solana-clock = { workspace = true }
54+
solana-fee-structure = { workspace = true }
55+
solana-frozen-abi = { workspace = true, optional = true, features = ["frozen-abi"] }
56+
solana-frozen-abi-macro = { workspace = true, optional = true, features = ["frozen-abi"] }
57+
solana-hash = { workspace = true }
58+
solana-instruction = { workspace = true, features = ["std"] }
59+
solana-instructions-sysvar = { workspace = true }
60+
solana-loader-v3-interface = { workspace = true, features = ["bincode"] }
61+
solana-message = { workspace = true }
62+
solana-program-entrypoint = { workspace = true }
63+
solana-program-runtime = { workspace = true }
64+
solana-pubkey = { workspace = true }
65+
solana-rent = { workspace = true }
66+
solana-sdk-ids = { workspace = true }
67+
solana-svm-callback = { workspace = true }
68+
solana-svm-feature-set = { workspace = true }
69+
solana-svm-log-collector = { workspace = true }
70+
solana-svm-measure = { workspace = true }
71+
solana-svm-timings = { workspace = true }
72+
solana-svm-transaction = { workspace = true }
73+
solana-svm-type-overrides = { workspace = true }
74+
solana-system-interface = { workspace = true }
75+
solana-sysvar-id = { workspace = true }
76+
solana-transaction-context = { workspace = true }
77+
solana-transaction-error = { workspace = true }
78+
79+
[dev-dependencies]
80+
bincode = { workspace = true }
81+
env_logger = { workspace = true }
82+
rand = { workspace = true }
83+
solana-clock = { workspace = true }
84+
solana-ed25519-program = { workspace = true }
85+
solana-epoch-schedule = { workspace = true }
86+
solana-fee-calculator = { workspace = true }
87+
solana-keypair = { workspace = true }
88+
solana-native-token = { workspace = true }
89+
solana-precompile-error = { workspace = true }
90+
solana-program-runtime = { workspace = true, features = ["dev-context-only-utils"] }
91+
solana-pubkey = { workspace = true, features = ["rand"] }
92+
solana-rent = { workspace = true }
93+
solana-sbpf = { workspace = true, features = ["jit"] }
94+
solana-signature = { workspace = true, features = ["rand"] }
95+
solana-signer = { workspace = true }
96+
# See order-crates-for-publishing.py for using this unusual `path = "."`
97+
solana-svm = { path = ".", features = [
98+
"agave-unstable-api",
99+
"dev-context-only-utils",
100+
"svm-internal"
101+
] }
102+
solana-system-transaction = { workspace = true }
103+
solana-sysvar = { workspace = true }
104+
solana-transaction = { workspace = true, features = ["dev-context-only-utils"] }
105+
solana-transaction-context = { workspace = true, features = ["dev-context-only-utils"] }
106+
107+
[lints.rust]
108+
unexpected_cfgs = "allow"

0 commit comments

Comments
 (0)