Cargo.toml 11 KB

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