Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • cellframe/libdap-chain-python
1 result
Show changes
Commits on Source (18)
Showing
with 35 additions and 1085 deletions
......@@ -67,3 +67,9 @@
[submodule "libdap-server-http-db"]
path = libdap-server-http-db
url = https://gitlab.demlabs.net/cellframe/libdap-server-http-db.git
[submodule "libdap-chain-common"]
path = libdap-chain-common
url = https://gitlab.demlabs.net/cellframe/libdap-chain-common.git
[submodule "libdap-chain-common-python"]
path = libdap-chain-common-python
url = https://gitlab.demlabs.net/cellframe/libdap-chain-common-python.git
......@@ -7,7 +7,6 @@ set(CMAKE_C_STANDARD 11)
add_definitions("-fpic")
add_definitions("-DDAP_LOG_MT")
add_definitions ("-DNODE_NETNAME=\"cellframe\"")
if(UNIX)
add_definitions("-DDAP_OS_UNIX")
endif()
......@@ -42,6 +41,13 @@ if (NOT (${SUBMODULES_NO_BUILD} MATCHES ON))
"-fpic"
)
endif()
if (NOT (TARGET dap_chain_common))
add_subdirectory(libdap-chain-common)
target_compile_options(
dap_chain_common PRIVATE
"-fpic"
)
endif()
if (NOT (TARGET dap_chain_mempool))
add_subdirectory(libdap-chain-mempool)
target_compile_options(
......@@ -175,13 +181,20 @@ if (NOT (${SUBMODULES_NO_BUILD} MATCHES ON))
"-fpic"
)
endif()
if (NOT (TARGET dap_chain_common_python_module))
add_subdirectory(libdap-chain-common-python)
target_compile_options(
dap_chain_common_python_module PRIVATE
"-fpic"
)
endif()
endif()
#add_definitions("-DDAP_APP_NAME=\"TestPRJ\" -DSYSTEM_CONFIGS_DIR=\"${CMAKE_CURRENT_BINARY_DIR}\"")
file(GLOB CHAIN_PYTHON_SRCS src/*.c)
file(GLOB CHAIN_PYTHON_HEADERS include/*.h)
set(Python_ADDITIONAL_VERSIONS 3.7)
set(Python_ADDITIONAL_VERSIONS 3.7 3.6 3.5 3.4)
find_package (PythonLibs REQUIRED)
include_directories(${PYTHON_INCLUDE_DIR} include/)
......@@ -189,7 +202,7 @@ add_library(${PROJECT_NAME} STATIC ${CHAIN_PYTHON_SRCS} ${CHAIN_PYTHON_HEADERS})
target_link_libraries(${PROJECT_NAME})
target_link_libraries(${PROJECT_NAME} dap_core dap_crypto dap_chain dap_chain_crypto dap_server_core dap_chain_net dap_crypto_python_module dap_python_module)
target_link_libraries(${PROJECT_NAME} dap_core dap_crypto dap_chain dap_chain_crypto dap_server_core dap_chain_net dap_crypto_python_module dap_python_module dap_chain_common_python_module)
target_include_directories(${PROJECT_NAME} PUBLIC include/ )
#pragma once
#define DAP_APP_NAME NODE_NETNAME "-node"
//#ifdef _WIN32
// #define SYSTEM_PREFIX "%USERPROFILE%/opt/"DAP_APP_NAME
//#else
#define SYSTEM_PREFIX "/opt/"DAP_APP_NAME
// #define SYSTEM_PREFIX "opt/"DAP_APP_NAME
//#endif
#define LOCAL_PREFIX "~/."DAP_APP_NAME
#define SYSTEM_CONFIGS_DIR SYSTEM_PREFIX"/etc"
#define LOCAL_CONFIGS_DIR LOCAL_PREFIX"/etc"
#define SYSTEM_LOGS_DIR SYSTEM_PREFIX"/var/log"
#define SYSTEM_CONFIG_GLOBAL_FILENAME SYSTEM_PREFIX"/etc/"DAP_APP_NAME".cfg"
#define LOCAL_CONFIG_GLOBAL LOCAL_PREFIX"/etc/"DAP_APP_NAME".cfg"
#define SYSTEM_PID_FILE_PATH SYSTEM_PREFIX"/run/"DAP_APP_NAME".pid"
#define LOCAL_PID_FILE_PATH SYSTEM_PREFIX"/run/"DAP_APP_NAME".pid"
......@@ -8,12 +8,11 @@
//#define SYSTEM_CONFIGS_DIR SYSTEM_PREFIX"/etc"
#include "Python.h"
#include "dap_defines.h"
//#define DAP_APP_NAME "BINDING_CHAIN_PYTHON"
#include "dap_chain.h"
#include "dap_chain_node_client.h"
#include "wrapping_dap_chain_ledger.h"
#include "wrapping_dap_chain_common_objects.h"
#include "wrapping_dap_chain_common.h"
#ifdef __cplusplus
extern "C" {
......
#ifndef _WRAPPING_DAP_CHAIN_COMMON_
#define _WRAPPING_DAP_CHAIN_COMMON_
#include "Python.h"
#include "dap_chain_common.h"
#include "wrapping_dap_chain_common_objects.h"
#include "libdap_crypto_key_python.h"
#ifdef __cplusplus
extern "C" {
#endif
typedef struct PyDapChainCommon{
PyObject_HEAD
}PyDapChainCommonObject;
PyObject *dap_chain_hash_slow_to_str_py(PyObject *self, PyObject *args);
PyObject *dap_chain_str_to_hash_fast_py(PyObject *self, PyObject *args);
PyObject *dap_chain_addr_to_str_py(PyObject *self, PyObject *args);
PyObject *dap_chain_addr_from_str_py(PyObject *self, PyObject *args);
PyObject *dap_chain_addr_fill_py(PyObject *self, PyObject *args);
PyObject *dap_chain_addr_check_sum_py(PyObject *self, PyObject *args);
static PyMethodDef PyDapChainCommonObjectMethods[] ={
{"hashSlowToStr", dap_chain_hash_slow_to_str_py, METH_VARARGS|METH_STATIC, ""},
{"strTpHashFast", dap_chain_str_to_hash_fast_py, METH_VARARGS|METH_STATIC, ""},
{"addrToStr", dap_chain_addr_to_str_py, METH_VARARGS|METH_STATIC, ""},
{"addrFromStr", dap_chain_addr_from_str_py, METH_VARARGS|METH_STATIC, ""},
{"addrFill", dap_chain_addr_fill_py, METH_VARARGS|METH_STATIC, ""},
{"addrCheckSum", dap_chain_addr_check_sum_py, METH_VARARGS|METH_STATIC, ""},
{NULL, NULL, 0, NULL}
};
static PyTypeObject ChainCommonObject_ChainCommonType = {
PyVarObject_HEAD_INIT(NULL, 0)
"CellFrame.Chain.Common", /* tp_name */
sizeof(PyDapChainCommonObject), /* tp_basicsize */
0, /* tp_itemsize */
0, /* tp_dealloc */
0, /* tp_print */
0, /* tp_getattr */
0, /* tp_setattr */
0, /* tp_reserved */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
0, /* tp_as_mapping */
0, /* tp_hash */
0, /* tp_call */
0, /* tp_str */
0, /* tp_getattro */
0, /* tp_setattro */
0, /* tp_as_buffer */
Py_TPFLAGS_DEFAULT |
Py_TPFLAGS_BASETYPE, /* tp_flags */
"Chain common objects", /* tp_doc */
0, /* tp_traverse */
0, /* tp_clear */
0, /* tp_richcompare */
0, /* tp_weaklistoffset */
0, /* tp_iter */
0, /* tp_iternext */
PyDapChainCommonObjectMethods, /* tp_methods */
0, /* tp_members */
0, /* tp_getset */
0, /* tp_base */
0, /* tp_dict */
0, /* tp_descr_get */
0, /* tp_descr_set */
0, /* tp_dictoffset */
0, /* tp_init */
0, /* tp_alloc */
PyType_GenericNew, /* tp_new */
};
#ifdef __cplusplus
}
#endif
#endif //_WRAPPING_DAP_CHAIN_COMMON_
#ifndef _WRAPPING_DAP_CHAIN_COMMON_OBJECTS_
#define _WRAPPING_DAP_CHAIN_COMMON_OBJECTS_
#include "Python.h"
#include "dap_chain_common.h"
#ifdef __cplusplus
extern "C" {
#endif
/* DAP Chain ID*/
typedef struct PyDapChainId{
PyObject_HEAD
dap_chain_id_t id;
}PyDapChainIdObject;
static PyTypeObject DapChainIdObject_DapChainIdObjectType = {
PyVarObject_HEAD_INIT(NULL, 0)
"CellFrame.Chain.ID", /* tp_name */
sizeof(PyDapChainIdObject), /* tp_basicsize */
0, /* tp_itemsize */
0, /* tp_dealloc */
0, /* tp_print */
0, /* tp_getattr */
0, /* tp_setattr */
0, /* tp_reserved */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
0, /* tp_as_mapping */
0, /* tp_hash */
0, /* tp_call */
0, /* tp_str */
0, /* tp_getattro */
0, /* tp_setattro */
0, /* tp_as_buffer */
Py_TPFLAGS_DEFAULT |
Py_TPFLAGS_BASETYPE, /* tp_flags */
"Chain id object", /* tp_doc */
0, /* tp_traverse */
0, /* tp_clear */
0, /* tp_richcompare */
0, /* tp_weaklistoffset */
0, /* tp_iter */
0, /* tp_iternext */
0, /* tp_methods */
0, /* tp_members */
0, /* tp_getset */
0, /* tp_base */
0, /* tp_dict */
0, /* tp_descr_get */
0, /* tp_descr_set */
0, /* tp_dictoffset */
0, /* tp_init */
0, /* tp_alloc */
PyType_GenericNew, /* tp_new */
};
/*-------------------------------*/
/* DAP chain cell id */
typedef struct PyDapChainCellId{
PyObject_HEAD
dap_chain_cell_id_t id;
}PyDapChainCellIdObject;
static PyTypeObject DapChainCellIdObject_DapChainCellIdObjectType = {
PyVarObject_HEAD_INIT(NULL, 0)
"CellFrame.Chain.CellID", /* tp_name */
sizeof(PyDapChainCellIdObject), /* tp_basicsize */
0, /* tp_itemsize */
0, /* tp_dealloc */
0, /* tp_print */
0, /* tp_getattr */
0, /* tp_setattr */
0, /* tp_reserved */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
0, /* tp_as_mapping */
0, /* tp_hash */
0, /* tp_call */
0, /* tp_str */
0, /* tp_getattro */
0, /* tp_setattro */
0, /* tp_as_buffer */
Py_TPFLAGS_DEFAULT |
Py_TPFLAGS_BASETYPE, /* tp_flags */
"Chain cell id object", /* tp_doc */
0, /* tp_traverse */
0, /* tp_clear */
0, /* tp_richcompare */
0, /* tp_weaklistoffset */
0, /* tp_iter */
0, /* tp_iternext */
0, /* tp_methods */
0, /* tp_members */
0, /* tp_getset */
0, /* tp_base */
0, /* tp_dict */
0, /* tp_descr_get */
0, /* tp_descr_set */
0, /* tp_dictoffset */
0, /* tp_init */
0, /* tp_alloc */
PyType_GenericNew, /* tp_new */
};
/*-------------------------------*/
/* DAP chain Addr */
typedef struct PyDapChainNodeAddr{
PyObject_HEAD
dap_chain_node_addr_t *node_addr;
}PyDapChainNodeAddrObject;
static PyTypeObject DapChainNodeAddrObject_DapChainNodeAddrObjectType = {
PyVarObject_HEAD_INIT(NULL, 0)
"CellFrame.Chain.NodeAddr", /* tp_name */
sizeof(PyDapChainNodeAddrObject), /* tp_basicsize */
0, /* tp_itemsize */
0, /* tp_dealloc */
0, /* tp_print */
0, /* tp_getattr */
0, /* tp_setattr */
0, /* tp_reserved */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
0, /* tp_as_mapping */
0, /* tp_hash */
0, /* tp_call */
0, /* tp_str */
0, /* tp_getattro */
0, /* tp_setattro */
0, /* tp_as_buffer */
Py_TPFLAGS_DEFAULT |
Py_TPFLAGS_BASETYPE, /* tp_flags */
"Chain node addr object", /* tp_doc */
0, /* tp_traverse */
0, /* tp_clear */
0, /* tp_richcompare */
0, /* tp_weaklistoffset */
0, /* tp_iter */
0, /* tp_iternext */
0, /* tp_methods */
0, /* tp_members */
0, /* tp_getset */
0, /* tp_base */
0, /* tp_dict */
0, /* tp_descr_get */
0, /* tp_descr_set */
0, /* tp_dictoffset */
0, /* tp_init */
0, /* tp_alloc */
PyType_GenericNew, /* tp_new */
};
/*-------------------------------*/
typedef struct PyDapChainNodeRole{
PyObject_HEAD
dap_chain_node_role_t *node_role;
}PyDapChainNodeRoleObject;
/* DAP Chain Net ID */
typedef struct PyDapChainNetId{
PyObject_HEAD
dap_chain_net_id_t net_id;
}PyDapChainNetIdObject;
static PyTypeObject DapChainNetIdObject_DapChainNetIdObjectType = {
PyVarObject_HEAD_INIT(NULL, 0)
"CellFrame.Chain.NetID", /* tp_name */
sizeof(PyDapChainNetIdObject), /* tp_basicsize */
0, /* tp_itemsize */
0, /* tp_dealloc */
0, /* tp_print */
0, /* tp_getattr */
0, /* tp_setattr */
0, /* tp_reserved */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
0, /* tp_as_mapping */
0, /* tp_hash */
0, /* tp_call */
0, /* tp_str */
0, /* tp_getattro */
0, /* tp_setattro */
0, /* tp_as_buffer */
Py_TPFLAGS_DEFAULT |
Py_TPFLAGS_BASETYPE, /* tp_flags */
"Chain net id object", /* tp_doc */
0, /* tp_traverse */
0, /* tp_clear */
0, /* tp_richcompare */
0, /* tp_weaklistoffset */
0, /* tp_iter */
0, /* tp_iternext */
0, /* tp_methods */
0, /* tp_members */
0, /* tp_getset */
0, /* tp_base */
0, /* tp_dict */
0, /* tp_descr_get */
0, /* tp_descr_set */
0, /* tp_dictoffset */
0, /* tp_init */
0, /* tp_alloc */
PyType_GenericNew, /* tp_new */
};
/* ------------------------------- */
/* DAP chain Hash Slow Object */
typedef struct PyDapChainHashSlow{
PyObject_HEAD
dap_chain_hash_slow_t *hash_slow;
}PyDapChainHashSlowObject;
static PyTypeObject DapChainHashSlowObject_DapChainHashSlowObjectType = {
PyVarObject_HEAD_INIT(NULL, 0)
"CellFrame.Chain.HashSlow", /* tp_name */
sizeof(PyDapChainHashSlowObject),/* tp_basicsize */
0, /* tp_itemsize */
0, /* tp_dealloc */
0, /* tp_print */
0, /* tp_getattr */
0, /* tp_setattr */
0, /* tp_reserved */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
0, /* tp_as_mapping */
0, /* tp_hash */
0, /* tp_call */
0, /* tp_str */
0, /* tp_getattro */
0, /* tp_setattro */
0, /* tp_as_buffer */
Py_TPFLAGS_DEFAULT |
Py_TPFLAGS_BASETYPE, /* tp_flags */
"Chain hash slow object", /* tp_doc */
0, /* tp_traverse */
0, /* tp_clear */
0, /* tp_richcompare */
0, /* tp_weaklistoffset */
0, /* tp_iter */
0, /* tp_iternext */
0, /* tp_methods */
0, /* tp_members */
0, /* tp_getset */
0, /* tp_base */
0, /* tp_dict */
0, /* tp_descr_get */
0, /* tp_descr_set */
0, /* tp_dictoffset */
0, /* tp_init */
0, /* tp_alloc */
PyType_GenericNew, /* tp_new */
};
/* ---------------------------------- */
/* DAP chain hash fast object */
typedef struct PyDapChainHashFast{
PyObject_HEAD
dap_chain_hash_fast_t *hash_fast;
}PyDapChainHashFastObject;
static PyTypeObject DapChainHashFastObject_DapChainHashFastObjectType = {
PyVarObject_HEAD_INIT(NULL, 0)
"CellFrame.Chain.HashFast", /* tp_name */
sizeof(PyDapChainHashFastObject),/* tp_basicsize */
0, /* tp_itemsize */
0, /* tp_dealloc */
0, /* tp_print */
0, /* tp_getattr */
0, /* tp_setattr */
0, /* tp_reserved */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
0, /* tp_as_mapping */
0, /* tp_hash */
0, /* tp_call */
0, /* tp_str */
0, /* tp_getattro */
0, /* tp_setattro */
0, /* tp_as_buffer */
Py_TPFLAGS_DEFAULT |
Py_TPFLAGS_BASETYPE, /* tp_flags */
"Chain hash fast object", /* tp_doc */
0, /* tp_traverse */
0, /* tp_clear */
0, /* tp_richcompare */
0, /* tp_weaklistoffset */
0, /* tp_iter */
0, /* tp_iternext */
0, /* tp_methods */
0, /* tp_members */
0, /* tp_getset */
0, /* tp_base */
0, /* tp_dict */
0, /* tp_descr_get */
0, /* tp_descr_set */
0, /* tp_dictoffset */
0, /* tp_init */
0, /* tp_alloc */
PyType_GenericNew, /* tp_new */
};
/* ----------------------------------- */
typedef struct PyDapChainHashSlowKind{
PyObject_HEAD
dap_chain_hash_slow_kind_t *hash_slow_kind;
}PyDapChainHashSlowKindObject;
static PyTypeObject DapChainHashSlowKindObject_DapChainHashSlowKindObjectType = {
PyVarObject_HEAD_INIT(NULL, 0)
"CellFrame.Chain.HashSlowKind", /* tp_name */
sizeof(PyDapChainHashSlowKindObject),/* tp_basicsize */
0, /* tp_itemsize */
0, /* tp_dealloc */
0, /* tp_print */
0, /* tp_getattr */
0, /* tp_setattr */
0, /* tp_reserved */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
0, /* tp_as_mapping */
0, /* tp_hash */
0, /* tp_call */
0, /* tp_str */
0, /* tp_getattro */
0, /* tp_setattro */
0, /* tp_as_buffer */
Py_TPFLAGS_DEFAULT |
Py_TPFLAGS_BASETYPE, /* tp_flags */
"Chain hash slow kind object", /* tp_doc */
0, /* tp_traverse */
0, /* tp_clear */
0, /* tp_richcompare */
0, /* tp_weaklistoffset */
0, /* tp_iter */
0, /* tp_iternext */
0, /* tp_methods */
0, /* tp_members */
0, /* tp_getset */
0, /* tp_base */
0, /* tp_dict */
0, /* tp_descr_get */
0, /* tp_descr_set */
0, /* tp_dictoffset */
0, /* tp_init */
0, /* tp_alloc */
PyType_GenericNew, /* tp_new */
};
/* ----------------------------------- */
/* DAP chain addr object */
typedef struct PyDapChainAddr{
PyObject_HEAD
dap_chain_addr_t *addr;
}PyDapChainAddrObject;
static PyTypeObject DapChainAddrObject_DapChainAddrObjectType = {
PyVarObject_HEAD_INIT(NULL, 0)
"CellFrame.Chain.Addr", /* tp_name */
sizeof(PyDapChainAddrObject),/* tp_basicsize */
0, /* tp_itemsize */
0, /* tp_dealloc */
0, /* tp_print */
0, /* tp_getattr */
0, /* tp_setattr */
0, /* tp_reserved */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
0, /* tp_as_mapping */
0, /* tp_hash */
0, /* tp_call */
0, /* tp_str */
0, /* tp_getattro */
0, /* tp_setattro */
0, /* tp_as_buffer */
Py_TPFLAGS_DEFAULT |
Py_TPFLAGS_BASETYPE, /* tp_flags */
"Chain addr object", /* tp_doc */
0, /* tp_traverse */
0, /* tp_clear */
0, /* tp_richcompare */
0, /* tp_weaklistoffset */
0, /* tp_iter */
0, /* tp_iternext */
0, /* tp_methods */
0, /* tp_members */
0, /* tp_getset */
0, /* tp_base */
0, /* tp_dict */
0, /* tp_descr_get */
0, /* tp_descr_set */
0, /* tp_dictoffset */
0, /* tp_init */
0, /* tp_alloc */
PyType_GenericNew, /* tp_new */
};
/* ----------------------------- */
#ifdef __cplusplus
}
#endif
#endif //_WRAPPING_DAP_CHAIN_COMMON_OBJECTS_
#ifndef _WRAPPING_DAP_CHAIN_DATUM_
#define _WRAPPING_DAP_CHAIN_DATUM_
#include "Python.h"
#include "dap_chain_datum.h"
#ifdef __cplusplus
extern "C" {
#endif
/* DAP Chain datum type id */
typedef struct PyDapChainDatumTypeId{
PyObject_HEAD
dap_chain_datum_typeid_t *type_id;
}PyDapChainDatumTypeIdObject;
static PyTypeObject DapChainDatumTypeIdObject_DapChainDatumTypeIdObjectType = {
PyVarObject_HEAD_INIT(NULL, 0)
"CellFrame.Chain.DatumTypeId", /* tp_name */
sizeof(PyDapChainDatumTypeIdObject), /* tp_basicsize */
0, /* tp_itemsize */
0, /* tp_dealloc */
0, /* tp_print */
0, /* tp_getattr */
0, /* tp_setattr */
0, /* tp_reserved */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
0, /* tp_as_mapping */
0, /* tp_hash */
0, /* tp_call */
0, /* tp_str */
0, /* tp_getattro */
0, /* tp_setattro */
0, /* tp_as_buffer */
Py_TPFLAGS_DEFAULT |
Py_TPFLAGS_BASETYPE, /* tp_flags */
"Chain datum type id object", /* tp_doc */
0, /* tp_traverse */
0, /* tp_clear */
0, /* tp_richcompare */
0, /* tp_weaklistoffset */
0, /* tp_iter */
0, /* tp_iternext */
0, /* tp_methods */
0, /* tp_members */
0, /* tp_getset */
0, /* tp_base */
0, /* tp_dict */
0, /* tp_descr_get */
0, /* tp_descr_set */
0, /* tp_dictoffset */
0, /* tp_init */
0, /* tp_alloc */
PyType_GenericNew, /* tp_new */
};
/* -------------------------------- */
typedef struct PyDapChainDatum{
PyObject_HEAD
dap_chain_datum_t *datum;
}PyDapChainDatumObject;
//void PyDapChainDatumObject_dealloc(PyDapChainDatumObject* object);
PyObject *PyDapChainDatumObject_new(PyTypeObject *type_object, PyObject *args, PyObject *kwds);
static PyTypeObject DapChainDatumObject_DapChainDatumObjectType = {
PyVarObject_HEAD_INIT(NULL, 0)
"CellFrame.Chain.Datum", /* tp_name */
sizeof(PyDapChainDatumObject), /* tp_basicsize */
0, /* tp_itemsize */
0, /* tp_dealloc */
0, /* tp_print */
0, /* tp_getattr */
0, /* tp_setattr */
0, /* tp_reserved */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
0, /* tp_as_mapping */
0, /* tp_hash */
0, /* tp_call */
0, /* tp_str */
0, /* tp_getattro */
0, /* tp_setattro */
0, /* tp_as_buffer */
Py_TPFLAGS_DEFAULT |
Py_TPFLAGS_BASETYPE, /* tp_flags */
"Chain datum object", /* tp_doc */
0, /* tp_traverse */
0, /* tp_clear */
0, /* tp_richcompare */
0, /* tp_weaklistoffset */
0, /* tp_iter */
0, /* tp_iternext */
0, /* tp_methods */
0, /* tp_members */
0, /* tp_getset */
0, /* tp_base */
0, /* tp_dict */
0, /* tp_descr_get */
0, /* tp_descr_set */
0, /* tp_dictoffset */
0, /* tp_init */
0, /* tp_alloc */
PyDapChainDatumObject_new, /* tp_new */
};
/* -------------------------------- */
/* DAP Chain datum iter*/
typedef struct PyDapChainDatumIter{
PyObject_HEAD
dap_chain_datum_iter_t *datum_iter;
}PyDapChainDatumIterObject;
static PyTypeObject DapChainDatumIterObject_DapChainDatumIterObjectType = {
PyVarObject_HEAD_INIT(NULL, 0)
"CellFrame.Chain.DatumIter", /* tp_name */
sizeof(PyDapChainDatumIterObject), /* tp_basicsize */
0, /* tp_itemsize */
0, /* tp_dealloc */
0, /* tp_print */
0, /* tp_getattr */
0, /* tp_setattr */
0, /* tp_reserved */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
0, /* tp_as_mapping */
0, /* tp_hash */
0, /* tp_call */
0, /* tp_str */
0, /* tp_getattro */
0, /* tp_setattro */
0, /* tp_as_buffer */
Py_TPFLAGS_DEFAULT |
Py_TPFLAGS_BASETYPE, /* tp_flags */
"Chain datum iter object", /* tp_doc */
0, /* tp_traverse */
0, /* tp_clear */
0, /* tp_richcompare */
0, /* tp_weaklistoffset */
0, /* tp_iter */
0, /* tp_iternext */
0, /* tp_methods */
0, /* tp_members */
0, /* tp_getset */
0, /* tp_base */
0, /* tp_dict */
0, /* tp_descr_get */
0, /* tp_descr_set */
0, /* tp_dictoffset */
0, /* tp_init */
0, /* tp_alloc */
PyType_GenericNew, /* tp_new */
};
/* -------------------------------- */
#ifdef __cplusplus
}
#endif
#endif //_WRAPPING_DAP_CHAIN_DATUM_
#ifndef _WRAPPING_DAP_CHAIN_DATUM_TOKEN_
#define _WRAPPING_DAP_CHAIN_DATUM_TOKEN_
#include "Python.h"
#include "dap_chain_datum_token.h"
#ifdef __cplusplus
extern "C" {
#endif
/* DAP chain datum token */
typedef struct PyDapChainDatumToken{
PyObject_HEAD
dap_chain_datum_token_t *token;
}PyDapChainDatumTokenObject;
static PyTypeObject DapChainDatumToken_DapChainDatumTokenObjectType = {
PyVarObject_HEAD_INIT(NULL, 0)
"CellFrame.Chain.DatumTokenObject", /* tp_name */
sizeof(PyDapChainDatumTokenObject), /* tp_basicsize */
0, /* tp_itemsize */
0, /* tp_dealloc */
0, /* tp_print */
0, /* tp_getattr */
0, /* tp_setattr */
0, /* tp_reserved */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
0, /* tp_as_mapping */
0, /* tp_hash */
0, /* tp_call */
0, /* tp_str */
0, /* tp_getattro */
0, /* tp_setattro */
0, /* tp_as_buffer */
Py_TPFLAGS_DEFAULT |
Py_TPFLAGS_BASETYPE, /* tp_flags */
"Chain datum token object", /* tp_doc */
0, /* tp_traverse */
0, /* tp_clear */
0, /* tp_richcompare */
0, /* tp_weaklistoffset */
0, /* tp_iter */
0, /* tp_iternext */
0, /* tp_methods */
0, /* tp_members */
0, /* tp_getset */
0, /* tp_base */
0, /* tp_dict */
0, /* tp_descr_get */
0, /* tp_descr_set */
0, /* tp_dictoffset */
0, /* tp_init */
0, /* tp_alloc */
PyType_GenericNew, /* tp_new */
};
/* ------------------------------------------- */
/* DAP chain datum token emission */
typedef struct PyDapChainDatumTokenEmission{
PyObject_HEAD
dap_chain_datum_token_emission_t *token_emission;
}PyDapChainDatumTokenEmissionObject;
static PyTypeObject DapChainDatumTokenEmission_DapChainDatumTokenEmissionObjectType = {
PyVarObject_HEAD_INIT(NULL, 0)
"CellFrame.Chain.DatumTokenEmission", /* tp_name */
sizeof(PyDapChainDatumTokenEmissionObject), /* tp_basicsize */
0, /* tp_itemsize */
0, /* tp_dealloc */
0, /* tp_print */
0, /* tp_getattr */
0, /* tp_setattr */
0, /* tp_reserved */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
0, /* tp_as_mapping */
0, /* tp_hash */
0, /* tp_call */
0, /* tp_str */
0, /* tp_getattro */
0, /* tp_setattro */
0, /* tp_as_buffer */
Py_TPFLAGS_DEFAULT |
Py_TPFLAGS_BASETYPE, /* tp_flags */
"Chain datum token emission object", /* tp_doc */
0, /* tp_traverse */
0, /* tp_clear */
0, /* tp_richcompare */
0, /* tp_weaklistoffset */
0, /* tp_iter */
0, /* tp_iternext */
0, /* tp_methods */
0, /* tp_members */
0, /* tp_getset */
0, /* tp_base */
0, /* tp_dict */
0, /* tp_descr_get */
0, /* tp_descr_set */
0, /* tp_dictoffset */
0, /* tp_init */
0, /* tp_alloc */
PyType_GenericNew, /* tp_new */
};
/* ------------------------------------------- */
#ifdef __cplusplus
}
#endif
#endif //_WRAPPING_DAP_CHAIN_DATUM_TOKEN_
#ifndef _WRAPPING_DAP_CHAIN_DATUM_TX_
#define _WRAPPING_DAP_CHAIN_DATUM_TX_
#include "Python.h"
#include "dap_chain_datum_tx.h"
#include "wrapping_dap_chain_common.h"
#include "libdap_crypto_key_python.h"
#include "dap_chain_datum_tx_out_cond.h"
#ifdef __cplusplus
extern "C" {
#endif
/* DAP chain tx iter type */
typedef struct PyDapChainTxItemType{
PyObject_HEAD
}PyDapChainTxItemTypeObject;
PyObject *TX_ITEM_TYPE_IN_PY(void);
PyObject *TX_ITEM_TYPE_OUT_PY(void);
PyObject *TX_ITEM_TYPE_PKEY_PY(void);
PyObject *TX_ITEM_TYPE_SIG_PY(void);
PyObject *TX_ITEM_TYPE_TOKEN_PY(void);
PyObject *TX_ITEM_TYPE_IN_COND_PY(void);
PyObject *TX_ITEM_TYPE_OUT_COND_PY(void);
PyObject *TX_ITEM_TYPE_RECEIPT_PY(void);
static PyMethodDef PyDapChainTxItemTypeObjectMethods[] ={
{"TX_ITEM_TYPE_IN", (PyCFunction)TX_ITEM_TYPE_IN_PY, METH_NOARGS | METH_STATIC, ""},
{"TX_ITEM_TYPE_OUT", (PyCFunction)TX_ITEM_TYPE_OUT_PY, METH_NOARGS | METH_STATIC, ""},
{"TX_ITEM_TYPE_PKEY", (PyCFunction)TX_ITEM_TYPE_PKEY_PY, METH_NOARGS | METH_STATIC, ""},
{"TX_ITEM_TYPE_SIG", (PyCFunction)TX_ITEM_TYPE_SIG_PY, METH_NOARGS | METH_STATIC, ""},
{"TX_ITEM_TYPE_TOKEN", (PyCFunction)TX_ITEM_TYPE_TOKEN_PY, METH_NOARGS | METH_STATIC, ""},
{"TX_ITEM_TYPE_IN_COND", (PyCFunction)TX_ITEM_TYPE_IN_COND_PY, METH_NOARGS | METH_STATIC, ""},
{"TX_ITEM_TYPE_OUT_COND", (PyCFunction)TX_ITEM_TYPE_OUT_COND_PY, METH_NOARGS | METH_STATIC, ""},
{"TX_ITEM_TYPE_RECEIPT", (PyCFunction)TX_ITEM_TYPE_RECEIPT_PY,
METH_NOARGS | METH_STATIC, ""},
{NULL, NULL, 0, NULL}
};
static PyTypeObject DapChainTxItemObject_DapChainTxItemTypeObjectType = {
PyVarObject_HEAD_INIT(NULL, 0)
"CellFrame.Chain.TxItemType", /* tp_name */
sizeof(PyDapChainTxItemTypeObject), /* tp_basicsize */
0, /* tp_itemsize */
0, /* tp_dealloc */
0, /* tp_print */
0, /* tp_getattr */
0, /* tp_setattr */
0, /* tp_reserved */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
0, /* tp_as_mapping */
0, /* tp_hash */
0, /* tp_call */
0, /* tp_str */
0, /* tp_getattro */
0, /* tp_setattro */
0, /* tp_as_buffer */
Py_TPFLAGS_DEFAULT |
Py_TPFLAGS_BASETYPE, /* tp_flags */
"Chain tx item type object", /* tp_doc */
0, /* tp_traverse */
0, /* tp_clear */
0, /* tp_richcompare */
0, /* tp_weaklistoffset */
0, /* tp_iter */
0, /* tp_iternext */
PyDapChainTxItemTypeObjectMethods, /* tp_methods */
0, /* tp_members */
0, /* tp_getset */
0, /* tp_base */
0, /* tp_dict */
0, /* tp_descr_get */
0, /* tp_descr_set */
0, /* tp_dictoffset */
0, /* tp_init */
0, /* tp_alloc */
PyType_GenericNew, /* tp_new */
};
/* -------------------------------------- */
/* DAP chain tx cond*/
typedef struct PyDapChainTxCondType{
PyObject_HEAD
dap_chain_tx_cond_type_t *tx_cond_type_t;
}PyDapChainTxCondTypeObject;
static PyTypeObject DapChainTxType_DapChainTxCondTypeObject = {
PyVarObject_HEAD_INIT(NULL, 0)
"CellFrame.Chain.TxCondType", /* tp_name */
sizeof(PyDapChainTxCondTypeObject),/* tp_basicsize */
0, /* tp_itemsize */
0, /* tp_dealloc */
0, /* tp_print */
0, /* tp_getattr */
0, /* tp_setattr */
0, /* tp_reserved */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
0, /* tp_as_mapping */
0, /* tp_hash */
0, /* tp_call */
0, /* tp_str */
0, /* tp_getattro */
0, /* tp_setattro */
0, /* tp_as_buffer */
Py_TPFLAGS_DEFAULT |
Py_TPFLAGS_BASETYPE, /* tp_flags */
"Chain tx cond type object", /* tp_doc */
0, /* tp_traverse */
0, /* tp_clear */
0, /* tp_richcompare */
0, /* tp_weaklistoffset */
0, /* tp_iter */
0, /* tp_iternext */
0, /* tp_methods */
0, /* tp_members */
0, /* tp_getset */
0, /* tp_base */
0, /* tp_dict */
0, /* tp_descr_get */
0, /* tp_descr_set */
0, /* tp_dictoffset */
0, /* tp_init */
0, /* tp_alloc */
PyType_GenericNew, /* tp_new */
};
/* -------------------------------------- */
/* DAP chain datum tx */
typedef struct PyDapChainDatumTx{
PyObject_HEAD
dap_chain_datum_tx_t *datum_tx;
}PyDapChainDatumTxObject;
PyObject *PyDapChainDatumTxObject_create(PyTypeObject *type_object, PyObject *args, PyObject *kwds);
void PyDapChainDatumTxObject_delete(PyDapChainDatumTxObject* datumTx);
PyObject *dap_chain_datum_tx_get_size_py(PyObject *self, PyObject *args);
PyObject *dap_chain_datum_tx_add_item_py(PyObject *self, PyObject *args);
PyObject *dap_chain_datum_tx_add_in_item_py(PyObject *self, PyObject *args);
PyObject *dap_chain_datum_tx_add_out_item_py(PyObject *self, PyObject *args);
PyObject *dap_chain_datum_tx_add_out_cond_item_py(PyObject *self, PyObject *args);
PyObject *dap_chain_datum_tx_add_sign_item_py(PyObject *self, PyObject *args);
PyObject *dap_chain_datum_tx_verify_sign_py(PyObject *self, PyObject *args);
static dap_chain_datum_tx_t **PyListToDapChainDatumTxArray(PyObject *a_in_obj);
static PyObject* DapChainDatumTxArrayToPyList(dap_chain_datum_tx_t** datum_txs);
static PyMethodDef PyDapChainDatumTxObjectMethods[] ={
{"getSize", (PyCFunction)dap_chain_datum_tx_get_size_py, METH_VARARGS, ""},
{"addItem", (PyCFunction)dap_chain_datum_tx_add_item_py, METH_VARARGS | METH_STATIC, ""},
{"addInItem", (PyCFunction)dap_chain_datum_tx_add_in_item_py, METH_VARARGS | METH_STATIC, ""},
{"addOutItem", (PyCFunction)dap_chain_datum_tx_add_out_item_py, METH_VARARGS | METH_STATIC, ""},
{"addOutCond", (PyCFunction)dap_chain_datum_tx_add_out_cond_item_py, METH_VARARGS | METH_STATIC, ""},
{"addSignItem", (PyCFunction)dap_chain_datum_tx_add_sign_item_py, METH_VARARGS | METH_STATIC, ""},
{"verifySign", (PyCFunction)dap_chain_datum_tx_verify_sign_py, METH_VARARGS, ""},
{NULL, NULL, 0, NULL}
};
static PyTypeObject DapChainDatumTx_DapChainDatumTxObjectType = {
PyVarObject_HEAD_INIT(NULL, 0)
"CellFrame.Chain.DatumTx", /* tp_name */
sizeof(PyDapChainDatumTxObject), /* tp_basicsize */
0, /* tp_itemsize */
(destructor)PyDapChainDatumTxObject_delete, /* tp_dealloc */
0, /* tp_print */
0, /* tp_getattr */
0, /* tp_setattr */
0, /* tp_reserved */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
0, /* tp_as_mapping */
0, /* tp_hash */
0, /* tp_call */
0, /* tp_str */
0, /* tp_getattro */
0, /* tp_setattro */
0, /* tp_as_buffer */
Py_TPFLAGS_DEFAULT |
Py_TPFLAGS_BASETYPE, /* tp_flags */
"Chain datum tx object", /* tp_doc */
0, /* tp_traverse */
0, /* tp_clear */
0, /* tp_richcompare */
0, /* tp_weaklistoffset */
0, /* tp_iter */
0, /* tp_iternext */
PyDapChainDatumTxObjectMethods, /* tp_methods */
0, /* tp_members */
0, /* tp_getset */
0, /* tp_base */
0, /* tp_dict */
0, /* tp_descr_get */
0, /* tp_descr_set */
0, /* tp_dictoffset */
0, /* tp_init */
0, /* tp_alloc */
PyDapChainDatumTxObject_create, /* tp_new */
};
/* -------------------------------------- */
typedef struct PyDapChainTxOutCond{
PyObject_HEAD
dap_chain_tx_out_cond_t *out_cond;
}PyDapChainTxOutCondObject;
static PyTypeObject DapChainTxOutCond_DapChainTxOutCondObjectType = {
PyVarObject_HEAD_INIT(NULL, 0)
"CellFrame.Chain.TxOutCond", /* tp_name */
sizeof(PyDapChainTxOutCondObject), /* tp_basicsize */
0, /* tp_itemsize */
0, /* tp_dealloc */
0, /* tp_print */
0, /* tp_getattr */
0, /* tp_setattr */
0, /* tp_reserved */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
0, /* tp_as_mapping */
0, /* tp_hash */
0, /* tp_call */
0, /* tp_str */
0, /* tp_getattro */
0, /* tp_setattro */
0, /* tp_as_buffer */
Py_TPFLAGS_DEFAULT |
Py_TPFLAGS_BASETYPE, /* tp_flags */
"Chain tx out cond object", /* tp_doc */
0, /* tp_traverse */
0, /* tp_clear */
0, /* tp_richcompare */
0, /* tp_weaklistoffset */
0, /* tp_iter */
0, /* tp_iternext */
0, /* tp_methods */
0, /* tp_members */
0, /* tp_getset */
0, /* tp_base */
0, /* tp_dict */
0, /* tp_descr_get */
0, /* tp_descr_set */
0, /* tp_dictoffset */
0, /* tp_init */
0, /* tp_alloc */
PyType_GenericNew, /* tp_new */
};
dap_chain_tx_out_cond_t **PyListToDapChainTxOutCond(PyObject *list);
PyObject *DapChainTxOutCondObjectToPyList(dap_chain_tx_out_cond_t **out_cond);
/* -------------------------------------- */
#ifdef __cplusplus
}
#endif
#endif //_WRAPPING_DAP_CHAIN_DATUM_TX_
......@@ -3,9 +3,10 @@
#include "Python.h"
#include "dap_chain_ledger.h"
#include "wrapping_dap_chain_common_objects.h"
#include "wrapping_dap_chain_common.h"
#include "wrapping_dap_chain_datum_tx.h"
#include "wrapping_dap_chain_datum_token.h"
#include "wrapping_dap_hash.h"
#include "libdap-python.h"
......
Subproject commit 1c0614797a3a2a2f4c179630025600e177637a65
Subproject commit 9c1afb9e17817deb61ecafdddd415d249b6b6547
Subproject commit f7e22487b7c01431161bc527269e76e16e213cfd
Subproject commit 777394aa9c175db4e6245c95c990a6f2c5717a58
Subproject commit a44ef9d73a95f038ce610837d0df3e8825b61e28
Subproject commit 4886d3e91ce097e3f923e4b4d3e52bb8509d7c46
Subproject commit f8dfd888432234c0314057f5551a578dd770003c
Subproject commit 1248013aff1bbde72e92d20e9c13225ab11b2b16
Subproject commit e9d57285c3d2383e13e1d949935628cb56c694cc
Subproject commit 25f9668706f8e728351db9295e6a1fe0111d32bc
Subproject commit 8c6bbf4458bd10614bf48bb2da7e84b4f80f0d33
Subproject commit 71b87bfae6cc5d9c44e1f15478d71476cbfdd432
Subproject commit 4bbdcf60e10de8462820e45d7cc3715dca4c2139
Subproject commit 6230d941f19b67f208793fa4c321a785e0df8760
Subproject commit 10e82c5393eee63eff349b4f4d2ec932e66c57bf
Subproject commit e9dd385abde8e43efa18cc2dd385511b87750f6c
Subproject commit 5edea70af6a5ede0c759e9d83a5741376f4da9fb
Subproject commit ea8d445e4a92d615d71112e41121af064aeed14f