Skip to content

Commit e4c422f

Browse files
authored
feat(svm): removed original solana builtin implementations, corresponding tests and test structures (#150)
* feat(svm): remove original solana builtins and corresponding tests and test structures * feat(svm): remove 'from' transformation from svm tests * feat(svm): renamings for consistency
1 parent 7cc7af3 commit e4c422f

22 files changed

+235
-892
lines changed

contracts/Cargo.toml

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,7 @@ fluentbase-sdk = { path = "../crates/sdk", default-features = false }
1919
precompile = { path = "../revm/crates/precompile", package = "revm-precompile", default-features = false }
2020
fluentbase-erc20 = { path = "../crates/erc20", default-features = false }
2121
fluentbase-evm = { path = "../crates/evm", default-features = false }
22-
fluentbase-svm = { path = "../crates/svm", default-features = false, features = [
23-
# "enable-solana-original-builtins",
24-
] }
22+
fluentbase-svm = { path = "../crates/svm", default-features = false }
2523
hex-literal = { version = "0.4.1", default-features = false }
2624
alloy-sol-types = { version = "1.2.0", default-features = false }
2725
serde = { version = "1.0.203", default-features = false, features = ["derive", "rc"] }
-22 KB
Binary file not shown.

contracts/examples/svm/bindings/src/lib.rs

Lines changed: 0 additions & 166 deletions
Original file line numberDiff line numberDiff line change
@@ -79,16 +79,6 @@ macro_rules! impl_hash {
7979
pub fn sol_keccak256_native(data: &[&[u8]]) -> (ReturnValue, [u8; 32]) {
8080
impl_hash!(data, sol_keccak256)
8181
}
82-
extern "C" {
83-
fn sol_sha256_original(
84-
values_addr: *const u8,
85-
values_len: u64,
86-
result_addr: *mut u8,
87-
) -> ReturnValue;
88-
}
89-
pub fn sol_sha256_original_native(data: &[&[u8]]) -> (ReturnValue, [u8; 32]) {
90-
impl_hash!(data, sol_sha256_original)
91-
}
9282
extern "C" {
9383
fn sol_sha256(values_addr: *const u8, values_len: u64, result_addr: *mut u8) -> ReturnValue;
9484
}
@@ -127,30 +117,6 @@ pub fn sol_poseidon_native(
127117
};
128118
(ret, result)
129119
}
130-
extern "C" {
131-
fn sol_secp256k1_recover_original(
132-
hash_addr: *const u8,
133-
recovery_id_val: u64,
134-
signature_addr: *const u8,
135-
result_addr: *mut u8,
136-
) -> ReturnValue;
137-
}
138-
pub fn secp256k1_recover_original_native(
139-
hash: &[u8; 32],
140-
recovery_id_val: u64,
141-
signature: &[u8; 64],
142-
) -> (ReturnValue, [u8; 64]) {
143-
let mut result = [0u8; 64];
144-
let ret = unsafe {
145-
sol_secp256k1_recover_original(
146-
hash.as_ptr(),
147-
recovery_id_val,
148-
signature.as_ptr(),
149-
result.as_mut_ptr(),
150-
)
151-
};
152-
(ret, result)
153-
}
154120
extern "C" {
155121
fn sol_secp256k1_recover(
156122
hash_addr: *const u8,
@@ -175,37 +141,6 @@ pub fn secp256k1_recover_native(
175141
};
176142
(ret, result)
177143
}
178-
extern "C" {
179-
fn sol_big_mod_exp_original(params_addr: *const u8, return_value_addr: *mut u8) -> ReturnValue;
180-
}
181-
pub fn big_mod_exp_original_native<const N: usize>(
182-
params: &[u8; size_of::<u64>() * 6],
183-
) -> (ReturnValue, [u8; N]) {
184-
let mut result = [0u8; N];
185-
let ret = unsafe { sol_big_mod_exp_original(params.as_ptr(), result.as_mut_ptr()) };
186-
(ret, result)
187-
}
188-
pub fn big_mod_exp_3_original<const N: usize>(
189-
base: &[u8],
190-
exponent: &[u8],
191-
modulus: &[u8; N],
192-
) -> (ReturnValue, [u8; N]) {
193-
const PARAM_COMPONENT_SIZE: usize = size_of::<u64>();
194-
let mut params = [0u8; PARAM_COMPONENT_SIZE * 6];
195-
for (idx, param) in [base, exponent, modulus].iter().enumerate() {
196-
let param_ptr = param.as_ptr() as u64;
197-
let param_len = param.len() as u64;
198-
let idx_ptr_base = idx * PARAM_COMPONENT_SIZE * 2;
199-
let idx_len_base = idx_ptr_base + PARAM_COMPONENT_SIZE;
200-
params[idx_ptr_base..idx_ptr_base + PARAM_COMPONENT_SIZE]
201-
.copy_from_slice(&param_ptr.to_le_bytes());
202-
params[idx_len_base..idx_len_base + PARAM_COMPONENT_SIZE]
203-
.copy_from_slice(&param_len.to_le_bytes());
204-
}
205-
let mut result = [0u8; N];
206-
let ret = unsafe { sol_big_mod_exp_original(params.as_ptr(), result.as_mut_ptr()) };
207-
(ret, result)
208-
}
209144
extern "C" {
210145
fn sol_big_mod_exp(params_addr: *const u8, return_value_addr: *mut u8) -> ReturnValue;
211146
}
@@ -237,44 +172,12 @@ pub fn big_mod_exp_3<const N: usize>(
237172
let ret = unsafe { sol_big_mod_exp(params.as_ptr(), result.as_mut_ptr()) };
238173
(ret, result)
239174
}
240-
extern "C" {
241-
fn sol_curve_validate_point_original(curve_id: u64, point_addr: *const u8) -> ReturnValue;
242-
}
243-
pub fn curve_validate_point_original_native(curve_id: u64, point: &[u8; 32]) -> ReturnValue {
244-
unsafe { sol_curve_validate_point_original(curve_id, point.as_ptr()) }
245-
}
246175
extern "C" {
247176
fn sol_curve_validate_point(curve_id: u64, point_addr: *const u8) -> ReturnValue;
248177
}
249178
pub fn curve_validate_point_native(curve_id: u64, point: &[u8; 32]) -> ReturnValue {
250179
unsafe { sol_curve_validate_point(curve_id, point.as_ptr()) }
251180
}
252-
extern "C" {
253-
fn sol_curve_group_op_original(
254-
curve_id: u64,
255-
group_op: u64,
256-
left_input_addr: *const u8,
257-
right_input_addr: *const u8,
258-
result_point_addr: *mut u8,
259-
) -> ReturnValue;
260-
}
261-
pub fn curve_group_op_original_native(
262-
curve_id: u64,
263-
group_op: u64,
264-
left_input: &[u8; 32],
265-
right_input: &[u8; 32],
266-
result_point: &mut [u8; 32],
267-
) -> ReturnValue {
268-
unsafe {
269-
sol_curve_group_op_original(
270-
curve_id,
271-
group_op,
272-
left_input.as_ptr(),
273-
right_input.as_ptr(),
274-
result_point.as_mut_ptr(),
275-
)
276-
}
277-
}
278181
extern "C" {
279182
fn sol_curve_group_op(
280183
curve_id: u64,
@@ -301,31 +204,6 @@ pub fn curve_group_op_native(
301204
)
302205
}
303206
}
304-
extern "C" {
305-
fn sol_curve_multiscalar_mul_original(
306-
curve_id: u64,
307-
scalars_addr: *const u8,
308-
points_addr: *const u8,
309-
scalars_points_len: u64,
310-
result_point_addr: *mut u8,
311-
) -> ReturnValue;
312-
}
313-
pub fn curve_multiscalar_mul_original_native(
314-
curve_id: u64,
315-
scalars: &[[u8; 32]],
316-
points: &[[u8; 32]],
317-
result_point: &mut [u8; 32],
318-
) -> ReturnValue {
319-
unsafe {
320-
sol_curve_multiscalar_mul_original(
321-
curve_id,
322-
scalars.as_ptr() as *const u8,
323-
points.as_ptr() as *const u8,
324-
points.len() as u64,
325-
result_point.as_mut_ptr(),
326-
)
327-
}
328-
}
329207
extern "C" {
330208
fn sol_curve_multiscalar_mul(
331209
curve_id: u64,
@@ -351,28 +229,6 @@ pub fn curve_multiscalar_mul_native(
351229
)
352230
}
353231
}
354-
extern "C" {
355-
fn sol_alt_bn128_group_op_original(
356-
group_op: u64,
357-
input_addr: *const u8,
358-
input_len: u64,
359-
result_addr: *mut u8,
360-
) -> ReturnValue;
361-
}
362-
pub fn alt_bn128_group_op_original_native(
363-
group_op: u64,
364-
input: &[u8],
365-
result_point: &mut [u8; 64],
366-
) -> ReturnValue {
367-
unsafe {
368-
sol_alt_bn128_group_op_original(
369-
group_op,
370-
input.as_ptr(),
371-
input.len() as u64,
372-
result_point.as_mut_ptr(),
373-
)
374-
}
375-
}
376232
extern "C" {
377233
fn sol_alt_bn128_group_op(
378234
group_op: u64,
@@ -395,28 +251,6 @@ pub fn alt_bn128_group_op_native(
395251
)
396252
}
397253
}
398-
extern "C" {
399-
fn sol_alt_bn128_compression_original(
400-
group_op: u64,
401-
input_addr: *const u8,
402-
input_len: u64,
403-
result_addr: *mut u8,
404-
) -> ReturnValue;
405-
}
406-
pub fn alt_bn128_compression_original_native(
407-
group_op: u64,
408-
input: &[u8],
409-
result_point: &mut [u8; 128],
410-
) -> ReturnValue {
411-
unsafe {
412-
sol_alt_bn128_compression_original(
413-
group_op,
414-
input.as_ptr(),
415-
input.len() as u64,
416-
result_point.as_mut_ptr(),
417-
)
418-
}
419-
}
420254
extern "C" {
421255
fn sol_alt_bn128_compression(
422256
group_op: u64,

contracts/examples/svm/solana-program-state-usage/Cargo.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)