Skip to content

Commit d07e5b5

Browse files
committed
Sync to kth/0.80.0 + full v2 regeneration of py-native bindings
Moves py-native off `kth/0.79.0` and regenerates every Python wrapper through the v2 generator against the current C-API surface. The PR bundles three layers of change because they can't land separately without leaving the tree in a non-building intermediate state: ### 1. Conan + build plumbing - `conanfile.py` requires `kth/0.80.0` (was `0.79.0`). - `setup.py` sources list now reflects the full generated surface: binary + the new chain classes (double_spend_proof / _spender, get_blocks, get_headers, history_compact / _list, operation / _list, prefilled_transaction / _list, token_data, utxo / _list) and the new wallet classes (ec_private, ec_public, hd_private, hd_public, payment_address_list, wallet_data). The hand-written `src/chain/history.cpp` is out of `sources` — the generator now covers that surface via `history_compact` + `history_compact_list`. `chain.cpp` stays (async-callback bridge to `safe_chain`, doesn't fit ClassConfig). - `scripts/build-nix.sh` is a new NixOS-only wrapper: resolves the `gcc.cc.lib` runtime into `LD_LIBRARY_PATH`, provisions a local `.venv` so editable installs have a writable prefix, scrubs stale build / conan artefacts before every run, and runs the pytest suite at the end (skippable with `--no-tests`). Non-NixOS developers keep using `scripts/build.sh` unchanged. ### 2. Regenerated surface (~70 files) Full `generate_capi_v2.py --all --target python --write` run: - Modified every existing binding to pick up the C-API changes from kth 0.79→0.80: the `kth_*_mut_t` / `_const_t` handle typedefs (post the `primitives.h` split), the `*_simple` convention on flag-aware overloads (`output_pattern_simple`, `is_standard_simple`), the `leak` / `leak_if_valid` adjustment on types without `operator bool`, and the owned-copy policy for scalar-value list accessors. - Created ~38 new bindings that weren't generated before: `history_compact{,_list}`, `double_spend_proof{,_spender}`, `get_blocks`, `get_headers`, `operation{,_list}`, `prefilled_transaction{,_list}`, `token_data`, `utxo{,_list}` on the chain side, and `ec_private`, `ec_public`, `hd_private`, `hd_public`, `payment_address_list`, `wallet_data` on the wallet side. - `kth_native.pyi` and `src/module.c` picked up the splice updates for every class above. ### 3. Hand-fixes in the surviving hand-written wrappers These are the spots the regen doesn't touch where the C-API renames broke the build: - `src/chain/chain.cpp` — `kth_merkleblock_t` → `kth_merkle_block_mut_t`, `kth_history_compact_list_t` → `kth_history_compact_list_mut_t`, `kth_stealth_compact_list_t` → `*_mut_t`, `kth_compact_block_t` → `*_mut_t`, `kth_wallet_payment_address_construct_from_string` → `_construct_from_address` (plus `kth_payment_address_t` → `*_mut_t` to match). - `src/chain/history.cpp` — list/element handle renames to `*_mut_t` on every call site. The file is kept for its async callback methods but is out of `setup.py sources`; the regen covers the sync surface. - `src/module.c` — dropped 50 lines of stale PyMethodDef entries (for merkle_block, history_compact{,_list}, compact_block, stealth_compact{,_list}, payment_address) that pointed at pre-regen function names. Every class on that list is now registered through the AUTO-generated `PyModule_AddFunctions` block further down. ### Follow-up Not in this PR: test coverage for the ~30 classes that are newly generator-driven (double_spend_proof / get_blocks / get_headers / operation / prefilled_transaction / token_data / utxo / history_compact / ec_private / ec_public / hd_private / hd_public / wallet_data, and the matching `_list` types). Those bindings compile, link and import, and the existing 89 pytest cases still pass, but end-to-end Python-side tests for the new surface will land in a follow-up PR.
1 parent 54a59bb commit d07e5b5

