add ITALO cycle48
This commit is contained in:
@@ -24,6 +24,10 @@ namespace crypto {
|
|||||||
public:
|
public:
|
||||||
uint32_t data[40];
|
uint32_t data[40];
|
||||||
};
|
};
|
||||||
|
POD_CLASS cycle48 {
|
||||||
|
public:
|
||||||
|
uint32_t data[48];
|
||||||
|
};
|
||||||
POD_CLASS hash {
|
POD_CLASS hash {
|
||||||
char data[HASH_SIZE];
|
char data[HASH_SIZE];
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -16,4 +16,5 @@ enum BLOB_TYPE {
|
|||||||
BLOB_TYPE_CRYPTONOTE_XTNC = 9, // XTNC
|
BLOB_TYPE_CRYPTONOTE_XTNC = 9, // XTNC
|
||||||
BLOB_TYPE_CRYPTONOTE_TUBE = 10, // TUBE
|
BLOB_TYPE_CRYPTONOTE_TUBE = 10, // TUBE
|
||||||
BLOB_TYPE_CRYPTONOTE_XHV = 11, // Haven
|
BLOB_TYPE_CRYPTONOTE_XHV = 11, // Haven
|
||||||
|
BLOB_TYPE_CRYPTONOTE_XTA = 12, // ITALO
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -494,13 +494,14 @@ namespace cryptonote
|
|||||||
offshore::pricing_record pricing_record;
|
offshore::pricing_record pricing_record;
|
||||||
crypto::cycle cycle;
|
crypto::cycle cycle;
|
||||||
crypto::cycle40 cycle40;
|
crypto::cycle40 cycle40;
|
||||||
|
crypto::cycle48 cycle48;
|
||||||
|
|
||||||
BEGIN_SERIALIZE()
|
BEGIN_SERIALIZE()
|
||||||
VARINT_FIELD(major_version)
|
VARINT_FIELD(major_version)
|
||||||
VARINT_FIELD(minor_version)
|
VARINT_FIELD(minor_version)
|
||||||
if (blob_type != BLOB_TYPE_FORKNOTE2) VARINT_FIELD(timestamp)
|
if (blob_type != BLOB_TYPE_FORKNOTE2) VARINT_FIELD(timestamp)
|
||||||
FIELD(prev_id)
|
FIELD(prev_id)
|
||||||
if (blob_type == BLOB_TYPE_CRYPTONOTE_CUCKOO || blob_type == BLOB_TYPE_CRYPTONOTE_TUBE) FIELD(nonce8)
|
if (blob_type == BLOB_TYPE_CRYPTONOTE_CUCKOO || blob_type == BLOB_TYPE_CRYPTONOTE_TUBE || blob_type == BLOB_TYPE_CRYPTONOTE_XTA) FIELD(nonce8)
|
||||||
if (blob_type != BLOB_TYPE_FORKNOTE2) {
|
if (blob_type != BLOB_TYPE_FORKNOTE2) {
|
||||||
if (blob_type == BLOB_TYPE_AEON) {
|
if (blob_type == BLOB_TYPE_AEON) {
|
||||||
FIELD(nonce)
|
FIELD(nonce)
|
||||||
@@ -513,6 +514,7 @@ namespace cryptonote
|
|||||||
}
|
}
|
||||||
if (blob_type == BLOB_TYPE_CRYPTONOTE_XTNC || blob_type == BLOB_TYPE_CRYPTONOTE_CUCKOO) FIELD(cycle)
|
if (blob_type == BLOB_TYPE_CRYPTONOTE_XTNC || blob_type == BLOB_TYPE_CRYPTONOTE_CUCKOO) FIELD(cycle)
|
||||||
if (blob_type == BLOB_TYPE_CRYPTONOTE_TUBE) FIELD(cycle40)
|
if (blob_type == BLOB_TYPE_CRYPTONOTE_TUBE) FIELD(cycle40)
|
||||||
|
if (blob_type == BLOB_TYPE_CRYPTONOTE_XTA) FIELD(cycle48)
|
||||||
if (blob_type == BLOB_TYPE_CRYPTONOTE_XHV) FIELD(pricing_record)
|
if (blob_type == BLOB_TYPE_CRYPTONOTE_XHV) FIELD(pricing_record)
|
||||||
|
|
||||||
END_SERIALIZE()
|
END_SERIALIZE()
|
||||||
|
|||||||
@@ -475,7 +475,7 @@ namespace cryptonote
|
|||||||
//---------------------------------------------------------------
|
//---------------------------------------------------------------
|
||||||
bool get_block_hashing_blob(const block& b, blobdata& blob)
|
bool get_block_hashing_blob(const block& b, blobdata& blob)
|
||||||
{
|
{
|
||||||
if (b.blob_type == BLOB_TYPE_CRYPTONOTE_XTNC || b.blob_type == BLOB_TYPE_CRYPTONOTE_CUCKOO || b.blob_type == BLOB_TYPE_CRYPTONOTE_TUBE) {
|
if (b.blob_type == BLOB_TYPE_CRYPTONOTE_XTNC || b.blob_type == BLOB_TYPE_CRYPTONOTE_CUCKOO || b.blob_type == BLOB_TYPE_CRYPTONOTE_TUBE || b.blob_type == BLOB_TYPE_CRYPTONOTE_XTA) {
|
||||||
blob = t_serializable_object_to_blob(b.major_version);
|
blob = t_serializable_object_to_blob(b.major_version);
|
||||||
blob.append(reinterpret_cast<const char*>(&b.minor_version), sizeof(b.minor_version));
|
blob.append(reinterpret_cast<const char*>(&b.minor_version), sizeof(b.minor_version));
|
||||||
blob.append(reinterpret_cast<const char*>(&b.timestamp), sizeof(b.timestamp));
|
blob.append(reinterpret_cast<const char*>(&b.timestamp), sizeof(b.timestamp));
|
||||||
@@ -490,7 +490,7 @@ namespace cryptonote
|
|||||||
if (b.blob_type == BLOB_TYPE_CRYPTONOTE3) {
|
if (b.blob_type == BLOB_TYPE_CRYPTONOTE3) {
|
||||||
blob.append(reinterpret_cast<const char*>(&b.uncle), sizeof(b.uncle));
|
blob.append(reinterpret_cast<const char*>(&b.uncle), sizeof(b.uncle));
|
||||||
}
|
}
|
||||||
if (b.blob_type == BLOB_TYPE_CRYPTONOTE_CUCKOO || b.blob_type == BLOB_TYPE_CRYPTONOTE_TUBE) {
|
if (b.blob_type == BLOB_TYPE_CRYPTONOTE_CUCKOO || b.blob_type == BLOB_TYPE_CRYPTONOTE_TUBE || b.blob_type == BLOB_TYPE_CRYPTONOTE_XTA) {
|
||||||
blob.append(reinterpret_cast<const char*>(&b.nonce8), sizeof(b.nonce8));
|
blob.append(reinterpret_cast<const char*>(&b.nonce8), sizeof(b.nonce8));
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@@ -231,6 +231,12 @@ NAN_METHOD(construct_block_blob) { // (parentBlockTemplateBuffer, nonceBuffer, c
|
|||||||
for (int i = 0; i < 40; i++ ) b.cycle40.data[i] = cycle->Get(isolate->GetCurrentContext(), i).ToLocalChecked()->NumberValue(isolate->GetCurrentContext()).ToChecked();
|
for (int i = 0; i < 40; i++ ) b.cycle40.data[i] = cycle->Get(isolate->GetCurrentContext(), i).ToLocalChecked()->NumberValue(isolate->GetCurrentContext()).ToChecked();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (blob_type == BLOB_TYPE_CRYPTONOTE_XTA) {
|
||||||
|
if (info.Length() != 4) return THROW_ERROR_EXCEPTION("You must provide 4 arguments.");
|
||||||
|
Local<Array> cycle = Local<Array>::Cast(info[3]);
|
||||||
|
for (int i = 0; i < 48; i++ ) b.cycle48.data[i] = cycle->Get(isolate->GetCurrentContext(), i).ToLocalChecked()->NumberValue(isolate->GetCurrentContext()).ToChecked();
|
||||||
|
}
|
||||||
|
|
||||||
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();
|
v8::Local<v8::Value> returnValue = Nan::CopyBuffer((char*)output.data(), output.size()).ToLocalChecked();
|
||||||
|
|||||||
@@ -55,6 +55,7 @@ BLOB_SERIALIZER(crypto::chacha8_iv);
|
|||||||
BLOB_SERIALIZER(crypto::hash);
|
BLOB_SERIALIZER(crypto::hash);
|
||||||
BLOB_SERIALIZER(crypto::cycle);
|
BLOB_SERIALIZER(crypto::cycle);
|
||||||
BLOB_SERIALIZER(crypto::cycle40);
|
BLOB_SERIALIZER(crypto::cycle40);
|
||||||
|
BLOB_SERIALIZER(crypto::cycle48);
|
||||||
BLOB_SERIALIZER(crypto::hash8);
|
BLOB_SERIALIZER(crypto::hash8);
|
||||||
BLOB_SERIALIZER(crypto::public_key);
|
BLOB_SERIALIZER(crypto::public_key);
|
||||||
BLOB_SERIALIZER(crypto::secret_key);
|
BLOB_SERIALIZER(crypto::secret_key);
|
||||||
@@ -63,6 +64,7 @@ BLOB_SERIALIZER(crypto::key_image);
|
|||||||
BLOB_SERIALIZER(crypto::signature);
|
BLOB_SERIALIZER(crypto::signature);
|
||||||
VARIANT_TAG(debug_archive, crypto::cycle, "cycle");
|
VARIANT_TAG(debug_archive, crypto::cycle, "cycle");
|
||||||
VARIANT_TAG(debug_archive, crypto::cycle40, "cycle40");
|
VARIANT_TAG(debug_archive, crypto::cycle40, "cycle40");
|
||||||
|
VARIANT_TAG(debug_archive, crypto::cycle48, "cycle48");
|
||||||
VARIANT_TAG(debug_archive, crypto::hash, "hash");
|
VARIANT_TAG(debug_archive, crypto::hash, "hash");
|
||||||
VARIANT_TAG(debug_archive, crypto::hash8, "hash8");
|
VARIANT_TAG(debug_archive, crypto::hash8, "hash8");
|
||||||
VARIANT_TAG(debug_archive, crypto::public_key, "public_key");
|
VARIANT_TAG(debug_archive, crypto::public_key, "public_key");
|
||||||
|
|||||||
Reference in New Issue
Block a user