diff --git a/modules/cellframe-sdk/net/include/libdap_chain_net_python.h b/modules/cellframe-sdk/net/include/libdap_chain_net_python.h index 282da1267f54dc4ab87164d5327f02e9c604ae75..d6bf30b29fef57a72b4176029e2a69859ea9d3c3 100644 --- a/modules/cellframe-sdk/net/include/libdap_chain_net_python.h +++ b/modules/cellframe-sdk/net/include/libdap_chain_net_python.h @@ -76,6 +76,7 @@ PyObject *dap_chain_net_links_connect_py(PyObject *self, PyObject *args); PyObject *dap_chain_net_get_chain_by_chain_type_py(PyObject *self, PyObject *args); PyObject *dap_chain_net_get_ledger_py(PyObject *self, PyObject *args); PyObject *dap_chain_net_get_name_py(PyObject *self, PyObject *args); +PyObject *dap_chain_net_get_tx_by_hash_py(PyObject *self, PyObject *args); static PyMethodDef DapChainNetMethods[] = { {"loadAll", dap_chain_net_load_all_py, METH_NOARGS | METH_STATIC, ""}, @@ -100,6 +101,7 @@ static PyMethodDef DapChainNetMethods[] = { {"getChainByChainType", dap_chain_net_get_chain_by_chain_type_py, METH_VARARGS, ""}, {"getLedger", dap_chain_net_get_ledger_py, METH_NOARGS, ""}, {"getName", dap_chain_net_get_name_py, METH_NOARGS, ""}, + {"getTxByHash", dap_chain_net_get_tx_by_hash_py, METH_VARARGS, ""}, {NULL, NULL, 0, NULL} }; diff --git a/modules/cellframe-sdk/net/src/libdap_chain_net_python.c b/modules/cellframe-sdk/net/src/libdap_chain_net_python.c index ae9a4b94db041201324023e00647031a233ba3db..3f81f3f6c6768137b18d858622374ea0b88959fe 100644 --- a/modules/cellframe-sdk/net/src/libdap_chain_net_python.c +++ b/modules/cellframe-sdk/net/src/libdap_chain_net_python.c @@ -167,3 +167,19 @@ PyObject *dap_chain_net_get_name_py(PyObject *self, PyObject *args){ PyObject *obj_name = PyUnicode_FromString(((PyDapChainNetObject*)self)->chain_net->pub.name); return obj_name; } + +PyObject *dap_chain_net_get_tx_by_hash_py(PyObject *self, PyObject *args){ + PyObject *obj_hash; + if (!PyArg_ParseTuple(args, "O", &obj_hash)){ + return NULL; + } + PyDapChainDatumTxObject *obj_tx = PyObject_New(PyDapChainDatumTxObject, &DapChainDatumTx_DapChainDatumTxObjectType); + PyObject_Dir((PyObject*)obj_tx); + obj_tx->datum_tx = dap_chain_net_get_tx_by_hash(((PyDapChainNetObject*)self)->chain_net, + ((PyDapHashFastObject*)obj_hash)->hash_fast, TX_SEARCH_TYPE_LOCAL); + if(obj_tx->datum_tx == NULL){ + Py_XDECREF(obj_tx); + return Py_None; + } + return (PyObject*)obj_tx; +}