ethash_light_t ethash_light_new(uint64_t block_number) { ethash_h256_t seedhash = ethash_get_seedhash(block_number); ethash_light_t ret; ret = ethash_light_new_internal(ethash_get_cachesize(block_number), &seedhash); ret->block_number = block_number; return ret; }
ethash_full_t ethash_full_new(ethash_light_t light, ethash_callback_t callback) { char strbuf[256]; if (!ethash_get_default_dirname(strbuf, 256)) { return NULL; } uint64_t full_size = ethash_get_datasize(light->block_number); ethash_h256_t seedhash = ethash_get_seedhash(light->block_number); return ethash_full_new_internal(strbuf, seedhash, full_size, light, callback); }
//get_seedhash(block_number) static PyObject * get_seedhash(PyObject *self, PyObject *args) { unsigned long block_number; if (!PyArg_ParseTuple(args, "k", &block_number)) return 0; if (block_number >= EPOCH_LENGTH * 2048) { char error_message[1024]; sprintf(error_message, "Block number must be less than %i (was %lu)", EPOCH_LENGTH * 2048, block_number); PyErr_SetString(PyExc_ValueError, error_message); return 0; } uint8_t seedhash[32]; ethash_get_seedhash(seedhash, block_number); return Py_BuildValue(PY_STRING_FORMAT, (char *) seedhash, 32); }