Revert "Simplified code"

This reverts commit d1fef4814c.
This commit is contained in:
MoneroOcean
2018-03-25 03:30:21 +02:00
parent aabd37cb3c
commit eed623354e

View File

@@ -93,10 +93,11 @@ NAN_METHOD(convert_blob) {
if (!get_block_hashing_blob(b, output)) return THROW_ERROR_EXCEPTION("Failed to create mining block");
}
NanReturnValue(NanNewBufferHandle(output.data(), output.size()));
v8::Local<v8::Value> returnValue = Nan::CopyBuffer((char*)output.data(), output.size()).ToLocalChecked();
info.GetReturnValue().Set(returnValue);
}
NAN_METHOD(get_block_id) {
void get_block_id(const Nan::FunctionCallbackInfo<v8::Value>& info) {
if (info.Length() < 1) return THROW_ERROR_EXCEPTION("You must provide one argument.");
Local<Object> target = info[0]->ToObject();
@@ -112,10 +113,12 @@ NAN_METHOD(get_block_id) {
crypto::hash block_id;
if (!get_block_hash(b, block_id)) return THROW_ERROR_EXCEPTION("Failed to calculate hash for block");
NanReturnValue(NanNewBufferHandle(reinterpret_cast<char*>(&block_id), sizeof(block_id)));
char *cstr = reinterpret_cast<char*>(&block_id);
v8::Local<v8::Value> returnValue = Nan::CopyBuffer(cstr, 32).ToLocalChecked();
info.GetReturnValue().Set(returnValue);
}
NAN_METHOD(construct_block_blob) {
void construct_block_blob(const Nan::FunctionCallbackInfo<v8::Value>& info) {
if (info.Length() < 2) return THROW_ERROR_EXCEPTION("You must provide two arguments.");
Local<Object> block_template_buf = info[0]->ToObject();
@@ -143,11 +146,12 @@ NAN_METHOD(construct_block_blob) {
if (!block_to_blob(b, output)) return THROW_ERROR_EXCEPTION("Failed to convert block to blob");
NanReturnValue(NanNewBufferHandle(output.data(), output.size()));
v8::Local<v8::Value> returnValue = Nan::CopyBuffer((char*)output.data(), output.size()).ToLocalChecked();
info.GetReturnValue().Set(returnValue);
}
NAN_METHOD(address_decode) {
void address_decode(const Nan::FunctionCallbackInfo<v8::Value>& info) {
if (info.Length() < 1) return THROW_ERROR_EXCEPTION("You must provide one argument.");
Local<Object> target = info[0]->ToObject();
@@ -158,19 +162,26 @@ NAN_METHOD(address_decode) {
blobdata data;
uint64_t prefix;
if (!tools::base58::decode_addr(input, prefix, data)) { NanReturnUndefined(); return; }
if (!tools::base58::decode_addr(input, prefix, data)) {
info.GetReturnValue().Set(Nan::Undefined());
return;
}
account_public_address adr;
if (!::serialization::parse_binary(data, adr) || !crypto::check_key(adr.m_spend_public_key) || !crypto::check_key(adr.m_view_public_key)) {
if (!data.length()) { NanReturnUndefined(); return; }
if (!data.length()) {
info.GetReturnValue().Set(Nan::Undefined());
return;
}
data = uint64be_to_blob(prefix) + data;
NanReturnValue(NanNewBufferHandle(data.data(), data.size()));
v8::Local<v8::Value> returnValue = Nan::CopyBuffer((char*)data.data(), data.size()).ToLocalChecked();
info.GetReturnValue().Set(returnValue);
} else {
NanReturnValue(NanNew(static_cast<uint32_t>(prefix)));
info.GetReturnValue().Set(Nan::New(static_cast<uint32_t>(prefix)));
}
}
NAN_METHOD(address_decode_integrated) {
void address_decode_integrated(const Nan::FunctionCallbackInfo<v8::Value>& info) {
if (info.Length() < 1) return THROW_ERROR_EXCEPTION("You must provide one argument.");
Local<Object> target = info[0]->ToObject();
@@ -181,15 +192,22 @@ NAN_METHOD(address_decode_integrated) {
blobdata data;
uint64_t prefix;
if (!tools::base58::decode_addr(input, prefix, data)) { NanReturnUndefined(); return; }
if (!tools::base58::decode_addr(input, prefix, data)) {
info.GetReturnValue().Set(Nan::Undefined());
return;
}
integrated_address iadr;
if (!::serialization::parse_binary(data, iadr) || !crypto::check_key(iadr.adr.m_spend_public_key) || !crypto::check_key(iadr.adr.m_view_public_key)) {
if (!data.length()) { NanReturnUndefined(); return; }
if (!data.length()) {
info.GetReturnValue().Set(Nan::Undefined());
return;
}
data = uint64be_to_blob(prefix) + data;
NanReturnValue(NanNewBufferHandle(data.data(), data.size()));
v8::Local<v8::Value> returnValue = Nan::CopyBuffer((char*)data.data(), data.size()).ToLocalChecked();
info.GetReturnValue().Set(returnValue);
} else {
NanReturnValue(NanNew(static_cast<uint32_t>(prefix)));
info.GetReturnValue().Set(Nan::New(static_cast<uint32_t>(prefix)));
}
}