74 files changed

Lines changed: 8277 additions & 638 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

conanfile.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ class KnuthPyNative(ConanFile):
4040
# Single unified Knuth package; previously this used the standalone
4141
# c-api/<ver>@kth/stable recipe, which no longer exists.
4242
def requirements(self):
43-
self.requires("kth/0.79.0", transitive_headers=True, transitive_libs=True)
43+
self.requires("kth/0.80.0", transitive_headers=True, transitive_libs=True)
4444

4545
def generate(self):
4646
# Stage headers and static libs from kth AND all its transitive

include/kth/py-native/binary.h

Lines changed: 31 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
1-
#ifndef KTH_PY_NATIVE_BINARY_H_
2-
#define KTH_PY_NATIVE_BINARY_H_
1+
// Copyright (c) 2016-present Knuth Project developers.
2+
// Distributed under the MIT software license, see the accompanying
3+
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
4+
5+
#ifndef KTH_PY_NATIVE_CORE_BINARY_H_
6+
#define KTH_PY_NATIVE_CORE_BINARY_H_
37

48
#define PY_SSIZE_T_CLEAN
59
#include <Python.h>
@@ -8,15 +12,34 @@
812
extern "C" {
913
#endif
1014

15+
PyObject* kth_py_native_core_binary_construct_default(PyObject* self, PyObject* args);
16+
PyObject* kth_py_native_core_binary_construct_from_bit_string(PyObject* self, PyObject* args, PyObject* kwds);
17+
PyObject* kth_py_native_core_binary_construct_from_size_number(PyObject* self, PyObject* args, PyObject* kwds);
18+
PyObject* kth_py_native_core_binary_construct_from_size_blocks(PyObject* self, PyObject* args, PyObject* kwds);
19+
PyObject* kth_py_native_core_binary_copy(PyObject* self, PyObject* arg);
20+
PyObject* kth_py_native_core_binary_destruct(PyObject* self, PyObject* arg);
21+
PyObject* kth_py_native_core_binary_blocks_size(PyObject* self, PyObject* args, PyObject* kwds);
22+
PyObject* kth_py_native_core_binary_is_base2(PyObject* self, PyObject* args, PyObject* kwds);
23+
PyObject* kth_py_native_core_binary_resize(PyObject* self, PyObject* args, PyObject* kwds);
24+
PyObject* kth_py_native_core_binary_at(PyObject* self, PyObject* args, PyObject* kwds);
25+
PyObject* kth_py_native_core_binary_blocks(PyObject* self, PyObject* arg);
26+
PyObject* kth_py_native_core_binary_encoded(PyObject* self, PyObject* arg);
27+
PyObject* kth_py_native_core_binary_size(PyObject* self, PyObject* arg);
28+
PyObject* kth_py_native_core_binary_append(PyObject* self, PyObject* args, PyObject* kwds);
29+
PyObject* kth_py_native_core_binary_prepend(PyObject* self, PyObject* args, PyObject* kwds);
30+
PyObject* kth_py_native_core_binary_shift_left(PyObject* self, PyObject* args, PyObject* kwds);
31+
PyObject* kth_py_native_core_binary_shift_right(PyObject* self, PyObject* args, PyObject* kwds);
32+
PyObject* kth_py_native_core_binary_substring(PyObject* self, PyObject* args, PyObject* kwds);
33+
PyObject* kth_py_native_core_binary_is_prefix_of_span(PyObject* self, PyObject* args, PyObject* kwds);
34+
PyObject* kth_py_native_core_binary_is_prefix_of_uint32(PyObject* self, PyObject* args, PyObject* kwds);
35+
PyObject* kth_py_native_core_binary_is_prefix_of_binary(PyObject* self, PyObject* args, PyObject* kwds);
36+
PyObject* kth_py_native_core_binary_equals(PyObject* self, PyObject* args, PyObject* kwds);
37+
PyObject* kth_py_native_core_binary_less(PyObject* self, PyObject* args, PyObject* kwds);
1138

12-
PyObject* kth_py_native_binary_construct(PyObject* self, PyObject* args);
13-
PyObject* kth_py_native_binary_construct_string(PyObject* self, PyObject* args);
14-
PyObject* kth_py_native_binary_construct_blocks(PyObject* self, PyObject* args);
15-
PyObject* kth_py_native_binary_blocks(PyObject* self, PyObject* args);
16-
PyObject* kth_py_native_binary_encoded(PyObject* self, PyObject* args);
39+
extern PyMethodDef kth_py_native_core_binary_methods[];
1740

1841
#ifdef __cplusplus
1942
} // extern "C"
2043
#endif
2144

