Add zk_token_sdk_enabled feature to gate Zk Token proof program and sol_zk_token_elgamal_op
syscalls
This commit is contained in:
141
programs/bpf/Cargo.lock
generated
141
programs/bpf/Cargo.lock
generated
@@ -27,6 +27,42 @@ version = "1.0.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
|
||||
|
||||
[[package]]
|
||||
name = "aead"
|
||||
version = "0.4.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "0b613b8e1e3cf911a086f53f03bf286f52fd7a7258e4fa606f0ef220d39d8877"
|
||||
dependencies = [
|
||||
"generic-array 0.14.4",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "aes"
|
||||
version = "0.7.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "9e8b47f52ea9bae42228d07ec09eb676433d7c4ed1ebdf0f1d1c29ed446f1ab8"
|
||||
dependencies = [
|
||||
"cfg-if 1.0.0",
|
||||
"cipher",
|
||||
"cpufeatures 0.2.1",
|
||||
"opaque-debug",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "aes-gcm-siv"
|
||||
version = "0.10.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "589c637f0e68c877bbd59a4599bbe849cac8e5f3e4b5a3ebae8f528cd218dcdc"
|
||||
dependencies = [
|
||||
"aead",
|
||||
"aes",
|
||||
"cipher",
|
||||
"ctr",
|
||||
"polyval",
|
||||
"subtle",
|
||||
"zeroize",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "ahash"
|
||||
version = "0.4.7"
|
||||
@@ -409,6 +445,15 @@ dependencies = [
|
||||
"chrono",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "cipher"
|
||||
version = "0.3.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "7ee52072ec15386f770805afd189a01c8841be8696bed250fa2f13c4c0d6dfb7"
|
||||
dependencies = [
|
||||
"generic-array 0.14.4",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "clap"
|
||||
version = "2.33.3"
|
||||
@@ -594,6 +639,15 @@ dependencies = [
|
||||
"subtle",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "ctr"
|
||||
version = "0.8.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "049bb91fb4aaf0e3c7efa6cd5ef877dbbbd15b39dad06d9948de4ec8a75761ea"
|
||||
dependencies = [
|
||||
"cipher",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "curve25519-dalek"
|
||||
version = "2.1.0"
|
||||
@@ -616,6 +670,7 @@ dependencies = [
|
||||
"byteorder 1.4.3",
|
||||
"digest 0.9.0",
|
||||
"rand_core 0.5.1",
|
||||
"serde",
|
||||
"subtle",
|
||||
"zeroize",
|
||||
]
|
||||
@@ -1568,6 +1623,18 @@ dependencies = [
|
||||
"autocfg",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "merlin"
|
||||
version = "2.0.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "4e261cf0f8b3c42ded9f7d2bb59dea03aa52bc8a1cbc7482f9fc3fd1229d3b42"
|
||||
dependencies = [
|
||||
"byteorder 1.4.3",
|
||||
"keccak",
|
||||
"rand_core 0.5.1",
|
||||
"zeroize",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "mime"
|
||||
version = "0.3.16"
|
||||
@@ -1870,6 +1937,18 @@ version = "0.2.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6"
|
||||
|
||||
[[package]]
|
||||
name = "polyval"
|
||||
version = "0.5.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "8419d2b623c7c0896ff2d5d96e2cb4ede590fed28fcc34934f4c33c036e620a1"
|
||||
dependencies = [
|
||||
"cfg-if 1.0.0",
|
||||
"cpufeatures 0.2.1",
|
||||
"opaque-debug",
|
||||
"universal-hash",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "ppv-lite86"
|
||||
version = "0.2.8"
|
||||
@@ -2584,6 +2663,7 @@ dependencies = [
|
||||
"solana-measure",
|
||||
"solana-program-runtime",
|
||||
"solana-sdk",
|
||||
"solana-zk-token-sdk",
|
||||
"solana_rbpf",
|
||||
"thiserror",
|
||||
]
|
||||
@@ -2924,6 +3004,14 @@ dependencies = [
|
||||
"solana-program 1.10.0",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "solana-bpf-rust-zk_token_elgamal"
|
||||
version = "1.10.0"
|
||||
dependencies = [
|
||||
"solana-program 1.10.0",
|
||||
"solana-zk-token-sdk",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "solana-bucket-map"
|
||||
version = "1.10.0"
|
||||
@@ -3381,6 +3469,8 @@ dependencies = [
|
||||
"solana-sdk",
|
||||
"solana-stake-program",
|
||||
"solana-vote-program",
|
||||
"solana-zk-token-proof-program",
|
||||
"solana-zk-token-sdk",
|
||||
"symlink",
|
||||
"tar",
|
||||
"tempfile",
|
||||
@@ -3549,6 +3639,47 @@ dependencies = [
|
||||
"thiserror",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "solana-zk-token-proof-program"
|
||||
version = "1.10.0"
|
||||
dependencies = [
|
||||
"bytemuck",
|
||||
"getrandom 0.1.14",
|
||||
"num-derive",
|
||||
"num-traits",
|
||||
"solana-program-runtime",
|
||||
"solana-sdk",
|
||||
"solana-zk-token-sdk",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "solana-zk-token-sdk"
|
||||
version = "1.10.0"
|
||||
dependencies = [
|
||||
"aes-gcm-siv",
|
||||
"arrayref",
|
||||
"base64 0.13.0",
|
||||
"bincode",
|
||||
"bytemuck",
|
||||
"byteorder 1.4.3",
|
||||
"cipher",
|
||||
"curve25519-dalek 3.2.0",
|
||||
"getrandom 0.1.14",
|
||||
"lazy_static",
|
||||
"merlin",
|
||||
"num-derive",
|
||||
"num-traits",
|
||||
"rand 0.7.3",
|
||||
"serde",
|
||||
"serde_json",
|
||||
"sha3 0.9.1",
|
||||
"solana-program 1.10.0",
|
||||
"solana-sdk",
|
||||
"subtle",
|
||||
"thiserror",
|
||||
"zeroize",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "solana_rbpf"
|
||||
version = "0.2.21"
|
||||
@@ -4056,6 +4187,16 @@ version = "0.2.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "826e7639553986605ec5979c7dd957c7895e93eabed50ab2ffa7f6128a75097c"
|
||||
|
||||
[[package]]
|
||||
name = "universal-hash"
|
||||
version = "0.4.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "9f214e8f697e925001e66ec2c6e37a4ef93f0f78c2eed7814394e10c62025b05"
|
||||
dependencies = [
|
||||
"generic-array 0.14.4",
|
||||
"subtle",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "unreachable"
|
||||
version = "1.0.0"
|
||||
|
@@ -86,6 +86,7 @@ members = [
|
||||
"rust/sysvar",
|
||||
"rust/upgradeable",
|
||||
"rust/upgraded",
|
||||
"rust/zk_token_elgamal",
|
||||
]
|
||||
|
||||
[package.metadata.docs.rs]
|
||||
|
@@ -95,6 +95,7 @@ fn main() {
|
||||
"spoof1_system",
|
||||
"upgradeable",
|
||||
"upgraded",
|
||||
"zk_token_elgamal",
|
||||
];
|
||||
for program in rust_programs.iter() {
|
||||
println!(
|
||||
|
20
programs/bpf/rust/zk_token_elgamal/Cargo.toml
Normal file
20
programs/bpf/rust/zk_token_elgamal/Cargo.toml
Normal file
@@ -0,0 +1,20 @@
|
||||
[package]
|
||||
name = "solana-bpf-rust-zk_token_elgamal"
|
||||
version = "1.10.0"
|
||||
description = "Solana BPF test program written in Rust"
|
||||
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
license = "Apache-2.0"
|
||||
homepage = "https://solana.com/"
|
||||
documentation = "https://docs.rs/solana-bpf-rust-zktoken_crypto"
|
||||
edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
solana-program = { path = "../../../../sdk/program", version = "=1.10.0" }
|
||||
solana-zk-token-sdk = { path = "../../../../zk-token-sdk", version = "=1.10.0" }
|
||||
|
||||
[lib]
|
||||
crate-type = ["cdylib"]
|
||||
|
||||
[package.metadata.docs.rs]
|
||||
targets = ["x86_64-unknown-linux-gnu"]
|
53
programs/bpf/rust/zk_token_elgamal/src/lib.rs
Normal file
53
programs/bpf/rust/zk_token_elgamal/src/lib.rs
Normal file
@@ -0,0 +1,53 @@
|
||||
//! @brief zk_token_elgamal syscall tests
|
||||
|
||||
extern crate solana_program;
|
||||
use {
|
||||
solana_program::{custom_panic_default, msg},
|
||||
solana_zk_token_sdk::zk_token_elgamal::{
|
||||
ops,
|
||||
pod::{ElGamalCiphertext, Zeroable},
|
||||
},
|
||||
};
|
||||
|
||||
#[no_mangle]
|
||||
pub extern "C" fn entrypoint(_input: *mut u8) -> u64 {
|
||||
let zero = ElGamalCiphertext::zeroed();
|
||||
|
||||
msg!("add_to");
|
||||
let one = ops::add_to(&zero, 1).expect("add_to");
|
||||
|
||||
msg!("subtract_from");
|
||||
assert_eq!(zero, ops::subtract_from(&one, 1).expect("subtract_from"));
|
||||
|
||||
msg!("add");
|
||||
assert_eq!(one, ops::add(&zero, &one).expect("add"));
|
||||
|
||||
msg!("subtract");
|
||||
assert_eq!(zero, ops::subtract(&one, &one).expect("subtract"));
|
||||
|
||||
msg!("add_with_lo_hi");
|
||||
assert_eq!(
|
||||
one,
|
||||
ops::add_with_lo_hi(
|
||||
&one,
|
||||
&ElGamalCiphertext::zeroed(),
|
||||
&ElGamalCiphertext::zeroed()
|
||||
)
|
||||
.expect("add_with_lo_hi")
|
||||
);
|
||||
|
||||
msg!("subtract_with_lo_hi");
|
||||
assert_eq!(
|
||||
one,
|
||||
ops::subtract_with_lo_hi(
|
||||
&one,
|
||||
&ElGamalCiphertext::zeroed(),
|
||||
&ElGamalCiphertext::zeroed()
|
||||
)
|
||||
.expect("subtract_with_lo_hi")
|
||||
);
|
||||
|
||||
0
|
||||
}
|
||||
|
||||
custom_panic_default!();
|
@@ -484,6 +484,7 @@ fn test_program_bpf_sanity() {
|
||||
("solana_bpf_rust_sanity", true),
|
||||
("solana_bpf_rust_secp256k1_recover", true),
|
||||
("solana_bpf_rust_sha", true),
|
||||
("solana_bpf_rust_zk_token_elgamal", true),
|
||||
]);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user