Merge branch 'address_checking'
commit
73f7d00915
|
@ -6,6 +6,9 @@
|
||||||
"src/main.cc",
|
"src/main.cc",
|
||||||
"src/cryptonote_core/cryptonote_format_utils.cpp",
|
"src/cryptonote_core/cryptonote_format_utils.cpp",
|
||||||
"src/crypto/tree-hash.c",
|
"src/crypto/tree-hash.c",
|
||||||
|
"src/crypto/crypto.cpp",
|
||||||
|
"src/crypto/crypto-ops.c",
|
||||||
|
"src/crypto/crypto-ops-data.c",
|
||||||
"src/crypto/hash.c",
|
"src/crypto/hash.c",
|
||||||
"src/crypto/keccak.c",
|
"src/crypto/keccak.c",
|
||||||
"src/common/base58.cpp",
|
"src/common/base58.cpp",
|
||||||
|
|
27
src/main.cc
27
src/main.cc
|
@ -205,39 +205,32 @@ Handle<Value> convert_blob_bb(const Arguments& args) {
|
||||||
return scope.Close(buff->handle_);
|
return scope.Close(buff->handle_);
|
||||||
}
|
}
|
||||||
|
|
||||||
Handle<Value> check_address(const Arguments& args) {
|
Handle<Value> address_decode(const Arguments& args) {
|
||||||
HandleScope scope;
|
HandleScope scope;
|
||||||
|
|
||||||
if (args.Length() < 2)
|
if (args.Length() < 1)
|
||||||
return except("You must provide two arguments.");
|
return except("You must provide one argument.");
|
||||||
|
|
||||||
Local<Object> target = args[0]->ToObject();
|
Local<Object> target = args[0]->ToObject();
|
||||||
|
|
||||||
if (!Buffer::HasInstance(target))
|
if (!Buffer::HasInstance(target))
|
||||||
return except("First argument should be a buffer object.");
|
return except("Argument should be a buffer object.");
|
||||||
|
|
||||||
if (!args[1]->IsNumber())
|
|
||||||
return except("Second argument should be an unsigned integer number.");
|
|
||||||
|
|
||||||
blobdata input = std::string(Buffer::Data(target), Buffer::Length(target));
|
blobdata input = std::string(Buffer::Data(target), Buffer::Length(target));
|
||||||
Local<Number> expected_prefix = Number::New(args[1]->NumberValue());
|
|
||||||
|
|
||||||
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))
|
||||||
return scope.Close(Boolean::New(false));
|
return scope.Close(Undefined());
|
||||||
|
|
||||||
if (static_cast<uint64_t>(llround(expected_prefix->NumberValue())) != prefix)
|
|
||||||
return scope.Close(Boolean::New(false));
|
|
||||||
|
|
||||||
account_public_address adr;
|
account_public_address adr;
|
||||||
if (!::serialization::parse_binary(data, adr))
|
if (!::serialization::parse_binary(data, adr))
|
||||||
return scope.Close(Boolean::New(false));
|
return scope.Close(Undefined());
|
||||||
|
|
||||||
//if (!crypto::check_key(adr.m_spend_public_key) || !crypto::check_key(adr.m_view_public_key))
|
if (!crypto::check_key(adr.m_spend_public_key) || !crypto::check_key(adr.m_view_public_key))
|
||||||
// return scope.Close(Boolean::New(false));
|
return scope.Close(Undefined());
|
||||||
|
|
||||||
return scope.Close(Boolean::New(true));
|
return scope.Close(Integer::New(static_cast<uint32_t>(prefix)));
|
||||||
}
|
}
|
||||||
|
|
||||||
void init(Handle<Object> exports) {
|
void init(Handle<Object> exports) {
|
||||||
|
@ -245,7 +238,7 @@ void init(Handle<Object> exports) {
|
||||||
exports->Set(String::NewSymbol("get_block_id"), FunctionTemplate::New(get_block_id)->GetFunction());
|
exports->Set(String::NewSymbol("get_block_id"), FunctionTemplate::New(get_block_id)->GetFunction());
|
||||||
exports->Set(String::NewSymbol("convert_blob"), FunctionTemplate::New(convert_blob)->GetFunction());
|
exports->Set(String::NewSymbol("convert_blob"), FunctionTemplate::New(convert_blob)->GetFunction());
|
||||||
exports->Set(String::NewSymbol("convert_blob_bb"), FunctionTemplate::New(convert_blob_bb)->GetFunction());
|
exports->Set(String::NewSymbol("convert_blob_bb"), FunctionTemplate::New(convert_blob_bb)->GetFunction());
|
||||||
exports->Set(String::NewSymbol("check_address"), FunctionTemplate::New(check_address)->GetFunction());
|
exports->Set(String::NewSymbol("address_decode"), FunctionTemplate::New(address_decode)->GetFunction());
|
||||||
}
|
}
|
||||||
|
|
||||||
NODE_MODULE(cryptonote, init)
|
NODE_MODULE(cryptonote, init)
|
||||||
|
|
Loading…
Reference in New Issue