Skip to content
Snippets Groups Projects
Commit acc9a964 authored by alexey.stratulat's avatar alexey.stratulat
Browse files

[+] Added wrapping functions and structures from dap_chain_common.

parent 2cbdb921
No related branches found
No related tags found
1 merge request!1Features 2564
#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.ChainCommon", /* 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
#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
typedef struct PyDapChainId{
PyObject_HEAD
dap_chain_id_t *id;
}PyDapChainIdObject;
typedef struct PyDapChainCellId{
PyObject_HEAD
dap_chain_cell_id_t *id;
}PyDapChainCellId;
typedef struct PyDapChainNodeAddr{
PyObject_HEAD
dap_chain_node_addr_t *node_addr;
}PyDapChainNodeAddrObject;
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.ChainNetID", /* 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.ChainHashSlow", /* 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.ChainHashFast", /* 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;
typedef struct PyDapChainPkeyType{
PyObject_HEAD
dap_chain_pkey_type_t *pkey_type;
}PyDapChainPkeyTypeObject;
typedef struct PyDapChainPkey{
PyObject_HEAD
dap_chain_pkey_t *pkey;
}PyDapChainPkeyObject;
typedef struct PyDapChainSignType{
PyObject_HEAD
dap_chain_sign_type_t *sign_type;
}PyDapChainSignTypeObject;
/* 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.ChainAddr", /* 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_
#include "wrapping_dap_chain_common.h"
PyObject *dap_chain_hash_slow_to_str_py(PyObject *self, PyObject *args){
PyObject *hashSlow;
char *str;
size_t strMax;
if (!PyArg_ParseTuple(args, "O|s|n", &hashSlow, &str, &strMax))
return NULL;
size_t result = dap_chain_hash_slow_to_str(((PyDapChainHashSlowObject*)hashSlow)->hash_slow, str, strMax);
return PyLong_FromSize_t(result);
}
PyObject *dap_chain_str_to_hash_fast_py(PyObject *self, PyObject *args){
const char *hashStr;
PyObject *hashFast;
if (!PyArg_ParseTuple(args, "s|O", &hashStr, &hashFast))
return NULL;
int result = dap_chain_str_to_hash_fast(hashStr, ((PyDapChainHashFastObject*)hashFast)->hash_fast);
return PyLong_FromLong(result);
}
PyObject *dap_chain_addr_to_str_py(PyObject *self, PyObject *args){
PyObject *addr;
if (!PyArg_ParseTuple(args, "O", &addr))
return NULL;
char *result = dap_chain_addr_to_str(((PyDapChainAddrObject*)addr)->addr);
return Py_BuildValue("s", result);
}
PyObject *dap_chain_addr_from_str_py(PyObject *self, PyObject *args){
const char *str;
if (!PyArg_ParseTuple(args, "s", &str))
return NULL;
PyObject *addrObject = _PyObject_New(&DapChainAddrObject_DapChainAddrObjectType);
((PyDapChainAddrObject*)addrObject)->addr = dap_chain_addr_from_str(str);
return Py_BuildValue("O", addrObject);
}
PyObject *dap_chain_addr_fill_py(PyObject *self, PyObject *args){
PyObject *addr;
PyObject *key;
PyObject *net_id;
if (!PyArg_ParseTuple(args, "O|O|O", &addr, &key, &net_id))
return NULL;
dap_chain_addr_fill(((PyDapChainAddrObject*)addr)->addr, ((PyCryptoKeyObject*)key)->key,
((PyDapChainNetIdObject*)net_id)->net_id);
return PyLong_FromLong(0);
}
PyObject *dap_chain_addr_check_sum_py(PyObject *self, PyObject *args){
PyObject *addrObject;
if (!PyArg_ParseTuple(args, "O", &addrObject))
return NULL;
int result = dap_chain_addr_check_sum(((PyDapChainAddrObject*)addrObject)->addr);
return PyLong_FromLong(result);
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment