Cargo.toml 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310
  1. [package]
  2. name = "solana-sbf-programs"
  3. documentation = "https://docs.rs/solana"
  4. readme = "README.md"
  5. publish = false
  6. version = { workspace = true }
  7. authors = { workspace = true }
  8. description = { workspace = true }
  9. repository = { workspace = true }
  10. homepage = { workspace = true }
  11. license = { workspace = true }
  12. edition = { workspace = true }
  13. [workspace]
  14. members = [
  15. "rust/128bit",
  16. "rust/128bit_dep",
  17. "rust/account_mem",
  18. "rust/account_mem_deprecated",
  19. "rust/alloc",
  20. "rust/alt_bn128",
  21. "rust/alt_bn128_compression",
  22. "rust/big_mod_exp",
  23. "rust/call_args",
  24. "rust/call_depth",
  25. "rust/caller_access",
  26. "rust/curve25519",
  27. "rust/custom_heap",
  28. "rust/dep_crate",
  29. "rust/deprecated_loader",
  30. "rust/divide_by_zero",
  31. "rust/dup_accounts",
  32. "rust/error_handling",
  33. "rust/external_spend",
  34. "rust/get_minimum_delegation",
  35. "rust/inner_instruction_alignment_check",
  36. "rust/instruction_introspection",
  37. "rust/invoke",
  38. "rust/invoke_and_error",
  39. "rust/invoke_and_ok",
  40. "rust/invoke_and_return",
  41. "rust/invoked",
  42. "rust/iter",
  43. "rust/log_data",
  44. "rust/many_args",
  45. "rust/many_args_dep",
  46. "rust/mem",
  47. "rust/mem_dep",
  48. "rust/membuiltins",
  49. "rust/noop",
  50. "rust/panic",
  51. "rust/param_passing",
  52. "rust/param_passing_dep",
  53. "rust/poseidon",
  54. "rust/r2_instruction_data_pointer",
  55. "rust/rand",
  56. "rust/realloc",
  57. "rust/realloc_invoke",
  58. "rust/remaining_compute_units",
  59. "rust/ro_account_modify",
  60. "rust/ro_modify",
  61. "rust/sanity",
  62. "rust/secp256k1_recover",
  63. "rust/sha",
  64. "rust/sibling_inner_instructions",
  65. "rust/sibling_instructions",
  66. "rust/simulation",
  67. "rust/spoof1",
  68. "rust/spoof1_system",
  69. "rust/syscall-get-epoch-stake",
  70. "rust/sysvar",
  71. "rust/upgradeable",
  72. "rust/upgraded",
  73. ]
  74. [workspace.package]
  75. version = "4.0.0-alpha.0"
  76. description = "Solana SBF test program written in Rust"
  77. authors = ["Anza Maintainers <maintainers@anza.xyz>"]
  78. repository = "https://github.com/anza-xyz/agave"
  79. homepage = "https://anza.xyz"
  80. license = "Apache-2.0"
  81. edition = "2021"
  82. [workspace.lints.rust.unexpected_cfgs]
  83. level = "warn"
  84. check-cfg = [
  85. 'cfg(target_os, values("solana"))',
  86. 'cfg(feature, values("custom-panic", "custom-heap"))',
  87. 'cfg(target_feature, values("dynamic-frames"))',
  88. ]
  89. [workspace.dependencies]
  90. agave-feature-set = { path = "../../feature-set", version = "=4.0.0-alpha.0" }
  91. agave-logger = { path = "../../logger", version = "=4.0.0-alpha.0" }
  92. agave-reserved-account-keys = { path = "../../reserved-account-keys", version = "=4.0.0-alpha.0" }
  93. agave-syscalls = { path = "../../syscalls", version = "=4.0.0-alpha.0" }
  94. agave-validator = { path = "../../validator", version = "=4.0.0-alpha.0" }
  95. array-bytes = "=1.4.1"
  96. bincode = { version = "1.1.4", default-features = false }
  97. blake3 = "1.0.0"
  98. borsh = "1.5.1"
  99. byteorder = "1.3.2"
  100. elf = "0.0.10"
  101. getrandom = "0.2.10"
  102. itertools = "0.12.1"
  103. libsecp256k1 = { version = "0.7.0", default-features = false }
  104. log = "0.4.11"
  105. miow = "0.3.6"
  106. net2 = "0.2.37"
  107. num-derive = "0.4.2"
  108. num-traits = "0.2"
  109. rand = "0.8"
  110. serde = { version = "1.0.112", features = ["derive"] }
  111. serde_json = "1.0.56"
  112. sha2 = "0.10.8"
  113. sha3 = "0.10.8"
  114. solana-account-decoder = { path = "../../account-decoder", version = "=4.0.0-alpha.0" }
  115. solana-account-info = "=3.0.0"
  116. solana-accounts-db = { path = "../../accounts-db", version = "=4.0.0-alpha.0" }
  117. solana-big-mod-exp = "=3.0.0"
  118. solana-blake3-hasher = { version = "=3.0.0", features = ["blake3"] }
  119. solana-bn254 = "=3.1.2"
  120. solana-bpf-loader-program = { path = "../bpf_loader", version = "=4.0.0-alpha.0" }
  121. solana-cli-output = { path = "../../cli-output", version = "=4.0.0-alpha.0" }
  122. solana-clock = { version = "=3.0.0", features = ["serde", "sysvar"] }
  123. solana-compute-budget = { path = "../../compute-budget", version = "=4.0.0-alpha.0" }
  124. solana-compute-budget-instruction = { path = "../../compute-budget-instruction", version = "=4.0.0-alpha.0" }
  125. solana-cpi = "=3.0.0"
  126. solana-curve25519 = { path = "../../curves/curve25519", version = "=4.0.0-alpha.0" }
  127. solana-define-syscall = "=3.0.0"
  128. solana-fee = { path = "../../fee", version = "=4.0.0-alpha.0" }
  129. solana-hash = { version = "=3.0.0", features = ["bytemuck", "serde", "std"] }
  130. solana-instruction = "=3.0.0"
  131. solana-instructions-sysvar = "=3.0.0"
  132. solana-keccak-hasher = { version = "=3.0.0", features = ["sha3"] }
  133. solana-ledger = { path = "../../ledger", version = "=4.0.0-alpha.0" }
  134. solana-measure = { path = "../../measure", version = "=4.0.0-alpha.0" }
  135. solana-msg = "=3.0.0"
  136. solana-poseidon = { path = "../../poseidon/", version = "=4.0.0-alpha.0" }
  137. solana-program = "=3.0.0"
  138. solana-program-entrypoint = "=3.1.0"
  139. solana-program-error = "=3.0.0"
  140. solana-program-memory = "=3.0.0"
  141. solana-program-runtime = { path = "../../program-runtime", version = "=4.0.0-alpha.0" }
  142. solana-pubkey = { version = "=3.0.0", default-features = false }
  143. solana-runtime = { path = "../../runtime", version = "=4.0.0-alpha.0" }
  144. solana-runtime-transaction = { path = "../../runtime-transaction", version = "=4.0.0-alpha.0" }
  145. solana-sbf-rust-128bit-dep = { path = "rust/128bit_dep", version = "=4.0.0-alpha.0" }
  146. solana-sbf-rust-invoke-dep = { path = "rust/invoke_dep", version = "=4.0.0-alpha.0" }
  147. solana-sbf-rust-invoked-dep = { path = "rust/invoked_dep", version = "=4.0.0-alpha.0" }
  148. solana-sbf-rust-many-args-dep = { path = "rust/many_args_dep", version = "=4.0.0-alpha.0" }
  149. solana-sbf-rust-mem-dep = { path = "rust/mem_dep", version = "=4.0.0-alpha.0" }
  150. solana-sbf-rust-param-passing-dep = { path = "rust/param_passing_dep", version = "=4.0.0-alpha.0" }
  151. solana-sbf-rust-r2-instruction-data-pointer = { path = "rust/r2_instruction_data_pointer", version = "=4.0.0-alpha.0" }
  152. solana-sbf-rust-realloc-dep = { path = "rust/realloc_dep", version = "=4.0.0-alpha.0" }
  153. solana-sbf-rust-realloc-invoke-dep = { path = "rust/realloc_invoke_dep", version = "=4.0.0-alpha.0" }
  154. solana-sbpf = "=0.13.0"
  155. solana-sdk-ids = "=3.0.0"
  156. solana-secp256k1-recover = "=3.0.0"
  157. solana-sha256-hasher = { version = "=3.0.0", features = ["sha2"] }
  158. solana-stake-interface = { version = "=2.0.1", features = ["bincode"] }
  159. solana-svm = { path = "../../svm", version = "=4.0.0-alpha.0" }
  160. solana-svm-callback = { path = "../../svm-callback", version = "=4.0.0-alpha.0" }
  161. solana-svm-feature-set = { path = "../../svm-feature-set", version = "=4.0.0-alpha.0" }
  162. solana-svm-log-collector = { path = "../../svm-log-collector", version = "=4.0.0-alpha.0" }
  163. solana-svm-timings = { path = "../../svm-timings", version = "=4.0.0-alpha.0" }
  164. solana-svm-transaction = { path = "../../svm-transaction", version = "=4.0.0-alpha.0" }
  165. solana-svm-type-overrides = { path = "../../svm-type-overrides", version = "=4.0.0-alpha.0" }
  166. solana-system-interface = { version = "=2.0", features = ["bincode"] }
  167. solana-sysvar = "=3.0.0"
  168. solana-transaction-context = { path = "../../transaction-context", version = "=4.0.0-alpha.0" }
  169. solana-transaction-status = { path = "../../transaction-status", version = "=4.0.0-alpha.0" }
  170. solana-vote = { path = "../../vote", version = "=4.0.0-alpha.0" }
  171. solana-vote-program = { path = "../../programs/vote", version = "=4.0.0-alpha.0" }
  172. test-case = "3.3.1"
  173. thiserror = "1.0"
  174. [features]
  175. sbf_c = []
  176. sbf_rust = []
  177. sbf_sanity_list = []
  178. dummy-for-ci-check = ["sbf_c", "sbf_rust", "sbf_sanity_list"]
  179. # This was needed for ci
  180. frozen-abi = []
  181. [dev-dependencies]
  182. agave-feature-set = { workspace = true }
  183. agave-logger = { workspace = true }
  184. agave-reserved-account-keys = { workspace = true }
  185. agave-syscalls = { workspace = true }
  186. agave-validator = { workspace = true }
  187. bincode = { workspace = true }
  188. borsh = { workspace = true }
  189. byteorder = { workspace = true }
  190. elf = { workspace = true }
  191. itertools = { workspace = true }
  192. log = { workspace = true }
  193. miow = { workspace = true }
  194. net2 = { workspace = true }
  195. solana-account = "3.2.0"
  196. solana-account-decoder = { workspace = true }
  197. solana-account-info = "3.0.0"
  198. solana-accounts-db = { workspace = true }
  199. solana-bpf-loader-program = { workspace = true }
  200. solana-cli-output = { workspace = true }
  201. solana-client-traits = "3.0.0"
  202. solana-clock = "3.0.0"
  203. solana-cluster-type = "3.0.0"
  204. solana-compute-budget = { workspace = true }
  205. solana-compute-budget-instruction = { workspace = true, features = [
  206. "dev-context-only-utils",
  207. ] }
  208. solana-compute-budget-interface = "3.0.0"
  209. solana-fee = { workspace = true }
  210. solana-fee-calculator = "3.0.0"
  211. solana-fee-structure = "3.0.0"
  212. solana-genesis-config = "3.0.0"
  213. solana-hash = "3.0.0"
  214. solana-instruction = "3.0.0"
  215. solana-keypair = "3.0.0"
  216. solana-ledger = { workspace = true }
  217. solana-loader-v3-interface = "6.1.0"
  218. solana-loader-v4-interface = "3.1.0"
  219. solana-measure = { workspace = true }
  220. solana-message = "3.0.0"
  221. solana-program = { workspace = true }
  222. solana-program-entrypoint = "3.1.0"
  223. solana-program-runtime = { workspace = true }
  224. solana-pubkey = "3.0.0"
  225. solana-rent = "3.0.0"
  226. solana-runtime = { workspace = true, features = ["dev-context-only-utils"] }
  227. solana-runtime-transaction = { workspace = true, features = [
  228. "dev-context-only-utils",
  229. ] }
  230. solana-sbf-rust-invoke-dep = { workspace = true }
  231. solana-sbf-rust-realloc-dep = { workspace = true }
  232. solana-sbf-rust-realloc-invoke-dep = { workspace = true }
  233. solana-sbpf = { workspace = true, features = ["jit"] }
  234. solana-sdk-ids = "3.0.0"
  235. solana-signer = "3.0.0"
  236. solana-stake-interface = "2.0.1"
  237. solana-svm = { workspace = true }
  238. solana-svm-callback = { workspace = true }
  239. solana-svm-feature-set = { workspace = true }
  240. solana-svm-log-collector = { workspace = true }
  241. solana-svm-timings = { workspace = true }
  242. solana-svm-transaction = { workspace = true }
  243. solana-svm-type-overrides = { workspace = true }
  244. solana-system-interface = "2.0"
  245. solana-sysvar = "3.0.0"
  246. solana-transaction = "3.0.0"
  247. solana-transaction-context = { workspace = true, features = [
  248. "dev-context-only-utils",
  249. ] }
  250. solana-transaction-error = "3.0.0"
  251. solana-transaction-status = { workspace = true }
  252. solana-vote = { workspace = true }
  253. solana-vote-program = { workspace = true }
  254. test-case = { workspace = true }
  255. [profile.release]
  256. # The test programs are build in release mode
  257. # Minimize their file size so that they fit into the account size limit
  258. strip = true
  259. [[bench]]
  260. name = "bpf_loader"
  261. [patch.crates-io]
  262. # We include the following crates as our dependencies from crates.io:
  263. #
  264. # * spl-associated-token-account-interface
  265. # * spl-instruction-padding
  266. # * spl-memo-interface
  267. # * spl-pod
  268. # * spl-token
  269. # * spl-token-2022-interface
  270. # * spl-token-metadata-interface
  271. #
  272. # They are included indirectly, for example, `account-decoder` depends on
  273. #
  274. # solana-sdk = { workspace = true }
  275. #
  276. # and that is specified as
  277. #
  278. # spl-token = "=3.5.0"
  279. #
  280. # in `../../Cargo.toml`.
  281. #
  282. # `spl-token`, in turn, depends on `solana-program`, which we explicitly specify
  283. # above as a local path dependency:
  284. #
  285. # solana-program = { path = "../../sdk/program", version = "=1.16.0" }
  286. #
  287. # Unfortunately, Cargo will try to resolve the `spl-token` `solana-program`
  288. # dependency only using what is available on crates.io. Crates.io normally
  289. # contains a previous version of these crates, and we end up with two versions
  290. # of `solana-program` and `solana-zk-token-sdk` and all of their dependencies in
  291. # our build tree.
  292. #
  293. # If you are developing downstream using non-crates-io solana-program (local or
  294. # forked repo, or from github rev, eg), duplicate the following patch statements
  295. # in your Cargo.toml. If you still hit duplicate-type errors with the patch
  296. # statements in place, run `cargo update -p solana-program` and/or `cargo update
  297. # -p solana-zk-token-sdk` to remove extraneous versions from your Cargo.lock
  298. # file.
  299. #
  300. # There is a similar override in `../../Cargo.toml`. Please keep both comments
  301. # and the overrides in sync.
  302. solana-curve25519 = { path = "../../curves/curve25519" }