Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#include "wrapping_dap_chain_datum_tx.h"
/* DAP chain tx iter type */
PyObject *TX_ITEM_TYPE_IN_PY(void){
return PyLong_FromLong(TX_ITEM_TYPE_IN);
}
PyObject *TX_ITEM_TYPE_OUT_PY(void){
return PyLong_FromLong(TX_ITEM_TYPE_OUT);
}
PyObject *TX_ITEM_TYPE_PKEY_PY(void){
return PyLong_FromLong(TX_ITEM_TYPE_PKEY);
}
PyObject *TX_ITEM_TYPE_SIG_PY(void){
return PyLong_FromLong(TX_ITEM_TYPE_SIG);
}
PyObject *TX_ITEM_TYPE_TOKEN_PY(void){
return PyLong_FromLong(TX_ITEM_TYPE_TOKEN);
}
PyObject *TX_ITEM_TYPE_IN_COND_PY(void){
return PyLong_FromLong(TX_ITEM_TYPE_IN_COND);
}
PyObject *TX_ITEM_TYPE_OUT_COND_PY(void){
return PyLong_FromLong(TX_ITEM_TYPE_OUT_COND);
}
PyObject *TX_ITEM_TYPE_RECEIPT_PY(void){
return PyLong_FromLong(TX_ITEM_TYPE_RECEIPT);
}
/* -------------------------------------- */
/* DAP chain tx cond type */
PyObject *COND_SERVICE_PROVIDE_PY(){
PyObject *obj = _PyObject_New(&DapChainTxCondType_DapChainTxCondTypeObject);
((PyDapChainTxCondTypeObject*)obj)->tx_cond_type_t = COND_SERVICE_PROVIDE;
return Py_BuildValue("O", obj);
}
PyObject *COND_SERVICE_BILL_PY(){
PyObject *obj = _PyObject_New(&DapChainTxCondType_DapChainTxCondTypeObject);
((PyDapChainTxCondTypeObject*)obj)->tx_cond_type_t = COND_SERVICE_BILL;
return Py_BuildValue("O", obj);
}
/* -------------------------------------- */
/* DAP chain datum tx */
PyObject *PyDapChainDatumTxObject_create(PyTypeObject *type_object, PyObject *args, PyObject *kwds){
PyDapChainDatumTxObject *obj = (PyDapChainDatumTxObject*)PyType_GenericNew(type_object, args, kwds);
obj->datum_tx = dap_chain_datum_tx_create();
return (PyObject *)obj;
}
void PyDapChainDatumTxObject_delete(PyDapChainDatumTxObject* datumTx){
dap_chain_datum_tx_delete(datumTx->datum_tx);
Py_TYPE(datumTx)->tp_free((PyObject*)datumTx);
}
PyObject *dap_chain_datum_tx_get_size_py(PyObject *self, PyObject *args){
size_t size = dap_chain_datum_tx_get_size(((PyDapChainDatumTxObject*)self)->datum_tx);
return PyLong_FromSize_t(size);
}
PyObject *dap_chain_datum_tx_add_item_py(PyObject *self, PyObject *args){
uint8_t *a_item;
if (!PyArg_ParseTuple(args, "b", &a_item))
int res = dap_chain_datum_tx_add_item(&(((PyDapChainDatumTxObject*)self)->datum_tx), a_item);
return PyLong_FromLong(res);
}
PyObject *dap_chain_datum_tx_add_in_item_py(PyObject *self, PyObject *args){
PyObject *in_obj_hash_fast;
uint32_t in_tx_out_pref_idx;
if (!PyArg_ParseTuple(args, "O|I", &in_obj_hash_fast, &in_tx_out_pref_idx))
int res = dap_chain_datum_tx_add_in_item(&(((PyDapChainDatumTxObject*)self)->datum_tx),
((PyDapHashFastObject*)in_obj_hash_fast)->hash_fast,
}
PyObject *dap_chain_datum_tx_add_in_cond_item_py(PyObject *self, PyObject *args){
PyObject *in_chain_hash_fast;
unsigned int in_tx_out_prev_idx;
unsigned int in_receipt_idx;
if (!PyArg_ParseTuple(args, "O|I|I", &in_chain_hash_fast, &in_tx_out_prev_idx, &in_receipt_idx))
int res = dap_chain_datum_tx_add_in_cond_item(&(((PyDapChainDatumTxObject*)self)->datum_tx),
((PyDapHashFastObject*)in_chain_hash_fast)->hash_fast,
in_tx_out_prev_idx,
in_receipt_idx);
return PyLong_FromLong(res);
}
PyObject *dap_chain_datum_tx_add_out_item_py(PyObject *self, PyObject *args){
PyObject *in_addr;
uint64_t value;
if (!PyArg_ParseTuple(args, "O|k", &in_addr, &value))
int res = dap_chain_datum_tx_add_out_item(&(((PyDapChainDatumTxObject*)self)->datum_tx),
((PyDapChainAddrObject*)in_addr)->addr,
value);
return PyLong_FromLong(res);
}
PyObject *dap_chain_datum_tx_add_out_cond_item_py(PyObject *self, PyObject *args){
PyObject *obj_key;
PyObject *obj_srv_uid;
uint64_t value;
uint64_t value_max_per_unit;
PyObject *obj_srv_price_unit_uid;
PyObject *obj_cond_bytes;
Py_ssize_t cond_size;
if (!PyArg_ParseTuple(args, "O|O|k|k|O|O|n", &obj_key, &obj_srv_uid, &value, &value_max_per_unit,
&obj_srv_price_unit_uid, &obj_cond_bytes, &cond_size))
return NULL;
void *cond = (void*)PyBytes_AsString(obj_cond_bytes);
int res = dap_chain_datum_tx_add_out_cond_item(&(((PyDapChainDatumTxObject*)self)->datum_tx),
((PyCryptoKeyObject*)obj_key)->key,
((PyDapChainNetSrvUIDObject*)obj_srv_uid)->net_srv_uid,
value, value_max_per_unit,
((PyDapChainNetSrvPriceUnitUIDObject*)obj_srv_price_unit_uid)->price_unit_uid,
}
PyObject *dap_chain_datum_tx_add_sign_item_py(PyObject *self, PyObject *args){
PyObject *obj_key;
if (!PyArg_ParseTuple(args, "O", &obj_key))
int res = dap_chain_datum_tx_add_sign_item(&(((PyDapChainDatumTxObject*)self)->datum_tx),
((PyCryptoKeyObject*)obj_key)->key);
return PyLong_FromLong(res);
}
PyObject *dap_chain_datum_tx_verify_sign_py(PyObject *self, PyObject *args){
int res = dap_chain_datum_tx_verify_sign(((PyDapChainDatumTxObject*)self)->datum_tx);
return PyLong_FromLong(res);
}
/* -------------------------------------- */