Simplified code

This commit is contained in:
MoneroOcean
2018-03-25 03:19:42 +02:00
parent 76ebaa584f
commit d1fef4814c

View File

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