Skip to content

Commit ad7a60b

Browse files
committed
simplicity-sys: rename all the C compatibility types
1 parent c38b1aa commit ad7a60b

File tree

3 files changed

+86
-72
lines changed

3 files changed

+86
-72
lines changed

simplicity-sys/src/c_jets/c_env.rs

Lines changed: 53 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ pub struct RawOutputData {
2828

2929
#[derive(Debug)]
3030
#[repr(C)]
31-
pub struct CRawBuffer {
31+
pub struct CElementsRawBuffer {
3232
pub ptr: *const c_uchar,
3333
pub len: u32,
3434
}
@@ -56,44 +56,44 @@ pub struct RawTransactionData {
5656

5757
#[derive(Debug)]
5858
#[repr(C)]
59-
pub struct CRawOutput {
59+
pub struct CElementsRawOutput {
6060
asset: *const c_uchar,
6161
value: *const c_uchar,
6262
nonce: *const c_uchar,
63-
script_pubkey: CRawBuffer,
64-
surjection_proof: CRawBuffer,
65-
range_proof: CRawBuffer,
63+
script_pubkey: CElementsRawBuffer,
64+
surjection_proof: CElementsRawBuffer,
65+
range_proof: CElementsRawBuffer,
6666
}
6767

6868
#[derive(Debug)]
6969
#[repr(C)]
70-
pub struct CRawInput {
71-
annex: *const CRawBuffer,
70+
pub struct CElementsRawInput {
71+
annex: *const CElementsRawBuffer,
7272
prev_txid: *const c_uchar,
7373
pegin: *const c_uchar,
7474
// issuance
7575
blinding_nonce: *const c_uchar,
7676
asset_entropy: *const c_uchar,
7777
amount: *const c_uchar,
7878
inflation_keys: *const c_uchar,
79-
amount_range_proof: CRawBuffer,
80-
inflation_keys_range_proof: CRawBuffer,
79+
amount_range_proof: CElementsRawBuffer,
80+
inflation_keys_range_proof: CElementsRawBuffer,
8181
// spent txo
8282
asset: *const c_uchar,
8383
value: *const c_uchar,
84-
script_pubkey: CRawBuffer,
84+
script_pubkey: CElementsRawBuffer,
8585
// inputs
86-
script_sig: CRawBuffer,
86+
script_sig: CElementsRawBuffer,
8787
prev_txout_index: u32,
8888
sequence: u32,
8989
}
9090

9191
#[derive(Debug)]
9292
#[repr(C)]
93-
pub struct CRawTransaction {
93+
pub struct CElementsRawTransaction {
9494
txid: *const c_uchar,
95-
inputs: *const CRawInput,
96-
outputs: *const CRawOutput,
95+
inputs: *const CElementsRawInput,
96+
outputs: *const CElementsRawOutput,
9797
version: u32,
9898
locktime: u32,
9999
n_inputs: u32,
@@ -102,7 +102,7 @@ pub struct CRawTransaction {
102102

103103
#[derive(Debug)]
104104
#[repr(C)]
105-
pub struct CRawTapEnv {
105+
pub struct CElementsRawTapEnv {
106106
control_block: *const c_uchar,
107107
script_cmr: *const c_uchar,
108108
branch_len: u8,
@@ -140,47 +140,47 @@ extern "C" {
140140
pub static c_alignof_rawElementsTapEnv: c_size_t;
141141
pub static c_alignof_txEnv: c_size_t;
142142

143-
pub fn c_set_rawElementsBuffer(res: *mut CRawBuffer, buf: *const c_uchar, len: c_uint);
143+
pub fn c_set_rawElementsBuffer(res: *mut CElementsRawBuffer, buf: *const c_uchar, len: c_uint);
144144
pub fn c_set_rawElementsOutput(
145-
res: *mut CRawOutput,
145+
res: *mut CElementsRawOutput,
146146
asset: *const c_uchar,
147147
value: *const c_uchar,
148148
nonce: *const c_uchar,
149-
scriptPubKey: *const CRawBuffer,
150-
surjectionProof: *const CRawBuffer,
151-
rangeProof: *const CRawBuffer,
149+
scriptPubKey: *const CElementsRawBuffer,
150+
surjectionProof: *const CElementsRawBuffer,
151+
rangeProof: *const CElementsRawBuffer,
152152
);
153153
pub fn c_set_rawElementsInput(
154-
result: *mut CRawInput,
155-
annex: *const CRawBuffer,
154+
result: *mut CElementsRawInput,
155+
annex: *const CElementsRawBuffer,
156156
pegin: *const c_uchar,
157-
scriptSig: *const CRawBuffer,
157+
scriptSig: *const CElementsRawBuffer,
158158
prevTxid: *const c_uchar,
159159
prevIx: c_uint,
160160
asset: *const c_uchar,
161161
value: *const c_uchar,
162-
scriptPubKey: *const CRawBuffer,
162+
scriptPubKey: *const CElementsRawBuffer,
163163
sequence: c_uint,
164164
blindingNonce: *const c_uchar,
165165
assetEntropy: *const c_uchar,
166166
amount: *const c_uchar,
167167
inflationKeys: *const c_uchar,
168-
amountRangePrf: *const CRawBuffer,
169-
inflationKeysRangePrf: *const CRawBuffer,
168+
amountRangePrf: *const CElementsRawBuffer,
169+
inflationKeysRangePrf: *const CElementsRawBuffer,
170170
);
171171

172172
pub fn c_set_rawElementsTransaction(
173-
result: *mut CRawTransaction,
173+
result: *mut CElementsRawTransaction,
174174
version: c_uint,
175175
txid: *const c_uchar,
176-
input: *const CRawInput,
176+
input: *const CElementsRawInput,
177177
numInputs: c_uint,
178-
output: *const CRawOutput,
178+
output: *const CElementsRawOutput,
179179
numOutputs: c_uint,
180180
lockTime: c_uint,
181181
);
182182
pub fn c_set_rawElementsTapEnv(
183-
result: *mut CRawTapEnv,
183+
result: *mut CElementsRawTapEnv,
184184
controlBlock: *const c_uchar,
185185
pathLen: c_uchar,
186186
scriptCMR: *const c_uchar,
@@ -192,9 +192,9 @@ extern "C" {
192192
genesisHash: *const c_uchar,
193193
ix: c_uint,
194194
);
195-
pub fn simplicity_elements_mallocTapEnv(rawEnv: *const CRawTapEnv) -> *mut CTapEnv;
195+
pub fn simplicity_elements_mallocTapEnv(rawEnv: *const CElementsRawTapEnv) -> *mut CTapEnv;
196196
pub fn simplicity_elements_mallocTransaction(
197-
rawTx: *const CRawTransaction,
197+
rawTx: *const CElementsRawTransaction,
198198
) -> *mut CTransaction;
199199
pub fn c_free_transaction(tx: *mut CTransaction);
200200
pub fn c_free_tapEnv(env: *mut CTapEnv);
@@ -216,10 +216,10 @@ impl Drop for CElementsTxEnv {
216216
}
217217
}
218218

219-
impl CRawBuffer {
219+
impl CElementsRawBuffer {
220220
pub fn new(buf: &[c_uchar]) -> Self {
221221
unsafe {
222-
let mut raw_buffer = std::mem::MaybeUninit::<CRawBuffer>::uninit();
222+
let mut raw_buffer = std::mem::MaybeUninit::<Self>::uninit();
223223
c_set_rawElementsBuffer(raw_buffer.as_mut_ptr(), buf.as_ptr(), buf.len() as c_uint);
224224
raw_buffer.assume_init()
225225
}
@@ -236,14 +236,14 @@ mod tests {
236236
fn test_sizes() {
237237
unsafe {
238238
assert_eq!(size_of::<CFrameItem>(), c_sizeof_frameItem);
239-
assert_eq!(size_of::<CRawBuffer>(), c_sizeof_rawElementsBuffer);
240-
assert_eq!(size_of::<CRawInput>(), c_sizeof_rawElementsInput);
241-
assert_eq!(size_of::<CRawOutput>(), c_sizeof_rawElementsOutput);
239+
assert_eq!(size_of::<CElementsRawBuffer>(), c_sizeof_rawElementsBuffer);
240+
assert_eq!(size_of::<CElementsRawInput>(), c_sizeof_rawElementsInput);
241+
assert_eq!(size_of::<CElementsRawOutput>(), c_sizeof_rawElementsOutput);
242242
assert_eq!(
243-
size_of::<CRawTransaction>(),
243+
size_of::<CElementsRawTransaction>(),
244244
c_sizeof_rawElementsTransaction
245245
);
246-
assert_eq!(size_of::<CRawTapEnv>(), c_sizeof_rawElementsTapEnv);
246+
assert_eq!(size_of::<CElementsRawTapEnv>(), c_sizeof_rawElementsTapEnv);
247247
assert_eq!(size_of::<CElementsTxEnv>(), c_sizeof_txEnv);
248248
}
249249
}
@@ -252,14 +252,23 @@ mod tests {
252252
fn test_aligns() {
253253
unsafe {
254254
assert_eq!(align_of::<CFrameItem>(), c_alignof_frameItem);
255-
assert_eq!(align_of::<CRawBuffer>(), c_alignof_rawElementsBuffer);
256-
assert_eq!(align_of::<CRawInput>(), c_alignof_rawElementsInput);
257-
assert_eq!(align_of::<CRawOutput>(), c_alignof_rawElementsOutput);
258255
assert_eq!(
259-
align_of::<CRawTransaction>(),
256+
align_of::<CElementsRawBuffer>(),
257+
c_alignof_rawElementsBuffer
258+
);
259+
assert_eq!(align_of::<CElementsRawInput>(), c_alignof_rawElementsInput);
260+
assert_eq!(
261+
align_of::<CElementsRawOutput>(),
262+
c_alignof_rawElementsOutput
263+
);
264+
assert_eq!(
265+
align_of::<CElementsRawTransaction>(),
260266
c_alignof_rawElementsTransaction
261267
);
262-
assert_eq!(align_of::<CRawTapEnv>(), c_alignof_rawElementsTapEnv);
268+
assert_eq!(
269+
align_of::<CElementsRawTapEnv>(),
270+
c_alignof_rawElementsTapEnv
271+
);
263272
assert_eq!(align_of::<CElementsTxEnv>(), c_alignof_txEnv);
264273
}
265274
}

simplicity-sys/src/c_jets/mod.rs

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,10 @@ pub use frame_ffi::CFrameItem;
1919
// The bindings use elements_ffi instead of jets_ffi.
2020
pub use jets_ffi as elements_ffi;
2121

22-
use crate::c_jets::c_env::{CRawBuffer, CRawInput, CRawOutput, CRawTapEnv, CRawTransaction};
22+
use crate::c_jets::c_env::{
23+
CElementsRawBuffer, CElementsRawInput, CElementsRawOutput, CElementsRawTapEnv,
24+
CElementsRawTransaction,
25+
};
2326

2427
#[cfg(feature = "test-utils")]
2528
pub mod exec_ffi;
@@ -38,23 +41,25 @@ pub fn sanity_checks() -> bool {
3841
}
3942

4043
if std::mem::size_of::<CFrameItem>() != frame_ffi::c_sizeof_frameItem
41-
|| std::mem::size_of::<CRawBuffer>() != c_env::c_sizeof_rawElementsBuffer
42-
|| std::mem::size_of::<CRawInput>() != c_env::c_sizeof_rawElementsInput
43-
|| std::mem::size_of::<CRawOutput>() != c_env::c_sizeof_rawElementsOutput
44-
|| std::mem::size_of::<CRawTransaction>() != c_env::c_sizeof_rawElementsTransaction
44+
|| std::mem::size_of::<CElementsRawBuffer>() != c_env::c_sizeof_rawElementsBuffer
45+
|| std::mem::size_of::<CElementsRawInput>() != c_env::c_sizeof_rawElementsInput
46+
|| std::mem::size_of::<CElementsRawOutput>() != c_env::c_sizeof_rawElementsOutput
47+
|| std::mem::size_of::<CElementsRawTransaction>()
48+
!= c_env::c_sizeof_rawElementsTransaction
4549
|| std::mem::size_of::<CElementsTxEnv>() != c_env::c_sizeof_txEnv
46-
|| std::mem::size_of::<CRawTapEnv>() != c_env::c_sizeof_rawElementsTapEnv
50+
|| std::mem::size_of::<CElementsRawTapEnv>() != c_env::c_sizeof_rawElementsTapEnv
4751
{
4852
return false;
4953
}
5054

5155
if std::mem::align_of::<CFrameItem>() != frame_ffi::c_alignof_frameItem
52-
|| std::mem::align_of::<CRawBuffer>() != c_env::c_alignof_rawElementsBuffer
53-
|| std::mem::align_of::<CRawInput>() != c_env::c_alignof_rawElementsInput
54-
|| std::mem::align_of::<CRawOutput>() != c_env::c_alignof_rawElementsOutput
55-
|| std::mem::align_of::<CRawTransaction>() != c_env::c_alignof_rawElementsTransaction
56+
|| std::mem::align_of::<CElementsRawBuffer>() != c_env::c_alignof_rawElementsBuffer
57+
|| std::mem::align_of::<CElementsRawInput>() != c_env::c_alignof_rawElementsInput
58+
|| std::mem::align_of::<CElementsRawOutput>() != c_env::c_alignof_rawElementsOutput
59+
|| std::mem::align_of::<CElementsRawTransaction>()
60+
!= c_env::c_alignof_rawElementsTransaction
5661
|| std::mem::align_of::<CElementsTxEnv>() != c_env::c_alignof_txEnv
57-
|| std::mem::align_of::<CRawTapEnv>() != c_env::c_alignof_rawElementsTapEnv
62+
|| std::mem::align_of::<CElementsRawTapEnv>() != c_env::c_alignof_rawElementsTapEnv
5863
{
5964
return false;
6065
}

src/jet/elements/c_env.rs

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -15,18 +15,18 @@ use elements::{
1515
use simplicity_sys::c_jets::c_env::{
1616
c_set_rawElementsInput, c_set_rawElementsOutput, c_set_rawElementsTapEnv,
1717
c_set_rawElementsTransaction, c_set_txEnv, simplicity_elements_mallocTapEnv,
18-
simplicity_elements_mallocTransaction, CElementsTxEnv, CRawBuffer, CRawInput, CRawOutput,
19-
CRawTapEnv, CRawTransaction, CTapEnv, CTransaction, RawInputData, RawOutputData,
20-
RawTransactionData,
18+
simplicity_elements_mallocTransaction, CElementsRawBuffer, CElementsRawInput,
19+
CElementsRawOutput, CElementsRawTapEnv, CElementsRawTransaction, CElementsTxEnv, CTapEnv,
20+
CTransaction, RawInputData, RawOutputData, RawTransactionData,
2121
};
2222

2323
use crate::merkle::cmr::Cmr;
2424

2525
use super::ElementsUtxo;
2626

27-
fn new_raw_output(out: &elements::TxOut, out_data: &RawOutputData) -> CRawOutput {
27+
fn new_raw_output(out: &elements::TxOut, out_data: &RawOutputData) -> CElementsRawOutput {
2828
unsafe {
29-
let mut raw_output = std::mem::MaybeUninit::<CRawOutput>::uninit();
29+
let mut raw_output = std::mem::MaybeUninit::<CElementsRawOutput>::uninit();
3030
c_set_rawElementsOutput(
3131
raw_output.as_mut_ptr(),
3232
asset_ptr(out.asset, &out_data.asset),
@@ -44,9 +44,9 @@ fn new_raw_input(
4444
inp: &elements::TxIn,
4545
in_utxo: &ElementsUtxo,
4646
inp_data: &RawInputData,
47-
) -> CRawInput {
47+
) -> CElementsRawInput {
4848
unsafe {
49-
let mut raw_input = std::mem::MaybeUninit::<CRawInput>::uninit();
49+
let mut raw_input = std::mem::MaybeUninit::<CElementsRawInput>::uninit();
5050

5151
let (issue_nonce_ptr, issue_entropy_ptr, issue_amt_ptr, issue_infl_key_ptr) =
5252
if inp.has_issuance() {
@@ -141,7 +141,7 @@ pub(super) fn new_tx(tx: &elements::Transaction, in_utxos: &[ElementsUtxo]) -> *
141141
raw_outputs.push(new_raw_output(out, out_data));
142142
}
143143
unsafe {
144-
let mut raw_tx = std::mem::MaybeUninit::<CRawTransaction>::uninit();
144+
let mut raw_tx = std::mem::MaybeUninit::<CElementsRawTransaction>::uninit();
145145
c_set_rawElementsTransaction(
146146
raw_tx.as_mut_ptr(),
147147
tx.version as c_uint,
@@ -159,7 +159,7 @@ pub(super) fn new_tx(tx: &elements::Transaction, in_utxos: &[ElementsUtxo]) -> *
159159

160160
pub(super) fn new_tap_env(control_block: &ControlBlock, script_cmr: Cmr) -> *mut CTapEnv {
161161
unsafe {
162-
let mut raw_tap_env = std::mem::MaybeUninit::<CRawTapEnv>::uninit();
162+
let mut raw_tap_env = std::mem::MaybeUninit::<CElementsRawTapEnv>::uninit();
163163
let cb_ser = control_block.serialize();
164164
c_set_rawElementsTapEnv(
165165
raw_tap_env.as_mut_ptr(),
@@ -223,20 +223,20 @@ fn opt_ptr<T>(t: Option<&T>) -> *const T {
223223
}
224224
}
225225

226-
fn script_ptr(script: &elements::Script) -> CRawBuffer {
227-
CRawBuffer::new(script.as_bytes())
226+
fn script_ptr(script: &elements::Script) -> CElementsRawBuffer {
227+
CElementsRawBuffer::new(script.as_bytes())
228228
}
229229

230-
fn annex_ptr(annex: &Option<Vec<c_uchar>>) -> Option<CRawBuffer> {
231-
annex.as_ref().map(|annex| CRawBuffer::new(annex))
230+
fn annex_ptr(annex: &Option<Vec<c_uchar>>) -> Option<CElementsRawBuffer> {
231+
annex.as_ref().map(|annex| CElementsRawBuffer::new(annex))
232232
}
233233

234-
fn surjection_proof_ptr(surjection_proof: &[c_uchar]) -> CRawBuffer {
235-
CRawBuffer::new(surjection_proof)
234+
fn surjection_proof_ptr(surjection_proof: &[c_uchar]) -> CElementsRawBuffer {
235+
CElementsRawBuffer::new(surjection_proof)
236236
}
237237

238-
fn range_proof_ptr(rangeproof: &[c_uchar]) -> CRawBuffer {
239-
CRawBuffer::new(rangeproof)
238+
fn range_proof_ptr(rangeproof: &[c_uchar]) -> CElementsRawBuffer {
239+
CElementsRawBuffer::new(rangeproof)
240240
}
241241

242242
fn serialize_rangeproof(rangeproof: &Option<Box<RangeProof>>) -> Vec<c_uchar> {

0 commit comments

Comments
 (0)