22-
#endif
45+
#endif // KTH_PY_NATIVE_CORE_BINARY_H_

include/kth/py-native/capsule_names.h

Lines changed: 48 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,20 @@ extern "C" {
2626
#endif
2727

2828
#define KTH_PY_CAPSULE_CHAIN_BLOCK "kth.chain.block"
29-
#define KTH_PY_CAPSULE_CHAIN_BLOCK_INDEXES "kth.chain.block_indexes"
3029
#define KTH_PY_CAPSULE_CHAIN_BLOCK_LIST "kth.chain.block_list"
3130
#define KTH_PY_CAPSULE_CHAIN_CHAIN_STATE "kth.chain.chain_state"
31+
#define KTH_PY_CAPSULE_CHAIN_COMPACT_BLOCK "kth.chain.compact_block"
3232
#define KTH_PY_CAPSULE_CHAIN_DATA_STACK "kth.chain.data_stack"
33+
#define KTH_PY_CAPSULE_CHAIN_DOUBLE_SPEND_PROOF "kth.chain.double_spend_proof"
34+
#define KTH_PY_CAPSULE_CHAIN_DOUBLE_SPEND_PROOF_SPENDER "kth.chain.double_spend_proof_spender"
35+
#define KTH_PY_CAPSULE_CHAIN_GET_BLOCKS "kth.chain.get_blocks"
36+
#define KTH_PY_CAPSULE_CHAIN_GET_HEADERS "kth.chain.get_headers"
3337
#define KTH_PY_CAPSULE_CHAIN_HEADER "kth.chain.header"
38+
#define KTH_PY_CAPSULE_CHAIN_HISTORY_COMPACT "kth.chain.history_compact"
39+
#define KTH_PY_CAPSULE_CHAIN_HISTORY_COMPACT_LIST "kth.chain.history_compact_list"
3440
#define KTH_PY_CAPSULE_CHAIN_INPUT "kth.chain.input"
3541
#define KTH_PY_CAPSULE_CHAIN_INPUT_LIST "kth.chain.input_list"
42+
#define KTH_PY_CAPSULE_CHAIN_MERKLE_BLOCK "kth.chain.merkle_block"
3643
#define KTH_PY_CAPSULE_CHAIN_OPERATION "kth.chain.operation"
3744
#define KTH_PY_CAPSULE_CHAIN_OPERATION_LIST "kth.chain.operation_list"
3845
#define KTH_PY_CAPSULE_CHAIN_OUTPUT "kth.chain.output"
@@ -41,28 +48,68 @@ extern "C" {
4148
#define KTH_PY_CAPSULE_CHAIN_OUTPUT_POINT_LIST "kth.chain.output_point_list"
4249
#define KTH_PY_CAPSULE_CHAIN_POINT "kth.chain.point"
4350
#define KTH_PY_CAPSULE_CHAIN_POINT_LIST "kth.chain.point_list"
51+
#define KTH_PY_CAPSULE_CHAIN_PREFILLED_TRANSACTION "kth.chain.prefilled_transaction"
52+
#define KTH_PY_CAPSULE_CHAIN_PREFILLED_TRANSACTION_LIST "kth.chain.prefilled_transaction_list"
4453
#define KTH_PY_CAPSULE_CHAIN_SCRIPT "kth.chain.script"
54+
#define KTH_PY_CAPSULE_CHAIN_STEALTH_COMPACT "kth.chain.stealth_compact"
55+
#define KTH_PY_CAPSULE_CHAIN_STEALTH_COMPACT_LIST "kth.chain.stealth_compact_list"
56+
#define KTH_PY_CAPSULE_CHAIN_TOKEN_DATA "kth.chain.token_data"
4557
#define KTH_PY_CAPSULE_CHAIN_TRANSACTION "kth.chain.transaction"
4658
#define KTH_PY_CAPSULE_CHAIN_TRANSACTION_LIST "kth.chain.transaction_list"
59+
#define KTH_PY_CAPSULE_CHAIN_UTXO "kth.chain.utxo"
60+
#define KTH_PY_CAPSULE_CHAIN_UTXO_LIST "kth.chain.utxo_list"
61+
#define KTH_PY_CAPSULE_CORE_BINARY "kth.core.binary"
4762
#define KTH_PY_CAPSULE_CORE_HASH_LIST "kth.core.hash_list"
63+
#define KTH_PY_CAPSULE_CORE_STRING_LIST "kth.core.string_list"
64+
#define KTH_PY_CAPSULE_CORE_U64_LIST "kth.core.u64_list"
4865
#define KTH_PY_CAPSULE_WALLET_EC_COMPRESSED_LIST "kth.wallet.ec_compressed_list"
66+
#define KTH_PY_CAPSULE_WALLET_EC_PRIVATE "kth.wallet.ec_private"
67+
#define KTH_PY_CAPSULE_WALLET_EC_PUBLIC "kth.wallet.ec_public"
68+
#define KTH_PY_CAPSULE_WALLET_HD_PRIVATE "kth.wallet.hd_private"
69+
#define KTH_PY_CAPSULE_WALLET_HD_PUBLIC "kth.wallet.hd_public"
4970
#define KTH_PY_CAPSULE_WALLET_PAYMENT_ADDRESS "kth.wallet.payment_address"
5071
#define KTH_PY_CAPSULE_WALLET_PAYMENT_ADDRESS_LIST "kth.wallet.payment_address_list"
72+
#define KTH_PY_CAPSULE_WALLET_WALLET_DATA "kth.wallet.wallet_data"
5173

5274
void kth_py_native_chain_block_capsule_dtor(PyObject* capsule);
5375
void kth_py_native_chain_block_list_capsule_dtor(PyObject* capsule);
76+
void kth_py_native_chain_compact_block_capsule_dtor(PyObject* capsule);
77+
void kth_py_native_chain_double_spend_proof_capsule_dtor(PyObject* capsule);
78+
void kth_py_native_chain_double_spend_proof_spender_capsule_dtor(PyObject* capsule);
79+
void kth_py_native_chain_get_blocks_capsule_dtor(PyObject* capsule);
80+
void kth_py_native_chain_get_headers_capsule_dtor(PyObject* capsule);
5481
void kth_py_native_chain_header_capsule_dtor(PyObject* capsule);
82+
void kth_py_native_chain_history_compact_capsule_dtor(PyObject* capsule);
83+
void kth_py_native_chain_history_compact_list_capsule_dtor(PyObject* capsule);
5584
void kth_py_native_chain_input_capsule_dtor(PyObject* capsule);
5685
void kth_py_native_chain_input_list_capsule_dtor(PyObject* capsule);
86+
void kth_py_native_chain_merkle_block_capsule_dtor(PyObject* capsule);
87+
void kth_py_native_chain_operation_capsule_dtor(PyObject* capsule);
88+
void kth_py_native_chain_operation_list_capsule_dtor(PyObject* capsule);
5789
void kth_py_native_chain_output_capsule_dtor(PyObject* capsule);
5890
void kth_py_native_chain_output_list_capsule_dtor(PyObject* capsule);
5991
void kth_py_native_chain_output_point_capsule_dtor(PyObject* capsule);
6092
void kth_py_native_chain_output_point_list_capsule_dtor(PyObject* capsule);
6193
void kth_py_native_chain_point_capsule_dtor(PyObject* capsule);
6294
void kth_py_native_chain_point_list_capsule_dtor(PyObject* capsule);
95+
void kth_py_native_chain_prefilled_transaction_capsule_dtor(PyObject* capsule);
96+
void kth_py_native_chain_prefilled_transaction_list_capsule_dtor(PyObject* capsule);
6397
void kth_py_native_chain_script_capsule_dtor(PyObject* capsule);
98+
void kth_py_native_chain_stealth_compact_capsule_dtor(PyObject* capsule);
99+
void kth_py_native_chain_stealth_compact_list_capsule_dtor(PyObject* capsule);
100+
void kth_py_native_chain_token_data_capsule_dtor(PyObject* capsule);
64101
void kth_py_native_chain_transaction_capsule_dtor(PyObject* capsule);
65102
void kth_py_native_chain_transaction_list_capsule_dtor(PyObject* capsule);
103+
void kth_py_native_chain_utxo_capsule_dtor(PyObject* capsule);
104+
void kth_py_native_chain_utxo_list_capsule_dtor(PyObject* capsule);
105+
void kth_py_native_core_binary_capsule_dtor(PyObject* capsule);
106+
void kth_py_native_wallet_ec_private_capsule_dtor(PyObject* capsule);
107+
void kth_py_native_wallet_ec_public_capsule_dtor(PyObject* capsule);
108+
void kth_py_native_wallet_hd_private_capsule_dtor(PyObject* capsule);
109+
void kth_py_native_wallet_hd_public_capsule_dtor(PyObject* capsule);
110+
void kth_py_native_wallet_payment_address_capsule_dtor(PyObject* capsule);
111+
void kth_py_native_wallet_payment_address_list_capsule_dtor(PyObject* capsule);
112+
void kth_py_native_wallet_wallet_data_capsule_dtor(PyObject* capsule);
66113

67114
#ifdef __cplusplus
68115
} // extern "C"
Lines changed: 26 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,40 @@
1+
// Copyright (c) 2016-present Knuth Project developers.
2+
// Distributed under the MIT software license, see the accompanying
3+
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
4+
15
#ifndef KTH_PY_NATIVE_CHAIN_COMPACT_BLOCK_H_
26
#define KTH_PY_NATIVE_CHAIN_COMPACT_BLOCK_H_
37

48
#define PY_SSIZE_T_CLEAN
59
#include <Python.h>
610

7-
#include <kth/capi.h>
8-
#include <kth/py-native/utils.h>
9-
1011
#ifdef __cplusplus
1112
extern "C" {
1213
#endif
1314

14-
PyObject* kth_py_native_chain_compact_block_header(PyObject* self, PyObject* args);
15-
PyObject* kth_py_native_chain_compact_block_is_valid(PyObject* self, PyObject* args);
16-
PyObject* kth_py_native_chain_compact_block_serialized_size(PyObject* self, PyObject* args);
17-
PyObject* kth_py_native_chain_compact_block_transaction_count(PyObject* self, PyObject* args);
18-
PyObject* kth_py_native_chain_compact_block_transaction_nth(PyObject* self, PyObject* args);
19-
PyObject* kth_py_native_chain_compact_block_nonce(PyObject* self, PyObject* args);
20-
PyObject* kth_py_native_chain_compact_block_destruct(PyObject* self, PyObject* args);
21-
PyObject* kth_py_native_chain_compact_block_reset(PyObject* self, PyObject* args);
15+
PyObject* kth_py_native_chain_compact_block_construct_default(PyObject* self, PyObject* args);
16+
PyObject* kth_py_native_chain_compact_block_construct_from_data(PyObject* self, PyObject* args, PyObject* kwds);
17+
PyObject* kth_py_native_chain_compact_block_construct(PyObject* self, PyObject* args, PyObject* kwds);
18+
PyObject* kth_py_native_chain_compact_block_copy(PyObject* self, PyObject* arg);
19+
PyObject* kth_py_native_chain_compact_block_destruct(PyObject* self, PyObject* arg);
20+
PyObject* kth_py_native_chain_compact_block_equals(PyObject* self, PyObject* args, PyObject* kwds);
21+
PyObject* kth_py_native_chain_compact_block_header(PyObject* self, PyObject* arg);
22+
PyObject* kth_py_native_chain_compact_block_set_header(PyObject* self, PyObject* args, PyObject* kwds);
23+
PyObject* kth_py_native_chain_compact_block_nonce(PyObject* self, PyObject* arg);
24+
PyObject* kth_py_native_chain_compact_block_set_nonce(PyObject* self, PyObject* args, PyObject* kwds);
25+
PyObject* kth_py_native_chain_compact_block_short_ids(PyObject* self, PyObject* arg);
26+
PyObject* kth_py_native_chain_compact_block_set_short_ids(PyObject* self, PyObject* args, PyObject* kwds);
27+
PyObject* kth_py_native_chain_compact_block_transactions(PyObject* self, PyObject* arg);
28+
PyObject* kth_py_native_chain_compact_block_set_transactions(PyObject* self, PyObject* args, PyObject* kwds);
29+
PyObject* kth_py_native_chain_compact_block_to_data(PyObject* self, PyObject* args, PyObject* kwds);
30+
PyObject* kth_py_native_chain_compact_block_is_valid(PyObject* self, PyObject* arg);
31+
PyObject* kth_py_native_chain_compact_block_reset(PyObject* self, PyObject* arg);
32+
PyObject* kth_py_native_chain_compact_block_serialized_size(PyObject* self, PyObject* args, PyObject* kwds);
33+
34+
extern PyMethodDef kth_py_native_chain_compact_block_methods[];
2235

2336
#ifdef __cplusplus
24-
} //extern "C"
37+
} // extern "C"
2538
#endif
2639

27-
#endif
40+
#endif // KTH_PY_NATIVE_CHAIN_COMPACT_BLOCK_H_
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
// Copyright (c) 2016-present Knuth Project developers.
2+
// Distributed under the MIT software license, see the accompanying
3+
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
4+
5+
#ifndef KTH_PY_NATIVE_CHAIN_DOUBLE_SPEND_PROOF_H_
6+
#define KTH_PY_NATIVE_CHAIN_DOUBLE_SPEND_PROOF_H_
7+
8+
#define PY_SSIZE_T_CLEAN
9+
#include <Python.h>
10+
11+
#ifdef __cplusplus
12+
extern "C" {
13+
#endif
14+
15+
PyObject* kth_py_native_chain_double_spend_proof_construct_default(PyObject* self, PyObject* args);
16+
PyObject* kth_py_native_chain_double_spend_proof_construct_from_data(PyObject* self, PyObject* args, PyObject* kwds);
17+
PyObject* kth_py_native_chain_double_spend_proof_construct(PyObject* self, PyObject* args, PyObject* kwds);
18+
PyObject* kth_py_native_chain_double_spend_proof_copy(PyObject* self, PyObject* arg);
19+
PyObject* kth_py_native_chain_double_spend_proof_destruct(PyObject* self, PyObject* arg);
20+
PyObject* kth_py_native_chain_double_spend_proof_equals(PyObject* self, PyObject* args, PyObject* kwds);
21+
PyObject* kth_py_native_chain_double_spend_proof_out_point(PyObject* self, PyObject* arg);
22+
PyObject* kth_py_native_chain_double_spend_proof_set_out_point(PyObject* self, PyObject* args, PyObject* kwds);
23+
PyObject* kth_py_native_chain_double_spend_proof_spender1(PyObject* self, PyObject* arg);
24+
PyObject* kth_py_native_chain_double_spend_proof_set_spender1(PyObject* self, PyObject* args, PyObject* kwds);
25+
PyObject* kth_py_native_chain_double_spend_proof_spender2(PyObject* self, PyObject* arg);
26+
PyObject* kth_py_native_chain_double_spend_proof_set_spender2(PyObject* self, PyObject* args, PyObject* kwds);
27+
PyObject* kth_py_native_chain_double_spend_proof_to_data(PyObject* self, PyObject* args, PyObject* kwds);
28+
PyObject* kth_py_native_chain_double_spend_proof_is_valid(PyObject* self, PyObject* arg);
29+
PyObject* kth_py_native_chain_double_spend_proof_reset(PyObject* self, PyObject* arg);
30+
PyObject* kth_py_native_chain_double_spend_proof_serialized_size(PyObject* self, PyObject* args, PyObject* kwds);
31+
PyObject* kth_py_native_chain_double_spend_proof_hash(PyObject* self, PyObject* arg);
32+
33+
extern PyMethodDef kth_py_native_chain_double_spend_proof_methods[];
34+
35+
#ifdef __cplusplus
36+
} // extern "C"
37+
#endif
38+
39+
#endif // KTH_PY_NATIVE_CHAIN_DOUBLE_SPEND_PROOF_H_
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
// Copyright (c) 2016-present Knuth Project developers.
2+
// Distributed under the MIT software license, see the accompanying
3+
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
4+
5+
#ifndef KTH_PY_NATIVE_CHAIN_DOUBLE_SPEND_PROOF_SPENDER_H_
6+
#define KTH_PY_NATIVE_CHAIN_DOUBLE_SPEND_PROOF_SPENDER_H_
7+
8+
#define PY_SSIZE_T_CLEAN
9+
#include <Python.h>
10+
11+
#ifdef __cplusplus
12+
extern "C" {
13+
#endif
14+
15+
PyObject* kth_py_native_chain_double_spend_proof_spender_construct_from_data(PyObject* self, PyObject* args, PyObject* kwds);
16+
PyObject* kth_py_native_chain_double_spend_proof_spender_copy(PyObject* self, PyObject* arg);
17+
PyObject* kth_py_native_chain_double_spend_proof_spender_destruct(PyObject* self, PyObject* arg);
18+
PyObject* kth_py_native_chain_double_spend_proof_spender_version(PyObject* self, PyObject* arg);
19+
PyObject* kth_py_native_chain_double_spend_proof_spender_set_version(PyObject* self, PyObject* args, PyObject* kwds);
20+
PyObject* kth_py_native_chain_double_spend_proof_spender_out_sequence(PyObject* self, PyObject* arg);
21+
PyObject* kth_py_native_chain_double_spend_proof_spender_set_out_sequence(PyObject* self, PyObject* args, PyObject* kwds);
22+
PyObject* kth_py_native_chain_double_spend_proof_spender_locktime(PyObject* self, PyObject* arg);
23+
PyObject* kth_py_native_chain_double_spend_proof_spender_set_locktime(PyObject* self, PyObject* args, PyObject* kwds);
24+
PyObject* kth_py_native_chain_double_spend_proof_spender_prev_outs_hash(PyObject* self, PyObject* arg);
25+
PyObject* kth_py_native_chain_double_spend_proof_spender_set_prev_outs_hash(PyObject* self, PyObject* args, PyObject* kwds);
26+
PyObject* kth_py_native_chain_double_spend_proof_spender_sequence_hash(PyObject* self, PyObject* arg);
27+
PyObject* kth_py_native_chain_double_spend_proof_spender_set_sequence_hash(PyObject* self, PyObject* args, PyObject* kwds);
28+
PyObject* kth_py_native_chain_double_spend_proof_spender_outputs_hash(PyObject* self, PyObject* arg);
29+
PyObject* kth_py_native_chain_double_spend_proof_spender_set_outputs_hash(PyObject* self, PyObject* args, PyObject* kwds);
30+
PyObject* kth_py_native_chain_double_spend_proof_spender_push_data(PyObject* self, PyObject* arg);
31+
PyObject* kth_py_native_chain_double_spend_proof_spender_set_push_data(PyObject* self, PyObject* args, PyObject* kwds);
32+
PyObject* kth_py_native_chain_double_spend_proof_spender_is_valid(PyObject* self, PyObject* arg);
33+
PyObject* kth_py_native_chain_double_spend_proof_spender_reset(PyObject* self, PyObject* arg);
34+
PyObject* kth_py_native_chain_double_spend_proof_spender_equals(PyObject* self, PyObject* args, PyObject* kwds);
35+
PyObject* kth_py_native_chain_double_spend_proof_spender_serialized_size(PyObject* self, PyObject* arg);
36+
37+
extern PyMethodDef kth_py_native_chain_double_spend_proof_spender_methods[];
38+
39+
#ifdef __cplusplus
40+
} // extern "C"
41+
#endif
42+
43+
#endif // KTH_PY_NATIVE_CHAIN_DOUBLE_SPEND_PROOF_SPENDER_H_
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
// Copyright (c) 2016-present Knuth Project developers.
2+
// Distributed under the MIT software license, see the accompanying
3+
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
4+
5+
#ifndef KTH_PY_NATIVE_CHAIN_GET_BLOCKS_H_
6+
#define KTH_PY_NATIVE_CHAIN_GET_BLOCKS_H_
7+
8+
#define PY_SSIZE_T_CLEAN
9+
#include <Python.h>
10+
11+
#ifdef __cplusplus
12+
extern "C" {
13+
#endif
14+
15+
PyObject* kth_py_native_chain_get_blocks_construct_default(PyObject* self, PyObject* args);
16+
PyObject* kth_py_native_chain_get_blocks_construct_from_data(PyObject* self, PyObject* args, PyObject* kwds);
17+
PyObject* kth_py_native_chain_get_blocks_construct(PyObject* self, PyObject* args, PyObject* kwds);
18+
PyObject* kth_py_native_chain_get_blocks_copy(PyObject* self, PyObject* arg);
19+
PyObject* kth_py_native_chain_get_blocks_destruct(PyObject* self, PyObject* arg);
20+
PyObject* kth_py_native_chain_get_blocks_equals(PyObject* self, PyObject* args, PyObject* kwds);
21+
PyObject* kth_py_native_chain_get_blocks_start_hashes(PyObject* self, PyObject* arg);
22+
PyObject* kth_py_native_chain_get_blocks_set_start_hashes(PyObject* self, PyObject* args, PyObject* kwds);
23+
PyObject* kth_py_native_chain_get_blocks_stop_hash(PyObject* self, PyObject* arg);
24+
PyObject* kth_py_native_chain_get_blocks_set_stop_hash(PyObject* self, PyObject* args, PyObject* kwds);
25+
PyObject* kth_py_native_chain_get_blocks_to_data(PyObject* self, PyObject* args, PyObject* kwds);
26+
PyObject* kth_py_native_chain_get_blocks_is_valid(PyObject* self, PyObject* arg);
27+
PyObject* kth_py_native_chain_get_blocks_reset(PyObject* self, PyObject* arg);
28+
PyObject* kth_py_native_chain_get_blocks_serialized_size(PyObject* self, PyObject* args, PyObject* kwds);
29+
30+
extern PyMethodDef kth_py_native_chain_get_blocks_methods[];
31+
32+
#ifdef __cplusplus
33+
} // extern "C"
34+
#endif
35+
36+
#endif // KTH_PY_NATIVE_CHAIN_GET_BLOCKS_H_

0 commit comments

Comments
 (0)